二 突破区块链不可能三角--在POW扩展性上的尝试( 二 )


如果最终共识总是验证失败的话,这个算法实际上就会退回成比特币POW 。然而,只要大部分时间最终共识正确,这个算法就可扩展了 。
上述pow共识选举节点BFT交易共识和-NG选举节点发起交易微区块的异同:
相同点:两者都通过用POW选取出块者而非区块(交易)本身的方式把共识和交易脱钩 。
不同点: ()中,通过BFT决定交易,认为交易已经是可信的 。而-NG中出块者发出来的交易微区块仍旧未经验证,于是可能是非法的 。于是,-NG中所有节点需要在同步交易之后验证交易的有效性,然后-NG根据博弈论设计了另一套激励(惩罚)模型,来保证微区块中交易的安全性 。
3 总结
两者都改变了比特币的安全模型——后者我们已经说过了微区块中的交易需要通过“有毒交易”来惩罚,而前者由于需要进行BFT,所以安全性假设需要改成“不超过1/3的算力被恶意节点掌握”,这点和比特币假设中不超过50%算力安全是不一样的 。而且,尽管从理论上来讲,并没改变最近100个出块的人,只不过是把轮流出块变成大家一起商量着出块了而已 。然而,这种改变仍旧会给人中心化的感觉,尤其当90%以上的算力都集中在大矿工的手中的时候——在比特币POW里,小矿工还能出块,但是如果在委员会之中,小矿工的意见就会淹没在90%的大矿工之中 。而且,委员会选举会陷入这样的两难——比如,如果委员会大小过小,那么了解概率的人都知道,这10个节点中超过3个是恶意的概率是不小的,因此安全性保证不了 。而如果这个委员会过大,那么BFT本身的复杂度和延时又会变得很大,使得算法失去了扩容的意义 。
但其实,以上的这些,是一些理论上需要注意的问题,但并不是缺陷 。从安全性来讲,虽然两者改变了安全性假设,但是并不是就不安全了,也并不是说两者就一定比比特币POW要不安全,毕竟比特币POW也有例如自私挖矿这种问题 。然而,无论是比特币特有的政治因素,还是整个比特币的社区意愿和对安全性的担忧,再者就是比特币硬分叉的难度,都不会允许比特币对算法进行如此之大的改变 。而再之后,POW在学术界中的热度也迅速降温(参见之前文章中BFT的发展历史),于是,仅有非常少的系统最终采用了这两种POW算法(有某个知名项目用了-NG) 。但两者的思路——先选取委员会再进行BFT和先选取区块发布者的这种思路,完完整整地被例如和Snow-white或这种POS算法继承了
4 Ghost贪婪最重可观测子树算法

二  突破区块链不可能三角--在POW扩展性上的尝试

文章插图
背景:
当你收到一个区块的时候,你开始对这个区块进行验证,确认区块的合法性之后,你开始在这上面挖矿 。然而,在收到第一个区块10秒钟之后,你收到了另一个区块,然后,在通过验证之后,你发现它也是合法的……
这个时候,你将面临一个两难选择——你可以选择继续在第一个区块上挖矿,因为你觉得既然你先收到了它,也许很多其他的节点也一样 。但是,你也知道有另一种可能性,就是也许你只是收到第二个区块的时间比较晚,而网络中其他的节点实际上最早收到的是第二个……但无论如何,你都只能选一个,选错的后果就是你挖的那个块最终没有出现在最长链上,而你的这些算力浪费了 。
而与此同时,网络中所有的节点都在做这样的选择,也同样面临着算力被浪费的风险,这就是分叉导致比特币安全性下降的原因 。
ghost解决方案:
在这种算法中,允许将看到的几个同高度的区块同时标记为前一个区块,然后其中一个为主,是“父块”,而其他几个为“叔块” 。父块中的交易和比特币POW的父块同样对待,而叔块则只记录区块头,剩下的交易部分验证之后就丢弃 。然后,最重要的部分是,将比特币POW的最长链共识改为最重链共识,即把分叉的深度也计入最长链的统计之中,于是,我们得到了这样的计算方法 。