基于无协商随机抽签的用于区块链系统的共识方法和装置制造方法及图纸

技术编号:18427274 阅读:34 留言:0更新日期:2018-07-12 02:13
本发明专利技术提供一种基于无协商随机抽签的用于区块链系统的共识方法和装置。所述方法包括:在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,该序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点。在随后的每个特定时段内,出块节点发送预出块并收集背书;背书节点在接收到背书请求之后,检查预出块的合法性并对合法的预出块签名;在出块节点收集到超过50%的背书签名之后,将背书签名追加到预出块,形成正式区块,向全网广播。本发明专利技术能够防止恶意节点操纵抽签结果,确保区块链运行的安全性;另一方面,由于在每个特定时段只有唯一节点拥有出块资格,避免了竞争性的分叉,从而提高区块链系统的交易实时性。

【技术实现步骤摘要】
基于无协商随机抽签的用于区块链系统的共识方法和装置
本专利技术涉及区块链
,尤其涉及一种基于无协商随机抽签的用于区块链系统的共识方法和装置。
技术介绍
区块链的每个节点在本地维护着一个由前后区块链接构成的账本,每个区块记录了账本从前一个状态迁移到后一状态所经历的变更,在区块中具体体现为交易集合及其顺序。所谓的输入共识,指的就是在区块链网络的每个节点上,相同高度的区块,它们包含的交易集合及其顺序是一致的。输入共识是区块链系统实现账本一致的保证——如果每个节点在初始状态是一致的,并且从前一个状态迁移到后一状态所经历的变更也是一致的,那么它们的后一状态也应当是一致,以此类推它们的最新状态也应当是一致的,从而实现了分布式账本的同步。要在区块链节点之间达成输入共识(即从当前状态迁移到下一状态的变更共识),有两种方法:一是通过节点之间相互通信协商达成如何变更;二是无须临时协商,节点之前事先约定和内置一种规则,由这种规则决定如何变更。考虑到网络通信的延迟,以及节点对协商协议的解析和应答耗时,显然后者在达成输入共识的实时性及节约算力方面具有巨大的优势。但是无协商方式的安全隐患在于:由于这种规则是事先约定的,会存在被人为操纵的风险。
技术实现思路
本专利技术提供的基于无协商随机抽签的用于区块链系统的共识方法和装置,能够防止恶意节点操纵抽签结果,确保区块链运行的安全性;另一方面,由于在每个特定时段只有唯一节点拥有出块资格,避免了竞争性的分叉,从而提高区块链系统的交易实时性。第一方面,本专利技术提供一种基于无协商随机抽签的用于区块链系统的共识方法,所述方法包括:在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,所述节点序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点;在随后的每个特定时段内,出块节点发送预出块并收集背书;背书节点在接收到背书请求之后,检查预出块的合法性并对合法的预出块签名;在出块节点收集到超过50%的背书签名之后,将背书签名追加到预出块,形成正式区块,向全网广播。可选地,所述对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列包括:以接收到的合法区块的哈希值为随机种子,以当前具备候选资格的节点的集合为输入,执行相同的算式,获得按顺序排列的节点序列。可选地,所述在随后的每个特定时段内,发送预出块并收集背书包括:在随后的每个特定时段内,根据收集的交易进行排序并预执行,获得有效的交易集合,进行打包和签名之后形成预出块,广播到背书节点,请求背书节点对所述预出块进行签名;收集背书节点的签名。可选地,所述方法还包括:在出块节点完成正式出块之后,在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。可选地,所述方法还包括:在全网节点接收到广播的正式区块之后,检查所述正式区块的合法性;在正式区块的合法性检查通过之后,顺序执行正式区块中的交易,完成状态迁移;在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。可选地,所述方法还包括:如果在所述出块时间段内未完成状态迁移,指定所述节点序列中的下一节点作为当前时段的合法出块节点。第二方面,本专利技术提供一种基于无协商随机抽签的用于区块链系统的共识装置,所述装置包括:确定单元,用于在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;第一选举单元,对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,所述节点序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点;预执行单元,用于在随后的每个特定时段内,出块节点发送预出块并收集背书;背书单元,用于背书节点在接收到背书请求之后,检查预出块的合法性并对合法的预出块签名;出块单元,用于在出块节点收集到超过50%的背书签名之后,将背书签名追加到预出块,形成正式区块,向全网广播。可选地,所述第一选举单元,用于以接收到的合法区块的哈希值为随机种子,以当前具备候选资格的节点的集合为输入,执行相同的算式,获得按顺序排列的节点序列。可选地,所述预执行单元包括:预执行模块,用于根据收集的交易进行排序并预执行,获得有效的交易集合,进行打包和签名之后形成预出块,广播到背书节点,请求背书节点对所述预出块进行签名;收集模块,用于收集背书节点的签名。可选地,所述装置还包括:第二选举单元,用于在所述出块单元完成正式出块之后,在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。可选地,所述装置还包括:检查单元,用于在全网节点接收到广播的正式区块之后,检查所述正式区块的合法性;执行单元,用于在正式区块的合法性检查通过之后,顺序执行正式区块中的交易,完成状态迁移;第三选举单元,用于在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。可选地,所述装置还包括:指定单元,用于如果在所述出块时间段内未完成状态迁移,指定所述节点序列中的下一节点作为当前时段的合法出块节点。本专利技术实施例提供的基于无协商随机抽签的用于区块链系统的共识方法和装置,各节点基于无协商随机抽签算法选举出一致的出块节点序列,达成分布式节点间的输入共识,根据选举结果按顺序执行区块中的交易,完成区块链前一状态向后一状态的迁移。与现有技术相比,本专利技术能够防止恶意节点操纵抽签结果,确保区块链运行的安全性;另一方面,由于在每个特定时段只有唯一节点拥有出块资格,避免了竞争性的分叉,从而提高区块链系统的交易实时性。附图说明图1为本专利技术一实施例基于无协商随机抽签的用于区块链系统的共识方法的流程图;图2为本专利技术另一实施例基于无协商随机抽签的用于区块链系统的共识方法的流程图;图3为本专利技术一实施例基于无协商随机抽签的用于区块链系统的共识装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术采用的无协商共识机制通过节点之间事先约定和内置一种规则,并且在规则之上引入不可预知的随机因素,以达到共识结果不可事先预知的效果。本专利技术采用一种无协商随机抽签算法(Consultation-freerandomdrawalgorithmwithdistributedenvironment,CFRD)实现上述目标。基于所述无协商随机抽签算法本专利技术提供一种基于无协商随机抽签的用于区块链系统的共识方法,如图1所示,所述方法包括:S11、在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;S12、对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,所述节点序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点;具体地,S11与S12为执行无协商随机抽签算法的过程,执行本专利技术提供的无协商随机抽签算法的前提条件包括:区块链中组网的每个节点具备与其他节点通信的手段;每个节点维护了一张全网信任证书列表;每个可能成为候选的节点不断收集全网传播的交易。触发本专利技术提供的无协商随机本文档来自技高网...

【技术保护点】
1.一种基于无协商随机抽签的用于区块链系统的共识方法,其特征在于,所述方法包括:在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,所述节点序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点;在随后的每个特定时段内,出块节点发送预出块并收集背书;背书节点在接收到背书请求之后,检查预出块的合法性并对合法的预出块签名;在出块节点收集到超过50%的背书签名之后,将背书签名追加到预出块,形成正式区块,向全网广播。

【技术特征摘要】
1.一种基于无协商随机抽签的用于区块链系统的共识方法,其特征在于,所述方法包括:在接收到合法的区块之后,根据全网信任证书列表确定当前具备候选资格的节点;对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列,所述节点序列决定了在随后的每个特定时段,拥有出块资格的唯一出块节点;在随后的每个特定时段内,出块节点发送预出块并收集背书;背书节点在接收到背书请求之后,检查预出块的合法性并对合法的预出块签名;在出块节点收集到超过50%的背书签名之后,将背书签名追加到预出块,形成正式区块,向全网广播。2.根据权利要求1所述的方法,其特征在于,所述对当前具备候选资格的节点进行无协商随机抽签,获得按顺序排列的节点序列包括:以接收到的合法区块的哈希值为随机种子,以当前具备候选资格的节点的集合为输入,执行相同的算式,获得按顺序排列的节点序列。3.根据权利要求1所述的方法,其特征在于,所述在随后的每个特定时段内,发送预出块并收集背书包括:在随后的每个特定时段内,根据收集的交易进行排序并预执行,获得有效的交易集合,进行打包和签名之后形成预出块,广播到背书节点,请求背书节点对所述预出块进行签名;收集背书节点的签名。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在出块节点完成正式出块之后,在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在全网节点接收到广播的正式区块之后,检查所述正式区块的合法性;在正式区块的合法性检查通过之后,顺序执行正式区块中的交易,完成状态迁移;在本地确定下一轮具备候选资格的节点,进行无协商随机抽签。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:如果在所述出块时间段内未完成状态迁移,指定所述节点序列中的下一节点作为当前时段的合法出块节点。7.一种基于无协商随机抽签的用于区块链...

【专利技术属性】
技术研发人员:陈胜李春晓左春蒋步云史殿岳徐昊武斌梁赓
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1