技术新讯 > 电子通信装置的制造及其应用技术 > 面向企业级的复合区块链双层共识方法  >  正文

面向企业级的复合区块链双层共识方法

  • 国知局
  • 2024-08-02 14:52:33

本发明属于区块链共识领域,特别涉及复合区块链共识机制设计,具体涉及一种面向企业级的复合区块链双层共识方法设计。

背景技术:

1、区块链是一种可以实现数据一致存储的分布式账本技术。数据按区块的形式进行存储,区块之间通过记录前一区块的哈希值,链接成一个可验证、不可篡改的链。由于区块链中的数据分布在多个分布式节点上,即使不能完全信任其中的某个节点,仍可信任区块链网络中记录的数据。因此,在区块链中,如何确保每一个节点上所存储的区块数据及其链接关系的一致性,成为区块链研究的重点,共识机制则是用于解决这一问题的有效方案。

2、从开放程度来讲,区块链可以被分为公有链、私有链和联盟链。在公有链中,节点非常自由,可以自由地加入和离开节点间的共识过程。因此,公有链在提高安全性的同时,牺牲共识效率和共识吞吐量,保证公有链正常运行。在联盟链中,节点的加入或退出节点间共识都需获得各个组织或联盟的授权,联盟链将一些同级的参与节点都作为验证者,多方实体一起对区块进行验证。与公有链相比,联盟链的去中心化程度较低,其共识机制还需进一步提高共识的吞吐量,降低系统资源消耗。在私有链中,节点参与共识同样需要某个机构来授权。与联盟链不同的是,这个机构仅仅是一个单一的实体,而不是多个实体。私有链通过一个相对封闭的系统,只允许一个实体来指定主节点,进而由主节点产生区块。因此,本发明将跨链思想融入到企业级复合区块链中,提出了主子链架构,旨在实现多种公有链和联盟链之间的互联互通。

3、在企业级复合区块链中,主链是一种基于中继链技术的许可公有链。其具有公有链的开放性,允许任何节点加入,并拥有灵活、可扩展的特性。同时,又具备联盟链易于监管、高性能和安全可控的特点。主链支持同构和异构子链接入,注册子链后,它们可通过中继链实现跨链访问,这一设计旨在实现去中心化的同时保障数据安全性和可靠性。本发明重点研究主链的共识方法,由于成员数量较少和共识机制经过优化等原因,主链能够更快、更高效地达成共识。

4、现存的面向企业级的复合区块链双层共识方法主要有以下几个方面的不足:现有基于公有链的po-x共识和基于联盟链的x-bft共识无法直接应用于主链;一些方法在dpos投票过程中通常都是选择持有大量货币的节点,容易产生冷漠现象,一些方法也存在实用拜占庭容错(practical byzantine fault tolerance,pbft)随机选择主节点、三阶段共识通信复杂度高和视图变更开销大等问题,尤其是随着节点数目的增多,pbft的性能会逐步下降。因此,设计一种高效的面向企业级的复合区块链双层共识方法,对基于区块链的营商环境企业大数据高效存储和共识具有重要意义。

技术实现思路

1、为了解决现有企业级复合区块链双层共识机制的不足,本发明提供一种面向企业级的复合区块链双层共识方法,能够有效地进行企业实体及其活动的数据上链存储及其共识。

2、本发明是通过以下技术方案实现的:

3、面向企业级的复合区块链双层共识方法,其特征在于,包括以下步骤:

4、步骤一:构建企业级复合区块链:企业级复合区块链采用主链和子链相结合的区块链架构,子链是基于主链创建的同构子链,或由现有异构区块链根据主链接口规范进行开发后接入主链;

5、主链负责管理整个链群以及实现价值锚定,同时支持节点自由接入;对于开放的数据,所有节点都具有数据同步和数据查询的权限,但对于未开放的数据,节点需要申请访问权限;

6、子链侧重特定的个性化业务活动,独立执行共识,通过自我治理的方式对不同的业务场景进行独立设计,使得数据安全隔离;子链的接入方式分为两种:一种是基于主链创建同构子链,另一种是现有异构区块链根据主链接口规范进行开发,然后接入主链,以上两种子链接入主链都需要进行注册申请,并与主链进行授权对接;同时,子链能够根据自身的需求,开发和部署个性化应用或智能合约;

7、企业级复合区块链架构中存在超级节点、骨干节点和业务节点;超级节点负责执行主链共识、数据托管、资质审核及链群管理,所有在链群中的节点都有权利申请成为超级节点候选人,并拥有超级节点的被选择权;骨干节点负责主链锚定、子链共识、子链监管及智能合约部署,子链通过骨干节点与主链建立连接,负责主链与子链之间的跨链交互;业务节点与骨干节点协同工作,一起执行共识,并参与具体的业务活动,业务节点的权限由骨干节点进行管理和控制。

8、步骤二:动态验证池选取:由角色划分、准入和退出机制、选取机制组成;

9、角色划分见表1,节点按功能被分为普通节点和共识节点两类,

10、普通节点负责同步数据、广播消息及对外提供区块链服务;共识节点负责验证、打包和确认交易;动态验证池选取引入了选取机制;普通节点需参与节点竞选,由原有的共识节点集合进行审核,审核通过的候选节点进入验证池,经用户投票,区块链系统根据预设的共识节点数量,选择投票数靠前的候选节点成为新的共识节点;

11、表1角色划分表

12、

13、为增加共识节点作恶成本,本发明采用质押金保证机制进行节点的选取;

14、2.1)普通节点申请成为候选节点;

15、2.2)共识节点审查候选节点的服务能力、资质条件及质押金缴纳情况;服务能力包括节点的服务器性能、网络带宽、计算能力;资质条件包括节点所属企业的信用记录,通过调用企业信用信息公示系统相关接口来获取数据;并通过调用账户余额相关接口验证候选节点的质押金是否已缴纳;

16、2.3)审查完成后,共识节点将根据审查结果进行投票,如果有超过2/3的节点同意,则审核通过,投票过程利用智能合约进行实施,一旦满足条件,智能合约将自动执行相应的操作;

17、当有候选节点申请退出时,其他候选节点会对该节点近期是否存在作恶行为进行审查,若存在作恶行为,其他候选节点提出废止该节点的申请;共识节点对废止申请进行审核并投票,如果超过2/3的共识节点同意废止该节点,就通过废止申请,并且扣除该候选节点的全部质押金,若在一定时间内废止申请未通过,或者没有人提出针对该节点的废止申请,则系统将自动返还其质押金。

18、步骤三:改进dpos投票选择共识节点:对投票意愿设置等级,并建立节点网络信息表,按序选出通信量最少且得分排名最高的共识节点;

19、在企业级复合区块链中,对dpos进行改进,提出改进委托权益证明edpos投票方法,通过对投票意愿设置等级来满足节点的投票倾向和公平性需求,方法使用的符号说明见表2;

20、表2edpos符号说明表

21、

22、

23、其中,投票权重si={i|i=1,2,3,4,5},权重依次递增为s1≤s2≤s3≤s4≤s5,投票意愿分别对应[0~19%]、[20%~39%]、[40%~59%]、[60%~79%]、[80%~100%],edpos与dpos具有相同的最大投票数,每个节点最多投给其他30个节点,通过实验仿真模拟投票过程,并对投票信息权重的占比进行统计,如果曲线出现近似正态分布的趋势,则权重s1、s2与权重s5投票数基本相同,且都低于投票权重s3、s4的投票数;采用3个集合γ1、γ2、γ3统计票数,分别代表投票意向(0~39%]、[40%~79%]、[80%~100%],集合中分别对应s1和s2的投票评分、s3和s4的投票评分以及s5的投票评分,节点最终分值计算方式如下;

24、

25、其中,m表示从其他节点收到的投票数,φ表示节点对另一个节点的评分值,φi为第i个节点的评分值,和分别表示所有投票分值的中位数和平均值;

26、不失一般性,假设当前有11个节点参与投票,对于11个候选节点出现的得票权可能性p计算方式如下:

27、

28、其中,mi表示票权为i的票数总和;

29、节点投票出现的所有可能结果以概率的形式表示;

30、

31、通过计算,将节点得分按降序排列:

32、

33、区块链网络中的交互主要依赖节点间的通信,因此通信速度直接或间接地影响着区块链的整体性能,定义节点发生冲突块的概率pr(f=0);

34、

35、其中,t表示区块最大传播时延,g(t)表示多个区块传播给节点的概率积累值,p表示难度,区块传播时间定义如下:

36、

37、其中,最终得出pr(f≥1)≈p×ns×d,表明出块概率与区块传播时间存在正相关关系;

38、选择通信成本最低的节点作为节点间的连接,提出建立节点网络信息表,在表中存储每个节点与其他节点之间的通信代价连接信息;为防止在节点投票选择过程中发生网络风暴,导致无法选出共识节点,将每个节点与其他节点连接数设为一个固定值k,k≥n-1,其中n是选取的共识节点总数;通过候选节点相互打分,计算出每个候选节点的最终分值,并对候选节点进行排序,选取出当前得分最高的候选节点;根据网络信息表,在所有节点中选择通信量最少且得分排名最高的节点a,然后从a的网络信息表中选出除a外得分排名最高的节点b,接着从b的网络信息表中选出除b外得分排名最高的节点c,依此类推,直至选定n个共识节点,最后将选择出的新的共识节点用于后续的打包区块流程。

39、步骤四:基于vrf的随机选主:通过vrf在潜在提案者共识节点中选择候选主节点,并通过ts机制对候选主节点进行投票,以确定主节点;

40、出将可验证随机函数vrf和门限签ts与拜占庭容错bft共识相结合,融合vrf和ts的bft共识分为两部分:基于vrf的随机选主和基于ts的bft共识;双层共识方法适用于企业信息的存储和管理,所有参与的节点都是各个企业和监督部门,在以企业自身信誉为背景的前提下,由监督方通过步骤三选择出的共识节点,指定某些企业共识节点作为潜在提案者pp,pp负责对交易信息进行收集;通过vrf在pp中随机选择一些节点作为候选主节点cl,pp通过ts依据一定的规则对cl进行投票,从cl中选出一个节点作为主节点primary,primary负责将收集到的交易数据打包成区块,并发起新一轮的提案,提案发出后自动退化为备份节点backup。接着,backup按照ts机制对提案进行投票,当任一backup收集到的投票数达到门限值时,根据投票信息合成门限签名,并将该门限签名信息广播出去,共识达成;

41、对于一个输入seed和私钥sk,vrf会生成一组随机数r和r的证明proof,验证者通过公钥sk、r、seed和proof验证出r是否由pk的持有人根据seed所生成的;

42、5.1)生成公私钥对(pk,sk)

43、用户利用非对称加密算法生成一组(pk,sk),其中pk为公钥,sk为私钥;

44、5.2)生成r和r的proof;

45、输入seed和sk,通过vrf生成一个r和一个可以实现对r进行零知识证明的proof;

46、seed+sk→r+proof

47、5.3)判断r和proof是否是一起生成的,如果是则为true,否则为false;

48、vrfverify(r,proof)=true

49、5.4)验证该proof是否是由pk的持有人根据seed所生成的,如果是则为true,否则为false;

50、pubverify(proof,seed,pk)=true

51、主节点选择过程基于vrf,当一个pp节点在接收到当前主节点发送的pre_prepare消息后,根据其中的信息计算出seednext,以确定自身是否成为下一轮的主节点候选人;

52、如果当前主节点的提案成功达成最终共识,或者在超过时间限制后未能达成共识,将进行下一轮的主节点选择和视图转换,v=(v+1)%n为下一提案的视图,seednext=hash(hash(block))为下一个提案的种子;pp根据vrf进行如下计算,以确定自身是否成为下一轮的主节点候选人:通过vrf((seednext,num),sk)→r+proof生成r和proof,其中(seednext,num)为vrf的种子,num为初始值为0的计数器,sk是节点自身的私钥,然后对r和潜在提案者数npp求余;

53、

54、如果产生的r与npp求余得到的值满足上述公式,则该节点为cl,如果在一轮选择中未找到符合条件的cl,那么++num,然后根据vrf计算出新的r,并继续执行后续的操作,直到至少有一个节点pp确认为cl为止;

55、视图转换协议旨在避免backup无限期地等待接收执行消息,确保共识机制活性,并能主动更换主节点,视图转换将在以下三种情况下被触发:

56、系统中primary为拜占庭节点发布虚假信息;

57、系统中primary崩溃无法进行正常提案;

58、当backup等待接收执行消息超过一定时限。

59、由于每轮提案结束后,primary会退化为backup,并且每轮只选择出一个唯一的主节点,因此在一轮共识达成后,开启下一轮共识时会进行主节点选择和视图转换。为了降低主节点在选择和视图转换过程中的网络压力,主节点选择和视图转换过程只需pp参与,并且转换成功后会向所有backup广播新一轮视图转换和主节点选择成功的消息。如果当前协议达成或等待超时,并且pp通过计算确定自身有可能成为下一轮的主节点,将立即启动视图转换;

60、按照上述流程进行主节点的选取,然后进行后续基于ts的bft共识过程生成区块。

61、步骤五:基于ts的拜占庭容错共识:在commit阶段,当任一节点收集到的合法签名数达到门限值时,便合成门限签名并广播出去,其他尚未合成门限签名的节点,只需验证一条合法的门限签名,就停止接收该区块的投票信息,并确认该区块的有效性。

62、(t,n)门限签名ts是由n名成员组成的签名群体,拥有一对用于群体签名的公钥和私钥,群体的签名私钥以门限的方式由n个成员共享,只有群体内大于等于门限值t个诚实的成员才能代表群体用群体签名私钥进行签名,且任何人都能够通过群体公钥验证签名的有效性,这些特性使得门限签名可以用于bft共识,以降低网络负载;

63、门限签名步骤如下:

64、1)生成公钥和群成员私钥

65、输入安全参数s,门限值t和成员数n,生成每个成员部分签名所用的私钥partsigski(i=1,2,...,n),每个成员保存自己的私钥,用于生成部分门限签名,pk用于验证门限签名;

66、s+t+n→pk+l

67、其中,l={partsig1,partsig2,...,partsign};

68、2)生成部分门限签名

69、输入消息msg和partsigski,产生部分签名partsigi;

70、msg+partsigski→partsigi

71、3)合成门限签名

72、若某个成员收集到的有效partsigi达到门限值t,则用这些partsigi合成门限签名thresholdsig;

73、4)验证门限签名

74、输入msg、pk和thresholdsig,返回判断结果true和false,true表示验证通过,false表示未通过;

75、verify(msg,pk,thresholdsig)→true or false

76、在commit阶段,当任一节点收集到的合法签名数达到门限值t时,合成门限签名并将其广播出去,其他尚未合成门限签名的节点,只需验证一条合法的门限签名,就停止接收该区块的投票信息,并确认该区块的有效性;

77、融合vrf和ts的bft共识步骤如下:

78、1)如果节点是primary,则打包交易信息到区块block,然后将block、投票信息、签名信息等打包成pre_prepare消息,如果没有超过时限,就向其它备份节点广播pre_prepare;

79、2)若节点不是primary,就等待接收primary发送来的pre_prepare消息,一旦接收到该消息,节点会对其进行验证,如果验证通过,广播含有自身投票信息的prepare消息,并对区块进行投票;

80、3)所有备份节点都会收集其他备份节点发送的prepare消息和含有thresholdsig的commit消息,若收到门限签名并通过verify(thresholdsig)验证,就会把该区块提交到本地维护的账本中,本区块的验证结束,同时把commit消息广播出去,该节点将不再接收关于该区块的投票信息和门限签名消息;

81、4)在尚未收到某个区块的thresholdsig之前,如果收集到的prepare中的部分门限签名消息超过门限值t,那么节点将合成thresholdsig,并广播带有thresholdsig的commit消息,同时节点将该区块的信息添加到本地区块链中,本区块的验证结束,此后该节点将不再接收关于该区块的投票信息和门限签名信息。

82、本发明创造的有益效果为:本发明采用企业级复合区块链存储架构,主链是基于中继链技术的许可公有链,子链是同构或异构链。在此基础上,对企业级复合区块链采用基于改进dpos和bft的双层共识方法对数据进行上链存储和共识。该共识方法首先改进dpos的验证池选取,投票产生共识节点集合;然后,由被选出来的共识节点通过融合vrf和ts的bft共识来生成区块并进行上链操作。本发明所提共识方法在具有可用性的同时,有效保证了系统的安全性和节点的活跃度,并且交易吞吐量高,交易延迟和cpu负载低。

本文地址:https://www.jishuxx.com/zhuanli/20240801/244117.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。