Motivation
由于比特币平均10分钟出一个块,每个块大小限制在1MB,所以每秒只能记录3~4个交易,导致比特币系统存在着的吞吐量低下和高延迟的问题。本文的主要目的就是通过提高吞吐量和降低延迟来增强比特币的可扩展性。比特币的可扩展性涉及到两个参数:出块间隔与块大小。
- 首先考虑减小出块间隔,减小交易的平均确认时间,但同时降低了哈希计算难度,更易导致分叉。
- 增大块大小,可以增大系统的吞吐量,相同时间段处理更多的交易,但是区块增大了就会导致block在网络中的传输延迟增大,同样更容易发生分叉。
将成功解决POW难题的矿工叫做leader,每当一个矿工解决了POW难题,我们称之为新leader的选举。在比特币系统中,每选举出一个新leader的同时该leader打包好的交易就会上链。也就是说,leader选举与区块的打包是同时进行的。
Main ideas
Bitcoin-NG的主要思路就是将leader的选举与区块的打包过程分开,让两种进程以不同的速率工作。(eg. 假设还是10分钟进行一次leader的选举,但是区块的打包可以是1分钟一次,这样就提高了整个比特币系统的吞吐量。)
为了实现这一方案,Bitcoin-NG把时间分成了多个时代(epoch),每一个时代选举出一个leader,作者将Bitcoin-NG的区块设计成两个部分:key block 和 micro block.
- key block:用于进行leader的选举。和比特币系统一样,只有解决了POW难题的矿工才能成为新epoch选举出的leader。但是,key block 中不包含与交易有关的信息。
- micro block:用于记录交易信息。当一个节点挖到key block后就成为leader,它就可以生成多个微块来记录交易内容。micro block的生成不需要消耗任何算力,所以生成块的速度可以很快,通过生成大量的micro block可以提高整个区块链系统的吞吐量。
leader选举和打包交易的过程是并行进行的。进入一个新的epoch,当一个矿工计算出一个key block的pow难题后,将其广播至全网,成为leader。其他矿工验证其正确性后将其链上本地的chain,然后leader立即基于此key block按照事先确定的速度进行打包交易(假设是1min),每1min打包好一个micro block,直到下一个矿工挖出最新的key block成为leader`,这期间所有的micro block都由leader负责。
Eyal I, Gencer A E, Sirer E G, et al. {Bitcoin-NG}: A Scalable Blockchain Protocol[C]//13th USENIX symposium on networked systems design and implementation (NSDI 16). 2016: 45-59.
标签:Protocol,比特,Blockchain,Scalable,Bitcoin,micro,key,leader,block From: https://www.cnblogs.com/xixiyaovo/p/16779338.html