一种提高事务处理能力的区块链共识方法与流程

文档序号:26800295发布日期:2021-09-29 01:47阅读:121来源:国知局
1.本发明涉及区块链共识机制领域,具体涉及一种提高事务处理能力的区块链共识方法。
背景技术
::2.区块链技术是一种分布式账本技术,能够在不依赖于任何第三方可信机构前提下,解决开放网络中的信任问题,共识机制是区块链实现分布式一致性的核心环节。3.在区块链系统中,多个主机通过异步通讯方式组成网络集群进行协作,共识机制保证每个主机在默认不可靠的异步网络中达成一致性状态,共识机制既要保证安全性,又要保证效率。以工作量证明机制为首的证明类共识是目前区块链系统中主流的共识机制。4.传统共识机制的事务处理效率落后于区块链技术使用场景的处理需求,是影响区块链技术飞速发展的障碍和挑战。最为传统和使用广泛的比特币系统中使用的工作量证明机制,算力资源大量消耗下每秒只能处理大约7笔交易,单纯通过增大区块大小和提高区块生成频率的方法来提高交易的处理速度往往得不偿失,可能带来事务处理能力和系统安全性降低的副作用。具体而言,增大区块大小会引起:(1)区块传播时间增加;(2)区块验证时间增长,生成合法区块的节点在挖下一个区块时更有优势,从而容易导致挖矿集中化;(3)增大区块大小会导致硬分叉,失去向后兼容性。提高区块生成频率会引起:(1)孤块生成几率增加造成计算资源的浪费;(2)节点间通信频率增加,容易造成网络拥塞。5.在区块链与物流结合的应用中,利用区块链技术构建物流追踪平台,将商品生产过程、流通过程、营销过程的信息写入区块链,实现一物一码的全流程追溯。品牌商、渠道商、零售商、消费者以及监管部门多方参与,用区块链技术使得消费者和生产者之间实现信息透明,实现安全信息共享,缩短商品运输时间,改善库存管理,最终减少浪费并降低成本。物流追踪平台需要对海量物品信息上链,系统必须具备较高的事务处理能力。6.综上所述,当前亟需高效事务处理能力的共识方法以推动区块链适应更广阔的业务需求,有更实际的落地场景。技术实现要素:7.本发明的目的是提供一种提高事务处理能力的区块链共识方法,能够减少区块链网络中节点的通信次数,降低节点存储消耗,在不依靠算力竞争生成区块,减少算力资源消耗的同时提升区块链系统处理事务的能力,并且正向激励区块链系统稳定、健康、长久运行。8.本发明公开了一种提高事务处理能力的区块链共识方法,包括如下步骤:9.s1:用户在区块链网络中发布交易信息;10.s2:交易管理节点收集区块链网络中发布的交易信息,所述交易管理节点是区块链网络中设置的专门对交易信息进行管理的节点,其任务是将区块链网络中发布的交易信息维护在交易池中,每轮共识,所述交易管理节点将交易池中的交易信息按照时间戳降序顺序用其交易id排列,生成交易信息id序列,并将该交易信息id序列广播到区块链网络中;11.s3:每轮共识,通过节点选择算法,在参与区块链共识的所有节点中选择出n个节点成为区块生成节点,并由这n个区块生成节点组成区块生成节点组,在节点选择算法中,参与区块链共识的节点是否能够成为区块生成节点由节点综合评价值value决定,按照节点综合评价值value降序的方式选出节点综合评价值最高的n个节点成为区块生成节点;节点综合评价值value由信誉值credit、抵押值deposit和平衡值balance共同决定,如公式(1)所示:12.value=credit×deposit×balanceꢀꢀ(1)13.参与区块链共识的节点都有一个信誉值credit属性,这个属性是对节点以往参与区块链活动的信誉评价,反映了节点的可信程度,具体地,信誉值由节点成为区块生成节点的次数j,节点成功生成区块次数s,节点提报检举次数r,检举成功次数k以及被检举成功次数f决定,如公式(2)所示:[0014][0015]参与节点选择算法的节点需要投入抵押值deposit,保证参与区块链共识的节点诚实,抵押值属性由抵押金额amount和节点持有抵押金额的时间time决定,如公式(3)所示:[0016]deposit=amount×timeꢀꢀ(3)[0017]若是节点通过节点选择算法成为区块生成节点且成功生成区块,则将抵押金额返还该节点,该节点抵押金额持有时间归零;若是节点行为不端,被其他节点检举,核实情况属实后被检举节点没收抵押金额,检举节点获得抵押金额;[0018]节点选择算法还需要参与区块链共识的节点生成一个平衡值balance以保证节点参与的公平性,平衡值的生成方式为:每个参与区块链共识的节点使用当轮共识编号r、上轮区块组哈希值prehash和节点公钥pk生成一个哈希值hash,取哈希值hash的第一位和第二位为r1和r2;另外,每个参与区块链共识的节点各自保存一张相同的预先设置好的数值对应表table,table中数值区间为[‑1,1],正数和非正数的比例为167:89;table[(r1,r2)]为节点根据各自生成的r1和r2对应到table中的数值操作,即为当轮节点参与节点选择算法的平衡值,表示为公式(4):[0019]balance=table[(r1,r2)]ꢀꢀ(4)。[0020]s4:所述交易管理节点将步骤s2所生成的交易信息id序列发送给步骤s3中生成的区块生成节点组;[0021]s5:区块生成节点组中的区块生成节点收到交易管理节点发送的当轮需要处理的交易信息id序列,n个区块生成节点按照节点选择算法中的节点综合评价值value由高到低的顺序分别打包第1‑m,(m+1)‑2m,(2m+1)‑3m,……,[(n‑1)m+1]‑nm笔交易生成n个区块,第1‑nm笔交易的交易信息生成的n个交易根分别为txroot1,txroot2,txroot3,……,txrootn,然后,n个区块生成节点通过节点相互验证算法利用这n个交易根生成区块组的根root,并完成区块组信息整体封装,将完成整体封装的区块组信息经签名广播到区块链网络中;[0022]s6:区块链中参与区块链共识的节点收到区块组信息后,验证交易信息和节点身份的正确性,验证通过将区块组信息存储本地:交易信息的正确性验证主要为:参与区块链共识的节点根据交易管理节点所广播的交易信息id序列和区块组信息,利用本地存储的交易集合重新生成区块组的根,其中,若是本地不含某笔交易,则向附近节点请求,若是重新生成的区块组的根与收到的区块组信息中的根一致即为验证通过,交易集合是第零轮共识到当前轮共识的所有交易信息id序列的集合;验证节点身份主要是参与区块链共识的节点进行交易信息的正确性验证的同时,对区块组信息中的区块生成节点组的签名进行核实,验证是否是当轮共识中节点选择算法选出的n个区块生成节点,验证通过则将区块组信息存储到本地,至此完成一轮共识,区块链网络进行下一轮共识。[0023]本发明公开的一种提高事务处理能力的区块链共识方法,涉及区块链共识机制技术,属于互联网领域。对于用户发布的交易,交易管理节点将交易按时间顺序排列,生成交易序列;参与共识的节点通过节点选择算法选择出当轮区块生成节点,区块生成节点根据所接收的交易序列,利用相互验证算法生成区块组并广播至网络中,网络中的节点验证区块组中交易信息和节点身份的正确性后存储至本地。本发明的节点选择算法能够在权衡节点可靠性的前提下,正向激励节点诚实行为,同时尽可能保证参与节点公平竞争,避免权力集中所导致的中心化危机;相互验证算法使得区块生成节点之间的验证形成闭环,减少作恶行为的同时提高区块生成质量。本发明能够减少区块链网络中节点的通信次数,降低节点存储消耗,在不依靠算力竞争减少算力资源消耗的前提下,提升区块链网络处理事务的能力,并正向激励区块链网络稳定、健康、长久运行。附图说明[0024]图1是区块生成节点相互验证算法生成实例的示意图。[0025]图2是本发明一种提高事务处理能力的区块链共识方法的流程图。[0026]图3是节点选择算法中计算平衡值时的数值关系对应表。[0027]图4是本发明具体实施物流溯源平台架构。具体实施方式[0028]为了更为具体的阐述本发明,下面结合具体实施方式对本发明的技术方案进行详细的说明。[0029]本发明提供一种提高事务处理能力的区块链共识方法,其流程图如图2所示,具体过程包括如下步骤:[0030]s1:用户在区块链网络中发布交易信息。[0031]s2:交易管理节点收集区块链网络中发布的交易信息。交易管理节点是区块链网络中设置的专门对交易信息进行管理的节点,其任务是将区块链网络中发布的交易信息维护在交易池中。每轮共识,将交易池中的交易信息按照时间戳降序顺序用其交易id排列,生成交易信息id序列,交易管理节点将该交易信息id序列广播到区块链网络中。具体而言,假设当前区块链网络每次选取n个区块生成节点用于生成n个区块,每一个区块生成节点生成一个区块,即s3步骤中区块生成节点组由n个区块生成节点组成,每个区块中包含m笔交易,交易管理节点按时间戳降序顺序选择前n×m笔交易信息用其交易id进行排序,生成交易信息id序列。[0032]s3:每轮共识需要通过节点选择算法,在参与区块链共识的所有节点中选择出n个区块生成节点,并由这n个区块生成节点组成区块生成节点组。在节点选择算法中,参与区块链共识的节点是否能够成为区块生成节点由节点综合评价值value决定,设每轮共识要选出n个节点成为区块生成节点,则按照节点综合评价值value降序的方式选出节点综合评价值最高的n个节点成为区块生成节点。节点综合评价值value由信誉值credit、抵押值deposit和平衡值balance共同决定,如公式(1)所示。[0033]value=credit×deposit×balanceꢀꢀ(1)[0034]参与区块链共识的节点都有一个信誉值credit属性,这个属性是对节点以往参与区块链活动的信誉评价,可以反映节点的可信程度。具体来说,信誉值由节点成为区块生成节点的次数j,节点成功生成区块次数s,节点提报检举次数r,检举成功次数k以及被检举成功次数f决定,如公式(2)所示。[0035][0036]由公式(2)可知,对于参与区块链共识的节点来说,成为区块生成节点并且成功生成区块的次数越多,节点信誉值越高,检举恶意节点成功的次数越多,节点信誉值越高。即参与区块链共识的节点越活跃且参与质量越高,信誉值越高。另外,对于行为不端的节点,节点的信誉值随着被检举次数的增多而指数级减小。[0037]参与节点选择算法的节点需要投入抵押值deposit,此举在于保证参与区块链共识的节点诚实,以此提高本发明提出的共识方法的性能。抵押值属性由抵押金额amount和节点持有抵押金额的时间time决定,如公式(3)所示。[0038]deposit=amount×timeꢀꢀ(3)[0039]由公式(3)可得,投入抵押金额越多,节点持有抵押金额时间越长,抵押值越高。若是节点通过节点选择算法成为区块生成节点且成功生成区块,则将抵押金额返还该节点,该节点抵押金额持有时间归零。若是节点行为不端,被其他节点检举,核实情况属实后被检举节点没收抵押金额,检举节点获得抵押金额。[0040]节点选择算法还需要参与区块链共识的节点生成一个平衡值balance以保证节点参与的公平性,平衡值的生成方式为:每个参与区块链共识的节点使用当轮共识编号r、上轮区块组哈希值prehash和节点公钥pk生成一个哈希值hash,取哈希值hash的第一位和第二位为r1和r2。另外,每个参与区块链共识的节点各自保存一张相同的预先设置好的数值对应表table,如图3所示。table表中数值区间为[‑1,1],数值中正数和非正数的比例为167:89。table表可根据实际情况进行修改。table[(r1,r2)]为节点根据各自生成的r1和r2对应到表中的数值操作,即为当轮节点参与节点选择算法的平衡值,如(1,4)对应的平衡值为0.9,表示为公式(4)。[0041]balance=table[(r1,r2)]ꢀꢀ(4)[0042]节点选择算法以节点的信誉值credit、抵押值deposit和平衡值balance来共同决定,信誉值表示节点的可信程度,通过信誉值提高选出诚实可靠的节点的概率;抵押值通过节点切身利益正向激励节点向有助于本发明提出的共识方法向安全的方向进行,其中节点持有抵押金额的时间也能降低恶意节点短期筹集大笔资金对区块链进行攻击成功的可能性;最后平衡值能够维护本发明提出的共识方法的公平性,可以避免资金较为集中的节点处于有利地位而导致的权利集中问题,维护区块链的去中心特性,此外节点选择平衡值时,获得正数的比例要比获得非正数的比例高,这意味着节点信誉值和抵押值仍在节点选择算法中起到关键作用,节点需要在系统中更加可靠和诚实,才能提高成为区块生成节点的概率。[0043]s4:交易管理节点将步骤s2所生成的交易信息id序列发送给步骤s3中生成的区块生成节点组。[0044]s5:区块生成节点组中的区块生成节点收到交易管理节点发送的当轮需要处理的交易信息id序列,n个区块生成节点按照节点选择算法中的节点综合评价值value由高到低的顺序分别打包第1‑m,(m+1)‑2m,(2m+1)‑3m,……,[(n‑1)m+1]‑nm笔交易生成n个区块,第1‑nm笔交易的交易信息生成的n个交易根分别为txroot1,txroot2,txroot3,……,txrootn。[0045]此后,n个区块生成节点通过节点相互验证算法利用n个交易根生成区块组的根root。具体过程为:假设n=5,如图1所示,区块生成节点组按照节点综合评价值value降序排列,第一位是区块生成节点1,最后一位为区块生成节点5。区块生成节点1和区块生成节点2根据对方的交易信息id序列分别生成交易根txroot2′和txroot1′,然后区块生成节点1用txroot1,txroot2′生成哈希值hash1,2,区块生成节点2用txroot2,txroot1′生成哈希值hash1,2′,区块生成节点1和区块生成节点2将各自生成的哈希值经签名发送给对方,即区块生成节点1对hash1,2签名发送给区块生成节点2,区块生成节点2对hash1,2′签名发送给区块生成节点1。[0046]区块生成节点1和区块生成节点2互相验证经对方签名的哈希值。即验证hash1,2与hash1,2′是否一致。若是验证发现不一致则可以进行举报,举报有效则检举方可获得被检举方的押金金额,同时增加信誉值计算中的相关属性,被检举方则被扣除押金金额,同时减小信誉值计算中的相关属性,同时,被有效检举的节点退出此轮共识,节点选择算法选择节点综合评价值value按降序排列第n+1位的节点参与当轮共识,此后若有节点退出当轮共识仍按节点综合评价值value降序排列选择新的节点加入。若区块生成节点1和区块生成节点2相互验证无误,则区块生成节点2将带有区块生成节点1签名的hash1,2进行签名发送到区块生成节点3;[0047]区块生成节点3收到带有区块生成节点1和2签名的hash1,2,验证有效后用hash1,2与交易根txroot3计算生成hash1,2,3,将hash1,2,3和带有区块生成节点1和2签名的hash1,2经签名后发送到区块生成节点4。区块生成节点4根据区块生成节点3所负责的交易信息id序列生成交易根txroot3′,用txroot3′和hash1,2生成hash1,2,3′。验证hash1,2,3与hash1,2,3′是否一致,若与区块生成节点3发送的hash1,2,3不一致则进行检举,一致则用hash1,2,3与交易根txroot4生成hash1,2,3,4,将带有区块生成节点3签名的hash1,2,3和hash1,2,3,4经签名发送给区块生成节点5。区块生成节点5根据区块生成节点4所负责的交易信息id序列生成交易根txroot4′,用txroot4′和hash1,2,3生成hash1,2,3,4′。验证hash1,2,3,4与hash1,2,3,4′是否一致,若与区块生成节点4发送的hash1,2,3,4不一致则进行检举,一致则用hash1,2,3,4与txroot5生成hash1,2,3,4,5,hash1,2,3,4,5即区块组的根root。区块生成节点5对root签名广播到区块生成节点1。区块生成节点1根据区块生成节点5所负责的交易信息id序列生成交易根txroot5′,用txroot5′和hash1,2,3,4生成hash1,2,3,4,5′。验证hash1,2,3,4,5与hash1,2,3,4,5′是否一致,若与区块生成节点5发送的hash1,2,3,4,5不一致则进行检举,一致则添加当轮共识的相关信息,如共识轮数、区块组高度和时间戳信息等,完成区块组信息整体封装,并将完成整体封装的区块组信息经签名广播到区块链网络中。[0048]s6:区块链中参与区块链共识的节点收到区块组信息后,验证交易信息和节点身份的正确性,验证通过可将区块组信息存储本地。交易信息的正确性验证主要为:参与区块链共识的节点根据交易管理节点所广播的交易信息id序列和区块组信息,利用本地存储的交易集合重新生成区块组的根,其中,若是本地不含某笔交易,可以向附近节点请求,若是重新生成的区块组的根与收到的区块组信息中的根一致即为验证通过,交易集合是第零轮共识到当前轮共识的所有交易信息id序列的集合。验证节点身份主要是参与区块链共识的节点进行交易信息的正确性验证的同时,对区块组信息中的区块生成节点组的签名进行核实,验证是否是当轮共识中节点选择算法选出的n个区块生成节点。验证通过则将区块组信息存储到本地,至此完成一轮共识,区块链网络进行下一轮共识。[0049]图1是区块生成节点相互验证算法生成实例的示意图,其中txroot1,txroot2,……,txroot5代表区块生成节点1到区块生成节点5各自根据所负责的交易信息id序列生成的交易根,hash1,2是由区块生成节点1、2的交易根生成的hash值,hash1,2,3是由区块生成节点3的交易根和hash1,2生成的hash值,hash1,2,3,4是由区块生成节点4的交易根和hash1,2,3生成的hash值,hash1,2,3,4,5是由区块生成节点5的交易根和hash1,2,3,4生成的hash值,hash1,2,3,4,5是区块组的根root。[0050]构建如图4所示的物流追踪平台,参与方为供应商、货运商和消费者,供应商和货运商负责将商品生产过程、流通过程、营销过程等商品信息写入区块链,为了实现一物一码的全流程正品追溯,区块链上每条商品信息都有唯一的身份id标识,且每条商品信息都附有商品在生产过程、流通过程、营销过程的各个环节中的数字签名和时间戳可供查验,消费者可以通过平台查询物品的来源与去向信息,此平台的实施方式如下:[0051]s1:供应商和货运商上传商品生产过程、流通过程、营销过程等商品信息上传到区块链网络;[0052]s2:区块链网络中的交易管理节点收集商品信息存入本地交易池;[0053]s3:通过节点选择算法选择出当轮共识区块生成节点,并由当轮共识区块生成节点组成当轮共识区块生成节点组;[0054]s4:交易管理节点根据商品信息发布时间,利用商品信息的身份id标识进行排序,从而生成商品信息id序列,并发送给当轮区块生成节点组;[0055]s5:当轮区块生成节点组中的区块生成节点根据所接收的商品信息id序列执行相互验证算法,完成区块组信息封装并广播到区块链网络中;[0056]s6:区块链网络中的节点接受并验证区块组信息后存于本地;[0057]s7:消费者对商品信息进行查询;[0058]s8:区块链网络中参与区块链共识的节点查询本地保存的区块链,返回消费者相关商品信息。[0059]以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1