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

比特币为了保障其安全性,采用最长链规则,并固定区块大小1M和出块时间间隔10分钟,从而导致其低吞吐量(7Tps)和长时间区块确认间隔(6个区块一小时,每个区块平均需要10分钟),这一直以来饱受诟病,影响了比特币网络的大规模使用 。
解决方案:
一开始人们思考的是在比特币最长链的规则上,通过增加区块大小(1M->4M)和减小出块间隔来增大吞吐量,但是这却带来了三个很大的问题
带来的问题:
不断的分叉!分叉也就意味着安全性降低,容易引起双花攻击 。区块奖励受网络延迟影响:整个网络的区块奖励不单单与算力有关,网络延迟较低的节点更有可能获得出块奖励 。容易受到自私挖矿攻击:恶意节点出块后先不公布,直到发现比主链长时再公布
下图阐释了在一种区块生成间隔较小(区块生成率大于区块传播延迟)的网络中,区块链网络高度分叉,此时攻击者可以秘密创造6个区块(由红色虚线标记),从而超过主链的场景 。
区块链比特币可扩展性的瓶颈在于——任何一笔交易需要发给所有节点,就是POW的有效性是建立在所有人都在同一条最长链上挖矿的,于是,大致上说,只有上一个区块被挖出来并且同步到整个网络之后,共识算法,即挖矿,才能开始进行 。
比特币的共识算法必须需要一定时间来进行,而且必须在所有节点同步,即传输和验证完所有交易之后才能开始,即POW共识出块的时间,即区块间隔,需要远大于同步所需要的时间 。
然而,我们希望所有的带宽*时间都用来在网络中传输交易,而不希望先做一个时间t1的同步,确保所有人都对于最长链有共识之后再开始进行一段时间t2的POW计算达成共识 。而在t2的这段时间是无法做同步的,因为在没有共识的前提下,我们并不知道哪个区块是正确的,于是,这时候的带宽就被浪费了 。
【二突破区块链不可能三角--在POW扩展性上的尝试】理想状态是,我们能够一边做共识一边同步?那需要做的第一步就是,我们需要把比特币POW中的共识和交易(区块内容)脱钩 。
1和两篇论文做了一种简单地将用POW作为一种准入机制然后进行(类)PBFT的方法 。
算法的原理基本上都是保留比特币POW的一切特性,例如区块奖励,例如出块时间等等 。但是,POW不再决定交易,而只做委员会选举——例如,我们规定,最近的100个出块者是当前的委员会,然后由他们进行BFT决定交易,这里的交易是最终的也就是绝对的,不存在分叉的问题,然后把广播给全网 。然后我们可以认为这样决定的交易就是最终结果,于是解决了区块一小时6区块的时延和无法确认达成共识的两个问题,然后顺带的,因为POW的共识只决定委员会出块者,所以交易的输出不再受限于POW,而只受限于BFT的输出 。而无论是在做BFT还是做完BFT把交易广播到全网的时间里,都不影响POW继续进行下一轮共识 。

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

文章插图
2 -NG的选举合法出块者的微区块解决方案
-NG—首先还是照常用比特币POW,只不过,这个时候出来的区块里面不用包含所有交易,只是宣布——我是竞争胜出的合法出块者 。然后,在十分钟之内,这个出块者可以以更快的速度(更短的区块间隔)发“微区块”,其中只包含交易而不需要再做POW,因为他已经竞争得了这一次的出块权 。这样的话,我们达到了和 以及一样的效果——用POW选取出块者而不是区块,于是交易本身就和共识脱钩了 。
问题:如果微区块有非法交易怎么办
解决方案:当非法交易被发现的时候,后面的节点可以将这个交易注明无效,然后拿走提交非法交易的出块者之前获得的区块奖励