CN114172913B - 区块链共识方法、装置、设备、系统及存储介质 - Google Patents
区块链共识方法、装置、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN114172913B CN114172913B CN202111424317.4A CN202111424317A CN114172913B CN 114172913 B CN114172913 B CN 114172913B CN 202111424317 A CN202111424317 A CN 202111424317A CN 114172913 B CN114172913 B CN 114172913B
- Authority
- CN
- China
- Prior art keywords
- information
- block
- voting
- asset
- alliance
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000004422 calculation algorithm Methods 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 54
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 abstract description 24
- 230000007246 mechanism Effects 0.000 abstract description 20
- 238000012795 verification Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000000275 quality assurance Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 101100138689 Arabidopsis thaliana NPF6.2 gene Proteins 0.000 description 2
- 101150048063 NTP1 gene Proteins 0.000 description 2
- 101100492656 Plasmodium berghei (strain Anka) ApiAT8 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012943 effectiveness check Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及一种区块链共识生成方法、装置、设备、系统及存储介质。该方法包括:根据资产记账更新信息和区块投票信息生成区块;资产记账更新信息的种类包括资产发布记账更新信息;资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;区块投票信息包含区块序号、投票头和投票体;投票体包含零个、一个或者多个资产记账更新信息条目;区块包含区块头、投票段和记账段;投票段包括多个投票条目;投票条目包含联盟会员标识。引入上述区块链共识生成方法、模块、设备或系统,通过基于节点共识行为数量的激励机制提高了区块链系统的可靠性,通过被各联盟会员公证的资产记账证书方式提高了区块链的可信性,进而满足了用户对区块链的应用需求。
Description
技术领域
本公开涉及区块链技术领域和资产溯源技术领域,尤其涉及一种区块链共识生成方法、装置、设备、系统及存储介质。
背景技术
区块链是一个开放性的网络账本,在进行交易过程中,交易记录的全部信息会被打包到一个区块中进行存储。随着多笔交易的进行,产生了多个区块,区块之间相互进行链接,就形成了区块链。但是随着区块链技术的发展以及用户对区块链的应用需求,如何保证区块链系统的可靠性、安全性和开放性以满足用户的需求,是当前亟需解决的技术问题。
当前主要的区块链技术包括公有链和联盟链两种类型。不同类型的区块链采用的共识算法也分为很多类型。目前区块链主流共识算法包括POW(Proof of Work)、POS(Proofof Stake)、DPOS(Delegated Proof of Stake)、PBFT(Practical Byzantine FaultTolerance)、Raft等共识算法。公有链主要采用POW、POS、DPOS算法作为共识算法,公有链节点参与者以取得区块记账权后获得一定量的代币收入作为节点参与共识计算和区块记账的驱动力,POW共识算法是以当前区块链数据以及矿工设定的随机数作为输入信息,按照经过HASH计算得到的HASH数值是否符合协议定义的难度要求来作为获得区块记账权的凭证;POS共识算法是以代币拥有的数量作为获得区块记账权的权重系数,按照特定算法随机获得区块记账权;DPOS共识算法首先是通过持有代币权益的节点进行投票选出数量有限的超级节点,再由这些当选的超级节点按照特定轮循算法获得区块记账权。
当前公有链技术主要的不足在于交易处理的服务质量保证和系统安全两个方面。在交易处理的服务质量保证方面,矿工节点提高设备计算能力、数据存储、网络带宽、安全防护等资源能力的动力与面向海量交易数据的处理需求不匹配,在当前在公链代币在没有被市场广为接受,且面临大量不同类型的代币的市场竞争时,如果公链节点投入过多的处理能力资源,会造成本高于回报的结果。在系统安全方面,客户业务主机在与自由接入的没有服务质量承诺的节点进行数据交互时,会面临不可控的安全风险。
传统联盟链主要采用PBFT、Raft算法作为共识算法。联盟链节点在处理其他节点的数据时,节点参与交易共识计算的驱动力是依靠拜占庭原则和自觉性完成的,PBFT算法完成节点间共识形成核心流程分为三个阶段,第一个阶段为预准备阶段,完成的工作为交易消息通过根据特定规则选出的主节点向系统内其他全部节点转发;第二个阶段为准备阶段,完成的工作为每个节点对收到的交易信息进行验证,并在通过验证后形成交易验证通过消息,向系统内全部其他节点发送;第三个阶段为交易提交阶段,完成的工作为,系统内每个节点在收到超过2/3数量节点的交易校验验证通过消息后,形成交易整体确认结论消息,并向全部其他节点发送,这时如果一个节点收到了系统内超过2/3数量的节点的交易整体确认结论消息后即表示整个系统交易共识完成。Raft共识算法采用先选举出主节点,再由主节点向从节点进行共识征询的方法实现交易共识,主要流程分为两个阶段。第一个阶段为选举阶段,由系统内所有节点按照特定规则进行投票选择出一个主节点,其他节点作为从节点;第二个阶段为共识征询阶段,由主节点进行交易验证处理,并在交易验证完成后向所有从节点发送交易信息,其他从节点对主节点发来的交易信息进行确认后,向主节点发送交易确认信息,当主节点获得的交易确认的数量超过一半的从节点的数量后,即表示整个系统交易共识完成。当前联盟链技术主要的不足在于系统可靠性和开放性方面,PBFT算法来说在在恶意节点超过1/3节点数量时也无法实现交易共识的完成,而Raft算法基于中心选举的交易共识处理机制会导致系统内任何一个恶意节点一旦当选主节点,就会对整个系统的正常运行造成破坏;同时PBFT算法和Raft算法都缺乏一种激励共识节点正常运行的激励机制,这样不利于共识节点管理者的主动性运维保障,降低了整个系统的可靠性。同时,由于联盟链过于复杂的共识算法以及可靠性的不足,使得联盟链会员的加入以及区块链的业务接入必须受到严格的限制,以防止恶意节点对整个区块链系统的攻击,这种联盟链会员的加入以及区块链的业务接入的限制影响了联盟链的开放性,使得不能加入联盟但是与联盟内会员有业务往来的外部实体无法使用区块链技术来保证数据的可信性。
发明内容
为了解决上述技术问题,本公开提供了一种区块链共识生成方法、装置、设备、系统及存储介质。
第一方面,本公开提供了一种区块链共识生成方法,应用于任一区块链节点,该区块链共识生成方法包括:
接收资产记账更新信息;
接收区块投票信息;
根据资产记账更新信息和区块投票信息生成区块;
资产记账更新信息的种类包括资产发布记账更新信息;
资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;资产发布注册信息包含资产发布信息和注册签名信息;资产发布信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值;
区块投票信息包含区块序号、投票头和投票体;区块序号为被投票区块的区块序号;投票头包含投票内容和投票签名信息;投票内容包含区块Hash和时间戳;区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;联盟会员标识为联盟会员的标识信息;联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;投票签名数值为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;投票体包含零个、一个或者多个资产记账更新信息条目;资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值;
区块包含区块头、投票段和记账段;投票段包括多个投票条目;投票条目包含联盟会员标识;联盟会员标识为投票条目对应区块投票信息对应联盟会员投票者的标识信息;记账段包含一个或者多个资产记账信息;资产记账信息的种类包括资产发布记账信息;资产发布记账信息包含资产发布注册信息和联盟会员标签信息;联盟会员标签信息包含联盟会员标识;联盟会员标识为联盟会员的标识信息;区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;区块序号为本区块在区块链中的顺序号;投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
第二方面,本公开提供了一种区块链共识生成装置,配置于任一区块链节点,该区块链共识生成装置包括:
资产记账更新信息接收模块,用于接收资产记账更新信息;
区块投票信息接收模块,用于接收区块投票信息;
区块生成模块,用于根据资产记账更新信息和区块投票信息生成区块;
资产记账更新信息的种类包括资产发布记账更新信息;
资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;资产发布注册信息包含资产发布信息和注册签名信息;资产发布信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值;
区块投票信息包含区块序号、投票头和投票体;区块序号为被投票区块的区块序号;投票头包含投票内容和投票签名信息;投票内容包含区块Hash和时间戳;区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;联盟会员标识为联盟会员的标识信息;联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;投票签名数值为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;投票体包含零个、一个或者多个资产记账更新信息条目;资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值;
区块包含区块头、投票段和记账段;投票段包括多个投票条目;投票条目包含联盟会员标识;联盟会员标识为投票条目对应区块投票信息对应联盟会员投票者的标识信息;记账段包含一个或者多个资产记账信息;资产记账信息的种类包括资产发布记账信息;资产发布记账信息包含资产发布注册信息和联盟会员标签信息;联盟会员标签信息包含联盟会员标识;联盟会员标识为联盟会员的标识信息;区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;区块序号为本区块在区块链中的顺序号;投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
第三方面,本公开提供了一种区块链共识生成设备,该设备为任一区块链节点;
其中,所述区块链共识生成设备,包括:一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供一种区块链共识生成方法。
第四方面,本公开提供了一种区块链共识生成系统,包括:多个区块链共识生成设备;每个所述区块链共识生成设备实现如第一方面中任一所述的区块链共识生成方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供一种区块链共识生成方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的区块链共识生成方法、装置、设备、系统及存储介质,应用于区块链共识生成系统,能够接收资产记账更新信息,接收区块投票信息,根据资产记账更新信息和区块投票信息生成区块。该实施方案在可靠性、开放性、安全性方面与传统的区块链解决方案相比都得到了提升。在可靠性方面,共识节点按照区块链中包含有体现为投票段投票条目联盟会员标识的校验者投票记录的数量来对校验者的共识行为的参与度进行考核,并把该考核指标作为对是否允许校验者进行与自己利益直接相关的资产记账信息注册的判罚依据,这样就激励了各校验者的共识行为的积极性,从而提高了区块链节点正常参与共识行为的可靠性,同时区块链中各区块投票段投票条目记录的联盟会员标识可以作为对应区块链资产记账信息的准确性故障进行联盟内责任追溯的依据,这个也提高了校验者对区块链资产记账信息进行正确校验的可靠性。另外,采用这种依靠区块投票信息产生共识的机制可以使得允许的恶意节点数量提升到50%,与传统基于PBFT的联盟链相比提高了恶意节点允许数量。在开放性方面,区块链中各区块投票段投票条目记录的联盟会员标识作为共识节点考核对应的联盟会员对对应区块的区块公证行为的参与度的依据,并进一步把该考核指标作为对是否允许联盟会员进行与自己利益直接相关的资产记账信息注册的判罚依据,从而保证区块链中的区块能够获得各联盟会员的及时的区块公证信息,进而保证了区块链系统在向区块链客户提供资产记账信息时,能够以包含了多个联盟会员的联合公证信息的资产记账证书的方式提供,实现了联盟外部的区块链用户无需参与联盟内区块链共识处理,也能够对收到的资产记账证书进行独立的可信性校验。同时对于非联盟会员的资产厂家可以通过联盟会员的区块链节点进行资产发布,各共识节点可以根据资产发布记账更新信息中携带的联盟会员标识按照联盟会员的资源配额进行厂家资产记账信息和中间商资产记账信息的区块链存储空间控制,实现在联盟外用户向区块链注册资产信息时的存储资源的安全使用,这样保证了联盟外用户无需参与联盟内区块链共识处理也可以进行区块链资产信息注册,提高了区块链的开放性。在安全性方面,由于本区块链机制采用的是与传统联盟链类似的会员加盟机制,因此可以保证各节点与外界进行信息交互的范围限制在有限的可以追溯的加盟会员节点之间进行,从而保证了区块链系统在与其他节点进行协议通信时的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实例提供的一种区块链共识生成方法的流程图;
图2是本公开实施例提供的另一种区块链共识生成方法的流程示意图;
图3是本公开实施例提供的又一种区块链共识生成方法的流程示意图;
图4是本公开实施例提供的一种区块链共识生成装置的结构示意图;
图5是本公开实施例提供的一种区块链共识生成设备的结构示意图;
图6是本公开实施例提供的基于本发明的区块链系统的流程示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
当前采用POW(Proof of Work)、POS(Proof of Stake)、DPOS(Delegated Proofof Stake)等共识算法的公有链技术主要的不足在于交易处理的服务质量保证和系统安全两个方面。在交易处理的服务质量保证方面,矿工节点提高设备计算能力、数据存储、网络带宽、安全防护等资源能力的动力与面向海量交易数据的处理需求不匹配,在当前在公链代币在没有被市场广为接受,且面临大量不同类型的代币的市场竞争时,如果公链节点投入过多的处理能力资源,会造成本高于回报的结果。在系统安全方面,客户业务主机在与自由接入的没有服务质量承诺的节点进行数据交互时,会面临不可控的安全风险。以采用PBFT和Raft等共识算法的联盟链技术主要的不足在于系统可靠性和开放性方面,PBFT算法来说在在恶意节点超过1/3节点数量时也无法实现交易共识的完成,而Raft算法基于中心选举的交易共识处理机制会导致系统内任何一个恶意节点一旦当选主节点,就会对整个系统的正常运行造成破坏;同时PBFT算法和Raft算法都缺乏一种激励共识节点正常运行的激励机制,这样不利于共识节点管理者的主动性运维保障,降低了整个系统的可靠性。同时,由于联盟链过于复杂的共识算法以及可靠性的不足,为了节点共识协议的正常运行需要防止恶意节点的加入,因此节点加入联盟需要中心系统进行严格审核和接入控制,这会导致一些不能达到联盟要求,但是与联盟内节点有业务关系的节点难以接入系统和进行交易可信性验证。这种联盟链会员的加入限制以及区块链的业务接入的限制影响了联盟链的开放性。综上,随着区块链技术的发展以及用户对区块链的应用需求,如何保证区块链系统的可靠性、安全性和开放性以满足用户的需求,是当前亟需解决的技术问题。
为了解决上述的问题,本公开实施例提供了一种区块链区块共识生成方法、装置、设备、系统及存储介质。
下面,以区块链节点根据从区块链系统其他区块链节点接收的资产记账更新信息和区块投票信息进行共识生成处理的场景,结合图1对本公开实施例提供的区块链共识生成方法进行说明。
图1示出了本公开实施例提供的一种区块链共识生成方法的流程示意图。
在本公开一些实施例中,图1所示的区块链共识生成方法可以由任一区块链节点执行,这些区块链节点构成区块链系统。其中,所述区块链节点为能够产生区块链信息的装置、设备或系统,区块链节点点可以由一个或者多个具有存储和计算功能的装置、设备或者服务器组成,服务器可以为独立的服务器或者云服务器。对于由多台装置、设备或者服务器构成的区块链节点,同一区块链节点的装置、设备或者服务器在物理位置上可以位于相同的物理位置,也可以位于不同的物理位置并通过网络相互连接。一般来说,所述区块链信息由多个区块按照顺序组成,其中区块包含上区块Hash信息,上区块Hash为对上个区块的全部信息或者部分信息通过特定Hash算法计算得到的Hash数值。
如图1所示,该区块链共识生成方法可以包括如下步骤。
S110、接收资产记账更新信息。
在本公开实施例中,资产记账更新信息的种类包括资产发布记账更新信息;资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;资产发布注册信息包含资产发布信息和注册签名信息;资产发布信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值。
可选的,资产记账更新信息的种类还包括合约状态记账更新信息;合约状态记账更新信息包含合约状态注册信息和联盟会员签名信息;合约状态注册信息包含合约状态信息和注册签名信息;合约状态信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息,该资产标识与当前区块链中对应资产的资产发布记账信息的资产标识相同;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含合约状态信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含合约状态注册信息在内的信息进行数字签名得到的签名数值。
需要说明的是,在本公开实例中,注册者为注册签名数值对应私钥的拥有者。
可选的,资产记账更新信息的种类还包括中间资产注册信息;中间资产注册信息包含中间资产信息、一个或者多个注册签名数值、一个或者多个公钥数值;中间资产信息包含资产标识、发布者名称和资产信息;资产信息为资产的其他相关信息;发布者名称与区块链中对应资产标识的资产发布记账信息中的注册者名称相同;注册签名数值为使用公钥数值对应私钥对包含中间资产信息在内的信息进行数字签名得到的签名数值;公钥数值为区块链中对应资产标识的上一个交易型资产记账信息的比特所有权地址对应公钥数值;交易型资产记账信息为包含有比特所有权地址信息的资产记账信息。
需要说明的是,在本公开实例Hash算法可以选择对被Hash的信息先后进行SHA256、RIPMED160的算法处理实现,也可以选择其他Hash算法。
需要说明的是,联盟为按照特定规则行为的实体的组合,实体的行为会受到该特定规则的制约,构成联盟的实体即联盟会员。
在本公开实施例中,本区块链节点在收到其中一个区块链节点的资产记账更新信息后可以向联盟内别的区块链节点广播该资产记账更新信息。
S120、接收区块投票信息。
在本公开实施例中,各区块链节点发出区块投票信息是按照特定时间间隔的投票周期进行同步发送的。一个投票周期设置一个投票入选截止时刻和一个区块入选截止时刻。投票入选截止时刻用于决定进行区块投票信息封装的资产记账更新信息,需要选择投票入选截止时刻前收到的资产记账更新信息进行投票封装。区块入选截止时刻用于决定在收到区块投票信息时选择是否丢弃迟到的区块投票信息,如果来自其中一个区块链节点的区块投票信息在区块入选截止时刻过后才来到,则该节点该轮投票周期的区块投票信息会被丢弃,因此区块链节点需要在特定的区块入选截止时刻之前向外发送封装好的区块投票信息。
在本公开实施例中,区块投票信息包含区块序号、投票头和投票体;区块序号为被投票区块的区块序号;投票头包含投票内容和投票签名信息;投票内容包含区块Hash和时间戳;区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;联盟会员标识为联盟会员的标识信息;联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;投票签名数值为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;投票体包含零个、一个或者多个资产记账更新信息条目;资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值。
需要说明的是,联盟会员数字证书相关信息包含用于投票签名的联盟会员数字证书,或者包含用于投票签名的联盟会员数字证书和与联盟会员数字证书相关的一个或者多个证书权威(CA)的数字证书的组合。
在本公开实施例中,区块链节点在收到区块投票信息后,如果本区块链节点不具备联盟会员数字证书相关信息标识对应的联盟会员数字证书相关信息,则可以选择向投票者节点或者其他区块链节点获取该信息。
在本公开实施例中,区块链节点在收到区块投票信息后,如果本区块链节点不具备投票者联盟会员数字证书相关信息对应的相关数字证书没被撤销证明信息(如CRL信息),则可以选择向投票者节点或者其他区块链节点获取该信息。一般情况下,投票者节点可以选择在发出区块投票信息之前获取需要的相关数字证书没被撤销证明信息,以便向其他区块链节点进行分发。
需要说明的是,在本公开实例中,投票者为投票签名数值对应私钥的拥有者。
在本公开实施例中,在接收区块投票信息之后,可以对区块投票信息进行有效性校验。
在本公开实施例中,需要对在当前投票周期区块入选截止时间到来之前接收的区块投票信息进行区块投票信息有效性校验。区块投票信息有效性校验包含被投票区块信息有效性校验、时间戳有效性校验、联盟会员标识校验、投票签名校验和投票体有效性校验。
在本公开实施例中,对于被投票区块信息有效性校验,如果区块投票信息中的区块序号与当前区块链的末端区块的区块序号不同,则丢弃该投票信息。如果区块投票信息中的区块序号与当前区块链的末端区块的区块序号相同,且投票头中的区块Hash与当前区块链的末端区块的区块Hash一致,则对该区块投票信息的被投票区块信息有效性校验通过;如果区块投票信息中的区块序号与当前区块链的末端区块的区块序号相同,且投票头中的区块Hash与当前区块链的末端区块的区块Hash不一致,则需要向投票者的区块链节点获取对应的被投票区块信息,并对获取的被投票区块进行区块有效性校验。
在本公开实施例中,投票时间戳有效性校验即校验投票头中的时间戳信息是否与当前投票的时间周期一致。联盟会员标识校验为校验投票头中的联盟会员标识是否属于联盟会员的标识;投票签名校验包含按照联盟会员数字证书相关信息标识对应的联盟会员数字证书对联盟会员数字证书进行有效性校验和对投票签名数值进行签名数值有效性校验,签名有效性校验所使用的联盟会员数字证书相关信息可以向投票者对应的区块链节点获取。
在本公开实施例中,投票体有效性校验包括投票体最大资产记账更新信息条目数量校验和投票体资产记账更新信息条目有效性校验。投票体最大资产记账更新信息条目数量校验即校验投票体中的资产记账更新信息条目数量不能超出最大数量限制。
对于区块投票信息投票体中的资产记账更新信息条目有效性校验,当资产记账更新信息为资产发布记账更新信息时,资产记账更新信息条目有效性校验包括联盟会员标识校验、联盟会员签名有效性校验、归属联盟会员资源有效性校验和资产标识唯一性校验。其中资产标识唯一性校验需要对资产发布记账更新信息中的资产标识进行唯一性校验,资产标识不能与当前区块链中已经存在的资产记账信息的资产标识相同。当资产记账更新信息为合约状态记账更新信息时,资产记账更新信息条目有效性校验包括联盟会员标识校验、联盟会员签名有效性校验、归属联盟会员资源有效性校验和资产标识一致性校验。对于资产标识一致性校验,合约状态记账更新信息中的资产标识需要为当前区块链中已经存在的资产标识。当资产记账更新信息为中间资产注册信息时,资产记账更新信息有效性校验包括公钥数值校验和注册签名校验,注册签名校验需要使用中间资产注册信息中的公钥数值对该中间资产注册信息中的注册签名数值进行签名数值校验,公钥数值校验即为使用本中间资产注册信息中的公钥数值按照特定Hash算法计算后得到的数值与区块链中对应资产标识的上一个交易型资产记账信息中的比特所有权地址进行比对校验。
本公开实施例中,对于资产记账更新信息条目对应的资产记账更新信息的联盟会员标识校验,即校验资产发布记账更新信息或者合约状态记账更新信息中的联盟会员标识是否属于联盟内联盟会员的标识;对于资产记账更新信息条目对应的资产记账更新信息的联盟会员签名校验即按照联盟会员标识对应的数字证书对数字证书进行有效性校验和对联盟会员签名数值进行签名数值有效性校验。
可选的,对于资产记账更新信息的联盟会员签名校验使用的联盟会员数字证书相关信息以及联盟会员数字证书相关信息对应的没被撤销证明信息(如CRL信息)可以按照对应联盟会员的最近的有效区块投票信息进行投票签名校验时使用的相关信息来进行有效性校验。也可以选择向对应的联盟会员的区块链节点获取。
可选的,在本公开实施例中,对于投票头资产记账更新信息条目的有效性校验还包括对对应的资产记账更新信息的总字节数是否超限的校验。
本公开实施例中,投票体的资产记账更新信息条目的归属联盟会员资源有效性校验,对于资产记账更新信息为资产发布记账更新信息或者合约状态记账更新信息时,根据信息中的联盟会员标识进行归属联盟会员资源有效性校验。对于中间资产注册信息的归属联盟会员资源有效性校验需要按照本信息对应的相同资产标识的资产发布记账信息中的联盟会员标识进行处理。
本公开实施例中,归属联盟会员资源有效性校验包括联盟会员共识贡献量校验。联盟会员共识贡献量可以使用联盟会员在当前区块链特定区块区间跨度内的以区块投票段投票条目联盟会员标识信息为体现的投票记录数量作为一个计算因子,如果共识贡献量小于特定的数量限度,则会导致归属联盟会员资源有效性校验失败。可选的,对于包含有投票段投票条目资产记账更新信息条目数量信息的区块链系统,在按照当前区块链特定区块区间跨度内的以区块投票段投票条目联盟会员标识信息为体现的投票记录数量计算联盟会员的共识贡献量指标时,同时使用对应的区块链投票段中的投票条目的资产记账更新信息条目数量作为计算归属会员的共识贡献量指标的一个因子。如果一个联盟会员在一个区块的资产记账更新信息条目数量与本区块平均值相比过高或者过低,则在计算该区块的投票共识贡献量时需要乘上一个小于1的系数。
可选的,在本公开实施例中,归属联盟会员资源有效性校验还包括联盟会员资产记账信息量校验。归属联盟会员的资产记账信息量可以使用当前区块链特定时间跨度内的联盟会员管辖范围的资产记账信息的总字节数量作为一个计算因子,如果联盟会员管辖范围的资产记账信息的总字节数量超过特定数量限度,则会导致归属联盟会员资源有效性校验失败。
在本公开实施例中,区块有效性校验包含记账段有效性校验、投票段有效性校验和区块头有效性校验。区块头有效性校验包括校验区块头中的上区块Hash是否与当前区块链中对应的上个区块一致,时间戳是否大于上个区块。投票段Hash是否与区块的投票段一致,记账段Hash是否与区块的记账段一致。投票段有效性校验包含对投票段中的投票条目进行联盟会员标识校验和对投票段进行投票支持度校验。联盟会员标识校验即校验投票条目中的联盟会员标识是否为本联盟的联盟会员的标识以及是否按照特定的顺序排列。投票段的投票支持度校验即为校验所有投票条目的联盟会员标识是否有重复的条目,以及校验投票条目数量是否满足本联盟的当前联盟会员数量的一半以上。
在本公开实施例中,记账段有效性校验包含记账段资产记账信息数量有效性校验和资产记账信息有效性校验。记账段资产记账信息数量有效性校验即要求记账段中包含的资产记账信息的数量需要满足特定数量范围限度。对于区块记账段中的资产记账信息的有效性校验,当资产记账更新信息为中间资产注册信息时,资产记账更新信息有效性校验包括公钥数值校验和注册签名校验。对于区块记账段中的资产记账信息的有效性校验,当资产记账信息为资产发布记账信息或者合约状态记账信息时,需要进行资产标识唯一性校验或者资产标识一致性校验。可选的,资产发布记账信息或者合约状态记账信息的有效性校验还包括联盟会员标识校验和相应的归属联盟会员资源有效性校验。
可选的,在本公开实施例中,在区块链节点在收到区块投票信息后,可以选择对收到的区块投票信息向联盟内除发送节点外的其他节点进行广播。
S130、根据资产记账更新信息和区块投票信息生成区块。
在本公开实施例中,对于通过区块投票有效性校验的投票信息进行区块链共识产生处理。如果对于当前区块链的末端区块的区块序号对应的其中一个被投票区块的投票支持度为最大的投票支持度,且投票支持度超过50%,且该被投票区块与当前区块链的末端区块不同,则使用该被投票区块替代当前区块链的末端区块。如果没有一个被投票区块的投票支持度超过50%,且有效区块投票分散在多个不同的被投票区块上,且有效的区块投票总数超过50%的联盟会员总数量,则对当前区块链进行区块回退处理,即删除当前区块链的末端区块。如果有效的区块投票总数没有超过50%的联盟会员总数量,则可以选择启动与联盟内其他区块链节点的区块同步处理,从其他区块链节点获取从当前区块链末端区块序号的下一个区块序号开始的区块信息,并对获得的区块信息进行区块有效性校验,如果超过一定次数的多个连续的投票周期出现有效的区块投票总数没有超过50%的联盟会员总数量的情况,则可以选择联盟协商的方法线下处理。
需要说明的是,区块链共识处理时联盟会员总数量统计、联盟会员投票数量比例计算、或者投票支持度计算是按照区块链当前联盟中正式存在的联盟会员进行计算。
在本公开实施例中,对于对当前区块链的末端区块的区块序号对应的其中一个被投票区块的投票支持度为最大的投票支持度,且投票支持度超过50%,则使用该被投票区块的有效投票信息进行新区块生成处理。
在本公开实施例中,区块包含区块头、投票段和记账段;投票段包括多个投票条目;投票条目包含联盟会员标识;联盟会员标识为投票条目对应区块投票信息对应联盟会员投票者的标识信息;记账段包含一个或者多个资产记账信息;资产记账信息的种类包括资产发布记账信息;资产发布记账信息包括资产发布注册信息和联盟会员标签信息;联盟会员标签信息包含联盟会员标识;联盟会员标识为联盟会员的标识信息;区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;区块序号为本区块在区块链中的顺序号;投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
可选的,投票段投票条目中还包含投票Hash;投票Hash为对投票存证信息通过特定Hash算法计算得到的Hash数值;投票存证信息为包含投票条目对应的区块投票信息投票头和区块投票信息投票体Hash的信息,或者为包含投票条目对应的区块投票信息投票头和区块投票信息投票体的信息。区块投票信息投票头中的联盟会员数字证书相关信息标识为联盟会员数字证书相关信息Hash;联盟会员数字证书相关信息Hash为对联盟会员数字证书相关信息通过特定Hash算法计算得到的Hash数值。把投票者的联盟会员数字证书相关信息Hash放入投票头中,并在把投票Hash放入投票段的投票条目中,可以进一步增加投票者对自己的历史投票行为的不可抵赖性,从而提高区块链数据校验的可靠性。
可选的,区块记账段中资产发布记账信息或者合约状态记账信息中的联盟会员标签信息还包含联盟会员签名数值;联盟会员签名数值为使用联盟会员标签信息中联盟会员标识对应联盟会员私钥对包含资产发布注册信息或合约状态注册信息在内的信息进行数字签名得到的签名数值。把联盟会员签名数值放入记账段的资产发布记账信息或者合约状态记账信息,可以提高对占用存储空间的资产发布记账信息或者合约状态记账信息联盟会员真实记账更新处理的可信性。
在本公开实施例中,新区块生成处理可以按照以下步骤进行:
步骤一:首先对于满足投票支持度要求且通过有效性校验的区块投票信息,选择投票体资产记账更新信息条目数量离均值数量最近的区块投票信息,使用该区块投票信息的资产记账更新信息条目对应的资产记账信息组成区块的记账段。被选择的区块投票信息中的资产记账更新信息条目数量不能低于记账段最少资产记账信息数量。
在本公开实例中,如果两个有效区块投票信息的投票体资产记账更新信息条目数量离均值数量一样近,则选择投票Hash数值低的区块投票信息。
步骤二:然后从满足投票支持度要求且通过有效性校验的区块投票信息中,把这些区块投票信息投票头中的联盟会员标识信息按照一定顺序排列生成投票段信息。
可选的,对于投票体资产记账更新信息条目数量离均值数量的差额超过一定限度,可以选择不计入投票段投票条目。
可选的,在本公开实施例中,投票段投票条目中还包含资产记账更新信息条目数量;资产记账更新信息条目数量为投票段投票条目对应的区块投票信息的投票体中的资产记账更新信息条目的数量。该信息可以用于归属联盟会员资源有效性校验中对归属联盟会员共识贡献量的校验。如果投票段投票条目中的资产记账更新信息条目数量与均值相比过大或者过小,会导致对应联盟会员的共识贡献量的降低。这样就使得在区块链系统中各区块链节点在联盟会员范围内尽可能广泛的广播自己产生或者接收的资产记账更新信息,以及尽可能多的在区块投票的投票体中封装自己接收的资产记账更新信息,从而提高了区块链系统的资产记账更新信息的处理吞吐量。
步骤三:最后根据记账段信息和投票段信息生成区块头信息。
在本公开实施例中,对于区块头的构建,区块序号选择当前末端区块的下一个区块序号,时间戳选择区块投票信息中的时间戳,上区块Hash选择区块投票信息中的区块Hash信息,投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值,记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
可选的,在本公开实施例中,为了提升客户端校验资产记账信息是否在区块链中注册时,避免获取整个区块信息,记账段Hash选择为对区块的记账段经过Merkle Hash算法处理得到的根Merkle Hash数值,也即Root_Merkle_Hash数值。
可选的,区块可以选择设置Merkle_Hash_Tree信息,Merkle_Hash_Tree信息包含对区块的记账段进行Merkle Hash算法处理时得到的分枝Merkle Hash数值(也即Branch_Merkle_Hash数值)的组合。在区块中设置多个Branch_Merkle_Hash条目信息用于存放Merkle Hash算法处理得到的Merkle_Hash_Tree信息。Merkle_Hash_Tree包含多个Branch_Merkle_Hash条目;Branch_Merkle_Hash条目包含Branch_Merkle_Hash数值和高层Branch_Merkle_Hash序号;Root_Merkle_Hash、Branch_Merkle_Hash和高层Branch_Merkle_Hash序号由对记账段进行Merkle_Hash处理得到,对记账段进行Merkle_Hash处理包括:
步骤一:首先对记账段中的一个或者多个资产记账信息分别进行Hash计算,得到每个资产记账信息的Branch_Merkle_Hash数值。然后对每个资产记账信息的Branch_Merkle_Hash数值,按照资产记账信息的排列顺序,在偶数补齐后组成Branch_Merkle_Hash队列。偶数补齐为,如果Branch_Merkle_Hash数值数量为奇数个,则对最后的Branch_Merkle_Hash数值进行复制,作为最后顺序的Branch_Merkle_Hash数值。为该底层Branch_Merkle_Hash数据按照队列中的顺序依次在Merkle_Hash_Tree中新增对应的Branch_Merkle_Hash条目,每一个条目存放对应的Branch_Merkle_Hash数值。
步骤二:对获得的Branch_Merkle_Hash队列进行迭代计算,迭代计算为如果Branch_Merkle_Hash队列中的Branch_Merkle_Hash数量为2,则步骤二结束,如果Branch_Merkle_Hash队列中的Branch_Merkle_Hash数值数量大于2,则对Branch_Merkle_Hash队列进行Merkle_Hash处理。Merkle_Hash处理包括:首先按照队列中Branch_Merkle_Hash数值的顺序对队列中的每一对相邻的Branch_Merkle_Hash数值进行信息合并和对合并信息的Hash计算,得到Branch_Merkle_Hash队列的多个高层Branch_Merkle_Hash数值,这些新的高层Branch_Merkle_Hash数值,再按照数值产生的顺序,在偶数补齐后形成新的高层Branch_Merkle_Hash队列。为该高层Branch_Merkle_Hash队列中的Branch_Merkle_Hash数值在Merkle_Hash_Tree中按队列顺序新增对应Branch_Merkle_Hash条目,存放对应的高层Branch_Merkle_Hash数值,并把该新增Branch_Merkle_Hash条目的序号作为高层Branch_Merkle_Hash序号写入对应的两个Branch_Merkle_Hash数值的Branch_Merkle_Hash条目中。
步骤三:对步骤二得到的最高层的Branch_Merkle_Hash队列中的两个Branch_Merkle_Hash数值进行信息合并和对合并信息的Hash计算,得到的Hash数值即为Root_Merkle_Hash数值。
进一步的,在S130之后,该方法还可以包括如下步骤:
区块链节点在区块链数据缺失时向其他区块链节点进行区块链数据同步请求处理。
可选的,在本公开实施例中,在区块链节点区块链区块数据丢失,导致本区块链节点无法获得足够数量的有效区块投票信息时,本节点需要向其他区块链节点进行区块同步请求处理。区块同步处理包括向其他区块链节点发送区块链同步请求消息,并接收对应的区块链同步响应消息;区块链同步请求消息包含区块序号;区块链同步响应消息包含从区块序号开始的一个或者多个区块信息。可选的,可以选择同时向多个区块链节点进行同步请求,以获得一个大多数节点一致的最长的区块链信息。
区块链节点在接收到其他区块链节点区块链数据同步请求信息时向其他区块链节点发送区块链同步响应消息。
可选的,在本公开实施例中,也可以选择一个权威的区块链节点作为协调器节点,其他区块链节点在区块同步处理时,统一向协调器节点进行区块链区块同步处理。协调器节点在自己需要向其他区块链节点进行区块同步时,可以向所有联盟会员的区块链节点进行区块同步,以获得一个大多数节点一致的最长的区块链信息。
需要说明的是,上述所有区块链共识生成的方法和步骤,只是为了阐述其中原理,并没有严格的先后顺序。
在本公开实施例中,能够接收资产记账更新信息,接收区块投票信息,根据资产记账更新信息和区块投票信息生成区块。该实施方案在可靠性和安全性方面与传统的区块链解决方案相比都得到了提升。在可靠性方面,共识节点按照区块链中包含有体现为投票段投票条目联盟会员标识的校验者投票记录的数量来对校验者的共识行为的参与度进行考核,并把该考核指标作为对是否允许校验者进行与自己利益直接相关的资产记账信息注册的判罚依据,这样就激励了各校验者的共识行为的积极性,从而提高了区块链节点正常参与共识行为的可靠性,同时区块链中各区块投票段投票条目记录的联盟会员标识可以作为对应区块链资产记账信息的准确性故障进行联盟内责任追溯的依据,这个也提高了校验者对区块链资产记账信息进行正确校验的可靠性。另外,采用这种依靠区块投票信息产生共识的机制可以使得允许的恶意节点数量提升到50%,与传统基于PBFT的联盟链相比提高了恶意节点允许数量。在安全性方面,由于本区块链机制采用的是与传统联盟链类似的会员加盟机制,因此可以保证各节点与外界进行信息交互的范围限制在有限的可以追溯的加盟会员节点之间进行,从而保证了区块链系统在与其他节点进行协议通信时的安全性。
在本公开另一种实施方式中,区块链系统中大多数区块链节点不仅能够根据联盟区块链节点发送的资产记账更新信息和区块投票信息生成区块链共识信息,还参与到区块链共识的建立过程中,可以根据自己接收的资产记账更新信息来生成区块投票信息并向外发送,从而对区块链系统达成共识做出贡献。同时区块链节点可以根据自己接收的资产发布注册信息或者合约状态注册信息生成资产发布记账更新信息或者合约状态记账更新信息并向外发送。以下是针对参与区块链共识建立过程的区块链节点场景的区块链节点共识生成的实施例说明。
图2示出了本公开实施例提供的另一种区块链共识生成方法的流程示意图。可选的,图2所示的区块链共识生成方法可以应用于区块投票场景。
在本公开一些实施例中,图2所示的区块链共识生成方法可以由任一区块链节点执行,这些区块链节点构成区块链系统。
如图2所示,该区块链共识生成方法可以包括如下步骤。
S210、接收资产发布注册信息或者合约状态注册信息,根据资产发布注册信息或者合约状态注册信息生成资产发布记账更新信息或者合约状态记账更新信息,并向其他装置或设备发送该生成信息。
在本公开实例中,区块链节点是作为资产记账信息归属联盟会员的身份对收到的资产发布注册信息或者合约状态注册信息进行联盟会员签名信息的封装,并形成资产发布记账更新信息或者合约状态记账更新信息,最终在区块链中形成资产发布记账信息或者合约状态记账信息,资产发布记账信息或者合约状态记账信息将携带本联盟会员的标识信息,也即本联盟会员将作为该资产发布记账信息或者合约状态记账信息的归属联盟会员身份承担对应资产记账信息的存储空间消耗花费。需要说明的是,区块链节点收到的资产发布注册信息或者合约状态注册信息的注册者可以与本区块链节点对应的联盟会员相同,也可以不同。
需要说明的是,区块链节点接收到的资产发布注册信息或者合约状态注册信息可以由客户端直接发送到区块链节点,也可以由客户端通过网关设备或者其他中转设备转发到区块链节点。
需要说明的是,资产发布注册信息中的资产信息可以是合约类信息、账务类信息、商品类信息、物流类信息、产权类信息、版权类信息等、代币类信息、资金类信息、交易类信息、以及自然环境类信息等信息。合约状态注册信息中的资产信息可以是智能合约服务器的输出信息,或者是合约执行产生的记账信息,或者是厂家资产发布注册信息的调整或者撤销信息,或者是商品类信息、物流类信息、产权类信息、版权类信息、代币类信息、账务类信息、资金类信息、交易类信息、以及自然环境类信息等信息。
在本公开实例中,针对合约类资产,当合约的签署者把合约以资产的形式通过区块链系统完成资产发布记账信息的注册后,对于合约的状态变化、执行情况信息或者相关资产变化信息,合约签署者或者其他合约相关方可以发布一个合约状态注册信息,由区块链节点封装为合约状态记账更新信息,并在区块链的记账段中形成对应的合约状态记账信息。合约状态注册信息中的资产标识可以作为合约类资产的标识信息,该资产标识与区块链中对应相同合约的资产发布记账信息的资产标识相同。合约状态记账信息的归属联盟会员可以与对应资产标识的资产发布记账信息的归属联盟会员相同,也可以不同。
在本公开实例中,资产发布注册信息中的注册者名称对应的注册者可以是商品的生产者,或者资产的管理者,或者合约的签署者。资产发布注册信息中的注册者名称可以包含多个,对应多个注册者称的资产发布注册信息的情况,资产发布注册信息中的注册者名称、注册者数字证书相关信息标识和注册签名数值可以有相对应的多份信息。合约状态注册信息中的注册者名称对应的注册者可以是合约的签署者、合约的执行者或者合约的合作者。合约状态注册信息的注册者,可以与区块链中对应资产标识的资产发布记账信息中的注册名称相同,也可以不同。
可选的,区块链节点在接收资产发布注册信息或者合约状态注册信息时,如果没有注册签名数值对应的注册者数字证书相关信息,则可以选择向资产发布注册信息或者合约状态注册信息的发布者索取相应信息,并在本地保存,以便当区块链资产信息客户端用户需要时,向其他装置或设备发送该注册者数字证书相关信息,客户端可以根据该注册者数字证书相关信息对资产记账信息中的注册签名数值进行校验,从而对资产发布或者合约状态进行溯源。由于注册签名数值与资产发布信息或者合约状态信息一同入链存证,这样就可以保证该资产发布信息或者合约状态信息在注册者数字证书有效期内的溯源。即使是注册者在数字证书有效期内撤销了数字证书,对应区块链区块时间戳的存在能够证明在该时间戳进行注册签名所使用的数字证书在对应时间戳的有效性。
可选的,资产发布注册信息或者合约状态注册信息中的注册者数字证书相关信息标识为对注册者数字证书相关信息通过特定Hash算法计算得到的Hash数值;在本公开实施例中,注册者数字证书相关信息的Hash数值在资产记账信息中体现,可以防止在当前注册签名校验时刻由于注册者数字证书过了有效期且注册者数字证书提供数字签名服务的证书权威(CA)的数字证书也处于撤销或者失效状态的情况下,这时会由于无法验证注册者数字证书在区块链对应时间戳的有效性而导致资产记账信息的注册签名校验失败。注册者数字证书相关信息(包含了注册者数字证书)Hash数值在区块链的存在可以证明证书权威数字证书用于对注册者数字证书的数字签名事件在对应区块链区块时间戳的存在性,这样,证书权威数字证书在区块链区块对应时间戳的有效性可以通过更高层的证书权威对该证书权威数字证书的数字签名的有效性以及更高层证书权威发布的没被撤销证明信息(如CRL信息)得到证明,即使是证书权威的数字证书在当前是失效的,只要注册者数字证书满足在对应区块链时间戳时刻在有效期内、且在对应区块链时间戳时刻没有被撤销、且注册者数字证书上的数字签名与证书权威的数字证书的公钥一致的条件,则注册者数字证书就可以满足在当前时刻进行资产记账信息注册签名校验时的有效性要求。
可选的,注册者数字证书相关信息处了包含用于注册者数字签名的注册者数字证书外还包含与注册者数字证书相关的一个或者多个证书权威(CA)的数字证书的组合。可选的,注册者数字证书相关信息还包含注册者的数字证书对应的CRL(Certificaterevocation list)信息,和零个、一个或者多个相关证书权威(CA)的数字证书对应的CRL信息。CRL信息可以是完整形式的CRL信息,也可以是基础CRL信息与增量CRL信息的组合形式,或者其他形式的证书撤销列表信息(如Certificate revocation tree信息等)。
可选的,资产发布注册信息或者合约状态注册信息中的资产信息可以包含资产相关信息的Hash数值,以实现更多资产信息在区块链中承载。
S220、接收资产记账更新信息。
其中,S220与S110相似,在此不做赘述。
S230、根据资产记账更新信息生成区块投票信息,并向其他区块链节点发送。
在本公开实施例中,当当前区块链的末端区块的投票段中所有投票条目对应的区块投票信息都是经过本区块链节点有效性校验通过的区块投票信息时,则当本轮投票周期的投票入选截止时刻到来后,进行区块投票信息产生处理。
在本公开实施例中,区块投票消息中的时间戳为该投票周期区块入选截止时刻对应的时间戳信息。对于区块链各区块链节点的时间戳的准确性,可以通过各区块链节点与多个NTP协议服务器的时间同步来实现。如果一个区块链节点的时间与联盟其他会员的区块链节点的时间相差过大,会导致由于投票消息的到达时刻超过限制,而被丢弃。这样就保证了各节点进行NTP时间同步的主动性,从而保证了各区块链节点投票信息中时间戳的准确性。
在本公开实施例中,区块投票信息产生包括以下步骤:
步骤一:选择投票入选截止时刻前收到的资产记账更新信息,并进行资产记账更新信息有效性校验。
步骤二:按照资产记账更新信息接收的先后顺序选择通过有效性校验的资产记账更新信息进行投票体封装,在投票体封装时,需要满足资产记账更新信息信条目数量不能超过最大限度的要求。
需要说明的是,在根据资产记账更新信息进行投票体封装时,一般选择采用资产记账更新信息Hash进行投票体封装的方式,以节省网络带宽资源。但是也可以使用资产记账更新信息封装的方式,或者使用资产记账更新信息Hash和资产记账更新信息混合的模式进行投票体封装。对于采用资产记账更新信息Hash的方式,可以使得区块链节点在传递区块投票信息时,可以降低区块投票信息传递占用的网络带宽消耗,但是如果区块投票信息的接收者如果没有对应的资产记账更新信息Hash的资产记账更新信息,则需要从其他区块链节点或者投票者节点获取该资产记账更新信息。
步骤三:选择区块链中末端区块的区块头Hash、以及当前投票周期的区块入选截止时刻对应的时间戳,形成投票内容信息。
步骤四:按照本节点私钥对投票内容和投票体的Hash数值进行数字签名得到投票签名数值。
步骤五:选择投票签名数值、投票内容和本联盟会员的标识信息组成区块投票信息的投票头。
在本公开实例中,投票签名数值为使用投票者私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值。投票头还包含投票体Hash,这样便于区块链节点在本地保存投票信息时,不需要保存投票体信息,就可以在需要时针对自己或者其他区块链节点的投票行为进行记录和存证。
步骤六:采用当前区块链末端区块的区块序号和新产生的投票体和投票头信息一起形成区块投票信息。
可选的,被投票签名的信息范围可以包括联盟会员标识或/和区块序号,以提高区块投票信息的完整性。
在本公开实施例中,在区块链节点生成区块投票信息后,向联盟内其他区块链节点进行广播。
S240、接收区块投票信息。
在本公开实施例中,在S240之后,还可以对区块投票信息进行有效性校验。
S250、根据区块投票信息,生成区块信息。
S260、区块链客户端或者用户合约服务器访问区块链节点或者中转设备获得资产记账信息。
在本公开实例中,客户端或者合约服务器对于资产发布注册信息或者合约状态注册信息中的注册签名校验使用的注册者数字证书相关信息可以选择向资产发布记账信息或者合约状态记账信息归属的联盟会员的区块链节点或者其他服务节点获取。
需要说明的是,客户端或者合约服务器对于资产发布注册信息或者合约状态注册信息中的注册签名校验中对于使用的数字证书的有效性校验可以选择按照对应资产记账信息在区块链区块的区块头中的时间戳进行校验。
需要说明的是,上述所有区块链共识产生的方法和步骤,只是为了阐述其中原理,并没有严格的先后顺序。
由此,在本公开实施例中,该实施方案在可靠性和安全性方面与传统的区块链解决方案相比都得到了提升。在可靠性方面,共识节点按照区块链中包含有体现为投票段投票条目联盟会员标识的校验者投票记录的数量来对校验者的共识行为的参与度进行考核,并把该考核指标作为对是否允许校验者进行与自己利益直接相关的资产记账信息注册的判罚依据,这样就激励了各校验者的共识行为的积极性,从而提高了区块链节点正常参与共识行为的可靠性,同时区块链中各区块投票段投票条目记录的联盟会员标识可以作为对应区块链资产记账信息的准确性故障进行联盟内责任追溯的依据,这个也提高了校验者对区块链资产记账信息进行正确校验的可靠性。另外,采用这种依靠区块投票信息产生共识的机制可以使得允许的恶意节点数量提升到50%,与传统基于PBFT的联盟链相比提高了恶意节点允许数量。在安全性方面,由于本区块链机制采用的是与传统联盟链类似的会员加盟机制,因此可以保证各节点与外界进行信息交互的范围限制在有限的可以追溯的加盟会员节点之间进行,从而保证了区块链系统在与其他节点进行协议通信时的安全性。
在本公开又一种实施方式中,对于商品类资产信息的场景,厂家可以通过资产发布注册信息的模式在区块链系统中发布对应的资产发布记账信息,以便消费者按照资产发布记账信息的资产记账证书进行商品原厂溯源。厂家在向代理商或者物流传递资产时,则还需要代理商或者物流商以中间资产注册信息的模式在区块链系统中注册对应的中间资产注册信息。以便消费者结合资产发布记账信息的资产记账证书和中间资产注册信息的资产记账证书两个资产记账证书进行商品原厂溯源。以下为面向该应用需求的区块链系统实施例说明。
图3示出了本公开实施例提供的又一种区块链共识生成方法的流程示意图。可选的,图3所示的区块链共识生成方法可以应用于商品传递场景。
在本公开一些实施例中,图3所示的区块链共识生成方法可以由任一区块链节点执行,这些区块链节点构成区块链系统。
如图3所示,该区块链共识生成方法可以包括如下步骤。
S310、接收资产发布注册信息,根据资产发布注册信息生成资产发布记账更新信息,并向其他装置或设备发送资产发布记账更新信息。
在本公开实例中,厂家一般需要在资产发布注册信息中设置代理商、物流商或者资产接收者的比特所有权地址信息。资产发布注册信息中的资产信息中可以包含一个或者多个比特所有权地址,多个比特所有权地址可以满足一些场景一个资产多个接收者的需求。比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有。
S320、接收资产记账更新信息。
在本公开实施例中,资产记账更新信息的种类包括资产发布记账更新信息和中间资产注册信息。对于代理商来说,代理商的资产管理者可以通过区块链节点、区块链网关、或者其他中转设备向区块链系统发送中间资产注册信息。区块链节点在收到中间资产注册信息后,可以向其他区块链节点广播该中间资产注册信息。
需要说明的是,中间资产注册信息中的发布者名称应该与对应资产标识的资产发布记账信息中的注册者名称一致。
可选的,中间资产注册信息中的资产信息包含一个或者多个比特所有权地址。该比特所有权地址主要用于在向下一个资产接收者传递资产时作为下一个资产接收者的标识。比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有。
可选的,在本公开实例中比特所有权地址可以通过对公钥数值先后进行SHA256、RIPMED160的算法处理得到。
可选的,中间资产注册信息中的资产信息可以包含资产相关信息的Hash数值,以实现更多资产信息在区块链中承载。
S330、根据资产记账更新信息生成区块投票信息,向其他装置或设备发送区块投票信息。
其中,S330与S230相似,在此不做赘述。
S340、接收区块投票信息。
在本公开实施例中,在S340之后,还可以区块投票信息进行有效性校验。
S350、根据区块投票信息,生成区块。
S360、根据区块,生成区块公证信息,并向联盟内其他区块链节点进行广播。
在本公开实施例中,区块链节点对区块链中自己参与投票的区块,需要进行公证更新处理,即按照对应区块生成区块公证信息,并向其他装置或者设备发送该区块公证信息,以便其他设备利用区块公证信息向区块链资产信息的用户提供经过多个联盟会员公证的区块链数据信息,以提高区块链资产信息的可信性;
在本公开实例中,区块公证信息包含区块序号、联盟会员标识、联盟会员数字证书相关信息标识、公证签名数值;区块序号为被公证区块的区块序号;联盟会员标识为联盟会员的标识信息;公联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;公证签名数值为使用联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头的Hash数值在内信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头在内信息进行数字签名得到的签名数值。
在本公开实施例中,区块链节点在由于自己的数字证书撤销或者失效时,需要及时的对区块链中的自己的历史投票区块按照新的数字证书生成区块公证信息,并向其他装置或者设备发送该更新后的区块公证信息。
S370、接收区块公证信息,并根据区块公证信息生成区块链区块的群公证块。
在本公开实施例中,区块链节点可以通过接收来自其他区块链节点的区块公证信息,并根据区块公证信息生成区块链区块的群公证块;群公证块包含多个群公证记录;群公证记录包含联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值,群公证记录中的联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值为对应的接收的群公证信息中的对应信息。
在本公开实例中,区块链节点可以按照联盟会员数字证书相关信息标识对应的联盟会员数字证书相关信息对收到的区块公证信息进行公证签名校验。如果本区块链节点没有对应的联盟会员数字证书相关信息,则需要向公证者节点或者其他节点获取该信息。
在本公开实施例中,区块链节点在收到区块公证信息后,如果本区块链节点没有联盟会员数字证书相关信息对应的相关数字证书没被撤销证明信息,则可以选择向相关数字证书对应的CA服务器获取该信息,相关数字证书没被撤销证明信息包括CRL信息等形式信息。
需要说明的是,联盟会员数字证书相关信息包含用于公证签名的联盟会员数字证书,或者包含用于公证签名的联盟会员数字证书和与联盟会员数字证书相关的一个或者多个证书权威(CA)的数字证书的组合。
可选的,区块链节点的区块公证信息中的联盟会员数字证书相关信息标识需要与区块链节点的区块投票信息投票头中的联盟会员数字证书相关信息标识保持一致,如果投票头的联盟会员数字证书相关信息标识采用的是联盟会员数字证书相关信息Hash的模式,则区块公证信息的联盟会员数字证书相关信息标识也采用联盟会员数字证书相关信息Hash的模式。可选的,区块链节点可以选择在发现自己的区块链群公证块中群公证记录的联盟会员数字证书相关信息标识与对应联盟会员的最新有效区块投票信息的投票头中联盟会员数字证书相关信息标识不一致时,主动向对应的区块链节点索取对应的区块公证信息。
可选的,在本公开实施例中,区块链节点可以通过接收其他区块链节点的区块公证信息并结合资产记账更新信息的归属联盟会员资源有效性校验来及时监督其他区块链节点的区块公证行为。当对资产记账更新信息归属联盟会员资源有效性校验时,关于对归属联盟会员共识贡献量的校验,如果发现自己的区块链中对应联盟会员的群公证块群公证记录联盟会员数字证书相关信息标识与该联盟会员的最新有效区块投票信息使用的联盟会员数字证书相关信息标识不一致的区块数量超过一定的限度,则该资产记账更新信息的归属联盟会员资源有效性校验失败。
需要说明的是,在本公开实例中,公证者为公证签名数值对应私钥的拥有者。
可选的,在本公开实例中,区块链节点在接收到一个区块链节点的区块公证信息后,可以选择向其他区块链节点进行广播该区块公证信息,以提高区块链系统共识相关信息的一致性。
S380、客户端从区块链系统获得资产记账信息。
在本公开实施例中,外部客户端用户可以选择从区块链节点或者其他中转设备(如区块链网关)获得区块链系统中的资产记账信息。为了提高区块链系统的安全性,区块链节点可以把由对应资产记账信息所在区块的相关信息形成的资产记账证书通过区块链网关转发给区块链系统外部的用户客户端。这时,为了提高通过区块链网关获得的区块链资产记账信息的可信性,采用多联盟会员信用担保的证书模式来向区块链客户端用户进行资产记账信息服务并由用户客户端对资产记账信息的可信性进行不依赖区块链系统的独立验证。这样实现了区块链系统在安全性和可信性保障的情况下,联盟链外部用户访问资产记账信息的开放性。
在本公开实施例中,在向用户客户端提供区块链中的资产记账信息时,只需要提供由区块中对应的资产记账信息、资产记账信息对应的Merkel_Hash_Path信息、区块头信息和区块的公证块信息组成的资产记账证书即可。Merkle_Hash_Path信息为对于区块中的Merkle_Hash_Tree进行迭代计算得到。对区块的Merkle_Hash_Tree进行迭代计算包括以下步骤:
步骤一:首先按照资产记账信息对应的顺序选择Merkle_Hash_Tree中对应该资产记账信息的Branch_Merke_Hash条目的成对相邻的Branch_Merke_Hash条目。
步骤二:选择得到的Branch_Merke_Hash条目中的Branch_Merke_Hash数值作为新得到的一个Merkle_Hash_Path数值。然后再按照新得到的Branch_Merke_Hash数值对应的高层Branch_Merke_Hash序号,选择该高层Branch_Merke_Hash序号对应的Branch_Merke_Hash条目的成对相邻的Branch_Merke_Hash条目,并重复该步骤的处理。
步骤三:以此类推,直到遇到选择的Branch_Merke_Hash数值在Branch_Merke_Hash条目的中的高层Branch_Merke_Hash序号为空。这时所有按顺序得到的Merkle_Hash_Path数值构成对应资产记账信息的Merkle_Hash_Path信息。
在本公开实施例中,用户客户端可以通过对收到的资产记账证书进行可信性校验。资产记账证书可信性校验包括注册签名校验、资产记账信息的Merkle_Hash_Path一致性校验和区块的公证块信息的有效性校验。资产记账证书的注册签名校验包括按照注册者数字证书相关信息以及区块头中的时间戳对注册者数字证书进行有效性校验和对资产记账信息中的注册签名数值进行注册签名数值有效性校验。公证块信息的有效性校验包括对每一个公证记录按照联盟会员标识对应的数字证书进行公证签名有效性校验。
在本公开实例中,客户端对于资产发布注册信息的注册签名校验使用的注册者数字证书相关信息可以选择向资产发布记账信息归属的联盟会员的区块链节点或者其他服务节点获取。
资产记账信息的Merkle_Hash_Path一致性校验包括按照依次从Merkle_Hash_Path中得到的数值进行迭代Hash校验,迭代Hash校验包括以下步骤:
步骤一:为首先对资产记账信息进行Hash计算,得到迭代输入Hash。
步骤二:从Merkle_Hash_Path中按顺序得到一个Merkle_Hash_Path数值,再把得到的迭代输入Hash与得到的Merkle_Hash_Path数值进行合并后再对合并后的数据进行Hash计算,得到新的迭代输入Hash。
步骤三:依次类推,重复按照步骤二处理,直到完成Merkle_Hash_Path中所有数值的处理,得到最后的迭代输入Hash结果。然后对该最后的迭代输入Hash结果与区块头中的Root_Merkle_Hash进行一致性比较。
在本公开实施例中,对于中间资产注册信息的场景,用户客户端在获得对应的资产发布记账信息的资产记账证书后,也可以获得一个对应中间资产注册信息的资产记账证书。对于中间资产注册信息的资产记账证书的可信性校验包括资产发布记账信息证书关联有效性校验、资产记账信息的Merkle_Hash_Path一致性校验和区块的公证块信息的有效性校验。资产发布记账信息证书关联有效性校验包括对中间资产注册信息中的发布者名称和资产标识与对应的资产发布记账信息中的注册者名称和资产标识信息的一致性校验。
需要说明的是,上述所有区块链共识产生的方法和步骤,只是为了阐述其中原理,并没有严格的先后顺序。
由此,在本公开实施例中,该实施方案在可靠性、开放性、安全性方面与传统的区块链解决方案相比都得到了提升。在可靠性方面,共识节点按照区块链中包含有体现为投票段投票条目联盟会员标识的校验者投票记录的数量来对校验者的共识行为的参与度进行考核,并把该考核指标作为对是否允许校验者进行与自己利益直接相关的资产记账信息注册的判罚依据,这样就激励了各校验者的共识行为的积极性,从而提高了区块链节点正常参与共识行为的可靠性,同时区块链中各区块投票段投票条目记录的联盟会员标识可以作为对应区块链资产记账信息的准确性故障进行联盟内责任追溯的依据,这个也提高了校验者对区块链资产记账信息进行正确校验的可靠性。另外,采用这种依靠区块投票信息产生共识的机制可以使得允许的恶意节点数量提升到50%,与传统基于PBFT的联盟链相比提高了恶意节点允许数量。在开放性方面,区块链中各区块投票段投票条目记录的联盟会员标识作为共识节点考核对应的联盟会员对对应区块的区块公证行为的参与度的依据,并进一步把该考核指标作为对是否允许联盟会员进行与自己利益直接相关的资产记账信息注册的判罚依据,从而保证区块链中的区块能够获得各联盟会员的及时的区块公证信息,进而保证了区块链系统在向区块链客户提供资产记账信息时,能够以包含了多个联盟会员的联合公证信息的资产记账证书的方式提供,实现了联盟外部的区块链用户无需参与联盟内区块链共识处理,也能够对收到的资产记账证书进行独立的可信性校验。同时对于非联盟会员的资产厂家可以通过联盟会员的区块链节点进行资产发布,各共识节点可以根据资产发布记账更新信息中携带的联盟会员标识按照联盟会员的资源配额进行厂家资产记账信息和中间商资产记账信息的区块链存储空间控制,实现在联盟外用户向区块链注册资产信息时的存储资源的安全使用,这样保证了联盟外用户无需参与联盟内区块链共识处理也可以进行区块链资产信息注册,提高了区块链的开放性。在安全性方面,由于本区块链机制采用的是与传统联盟链类似的会员加盟机制,因此可以保证各节点与外界进行信息交互的范围限制在有限的可以追溯的加盟会员节点之间进行,从而保证了区块链系统在与其他节点进行协议通信时的安全性。
以下是本发明实施例提供的区块链共识生成装置的实施例,该装置配置于任一区块链节点,该装置与上述各实施例的区块链共识产生方法属于同一个发明构思,在区块链共识产生装置的实施例中未详尽描述的细节内容,可以参考上述区块链共识产生方法的实施例。
本实施例提供一种区块链共识生成装置,参见图4,该区块链共识生成装置400具体包括:
资产记账更新信息接收模块410,用于接收资产记账更新信息;
区块投票信息接收模块420,用于接收区块投票信息;
区块生成模块430,用于根据资产记账更新信息和区块投票信息生成区块;
资产记账更新信息的种类包括资产发布记账更新信息;
资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;资产发布注册信息包含资产发布信息和注册签名信息;资产发布信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值;
区块投票信息包含区块序号、投票头和投票体;区块序号为被投票区块的区块序号;投票头包含投票内容和投票签名信息;投票内容包含区块Hash和时间戳;区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;联盟会员标识为联盟会员的标识信息;联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;投票签名数值为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;投票体包含零个、一个或者多个资产记账更新信息条目;资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值;
区块包含区块头、投票段和记账段;投票段包括多个投票条目;投票条目包含联盟会员标识;联盟会员标识为投票条目对应区块投票信息对应联盟会员投票者的标识信息;记账段包含一个或者多个资产记账信息;资产记账信息的种类包括资产发布记账信息;资产发布记账信息包含资产发布注册信息和联盟会员标签信息;联盟会员标签信息包含联盟会员标识;联盟会员标识为联盟会员的标识信息;区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;区块序号为本区块在区块链中的顺序号;投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
在本公开实施例中,能够接收资产记账更新信息,接收区块投票信息,根据资产记账更新信息和区块投票信息生成区块。该实施方案在可靠性、开放性、安全性方面与传统的区块链解决方案相比都得到了提升。在可靠性方面,共识节点按照区块链中包含有体现为投票段投票条目联盟会员标识的校验者投票记录的数量来对校验者的共识行为的参与度进行考核,并把该考核指标作为对是否允许校验者进行与自己利益直接相关的资产记账信息注册的判罚依据,这样就激励了各校验者的共识行为的积极性,从而提高了区块链节点正常参与共识行为的可靠性,同时区块链中各区块投票段投票条目记录的联盟会员标识可以作为对应区块链资产记账信息的准确性故障进行联盟内责任追溯的依据,这个也提高了校验者对区块链资产记账信息进行正确校验的可靠性。另外,采用这种依靠区块投票信息产生共识的机制可以使得允许的恶意节点数量提升到50%,与传统基于PBFT的联盟链相比提高了恶意节点允许数量。在开放性方面,区块链中各区块投票段投票条目记录的联盟会员标识作为共识节点考核对应的联盟会员对对应区块的区块公证行为的参与度的依据,并进一步把该考核指标作为对是否允许联盟会员进行与自己利益直接相关的资产记账信息注册的判罚依据,从而保证区块链中的区块能够获得各联盟会员的及时的区块公证信息,进而保证了区块链系统在向区块链客户提供资产记账信息时,能够以包含了多个联盟会员的联合公证信息的资产记账证书的方式提供,实现了联盟外部的区块链用户无需参与联盟内区块链共识处理,也能够对收到的资产记账证书进行独立的可信性校验。同时对于非联盟会员的资产厂家可以通过联盟会员的区块链节点进行资产发布,各共识节点可以根据资产发布记账更新信息中携带的联盟会员标识按照联盟会员的资源配额进行厂家资产记账信息和中间商资产记账信息的区块链存储空间控制,实现在联盟外用户向区块链注册资产信息时的存储资源的安全使用,这样保证了联盟外用户无需参与联盟内区块链共识处理也可以进行区块链资产信息注册,提高了区块链的开放性。在安全性方面,由于本区块链机制采用的是与传统联盟链类似的会员加盟机制,因此可以保证各节点与外界进行信息交互的范围限制在有限的可以追溯的加盟会员节点之间进行,从而保证了区块链系统在与其他节点进行协议通信时的安全性。
可选的,该装置还包括:
区块链同步请求消息发送模块,用于向其他装置或者设备发送区块链同步请求消息;
区块链同步响应消息接收模块,用于接收对应的区块链同步响应消息;
区块链同步请求消息接收模块,用于接收其他装置或者设备的区块链同步请求消息;
区块链同步响应消息返回模块,用于返回对应的区块链同步响应消息;
区块链同步请求消息包含区块序号;区块链同步响应消息包含区块链中从区块序号开始的一个或者多个区块信息。
可选的,该装置还包括:
资产发布注册信息接收模块,用于接收资产发布注册信息;
资产发布记账更新信息发送模块,用于根据资产发布注册信息生成资产发布记账更新信息,向其他装置或设备发送资产发布记账更新信息;
区块投票信息发送模块,用于根据资产记账更新信息生成区块投票信息,向其他装置或设备发送区块投票信息。
可选的,该装置还包括:
合约状态注册信息接收模块,用于接收合约状态注册信息;
合约状态记账更新信息发送模块,用于根据合约状态注册信息生成合约状态记账更新信息,向其他装置或设备发送合约状态记账更新信息;
资产记账更新信息的种类还包括合约状态记账更新信息;
合约状态记账更新信息包含合约状态注册信息和联盟会员签名信息;合约状态注册信息包含合约状态信息和注册签名信息;合约状态信息包含资产标识和资产信息;资产标识为资产的唯一性标识信息,该资产标识与当前区块链中对应资产的资产发布记账信息的资产标识相同;资产信息为资产的其他相关信息;注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;注册者数字证书相关信息标识为注册者数字证书相关信息的标识;注册者数字证书相关信息包含注册者名称对应的注册者数字证书;注册签名数值为使用注册者数字证书对应注册者私钥对包含合约状态信息在内的信息进行数字签名得到的签名数值;联盟会员签名信息包括联盟会员标识和联盟会员签名数值;联盟会员标识为联盟会员的标识信息;联盟会员签名数值为使用联盟会员标识对应联盟会员私钥对包含合约状态注册信息在内的信息进行数字签名得到的签名数值;
区块记账段的资产记账信息的种类还包括合约状态记账信息;合约状态记账信息包括合约状态注册信息和联盟会员标签信息;联盟会员标签信息包含联盟会员标识。
可选的,注册者数字证书相关信息标识为对注册者数字证书相关信息通过特定Hash算法计算得到的Hash数值。
可选的,该装置还包括:
注册者数字证书相关信息获取模块,用于获取注册者数字证书相关信息标识对应的注册者数字证书相关信息;
注册者数字证书相关信息发送模块,用于向其他装置或设备发送注册者数字证书相关信息标识对应的注册者数字证书相关信息。
可选的,联盟会员标签信息还包含联盟会员签名数值;联盟会员签名数值为使用联盟会员标签信息中联盟会员标识对应联盟会员私钥对包含资产发布注册信息或合约状态注册信息在内的信息进行数字签名得到的签名数值。
可选的,资产发布信息中的资产信息还包含一个或者多个比特所有权地址;比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有;
资产记账更新信息的种类还包括中间资产注册信息;
资产记账信息的种类还包括中间资产注册信息;
中间资产注册信息包含中间资产信息、一个或者多个注册签名数值、一个或者多个公钥数值;中间资产信息包含资产标识、发布者名称和资产信息;资产信息为资产的其他相关信息;发布者名称与区块链中对应资产标识的资产发布记账信息中的注册者名称相同;注册签名数值为使用公钥数值对应私钥对包含中间资产信息在内的信息进行数字签名得到的签名数值;公钥数值为区块链中对应资产标识的上一个交易型资产记账信息的比特所有权地址对应公钥数值;交易型资产记账信息为包含有比特所有权地址信息的资产记账信息。
可选的,中间资产注册信息中的资产信息包含一个或者多个比特所有权地址;比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有。
可选的,投票段投票条目中还包含资产记账更新信息条目数量;资产记账更新信息条目数量为投票段投票条目对应区块投票信息投票体中资产记账更新信息条目的数量。
可选的,区块区块头中的记账段Hash为对区块的记账段经过Merkle Hash算法处理得到的根Merkle Hash数值。
可选的,联盟会员数字证书相关信息标识为联盟会员数字证书相关信息Hash;联盟会员数字证书相关信息Hash为对联盟会员数字证书相关信息通过特定Hash算法计算得到的Hash数值;
投票段投票条目中还包含投票Hash;投票Hash为对投票存证信息通过特定Hash算法计算得到的Hash数值;投票存证信息为包含投票条目对应的区块投票信息投票头和区块投票信息投票体Hash的信息,或者为包含投票条目对应的区块投票信息投票头和区块投票信息投票体的信息。
可选的,该装置还包括:
区块公证信息生成模块,用于根据区块,生成区块公证信息;
区块公证信息发送模块,用于向其他装置或者设备发送区块公证信息;
区块公证信息接收模块,用于接收区块公证信息;
群公证块生成模块,用于根据区块公证信息生成区块链区块的群公证块;
区块公证信息包含区块序号、联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值;区块序号为被公证区块的区块序号;联盟会员标识为联盟会员的标识信息;联盟会员数字证书相关信息标识为联盟会员标识对应的联盟会员数字证书相关信息的标识;联盟会员数字证书相关信息包含联盟会员数字证书;公证签名数值为使用联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头的Hash数值在内信息进行数字签名得到的签名数值,或者为使用联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头在内信息进行数字签名得到的签名数值;
群公证块包含多个群公证记录;群公证记录包含联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值,群公证记录中的联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值为对应的接收的群公证信息中的对应信息。
本发明实施例所提供的区块链共识生成装置可执行本发明任意实施例所提供的区块链共识生成方法,具备执行方法相应的功能模块和有益效果。
图5示出了本公开实施例提供的一种区块链共识生成设备的结构示意图。
如图5所示,该区块链共识生成设备可以包括处理器501以及存储有计算机程序指令的存储器502。
具体地,上述处理器501可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器502可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器502可以包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器502可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器502可在综合网关设备的内部或外部。在特定实施例中,存储器502是非易失性固态存储器。在特定实施例中,存储器502包括只读存储器(Read-Only Memory,ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Electrical Programmable ROM,EPROM)、电可擦除PROM(Electrically ErasableProgrammable ROM,EEPROM)、电可改写ROM(Electrically Alterable ROM,EAROM)或闪存,或者两个或及其以上这些的组合。
处理器501通过读取并执行存储器502中存储的计算机程序指令,以执行本公开实施例所提供的区块链共识生成方法的步骤。
在一个示例中,该车辆还可包括收发器503和总线504。其中,如图5所示,处理器501、存储器502和收发器503通过总线504连接并完成相互间的通信。
总线504包括硬件、软件或两者。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(ExtendedIndustry Standard Architecture,EISA)总线、前端总线(Front Side BUS,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industrial Standard Architecture,ISA)总线、无限带宽互连、低引脚数(Low Pin Count,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、外围控件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)总线、视频电子标准协会局部(Video Electronics StandardsAssociation Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线504可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
本发明实施例所提供的区块链共识生成设备可实现本发明任意实施例所提供的区块链共识产生方法,具备执行方法相应的有益效果。
以下是本发明提供的区块链共识生成系统的实施例,该系统与上述各实施例的区块链共识产生方法属于同一个发明构思,在区块链共识生成系统的实施例中未详尽描述的细节内容,可以参考上述区块链共识产生方法的实施例。
本实施例提供一种区块链共识生成系统,参见图6,该系统具体包括:
协调器节点60、第一区块链节点61、第二区块链节点62、第三区块链节点63、厂家客户端64,中间商客户端65,消费者客户端66。
其中,第一区块链节点61、第二区块链节点62和第三区块链节点63为区块链共识参与节点,同时承担各自管辖范围内的资产记账更新信息的生成和发送,并根据接收到的资产记账更新信息产生区块投票信息,并向外发送。而协调器节点60只作为区块链共识生成节点,并不进行资产记账更新信息的封装处理,也不进行区块投票信息的生成处理。但是协调器节点60负责对其他区块链节点的区块同步请求消息的响应处理。可选的,协调器节点60可以承担中间资产注册信息的对外接收和转发工作。可选的,协调器节点60可以承担向客户度进行资产记账证书的发放工作。
可选的,该系统还可以包括:多个网络时间协议(Network Time Protocol,NTP)设备,如包括NTP1和NTP2。NTP1和NTP2可以对协调器节点60、第一区块链节点61、第二区块链节点62、第三区块链节点63进行时间同步。NTP设备可以选择互联网上的公共服务平台设备。
执行的步骤包括:
步骤一:厂家客户端66向对应的第一区块链节点61发送资产发布注册信息。
步骤二:第一区块链节点61接收资产发布注册信息,根据资产发布注册信息生成资产发布记账更新信息,并向其他区块链节点(协调节点60、第二区块链节点62、第三区块链节点63)发送资产发布注册记账更新信息。
步骤三:第一区块链节点61、第二区块链节点62、第三区块链节点63根据资产记账更新信息生成区块投票信息,并向其他区块链节点发送。
步骤四:协调器节点60、第一区块链节点61、第二区块链节点62、第三区块链节点63接收区块投票信息,并对区块投票信息进行有效性校验和生成区块。
步骤五:第一区块链节点61、第二区块链节点62、第三区块链节点63根据区块生成区块公证信息,并向其他区块链节点发送。
步骤六:当协调器节点60发生区块丢失或者需要进行区块同步时,向所有其他联盟会员节点(第一区块链节点61、第二区块链节点62、第三区块链节点63)进行区块同步。
步骤七:当第一区块链节点61发生区块丢失或者需要进行区块同步时,向协调器节点60进行区块同步。
步骤八:中间商客户端65向协调器节点60发送中间资产注册信息。
步骤九:协调器节点60向其他区块链节点转发中间资产注册信息。
步骤十:消费者客户端64通过协调器节点获得资产记账证书信息
需要说明的是,上述所有区块链共识生成的方法和步骤,只是为了阐述其中原理,并没有严格的先后顺序。
本发明实施例所提供的区块链共识产生系统可实现本发明任意实施例所提供的区块链共识生成方法,具备执行方法相应的有益效果。
本实施例提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行本发明任意实施例所提供的区块链共识生成方法中的相关操作。
本发明实施例所提供的计算机可执行指令的存储介质,可实现本发明任意实施例所提供的区块链共识产生方法,具备执行方法相应的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,云服务器或网络设备等)执行本发明各个实施例所提供的区块生成方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、功能弱化(如去除资产发布注册信息中的注册签名信息,或者去除资产发布记账信息中的联盟会员标签信息,或者去除投票头中的联盟会员数字证书相关信息标识)、重新调整(如使用公钥数值替代比特许可权地址,或者数字签名信息范围的扩大,或者区块投票信息中引入被投票区块的区块头等)、或替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例(如共识处理中不按照共识节点数量的50%进行共识收敛,而按照联盟会员信用系数的和的50%进行共识收敛),而本发明的范围由所附的权利要求范围决定。
Claims (17)
1.一种区块链共识生成方法,应用于任一区块链节点,其特征在于,所述区块链共识生成方法包括:
接收资产记账更新信息;
接收区块投票信息;
根据所述资产记账更新信息和所述区块投票信息生成区块;所述根据所述资产记账更新信息和所述区块投票信息生成区块,包括:对于通过区块投票有效性校验的投票信息进行区块链共识产生处理;如果对于当前区块链的末端区块的区块序号对应的其中一个被投票区块的投票支持度为最大的投票支持度,且投票支持度超过50%,且该被投票区块与所述当前区块链的末端区块不同,则使用该被投票区块替代当前区块链的末端区块;如果没有一个被投票区块的投票支持度超过50%,且有效区块投票分散在多个不同的被投票区块上,且有效的区块投票总数超过50%的联盟会员总数量,则对所述当前区块链进行区块回退处理,删除所述当前区块链的末端区块;如果所述有效的区块投票总数没有超过50%的联盟会员总数量,则选择启动与联盟内其他区块链节点的区块同步处理,从其他区块链节点获取从当前区块链末端区块序号的下一个区块序号开始的区块信息,并对获得的区块信息进行区块有效性校验,如果超过一定次数的多个连续的投票周期出现所述有效的区块投票总数没有超过50%的联盟会员总数量的情况,则选择联盟协商的方法线下处理;
所述资产记账更新信息的种类包括资产发布记账更新信息;
所述资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;所述资产发布注册信息包含资产发布信息和注册签名信息;所述资产发布信息包含资产标识和资产信息;所述资产标识为资产的唯一性标识信息;所述资产信息为资产的其他相关信息;所述注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;所述注册者数字证书相关信息标识为注册者数字证书相关信息的标识;所述注册者数字证书相关信息包含所述注册者名称对应的注册者数字证书;所述注册签名数值为使用所述注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;所述联盟会员签名信息包括联盟会员标识和联盟会员签名数值;所述联盟会员标识为联盟会员的标识信息;所述联盟会员签名数值为使用所述联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值;
所述区块投票信息包含区块序号、投票头和投票体;所述区块序号为被投票区块的区块序号;所述投票头包含投票内容和投票签名信息;所述投票内容包含区块Hash和时间戳;所述区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;所述投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;所述联盟会员标识为联盟会员的标识信息;所述联盟会员数字证书相关信息标识为所述联盟会员标识对应的联盟会员数字证书相关信息的标识;所述联盟会员数字证书相关信息包含联盟会员数字证书;所述投票签名数值为使用所述联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用所述联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;所述投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;所述投票体包含零个、一个或者多个资产记账更新信息条目;所述资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;所述资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值;
所述区块包含区块头、投票段和记账段;所述投票段包括多个投票条目;所述投票条目包含联盟会员标识;所述联盟会员标识为所述投票条目对应区块投票信息对应联盟会员投票者的标识信息;所述区块有效性校验包含记账段有效性校验、投票段有效性校验和区块头有效性校验;所述区块头有效性校验包括校验区块头中的上区块Hash是否与当前区块链中对应的上个区块一致,时间戳是否大于上个区块;投票段Hash是否与区块的投票段一致,记账段Hash是否与区块的记账段一致;所述投票段有效性校验包含对投票段中的投票条目进行联盟会员标识校验和对投票段进行投票支持度校验;所述联盟会员标识校验即校验投票条目中的联盟会员标识是否为本联盟的联盟会员的标识以及是否按照特定的顺序排列;所述投票段的投票支持度校验即为校验所有投票条目的联盟会员标识是否有重复的条目,以及校验投票条目数量是否满足本联盟的当前联盟会员数量的一半以上;所述记账段包含一个或者多个资产记账信息;所述资产记账信息的种类包括资产发布记账信息;所述资产发布记账信息包含资产发布注册信息和联盟会员标签信息;所述联盟会员标签信息包含联盟会员标识;所述联盟会员标识为联盟会员的标识信息;所述区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;所述上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;所述区块序号为本区块在区块链中的顺序号;所述投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;所述记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
2.根据权利要求1所述的区块链共识生成方法,其特征在于,所述区块链共识生成方法还包括:
向其他装置或者设备发送区块链同步请求消息,并接收对应的区块链同步响应消息;
接收其他装置或者设备的区块链同步请求消息,并返回对应的区块链同步响应消息;
所述区块链同步请求消息包含区块序号;所述区块链同步响应消息包含区块链中从所述区块序号开始的一个或者多个区块信息。
3.根据权利要求1所述的区块链共识生成方法,其特征在于,所述区块链共识生成方法还包括:
接收所述资产发布注册信息;
根据资产发布注册信息生成资产发布记账更新信息,向其他装置或设备发送资产发布记账更新信息;
根据资产记账更新信息生成区块投票信息,向其他装置或设备发送区块投票信息。
4.根据权利要求3所述的区块链共识生成方法,其特征在于,所述区块链共识生成方法还包括:
接收合约状态注册信息;
根据合约状态注册信息生成合约状态记账更新信息,向其他装置或设备发送合约状态记账更新信息;
所述资产记账更新信息的种类还包括合约状态记账更新信息;
所述合约状态记账更新信息包含合约状态注册信息和联盟会员签名信息;所述合约状态注册信息包含合约状态信息和注册签名信息;所述合约状态信息包含资产标识和资产信息;所述资产标识为资产的唯一性标识信息,该资产标识与当前区块链中对应资产的资产发布记账信息的资产标识相同;所述资产信息为资产的其他相关信息;所述注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;所述注册者数字证书相关信息标识为注册者数字证书相关信息的标识;所述注册者数字证书相关信息包含所述注册者名称对应的注册者数字证书;所述注册签名数值为使用所述注册者数字证书对应注册者私钥对包含合约状态信息在内的信息进行数字签名得到的签名数值;所述联盟会员签名信息包括联盟会员标识和联盟会员签名数值;所述联盟会员标识为联盟会员的标识信息;所述联盟会员签名数值为使用所述联盟会员标识对应联盟会员私钥对包含合约状态注册信息在内的信息进行数字签名得到的签名数值;
所述区块记账段的资产记账信息的种类还包括合约状态记账信息;所述合约状态记账信息包括合约状态注册信息和联盟会员标签信息;所述联盟会员标签信息包含联盟会员标识。
5.根据权利要求1或3或4所述的区块链共识生成方法,其特征在于,所述区块链共识生成方法还包括:
所述注册者数字证书相关信息标识为对所述注册者数字证书相关信息通过特定Hash算法计算得到的Hash数值。
6.根据权利要求3或4所述的区块链共识生成方法,其特征在于,所述区块链共识生成方法还包括:
获取注册者数字证书相关信息标识对应的注册者数字证书相关信息;
向其他装置或设备发送注册者数字证书相关信息标识对应的注册者数字证书相关信息。
7.根据权利要求1或3或4所述的区块链共识生成方法,其特征在于:
所述联盟会员标签信息还包含联盟会员签名数值;所述联盟会员签名数值为使用所述联盟会员标签信息中联盟会员标识对应联盟会员私钥对包含资产发布注册信息或合约状态注册信息在内的信息进行数字签名得到的签名数值。
8.根据权利要求1或3所述的区块链共识生成方法,其特征还在于:
所述资产发布信息中的资产信息还包含一个或者多个比特所有权地址;所述比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有;
所述资产记账更新信息的种类还包括中间资产注册信息;
所述资产记账信息的种类还包括中间资产注册信息;
所述中间资产注册信息包含中间资产信息、一个或者多个注册签名数值、一个或者多个公钥数值;所述中间资产信息包含资产标识、发布者名称和资产信息;所述资产信息为资产的其他相关信息;所述发布者名称与区块链中对应资产标识的资产发布记账信息中的注册者名称相同;所述注册签名数值为使用所述公钥数值对应私钥对包含中间资产信息在内的信息进行数字签名得到的签名数值;所述公钥数值为区块链中对应资产标识的上一个交易型资产记账信息的比特所有权地址对应公钥数值;所述交易型资产记账信息为包含有比特所有权地址信息的资产记账信息。
9.根据权利要求8所述的区块链共识生成方法,其特征在于,所述中间资产注册信息中的资产信息包含一个或者多个比特所有权地址;所述比特所有权地址为对包含公钥数值的信息通过包含特定Hash算法的处理得到的数值,该公钥数值对应的私钥为对应的资产接收者所拥有。
10.根据权利要求1或3所述的区块链共识生成方法,其特征在于:所述投票段投票条目中还包含资产记账更新信息条目数量;所述资产记账更新信息条目数量为所述投票段投票条目对应区块投票信息投票体中资产记账更新信息条目的数量。
11.根据权利要求1或3所述的区块链共识生成方法,其特征在于:
所述区块区块头中的记账段Hash为对区块的记账段经过Merkle Hash算法处理得到的根Merkle Hash数值。
12.根据权利要求1或3所述的区块链共识生成方法,其特征在于:
所述联盟会员数字证书相关信息标识为联盟会员数字证书相关信息Hash;所述联盟会员数字证书相关信息Hash为对所述联盟会员数字证书相关信息通过特定Hash算法计算得到的Hash数值;
所述投票段投票条目中还包含投票Hash;所述投票Hash为对投票存证信息通过特定Hash算法计算得到的Hash数值;所述投票存证信息为包含所述投票条目对应的区块投票信息投票头和区块投票信息投票体Hash的信息,或者为包含所述投票条目对应的区块投票信息投票头和区块投票信息投票体的信息。
13.根据权利要求3所述的区块链共识生成方法,其特征还在于,所述区块链共识生成方法还包括:
根据区块,生成区块公证信息,并向其他装置或者设备发送区块公证信息;
接收区块公证信息,并根据区块公证信息生成区块链区块的群公证块;
所述区块公证信息包含区块序号、联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值;所述区块序号为被公证区块的区块序号;所述联盟会员标识为联盟会员的标识信息;所述联盟会员数字证书相关信息标识为所述联盟会员标识对应的联盟会员数字证书相关信息的标识;所述联盟会员数字证书相关信息包含联盟会员数字证书;所述公证签名数值为使用所述联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头的Hash数值在内信息进行数字签名得到的签名数值,或者为使用所述联盟会员数字证书对应联盟会员私钥对包含区块序号对应区块区块头在内信息进行数字签名得到的签名数值;
所述群公证块包含多个群公证记录;所述群公证记录包含联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值,群公证记录中的联盟会员标识、联盟会员数字证书相关信息标识和公证签名数值为对应的接收的群公证信息中的对应信息。
14.一种区块链共识生成装置,配置于任一区块链节点,其特征在于,所述区块链共识生成装置包括:
资产记账更新信息接收模块,用于接收资产记账更新信息;
区块投票信息接收模块,用于接收区块投票信息;
区块生成模块,用于根据所述资产记账更新信息和所述区块投票信息生成区块;所述根据所述资产记账更新信息和所述区块投票信息生成区块,包括:对于通过区块投票有效性校验的投票信息进行区块链共识产生处理;如果对于当前区块链的末端区块的区块序号对应的其中一个被投票区块的投票支持度为最大的投票支持度,且投票支持度超过50%,且该被投票区块与所述当前区块链的末端区块不同,则使用该被投票区块替代当前区块链的末端区块;如果没有一个被投票区块的投票支持度超过50%,且有效区块投票分散在多个不同的被投票区块上,且有效的区块投票总数超过50%的联盟会员总数量,则对所述当前区块链进行区块回退处理,删除所述当前区块链的末端区块;如果所述有效的区块投票总数没有超过50%的联盟会员总数量,则选择启动与联盟内其他区块链节点的区块同步处理,从其他区块链节点获取从当前区块链末端区块序号的下一个区块序号开始的区块信息,并对获得的区块信息进行区块有效性校验,如果超过一定次数的多个连续的投票周期出现所述有效的区块投票总数没有超过50%的联盟会员总数量的情况,则选择联盟协商的方法线下处理;
所述资产记账更新信息的种类包括资产发布记账更新信息;
所述资产发布记账更新信息包含资产发布注册信息和联盟会员签名信息;所述资产发布注册信息包含资产发布信息和注册签名信息;所述资产发布信息包含资产标识和资产信息;所述资产标识为资产的唯一性标识信息;所述资产信息为资产的其他相关信息;所述注册签名信息包含注册者名称、注册者数字证书相关信息标识和注册签名数值;所述注册者数字证书相关信息标识为注册者数字证书相关信息的标识;所述注册者数字证书相关信息包含所述注册者名称对应的注册者数字证书;所述注册签名数值为使用所述注册者数字证书对应注册者私钥对包含资产发布信息在内的信息进行数字签名得到的签名数值;所述联盟会员签名信息包括联盟会员标识和联盟会员签名数值;所述联盟会员标识为联盟会员的标识信息;所述联盟会员签名数值为使用所述联盟会员标识对应联盟会员私钥对包含资产发布注册信息在内的信息进行数字签名得到的签名数值;
所述区块投票信息包含区块序号、投票头和投票体;所述区块序号为被投票区块的区块序号;所述投票头包含投票内容和投票签名信息;所述投票内容包含区块Hash和时间戳;所述区块Hash为对被投票区块的区块头通过特定Hash算法计算得到的Hash数值;所述投票签名信息包含联盟会员标识、联盟会员数字证书相关信息标识和投票签名数值;所述联盟会员标识为联盟会员的标识信息;所述联盟会员数字证书相关信息标识为所述联盟会员标识对应的联盟会员数字证书相关信息的标识;所述联盟会员数字证书相关信息包含联盟会员数字证书;所述投票签名数值为使用所述联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体Hash在内的信息进行数字签名得到的签名数值,或者为使用所述联盟会员数字证书对应联盟会员私钥对包含投票内容和投票体在内的信息进行数字签名得到的签名数值;所述投票体Hash为对投票体通过特定Hash算法计算得到的Hash数值;所述投票体包含零个、一个或者多个资产记账更新信息条目;所述资产记账更新信息条目为资产记账更新信息Hash或者资产记账更新信息;所述资产记账更新信息Hash为对资产记账更新信息通过特定Hash算法计算得到的Hash数值;
所述区块包含区块头、投票段和记账段;所述投票段包括多个投票条目;所述投票条目包含联盟会员标识;所述联盟会员标识为所述投票条目对应区块投票信息对应联盟会员投票者的标识信息;所述区块有效性校验包含记账段有效性校验、投票段有效性校验和区块头有效性校验;所述区块头有效性校验包括校验区块头中的上区块Hash是否与当前区块链中对应的上个区块一致,时间戳是否大于上个区块;投票段Hash是否与区块的投票段一致,记账段Hash是否与区块的记账段一致;所述投票段有效性校验包含对投票段中的投票条目进行联盟会员标识校验和对投票段进行投票支持度校验;所述联盟会员标识校验即校验投票条目中的联盟会员标识是否为本联盟的联盟会员的标识以及是否按照特定的顺序排列;所述投票段的投票支持度校验即为校验所有投票条目的联盟会员标识是否有重复的条目,以及校验投票条目数量是否满足本联盟的当前联盟会员数量的一半以上;所述记账段包含一个或者多个资产记账信息;所述资产记账信息的种类包括资产发布记账信息;所述资产发布记账信息包含资产发布注册信息和联盟会员标签信息;所述联盟会员标签信息包含联盟会员标识;所述联盟会员标识为联盟会员的标识信息;所述区块头包含区块序号、上区块Hash、时间戳、投票段Hash和记账段Hash;所述上区块Hash为对本区块在区块链中上个区块的区块头通过特定Hash算法计算得到的Hash数值;所述区块序号为本区块在区块链中的顺序号;所述投票段Hash为对区块的投票段通过特定Hash算法计算得到的Hash数值;所述记账段Hash为对区块的记账段通过特定Hash算法计算得到的Hash数值。
15.一种区块链共识生成设备,其特征在于,所述区块链共识生成设备为任一区块链节点;
其中,所述区块链共识生成设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的区块链共识生成方法。
16.一种区块链共识生成系统,其特征在于,所述区块链共识生成系统包括:多个区块链共识生成设备;
每个所述区块链共识生成设备实现如权利要求1-13中任一所述的区块链共识生成方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-13中任一所述的区块链共识生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424317.4A CN114172913B (zh) | 2021-11-26 | 2021-11-26 | 区块链共识方法、装置、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111424317.4A CN114172913B (zh) | 2021-11-26 | 2021-11-26 | 区块链共识方法、装置、设备、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114172913A CN114172913A (zh) | 2022-03-11 |
CN114172913B true CN114172913B (zh) | 2024-05-14 |
Family
ID=80481381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111424317.4A Active CN114172913B (zh) | 2021-11-26 | 2021-11-26 | 区块链共识方法、装置、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114172913B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245183A (zh) * | 2019-05-05 | 2019-09-17 | 上海链度科技有限公司 | 一种基于联盟区块链技术的加密电子投票选举系统及方法 |
CN110288348A (zh) * | 2019-06-20 | 2019-09-27 | 中国传媒大学 | 基于传播活跃度和资产证明的区块链共识方法及系统 |
CN110517139A (zh) * | 2019-08-23 | 2019-11-29 | 电子科技大学 | 一种基于投票机制的联盟区块链分权共识方法 |
CN112541758A (zh) * | 2020-12-01 | 2021-03-23 | 鲁静 | 基于区块链的多轮投票式容错排序共识机制与方法 |
CN112632186A (zh) * | 2020-12-23 | 2021-04-09 | 远光软件股份有限公司 | 区块链共识方法、计算机设备及区块链系统 |
CN112688775A (zh) * | 2020-12-17 | 2021-04-20 | 中国工商银行股份有限公司 | 联盟链智能合约的管理方法和装置、电子设备、及介质 |
-
2021
- 2021-11-26 CN CN202111424317.4A patent/CN114172913B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245183A (zh) * | 2019-05-05 | 2019-09-17 | 上海链度科技有限公司 | 一种基于联盟区块链技术的加密电子投票选举系统及方法 |
CN110288348A (zh) * | 2019-06-20 | 2019-09-27 | 中国传媒大学 | 基于传播活跃度和资产证明的区块链共识方法及系统 |
CN110517139A (zh) * | 2019-08-23 | 2019-11-29 | 电子科技大学 | 一种基于投票机制的联盟区块链分权共识方法 |
CN112541758A (zh) * | 2020-12-01 | 2021-03-23 | 鲁静 | 基于区块链的多轮投票式容错排序共识机制与方法 |
CN112688775A (zh) * | 2020-12-17 | 2021-04-20 | 中国工商银行股份有限公司 | 联盟链智能合约的管理方法和装置、电子设备、及介质 |
CN112632186A (zh) * | 2020-12-23 | 2021-04-09 | 远光软件股份有限公司 | 区块链共识方法、计算机设备及区块链系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114172913A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3116763C (en) | Privacy preserving validation and commit architecture | |
TWI749583B (zh) | 鏈式結構資料儲存、驗證、實現方法、系統、裝置及媒體 | |
CN109327528B (zh) | 一种基于区块链的节点管理方法和装置 | |
WO2021244208A1 (zh) | 区块链的提案消息处理方法、装置、设备以及存储介质 | |
US10832230B2 (en) | Scalable and distributed shared ledger transaction management | |
EP3751815B1 (en) | Multi-source deterministic oracle management | |
CN111865587B (zh) | 数据处理方法、区块链节点设备、电子设备及计算机程序 | |
CN109840767B (zh) | 基于区块链技术的多方公平合约存证方法和系统 | |
CN113256297B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN116527684B (zh) | 基于1+1+n中继共识委员会的多链信息交互方法 | |
CN114240433A (zh) | 基于区块链的数据处理方法及系统 | |
CN112749968B (zh) | 基于区块链的业务数据记录方法及装置 | |
CN113497823B (zh) | 一种基于区块链的劳务分包人员管理系统 | |
CN111222963A (zh) | 基于区块链的招标信息处理方法及装置 | |
US11831749B1 (en) | Method and system for utilizing the infrastructure of a blockchain to enhance the degree of reliability of another blockchain | |
CN114172913B (zh) | 区块链共识方法、装置、设备、系统及存储介质 | |
US20230360046A1 (en) | Blockchain-based block processing method and apparatus, device, storage medium, and program product | |
CN117241242A (zh) | 一种面向车联网的分层区块链共识方法 | |
CN114157428A (zh) | 一种基于区块链的数字证书管理方法和系统 | |
CN116866340A (zh) | 基于区块链的产能共享协作方法、装置、设备及存储介质 | |
CN115941282A (zh) | 一种基于nft的区块链跨链交互系统及方法 | |
CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
CN113256305A (zh) | 一种基于区块链的安检信息溯源系统 | |
CN112866341B (zh) | 用于环锭纺纱cpps的信息传输方法、装置、计算机可读介质 | |
CN111199404B (zh) | 基于区块链的aeo资质动态认证系统及使用其的认证方法 |
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 |