论文翻译:A Dynamic Sharding Protocol Design for Consortium Blockchains

A Dynamic Sharding Protocol Design for Consortium Blockchains

摘要

区块链的交易效率一直是困扰研究人员的痛点。每秒事务处理量(TPS)呈现出较低的值,特别是在网络节点数量增加的情况下。为了提高区块链的TPS,众多文章从多个方面探索了解决方案,如:使用基于有向无环图(DAG)的新区块系统、调整区块结构、优化一致性算法或采用分片协议。在这些方案中,分片协议起着极其重要的作用,而现有的分片协议由于其静态分片而存在安全风险。本文提出了一种适用于联合体区块链的动态分片协议,利用随机值对网络进行随机划分。我们的协议旨在提高区块链系统的吞吐量,同时确保其安全性。OMNET++仿真结果表明,在一个由400个节点组成的被分成16个分片的大型联合体区块链网络的情况下,与没有分片的系统相比,该方案的性能最高可提升50倍

系统模型

在本节中,我们将详细描述我们的动态分片协议。在传统的分片协议中,比如前面提到的[5]中的基于域的静态协议,分片中的对等成员保持不变。如果某个分片中的大量对等点被恶意控制,则该分片会继续产生虚假分块,从而导致整个系统出现故障。在我们的解决方案中,我们使用不可预测的随机数来实现网络分片。这种随机分区可能会阻止单个分片中一半以上的恶意节点被持续控制。

image-20211203161812552

A. Framework Overview

在我们的协议中,区块链系统的运行时间被划分为多个纪元。区块链网络中的网络分片是随着时代的进步而随机变化的。在每个纪元中,节点按照特定的规则驻留在不同的分片中。图1显示了EI时代的网络碎片快照,以及当它切换到EI+1的下一个时代时的变化。

如图1所示,用户将事务发送到任意代理机构。代理机构基于交易发送方的信息计算分片编号,并提交给对应的分片进行验证和协商。

分片是指对区块链网络的节点进行划分而形成的子网络。我们的方案有两类分片:普通分片和BOSS分片,如图1所示,网络分片之间相互通信协作,完成事务的分块生成、同步和存储。在此过程中,还使用随机数来计算下一代网络分片的随机路由表。

B. 模型设计

我们的分片协议由三个连续的阶段组成:

1)事务分片和微块生成,2)划时代准备,3)全块生成和同步。

在区块链网络构建时,系统会执行一系列初始化操作。首先,每个节点可以生成一对非对称密钥:分别由PK和SK表示的公钥和私钥。当节点与其他节点通信时,它使用自己的PK来表示自己,同时也可以通过其IP地址和端口来唯一地标识它。作为许可的联合链,所有节点在系统中的成员之间共享其身份信息

1)阶段1:事务分片和微块生成

第一阶段所有分片的工作流程如图2所示,它还包括三个步骤,即事务分片、事务交互和微块生成

image-20211203162518688

事务分片。在图2的1中,一旦收到来自用户的签名事务,代理就会启动事务分片。代理已经从区块链网络获得了当前纪元号Ei和碎片路由表Rj。将接收到的事务发送给分片k,分片数k根据事务发送方地址Addrs=hash(sender.pk)和当前纪元号Ei计算如下。image-20211203162250673

其中sender.pk表示发送方的公钥,NS表示纪元Ei中的碎片总数。

如图2的2所示,代理通过在路由表中找到Txi的事务,将Txi的事务传递给碎片k的领导节点。在一个纪元中,同一用户的事务可能会获得公式1中的唯一分片编号,因此,这些事务将被传递到同一分片,以便该分片中的验证过程可以检测到重复支出的事务。

交易验证。当Txi的交易到达时,领导节点会将其广播到该分片中的其他节点,如图2中的3所示,分片中的所有节点都会收到它,然后将其合法交易的签注返回给领导节点

微块生成。领导节点将所有接收到的一批事务的签注打包成一个事务列表,如图2的4阶段所示。然后,该事务列表将被广播到该碎片中的所有成员节点。成员节点根据多人投票机制验证交易列表中每笔交易的所有背书。更具体地说,如果已经验证了超过一半的背书,则每个节点将其签名附加到从交易列表计算的摘要值上,并将其返回给领导节点。这个过程如图2的5所示。之后,领导节点将所有验证的事务打包到一个微块中,并附加它自己的签名和从每个成员节点反馈的所有签名,表明它们对该微块的认可。最后,微块将被反向传递到BOSS分片中的随机成员节点,以及系统中其他分片的领导节点,如图2的6所示。

2)第二阶段:划时代的准备

当BOSS分片中的成员在第一阶段结束时收到正常分片发送的微块时,系统进入生成下一个纪元的完整块签名列表和路由表的过程,如图3所示。第二阶段还包含三个子阶段,如下所示

image-20211203162504184

微块广播。任何BOSS成员在从正常碎片的领导节点接收到微块后,都会将这些微块广播给BOSS碎片中的其他成员,如图3的7所示。

准备完整的数据块和路由表。在图3的8中显示的这个子阶段中,BOSS分片中的所有节点将逐个验证收集到的微块。具体地说,他们检查附在每个微型区块上的交易清单中的签名。然后,合成所有有效的微块以生成完整块。更明确地说,所有微块的主体由它们自己的时间戳以升序组合在一起,从而形成完整的块主体。所得到的完整块的时间戳被设置为最新微块的时间戳值。

生成完整块后,BOSS分片中的所有节点开始分别计算完整块的哈希值。
由REK表示的该散列值被用作随机数,以便构建下一个历元的路由表。Rek的计算方法如下image-20211203162723877

其中F B.bHeader表示整个块的标题。

让ri表示节点的队列号,该队列号是根据节点的IP地址IPi、其公钥PKI和上面的散列值rek计算的随机值。计算公式如下:image-20211203162755660

所有节点根据其RI值以升序排列在队列中。显然,每个分片应该有d个N/nse节点,其中N是系统中的节点数,NS表示分片的总数。因此,队列中的前d个N/NSE节点被连续取出以形成第一个碎片。然后,随后的d个N/nse节点组成第二分片,依此类推,直到获得下一个历元Ei+1的所有NS分片。

接下来,我们可以根据rek的模除以NS,从所有NS分片中随机选择一个分片作为BOSS分片。具体地说,该模数值表示的是BOSS分片编号,其他分片均视为正常分片。

最后,确定每个正常分片中的领导节点。我们使用Ra来表示对碎片中每个节点的ri进行连续异或(异或)计算的结果。
每个节点的数值距离标识为|Ra−ri|。距离最小的节点将被确定为此分片中的引导者节点。
到目前为止,我们已经获得了每个分片的序列号,每个分片中所有成员节点的IP和端口信息,头节点和BOSS分片的标识。所有这些值都被打包到下一个历元Ei+1的路由表中。

生成完整的块签名列表。在图3的步骤9中,BOSS分片中的每个成员节点为生成的路由表的摘要以及整个块的摘要创建自己的签名,然后将它们广播给其他成员节点。在下一步10中,BOSS分片中的每个成员节点在发出自己的签名后,从所有其他节点收集上述两个签名。它将签名打包到整个块的摘要中以形成完整的块签名列表,并将签名附加到路由表末尾的路由表摘要中。最后,将签名列表和路由表返回给每个分片对应的Leader节点。

3)阶段3:在正常碎片中生成完整块

在第二阶段结束时,每个分片的领导节点已经收到完整的块签名列表和路由表。下面的第三个阶段如图4所示。image-20211203162936857

全块生成和历元切换。在普通分片中,领导节点会将收集到的所有微块、完整块签名列表和路由表广播到碎片中的其他成员节点,如图4的步骤11所示。

在步骤12中,一旦接收到上述数据,每个成员节点验证完整块签名列表中的签名。然后,它按顺序合成先前临时存储的微块。在检查合成的完整块是否正确之后,它将验证的完整块写入到节点的本地分类账中。

同时,每个节点使用位于路由表末尾的BOSS成员附加的签名来验证其合法性。为了验证成功,每个节点都会为新的路由表生成数据,并进入EI+1的新纪元。每个分片中的领导节点也会将路由表发送给关联的Agent,后者随后会对路由表进行类似的验证。验证成功后,代理通过开始执行新的事务分片切换到下一个纪元。

实验结果

我们针对不同节点数N=(100,200,300,400)和不同分片数S=(1,4,8,16)的组合方案对它们进行了修改。所有节点在每次模拟中都会经历10个历元。TPS结果是根据公式4计算的,如图5所示。

image-20211203163240012在我们的分片方案参与下,对于具有固定节点数量的区块链网络,例如N=100、N=200、N=300、N=400,如图5-(A)、(B)、(C)、(D)所示,分片数量越多,TPS越高。
一般来说,与未分片的系统相比,S=4分片方案的TPS提高了5倍左右,S=8分片的方案提高了10~20倍,S=16分片的方案提高了30倍以上,如图5所示,尤其是在N=400个节点的情况下,S=16分片方案的TPS提高可以达到无分片方案的50倍左右。
在图5中还可以看到,对于具有相同分片数量的方案,TPS随着节点数量的增加而减少。更具体地说,当节点数N增加100时,TPS减少约1/3。例如,对于图5中S=8个分片的方案-(A)、(B)、(C)、(D),TPS的值分别等于576、349、246、191,对应于N=100、200、300、400个节点。这是因为随着节点数量的增加,每个分片中的节点数量也会增加,这会增加分片内事务一致性和跨分片通信的时间消耗。因此,交易确认的延迟变得更加明显。

posted @ 2021-12-20 14:33  不拘  阅读(40)  评论(0)    收藏  举报