打字猴:1.703867999e+09
1703867999 在永久币系统中,每一个矿工M存储着任意F文件的子集FMF。为了实现这一点,当矿工产生一个公钥KM来接受资金时候,他们就对该公钥进行哈希运算以生成一个区块FM的虚拟随机数集,他们必须存储这个数集以实现挖矿的目的。这个子集就会变成某个固定数量的区块k1的一部分,我们必须在这里做一个假设,当矿工开始挖矿的时候,他们有办法获得这些区块——可能是从一个标准文件源地址下载下来(见图8.2)。
1703868000
1703868001
1703868002
1703868003
1703868004 图8.2 在永久币系统中选择一个文件的随机区块
1703868005
1703868006 注:在这个案例中,k1=6,k2=2。在实际应用中,这些参数会大很多。
1703868007
1703868008
1703868009 一旦矿工在本地存储了FM,这个解谜算法就非常类似于传统的SHA-256挖矿了。给定前一个区块的哈希值x时,旷工选择一个临时随机数n,将其进行哈希运算并产生一个虚拟随机数子集FM,nFM,这个子集包含了k2
1703868010
1703868011 校验一个解谜算法的结果需要以下几个步骤:
1703868012
1703868013 ● 校验FM,n是由矿工的公钥KM和临时随机数n共同产生的。
1703868014
1703868015 ● 通过检验其在梅克尔树节点到全局统一的树根路径,来检验FM,n中的每一个区块是正确的。
1703868016
1703868017 ● 校验H(FM,n‖n)的值比目标难度要小。
1703868018
1703868019 我们很容易看出,为什么解谜过程需要矿工在本地存储所有的FM,n。对于每一个临时随机数,矿工都需要计算FM,n中随机子集的哈希值,如果通过远程访问一个存储空间来获取文件,就会非常慢,几乎不可能实行。
1703868020
1703868021 不同于Scrypt算法的案例,如果k2足够大,并没有一种可行的类似于时间内存的权衡方案。如果矿工仅仅在本地存储了一半的FM,并且k2=20,那么在他们找到一个不需要从网络中取回任何文件区块的临时随机数之前,他们必须要尝试100万次,降低一定量的存储负担会以计算量指数型增长为代价。当然,由于k2梅克尔树路径要在所有的路径中被传输和校验,如果k2设得太大,也会使运算变得非常低效。
1703868022
1703868023 k1的设定也可以有所权衡。更小的k1意味着矿工需要更少的本地存储空间,因此这种挖矿就更加民主化(更多的人可以参与)。然而,这也意味着,大量的矿工即使有能力提供更大的存储空间,他们也没有动力去存储多于k1个F区块。
1703868024
1703868025 同样,这是一个对完整的永久币做了细微简化的方案,但是对我们理解整个设计的关键部分来说是足够的了。最大的应用挑战,当然是找到一个合适的大文件,这个文件要有一定的重要意义,同时也是公共的,需要保存多个备份。如果F文件本身随着时间的推移会发生变化,或者随着时间的变化而调整难度,这样会使方案变得更加复杂。
1703868026
1703868027 长期的挑战和经济意义
1703868028
1703868029 总结一下本节内容,有效工作量证明是一个非常自然的目标。考虑到一个好的共识机制所需要的其他解谜算法,实行起来也有相当大的挑战。即使如此,至少本文所举的两个案例——质数币和永久币——在技术上是可行的,虽然它们也都有一些技术方面的缺陷(主要都是需要更长的时间去验证解谜结果)。此外,对比在比特币挖矿中动辄数百万美元的投入以及大量电力的消耗,这两种加密数字货币的应用都对社会公益有一些贡献。
1703868030
1703868031 有效工作量证明是否应该是纯公益的,有一个有趣的经济学方面的争议。在经济学中,公益的意思是非排他性的,也就是说所有人都可以参与使用,并且是非竞争性的,对公益的其他用途不应该影响其本身的价值。一个经典的例子就是灯塔。
1703868032
1703868033 我们这里所讨论的案例,比如蛋白质折叠(protein folding)[2],就不是一个纯公益的项目,因为有一些公司(比如大的制药公司)可以从中获利。实质上,这些机构挖矿的成本会相对变低,因为它们可以获取其他人无法获得的额外利益。
1703868034
1703868035 [1]大约有500万人参加这个计划,包括译者本人。——译者注
1703868036
1703868037 [2]蛋白质折叠问题被列为“21世纪的生物物理学”的重要课题,它是分子生物学中心法则尚未解决的一个重大生物学问题。——译者注
1703868038
1703868039
1703868040
1703868041
1703868042 区块链技术驱动金融:数字货币与智能合约技术 [:1703863958]
1703868043 区块链技术驱动金融:数字货币与智能合约技术 8.4 不能外包的解谜算法
1703868044
1703868045 我们现在再看一下对于替代挖矿解谜的另一个设计重点:防止矿池的产生。我们在先前的第5章里谈到,大部分的比特币矿工都会加入一个矿池,而不是独立挖矿。这就造成了少量矿池拥有绝大部分挖矿算力的现象。由于每个矿池都有一个中心化的管理方,有些人担心这其实违反了比特币去中心化的核心设计原则,会危害到比特币的安全性。
1703868046
1703868047 拥有大部分算力的矿池显然是一个问题,任何一个中心化管理的矿池可能会实施一套自定义的挖矿策略,然后用它来攻击网络。这种矿池也是黑客们攻击的目标,因为通过攻击矿池可以迅速地控制大量的挖矿算力。矿池管理员也可能会删改交易或是强迫收取更高的交易费。矿池中拥有大多数矿工,意味着大部分矿工都没有运行一个完全有效节点。
1703868048
[ 上一页 ]  [ :1.703867999e+09 ]  [ 下一页 ]