MONERO白皮书
Nicolas van Saberhagen
October 17, 2013
“比特币”[1]已经成功实施了p2p电子现金的概念。专业人士和公众都认识到公共交易和工作作为信任模式的方便结合。今天电子现金用户基数稳步增长。客户被低收费吸引,电子现金和商家提供的匿名性重视其预测和分散排放。比特币有效证明,电子现金可以像纸币、信用卡一样简单方便。不幸的是,比特币遭遇了几个缺陷。例如,系统的分布式属性是不灵活的,阻止新功能的实现,直到几乎所有的网络用户更新其客户端。一些不能快速解决的关键缺陷阻止了比特币广泛传播。在这样不灵活的模式中,推出新项目更有效率,而不是永久地修复原始项目。在本文中,我们研究并提出了比特币主要缺陷的解决方案。我们认为,考虑到我们提出的解决方案的系统将导致不同电子现金系统之间的健康竞争。我们还提出自己的电子现金“CryptoNote”,这个名字强调电子现金的下一个突破。
交易时间字符串是什么2. 比特币的缺点和一些可能的解决方案
2.1 交易追溯
隐私和匿名是电子现金最重要的方面。对等支付寻求从第三方的角度来看,与传统银行业相比有明显差异。特别是T. Okamoto和K. Ohta描述了理想电子现金的六个标准,其中包括“隐私:用户和他的购买之间的关系必须由任何人不可追究”[30]。从他们的描述中,我们得出了两个完全匿名的电子现金模型必须满足的属性,以符合冈本和T. Okamoto和K. Ohta大田概述的要求:不可追踪性:对于每个进入的交易,所有可能的发件人从概率上是相等的。无关联性:对于任何两个外部交易,不可能证明将其发送给同一个人。不幸的是,比特币不符合非追溯要求。由于网络参与者之间发生的所有交易都是公开的,因此任何交易都可以明确地追溯到独特的起源和最终的收件人。即使两个参与者以间接的方式交换资金,一个适当设计的路径寻方法将揭示起源和最终的收件人。也有人怀疑比特币不符合第二财
产。一些研究人员表示([33,35,29,31])仔细的块链分析可能揭示了比特币网络用户与其交易之间的联系。虽然有一些方法有争议[25],但怀疑可以从公共数据库中提取很多隐藏的个人信息。比特币未能满足上述两个特性,导致我们得出结论,它不是一个匿名的,而是一个伪匿名的电子现金系统。用户很快开发解决方案来规避这个缺点。两个直接的解决办法是“服务”[2]和分布式方法的发展[3,4]。这两个解决方案都是基于混合几个公共交易并通过一些中间地址发送他们的想法;这反过来又具有要求可靠的第三方的缺点。最近,Miers等人提出了一个更具创意的方案。
[28]:“Zerocoin”。 Zerocoin利用加密单向累加器和零知识证明,允许用户将比特币“转换”为零竞争,并使用匿名的所有权证明,而不是基于公开密码的基于数字签名。然而,这种知识证明有一个不变但不方
便的大小 - 约30kb(基于今天的比特币限制),这使得该提案不切实际。作者承认,该协议不太可能被大多数Bitcoin用户所接受[5]。
Bitcoin创作者Satoshi Nakamoto将多数决策算法描述为“一CPU一票”,并使用CPU限价定价功能(双SHA-256)作为其工作量证明方案。由于用户投票单个交易历史顺序[1],这个过程的合理性和一致性是整个系统的关键条件。这种模式的安全性有两个缺点。首先,它需要51%的网络采矿权力由诚实的用户控制。其次,系统的进度(bug修复,安全修复等)要求绝大多数用户支持并同意更改(这在用户更新其钱包软件时发生)[6]。最后这个相同的投票机制也用于集体民意调查实施某些特征[7]。这样我们可以推测工作定价功能必须满足的属性。这种功能不能使网络参与者具有比另一参与者更大的优势;它需要通用硬件和定制设备的高成本之间的平衡。从最近的例子[8]可以看出,Bitcoin架构中使用的SHA-256功能并不具备这一特性,因为与高端CPU相比,采集在GPU和ASIC器件上的效率更高。因此,与CPU占有者相比,GPU和ASIC所有者拥有更大的投票权,因此比特币为参与者的投票权力之间的巨大差距创造了有利条件,因为它违反了“一CPU一票”原则。这是帕累托原则的典型例子,其中20%的系统参与者控制超过80%的选票。人们可以认为,这种不平等与网络的安全性无关,因为控制大多数投票的参与人数不多,但这些参与者的诚实是重要的。然而,这样的论据有些缺陷,因为它可能是出现廉价的专业硬件,而不是参与者的诚实造成威胁。为了说明这一点,我们来看一下例子。假设一个恶毒的个体通过廉
价创建自己的采矿场,获得了巨大的矿业权力以前描述的硬件。假设全球哈希值显着下降,即使是一段时间,他现在也可
以利用他的挖掘能力来分支链和双重支出。正如我们在本文后面将会看到的,前面描述的事件不可能发生。
比特币具有预定的排放率:每个解决的块产生固定量的硬币。大约每四年一次,这个报酬减半。最初的目的是创造一个具有指数衰减的有限的平滑发射,但实际上我们有一个分段线性发射功能,其断点可能会导致比特币基础设施的问题。当断点发生时,矿工开始只收到他们以前的报酬的一半。 BTC(预计在2020年)之间的绝对差异似乎是可以忍受的。然而,在审查2012年11月28日发生的50至25点BTC跌幅时,对于大量的采矿社区成员来说,这是不合适的。图1显示了11月底网络哈希率的急剧下降,恰恰在减半的时候。这个事件本来可能是工作功能部分描述的恶意个人进行双重支出攻击的完美时刻[36]。
比特币具有许多硬编码限制,其中一些是原始设计的自然元素(例如块频率,最大货币供应量,确认数量),而其他似乎是人为约束。这不是极限,因为无法快速改变。他们如果有必要,造成主要的缺点。
不幸的是,很难预测常数可能需要改变的时间,并且替换它们可能会导致可怕的后果。硬编码极限变化导致灾难性后果的一个很好的例子是块大小限制设置为250kb1。这个限制足以容纳约10000个标准交易。在2013年初,这个限制几乎已经达到了,并且达成了增加限制的协议。这个变化是在钱包版本0.8中实现的,结束了24块链分裂和成功的双重花费攻击[9]。虽然该错误不在Bitcoin协议中,而是在数据库引擎中,如果没有人为引入的块大小限制,它可能很容易被简单的压力测试所捕获。常数也是集中点的形式。尽管比特币的P2P对等性质,绝大多数节点使用了一小人开发的官方参考客户端[10]。该组决定实施协议的更改,大多数人接受这些更改,而不管其“正确性”如何。一些决定引起了热烈的讨论,甚至呼吁抵制[11],这表明社区和开发商可能会对某些重要点不同意。因此,具有用户可配置和自调整变量的协议似乎是合乎逻辑的,作为避免这些问题的可能方法。
比特币的脚本系统是一个沉重而复杂的功能。它可能允许创建复杂的事务[12],但是由于安全性问题,其某些功能被禁用,有些甚至没有被使用[13]。Bitcoin最流行的交易的脚本(包括发件人和接收者的两个部分)看起来像这样:OP DUP OP HASH160 OP EQUALVERIFY OP CHECKSIG。该脚本长度为164字节,而其唯一目的是检查接收者是否具有验证其签名所需的秘钥。
现在我们已经涵盖了比特币技术的局限性,我们将集中介绍CryptoNote的功能。
在本节中,我们提出了一个完全匿名交易的方案,满足不合规范和不相关的条件。我们的解决方案的一个重要特征是它的自主性:发件人不需要与其他用户或受信任的第三方合作进行交易; 因此每个参与者独立地产生覆盖流量。
我们的方案依赖于称为组签名的加密原语。首先由 D. Chaum和E. van Heyst 提出[19],它允许用户代表组签署他的消息。用户签署消息后(为了验证目的)不是他自己的单个公共消息 1这是所谓的“软限制” - 创建新块的参考客户限制。硬度最大值可能的blockize是1 MB 关键,但他的组的所有用户的关键。验证者相信真正的签名者是该组的成员,但不能专门识别签名者。原始协议需要可靠的第三方(称为集团经理),他是唯一可以跟踪签名者的协议。 Rivest等人介绍的下一个版本称为环形签名。在[34]中,是一个没有组经理和匿名撤销的自治计划。该方案的各种修改稍后出现:可链接环签名[26,27,17]允许确定两个签名是否由同一组成员生成,可追溯环签名[24,23]通过提供跟踪签名者的可能性来限制过度匿名关于相同的元信息(或[24]的“标签”)的两条消息)。类似的加密结构也被称为特设组签名[16,38]。它强调任
意组合,而组/环签名方案则意味着一组固定成员。在大多数情况下,我们的解决方案是基于E. Fujisaki和K. Suzuki的“可溯源环签名”[24]。为了区分原始算法和我们的修改,我们将后者称为一次性环签名,强调用户在其私钥下只生成一个有效签名的能力。我们削弱了可追溯性,并保持了链接性,只能提供
一致性:公钥可能出现在许多外国验证集中,私钥可用于生成唯一的匿名签名。如果双重花费尝试,这两个签名将被链接在一起,但是为了我们的目的,揭示签名者是不必要的。
4.2.1 Elliptic curve parameters 作为我们的基本签名算法,我们选择使用由
D.J.开发和实现的快速方案EdDSA。伯恩斯坦等人[18]。像比特币的ECDSA一样,它是基于椭圆曲线离散对数问题,所以我们的方案将来也可以应用于比特币。常用参数有: q:素数; q = 2255 - 19; d:Fq的元素; d = -121665/121666; E:椭圆曲线方程; -x2 + y2 = 1 + dx2y2; tt:一个基点tt =(x,-4/5); l:基点的主要顺序; l = 2252 + 27742317777372353535851937790883648493; Hs:加密哈希函数{0,1} *→Fq; Hp:确定性散列函数E(Fq)→E(Fq)。 4.2.2 术语增强的隐私需要一个不应与比特币实体混淆的新术语。私钥ec-key:是一个标准的椭圆曲线私钥:a a a∈[1,l - 1]; 公共ec-key:是一个标准的椭圆曲线公钥:点A = att; 一次性关键词:是一对私人和公共电子钥匙;
私人用户密钥:是两个不同的私人密钥的一对(a,b); 跟踪密钥:是私人和公共密钥对(a,B)(其中B = btt和a f = b); 公共用户密钥:是从(a,b)派生的两个公共ec密钥的一对(A,B); 标准地址:是给出具有纠错的人性化字符串的公共用户密钥的表示; 截断地址:是给出具有错误校正的人性化字符串的公共用户密钥的后半部分(点B)的表示。交易结构与Bitcoin结构保持类似:每个用户都可以选择几个独立的收款(交易输出),并用相应的私钥签名并将其发送到不同的目的地。与比特币模型相反,用户拥有唯一的私有和公钥,在提出的模型中,发送者基于收件人的地址和一些随机数据生成一次性公开密钥。在这个意义上,同一收件人的传入交易被发送到一次性公开密钥(而不是直接到唯一地址),只有收件人可以恢复相应的私人部分来兑换他的资金(使用他的唯一私钥)。收件人可以使用戒指签名来支付资金,将其所有权和实际支出保持匿名。协议的细节将在下一小节中解释。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论