Grin架构设计选择分析

来源:爱站网时间:2020-05-30编辑:网友分享
Grin是一种在Rust中实现的加密货币,它利用Mimblewimble交易和Cuckatoo算法来执行工作量证明(PoW)计算。Grin项目的主要设计目标是隐私,事务缩放和简化设计以促进Grin源代码的长期维护。在Grin项目的开发过程中,社区对开发人员的许多设计和实施决策提出了批评。本报告将研究其中的一些批评意见,并确定这些顾虑是否有真相,或者是否无根据或无效。将就如何减轻或解决这些问题提出一些建议。

  Grin是一种在Rust中实现的加密货币,它利用Mimblewimble交易和Cuckatoo算法来执行工作量证明(PoW)计算。Grin项目的主要设计目标是隐私,事务缩放和简化设计以促进Grin源代码的长期维护。

  在Grin项目的开发过程中,社区对开发人员的许多设计和实施决策提出了批评。本报告将研究其中的一些批评意见,并确定这些顾虑是否有真相,或者是否无根据或无效。将就如何减轻或解决这些问题提出一些建议。

  本报告还将研究Grin选择的架构方案、PoW算法、用于签名的加密曲线的选择以及密钥存储库的选择。

  选择静态发放方案的货币政策

  比特币的代币总量供应有限的。它利用了10分钟的区块时间,其中解决第一个区块的初始奖励是50 BTC。这种奖励每四年减少一半,直到2100万枚代币完全流通。在此过程中,交易费用和新挖的代币将支付给矿商并作为矿商维护区块链的激励。一旦2100万比特币全部发行,将只向矿商支付交易费。许多人担心,未来只向矿商支付交易费,不足以维持庞大的矿商网络。这将导致网络的集中化,因为只有大型挖矿场才能以盈利的方式执行挖矿任务。另一些人则认为,随着时间的推移,挖矿费用将增加,矿工的硬件成本将降低,这使得挖矿行为有利可图并维持比特币区块链。

  Grin决定采用另一种方法,即其代币数量不受固定供应量的限制。它将利用一个静态发放率,Grin每一分钟产生一个区块,每个区块有60个GRIN奖励。

  Grin选择静态发放率的主要动机是:

  1. 可以创造无上限代币的数量;

  2. 新发行的代币与流通中的代币总数相比所占的百分比将趋于零;

  3. 它将减轻孤块和代币丢失的影响;

  4. 它会鼓励代币交易而不是持有代币;

  选定的发行率将导致Grin在前10年内成为通胀率超过10%的高通胀货币,这比大多数竞争性加密货币或成功的法令系统要高。这与其他加密货币(如Monero)相比,前者在流通的前8年后通胀率将低于1%,而后者在开始发行时通胀率将下降0.87%。从长远来看,Monero将有更好的潜力被用作价值存储(SoV)。

  另一方面,Grin的固定发行率将限制其作为SoV的使用,因为它将面临恒定的价格压力。这可能会使Grin在通胀率居高不下的情况下,很难维持一个较高的初始值。较高的通货膨胀率可能会鼓励Grin用作交换媒介(MoE),因为通货膨胀率降至2%以下大约需要50年的时间。rin团队认为,通胀率并没有那么高,因为许多代币会丢失,变得无法使用。研究小组认为,这些丢失的代币每年可能高达总供应量的2%,应排除在通货膨胀率计算之外。交易代币丢失的总百分比很难估计。在低价值的代币高于高价值的代币中,往往高价值的代币,用户往往会更加小心存储。Grin团队认为,选择高通胀率将改善代币的分配,因为不鼓励持有代币。它还希望高通胀率能够产生自然的价格并限制大型代币持有者的价格操纵。

  传统法令系统的大多数经济学家都认为通缩是不好的,因为通缩会增加债务。通货膨胀有利于刺激一个国家的经济。随着通货膨胀,储蓄的购买力会随着时间而下降。这鼓励购买商品和服务,从而导致该货币被用作MoE而不是SoV。诸如学习贷款,车辆贷款和住房贷款等债务人也将从通货膨胀中受益,因为通货膨胀会对长期偿还债务产生侵蚀作用。

  另一方面,随着时间的流逝,传统法令系统的通货紧缩会增加购买力,从而鼓励储蓄并减少债务,导致该货币被用作SoV。不幸的是,这带来了负面影响,人们将停止购买商品和服务。比特币可以被认为是通货紧缩的,因为人们宁愿购买和持有比特币,因为随着时间的推移,每枚代币的价格可能会上升。通货紧缩也可能导致通缩螺旋上升,因为有债务的人会负债更多,而有钱的人将开始堆积他们的钱,因为在以后的阶段它可能会变得更多。传统法令系统中的通货紧缩通常仅发生在经济危机和衰退时期,并通过使用货币政策引入通货膨胀来管理。

  由于大多数通货膨胀的法定制度都得到政府的支持,因此它们能够控制通货膨胀的水平,以帮助减轻政府债务和财政预算赤字。这可能会导致恶性通货膨胀,其中货币贬值会以极快的速度发生,从而导致许多人失去储蓄和养老金。另一方面,加密货币提供透明的算法货币通胀,不受中央机构或政府控制,这就限制了它的滥用。

  在成为SoV和MoE之间找到良好的平衡是开发成功货币的重要问题。通货紧缩和通货膨胀之间必须达到平衡,以刺激储蓄和同时消费一种货币。在算法上维持通胀且不受单一机构控制的低通胀模型似乎是最安全的选择。然而只有时间才能证明Grin提出的高通胀模型是否会产生预期的效果。

  工作证明算法-从抗ASIC到友好ASIC

  最初Grin团队提出了两种抗应用专用集成电路(ASIC)的算法。布谷鸟循环(buckoocycles)和一种高内存要求的Equihash算法Equigrin。选择这些算法是为了鼓励挖矿去中心化。通过对PoW算法具有较高的内存要求,将其计算限制在中央处理器(CPU)和高范围图形处理器(GPU)中,可以获得ASIC抵抗。该计划是每六个月调整这些PoW算法的参数,以阻止隐形ASIC挖矿,转而使用布谷鸟周期作为主要PoW算法。

  最近Grin团队提出切换到一个新的双PoW系统,其中一个PoW算法是ASIC友好的,另一个PoW算法不是。另一个PoW算法不是。Grin现在将使用新的Cuckatoo循环算法,但其第二个PoW算法的细节仍不清楚。Cuckatoo PoW算法是Cuckoo的一种变体,旨在使ASIC更加友好。这是通过将普通位用于三进制计数器并需要大量的静态随机访问存储器(SRAM)来加快对随机节点位的存储延迟绑定访问来实现的。SRAM往往受GPU和CPU处理器的限制,但是在ASIC处理器上增加SRAM则更容易实现。

  ASIC矿工往往是专门的硬件,在计算和解决特定的PoW算法方面非常高效。在网络上鼓励ASIC矿工似乎不是一个坏主意,因为挖掘网络将具有更高的哈希率。这将使黑客攻击变得更加困难,与主要使用CPU和GPU的矿工相比,它将使用更少的电力。

  不幸的是,运行对ASIC友好的PoW算法的一个负面影响是,矿工网络将变得更加集中。普通消费者无法使用或不需要此类硬件。这导致ASIC矿工的使用主要保留给正在建立挖矿场的发烧友和大公司,如果网络的散列速率大部分局限于大型挖矿场,则区块链将更容易受到潜在的51%攻击,特别是当特定ASIC制造商建议或强制其硬件使用由单个实体控制的特定挖矿池时。

  使用主要用于游戏和大型工作站的通用和多用途硬件(例如CPU和GPU)可确保矿工网络分布更广泛,并且不受单个潜在的不良玩家的控制。这将使单个实体更难控制网络的哈希率或总计算能力的50%以上,从而限制了双花的可能性。

  选择具有ASIC抵抗性或ASIC友好性是一个重要决定,可能会影响区块链的安全性。Grin团队选择支持ASIC社区,并尝试在ASIC友好型和ASIC抵抗性PoW算法之间取得平衡,这具有很多潜在的陷阱。

  加密椭圆曲线的选择-secp256k1

  椭圆曲线密码学用于生成可以用于数字签名以及个人和交易授权的专用和公用密钥对。与其他公共密钥加密技术(例如RSA)相比,它更安全,并且需要较小的密钥以实现类似的安全性。

  Secp256k1是高效密码标准中定义的椭圆曲线,用于比特币、以太坊、EOS和Litecoin等多种加密货币的数字签名。Grin也使用了同样的椭圆曲线。一些安全专家建议不要使用secp256k1曲线,因为已经发现了一些问题,但不一定会加以利用。这些问题之一是复数乘法字段判别式不够高,无法保证安全。这可能会导致潜在的未来利用,因为具有低复数乘法判别力的曲线往往更容易断裂。

  启动一个具有潜在危害的曲线的项目似乎不是一个好主意,特别是当确实存在具有更好的安全属性和特性的其他曲线时。存在许多可用于提高安全性的替代曲线。例如Curve25519,它可以与改进的Ed25519公钥签名系统一起使用。Ed25519签名方案利用Edwards曲线数字签名算法(EdDSA),在不牺牲安全性的前提下,利用SHA-512和Curve25519构造了一个快速签名方案。

  还有许多其他替代方案,由Daniel J. Bernstein和Tanje Lange维护的SafeCurves等平台可以帮助调查和选择替代安全曲线。SafeCurves平台将使评估许多加密曲线的安全属性和潜在漏洞变得更加容易。

  密钥库的选择

  Grin最初将RocksDB用作内部键值存储,但是对此决定提出了一些批评。存在许多具有其他性能和安全性特征的替代方案,例如LevelDB,HyperLevelDB和闪电存储映射数据库(LMDB)。在这些之间选择以找到区块链应用程序的“最佳”键值存储库仍然是一个难题,因为许多在线资源都提供了相互矛盾的信息。

  基于一些在线基准测试的有争议的结果,似乎其中一些替代方案具有更好的性能,例如生成较小的数据库大小和执行更快的查询。例如RocksDB和LevelDB似乎是LMDB更好的替代品,因为与其他数据库库相比,它们产生最快的读取和删除速度以及一些最小的数据库。这并不完全正确,因为在测试过程中犯了一些错误。Howard Chu写了一篇题为“谎言,该死的谎言,统计和基准”的文章,揭露了其中的一些问题,并表明LMDB是最好的密钥价值存储库。Symas Corp执行的其他基准测试也支持这一说法,其中LMDB的性能优于所有测试过的密钥存储库。

  Grin后来用LMDB取代RocksDB,以保持Grin钱包的状态。这种转换似乎是一个好主意,因为LMDB似乎是与区块链相关的应用程序的最佳键值存储库。

  结论,意见和建议

  1. 选择正确的发行率,对于创造一个可持续的货币政策是一个重要的决定。

  2. 应注意确保在SoV和/或MoE之间找到适当的平衡。

  3. 权衡与抗ASIC相比,对ASIC友好的好处和潜在问题需要仔细评估。

  4. 安全曲线等工具可用于选择应用程序的安全椭圆曲线。甚至具有潜在安全漏洞的加密曲线也应该被忽略。

  5. 使用在线基准测试帮助选择项目库时应格外小心,因为结果可能会产生误导。

上一篇:提高 DApp 开发效率的10个工具

下一篇:数字化契约如何守护?密码学数字签名共性解析

相关阅读

查看更多 >