Velocity协议解决区块传播问题 实现宽带效率最大化

2019-05-31 13:00:20
来源: 中华网

  【摘要】 Velocity协议解决区块传播问题 实现宽带效率最大化

本文是系列文章中的第五篇,它的主题是Velocity协议。此前的四篇文章的主题依次是布隆过滤器、可逆式布隆查找表、Graphene协议和毒块攻击。

Velocity协议是亚利桑那州立大学区块链实验室的研究成果。具体来说,这是Nakul Chawla为申请亚利桑那州立大学硕士学位所做的研究的成果。

让我们回顾一下此前的内容,致密区块、极瘦区块和Graphene协议通过传播区块中的交易列表来在整个网络中广播区块。由于它们能以八字节的标识符替代数百或数千字节的交易,因此它们节省了大量的带宽。我们之前还探讨了Graphene协议如何利用数据结构来提高效率,并讨论了这些协议为什么极易遭到毒块攻击(在这种情况下,矿工会广播一个许多交易都尚未向网络公布的区块)。

实现宽带效率的最大化而非降低对宽带的需求

Velocity协议以全新的方式解决了区块传播的问题。在设想中,它将与主节点网络配合良好。与其它协议不同的是,它不会减少传播区块所需的带宽量,而是以更高效的方式利用可用的带宽。我们都知道,带宽是不用就浪费了的资源类型。网速1GBPS的数据中心可以分分秒秒利用这样的资源,也可以只在高峰时段使用。无论如何,费用都是一样的。

让我们通过一些数字来解释Velocity协议。首先,我们假设将一个区块分解成我们称之为符号的小区块,一个区块可拆分为1000个符号。在获知新区块之前,一个节点可能需要咨询其它的25个节点,假设这25个节点中的14个具有新区块并开始向请求提供数据的节点发送消息,那么该节点可能会接收到995个符号加上6个修复符号。

这种情况下,该节点能以极其确定地构造完整的区块。在完整的区块恢复期间,速度不会受到毒块攻击的影响。Nakul Chawla进行的模拟表明,该协议非常有效。我们猜测这些成果的取得可以通过并行使用带宽来解释。

将最弱节点的影响最小化

Velocity协议最大限度地减少了连接不畅的节点带来的影响。具体来说,通过连接不畅的节点请求数据的区块有可能会出现传播延误。以Velocity协议为基础,节点连接到A、B、C、D、E这五个节点,其中D和E的连接较为薄弱;当接收符号A和B时,它们各自可以提供350个符号, C可以提供200个符号,而D和E则分别能提供50个符号。因此,即使连接较弱,D和E实际上也会加速传播。在没有分担带宽负担的情况下,薄弱连接可能会降低传播速度。

有些文章断言比特币网络在具备最弱节点的前提下也一样活跃。Bitcoin Unlimited的首席科学家Peter Rizun将会反驳这一说法——比特币网络上过时的Commodore 64之所以不会损害网络是因为它最终会被弃用。当Velocity协议集成到达世币网络或其它网络中,不仅薄弱节点对网络的影响可以忽略不计,而且网络还可以为这些节点提供更好的支持并支持更多的此类节点。这意味着网络将更具弹性、活力和灵活性。

超越维萨卡交易能力的已知突破口

简而言之,模拟测试的结果非常棒。不过,在理念投入生产并充分验证我们的模拟结果之前,我们还有很长的路要走。此外,我还要解释一些复杂的因素。

简而言之,我们认为加密数字货币网络在追求扩容时两个极限:一是网络不能失去达成共识的机制,二是保有对矿工的积极激励,避免他们决定退出网络、不再新增区块。我们的模拟表明,与Velocity协议融合后的达世币为满足网络共识机制则需500MB的区块扩容上限,为维持对矿工的经济激励则需300BM的区块扩容上限。为了平衡这两方面的需求,达世币的扩容目标为250MB,在这种情况下,它平均每秒的交易处理量与维萨卡持平。这真是太棒了。

与Gigablock Testnet研究的比较

与Velocity协议相关的研究是由Peter Rizun和Andrew Stone等人发起的Gigablock Testnet。这项研究表明比特币可以支持1GB的区块;而Velocity协议的研究成果表明达世币可以支持500MB的区块。不过,由于达世币的区块通常会出现四次,因此达世币的交易处理量约为比特币的两倍。

值得注意的是Gigablock Testnet使用了18个节点并且是仿真实验,而Velocity协议使用了24个节点并且是模拟实验,后者比前者更真实。在这两种情况下,假设的节点数量都很少。我推测,达世币实际的每秒交易处理量理应更高,因为区块的处理流程更快。Gigablock Testnet也许就是这一主张的首个证据。

模拟结果和实际情况之间存在差距。首先值得注意的是模拟并不表明客户端每秒的交易处理能力上限。这是一个已经得到了解答的问题。不过,模拟可能无法识别其它障碍。此外,我们的模拟环节中使用的节点数量很少,而引入更多节点通常会减慢传播速度。再者,我们还发现,在维持对矿工的最低程度的经济激励的同时,孤块率约为30%,这种情况并不适宜生产活动。

Graphene与Velocity的结合能否抵御毒块攻击?

值得探索的一个想法是Graphene与Velocity的结合。在区块刚诞生且没有被众多节点所知的情况下, Velocity协议的执行情况最差。因此,我想了解Graphene协议如何在Velocity协议解码失败的时候进行完善。利用Graphene协议将显著地降低毒块攻击的风险。

这种区块传播方式还会带来其它好处,例如更快捷的同步。它有望带来间隔为几个小时而非几天的比特币区块链同步。这种可能性令人振奋。(Darren Tapp)