크립토노트 v2.0

作者 Nicolas van Saberhagen · 2013

本页面呈现的是 Nicolas van Saberhagen 于 2013 年发布的 CryptoNote v2.0 白皮书,该白皮书描述了 Monero 所基于的密码学基础。这并非 Monero 专属的白皮书——Monero 于 2014 年作为 CryptoNote 参考实现(Bytecoin)的分叉上线,此后已在原始协议基础上发展演进了许多。

介绍

“Bitcoin”[1]已经成功实现了p2p电子现金的概念。两者都 专业人士和公众已经开始欣赏这种便捷的组合 公共交易和 proof-of-work 作为信任模型。如今,电子现金的用户群 正在稳步增长;客户被低廉的费用和提供的匿名性所吸引 电子现金和商家对其预测和分散的排放进行评估。 Bitcoin 有 有效证明电子现金可以像纸币一样简单、像纸币一样方便 信用卡。 不幸的是,Bitcoin 有几个缺陷。例如,系统的分布式 本质上是不灵活的,在几乎所有网络用户更新其客户端之前,都会阻止新功能的实现。一些无法快速修复的关键缺陷阻碍了 Bitcoin 广泛传播。在这种不灵活的模式中,推出新项目会更有效率 而不是永久修复原来的项目。 在本文中,我们研究了Bitcoin的主要缺陷并提出了解决方案。我们相信 考虑到我们提出的解决方案的系统将带来良性竞争 不同的电子现金系统之间。我们还提出了我们自己的电子现金“CryptoNote”, 这个名字强调了电子现金的下一个突破。

소개

“Bitcoin” [1]은 p2p 전자 화폐 개념을 성공적으로 구현했습니다. 둘 다 전문가와 일반 대중은 다음과 같은 편리한 조합을 높이 평가하게 되었습니다. 공개 거래 및 proof-of-work을 신뢰 모델로 사용합니다. 오늘날 전자화폐 사용자층은 꾸준한 속도로 성장하고 있습니다. 고객은 낮은 수수료와 익명성 제공에 매력을 느낍니다. 전자 현금과 상인은 예측되고 분산된 배출을 중요하게 생각합니다. Bitcoin은(는) 전자화폐가 종이화폐만큼 간단하고 편리할 수 있다는 사실을 효과적으로 입증했습니다. 신용 카드. 불행하게도 Bitcoin에는 몇 가지 결함이 있습니다. 예를 들어, 시스템의 분산 성격은 유연성이 없기 때문에 거의 모든 네트워크 사용자가 클라이언트를 업데이트할 때까지 새로운 기능을 구현하지 못합니다. 빠르게 고칠 수 없는 몇 가지 중요한 결함으로 인해 Bitcoin의 광범위한 전파. 이러한 유연하지 못한 모델에서는 새 프로젝트를 출시하는 것이 더 효율적입니다. 원래 프로젝트를 영구적으로 수정하는 대신 본 논문에서는 Bitcoin의 주요 결함에 대한 해결책을 연구하고 제안합니다. 우리는 믿는다 우리가 제안하는 솔루션을 고려한 시스템이 건전한 경쟁으로 이어질 것이라고 믿습니다. 다양한 전자 현금 시스템 중에서. 우리만의 전자화폐 '크립토노트'도 제안합니다. 전자 현금의 차세대 혁신을 강조하는 이름입니다.

Bitcoin 缺点和可能的解决方案

2 Bitcoin 缺点和一些可能的解决方案 2.1 交易可追溯 隐私和匿名是电子现金最重要的方面。点对点支付 寻求隐藏在第三方的视野之外,与传统的相比有明显的区别 银行业务。特别是,T. Okamoto 和 K. Ohta 描述了理想电子现金的六个标准, 其中包括“隐私:用户及其购买之间的关系必须无法追踪 任何人”[30]。从他们的描述中,我们得出了两个完全匿名的属性 电子现金模型必须满足冈本概述的要求 和太田: 不可追踪性:对于每笔传入交易,所有可能的发件人都是等概率的。 不可链接性:对于任何两个传出交易,无法证明它们被发送到 同一个人。 不幸的是,Bitcoin 不满足不可追踪性要求。由于网络参与者之间发生的所有交易都是公开的,因此任何交易都可以 1 加密笔记 v 2.0 尼古拉斯 \(\cdot\) 范 \(\cdot\) 萨伯哈根 2013 年 10 月 17 日 1 简介 “Bitcoin”[1]已经成功实现了p2p电子现金的概念。两者都 专业人士和公众已经开始欣赏这种便捷的组合 公共交易和 proof-of-work 作为信任模型。如今,电子现金的用户群 正在稳步增长;客户被低廉的费用和提供的匿名性所吸引 电子现金和商家对其预测和分散的排放进行评估。 Bitcoin 有 有效证明电子现金可以像纸币一样简单、像纸币一样方便 信用卡。 不幸的是,Bitcoin 有几个缺陷。例如,系统的分布式 本质上是不灵活的,在几乎所有网络用户更新其客户端之前,都会阻止新功能的实现。一些无法快速修复的关键缺陷阻碍了 Bitcoin 广泛传播。在这种不灵活的模式中,推出新项目会更有效率 而不是永久修复原来的项目。 在本文中,我们研究并提出了针对 Bitcoin 的主要缺陷的解决方案。我们相信 考虑到我们提出的解决方案的系统将带来良性竞争 不同的电子现金系统之间。我们还提出了我们自己的电子现金“CryptoNote”, 这个名字强调了电子现金的下一个突破。 2 Bitcoin 缺点和一些可能的解决方案 2.1 交易可追溯 隐私和匿名是电子现金最重要的方面。点对点支付 寻求隐藏在第三方的视野之外,与传统的相比有明显的区别 银行业务。特别是,T. Okamoto 和 K. Ohta 描述了理想电子现金的六个标准, 其中包括“隐私:用户及其购买之间的关系必须无法追踪 任何人”[30]。从他们的描述中,我们得出了两个完全匿名的属性 电子现金模型必须满足冈本概述的要求 和太田: 不可追踪性:对于每笔传入交易,所有可能的发件人都是等概率的。 不可链接性:对于任何两个传出交易,无法证明它们被发送到 同一个人。 不幸的是,Bitcoin 不满足不可追踪性要求。由于网络参与者之间发生的所有交易都是公开的,因此任何交易都可以 1 3 Bitcoin 绝对无法实现“不可追踪性”。当我向您发送 BTC 时,发送该钱包的钱包 不可撤销地印在 blockchain 上。毫无疑问谁发送了这些资金, 因为只有知道私钥的人才能发送它们。明确追踪到独特的来源和最终接收者。即使两个参与者交换 如果以间接方式筹集资金,适当设计的寻路方法将揭示资金的来源和 最终收件人。 还怀疑Bitcoin不满足第二个性质。 一些研究人员 指出 ([33, 35, 29, 31]) 仔细的 blockchain 分析可能会揭示之间的联系 Bitcoin 网络的用户及其交易。虽然有很多方法 争议[25],疑似可从中提取大量隐藏个人信息 公共数据库。 Bitcoin 未能满足上述两个属性使我们得出结论: 不是匿名的而是伪匿名的电子现金系统。用户发展很快 解决方案来规避这个缺点。两个直接解决方案是“洗钱服务”[2] 和 分布式方法的发展 [3, 4]。两种解决方案都基于混合的想法 一些公共交易并通过某个中间地址发送它们;反过来 存在需要可信第三方的缺点。 最近,I. Miers等人提出了一个更有创意的方案。 [28]:“零币”。零币 利用加密单向累加器和零知识证明,允许用户 将比特币“转换”为零币并使用匿名所有权证明而不是使用它们 基于显式公钥的数字签名。然而,这样的知识证明有一个常数 但大小不方便 - 大约 30kb(基于今天的 Bitcoin 限制),这使得该提案 不切实际的。作者承认该协议不太可能被大多数人接受 Bitcoin 用户 [5]。 2.2 proof-of-work 函数 Bitcoin 的创建者中本聪将多数决策算法描述为“oneCPU-one-vote”,并为他的 proof-of-work 使用了受 CPU 限制的定价函数(双 SHA-256) 计划。由于用户对单笔历史交易订单[1]进行投票,合理性和 这个过程的一致性是整个系统的关键条件。 该模型的安全性有两个缺点。首先,它需要51%的网络资源 挖矿权由诚实用户控制。其次,系统的进展(错误修复, 安全修复等...)需要绝大多数用户支持并同意 更改(当用户更新钱包软件时会发生这种情况)[6]。最后同样的投票 该机制还用于关于某些功能 [7] 的实现的集体民意调查。 这使我们能够推测 proof-of-work 必须满足的属性 定价功能。 此类功能不得使网络参与者拥有重大的 相对于其他参与者的优势;它需要普通硬件和高端硬件之间的平衡 定制设备的成本。从最近的示例 [8] 中,我们可以看到使用了 SHA-256 函数 在 Bitcoin 架构中不具备此属性,因为采矿变得更加高效 GPU 和 ASIC 设备与高端 CPU 相比。 因此,Bitcoin为投票权之间的巨大差距创造了有利条件 参与者,因为它违反了“单 CPU 一票”原则,因为 GPU 和 ASIC 所有者拥有 与 CPU 所有者相比,投票权要大得多。这是一个经典的例子 帕累托原则,即系统中 20% 的参与者控制超过 80% 的选票。 有人可能会争辩说,这种不平等与网络安全无关,因为它不是 少数参与者控制着大多数选票,但这些参与者的诚实性 重要的参与者。然而,这样的论点是有一定缺陷的,因为它实际上是 廉价专用硬件出现的可能性,而不是参与者的诚实度 构成威胁。为了证明这一点,让我们看下面的例子。假设有一个恶意 个人通过廉价的方式创建自己的矿场,从而获得显着的挖矿能力 2 明确追踪到独特的来源和最终接收者。即使两个参与者交换 如果以间接方式筹集资金,适当设计的寻路方法将揭示资金的来源和 最终收件人。 还怀疑Bitcoin不满足第二个性质。 一些研究人员 指出 ([33, 35, 29, 31]) 仔细的 blockchain 分析可能会揭示之间的联系 Bitcoin 网络的用户及其交易。虽然有很多方法 d疑似[25],疑似可提取大量隐藏个人信息 公共数据库。 Bitcoin 未能满足上述两个属性使我们得出结论: 不是匿名的而是伪匿名的电子现金系统。用户发展很快 解决方案来规避这个缺点。两个直接解决方案是“洗钱服务”[2] 和 分布式方法的发展 [3, 4]。两种解决方案都基于混合的想法 一些公共交易并通过某个中间地址发送它们;反过来 存在需要可信第三方的缺点。 最近,I. Miers等人提出了一个更有创意的方案。 [28]:“零币”。零币 利用加密单向累加器和零知识证明,允许用户 将比特币“转换”为零币并使用匿名所有权证明而不是使用它们 基于显式公钥的数字签名。然而,这样的知识证明有一个常数 但大小不方便 - 大约 30kb(基于今天的 Bitcoin 限制),这使得该提案 不切实际的。作者承认该协议不太可能被大多数人接受 Bitcoin 用户 [5]。 2.2 proof-of-work 函数 Bitcoin 的创建者中本聪将多数决策算法描述为“oneCPU-one-vote”,并为他的 proof-of-work 使用了受 CPU 限制的定价函数(双 SHA-256) 计划。由于用户对单笔历史交易订单[1]进行投票,合理性和 这个过程的一致性是整个系统的关键条件。 该模型的安全性有两个缺点。首先,它需要51%的网络资源 挖矿权由诚实用户控制。其次,系统的进展(错误修复, 安全修复等...)需要绝大多数用户支持并同意 更改(当用户更新钱包软件时会发生这种情况)[6]。最后同样的投票 该机制还用于关于某些功能 [7] 的实现的集体民意调查。 这允许我们推测 proof-of-work 必须满足的属性 定价功能。 此类功能不得使网络参与者拥有重大的 相对于其他参与者的优势;它需要普通硬件和高端硬件之间的平衡 定制设备的成本。从最近的示例 [8] 中,我们可以看到使用了 SHA-256 函数 在 Bitcoin 架构中不具备此属性,因为采矿变得更加高效 GPU 和 ASIC 设备与高端 CPU 相比。 因此,Bitcoin为投票权之间的巨大差距创造了有利条件 参与者,因为它违反了“单 CPU 一票”原则,因为 GPU 和 ASIC 所有者拥有 与 CPU 所有者相比,投票权要大得多。这是一个经典的例子 帕累托原则,即系统中 20% 的参与者控制超过 80% 的选票。 有人可能会争辩说,这种不平等与网络安全无关,因为它不是 少数参与者控制着大多数选票,但这些参与者的诚实性 重要的参与者。然而,这样的论点是有一定缺陷的,因为它实际上是 廉价专用硬件出现的可能性,而不是参与者的诚实度 构成威胁。为了证明这一点,让我们看下面的例子。假设有一个恶意 个人通过廉价的方式创建自己的矿场,从而获得显着的挖矿能力 2 4 据推测,如果每个用户总是通过生成新地址来帮助自己匿名 对于每笔收到的付款(这是荒谬的,但从技术上讲是“正确”的方法), 如果每个用户都坚持不发送资金来帮助其他人匿名 两次发送到同一个 BTC 地址,那么 Bitcoin 仍然只能偶尔通过 不可链接性测试。 为什么?消费者数据始终可以用来了解数量惊人的人们。 例如,参见 http://www.applieddatalabs.com/content/target-knows-it-shows 现在,想象一下这是 20 年后的未来,并进一步想象塔吉特不仅知道 关于您在 Target 的购买习惯,但他们一直在挖掘 blockchain 的所有内容 您过去使用 Coinbase 钱包进行的个人购买 十二年。 他们会说“嘿伙计,你今晚可能想买点止咳药,但你不会 明天感觉很好。” 如果正确利用多方排序,情况可能并非如此。例如,参见这个博客文章:http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ 我并不完全相信这一点的数学原理,但是......一次一篇论文,对吧? 需要引用。尽管 Zerocoin 协议(独立)可能还不够,但 Zerocash 协议似乎已经实现了 1kb 大小的事务。该项目由以下机构支持 当然,美国和以色列军队,所以谁知道它的坚固性。另一方面 另一方面,没有人比军方更希望能够在没有监督的情况下使用资金。 http://zerocash-project.org/ 我不相信......例如,参见 http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf 引用 Cryptonote 开发者 Maurice Planck(大概是化名)的话 论坛: “零币,零现金。 我必须承认,这是最先进的技术。 是的,报价 以上是对上一版本协议的分析。据我所知,这不是 288,但是384字节,但无论如何这是个好消息。 他们使用了一种名为 SNARK 的全新技术,该技术有一定的缺点:例如, 创建签名所需的公共参数的大型初始数据库(超过 1 GB)以及 创建交易所需的大量时间(超过一分钟)。最后,他们使用的是 年轻的加密货币,我提到这是一个有争议的想法:https://forum.cryptonote.org/viewtopic.php?f= ” - Maurice P. 2014 年 4 月 3 日星期四晚上 7:56 在CPU中执行的功能,不适合GPU、FPGA或ASIC 计算。 proof-of-work 中使用的“难题”被称为定价函数、成本函数或 拼图功能。

明确追踪到独特的来源和最终接收者。即使两个参与者交换 如果以间接方式筹集资金,适当设计的寻路方法将揭示资金的来源和 最终收件人。 还怀疑Bitcoin不满足第二个性质。 一些研究人员 指出 ([33, 35, 29, 31]) 仔细的 blockchain 分析可能会揭示之间的联系 Bitcoin 网络的用户及其交易。虽然有很多方法 争议[25],疑似可从中提取大量隐藏个人信息 公共数据库。 Bitcoin 未能满足上述两个属性使我们得出结论: 不是匿名的而是伪匿名的电子现金系统。用户发展很快 解决方案来规避这个缺点。两个直接解决方案是“洗钱服务”[2] 和 分布式方法的发展 [3, 4]。两种解决方案都基于混合的想法 一些公共交易并通过某个中间地址发送它们;反过来 存在需要可信第三方的缺点。 最近,I. Miers等人提出了一个更有创意的方案。 [28]:“零币”。零币 利用加密单向累加器和零知识证明,允许用户 将比特币“转换”为零币并使用匿名所有权证明而不是使用它们 基于显式公钥的数字签名。然而,这样的知识证明有一个常数 但大小不方便 - 大约 30kb(基于今天的 Bitcoin 限制),这使得该提案 不切实际的。作者承认该协议不太可能被大多数人接受 Bitcoin 用户 [5]。 2.2 proof-of-work 函数 Bitcoin 创建者中本聪将多数决策算法描述为“oneCPU-one-vote”,并为他的 proof-of-work 使用了 CPU 限制的定价函数(双 SHA-256) 计划。由于用户对单笔历史交易订单[1]进行投票,合理性和 这个过程的一致性是整个系统的关键条件。 该模型的安全性有两个缺点。首先,它需要51%的网络资源 挖矿权由诚实用户控制。其次,系统的进展(错误修复, 安全修复等...)需要绝大多数用户支持并同意 更改(当用户更新钱包软件时会发生这种情况)[6]。最后同样的投票 该机制还用于关于某些功能 [7] 的实现的集体民意调查。 这使我们能够推测 proof-of-work 必须满足的属性 定价功能。 此类功能不得使网络参与者拥有重大的 相对于其他参与者的优势;它需要普通硬件和高端硬件之间的平衡 定制设备的成本。从最近的示例 [8] 中,我们可以看到使用了 SHA-256 函数 在 Bitcoin 架构中不具备此属性,因为采矿变得更加高效 GPU 和 ASIC 设备与高端 CPU 相比。 因此,Bitcoin为投票权之间的巨大差距创造了有利条件 参与者,因为它违反了“单 CPU 一票”原则,因为 GPU 和 ASIC 所有者拥有 与 CPU 所有者相比,投票权要大得多。这是一个经典的例子 帕累托原则,即系统中 20% 的参与者控制超过 80% 的选票。 有人可能会争辩说,这种不平等与网络安全无关,因为它不是 少数参与者控制着大多数选票,但这些参与者的诚实性 重要的参与者。然而,这样的论点是有一定缺陷的,因为它实际上是 廉价专用硬件出现的可能性,而不是参与者的诚实度 构成威胁。为了证明这一点,让我们看下面的例子。假设有一个恶意 个人通过廉价的方式创建自己的矿场,从而获得显着的挖矿能力 2 明确追踪到独特的来源和最终接收者。即使两个参与者交换 如果以间接方式筹集资金,适当设计的寻路方法将揭示资金的来源和 最终收件人。 还怀疑Bitcoin不满足第二个性质。 一些研究人员 指出 ([33, 35, 29, 31]) 仔细的 blockchain 分析可能会揭示之间的联系 Bitcoin 网络的用户及其交易。虽然有很多方法 d疑似[25],疑似可提取大量隐藏个人信息 公共数据库。 Bitcoin 未能满足上述两个属性使我们得出结论: 不是匿名的而是伪匿名的电子现金系统。用户发展很快 解决方案来规避这个缺点。两个直接解决方案是“洗钱服务”[2] 和 分布式方法的发展 [3, 4]。两种解决方案都基于混合的想法 一些公共交易并通过某个中间地址发送它们;反过来 存在需要可信第三方的缺点。 最近,I. Miers等人提出了一个更有创意的方案。 [28]:“零币”。零币 利用加密单向累加器和零知识证明,允许用户 将比特币“转换”为零币并使用匿名所有权证明而不是使用它们 基于显式公钥的数字签名。然而,这样的知识证明有一个常数 但大小不便 - 大约 30kb(基于今天的 Bitcoin 限制),这使得该提案 不切实际的。作者承认该协议不太可能被大多数人接受 Bitcoin 用户 [5]。 2.2 proof-of-work 函数 Bitcoin 创建者中本聪将多数决策算法描述为“oneCPU-one-vote”,并为他的 proof-of-work 使用了 CPU 限制的定价函数(双 SHA-256) 计划。由于用户对单笔历史交易订单[1]进行投票,合理性和 这个过程的一致性是整个系统的关键条件。 该模型的安全性有两个缺点。首先,它需要51%的网络资源 挖矿权由诚实用户控制。其次,系统的进展(错误修复, 安全修复等...)需要绝大多数用户支持并同意 更改(当用户更新钱包软件时会发生这种情况)[6]。最后同样的投票 该机制还用于关于某些功能 [7] 的实现的集体民意调查。 这允许我们推测 proof-of-work 必须满足的属性 定价功能。 此类功能不得使网络参与者拥有重大的 相对于其他参与者的优势;它需要普通硬件和高端硬件之间的平衡 定制设备的成本。从最近的示例 [8] 中,我们可以看到使用了 SHA-256 函数 在 Bitcoin 架构中不具备此属性,因为采矿变得更加高效 GPU 和 ASIC 设备与高端 CPU 相比。 因此,Bitcoin为投票权之间的巨大差距创造了有利条件 参与者,因为它违反了“单 CPU 一票”原则,因为 GPU 和 ASIC 所有者拥有 与 CPU 所有者相比,投票权要大得多。这是一个经典的例子 帕累托原则,即系统中 20% 的参与者控制超过 80% 的选票。 有人可能会争辩说,这种不平等与网络安全无关,因为它不是 少数参与者控制着大多数选票,但这些参与者的诚实性 重要的参与者。然而,这样的论点是有一定缺陷的,因为它实际上是 廉价专用硬件出现的可能性,而不是参与者的诚实度 构成威胁。为了证明这一点,让我们看下面的例子。假设有一个恶意 个人通过廉价的方式创建自己的矿场,从而获得显着的挖矿能力 2 第 2 页的评论

Bitcoin 단점 및 가능한 솔루션

2 Bitcoin 단점 및 몇 가지 가능한 해결 방법 2.1 거래 추적성 개인 정보 보호와 익명성은 전자 현금의 가장 중요한 측면입니다. P2P 결제 제3자의 시선에서 숨기려고 하는 것은 전통적인 방식과 비교할 때 뚜렷한 차이가 있습니다. 은행. 특히 T. Okamoto와 K. Ohta는 이상적인 전자화폐의 6가지 기준을 설명했는데, 여기에는 "개인정보 보호: 사용자와 구매 간의 관계는 추적할 수 없어야 합니다"가 포함되어 있습니다. 누구라도” [30]. 해당 설명에서 우리는 완전히 익명인 두 가지 속성을 도출했습니다. 전자 현금 모델은 Okamoto가 명시한 요구 사항을 준수하기 위해 충족해야 합니다. 그리고 오타: 추적 불가능성: 각 수신 트랜잭션에 대해 가능한 모든 발신자가 동등할 가능성이 있습니다. 연결 해제성: 두 개의 나가는 트랜잭션에 대해 해당 트랜잭션이 다음으로 전송되었음을 증명하는 것은 불가능합니다. 같은 사람. 안타깝게도 Bitcoin은 추적 불가능 요구 사항을 충족하지 않습니다. 네트워크 참여자 간에 발생하는 모든 거래는 공개되므로 모든 거래는 공개될 수 있습니다. 1 크립토노트 v 2.0 니콜라스 반 세이버하겐 2013년 10월 17일 1 소개 “Bitcoin” [1]은 p2p 전자 화폐 개념을 성공적으로 구현했습니다. 둘 다 전문가와 일반 대중은 다음과 같은 편리한 조합을 높이 평가하게 되었습니다. 공개 거래 및 proof-of-work을 신뢰 모델로 사용합니다. 오늘날 전자화폐 사용자층은 꾸준한 속도로 성장하고 있습니다. 고객은 낮은 수수료와 익명성 제공에 매력을 느낍니다. 전자 현금과 상인은 예측되고 분산된 배출을 중요하게 생각합니다. Bitcoin은(는) 전자화폐가 종이화폐만큼 간단하고 편리할 수 있다는 사실을 효과적으로 입증했습니다. 신용 카드. 불행하게도 Bitcoin에는 몇 가지 결함이 있습니다. 예를 들어, 시스템의 분산 성격은 유연성이 없기 때문에 거의 모든 네트워크 사용자가 클라이언트를 업데이트할 때까지 새로운 기능을 구현하지 못합니다. 빠르게 고칠 수 없는 몇 가지 심각한 결함으로 인해 Bitcoin의 광범위한 전파. 이러한 유연하지 못한 모델에서는 새 프로젝트를 출시하는 것이 더 효율적입니다. 원래 프로젝트를 영구적으로 수정하는 대신 본 논문에서는 Bitcoin의 주요 결함에 대한 해결 방법을 연구하고 제안합니다. 우리는 믿는다 우리가 제안하는 솔루션을 고려한 시스템이 건전한 경쟁으로 이어질 것이라고 믿습니다. 다양한 전자 현금 시스템 중에서. 우리만의 전자화폐 '크립토노트'도 제안합니다. 전자 현금의 차세대 혁신을 강조하는 이름입니다. 2 Bitcoin 단점 및 몇 가지 가능한 해결 방법 2.1 거래 추적성 개인 정보 보호와 익명성은 전자 현금의 가장 중요한 측면입니다. P2P 결제 제3자의 시선에서 숨기려고 하는 것은 전통적인 방식과 비교할 때 뚜렷한 차이가 있습니다. 은행. 특히 T. Okamoto와 K. Ohta는 이상적인 전자화폐의 6가지 기준을 설명했는데, 여기에는 "개인정보 보호: 사용자와 구매 간의 관계는 추적할 수 없어야 합니다"가 포함되어 있습니다. 누구든지” [30]. 해당 설명에서 우리는 완전히 익명인 두 가지 속성을 도출했습니다. 전자 현금 모델은 Okamoto가 명시한 요구 사항을 준수하기 위해 충족해야 합니다. 그리고 오타: 추적 불가능성: 각 수신 트랜잭션에 대해 가능한 모든 발신자가 동등할 가능성이 있습니다. 연결 해제성: 두 개의 나가는 트랜잭션에 대해 해당 트랜잭션이 다음으로 전송되었음을 증명하는 것은 불가능합니다. 같은 사람. 안타깝게도 Bitcoin은 추적 불가능 요구 사항을 충족하지 않습니다. 네트워크 참여자 간에 발생하는 모든 거래는 공개되므로 모든 거래는 공개될 수 있습니다. 1 3 Bitcoin "추적 불가능"이 확실히 실패했습니다. 내가 당신에게 BTC를 보낼 때, 그것이 전송되는 지갑 blockchain에 취소할 수 없는 스탬프가 찍혀 있습니다. 그 자금을 누가 보냈는지에 대해서는 의문의 여지가 없습니다. 왜냐하면 개인 키를 아는 사람만이 이를 보낼 수 있기 때문입니다.고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 [25]에서 숨겨진 개인 정보가 많이 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 Bitcoin 네트워크 사용자 및 거래. 여러 가지 방법이 있지만 디[25]이 발행된 경우, 숨겨진 개인정보가 다수 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(현재의 Bitcoin 제한 기준)로 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 4 아마도 모든 사용자가 항상 새 주소를 생성하여 자신의 익명성을 확보하는 데 도움이 된다면 받은 모든 지불에 대해(터무니없지만 기술적으로는 "올바른" 방법임) 그리고 모든 사용자가 절대 자금을 보내지 말라고 주장하여 다른 모든 사람의 익명성을 도왔다면 동일한 BTC 주소로 두 번 전송하면 Bitcoin은 여전히 상황에 따라만 통과합니다. 연결 불가 테스트. 왜? 소비자 데이터는 항상 사람들에 대한 놀라운 양을 파악하는 데 사용될 수 있습니다. 예를 들어 http://www.applieddatalabs.com/content/target-knows-it-shows을 참조하세요. 이제 20년 후의 미래를 상상해 보세요. 또한 Target이 몰랐을 수도 있다고 상상해 보세요. Target에서의 구매 습관에 대해 이야기했지만 그들은 모든 항목에 대해 blockchain을 채굴하고 있었습니다. 과거의 코인베이스 지갑으로 개인 구매 12년. 그들은 "야 친구 오늘 밤에 기침약 좀 사가는 게 좋을 것 같은데, 그러지 않을 거야"라고 말할 거예요. 내일은 괜찮아." 다자간 정렬이 올바르게 활용되는 경우에는 그렇지 않을 수 있습니다. 예를 들어 다음을 참조하세요.블로그 게시물: http://blog.ezyang.com/2012/07/secure-multiparty-bitcoin-anonymization/ 나는 그것에 대한 수학을 완전히 확신하지는 못하지만... 한 번에 한 논문씩, 맞죠? 인용이 필요합니다. Zerocoin 프로토콜(독립형)은 부족할 수 있지만 Zerocash는 프로토콜은 1kb 크기의 트랜잭션을 구현한 것 같습니다. 해당 프로젝트는 다음에서 지원됩니다. 물론 미국과 이스라엘 군대도 마찬가지입니다. 그래서 그 견고함을 누가 알겠습니까? 다른 한편으로는 한편, 군대만큼 감독 없이 자금을 지출할 수 있기를 원하는 사람은 없습니다. http://zerocash-project.org/ 잘 모르겠습니다... 예를 들어 http://fc14.ifca.ai/bitcoin/papers/bitcoin14_submission_12.pdf을 참조하세요. 암호화폐 노트에서 암호화폐 개발자 Maurice Planck(가명으로 추정) 인용 포럼: "제로코인, 제로캐시. 이것은 가장 진보된 기술이라는 것을 인정해야 합니다. 응, 견적이야 위의 내용은 이전 버전의 프로토콜을 분석한 것입니다. 내가 아는 바로는 그렇지 않다. 288이지만 384바이트이지만 어쨌든 이것은 좋은 소식입니다. 그들은 SNARK라는 새로운 기술을 사용했는데, 여기에는 몇 가지 단점이 있습니다. 예를 들어, 서명을 생성하는 데 필요한 공개 매개변수의 대규모 초기 데이터베이스(1GB 이상) 트랜잭션을 생성하는 데 상당한 시간이 소요됩니다(1분 이상). 마지막으로 그들은 제가 논쟁의 여지가 있는 아이디어라고 언급한 젊은 암호화폐: https://forum.cryptonote.org/viewtopic.php?f= " - Maurice P. 목요일 2014년 4월 3일 오후 7:56 CPU에서 수행되는 기능으로 GPU, FPGA, ASIC에는 적합하지 않은 기능 계산. proof-of-work에 사용된 "퍼즐"은 가격 책정 함수, 비용 함수 또는 퍼즐 기능.

고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 [25]에서 숨겨진 개인 정보가 많이 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 고유한 출처와 최종 수신자를 명확하게 추적합니다. 두 참가자가 서로 교환하더라도 간접적인 방법으로 자금을 조달할 때 적절하게 설계된 경로 탐색 방법을 통해 출처와 출처를 밝힐 수 있습니다. 최종 수신자. 또한 Bitcoin이 두 번째 속성을 충족하지 않는 것으로 의심됩니다. 일부 연구자 ([33, 35, 29, 31]) 주의 깊은 blockchain 분석을 통해 다음과 같은 연관성이 드러날 수 있다고 말했습니다. Bitcoin 네트워크 사용자 및 해당 거래. 여러 가지 방법이 있지만 디[25]이 발행된 경우, 숨겨진 개인정보가 다수 추출될 수 있다고 의심됩니다. 공개 데이터베이스. Bitcoin은 위에 설명된 두 가지 속성을 충족하지 못하므로 다음과 같은 결론을 내릴 수 있습니다. 익명이 아닌 유사 익명 전자 현금 시스템입니다. 사용자의 개발 속도가 빨랐습니다. 이러한 단점을 해결하기 위한 솔루션입니다. 두 가지 직접적인 솔루션은 "세탁 서비스" [2]와 분산 방법의 개발 [3, 4]. 두 솔루션 모두 혼합이라는 아이디어를 기반으로 합니다. 여러 공개 거래를 중개 주소를 통해 전송합니다. 차례로 신뢰할 수 있는 제3자가 필요하다는 단점이 있습니다. 최근에는 I. Miers et al.에 의해 보다 창의적인 계획이 제안되었습니다. [28]: "제로코인". 제로코인 사용자가 다음을 수행할 수 있도록 하는 암호화 단방향 누산기와 영지식 증명을 활용합니다. 비트코인을 제로코인으로 "전환"하고 대신 익명의 소유권 증명을 사용하여 사용합니다. 명시적인 공개 키 기반 디지털 서명. 그러나 그러한 지식 증명에는 상수가 있습니다. 하지만 불편한 크기 - 약 30kb(오늘의 Bitcoin 제한 기준)로 인해 제안이 이루어집니다. 비실용적이다. 저자들은 이 프로토콜이 대다수의 사람들에 의해 받아들여질 가능성이 낮다는 점을 인정합니다. Bitcoin 사용자 [5]. 2.2 proof-of-work 함수 Bitcoin 제작자 Satoshi Nakamoto는 다수결 의사 결정 알고리즘을 "oneCPU-one-vote"로 설명하고 proof-of-work에 CPU 제한 가격 책정 기능(이중 SHA-256)을 사용했습니다. 계획. 사용자는 단일 거래 내역 주문 [1]에 투표하므로 합리성과 이 프로세스의 일관성은 전체 시스템에 중요한 조건입니다. 이 모델의 보안에는 두 가지 단점이 있습니다. 첫째, 네트워크의 51%가 필요합니다. 채굴 능력은 정직한 사용자의 통제하에 있습니다. 둘째, 시스템의 진행(버그 수정, 보안 수정 등)을 위해서는 대다수의 사용자가 이를 지지하고 동의해야 합니다. 변경 사항(사용자가 지갑 소프트웨어를 업데이트할 때 발생) [6].마지막으로 동일한 투표 메커니즘은 [7] 일부 기능 구현에 대한 집단 여론 조사에도 사용됩니다. 이를 통해 우리는 proof-of-work에 의해 충족되어야 하는 속성을 추측할 수 있습니다. 가격 책정 기능. 그러한 기능은 네트워크 참가자가 중요한 정보를 가질 수 있도록 해서는 안 됩니다. 다른 참가자에 비해 이점이 있습니다. 일반 하드웨어와 높은 하드웨어 간의 패리티가 필요합니다. 맞춤형 장치 비용. 최근 예제 [8]에서 SHA-256 함수가 사용된 것을 볼 수 있습니다. Bitcoin 아키텍처에서는 마이닝이 더욱 효율적으로 진행됨에 따라 이 속성을 보유하지 않습니다. GPU 및 ASIC 장치를 고급 CPU와 비교합니다. 따라서 Bitcoin은 투표권 간의 큰 격차에 유리한 조건을 만듭니다. GPU 및 ASIC 소유자가 소유하고 있기 때문에 "1-CPU-1-투표" 원칙을 위반하므로 참가자 CPU 소유자와 비교할 때 훨씬 더 큰 투표권. 의 고전적인 예이다. 파레토 원칙은 시스템 참가자의 20%가 투표의 80% 이상을 통제한다는 것입니다. 그러한 불평등은 네트워크 보안과 관련이 없다고 주장할 수도 있습니다. 다수의 투표를 통제하는 소수의 참가자이지만 이들의 정직성은 중요한 참가자. 그러나 그러한 주장은 다소 결함이 있다. 참여자의 정직성보다는 값싼 전문 하드웨어가 등장할 가능성 위협을 가합니다. 이를 설명하기 위해 다음 예를 들어보겠습니다. 악의적인 가정을 해보자 개인은 값싼 채굴을 통해 자신의 광산 농장을 건설함으로써 상당한 채굴력을 얻습니다. 2 2페이지의 설명

CryptoNote 技术

现在我们已经涵盖了 Bitcoin 技术的局限性,我们将重点关注 介绍 CryptoNote 的功能。

크립토노트 기술

이제 Bitcoin 기술의 한계를 다루었으므로 다음에 집중하겠습니다. CryptoNote의 기능을 소개합니다.

交易无法追踪

在本节中,我们提出了一种完全匿名交易的方案,同时满足不可追溯性 和不可链接条件。我们解决方案的一个重要特点是它的自主性:发送者 不需要与其他用户或受信任的第三方合作进行交易; 因此,每个参与者都独立地产生掩护流量。 4.1 文献综述 我们的方案依赖于称为群签名的加密原语。首先提出者 D. Chaum 和 E. van Heyst [19],它允许用户代表组签署他的消息。 签署消息后,用户提供(出于验证目的)而不是他自己的单一公共信息 1这就是所谓的“软限制”——创建新块的参考客户端限制。硬最大值 可能的块大小为 1 MB 4 如有必要,它们会导致主要缺点。不幸的是,很难预测何时 常量可能需要改变,替换它们可能会导致可怕的后果。 硬编码限制更改导致灾难性后果的一个很好的例子是块 大小限制设置为 250kb1。这个限制足以容纳大约 10000 个标准交易。在 2013 年初,这一限制几乎已达到,并达成协议增加 限制。该更改在钱包版本 0.8 中实施,并以 24 块链分裂结束 以及成功的双花攻击[9]。虽然该错误不在 Bitcoin 协议中,但是 相反,在数据库引擎中,如果有的话,可以通过简单的压力测试轻松捕获它 没有人为引入的块大小限制。 常量也充当集中点的一种形式。 尽管具有点对点的性质 Bitcoin,绝大多数节点使用官方开发的参考客户端[10] 一小群人。该小组决定对协议进行更改 大多数人都会接受这些变化,无论它们的“正确性”如何。一些决定导致 激烈讨论甚至呼吁抵制[11],这表明社区和 开发人员可能在一些重要问题上存在分歧。因此,制定一项协议似乎是合乎逻辑的 使用用户可配置和自我调整的变量作为避免这些问题的可能方法。 2.5 庞大的脚本 Bitcoin 中的脚本系统是一个繁重且复杂的功能。它可能允许人们创建 复杂的交易[12],但由于安全问题和原因,其某些功能被禁用 有些甚至从未使用过[13]。脚本(包括发送者和接收者部分) Bitcoin 中最受欢迎的交易如下所示: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG。 该脚本长 164 字节,其唯一目的是检查接收者是否拥有 验证他的签名所需的密钥。 3 CryptoNote 技术 现在我们已经涵盖了 Bitcoin 技术的局限性,我们将重点关注 介绍 CryptoNote 的功能。 4 交易无法追踪 在本节中,我们提出了一种完全匿名交易的方案,同时满足不可追溯性 和不可链接条件。我们解决方案的一个重要特点是它的自主性:发送者 不需要与其他用户或受信任的第三方合作进行交易; 因此,每个参与者都独立地产生掩护流量。 4.1 文献综述 我们的方案依赖于称为群签名的加密原语。首先提出者 D. Chaum 和 E. van Heyst [19],它允许用户代表组签署他的消息。 签署消息后,用户提供(出于验证目的)而不是他自己的单一公共信息 1这就是所谓的“软限制”——创建新块的参考客户端限制。硬最大值 可能的块大小为 1 MB 4 7 回想起来,在代码中将块大小设置为固定限制似乎是一个很大的错误。 Visa 和 Mastercard 可以处理数千甚至数十万笔交易 每秒。然而,交易是一个随机过程,有时是大规模爆发, 有时会安静几个小时。想想比特币交易量。 设计一个在必要时动态增加块大小的系统似乎是一个伟大的想法 以适应增加的交易流量,并在必要时动态减少交易流量 提高带宽效率。 现在,将该概念应用于所有系统参数。只要我们小心翼翼地保持 系统从鱼尾失控,这效果会很好。 https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki 如前所述,如果变量能够自我调整,则必须施加一些控制,以便 防止系统疯狂失控。我们会解决这个问题的。 如果这是一篇维基百科文章,它会被标记为“STUB”。尽管我们确实处于 在介绍“Bitcoin的问题”的部分中,我想在这里进行一些阐述。为什么是 164 字节对于一个简单的“检查密钥”任务来说是不可接受的?他们能得到多小的 合理的脚本语言?不过,我不是计算机科学家。 http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 如上所述,群组签名需要群组管理员。 群主有能力 撤销任何签名者的匿名性。因此,团体中存在着内在的集中化 签名方案。

key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 只提供一次性的:公钥可能出现在很多国外的验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 仅提供一次性的:公钥可能出现在许多国外验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择e 使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 8 环签名的工作原理如下:亚历克斯想要向维基解密泄露有关她雇主的信息。公司的每位员工都有一个私钥/公钥对(Ri、Ui)。她作曲 她的签名,输入设置为她的消息,m,她的私钥,Ri 和每个人的 公钥,(Ui;i=1...n)。任何人(不知道任何私钥)都可以轻松验证 某些对(Rj,Uj)必须已用于构建签名......工作的人 对于亚历克斯的雇主来说……但这本质上是一种随机猜测,以确定它可能是哪一个。 http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 请注意,此处描述的可链接环签名与“不可链接”相反 如上所述。这里我们截取两条消息,可以判断是否相同 一方发送了他们,尽管我们仍然无法确定该方是谁。 的 用于构造 Cryptonote 的“不可链接”的定义意味着我们无法确定是否 同一方正在接收它们。 因此,我们这里真正发生的是四件事。 系统可以是可链接的或 不可链接,取决于是否可以确定发送者是否 两条消息是相同的(无论这是否需要撤销匿名)。 并且 系统可以是不可链接的或不可不可链接的,具体取决于是否可以 判断两条消息的接收者是否相同(无论是否相同) 这需要撤销匿名)。 请不要因为这个可怕的术语而责怪我。 图论学家可能应该是 很高兴。你们中的一些人可能更喜欢“接收者可链接”而不是“发送者可链接”。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 当我读到这篇文章时,这似乎是一个愚蠢的功能。然后我读到这可能是一个功能 电子投票,这似乎是有道理的。从这个角度来看,有点酷。但我是 不完全确定是否有意实施可追踪的环签名。 http://search.ieice.org/bin/summary.php?id=e95-a_1_151

key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 仅提供一次性的:公钥可能出现在许多国外验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 仅提供一次性的:公钥可能出现在许多国外验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择e 使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 9 天哪,本白皮书的作者肯定可以用更好的措辞!假设一个 员工持股的公司想要就是否收购某些新产品进行投票 资产,Alex 和 Brenda 都是雇员。公司为每位员工提供 诸如“我对提案 A 投赞成票!”之类的消息其中存在元信息“问题”[PROP A] 如果他们支持该提议,则要求他们使用可追踪的环签名进行签名。 使用传统的环签名,不诚实的员工可以多次签署消息, 大概有不同的 nonce,以便可以随意投票。另一方面 另一方面,在可追踪的环签名方案中,Alex 将去投票,她的私钥将具有 已用于问题[PROP A]。如果亚历克斯试图签署类似“我,布伦达,同意 提议A!” “陷害”布伦达和双重投票,这条新消息也会有问题 [提案A]。由于 Alex 的私钥已经触发了 [PROP A] 问题,Alex 的身份 将立即被揭露为欺诈行为。 面对现实吧,这真是太酷了!密码学强制投票平等。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 这篇论文很有趣,本质上创建了一个临时环签名,但没有任何 其他参与者的同意。签名的结构可能不同;我没挖过 很深,我还没有看到它是否安全。 https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai 临时组签名是: 环签名,即没有组的群签名 经理,没有集中化,但允许特设小组中的成员可以证明地声称 它已(未)代表该团体发布匿名签名。 http://link.springer.com/chapter/10.1007/11908739_9 根据我的理解,这不太正确。我的理解可能会改变 我对这个项目有了更深入的了解。但根据我的理解,层次结构是这样的。 群组签名:群组管理员控制可追溯性以及添加或删除成员的能力 从成为签名者。 Ring sigs:没有组管理员的任意组形成。没有匿名撤销。 没有办法通过特定的签名来否定自己。带有可追踪和可链接的环 签名、匿名在某种程度上是可扩展的。 Ad-hoc 群签名:类似于环签名,但成员可以证明他们没有创建 一个特定的签名。当小组中的任何人都可以生成签名时,这一点很重要。 http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 藤崎和铃木的算法后来被作者调整以提供一次性性。所以 我们将同时分析 Fujisaki 和 Suzuki 的算法以及新算法 而不是在这里讨论它。

key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 仅提供一次性的:公钥可能出现在许多国外验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 key,而是他所在组的所有用户的密钥。验证者确信真正的签名者是 该组的成员,但不能唯一地识别签名者。 最初的协议需要一个可信的第三方(称为组经理),而他是 唯一可以追踪签名者的人。引入了称为环签名的下一个版本 作者:Rivest 等人。在 [34] 中,是一个没有组经理和匿名的自治计划 撤销。后来出现了该方案的各种修改:可链接环签名 [26, 27, 17]允许确定两个签名是否由同一组成员产生,可追踪 环签名 [24, 23] 通过提供追踪签名者的可能性来限制过度匿名 两条消息涉及相同的元信息(或 [24] 中的“标签”)。 类似的密码结构也称为临时组签名 [16, 38]。它 强调任意的组形成,而组/环签名方案则意味着 固定的成员集。 在很大程度上,我们的解决方案基于 E. Fujisaki 的作品“可追踪环签名” 和铃木 [24]。为了区分原始算法和我们的修改算法,我们将 将后者称为一次性环签名,强调用户仅产生一个有效的能力 在他的私钥下签名。我们弱化了可追溯性,保留了可链接性 仅提供一次性的:公钥可能出现在许多国外验证集中,并且 私钥可用于生成唯一的匿名签名。如果出现双重支出 尝试将这两个签名链接在一起,但不必透露签名者 为了我们的目的。 4.2 定义 4.2.1 椭圆曲线参数 作为我们的基本签名算法,我们选择e 使用快速方案 EdDSA,该方案是开发和 由 D.J. 实施伯恩斯坦等人。 [18]。与 Bitcoin 的 ECDSA 一样,它基于椭圆曲线 离散对数问题,因此我们的方案将来也可以应用于 Bitcoin 。 常用参数有: q:素数; q = 2255 -19; d:Fq的一个元素; d = −121665/121666; E:椭圆曲线方程; −x2 + y2 = 1 + dx2y2; G:基点; G = (x,−4/5); l:基点的素数阶; l = 2252 + 27742317777372353535851937790883648493; Hs:加密 hash 函数 \(\{0, 1\}^* \to \mathbb{F}_q\); Hp:确定性 hash 函数 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\)。 4.2.2 术语 增强隐私需要新的术语,该术语不应与 Bitcoin 实体混淆。 private ec-key 是一个标准的椭圆曲线私钥:一个数字 \(a \in [1, l - 1]\); public ec-key 是标准椭圆曲线公钥:点A = aG; 一次性密钥对是一对私有和公共 ec 密钥; 5 10 “可链接环签名”意义上的可链接性意味着我们可以判断两个传出交易是否来自同一来源,而无需透露来源是谁。作者削弱了 可链接性,以便 (a) 保护隐私,但仍然 (b) 使用私钥发现任何交易 第二次为无效。 好的,这是一个事件顺序问题。 考虑以下场景。 我的挖矿 计算机将拥有当前的 blockchain,它将拥有自己调用的交易块 合法,它将在 proof-of-work 拼图中的该块上工作,并且它将有一个 要添加到下一个块的待处理交易列表。它还将发送任何新的 交易进入该待处理交易池。 如果我不解决下一个块,但是 其他人这样做了,我得到了 blockchain 的更新副本。我正在研究的区块和 我的待处理交易列表可能包含一些现已合并的交易 进入blockchain。 解开我的待处理块,将其与我的待处理交易列表结合起来,然后调用它 我的待处理交易池。删除现在正式位于 blockchain 中的所有内容。 现在,我该怎么办?我应该首先检查并“消除所有双花”吗?另一方面 另一方面,我是否应该搜索列表并确保每个私钥尚未被 使用过,如果它已经在我的列表中使用过,那么我首先收到第一个副本,因此 任何进一步的复制都是非法的。因此,我继续简单地删除第一个之后的所有实例 同一个私钥。 代数几何从来都不是我的强项。 http://en.wikipedia.org/wiki/EdDSA 这速度,太厉害了。这是代数几何的胜利。并不是说我什么都知道 关于那个。 不管有没有问题,离散日志变得非常快。量子计算机吃掉它们 早餐。 http://link.springer.com/article/10.1007/s13389-012-0027-1 这成为一个非常重要的数字,但没有解释或引用它是如何产生的 被选中了。简单地选择一个已知的大素数就可以了,但是如果有已知的 关于这个大质数的事实可能会影响我们的选择。加密货币的不同变体 可以选择不同的值 嗯,但是本文没有讨论如何做到这一点 选择将影响我们对第 5 页列出的其他全局参数的选择。 本文需要一个关于选择参数值的章节。

私有用户密钥是一对 (a, b) 两个不同的私有 ec-key; 跟踪密钥是一对 (a, B) 私有和公共 ec-key(其中 B = bG 且 a̸= b); 公共用户密钥是从 (a, b) 派生的两个公共 ec-key 的一对 (A, B); 标准地址是提供给人类友好字符串的公共用户密钥的表示 具有纠错功能; 截断的地址是给定的公共用户密钥的后半部分(B点)的表示 转换为人类友好的字符串并进行纠错。 交易结构仍然与Bitcoin中的结构类似:每个用户都可以选择 几个独立的收款(交易输出),用相应的签名 私钥并将它们发送到不同的目的地。 与 Bitcoin 的模型相反,用户拥有唯一的私钥和公钥,在 提出的模型发送者根据接收者的地址生成一次性公钥 一些随机数据。从这个意义上说,同一接收者的传入交易被发送到 一次性公钥(不直接发送到唯一地址)并且只有接收者才能恢复 相应的私人部分来赎回他的资金(使用他唯一的私钥)。收件人可以 使用环签名来支出资金,使他的所有权和实际支出保持匿名。 协议的详细信息将在接下来的小节中解释。 4.3 无法关联的付款 经典的 Bitcoin 地址一旦发布,就成为传入的明确标识符 付款,将它们链接在一起并与接收者的假名绑定。如果有人想要 收到“解绑”交易时,他应该通过私人渠道将其地址传达给发送者。 如果他想收到不同的交易,而这些交易不能被证明属于同一所有者 他应该生成所有不同的地址,并且永远不要以自己的笔名发布它们。 公共 私人 爱丽丝 卡罗尔 鲍勃的地址 1 鲍勃的地址 2 鲍勃的钥匙 1 鲍勃的钥匙 2 鲍勃 图 2. 传统的 Bitcoin 密钥/交易模型。 我们提出了一个解决方案,允许用户发布单个地址并无条件接收 无法链接的付款。每个 CryptoNote 输出的目的地(默认情况下)是一个公钥, 来自收件人的地址和发件人的随机数据。相对 Bitcoin 的主要优势 默认情况下,每个目标密钥都是唯一的(除非发送者对每个目标密钥使用相同的数据) 他的交易给同一个接收者)。因此,不存在“地址重用”的问题 设计,没有观察者可以确定是否有任何交易被发送到特定地址或链接 两个地址在一起。 6 私有用户密钥是一对 (a, b) 两个不同的私有 ec-key; 跟踪密钥是一对 (a, B) 私有和公共 ec-key(其中 B = bG 且 a̸= b); 公共用户密钥是从 (a, b) 派生的两个公共 ec-key 的一对 (A, B); 标准地址是提供给人类友好字符串的公共用户密钥的表示 具有纠错功能; 截断的地址是给定的公共用户密钥的后半部分(B点)的表示 转换为人类友好的字符串并进行纠错。 交易结构仍然与Bitcoin中的结构类似:每个用户都可以选择 几个独立的收款(交易输出),用相应的签名 私钥并将它们发送到不同的目的地。 与 Bitcoin 的模型相反,用户拥有唯一的私钥和公钥,在 提出的模型发送者根据接收者的地址生成一次性公钥 一些随机数据。从这个意义上说,同一接收者的传入交易被发送到 一次性公钥(不直接发送到唯一地址)并且只有接收者才能恢复 相应的私人部分来赎回他的资金(使用他唯一的私钥)。收件人可以 使用环签名来支出资金,使他的所有权和实际支出保持匿名。 协议的详细信息将在接下来的小节中解释。 4.3 无法关联的付款 经典的 Bitcoin 地址一旦发布,就成为传入的明确标识符 付款,将它们链接在一起并与接收者的假名绑定。如果有人想要 收到“解绑”交易时,他应该通过私人渠道将其地址传达给发送者。 如果他想收到不同的交易,而这些交易不能被证明属于同一所有者 他应该生成所有不同的地址,并且永远不要以自己的笔名发布它们。 公共 私人 爱丽丝 卡罗尔 鲍勃的地址 1 鲍勃的地址 2 鲍勃的钥匙 1 鲍勃的钥匙 2 鲍勃 图 2. 传统的 Bitcoin 密钥/交易模式埃尔。 我们提出了一个解决方案,允许用户发布单个地址并无条件接收 无法链接的付款。每个 CryptoNote 输出的目的地(默认情况下)是一个公钥, 来自收件人的地址和发件人的随机数据。相对 Bitcoin 的主要优势 默认情况下,每个目标密钥都是唯一的(除非发送者对每个目标密钥使用相同的数据) 他的交易给同一个接收者)。因此,不存在“地址重用”的问题 设计,没有观察者可以确定是否有任何交易被发送到特定地址或链接 两个地址在一起。 6 11 所以这就像 Bitcoin,但具有无限的匿名邮政信箱,只能由收件人兑换 生成与环签名一样匿名的私钥。 Bitcoin 就是这样工作的。 如果 Alex 刚刚从 Frank 收到的钱包里有 0.112 Bitcoin,那么她确实有一个签名 消息“我,[FRANK],发送 0.112 Bitcoin 至 [alex] + H0 + N0”,其中 1) Frank 已签署 用他的私钥 [FRANK] 发送消息,2) Frank 已用 Alex 的公钥签署了该消息 key,[alex],3) Frank 包含了某种形式的比特币历史,H0,以及 4) Frank 包括称为 nonce, N0 的随机数据位。 如果 Alex 然后想要发送 0.011 Bitcoin 给 Charlene,她会接受 Frank 的消息,并且她 将其设置为 H1,并签署两条消息:一条用于她的交易,一条用于更改。 H1=“我,[FRANK],发送 0.112 Bitcoin 至 [alex] + H0 + N” “我,[ALEX],发送 0.011 Bitcoin 至 [charlene] + H1 + N1" “我,[ALEX],发送 0.101 Bitcoin 作为对 [alex] + H1 + N2 的更改。” Alex 用她的私钥 [ALEX] 签署了两条消息,第一条消息是用 Charlene 的 公钥 [charlene],带有 Alex 公钥 [alex] 的第二条消息,包括 历史和一些随机生成的 nonces N1 和 N2 适当。 Cryptonote 的工作原理如下: 如果 Alex 在她刚刚从 Frank 收到的钱包里有 0.112 Cryptonote,那么她确实有一个签名的 消息“我,[临时组中的某个人],将 0.112 Cryptonote 发送到 [一次性地址] + H0 + N0。” Alex 通过检查她的私钥 [ALEX] 发现这是她的钱 每一条传递的消息的[一次性地址],如果她想花掉它,她会在 以下方式。 她选择了这笔钱的接收者,也许夏琳已经开始投票支持无人机袭击,所以 亚历克斯想汇款给布伦达。因此 Alex 查找 Brenda 的公钥 [brenda], 并使用她自己的私钥 [ALEX] 生成一次性地址 [ALEX+brenda]。她 然后从加密货币用户网络中选择一个任意集合 C 并构造 来自该临时组的环签名。 我们将历史记录设置为上一条消息,添加 nonces,然后照常进行吗? H1 =“我,[临时组中的某人],将 0.112 Cryptonote 发送到 [一次性地址] + H0 + N0。” “我,[集合 C 中的某个人],将 0.011 Cryptonote 发送至 [one-time-address-made-fromALEX+brenda] + H1 + N1” “我,[集合 C 中的某个人],将 0.101 Cryptonote 作为找零发送给 [one-time-address-madefrom-ALEX+alex] + H1 + N2” 现在,Alex 和 Brenda 都扫描所有传入消息,以查找曾经存在过的一次性地址。 使用他们的密钥创建。 如果他们找到任何消息,那么该消息就是他们自己的全新消息 加密货币! 即便如此,交易仍将达到 blockchain。如果硬币进入该地址 已知是由犯罪分子、政治捐助者或委员会和账户发送的 预算严格(即贪污),或者这些代币的新所有者犯了错误 并将这些硬币发送到一个与他已知拥有的硬币相同的地址,即匿名夹具 比特币上涨了。

私有用户密钥是一对 (a, b) 两个不同的私有 ec-key; 跟踪密钥是一对 (a, B) 私有和公共 ec-key(其中 B = bG 且 a̸= b); 公共用户密钥是从 (a, b) 派生的两个公共 ec-key 的一对 (A, B); 标准地址是提供给人类友好字符串的公共用户密钥的表示 具有纠错功能; 截断的地址是给定的公共用户密钥的后半部分(B点)的表示 转换为人类友好的字符串并进行纠错。 交易结构仍然与Bitcoin中的结构类似:每个用户都可以选择 几个独立的收款(交易输出),用相应的签名 私钥并将它们发送到不同的目的地。 与 Bitcoin 的模型相反,用户拥有唯一的私钥和公钥,在 提出的模型发送者根据接收者的地址生成一次性公钥 一些随机数据。从这个意义上说,同一接收者的传入交易被发送到 一次性公钥(不直接发送到唯一地址)并且只有接收者才能恢复 相应的私人部分来赎回他的资金(使用他唯一的私钥)。收件人可以 使用环签名来支出资金,使他的所有权和实际支出保持匿名。 协议的详细信息将在接下来的小节中解释。 4.3 无法关联的付款 经典的 Bitcoin 地址一旦发布,就成为传入的明确标识符 付款,将它们链接在一起并与接收者的假名绑定。如果有人想要 收到“解绑”交易时,他应该通过私人渠道将其地址传达给发送者。 如果他想收到不同的交易,而这些交易不能被证明属于同一所有者 他应该生成所有不同的地址,并且永远不要以自己的笔名发布它们。 公共 私人 爱丽丝 卡罗尔 鲍勃的地址 1 鲍勃的地址 2 鲍勃的钥匙 1 鲍勃的钥匙 2 鲍勃 图 2. 传统的 Bitcoin 密钥/交易模型。 我们提出了一个解决方案,允许用户发布单个地址并无条件接收 无法链接的付款。每个 CryptoNote 输出的目的地(默认情况下)是一个公钥, 来自收件人的地址和发件人的随机数据。对抗 Bitcoin 的主要优势 默认情况下,每个目标密钥都是唯一的(除非发送者对每个目标密钥使用相同的数据) 他的交易给同一个接收者)。因此,不存在“地址重用”的问题 设计,没有观察者可以确定是否有任何交易被发送到特定地址或链接 两个地址在一起。 6 私有用户密钥是一对 (a, b) 两个不同的私有 ec-key; 跟踪密钥是一对 (a, B) 私有和公共 ec-key(其中 B = bG 且 a̸= b); 公共用户密钥是从 (a, b) 派生的两个公共 ec-key 的一对 (A, B); 标准地址是提供给人类友好字符串的公共用户密钥的表示 具有纠错功能; 截断的地址是给定的公共用户密钥的后半部分(B点)的表示 转换为人类友好的字符串并进行纠错。 交易结构仍然与Bitcoin中的结构类似:每个用户都可以选择 几个独立的收款(交易输出),用相应的签名 私钥并将它们发送到不同的目的地。 与 Bitcoin 的模型相反,用户拥有唯一的私钥和公钥,在 提出的模型发送者根据接收者的地址生成一次性公钥 一些随机数据。从这个意义上说,同一接收者的传入交易被发送到 一次性公钥(不直接发送到唯一地址)并且只有接收者才能恢复 相应的私人部分来赎回他的资金(使用他唯一的私钥)。收件人可以 使用环签名来支出资金,使他的所有权和实际支出保持匿名。 协议的详细信息将在接下来的小节中解释。 4.3 无法关联的付款 经典的 Bitcoin 地址一旦发布,就成为传入的明确标识符 付款,将它们链接在一起并与接收者的假名绑定。如果有人想要 收到“解绑”交易时,他应该通过私人渠道将其地址传达给发送者。 如果他想收到不同的交易,而这些交易不能被证明属于同一所有者 他应该生成所有不同的地址,并且永远不要以自己的笔名发布它们。 公共 私人 爱丽丝 卡罗尔 鲍勃的地址 1 鲍勃的地址 2 鲍勃的钥匙 1 鲍勃的钥匙 2 鲍勃 图 2. 传统的 Bitcoin 密钥/交易模式埃尔。 我们提出了一个解决方案,允许用户发布单个地址并无条件接收 无法链接的付款。每个 CryptoNote 输出的目的地(默认情况下)是一个公钥, 来自收件人的地址和发件人的随机数据。相对 Bitcoin 的主要优势 默认情况下,每个目标密钥都是唯一的(除非发送者对每个目标密钥使用相同的数据) 他的交易给同一个接收者)。因此,不存在“地址重用”的问题 设计,没有观察者可以确定是否有任何交易被发送到特定地址或链接 两个地址在一起。 6 12 因此,用户不是从地址(实际上是公钥)发送硬币到地址 (另一个公钥)使用他们的私钥,用户从一次性邮政信箱发送硬币 (使用您朋友的公钥生成)到一次性邮政信箱(类似地)使用您的 自己的私钥。 从某种意义上说,我们是在说“好吧,每个人在钱被使用的时候把手拿开” 转来转去!只要知道我们的钥匙可以打开那个盒子就足够了 我们知道盒子里有多少钱。 切勿将指纹放在邮政信箱或 实际使用时,只需交易装满现金的盒子即可。这样我们就不知道是谁发的 什么,但是这些公共地址的内容仍然是无摩擦的、可替代的、可分割的,并且 仍然拥有我们想要的所有其他良好的货币品质,比如比特币。” 无限组邮政信箱。 你公布地址,我有私钥。我使用我的私钥和您的地址,并且 一些随机数据,以生成公钥。该算法的设计使得,由于您 地址用于生成公钥,只有您的私钥才能解锁 消息。 观察者 Eve 看到您发布了您的地址,并看到了我宣布的公钥。然而, 她不知道我是否根据你的地址或她的地址或布伦达的地址公布了我的公钥 或夏琳的,或任何人的。她根据我宣布的公钥检查她的私钥 并发现它不起作用;这不是她的钱。她不知道其他人的私钥,并且 只有消息的接收者才拥有可以解锁消息的私钥。所以没有人 倾听可以确定谁收到了钱,更不用说拿走了钱。

公共 私人 爱丽丝 卡罗尔 一次性钥匙 一次性钥匙 一次性钥匙 鲍勃 鲍勃的钥匙 鲍勃的地址 图 3. CryptoNote 密钥/交易模型。 首先,发送者执行 Diffie-Hellman 交换,从他的数据中获取共享秘密,并 收件人地址的一半。然后,他使用共享的密钥计算一次性目标密钥 秘密和地址的后半部分。收件人需要两个不同的 ec-key 对于这两个步骤,因此标准 CryptoNote 地址几乎是 Bitcoin 钱包的两倍 地址。 接收方还执行 Diffie-Hellman 交换以恢复相应的 秘密密钥。 标准交易顺序如下: 1. Alice 想要向 Bob 发送一笔付款,Bob 已经发布了他的标准地址。 她 解压地址并获取 Bob 的公钥 (A, B)。 2. Alice 生成一个随机 \(r \in [1, l - 1]\) 并计算一次性公钥 \(P = H_s(rA)G +\) B. 3. Alice 使用 P 作为输出的目标密钥,并且还打包值 R = rG(作为一部分) Dffie-Hellman 交换的一部分)进入交易的某个地方。请注意,她可以创建 具有唯一公钥的其他输出:不同接收者的密钥(Ai,Bi)意味着不同的 Pi 即使使用相同的 r。 交易 发送方公钥 发射输出 金额 目的地键 R=rG P = Hs(rA)G + B 接收者的 公钥 发送者的随机数据 r (甲、乙) 图 4. 标准交易结构。 4. Alice 发送交易。 5. Bob 用他的私钥 (a, b) 检查每笔通过的交易,并计算 P ′ = Hs(aR)G + B。 如果Alice与Bob作为接收者的交易也在其中, 则 aR = arG = rA 且 P ′ = P。 7 公共 私人 爱丽丝 卡罗尔 一次性钥匙 一次性钥匙 一次性钥匙 鲍勃 鲍勃的钥匙 鲍勃的地址 图 3. CryptoNote 密钥/交易模型。 首先,发送者执行 Diffie-Hellman 交换,从他的数据中获取共享秘密,并 收件人地址的一半。然后,他使用共享的密钥计算一次性目标密钥 秘密和地址的后半部分。收件人需要两个不同的 ec-key 对于这两个步骤,因此标准 CryptoNote 地址几乎是 Bitcoin 钱包的两倍 地址。 接收方还执行 Diffie-Hellman 交换以恢复相应的 秘密密钥。 标准交易顺序如下: 1. Alice 想要向 Bob 发送一笔付款,Bob 已经发布了他的标准地址。 她 解压地址并获取 Bob 的公钥 (A, B)。 2. Alice 生成一个随机 \(r \in [1, l - 1]\) 并计算一次性公钥 \(P = H_s(rA)G +\) B. 3. Alice 使用 P 作为输出的目标密钥,并且还打包值 R = rG(作为一部分) Dffie-Hellman 交换的一部分)进入交易的某个地方。请注意,她可以创建 具有唯一公钥的其他输出:不同接收者的密钥(Ai,Bi)意味着不同的 Pi 即使使用相同的 r。 交易 发送方公钥 发射输出 金额 目的地键 R=rG P = Hs(rA)G + B 接收者的 公钥 发送者的随机数据 r (甲、乙) 图 4. 标准交易结构。 4. Alice 发送交易。 5. Bob 用他的私钥 (a, b) 检查每笔通过的交易,并计算 P ′ = Hs(aR)G + B。 如果Alice与Bob作为接收者的交易也在其中, 则 aR = arG = rA 且 P ′ = P。 7 13 我想知道实施密码学的“选择”会带来多大的痛苦 计划。椭圆形或其他形状。因此,如果将来某个计划被破坏,货币就会转换 无需担心。可能是一个很大的痛苦。 好的,这正是我在之前的评论中所解释的。迪-赫尔曼型 交流很简单。假设 Alex 和 Brenda 各有一个秘密号码 A 和 B,以及一个号码 他们不关心保守秘密,a和b。他们希望生成一个共享秘密而无需 伊娃发现了它。迪耶和赫尔曼想出了一个方法,让亚历克斯和布伦达分享 公开号码a和b,但不是私人号码A和B,并生成共享秘密, K. 使用这个共享秘密 K,无需任何 Eva 监听即可生成相同的秘密 K、Alex 和 Brenda 现在可以使用 K 作为秘密加密密钥并传回秘密消息 等等。 以下是它 CAN 的工作原理,尽管它应该适用于比 100 大得多的数字。 我们将使用 100,因为对整数取模 100 相当于“扔掉所有 但数字的最后两位。” Alex 和 Brenda 各自选择 A、a、B 和 b。他们对 A 和 B 保密。 Alex 告诉 Brenda 她的模 100 的值(仅最后两位数字),Brenda 告诉 Alex 她的 b 值模 100。现在 Eva 知道 (a,b) 模 100。但是 Alex 知道 (a,b,A),所以她 可以计算 x=abA 模 100。亚历克斯砍掉了所有的东西,只留下最后一个数字,因为我们正在工作 再次以 100 为模的整数。同样,布伦达知道 (a,b,B),因此她可以计算 y=abB 模 100。Alex 现在可以发布 x,Brenda 可以发布 y。 但现在 Alex 可以计算 yA = abBA modulo 100,而 Brenda 可以计算 xB = abBA 模 100。 他们都知道同一个号码! 但伊娃听到的只是 (a,b,abA,abB)。她没有简单的方法来计算 abA*B。 现在,这是考虑 Diffie-Hellman 交换的最简单且最不安全的方式。 存在更安全的版本。但大多数版本都可以工作,因为整数分解和离散 对数很难,而这两个问题都可以通过量子计算机轻松解决。 我将研究是否存在任何抵抗量子的版本。 http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange 此处列出的“标准 txn 序列”缺少一大堆步骤,例如签名。 他们在这里被视为理所当然。这真的很糟糕,因为我们的顺序 签名内容、签名消息中包含的信息等等……所有这些都非常重要 对协议很重要。 在实施“ 标准交易序列”可能会使整个系统的安全性受到质疑。 此外,如果 它们工作的框架与本节一样松散地定义。

公共 私人 爱丽丝 卡罗尔 一次性钥匙 一次性钥匙 一次性钥匙 鲍勃 鲍勃的钥匙 鲍勃的地址 图 3. CryptoNote 密钥/交易模型。 首先,发送者执行 Diffie-Hellman 交换,从他的数据中获取共享秘密,并 收件人地址的一半。然后,他使用共享的密钥计算一次性目标密钥 秘密和地址的后半部分。收件人需要两个不同的 ec-key 对于这两个步骤,因此标准 CryptoNote 地址几乎是 Bitcoin 钱包的两倍 地址。 接收方还执行 Diffie-Hellman 交换以恢复相应的 秘密密钥。 标准交易顺序如下: 1. Alice 想要向 Bob 发送一笔付款,Bob 已经发布了他的标准地址。 她 解压地址并获取 Bob 的公钥 (A, B)。 2. Alice 生成一个随机 \(r \in [1, l - 1]\) 并计算一次性公钥 \(P = H_s(rA)G +\) B. 3. Alice 使用 P 作为输出的目标密钥,并且还打包值 R = rG(作为一部分) Dffie-Hellman 交换的一部分)进入交易的某个地方。请注意,她可以创建 具有唯一公钥的其他输出:不同接收者的密钥(Ai,Bi)意味着不同的 Pi 即使使用相同的 r。 交易 发送方公钥 发射输出 金额 目的地键 R=rG P = Hs(rA)G + B 接收者的 公钥 发送者的随机数据 r (甲、乙) 图 4. 标准交易结构。 4. Alice 发送交易。 5. Bob 用他的私钥 (a, b) 检查每笔通过的交易,并计算 P ′ = Hs(aR)G + B。 如果Alice与Bob作为接收者的交易也在其中, 则 aR = arG = rA 且 P ′ = P。 7 公共 私人 爱丽丝 卡罗尔 一次性钥匙 一次性钥匙 一次性钥匙 鲍勃 鲍勃的钥匙 鲍勃的地址 图 3. CryptoNote 密钥/交易模型。 首先,发送者执行 Diffie-Hellman 交换,从他的数据中获取共享秘密,并 收件人地址的一半。然后,他使用共享的密钥计算一次性目标密钥 秘密和地址的后半部分。收件人需要两个不同的 ec-key 对于这两个步骤,因此标准 CryptoNote 地址几乎是 Bitcoin 钱包的两倍 地址。 接收方还执行 Diffie-Hellman 交换以恢复相应的 秘密密钥。 标准交易顺序如下: 1. Alice 想要向 Bob 发送一笔付款,Bob 已经发布了他的标准地址。 她 解压地址并获取 Bob 的公钥 (A, B)。 2. Alice 生成一个随机 \(r \in [1, l - 1]\) 并计算一次性公钥 \(P = H_s(rA)G +\) B. 3. Alice 使用 P 作为输出的目标密钥,并且还打包值 R = rG(作为一部分) Dffie-Hellman 交换的一部分)进入交易的某个地方。请注意,她可以创建 具有唯一公钥的其他输出:不同接收者的密钥(Ai,Bi)意味着不同的 Pi 即使使用相同的 r。 交易 发送方公钥 发射输出 金额 目的地键 R=rG P = Hs(rA)G + B 接收者的 公钥 发送者的随机数据 r (甲、乙) 图 4. 标准交易结构。 4. Alice 发送交易。 5. Bob 用他的私钥 (a, b) 检查每笔通过的交易,并计算 P ′ = Hs(aR)G + B。 如果Alice与Bob作为接收者的交易也在其中, 则 aR = arG = rA 且 P ′ = P。 7 14 请注意,作者在保持术语简洁方面做得很糟糕 文本,但尤其是在接下来的部分。本文的下一个版本必然是 更加严格。 在文本中,他们将 P 称为他们的一次性公钥。在图中,他们将 R 称为 他们的“Tx 公钥”和 P 作为他们的“目标密钥”。如果我要重写这个,我会 在讨论这些部分之前,非常具体地列出一些术语。 这个井很大。参见第 5 页。 谁选择艾尔? 该图说明交易公钥 R = rG,它是随机选择的 由发送方发送,不是 Tx 输出的一部分。这是因为对于多个来说它可能是相同的 交易给多人,并且 稍后 不会用于支出。生成一个新的R 每次您想要广播新的 CryptoNote 交易时。此外,R仅用于 检查您是否是交易的接收者。这不是垃圾数据,但对任何人来说都是垃圾 没有与 (A,B) 关联的私钥。 另一方面,目的地密钥 P = Hs(rA)G + B 是 Tx 输出的一部分。大家 翻阅每笔经过的交易数据必须检查自己生成的 P* 这个 P 看看他们是否拥有这个传递的交易。任何拥有未使用交易输出的人 (UTXO) 将会有一堆这样的 P 并带有数量。为了度过d、他们 签署一些新消息,包括 P。 Alice 必须使用与未使用的交易输出目标密钥关联的一次性私钥来签署此交易。 Alice 拥有的每把目的地钥匙都配备有 具有(大概)爱丽丝也拥有的一次性私钥。每次爱丽丝想要的时候 将目标密钥的内容发送给我、鲍勃、布伦达、查理或夏琳,她 使用她的私钥来签署交易。收到交易后,我将收到新的 Tx 公钥,一个新的目标公钥,我将能够恢复一个新的一次性私钥 x。将我的一次性私钥 x 与新交易的公共目的地相结合 key(s) 是我们发送新交易的方式

  1. Bob 可以恢复相应的一次性私钥:x = Hs(aR) + b,因此 P = xG。 他可以随时通过与 x 签署交易来花费此输出。 交易 发送方公钥 发射输出 金额 目的地键 P ′ = Hs(aR)G + bG 一次性公钥 x = Hs(aR) + b 一次性私钥 接收者的 私钥 (一、二) 右 P′ ? = P 图 5. 传入交易检查。 结果,鲍勃收到了与一次性公钥相关的收款,该公钥是 对于观众来说是不可链接的。一些附加说明: • 当鲍勃“识别”他的交易时(参见步骤 5),他实际上只使用了他的一半交易 私人信息:(a,B)。这对也称为跟踪密钥,可以通过 给第三方(卡罗尔)。鲍勃可以委托她处理新交易。鲍勃 不需要明确信任 Carol,因为她无法恢复一次性密钥 p 没有 Bob 的完整私钥 (a, b)。当 Bob 缺乏带宽时,此方法很有用 或计算能力(智能手机、硬件钱包等)。 • 如果爱丽丝想证明她向鲍勃的地址发送了一笔交易,她可以披露 r 或使用任何类型的零知识协议来证明她知道 r (例如通过签名 与 r 的交易。 • 如果 Bob 希望拥有一个审计兼容地址,其中所有传入交易都在 可链接,他可以发布他的跟踪密钥或使用截断的地址。那个地址 只代表一个公共ec-key B,协议所需的剩余部分为 由此导出如下:a = Hs(B) 且 A = Hs(B)G。在这两种情况下,每个人都是 能够“识别”Bob 的所有传入交易,但是,当然,没有人可以花费 其中包含的资金没有密钥 b. 4.4 一次性环签名 一种基于一次性环签名的协议允许用户实现无条件的不可链接性。 不幸的是,普通类型的加密签名允许追踪交易到他们的 各自的发送者和接收者。我们解决这个缺陷的方法是使用不同的签名 类型不同于当前电子现金系统中使用的类型。 我们将首先提供我们算法的一般描述,没有明确引用 电子现金。 一次性环签名包含四种算法:(GEN、SIG、VER、LNK): GEN:采用公共参数并输出 ec 对 (P, x) 和公钥 I。 SIG:接受消息 m、一组公钥 {Pi}i̸=s、一对 (Ps, xs) \(S'\),并输出签名 \(\sigma\) 以及集合 \(S = \)S'\( \cup \{P_s\}\)。 8
  2. Bob 可以恢复相应的一次性私钥:x = Hs(aR) + b,因此 P = xG。 他可以随时通过与 x 签署交易来花费此输出。 交易 发送方公钥 发射输出 金额 目的地键 P ′ = Hs(aR)G + bG 一次性公钥 x = Hs(aR) + b 一次性私钥 接收者的 私钥 (一、二) 右 P′ ? = P 图 5. 传入交易检查。 结果,鲍勃收到了与一次性公钥相关的收款,该公钥是 对于观众来说是不可链接的。一些附加说明: • 当鲍勃“识别”他的交易时(参见步骤 5),他实际上只使用了他的一半交易 私人信息:(a,B)。这对也称为跟踪密钥,可以通过 给第三方(卡罗尔)。鲍勃可以委托她处理新交易。鲍勃 不需要明确信任 Carol,因为她无法恢复一次性密钥 p 没有 Bob 的完整私钥 (a, b)。当 Bob 缺乏带宽时,此方法很有用 或计算能力(智能手机、硬件钱包等)。 • 如果爱丽丝想证明她向鲍勃的地址发送了一笔交易,她可以披露 r 或使用任何类型的零知识协议来证明她知道 r (例如通过签名 与 r 的交易。 • 如果 Bob 希望拥有一个审计兼容地址,其中所有传入交易都在 可链接,他可以发布他的跟踪密钥或使用截断的地址。那个地址 只代表一个公共ec-key B,协议所需的剩余部分为 由此导出如下:a = Hs(B) 且 A = Hs(B)G。在这两种情况下,每个人都是 能够“识别”Bob 的所有传入交易,但是,当然,没有人可以花费 其中包含的资金没有密钥 b. 4.4 一次性环签名 一种基于一次性环签名的协议允许用户实现无条件的不可链接性。 不幸的是,普通类型的加密签名允许追踪交易到他们的 各自的发送者和接收者。我们解决这个缺陷的方法是使用不同的签名 类型不同于当前电子现金系统中使用的类型。 我们首先提供一个gener我们算法的所有描述,没有明确引用 电子现金。 一次性环签名包含四种算法:(GEN、SIG、VER、LNK): GEN:采用公共参数并输出 ec 对 (P, x) 和公钥 I。 SIG:接受消息 m、一组公钥 {Pi}i̸=s、一对 (Ps, xs) \(S'\),并输出签名 \(\sigma\) 以及集合 \(S = \)S'\( \cup \{P_s\}\)。 8 15 这里未使用的交易输出是什么样的?该图表明交易输出仅包含两个数据点:金额和目的地键。但这不是 足够了,因为当我尝试使用这个“输出”时,我仍然需要知道 R=rG。请记住,r 由发送者选择,并且 R a) 用于将传入的加密货币识别为您的 拥有和 b) 用于生成用于“认领”您的加密货币的一次性私钥。 我不明白的部分是什么? 采取理论上的“好吧,我们有这些 签名和交易,我们将它们来回传递”到编程世界 “好吧,具体什么信息构成了个体UTXO?” 回答这个问题的最佳方法是深入研究完全未注释的代码主体。 一路走好,比特币团队。 回想一下:可链接性意味着“是同一个人发送的吗?”不可链接性意味着“做了同样的事情” 人收到吗?”。因此,系统可以是可链接的或不可链接的、不可链接的或不可不可链接的。 很烦人,我知道。 因此,当 Nic van Saberhagen 在这里说“……收到的付款[与]一次性相关” 观众无法链接的公钥”,让我们看看他的意思。 首先,考虑这样一种情况:Alice 向 Bob 发送来自同一交易的两个单独的交易。 地址到同一个地址。 在Bitcoin宇宙中,爱丽丝已经犯了错误 从同一地址发送,因此交易未能满足我们对有限的愿望 可链接性。而且,既然她把钱寄到了同一个地址,她就辜负了我们的愿望 为不可链接性。该比特币交易既是(完全)可链接又是不可链接的。 另一方面,在加密货币世界中,假设爱丽丝向鲍勃发送了一些加密货币, 使用鲍勃的公共地址。她选择所有已知的公共密钥作为她的混淆公共密钥集 华盛顿特区都会区的钥匙。 Alex 使用自己的公钥生成一次性公钥 信息和鲍勃的公开信息。她把钱寄出去,任何观察者都会 只能收集“来自华盛顿特区都会区的某人发送了 2.3 个加密货币到 一次性公共地址 XYZ123。” 我们在这里对可链接性进行概率控制,因此我们将其称为“几乎不可链接”。 我们也只看到一次性公钥资金被发送到的地方。即使我们怀疑接收者 是鲍勃,我们没有他的私钥,所以我们无法测试是否通过交易 属于鲍勃,更不用说生成他的一次性私钥来兑换他的加密货币了。所以这个 事实上,完全“无法链接”。 所以,这是所有技巧中最巧妙的。谁愿意真正信任另一个 MtGox?我们可能是 在 Coinbase 上存储一定数量的 BTC 很舒服,但比特币安全的终极目标是 实体钱包。这很不方便。 在这种情况下,您可以放心地泄露一半的私钥,而不会损害您的 自己花钱的能力。 执行此操作时,您所做的就是告诉某人如何打破不可链接性。另一个 CN 像货币一样的属性被保留,例如防止双重支出和 诸如此类的。

  3. Bob 可以恢复相应的一次性私钥:x = Hs(aR) + b,因此 P = xG。 他可以随时通过与 x 签署交易来花费此输出。 交易 发送方公钥 发射输出 金额 目的地键 P ′ = Hs(aR)G + bG 一次性公钥 x = Hs(aR) + b 一次性私钥 接收者的 私钥 (一、二) 右 P′ ? = P 图 5. 传入交易检查。 结果,鲍勃收到了与一次性公钥相关的收款,该公钥是 对于观众来说是不可链接的。一些附加说明: • 当鲍勃“识别”他的交易时(参见步骤 5),他实际上只使用了他的一半交易 私人信息:(a,B)。这对也称为跟踪密钥,可以通过 给第三方(卡罗尔)。鲍勃可以委托她处理新交易。鲍勃 不需要明确信任 Carol,因为她无法恢复一次性密钥 p 没有 Bob 的完整私钥 (a, b)。当 Bob 缺乏带宽时,此方法很有用 或计算能力(智能手机、硬件钱包等)。 • 如果爱丽丝想证明她向鲍勃的地址发送了一笔交易,她可以披露 r 或使用任何类型的零知识协议来证明她知道 r (例如通过签名 与 r 的交易。 • 如果 Bob 希望拥有一个审计兼容地址,其中所有传入交易都在 可链接,他可以发布他的跟踪密钥或使用截断的地址。那个地址 只代表一个公共ec-key B,协议所需的剩余部分为 由此导出如下:a = Hs(B) 且 A = Hs(B)G。在这两种情况下,每个人都是 能够“识别”Bob 的所有传入交易,但是,当然,没有人可以花费 其中包含的资金没有密钥 b. 4.4 一次性环签名 一种基于一次性环签名的协议允许用户实现无条件的不可链接性。 不幸的是,普通类型的加密签名允许追踪交易到他们的 各自的发送者和接收者。我们解决这个缺陷的方法是使用不同的签名 类型不同于当前电子现金系统中使用的类型。 我们将首先提供我们算法的一般描述,没有明确引用 电子现金。 一次性环签名包含四种算法:(GEN、SIG、VER、LNK): GEN:采用公共参数并输出 ec 对 (P, x) 和公钥 I。 SIG:接受消息 m、一组公钥 {Pi}i̸=s、一对 (Ps, xs) \(S'\),并输出签名 \(\sigma\) 以及集合 \(S = \)S'\( \cup \{P_s\}\)。 8

  4. Bob 可以恢复相应的一次性私钥:x = Hs(aR) + b,因此 P = xG。 他可以随时通过与 x 签署交易来花费此输出。 交易 发送方公钥 发射输出 金额 目的地键 P ′ = Hs(aR)G + bG 一次性公钥 x = Hs(aR) + b 一次性私钥 接收者的 私钥 (一、二) 右 P′ ? = P 图 5. 传入交易检查。 结果,鲍勃收到了与一次性公钥相关的收款,该公钥是 对于观众来说是不可链接的。一些附加说明: • 当鲍勃“识别”他的交易时(参见步骤 5),他实际上只使用了他的一半交易 私人信息:(a,B)。这对也称为跟踪密钥,可以通过 给第三方(卡罗尔)。鲍勃可以委托她处理新交易。鲍勃 不需要明确信任 Carol,因为她无法恢复一次性密钥 p 没有 Bob 的完整私钥 (a, b)。当 Bob 缺乏带宽时,此方法很有用 或计算能力(智能手机、硬件钱包等)。 • 如果爱丽丝想证明她向鲍勃的地址发送了一笔交易,她可以披露 r 或使用任何类型的零知识协议来证明她知道 r (例如通过签名 与 r 的交易。 • 如果 Bob 希望拥有一个审计兼容地址,其中所有传入交易都在 可链接,他可以发布他的跟踪密钥或使用截断的地址。那个地址 只代表一个公共ec-key B,协议所需的剩余部分为 由此导出如下:a = Hs(B) 且 A = Hs(B)G。在这两种情况下,每个人都是 能够“识别”Bob 的所有传入交易,但是,当然,没有人可以花费 其中包含的资金没有密钥 b. 4.4 一次性环签名 一种基于一次性环签名的协议允许用户实现无条件的不可链接性。 不幸的是,普通类型的加密签名允许追踪交易到他们的 各自的发送者和接收者。我们解决这个缺陷的方法是使用不同的签名 类型不同于当前电子现金系统中使用的类型。 我们首先提供一个gener我们算法的所有描述,没有明确引用 电子现金。 一次性环签名包含四种算法:(GEN、SIG、VER、LNK): GEN:采用公共参数并输出 ec 对 (P, x) 和公钥 I。 SIG:接受消息 m、一组公钥 {Pi}i̸=s、一对 (Ps, xs) \(S'\),并输出签名 \(\sigma\) 以及集合 \(S = \)S'\( \cup \{P_s\}\)。 8 16 是的,现在我们有 a) 付款地址和 b) 付款 ID。 批评者可能会问“我们真的需要这样做吗?毕竟,如果商家收到 112.00678952 CN 完全正确,那是我的订单,我有屏幕截图或收据或其他什么,不是吗 疯狂的精确度足够了吗?”答案是“也许,大多数时候,在日常生活中, 面对面交易。” 然而,更常见的情况(尤其是在数字世界中)是这样的:商家出售 一组物品,每个物品都有固定的价格。假设对象 A 为 0.001 CN,对象 B 为 0.01 CN, 物体C是0.1 CN。现在,如果商家收到一个1.618 CN的订单,有很多很多 (很多!)为客户安排订单的方式。因此,如果没有某种付款 ID, 识别客户所谓的“独特”订单及其所谓的“独特”成本 秩序变得不可能。更有趣的是:如果我在线商店中的所有商品的价格都是 1.0 CN,我每天有 1000 个客户?并且您想证明您恰好购买了 3 件物品 两周前?没有付款ID?祝你好运,伙计。 长话短说:当鲍勃发布一个付款地址时,他最终可能还会发布一个 以及付款 ID(例如 Poloniex XMR 存款)。这与描述的不同 在此处的文本中,Alice 是生成付款 ID 的人。 Bob 也必须有某种方式来生成支付 ID。 (一、乙) 回想一下,跟踪密钥 (a,B) 可以被发布;失去“a”意志价值的秘密 不侵犯您的消费能力或允许人们从您那里偷窃(我认为......这会 有待证明),它只会让人们看到所有传入的交易。 如本段所述,截断的地址仅采用密钥的“私有”部分 并从“公共”部分生成它。显示“a”的值将消除不可链接性 但将保留其余交易。 作者的意思是“not unlinkable”,因为unlinkable指的是接收者而linkable 指发件人。 很明显,作者没有意识到可链接性有两个不同的方面。 毕竟,交易是图上的有向对象,因此会出现两个问题: “这两笔交易是同一个人进行的吗?”以及“这两笔交易即将到来吗? 来自同一个人?” 这是一个“不回头”的政策,在该政策下,CryptoNote 的不可链接性属性是 有条件的。也就是说,Bob 可以选择他传入的交易不是不可链接的 使用该政策。 这是他们在随机预言模型下证明的主张。我们会谈到这一点;随机的 甲骨文有优点也有缺点。

VER:接受消息 m、集合 S、签名 \(\sigma\) 并输出“真”或“假”。 LNK:采用集合 I = {Ii}、签名 \(\sigma\) 并输出“linked”或“indep”。 该协议背后的想法相当简单:用户生成一个签名,该签名可以是 通过一组公钥而不是唯一的公钥进行检查。签名者的身份是 与公钥在集合中的其他用户无法区分,直到所有者生成 使用相同密钥对的第二个签名。 私钥 x0 \(\cdots\) 希 \(\cdots\) xn 公钥 P0 \(\cdots\) 圆周率 \(\cdots\) PN 戒指 签名 标志 验证 图 6. 环签名匿名性。 GEN:签名者选择一个随机密钥 \(x \in [1, l - 1]\) 并计算相应的密钥 公钥 P = xG。此外,他还计算了另一个公钥 I = xHp(P),我们将其 称之为“关键图像”。 SIG:签名者生成具有非交互式零知识的一次性环签名 使用 [21] 中的技术进行证明。他从其他用户的 n 中随机选择子集 \(S'\) 公钥 Pi、他自己的密钥对 (x, P) 和密钥图像 I。令 \(0 \leq s \leq n\) 为签名者的秘密索引 在 S 中(因此他的公钥是 Ps)。 他随机选择一个{qi |我= 0 。 。 。 n} 和 {wi |我= 0 。 。 。 n, i ̸= s} 从 (1 . . . l) 并应用 以下转换: 李= ( qiG, 如果我=s qiG + wiPi, 如果 i ̸= s 里= ( qiHp(Pi), 如果我=s qiHp(Pi) + wiI, 如果 i ̸= s 下一步是接受非交互式挑战: c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最后签名者计算响应: ci =    无线, 如果 i ̸= s c - 正压 我=0 词 模l, 如果我=s 里= ( 气, 如果 i ̸= s qs-csx 模l, 如果我=s 所得签名为 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)。 9 VER:接受消息 m、集合 S、签名 \(\sigma\) 并输出“真”或“假”。 LNK:采用集合 I = {Ii}、签名 \(\sigma\) 并输出“linked”或“indep”。 该协议背后的想法相当简单:用户生成一个签名,该签名可以是 通过一组公钥而不是唯一的公钥进行检查。签名者的身份是 与公钥在集合中的其他用户无法区分,直到所有者生成 使用相同密钥对的第二个签名。 私钥 x0 \(\cdots\) 希 \(\cdots\) xn 公钥 P0 \(\cdots\) 圆周率 \(\cdots\) PN 戒指 签名 标志 验证 图 6. 环签名匿名性。 GEN:签名者选择一个随机密钥 \(x \in [1, l - 1]\) 并计算相应的密钥 公钥 P = xG。此外,他还计算了另一个公钥 I = xHp(P),我们将其 称之为“关键图像”。 SIG:签名者生成具有非交互式零知识的一次性环签名 使用 [21] 中的技术进行证明。他从其他用户的 n 中随机选择子集 \(S'\) 公钥 Pi、他自己的密钥对 (x, P) 和密钥图像 I。令 \(0 \leq s \leq n\) 为签名者的秘密索引 在 S 中(因此他的公钥是 Ps)。 他随机选择一个{qi |我= 0 。 。 。 n} 和 {wi |我= 0 。 。 。 n, i ̸= s} 从 (1 . . . l) 并应用 以下转换: 李= ( qiG, 如果我=s qiG + wiPi, 如果 i ̸= s 里= ( qiHp(Pi), 如果我=s qiHp(Pi) + wiI, 如果 i ̸= s 下一步是接受非交互式挑战: c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最后签名者计算响应: ci =    无线, 如果 i ̸= s c - 正压 我=0 词 模l, 如果我=s 里= ( 气, 如果 i ̸= s qs-csx 模l, 如果我=s 所得签名为 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)。 9 17 号 也许这很愚蠢,但是在联合 S 和 P_s 时必须小心。如果您只是附加 最后一个公钥,不可链接性被破坏,因为任何人都检查传递的交易 可以只检查每笔交易和繁荣中列出的最后一个公钥。这就是公钥 与发件人相关联。因此,联合后,伪随机数生成器必须是 用于排列所选的公钥。 “......直到所有者使用相同的密钥对生成第二个签名。”我希望作者(?) 将对此进行详细说明。 我相信这意味着“确保每次选择一组公钥来混淆 你自己选择一套全新的钥匙,没有两把钥匙是一样的。” 对不可链接性施加相当强的条件。也许“你从其中选择一个新的随机集 所有可能的键”的假设是,虽然非平凡的交叉点将不可避免地 发生,它们不会经常发生。 不管怎样,我需要更深入地研究这个陈述。 这正在生成环签名。 零知识证明太棒了:我挑战你向我证明你知道一个秘密 而不泄露秘密。例如,假设我们在一个甜甜圈形状的洞穴的入口处, 在洞穴的后面(从入口处看不到)有一个o你通往的新门 声称你有钥匙。如果你朝一个方向走,它总是会让你通过,但如果你朝另一方向走 其他方向,你需要一把钥匙。但你甚至不想给我看钥匙,更不用说 让我看看它能打开门。但你想向我证明你知道如何打开 门。 在互动环境中,我抛硬币。 左边是头,右边是尾,然后你沿着 甜甜圈形状的洞穴,无论硬币指向你的方向。在我的视线之外的后面,你 打开门绕到另一边回来。我们重复抛硬币实验 直到我确信你有钥匙为止。 但这显然是交互式零知识证明。有一些非交互式版本,您和我永远不需要交流;这样,窃听者就无法干扰。 http://en.wikipedia.org/wiki/Zero-knowledge_proof 这与之前的定义相反。

VER:接受消息 m、集合 S、签名 \(\sigma\) 并输出“真”或“假”。 LNK:采用集合 I = {Ii}、签名 \(\sigma\) 并输出“linked”或“indep”。 该协议背后的想法相当简单:用户生成一个签名,该签名可以是 通过一组公钥而不是唯一的公钥进行检查。签名者的身份是 与公钥在集合中的其他用户无法区分,直到所有者生成 使用相同密钥对的第二个签名。 私钥 x0 \(\cdots\) 希 \(\cdots\) xn 公钥 P0 \(\cdots\) 圆周率 \(\cdots\) PN 戒指 签名 标志 验证 图 6. 环签名匿名性。 GEN:签名者选择一个随机密钥 \(x \in [1, l - 1]\) 并计算相应的密钥 公钥 P = xG。此外,他还计算了另一个公钥 I = xHp(P),我们将其 称之为“关键图像”。 SIG:签名者生成具有非交互式零知识的一次性环签名 使用 [21] 中的技术进行证明。他从其他用户的 n 中随机选择子集 \(S'\) 公钥 Pi、他自己的密钥对 (x, P) 和密钥图像 I。令 \(0 \leq s \leq n\) 为签名者的秘密索引 在 S 中(因此他的公钥是 Ps)。 他随机选择一个{qi |我= 0 。 。 。 n} 和 {wi |我= 0 。 。 。 n, i ̸= s} 从 (1 . . . l) 并应用 以下转换: 李= ( qiG, 如果我=s qiG + wiPi, 如果 i ̸= s 里= ( qiHp(Pi), 如果我=s qiHp(Pi) + wiI, 如果 i ̸= s 下一步是接受非交互式挑战: c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最后签名者计算响应: ci =    无线, 如果 i ̸= s c - 正压 我=0 词 模l, 如果我=s 里= ( 气, 如果 i ̸= s qs-csx 模l, 如果我=s 所得签名为 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)。 9 VER:接受消息 m、集合 S、签名 \(\sigma\) 并输出“真”或“假”。 LNK:采用集合 I = {Ii}、签名 \(\sigma\) 并输出“linked”或“indep”。 该协议背后的想法相当简单:用户生成一个签名,该签名可以是 通过一组公钥而不是唯一的公钥进行检查。签名者的身份是 与公钥在集合中的其他用户无法区分,直到所有者生成 使用相同密钥对的第二个签名。 私钥 x0 \(\cdots\) 希 \(\cdots\) xn 公钥 P0 \(\cdots\) 圆周率 \(\cdots\) PN 戒指 签名 标志 验证 图 6. 环签名匿名性。 GEN:签名者选择一个随机密钥 \(x \in [1, l - 1]\) 并计算相应的密钥 公钥 P = xG。此外,他还计算了另一个公钥 I = xHp(P),我们将其 称之为“关键图像”。 SIG:签名者生成具有非交互式零知识的一次性环签名 使用 [21] 中的技术进行证明。他从其他用户的 n 中随机选择子集 \(S'\) 公钥 Pi、他自己的密钥对 (x, P) 和密钥图像 I。令 \(0 \leq s \leq n\) 为签名者的秘密索引 在 S 中(因此他的公钥是 Ps)。 他随机选择一个{qi |我= 0 。 。 。 n} 和 {wi |我= 0 。 。 。 n, i ̸= s} 从 (1 . . . l) 并应用 以下转换: 李= ( qiG, 如果我=s qiG + wiPi, 如果 i ̸= s 里= ( qiHp(Pi), 如果我=s qiHp(Pi) + wiI, 如果 i ̸= s 下一步是接受非交互式挑战: c = Hs(m, L1, ..., Ln, R1, ..., Rn) 最后签名者计算响应: ci =    无线, 如果 i ̸= s c - 正压 我=0 词 模l, 如果我=s 里= ( 气, 如果 i ̸= s qs-csx 模l, 如果我=s 所得签名为 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)。 9 18 整个区域与加密货币无关,只是简单地描述环签名算法,而无需 参考货币。我怀疑某些符号与论文的其余部分一致, 不过。例如,x 是 GEN 中选择的“随机”密钥,它给出公钥 P 和公钥图像 I。x 的值是 Bob 在第 6 部分第 8 页中计算的值。所以这是 开始澄清之前描述中的一些混乱。 这有点酷;钱没有从“爱丽丝的公共地址转移到鲍勃的公共地址” 地址。”它正在从一次性地址转移到一次性地址。 所以,从某种意义上说,这就是这些东西的工作原理。如果亚历克斯有一些加密货币,因为有人 将它们发送给她,这意味着她拥有将它们发送给鲍勃所需的私钥。她用 使用 Bob 的公开信息生成新的一次性地址的 Diffie-Hellman 交换 并且加密货币将被转移到该地址。 现在,由于使用(大概是安全的)DH 交换来生成新的一次性地址 Alex 向其发送了 CN,Bob 是唯一拥有重复该操作所需私钥的人 上面。所以现在,鲍勃是亚历克斯。 http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation 求和应该在 j 而不是 i 上索引。每个 c_i 都是随机垃圾(因为 w_i 是随机的) 除了 c_i 屁股与此签名中涉及的实际密钥相关联。 c 的值为 先前信息的 hash。 我认为这可能包含比重新使用索引“i”更糟糕的拼写错误,因为 c_s 似乎 是隐含的,而不是明确的定义。 事实上,如果我们相信这个方程,那么我们可以确定 c_s = (1/2)c - (1/2) sum_i neq s c_i。也就是说,hash 减去一大堆随机数。 另一方面,如果要读取此求和“c_s = (c - sum_j neq s c_j) mod l”,然后我们取之前信息的hash,生成一堆随机数, 减去 hash 中的所有随机数,得到 c_s。这似乎是 根据我的直觉,“应该”发生什么,并且与第 10 页的验证步骤相匹配。 但直觉不是数学。我会更深入地探讨这一点。 和以前一样;除了与实际相关的之外,所有这些都将是随机垃圾 签名者的公钥 x。除了这一次,这更符合我对结构的期望: r_i 对于 i!=s 是随机的,并且 r_s 仅由秘密 x 和 s 索引值确定 q_i 和 c_i。

VER:验证者通过应用逆变换来检查签名: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI 最后,验证者检查是否 正压 我=0 词 ? = Hs(m, L′ 0,. 。 。 , L′ n,R′ 0,. 。 。 ,R′ n) 模 l 如果这个等式正确,验证器将运行 LNK 算法。否则验证者拒绝 签名。 LNK:验证器检查 I 是否已在过去的签名中使用过(这些值存储在 集 I)。多次使用意味着两个签名是在同一密钥下生成的。 协议的含义:通过应用 L 变换,签名者证明他知道 这样 x 至少有一个 Pi = xG。为了使这个证明不可重复,我们引入了关键图像 因为 I = xHp(P)。签名者使用相同的系数 (ri, ci) 来证明几乎相同的陈述: 他知道 x 至少有一个 \(H_p(P_i) = I \cdot x^{-1}\)。 如果映射 \(x \to I\) 是一个注入: 1. 任何人都无法从密钥图像中恢复公钥并识别签名者; 2. 签名者不能使用不同的 I 和相同的 x 进行两个签名。 附录 A 提供了完整的安全分析。 4.5 标准 CryptoNote 交易 通过结合这两种方法(不可链接的公钥和不可追踪的环签名),Bob 实现了 与原始 Bitcoin 方案相比,新的隐私级别。它只需要他存储 一个私钥(a,b)并发布(A,B)以开始接收和发送匿名交易。 在验证每笔交易时,Bob 仅对每个输出执行两次椭圆曲线乘法和一次加法,以检查交易是否属于他。为了他的每一个 输出 Bob 恢复一次性密钥对 (pi, Pi) 并将其存储在他的钱包中。任何输入都可以 仅当它们出现在一次交易中时,才能间接证明它们具有相同的所有者。在 事实上,由于一次性环签名,这种关系更难建立。 通过环签名,鲍勃可以有效地隐藏其他人的每个输入;一切皆有可能 消费者将是等概率的,即使是前任所有者(爱丽丝)也没有比 任何观察者。 当鲍勃签署他的交易时,指定了n个与他的金额相同的外国输出 输出,在没有其他用户参与的情况下混合所有这些。鲍勃本人(以及 其他人)不知道这些付款是否已被花费:可以使用输出 数以千计的签名作为一个模糊因素,而不是作为隐藏的目标。双 支出检查发生在 LNK 阶段,检查已使用的关键映像集。 Bob可以自己选择模糊度:n=1表示他有的概率 花费输出的概率为 50%,n = 99 给出 1%。生成的签名的大小增加 线性为 O(n+1),因此改进的匿名性会让 Bob 付出额外的交易费用。他也可以 设置 n = 0 并使他的环签名仅包含一个元素,但这将立即 揭露他是一个花钱的人。 10 VER:验证者通过应用逆变换来检查签名: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI 最后,验证者检查是否 正压 我=0 词 ? = Hs(m, L′ 0,. 。 。 , L′ n,R′ 0,. 。 。 ,R′ n) 模 l 如果这个等式正确,验证器将运行 LNK 算法。否则验证者拒绝 签名。 LNK:验证器检查 I 是否已在过去的签名中使用过(这些值存储在 集 I)。多次使用意味着两个签名是在同一密钥下生成的。 协议的含义:通过应用 L 变换,签名者证明他知道 这样 x 至少有一个 Pi = xG。为了使这个证明不可重复,我们引入了关键图像 因为 I = xHp(P)。签名者使用相同的系数 (ri, ci) 来证明几乎相同的陈述: 他知道 x 至少有一个 \(H_p(P_i) = I \cdot x^{-1}\)。 如果映射 \(x \to I\) 是一个注入: 1. 任何人都无法从密钥图像中恢复公钥并识别签名者; 2. 签名者不能使用不同的 I 和相同的 x 进行两个签名。 附录 A 提供了完整的安全分析。 4.5 标准 CryptoNote 交易 通过结合这两种方法(不可链接的公钥和不可追踪的环签名),Bob 实现了 与原始 Bitcoin 方案相比,新的隐私级别。它只需要他存储 一个私钥(a,b)并发布(A,B)以开始接收和发送匿名交易。 在验证每笔交易时,Bob 仅对每个输出执行两次椭圆曲线乘法和一次加法,以检查交易是否属于他。为了他的每一个 输出 Bob 恢复一次性密钥对 (pi, Pi) 和 st把它放在他的钱包里。任何输入都可以 仅当它们出现在一次交易中时,才能间接证明它们具有相同的所有者。在 事实上,由于一次性环签名,这种关系更难建立。 通过环签名,鲍勃可以有效地隐藏其他人的每个输入;一切皆有可能 消费者将是等概率的,即使是前任所有者(爱丽丝)也没有比 任何观察者。 当鲍勃签署他的交易时,指定了n个与他的金额相同的外国输出 输出,在没有其他用户参与的情况下混合所有这些。鲍勃本人(以及 其他人)不知道这些付款是否已被花费:可以使用输出 数以千计的签名作为一个模糊因素,而不是作为隐藏的目标。双 支出检查发生在 LNK 阶段,检查已使用的关键映像集。 Bob可以自己选择模糊度:n=1表示他有的概率 花费输出的概率为 50%,n = 99 给出 1%。生成的签名的大小增加 线性为 O(n+1),因此改进的匿名性会让 Bob 付出额外的交易费用。他也可以 设置 n = 0 并使他的环签名仅包含一个元素,但这将立即 揭露他是一个花钱的人。 10 19 此时,我非常困惑。 Alex 收到带有签名 (I,c_1, ..., c_n, r_1, ..., r_n) 和公共列表的消息 M 键 S.,她运行 VER。这将计算 L_i' 和 R_i' 这验证了上一页上的 c_s = c - sum_ineq s c_i。 一开始我很困惑。任何人都可以计算 L_i' 和 R_i'。事实上,每个 r_i 和 c_i 已在签名中发布 sigma 与 I 的值一起。集合 S = 所有公钥的 P_i 也已发布。所以任何看过 sigma 和集合的人 键 S = P_i 将获得相同的 L_i’ 和 R_i’ 值,从而检查签名。 但后来我想起这部分只是描述签名算法,而不是“检查” 如果签名了,请检查是否已发送给我,如果是,则去花钱。”这就是 游戏的签名部分。 当我最终到达那里时,我有兴趣阅读附录 A。 我希望看到 Cryptonote 与 Bitcoin 的全面逐个操作比较。 此外,还有电力/可持续性。 算法的哪些部分构成了这里的“输入”? 我相信,交易输入是一个金额和一组 UTXO,其总和大于 金额。 这还不清楚。 “隐藏的目标?”我已经想了几分钟了,但我仍然没有想到 最模糊的想法是它可能意味着什么。 双花攻击只能通过操纵节点感知的使用密钥来执行 图像集 \(I\)。 “模糊度” = n 但交易中包含的公钥总数为 n+1。也就是说,模糊度是“你想要多少其他人” 人群?” 默认情况下,答案可能是“尽可能多”。

VER:验证者通过应用逆变换来检查签名: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI 最后,验证者检查是否 正压 我=0 词 ? = Hs(m, L′ 0,. 。 。 , L′ n,R′ 0,. 。 。 ,R′ n) 模 l 如果这个等式正确,验证器将运行 LNK 算法。否则验证者拒绝 签名。 LNK:验证器检查 I 是否已在过去的签名中使用过(这些值存储在 集 I)。多次使用意味着两个签名是在同一密钥下生成的。 协议的含义:通过应用 L 变换,签名者证明他知道 这样 x 至少有一个 Pi = xG。为了使这个证明不可重复,我们引入了关键图像 因为 I = xHp(P)。签名者使用相同的系数 (ri, ci) 来证明几乎相同的陈述: 他知道 x 至少有一个 \(H_p(P_i) = I \cdot x^{-1}\)。 如果映射 \(x \to I\) 是一个注入: 1. 任何人都无法从密钥图像中恢复公钥并识别签名者; 2. 签名者不能使用不同的 I 和相同的 x 进行两个签名。 附录 A 提供了完整的安全分析。 4.5 标准 CryptoNote 交易 通过结合这两种方法(不可链接的公钥和不可追踪的环签名),Bob 实现了 与原始 Bitcoin 方案相比,新的隐私级别。它只需要他存储 一个私钥(a,b)并发布(A,B)以开始接收和发送匿名交易。 在验证每笔交易时,Bob 仅对每个输出执行两次椭圆曲线乘法和一次加法,以检查交易是否属于他。为了他的每一个 输出 Bob 恢复一次性密钥对 (pi, Pi) 并将其存储在他的钱包中。任何输入都可以 仅当它们出现在一次交易中时,才能间接证明它们具有相同的所有者。在 事实上,由于一次性环签名,这种关系更难建立。 通过环签名,鲍勃可以有效地隐藏其他人的每个输入;一切皆有可能 消费者将是等概率的,即使是前任所有者(爱丽丝)也没有比 任何观察者。 当鲍勃签署他的交易时,指定了n个与他的金额相同的外国输出 输出,在没有其他用户参与的情况下混合所有这些。鲍勃本人(以及 其他人)不知道这些付款是否已被花费:可以使用输出 数以千计的签名作为一个模糊因素,而不是作为隐藏的目标。双 支出检查发生在 LNK 阶段,检查已使用的关键映像集。 Bob可以自己选择模糊度:n=1表示他有的概率 花费输出的概率为 50%,n = 99 给出 1%。生成的签名的大小增加 线性为 O(n+1),因此改进的匿名性会让 Bob 付出额外的交易费用。他也可以 设置 n = 0 并使他的环签名仅包含一个元素,但这将立即 揭露他是一个花钱的人。 10 VER:验证者通过应用逆变换来检查签名: ( L′ i = riG + ciPi R′ i = riHp(Pi) + ciI 最后,验证者检查是否 正压 我=0 词 ? = Hs(m, L′ 0,. 。 。 , L′ n,R′ 0,. 。 。 ,R′ n) 模 l 如果这个等式正确,验证器将运行 LNK 算法。否则验证者拒绝 签名。 LNK:验证器检查 I 是否已在过去的签名中使用过(这些值存储在 集 I)。多次使用意味着两个签名是在同一密钥下生成的。 协议的含义:通过应用 L 变换,签名者证明他知道 这样 x 至少有一个 Pi = xG。为了使这个证明不可重复,我们引入了关键图像 因为 I = xHp(P)。签名者使用相同的系数 (ri, ci) 来证明几乎相同的陈述: 他知道 x 至少有一个 \(H_p(P_i) = I \cdot x^{-1}\)。 如果映射 \(x \to I\) 是一个注入: 1. 任何人都无法从密钥图像中恢复公钥并识别签名者; 2. 签名者不能使用不同的 I 和相同的 x 进行两个签名。 附录 A 提供了完整的安全分析。 4.5 标准 CryptoNote 交易 通过结合这两种方法(不可链接的公钥和不可追踪的环签名),Bob 实现了 与原始 Bitcoin 方案相比,新的隐私级别。它只需要他存储 一个私钥(a,b)并发布(A,B)以开始接收和发送匿名交易。 在验证每笔交易时,Bob 仅对每个输出执行两次椭圆曲线乘法和一次加法,以检查交易是否属于他。为了他的每一个 输出 Bob 恢复一次性密钥对 (pi, Pi) 和 st把它放在他的钱包里。任何输入都可以 仅当它们出现在一次交易中时,才能间接证明它们具有相同的所有者。在 事实上,由于一次性环签名,这种关系更难建立。 通过环签名,鲍勃可以有效地隐藏其他人的每个输入;一切皆有可能 消费者将是等概率的,即使是前任所有者(爱丽丝)也没有比 任何观察者。 当鲍勃签署他的交易时,指定了n个与他的金额相同的外国输出 输出,在没有其他用户参与的情况下混合所有这些。鲍勃本人(以及 其他人)不知道这些付款是否已被花费:可以使用输出 数以千计的签名作为一个模糊因素,而不是作为隐藏的目标。双 支出检查发生在 LNK 阶段,检查已使用的关键映像集。 Bob可以自己选择模糊度:n=1表示他有的概率 花费输出的概率为 50%,n = 99 给出 1%。生成的签名的大小增加 线性为 O(n+1),因此改进的匿名性会让 Bob 付出额外的交易费用。他也可以 设置 n = 0 并使他的环签名仅包含一个元素,但这将立即 揭露他是一个花钱的人。 10 20 这很有趣;早些时候,我们为接收者 Bob 提供了一种方法来使所有 INCOMING 通过确定性地选择一半的私钥或通过 将他一半的私钥公开。这是一种不走回头路的政策。在这里,我们看到 发送者 Alex 选择单个传出交易作为可链接的一种方式,但实际上这是 向整个网络显示 Alex 是发件人。这不是一种不走回头路的政策。 这是逐笔交易。 还有第三个政策吗?接收方 Bob 能否为 Alex 生成一个唯一的付款 ID? 永远不会改变,也许使用 Dffie-Hellman 交换? 如果有人包含该付款 ID 绑定在她的交易中的某个位置到 Bob 的地址,它一定来自 Alex。 这样,亚历克斯就不需要通过选择链接特定的网络来向整个网络暴露自己。 交易,但她仍然可以向收款人表明自己的身份。 这不是 Poloniex 所做的吗?

交易 发射输入 输出0 。 。 。 输出i 。 。 。 输出n 关键图像 签名 环签名 目的地键 输出1 目的地键 输出n 国外交易 发送者的输出 目的地键 一次性密钥对 一次性 私钥 I = xHp(P) , x 图 7. 标准交易中的环签名生成。 5 平等的工作量证明 在本节中,我们提出并基础了新的 proof-of-work 算法。 我们的首要目标 是缩小 CPU(多数)和 GPU/FPGA/ASIC(少数)矿工之间的差距。它是 适当的是,某些用户可以比其他用户拥有一定的优势,但他们的投资 应至少随功率线性增长。更一般地说,生产专用设备 必须尽可能降低利润。 5.1 相关作品 原始 Bitcoin proof-of-work 协议使用 CPU 密集型定价函数 SHA-256。 它主要由基本逻辑运算符组成,完全依赖于计算速度 因此,处理器非常适合多核/传送器实现。 然而,现代计算机并不仅限于每秒的操作次数, 还受内存大小的影响。虽然某些处理器可能比其他处理器快得多 [8], 机器之间的内存大小不太可能有所不同。 内存限制价格函数首先由 Abadi 等人提出,定义为 “计算时间主要由访问内存所花费的时间决定的函数”[15]。 主要思想是构建一个分配大数据块的算法(“scratchpad”) 在访问速度相对较慢的内存(例如 RAM)中并且“访问 其中不可预测的位置顺序”。一个块应该足够大以保存 数据比每次访问重新计算数据更有利。该算法还应该 防止内部并行,因此 N 个并发线程应该需要 N 倍的内存 立刻。 Dwork 等人 [22] 研究了这种方法并将其形式化,导致他们提出了另一种方法 定价函数的变体:“Mbound”。 另一件作品属于 F. Coelho [20],他 11 交易 发射输入 输出0 。 。 。 输出i 。 。 。 输出n 关键图像 签名 环签名 目的地键 输出1 目的地键 输出n 国外交易 发送者的输出 目的地键 一次性密钥对 一次性 私钥 I = xHp(P) , x 图 7. 标准交易中的环签名生成。 5 平等的工作量证明 在本节中,我们提出并基础了新的 proof-of-work 算法。 我们的首要目标 是缩小 CPU(多数)和 GPU/FPGA/ASIC(少数)矿工之间的差距。它是 适当的是,某些用户可以比其他用户拥有一定的优势,但他们的投资 应至少随功率线性增长。更一般地说,生产专用设备 必须尽可能降低利润。 5.1 相关作品 原始 Bitcoin proof-of-work 协议使用 CPU 密集型定价函数 SHA-256。 它主要由基本逻辑运算符组成,完全依赖于计算速度 因此,处理器非常适合多核/传送器实现。 然而,现代计算机并不仅限于每秒的操作次数, 还受内存大小的影响。虽然某些处理器可能比其他处理器快得多 [8], 机器之间的内存大小不太可能有所不同。 内存限制价格函数首先由 Abadi 等人提出,定义为 “计算时间主要由访问内存所花费的时间决定的函数”[15]。 主要思想是构建一个分配大数据块的算法(“scratchpad”) 在访问速度相对较慢的内存(例如 RAM)中并且“访问 其中不可预测的位置顺序”。一个块应该足够大以保存 数据比每次访问重新计算数据更有利。该算法还应该 防止内部并行,因此 N 个并发线程应该需要 N 倍的内存 立刻。 Dwork 等人 [22] 研究了这种方法并将其形式化,导致他们提出了另一种方法 定价函数的变体:“Mbound”。 另一件作品属于 F. Coelho [20],他 11 21 表面上,这些是我们的 UTXO:金额和目的地键。如果 Alex 是构建此标准交易并将其发送给 Bob 的人,那么 Alex 也拥有私钥 对于每一个。 我非常喜欢这张图,因为它回答了一些之前的问题。 Txn 输入包括 一组 Txn 输出和一个 key 图像。然后用环签名对其进行签名,包括所有 Alex 拥有该交易中所有外国交易的私钥。的 Txn 输出由金额和目标密钥组成。交易的接收者可以, 随意生成他们的一次性私钥,如本文前面所述,以便花费 钱。 很高兴知道这与实际代码有多少匹配...... 不,Nic van Saberhagen 松散地描述了工作量证明算法的一些属性, 没有实际描述该算法。 CryptoNight 算法本身需要深入分析。 当我读到这里时,我结巴了。投资是否应该至少与电力呈线性增长,或者应该 投资增长最多与功率呈线性关系? 然后我意识到;我作为一个矿工,或者一个投资者,通常会想到“我能得到多少算力” 为了投资?”不是“固定电量需要多少投资?” 当然,用 I 表示投资,用 P 表示功率。如果 I(P) 是作为功率函数的投资 P(I) 是作为投资函数的权力,它们将彼此相反(无论何时 逆可以存在)。如果 I(P) 比线性快,那么 P(I) 比线性慢。因此, 投资者的回报率将会降低。 也就是说,作者在这里所说的是:“当然,当你投入更多时,你会得到更多 权力。但我们应该努力降低回报率。” CPU 投资最终将呈次线性上限;问题是作者是否 我们设计了一种 POW 算法,迫使 ASIC 也这样做。 假设的“未来货币”是否应该总是用最慢/最有限的资源来开采? Abadi 等人(作者是一些 Google 和 Microsoft 工程师)的论文是: 本质上,利用在过去几年内存大小已经小得多的事实 机器之间的差异大于处理器速度,并且具有超过线性的投资功率比。 几年后,这可能需要重新评估!一切都是军备竞赛...... 构造 hash 函数很困难;构建满足这些约束的 hash 函数似乎更困难。这篇文章似乎没有解释实际情况 hashing 算法 CryptoNight。我认为这是 SHA-3 的内存困难实现,基于 在论坛帖子上,但我不知道......这就是重点。必须加以解释。

提出了最有效的解决方案:“北海道”。 据我们所知,基于大数组中伪随机搜索思想的最后一项工作是 C. Percival [32] 称为“scrypt”的算法。与之前的功能不同,它专注于 密钥派生,而不是 proof-of-work 系统。尽管如此,scrypt 仍然可以满足我们的目的: 它在部分 hash 转换问题中作为定价函数效果很好,例如 SHA-256 Bitcoin。 到目前为止,scrypt 已经应用于 Litecoin [14] 和其他一些 Bitcoin 分叉中。然而,它的实现并不是真正受内存限制:比率“内存访问时间/总体时间” time”不够大,因为每个实例仅使用 128 KB。这允许 GPU 矿工 大约提高 10 倍,并且继续留下相对创造的可能性 廉价但高效的采矿设备。 此外,scrypt 结构本身允许在内存大小和 CPU 速度是因为暂存器中的每个块都仅源自前一个块。 例如,您可以存储每隔一个块并以惰性方式重新计算其他块,即仅 当有必要时。假设伪随机索引是均匀分布的, 因此额外块重新计算的期望值为1 \(2 \cdot N\),其中N是数字 迭代次数。总体计算时间增加不到一半,因为还有 与时间无关(恒定时间)的操作,例如准备暂存器和 hashing 每次迭代。节省 2/3 的内存成本 1 \(3 \cdot N\)+1 3 \(\cdot\) \(2 \cdot N\)=N次额外重新计算; 9/10 结果 1 \(10 \cdot N\)+。 。 。 + 1 \(10 \cdot 9 \cdot N\)=4.5N。很容易证明只存储 1 所有块的 s 增加时间小于 s−1 倍 2.这反过来又意味着具有 CPU 的机器 比现代芯片快200倍,只能存储320字节的暂存器。 5.2 提出的算法 我们为 proof-of-work 定价函数提出了一种新的内存限制算法。它依赖于 随机访问慢速内存并强调延迟依赖性。与 scrypt every 相反 新块(长度为 64 字节)取决于所有先前的块。结果是一个假设的 “内存节省者”应该成倍地提高他的计算速度。 我们的算法每个实例大约需要 2 Mb,原因如下: 1.它适合现代处理器的L3缓存(每个核心),这应该成为主流 几年后; 2. 对于现代 ASIC 流水线来说,1MB 的内部存储器几乎是不可接受的大小; 3. GPU 可以运行数百个并发实例,但它们在其他方面受到限制: GDDR5 内存比 CPU L3 缓存慢,但带宽显着,而不是 随机访问速度。 4. 暂存器的显着扩展将需要增加迭代次数,这在 转向意味着总体时间增加。不信任的 p2p 网络中的“大量”调用可能会导致 严重漏洞,因为节点有义务检查每个新块的 proof-of-work。 如果节点在每次 hash 评估上花费大量时间,则可以轻松地 通过大量具有任意工作数据(nonce 值)的虚假对象进行 DDoS 攻击。 12 提出了最有效的解决方案:“北海道”。 据我们所知,基于大数组中伪随机搜索思想的最后一项工作是 C. Percival [32] 称为“scrypt”的算法。与之前的功能不同,它专注于 密钥派生,而不是 proof-of-work 系统。尽管如此,scrypt 仍然可以满足我们的目的: 它在部分 hash 转换问题中作为定价函数效果很好,例如 SHA-256 Bitcoin。 到目前为止,scrypt 已经应用于 Litecoin [14] 和其他一些 Bitcoin 分叉中。然而,它的实现并不是真正受内存限制:比率“内存访问时间/总体时间” time”不够大,因为每个实例仅使用 128 KB。这允许 GPU 矿工 大约提高 10 倍,并且继续留下相对创造的可能性 廉价但高效的采矿设备。 此外,scrypt 结构本身允许在内存大小和 CPU 速度是因为暂存器中的每个块都仅源自前一个块。 例如,您可以存储每隔一个块并以惰性方式重新计算其他块,即仅 当有必要时。假设伪随机索引是均匀分布的, 因此额外块重新计算的期望值为1 \(2 \cdot N\),其中N 是数字 迭代次数。总体计算时间增加不到一半,因为还有 与时间无关(恒定时间)的操作,例如准备暂存器和 hashing 每次迭代。节省 2/3 的内存成本 1 \(3 \cdot N\)+1 3 \(\cdot\) \(2 \cdot N\)=N次额外重新计算; 9/10 结果 1 \(10 \cdot N\)+。 。 。 + 1 \(10 \cdot 9 \cdot N\)=4.5N。很容易证明只存储 1 所有块的 s 增加时间小于 s−1 倍 2.这反过来又意味着具有 CPU 的机器 比现代芯片快200倍,只能存储320字节的暂存器。 5.2 提出的算法 我们为 proof-of-work 定价函数提出了一种新的内存限制算法。它依赖于 随机访问慢速内存并强调延迟依赖性。与 scrypt every 相反 新块(长度为 64 字节)取决于所有先前的块。结果是一个假设的 “内存节省者”应该成倍地提高他的计算速度。 我们的算法每个实例大约需要 2 Mb,原因如下: 1.它适合现代处理器的L3缓存(每个核心),这应该成为主流 几年后; 2. 对于现代 ASIC 流水线来说,1MB 的内部存储器几乎是不可接受的大小; 3. GPU 可以运行数百个并发实例,但它们在其他方面受到限制: GDDR5 内存比 CPU L3 缓存慢,但带宽显着,而不是 随机访问速度。 4. 暂存器的显着扩展将需要增加迭代次数,这在 转向意味着总体时间增加。不信任的 p2p 网络中的“大量”调用可能会导致 严重漏洞,因为节点有义务检查每个新块的 proof-of-work。 如果节点在每次 hash 评估上花费大量时间,则可以轻松地 通过大量具有任意工作数据(nonce 值)的虚假对象进行 DDoS 攻击。 12 22 没关系,这是一个加密货币? 算法在哪里?我看到的都是广告。 如果 Cryptonote 的 PoW 算法值得的话,这就是 Cryptonote 真正大放异彩的地方。这不是 真的SHA-256,它并不是真正的scrypt。它是新的、受内存限制且非递归的。

6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡成本和费用利润之间的权衡,并设定自己的 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡之间的权衡e 费用和利润,并自行设定 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 23 原子单位。我喜欢这样。这相当于中本聪吗? 如果是这样,那就意味着将有 1850 亿枚加密货币。 我知道这最终必须在几页中进行调整,或者可能存在拼写错误? 如果基本奖励是“所有剩余的硬币”,那么只有一个区块就足以获得所有硬币。 即时。 另一方面,如果这应该以某种方式与 现在与某个硬币生产终止日期之间的时间差? 那会 有道理。 另外,在我的世界里,像这样的两个大于符号意味着“远大于”。作者有没有 可能意味着别的什么? 如果每个区块都进行难度调整,那么攻击者可能会拥有一个非常大的农场 机器在精心选择的时间间隔内断断续续地挖矿。如果难度调整公式没有得到适当的抑制,这可能会导致难度的混乱爆炸(或崩溃到零)。 毫无疑问,Bitcoin的方法不适合快速重新计算,但惯性的思想 这些系统中的功能需要得到证明,而不是想当然。此外,振荡 网络困难不一定是问题,除非它导致表面上的振荡 硬币的供应 - 以及快速变化的难度可能会导致“过度修正”。 所花费的时间,特别是在几分钟之类的短时间内,将与“总时间”成正比。 网络上创建的块数。”比例常数本身会增长 随着时间的推移,如果 CN 起飞的话,可能会呈指数级增长。 简单地调整难度以保持“在网络上创建的总块数”可能是一个更好的主意。 自最后一个区块被添加到主链以来的网络”在某个恒定值内,或者 有界变化或类似的东西。如果自适应算法在计算上 可以确定容易实施,这样看来问题就解决了。 但是,如果我们使用这种方法,拥有大型矿场的人可能会关闭他们的矿场 几个小时,然后再次打开它。对于前几个街区,该农场将生产 银行。 所以,实际上,这种方法会提出一个有趣的观点:挖矿(平均而言)变成了 在没有投资回报的情况下输掉比赛,尤其是随着越来越多的人跳上网络。如果挖矿难度 非常密切跟踪的网络 hashrate,我以某种方式怀疑人们会像他们一样开采 目前正在做。 或者,另一方面,他们可能不会让矿场 24/7 持续运转,而是将其转变为 开启 6 小时,关闭 2 小时,开启 6 小时,关闭 2 小时,或类似的时间。只需换成另一种硬币即可 几个小时,等待难度下降,然后重新开始以获得额外的难度 随着网络的适应,盈利能力受到阻碍。你知道吗?这其实大概是 我全心投入的更好的采矿场景之一...... 这可能是循环的,但如果块创建时间平均约为一分钟,我们可以 使用块数作为“花费时间”的代理?

6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡成本和费用利润之间的权衡,并设定自己的 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡之间的权衡e 费用和利润,并自行设定 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 24 好的,我们有一个 blockchain,每个块都有时间戳 订购了。这显然是为了调整难度而插入的,因为时间戳是 如前所述,非常不可靠。我们是否允许链中存在相互矛盾的时间戳? 如果区块 A 在链中出现在区块 B 之前,并且在财务方面一切都是一致的, 但 A 区似乎是在 B 区之后创建的?因为,也许有人拥有 网络的很大一部分?可以吗? 可能是因为财务状况没有出现问题。 好吧,所以我讨厌这种任意的“只有 80% 的块对于主 blockchain 是合法的” 方法。它的目的是防止骗子调整他们的时间戳?但现在,它增加了 激励每个人谎报自己的时间戳并只选择中位数。 请定义。 意思是“对于这个区块,只包括费用更大的交易” 高于 p%,优先收取高于 2p% 的费用”或类似的费用? 他们说的假货是什么意思? 如果交易与过去的历史一致 blockchain,并且交易包含了让矿工满意的费用,这还不够吗?嗯, 不,不一定。如果不存在最大块大小,则没有什么可以阻止恶意用户 从简单地一次性上传大量交易给自己只是为了放慢速度 网络。 最大块大小的核心规则可以防止人们放入大量垃圾 一次性将 blockchain 上的数据全部删除,只是为了减慢速度。但这样的规则当然必须 具有适应性 - 例如,在圣诞节期间,我们预计流量会激增,并且 块大小变得非常大,然后立即块大小随后下降 再次。因此,我们需要 a) 某种自适应上限或 b) 足够大的上限,以便 99% 合理的圣诞节高峰不会突破上限。当然,第二个是不可能的 估计——谁知道某种货币是否会流行?最好让它适应而不用担心 关于它。但接下来我们有一个控制理论问题:如何在没有 容易受到攻击或疯狂的振荡? 请注意,自适应方法并不能阻止恶意用户积累少量资金 随着时间的推移,blockchain 上的垃圾数据会导致长期膨胀。这是一个不同的问题 总的来说,加密货币存在严重的问题。

6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡成本和费用利润之间的权衡,并设定自己的 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 6 更多优点 6.1 平稳发射 CryptoNote 数字货币总量的上限为:MSupply = 264 −1 原子单位。这是仅基于实现限制而不是直觉的自然限制 比如“N个币对任何人来说都应该足够了”。 为了保证发射过程的顺利,我们对块使用以下公式 奖励: 基础奖励 = (MSupply −A) ≫18, 其中 A 是先前生成的硬币数量。 6.2 可调参数 6.2.1 难度 CryptoNote 包含一个目标算法,可以改变每个块的难度。这个 当网络 hashrate 急剧增长或收缩时,减少系统的反应时间, 保持恒定的块率。原始的 Bitcoin 方法计算实际的关系 和最后 2016 个区块之间的目标时间跨度,并将其用作当前区块的乘数 困难。显然这不适合快速重新计算(因为惯性大)并且 导致振荡。 我们算法背后的总体思想是将节点完成的所有工作相加 除以他们花费的时间。工作量的衡量标准是相应的难度值 在每个块中。但由于时间戳不准确且不受信任,我们无法确定确切的时间 块之间的时间间隔。用户可以将他的时间戳转移到未来和下一个时间 间隔可能很小甚至是负值。估计会出现很少的情况 这种情况下,我们可以对时间戳进行排序并剔除异常值(即 20%)。范围为 其余值是 80% 的相应块所花费的时间。 6.2.2 尺寸限制 用户支付存储 blockchain 的费用,并有权对其大小进行投票。 每个矿工 处理平衡之间的权衡e 费用和利润,并自行设定 用于创建块的“软限制”。最大块大小的核心规则对于 防止 blockchain 被虚假交易淹没,但是该值应该 不要硬编码。 令 MN 为最后 N 个块大小的中值。然后是大小的“硬限制” 接受块的数量是2 \(\cdot\) MN。它可以避免 blockchain 膨胀,但仍然允许限制 如果有必要的话,会随着时间慢慢增长。 交易大小不需要明确限制。它受块大小的限制; 如果有人想创建一个具有数百个输入/输出(或具有 环签名的高度模糊性),他可以通过支付足够的费用来做到这一点。 6.2.3 尺寸过大的处罚 矿工仍然有能力将自己的零费用交易塞满区块,直至达到最大值 大小 \(2 \cdot M_b\)。尽管只有大多数矿工可以改变中值,但仍然存在 13 25 重新调整时间,使一个时间单位为 N 个块,理论上,平均块大小仍然可以按指数比例增长到 2ˆt。另一方面,更通用的上限 对于某个函数 f,下一个块将是 M_nf(M_n)。 f 有哪些性质 我们选择是为了保证区块大小的“合理增长”?的进展 块大小(重新调整时间后)将如下所示: M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... 这里的目标是选择 f 使得该序列的增长速度不超过线性增长速度, 或者甚至可以作为 Log(t)。当然,如果 f(M_n) = a 对于某个常数 a,则该序列为 实际上 M_n aM_n a^2M_n a^3M_n ... 当然,限制至多线性增长的唯一方法是选择 a=1。 这当然是不可行的。它根本不允许生长。 另一方面,如果 f(M_n) 是一个非常数函数,那么情况就更复杂了 复杂,并且可以提供优雅的解决方案。我会考虑一下这个问题。 该费用必须足够大,才能抵消下一部分的超额罚款。 为什么一般用户被假定为男性,嗯?啊?

可能会使 blockchain 膨胀并在节点上产生额外的负载。劝阻 对于创建大区块的恶意参与者,我们引入了惩罚函数: 新奖励=基础奖励 \(\cdot\) 块大小 明尼苏达州 −1 2 仅当 BlkSize 大于最小空闲块大小时才应用此规则,而最小空闲块大小应 接近max(10kb, \(M_N \cdot 110\%\))。矿工可以创建“正常大小”的区块,甚至 当总费用超过罚款时,利润就超过了罚款。但费用不太可能增长 与惩罚值不同,是二次方,因此会存在平衡。 6.3 交易脚本 CryptoNote 有一个非常简约的脚本子系统。发送者指定一个表达式 Φ = f (x1, x2, ..., xn),其中 n 是目标公钥 {Pi}n 的数量 我=1。只有五个二进制 支持运算符:min、max、sum、mul 和 cmp。当收款人花掉这笔款项时, 他产生 \(0 \leq k \leq n\) 签名并将它们传递到交易输入。验证过程 只需使用 xi = 1 计算 Φ,以检查公钥 Pi 的有效签名,并且 xi = 0。 验证者在 iffΦ > 0 时接受该证明。 尽管很简单,但这种方法涵盖了所有可能的情况: • 多重/阈值签名。对于 Bitcoin 风格的“M-out-of-N”多重签名(即 接收方应提供至少 \(0 \leq M \leq N\) 个有效签名) Φ = x1+x2+。 。 .+xN\(\geq M\) (为了清楚起见,我们使用常见的代数符号)。加权阈值签名 (某些键可能比其他键更重要)可以表示为 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\)+ . 。 。 + \(w_N \cdot x_N\) \(\geq wM\)。主密钥对应的场景 Φ = max(\(M \cdot x\), x1 + x2 + ... + xN) \(\geq M\)。很容易证明任何复杂的情况都可以 用这些运算符表示,即它们构成基础。 • 密码保护。拥有秘密密码 s 相当于知道 私钥,确定性地从密码导出:k = KDF(s)。因此,接收器 可以通过在密钥 k 下提供另一个签名来证明他知道密码。 发送者只需将相应的公钥添加到他自己的输出中即可。请注意,这 方法比 Bitcoin [13] 中使用的“交易谜题”安全得多,其中 密码在输入中显式传递。 • 退化的情况。 Φ = 1 意味着任何人都可以花这笔钱; Φ = 0 标志着 产出不能永远使用。 如果与公钥结合的输出脚本对于发送者来说太大,他 可以使用特殊的输出类型,这表明接收者会将这些数据放入他的输入中 而发件人仅提供其中的 hash 。这种方法类似于 Bitcoin 的“pay-to-hash” 功能,但我们没有添加新的脚本命令,而是在数据结构中处理这种情况 水平。 7 结论 我们调查了 Bitcoin 中的主要缺陷并提出了一些可能的解决方案。这些有利的功能和我们不断的开发使得新的电子现金系统 CryptoNote Bitcoin 的有力竞争对手,超越了它的所有叉子。 14 可能会使 blockchain 膨胀并在节点上产生额外的负载。劝阻 对于创建大区块的恶意参与者,我们引入了惩罚函数: 新奖励=基础奖励 \(\cdot\) 块大小 明尼苏达州 −1 2 仅当 BlkSize 大于最小空闲块大小时才应用此规则,而最小空闲块大小应 接近max(10kb, \(M_N \cdot 110\%\))。矿工可以创建“正常大小”的区块,甚至 当总费用超过罚款时,利润就超过了罚款。但费用不太可能增长 与惩罚值不同,是二次方,因此会存在平衡。 6.3 交易脚本 CryptoNote 有一个非常简约的脚本子系统。发送者指定一个表达式 Φ = f (x1, x2, ..., xn),其中 n 是目标公钥 {Pi}n 的数量 我=1。只有五个二进制 支持运算符:min、max、sum、mul 和 cmp。当收款人花掉这笔款项时, 他产生 \(0 \leq k \leq n\) 签名并将它们传递到交易输入。验证过程 只需使用 xi = 1 计算 Φ,以检查公钥 Pi 的有效签名,并且 xi = 0。 验证者在 iffΦ > 0 时接受该证明。 尽管很简单,但这种方法涵盖了所有可能的情况: • 多重/阈值签名。对于 Bitcoin 风格的“M-out-of-N”多重签名(即 接收方应提供至少 \(0 \leq M \leq N\) 个有效签名) Φ = x1+x2+。 。 .+xN\(\geq M\) (为了清楚起见,我们使用常见的代数符号)。加权阈值签名 (某些键可能比其他键更重要)可以表示为 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\)+ . 。 。 + \(w_N \cdot x_N\) \(\geq wM\)。和场景io 其中主密钥对应于 Φ = max(\(M \cdot x\), x1 + x2 + ... + xN) \(\geq M\)。很容易证明任何复杂的情况都可以 用这些运算符表示,即它们构成基础。 • 密码保护。拥有秘密密码 s 相当于知道 私钥,确定性地从密码导出:k = KDF(s)。因此,接收器 可以通过在密钥 k 下提供另一个签名来证明他知道密码。 发送者只需将相应的公钥添加到他自己的输出中即可。请注意,这 方法比 Bitcoin [13] 中使用的“交易难题”安全得多,其中 密码在输入中显式传递。 • 退化的情况。 Φ = 1 意味着任何人都可以花这笔钱; Φ = 0 标志着 产出不能永远使用。 如果与公钥结合的输出脚本对于发送者来说太大,他 可以使用特殊的输出类型,这表明接收者会将这些数据放入他的输入中 而发件人仅提供其中的 hash 。这种方法类似于 Bitcoin 的“pay-to-hash” 功能,但我们没有添加新的脚本命令,而是在数据结构中处理这种情况 水平。 7 结论 我们调查了 Bitcoin 中的主要缺陷并提出了一些可能的解决方案。这些有利的功能和我们不断的开发使得新的电子现金系统 CryptoNote Bitcoin 的有力竞争对手,超越了它的所有叉子。 14 26 如果我们能找到一种随着时间的推移限制块大小的方法,这可能是不必要的...... 这也不可能是正确的。他们只是将“NewReward”设置为向上的抛物线,其中 块大小是自变量。所以新的奖励会增加到无穷大。如果,另一方面 手,新的奖励是Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2)),那么新的奖励 将是一个向下的抛物线,其峰值位于块大小 = Mn,截距为 块大小 = 0 且块大小 = 2Mn。这似乎就是他们想要描述的。 然而,这并不

추적 불가능한 거래

이 섹션에서는 추적 불가능성과 두 가지 모두를 만족하는 완전 익명 거래 방식을 제안합니다. 및 연결 해제 조건. 우리 솔루션의 중요한 특징은 자율성입니다. 거래를 수행하기 위해 다른 사용자나 신뢰할 수 있는 제3자와 협력할 필요가 없습니다. 따라서 각 참가자는 독립적으로 커버 트래픽을 생성합니다. 4.1 문헌 검토 우리의 체계는 그룹 서명이라는 암호화 기본 요소에 의존합니다. 처음 발표한 사람 D. Chaum 및 E. van Heyst [19]를 사용하면 사용자가 그룹을 대신하여 메시지에 서명할 수 있습니다. 메시지에 서명한 후 사용자는 자신의 단일 공개가 아닌 (확인 목적으로) 제공합니다. 1이것은 소위 "소프트 제한", 즉 새 블록 생성에 대한 참조 클라이언트 제한입니다. 하드 최대값 가능한 블록 크기는 1MB였습니다. 4 필요한 경우 주요 단점이 발생합니다. 아쉽게도 언제 출시될지 예측하기 어렵습니다. 상수를 변경해야 할 수도 있고 이를 교체하면 끔찍한 결과를 초래할 수도 있습니다. 비참한 결과를 초래하는 하드코딩된 제한 변경의 좋은 예는 블록입니다. 크기 제한이 250kb1로 설정되었습니다. 이 한도는 약 10000개의 표준 트랜잭션을 보유하는 데 충분했습니다. 에서 2013년 초, 이 한도에 거의 도달했고, 이를 늘리기로 합의했습니다. 한계. 변경 사항은 지갑 버전 0.8에서 구현되었으며 24블록 체인 분할로 끝났습니다. 성공적인 이중 지출 공격 [9]. 버그는 Bitcoin 프로토콜에는 없었지만 오히려 데이터베이스 엔진에서는 간단한 스트레스 테스트를 통해 쉽게 발견할 수 있었습니다. 인위적으로 도입된 블록 크기 제한이 없습니다. 상수는 중앙집중화 지점의 역할도 합니다. P2P 성격에도 불구하고 Bitcoin, 압도적 다수의 노드가 개발한 공식 참조 클라이언트 [10]을 사용합니다. 소수의 사람들. 이 그룹은 프로토콜 변경을 구현하기로 결정합니다. 그리고 대부분의 사람들은 "정확성"에 관계없이 이러한 변경 사항을 받아들입니다. 일부 결정으로 인해 발생 열띤 토론을 벌이고 심지어 보이콧을 요구하기도 합니다 [11]. 이는 커뮤니티와 개발자는 몇 가지 중요한 사항에 동의하지 않을 수 있습니다. 따라서 프로토콜을 갖는 것이 논리적인 것 같습니다. 이러한 문제를 방지하기 위한 가능한 방법으로 사용자가 구성할 수 있고 자체 조정 가능한 변수를 사용합니다. 2.5 부피가 큰 스크립트 Bitcoin의 스크립팅 시스템은 무겁고 복잡한 기능입니다. 잠재적으로 다음을 만들 수 있습니다. 정교한 거래 [12]이지만 보안 문제로 인해 일부 기능이 비활성화되어 있으며 일부는 한 번도 사용된 적이 없습니다([13]). 스크립트(발신자 및 수신자 부분 모두 포함) Bitcoin에서 가장 인기 있는 거래는 다음과 같습니다. OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. 스크립트의 길이는 164바이트이지만 유일한 목적은 수신자가 해당 스크립트를 소유하고 있는지 확인하는 것입니다. 서명을 확인하려면 비밀 키가 필요합니다. 3 크립토노트 기술 이제 Bitcoin 기술의 한계를 다루었으므로 다음에 집중하겠습니다. CryptoNote의 기능을 소개합니다. 4 추적 불가능한 거래 이 섹션에서는 추적 불가능성과 두 가지 모두를 만족하는 완전 익명 거래 방식을 제안합니다. 및 연결 해제 조건. 우리 솔루션의 중요한 특징은 자율성입니다. 거래를 수행하기 위해 다른 사용자나 신뢰할 수 있는 제3자와 협력할 필요가 없습니다. 따라서 각 참가자는 독립적으로 커버 트래픽을 생성합니다. 4.1 문헌 검토 우리의 체계는 그룹 서명이라는 암호화 기본 요소에 의존합니다. 처음 발표한 사람 D. Chaum 및 E. van Heyst [19]를 사용하면 사용자가 그룹을 대신하여 메시지에 서명할 수 있습니다. 메시지에 서명한 후 사용자는 자신의 단일 공개가 아닌 (확인 목적으로) 제공합니다. 1이것은 소위 "소프트 제한", 즉 새 블록 생성에 대한 참조 클라이언트 제한입니다. 하드 최대값 가능한 블록 크기는 1MB였습니다. 4 7 돌이켜보면 코드에서 블록 크기를 고정된 제한으로 만든 것은 큰 실수였던 것 같습니다. Visa와 Mastercard는 수십만은 아니더라도 수천 건의 거래를 처리할 수 있습니다. 초당. 그러나 거래는 확률론적 과정으로 이루어지며, 때로는 대규모 폭발로 발생하기도 합니다. 때로는 몇 시간 동안 조용히 지내기도 합니다. 비트코인 거래량을 생각해 보세요. 필요할 때 블록 크기를 동적으로 늘리는 시스템을 설계하는 것은 멋진 아이디어처럼 보입니다. 증가된 트랜잭션 트래픽을 수용하고 필요한 경우 동적으로 트래픽을 줄입니다. 대역폭 효율성을 높입니다. 이제 해당 개념을 모든 시스템 매개변수에 적용하십시오. 그리고 우리가 통제 불능의 어획량 방지 시스템, 이 sh잘 될 것 같아요. https://github.com/bitcoin/bips/blob/master/bip-0050.mediawiki 앞서 언급했듯이 변수가 자체 조정되는 경우 일부 제어를 적용해야 합니다. 시스템이 통제 불능 상태로 진행되는 것을 방지합니다. 우리는 그것에 대해 알아볼 것입니다. 이것이 위키피디아 기사라면 "STUB"라는 라벨이 붙을 것입니다. 우리는 확실히 "Bitcoin의 문제점"을 소개하는 섹션에 대해 좀 더 자세히 설명하고 싶습니다. 왜? 간단한 "비밀 키 확인" 작업에 164바이트가 허용되지 않습니까? 얼마나 작아질 수 있나요? 합리적인 스크립팅 언어? 하지만 저는 컴퓨터 과학자는 아닙니다. http://download.springer.com/static/pdf/412/chp%253A10.1007%252F3-540-46416-6_22.pdf?auth66=140 설명된 대로 그룹 서명에는 그룹 관리자가 필요합니다. 그룹 관리자는 능력이 있습니다 서명자의 익명성을 취소합니다. 따라서 그룹에는 중앙 집중화가 내장되어 있습니다. 서명 방식.

키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리의 방식을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 엔터티와 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타 정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후에는 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 8 링 서명은 다음과 같이 작동합니다. Alex는 자신의 고용주에 대한 메시지를 WikiLeaks에 유출하려고 합니다. 회사의 모든 직원은 개인/공개 키 쌍(Ri, Ui)을 가지고 있습니다. 그녀는 작곡을 한다 입력이 그녀의 메시지로 설정된 그녀의 서명, m, 그녀의 개인 키, Ri 및 EVERYBODY의 공개 키(Ui;i=1...n). 개인 키를 모르더라도 누구나 쉽게 확인할 수 있습니다. 일부 쌍(Rj, Uj)이 서명을 구성하는 데 사용되었을 것입니다... 일하는 사람 Alex의 고용주에게는... 하지만 그것이 어느 회사인지 알아내는 것은 본질적으로 무작위 추측입니다. http://en.wikipedia.org/wiki/Ring_signature#Crypto-currencies http://link.springer.com/chapter/10.1007/3-540-45682-1_32#page-1 http://link.springer.com/chapter/10.1007/11424826_65 http://link.springer.com/chapter/10.1007/978-3-540-27800-9_28 http://link.springer.com/chapter/10.1007%2F11774716_9 여기에 설명된 연결 가능한 링 서명은 "연결 해제 가능"과 반대되는 개념입니다. 위에서 설명한. 여기서는 두 개의 메시지를 가로채서 동일한지 여부를 확인할 수 있습니다. 당사자가 보낸 것입니다. 하지만 그 당사자가 누구인지는 아직 확인할 수 없습니다. 는 Cryptonote를 구성하는 데 사용된 "연결 불가능"의 정의는 우리가 여부를 결정할 수 없음을 의미합니다. 같은 당사자가 그것을 받고 있습니다. 따라서 여기서 우리가 실제로 알고 있는 것은 네 가지 일이 진행되고 있다는 것입니다. 시스템은 연결 가능하거나 연결 불가능, 발신인 여부를 판단할 수 있는지 여부에 따라 다름 두 메시지가 동일합니다(익명성 취소가 필요한지 여부에 관계 없음). 그리고 시스템은 연결 해제가 가능한지 여부에 따라 연결 해제되거나 연결 해제되지 않을 수 있습니다. 두 메시지의 수신자가 동일한지 여부를 확인합니다(여부에 관계 없음). 이를 위해서는 익명성을 취소해야 합니다.) 이 끔찍한 용어 때문에 나를 비난하지 마십시오. 그래프 이론가들은 아마도 기뻐요. 여러분 중에는 "수신자 연결 가능"과 "발신자 연결 가능"이 더 편할 수도 있습니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 이 내용을 읽어보니 정말 말도 안 되는 기능인 것 같았습니다. 그런 다음 그것이 다음의 기능일 수 있다는 것을 읽었습니다. 전자투표를 했는데 그게 말이 되는 것 같았어요. 그런 관점에서 보면 좀 멋지네요. 하지만 나는 추적 가능한 링 서명을 의도적으로 구현하는 것에 대해 완전히 확신하지 못합니다. http://search.ieice.org/bin/summary.php?id=e95-a_1_151

키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24]의 관점에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 우리의 방식은 향후 Bitcoin에도 적용될 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 9 이 백서의 작성자인 맙소사, 이 내용을 더 잘 표현했을 수도 있겠네요! 다음과 같이 말해보자 직원 소유 회사는 특정 신규 인수 여부에 대해 투표를 원합니다. 자산이며 Alex와 Brenda는 모두 직원입니다. 회사는 각 직원에게 "나는 발의안 A에 찬성 투표합니다!"와 같은 메시지 메타정보 "문제"가 있는 [PROP A] 제안을 지지하는 경우 추적 가능한 링 서명으로 서명하도록 요청합니다. 전통적인 링 서명을 사용하면 부정직한 직원이 메시지에 여러 번 서명할 수 있습니다. 아마도 원하는 만큼 여러 번 투표하기 위해 다른 nonce을 사용했을 것입니다. 다른 한편으로는 추적 가능한 링 서명 체계에서 Alex는 투표에 참여하고 그녀의 개인 키는 문제 [PROP A]에 사용되었습니다. Alex가 "저, Brenda가 승인합니다"와 같은 메시지에 서명하려고 하면 제안 A!" Brenda를 "프레임"하고 두 번 투표하려면 이 새 메시지에도 문제가 있습니다. [발의안 A]. Alex의 개인 키는 이미 [PROP A] 문제를 해결했으므로 Alex의 신원은 사기로 즉시 밝혀집니다. 솔직히 말해서 꽤 멋지네요! 암호화는 투표 평등을 강요했습니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 이 문서는 흥미롭습니다. 기본적으로 임시 링 서명을 생성하지만 다른 참가자의 동의. 서명의 구조는 다를 수 있습니다. 난 파본 적 없어 깊고 안전한지 확인하지 못했습니다. https://people.csail.mit.edu/rivest/AdidaHohenbergerRivest-AdHocGroupSignaturesFromHijackedKeypai 임시 그룹 서명은 다음과 같습니다. 그룹이 없는 그룹 시그니처인 링 시그니처 중앙 집중화는 없지만 임시 그룹의 구성원이 다음과 같이 주장할 수 있도록 허용합니다. 그룹을 대신하여 익명 서명을 발행하지 않았습니다. http://link.springer.com/chapter/10.1007/11908739_9 내 이해로는 이것은 정확하지 않습니다. 그리고 내 이해는 다음과 같이 바뀔 것입니다. 저는 이 프로젝트에 더 깊이 빠져들었습니다. 하지만 제가 이해한 바에 따르면 계층 구조는 다음과 같습니다. 그룹 서명: 그룹 관리자는 추적성과 구성원 추가 또는 제거 기능을 제어합니다. 서명자이기 때문에. 링시그(Ring sigs): 그룹 매니저 없이 임의로 그룹을 구성하는 것. 익명성 철회는 없습니다. 특정 서명에서 자신을 부인할 방법이 없습니다. 추적 가능하고 연결 가능한 링 포함 서명, 익명성은 어느 정도 확장 가능합니다. 임시 그룹 서명: 링 서명과 유사하지만 구성원은 자신이 생성하지 않았음을 증명할 수 있습니다. 특정 서명. 이는 그룹의 누구나 서명을 생성할 수 있는 경우 중요합니다. http://link.springer.com/chapter/10.1007/978-3-540-71677-8_13 Fujisaki와 Suzuki의 알고리즘은 나중에 저자가 일회성을 제공하기 위해 조정했습니다. 그래서 우리는 새로운 알고리즘과 함께 Fujisaki와 Suzuki의 알고리즘을 동시에 분석할 것입니다. 여기에서 검토하는 것보다

키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24]의 관점에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 우리의 기본 서명 알고리즘으로 우리는 개발되고 개발된 빠른 체계 EdDSA를 사용하기로 선택했습니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후에는 Bitcoin에도 우리의 방식을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 엔터티와 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 키이지만 해당 그룹의 모든 사용자의 키입니다. 검증자는 실제 서명자가 서명자라고 확신합니다. 그룹의 구성원이지만 서명자를 독점적으로 식별할 수는 없습니다. 원래 프로토콜에는 신뢰할 수 있는 제3자(그룹 관리자라고 함)가 필요했으며 그는 서명자를 추적할 수 있는 유일한 사람. 링 시그니처라고 불리는 다음 버전이 소개되었습니다. Rivest et al. [34]에서는 그룹 관리자와 익명성이 없는 자율적 체계였습니다. 철회. 이 체계의 다양한 수정 사항은 나중에 나타났습니다. 연결 가능한 링 서명 [26, 27, 17] 동일한 그룹 구성원이 두 개의 서명을 생성했는지 확인할 수 있으며 추적 가능 링 서명 [24, 23]은 서명자를 추적할 수 있는 가능성을 제공하여 과도한 익명성을 제한했습니다. 동일한 메타정보(또는 [24] 측면에서 "태그")에 관한 두 개의 메시지입니다. 유사한 암호화 구성은 임시 그룹 서명으로도 알려져 있습니다[16, 38]. 그것 임의의 그룹 형성을 강조하는 반면, 그룹/링 서명 방식은 오히려 고정된 멤버 집합입니다. 대부분의 경우 당사의 솔루션은 E. Fujisaki의 "Traceable ring Signature" 작업을 기반으로 합니다. K. 스즈키 [24]. 원래 알고리즘과 수정된 알고리즘을 구별하기 위해 후자를 일회성 링 서명이라고 부르며 사용자가 유효한 하나만 생성할 수 있는 능력을 강조합니다. 그의 개인 키로 서명합니다. 추적성을 약화시키고 연계성을 유지했습니다. 일회성을 제공하기 위해서만: 공개 키는 많은 외부 검증 세트에 나타날 수 있으며 개인 키는 고유한 익명 서명을 생성하는 데 사용될 수 있습니다. 이중 지출이 발생한 경우 이 두 서명을 서로 연결하려고 시도하지만 서명자를 공개할 필요는 없습니다. 우리의 목적을 위해. 4.2 정의 4.2.1 타원 곡선 매개변수 기본 서명 알고리즘으로 우리는 다음을 선택했습니다.e 개발된 빠른 구성표 EdDSA를 사용합니다. D.J.에 의해 구현되었습니다. Bernsteinet al. [18]. Bitcoin의 ECDSA와 마찬가지로 타원 곡선을 기반으로 합니다. 이산 로그 문제이므로 향후 Bitcoin에도 우리 계획을 적용할 수 있습니다. 공통 매개변수는 다음과 같습니다. q: 소수; q = 2255 -19; d: Fq의 요소; d = -121665/121666; E: 타원 곡선 방정식; -x2 + y2 = 1 + dx2y2; G: 기준점; G = (x, -4/5); l: 기준점의 소차수; l = 2252 + 27742317777372353535851937790883648493; \(H_s\): 암호화 hash 함수 \(\{0, 1\}^* \to \mathbb{F}_q\); \(H_p\): 결정론적 hash 함수 \(E(\mathbb{F}_q) \to E(\mathbb{F}_q)\). 4.2.2 용어 강화된 개인 정보 보호에는 Bitcoin 항목과 혼동해서는 안 되는 새로운 용어가 필요합니다. 개인 ec-key는 표준 타원 곡선 개인 키입니다. 숫자 \(a \in [1, l - 1]\); 공개 ec-키는 표준 타원 곡선 공개 키입니다. 점 A = aG; 일회용 키 쌍은 개인 및 공개 EC 키 쌍입니다. 5 10 "연결 가능한 링 서명"이라는 의미에서 연결 가능성은 소스가 누구인지 밝히지 않고도 두 개의 나가는 트랜잭션이 동일한 소스에서 왔는지 알 수 있음을 의미합니다. 작성자가 약해졌네요 (a) 프라이버시를 보호하면서도 (b) 개인 키를 사용하여 모든 거래를 찾아낼 수 있는 연결성 두 번째로 유효하지 않습니다. 좋아요, 이것은 사건 순서에 관한 질문입니다. 다음 시나리오를 고려해보세요. 내 채굴 컴퓨터는 현재 blockchain을 갖게 되며, 호출하는 자체 트랜잭션 블록을 갖게 됩니다. 적법한 경우 proof-of-work 퍼즐의 해당 블록에 대해 작업할 것이며 다음 블록에 추가될 보류 중인 거래 목록입니다. 그것은 또한 새로운 것을 보낼 것입니다 보류 중인 트랜잭션 풀에 트랜잭션을 추가합니다. 다음 블록을 해결하지 못하더라도 다른 사람이 알고 있다면 나는 blockchain의 업데이트된 사본을 받습니다. 제가 작업하던 블록과 내 보류 중인 거래 목록에는 둘 다 현재 통합된 일부 거래가 있을 수 있습니다. blockchain에. 보류 중인 블록을 풀고 이를 보류 중인 거래 목록과 결합하여 호출합니다. 내 보류 중인 거래 풀입니다. 현재 blockchain에 공식적으로 있는 항목을 모두 제거하세요. 이제 어떻게 해야 할까요? 먼저 "모든 이중 지출을 제거"해야 합니까? 다른 한편으로는 목록을 검색하여 각 개인 키가 아직 등록되지 않았는지 확인해야 할까요? 사용되었으며 내 목록에 이미 사용된 경우 첫 번째 사본을 먼저 받은 것이므로 더 이상의 사본은 불법입니다. 따라서 나는 첫 번째 인스턴스 이후의 모든 인스턴스를 간단히 삭제합니다. 동일한 개인 키의. 대수 기하학은 결코 나의 장점이 아니었습니다. http://en.wikipedia.org/wiki/EdDSA 이런 속도라니, 와우. 이것은 승리를 위한 대수 기하학입니다. 아무것도 알 수 없을 것 같아 그것에 대해. 문제가 있든 없든 개별 로그는 매우 빨라지고 있습니다. 그리고 양자 컴퓨터는 그것을 먹습니다 아침 식사를 위해. http://link.springer.com/article/10.1007/s13389-012-0027-1 이게 정말 중요한 숫자가 되는데, 어떻게 그렇게 되었는지에 대한 설명이나 인용이 없습니다. 선택되었습니다. 단순히 하나의 알려진 큰 소수를 선택하는 것은 괜찮지만, 알려진 소수가 있다면 이 큰 소수에 관한 사실은 우리의 선택에 영향을 미칠 수 있습니다. 크립토노트의 다양한 변종 다른 값을 선택할 수 있습니다. 하지만 이 논문에서는 그것이 어떻게 이루어지는지에 대한 논의가 없습니다. 선택은 5페이지에 나열된 다른 전역 매개변수의 선택에 영향을 미칩니다. 이 문서에는 매개변수 값 선택에 대한 섹션이 필요합니다.

개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 전통적인 Bitcoin 키/트랜잭션 모델. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin의 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 기존 Bitcoin 키/트랜잭션 모드엘자. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 11 따라서 이것은 Bitcoin와 비슷하지만 수신자만 사용할 수 있는 무한한 익명의 사서함이 있습니다. 링 서명만큼 익명인 개인 키를 생성할 수 있습니다. Bitcoin은 이런 방식으로 작동합니다. Alex가 Frank로부터 방금 받은 지갑에 0.112 Bitcoin이 있다면 실제로 서명이 있는 것입니다. 메시지 "나, [FRANK]는 0.112 Bitcoin을 [alex] + H0 + N0으로 보냅니다." 여기서 1) Frank가 서명했습니다. 2) Frank가 Alex의 공개 키로 메시지에 서명했습니다. key, [alex], 3) Frank는 비트코인 역사의 일부 형태를 포함했습니다. H0, 4) Frank nonce, N0이라는 임의의 데이터 비트가 포함되어 있습니다. Alex가 Charlene에게 0.011 Bitcoin를 보내고 싶다면 그녀는 Frank의 메시지를 받게 될 것입니다. 이를 H1으로 설정하고 두 개의 메시지에 서명합니다. 하나는 거래용이고 다른 하나는 변경용입니다. H1= "나, [FRANK], 0.112 Bitcoin을 [alex] + H0 + N으로 보냅니다." "나, [ALEX], 0.011 Bitcoin을 [alex]로 보냅니다. [charlene] + H1 + N1" "I, [ALEX]는 [alex] + H1 + N2에 대한 변경으로 0.101 Bitcoin을 보냅니다." Alex는 자신의 개인 키 [ALEX]로 두 메시지에 모두 서명합니다. 첫 번째 메시지는 Charlene의 메시지입니다. 공개 키 [charlene], Alex의 공개 키 [alex]가 포함된 두 번째 메시지, 기록과 일부 무작위로 생성된 nonces N1 및 N2가 적절하게 생성됩니다. Cryptonote는 다음과 같이 작동합니다. Alex가 방금 Frank로부터 받은 지갑에 0.112 Cryptonote가 있다면 실제로 서명된 0.112 암호화폐가 있는 것입니다. "나 [임시 그룹에 속한 사람]은 [일회성 주소] + H0으로 0.112 크립토노트를 보냅니다. + N0." Alex는 자신의 개인 키 [ALEX]를 확인하여 이것이 자신의 돈이라는 것을 발견했습니다. 전달되는 모든 메시지에 대한 [일회성 주소]이며, 그녀가 그것을 사용하고 싶다면 그렇게 합니다. 다음 방법. 그녀는 돈을 받을 사람을 선택합니다. 아마도 Charlene이 드론 공격에 투표하기 시작했을 것입니다. Alex는 대신 Brenda에게 돈을 보내고 싶어합니다. 그래서 Alex는 Brenda의 공개 키인 [brenda]를 찾아봅니다. 그리고 자신의 개인 키인 [ALEX]를 사용하여 일회용 주소 [ALEX+brenda]를 생성합니다. 그녀 그런 다음 암호화폐 사용자 네트워크에서 임의의 컬렉션 C를 선택하고 그녀는 구성합니다. 이 임시 그룹의 링 서명입니다. 우리는 기록을 이전 메시지로 설정하고 추가합니다. nonces, 평소대로 진행하시겠습니까? H1 = "나 [임시 그룹의 누군가]는 [일회성 주소] + H0로 0.112 암호화폐를 보냅니다. + N0." "나 [컬렉션 C의 누군가]는 [ALEX+brenda에서 만든 일회용 주소] + H1 + N1로 0.011 암호화폐를 보냅니다." "나 [컬렉션 C의 누군가]는 [ALEX+alex에서 만든 일회용 주소] + H1 + N2로 변경 사항으로 0.101 암호화폐를 보냅니다." 이제 Alex와 Brenda는 수신되는 모든 메시지에서 다음과 같은 일회성 주소를 검색합니다. 해당 키를 사용하여 생성되었습니다. 만약 그들이 뭔가를 발견했다면, 그 메시지는 그들만의 새로운 메시지입니다. 암호화폐! 그럼에도 불구하고 거래는 여전히 blockchain에 도달합니다. 해당 주소로 코인이 들어오면 범죄자, 정치 기부자, 위원회 및 계좌에서 발송되는 것으로 알려져 있습니다. 엄격한 예산(예: 횡령)이 있거나 해당 코인의 새로운 소유자가 실수를 한 경우 그리고 이 코인을 그가 소유한 것으로 알려진 코인과 함께 공통 주소, 즉 익명 지그로 보냅니다. 비트코인에 있어요.

개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신에 대한 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 전통적인 Bitcoin 키/트랜잭션 모델. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 개인 사용자 키는 두 개의 서로 다른 개인 EC 키의 쌍(a, b)입니다. 추적 키는 개인 및 공개 ec-키의 쌍(a, B)입니다(여기서 B = bG 및 a ̸= b). 공개 사용자 키는 (a, b)에서 파생된 두 공개 EC 키의 쌍 (A, B)입니다. 표준 주소는 인간에게 친숙한 문자열로 제공되는 공개 사용자 키를 나타냅니다. 오류 수정 포함; 잘린 주소는 주어진 공개 사용자 키의 후반부(B 지점)를 나타냅니다. 오류 수정을 통해 인간 친화적인 문자열로 변환됩니다. 거래 구조는 Bitcoin의 구조와 유사합니다. 모든 사용자가 선택할 수 있습니다. 여러 개의 독립적인 입금(거래 출력)에 해당하는 서명을 합니다. 개인 키를 다른 목적지로 보냅니다. 사용자가 고유한 개인 키와 공개 키를 소유하는 Bitcoin의 모델과 달리 제안된 모델은 발신자가 수신자의 주소를 기반으로 일회성 공개 키를 생성하고 임의의 데이터. 이러한 의미에서 동일한 수신자에게 들어오는 거래는 다음으로 전송됩니다. 일회성 공개 키(고유 주소에 직접 연결되지 않음)이며 수신자만 복구할 수 있습니다. (그의 고유한 개인 키를 사용하여) 그의 자금을 상환하기 위한 해당 개인 부분. 수신자는 다음을 수행할 수 있습니다. 링 서명을 사용하여 자금을 지출하고 소유권과 실제 지출을 익명으로 유지합니다. 프로토콜의 세부 사항은 다음 하위 섹션에서 설명됩니다. 4.3 연결할 수 없는 결제 클래식 Bitcoin 주소는 일단 게시되면 수신되는 주소의 명확한 식별자가 됩니다. 이를 서로 연결하고 수신자의 가명과 연결합니다. 누군가가 원한다면 "연결되지 않은" 거래를 받은 경우 개인 채널을 통해 보낸 사람에게 자신의 주소를 전달해야 합니다. 동일한 소유자의 소유임을 입증할 수 없는 다른 거래를 수신하려는 경우 그는 모든 다른 주소를 생성해야 하며 절대 자신의 가명으로 게시하지 않아야 합니다. 공개 비공개 앨리스 캐롤 Bob의 주소 1 Bob의 주소 2 밥의 열쇠 1 밥의 열쇠 2 밥 그림 2. 기존 Bitcoin 키/트랜잭션 모드엘자. 우리는 사용자가 단일 주소를 게시하고 무조건 수신할 수 있는 솔루션을 제안합니다. 연결할 수 없는 결제. 각 CryptoNote 출력의 대상(기본적으로)은 공개 키입니다. 수신자의 주소와 발신자의 임의 데이터에서 파생됩니다. Bitcoin에 대한 주요 이점 모든 대상 키는 기본적으로 고유합니다(발신자가 각각에 대해 동일한 데이터를 사용하지 않는 한). 동일한 수신자에게 자신의 거래를 보냅니다). 따라서 "주소 재사용"과 같은 문제는 없습니다. 설계되었으며 어떤 관찰자도 거래가 특정 주소나 링크로 전송되었는지 확인할 수 없습니다. 두 개의 주소를 함께 사용합니다. 6 12 따라서 사용자가 주소(실제로는 공개 키)에서 주소로 코인을 보내는 대신 (또 다른 공개키) 자신의 개인키를 이용하여 일회용 사서함에서 코인을 전송합니다. (친구의 공개 키를 사용하여 생성됨)을 일회성 사서함에 (비슷하게) 사용하여 자신의 개인 키. 어떤 의미에서 우리는 "좋아, 돈이 나오는 동안 모두 돈에서 손을 떼세요"라고 말하는 것입니다. 이리저리 옮겼다! 우리의 열쇠가 그 상자를 열 수 있다는 것을 아는 것만으로도 충분합니다. 우리는 상자 안에 돈이 얼마나 들어 있는지 알고 있습니다. 사서함이나 사서함에 지문을 넣지 마십시오. 실제로 사용하고, 현금 그 자체가 담긴 상자를 거래하면 됩니다. 그렇게 하면 누가 보냈는지 알 수 없지 하지만 이러한 공개 주소의 내용은 여전히 마찰이 없고 대체 가능하며 분할 가능하고 비트코인처럼 우리가 원하는 다른 좋은 품질의 화폐를 여전히 모두 보유하고 있습니다." 무한한 사서함 세트. 주소를 공개하면 개인 키가 있습니다. 나는 내 개인 키와 귀하의 주소를 사용합니다. 공개 키를 생성하기 위한 임의의 데이터. 알고리즘은 다음과 같이 설계되었습니다. 공개 키를 생성하는 데 주소가 사용되었습니다. 귀하의 개인 키만 잠금을 해제할 수 있습니다. 메시지. 관찰자 Eve는 귀하가 주소를 공개하는 것을 보고, 제가 발표하는 공개 키를 봅니다. 그러나, 그녀는 내가 당신의 주소를 기반으로 내 공개 키를 발표했는지, 아니면 그녀의 주소를 기반으로 했는지, 아니면 브렌다의 주소를 기반으로 했는지 모릅니다. 아니면 샤를린의 것, 아니면 누구든지. 그녀는 내가 발표한 공개 키와 자신의 개인 키를 확인합니다. 그리고 그것이 작동하지 않는 것을 봅니다; 그것은 그녀의 돈이 아닙니다. 그녀는 다른 사람의 개인 키를 알지 못합니다. 메시지 수신자만이 메시지 잠금을 해제할 수 있는 개인 키를 가지고 있습니다. 그러니 아무도 이야기를 들으면 돈을 받는 사람은커녕 누가 돈을 받았는지 알 수 있습니다.

공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 13 암호화 선택을 구현하는 것이 얼마나 골치 아픈 일인지 궁금합니다. 계획. 타원 또는 기타. 따라서 미래에 어떤 계획이 깨지면 통화가 전환됩니다. 걱정하지 않고. 아마도 엉덩이에 큰 고통이있을 것입니다. 좋아요, 이것이 바로 제가 이전 댓글에서 설명한 내용입니다. Diffie-Hellman 유형 교환은 깔끔합니다. Alex와 Brenda가 각각 비밀 번호 A와 B를 가지고 있다고 가정해 보겠습니다. 그들은 비밀을 지키는 데 관심이 없다, a와 b. 그들은 없이 공유 비밀을 생성하려고 합니다. 그것을 발견한 에바. Diffie와 Hellman은 Alex와 Brenda가 공유할 수 있는 방법을 고안했습니다. 공개 번호 a와 b는 있지만 비공개 번호 A와 B는 제외하고 공유 비밀을 생성합니다. K. Eva가 수신 대기 없이 이 공유 비밀 K를 사용하여 동일한 비밀을 생성할 수 있습니다. K, Alex 및 Brenda는 이제 K를 비밀 암호화 키로 사용하고 비밀 메시지를 다시 전달할 수 있습니다. 그리고 앞으로. 100보다 훨씬 큰 숫자에서도 작동해야 하지만 할 수 있는 방법은 다음과 같습니다. 100을 모듈로 정수로 처리하는 것은 "모든 것을 버리는 것과 같기 때문에 100을 사용할 것입니다. 하지만 숫자의 마지막 두 자리는요." Alex와 Brenda는 각각 A, a, B, b를 선택합니다. 그들은 A와 B를 비밀로 유지합니다. Alex는 Brenda에게 자신의 모듈로 100 값(마지막 두 자리)을 말하고 Brenda는 Alex에게 말합니다. b의 값은 모듈로 100입니다. 이제 Eva는 (a,b) 모듈로 100을 알고 있습니다. 그러나 Alex는 (a,b,A)를 알고 있으므로 그녀는 x=abA 모듈로 100을 계산할 수 있습니다.Alex는 우리가 작업 중이기 때문에 마지막 숫자만 빼고 다 잘라냅니다. 다시 정수 모듈로 100 아래에서. 마찬가지로 Brenda는 (a,b,B)를 알고 있으므로 계산할 수 있습니다. y=abB 모듈로 100. 이제 Alex는 x를 게시할 수 있고 Brenda는 y를 게시할 수 있습니다. 하지만 이제 Alex는 yA = abBA 모듈로 100을 계산할 수 있고 Brenda는 xB를 계산할 수 있습니다. = abBA 모듈로 100. 둘 다 같은 번호를 알고 있어요! 하지만 Eva가 들은 것은 (a,b,abA,abB). 그녀는 abA*B를 계산하는 쉬운 방법이 없습니다. 이제 이것이 Diffie-Hellman 교환에 대해 생각하는 가장 쉽고 안전하지 않은 방법입니다. 더 안전한 버전이 존재합니다. 그러나 대부분의 버전은 정수 인수분해와 이산 때문에 작동합니다. 로그는 어렵고 두 문제 모두 양자 컴퓨터로 쉽게 해결됩니다. 양자에 저항하는 버전이 있는지 살펴보겠습니다. http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange 여기에 나열된 "표준 txn 시퀀스"에는 SIGNATURES와 같은 전체 단계가 누락되어 있습니다. 여기서는 그것들이 당연하게 여겨집니다. 정말 안 좋은 일입니다. 왜냐하면 우리가 진행하는 순서가 서명 항목, 서명된 메시지에 포함된 정보 등... 이 모든 것이 매우 프로토콜에 중요합니다. " 표준 거래 순서"는 전체 시스템의 보안에 의문을 제기할 수 있습니다. 더욱이, 논문 뒷부분에 제시된 증명은 다음과 같은 경우 충분히 엄격하지 않을 수 있습니다. 그들이 작업하는 프레임워크는 이 섹션에서처럼 느슨하게 정의됩니다.

공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 공개 비공개 앨리스 캐롤 일회용 키 일회용 키 일회용 키 밥 밥의 열쇠 밥의 주소 그림 3. CryptoNote 키/트랜잭션 모델. 먼저 보낸 사람은 Dffie-Hellman 교환을 수행하여 자신의 데이터에서 공유 비밀을 얻고 수취인 주소의 절반. 그런 다음 공유 키를 사용하여 일회성 대상 키를 계산합니다. 비밀과 주소의 후반부. 수신자로부터 두 개의 서로 다른 EC 키가 필요합니다. 이 두 단계에서 표준 CryptoNote 주소는 Bitcoin 지갑의 거의 두 배입니다. 주소. 수신기는 또한 해당 데이터를 복구하기 위해 Diffie-Hellman 교환을 수행합니다. 비밀열쇠. 표준 거래 순서는 다음과 같습니다. 1. Alice는 자신의 표준 주소를 공개한 Bob에게 지불금을 보내고 싶어합니다. 그녀 주소의 압축을 풀고 Bob의 공개 키(A, B)를 얻습니다. 2. Alice는 무작위 \(r \in [1, l - 1]\)을 생성하고 일회성 공개 키 \(P = H_s(rA)G +\)를 계산합니다. 비. 3. Alice는 P를 출력의 대상 키로 사용하고 값 R = rG(일부로)도 팩합니다. Dffie-Hellman 교환의) 거래 어딘가에 있습니다. 그녀가 만들 수 있다는 점에 유의하세요. 고유한 공개 키가 있는 다른 출력: 서로 다른 수신자의 키(Ai, Bi)는 서로 다른 Pi를 의미합니다. 같은 r에도 불구하고. 거래 송신 공개 키 송신 출력 금액 대상 키 R = rG P = Hs(rA)G + B 수신기 공개 키 발신자의 임의 데이터 아르 (A, B) 그림 4. 표준 거래 구조. 4. Alice가 거래를 보냅니다. 5. Bob은 자신의 개인 키(a, b)를 사용하여 통과하는 모든 트랜잭션을 확인하고 P ′ =를 계산합니다. Hs(aR)G + B. 수신자인 Bob과의 Alice의 거래가 그 중 하나라면, 그러면 aR = arG = rA이고 P' = P입니다. 7 14 저자(들?)는 용어를 전체적으로 똑바로 유지하는 데 끔찍한 일을 하고 있습니다. 텍스트, 특히 이 다음 부분에서요. 이 논문의 다음 화신은 반드시 훨씬 더 엄격합니다. 본문에서 그들은 P를 일회용 공개 키라고 부릅니다. 다이어그램에서는 R을 다음과 같이 나타냅니다. "Tx 공개 키"이고 P는 "대상 키"입니다. 내가 이 글을 다시 쓴다면, 이 섹션을 논의하기 전에 몇 가지 용어를 매우 구체적으로 설명하십시오. 이 엘은 엄청납니다. 5페이지를 참조하세요. 누가 엘을 선택합니까? 다이어그램은 무작위로 선택된 트랜잭션 공개 키 R = rG를 보여줍니다. 발신자에 의한 Tx 출력의 일부가 아닙니다. 여러개에 걸쳐 동일할 수 있기 때문입니다. 여러 사람과 거래하며 나중에 지출하는 데 사용되지 않습니다. 새로운 R이 생성됩니다. 새로운 CryptoNote 거래를 브로드캐스트하고 싶을 때마다. 또한 R만 사용됩니다. 귀하가 거래 수취인인지 확인하기 위해. 정크 데이터는 아니지만 누구에게나 정크 데이터입니다 (A, B)와 관련된 개인 키가 없습니다. 반면에 대상 키는 P = Hs(rA)G + B가 Tx 출력의 일부입니다. 모두 통과하는 모든 거래의 데이터를 조사하면서 자신이 생성한 P*를 확인해야 합니다. 이 P를 사용하여 그들이 이 통과 트랜잭션을 소유하고 있는지 확인합니다. 사용되지 않은 거래 결과가 있는 사람 (UTXO)에는 이러한 P가 여러 개 놓여 있을 것입니다. 지출을 하기 위해서는디, 그들은 P를 포함한 새로운 메시지에 서명하세요. Alice는 사용되지 않은 거래 출력 대상 키와 연결된 일회용 개인 키를 사용하여 이 거래에 서명해야 합니다. Alice가 소유한 각 대상 키는 장착되어 있습니다. (아마도) Alice가 소유한 일회성 개인 키를 사용합니다. 앨리스가 원할 때마다 대상 키의 내용을 나, Bob, Brenda, Charlie 또는 Charlene에게 보내세요. 그녀의 개인 키를 사용하여 거래에 서명합니다. 거래가 접수되면 새로운 내용을 받게 됩니다. Tx 공개키, 새로운 대상 공개키, 그리고 새로운 일회용 개인키 x를 복구할 수 있게 됩니다. 내 일회성 개인 키 x를 새 거래의 공개 대상과 결합 키는 새 트랜잭션을 보내는 방법입니다.

  1. Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고 사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저, 명시적인 언급 없이 알고리즘에 대한 일반적인 설명을 제공하겠습니다. 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8
  2. Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저 제너레이터를 제공하겠습니다.명시적인 참조 없이 우리 알고리즘에 대한 모든 설명 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8 15 여기에서 사용되지 않은 거래 출력은 어떻게 되나요? 다이어그램은 거래 출력이 금액과 대상 키라는 두 가지 데이터 포인트로만 구성되어 있음을 나타냅니다. 하지만 이건 아니다 이 "출력"을 사용하려고 할 때 여전히 R=rG를 알아야 하기 때문에 충분합니다. r은 보낸 사람이 선택하고 R은 a) 수신되는 암호화폐를 귀하의 암호화폐로 인식하는 데 사용됩니다. b) 귀하의 암호화폐를 "청구"하는 데 사용되는 일회용 개인 키를 생성하는 데 사용됩니다. 이 부분에서 제가 이해하지 못하는 부분은요? 이론적으로 "좋아요, 우리는 이것을 가지고 있습니다 서명과 트랜잭션을 프로그래밍 세계로 주고받습니다. "알겠습니다. 구체적으로 어떤 정보가 개인 UTXO을 구성하나요?" 이 질문에 대답하는 가장 좋은 방법은 완전히 주석 처리되지 않은 코드 본문을 파헤치는 것입니다. 잘 가요, 바이트코인 팀. 기억하세요: 연결 가능성은 "동일한 사람이 보냈습니까?"를 의미합니다. 연결 해제 가능성은 "동일한 작업을 수행함"을 의미합니다. 사람이 받나요?". 따라서 시스템은 연결 가능하거나 연결 불가능할 수 있으며, 연결 불가능하거나 연결 불가능할 수 있습니다. 짜증나, 나도 알아. 따라서 Nic van Saberhagen이 "...입금은 일회성 결제와 연관되어 있습니다"라고 말합니다. 관중이 연결할 수 없는 공개 키"라는 말이 무슨 뜻인지 살펴보겠습니다. 먼저, Alice가 Bob에게 동일한 트랜잭션 두 개를 보내는 상황을 생각해 보세요. 같은 주소로 보내세요. Bitcoin 세계에서 앨리스는 이미 실수를 저질렀습니다. 동일한 주소에서 보내는 것이므로 거래가 제한에 대한 우리의 욕구에 실패했습니다. 연결성. 게다가 같은 주소로 돈을 보냈기 때문에 우리의 바람대로 되지 않았습니다. 연결 해제를 위해. 이 비트코인 ​​거래는 (완전히) 연결이 가능하고 연결이 불가능했습니다. 반면, 암호화폐 세계에서는 앨리스가 밥에게 암호화폐를 보낸다고 가정해 보겠습니다. Bob의 공개 주소를 사용합니다. 그녀는 알려진 모든 공개 키를 난독화하는 공개 키 세트로 선택합니다. 워싱턴 DC 메트로 지역의 열쇠. Alex는 자신의 키를 사용하여 일회용 공개 키를 생성합니다. 정보 및 Bob의 공개 정보. 그녀는 돈을 보내고, 모든 관찰자는 그럴 것입니다. "워싱턴 DC 메트로 지역에서 누군가가 2.3개의 암호화폐를 보냈습니다. 일회성 공개 주소 XYZ123입니다." 여기서는 연결 가능성을 확률적으로 제어하므로 이를 "거의 연결 불가능"이라고 부르겠습니다. 또한 우리는 일회성 공개 키 자금이 전송되는 것을 볼 수 있습니다. 수신자를 의심하더라도 Bob이었습니다. 우리는 그의 개인 키를 갖고 있지 않기 때문에 통과하는 트랜잭션이 있는지 테스트할 수 없습니다. 그의 암호화폐를 상환하기 위해 일회성 개인 키를 생성하는 것은 말할 것도 없고 Bob의 것입니다. 그래서 이것은 실제로는 완전히 "연결할 수 없습니다". 그래서 이것은 가장 깔끔한 트릭입니다. 누가 다른 MtGox를 정말로 신뢰하고 싶나요? 우리는 어쩌면 Coinbase에 일정량의 BTC를 편안하게 보관할 수 있지만 비트코인 보안의 궁극적인 목표는 실제 지갑. 불편한 일입니다. 이 경우 귀하는 귀하의 개인 키를 손상시키지 않고 개인 키의 절반을 무신뢰적으로 제공할 수 있습니다. 돈을 쓰는 자신의 능력. 이렇게 할 때 당신이 하는 일은 누군가에게 연결 해제 방법을 알려주는 것뿐입니다. 다른 이중 지출에 대한 증거와 같이 통화처럼 작동하는 CN의 속성은 보존됩니다. 뭐.

  3. Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고 사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저, 명시적인 언급 없이 알고리즘에 대한 일반적인 설명을 제공하겠습니다. 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8

  4. Bob은 해당하는 일회용 개인 키를 복구할 수 있습니다: x = Hs(aR) + b, 따라서 P = xG. 그는 x와의 거래에 서명함으로써 언제든지 이 출력을 사용할 수 있습니다. 거래 송신 공개 키 송신 출력 금액 대상 키 P' = Hs(aR)G + bG 일회용 공개 키 x = Hs(aR) + b 일회용 개인 키 수신기 개인 키 (a, b) R 피' ?=피 그림 5. 들어오는 거래 확인. 결과적으로 Bob은 일회성 공개 키와 관련된 입금을 받습니다. 관중에게는 연결이 불가능합니다. 몇 가지 추가 참고사항: • Bob이 자신의 거래를 "인식"할 때(5단계 참조) 실제로는 자신의 거래 중 절반만 사용합니다. 개인 정보: (a, B). 추적 키라고도 알려진 이 쌍은 전달될 수 있습니다. 제3자(캐롤)에게. Bob은 그녀에게 새로운 거래 처리를 위임할 수 있습니다. 밥 Carol은 일회용 비밀 키 p를 복구할 수 없기 때문에 명시적으로 신뢰할 필요가 없습니다. Bob의 전체 개인 키 없이(a, b). 이 접근 방식은 Bob에게 대역폭이 부족할 때 유용합니다. 또는 계산 능력(스마트폰, 하드웨어 지갑 등). • Alice가 Bob의 주소로 거래를 보냈다는 것을 증명하고 싶은 경우 다음 중 하나를 공개할 수 있습니다. r 또는 그녀가 r을 알고 있음을 증명하기 위해 모든 종류의 영지식 프로토콜을 사용합니다(예: 서명을 통해). r)과의 거래. • Bob이 들어오는 모든 거래가 기록되는 감사 호환 주소를 갖고 싶어하는 경우 연결이 가능하면 추적 키를 게시하거나 잘린 주소를 사용할 수 있습니다. 해당 주소 하나의 공개 EC 키 B만 나타내고 프로토콜에서 요구하는 나머지 부분은 다음과 같습니다. 그것으로부터 다음과 같이 유도됩니다: a = Hs(B) 및 A = Hs(B)G. 두 경우 모두 모든 사람은 Bob의 들어오는 모든 거래를 "인식"할 수 있지만 물론 누구도 그 거래를 소비할 수 없습니다. 비밀 키 없이 그 안에 포함된 자금 b. 4.4 일회성 링 서명 일회성 링 서명을 기반으로 하는 프로토콜을 사용하면 사용자는 무조건적인 연결 해제를 달성할 수 있습니다. 불행하게도 일반적인 유형의 암호화 서명을 사용하면 거래를 추적할 수 있습니다. 각각의 송신자와 수신자. 이 결함에 대한 우리의 해결책은 다른 서명을 사용하는 것입니다. 현재 전자현금시스템에서 사용되는 것과는 다른 유형이다. 먼저 제너레이터를 제공하겠습니다.명시적인 참조 없이 우리 알고리즘에 대한 모든 설명 전자현금. 일회성 링 서명에는 네 가지 알고리즘(GEN, SIG, VER, LNK)이 포함되어 있습니다. GEN: 공개 매개변수를 가져와서 ec-쌍(P, x)과 공개 키 I를 출력합니다. SIG: 메시지 m, 공개 키 세트 \(S'\) {Pi}i̸=s, 쌍(Ps, xs)을 취하고 서명 \(\sigma\)를 출력합니다. 그리고 집합 \(S = \)S'\( \cup \{P_s\}\). 8 16 예, 이제 a) 지불 주소와 b) 지불 ID가 있습니다. 비평가는 "정말 이렇게 해야 합니까? 결국 상인이 112.00678952를 받으면 정확히 CN입니다. 그게 제가 주문한 것이었고 스크린샷이나 영수증 등이 있습니다. 그렇죠? 미친 정도의 정밀도면 충분해?" 대답은 "아마도 대부분의 경우 매일매일 대면거래." 그러나 보다 일반적인 상황(특히 디지털 세계에서)은 다음과 같습니다. 각각 가격이 고정되어 있는 일련의 물건입니다. 객체 A는 0.001 CN, 객체 B는 0.01 CN, 객체 C는 0.1CN입니다. 이제 판매자가 1.618 CN에 대한 주문을 받으면 많은 양의 주문이 발생합니다. (많은!) 고객의 주문을 준비하는 방법. 따라서 일종의 결제 ID가 없으면 고객의 소위 "고유" 주문과 고객의 "고유" 비용을 식별하는 것 주문이 불가능해집니다. 더 웃긴 점: 내 온라인 상점의 모든 가격이 정확히 1.0이라면 CN, 하루에 1000명의 고객이 방문하나요? 그리고 당신은 정확히 3개의 물건을 구입했다는 것을 증명하고 싶습니다. 2주 전? 결제 ID가 없나요? 행운을 빌어요, 친구. 간단히 말해서: Bob이 수취인 주소를 게시하면 결국에는 다음 주소도 게시하게 될 수 있습니다. 결제 ID도 포함됩니다(예: Poloniex XMR 예금 참조). 설명된 내용과 다릅니다. 여기 텍스트에서 결제 ID를 생성한 사람은 Alice입니다. Bob도 결제 ID를 생성할 수 있는 방법이 있어야 합니다. (a,B) 추적 키(a,B)가 게시될 수 있다는 점을 기억하세요. 'a' 값의 비밀성을 잃게 됩니다. 돈을 쓰거나 다른 사람이 당신에게서 물건을 훔치도록 허용하는 능력을 침해하지 마세요. 입증하기 위해) 사람들은 들어오는 모든 거래를 볼 수 있습니다. 이 단락에 설명된 대로 잘린 주소는 단순히 키의 "개인" 부분을 사용합니다. "공개" 부분에서 생성합니다. 'a' 값을 공개하면 연결 불가능성이 제거됩니다. 하지만 나머지 거래는 보존됩니다. unlinkable은 수신자를 지칭하고 linkable을 의미하기 때문에 저자는 "linkable이 아님"을 의미합니다. 보낸 사람을 말합니다. 또한 저자가 연결성에 두 가지 다른 측면이 있다는 사실을 깨닫지 못한 것도 분명합니다. 결국 트랜잭션은 그래프의 방향이 지정된 개체이므로 두 가지 질문이 있습니다. "이 두 거래가 같은 사람에게 전달되나요?" 그리고 "이 두 거래가 다가오고 있나요? 같은 사람이요?" 이는 CryptoNote의 연결 해제 속성이 적용되는 "되돌아가지 않는" 정책입니다. 조건부. 즉, Bob은 들어오는 트랜잭션을 연결 해제할 수 없도록 선택할 수 있습니다. 이 정책을 사용합니다. 이는 Random Oracle Model에 따라 입증된 주장입니다. 우리는 그것에 대해 알아볼 것입니다; 무작위 오라클에는 장점과 단점이 있습니다.

VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 =    위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 =    위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 17 아마도 이것은 어리석은 일이지만 S와 P_를 통합할 때는 주의가 필요합니다. 그냥 추가하면 마지막 공개 키는 누군가가 통과하는 거래를 확인하기 때문에 연결 해제가 깨졌습니다. 각 거래에 나열된 마지막 공개 키를 확인하면 됩니다. 그게 공개키야 발신자와 연결됩니다. 따라서 합집합 후에 의사 난수 생성기는 다음과 같아야 합니다. 선택한 공개 키를 변경하는 데 사용됩니다. "...소유자가 동일한 키 쌍을 사용하여 두 번째 서명을 생성할 때까지." 작가님(들?) 이에 대해 자세히 설명하겠습니다. 나는 이것이 "난독화할 공개 키 세트를 선택할 때마다 두 개의 키가 하나도 없는 완전히 새로운 세트를 선택하세요." 연결 해제 시 적용할 수 있는 매우 강력한 조건입니다. 아마도 "당신은 다음 중 새로운 무작위 세트를 선택합니다. 가능한 모든 키"는 사소하지 않은 교차점은 필연적으로 발생하지만 그런 일은 자주 일어나지 않을 것입니다. 어느 쪽이든, 나는 이 말을 더 깊이 파고들 필요가 있습니다. 링 서명이 생성됩니다. 영지식 증명은 훌륭합니다. 당신이 비밀을 알고 있다는 것을 나에게 증명해 보세요. 비밀을 밝히지 않고. 예를 들어, 우리가 도넛 모양의 동굴 입구에 있다고 가정해 보겠습니다. 그리고 동굴 뒤쪽(입구에서 보이지 않는 곳)에는당신이 향하는 새로운 문 당신이 열쇠를 가지고 있다고 주장하세요. 한 방향으로 가면 항상 지나갈 수 있지만, 한 방향으로 가면 다른 방향에서는 열쇠가 필요합니다. 하지만 당신은 나에게 열쇠를 보여주고 싶어하지도 않습니다. 문이 열린다는 것을 보여주세요. 하지만 당신은 문을 여는 방법을 알고 있다는 것을 나에게 증명하고 싶어합니다. 문. 대화형 환경에서는 동전을 던집니다. 앞면이 왼쪽, 뒷면이 오른쪽이고 아래로 내려갑니다. 동전이 가리키는 방향에 따라 도넛 모양의 동굴이 나옵니다. 그 뒷편엔 내 시야 너머에 네가 문을 열어 반대쪽으로 돌아오세요. 동전 던지기 실험을 반복합니다 당신이 열쇠를 갖고 있다는 사실이 만족스러울 때까지요. 그러나 그것은 분명히 인터랙티브 영지식 증명입니다. 당신과 내가 결코 의사소통할 필요가 없는 비대화형 버전이 있습니다. 이렇게 하면 도청자가 방해할 수 없습니다. http://en.wikipedia.org/wiki/Zero-knowledge_proof 이는 이전 정의와 반대입니다.

VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 =    위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 VER: 메시지 m, 집합 S, 서명 \(\sigma\)를 가져와 "true" 또는 "false"를 출력합니다. LNK: 집합 I = {Ii}, 서명 \(\sigma\)를 취하고 "linked" 또는 "indep"을 출력합니다. 프로토콜의 기본 아이디어는 매우 간단합니다. 사용자는 서명을 생성합니다. 고유한 공개 키가 아닌 공개 키 세트로 확인됩니다. 서명자의 신원은 다음과 같습니다. 소유자가 공개 키를 생성할 때까지 세트에 있는 공개 키를 가진 다른 사용자와 구별할 수 없습니다. 동일한 키 쌍을 사용하는 두 번째 서명. 개인 키 x0 \(\cdots\) xi \(\cdots\) xn 공개 키 P0 \(\cdots\) 파이 \(\cdots\) Pn 반지 서명 기호 확인하다 그림 6. 링 서명 익명성. GEN: 서명자는 임의의 비밀 키 \(x \in [1, l - 1]\)을 선택하고 해당하는 값을 계산합니다. 공개 키 P = xG. 추가적으로 그는 또 다른 공개 키 I = xHp(P)를 계산합니다. "키 이미지"라고 부릅니다. SIG: 서명자는 비대화형 영지식을 사용하여 일회성 링 서명을 생성합니다. [21]의 기술을 사용하여 증명합니다. 그는 다른 사용자의 n의 무작위 부분집합 \(S'\)를 선택합니다. 공개 키 Pi, 자신의 키 쌍(x, P) 및 키 이미지 I. \(0 \leq s \leq n\)을 서명자의 비밀 인덱스로 둡니다. S에서(그의 공개 키는 Ps임) 그는 무작위로 {qi | 나는 = 0 . . . n} 및 {wi | 나는 = 0 . . . n, i ̸= s} (1 . . . l)에서 다음을 적용합니다. 다음 변환: 리 = ( qiG, 만약 내가 = s라면 qiG + wiPi, 내가 ̸=s라면 리 = ( qiHp(파이), 만약 내가 = s라면 qiHp(파이) + wiI, 내가 ̸=s라면 다음 단계는 비대화형 문제를 해결하는 것입니다. c = Hs(m, L1, . . . , Ln, R1, . . . , Rn) 마지막으로 서명자는 응답을 계산합니다. 시 =    위, 내가 ̸=s라면 c - nP 나는=0 ci 모드 l, 만약 내가 = s라면 리 = ( 기, 내가 ̸=s라면 qs -csx 모드 l, 만약 내가 = s라면 결과 서명은 \(\sigma = (I, c_1, \ldots, c_n, r_1, \ldots, r_n)\)입니다. 9 18 이 전체 영역은 암호화폐에 구애받지 않고 단순히 링 서명 알고리즘을 설명합니다. 통화에 대한 언급. 나는 표기법 중 일부가 논문의 나머지 부분과 일치한다고 생각합니다. 그래도. 예를 들어 x는 GEN에서 선택된 "무작위" 비밀 키이며 공개 키 P를 제공합니다. 공개 키 이미지 I. 이 x 값은 Bob이 6페이지 8페이지에서 계산한 값입니다. 따라서 이것은 이전 설명에서 발생한 혼란을 해결하기 시작했습니다. 이건 좀 멋지네요. 돈이 "Alice의 공개 주소에서 Bob의 공개 주소로 이체되지 않습니다." 주소." 일회성 주소에서 일회성 주소로 이전 중입니다. 어떤 의미에서 이것이 작동하는 방식은 다음과 같습니다. Alex가 누군가 때문에 암호화폐를 가지고 있다면 이는 그녀가 Bob에게 보내는 데 필요한 개인 키를 가지고 있음을 의미합니다. 그녀는 새로운 일회성 주소를 생성하기 위해 Bob의 공개 정보를 사용하는 Dffie-Hellman 교환 암호화폐는 해당 주소로 전송됩니다. 이제 (아마도 안전한) DH 교환이 새로운 일회용 주소를 생성하는 데 사용되었으므로 Alex가 CN을 보낸 곳에서 Bob은 CN을 반복하는 데 필요한 개인 키를 가진 유일한 사람입니다. 위. 이제 Bob은 Alex입니다. http://en.wikipedia.org/wiki/Piecewise#Notation_and_interpretation 합계는 i가 아닌 j에 대해 인덱싱되어야 합니다. 각 c_i는 무작위 정크입니다(w_i는 무작위이므로). c_i 엉덩이만 빼고이 서명과 관련된 실제 키와 관련이 있습니다. c의 값은 다음과 같습니다. 이전 정보의 hash. 하지만 여기에는 인덱스 'i'를 재사용하는 것보다 더 나쁜 오타가 포함되어 있을 수 있다고 생각합니다. 왜냐하면 c_s가 다음과 같이 보이기 때문입니다. 명시적으로 정의하는 것이 아니라 암시적으로 정의해야 합니다. 실제로, 이 방정식을 믿음으로 취하면 c_s = (1/2)c - (1/2)라고 결정합니다. sum_i neq s c_i. 즉, hash에서 난수 전체를 뺀 것입니다. 반면, 이 합산을 읽으려는 경우 "c_s = (c - sum_j neq s c_j) mod l", 그런 다음 이전 정보의 hash을 가져와서 여러 개의 난수를 생성합니다. hash에서 모든 난수를 빼면 c_s가 됩니다. 이 것 같다 내 직관에 따라 "무슨 일이 일어나야 하는지"와 10페이지의 확인 단계와 일치합니다. 그러나 직관은 수학이 아니다. 이에 대해 더 자세히 알아보겠습니다. 이전과 동일합니다. 실제와 관련된 것을 제외하고 이들 모두는 임의의 정크입니다. 서명자의 공개 키 x. 이번을 제외하고는 이것이 구조에서 내가 기대하는 것 이상입니다. r_i는 i!=s에 대해 무작위이며 r_s는 비밀 x와 s 인덱스 값에 의해서만 결정됩니다. q_i와 c_i.

VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인 정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi)을 복구하여 자신의 지갑에 저장합니다. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi) 및 st를 복구합니다.그의 지갑에 광석이 있어요. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 19 이 시점에서 나는 매우 혼란스러워졌습니다. Alex는 서명(I,c_1, ..., c_n, r_1, ..., r_n)과 공개 목록이 포함된 메시지 M을 받습니다. 키 S. 그리고 그녀는 VER를 실행합니다. 그러면 L_i'와 R_i'가 계산됩니다. 이는 이전 페이지의 c_s = c - sum_i neq s c_i임을 확인합니다. 처음에 나는 매우 혼란스러웠습니다. 누구나 L_i'와 R_i'를 계산할 수 있습니다. 실제로 각 r_i와 c_i는 서명에 게시되었습니다. I의 값과 함께 시그마. 집합 S = 모든 공개 키의 P_i도 공개되었습니다. 따라서 시그마와 세트를 본 사람은 누구나 키 S = P_i는 L_i' 및 R_i'에 대해 동일한 값을 얻으므로 서명을 확인합니다. 하지만 이 섹션은 단순히 서명 알고리즘을 설명하는 것이지 "검사"를 설명하는 것이 아니라는 것을 기억했습니다. 서명했다면 SENT TO ME인지 확인하고, 그렇다면 가서 돈을 쓰세요." 이것은 단순히 게임의 시그니처 부분. 마침내 그곳에 도착하면 부록 A를 읽고 싶습니다. Cryptonote와 Bitcoin의 본격적인 동작별 비교를 보고 싶습니다. 또한, 전기/지속가능성. 여기서 "입력"을 구성하는 알고리즘은 무엇입니까? 내 생각에 거래 입력은 Amount와 UTXO의 집합으로, 합산하면 다음보다 더 큰 금액이 됩니다. 금액. 이것은 불분명합니다. "숨어갈 대상?" 나는 이것에 대해 몇 분 동안 생각해 보았지만 아직도 그 생각을 하지 못했습니다. 그것이 무엇을 의미하는지 가장 모호한 생각입니다. 이중 지출 공격은 노드에서 인식된 사용 키를 조작해야만 실행될 수 있습니다. 이미지가 \(I\)로 설정되었습니다. "모호성 정도" = n이지만 거래에 포함된 공개키의 총 개수는 n+1. 즉, 모호성 정도는 "다른 사람이 몇 명이나 있기를 원하는가"입니다. 군중?" 대답은 아마도 기본적으로 "가능한 한 많이"일 것입니다.

VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 방식과 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi)을 복구하여 자신의 지갑에 저장합니다. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 VER: 검증자는 역변환을 적용하여 서명을 확인합니다. ( 엘' 나는 = 리그 + ciPi R′ i = riHp(Pi) + ciI 마지막으로 검증자는 다음 사항을 확인합니다. nP 나는=0 ci ?= Hs(m, L' 0, . . . , 엘' n, R′ 0, . . . , R' n) 모드 l 이 동등성이 정확하면 검증자는 알고리즘 LNK를 실행합니다. 그렇지 않으면 검증자가 거부합니다. 서명. LNK: 검증자는 과거 서명에 내가 사용되었는지 확인합니다(이 값은 I)을 설정합니다. 여러 번 사용한다는 것은 동일한 비밀 키로 두 개의 서명이 생성되었음을 의미합니다. 프로토콜의 의미: L 변환을 적용하여 서명자는 자신이 알고 있음을 증명합니다. 그러한 x는 적어도 하나의 Pi = xG입니다. 이 증명을 반복 불가능하게 만들기 위해 핵심 이미지를 소개합니다. I = xHp(P)입니다. 서명자는 동일한 계수(ri, ci)를 사용하여 거의 동일한 진술을 증명합니다. 그는 적어도 하나의 \(H_p(P_i) = I \cdot x^{-1}\)이라는 x를 알고 있습니다. 매핑 x \(\to\) I가 주입인 경우: 1. 누구도 키 이미지에서 공개 키를 복구하고 서명자를 식별할 수 없습니다. 2. 서명자는 서로 다른 I와 동일한 x를 사용하여 두 개의 서명을 만들 수 없습니다. 전체 보안 분석은 부록 A에 제공됩니다. 4.5 표준 CryptoNote 거래 Bob은 두 가지 방법(링크할 수 없는 공개 키와 추적할 수 없는 링 서명)을 결합하여 다음을 달성합니다. 원래 Bitcoin 체계와 비교하여 새로운 수준의 개인정보 보호를 제공합니다. 저장만 하면 됩니다. 하나의 개인 키(a, b)와 게시(A, B)를 사용하여 익명 트랜잭션 수신 및 전송을 시작합니다. 각 트랜잭션을 검증하는 동안 Bob은 트랜잭션이 자신에게 속하는지 확인하기 위해 출력당 두 번의 타원 곡선 곱셈과 한 번의 추가만 추가로 수행합니다. 그의 모든 것을 위해 출력 Bob은 일회용 키 쌍(pi, Pi) 및 st를 복구합니다.그의 지갑에 광석이 있어요. 모든 입력이 가능합니다. 단일 거래에 등장하는 경우에만 정황상 소유자가 동일한 것으로 입증됩니다. 에서 사실 이 관계는 일회성 링 서명으로 인해 설정하기가 훨씬 더 어렵습니다. 링 서명을 사용하면 Bob은 다른 사람의 모든 입력을 효과적으로 숨길 수 있습니다. 모두 가능 지출자는 동일할 가능성이 높으며, 심지어 이전 소유자(앨리스)도 다음보다 더 많은 정보를 갖고 있지 않습니다. 어떤 관찰자. 자신의 거래에 서명할 때 Bob은 자신의 거래 금액과 동일한 금액으로 n개의 해외 출력을 지정합니다. 다른 사용자의 참여 없이 모두 혼합하여 출력합니다. 밥 자신도 (그리고 다른 사람) 이러한 지불이 지출되었는지 여부를 알 수 없습니다. 출력을 사용할 수 있습니다. 수천 개의 서명을 모호한 요소로 삼고 결코 숨길 대상으로 삼지 않습니다. 더블 지출 확인은 사용된 키 이미지 세트를 확인할 때 LNK 단계에서 발생합니다. Bob은 스스로 모호성 정도를 선택할 수 있습니다. n = 1은 그가 가질 확률이 소비된 출력은 50% 확률이고, n = 99는 1%를 제공합니다. 결과 서명의 크기가 증가합니다. 선형적으로 O(n+1)이므로 향상된 익명성은 Bob에게 추가 거래 수수료를 부과합니다. 그는 또한 할 수 있습니다 n = 0으로 설정하고 그의 링 서명이 단 하나의 요소로 구성되도록 만듭니다. 그러나 이는 즉시 그를 지출자로 밝혀라. 10 20 이것은 흥미롭습니다. 앞서 우리는 수신자 Bob이 모든 INCOMING을 수행할 수 있는 방법을 제공했습니다. 개인 키의 절반을 결정론적으로 선택하거나 다음을 통해 연결 해제할 수 없는 트랜잭션 그의 개인 키 절반을 공개로 공개합니다. 이는 되돌릴 수 없는 일종의 정책입니다. 여기서 우리는 본다 발신자 Alex가 하나의 나가는 트랜잭션을 연결 가능한 것으로 선택하는 방법이지만 실제로는 Alex가 전체 네트워크의 발신자로 밝혀졌습니다. 이는 되돌릴 수 없는 종류의 정책이 아닙니다. 이는 거래별입니다. 세 번째 정책이 있나요? 수신자 Bob이 Alex를 위한 고유 결제 ID를 생성할 수 있나요? 아마도 Diffie-Hellman 교환을 사용하여 변경되지 않습니까? 누군가 그 지불금을 포함한다면 Bob의 주소에 대한 거래 어딘가에 ID가 번들로 포함되어 있으며 Alex가 보낸 것임에 틀림없습니다. 이런 식으로 Alex는 특정 링크를 연결하도록 선택하여 전체 네트워크에 자신을 공개할 필요가 없습니다. 하지만 그녀는 자신이 돈을 보내는 사람에게 여전히 자신의 신원을 확인할 수 있습니다. 이것이 바로 폴로닉스가 하는 일이 아닌가요?

거래 송신 입력 출력0 . . . 출력i . . . 출력n 주요 이미지 서명 링 시그니처 대상 키 출력1 대상 키 출력n 해외거래 발신자의 출력 대상 키 일회용 키쌍 일회성 개인 키 나는 = xHp(P) 피, 엑스 그림 7. 표준 트랜잭션에서 링 서명 생성. 5 평등주의적 작업 증명 이 섹션에서는 새로운 proof-of-work 알고리즘을 제안하고 기반으로 삼습니다. 우리의 주요 목표 CPU(다수)와 GPU/FPGA/ASIC(소수) 채굴기 간의 격차를 줄이는 것입니다. 그것은 일부 사용자가 다른 사용자에 비해 특정 이점을 가질 수 있다는 것은 적절하지만, 그들의 투자는 최소한 전력에 따라 선형적으로 증가해야 합니다. 보다 일반적으로 특수 목적 장치를 생산하는 경우 최대한 수익성이 낮아야 합니다. 5.1 관련 작품 원래 Bitcoin proof-of-work 프로토콜은 CPU 집약적인 가격 책정 기능 SHA-256을 사용합니다. 주로 기본 논리 연산자로 구성되며 계산 속도에만 의존합니다. 따라서 멀티코어/컨베이어 구현에 완벽하게 적합합니다. 그러나 현대 컴퓨터는 초당 작업 수에만 제한을 두지 않습니다. 뿐만 아니라 메모리 크기에 따라서도 마찬가지입니다. 일부 프로세서는 다른 프로세서보다 훨씬 더 빠를 수 있지만([8]), 메모리 크기는 시스템마다 다를 가능성이 적습니다. 메모리 바인딩 가격 함수는 Abadi et al에 의해 처음 소개되었으며 다음과 같이 정의되었습니다. "계산 시간이 메모리 액세스에 소요되는 시간에 의해 좌우되는 함수" [15]. 주요 아이디어는 대규모 데이터 블록(“스크래치패드”)을 할당하는 알고리즘을 구축하는 것입니다. 상대적으로 느리게 액세스할 수 있는 메모리(예: RAM) 내에서 예측할 수 없는 일련의 위치”를 포함합니다. 블록은 보존할 수 있을 만큼 충분히 커야 합니다. 액세스할 때마다 데이터를 다시 계산하는 것보다 데이터가 더 유리합니다. 알고리즘은 또한 내부 병렬성을 방지하므로 N개의 동시 스레드에는 N배 더 많은 메모리가 필요합니다. 즉시. Dwork et al [22]은 이 접근 방식을 조사하고 공식화하여 다른 제안을 했습니다. 가격 책정 기능의 변형: "Mbound". 또 하나의 작품은 F. Coelho [20]의 작품입니다. 11 거래 송신 입력 출력0 . . . 출력i . . . 출력n 주요 이미지 서명 링 시그니처 대상 키 출력1 대상 키 출력n 해외거래 발신자의 출력 대상 키 일회용 키쌍 일회성 개인 키 나는 = xHp(P) 피, 엑스 그림 7. 표준 트랜잭션에서 링 서명 생성. 5 평등주의적 작업 증명 이 섹션에서는 새로운 proof-of-work 알고리즘을 제안하고 기반으로 삼습니다. 우리의 주요 목표 CPU(다수)와 GPU/FPGA/ASIC(소수) 채굴기 간의 격차를 줄이는 것입니다. 그것은 일부 사용자가 다른 사용자에 비해 특정 이점을 가질 수 있다는 것은 적절하지만, 그들의 투자는 최소한 전력에 따라 선형적으로 증가해야 합니다. 보다 일반적으로 특수 목적 장치를 생산하는 경우 최대한 수익성이 낮아야 합니다. 5.1 관련 작품 원래 Bitcoin proof-of-work 프로토콜은 CPU 집약적인 가격 책정 기능 SHA-256을 사용합니다. 주로 기본 논리 연산자로 구성되며 계산 속도에만 의존합니다. 따라서 멀티코어/컨베이어 구현에 완벽하게 적합합니다. 그러나 현대 컴퓨터는 초당 작업 수에만 제한을 두지 않습니다. 뿐만 아니라 메모리 크기에 따라서도 마찬가지입니다. 일부 프로세서는 다른 프로세서보다 훨씬 더 빠를 수 있지만([8]), 메모리 크기는 시스템마다 다를 가능성이 적습니다. 메모리 바인딩 가격 함수는 Abadi et al에 의해 처음 소개되었으며 다음과 같이 정의되었습니다. "계산 시간이 메모리 액세스에 소요되는 시간에 의해 좌우되는 함수" [15]. 주요 아이디어는 대규모 데이터 블록(“스크래치패드”)을 할당하는 알고리즘을 구축하는 것입니다. 상대적으로 느리게 액세스할 수 있는 메모리(예: RAM) 내에서 예측할 수 없는 일련의 위치”를 포함합니다. 블록은 보존할 수 있을 만큼 충분히 커야 합니다. 액세스할 때마다 데이터를 다시 계산하는 것보다 데이터가 더 유리합니다. 알고리즘은 또한 내부 병렬성을 방지하므로 N개의 동시 스레드에는 N배 더 많은 메모리가 필요합니다. 즉시. Dwork et al [22]은 이 접근 방식을 조사하고 공식화하여 다른 제안을 제시했습니다. 가격 책정 기능의 변형: "Mbound". 또 하나의 작품은 F. Coelho [20]의 작품입니다. 11 21 표면적으로는 UTXO의 금액 및 대상 키입니다. Alex가 이 표준 트랜잭션을 구성하고 Bob에게 보내는 사람이라면 Alex도 개인 키를 갖게 됩니다. 이들 각각에. 저는 이 다이어그램이 이전의 몇 가지 질문에 대한 답을 제공한다는 점에서 매우 마음에 듭니다. Txn 입력은 다음과 같이 구성됩니다. Txn 출력 세트와 key 이미지. 그런 다음 모든 항목을 포함하여 링 서명으로 서명됩니다. Alex가 소유한 개인 키 중 거래에 포함된 모든 해외 거래에 대해. 는 Txn 출력은 금액과 대상 키로 구성됩니다. 거래를 받는 사람은 다음과 같이 할 수 있습니다. 원하는 대로 비용을 지출하기 위해 백서 앞부분에서 설명한 대로 일회용 개인 키를 생성합니다. 돈. 이것이 실제 코드와 얼마나 일치하는지 알아내는 것은 즐거운 일이 될 것입니다... 아니요, Nic van Saberhagen은 작업 증명 알고리즘의 일부 속성을 느슨하게 설명합니다. 실제로 해당 알고리즘을 설명하지 않고. CryptoNight 알고리즘 자체에는 심층 분석이 필요합니다. 이것을 읽었을 때 나는 말을 더듬었다. 투자는 권력에 따라 최소한 선형적으로 증가해야 할까요, 아니면 투자는 권력에 따라 최대 선형적으로 성장합니까? 그리고 나서 나는 깨달았습니다. 채굴자로서, 혹은 투자자로서 나는 보통 "얼마나 많은 힘을 얻을 수 있는가?"라고 생각합니다. 투자를 위해서?" "고정된 전력량을 얻으려면 얼마나 많은 투자가 필요합니까?"가 아닙니다. 물론, 투자를 I로, 권력을 P로 표시합니다. I(P)가 권력의 함수인 투자라면 그리고 P(I)는 투자의 함수로서의 힘이며, 둘은 서로 반대가 될 것입니다(어디에서든). 역이 존재할 수 있음). 그리고 I(P)가 선형보다 빠르면 P(I)는 선형보다 느립니다. 따라서, 투자자들의 수익률은 감소할 것입니다. 즉, 저자가 여기서 말하는 것은 "물론, 더 많이 투자할수록 더 많은 것을 얻게 될 것입니다." 힘. 하지만 우리는 이를 감소된 수익률로 만들려고 노력해야 합니다." CPU 투자는 결국 준선형적으로 한계를 넘을 것입니다. 문제는 저자가 ASIC도 이 작업을 수행하도록 강제하는 POW 알고리즘을 설계했습니다. 가상의 "미래 통화"는 항상 가장 느리고 가장 제한된 자원으로 채굴해야 합니까? Abadi 등의 논문(일부 Google 및 Microsoft 엔지니어가 저자로 참여)은 다음과 같습니다. 기본적으로 지난 몇 년 동안 메모리 크기가 훨씬 작아졌다는 사실을 이용하여 프로세서 속도보다 기계에 따른 차이가 있으며 전력 대비 투자 비율이 선형보다 높습니다. 몇 년 안에 이 문제를 재평가해야 할 수도 있습니다! 모든 것이 군비경쟁이다... hash 함수를 구성하는 것은 어렵습니다. 이러한 제약 조건을 만족하는 hash 함수를 구성하는 것은 더 어려운 것 같습니다. 이 문서에는 실제 내용에 대한 설명이 없는 것 같습니다. hashing 알고리즘 CryptoNight. 나는 이것이 SHA-3의 메모리 하드 구현이라고 생각합니다. 포럼 게시물에 있지만 잘 모르겠습니다... 그게 요점입니다. 설명되어야합니다.

가장 효과적인 솔루션을 제안한 것이 바로 '홋카이도'입니다. 우리가 아는 한, 대규모 배열의 의사 무작위 검색 아이디어를 기반으로 한 마지막 작업은 다음과 같습니다. C. Percival [32]에 의해 "scrypt"로 알려진 알고리즘. 이전 기능과 달리 초점이 맞춰져 있습니다. proof-of-work 시스템이 아닌 키 파생입니다. 이러한 사실에도 불구하고 scrypt는 우리의 목적을 달성할 수 있습니다: 이는 SHA-256과 같은 부분적인 hash 변환 문제에서 가격 책정 기능으로 잘 작동합니다. Bitcoin. 지금까지 scrypt는 이미 Litecoin [14] 및 기타 Bitcoin 포크에 적용되었습니다. 그러나 구현은 실제로 메모리에 국한되지 않습니다. "메모리 액세스 시간/전체" 비율 time”은 각 인스턴스가 128KB만 사용하기 때문에 충분히 크지 않습니다. 이는 GPU 채굴을 허용합니다. 약 10배 더 효과적이며 계속해서 상대적으로 저렴하지만 매우 효율적인 채굴 장치. 더욱이 스크립트 구성 자체는 메모리 크기와 메모리 크기 간의 선형적인 균형을 허용합니다. 스크래치패드의 모든 블록이 이전 블록에서만 파생된다는 사실로 인한 CPU 속도. 예를 들어 매 두 번째 블록을 저장하고 다른 블록을 게으른 방식으로 다시 계산할 수 있습니다. 필요할 때. 의사 난수 인덱스는 균일하게 분포된 것으로 가정됩니다. 따라서 추가 블록의 재계산에 대한 기대값은 1입니다. \(2 \cdot N\), 여기서 N은 숫자입니다. 반복의. 전체 계산 시간은 절반 미만으로 증가합니다. 스크래치패드 준비 및 hashing과 같은 시간 독립적(일정한 시간) 작업 모든 반복. 메모리 비용의 2/3 절약 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N 추가 재계산; 9월 10일 결과 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4.5N. 1개만 저장한다는 것을 보여주기 쉽습니다. 모든 블록의 s−1배보다 시간이 덜 늘어납니다. 2 . 이는 결국 CPU가 있는 머신을 의미합니다. 최신 칩보다 200배 빠른 스크래치패드는 320바이트만 저장할 수 있습니다. 5.2 제안된 알고리즘 우리는 proof-of-work 가격 책정 기능에 대한 새로운 메모리 바인딩 알고리즘을 제안합니다. 그것은 다음에 의존한다 느린 메모리에 대한 무작위 액세스 및 대기 시간 의존성을 강조합니다. 매번 암호화하는 것과 반대로 새 블록(길이 64바이트)은 모든 이전 블록에 따라 달라집니다. 결과적으로 가설 "메모리 절약"자는 계산 속도를 기하급수적으로 증가시켜야 합니다. 우리 알고리즘에는 다음과 같은 이유로 인스턴스당 약 2Mb가 필요합니다. 1. 주류가 될 최신 프로세서의 L3 캐시(코어당)에 적합합니다. 몇 년 안에; 2. 1MB의 내부 메모리는 최신 ASIC 파이프라인에 거의 허용되지 않는 크기입니다. 3. GPU는 수백 개의 동시 인스턴스를 실행할 수 있지만 다른 방식으로 제한됩니다. GDDR5 메모리는 CPU L3 캐시보다 느리고 대역폭이 뛰어납니다. 랜덤 액세스 속도. 4. 스크래치패드를 크게 확장하려면 반복 횟수를 늘려야 합니다. 회전은 전체 시간의 증가를 의미합니다. 신뢰가 없는 p2p 네트워크에서 "과중한" 호출은 다음과 같은 결과를 가져올 수 있습니다. 노드는 모든 새 블록의 proof-of-work을 확인해야 하기 때문에 심각한 취약점이 있습니다. 노드가 각 hash 평가에 상당한 시간을 소비한다면 쉽게 임의의 작업 데이터(nonce 값)가 포함된 가짜 객체의 홍수로 인해 DDoS를 당했습니다. 12 가장 효과적인 솔루션을 제안한 것이 바로 '홋카이도'입니다. 우리가 아는 한, 대규모 배열의 의사 무작위 검색 아이디어를 기반으로 한 마지막 작업은 다음과 같습니다. C. Percival [32]에 의해 "scrypt"로 알려진 알고리즘. 이전 기능과 달리 초점이 맞춰져 있습니다. proof-of-work 시스템이 아닌 키 파생입니다. 이러한 사실에도 불구하고 scrypt는 우리의 목적을 달성할 수 있습니다: 이는 SHA-256와 같은 부분적인 hash 변환 문제에서 가격 책정 기능으로 잘 작동합니다. Bitcoin. 지금까지 scrypt는 이미 Litecoin [14] 및 기타 Bitcoin 포크에 적용되었습니다. 그러나 구현은 실제로 메모리에 국한되지 않습니다. "메모리 액세스 시간/전체" 비율 time”은 각 인스턴스가 128KB만 사용하기 때문에 충분히 크지 않습니다. 이는 GPU 채굴을 허용합니다. 약 10배 더 효과적이며 계속해서 상대적으로 저렴하지만 매우 효율적인 채굴 장치. 더욱이 스크립트 구성 자체는 메모리 크기와 메모리 크기 간의 선형적인 균형을 허용합니다. 스크래치패드의 모든 블록이 이전 블록에서만 파생된다는 사실로 인한 CPU 속도. 예를 들어 매 두 번째 블록을 저장하고 다른 블록을 게으른 방식으로 다시 계산할 수 있습니다. 필요할 때. 의사 난수 인덱스는 균일하게 분포된 것으로 가정됩니다. 따라서 추가 블록의 재계산에 대한 기대값은 1입니다. \(2 \cdot N\), 여기서N은 숫자입니다. 반복의. 전체 계산 시간은 절반 미만으로 증가합니다. 스크래치패드 준비 및 hashing과 같은 시간 독립적(일정한 시간) 작업 모든 반복. 메모리 비용의 2/3 절약 1 \(3 \cdot N\) + 1 3 \(\cdot\) \(2 \cdot N\) = N 추가 재계산; 9월 10일 결과 1 \(10 \cdot N\) + . . . + 1 \(10 \cdot 9 \cdot N\) = 4.5N. 1개만 저장한다는 것을 보여주기 쉽습니다. 모든 블록의 s−1배보다 시간이 덜 늘어납니다. 2 . 이는 결국 CPU가 있는 머신을 의미합니다. 최신 칩보다 200배 빠른 스크래치패드는 320바이트만 저장할 수 있습니다. 5.2 제안된 알고리즘 우리는 proof-of-work 가격 책정 기능에 대한 새로운 메모리 바인딩 알고리즘을 제안합니다. 그것은 다음에 의존한다 느린 메모리에 대한 무작위 액세스 및 대기 시간 의존성을 강조합니다. 매번 암호화하는 것과 반대로 새 블록(길이 64바이트)은 모든 이전 블록에 따라 달라집니다. 결과적으로 가설 "메모리 절약"자는 계산 속도를 기하급수적으로 증가시켜야 합니다. 우리 알고리즘에는 다음과 같은 이유로 인스턴스당 약 2Mb가 필요합니다. 1. 주류가 될 최신 프로세서의 L3 캐시(코어당)에 적합합니다. 몇 년 안에; 2. 1MB의 내부 메모리는 최신 ASIC 파이프라인에 거의 허용되지 않는 크기입니다. 3. GPU는 수백 개의 동시 인스턴스를 실행할 수 있지만 다른 방식으로 제한됩니다. GDDR5 메모리는 CPU L3 캐시보다 느리고 대역폭이 뛰어납니다. 랜덤 액세스 속도. 4. 스크래치패드를 크게 확장하려면 반복 횟수를 늘려야 합니다. 회전은 전체 시간의 증가를 의미합니다. 신뢰가 없는 p2p 네트워크에서 "과중한" 호출은 다음과 같은 결과를 가져올 수 있습니다. 노드는 모든 새 블록의 proof-of-work을 확인해야 하기 때문에 심각한 취약점이 있습니다. 노드가 각 hash 평가에 상당한 시간을 소비한다면 쉽게 임의의 작업 데이터(nonce 값)가 포함된 가짜 개체의 홍수로 인해 DDoS를 당했습니다. 12 22 신경쓰지 마세요. 스크립트 코인인가요? 알고리즘은 어디에 있나요? 내가 보는 것은 광고뿐입니다. PoW 알고리즘이 가치가 있다면 Cryptonote가 정말 빛을 발할 곳입니다. 그렇지 않다 정말 SHA-256, 실제로는 스크립트가 아닙니다. 새롭고, 메모리에 묶여 있으며, 비재귀적입니다.

6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 심하게 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어 오르는 것을 방지하지만 여전히 한도는 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 23 원자 단위. 나는 그것을 좋아한다. 사토시랑 동급인가요? 그렇다면 이는 1,850억 개의 암호화폐가 있다는 의미입니다. 나는 이것이 결국 몇 페이지에서 조정되어야 한다는 것을 알고 있습니다. 아니면 오타가 있을 수도 있습니다. 기본 보상이 "남은 모든 코인"인 경우 모든 코인을 얻기 위해서는 단 하나의 블록만으로도 충분합니다. 인스타그램. 반면에 이것이 어떤 식으로든 비례한다고 가정하면 지금과 일부 코인 생산 종료 날짜 사이의 시간 차이는 무엇입니까? 그럴 것이다 말이 되네요. 또한 내 세계에서는 이와 같은 두 개의 보다 큰 기호는 "보다 훨씬 크다"는 의미입니다. 작성자가 그랬나요? 아마도 다른 의미일까요? 어려움에 대한 조정이 모든 블록에서 발생하면 공격자는 매우 큰 규모의 팜을 보유할 수 있습니다. 기계는 신중하게 선택한 시간 간격으로 켜지고 꺼집니다. 난이도 조정 공식이 적절하게 감쇠되지 않으면 난이도에서 혼란스러운 폭발(또는 0으로 충돌)이 발생할 수 있습니다. Bitcoin의 방법이 빠른 재계산에 적합하지 않다는 것은 의심할 여지가 없지만 관성의 개념은 이러한 시스템에서는 당연한 것으로 받아들여지는 것이 아니라 입증되어야 합니다. 게다가 진동 네트워크의 어려움은 표면의 진동을 초래하지 않는 한 반드시 문제가 되는 것은 아닙니다. 코인 공급 - 그리고 매우 빠르게 변화하는 어려움을 갖는 것은 "과도한 수정"을 유발할 수 있습니다. 특히 몇 분과 같은 짧은 기간 동안 소요된 시간은 "총 시간"에 비례합니다. 네트워크에 생성된 블록의 수입니다." 비례상수는 그 자체로 커질 것입니다. 시간이 지남에 따라 CN이 성공하면 아마도 기하급수적으로 증가할 것입니다. 단순히 난이도를 조정하여 "생성된 전체 블록을 유지하는 것이 더 나은 생각일 수 있습니다. 마지막 블록이 메인 체인에 추가된 이후 네트워크"라는 상수 값 내에서 또는 제한된 변형 또는 이와 유사한 것. 계산적으로 적응형 알고리즘을 사용하는 경우 구현하기 쉽다고 판단되면 문제가 해결되는 것 같습니다. 그런데 그 방법을 사용하면 큰 광산 농장을 가진 사람이 농장을 폐쇄할 수도 있습니다. 몇 시간 동안 다시 켜십시오. 처음 몇 블록 동안 해당 농장은 은행. 따라서 실제로 이 방법은 흥미로운 점을 제시합니다. 채굴은 (평균적으로) 특히 더 많은 사람들이 네트워크에 접속함에 따라 ROI 없이 게임에서 패배합니다. 채굴이 어려운 경우 매우 밀접하게 추적되는 네트워크 hashrate, 사람들이 그만큼 채굴할지는 의문입니다. 현재 그렇습니다. 또는 광산 농장을 연중무휴 24시간 운영하는 대신 광산을 운영할 수도 있습니다. 6시간 동안 켜짐, 2시간 동안 켜짐, 6시간 동안 켜짐, 2시간 동안 꺼짐 등. 그냥 다른 코인으로 바꾸세요 몇 시간 동안 난이도가 떨어질 때까지 기다렸다가 추가로 몇 가지를 얻으려면 다시 시작하세요. 네트워크가 적응함에 따라 수익성이 저하됩니다. 그리고 그거 알아? 이것은 실제로 아마도 내가 생각한 더 나은 채굴 시나리오 중 하나... 이는 순환적일 수 있지만, 블록 생성 시간이 평균 약 1분이라면, "소요 시간"에 대한 프록시로 블록 수를 사용합니까?

6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어 오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 24 좋습니다. blockchain이 있고 각 블록에는 단순히 존재하는 것 외에도 타임스탬프가 있습니다. 주문했다. 타임스탬프는 언급했듯이 매우 신뢰할 수 없습니다. 체인에 모순되는 타임스탬프를 가질 수 있습니까? 체인에서 블록 A가 블록 B보다 먼저 나오고 재정적인 측면에서 모든 것이 일관된다면, 그런데 A블록은 B블록 이후에 생성된 것 같은데요? 아마도 누군가가 소유했기 때문일 것입니다. 네트워크의 큰 부분? 괜찮나요? 아마도 재정이 엉망이 아니기 때문일 것입니다. 좋아요, 그래서 저는 이 임의적인 "블록의 80%만이 메인 blockchain에 대해 합법적입니다"라는 말을 싫어합니다. 접근. 거짓말쟁이가 타임스탬프를 변경하는 것을 방지하기 위한 것입니까? 그런데 지금은 더해진다. 모든 사람이 자신의 타임스탬프에 대해 거짓말을 하고 중앙값만 선택하도록 유도합니다. 정의해주세요. "이 블록의 경우 더 높은 수수료를 포함하는 거래만 포함함을 의미합니다. p%보다 우선적으로 수수료가 2p%보다 큰 경우" 또는 이와 유사한 것입니까? 가짜란 무슨 뜻인가요? 거래가 과거 거래 내역과 일치하는 경우 blockchain, 거래에는 채굴자를 만족시키는 수수료가 포함되어 있는데, 그것만으로는 충분하지 않습니까? 글쎄, 아니요, 반드시 그런 것은 아닙니다. 최대 블록 크기가 없으면 악의적인 사용자를 막을 수 있는 방법이 없습니다. 단순히 속도를 늦추기 위해 대량의 거래 블록을 자신에게 한꺼번에 업로드하는 것부터 네트워크. 최대 블록 크기에 대한 핵심 규칙은 사람들이 엄청난 양의 쓰레기를 넣는 것을 방지합니다. 속도를 늦추기 위해 blockchain에 대한 데이터를 한 번에 모두 사용합니다. 그러나 그러한 규칙은 확실히 적응력을 갖추세요. 예를 들어 크리스마스 시즌에는 트래픽이 급증할 것으로 예상할 수 있습니다. 블록 크기가 매우 커지고 그 직후에 블록 크기가 계속해서 감소합니다. 다시. 따라서 a) 일종의 적응형 한도 또는 b) 99%의 사용자가 사용할 수 있을 만큼 충분히 큰 한도가 필요합니다. 합리적인 크리스마스 피크는 한계를 깨지 않습니다. 물론 두 번째는 불가능하다. 추정 - 통화가 인기를 끌지 누가 알겠습니까? 적응하고 걱정하지 않는 것이 좋습니다 그것에 대해. 하지만 제어 이론 문제가 있습니다. 공격에 취약하거나 거칠고 미친 진동이 있습니까? 적응형 방법은 악의적인 사용자가 소량을 축적하는 것을 막지 못합니다. blockchain에서 시간이 지남에 따라 정크 데이터가 늘어나 장기적인 부풀림이 발생합니다. 이건 다른 문제야 전체적으로 암호화폐 동전에 심각한 문제가 있는 것입니다.

6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 비용과 수수료로 인한 이익 사이의 균형을 맞추고 스스로 설정합니다. 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 6 추가 장점 6.1 원활한 방출 CryptoNote 디지털 코인의 전체 금액에 대한 상한선은 다음과 같습니다: MSupply = 264 −1 원자 단위. 이는 직관이 아닌 구현 한계에만 근거한 자연스러운 제한입니다. “N개의 코인은 누구에게나 충분해야 합니다”와 같은 것입니다. 방출 과정의 원활함을 보장하기 위해 블록에 대해 다음 공식을 사용합니다. 보상: BaseReward = (MSupply −A) ≫18, 여기서 A는 이전에 생성된 코인의 양입니다. 6.2 조정 가능한 매개변수 6.2.1 어려움 CryptoNote에는 모든 블록의 난이도를 변경하는 타겟팅 알고리즘이 포함되어 있습니다. 이 네트워크 hashrate가 급격히 증가하거나 감소할 때 시스템의 반응 시간을 줄입니다. 일정한 차단율을 유지합니다. 원래 Bitcoin 메서드는 실제 관계를 계산합니다. 그리고 마지막 2016개 블록 사이의 목표 시간 범위를 현재 블록의 승수로 사용합니다. 어려움. 분명히 이것은 빠른 재계산(큰 관성 때문에)에는 적합하지 않습니다. 진동이 발생합니다. 우리 알고리즘의 기본 아이디어는 노드가 완료한 모든 작업을 합산하고 그것을 그들이 보낸 시간으로 나눕니다. 작업의 척도는 해당 난이도 값입니다. 각 블록에. 그러나 부정확하고 신뢰할 수 없는 타임스탬프로 인해 정확한 정보를 확인할 수 없습니다. 블록 사이의 시간 간격. 사용자는 자신의 타임스탬프를 미래와 다음 시간으로 이동할 수 있습니다. 간격은 거의 작거나 심지어 음수일 수도 있습니다. 아마 사건사고는 거의 없을 것 같아요 이런 종류이므로 타임스탬프를 정렬하고 이상값(예: 20%)을 잘라낼 수 있습니다. 범위 나머지 값은 해당 블록의 80%에 소요된 시간입니다. 6.2.2 크기 제한 사용자는 blockchain 저장 비용을 지불하고 크기에 따라 투표할 자격이 있습니다. 모든 광부 균형 간의 균형을 다룹니다.수수료로 인한 비용과 이익을 스스로 정하고 블록 생성을 위한 "소프트 리미트". 또한 최대 블록 크기에 대한 핵심 규칙이 필요합니다. blockchain이 가짜 거래로 인해 범람하는 것을 방지합니다. 그러나 이 값은 하드 코딩하지 마십시오. MN을 마지막 N 블록 크기의 중앙값으로 설정합니다. 그런 다음 크기에 대한 "하드 제한" 수용 블록 수는 2 \(\cdot\) MN입니다. blockchain이 부풀어오르는 것을 방지하지만 여전히 한계를 허용합니다. 필요한 경우 시간이 지남에 따라 천천히 성장하십시오. 트랜잭션 크기를 명시적으로 제한할 필요는 없습니다. 블록 크기에 따라 제한됩니다. 그리고 누군가가 수백 개의 입력/출력(또는 링 서명의 높은 모호성 정도), 충분한 수수료를 지불하면 그렇게 할 수 있습니다. 6.2.3 크기 초과 페널티 채굴자는 여전히 최대 수수료까지 자신의 수수료 없는 거래로 블록을 가득 채울 수 있습니다. 크기 \(2 \cdot M_b\). 대다수의 채굴자만이 중앙값을 이동할 수 있지만 여전히 13 25 한 단위의 시간이 N 블록이 되도록 시간을 재조정하면 이론적으로 평균 블록 크기는 2t에 비례하여 기하급수적으로 증가할 수 있습니다. 반면에 좀 더 일반적인 캡은 다음 블록의 일부 함수 f에 대해서는 M_nf(M_n)이 됩니다. f의 어떤 속성이 블록 크기의 "합리적인 성장"을 보장하기 위해 선택합니까? 의 진행 블록 크기(재조정 시간 후)는 다음과 같습니다. M_n f(M_n)M_n f(f(M_n)M_n)f(M_n)M_n f(f(f(M_n)M_n)f(M_n)M_n)f(f(M_n)M_n)f( ... 그리고 여기서 목표는 이 수열이 선형적으로 증가하는 것보다 더 빠르게 증가하지 않도록 f를 선택하는 것입니다. 또는 Log(t)로도 가능합니다. 물론, 어떤 상수 a에 대해 f(M_n) = a라면 이 수열은 다음과 같습니다. 실제로 M_n aM_n aˆ2M_n aˆ3M_n ... 그리고 물론 이것이 최대 선형 성장으로 제한될 수 있는 유일한 방법은 a=1을 선택하는 것입니다. 물론 이것은 실현 불가능합니다. 전혀 성장을 허용하지 않습니다. 반면, f(M_n)이 상수가 아닌 함수라면 상황은 훨씬 더 복잡해집니다. 복잡하고 우아한 솔루션을 제공할 수 있습니다. 나는 이것에 대해 잠시 생각해 볼 것이다. 이 수수료는 다음 섹션의 초과 크기 벌금을 할인할 수 있을 만큼 커야 합니다. 왜 일반 사용자를 남성으로 가정하는 걸까요? 응?

blockchain을 부풀리고 노드에 추가 로드를 생성할 가능성이 있습니다. 낙담시키다 악의적인 참가자가 큰 블록을 생성하는 것을 방지하기 위해 페널티 기능을 도입합니다. NewReward = 기본 보상 \(\cdot\) Blk크기 미네소타 -1 2 이 규칙은 BlkSize가 최소 여유 블록 크기보다 큰 경우에만 적용됩니다. max(10kb, \(M_N \cdot 110\%\))에 가까워야 합니다. 채굴자는 "일반적인 크기"의 블록을 생성할 수 있으며 심지어 전체 수수료가 페널티를 초과하면 이익으로 초과합니다. 하지만 수수료 인상 가능성은 낮아 페널티 값과 2차적으로 다르기 때문에 균형이 유지됩니다. 6.3 거래 스크립트 CryptoNote에는 매우 최소한의 스크립팅 하위 시스템이 있습니다. 발신자는 Φ = 표현식을 지정합니다. f (x1, x2, . . . , xn), 여기서 n은 대상 공개 키의 수 {Pi}n 나는 = 1입니다. 단 5개의 바이너리만 지원되는 연산자는 min, max, sum, mul 및 cmp입니다. 수신자가 이 지불금을 지출하면, 그는 \(0 \leq k \leq n\) 서명을 생성하고 이를 거래 입력에 전달합니다. 검증 과정 공개 키 Pi에 대한 유효한 서명을 확인하기 위해 xi = 1로 Φ를 평가하고 xi = 0을 사용합니다. 검증자는 ffΦ > 0인 경우 증명을 수락합니다. 단순함에도 불구하고 이 접근 방식은 가능한 모든 경우를 포괄합니다. • 다중/임계값 서명. Bitcoin 스타일의 "M-out-of-N" 다중 서명(예: 수신자는 최소한 \(0 \leq M \leq N\) 유효한 서명을 제공해야 합니다) Φ = x1+x2+. . .+xN \(\geq M\) (명확하게 하기 위해 우리는 일반적인 대수 표기법을 사용합니다). 가중치 임계값 서명 (일부 키는 다른 키보다 더 중요할 수 있음)은 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). 그리고 마스터 키가 Φ =에 해당하는 시나리오 max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). 어떤 정교한 케이스라도 가능하다는 것을 보여주는 것은 쉽습니다. 이러한 연산자로 표현됩니다. 즉, 기초를 형성합니다. • 비밀번호 보호. 비밀 비밀번호를 소유하는 것은 다음 사항을 알고 있는 것과 동일합니다. 비밀번호에서 결정론적으로 파생된 개인 키: k = KDF(s). 따라서 수신기 키 k 아래에 또 다른 서명을 제공하여 그가 비밀번호를 알고 있음을 증명할 수 있습니다. 발신자는 해당 공개 키를 자신의 출력에 추가하기만 하면 됩니다. 참고하세요 방법은 Bitcoin [13]에서 사용된 "트랜잭션 퍼즐"보다 훨씬 더 안전합니다. 비밀번호는 입력에 명시적으로 전달됩니다. • 변질된 사례. Φ = 1은 누구나 돈을 쓸 수 있음을 의미합니다. Φ = 0은 영원히 쓸 수 없는 것으로 출력됩니다. 공개키와 결합된 출력 스크립트가 송신자에게 너무 큰 경우, 수신자가 이 데이터를 입력에 넣을 것임을 나타내는 특수 출력 유형을 사용할 수 있습니다. 발신자는 그 중 hash만 제공합니다. 이 접근 방식은 Bitcoin의 "pay-to-hash"과 유사합니다. 기능이지만 새 스크립트 명령을 추가하는 대신 데이터 구조에서 이 경우를 처리합니다. 수준. 7 결론 우리는 Bitcoin의 주요 결함을 조사하고 몇 가지 가능한 해결책을 제안했습니다. 이러한 유리한 기능과 지속적인 개발로 인해 새로운 전자 현금 시스템인 CryptoNote가 탄생했습니다. Bitcoin의 심각한 라이벌로 모든 포크를 능가합니다. 14 blockchain을 부풀리고 노드에 추가 로드를 생성할 가능성이 있습니다. 낙담시키다 악의적인 참가자가 큰 블록을 생성하는 것을 방지하기 위해 페널티 기능을 도입합니다. NewReward = 기본 보상 \(\cdot\) Blk크기 미네소타 -1 2 이 규칙은 BlkSize가 최소 여유 블록 크기보다 큰 경우에만 적용됩니다. max(10kb, \(M_N \cdot 110\%\))에 가까워야 합니다. 채굴자는 "일반적인 크기"의 블록을 생성할 수 있으며 심지어 전체 수수료가 페널티를 초과하면 이익으로 초과합니다. 하지만 수수료 인상 가능성은 낮아 페널티 값과 2차적으로 다르기 때문에 균형이 유지됩니다. 6.3 거래 스크립트 CryptoNote에는 매우 최소한의 스크립팅 하위 시스템이 있습니다. 발신자는 Φ = 표현식을 지정합니다. f (x1, x2, . . . , xn), 여기서 n은 대상 공개 키의 수 {Pi}n 나는 = 1입니다. 단 5개의 바이너리만 지원되는 연산자는 min, max, sum, mul 및 cmp입니다. 수신자가 이 지불금을 지출하면, 그는 \(0 \leq k \leq n\) 서명을 생성하고 이를 거래 입력에 전달합니다. 검증 과정 공개 키 Pi에 대한 유효한 서명을 확인하기 위해 xi = 1로 Φ를 평가하고 xi = 0을 사용합니다. 검증자는 ffΦ > 0인 경우 증명을 수락합니다. 단순함에도 불구하고 이 접근 방식은 가능한 모든 경우를 포괄합니다. • 다중/임계값 서명. Bitcoin 스타일의 "M-out-of-N" 다중 서명(예: 수신자는 최소한 \(0 \leq M \leq N\) 유효한 서명을 제공해야 합니다) Φ = x1+x2+. . .+xN \(\geq M\) (명확하게 하기 위해 우리는 일반적인 대수 표기법을 사용합니다). 가중치 임계값 서명 (일부 키는 다른 키보다 더 중요할 수 있음)은 Φ = \(w_1 \cdot x_1\) + \(w_2 \cdot x_2\) + . . . + \(w_N \cdot x_N\) \(\geq wM\). 그리고 시나리오io 여기서 마스터 키는 Φ =에 해당합니다. max(\(M \cdot x\), x1 + x2 + . . . + xN) \(\geq M\). 어떤 정교한 케이스라도 가능하다는 것을 보여주는 것은 쉽습니다. 이러한 연산자로 표현됩니다. 즉, 기초를 형성합니다. • 비밀번호 보호. 비밀 비밀번호를 소유하는 것은 다음 사항을 알고 있는 것과 동일합니다. 비밀번호에서 결정론적으로 파생된 개인 키: k = KDF(s). 따라서 수신기 키 k 아래에 또 다른 서명을 제공하여 그가 비밀번호를 알고 있음을 증명할 수 있습니다. 발신자는 해당 공개 키를 자신의 출력에 추가하기만 하면 됩니다. 참고하세요 방법은 Bitcoin [13]에서 사용된 "트랜잭션 퍼즐"보다 훨씬 더 안전합니다. 비밀번호는 입력에 명시적으로 전달됩니다. • 변질된 사례. Φ = 1은 누구나 돈을 쓸 수 있음을 의미합니다. Φ = 0은 영원히 쓸 수 없는 것으로 출력됩니다. 공개키와 결합된 출력 스크립트가 송신자에게 너무 큰 경우, 수신자가 이 데이터를 입력에 넣을 것임을 나타내는 특수 출력 유형을 사용할 수 있습니다. 발신자는 그 중 hash만 제공합니다. 이 접근 방식은 Bitcoin의 "pay-to-hash"와 유사합니다. 기능이지만 새 스크립트 명령을 추가하는 대신 데이터 구조에서 이 경우를 처리합니다. 수준. 7 결론 우리는 Bitcoin의 주요 결함을 조사하고 몇 가지 가능한 해결책을 제안했습니다. 이러한 유리한 기능과 지속적인 개발로 인해 새로운 전자 현금 시스템인 CryptoNote가 탄생했습니다. 모든 포크를 능가하는 Bitcoin의 심각한 라이벌입니다. 14 26 시간이 지남에 따라 블록 크기를 제한하는 방법을 알아낼 수 있다면 이는 불필요할 수 있습니다. 이 역시 정확할 수 없습니다. 그들은 단지 "NewReward"를 위쪽을 향한 포물선으로 설정했습니다. 블록 크기는 독립 변수입니다. 그래서 새로운 보상이 무한대로 불어납니다. 만약, 반면에 손에서 새 보상은 Max(0,Base Reward(1-(BlkSize/Mn - 1)ˆ2))이고 새 보상은 블록 크기 = Mn에서 피크를 갖고 절편이 있는 하향 포물선이 됩니다. 블록 크기 = 0 및 블록 크기 = 2Mn. 그리고 그것이 그들이 묘사하려고 하는 것인 것 같습니다. 그러나 이것은 그렇지 않습니다

分析

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

5 当世界上十亿人的生活费低于一美元时,这并不重要。 一天,不希望参与任何类型的采矿网络......但经济 由一个 CPU 一票的 P2P 货币系统驱动的世界大概会更 比由部分准备金银行驱动的系统公平。 但 Cryptonote 的协议仍然需要 51% 的诚实用户……例如,参见 Cryptonote 开发人员之一 Pliskov 表示,传统的替换 blockchain 51% 上的数据的攻击仍然有效。 https://forum.cryptonote.org/viewtopic.php?f=2&t=198 请注意,您实际上并不需要 51% 的诚实用户。你真的需要“没有一个不诚实的人 拥有网络 hashing 力量 51% 以上的派系。” 我们将这种所谓的比特币问题称为“适应性刚性”。 Cryptonote 的自适应解决方案 刚性是协议参数值的自适应灵活性。如果您需要更大的块大小, 没问题,网络将一直在轻轻调整。 也就是说, Bitcoin 随着时间的推移调整难度的方式可以在我们的所有协议中复制 参数,以便更新协议时不需要获得网络共识。 从表面上看,这似乎是个好主意,但如果没有仔细考虑,就会出现自我调整的情况。 系统可能变得相当不可预测和混乱。稍后我们将进一步研究这一点 机会出现。 “好”系统介于自适应刚性和自适应之间 灵活,也许甚至刚性本身也是适应性的。 如果我们真的拥有“一 CPU 一票”,那么就通过协作和开发池来达到 51% 会更困难。我们预计世界上的每个 CPU 都会从手机开始挖矿 充电时连接到 Tesla 的板载 CPU。 http://en.wikipedia.org/wiki/Pareto_principle 我认为帕累托均衡在某种程度上是不可避免的。系统的 20% 将 拥有 80% 的 CPU,或者 20% 的系统将拥有 80% 的 ASIC。我做出这样的假设是因为社会财富的基本分配已经呈现出帕累托分布, 随着新矿工的加入,他们是从底层分布中抽取的。 然而,我认为采用一 CPU 一投票的协议将会在硬件上带来投资回报。 块 每个节点的奖励将与网络中的节点数量更成正比,因为 节点之间的性能分布将更加紧密。另一方面,Bitcoin 另一方面,看到区块奖励(每个节点)与该节点的计算能力成正比 节点。也就是说,只有“大佬”还在挖矿游戏中。另一方面, 尽管帕累托原则仍然有效,但在一个 CPU 一票的世界中,每个人 参与网络安全并获得一点挖矿收益。 在 ASIC 世界中,让每台 Xbox 和手机都用于挖矿是不明智的。 在一个CPU一票的世界里,就挖矿奖励而言,这是非常明智的。作为一个令人高兴的结果, 当选票越来越多时,获得 51% 的选票会变得更加困难,从而产生可爱的结果 有利于网络安全..前面描述过的硬件。假设全局 hash 率显着下降,即使对于 一会儿,他现在可以利用自己的挖矿能力来分叉链条并进行双花。正如我们将看到的 在本文后面,前面描述的事件发生的可能性也不是很大。 2.3 不规则发射 Bitcoin 具有预定的排放率:每个解决的块都会产生固定数量的硬币。 大约每四年这一奖励就会减半。最初的目的是创建一个 具有指数衰减的有限平滑发射,但实际上我们有分段线性发射 其断点可能会导致 Bitcoin 基础设施出现问题的函数。 当断点发生时,矿工开始只收到先前价值的一半 奖励。 12.5 和 6.25 BTC 之间的绝对差异(预计 2020 年)可能会 看起来还可以忍受。然而,当检查 11 月份发生的 50 至 25 BTC 下跌时 2012 年 2 月 28 日,对于采矿界的相当一部分成员来说,这感觉不合适。图 图 1 显示了 11 月底网络的 hash 速率急剧下降,此时正是 减半发生了。对于恶意者来说,这一事件可能是完美的时刻 proof-of-work 函数部分中描述了执行双花攻击 [36] 的方法。 图 1. Bitcoin hash 费率图表 (来源:http://bitcoin.sipa.be) 2.4 硬编码常量 Bitcoin 有许多硬编码限制,其中一些是原始设计的自然元素(例如 区块频率、最大货币供应量、确认数量),而其他 似乎是人为的限制。与其说是限制,不如说是无法快速改变 3 前面描述过的硬件。假设全局 hash 率显着下降,即使对于 一会儿,他现在可以利用自己的挖矿能力来分叉链条并进行双花。正如我们将看到的 在本文后面,前面描述的事件发生的可能性也不是很大。 2.3 不规则发射 Bitcoin 具有预定的排放率:每个解决的块都会产生固定数量的硬币。 大约每四年这一奖励就会减半。最初的目的是创建一个 具有指数衰减的有限平滑发射,但实际上我们有分段线性发射 其断点可能会导致 Bitcoin 基础设施出现问题的函数。 当断点发生时,矿工开始只收到先前价值的一半 奖励。 12.5 和 6.25 BTC 之间的绝对差异(预计 2020 年)可能会 看起来还可以忍受。然而,当检查 11 月份发生的 50 至 25 BTC 下跌时 2012 年 2 月 28 日,对于采矿界的相当一部分成员来说,这感觉不合适。图 图 1 显示了 11 月底网络的 hash 速率急剧下降,此时正是 减半发生了。对于恶意者来说,这一事件可能是完美的时刻 proof-of-work 函数部分中描述了执行双花攻击 [36] 的方法。 图 1. Bitcoin hash 费率图表 (来源:http://bitcoin.sipa.be) 2.4 硬编码常量 Bitcoin 有许多硬编码限制,其中一些是原始设计的自然元素(例如 区块频率、最大货币供应量、确认数量),而其他 似乎是人为的限制。与其说是限制,不如说是无法快速改变 3 6 让我们称其为僵尸攻击。 让我们讨论一下如何连续发射 与僵尸攻击场景中的一CPU一票相关。 在一个CPU一票的世界里,每部手机和汽车只要闲置,就会进行挖矿。收集大量廉价硬件来创建矿场将非常非常容易,因为只需 几乎所有东西都有一个CPU。另一方面,此时 CPU 的数量 我认为发动 51% 攻击所需的时间是相当惊人的。 此外, 正是因为很容易收集廉价的硬件,我们可以合理地预期 很多人开始囤积任何带有 CPU 的东西。一CPU一票世界中的军备竞赛 必然比 ASIC 世界更加平等。 因此,网络不连续 在一个 CPU 一票的世界中,排放率带来的安全问题应该不是什么问题。 然而,有两个事实仍然存在:1)发射率的不连续性可能会导致口吃效应 经济和网络安全都不好,而且 2) 即使发生 51% 攻击 由收集廉价硬件的人执行的操作仍然可能发生在单 CPU 中-投票世界, 看来应该更难了。 据推测,防止这种情况发生的措施是“所有”不诚实的行为者都会尝试这样做 同时,我们又回到了 Bitcoin 之前的安全概念:“我们不需要不诚实的人 派别控制了超过 51% 的网络。” 作者在这里声称比特币的一个问题是硬币发行的不连续性 速率可能会导致网络参与度突然下降,从而导致网络安全性下降。因此, 连续的、可微的、平滑的硬币发行率是优选的。 作者没有错,一定是这样。网络参与度的任何形式的突然减少都可能导致 导致这样一个问题,如果我们能够消除它的一个根源,我们就应该这样做。话虽如此,这是 长期“相对稳定”的代币发行可能会被突然的变化所打断 从经济学的角度来看,这是理想的方法。我不是经济学家。所以,也许我们 我们必须决定是否要用网络安全来换取经济利益——这是什么? http://arxiv.org/abs/1402.2009如有必要,它们会导致主要缺点。不幸的是,很难预测何时 常量可能需要改变,替换它们可能会导致可怕的后果。 硬编码限制更改导致灾难性后果的一个很好的例子是块 大小限制设置为 250kb1。这个限制足以容纳大约 10000 个标准交易。在 2013 年初,这一限制几乎已达到,并达成协议增加 限制。该更改在钱包版本 0.8 中实施,并以 24 块链分裂结束 以及成功的双花攻击[9]。虽然该错误不在 Bitcoin 协议中,但是 相反,在数据库引擎中,如果有的话,可以通过简单的压力测试轻松捕获它 没有人为引入的块大小限制。 常量也充当集中点的一种形式。 尽管具有点对点的性质 Bitcoin,绝大多数节点使用官方开发的参考客户端[10] 一小群人。该小组决定对协议进行更改 大多数人都会接受这些变化,无论它们的“正确性”如何。一些决定导致 激烈讨论甚至呼吁抵制[11],这表明社区和 开发人员可能在一些重要问题上存在分歧。因此,制定一项协议似乎是合乎逻辑的 使用用户可配置和自我调整的变量作为避免这些问题的可能方法。 2.5 庞大的脚本 Bitcoin 中的脚本系统是一个繁重且复杂的功能。它可能允许人们创建 复杂的交易[12],但由于安全问题和原因,其某些功能被禁用 有些甚至从未使用过[13]。脚本(包括发送者和接收者部分) Bitcoin 中最受欢迎的交易如下所示: OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG。 该脚本长 164 字节,其唯一目的是检查接收者是否拥有 验证他的签名所需的密钥。

분석

Bitcoin network total computation speed chart showing hashrate and difficulty from 2012 to 2013

5 전 세계 10억 명의 사람들이 1달러 미만의 돈으로 살아간다는 것이 그다지 중요한 것은 아닙니다. 어떤 종류의 채굴 네트워크에도 참여할 희망이 없습니다... 하지만 경제적 1-CPU-1-표를 사용하는 P2P 통화 시스템이 주도하는 세계는 아마도 더 많을 것입니다. 부분지급준비은행에 의해 운영되는 시스템보다 공정합니다. 하지만 Cryptonote의 프로토콜에는 여전히 51%의 정직한 사용자가 필요합니다. 예를 들어 Cryptonote를 참조하세요. 개발자 중 한 명인 Pliskov는 전통적인 데이터 교체 blockchain 51% 공격이 여전히 작동할 수 있다고 말합니다. https://forum.cryptonote.org/viewtopic.php?f=2&t=198 실제로 51%의 정직한 사용자가 필요한 것은 아닙니다. 당신은 정말로 "단 한 명의 부정직한 사람도 필요하지 않습니다" 네트워크의 hash 힘의 51% 이상을 보유한 세력입니다." 소위 비트코인의 문제를 '적응적 경직성'이라고 부르자. Cryptonote의 적응형 솔루션 강성은 프로토콜 매개변수 값의 적응형 유연성입니다. 더 큰 블록 크기가 필요한 경우, 문제 없습니다. 네트워크는 내내 부드럽게 조정되었을 것입니다. 즉, Bitcoin이 시간이 지남에 따라 어려움을 조정하는 방식은 모든 프로토콜에서 복제될 수 있습니다. 프로토콜을 업데이트하기 위해 네트워크 합의를 얻을 필요가 없도록 매개변수를 설정합니다. 표면적으로 이것은 좋은 생각처럼 보이지만 신중한 사전 고려 없이는 자체 조정이 가능합니다. 시스템은 매우 예측 불가능하고 혼란스러워질 수 있습니다. 이에 대해서는 나중에 더 자세히 살펴보겠습니다. 기회가 생깁니다. "좋은" 시스템은 적응적으로 엄격한 시스템과 적응적인 시스템 사이의 어딘가에 있습니다. 유연하고 어쩌면 강성 자체도 적응력이 있을 수 있습니다. 우리가 정말로 "1-CPU-1-투표"를 가졌다면 51%에 도달하기 위해 풀을 협력하고 개발해야 합니다. 더 어려울 것입니다. 우리는 전 세계의 모든 CPU가 휴대폰에서 채굴될 것으로 예상합니다. 충전하는 동안 Tesla의 온보드 CPU에 연결됩니다. http://en.wikipedia.org/wiki/Pareto_principle 나는 파레토 균형이 다소 불가피하다고 주장합니다. 시스템의 20%가 CPU의 80%를 소유하거나 시스템의 20%가 ASIC의 80%를 소유하게 됩니다. 나는 사회의 기본 부의 분배가 이미 파레토 분포를 보이고 있기 때문에 이것을 가정합니다. 새로운 채굴자가 합류하면 기본 배포판에서 추출됩니다. 그러나 나는 1-CPU-1-투표 프로토콜이 하드웨어에서 ROI를 볼 것이라고 주장합니다. 블록 노드당 보상은 네트워크의 노드 수에 더 밀접하게 비례합니다. 노드 전반에 걸쳐 성능 분포가 훨씬 더 엄격해집니다. Bitcoin, 다른 한편으로는 계산 능력에 더 비례하는 블록 보상(노드당)을 봅니다. 노드. 즉, 여전히 채굴 게임에는 "큰 소년들"만이 남아 있다는 것입니다. 반면에, 1CPU 1표 세계에서는 파레토 원칙이 여전히 적용되더라도 모든 사람은 네트워크 보안에 참여하고 약간의 채굴 수입을 얻습니다. ASIC 세계에서는 모든 XBox와 휴대폰을 광산에 장착하는 것은 합리적이지 않습니다. 1CPU 1표 세계에서는 채굴 보상 측면에서 매우 합리적입니다. 기분 좋은 결과로, 투표 수가 많아지면 51%의 득표율을 얻는 것이 더 어렵습니다. 네트워크 보안에 이점이 있습니다..이전에 설명한 하드웨어. 다음 경우에도 글로벌 hash 비율이 크게 감소한다고 가정합니다. 잠시 후 그는 채굴 능력을 사용하여 체인을 포크하고 이중 지출을 할 수 있습니다. 앞으로 살펴보겠지만 이 기사의 뒷부분에서는 이전에 설명한 사건이 발생할 가능성이 거의 없습니다. 2.3 불규칙한 방출 Bitcoin에는 미리 결정된 방출 속도가 있습니다. 해결된 각 블록은 고정된 양의 코인을 생성합니다. 대략 4년마다 이 보상은 절반으로 줄어듭니다. 원래 의도는 만들려고 했는데 지수적 붕괴로 제한된 부드러운 방출을 수행하지만 실제로는 조각별 선형 방출이 있습니다. 중단점이 Bitcoin 인프라에 문제를 일으킬 수 있는 함수입니다. 중단점이 발생하면 채굴자는 이전 가치의 절반만 받기 시작합니다. 보상. 12.5와 6.25 BTC(2020년 예상) 사이의 절대적인 차이는 견딜 수 있을 것 같습니다. 그러나 11월에 발생한 50~25BTC 하락을 살펴보면 2012년 28일, 광산 커뮤니티의 상당수 구성원에게 부적절하다고 느꼈습니다. 그림 1은 정확히 11월 말에 네트워크의 hash비율이 급격히 감소한 것을 보여줍니다. 반감기가 일어났습니다. 이 사건은 악의적인 개인에게 완벽한 순간이었을 수도 있습니다. 이중 지출 공격 [36]을 수행하기 위해 proof-of-work 함수 섹션에 설명되어 있습니다. 그림 1. Bitcoin hash비율 차트 (출처: http://bitcoin.sipa.be) 2.4 하드코딩된 상수 Bitcoin에는 하드 코딩된 제한이 많이 있으며 일부는 원래 디자인의 자연스러운 요소입니다(예: 차단 빈도, 최대 통화 공급량, 확인 횟수) 반면 다른 인위적인 제약인 것 같습니다. 한계가 아니라 빠르게 변화할 수 없다는 점입니다. 3 이전에 설명한 하드웨어. 다음 경우에도 글로벌 hash 비율이 크게 감소한다고 가정합니다. 잠시 후 그는 채굴 능력을 사용하여 체인을 포크하고 이중 지출을 할 수 있습니다. 앞으로 살펴보겠지만 이 기사의 뒷부분에서는 이전에 설명한 사건이 발생할 가능성이 거의 없습니다. 2.3 불규칙한 방출 Bitcoin에는 미리 결정된 방출 속도가 있습니다. 각 해결된 블록은 고정된 양의 코인을 생성합니다. 대략 4년마다 이 보상은 절반으로 줄어듭니다. 원래 의도는 만들려고 했는데 지수적 붕괴로 제한된 부드러운 방출을 수행하지만 실제로는 조각별 선형 방출이 있습니다. 중단점이 Bitcoin 인프라에 문제를 일으킬 수 있는 함수입니다. 중단점이 발생하면 채굴자는 이전 가치의 절반만 받기 시작합니다. 보상. 12.5와 6.25 BTC(2020년 예상) 사이의 절대적인 차이는 견딜 수 있을 것 같습니다. 그러나 11월에 발생한 50~25BTC 하락을 살펴보면 2012년 28일, 광산 커뮤니티의 상당수 구성원에게 부적절하다고 느꼈습니다. 그림 1은 정확히 11월 말에 네트워크의 hash비율이 급격히 감소한 것을 보여줍니다. 반감기가 일어났습니다. 이 사건은 악의적인 개인에게 완벽한 순간이었을 수도 있습니다. 이중 지출 공격 [36]을 수행하기 위해 proof-of-work 함수 섹션에 설명되어 있습니다. 그림 1. Bitcoin hash비율 차트 (출처: http://bitcoin.sipa.be) 2.4 하드코딩된 상수 Bitcoin에는 하드 코딩된 제한이 많이 있으며 일부는 원래 디자인의 자연스러운 요소입니다(예: 차단 빈도, 최대 통화 공급량, 확인 횟수) 반면 다른 인위적인 제약인 것 같습니다. 한계가 아니라 빠르게 변화할 수 없다는 점입니다. 3 6 이것을 좀비 공격이라고 부르자. 지속적으로 방출하는 방법에 대해 논의해 보겠습니다. 좀비 공격 시나리오의 one-cpu-one-vote와 관련이 있습니다. 1CPU 1표 세계에서는 유휴 상태일 때마다 모든 휴대폰과 자동차가 채굴을 할 것입니다. 광산 농장을 만들기 위해 값싼 하드웨어 더미를 모으는 것은 매우 쉬울 것입니다. 모든 것에는 CPU가 있습니다. 반면에 그 시점의 CPU 수는 51% 공격을 시작하는 데 필요한 요구 사항은 매우 놀라운 일이라고 생각합니다. 게다가, 정확하게 왜냐하면 값싼 하드웨어를 모으는 것이 쉽기 때문에 우리는 합리적인 가격을 기대할 수 있습니다. 많은 사람들이 CPU로 무엇이든 쌓아두기 시작합니다. 1CPU 1표 세계의 군비 경쟁 ASIC 세계보다 반드시 더 평등주의적입니다. 따라서 네트워크의 단절 배출율로 인한 보안은 1CPU 1표 세계에서는 문제가 덜 됩니다. 그러나 두 가지 사실이 남아 있습니다. 1) 방출 속도의 불연속성은 영상의 말더듬 효과로 이어질 수 있습니다. 경제와 네트워크 보안 모두 나쁘고, 2) 51% 공격에도 불구하고 값싼 하드웨어를 수집하는 사람이 수행하는 작업은 여전히 1-CPU-1에서 발생할 수 있습니다.-세계에 투표하세요, 더 힘들어야 할 것 같습니다. 아마도 이에 대한 안전 장치는 모든 부정직한 행위자가 이 방법을 시도할 것이라는 것입니다. 동시에 우리는 Bitcoin의 이전 보안 개념인 "우리는 부정직한 행위를 요구하지 않습니다"로 돌아갑니다. 네트워크의 51% 이상을 통제하는 세력입니다." 저자는 여기서 비트코인의 한 가지 문제점은 코인 방출의 불연속성이라고 주장하고 있습니다. 속도로 인해 네트워크 참여가 갑자기 감소하여 네트워크 보안이 저하될 수 있습니다. 따라서, 연속적이고 미분 가능하며 원활한 코인 방출 속도가 바람직합니다. 저자가 틀린 것은 아닙니다. 네트워크 참여가 갑자기 감소하면 그러한 문제를 야기할 수 있으며, 그 원인 중 하나를 제거할 수 있다면 제거해야 합니다. 그러고보니 그렇군요 갑작스러운 변화로 인해 장기간 "상대적으로 일정한" 코인 방출이 중단될 가능성이 있습니다. 경제적 관점에서 볼 때 이상적인 방법입니다. 나는 경제학자가 아니다. 그렇다면 아마도 우리는 경제적인 것을 위해 네트워크 보안을 교환할지 결정해야 합니다. 여기서는 무엇입니까? http://arxiv.org/abs/1402.2009필요한 경우 주요 단점이 발생합니다. 아쉽게도 언제 출시될지 예측하기 어렵습니다. 상수를 변경해야 할 수도 있고 이를 교체하면 끔찍한 결과를 초래할 수도 있습니다. 비참한 결과를 초래하는 하드코딩된 제한 변경의 좋은 예는 블록입니다. 크기 제한이 250kb1로 설정되었습니다. 이 한도는 약 10000개의 표준 트랜잭션을 보유하는 데 충분했습니다. 에서 2013년 초, 이 한도에 거의 도달했고, 이를 늘리기로 합의했습니다. 한계. 변경 사항은 지갑 버전 0.8에서 구현되었으며 24블록 체인 분할로 끝났습니다. 성공적인 이중 지출 공격 [9]. 버그는 Bitcoin 프로토콜에는 없었지만 오히려 데이터베이스 엔진에서는 간단한 스트레스 테스트를 통해 쉽게 발견할 수 있었습니다. 인위적으로 도입된 블록 크기 제한이 없습니다. 상수는 중앙집중화 지점의 역할도 합니다. P2P 성격에도 불구하고 Bitcoin, 압도적 다수의 노드가 개발한 공식 참조 클라이언트 [10]을 사용합니다. 소수의 사람들. 이 그룹은 프로토콜 변경을 구현하기로 결정합니다. 그리고 대부분의 사람들은 "정확성"에 관계없이 이러한 변경 사항을 받아들입니다. 일부 결정으로 인해 발생 열띤 토론을 벌이고 보이콧을 요구하기까지 합니다 [11]. 이는 커뮤니티와 개발자는 몇 가지 중요한 사항에 동의하지 않을 수 있습니다. 따라서 프로토콜을 갖는 것이 논리적인 것 같습니다. 이러한 문제를 방지하기 위한 가능한 방법으로 사용자가 구성할 수 있고 자체 조정 가능한 변수를 사용합니다. 2.5 부피가 큰 스크립트 Bitcoin의 스크립팅 시스템은 무겁고 복잡한 기능입니다. 잠재적으로 다음을 만들 수 있습니다. 정교한 거래 [12]이지만 보안 문제로 인해 일부 기능이 비활성화되어 있으며 일부는 한 번도 사용된 적이 없습니다([13]). 스크립트(발신자 및 수신자 부분 모두 포함) Bitcoin에서 가장 인기 있는 거래는 다음과 같습니다. OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG. 스크립트의 길이는 164바이트이지만 유일한 목적은 수신자가 해당 스크립트를 소유하고 있는지 확인하는 것입니다. 서명을 확인하려면 비밀 키가 필요합니다.