达世币未来将如何应用Graphene协议
扫描二维码
随时随地手机看文章
为了确保区块链网络的平稳运行,新的区块必须具备向其它节点快速传播的能力。很多研究都就“如何在尽可能小的宽带条件下实现区块传播”这一课题展开了深入的探讨。简而言之,占用的宽带越小,则传播的速率就越快。正因为这样,Graphene协议才使用公认宽带占用最少的方案来完成区块传播。
区块传播的原理和宽带的阻塞点
当达世币用户进行交易时,交易会在不同的计算机或节点上传递,也就是说,许多节点都会参与到交易的发送进程当中。最终,几乎每个节点都会存有这一交易的信息,以便完成对交易的处理。在这个过程当中,所有未经处理的交易都会存储在内存当中并被统称为mempool。通常情况下,该交易会在两分半钟之内被写入在一个区块中,在这种情况下,该交易被视为有效并且已经由网络处理。
以上述知识为基础,如果一个节点需要传播一个区块上的所有交易,那么它将有如下选择:一是传递包含所有交易的整个区块,这也是最早的比特币所采用的方法;二是为区块中的所有交易及其次序传递标识符,以便接收到标识符的节点能够基于mempool中已有的交易来构建区块,而Compact Blocks、Xthin和Graphene正是借助这种方式来减少区块传播所需的带宽。
Graphene如何缓解对宽带占用过大的问题
基于Graphene协议还原新区块的节点往往会构建两个数据结构:首先,它会构造一个包含区块中的所有交易的布隆过滤器;其次,它构建包含区块中的所有交易的IBLT(即可逆的布隆查找表)。随后,这些不附带整个节点的数据结构都会被发送到各个节点上。接收这些数据结构的节点将通过布隆过滤器传递mempool中的所有交易,从而提供区块中所有交易的列表。然而,由于布隆过滤器可能存在一定的误报率,因此列表中的交易可能会多于实际数量,也可能会遗漏mempool中的交易。考虑到这一隐患,接收数据结构的节点将会从IBLT中解压缩待处理的交易,从而识别任何误报或遗漏的交易。最后,接收数据结构的节点还会在必要的情况下向其它节点查询遗漏的交易。
自此,Graphene协议的这两个数据结构足以恢复区块中的整个交易集合。那么,接下来的步骤就是将还原的交易回归到正确的顺序了。第一个版本的Graphene协议会通过布隆过滤器和IBLT来传递有关顺序的信息。虽然这些信息占用的宽带并不大,但还是会随着区块中的交易数量的增加而增加。举几个例子,当区块中的交易少于256笔时,每笔交易占用的宽带还不到1字节;当区块中的交易少于65,000笔时,每笔交易占用的宽带还不到2字节;而当区块中的交易少于1600万笔时,每笔交易占用的宽带还不到3字节。相比之下,如果达世币的区块可以处理1600万笔交易,那么这一平均交易量将达到维萨卡的24倍。
Bitcoin Unlimited进一步推进了Graphene协议的发展。去年11月,比特币现金的区块链出现了硬分叉,此次分叉的目的是为了更改共识准则并要求区块以既定顺序进行交易。这种顺序选择也被称作规范次序。在此更改之后,借助Graphene协议进行的区块传播可以不包含顺序信息。此举进一步强化了Graphene协议的优势——区块可以变得极大,而最佳的布隆过滤器和IBLT却可以维持极小的状态。
Graphene协议面临的挑战
虽然Graphene协议具备上述优势,但现实的情况却更加复杂。由马萨诸塞大学阿默斯特分校的研究人员开发的Graphene协议应用实例假定所有的内存中都存有所有的交易。而达世币在亚利桑那州立大学创建的实验室的研究人员则认为,mempools将不可避免地存在一些差异,也就是mempool分歧。此外,研究还表明,随着网络的发展,mempool分歧还会进一步恶化。这意味着由Umass研究人员计算的IBLT解码的概率在实践中将变得更小。换言之,Graphene协议的性能不会像预期的那样优秀。
在由达世币核心团队赞助的Nakul Chawla暑期实习期间,我们探讨了如何从容地应对IBLT解码失败的情况。实际上,任何节点都可以提供另一个布隆过滤器和IBLT。在获得布隆过滤器和IBLT之后,它们就可以组合在一起,从而实现完成解码。我们甚至可以借鉴同时向三个节点申请布隆过滤器和IBLT的BitcoinXT的经验。换句话说,我们可以尝试解码第一次完整响应,如果解码失败,我们就可以参考其它节点的补充响应,并将它与第一次完整响应的数据相结合。在这次实习期间,我们确定了导致无限循环的畸形IBLT,并提供了简单有效的应对措施,不仅如此,我们还研发出了使用Graphene协议的实用工具。我们已经对这个客户端进行了一些测试,但在广泛的网络推广之前,我们还需要做一些收尾工作。即使在上线前经历一些挫折也是虽败犹荣和有益的。不过,在我看来,前期的这些工作已经起到了抛砖引玉的作用,催生了更妙的创意。
达世币未来将如何应用Graphene协议?
我们需要明确的一点是,目前达世币还没有引入Graphene协议的具体计划,因为团队需要在Evolution上线后才能做出相关的规划。我们期待届时能出现更适宜达世币网络新属性的创意。Graphene协议确实具有许多优良的性能,但我在上文中并没有提到它的一个重大缺陷,也就是众所周知的毒块攻击。具体来说,恶意矿工可以开挖含有大量未广播到网络上的交易的区块,在这种情况下,Graphene协议将始终无法解码。这样的攻击虽然不会造成毁灭性的后果,但却会像持续打嗝一样带来不适或不便。
我们希望能在未来为大家带来有关毒块攻击的更多讲解,然后讲解如何通过亚利桑那州立大学区块链研究实验室的方法来降低这种攻击的风险并且同时维持快速的大型区块传播。