只要实验陈设过一个区块链节点,你就会知道这个进程有多疾苦:同步一个节点需要好几个小时、甚至数天时间。区块链如此之大,以至于大大都的家用计较设备的磁盘空间和带宽都达不到根基要求。功效就是中心化。即便像以太坊这样广受接待的区块链,其节点数量也就 10,000 个,大大都都托管在亚马逊 AWS 上,由少数几个实体所拥有。区块链并不像很多人觉得的那么去中心。
为什么要这么做呢?因为在传统计较学里,要知道一个计较是否正确的执行,独一步伐就是重做一次这个计较。假如小局限的计较,那就还好,但像重放一条区块链这种「慢运算」(slow calculation),环境就完全差异了。
假如有恶意节点变动了某个生意业务的余额,那么这个「证明」就会和功效差异,所有验证者城市拒绝这个状态。假如有恶意节点变动了 zk-SNARK 代码,功效也会被拒绝。(有一个「第三参数」、一个果真共享的字符串,会把这个「证明」绑到这个 zk-SNARK 代码。假如代码被修改,那么这个「证明」和共享的字符串将不匹配,于是验证者就会拒绝该功效。)
一旦新的状态和「证明」被分发到网络中,所有节点可以直接扬弃先前的状态,这么做不会有任何负面影响。新的节点只需要下载最新的状态和「证明」即可。这也就是Coda、Mir 和 Starling 这些项目可以实现小的、巨细牢靠的区块的法门。
递归性的组合
第二,下载完之后区块链要完成验证,因为恶意节点大概会向你发送不正确的数据。
这到底是如何做到的呢?
可提高效率和带宽的零郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。