CN115118436B - 区块链共识方法及装置、存储介质及电子设备 - Google Patents
区块链共识方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115118436B CN115118436B CN202211012299.3A CN202211012299A CN115118436B CN 115118436 B CN115118436 B CN 115118436B CN 202211012299 A CN202211012299 A CN 202211012299A CN 115118436 B CN115118436 B CN 115118436B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- consensus
- voting
- information
- 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
Images
Classifications
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种区块链共识方法及装置、存储介质及电子设备,该方法包括:当区块链网络进入本轮共识过程时,确定上一轮共识过程中投票得到的目标区块所对应的各个区块投票信息,以对目标区块进行提议验证,若该目标区块通过提议验证,则确定所述各个区块投票信息对应的第一签名项;依据第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为当前的区块提议节点,若是,则生成对应的区块,并确定对应的区块提议信息,将该区块提议信息提交至区块链网络,以进行共识。应用本发明的方法,共识节点在当前区块提议阶段,无法确定其及合谋节点是否能成为下一轮共识过程的区块提议节点,作恶节点难以合作谋求利益,可提高区块链的安全性。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种区块链共识方法及装置、存储介质及电子设备。
背景技术
基于可验证随机函数(Verifiable Random Functions,VRF)算法的权益证明(Proof of Stake,POS)共识机制是常见的区块链共识机制之一。POS共识机制通过区块链给各个共识节点分配的权益,随机选择生产区块的节点、进行投票的节点以及进行验证的节点,完成区块链的共识过程。
在现有的区块链共识过程中,通常包含区块提议、区块投票和区块确认三个阶段。在区块提议阶段中,每个共识节点可通过VRF算法得到伪随机数,并基于该伪随机数确认自身是否为生产区块的节点。而共识节点在当前的共识过程中通过VRF算法确定伪随机数时,采用的输入参数为上一个经共识确认的区块的生产节点,在上一个区块提议阶段中基于VRF算法得到的伪随机数。
基于现有的区块链共识方法,若是各个共识节点中存在多个作恶节点,作恶节点在当前的区块提议阶段基于VRF算法确定了当前可成为生产区块的节点,在当前区块提议阶段中各个作恶节点便可以通过信息同步,确认各个作恶节点是否能够在下一个共识过程中成为生产区块的节点,各个作恶节点可通过互相合作获取最大利益,使得区块链的安全性较差。
发明内容
有鉴于此,本发明实施例提供了一种区块链共识方法,以解决在当前区块提议阶段中,各个作恶节点可以确认是否能够在下一个共识过程中成为生产区块的节点,可合作谋求最大利益,使得区块链的安全性较差的问题。
本发明实施例还提供了一种区块链共识装置,用以保证上述方法实际中的实现及应用。
为实现上述目的,本发明实施例提供如下技术方案:
一种区块链共识方法,所述方法应用于区块链网络中的每个共识节点,所述方法包括:
当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
上述的方法,可选的,所述依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点,包括:
确定所述本轮共识过程对应的轮次标识及提议阶段标识符;
确定所述目标区块对应的第一验证随机数;
基于所述轮次标识、所述提议阶段标识符、所述第一验证随机数和所述第一签名项,确定所述当前共识节点对应的伪随机数;
基于所述伪随机数和预设的评估算法,确定所述当前共识节点对应的第二验证随机数;
判断所述第二验证随机数是否处于预设的值域范围内,若所述第二验证随机数处于所述预设的值域范围内,则确定所述当前共识节点为所述本轮共识过程中的区块提议节点。
上述的方法,可选的,所述确定所述当前共识节点对应的区块所对应的区块提议信息,包括:
确定所述当前共识节点对应的提议概要信息;
确定所述目标区块的父区块对应的区块确认概要信息及第二签名项;
确定所述目标区块对应的区块投票概要信息;
确定所述当前共识节点对于所述目标区块的区块确认信息;
确定验证信息,所述验证信息包括公钥和第三签名项;
将所述提议概要信息、所述区块确认概要信息、所述第二签名项、所述区块投票概要信息、所述区块确认信息、所述验证信息和所述第一签名项,确定为所述区块提议信息。
上述的方法,可选的,还包括:
确定每个第一区块对应的区块提议信息,并基于各个所述第一区块对应的区块提议信息,对所述目标区块进行合格性验证;所述第一区块为所述本轮共识过程中生成的区块;
若所述目标区块通过合格性验证,则将所述目标区块写入本地区块链。
上述的方法,可选的,还包括:
确定所述本地区块链对应的每个分支链;
确定每个所述分支链对应的分叉区块个数和分叉累计共识次数;
对于每个所述分支链,确定该分支链对应的分叉区块个数是否小于预设的个数阈值,且该分支链对应的分叉累计共识次数是否小于预设的次数阈值,若该分支链对应的分叉区块个数小于所述预设的个数阈值,且该分支链对应的分叉累计共识次数小于所述预设的次数阈值,则将该分支链作为所述本地区块链中的第一分支链;
判断所述本地区块链中是否存在多个第一分支链,若所述本地区块链中存在多个第一分支链,则针对所述本地区块链中的每个第一分支链,判断该第一分支链上的每个区块是否均为合格区块,若该第一分支链上的每个区块均为合格区块,则将该第一分支链作为所述本地区块链中的第二分支链;
判断所述本地区块链中是否存在多个第二分支链,若所述本地区块链中存在多个第二分支链,则确定所述本地区块链中每个第二分支链对应的投票总数;
将所述本地区块链中的各个第二分支链中,对应的投票总数最大的第二分支链作为主链。
上述的方法,可选的,还包括:
依据所述第一签名项和所述预设的可验证随机函数算法,判断所述当前共识节点是否为所述本轮共识过程中的区块投票节点;
若所述当前共识节点为所述本轮共识过程中的区块投票节点,则对各个所述第一区块对应的区块提议信息进行有效性验证;
若各个所述第一区块对应的区块提议信息通过有效性验证,则在各个所述第一区块中确定投票区块;
确定所述投票区块对应的区块投票信息;
将所述投票区块对应的区块投票信息提交至所述区块链网络。
上述的方法,可选的,还包括:
确定每个所述第一区块对应的投票数,基于每个所述第一区块对应的投票数,在各个所述第一区块中确定待确认区块;
确定所述待确认区块对应的各个区块投票信息;
基于所述待确认区块对应的各个区块投票信息和预设的聚合签名算法,进行签名处理,得到所述待确认区块对应的签名项。
一种区块链共识装置,所述装置应用于区块链网络中的每个共识节点,所述装置包括:
第一确定单元,用于当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
第二确定单元,用于若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
第一判断单元,用于依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
第三确定单元,用于若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
第一提交单元,用于将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的区块链共识方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的区块链共识方法。
基于上述本发明实施例提供的一种区块链共识方法,当区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于各个区块投票信息对目标区块进行提议验证,目标区块为上一轮共识过程中的各个区块投票节点对上一轮共识过程中生成的各个区块进行投票得到的区块;若目标区块通过提议验证,则确定第一签名项,第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;依据第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为本轮共识过程中的区块提议节点;若当前共识节点为本轮共识过程中的区块提议节点,则生成当前共识节点对应的区块,并确定对应的区块提议信息;将区块提议信息提交至区块链网络,以使区块链网络对当前共识节点对应的区块进行共识。应用本发明实施例提供的方法,共识节点在下一轮共识过程中判断自身是否为区块提议节点时,需要采用本轮共识过程中产生的各个区块投票信息,故共识节点在本轮共识过程中的区块提议阶段,无法得到下一轮共识过程所需的判断数据。故多个作恶节点亦无法在当前的区块提议阶段,确定下一轮共识过程中各个作恶节点中是否存在区块提议节点,各个作恶节点难以通过合作谋求利益,可提高区块链的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种区块链共识方法的方法流程图;
图2为本发明实施例提供的一种区块结构示意图;
图3为本发明实施例提供的一种区块链的结构示意图;
图4为本发明实施例提供的一种区块共识信息的生成顺序示意图;
图5为本发明实施例提供的一种区块链共识装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,基于VRF算法的POS共识机制是常见的共识机制之一,这种共识机制基于VRF算法的可验证性、伪随机性和唯一性,整个网络无法预测共识过程中每一轮的区块提议节点(出块节点,也就是生产区块的节点)和区块投票节点等等,无法有效对共识过程进行攻击,保证了共识的整体安全性。在现有的实际应用过程中,基于VRF算法的POS共识机制,当前的区块提议节点会在其生产的区块中,写入自己计算的VRF算法的输出随机数,若该区块成功上链,该输出随机数则作为下一个共识过程中VRF算法的输入参数。这样可让下一个共识过程的区块提议节点的产生过程满足分布式随机性特性。但若在当前的区块提议阶段,作恶节点成为了区块提议节点,多个作恶节点之间可以通过信息同步,基于当前输出的随机数,确认这几个作恶节点是否可以成为下一个共识过程中的区块提议节点,使得作恶节点增大了互相合作以获取最大利益的可能性,削弱了区块链的整体安全性。
因此,本发明实施例提供了一种区块链共识方法,以上一轮共识过程中的区块投票阶段产生的区块投票信息对应的签名项,作为VRF算法的输入参数,以使作恶节点在当前的区块提议阶段无法确定能否成为下一个共识过程的区块提议节点,降低作恶的可能性,提高区块链的整体安全性。
本发明实施例提供了一种区块链共识方法,所述方法可应用于区块链网络中的每个共识节点,其执行主体可以为共识节点的服务器,所述方法的方法流程图如图1所示,包括:
S101:当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
本发明实施例提供的方法中,当区块链网络中产生新的交易数据时,区块链网络进入新一轮的共识过程。当区块链网络进入当前的共识过程时,每个共识节点可接收到上一轮共识过程生成的目标区块的各个区块投票信息,基于各个区块投票信息对目标区块进行提议验证,关于提议验证的内容可以根据实际的共识流程确定。
本发明实施例提供的方法中,将常规的区块提议阶段、区块投票阶段和区块确认阶段进行整合,将上一个共识过程中的区块确认阶段融入当前共识过程。对目标区块进行提议验证,则是基于目标区块对应的各个区块投票信息,对目标区块进行初始确认,也就是确认其投票数是否符合验证条件,该区块是否为合格的上链区块。具体的,可对目标区块的区块数据以及各个区块投票信息进行数据完整性的验证。判断目标区块的区块数据的哈希值,与上一轮共识过程中投票选取的最佳的待确认区块的区块数据的哈希值是否保持一致。进一步的,还可以对目标区块的所有共识数据进行有效性验证,包括确认目标区块的区块提议信息是否与上一轮共识过程中提交的对应的区块提议信息相同。
根据目标区块的提议验证结果,可确定本轮共识过程的区块高度和共识轮次,例如目标区块的区块高度为i,如果目标区块通过提议验证,则当前所需共识的区块的区块高度为i+1,共识轮次为0,将上一轮共识过程称为有效共识过程,目标区块则作为当前拟提交的新区块的父区块,本轮共识过程把未被共识确认的交易数据打包成区块高度为i+1的拟提交的新区块进行共识处理。如果目标区块未通过提议验证,则当前所需共识的区块的区块高度为i,共识轮次为j+1,j为区块高度i已经历的共识过程的轮数,目标区块的父区块则作为当前拟提交的新区块的父区块,本轮共识过程再次把未被共识确认的交易数据打包成区块高度为i的拟提交的新区块进行共识处理。
需要说明的是,在实际的应用过程中,亦可采用常规的共识流程,例如,若共识流程包括区块提议阶段、区块投票阶段和区块确认阶段,则对目标区块进行提议验证即为验证其是否为上一轮共识过程中经确认上链的区块即可。
S102:若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
本发明实施例提供的方法中,若目标区块通过提议验证,则从预先存储的目标区块的区块共识数据中,获取第一签名项,第一签名项是在上一轮有效共识过程中,共识节点基于目标区块对应的各个区块投票信息进行签名得到签名项。共识节点在共识过程中,对于投票选取出来的待确认区块,需基于其对应的各个区块投票信息进行签名。签名的具体机制,可采用现有的签名机制,签名机制的种类不影响本发明实施例提供的方法实现功能。
S103:依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
本发明实施例提供的方法中,可依据第一签名项和预设的可验证随机函数算法(VRF算法),确定当前共识节点是否为本轮共识过程中的区块提议节点,也就是生成区块的节点。
S104:若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
本发明实施例提供的方法中,若当前共识节点为当前的区块提议节点,当前共识节点则基于交易数据生成新的区块,并基于区块提议阶段所产生的相关数据,如VRF算法的相关输出参数等等,确定该区块对应的区块提议信息。
本发明实施例提供的方法中,作为区块提议节点的共识节点先完成新区块的打包工作,再把区块提议信息广播到全网,在后续向全网广播新区块的时候,就无法再更新区块内容,杜绝其通过后续区块更新操作在共识过程中联合相关恶意节点一起谋取群体利益最大化。
S105:将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
本发明实施例提供的方法中,共识节点可将其生成的区块所对应的区块提议信息在区块链网络中进行广播,同理,当前的共识节点,也可接收到其他区块提议节点生成的区块所对应的区块提议信息。区块链网络可基于当前共识过程中产生的各个区块所对应的区块提议信息,对当前生成的各个区块进行投票确认等流程,以对下一个上链区块达成共识。
基于本发明实施例提供的方法,当进入新的共识过程时,区块链网络中的每个共识节点,可确定目标区块(上一轮共识过程投票产生的最佳区块)对应的各个区块投票信息,以对目标区块进行提议验证,若目标区块通过了提议验证,则通过VRF算法以及基于所述各个区块投票信息得到的第一签名项,判断当前共识节点是否为当前的区块提议节点,若是,当前共识节点则生成新的区块,并打包该区块对应的区块提议信息。将区块提议信息提交至区块链网络,以对新的区块进行共识。应用本发明实施例提供的方法,共识节点在当前共识过程中判断能否成为生产区块的过程中,采用基于上一个共识过程中产生的各个区块投票信息得到的签名项,作为VRF算法的输入参数。若作恶节点成为了当前的区块提议节点,其在生成区块时,无法联合其他作恶节点估计下个共识过程的VRF算法的输入参数,无法确定各个作恶节点能否成为下一个共识过程中的区块提议节点,各个作恶节点难以联合谋取最大利益,可提高区块链的安全性,保障去中心化能力。其次,本发明实施例提供的方法中,在当前共识过程中的区块提议阶段,同步完成对上一轮共识过程中的目标区块的确认逻辑,完成目标区块的最终确认过程,相比现有区块链共识过程的时间长度减少了一个区块确认阶段的时间单元,可提高区块链的共识性能。
上述实施例所提供的说明,主要是区块共识过程中的区块提议阶段的处理过程,本发明实施例提供的共识过程中,***会为区块提议阶段约定阈值T p ,从而让区块提议节点的选中数量满足阈值S p (比如,让VRF算法从100个共识节点中概率性地选中21个节点作为区块提议节点)。***根据区块提议节点的选中阈值S p ,约定一个拟提议区块的提议总数阈值V p (比如,V p =2/3S p )。
本发明实施例提供的区块提议阶段需要遵循以下的区块提议规则:
①不允许一提多议:同一个区块提议节点不允许提议多个新区块;
②为一提多议建立惩罚机制:区块提议节点有一提多议问题,扣除其向***质押的数字资产,并让其失去共识节点的资格;
③一提多议的区块提议节点所提交的区块提议信息不作为拟提议的新区块;
④共识节点主动丢弃掉不在当前共识阶段中的提议信息,以降低恶意节点的延迟攻击的成功率。
为了更好地说明本发明实施例提供的方法,接下来对本发明实施例中提及的可验证随机函数算法的算法原理作简要说明。
本发明实施例提供的方法中所提及的可验证随机函数(Verifiable RandomFunction)算法,简称VRF算法,是一种加密原语,可将输入映射到可验证的伪随机输出。该算法原理是Micali,Rabin和Vadhan在1999年推出的,现在已广泛应用于各种加密方案、协议和***中。
VRF算法包含三个步骤,分别为:Keygen(密钥生成)、Evaluate(评估)以及Verify(验证)。
Keygen(r)→(VK,SK):Keygen步骤指的是,在一个随机输入r上,密钥生成算法产生验证公钥VK和私钥SK对。
Evaluate(SK,X)→(Y,⍴):Evaluate步骤指的是,评估算法以私钥SK和消息X作为输入,输出一个伪随机值Y和证据⍴。
Verify(VK,X,Y,⍴)→0/1:Verify步骤指的是,验证算法将验证公钥VK,消息X,伪随机值Y和证据⍴作为输入,当且仅当它验证Y是评估算法在输入SK和X上产生的输出时,输出1。
区块链网络基于VRF算法实现对应的共识机制的原理如下:
***为每一个共识节点设定一个概率阈值pi,表示共识节点在一轮选举过程中被选中为选举人(区块提议节点或区块投票节点)的概率pi:
不失一般性,赋予每个共识节点相同的权重,那么概率p可以简化为:
其中,n是共识节点的总数,c(定义为节点的活跃系数)是一个常数且0<c<1。例如,在某一轮共识算法中,共识节点的总数是100个,赋予每个共识节点相同的权重,如果希望选中的选举人的数量是20,那么p=0.2。
通过概率阈值p来计算一个阈值Ƭ:
其中,l vrf 是VRF算法输出Y的比特长度。
检查共识节点的输出Y是否在值域[0,Ƭ]范围内,输出Y在值域[0,Ƭ]范围内的共识节点,被选举为区块提议节点或区块投票节点。
根据给定(Y,⍴)和用户的验证公钥VK,任何人都可以验证Y是否为有效的唯一输出,并且它落在期望的值域[0,Ƭ]范围内。
在基于VRF算法进行共识的过程中,采用节点私钥作为输入,VRF算法的结果无法被预测,其他节点只有通过网络接收到选举人公示的随机结果后,才能对其合法性进行验证,即攻击者在得知选举结果时,选举人已经做出行动了。此外,VRF算法的输出值除了随机值外,还包含一个证据proof,提供了随机值验证的零知识证明,即不必知道某人私钥即可证明该随机值是由某人产生的。
为了更好地说明本发明实施例提供的方法,接下来对基于VRF算法的POS共识机制作简要介绍。基于VRF算法的POS共识机制的拜占庭容错能力是1/3,也就是最多允许1/3的节点是恶意节点,整个共识过程一般都分为以下三个共识阶段:
①区块提议阶段;
每个共识节点通过VRF算法来确认自己是否属于区块提议节点,如果自己是区块提议节点,那么就把新接收到的交易数据进行区块打包处理,生成一个新区块,并把新区块向全网进行广播。
②区块投票阶段;
每个共识节点接收到多个新区块后,对新区块进行验证,并按照共识的规则约定选出优先级最高的新区块。每个共识节点通过VRF算法来确认自己是否属于区块投票节点,如果自己是区块投票节点,那么对自己接收到的新区块中选出优先级最高的新区块进行投票,并把投票信息向全网进行广播。每个共识节点接收到多个投票信息,对投票信息进行统计,获取投票数大于2/3阈值节点数的新区块。
③区块确认阶段;
每个共识节点通过VRF算法来确认自己是否属于区块确认节点,如果自己是区块确认节点,那么为已经统计完成的投票数大于2/3阈值节点数的新区块进行确认,并把确认信息向全网进行广播。每个共识节点接收到多个确认信息,对确认信息进行统计,获取确认数大于2/3阈值节点数的新区块,把这个新区块写入到本地区块链中。
基于VRF算法的POS共识机制通过三类阶段消息达成共识。若是只有区块提议阶段和区块投票阶段的两个阶段消息是无法达成全局一致的。假设没有区块确认阶段,节点1在区块投票阶段收集满大于2/3的投票后,达到区块确认状态,然而这个区块确认状态仅是节点1的一个局部视角,不是全局一致,此时节点1不能保证其余节点都达到区块确认状态,如果少于1/3个非恶意节点成为区块确认状态,节点1又确认了该消息,那么***就出现了不一致。而采用三阶段消息进行共识,某节点收集满大于2/3的确认信息,意味着有大于1/3个非恶意节点达成了区块确认状态,也就意味着多数节点已经认同了消息。在这种情况下,达成一致状态的非恶意节点大于1/3,而***假设的恶意节点小于1/3,所以无论恶意节点后续如何对这个区块数据进行联合挑战,达成一致状态的非恶意节点总数总是多于进行联合挑战的恶意节点总数。
需要说明的是,节点1在区块投票阶段收集满大于2/3的投票后,达到区块确认状态,虽然这个区块确认状态仅是节点1的一个局部视角,但是这个区块确认状态已经可以让节点1确认出拟提议新区块的父区块,也即让节点1具备了基于这个父区块提议一个新区块的能力,这也是本发明实施例可以合并二个共识阶段的关键逻辑所在。
为了更好地说明本发明实施例提供的方法,基于上述原理,接下来对主流的基于VRF算法的POS共识机制的整体流程作简要说明。
基于VRF算法的POS共识机制中,每个新区块的数据里面,会包含前一个区块的共识过程中产生的VRF交易信息(简称为,VRF共识交易信息),一般包括以下交易信息:VRF区块提议信息、VRF区块投票信息和VRF区块确认信息。主流的共识过程为:
①区块提议阶段(proposal);
***通过规则约定新区块i(区块高度为i)的第j轮共识的提议阶段的伪随机数X pij :X pij =前一轮有效共识过程(区块高度为i-1的第x轮共识)中的目标区块的区块提议节点t在区块提议阶段计算的伪随机值Y tp(i-1)x 。***会为区块提议阶段约定阈值T p 。共识节点a计算:Evaluate(SK a ,X pij )→(Y apij ,⍴ apij ),确认自己的输出Y apij 是否在值域[0,T p ]范围内,如果输出Y apij 在值域[0,T p ]范围内,就按照规则打包一个新区块i,向全网提交自己的VRF区块提议信息,一般包括:新区块的区块高度i、(区块高度i的)第j轮共识过程、公钥VK a 、伪随机值Y apij 、证据⍴ apij 、拟提交的新区块i的哈希值BH aij 以及签名项Sign apij 。
②区块投票阶段(vote);
***通过规则约定新区块i(区块高度为i)的第j轮共识的投票阶段的伪随机数X vij :X vij =前一轮有效共识过程(区块高度为i-1的第x轮共识)中的目标区块的区块提议节点t在区块提议阶段计算的伪随机值Y tp(i-1)x ,***会为区块投票阶段约定阈值T v 。共识节点b计算:Evaluate(SK b ,X vij )→(Y bvij ,⍴ bvij ),确认自己的输出Y bvij 是否在值域[0,T v ]范围内。如果输出Y bvij 在值域[0,T v ]范围内,区块投票节点验证提议信息的有效性:Verify(VK a ,X pij ,Y apij ,⍴ apij )→0/1,并验证签名项的有效性。按照共识的规则逻辑从拟提交的新区块i中选择一个最佳的区块,并向全网提交自己的VRF区块投票信息,一般包括:新区块的区块高度i、(区块高度i的)第j轮共识过程、公钥VK b 、伪随机值Y bvij 、证据⍴ bvij 、所投票的拟提交的新区块i的哈希值BH bij 以及签名项Sign bvij 。
区块投票节点验证投票信息的有效性:Verify(VK b ,X vij ,Y bvij ,⍴ bvij )→0/1,验证签名项的有效性,并统计自己的提议区块的投票数,如果投票数超过***约定的阈值V v ,那么就向全网提交自己的新区块数据。
③区块确认阶段(finalize);
***通过规则约定新区块i(区块高度为i)的第j轮共识的确认阶段的伪随机数X fij :X fij =前一轮有效共识过程(区块高度为i-1的第x轮共识)中的目标区块的区块提议节点t在区块提议阶段计算的伪随机值Y tp(i-1)x ,***会为区块确认阶段约定阈值T f 。共识节点c计算:Evaluate(SK c ,X fij )→(Y cfij ,⍴ cfij ),确认自己的输出Y cfij 是否在值域[0,T f ]范围内,如果输出Y cfij 在值域[0,T f ]范围内,就对新区块数据进行验证(包括父区块i-1的VRF共识交易信息),并验证新区块对应的投票数,根据新区块的验证结果,向全网提交自己的VRF区块确认信息,一般包括:新区块的区块高度i、(区块高度i的)第j轮共识过程、公钥VK c 、伪随机值Y cfij 、证据⍴ cfij 、拟确认的新区块i的哈希值BH cij (如果无合格的新区块,就把BH cij 设置为0)以及签名项Sign cvij 。
全网节点验证确认信息的有效性:Verify(VK c ,X fij ,Y cfij ,⍴ cfij )→0/1,验证签名项的有效性,并统计新区块的确认数,如果确认数超过***约定的阈值V f ,那么把新区块i确认为合格的新区块写入到区块链中。如果新区块i确认成功,那么下一轮的共识为新区块i+1(区块高度为i+1)的第0轮共识过程。如果新区块i确认失败,那么下一轮的共识为新区块i(区块高度为i)的第j+1轮共识过程。
基于VRF算法的POS共识机制,没有传统拜占庭逻辑中的leader角色,所有共识节点都是平等参与的,没有一个leader角色来领导整个共识过程。
需要说明的是,上述基于VRF算法的POS共识机制仅是为了更好地说明本发明实施例提供的方法,所提供的主流共识机制的简要说明,并非本发明实施例提供的区块链共识方法的应用过程,本发明实施例提供的区块链共识方法,亦采用区块提议、区块投票和区块确认这三类消息实现共识,但本发明实施例提供的区块链共识方法的VRF算法中的参数与上述过程有显著区别,本发明实施例提供的方法亦不限于按照上述三个阶段的顺序流程实现。
为了更好地说明本发明实施例提供的方法,在图1所示方法的基础上,本发明实施例提供了又一种区块链共识方法,其中,步骤S103中提及的依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点的过程,包括:
确定所述本轮共识过程对应的轮次标识及提议阶段标识符;
本发明实施例提供的方法中,区块链网络在每轮共识过程中,会记录当前共识过程对应的轮次标识,轮次标识表征的是对当前区块高度的区块进行共识的次数,同时,亦预先约定了用于标识区块提议阶段的提议阶段标识符。
确定所述目标区块对应的第一验证随机数;
本发明实施例提供的方法中,可从目标区块对应的VRF区块提议信息中,获取目标区块对应的第一验证随机数,该随机数是在上一轮有效共识过程中,生成该目标区块的共识节点在判断其是否为区块提议节点时,通过VRF算法中的评估算法输出的验证随机数。
基于所述轮次标识、所述提议阶段标识符、所述第一验证随机数和所述第一签名项,确定所述当前共识节点对应的伪随机数;
本发明实施例提供的方法中,可基于本轮共识过程对应的轮次标识及提议阶段标识符、第一验证随机数和第一签名项,通过随机数函数,生成一个伪随机数。
基于所述伪随机数和预设的评估算法,确定所述当前共识节点对应的第二验证随机数;
本发明实施例提供的方法中,可基于VRF算法中的评估算法,将当前共识节点的私钥和上一步骤生成的伪随机数作为输入参数,输出一个验证随机数。
判断所述第二验证随机数是否处于预设的值域范围内,若所述第二验证随机数处于所述预设的值域范围内,则确定所述当前共识节点为所述本轮共识过程中的区块提议节点。
本发明实施例提供的方法,可通过判断第二验证随机数是否在预设的值域范围内,确定当前共识节点是否为当前的区块提议节点,即生成区块的节点。参考上述对于POS共识机制的原理说明,具体的,其处理过程可以为:
***通过规则约定新区块i(区块高度为i)的第j轮共识的提议阶段的伪随机数X pij :X pij =随机数函数(区块高度为i-1的父区块的区块提议节点t在区块提议阶段计算的伪随机值Y tp(i-1)x (第一验证随机数),区块高度为i-1的父区块的区块投票信息的BLS聚合签名项的值(第一签名项),j,提议阶段标识符)。其中,x是父区块的区块高度i-1的共识轮次,j是本轮共识的轮次,提议阶段标识符是***约定的用于标识提议阶段的一个标识符(比如:0x00)。本发明基于BLS聚合签名算法得到第一签名项。
共识节点a计算:Evaluate(SK a ,X pij )→(Y apij ,⍴ apij ),确认自己的输出Y apij 是否在值域[0,T p ]范围内。如果输出Y apij 在值域[0,T p ]范围内,共识节点a就确认自己为本轮共识过程中的区块提议节点。
基于本发明实施例提供的方法,通过将父区块的区块投票信息得到的签名项,作为当前共识过程VRF算法的消息X的随机数函数的输入参数,消除了当前的区块提议节点与其它恶意节点进行联合计算来确认下一个共识过程的区块提议节点的可能性,保障了区块链的安全性和去中心化能力。
进一步的,在上述实施例提供的方法的基础上,本发明实施例提供了又一种区块链共识方法,其中,步骤S104中提及的确定所述当前共识节点对应的区块所对应的区块提议信息的过程,包括:
确定所述当前共识节点对应的提议概要信息;
确定所述目标区块的父区块对应的区块确认概要信息及第二签名项;
确定所述目标区块对应的区块投票概要信息;
确定所述当前共识节点对于所述目标区块的区块确认信息;
确定验证信息,所述验证信息包括公钥和第三签名项;
将所述提议概要信息、所述区块确认概要信息、所述第二签名项、所述区块投票概要信息、所述区块确认信息、所述验证信息和所述第一签名项,确定为所述区块提议信息。
本发明实施例提供的方法中,当前共识节点确认自身为本轮共识过程的区块提议节点后,则会按照已确定的区块高度和共识轮次打包一个新区块i,向全网提交自己的区块提议信息,也就是VRF区块提议信息。本发明实施例提供的方法中,VRF区块提议信息中包括以下信息内容:新区块i的提议信息(提议概要信息)、新区块i的父区块的父区块的VRF区块确认信息及BLS聚合签名项(目标区块的父区块对应的区块确认概要信息及第二签名项)、新区块i的父区块的VRF区块投票信息及BLS聚合签名项(区块投票概要信息)、当前共识节点对于新区块i的父区块的VRF区块确认信息(目标区块的区块确认信息)、公钥及上面4部分信息的签名项(验证信息,公钥VK a 和签名项Sign apij )。
新区块i的提议信息可以包括:新区块的区块高度i、当前(区块高度i的)共识轮次j、伪随机值Y apij 、证据⍴ apij 以及拟提交的新区块i的哈希值BH aij 。
新区块i的父区块的父区块的VRF区块确认信息及BLS聚合签名项可以包括:新区块i的父区块的父区块的区块确认信息的个数t、新区块i的父区块的父区块的区块确认信息的数组内容(新区块i的父区块的父区块的各个区块投票信息的数组集合,m=[0,t-1],m是每个数组元素的下标)、公钥PPVK fm 、伪随机值PPY fm 、证据PP⍴ fm 、新区块i的父区块的父区块的哈希值PPBH i 和BLS聚合签名项。
新区块i的父区块的VRF区块投票信息及BLS聚合签名项可以包括:新区块i的父区块的区块投票信息的个数t`、新区块i的父区块的区块投票信息的数组内容(新区块i的父区块的各个区块投票信息的数组集合,n=[0,t`-1],n是每个数组元素的下标)、公钥PVK vn 、伪随机值PY vn 、证据P⍴ vn 、新区块i的父区块的哈希值PBH i 以及BLS聚合签名项。
当前共识节点对于新区块i的父区块的确认信息可以包括:伪随机值Y apij 、证据⍴ apij 以及新区块i的父区块的哈希值PBH i 的签名项。
为了更好地说明本发明实施例提供的方法,结合图2所示区块结构示意图,本发明实施例提供的方法中,区块的结构包括区块头、该区块的父区块的父区块的VRF共识确认信息(VRF区块确认信息)、该区块的父区块的VRF共识投票信息(VRF区块投票信息)、该区块的VRF共识提议信息(VRF区块提议信息)以及该区块的非VRF共识交易信息(交易数据)。
共识节点在打包区块提议信息时,可以从目标区块的区块数据中,获取当前区块的父区块以及父区块的父区块的相关VRF信息。
需要说明的是,各个区块提议节点生成的新区块的父区块信息通常是唯一的,若不唯一,在其投票阶段则达不到票数阈值,亦不会进入新区块的区块提议阶段。另外,本发明实施例中所提供的具体信息内容,仅为了更好地说明本发明的方法所提供的一个具体实施例,在具体的实现过程中,可以根据实际需求确定具体的信息内容,不限于本发明实施例提供的具体参数。
基于本发明实施例提供的方法,在区块提议信息中加入了新区块的区块高度及当前共识轮次的相关信息,有利于让区块链中的各个共识节点在共识阶段序号上达成一致意见。
进一步的,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
确定每个第一区块对应的区块提议信息,并基于各个所述第一区块对应的区块提议信息,对所述目标区块进行合格性验证;所述第一区块为所述本轮共识过程中生成的区块;
本发明实施例提供的方法中,当前共识节点可接收当前共识过程中生成的每个区块对应的区块提议信息,每个区块提议信息中都记载其对应区块i的父区块i-1。正常情况下,该父区块i-1均为目标区块。可以通过对父区块i-1对应的各个区块投票信息和各个区块确认信息进行计数统计,如果父区块i-1的区块投票信息和区块确认信息的数量都分别大于***约定的阈值(也就是其投票数和确认数分别大于阈值),则确定父区块i-1通过合格性验证。其具体原理为基于VRF算法的POS共识机制中,区块确认阶段对待确认的区块进行确认的原理,可以参见上述关于POS共识机制的说明。
如果根据各个区块提议信息中记载的父区块的相关信息,目标区块的投票数或确认数没有大于预设阈值,则其未通过合格性验证。
若所述目标区块通过合格性验证,则将所述目标区块写入本地区块链。
本发明实施例提供的方法中,若目标区块通过合格性验证,则将目标区块作为合格区块,写入本地,按照主链选择逻辑进行区块确认。还可以对各个区块提议信息中的父区块i-1的确认信息进行BLS聚合签名计算,生成对应的BLS签名项,将相关数据进行存储。
本发明实施例提供的方法中,如果目标区块没有通过合格性验证,而有其他区块通过了合格性验证,则将通过区块链网络确认的区块写入本地。
为了更好地说明本发明实施例提供的方法,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
确定所述本地区块链对应的每个分支链;
确定每个所述分支链对应的分叉区块个数和分叉累计共识次数;
对于每个所述分支链,确定该分支链对应的分叉区块个数是否小于预设的个数阈值,且该分支链对应的分叉累计共识次数是否小于预设的次数阈值,若该分支链对应的分叉区块个数小于所述预设的个数阈值,且该分支链对应的分叉累计共识次数小于所述预设的次数阈值,则将该分支链作为所述本地区块链中的第一分支链;
判断所述本地区块链中是否存在多个第一分支链,若所述本地区块链中存在多个第一分支链,则针对所述本地区块链中的每个第一分支链,判断该第一分支链上的每个区块是否均为合格区块,若该第一分支链上的每个区块均为合格区块,则将该第一分支链作为所述本地区块链中的第二分支链;
判断所述本地区块链中是否存在多个第二分支链,若所述本地区块链中存在多个第二分支链,则确定所述本地区块链中每个第二分支链对应的投票总数;
将所述本地区块链中的各个第二分支链中,对应的投票总数最大的第二分支链作为主链。
本发明实施例提供的方法中,区块链网络中的节点,需要从创世区块开始,按照区块高度的递增次序,从其它节点同步区块并确定出主链。共识节点可以在将新区块上链后,在同步得到的区块链结构中确定出主链。
本发明实施例提供的方法中,可以预先设置连续区块的个数阈值θ(预设的个数阈值)、连续区块的累计共识轮次的系数阈值φ(预设的次数阈值)。
本发明实施例提供的方法中,可以在区块链(存在分支的区块链)中,从新区块(末尾区块)开始,通过其父区块回溯至第一个区块分叉点,统计新区块到第一个区块分叉点的区块个数和累计共识轮次,如果区块个数大于θ,并且累计共识轮次大于φ,那么此区块回溯直至到第一个区块分叉点处的所有区块(不包括分叉点的区块)都不是合格的区块,这个分支链则为不合格的分支链。如果区块个数和累计共识轮次满足预设的阈值要求,则将该分支链作为区块链中的第一分支链。对于区块链中的每个分支链,都进行这样的判断。
本发明实施例提供的方法中,若经判断,区块链中仅存在一个第一分支链,则可以将该分支链作为主链,如果有至少两个第一分支链,则进一步判断每个第一分支链中的每个区块是否为合格的区块,如果新区块中记录的父区块的父区块的区块确认信息个数不满足***约定的阈值,那么此区块就不是合格的区块,或者新区块中记录的父区块的区块投票信息个数不满足***约定的阈值,那么此区块就不是合格的区块。如果该第一分支链上的区块都是合格的区块,则将该第一分支链作为第二分支链。如果区块链中仅存在一个第二分支链,可以将该分支链作为主链。如果区块链中存在至少两个第二分支链,则从创世区块开始,把每个第二分支链上每个区块的区块投票信息个数进行相加,选择相加后投票信息个数最大的分支链为主链。
例如图3所示区块链结构,其中包括创世区块和区块1~区块6等区块,图中示出了区块1~区块6的共识轮次,区块链中从创世区块开始,在区块2处产生了分支,从分支链1(末尾区块为区块5的分支链)和分支链2(末尾区块为区块6的分支链)的新区块追溯到的区块分叉点为区块2。按照上述主链选择逻辑,可将分支链2作为主链。
基于本发明实施例提供的方法,根据区块投票信息的个数和区块确认信息的个数需要同时满足***约定阈值才能确认区块的特性,意味着作恶节点需要大幅增加共识轮次才能成功完成一次共识过程,所以***可以约定阈值并通过对连续区块的共识轮次进行统计来确认出少于1/3的作恶节点联合作恶所创建出来的新区块,以将作恶创建的分支链排除。此外,现有的POS共识机制通常采用充裕法则解决长攻击问题,在主链验证逻辑上的计算量较大,而攻击者的算力消耗却很小,有利于攻击者进行长程攻击。而基于本发明实施例提供的方法,可利用VRF算法的伪随机性和唯一性,通过有效投票总数和有效确认总数同时满足阈值的联合概率特性,增大恶意节点的长程攻击难度,提升区块链的安全性。同时,利用攻击过程比正常过程需要经历更多共识轮次才能完成共识过程的逻辑特点,可以通过完成共识的共识轮次作为主链的验证逻辑的验证要素,简化了主链的验证逻辑,提升主链的验证效率。
为了更好地说明本发明实施例提供的方法,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
依据所述第一签名项和所述预设的可验证随机函数算法,判断所述当前共识节点是否为所述本轮共识过程中的区块投票节点;
若所述当前共识节点为所述本轮共识过程中的区块投票节点,则对各个所述第一区块对应的区块提议信息进行有效性验证;
若各个所述第一区块对应的区块提议信息通过有效性验证,则在各个所述第一区块中确定投票区块;
确定所述投票区块对应的区块投票信息;
将所述投票区块对应的区块投票信息提交至所述区块链网络。
本发明实施例提供的方法中,可以将第一签名项作为VRF算法的输入参数,基于VRF算法确定当前共识节点是否为当前的区块投票节点。除了VRF算法的算法过程外,其投票原理与上述关于基于VRF算法的POS共识机制中的区块投票阶段的投票过程的原理相同,可参见上述说明。
具体的,本发明实施例提供的共识过程中的区块投票过程可以基于下述过程原理实现:
***为区块投票阶段约定阈值T v ,通过规则约定新区块i的第j轮共识的投票阶段的伪随机数X vij :X vij =随机数函数(区块高度为i-1的父区块的区块提议节点t在区块提议阶段计算的伪随机值Y tp(i-1)x ,区块高度为i-1的父区块的区块投票信息的BLS聚合签名项的值,j,投票阶段标识符),其中,x是父区块的区块高度i-1的共识轮次,j是本轮共识的轮次,投票阶段标识符是***约定的用于标识投票阶段的一个标识符(比如:0xff)。
共识节点b计算:Evaluate(SK b ,X vij )→(Y bvij ,⍴ bvij ),确认自己的输出Y bvij 是否在值域[0,T v ]范围内。如果输出Y bvij 在值域[0,T v ]范围内,共识节点b就确认自己为区块投票节点。
区块投票节点验证区块提议信息的有效性:Verify(VK a ,X pij ,Y apij ,⍴ apij )→0/1,并验证签名项的有效性。区块提议信息通过验证后,按照共识的规则逻辑基于多个区块提议信息,选择一个最佳的拟提议区块进行投票,选择的过程可以包括:
①确认拟提议区块的父区块是一个合格的区块,父区块i-1的VRF区块投票信息和VRF区块确认信息的数量都大于***约定的阈值;
②确认拟提议区块的父区块的父区块的VRF区块确认信息的个数t大于***约定的阈值;
③确认拟提议区块的父区块的父区块的VRF区块确认信息及BLS聚合签名项的正确性;
④按照区块权重选择规则,选择父区块权重最大的拟提议区块作为最佳的拟提议区块;
如果父区块的权重相同,从区块提议信息的新区块i的提议信息中,计算伪随机值Y apij 的哈希值,选择哈希值最小的区块作为权重最大的区块。
本发明实施例提供的共识过程中新区块的区块权重选择规则,可以概括为如下规则:
a)新区块的父区块的有效投票总数必须满足阈值V v ;
b)新区块的有效投票总数必须满足阈值V v ;
c)对于多个相同区块高度的新区块,选择有效投票总数最多的新区块作为权重最大的区块;
d)对于多个相同区块高度的新区块,如果新区块的有效投票总数都相同,那么就选择BLS签名项的值最小的新区块作为权重最大的区块;
e)对于多个相同区块高度的新区块,如果新区块的有效投票总数都相同,并且BLS签名项的值相等,那么就从它们中选择区块提议阶段的伪随机值Y apij 的哈希值最小的作为权重最大的区块。
区块投票节点选择出最佳的拟提议区块后,向全网提交自己的VRF区块投票信息(即区块投票信息),区块投票信息可以包括:新区块i的投票信息以及公钥及投票信息的签名项。
新区块i的投票信息可以包括:伪随机值Y bvij 、证据⍴ bvij 以及所投票的拟提议的新区块i的哈希值BH bij 。
公钥及投票信息的签名项包括公钥VK b 和签名项Sign bvij 。
基于本发明实施例,对本发明实施例提供的共识过程中的区块投票进行了说明。本发明实施例提供的共识过程中的区块投票阶段还需遵循以下区块投票规则:
①***会为区块投票阶段约定阈值T v ,从而让区块投票节点的选中数量满足阈值S v (比如,让VRF算法从100个共识节点中概率性地选中21个节点为区块投票节点),***根据区块投票节点的选中阈值S v ,约定一个拟提议区块的投票总数阈值V v (比如,V v =2/3S v );
②不允许一票多投:同一个投票节点为不同的提议区块进行投票(投票:提交区块投票信息);
③为一票多投建立惩罚机制:区块投票节点有一票多投问题,扣除其向***质押的数字资产,并让其失去共识节点的资格;
④一票多投的区块投票节点所提交的区块投票信息不计入提议区块的有效投票总数中;
⑤共识节点主动丢弃掉不在当前共识阶段中的区块投票信息,减少恶意节点的延迟攻击的成功率。
为了更好地说明本发明实施例提供的方法,本发明实施例提供了又一种区块链共识方法,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
确定每个所述第一区块对应的投票数,基于每个所述第一区块对应的投票数,在各个所述第一区块中确定待确认区块;
确定所述待确认区块对应的各个区块投票信息;
基于所述待确认区块对应的各个区块投票信息和预设的聚合签名算法,进行签名处理,得到所述待确认区块对应的签名项。
本发明实施例提供的方法中,共识节点可接收区块链网络的所有区块投票信息,当接收到各个区块投票信息后,基于各个区块投票信息确定每个第一区块对应的投票数,按照共识的逻辑规则,选择最佳的新区块,作为待确认区块。基于待确认区块对应的各个区块投票信息(表征对待确认区块投票)进行签名,得到对应的签名项,该签名项可作为下一个共识过程中的第一签名项,用于下一个共识过程中VRF算法的处理。具体的,其处理过程可以包括:
每个共识节点接收区块投票信息,验证投票信息的有效性:Verify(VK b ,X vij ,Y bvij ,⍴ bvij )→0/1,并验证签名项的有效性。统计区块投票信息,按照共识的规则逻辑从多个区块投票信息(区块投票信息表征给某一个区块投票)中选择一个最佳的待确认新区块,如选择投票数超过***约定的阈值V v 的新区块作为待确认新区块,如果超过阈值V v 的区块有多个,选择有效投票个数最多的为待确认新区块。如果多个区块的有效投票个数相同,从对应的多个区块提议信息中确定其父区块的VRF区块投票信息及BLS聚合签名项,按照区块权重选择规则,选择父区块权重最大的区块作为最佳的待确认新区块。如果父区块指向同一个区块或者父区块的权重相同,从对应的区块提议信息中获取伪随机值Y apij 的哈希值,选择哈希值最小的区块作为最佳的待确认新区块。对选择出来的最佳的待确认新区块i的区块投票信息进行BLS聚合签名计算,生成对应的BLS签名项,得到待确认新区块i对应的签名项,把相关数据进行存储。
本发明实施例提供的方法中采用的聚合签名算法为BLS签名算法,是一种可以实现签名聚合和密钥聚合的现有签名算法,在此不作详细介绍。BLS签名算法的椭圆曲线的加法操作满***换律和结合律,所以多个区块投票信息的签名项的值可以唯一确定BLS聚合签名计算得到的签名项的值。
为了更好地说明本发明实施例提供的方法,参考图4所示区块共识信息(包括区块提议信息、区块投票信息和区块确认信息)的生成顺序示意图,本发明实施例提供的方法中,在一轮共识过程中,产生的是当前生成区块的区块提议信息和区块投票信息,而当前共识过程待确认的区块的区块确认信息是在下一轮共识过程中产生的。
本发明实施例提供的方法中,在本轮共识过程中的区块提议阶段,确定上一轮共识过程的待确认区块(也就是上述实施例中提及的目标区块)的区块确认信息,当前的区块提议节点在提交区块提议信息时,可以同时将上一轮共识过程中的待确认区块的区块确认信息提交至区块链网络,在当前共识过程中进行当前生成的区块的投票过程中,可以对所述待确认区块进行确认。
基于本发明实施例提供的方法,通过共识过程的流水线工作机制对本轮共识过程的区块生产和上一轮共识过程的目标区块的区块验证进行了并行化处理,把二个共识阶段合并为一个,减少了共识的整体时间,提高了共识的整体效率,进一步提升了区块链的共识性能。
与图1所示的区块链共识方法相对应的,本发明实施例还提供了一种区块链共识装置,用于对图1中所示方法的具体实现,所述装置应用于区块链网络中的每个共识节点,其结构示意图如图5所示,包括:
第一确定单元201,用于当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
第二确定单元202,用于若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
第一判断单元203,用于依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
第三确定单元204,用于若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
第一提交单元205,用于将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
基于本发明实施例提供的装置,当进入新的共识过程时,区块链网络中的每个共识节点,可确定目标区块(上一轮共识过程投票产生的最佳区块)对应的各个区块投票信息,以对目标区块进行提议验证,若目标区块通过了提议验证,则通过VRF算法以及基于所述各个区块投票信息得到的第一签名项,判断当前共识节点是否为当前的区块提议节点,若是,当前共识节点则生成新的区块,并打包该区块对应的区块提议信息。将区块提议信息提交至区块链网络,以对新的区块进行共识。应用本发明实施例提供的装置,共识节点在当前共识过程中判断能否成为生产区块的过程中,采用基于上一个共识过程中产生的各个区块投票信息得到的签名项,作为VRF算法的输入参数。若作恶节点成为了当前的区块提议节点,其在生成区块时,无法联合其他作恶节点估计下个共识过程的VRF算法的输入参数,无法确定各个作恶节点能否成为下一个共识过程中的区块提议节点,各个作恶节点难以联合谋取最大利益,可提高区块链的安全性,保障去中心化能力。其次,本发明实施例提供的装置中,在当前共识过程中的区块提议阶段,同步完成对上一轮共识过程中的目标区块的确认逻辑,完成目标区块的最终确认过程,相比现有区块链共识过程的时间长度减少了一个区块确认阶段的时间单元,可提高区块链的共识性能。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,所述第一判断单元203,包括:
第一确定子单元,用于确定所述本轮共识过程对应的轮次标识及提议阶段标识符;确定所述目标区块对应的第一验证随机数;
第二确定子单元,用于基于所述轮次标识、所述提议阶段标识符、所述第一验证随机数和所述第一签名项,确定所述当前共识节点对应的伪随机数;
第三确定子单元,用于基于所述伪随机数和预设的评估算法,确定所述当前共识节点对应的第二验证随机数;
第四确定子单元,用于判断所述第二验证随机数是否处于预设的值域范围内,若所述第二验证随机数处于所述预设的值域范围内,则确定所述当前共识节点为所述本轮共识过程中的区块提议节点。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,所述第三确定单元204,包括:
第五确定子单元,用于确定所述当前共识节点对应的提议概要信息;确定所述目标区块的父区块对应的区块确认概要信息及第二签名项;确定所述目标区块对应的区块投票概要信息;确定所述当前共识节点对于所述目标区块的区块确认信息;确定验证信息,所述验证信息包括公钥和第三签名项;将所述提议概要信息、所述区块确认概要信息、所述第二签名项、所述区块投票概要信息、所述区块确认信息、所述验证信息和所述第一签名项,确定为所述区块提议信息。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第四确定单元,用于确定每个第一区块对应的区块提议信息,并基于各个所述第一区块对应的区块提议信息,对所述目标区块进行合格性验证;所述第一区块为所述本轮共识过程中生成的区块;若所述目标区块通过合格性验证,则将所述目标区块写入本地区块链。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第五确定单元,用于确定所述本地区块链对应的每个分支链;确定每个所述分支链对应的分叉区块个数和分叉累计共识次数;
第六确定单元,用于对于每个所述分支链,确定该分支链对应的分叉区块个数是否小于预设的个数阈值,且该分支链对应的分叉累计共识次数是否小于预设的次数阈值,若该分支链对应的分叉区块个数小于所述预设的个数阈值,且该分支链对应的分叉累计共识次数小于所述预设的次数阈值,则将该分支链作为所述本地区块链中的第一分支链;
第二判断单元,用于判断所述本地区块链中是否存在多个第一分支链,若所述本地区块链中存在多个第一分支链,则针对所述本地区块链中的每个第一分支链,判断该第一分支链上的每个区块是否均为合格区块,若该第一分支链上的每个区块均为合格区块,则将该第一分支链作为所述本地区块链中的第二分支链;
第三判断单元,用于判断所述本地区块链中是否存在多个第二分支链,若所述本地区块链中存在多个第二分支链,则确定所述本地区块链中每个第二分支链对应的投票总数;将所述本地区块链中的各个第二分支链中,对应的投票总数最大的第二分支链作为主链。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第四判断单元,用于依据所述第一签名项和所述预设的可验证随机函数算法,判断所述当前共识节点是否为所述本轮共识过程中的区块投票节点;
验证单元,用于若所述当前共识节点为所述本轮共识过程中的区块投票节点,则对各个所述第一区块对应的区块提议信息进行有效性验证;
第七确定单元,用于若各个所述第一区块对应的区块提议信息通过有效性验证,则在各个所述第一区块中确定投票区块;
第二提交单元,用于确定所述投票区块对应的区块投票信息;将所述投票区块对应的区块投票信息提交至所述区块链网络。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
签名单元,用于确定每个所述第一区块对应的投票数,基于每个所述第一区块对应的投票数,在各个所述第一区块中确定待确认区块;确定所述待确认区块对应的各个区块投票信息;基于所述待确认区块对应的各个区块投票信息和预设的聚合签名算法,进行签名处理,得到所述待确认区块对应的签名项。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的区块链共识方法。
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器301,以及一个或者一个以上的指令302,其中一个或者一个以上指令302存储于存储器301中,且经配置以由一个或者一个以上处理器303执行所述一个或者一个以上指令302进行以下操作:
当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种区块链共识方法,其特征在于,所述方法应用于区块链网络中的每个共识节点,所述方法包括:
当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
2.根据权利要求1所述的方法,其特征在于,所述依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点,包括:
确定所述本轮共识过程对应的轮次标识及提议阶段标识符;
确定所述目标区块对应的第一验证随机数;
基于所述轮次标识、所述提议阶段标识符、所述第一验证随机数和所述第一签名项,确定所述当前共识节点对应的伪随机数;
基于所述伪随机数和预设的评估算法,确定所述当前共识节点对应的第二验证随机数;
判断所述第二验证随机数是否处于预设的值域范围内,若所述第二验证随机数处于所述预设的值域范围内,则确定所述当前共识节点为所述本轮共识过程中的区块提议节点。
3.根据权利要求1所述的方法,其特征在于,所述确定所述当前共识节点对应的区块所对应的区块提议信息,包括:
确定所述当前共识节点对应的提议概要信息;
确定所述目标区块的父区块对应的区块确认概要信息及第二签名项;
确定所述目标区块对应的区块投票概要信息;
确定所述当前共识节点对于所述目标区块的区块确认信息;
确定验证信息,所述验证信息包括公钥和第三签名项;
将所述提议概要信息、所述区块确认概要信息、所述第二签名项、所述区块投票概要信息、所述区块确认信息、所述验证信息和所述第一签名项,确定为所述区块提议信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
确定每个第一区块对应的区块提议信息,并基于各个所述第一区块对应的区块提议信息,对所述目标区块进行合格性验证;所述第一区块为所述本轮共识过程中生成的区块;
若所述目标区块通过合格性验证,则将所述目标区块写入本地区块链。
5.根据权利要求4所述的方法,其特征在于,还包括:
确定所述本地区块链对应的每个分支链;
确定每个所述分支链对应的分叉区块个数和分叉累计共识次数;
对于每个所述分支链,确定该分支链对应的分叉区块个数是否小于预设的个数阈值,且该分支链对应的分叉累计共识次数是否小于预设的次数阈值,若该分支链对应的分叉区块个数小于所述预设的个数阈值,且该分支链对应的分叉累计共识次数小于所述预设的次数阈值,则将该分支链作为所述本地区块链中的第一分支链;
判断所述本地区块链中是否存在多个第一分支链,若所述本地区块链中存在多个第一分支链,则针对所述本地区块链中的每个第一分支链,判断该第一分支链上的每个区块是否均为合格区块,若该第一分支链上的每个区块均为合格区块,则将该第一分支链作为所述本地区块链中的第二分支链;
判断所述本地区块链中是否存在多个第二分支链,若所述本地区块链中存在多个第二分支链,则确定所述本地区块链中每个第二分支链对应的投票总数;
将所述本地区块链中的各个第二分支链中,对应的投票总数最大的第二分支链作为主链。
6.根据权利要求4所述的方法,其特征在于,还包括:
依据所述第一签名项和所述预设的可验证随机函数算法,判断所述当前共识节点是否为所述本轮共识过程中的区块投票节点;
若所述当前共识节点为所述本轮共识过程中的区块投票节点,则对各个所述第一区块对应的区块提议信息进行有效性验证;
若各个所述第一区块对应的区块提议信息通过有效性验证,则在各个所述第一区块中确定投票区块;
确定所述投票区块对应的区块投票信息;
将所述投票区块对应的区块投票信息提交至所述区块链网络。
7.根据权利要求6所述的方法,其特征在于,还包括:
确定每个所述第一区块对应的投票数,基于每个所述第一区块对应的投票数,在各个所述第一区块中确定待确认区块;
确定所述待确认区块对应的各个区块投票信息;
基于所述待确认区块对应的各个区块投票信息和预设的聚合签名算法,进行签名处理,得到所述待确认区块对应的签名项。
8.一种区块链共识装置,其特征在于,所述装置应用于区块链网络中的每个共识节点,所述装置包括:
第一确定单元,用于当所述区块链网络进入本轮共识过程时,确定目标区块对应的各个区块投票信息,基于所述各个区块投票信息对所述目标区块进行提议验证,所述目标区块为上一轮共识过程中的各个区块投票节点对所述上一轮共识过程中生成的各个区块进行投票得到的区块;
第二确定单元,用于若所述目标区块通过提议验证,则确定第一签名项,所述第一签名项为基于所述各个区块投票信息进行签名处理得到的签名数据;
第一判断单元,用于依据所述第一签名项和预设的可验证随机函数算法,判断当前共识节点是否为所述本轮共识过程中的区块提议节点;
第三确定单元,用于若所述当前共识节点为所述本轮共识过程中的区块提议节点,则生成所述当前共识节点对应的区块,并确定所述当前共识节点对应的区块所对应的区块提议信息;
第一提交单元,用于将所述区块提议信息提交至所述区块链网络,以使所述区块链网络对所述当前共识节点对应的区块进行共识。
9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~7任意一项所述的区块链共识方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~7任意一项所述的区块链共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211012299.3A CN115118436B (zh) | 2022-08-23 | 2022-08-23 | 区块链共识方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211012299.3A CN115118436B (zh) | 2022-08-23 | 2022-08-23 | 区块链共识方法及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118436A CN115118436A (zh) | 2022-09-27 |
CN115118436B true CN115118436B (zh) | 2022-11-22 |
Family
ID=83335778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211012299.3A Active CN115118436B (zh) | 2022-08-23 | 2022-08-23 | 区块链共识方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118436B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110380847A (zh) * | 2019-07-01 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法和装置 |
CN111010284A (zh) * | 2019-12-20 | 2020-04-14 | 深圳市网心科技有限公司 | 一种待共识区块的处理方法、相关装置及区块链*** |
CN111695994A (zh) * | 2020-05-12 | 2020-09-22 | 成都芯域矩阵科技有限公司 | 一种基于信用评分的区块链共识方法及*** |
CN113326516A (zh) * | 2021-04-22 | 2021-08-31 | 远光软件股份有限公司 | 区块链共识方法、区块链***及计算机设备 |
CN113673996A (zh) * | 2021-08-06 | 2021-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链的检测出块节点的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002297B (zh) * | 2018-07-16 | 2020-08-11 | 百度在线网络技术(北京)有限公司 | 共识机制的部署方法、装置、设备和存储介质 |
-
2022
- 2022-08-23 CN CN202211012299.3A patent/CN115118436B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN110300172A (zh) * | 2019-06-28 | 2019-10-01 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110380847A (zh) * | 2019-07-01 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法和装置 |
CN111010284A (zh) * | 2019-12-20 | 2020-04-14 | 深圳市网心科技有限公司 | 一种待共识区块的处理方法、相关装置及区块链*** |
CN111695994A (zh) * | 2020-05-12 | 2020-09-22 | 成都芯域矩阵科技有限公司 | 一种基于信用评分的区块链共识方法及*** |
CN113326516A (zh) * | 2021-04-22 | 2021-08-31 | 远光软件股份有限公司 | 区块链共识方法、区块链***及计算机设备 |
CN113673996A (zh) * | 2021-08-06 | 2021-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链的检测出块节点的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115118436A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113794675B (zh) | 基于区块链和联邦学习的分布式物联网入侵检测方法及*** | |
CN108492103B (zh) | 一种联盟区块链共识方法 | |
CN108269090B (zh) | 基于无协商随机抽签的用于区块链***的共识方法和装置 | |
CN109360100B (zh) | 基于区块链技术的交易快速确认方法及装置 | |
US6092051A (en) | Secure receipt-free electronic voting | |
CN109508982A (zh) | 基于区块链主链加并行多子链的repb共识 | |
CN110912705B (zh) | 一种基于区块链的分布式电子投票方法及*** | |
CN113129518B (zh) | 电动车辆充电***及其资源管理方法 | |
US20220278854A1 (en) | Unity Protocol Consensus | |
CN109685505B (zh) | 基于关联环签名的拜占庭容错共识优化方法 | |
Esfahani et al. | Secure blockchain-based energy transaction framework in smart power systems | |
CN113837758A (zh) | 一种区块链***的共识方法及装置 | |
CN113992526B (zh) | 一种基于可信度计算的联盟链跨链数据融合方法 | |
CN111416708A (zh) | 一种区块链拜占庭容错共识方法及*** | |
CN111817855A (zh) | 基于以太坊区块链的电子投票方法及*** | |
CN111787034B (zh) | 区块生成方法、同步方法、装置、区块链***和存储介质 | |
CN112651830A (zh) | 应用于电力资源共享网络的区块链共识方法 | |
CN113568972A (zh) | 一种面向图式区块链的混合共识实现装置及实现方法 | |
Qu et al. | A electronic voting protocol based on blockchain and homomorphic signcryption | |
CN114463009B (zh) | 一种用于提高大规模能源节点交易安全性的方法 | |
Lin et al. | Blockchain-based complete self-tallying E-voting protocol | |
CN116527684A (zh) | 基于1+1+n中继共识委员会的多链信息交互方法 | |
CN114422146A (zh) | 一种区块链主节点匿名排序方法 | |
Asayag et al. | Helix: A scalable and fair consensus algorithm resistant to ordering manipulation | |
CN112769936B (zh) | 一种基于投票与信用机制的povt共识算法 |
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 |