CN108509615B - 基于抽签机制的共识建立方法、装置及可读存储介质 - Google Patents

基于抽签机制的共识建立方法、装置及可读存储介质 Download PDF

Info

Publication number
CN108509615B
CN108509615B CN201810297670.2A CN201810297670A CN108509615B CN 108509615 B CN108509615 B CN 108509615B CN 201810297670 A CN201810297670 A CN 201810297670A CN 108509615 B CN108509615 B CN 108509615B
Authority
CN
China
Prior art keywords
hash value
candidate hash
current node
local
candidate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810297670.2A
Other languages
English (en)
Other versions
CN108509615A (zh
Inventor
刘均
刘新
周军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN201810297670.2A priority Critical patent/CN108509615B/zh
Publication of CN108509615A publication Critical patent/CN108509615A/zh
Application granted granted Critical
Publication of CN108509615B publication Critical patent/CN108509615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种基于抽签机制的共识建立方法、装置及可读存储介质,涉及信息处理领域,用于减少抽签机制中共识算法的耗时。本发明实施例方法包括:当前节点可以获取区块链中末位区块的记账节点广播的第一数据,利用本地私钥对第一数据的哈希值进行签名,得到第二数据,对第二数据进行哈希运算,得到本地候选哈希值,之后可以按照第一算法确定本地候选哈希值对应的广播时刻,之后在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值,并根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,从本地候选哈希值和备选哈希值中选择目标哈希值,目标哈希值对应的节点为待接入区块的记账节点。

Description

基于抽签机制的共识建立方法、装置及可读存储介质
技术领域
本发明涉及信息处理领域,具体涉及一种基于抽签机制的共识建立方法及装置、区块链系统、计算机装置及可读存储介质。
背景技术
区块链是由节点参与的分布式数据库系统,也可以将其理解为账簿系统,是由区块链网络中的所有节点各自独立竞争完成的。共识机制是区块链技术的核心,它使得区块链这样一个去中心化的账簿系统变成可能,共识机制与去中心化两个核心因素是区块链技术高速发展的关键原因。
在中心化的结构体系中,系统的共识由中心决定,各参与方只需要服从这个中心即可,因此共识的建立是极为高效的,而在去中心化的结构体系中,由于系统的各个参与方地位平等,当出现分歧的时候如何达成共识就成了问题。
目前通常采用的区块链共识机制包括工作量证明、权益证明、实用拜占庭方法、随机抽签比较等方式,实现节点之间的共识,保证各个节点之间的权益。采用随机抽签的方法,是一种新的思路,比如,现有技术提出,各个节点可以从所有候选哈希值中选择最小的候选哈希值作为目标哈希值,目标哈希值的节点作为抽签成功的节点。
随着区块链的发展,区块链中的节点数目急剧增加,而现有的抽签方法需要对各个节点产生的哈希值进行全网比较,才能最终确定抽签成功的节点,因此其比较过程造成共识算法所需的时间较长,并且随着区块链中节点数目的不断增加,共识算法的耗时会不断增加,无法满足区块链发展的需要。
发明内容
本发明提供一种基于抽签机制的共识建立方法、装置及可读存储介质,用于解决现有的区块链共识算法耗时过长的问题。
本发明实施例的一方面提供了一种基于抽签机制的共识建立方法,包括:
当前节点获取区块链中末位区块的记账节点广播的第一数据,所述第一数据包括准备与所述末位区块连接的待接入区块的交易数据;
所述当前节点利用本地私钥对所述第一数据的哈希值进行签名,得到第二数据;
所述当前节点对所述第二数据进行哈希运算,得到本地候选哈希值;
所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻,在所述第一算法中,不同的哈希值对应于不同的广播时刻;
所述当前节点在所述本地候选哈希值对应的广播时刻向所述区块链广播所述本地候选哈希值;
所述当前节点根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的候选哈希值;
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择目标哈希值,所述目标哈希值对应的节点为所述待接入区块的记账节点。
可选的,所述当前节点根据接收到外地候选哈希值的时间先后顺序确定备选哈希值包括:
所述当前节点选择优先接收到的所述外地候选哈希值作为备选哈希值;
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择目标哈希值包括:
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择对应的广播时刻最早的哈希值作为所述目标哈希值。
可选的,在所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻之后,所述方法还包括:
所述当前节点判断在所述本地候选哈希值对应的广播时刻之前是否接收到所述外地候选哈希值;
若是,则所述当前节点在所述本地候选哈希值对应的广播时刻不执行向所述区块链广播所述本地候选哈希值的步骤;
若否,则所述当前节点在所述本地候选哈希值对应的广播时刻执行向所述区块链广播所述本地候选哈希值的步骤。
可选的,所述第一数据还包括世界时间;
所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻包括:
所述当前节点按照第二算法计算所述本地候选哈希值对应的延迟时长,在所述第二算法中,哈希值不同,则与其对应的延迟时长不同;
所述当前节点根据所述世界时间、所述延迟时长和预设的共识间隔时长确定所述本地候选哈希值对应的广播时刻。
可选的,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的、有效的候选哈希值;
当所述当前节点接收到所述区块链中所述当前节点以外的其它节点广播的候选哈希值时,所述方法还包括:
所述当前节点按照第一算法确定所述候选哈希值对应的广播时刻;
所述当前节点判断所述候选哈希值对应的广播时刻是否早于当前时刻;
若否,则判定所述候选哈希值无效,不作为外地候选哈希值;
若是,则判定所述候选哈希值有效,作为外地候选哈希值。
本发明实施例的第二方面提供了一种基于抽签机制的共识建立装置,应用于区块链中的当前节点,包括:
获取模块,用于获取所述区块链中末位区块的记账节点广播的第一数据,所述第一数据包括准备与所述末位区块连接的待接入区块的交易数据;
签名模块,用于利用本地私钥对所述第一数据的哈希值进行签名,得到第二数据;
运算模块,用于对所述第二数据进行哈希运算,得到本地候选哈希值;
第一确定模块,用于按照第一算法确定所述本地候选哈希值对应的广播时刻,在所述第一算法中,不同的哈希值对应于不同的广播时刻;
广播模块,用于在所述本地候选哈希值对应的广播时刻向所述区块链广播所述本地候选哈希值;
第二确定模块,用于根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的候选哈希值;
选择模块,用于从所述本地候选哈希值和所述备选哈希值中选择目标哈希值,所述目标哈希值对应的节点为所述待接入区块的记账节点。
可选的,所述第二确定模块包括:
第一选择单元,用于选择优先接收到的所述外地候选哈希值作为备选哈希值;
所述选择模块包括:
第二选择单元,用于从所述本地候选哈希值和所述备选哈希值中选择对应的广播时刻最早的哈希值作为所述目标哈希值。
可选的,所述装置还包括:
第一判断模块,用于在所述第一确定模块按照第一算法确定所述本地候选哈希值对应的广播时刻之后,判断在所述本地候选哈希值对应的广播时刻之前是否接收到所述外地候选哈希值;
禁止触发模块,用于当所述判断模块判定接收到所述外地候选哈希值时,不触发所述广播模块;
触发模块,用于当素数判断模块判定未接收到所述外地候选哈希值时,触发所述广播模块。
可选的,所述第一数据还包括世界时间;
所述第一确定模块包括:
计算单元,用于按照第二算法计算所述本地候选哈希值对应的延迟时长,在所述第二算法中,哈希值不同,则与其对应的延迟时长不同;
确定单元,用于根据所述世界时间、所述延迟时长和预设的共识间隔时长确定所述本地候选哈希值对应的广播时刻。
可选的,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的、有效的候选哈希值;
所述装置还包括:
第三确定模块,用于当所述当前节点接收到所述区块链中所述当前节点以外的其它节点广播的候选哈希值时,按照第一算法确定所述候选哈希值对应的广播时刻;
第二判断模块,用于判断所述候选哈希值对应的广播时刻是否早于当前时刻;
第一判定模块,用于当所述第二判断模块判定所述候选哈希值对应的广播时刻不早于当前时刻时,判定所述候选哈希值无效,不作为外地候选哈希值;
第二判定模块,用于当所述第二判断模块判定所述候选哈希值对应的广播时刻早于当前时刻时,判定所述候选哈希值有效,作为外地候选哈希值。
本发明实施例的第三方面提供了一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式所述方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式所述方法的步骤。
本发明实施例的第五方面提供了一种区块链系统,所述区块链系统包括多个节点,所述节点包括如第三方面所述的计算机装置。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例提供了一种基于抽签机制的共识建立方法,区块链中准备接入新区块时,需要从区块链的各个节点中选举出新区块的记账节点,末位区块的记账节点可以向区块链中广播第一数据,第一数据包括准备与末位区块连接的待接入区块的交易数据。对于区块链中的任意一个节点而言,均可以执行本发明提供的方法,以选择出待接入区块对应的记账节点。以其中任意一个节点为当前节点,本发明方法可以包括:当前节点可以获取区块链中末位区块的记账节点广播的第一数据,利用本地私钥对第一数据的哈希值进行签名,得到第二数据,之后可以对第二数据进行哈希运算,得到候选哈希值,为了方便描述,对于当前节点来说,将当前节点自身产生的候选哈希值称作本地候选哈希值。当前节点可以按照第一算法确定本地候选哈希值对应的广播时刻,在第一算法中,不同的哈希值对应于不同的广播时刻,也就是说,如果第一算法包括两个变量,一个是哈希值,一个是广播时刻,那么这两个变量之间为一一对应关系。由于不同节点的本地私钥不同,而第一数据相同,因此不同节点的本地候选哈希值不同,那么按照第一算法得到的本地候选哈希值对应的广播时刻也不同。之后,当前节点在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值,由于各个节点的广播时刻存在时间先后顺序,因此当前节点接收到其他节点广播的候选哈希值的时刻通常也不同。为了方便描述,对于当前节点来说,将接收到的其它节点广播的候选哈希值称作外地候选哈希值。之后当前节点可以根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,并从本地候选哈希值和备选哈希值中选择目标哈希值,目标哈希值对应的节点为待接入区块的记账节点。本发明将各个节点产生的候选哈希值的不同体现为广播时刻的不同,使得当前节点可以根据外地候选哈希值的到达时间先后顺序来选择备选哈希值,而无需对所有的外地候选哈希值进行大小比较,之后只需将备选哈希值与本地候选哈希值进行比较便可确定目标哈希值,最少只需一次比较便可以确定抽签成功者,实现快速收敛,和现有技术相比,无需对各个节点产生的候选哈希值全网比较,可以大幅减少对候选哈希值的比较次数,从而减少共识算法的耗时,并且即使区块链中节点数目不断增加,比较次数不会增加,有利于控制共识算法的耗时,能够满足区块链发展的需要。
附图说明
图1是本发明基于抽签机制的共识建立方法一个实施例示意图;
图2是本发明图1对应的实施例中步骤104的一种可能的细化步骤示意图;
图3是本发明基于抽签机制的共识建立方法中的选择过程一个实施例示意图;
图4是本发明基于抽签机制的共识建立方法中的广播过程一个实施例示意图;
图5是本发明基于抽签机制的共识建立方法中验证接收到的候选哈希值有效性方法的一个实施例示意图;
图6是本发明基于抽签机制的共识建立装置一个实施例示意图;
图7是本发明基于抽签机制的共识建立装置另一个实施例示意图;
图8是本发明基于抽签机制的共识建立装置另一个实施例示意图;
图9是本发明计算机装置一个实施例示意图。
具体实施方式
本发明实施例提供了一种基于抽签机制的共识建立方法及装置、区块链系统、计算机装置及可读存储介质,用于减少抽签机制中共识算法的耗时。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供一种基于抽签机制的共识建立方法,应用于区块链网络。基于区块链技术构建的网络可以称为区块链网络,区块链网络中包含多个网络节点,以下简称为节点,节点可以是登记在区块链中的终端、服务器或者其他智能设备。对于区块链中的任意一个节点而言,均可以执行本发明提供的方法,以选择出待接入区块对应的记账节点。以其中任意一个节点为当前节点,请参阅图1,本发明基于抽签机制的共识建立方法一个实施例包括:
101、当前节点获取区块链中末位区块的记账节点广播的第一数据;
末位区块的记账节点可以确定准备与末位区块连接的待接入区块的交易数据,并根据该交易数据生成第一数据,第一数据包括准备与末位区块连接的待接入区块的交易数据,之后可以向区块链广播该第一数据。当前节点可以获取到区块链中末位区块的记账节点广播的第一数据。
102、当前节点利用本地私钥对第一数据的哈希值进行签名,得到第二数据;
当前节点接收到第一数据之后,可以利用本地私钥对第一数据的哈希值进行签名,得到第二数据。第一数据的哈希值可以由末位区块的记账节点生成,并将其与第一数据一起广播,或者,也可以由当前节点生成,此处不对第一数据的哈希值的生成过程进行限定。
103、当前节点对第二数据进行哈希运算,得到本地候选哈希值;
当前节点得到第二数据之后,可以对第二数据进行哈希运算,为了方便描述,对于当前节点来说,将此处得到的哈希值称作其本地候选哈希值。
104、当前节点按照第一算法确定本地候选哈希值对应的广播时刻;
当前节点得到本地候选哈希值之后,可以按照第一算法确定本地候选哈希值对应的广播时刻,在第一算法中,不同的哈希值对应于不同的广播时刻。并且广播时刻在接收到第一数据的时刻之后,比如,按照第一算法可以确定本地候选哈希值对应的延迟时长,广播时刻为相对于未来的某一时刻延迟该延迟时长所确定的时刻。
105、当前节点在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值;
当前节点确定本地候选哈希值对应的广播时刻之后,可以在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值。
106、当前节点根据接收到外地候选哈希值的时间先后顺序确定备选哈希值;
当前节点确定本地候选哈希值对应的广播时刻之后,若当前节点接收到区块链中当前节点以外的其它节点广播的候选哈希值,则当前节点可以根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,备选哈希值可以为一个或多个,当备选哈希值为多个时,备选哈希值的数目小于区块链中当前节点以外的其它节点的数目。为了方便描述,对于当前节点来说,可以将当前节点接收到的、区块链中当前节点以外的其它节点广播的候选哈希值称作外地候选哈希值。
107、当前节点从本地候选哈希值和备选哈希值中选择目标哈希值。
当前节点确定备选哈希值之后,可以从本地候选哈希值和备选哈希值中选择一个作为目标哈希值,目标哈希值对应的节点即为待接入区块的记账节点。
本发明实施例中,将各个节点产生的候选哈希值的不同体现为广播时刻的不同,使得当前节点可以根据外地候选哈希值的到达时间先后顺序来选择备选哈希值,而无需对所有的外地候选哈希值进行大小比较,之后只需将备选哈希值与本地候选哈希值进行比较便可确定目标哈希值,最少只需一次比较便可以确定抽签成功者,实现快速收敛,和现有技术相比,无需对各个节点产生的候选哈希值进行全网比较,可以大幅减少对候选哈希值的比较次数,从而减少共识算法的耗时,并且即使区块链中节点数目不断增加,比较次数可以不随之增加,有利于控制共识算法的耗时,能够满足区块链发展的需要。
需要说明的是,在图1对应的实施例中,涉及向区块链的两类广播过程,第一个广播过程是末位区块的记账节点对第一数据的广播过程,第二个广播过程是当前节点对其本地候选哈希值的广播过程。与现有技术一样,为了保证区块链中传输的数据的真实性,在这两个广播过程中,区块链中的相关节点可以在对数据进行广播前、或者在接收到其它节点广播的数据后进行与数据真实性相关的操作。作为举例,在第一个广播过程中,假设第一数据包括待接入区块的交易数据D1、末位区块的哈希值H1和世界时间T1,末位区块的记账节点可以对第一数据进行哈希运算得到H2,并利用自己的私钥K1对H2进行签名,得到S1,之后将第一数据、H2、K1和S1一起进行广播,区块链中的其它节点接收到广播内容后,首先验证H2是否正确,再利用K1验证S1是否正确,若验证均通过,表明接收到的广播内容为真实的数据,之后才会执行步骤102。作为举例,在第二个广播过程中,当前节点可以在本地候选哈希值H3对应的广播时刻对本地候选哈希值H3、当前节点的私钥K2以及第二数据S2进行广播,之后,其它节点接收到H3、K2、S2时,可以验证K2和H3是否正确,若验证未全部通过,则表明接收到的H3不是真实的,此时节点可以不将该H3作为外地候选哈希值。
请参阅图2,图1对应的实施例中步骤104的一种可能的细化步骤包括:
201、当前节点按照第二算法计算本地候选哈希值对应的延迟时长;
当前节点可以按照第二算法计算本地候选哈希值对应的延迟时长,在第二算法中,哈希值不同,则与其对应的延迟时长不同。比如,第二算法可以为:T3=H3mod T2,其中T3为本地候选哈希值对应的延迟时长,T2为既定共识规则中规定的共识间隔时长,H3为本地候选哈希值。
202、当前节点根据世界时间、延迟时长和预设的共识间隔时长确定本地候选哈希值对应的广播时刻。
末位区块的记账节点广播的第一数据中还可以包括世界时间T1,该世界时间T1在末位区块的记账节点对第一数据的广播时刻之后。当前节点计算得到本地候选哈希值对应的延迟时长T2后,可以根据世界时间T1、该延迟时长T3以及预设的共识间隔时长T2,确定本地候选哈希值对应的广播时刻T4。比如,T4=T1+T3,由于不同节点接收到的世界时间T1相同,但是计算得到的T3不同,因此不同节点确定的广播时刻T4不同。
图1对应的实施例方法中,当前节点在完成步骤101至步骤104之后,执行了两个并列的过程,一个是步骤106和107对应的当前节点从外地候选哈希值和本地候选哈希值中选择目标哈希值的过程,简称选择过程;另一个是步骤105对应的当前节点对本地候选哈希值的广播过程,简称为广播过程。这两个过程之间没有限定的时间先后顺序,也没有因果关系,为两个相互独立的过程,下面分为对这两个过程的实施例进行描述。
一、关于选择过程:
请参阅3,本发明基于抽签机制的共识建立方法中的选择过程的一个实施例可以包括:
301、当前节点选择优先接收到的外地候选哈希值作为备选哈希值;
若当前节点选择优先到达的外地候选哈希值作为备选哈希值,则有利于提高共识机制的效率,优先到达的外地候选哈希值对应的广播时刻通常较早。在当前节点按照第一算法确定本地候选哈希值对应的广播时刻之后,若当前节点接收到外地候选哈希值,则当前节点可以根据接收到外地候选哈希值的时间先后顺序选择优先接收到的外地候选哈希值作为备选哈希值。
302、当前节点从本地候选哈希值和备选哈希值中选择对应的广播时刻最早的哈希值作为目标哈希值。
若备选哈希值为优先接收到的外地候选哈希值,那么目标哈希值可以为对应的广播时刻较早的一个候选哈希值,比如,可以为外地候选哈希值和本地候选哈希值中对应的广播时刻最早的候选哈希值,也可以为外地候选哈希值和本地候选哈希值中对应的广播时刻第二早的候选哈希值,等。为了简化比较过程,优选的,当前节点确定备选哈希值之后,可以从外地候选哈希值和本地候选哈希值中选取对应的广播时刻最早的候选哈希值作为目标哈希值。
优先到达可以指最早到达的一个外地候选哈希值,也可以指到达时刻较早的两个或两个以上外地候选哈希值。在实际应用中,两种时间间隔影响着选择过程的具体实现方式,这两种时间间隔包括:第一时间间隔,即不同候选哈希值对应的广播时刻之间的时间间隔;第二时间间隔,即候选哈希值被当前节点广播的时刻与该候选哈希值被其它节点接收到的时刻之间的时间间隔。下面分三种情况对图3对应的实施例的具体实现方式进行描述:
1)若第一算法能够很大程度的放大候选哈希值的差异,也就是说,区块链中各个节点按照第一算法确定的本地候选哈希值对应的广播时刻之间的时间间隔(即第一时间间隔)均很大,远大于第二时间间隔,假设区块链中的节点1的本地候选哈希值对应的广播时刻最早,那么,对于区块链中节点1以外的所有其它节点来说,节点1的本地候选哈希值均为最先到达的候选哈希值,并且,接收到节点1的本地候选哈希值的时刻均早于本地候选哈希值对应的广播时刻,因此,在选择过程中,区块链中的任意一个节点只需选择最先到达的候选哈希值作为备选哈希值,之后只需将备选哈希值的到达时刻与本地候选哈希值对应的广播时刻进行比较,选择较早的时刻对应的哈希值作为目标哈希值。
2)若第一算法无法很大程度的放大候选哈希值的差异,区块链中各个节点按照第一算法无法保证确定的本地候选哈希值对应的广播时刻之间的时间间隔(即第一时间间隔)均大于第二时间间隔,但是若各个节点的本地候选哈希值的第二时间间隔均相同,假设区块链中的节点1的本地候选哈希值对应的广播时刻最早,那么,对于区块链中节点1以外的所有其它节点来说,节点1的本地候选哈希值仍然为最先到达的候选哈希值,但是,接收到节点1的本地候选哈希值的时刻不一定早于本地候选哈希值对应的广播时刻,因此,在选择过程中,区块链中的任意一个节点只需选择最先到达的候选哈希值作为备选哈希值,之后需要计算备选哈希值对应的广播时刻,并将备选哈希值的对应的广播时刻与本地候选哈希值对应的广播时刻进行比较,选择较早的时刻对应的哈希值作为目标哈希值。
3)若第一算法无法很大程度的放大候选哈希值的差异,并且不同节点的本地候选哈希值的第二时间间隔不一定相同,假设区块链中的节点1的本地候选哈希值对应的广播时刻最早,那么,对于区块链中节点1以外的所有其它节点来说,节点1的本地候选哈希值不一定为最先到达的候选哈希值,并且,接收到节点1的本地候选哈希值的时刻不一定早于本地候选哈希值对应的广播时刻,在这种情况下,在选择过程中,区块链中的任意一个节点需要选择优先到达的两个或两个以上外地候选哈希值作为备选哈希值,比如,可以选择优先到达的预设数目个外地候选哈希值作为备选哈希值,之后需要计算备选哈希值对应的广播时刻,并将备选哈希值的对应的广播时刻与本地候选哈希值对应的广播时刻进行比较,选择最早的时刻对应的哈希值作为目标哈希值。
假设区块链中的节点1的本地候选哈希值对应的广播时刻最早,在节点1的本地候选哈希值对应的广播时刻之后很长的一段时长内(远大于候选哈希值被当前节点广播的时刻与该候选哈希值被其它节点接收到的时刻之间的时间间隔),节点1可能未接收到外地候选哈希值,这表明节点1的本地候选哈希值为目标哈希值,为了提高共识效率,节点1可以直接将本地候选哈希值选作目标哈希值。也就是说,在实际使用中,在当前节点的本地候选哈希值对应的广播时刻之后的预设时长内,若当前节点未接收到外地候选哈希值,则当前节点可以认为备选哈希值为空,此时可以将本地候选哈希值作为目标哈希值。
二、关于广播过程:
仍然以备选哈希值为优先到达的外地候选哈希值、目标哈希值为外地候选哈希值和本地候选哈希值中对应的广播时刻最早的候选哈希值为例进行说明。本发明基于抽签机制的共识建立方法中的广播过程的一个实施例可以只包括:在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值,但是,优选的,请参阅4,本发明基于抽签机制的共识建立方法中的广播过程的另一个实施例可以包括:
401、当前节点判断在本地候选哈希值对应的广播时刻之前是否接收到外地候选哈希值,若是,则执行步骤402,若否,则执行步骤403;
在当前节点按照第一算法确定本地候选哈希值对应的广播时刻之后,当前节点可以判断在本地候选哈希值对应的广播时刻之前是否接收到外地候选哈希值,若是,则执行步骤402,若否,则执行步骤403。
402、当前节点在本地候选哈希值对应的广播时刻不执行向区块链广播本地候选哈希值的步骤;
若当前节点判定接收到外地候选哈希值,则当前节点在本地候选哈希值对应的广播时刻可以不向区块链广播本地候选哈希值。
403、当前节点在本地候选哈希值对应的广播时刻执行向区块链广播本地候选哈希值的步骤。
若当前节点判定在本地候选哈希值对应的广播时刻之前未接收到外地候选哈希值,则当前节点可以在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值。
由于备选哈希值为优先到达的外地候选哈希值、目标哈希值为外地候选哈希值和本地候选哈希值中对应的广播时刻最早的候选哈希值,若当前节点在本地候选哈希值对应的广播时刻之前接收到外地候选哈希值,则表明当前节点的本地候选哈希值对应的广播时刻晚于接收到的外地候选哈希值对应的广播时刻,也就是说,当前节点的本地候选哈希值一定不是目标哈希值,因此,和广播过程只包括在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值相比,图4对应的实施例,有利于减少区块链中数据的传输与存储负荷。
区块链中有些节点为了成为记账节点,可能提前广播候选哈希值,这些候选哈希值均应被判定为无效的哈希值,无法成为当前节点选择的目标哈希值。为此,当前节点接收到其他节点广播的候选哈希值时,需要首先验证接收到的候选哈希值的有效性,并将有效的候选哈希值作为外地候选哈希值,应用于本发明方法中的广播过程和选择过程中。因此,优选的,上述实施例中所提到的外地候选哈希值应为当前节点接收到的、区块链中当前节点以外的其它节点广播的、有效的候选哈希值。关于验证接收到的候选哈希值的有效性的一种可能的方法,请参阅图5,当前节点接收到区块链中当前节点以外的其它节点广播的候选哈希值时,本发明方法还包括:
501、当前节点按照第一算法确定候选哈希值对应的广播时刻;
当前节点接收到区块链中其它节点广播的候选哈希值时,可以按照第一算法确定候选哈希值对应的广播时刻。
502、当前节点判断候选哈希值对应的广播时刻是否早于当前时刻,若否,则执行步骤503,若是,则执行步骤504;
当前节点确定候选哈希值对应的广播时刻之后,可以判断候选哈希值对应的广播时刻是否早于当前时刻,或者,是否早于对该候选哈希值的接收时刻,若否,则执行步骤503,若是,则执行步骤504。
503、当前节点判定候选哈希值无效;
若当前节点判定候选哈希值对应的广播时刻不早于当前时刻,表明该候选哈希值对应的节点提前广播该候选哈希值,因此,可以判定该候选哈希值无效,不将其作为外地候选哈希值。
504、当前节点判定候选哈希值有效,将其作为外地候选哈希值。
若当前节点判定候选哈希值对应的广播时刻早于当前时刻,表明该候选哈希值对应的节点很可能按照规则在其本地候选哈希值对应的广播时刻进行广播,因此,当前节点可以判定该候选哈希值有效,将其作为外地候选哈希值。
上面对本发明实施例中的基于抽签机制的共识建立方法进行了描述,下面对本发明实施例中的基于抽签机制的共识建立装置进行描述,本发明实施例中的基于抽签机制的共识建立装置应用于区块链中的任意一个节点,为了方便描述,将任意一个节点称作当前节点。
请参阅图6,本发明实施例中基于抽签机制的共识建立装置6的一个实施例包括:
获取模块601,用于获取区块链中末位区块的记账节点广播的第一数据,第一数据包括准备与末位区块连接的待接入区块的交易数据;
签名模块602,用于利用本地私钥对第一数据的哈希值进行签名,得到第二数据;
运算模块603,用于对第二数据进行哈希运算,得到本地候选哈希值;
第一确定模块604,用于按照第一算法确定本地候选哈希值对应的广播时刻,在第一算法中,不同的哈希值对应于不同的广播时刻;
广播模块605,用于在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值;
第二确定模块606,用于根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,外地候选哈希值为当前节点接收到的、区块链中当前节点以外的其它节点广播的候选哈希值;
选择模块607,用于从本地候选哈希值和备选哈希值中选择目标哈希值,目标哈希值对应的节点为待接入区块的记账节点。
可选的,在本发明的一些实施例中,第二确定模块606可以具体包括:
第一选择单元6061,用于选择优先接收到的外地候选哈希值作为备选哈希值;
选择模块607可以具体包括:
第二选择单元6071,用于从本地候选哈希值和备选哈希值中选择对应的广播时刻最早的哈希值作为目标哈希值。
可选的,在本发明的一些实施例中,请参阅图7,基于抽签机制的共识建立装置6还可以包括第一判断模块608,用于在第一确定模块604按照第一算法确定本地候选哈希值对应的广播时刻之后,判断在本地候选哈希值对应的广播时刻之前是否接收到外地候选哈希值,若是,则不触发广播模块605,若否,则触发广播模块605。
可选的,在本发明的一些实施例中,第一确定模块604可以具体包括:
计算单元6041,用于按照第二算法计算本地候选哈希值对应的延迟时长,在第二算法中,哈希值不同,则与其对应的延迟时长不同;
确定单元6042,用于根据世界时间、延迟时长和预设的共识间隔时长确定本地候选哈希值对应的广播时刻。
可选的,在本发明的一些实施例中,请参阅图8,基于抽签机制的共识建立装置6还可以包括:
第三确定模块609,用于当当前节点接收到区块链中当前节点以外的其它节点广播的候选哈希值时,按照第一算法确定候选哈希值对应的广播时刻;
第二判断模块610,用于判断候选哈希值对应的广播时刻是否早于当前时刻;
第一判定模块611,用于当第二判断模块610判定候选哈希值对应的广播时刻不早于当前时刻时,判定候选哈希值无效,不作为外地候选哈希值;
第二判定模块612,用于当第二判断模块610判定候选哈希值对应的广播时刻早于当前时刻时,判定候选哈希值有效,作为外地候选哈希值。
上面从模块化功能实体的角度对本发明实施例中的基于抽签机制的共识建立装置进行了描述,下面从硬件处理的角度对本发明实施例中的计算机装置进行描述:
参考图9,计算机装置9包括:电源910、存储器920、处理器930、有线或无线网络接口940以及存储在存储器中并可在处理器上运行的计算机程序。处理器930执行计算机程序时可以实现如下步骤:
获取区块链中末位区块的记账节点广播的第一数据,第一数据包括准备与末位区块连接的待接入区块的交易数据;
利用本地私钥对第一数据的哈希值进行签名,得到第二数据;
对第二数据进行哈希运算,得到本地候选哈希值;
按照第一算法确定本地候选哈希值对应的广播时刻,在第一算法中,不同的哈希值对应于不同的广播时刻;
在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值;
根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,外地候选哈希值为当前节点接收到的、区块链中当前节点以外的其它节点广播的候选哈希值;
从本地候选哈希值和备选哈希值中选择目标哈希值,目标哈希值对应的节点为待接入区块的记账节点。
在本发明的一些实施例中,处理器930执行计算机程序时还可以实现如下步骤:
选择优先接收到的外地候选哈希值作为备选哈希值;
从本地候选哈希值和备选哈希值中选择目标哈希值包括:
从本地候选哈希值和备选哈希值中选择对应的广播时刻最早的哈希值作为目标哈希值。
在本发明的一些实施例中,处理器930执行计算机程序时还可以实现如下步骤:
在按照第一算法确定本地候选哈希值对应的广播时刻之后,判断在本地候选哈希值对应的广播时刻之前是否接收到外地候选哈希值;
若是,则在本地候选哈希值对应的广播时刻不执行向区块链广播本地候选哈希值的步骤;
若否,则在本地候选哈希值对应的广播时刻执行向区块链广播本地候选哈希值的步骤。
在本发明的一些实施例中,第一数据还可以包括世界时间,处理器930执行计算机程序时还可以实现如下步骤:
按照第一算法确定本地候选哈希值对应的广播时刻包括:
按照第二算法计算本地候选哈希值对应的延迟时长,在第二算法中,哈希值不同,则与其对应的延迟时长不同;
根据世界时间、延迟时长和预设的共识间隔时长确定本地候选哈希值对应的广播时刻。
在本发明的一些实施例中,外地候选哈希值可以为当前节点接收到的、区块链中当前节点以外的其它节点广播的、有效的候选哈希值,处理器930执行计算机程序时还可以实现如下步骤:
当接收到区块链中当前节点以外的其它节点广播的候选哈希值时,方法还包括:
按照第一算法确定候选哈希值对应的广播时刻;
判断候选哈希值对应的广播时刻是否早于当前时刻;
若否,则判定候选哈希值无效。
所述计算机装置9可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。示例性的,计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述计算机装置中的执行过程。
本领域技术人员可以理解,图9中示出的结构并不构成对计算机装置9的限定,计算机装置9可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如所述计算机装置还可以包括输入输出设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种区块链系统,所述区块链系统包括多个节点,所述节点至少可以包括如上述说明的计算机装置。更多的细节,可以一并参照前述实施例中的描述。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
获取区块链中末位区块的记账节点广播的第一数据,第一数据包括准备与末位区块连接的待接入区块的交易数据;
利用本地私钥对第一数据的哈希值进行签名,得到第二数据;
对第二数据进行哈希运算,得到本地候选哈希值;
按照第一算法确定本地候选哈希值对应的广播时刻,在第一算法中,不同的哈希值对应于不同的广播时刻;
在本地候选哈希值对应的广播时刻向区块链广播本地候选哈希值;
根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,外地候选哈希值为当前节点接收到的、区块链中当前节点以外的其它节点广播的候选哈希值;
从本地候选哈希值和备选哈希值中选择目标哈希值,目标哈希值对应的节点为待接入区块的记账节点。
在本发明的一些实施例中,计算机程序被处理器执行时,还可以实现如下步骤:
选择优先接收到的外地候选哈希值作为备选哈希值;
从本地候选哈希值和备选哈希值中选择目标哈希值包括:
从本地候选哈希值和备选哈希值中选择对应的广播时刻最早的哈希值作为目标哈希值。
在本发明的一些实施例中,计算机程序被处理器执行时,还可以实现如下步骤:
在按照第一算法确定本地候选哈希值对应的广播时刻之后,判断在本地候选哈希值对应的广播时刻之前是否接收到外地候选哈希值;
若是,则在本地候选哈希值对应的广播时刻不执行向区块链广播本地候选哈希值的步骤;
若否,则在本地候选哈希值对应的广播时刻执行向区块链广播本地候选哈希值的步骤。
在本发明的一些实施例中,第一数据还可以包括世界时间,计算机程序被处理器执行时,还可以实现如下步骤:
按照第一算法确定本地候选哈希值对应的广播时刻包括:
按照第二算法计算本地候选哈希值对应的延迟时长,在第二算法中,哈希值不同,则与其对应的延迟时长不同;
根据世界时间、延迟时长和预设的共识间隔时长确定本地候选哈希值对应的广播时刻。
在本发明的一些实施例中,外地候选哈希值可以为当前节点接收到的、区块链中当前节点以外的其它节点广播的、有效的候选哈希值,计算机程序被处理器执行时,还可以实现如下步骤:
当接收到区块链中当前节点以外的其它节点广播的候选哈希值时,方法还包括:
按照第一算法确定候选哈希值对应的广播时刻;
判断候选哈希值对应的广播时刻是否早于当前时刻;
若否,则判定候选哈希值无效。
所述计算机装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于抽签机制的共识建立方法,其特征在于,包括:
当前节点获取区块链中末位区块的记账节点广播的第一数据,所述第一数据包括准备与所述末位区块连接的待接入区块的交易数据;
所述当前节点利用本地私钥对所述第一数据的哈希值进行签名,得到第二数据;
所述当前节点对所述第二数据进行哈希运算,得到本地候选哈希值;
所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻,在所述第一算法中,不同的哈希值对应于不同的广播时刻;
所述当前节点在所述本地候选哈希值对应的广播时刻向所述区块链广播所述本地候选哈希值;
所述当前节点根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的候选哈希值;
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择目标哈希值,所述目标哈希值对应的节点为所述待接入区块的记账节点;
所述第一数据还包括世界时间;
所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻包括:
所述当前节点按照第二算法计算所述本地候选哈希值对应的延迟时长,在所述第二算法中,哈希值不同,则与其对应的延迟时长不同;
所述当前节点根据所述世界时间、所述延迟时长和预设的共识间隔时长确定所述本地候选哈希值对应的广播时刻;
所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的、有效的候选哈希值;
当所述当前节点接收到所述区块链中所述当前节点以外的其它节点广播的候选哈希值时,所述方法还包括:
所述当前节点按照第一算法确定所述候选哈希值对应的广播时刻;
所述当前节点判断所述候选哈希值对应的广播时刻是否早于当前时刻;
若否,则判定所述候选哈希值无效,不作为外地候选哈希值;
若是,则判定所述候选哈希值有效,作为外地候选哈希值。
2.根据权利要求1所述的共识建立方法,其特征在于,所述当前节点根据接收到外地候选哈希值的时间先后顺序确定备选哈希值包括:
所述当前节点选择优先接收到的所述外地候选哈希值作为备选哈希值;
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择目标哈希值包括:
所述当前节点从所述本地候选哈希值和所述备选哈希值中选择对应的广播时刻最早的哈希值作为所述目标哈希值。
3.根据权利要求1所述的共识建立方法,其特征在于,在所述当前节点按照第一算法确定所述本地候选哈希值对应的广播时刻之后,所述方法还包括:
所述当前节点判断在所述本地候选哈希值对应的广播时刻之前是否接收到所述外地候选哈希值;
若是,则所述当前节点在所述本地候选哈希值对应的广播时刻不执行向所述区块链广播所述本地候选哈希值的步骤;
若否,则所述当前节点在所述本地候选哈希值对应的广播时刻执行向所述区块链广播所述本地候选哈希值的步骤。
4.一种基于抽签机制的共识建立装置,应用于区块链中的当前节点,其特征在于,包括:
获取模块,用于获取所述区块链中末位区块的记账节点广播的第一数据,所述第一数据包括准备与所述末位区块连接的待接入区块的交易数据;
签名模块,用于利用本地私钥对所述第一数据的哈希值进行签名,得到第二数据;
运算模块,用于对所述第二数据进行哈希运算,得到本地候选哈希值;
第一确定模块,用于按照第一算法确定所述本地候选哈希值对应的广播时刻,在所述第一算法中,不同的哈希值对应于不同的广播时刻;
广播模块,用于在所述本地候选哈希值对应的广播时刻向所述区块链广播所述本地候选哈希值;
第二确定模块,用于根据接收到外地候选哈希值的时间先后顺序确定备选哈希值,所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的候选哈希值;
选择模块,用于从所述本地候选哈希值和所述备选哈希值中选择目标哈希值,所述目标哈希值对应的节点为所述待接入区块的记账节点;
所述第一数据还包括世界时间;
所述第一确定模块包括:
计算单元,用于按照第二算法计算所述本地候选哈希值对应的延迟时长,在所述第二算法中,哈希值不同,则与其对应的延迟时长不同;
确定单元,用于根据所述世界时间、所述延迟时长和预设的共识间隔时长确定所述本地候选哈希值对应的广播时刻;
所述外地候选哈希值为所述当前节点接收到的、所述区块链中所述当前节点以外的其它节点广播的、有效的候选哈希值;
所述装置还包括:
第三确定模块,用于当所述当前节点接收到所述区块链中所述当前节点以外的其它节点广播的候选哈希值时,按照第一算法确定所述候选哈希值对应的广播时刻;
第二判断模块,用于判断所述候选哈希值对应的广播时刻是否早于当前时刻;
第一判定模块,用于当所述第二判断模块判定所述候选哈希值对应的广播时刻不早于当前时刻时,判定所述候选哈希值无效,不作为外地候选哈希值;
第二判定模块,用于当所述第二判断模块判定所述候选哈希值对应的广播时刻早于当前时刻时,判定所述候选哈希值有效,作为外地候选哈希值。
5.根据权利要求4所述的共识建立装置,其特征在于,所述第二确定模块包括:
第一选择单元,用于选择优先接收到的所述外地候选哈希值作为备选哈希值;
所述选择模块包括:
第二选择单元,用于从所述本地候选哈希值和所述备选哈希值中选择对应的广播时刻最早的哈希值作为所述目标哈希值。
6.一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-3中任意一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-3中任意一项所述方法的步骤。
8.一种区块链系统,其特征在于,所述区块链系统包括多个节点,所述节点包括如权利要求6所述的计算机装置。
CN201810297670.2A 2018-03-30 2018-03-30 基于抽签机制的共识建立方法、装置及可读存储介质 Active CN108509615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810297670.2A CN108509615B (zh) 2018-03-30 2018-03-30 基于抽签机制的共识建立方法、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810297670.2A CN108509615B (zh) 2018-03-30 2018-03-30 基于抽签机制的共识建立方法、装置及可读存储介质

Publications (2)

Publication Number Publication Date
CN108509615A CN108509615A (zh) 2018-09-07
CN108509615B true CN108509615B (zh) 2022-04-19

Family

ID=63380453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810297670.2A Active CN108509615B (zh) 2018-03-30 2018-03-30 基于抽签机制的共识建立方法、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN108509615B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110910242B (zh) * 2018-09-14 2022-12-02 北京布洛城科技有限公司 区块链生成方法、装置、终端设备及存储介质
CN109344630B (zh) * 2018-09-18 2021-07-02 百度在线网络技术(北京)有限公司 区块生成方法、装置、设备和存储介质
CN109167661B (zh) * 2018-09-27 2021-04-13 福建福链科技有限公司 一种应用于联盟链的拜占庭容错共识方法及终端
CN111104678B (zh) * 2018-10-25 2022-03-18 北京国盾量子信息技术有限公司 一种区块链共识方法及装置
CN110210865A (zh) * 2019-06-17 2019-09-06 北京艾摩瑞策科技有限公司 基于区块链的打包方法及装置
CN110545170A (zh) * 2019-09-16 2019-12-06 福建中科中欣智能科技有限公司 一种基于密码抽签的区块链共识方法和装置以及设备
CN110968644A (zh) * 2019-11-29 2020-04-07 腾讯科技(深圳)有限公司 一种数据处理方法以及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566124B (zh) * 2017-08-24 2020-06-19 深圳市易成自动驾驶技术有限公司 基于哈希运算的共识建立方法、区块链系统及存储介质
CN107742352B (zh) * 2017-09-20 2018-08-24 黄玉宇 基于区块链及智能合约的去中心化抽签/排队方法及系统
CN107743064A (zh) * 2017-09-28 2018-02-27 深圳市易成自动驾驶技术有限公司 区块链的共识方法和系统

Also Published As

Publication number Publication date
CN108509615A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN108509615B (zh) 基于抽签机制的共识建立方法、装置及可读存储介质
CN107566124B (zh) 基于哈希运算的共识建立方法、区块链系统及存储介质
CN107171810B (zh) 区块链的验证方法及装置
CN108683539B (zh) 区块链网络的管理方法、装置、介质及电子设备
CN109034813B (zh) 代表节点设备选举方法、装置、计算机设备及存储介质
CN107276765B (zh) 区块链中共识的处理方法及装置
CN108512652B (zh) 基于时间证明的去中心化共识方法、系统及区块链系统
US20200374288A1 (en) Block chain-based multi-chain management method and system, electronic device, and storage medium
CN108734028B (zh) 基于区块链的数据管理方法、区块链节点及存储介质
CN108512939B (zh) 一种区块链共识方法、装置及相关设备
CN111698315B (zh) 针对区块的数据处理方法、数据处理装置及计算机设备
CN111163130B (zh) 一种网络服务系统及其数据传输方法
CN111683118B (zh) 基于区块链的共识方法、装置、主节点设备及从节点设备
CN110177124A (zh) 基于区块链的身份认证方法及相关设备
CN113452747B (zh) 可扩展和安全的共识方法、系统、存储介质、智能终端
CN111461720B (zh) 基于区块链的身份验证方法、装置、存储介质及电子设备
CN110266763A (zh) 跨网段互连的区块链网络实现方法、系统及存储介质
CN109787867B (zh) 区块生成方法、装置、计算机设备和存储介质
CN112749968B (zh) 基于区块链的业务数据记录方法及装置
CN112134883B (zh) 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品
CN110597922A (zh) 数据处理方法、装置、终端及存储介质
CN110990790B (zh) 一种数据处理方法及设备
CN110930254A (zh) 基于区块链的数据处理方法、装置、终端及介质
CN110351362A (zh) 数据验证方法、设备及计算机可读存储介质
CN113542405A (zh) 基于区块链的网络通信系统、方法、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant