一种基于聚类的可扩展的分片共识算法

文档序号:34102472发布日期:2023-05-10 18:01阅读:73来源:国知局
一种基于聚类的可扩展的分片共识算法

本发明具体涉及一种基于聚类的可扩展的分片共识算法。


背景技术:

1、区块链技术于2008年诞生。作为区块链的核心技术,共识算法对区块链起着至关重要的作用。目前,区块链根据开放程度的高低可以分为三种类型,分别为公共区块链、联盟链以及私有链。因此,共识算法也相应的分为了公共区块链共识算法,联盟链共识算法和私有链共识算法。

2、公共区块链共识算法通常是基于证明的,例如proof-of-work(pow)和proof-of-stake(pos)。作为区块链技术中第一个共识算法,pow要求每个节点通过计算一个数学难题来竞争记账的权利,但是由于算力集中导致的不公平性以及计算所耗费的巨大电力资源而没有被广泛使用。pos算法是根据所持权益量来选择记账节点的,虽然pos解决了pow算法耗费电力资源的问题但是会削弱去中心化。虽然基于证明的共识机制有非常好的节点可伸缩性但是会带来吞吐量低和时延长等问题。

3、随着区块链技术的快速发展,目前区块链已经由公共区块链时代发展到了联盟链时代,联盟链已经成为了许多领域和应用的首选的区块链。同时,联盟链中采用更多的是较轻的共识算法,如paxos,raft以及经典的拜占庭容错算法pbft等,其中paxos,raft被广泛使用于没有拜占庭节点的系统中。然而,由于网络攻击的多变性与不确定性,网络中可能存在拜占庭节点,此时pbft算法相较于paxos和raft共识算法则优势更为突出。同时,pbft不需要使用大量的计算,因此它已被广泛应用于联盟链中。

4、诸多学者开展了广泛的研究来对pbft算法进行改进和完善,例如有学者提出的epbft协议使用可验证随机函数(vrf)实现了共识节点的选择,使得该协议适用于动态网络。有学者提出的dgbft共识协议将通过节点分组大大降低通信复杂度。有学者提出的cdbft共识协议通过投票奖惩方案及其相应的信用评估方案激发了节点的积极性。上述协议虽然从不同的侧重点来改进pbft算法,但是随着网络规模的增大时,存在通信复杂度高或者所使用的信用模型过于复杂等问题。因此设计一种能适用于大规模联盟链的共识算法至关重要。


技术实现思路

1、本发明的目的在于提供一种基于聚类的可扩展的分片共识算法(kbft),针对联盟链主要使用的经典实用拜占庭容错算法(pbft)在节点数量增多时,会导致通信阻塞以及吞吐量低等问题,提高了系统的运行效率的同时也使得系统的安全性和稳健性得到了保证。

2、为了实现上述目的,所采用的技术方案为:

3、一种基于聚类的可扩展的分片共识算法,包括以下步骤:

4、(1)使用k-prototype聚类算法对网络中的节点,根据混合属性进行分片处理;

5、(2)将各个所述的分片处理相应交易进行共识流程、合并与分发流程;

6、(3)动态重新分片:在网络所设定的时间间隔结束后,k-prototype聚类算法对网络中的所有节点进行重新分片;

7、(4)选取分片代理节点与全局代理节点。

8、进一步的,所述的步骤(1)中,根据节点的数值属性和分类属性进行分类。

9、再进一步的,所述的步骤(1)中,分类的步骤为:

10、a:随机选取g个节点作为初始原型;

11、b:根据相异度将节点对象分配到最近的簇,分配后即更新簇的原型;

12、c:再重新确定类别的原型;

13、d:重复所述的步骤b-c,直到没有节点样本改变类别,返回最后的分片结果。

14、再进一步的,所述的步骤(1)中,节点数据集x={x1,x2,x3,...,xn},n为数据集x中节点对象的个数,并且节点数据集中每个节点数据均有m个属性,即xi={xi1,xi2,xi3,...,xip,xi(p+1),xi(p+2),xim},其中数值属性在前共p个,分类属性在后共m-p个;

15、所述的相异度公式如下所示:

16、

17、式中,所述的参数γ是分类属性权重。

18、进一步的,所述的步骤(2)中,共识流程、合并与分发流程的具体操作步骤为:

19、①请求阶段:客户端将请求消息发送给所处分片的代理节点,针对请求的共识将在分片内进行;

20、②预准备阶段:分片内的代理节点构建一个新的区块,并将所述的区块广播发送给分片内其余的共识节点;

21、③准备阶段1:节点对区块进行验证,如果验证有效则使用bls算法进行签名,且将所述的签名反馈给代理节点;

22、④准备阶段2:代理节点等待并收集来自其他共识节点的有效签名,当至少收到2f+1个相同的签名消息后,将所有单个的签名聚合为bls多重签名,再将所述的bls多重签名广播发送给所有的节点,至此,准备阶段结束;

23、⑤提交阶段1:节点将验证所收到的所述的多重签名中是否至少含有2f+1个签名者,验证预准备阶段中所述的代理节点广播的区块中的交易,对所述的准备阶段2中收到消息进行签名,并将其发送给代理节点;

24、⑥提交阶段2:所述的代理节点等待并收集至少2f+1个有效签名,将这些签名聚合在一起形成bls聚合签名,并提交带有所述的bls聚合签名的新的区块,然后将新的区块广播给所有节点验证提交,至此,提交阶段结束;

25、⑦回复阶段:当节点提交结束后,将向客户端节点发送一个回复消息,当客户端接收至少f+1个由不同的节点发来的相同的确认消息时,表明当前请求已经达到了最终的共识;

26、⑧反馈阶段:当所述的客户端收到分片内的回复消息后,将所有的回复消息反馈给监督节点,节点根据客户端的反馈结果对所述的节点的行为进行评分;

27、⑨合并与分发阶段:各个分片的代理节点将所形成的本地区块广播发送到全局的代理节点,全局的代理节点将接收到的所有的区块进行合并成全局区块,并将其分发给每一个分片代理节点;收到全局区块的代理节点会将其发送给所处分片内的节点。

28、进一步的,所述的步骤(3)中,在进行动态分片的同时,网络中要有新节点的加入与节点的退出。

29、进一步的,所述的步骤(4)中,网络初始化时,随机选择或者根据实际应用指定g个节点作为各个分片的代理节点;

30、在网络所设定的时间间隔结束后,通过节点信誉机制选取分片代理节点与全局代理节点。

31、与现有技术相比,本发明的有益之处在于:

32、本文提出了kbft算法,这是一种能够用于大规模联盟链的新共识协议。首次将共识算法与k-prototype聚类算法相结合,在显著降低通信复杂度与提高系统吞吐量的同时,为了保证系统的安全性与可靠性设置了高效快捷信誉机制与监督机制。具体如下:

33、(1)本发明首次将k-prototype聚类算法运用于联盟链中节点分片。在系统所设定的周期结束后,将利用k-prototype聚类算法对网络中的节点进行重新分片以防止节点联合作恶等行为从而保证了系统安全性。在重新分片的同时新的节点可以选择加入网络,新节点的加入不仅可以扩大网络的规模,并且可以降低系统中拜占庭节点的比例。

34、(2)本发明利用将bls聚合签名与拜占庭容错算法结合的共识算法对各个分片内的交易进行独立并行的共识,从而使得网络中的通信复杂度显著降低以及吞吐量随分片的个数呈线性增加。

35、(3)本发明为算法设置了简捷高效的信用机制与监督机制用于对节点行为的评分与监督,从而进一步保证了系统的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1