CN113489743B - 应用于区块链***的共识实现方法及装置 - Google Patents

应用于区块链***的共识实现方法及装置 Download PDF

Info

Publication number
CN113489743B
CN113489743B CN202110840784.9A CN202110840784A CN113489743B CN 113489743 B CN113489743 B CN 113489743B CN 202110840784 A CN202110840784 A CN 202110840784A CN 113489743 B CN113489743 B CN 113489743B
Authority
CN
China
Prior art keywords
node
data
account book
ledger
check
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
CN202110840784.9A
Other languages
English (en)
Other versions
CN113489743A (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.)
Guangdong Chenyi Info Technology Co ltd
Original Assignee
Guangdong Chenyi Info 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 Guangdong Chenyi Info Technology Co ltd filed Critical Guangdong Chenyi Info Technology Co ltd
Priority to CN202110840784.9A priority Critical patent/CN113489743B/zh
Publication of CN113489743A publication Critical patent/CN113489743A/zh
Application granted granted Critical
Publication of CN113489743B publication Critical patent/CN113489743B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/602Providing cryptographic facilities or services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了应用于区块链***的共识实现方法及装置,包括:第一节点接收第二节点发布的加密后账本并验证所述第二节点的节点身份,当验证通过时,从加密后账本中提取账本数据、用于校验账本连续性的第一校验数据及用于校验账本数据准确性的第二校验数据;第一节点根据第一校验数据及第二校验数据对账本数据执行校验操作;当对账本数据校验通过时,第一节点对账本数据以及其对账本数据的校验信息执行上链操作,并将账本数据及该校验信息广播至区块链***的所有其它节点,以使其它节点对其接收到的账本数据及校验信息执行上链操作。可见,本发明不仅能够实现账本上链100%共识,提高共识程度,还能够大大减少跨节点的对比校验工作,降低算力冗余。

Description

应用于区块链***的共识实现方法及装置
技术领域
本发明涉及区块链技术领域,尤其涉及一种应用于区块链***的共识实现方法及装置。
背景技术
新一代区块链操作***是快速构建普适信任、建设普适共识强有力的基础设施,也是数字新基建的核心内容之一,同时也是诚信社会构建、营商环境质的改进、数据及服务全域流动的强有力基石。其不仅能够有力促进社会经济活动的规模、质量及区域GDP的增长,还能够大幅度降低政企协同、产业促进及企业运作的成本与风险,以进一步提升社会治理、政务服务、舆情管控的可信、精准和高效的质量及水平。
其中,共识算法是新一代区块链操作***最为核心的内容,新一代区块链操作***对共识算法有颠覆性的要求,既要消除“算力攻击”的风险,又要使得“算力冗余”大幅度降下来。当前,应用于区块链***的共识算法多以传统拜占庭算法及其沿用机制进行改制的算法实现:当其中一个节点(也即账本服务器)生成新的账本并发布时,其它节点获得账本后与除自身以外的其它节点进行校验,当校验达到一定一致度的情况下确定账本有效,然后所有节点一起上链。然而,实践发现,以拜占庭算法及其改良算法的共识机制一方面需要多节点校验账本,当节点数量增多时,算力冗余指数大幅度上升,另一方面共识程度不高。可见,如何提供一种新的共识方法以降低算力冗余、提高共识程度显得尤为重要。
发明内容
本发明提供了一种应用于区块链***的共识实现方法及装置,能够实现账本上链100%共识,提高共识程度,还能够大大减少跨节点的对比校验工作,降低算力冗余。
为了解决上述技术问题,本发明第一方面公开了一种应用于区块链***的共识实现方法,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述方法包括:
第一节点接收第二节点发布的加密后账本,所述加密后账本是所述第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,所述第一节点及所述第二节点为所述区块链***中的节点且所述第一节点为本次具有记账权限的节点;
所述第一节点验证所述第二节点的节点身份,当对所述第二节点的节点身份验证通过时,从所述加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验所述账本数据准确性的第二校验数据;
所述第一节点根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验;
当对所述账本数据校验通过时,所述第一节点对所述账本数据以及其对所述账本数据的校验信息执行上链操作,并将所述账本数据及所述校验信息广播至所述区块链***的所有其它节点,以使每个所述其它节点对所述账本数据及所述校验信息执行上链操作。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
当对所述账本数据校验不通过时,所述第一节点获取所述账本数据的源节点信息,并对所述源节点信息执行上链操作,以将所述账本数据的源节点信息添加至节点黑名单中;
其中,所述账本数据的源节点信息为所述第二节点的节点信息。
作为一种可选的实施方式,在本发明第一方面中,所述第一节点根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验,包括:
所述第一节点校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,确定对所述账本数据校验通过;或者,
所述第一节点根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,确定对所述账本数据校验通过;
当校验出所述账本数据不正确或者所述第一校验数据与所述最新哈希值不一致时,所述第一节点确定对所述账本数据校验不通过。
作为一种可选的实施方式,在本发明第一方面中,所述第一校验数据包括所述加密后账本的前置哈希值,所述第二校验数据包括所述加密后账本对应的账本随机数以及所述加密后账本的当前哈希值。
作为一种可选的实施方式,在本发明第一方面中,所述第一节点根据所述第二校验数据校验所述账本数据是否正确,包括:
所述第一节点通过所述最新哈希值与所述账本随机数、所述账本数据进行哈希运算,得到校验哈希值;
所述第一节点判断所述校验哈希值与所述当前哈希值是否一致,当所述校验哈希值与所述当前哈希值一致时,确定对所述账本数据校验正确;当所述校验哈希值与所述当前哈希值不一致时,确定对所述账本数据校验不正确。
作为一种可选的实施方式,在本发明第一方面中,所述第一节点验证所述第二节点的节点身份,包括:
所述第一节点通过确定出的公钥对所述加密后账本执行解密操作,得到解密结果,当所述解密结果包括所述第二节点唯一对应的身份认证信息时,确定对所述第二节点的节点身份验证通过;
其中,所述第一节点验证所述第二节点的节点身份之前,所述方法还包括:
所述第一节点根据所述第二节点的节点信息,判断所述第二节点是否为链上存储的节点黑名单中的节点;
当判断结果为否时,所述第一节点执行所述的验证所述第二节点的节点身份的步骤。
作为一种可选的实施方式,在本发明第一方面中,所述第一节点是通过以下方式确定出的:
由上一次具有记账权限的目标节点收集除所述目标节点之外具有投票权限的所有节点中每个节点反馈的投票结果,并根据收集到的所有所述投票结果从除所述目标节点及所述第二节点之外的剩余节点中选择得票数量最高的节点,作为针对所述第二节点新生成的所述账本具有记账权限的所述第一节点。
本发明第二方面公开了一种应用于区块链***的共识实现装置,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述装置应用于所述区块链***包括的第一节点中且所述第一节点为本次具有记账权限的节点,所述装置包括:
接收模块,用于接收第二节点发布的加密后账本,所述加密后账本是所述第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,所述第二节点为所述区块链***中的节点;
身份验证模块,用于验证所述第二节点的节点身份;
信息提取模块,用于当所述身份验证模块对所述第二节点的节点身份验证通过时,从所述加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验所述账本数据准确性的第二校验数据;
校验模块,用于根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验;
上链模块,用于当所述校验模块对所述账本数据校验通过时,对所述账本数据以及其对所述账本数据的校验信息执行上链操作;
广播模块,用于当所述校验模块对所述账本数据校验通过时,或者,在所述上链模块对所述账本数据以及其对所述账本数据的校验信息执行上链操作之后,将所述账本数据及所述校验信息广播至所述区块链***的所有其它节点,以使每个所述其它节点对所述账本数据及所述校验信息执行上链操作。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
信息获取模块,用于当所述校验模块对所述账本数据校验不通过时,获取所述账本数据的源节点信息,其中,所述账本数据的源节点信息为所述第二节点的节点信息;
所述上链模块,还用于对所述源节点信息执行上链操作,以将所述账本数据的源节点信息添加至节点黑名单中。
作为一种可选的实施方式,在本发明第二方面中,所述校验模块根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验的具体方式包括:
校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,确定对所述账本数据校验通过;或者,
根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,确定对所述账本数据校验通过;
当校验出所述账本数据不正确或者所述第一校验数据与所述最新哈希值不一致时,确定对所述账本数据校验不通过。
作为一种可选的实施方式,在本发明第二方面中,所述第一校验数据包括所述加密后账本的前置哈希值,所述第二校验数据包括所述加密后账本对应的账本随机数以及所述加密后账本的当前哈希值。
作为一种可选的实施方式,在本发明第二方面中,所述校验模块根据所述第二校验数据校验所述账本数据是否正确的具体方式包括:
通过所述最新哈希值与所述账本随机数、所述账本数据进行哈希运算,得到校验哈希值;
判断所述校验哈希值与所述当前哈希值是否一致,当所述校验哈希值与所述当前哈希值一致时,确定对所述账本数据校验正确;当所述校验哈希值与所述当前哈希值不一致时,确定对所述账本数据校验不正确。
作为一种可选的实施方式,在本发明第二方面中,所述身份验证模块验证所述第二节点的节点身份的具体方式包括:
通过确定出的公钥对所述加密后账本执行解密操作,得到解密结果,当所述解密结果包括所述第二节点唯一对应的身份认证信息时,确定对所述第二节点的节点身份验证通过;
以及,所述装置还包括:
判断模块,用于在所述身份验证模块验证所述第二节点的节点身份之前,根据所述第二节点的节点信息,判断所述第二节点是否为链上存储的节点黑名单中的节点;当判断结果为否时,触发所述身份验证模块执行所述的验证所述第二节点的节点身份的操作。
作为一种可选的实施方式,在本发明第二方面中,所述第一节点是通过以下方式确定出的:
由上一次具有记账权限的目标节点收集除所述目标节点之外具有投票权限的所有节点中每个节点反馈的投票结果,并根据收集到的所有所述投票结果从除所述目标节点及所述第二节点之外的剩余节点中选择得票数量最高的节点,作为针对所述第二节点新生成的所述账本具有记账权限的所述第一节点。
本发明第三方面公开了另一种应用于区块链***的共识实现装置,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述装置应用于所述区块链***包括的第一节点中且所述第一节点为本次具有记账权限的节点,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的应用于区块链***的共识实现方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的应用于区块链***的共识实现方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,第一节点接收第二节点发布的加密后账本并验证所述第二节点的节点身份,当验证通过时,从加密后账本中提取账本数据、用于校验账本连续性的第一校验数据及用于校验账本数据准确性的第二校验数据;第一节点根据第一校验数据及第二校验数据对账本数据执行校验操作;当对账本数据校验通过时,第一节点对账本数据以及其对账本数据的校验信息执行上链操作,并将账本数据及该校验信息广播至区块链***的所有其它节点,以使其它节点对其接收到的账本数据及校验信息执行上链操作。可见,本发明不仅能够实现账本上链100%共识,提高共识程度,还能够将节点自身的校验信息上链,大大减少跨节点的对比校验工作,降低算力冗余。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种应用于区块链***的共识实现方法的流程意图;
图2是本发明实施例公开的另一种应用于区块链***的共识实现方法的流程意图;
图3是本发明实施例公开的一种应用于区块链***的共识实现装置的结构示意图;
图4是本发明实施例公开的另一种应用于区块链***的共识实现装置的结构示意图;
图5是本发明实施例公开的又一种应用于区块链***的共识实现装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种应用于区块链***的共识实现方法及装置,不仅能够实现账本上链100%共识,提高共识程度,还能够将节点自身的校验信息上链,大大减少跨节点的对比校验工作,降低算力冗余。此外,还能够当接收到账本的节点发现账本错误时,直接将账本的源节点信息公布至相应链上(如主链上),以降低算力攻击的风险,提高区块链***中账本数据的安全性及准确性。以下分别进行详细说明。
为了更好的理解本发明所描述的应用于区块链***的共识实现方法及装置,首先对区块链***中的重点内容进行描述。该区块链***可以包括多个账本节点(也可以理解为账本服务器),此外,还包括主链服务器、智能合约服务器、以及级联账本服务器等,每个账本节点可以从区块链***的CA模块获得该节点唯一对应的身份认证信息(如数字身份证)。本发明所描述的应用于区块链***的共识实现方法具体是在上一个账本节点将新的账本数据同步至下一级账本节点时触发的,也即:下一级账本节点在接收到新的账本时所执行的共识识别流程,以下通过详细的实施例分别进行说明。需要说明的是,下述实施例中提及的,节点均为账本节点。
实施例一
请参阅图1,图1是本发明实施例公开的一种应用于区块链***的共识实现方法的流程意图。其中,图1所描述的方法可以应用于区块链***中,该区块链***包括多个节点,每个节点均存与之唯一对应的身份认证信息。如图1所示,该应用于区块链***的共识实现方法可以包括如下步骤:
101、第一节点接收第二节点发布的加密后账本。
其中,加密后账本是第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,第一节点及第二节点为区块链***中的节点且第一节点为本次具有记账权限的节点。具体的,当第二节点有新的账本生成时,区块链***从剩余节点中选择本次具有记账权限的节点,作为第一节点,或者,区块链***也可以在上次生成的账本上链完毕时选择出的下一次具有记账权限的节点,作为第一节点,优选为后者,这样能够提前确定记账节点,进而能够在有新的账本生成时直接由确定出的记账节点执行相应操作,有利于提高共识实现效率。
其中,第二节点对新生成的账本进行加密具体为:使用第二节点唯一对应的身份认证信息所对应的私钥对新生成的账本进行加密。
本发明实施例中,第一节点为区块链***中的其中一个账本节点(也成账本服务器),且第一节点、第二节点中的第一、第二只是用于区分两个不同的节点,不用于表示节点间的先后顺序。
102、第一节点验证第二节点的节点身份,当对第二节点的节点身份验证通过时,从加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验账本数据准确性的第二校验数据。
103、第一节点根据第一校验数据及第二校验数据对账本数据进行校验。
104、当对账本数据校验通过时,第一节点对账本数据以及其对账本数据的校验信息执行上链操作,并将账本数据及校验信息广播至区块链***的所有其它节点,以使每个其它节点对账本数据及校验信息执行上链操作。
可见,实施本发明实施例所描述的方法,不仅能够实现账本上链100%共识,提高共识程度,还能够将节点自身的校验信息上链,大大减少跨节点的对比校验工作,降低算力冗余。
在一个可选的实施例中,第一节点根据第一校验数据及第二校验数据对账本数据进行校验,可以包括:
第一节点校验第一校验数据与第一节点记录的最新哈希值是否一致;当校验出第一校验数据与最新哈希值一致时,根据第二校验数据校验账本数据是否正确;当校验出账本数据正确时,确定对账本数据校验通过;或者,
第一节点根据第二校验数据校验账本数据是否正确;当校验出账本数据正确时,校验第一校验数据与第一节点记录的最新哈希值是否一致;当校验出第一校验数据与最新哈希值一致时,确定对账本数据校验通过;
当校验出账本数据不正确或者第一校验数据与最新哈希值不一致时,第一节点确定对账本数据校验不通过。
可选的,第一校验数据包括加密后账本的前置哈希值,第二校验数据包括加密后账本对应的账本随机数以及加密后账本的当前哈希值。
进一步可选的,第一节点根据第二校验数据校验账本数据是否正确,可以包括:
第一节点通过最新哈希值与账本随机数、账本数据进行哈希运算,得到校验哈希值;
第一节点判断校验哈希值与当前哈希值是否一致,当校验哈希值与当前哈希值一致时,确定对账本数据校验正确;当校验哈希值与当前哈希值不一致时,确定对账本数据校验不正确
可见,该可选的实施例提供了2种通过第一校验数据以及第二校验数据对账本数据进行校验的实现方式,且该2种可选的实现方式中优选为第一种,也即:先校验第一校验数据与第一节点记录的最新哈希值是否一致,在校验一致时在执行后续操作,在校验不一致时无需在通过第二校验数据校验账本数据的准确性,由于通过第二校验数据校验账本数据准确性需要涉及哈希运算及数据一致性校验,流程复杂,通过先校验第一校验数据与第一节点记录的最新哈希值是否一致且在校验出不一致时的情况下减少第一节点不必要的账本数据准确性校验操作,进而有利于减少第一节点的节点处理资源的浪费。此外,在对账本数据进行校验时,不仅需要校验账本数据准确性还需要校验账本连续性,提供了账本上链100%共识的实现方式,提高共识程度,且共识过程简单,还能够提高共识效率,有利于在实现账本上链100%共识的同时提高账本上链效率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种应用于区块链***的共识实现方法的流程意图。其中,图2所描述的方法可以应用于区块链***中,该区块链***包括多个节点,每个节点均存与之唯一对应的身份认证信息。如图2所示,该应用于区块链***的共识实现方法可以包括如下步骤:
201、第一节点接收第二节点发布的加密后账本。
其中,加密后账本是第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,第一节点及第二节点为区块链***中的节点且第一节点为本次具有记账权限的节点。
本发明实施例中,在执行完毕步骤201之后,可以直接触发执行步骤202。在其它可选的实施例中,在执行完毕步骤201之后,也可以直接触发执行步骤203。
202、第一节点根据第二节点的节点信息,判断第二节点是否为链上存储的节点黑名单中的节点,当步骤202的判断结果为是时,可以结束本次流程;当步骤202的判断结果为否时,可以触发执行步骤203。
203、第一节点验证第二节点的节点身份,当对第二节点的节点身份验证通过时,从加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验账本数据准确性的第二校验数据。
作为一种可选的实施方式,第一节点验证第二节点的节点身份,可以包括:
第一节点通过确定出的公钥对加密后账本执行解密操作,得到解密结果,当解密结果包括第二节点唯一对应的身份认证信息时,确定对第二节点的节点身份验证通过。
204、第一节点根据第一校验数据及第二校验数据对账本数据进行校验,当对账本数据校验通过时,触发执行步骤205;当对账本数据校验不通过时,触发执行步骤206。
205、第一节点对账本数据以及其对账本数据的校验信息执行上链操作,并将账本数据及校验信息广播至区块链***的所有其它节点,以使每个其它节点对账本数据及校验信息执行上链操作。
206、第一节点获取账本数据的源节点信息,并对源节点信息执行上链操作,以将账本数据的源节点信息添加至节点黑名单中。
其中,账本数据的源节点信息为上述第二节点的节点信息,且可以具体将账本数据的源节点信息添加至主链上的节点黑名单中。
可见,实施本发明实施例所描述的方法不仅能够实现账本上链100%共识,提高共识程度,还能够将节点自身的校验信息上链,大大减少跨节点的对比校验工作,降低算力冗余。此外,还能够当接收到账本的节点发现账本错误时,直接将账本的源节点信息公布至相应链上(如主链上),以降低算力攻击的风险,提高区块链***中账本数据的安全性及准确性。
在一个可选的实施例中,上述第一节点是通过以下方式确定出的:
由上一次具有记账权限的目标节点收集除目标节点之外具有投票权限的所有节点中每个节点反馈的投票结果,并根据收集到的所有投票结果从除目标节点及第二节点之外的剩余节点中选择得票数量最高的节点,作为针对第二节点新生成的账本具有记账权限的第一节点。
需要说明的是,上述第一节点的确定过程也可以由上一次具有记账权限的目标节点所指定的代理节点来实现,此时,具有投票权限的所有节点为除代理节点之外或者除代理节点及目标节点之外的具有投票权限的所有节点,选择得票数量最高的节点是具体是从除第二节点、代理节点及目标节点之外的剩余节点中选择。
进一步的,具有投票权限的所有节点可以理解为未包含在节点黑名单中的节点。
可见,该可选的实施例还能够无需所有节点通过计算出约定字符的方式争抢记账权限,只需由上一次具有记账权限的节点或者其指定的代理节点统计的剩余节点的投票结果即可,提高了确定出本次具有记账权限的节点(也即第一节点)的公平性,无需消耗大量的计算资源,有利于提高确定出具有记账权限的节点的效率,进而有利于提高将账本数据打包成区块并添加至区块链上的效率。
实施例三
请参阅图3,图3是本发明实施例公开的一种应用于区块链***的共识实现装置的结构示意图。其中,图3所描述的装置可以应用于区块链***包括的第一节点中且该第一节点为本次具有记账权限的节点,此外,区块链***还包括多个其它节点。如图3所示,该装置可以包括:
接收模块301,用于接收第二节点发布的加密后账本,加密后账本是第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,第二节点为区块链***中的节点;
身份验证模块302,用于验证第二节点的节点身份;
信息提取模块303,用于当身份验证模块302对第二节点的节点身份验证通过时,从加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验账本数据准确性的第二校验数据;
校验模块304,用于根据第一校验数据及第二校验数据对账本数据进行校验;
上链模块305,用于当校验模块304对账本数据校验通过时,对账本数据以及其对账本数据的校验信息执行上链操作;
广播模块306,用于当校验模块304对账本数据校验通过时,或者,在上链模块305对账本数据以及其对账本数据的校验信息执行上链操作之后,将账本数据及校验信息广播至区块链***的所有其它节点,以使每个其它节点对账本数据及校验信息执行上链操作。
可见,实施图3所描述的装置不仅能够实现账本上链100%共识,提高共识程度,还能够将节点自身的校验信息上链,大大减少跨节点的对比校验工作,降低算力冗余。
在一个可选的实施例中,如图4所示,该装置还可以包括:
信息获取模块307,用于当校验模块304对账本数据校验不通过时,获取账本数据的源节点信息,其中,账本数据的源节点信息为第二节点的节点信息;
上链模块305,还用于对源节点信息执行上链操作,以将账本数据的源节点信息添加至节点黑名单中。
可见,实施图4所描述的装置还能够当接收到账本的节点发现账本错误时,直接将账本的源节点信息公布至相应链上(如主链上),以降低算力攻击的风险,提高区块链***中账本数据的安全性及准确性。
在另一个可选的实施例中,校验模块304根据第一校验数据及第二校验数据对账本数据进行校验的具体方式包括:
校验第一校验数据与第一节点记录的最新哈希值是否一致;当校验出第一校验数据与最新哈希值一致时,根据第二校验数据校验账本数据是否正确;当校验出账本数据正确时,确定对账本数据校验通过;或者,
根据第二校验数据校验账本数据是否正确;当校验出账本数据正确时,校验第一校验数据与第一节点记录的最新哈希值是否一致;当校验出第一校验数据与最新哈希值一致时,确定对账本数据校验通过;
当校验出账本数据不正确或者第一校验数据与最新哈希值不一致时,确定对账本数据校验不通过。
在该可选的实施例中,可选的,第一校验数据包括加密后账本的前置哈希值,第二校验数据包括加密后账本对应的账本随机数以及加密后账本的当前哈希值。
进一步可选的,校验模块304根据第二校验数据校验账本数据是否正确可以包括:
通过上述最新哈希值与上述账本随机数、上述账本数据进行哈希运算,得到校验哈希值;
判断校验哈希值与上述当前哈希值是否一致,当校验哈希值与当前哈希值一致时,确定对账本数据校验正确;当校验哈希值与当前哈希值不一致时,确定对账本数据校验不正确。
可见,实施图3或图4所描述的装置提供了2种通过第一校验数据以及第二校验数据对账本数据进行校验的实现方式,且该2种可选的实现方式中优选为第一种,也即:先校验第一校验数据与第一节点记录的最新哈希值是否一致,在校验一致时在执行后续操作,在校验不一致时无需在通过第二校验数据校验账本数据的准确性,由于通过第二校验数据校验账本数据准确性需要涉及哈希运算及数据一致性校验,流程复杂,通过先校验第一校验数据与第一节点记录的最新哈希值是否一致且在校验出不一致时的情况下减少第一节点不必要的账本数据准确性校验操作,进而有利于减少第一节点的节点处理资源的浪费。此外,在对账本数据进行校验时,不仅需要校验账本数据准确性还需要校验账本连续性,提供了账本上链100%共识的实现方式,提高共识程度,且共识过程简单,还能够提高共识效率,有利于在实现账本上链100%共识的同时提高账本上链效率。
在又一个可选的实施例中,身份验证模块302验证第二节点的节点身份的具体方式包括:
通过确定出的公钥对加密后账本执行解密操作,得到解密结果,当解密结果包括第二节点唯一对应的身份认证信息时,确定对第二节点的节点身份验证通过。
可见,实施图3或图4所描述的装置还能够提高区块链***的记账安全性。
在又一个可选的实施例中,如图4所示,该装置还可以包括:
判断模块308,用于在身份验证模块302验证第二节点的节点身份之前,根据第二节点的节点信息,判断第二节点是否为链上存储的节点黑名单中的节点;当判断结果为否时,触发身份验证模块302执行上述的验证第二节点的节点身份的操作。
可见,实施图4所描述的装置还能够在接收到新的账本时首先判断发送账本的节点是否为节点黑名单中的节点,如果是,则结束流程,如果否,则继续后续操作,能够提高对发送账本的节点进行节点身份验证的可靠性。
在又一个可选的实施例中,上述第一节点是通过以下方式确定出的:
由上一次具有记账权限的目标节点收集除目标节点之外具有投票权限的所有节点中每个节点反馈的投票结果,并根据收集到的所有投票结果从除目标节点及第二节点之外的剩余节点中选择得票数量最高的节点,作为针对第二节点新生成的账本具有记账权限的第一节点。
需要说明的是,上述第一节点的确定过程也可以由上一次具有记账权限的目标节点所指定的代理节点来实现,此时,具有投票权限的所有节点为除代理节点之外或者除代理节点及目标节点之外的具有投票权限的所有节点,选择得票数量最高的节点是具体是从除第二节点、代理节点及目标节点之外的剩余节点中选择。
进一步的,具有投票权限的所有节点可以理解为未包含在节点黑名单中的节点。
可见,该可选的实施例还能够无需所有节点通过计算出约定字符的方式争抢记账权限,只需由上一次具有记账权限的节点或者其指定的代理节点统计的剩余节点的投票结果即可,提高了确定出本次具有记账权限的节点(也即第一节点)的公平性,无需消耗大量的计算资源,有利于提高确定出具有记账权限的节点的效率,进而有利于提高将账本数据打包成区块并添加至区块链上的效率。
实施例四
请参阅图5,图5是本发明实施例公开的又一种应用于区块链***的共识实现装置的结构示意图。其中,图5所描述的装置可以应用于区块链***包括的第一节点中且该第一节点为本次具有记账权限的节点,此外,区块链***还包括多个其它节点。如图5所示,该装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
其中,处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或实施例二所公开的应用于区块链***的共识实现方法中的步骤。
实施例五
本发明实施例公开了一种计算机存储介质,该计算机存储介质存储有计算机指令,该计算机指令被调用时,用于执行本发明实施例一或实施例二所公开的应用于区块链***的共识实现方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块展示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种应用于区块链***的共识实现方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

Claims (9)

1.一种应用于区块链***的共识实现方法,其特征在于,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述方法包括:
第一节点接收第二节点发布的加密后账本,所述加密后账本是所述第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,所述第一节点及所述第二节点为所述区块链***中的节点且所述第一节点为本次具有记账权限的节点;
所述第一节点验证所述第二节点的节点身份,当对所述第二节点的节点身份验证通过时,从所述加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验所述账本数据准确性的第二校验数据;
所述第一节点根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验;
当对所述账本数据校验通过时,所述第一节点对所述账本数据以及其对所述账本数据的校验信息执行上链操作,并将所述账本数据及所述校验信息广播至所述区块链***的所有其它节点,以使每个所述其它节点对所述账本数据及所述校验信息执行上链操作;
其中,所述第一节点根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验,包括:
所述第一节点校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,确定对所述账本数据校验通过;或者,
所述第一节点根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,确定对所述账本数据校验通过;
当校验出所述账本数据不正确或者所述第一校验数据与所述最新哈希值不一致时,所述第一节点确定对所述账本数据校验不通过。
2.根据权利要求1所述的应用于区块链***的共识实现方法,其特征在于,所述方法还包括:
当对所述账本数据校验不通过时,所述第一节点获取所述账本数据的源节点信息,并对所述源节点信息执行上链操作,以将所述账本数据的源节点信息添加至节点黑名单中;
其中,所述账本数据的源节点信息为所述第二节点的节点信息。
3.根据权利要求1所述的应用于区块链***的共识实现方法,其特征在于,所述第一校验数据包括所述加密后账本的前置哈希值,所述第二校验数据包括所述加密后账本对应的账本随机数以及所述加密后账本的当前哈希值。
4.根据权利要求3所述的应用于区块链***的共识实现方法,其特征在于,所述第一节点根据所述第二校验数据校验所述账本数据是否正确,包括:
所述第一节点通过所述最新哈希值与所述账本随机数、所述账本数据进行哈希运算,得到校验哈希值;
所述第一节点判断所述校验哈希值与所述当前哈希值是否一致,当所述校验哈希值与所述当前哈希值一致时,确定对所述账本数据校验正确;当所述校验哈希值与所述当前哈希值不一致时,确定对所述账本数据校验不正确。
5.根据权利要求4所述的应用于区块链***的共识实现方法,其特征在于,所述第一节点验证所述第二节点的节点身份,包括:
所述第一节点通过确定出的公钥对所述加密后账本执行解密操作,得到解密结果,当所述解密结果包括所述第二节点唯一对应的身份认证信息时,确定对所述第二节点的节点身份验证通过;
其中,所述第一节点验证所述第二节点的节点身份之前,所述方法还包括:
所述第一节点根据所述第二节点的节点信息,判断所述第二节点是否为链上存储的节点黑名单中的节点;
当判断结果为否时,所述第一节点执行所述的验证所述第二节点的节点身份的步骤。
6.根据权利要求1、2、3-5中任一项所述的应用于区块链***的共识实现方法,其特征在于,所述第一节点是通过以下方式确定出的:
由上一次具有记账权限的目标节点收集除所述目标节点之外具有投票权限的所有节点中每个节点反馈的投票结果,并根据收集到的所有所述投票结果从除所述目标节点及所述第二节点之外的剩余节点中选择得票数量最高的节点,作为针对所述第二节点新生成的所述账本具有记账权限的所述第一节点。
7.一种应用于区块链***的共识实现装置,其特征在于,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述装置应用于所述区块链***包括的第一节点中且所述第一节点为本次具有记账权限的节点,所述装置包括:
接收模块,用于接收第二节点发布的加密后账本,所述加密后账本是所述第二节点根据其唯一对应的身份认证信息对新生成的账本进行加密后得到的,所述第二节点为所述区块链***中的节点;
身份验证模块,用于验证所述第二节点的节点身份;
信息提取模块,用于当所述身份验证模块对所述第二节点的节点身份验证通过时,从所述加密后账本中提取账本数据、用于校验账本连续性的第一校验数据以及用于校验所述账本数据准确性的第二校验数据;
校验模块,用于根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验;
上链模块,用于当所述校验模块对所述账本数据校验通过时,对所述账本数据以及其对所述账本数据的校验信息执行上链操作;
广播模块,用于当所述校验模块对所述账本数据校验通过时,或者,在所述上链模块对所述账本数据以及其对所述账本数据的校验信息执行上链操作之后,将所述账本数据及所述校验信息广播至所述区块链***的所有其它节点,以使每个所述其它节点对所述账本数据及所述校验信息执行上链操作;
其中,所述校验模块根据所述第一校验数据及所述第二校验数据对所述账本数据进行校验的具体方式包括:
校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,确定对所述账本数据校验通过;或者,
根据所述第二校验数据校验所述账本数据是否正确;当校验出所述账本数据正确时,校验所述第一校验数据与所述第一节点记录的最新哈希值是否一致;当校验出所述第一校验数据与所述最新哈希值一致时,确定对所述账本数据校验通过;
当校验出所述账本数据不正确或者所述第一校验数据与所述最新哈希值不一致时,确定对所述账本数据校验不通过。
8.一种应用于区块链***的共识实现装置,其特征在于,所述区块链***包括多个节点,每个所述节点均存与之唯一对应的身份认证信息,所述装置应用于所述区块链***包括的第一节点中且所述第一节点为本次具有记账权限的节点,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-6任一项所述的应用于区块链***的共识实现方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,执行如权利要求1-6任一项所述的应用于区块链***的共识实现方法。
CN202110840784.9A 2021-07-26 2021-07-26 应用于区块链***的共识实现方法及装置 Active CN113489743B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110840784.9A CN113489743B (zh) 2021-07-26 2021-07-26 应用于区块链***的共识实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110840784.9A CN113489743B (zh) 2021-07-26 2021-07-26 应用于区块链***的共识实现方法及装置

Publications (2)

Publication Number Publication Date
CN113489743A CN113489743A (zh) 2021-10-08
CN113489743B true CN113489743B (zh) 2022-12-23

Family

ID=77943544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110840784.9A Active CN113489743B (zh) 2021-07-26 2021-07-26 应用于区块链***的共识实现方法及装置

Country Status (1)

Country Link
CN (1) CN113489743B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115168872B (zh) * 2022-09-07 2023-01-10 南方科技大学 基于去中心化信任的公有云下tee状态连续性保护方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864198A (zh) * 2017-11-07 2018-03-30 济南浪潮高新科技投资发展有限公司 一种基于深度学习训练任务的区块链共识方法
CN109481936A (zh) * 2018-10-26 2019-03-19 咪咕文化科技有限公司 一种区块链记账节点选择方法、装置及计算机可读存储介质
CN109672518A (zh) * 2019-03-02 2019-04-23 西安邮电大学 抗量子攻击的区块链的节点数据处理
CN111858751A (zh) * 2020-06-29 2020-10-30 深圳壹账通智能科技有限公司 基于区块链的数据存储方法及装置
CN112541758A (zh) * 2020-12-01 2021-03-23 鲁静 基于区块链的多轮投票式容错排序共识机制与方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108960837A (zh) * 2018-06-05 2018-12-07 上海和数软件有限公司 区块链共识验证方法、装置及计算机可读存储介质
CN110875893B (zh) * 2018-08-29 2022-03-08 深圳启元信息服务有限公司 共识验证方法、校验节点及区块链***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107864198A (zh) * 2017-11-07 2018-03-30 济南浪潮高新科技投资发展有限公司 一种基于深度学习训练任务的区块链共识方法
CN109481936A (zh) * 2018-10-26 2019-03-19 咪咕文化科技有限公司 一种区块链记账节点选择方法、装置及计算机可读存储介质
CN109672518A (zh) * 2019-03-02 2019-04-23 西安邮电大学 抗量子攻击的区块链的节点数据处理
CN111858751A (zh) * 2020-06-29 2020-10-30 深圳壹账通智能科技有限公司 基于区块链的数据存储方法及装置
CN112541758A (zh) * 2020-12-01 2021-03-23 鲁静 基于区块链的多轮投票式容错排序共识机制与方法

Also Published As

Publication number Publication date
CN113489743A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
CN109493221B (zh) 区块链中交易记录保密方法、设备、网络及存储介质
US11233656B2 (en) Method for mining a block in a decentralized blockchain consensus network
CN111163182B (zh) 基于区块链的设备注册方法、装置、电子设备和存储介质
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
CN106529952B (zh) 数据转移中的验证实现方法及***
CN111931220B (zh) 区块链网络的共识处理方法、装置、介质及电子设备
CN111277553A (zh) 一种基于区块链网络的可信节点确定方法和装置
CN111523899B (zh) 联盟链的共识方法、数据校验方法、装置及***
CN111343179B (zh) 一种链上数据真实性的实时共识方法及装置
CN113489743B (zh) 应用于区块链***的共识实现方法及装置
CN110414197B (zh) 基于行为特征的银行用户身份验证方法及装置
CN110941840A (zh) 一种数据处理方法、***及终端
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
CN111597537B (zh) 基于区块链网络的证书签发方法、相关设备及介质
CN112037062A (zh) 交易共识方法、装置、电子设备及可读存储介质
CN116993523A (zh) 配置化对账方法、装置、设备及存储介质
CN109348472B (zh) 一种基于单点推送的ota升级方法及***
CN110728504A (zh) 区块链的数据处理方法、装置、设备及可读存储介质
CN116452135A (zh) 基于以太坊的分布式匿名投票方法、装置、设备及介质
CN112465516B (zh) 基于区块链网络的设备管理方法,相关设备及存储介质
CN112926981B (zh) 用于区块链的交易信息处理方法、装置、介质及电子设备
CN112671738A (zh) 一种企业内部***的登录方法、装置、终端及存储介质
CN110910091A (zh) 一种数据处理方法、设备及介质
CN112277881B (zh) 一种身份认证方法及装置、车辆、用户设备
CN115632800B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20211008

Assignee: GUANGDONG KAMFU TECHNOLOGY Co.,Ltd.

Assignor: GUANGDONG CHENYI INFO TECHNOLOGY CO.,LTD.

Contract record no.: X2024980000284

Denomination of invention: Consensus Implementation Method and Device Applied to Blockchain Systems

Granted publication date: 20221223

License type: Common License

Record date: 20240108

EE01 Entry into force of recordation of patent licensing contract