背景
比特币系统在设计理念上之所以是去中心化的,是因为需要矿工(矿池)以及它本身全节点的分散化,然后才能通过这些手段实现了比特币系统的抗审查性( censorship resistance)。因为这个原因,比特币区块的大小也一直存在着争议,因为这关系到比特币的安全性问题。如果使用更大的区块,这就需要比特币网络承载更多的交易量,但这同时也会带来问题,每一个区块在传播交易所需要的时间将会更多。在这方面是有利于大矿工和矿池的,但是增加节点数据量对于用户来说,普通电脑可能根本无法运行全节点的数据。
这条路走不通,总会有其他办法的。所有在当时就有人提出可以通过增加比特币的网络交易效率,同时还能减少大区块有可能产生的危险。其中最后前途的创新,就是今天的主题:可逆式布鲁姆查找表(Invertible Bloom Lookup Table),简称IBLT。这一概念首先是由Bitcoin Core和Bitcoin XT开发者加文·安德烈森(Gavin Andresen)提出的,并且它也得到了应用,例如Blockstream的闪电网络(Lightning Network)开发者Paul “Rusty” Russell,他就在应用IBLT这一想法。
“如果我们能够完成这项工作,这意味着比特币网络对带宽的需求会更少,块数据也会更少,这将有利于网络的健康,” Russell说。
解决了什么问题
在一笔比特币的交易过程中,都需要经历这些步骤,就是先通过节点到节点来完成对等式网络的交易,然后通过个人节点的内存池进行存储。当一位矿工发现一个区块时,它包括(部分)区块中的交易,随后在同一对等网络中广播该区块。 当然,这意味着,区块中所有的交易,都有效地在网络上发送了两次:一次作为一笔交易,另一次则作为区块的一部分。
在上面这个交易流程中我们可以看出,就是在区块中出现了部分冗余信息,大多数节点已经知道该区块包含的部分内容了。所以如果可以对这一点进行优化的话,那就可以在一定程度上提高加快区块的广播速度。同时这也降低了中心化的压力,因为矿工们可以更快的将区块打包出来,同时网络的运行速度可以提高。
问题
如果想要通过可逆式布鲁姆查找表来解决提高交易速度,主要的问题那就是每个区块当中的交易集,因为一般情况下他们是不同的。原因就是这些交易集存储在所有个人节点的内存池中。这其中最大的差异,则是区块在被发现之前,最后通过网络的交易。此外,就是所有人的节点内存池,彼此之间也会多少有些不同。这就导致了如果没有看到整个区块,我们是很难知道在一个新的的区块中,以为矿工所进行的交易。
这就是可逆式布鲁姆查找表要解决的问题,可逆式布鲁姆查找表结合了多种数学技巧,可以让交易集达到一致状态。因此,它们可以允许两个不同的内存池进行对照以及协调。
pob
网友评论