从匿名新宠GRIN到旧爱Verge, 透视多种算法的POW共识机制带来的启示

in #grin6 years ago

作者: Claire Wu
时间: 2019.1.18

2019年1月18日,BitcoinTalk论坛发表声明称会接受Grin支付。它是除交易所以外,第一个这样做的知名网站。Cobra 称,GRIN 是BitcoinTalk论坛以这种方式认可的首个“山寨币”,即使是比特币闪电网络支付都还没被接受。

GRIN以Bitcoin 2.0的姿态,从去年12月开始,就在各媒体发动了排山倒海的攻势。GRIN 无 ICO、无预挖矿,开发费用依靠社区捐赠。GRIN 的底层协议MinmbleWimble 更充满了传奇色彩,因为MinmbleWimble 是电影《哈利波特》系列电影中学生们预防蛇怪 Basilisk 攻击的结舌咒语。GRIN的创始人和中本聪一样神秘,全部都是匿名贡献者,来自世界各地,有人甚至使用的是《哈利波特》电影里面的人物名称。

Screenshot_20190118_234152.jpg

当然,GRIN 确实有其独特创新之处。随着比特币交易量的增加,即使它使用了UTXO, 但比特币全节点的存储空间已达到约200G。如果把比特币的UTXO 比喻为我们的钱包,即收入减支出等于我们钱包里的钱,比特币的存储已经非常小。以太坊使用的是传统数据库的模式,大于1TB,比比特币的内存大的多。

相比比特币和以太坊,GRIN采用的是零和验证,输出总和减去输入总是等于零,证明交易没有凭空创造新的资金,而且不会显示实际金额。因此,GRIN 节约了大量的存储空间,它的区块大小与交易量相适配,历史交易仅保留约100字节的交易核(transaction kernel)。

在MimbleWimble中,交易输出通过拥有相对安全的ECC私钥来保证其所有权。 然而,不像比特币的交易,是通过使用私钥直接签署来实现,GRIN 的参与交易双方共同创建一个公共多重签名密钥,用于验证交易。系统中没有地址,交易双方共享所谓的“致盲因子”(blinding factor),只有这两方知道他们正在参与这笔交易,但交易双方需要同时在线。(具体的匿名交易实现过程,可访问GitHub的官方说明:相关链接 )

Grin 的货币供应量不设上限,呈线性释放,通胀率逐年衰减至无限接近于零。有人认为它更接近现实中的货币政策,但也有人认为这种设计将导致该项目早期通货膨胀率奇高。但根据比特币的经验,早期对GRIN 的需求有可能很容易消化这个高通胀率。

GRIN 创造了兼容两种挖矿模式的算法系統 Cuckoo Cycle,其中包括 GPU 友好的 C29 算法和 ASIC 矿机友好的 C31。很多人认为,这是一种抗ASIC的挖矿算法,借此来鼓励去中心化的挖矿。

但仔细分析,算法中有一个难度调节值称为ar_scale. 较高的ar_scale值意味着采用C29解决方案变得更容易,而较小的值更适合采用C31。创世块的ar_scale 从29开始,然后在每个区块做出调整,目的是尝试将C29和C31奖励,在不同块的高度上达到设计方案所预期的平衡。比如,主网上线时的比例是90%-10%,1年后是 45%-55%,2年后是 0%-100%。

在早期,如果C29的总算力是C31的9倍,那么GRIN 期望ar_scale保持接近权重29。但是C29算力很容易超过C31算力的10倍,这会导致ar_scale的值下跌,从而使C31挖矿更具吸引力,鼓励C31 ASICs 参与挖矿并达到算力平衡。一旦 ar_scale 被推到远高于29,采用 C29 GPU挖矿的竞争力将会大幅度提高。GPU C29挖矿不会和 C31 ASICs 挖矿竞争,也无法取消任何规定的C29奖励。但2年后,将会是100% C31ASICs 挖矿,和比特币的现状一样,GPU 挖矿将完全失去竞争力。

Screenshot_20190118_234405.jpg

有人认为,在POW 共识机制中,ASIC挖矿是抵抗51%攻击的方法之一。“币看”的疯狂明仔近日发帖指出: “理论上验证了一件事情,有组织的攻击,对现有POW的网络,大概率不用超过51%的算力。”他的这个观点,让我联想到也是采用多种算法的Verge网络被攻击事件。

Verge 也是一种抗ASIC挖矿的匿名加密货币,它对比特币的算法进行了改良,引入了五种算法。其目的是为了确保小型的设备(例如 Macbook)可以参与网络运行,令全节点达到良好的分散性,提升抗攻击的能力。

在 Verge 的挖矿设计里面,要成功地挖掘XVG 区块,每个“下一个”区块必须是不同的算法。例如 scrypt,然后 x17,然后是 lyra ……

由于 Verge 网络允许矿工提交时间戳是2个小时内的区块,因此,恶意的矿工可以利用此功能,首先向网络提交一个时间戳刚好是一个小时前的区块。此时,Verge 网络会“认为”挖掘的最后一个区块是一个小时前的(它符合网络设置2小时的有效期 )。恶意矿工随后即时提交了有正确的时间戳,以相同算法生成的区块。如此,这个新的区块将被允许添加到主链上。

这时,网络会这样“思考”: 相隔一个小时才有另一个相同算法的区块生成,最近挖矿有可能太困难了,应该降低难度!同时,因为 Verge 网络的挖矿难度允许每30秒调整一次,因此,恶意矿工不断地用上述的方式重复操作,网络不断地被欺骗,难度不断被降低,令难度降幅超过 99.999999%。提交区块的难度较低意味着更多区块可以被提交,在这种情况下,大概每秒生成一个区块。

常理下,在硬件和资源管理方面,在一个网络上运行两种或多种共识算法必然比运行一种更加困难。具体反映在 Verge 网络,就是每种算法都有不同的难度参数,这个参数可以独立于其他四个参数进行调整。因为系统被蒙骗的原因,令攻击者可以只需要与使用 Scrypt 算法挖矿的矿工进行竞争。因此,要控制整个网络,攻击者所需要的算力可以从整个网络的51%以上降低到11% 或更少,因为他只需主宰其他 Scrypt 矿工。

作为加密货币的网红,采用了多项创新技术的GRIN确实是万千宠爱于一身。我们注意到,匿名新宠GRIN与匿名旧爱Verge, 都采用了多于一种算法,并会根据不同的难度参数进行挖矿算法切换。当然,GRIN 比Verge 简单得多。但相对比特币只采用一种算法的网络,它们相对地增加了复杂性,因为不同的算法模型具有不同的强度和弱点,这令系统的安全评估相对地变得困难 ,并可能会招致不可预知的黑客攻击,从而导致投资者和货币使用者的利益受损,这是投资者需要注意的一个问题。

Sort:  

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://8btc.com/thread-274963-1-1.html