1703867920
1703867921
正因为如此,任何使用新的挖矿解谜算法的另类币都会经历一个ASIC蜜月期,在这段时间内,用GPU和FGPA挖矿(或许CPU挖掘)的利润会比较高。对于永久阻止ASIC的浪潮不太可能,但是吸引个人参与挖矿(并且因此而获得新币)的做法,在新币还处于步步为营的阶段,还是有价值的。
1703867922
1703867923
对于抵抗ASIC的争论
1703867924
1703867925
我们已经可以看到,从长远来讲做到反ASIC是不太可能的。但是也有一些其他意见,觉得从已经被证明的SHA-256解谜算法转变为一个密码学角度偏弱的新解谜算法,会存在一定的风险。甚者,SHA-256的挖矿ASIC已经接近当今硬件效能的极限了。这意味着,ASIC所带来的指数型增长可能结束了,之后SHA-256挖矿也会因此给网络带来最大的稳定性。
1703867926
1703867927
最后,还有一种意见认为,在短期内反ASIC也不好。在第3章中,我们曾探讨过即使一个拥有全网51%算力的矿工,他如若尝试做出很多类型的攻击,也并不理性。因为这样一来会使币值汇率崩溃,使得矿工在挖矿设备上的巨额投资大幅减值,他通过挖掘赚来的比特币的价值也会大幅下降。
1703867928
1703867929
对于一个高度反ASIC的解谜算法,这个安全性的说辞可能会站不住脚。举例来说,一个攻击者可能会暂时租用巨大算力[比如像亚马逊(Amazon)的EC2服务],用它来攻击,然后不会承受任何财务上的损失,因为他们不需要在攻击后继续租用这个服务。相比较而言,对于一个“对ASIC友好”的解谜算法,攻击者就不得不控制一大堆只可以用作加密货币挖矿的ASIC。这样的一个攻击者其实应该是看好比特币未来的发展,做了一个最大限度的投资。按照这个逻辑进行推理的话,为了最大限度地保护安全,或许挖矿解谜算法应该被设计成不仅仅要让有效的挖矿ASIC被设计生产出来,更应该让那些ASIC除了用于加密货币的解谜运算之外,没有任何其他用途!
1703867930
1703867931
[1]也就是花费更多去提高内存的效能,并不能以相同比例去提高解谜的效能。——译者注
1703867932
1703867933
[2]Scrypt是由著名的FreeBSD黑客Colin Percival为他的备份服务Tarsnap开发的。Scrypt不仅计算所需时间长,而且占用内存也多,使得并行计算多个摘要异常困难,因此利用rainbow table进行暴力攻击更加困难。Scrypt没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。——译者注
1703867934
1703867935
[3]j是奇数时,减1为偶数,我们存的是有偶数的值的。——译者注
1703867936
1703867937
[4]有关分叉攻击的内容,可以参见本书第5章。——译者注
1703867938
1703867939
[5]Keccak算法为SHA-3的一种加密标准。——译者注。
1703867940
1703867941
1703867942
1703867943
1703867945
区块链技术驱动金融:数字货币与智能合约技术 8.3 有效工作量证明
1703867946
1703867947
在第5章,我们讨论了比特币挖矿的能量消耗(有些人会说是浪费)是个潜在问题,经济学家称之为负外部性。我们估计比特币挖矿要消耗几十万千瓦的电能。所以一个明显的问题是,这些用来解谜运算的工作量是否对社会有所贡献?这其实是一个资源再生循环的问题,也会增加社会对加密数字货币的政策支持。当然,这个解谜算法也必须满足几个基本的要求,才能够在一个共识协议里被使用。
1703867948
1703867949
以前的分布式计算项目
1703867950
1703867951
在比特币诞生好多年之前,就有利用空闲的电脑[或者叫“空闲周期”(spare cycle)]来做一些其他工作的想法。表8.1列出了最受欢迎的几个志愿者运算项目。所有这些项目都有一个特性,使得它们适合成为解谜算法的运算。具体来说,它们需要解决的都是一种“大海捞针”型的问题,可能的答案存在于一个非常大的空间(或者说范围),搜索空间的每一小部分都可以进行并行的快速验证。最有名的例子是在SETI@home网站上,志愿者们被分配一小段无线电信号,用闲置的个人电脑来分析这段信号可能存在的模式以寻找外星文明,同时分布式计算网站(distributed.net)的志愿者被分配一小段可能的私钥来进行验证。[1]
1703867952
1703867953
志愿者运算项目,成功地把一个很大的计算任务拆分成小份的任务,然后分配给每一个志愿者进行运算检查。事实上,这种模式在一个特别的叫作伯克利开放式网络计算平台(Berkeley Open Infrastructure for Network Computing,简称BOINC)上是很普遍的,这个平台被开发出来就是用来给不同的个体分发小份额计算工作的。
1703867954
1703867955
在这些应用里,志愿者们主要都是被解决某个问题的兴趣所吸引,即使这些项目通常也会设立一个排行榜来让人们炫耀他们所贡献的算力。排行榜也导致一些人在自己的工作量上作弊,有一些被报告的工作量其实并没有实际完成,这也使得有些项目再分配一些额外的工作去检查网络上的这种作弊行为。金钱,是加密数字货币分布式计算应用的动力,只要技术上是可能的,一定会有参与者尝试去作弊。
1703867956
1703867957
表8.1 热门的志愿者运算项目
1703867958
1703867959
1703867960
1703867961
1703867962
有效工作量证明的挑战
1703867963
1703867964
有了这些成功的项目,我们可以尝试简单直接地利用这些解决问题的成功方法。例如,在SETI@home的项目中,志愿者们被分配一小段无线电信号监听去寻找外星人,我们可以判断,外星人存在的概率,要比解谜算法找到“获胜”答案并且允许找到答案的矿工去创建一个区块的概率小很多。
1703867965
1703867966
但这个想法有几个问题。首先,并不是所找到的答案都有同样的概率成为“获胜”的答案。参与者可能会意识到有特定区域会有更高概率找到异类,那么参与者就会有倾向性,只针对一些能产生不同寻常结果的区域进行分析。对于一个中心化的项目来说,参与者被分配工作,所以所有的区域最终都会被分析(当然对最有希望的区域会予以优先考量)。对于挖矿来说,任何矿工可以随意尝试任何区块,所以矿工会先涌向最有希望的区块。如果更快的矿工知道他们可以先尝试最有希望的区块,这就意味着解谜算法可能不是一个过程无关的算法。比特币的解谜算法与之相比就有不同,比特币的解谜算法中用来产生一个有效区块的临时随机数都是完全平等的,所以所有矿工都会随意选择一个临时随机数去尝试。这个问题展示了我们之前都已经习以为常的比特币解谜算法的一个主要特征:一个机会均等的解谜区域。
1703867967
1703867968
其次,考虑到SETI@home项目中存在着固定的数据量需要被分析的问题,这些数据基于射电望远镜(radio telescope)的观察。随着挖矿算力的不断增长,有可能某一天就没有需要加工的数据了。比特币在这方面也有不同,比特币算法有无限的SHA-256解谜可以被创造出来,这就说明了另一个重要的特征需求:永不枯涸的解谜库。
1703867969
[
上一页 ]
[ :1.70386792e+09 ]
[
下一页 ]