CN113794694B - 一种基于可靠广播的二元共识方法及装置 - Google Patents
一种基于可靠广播的二元共识方法及装置 Download PDFInfo
- Publication number
- CN113794694B CN113794694B CN202110984390.0A CN202110984390A CN113794694B CN 113794694 B CN113794694 B CN 113794694B CN 202110984390 A CN202110984390 A CN 202110984390A CN 113794694 B CN113794694 B CN 113794694B
- Authority
- CN
- China
- Prior art keywords
- consensus
- voting
- value
- round
- values
- 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
- 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/1441—Countermeasures against malicious traffic
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- 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/60—Digital content management, e.g. content distribution
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)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本申请实施例中提供了一种基于可靠广播的二元共识方法,其特征在于,应用于分布式***中的任一共识节点,方法包括:针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,初始投票值为第一投票值或第二投票值;循环执行以下每轮共识步骤,直到达到预设停止条件,每轮共识步骤包括:利用可靠广播RBC协议广播将本轮投票值广播至所述N个共识节点中的其他节点;基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。采用上述方法各个共识节点通过可靠广播RBC协议广播投票值,并基于接收到其他共识节点广播的投票值确定共识结果,可以使各个共识节点就待共识提议快速达成共识,并提升共识过程的安全性。
Description
技术领域
本申请涉及计算机技术领域,具体地,涉及一种基于可靠广播的二元共识方法及装置。
背景技术
二元共识是拜占庭容错协议(拜占庭共识,BFT)的主要组成部分,目前已知的异步拜占庭共识协议都直接或者间接依赖二元共识,其可以使分布式***在异步环境下达成共识。同时,二元共识也可以用于构造状态机复制(state machine replication),进而使用状态机复制为分布式容错***建立基础,另外,二元共识还可以应用在数据库等技术领域。因此,对于二元共识的研究是目前业界重要的研究方向。
发明内容
本申请实施例中提供了一种基于可靠广播的二元共识方法及装置,用于解决现有技术中共识过程安全性低的问题。
根据本申请实施例的第一个方面,提供了一种基于可靠广播的二元共识方法,其特征在于,应用于分布式***中的任一共识节点,所述分布式***至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:
针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,初始投票值为第一投票值或第二投票值;
循环执行以下每轮共识步骤,直到达到预设停止条件,其中每轮共识步骤包括:
利用可靠广播RBC协议将本轮投票值广播至所述N个共识节点中的其他节点;
基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。
根据本申请实施例的第二个方面,提供了一种基于可靠广播的二元共识装置,其特征在于,应用于分布式***中的任一共识节点,所述分布式***至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述装置包括:
处理模块,用于针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,初始投票值包括第一投票值或第二投票值;循环执行每轮共识步骤,直到达到预设停止条件;
其中每轮共识步骤中:
通信模块,用于利用可靠广播RBC协议将本轮投票值广播至所述N个共识节点中的其他节点;
处理模块,用于基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。
采用本申请实施例中提供的共识方法,各个共识节点通过可靠广播RBC协议广播投票值,并基于接收到其他共识节点广播的投票值确定共识结果,可以使各个共识节点就待共识提议快速达成共识,同时使用可靠广播RBC协议广播投票值,可以避免恶意节点伪造投票值进行作恶,提升了共识过程的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例的一种共识节点维护各个RABA实例的示意图;
图2为本说明书实施例的另一种共识节点维护各个RABA实例的示意图;
图3为本说明书实施例的一种基于可靠广播的共识方法的流程示意图;
图4为本说明书实施例的一种广播共识消息的流程示意图;
图5为本说明书实施例的一种基于可靠广播的共识装置的结构示意图;
图6是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
二元共识是拜占庭容错协议BFT的重要组成部分,目前已知的异步拜占庭共识协议都直接或者间接依赖二元共识,其可以使区块链等分布式***在异步环境下达成共识。同时,二元共识也可以用于构造状态机复制(state machine replication),进而使用状态机复制为分布式容错***建立基础,另外,二元共识还可以应用在数据库等技术领域。
二元共识中,二元是指两个值,通常用0和1表示,分布式***中各个节点可以就两个值中的某个值达成一致,而该值对于分布式***来说往往具有重要的实际意义。以二元共识应用在区块链网络为例,区块链网络中各个节点的数据需要保持一致,如果利用二元共识方法,当各个节点针对某批交易达成共识为1时,则各个节点都存储该数据,当各个节点针对某批交易达成共识为0时,则各个节点都不存储该数据,这样就保证了各个节点存储数据的一致性。可以理解的是,如果二元共识过程的安全性越高,则分布式***的抗攻击能力也就越强、性能也就越优越,因此如何提高二元共识的安全性是目前业界重要的研究方向之一。
针对上述问题,本申请实施例中提供了一种基于可靠广播的二元共识方法,应用于分布式***中的任一共识节点,该节点通过可靠广播RBC协议广播投票值,并基于接收到的其他共识节点广播的投票值确定共识结果,从而使***中各个节点达成共识,同时有效提升了共识过程的安全性。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于本领域技术人员理解本说明书中的内容,下面对本说明书中涉及到的名词进行说明。
在本说明书中,待共识提议可以理解为任一共识节点发出的数据,并希望其他共识节点共同参与对该数据的共识,而投票值则用于表示各个共识节点对该数据的共识意见,其中投票值包括第一投票值以及第二投票值,即各个共识节点可以对待共识提议存在共两种共识意见,第一投票值以及第二投票值在一个实施例中,可以用1和0分别进行表示,在其他实施例中,还可以用其他形式和符号进行表示,本说明书对于第一投票值以及第二投票值的具体形式不行进行限定,只要能够用于区分第一投票值和第二投票值均可。
以区块链场景为例,待共识提议可以是任一共识节点从本地交易池中获取的一批交易,并希望其他共识节点可以接收并存储该批交易,而投票值用于表示各个共识节点是否同意存储该待共识提议。
在其他应用场景中,待共识提议以及投票值会具有其他不同的实际含义,本说明书对此不进行限定。
如图1所示,为分布式***中的任一节点所要执行的二元共识实例的示意图,
分布式***中的任一节点会针对每一个共识节点(包括其自身)分别利用本说明提出的二元共识方法确定针对该共识节点提出的待共识提议的共识结果,如图中实例ABA1-ABAN,分别为针对N个共识节点采用二元共识方法ABA(asynchronous binaryagreement)进行共识的示意图,ABA1为目标节点针对共识节点1提出的待共识提议进行二元共识的示意,ABA2为目标节点针对共识节点2提出的待共识提议进行二元共识的示意,以此类推。
从示意图中可以看出,目标节点在针对每个待共识提议进行共识时,会确定一个初始投票值(0或1)作为二元共识方法的输入,最终基于本说明提出的二元共识方法也会得到输出即针对该待共识提议的共识结果(0或1)。
如图3所示,基于以上说明,本说明书提出了一种基于可靠广播的二元共识方法,该方法为分布式***中的任一共识节点所执行的方法,为了方便说明将该执行所述方法的共识节点称为目标节点。
分布式***至少包括N个共识节点,共识节点是指参与共识过程的节点,可以理解的是,在分布式***中通常还会存在其他不参与共识的节点,这些节点仅接收和存储共识节点的共识结果而不参与共识过程;另外,当***中的恶意节点或称拜占庭节点过多时任何一种共识方法均无法确保***中的共识节点达成共识,因此本说明书中规定该分布式***包括N个共识节点,所述N个共识节点中最多允许存在f个恶意节点,N≥3f+1,所述f和N均为大于0的整数,例如,当N为4时,f只能为1,当N为8时,f为2或1。本说明书中将f值预先设置为任一对应于N值的正整数。例如,当N为8时,可以将f设置为2。
该方法应用于分布式***中多个共识节点中的任一正确节点,可以理解的是其他正确共识节点也在异步执行上述方法,当目标节点针对任一共识节点提出的待共识提议得到共识结果时,其他正确共识节点最终也会针对该待共识提议得到相同的共识结果,该分布式***可以是区块链网络也可以是其他分布式***,本说明书对此不进行限定。
该方法包括:
S301,针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,投票值包括第一投票值以及第二投票值;初始投票值为第一投票值或第二投票值;
根据上述图1、以及对于图1的说明可知,目标节点会针对每个共识节点的待共识提议分别确定共识结果,图3所描述的即为针对每个待共识提议所要执行共识过程。
本步骤中,针对待共识提议确定初始投票值,初始投票值在不同应用场景中,可以根据不同的数据确定。例如在区块链网络中,可以根据接收到待共识提议的情况确定:如果目标节点接收到了该待共识提议(其他共识节点通过可靠广播RBC协议广播的),则确定该待共识提议的初始投票值为第一投票值,如果已经确定收到N-f个共识节点的待共识提议,并且已经针对这N-f个待共识提议执行本说明书提出的二元共识方法分别得到了共识结果后,可以将还未收到的待共识提议的初始投票值置为第二投票值,并开始执行共识过程。在其他应用场景中,还可以根据不同的数据确定待共识提议的初始投票值。在本说明书中,均以第一投票值为1、第二投票值为0为例进行说明。在S301中,可以针对每个待共识提议确定一个唯一的初始投票值。
如图2所示,为在区块链网络中,基于本说明书提出的二元共识方法使各个共识节点达成共识时,每个共识节点所维护的实例示意图。
从图中可以看出,在区块链网络中共存在N个共识节点时,任一个共识节点需要维护N对RBC+ABA的实例,其中ABA即为本说明书提出的基于可靠广播的二元共识方法,目标节点会在接收到某个共识节点通过可靠广播RBC协议广播的待共识提议后,即触发开始针对该共识提议触发ABA过程。例如,目标节点接收到共识节点1通过可靠广播RBC协议广播的待共识提议后,即将ABA1(针对共识节点1提出的待共识提议进行的二元共识)的输入(初始投票值)置为1(第一投票值),并开始执行本说明书提出的二元共识方法。在接收到N-f个共识节点的待共识提议的情况下,且针对这N-f个待共识提议执行完ABA过程得到共识结果为1后,将剩余的f个待共识提议的ABA的输入置为0,并开始执行共识过程即ABA过程。
采用上述方式,共识节点可以确定各个待共识提议的初始投票值。
在执行完S301后,可以循环执行以下每轮共识步骤,直到达到预设停止条件,其中每轮共识步骤包括:
S302,利用可靠广播RBC协议将本轮投票值广播至所述N个共识节点中的其他节点;
S303,基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。
本说明书提出的共识方法是按共识轮执行的,每轮中包括与其他共识节点交互投票值的阶段,以及在交互完成后基于交互的结果确定共识结果的阶段,即S302和S303。
下面对S302以及S303进行详细说明:
在上述S302中,目标节点可以将本地的投票值广播至其他共识节点,同时也会接收到其他共识节点广播的投票值。为了提升安全性,避免恶意节点故意篡改投票值,或冒充其他共识节点广播投票值,各个共识节点可以利用可靠广播RBC协议来广播本地的投票值。可靠广播RBC协议可以确保目标节点能够可靠地将消息发送到网络中的所有共识节点,并且满足以下性质:一致性(Agreement),即任意两个正确节点都收到来自源节点的相同的消息;统一性(Totality),只要有一个节点收到了来自源节点的消息,那么所有正确的节点最终都能收到这个消息;活跃性(Validity),如果源节点是正确的,那么所有正确的节点收到的消息一定与源节点发送的消息一致。可靠广播RBC协议的具体实现方式可以参照相关技术,这里不进行详述。在本实施例中,可以采用各种具体实现方式来实现可靠广播RBC协议,本实施例中不进行限定。
采用可靠广播RBC协议的方式广播投票值,与普通广播相比可以有效提升共识过程的安全性。
在本说明书中提出,在S302中,即每轮共识过程中,目标节点会广播三次投票值,第一次广播的投票值称为预投票值,第二次广播的投票值称为主投票值,第三次广播的投票值称为最终投票值,其中,在首轮共识中,初始投票值即为预投票值。
本说明书中,目标节点在广播三次投票值时,可以均采用可靠广播RBC协议进行广播。
另外,考虑到与普通广播相比,通过可靠广播RBC协议进行广播耗时较长,因此,本说明书提出可以在每轮共识中只在第三次广播投票值时采用可靠广播RBC来实现,即广播最终投票值时可以采用可靠广播RBC协议进行广播,其余两次广播时采用普通的广播形式,经实验证明,采用这样的方式既能保证共识过程的安全性也能保证共识效率。
目标节点具体可以是执行如图4所述的方法来完成S302:
S401,将本轮预投票值广播至其他共识节点;
如果是首轮共识,目标节点可以按照上述所述的方法,确定预投票值,即初始投票值即为首轮共识过程中的预投票值。如果是非首轮共识,确定该轮预投票值的方法可以参照下文关于S303的描述部分,这里不进行详述。
目标节点可以将本地确定的预投票值添加到第一共识消息中,并通过认证信道将第一共识消息传输至分布式***中的其他共识节点。在一个实施例中,第一共识消息可以是bvalr格式的消息,其中r为共识轮数,首轮为0,以1为步长递增。
S402,基于其他共识节点广播的本轮预投票值确定本轮主投票值,并将确定的主投票值广播至其他共识节点;
可以理解的是,分布式***中的全部正确节点都在异步的执行目标节点所执行的步骤,即其他共识节点也会发送包括预投票值的第一共识消息;此时,目标节点会接收到来自其他共识节点发送的第一共识消息,进而解析出预投票值。
在一个实施例中,如果目标节点在当前共识轮接收到f+1个第一共识消息解析出f+1个预投票值,即超过恶意节点数量的第一共识消息,如果这f+1个预投票值均相同、且与本地本轮广播的预投票值不同,目标节点则将本地预投票值修改为所述f+1个本轮预投票值对应的投票值,并再次广播修改后的预投票值。例如,如果目标节点收到f+1个bvalr消息,其中该f+1个消息中携带的f+1个预投票值均为1,而该目标节点本轮共识中已经通过第一共识消息广播过一次预投票值为0,与这f+1个预投票值不同,因此可以将本地的本轮共识的预投票值修改为1,并且再次通过第一共识消息广播携带值为1的预投票值。本步骤目的是为了让本地节点可以更正本地预投票值。
本步骤中,目标节点可以在接收到其他共识节点广播的2f+1个第一共识消息即2f+1个本轮预投票值,且这2f+1个本轮预投票值均相同的情况下,将该2f+1个本轮预投票值对应的投票值添加到本轮投票集合中;并将最先添加到本轮投票集合中的值确定为本轮主投票值。
例如,目标节点接收到2f+1个第一共识消息,对接收到的第一共识消息进行解析后,确定其中携带的预投票值均为1,则可以将该预投票值1添加到本轮投票集合bsetr中,此时如果确定1为最先添加到该投票集合bsetr中值,则确定该1为主投票值。
采用上述方式,可以接收到的基于预投票值确定主投票值,在确定了之后,即可以通过第二共识消息广播主投票值。
S403,基于其他共识节点广播的本轮主投票值确定本轮最终投票值,利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点。
本步骤中,目标节点可以将主投票值添加到第二共识消息auxr中发送至其他共识节点,同时目标节点也会接收到其他共识节点广播的主投票值,为了避免恶意节点故意发送假投票值,目标节点可以基于本轮投票集合对接收到的本轮主投票值进行合法性验证,具体可以是在接收到任一共识节点广播的主投票值后,判断该主投票值是否在本地的本轮投票集合中,如果在,则说明该第二共识消息合法,即该第二共识消息携带的主投票值合法,如果不在,则说明该第二共识消息携带的主投票值不合法。
在接收到N-f个合法本轮主投票值的情况下,即可以基于这N-f个合法本轮主投票值确定最终投票值,具体可以是:若这N-f个合法本轮主投票值均相同,则确定这N-f个合法本轮主投票值对应的投票值为最终投票值;若这N-f个合法本轮主投票值不全相同,则确定最终投票值为不同于第一投票值与第二投票值的预定义值。
例如,接收到的N-f个合法主投票值均为1,则确定最终投票值为1。又如,接收到的N-f个合法主投票值有的为1,有的为0,则确定最终投票值为*(*为预定义值)。
在确定了最终投票值后,即可以利用可靠广播RBC协议将最终投票值广播至其他共识节点,在本步骤中,可以基于各种实现方式来实现可靠广播RBC协议。
另外,为了进一步提升安全性,做到无条件安全或称信息论安全,可以采用无条件安全的可靠广播RBC协议来广播第三共识消息,例如,可以是采用Bracha’s broadcast可靠广播RBC协议,采用该种可靠广播RBC协议进行广播,无论敌手的计算能力有多强也无法破解,因此进一步提升了共识过程的安全性。
上述关于图4及相关部分的内容,即为S302中广播投票值的过程。
上述S303中,具体可以执行以下方法:
本步骤中,具体为基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值,确定所述待共识提议的共识结果,在此之前,首先仍需要利用本轮投票集合对接收到的最终投票值进行合法性验证,可以是在接收到的最终投票值为0或1时,如果确定该最终投票值在本地本轮投票集合中,则确定该最终投票值合法,否则,确定该最终投票值不合法。如果在接收到的最终投票值为*(预定义值)时,如果确定本地本轮投票集合中既包括第一投票值1又包括第二投票值0,则确定该最终投票值合法,否则,则确定该最终投票值不合法。
在对接收到的第三共识消息即最终投票值进行合法性验证后,即可以在接收到N-f个合法本轮最终投票值的情况下,利于接收到的最终投票值确定共识情况。
具体可以是在接收到N-f个合法本轮最终投票值的情况下,如果这N-f个本轮最终投票值均相同、为第一投票值或第二投票值,则将这N-f个本轮最终投票值对应的投票值确定为该待共识提议的共识结果,并将该N-f个本轮最终投票值对应的投票值确定为下轮共识的预投票值。
例如,如果接收到的N-f个合法本轮最终投票值均为1,则确定该1为该待共识提议的共识结果。在得到共识结果后,目标节点仍参与下轮共识,可以将1确定为下轮共识的预投票值。
另外,如果这N-f个合法本轮最终投票值不全相同,且其中存在f+1个本轮最终投票值相同、为第一投票值或第二投票值,则将这f+1个本轮最终投票值对应的投票值确定为下轮共识的预投票值;
例如,如果接收到的N-f个合法本轮最终投票值中存在f+1个为1,则目标节点确定本轮未得到该待共识提议的共识结果,因此要执行下轮共识,并将1确定为下轮共识的预投票值,开始执行下轮共识。
另外,如果这N-f个合法本轮最终投票值中不存在f+1个相同的投票值,则随机确定本地抛币值,将本地抛币值确定为下轮共识的预投票值,其中本地抛币值为目标节点随机确定的,其可以为第一投票值也可以为第二投票值。
例如,如果接收到的N-f个合法本轮最终投票值中不存在任意f+1个投票值相同,则目标节点确定本轮未得到该待共识提议的共识结果,因此要执行下轮共识,则随机确定本地抛币值,并将本地抛币值确定为下轮共识的预投票值,并开始执行下轮共识。本步骤中,各个共识节点确定本地抛币值,无需与其他共识节点进行交互得到公共抛币值,因此无需使用任何加密机制或加密算法。
上述S302-S303为每轮共识执行的过程,在未达到预设停止条件时,则循环执行S302-S303,其中预设停止条件可以为确定上轮共识已经得到待共识提议的共识结果,且本轮已发送最终投票值;还可以是接收到用户发送的停止指令等。
另外,任一个节点针对一个待共识提议仅会得到一个共识结果,在得到共识结果后虽然也会参与下轮共识但是并不会再次得到共识结果,即任一共识节点在本轮共识过程中如果针对某个待共识提议得到了共识结果,那么下一轮共识其只会执行S302,而不执行S303。
可以理解的是,本说明书中每轮共识过程中,对预投票值、主投票值和最终投票值分别采用了三种消息进行广播,目的是为了让各个共识节点可以确定接收到的消息类型以区分不同类型的投票值,本说明书对于各个消息的具体类型不进行限定。
上述方式是共识节点中的任一正确节点所执行的方法,其他正确共识节点也在异步执行上述方法,采用上述方式,可以使异步环境下的分布式***中的各个共识节点针对某个待共识提议快速达到共识状态,并且可以有效保证共识过程的安全性。各个节点按照共识轮进行共识操作,其中每轮共识中,节点仅需要广播三次共识消息,其中至少在第三次广播共识消息中采用可靠广播RBC协议进行广播,可以有效保证共识过程的安全性,每轮结束的概率是1/2,因此,在k轮共识后,各个节点达成共识的概率为1-(1/2)k。
另外,上述共识方法中,由于各个共识节点在一轮共识中未达成共识时,会随机确定本地抛币值作为下轮共识的预投票值,无需使用密码学与其他共识节点进行交互产生公共抛币值(不需要采用密码学原理进行多次交互得到一个共同的抛币值),因此在在采用的可靠广播RBC协议为无条件安全的可靠广播RBC协议时,上述二元共识方法的共识过程不依赖任何密码学假设,只依赖认证信道,因此也是无条件安全(unconditionally secure)的,即信息论安全(information-theoretically secure)的。
在针对每个共识节点提出的共识提议达成共识之后,各个正确的共识节点会得到相同的共识结果,共识结果为1或者为0,在针对全部共识节点提出的共识提议达成共识之后,会得到包含0和1的序列。进一步即可以基于该序列执行相应的事务处理,仍以区块链网络为例,在区块链网络中,0或1用于指示是否将相应的共识提议打包成块。例如共有四个共识节点,共识节点1提出的共识提议为P1,共识节点2提出的共识提议为P2,共识节点3提出的共识提议为P3,共识节点4提出的共识提议为P4,使用上述共识方法进行共识后会分别针对P1-P4得到共识结果,进而会得到四个共识结果,组成一个01序列,例如得到的序列为(1,1,1,0),则达成的共识结果为所有节点将P1、P2以及P3打包成块存储在本地不存储P4,即各个共识节点根据共识结果对各共识提议进行了一致性处理,保证各个共识节点的数据一致性。
下面从代码实现角度对本说明书提出的共识方法的一种具体实施方式进行说明:
伪代码如下:
1初始化r←0
2事件propose(vinput)
3设置iv0←vinput
4开启第r=0轮
5第r轮协议如下:
6首先进入第一阶段,广播预投票pre-voter(ivr)消息
If从f+1个副本收到本轮对v的预投票pre-voter(v)
7 If没有广播本轮对v的预投票,则广播pre-voter(v)
8 If从2f+1个副本收到本轮对v的预投票pre-voter(v)
9将bsetr←bsetr∪{v}
11 If没有广播本轮对v的主投票,则广播main-voter(v),其中v∈bsetr
12 If收到N-f个主投票main-voter(b),其中b∈bsetr时
13 If收到N-f个对相同v的主投票消息,即均为main-voter(v)
14 RBC广播最终投票final-voter(v)
15 else
16 RBC广播最终投票final-voter(*)
17 If RBC-deliver N-f个最终投票消息,
18 If收到N-f个对相同v的最终投票消息,即均为final-voter(v)
19 decide v
20 else if超过f+1个对相同v的最终投票消息
21 ivr+1←v
22 else
23 c←Random()
24 ivr+1←c
25 r←r+1
上述伪代码中:
每轮分为三个阶段:
第一阶段
(1)副本pi为自己第r轮的输入ivr广播预投票pre-voter(ivr),其中ivr∈{0,1}。
(2)当副本pi收到f+1个对相同值v在相同轮数r的预投票pre-voter(v),且之前没有广播过对v在r轮的预投票,则副本pi广播该预投票。
(3)当副本pi收到2f+1个对相同值v在相同轮数r的预投票pre-voter(v),则将v***集合bsetr中,其中bsetr是由0和1组成的集合。
第二阶段
(1)当集合bsetr不为空是,副本pi取bsetr中第一个***的值作为v,广播主投票main-voter(v)。一个正确的副本接受主投票main-voter(v)当且仅当v之前已经***到本地的集合bsetr中。
(2)当副本pi收到来自N-f个不同副本的主投票main-voter(),进入第三阶段。
第三阶段
(1)当副本pi收到N-f个对相同v在相同轮数r的主投票main-voter(v)消息时,r-广播对v在r轮的最终投票final-voter(v),否则副本pi r-广播在r轮的最终投票final-voter(*),其中{0,1}是一个区别于0和1的符号。
最终投票final-voter()对副本pi只有在以下几种情况下有效:
·对于一个投票final-voter(v),副本pi已经将v***bsetr
·对于final-voter(*),副本pi的bsetr包含O和1
(2)当副本pi r-deliver了N-f个最终投票
A.若N-f个对相同v在相同轮数r的最终投票,则decede v,且将v作为下一轮输入;
B.若存在超过f+1个对相同v在相同轮数r的最终投票,则将v作为下一轮的输入;
C.否则将产生一个随机数作为下一轮的输入。
如图5所示,与前述一种基于可靠广播的二元共识方法相对应,本说明书还提供了一种基于可靠广播的二元共识装置,其特征在于,应用于分布式***中的任一共识节点,所述分布式***至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述装置包括:
处理模块510,用于针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,初始投票值包括第一投票值或第二投票值;循环执行以下每轮共识步骤,直到达到预设停止条件;
每轮共识中:
通信模块,520用于利用可靠广播RBC协议广播将本轮投票值广播至所述N个共识节点中的其他节点;
处理模块510,基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识情况。
在一个实施例中,所述通信模块520,具体用于将本轮预投票值广播至其他共识节点;所述处理模块510,具体用于基于其他共识节点广播的本轮预投票值确定本轮主投票值;所述通信模块520,具体用于将确定的主投票值广播至其他共识节点;所述处理模块510,具体用于基于其他共识节点广播的本轮主投票值确定本轮最终投票值;所述通信模块520具体用于利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点。
在一个实施例中,所述可靠广播RBC协议为无条件安全的可靠广播RBC协议。
在一个实施例中,所述处理模块510,具体用于在接收到其他共识节点广播的f+1个本轮预投票值,所述f+1个本轮预投票值均相同、且与本地本轮广播的预投票值不同的情况下,将本地预投票值修改为所述f+1个本轮预投票值对应的投票值,并再次广播修改后的预投票值。
在一个实施例中,所述处理模块510,具体用于在接收到其他共识节点广播的2f+1个本轮预投票值,且所述2f+1个本轮预投票值均相同的情况下,将该2f+1个本轮预投票值对应的投票值添加到本轮投票集合中;将最先添加到本轮投票集合中的值确定为本轮主投票值。
在一个实施例中,所述处理模块510,具体用于基于所述本轮投票集合对接收到的本轮主投票值进行合法性验证;在接收到N-f个合法本轮主投票值的情况下,基于所述N-f个合法本轮主投票值确定最终投票值。
在一个实施例中,所述处理模块510,具体用于若所述N-f个合法本轮主投票值均相同,则将所述N-f个合法本轮主投票值对应的投票值确定为最终投票值;若所述N-f个合法本轮主投票值不全相同,则确定最终投票值为不同于第一投票值与第二投票值的预定义值。
在一个实施例中,所述处理模块510,具体用于基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值,确定所述待共识提议的共识情况。
在一个实施例中,所述处理模块510,具体用于基于所述本轮投票集合对接收到的本轮最终投票值进行合法性验证;
在接收到N-f个合法本轮最终投票值的情况下,若所述N-f个本轮最终投票值均相同、为第一投票值或第二投票值,则将所述N-f个本轮最终投票值对应的投票值确定为所述待共识提议的共识结果,并将该N-f个本轮最终投票值对应的投票值确定为下轮共识的预投票值。
在一个实施例中,所述处理模块510,还用于若所述N-f个合法本轮最终投票值不全相同,且其中存在f+1个本轮最终投票值相同、为第一投票值或第二投票值,则将所述f+1个本轮最终投票值对应的投票值确定为下轮共识的预投票值;若所述N-f个合法本轮最终投票值中不存在f+1个相同的投票值,则随机确定本地抛币值,所述本地抛币值为第一投票值或第二投票值,将所述本地抛币值确定为下轮共识的预投票值。
上述装置中各个部件的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的方法。该方法至少包括上述图3所示的方法。
图6示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的方法。该方法至少包括上述图3所示的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (10)
1.一种基于可靠广播的二元共识方法,其特征在于,应用于分布式***中的任一共识节点,所述分布式***至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述方法包括:
针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,所述待共识提议为所述共识节点提出并期望其他共识节点进行共识的数据;投票值用于表示各共识节点对待共识提议的共识意见;初始投票值为第一投票值或第二投票值;
循环执行以下每轮共识步骤,直到达到预设停止条件,其中每轮共识步骤包括:
将本轮预投票值广播至其他共识节点;若接收到其他共识节点广播的f+1个本轮预投票值,所述f+1个本轮预投票值均相同、且与本地本轮广播的预投票值不同,则将本地预投票值修改为所述f+1个本轮预投票值对应的投票值,并再次广播修改后的预投票值;
基于其他共识节点广播的本轮预投票值确定本轮主投票值,并将确定的主投票值广播至其他共识节点;
基于其他共识节点广播的本轮主投票值确定本轮最终投票值,利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点;
基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值确定所述待共识提议的共识情况。
2.根据权利要求1所述的方法,其特征在于,所述可靠广播RBC协议为无条件安全的可靠广播RBC协议。
3.根据权利要求1所述的方法,其特征在于,所述基于其他共识节点广播的本轮预投票值确定本轮主投票值,包括:
在接收到其他共识节点广播的2f+1个本轮预投票值,且所述2f+1个本轮预投票值均相同的情况下,将所述2f+1个本轮预投票值对应的投票值添加到本轮投票集合中;
将最先添加到本轮投票集合中的值确定为本轮主投票值。
4.根据权利要求3所述的方法,其特征在于,所述基于其他共识节点广播的本轮主投票值确定本轮最终投票值,包括:
基于所述本轮投票集合对接收到的本轮主投票值进行合法性验证;
在接收到N-f个合法本轮主投票值的情况下,基于所述N-f个合法本轮主投票值确定最终投票值。
5.根据权利要求4所述的方法,其特征在于,所述基于所述N-f个合法本轮主投票值确定最终投票值,包括:
若所述N-f个合法本轮主投票值均相同,则将所述N-f个合法本轮主投票值对应的投票值确定为最终投票值;
若所述N-f个合法本轮主投票值不完全相同,则确定最终投票值为不同于第一投票值与第二投票值的预定义值。
6.根据权利要求5所述的方法,其特征在于,所述基于接收到的其他共识节点利用可靠广播RBC协议广播的本轮最终投票值,确定所述待共识提议的共识情况,包括:
基于所述本轮投票集合对接收到的本轮最终投票值进行合法性验证;
在接收到N-f个合法本轮最终投票值的情况下,若所述N-f个本轮最终投票值均相同、为第一投票值或第二投票值,则将所述N-f个本轮最终投票值对应的投票值确定为所述待共识提议的共识结果,并将该N-f个本轮最终投票值对应的投票值确定为下轮共识的预投票值。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述N-f个合法本轮最终投票值不完全相同,且其中存在f+1个本轮最终投票值相同、为第一投票值或第二投票值,则将所述f+1个本轮最终投票值对应的投票值确定为下轮共识的预投票值;
若所述N-f个合法本轮最终投票值中不存在f+1个相同的投票值,则随机确定本地抛币值,所述本地抛币值为第一投票值或第二投票值,将所述本地抛币值确定为下轮共识的预投票值。
8.一种基于可靠广播的二元共识装置,其特征在于,应用于分布式***中的任一共识节点,所述分布式***至少包括N个共识节点,其中N≥3f+1,所述f为大于0的整数,所述装置包括:
处理模块,用于针对任一共识节点的待共识提议,确定对应于该待共识提议的初始投票值;其中,所述待共识提议为所述共识节点提出并期望其他共识节点进行共识的数据;投票值用于表示各共识节点对待共识提议的共识意见;初始投票值包括第一投票值或第二投票值;循环执行每轮共识步骤,直到达到预设停止条件;
其中每轮共识中:
通信模块,将本轮预投票值广播至其他共识节点;处理模块,用于在接收到其他共识节点广播的f+1个本轮预投票值,所述f+1个本轮预投票值均相同、且与本地本轮广播的预投票值不同的情况下,将本地预投票值修改为所述f+1个本轮预投票值对应的投票值,并再次广播修改后的预投票值;所述处理模块,还用于基于其他共识节点广播的本轮预投票值确定本轮主投票值,所述通信模块,还用于将确定的主投票值广播至其他共识节点;所述处理模块,还用于基于其他共识节点广播的本轮主投票值确定本轮最终投票值,所述通信模块,还用于利用可靠广播RBC协议将确定的最终投票值广播至其他共识节点;
所述处理模块,还用于基于接收到的其他共识节点广播的本轮投票值确定所述待共识提议的共识结果。
9.一种计算机设备,包括存储器、处理器、通信接口及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984390.0A CN113794694B (zh) | 2021-08-25 | 2021-08-25 | 一种基于可靠广播的二元共识方法及装置 |
PCT/CN2022/111009 WO2023024886A1 (zh) | 2021-08-25 | 2022-08-09 | 一种基于可靠广播的二元共识方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110984390.0A CN113794694B (zh) | 2021-08-25 | 2021-08-25 | 一种基于可靠广播的二元共识方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113794694A CN113794694A (zh) | 2021-12-14 |
CN113794694B true CN113794694B (zh) | 2022-08-26 |
Family
ID=79182236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110984390.0A Active CN113794694B (zh) | 2021-08-25 | 2021-08-25 | 一种基于可靠广播的二元共识方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113794694B (zh) |
WO (1) | WO2023024886A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783935B (zh) * | 2021-08-12 | 2022-04-01 | 清华大学 | 一种拜占庭容错方法及装置 |
CN113794694B (zh) * | 2021-08-25 | 2022-08-26 | 清华大学 | 一种基于可靠广播的二元共识方法及装置 |
CN114401271A (zh) * | 2022-01-13 | 2022-04-26 | 中国人民解放军国防科技大学 | 一种试验数据防篡改方法、区块链***及介质 |
CN114861233B (zh) * | 2022-04-19 | 2023-12-19 | 湖南天河国云科技有限公司 | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 |
CN116455904B (zh) * | 2023-06-12 | 2023-09-05 | 湖南天河国云科技有限公司 | 基于异步网络去中心化的区块链共识方法及*** |
CN117354318B (zh) * | 2023-09-28 | 2024-04-05 | 北京航空航天大学 | 实用分布式投票共识方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108487A (zh) * | 2018-01-10 | 2018-06-01 | 杭州复杂美科技有限公司 | 一种区块链的共识方法 |
KR20200081533A (ko) * | 2018-12-27 | 2020-07-08 | 서강대학교산학협력단 | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943838A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 区块链网络中确定区块的共识的方法、设备和存储介质 |
CN110022216B (zh) * | 2019-02-18 | 2022-02-01 | 西安链融科技有限公司 | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 |
US20210026745A1 (en) * | 2019-07-24 | 2021-01-28 | The University Of North Carolina At Charlotte | Methods, systems, and computer readable media for providing byzantine fault tolerance |
CN111414373B (zh) * | 2020-03-18 | 2023-09-19 | 深圳市迅雷网络技术有限公司 | 一种共识方法和共识*** |
CN112416905A (zh) * | 2020-07-03 | 2021-02-26 | 支付宝(杭州)信息技术有限公司 | 蜜獾拜占庭容错共识机制的区块链共识方法、节点及*** |
CN111522697B (zh) * | 2020-07-03 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的重启处理方法、共识节点及区块链*** |
CN113794694B (zh) * | 2021-08-25 | 2022-08-26 | 清华大学 | 一种基于可靠广播的二元共识方法及装置 |
-
2021
- 2021-08-25 CN CN202110984390.0A patent/CN113794694B/zh active Active
-
2022
- 2022-08-09 WO PCT/CN2022/111009 patent/WO2023024886A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108487A (zh) * | 2018-01-10 | 2018-06-01 | 杭州复杂美科技有限公司 | 一种区块链的共识方法 |
KR20200081533A (ko) * | 2018-12-27 | 2020-07-08 | 서강대학교산학협력단 | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 |
Non-Patent Citations (2)
Title |
---|
A_Survey_of_Distributed_Consensus_Protocols_for_Blockchain_Networks;Yang Xiao等;《IEEE》;20200128;全文 * |
异步环境下的拜占庭共识算法研究;翁良;《中国优秀硕士学位论文全文数据库》;20200215;第1-5章 * |
Also Published As
Publication number | Publication date |
---|---|
WO2023024886A1 (zh) | 2023-03-02 |
CN113794694A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113794694B (zh) | 一种基于可靠广播的二元共识方法及装置 | |
CN111490878B (zh) | 密钥生成方法、装置、设备及介质 | |
CN113783935B (zh) | 一种拜占庭容错方法及装置 | |
EP4053711A1 (en) | Consensus method for blockchain, and consensus node, electronic device and storage medium | |
US20210035095A1 (en) | Blockchain consensus method, accounting node and node | |
CN111639932B (zh) | 一种基于区块链的离线资源转移方法及装置 | |
CN113783708A (zh) | 一种基于可靠广播的可再投票二元共识方法及装置 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN113810465A (zh) | 一种异步二元共识方法及装置 | |
CN109274692B (zh) | 一种识别区块链网络作恶节点的方法及装置 | |
CN111885050B (zh) | 基于区块链网络的数据存储方法、装置、相关设备及介质 | |
CN110400217B (zh) | 智能合约的规则变更处理方法及装置 | |
CN108737105B (zh) | 私钥的找回方法、装置、私钥设备和介质 | |
CN113794576B (zh) | 一种可再投票的二元共识方法及装置 | |
CN112134883A (zh) | 基于可信计算进行节点间信任关系快速认证的方法、装置及相关产品 | |
CN110928952A (zh) | 基于区块链的数据同步方法及装置 | |
CN111259428A (zh) | 基于区块链的数据处理方法、装置、节点设备及存储介质 | |
CN110874647A (zh) | 联盟学习中的私有数据评估、联盟学习方法、装置及*** | |
CN113794566B (zh) | 一种可再投票的二元共识方法、装置、及存储介质 | |
CN113783946A (zh) | 一种基于门限签名的可再投票二元共识方法及装置 | |
CN111884808B (zh) | 一种防止交易跨链重放的方法、装置及电子设备 | |
CN115525930A (zh) | 信息转移方法、装置及相关设备 | |
CN113051622A (zh) | 索引构建方法、装置、设备和存储介质 | |
CN113099453A (zh) | 接入服务器的验证方法、装置、设备及可读存储介质 | |
CN109615382A (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 |