区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol

本文首发于 https://zhuanlan.zhihu.com/blockchain-top-paper

发现已有几篇中文博客描述这篇论文,但是本文跟它们的不同点在于,希望站在高层视角,结合图片来理解Bitcoin-NG所解决的问题和解决方法。

本文的主要内容来自论文Eyal I, Gencer AE, Sirer EG, Van Renesse R. Bitcoin-ng: A scalable blockchain protocol. In13th {USENIX} symposium on networked systems design and implementation ({NSDI} 16) 2016 (pp. 45-59).

Bitcoin-NG,NG表示next generation,下一代比特币

现存问题 & The high-level view:

比特币平均10分钟出一个快,每个块大小限制在1MB,使用隔离见证技术之后可以达到2MB一个块,每秒最大的交易速度是7. 所谓低吞吐,高延迟,严重限制比特币(区块链)在企业级的应用。如何提高比特币的吞吐量和减低系统延迟呢?为了方便描述,我们将成功解决工作量证明难题的矿工叫做leader,那么一个矿工成功算出一次WoP并成功打包一个区块,我们叫这个过程为一个新leader的选举。注意的是,比特币使用WoP的作用是选出具有打包资格的leader。我们发现,比特币的leader选举和区块的打包是一起完成的。每一次选举一个leader的同时才打包一次。我们思考,如果将这两个过程分开,让两者以不同的速率工作,比如10分钟一次leader选举,但每30秒打包一次,并且这期间所有的区块都由这个leader打包,这样是不是就可以提高系统的吞吐量了?这便是Bitcoin-NG的总体思路。

区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol

如果上图第一行表示的是bitcoin的合并在一起的leader选举和区块打包,那么第二行表示bitcoin-NG的分开进行的leader选举和区块打包,其中蓝色的一个横条表示一个交易。在bitcoin-NG中,leader选举的区块叫key block,里面不含交易数据;含交易数据的区块叫micro block。

选举leader的方式跟bitcoin一样:任何矿工成功解决了WoP难题之后,就是当前时期的leader,成为leader之后,它的公钥就会保存在一个新的key block中,在该时期中,它负责打包所有的区块。因为micro block不需要挖矿,所以生成它代价很小也很快。因此,恶意的leader可能一次生成不同的micro block,发给不同的节点,使得整个区块链形成叉链,从而达到重复花费的目的(double spending attacks)。为了解决这个问题,bitcoin-NG引入poison transaction和proof of fraud,如果其他leader发现之前有某一个leader有这样的作恶行为,就生成一个proof of fraud,举报,且有5%的举报奖励费。并让那个作恶的leader的挖矿奖励失效。
区块链论文: Bitcoin-NG: A Scalable Blockchain Protocol

Bitcoin-NG同样存在叉链问题,如上图所示,主要出现在新leader选举完成的时候,比如leader B可能由于网络延迟的原因看不到A3和A4这两个micro blocks。解决方法是让B等待一定的网络延迟时间段,再将key block B链接到前面的A所生成的micro blocks。

end,thx

Reference

Eyal I, Gencer AE, Sirer EG, Van Renesse R. Bitcoin-ng: A scalable blockchain protocol. In13th {USENIX} symposium on networked systems design and implementation ({NSDI} 16) 2016 (pp. 45-59).

https://link.zhihu.com/?target=https%3A//youtu.be/ViSX9fhsDGM%3Flist%3DPLyqSpQzTE6M8wy_JBTgplS_HGuOYU1qkm