CN108492103B - 一种联盟区块链共识方法 - Google Patents
一种联盟区块链共识方法 Download PDFInfo
- Publication number
- CN108492103B CN108492103B CN201810122889.9A CN201810122889A CN108492103B CN 108492103 B CN108492103 B CN 108492103B CN 201810122889 A CN201810122889 A CN 201810122889A CN 108492103 B CN108492103 B CN 108492103B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- transaction
- consensus
- new block
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种联盟区块链共识方法,应用于区块链的联盟区块链,在经典的PBFT算法的基础上,根据节点在共识过程中的行为构建节点信誉模型,计算节点的信任值,并将该信任值作为节点在共识过程中的话语权融入到共识方法中,最终形成融合了信誉模型的共识方法。由于在节点进行共识的过程中,将节点的话语权进行区分,符合真实场景需求,识别并剔除恶意节点,进而提高***持续可靠性,并降低共识时延。
Description
技术领域
本发明涉及信息技术领域,具体涉及区块链联盟区块链的共识方法。
背景技术
随着信息技术的发展,区块链技术由于具有的开放性、不可篡改性和去中心化等优点,成为人们重点关注的技术。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与分布式计算范式。区块链按照访问和管理权限可以分为“公有链”、“私有链”和“联盟链”。公有链上,所有人都能够访问、获取数据。私有链就是由个人或者独立一家公司运作,不希望有外界来参与到链条上来。联盟链则是只对联盟成员开放,仅限于联盟成员参与,联盟区块链上的读写权限、参与者的权限都按照联盟规则来制定。
在区块链***中,每个节点持有一份账本。由于网络延迟的原因,消息到达各个节点的先后顺序不同,因此要设计共识机制来实现不同账本上数据的一致性和正确性。这需要借鉴已有的在分布式***中的一致性算法,确定网络中选择记账节点的机制,以及保障账本数据在全网中达成正确、一致的共识。传统的分布式一致性算法常见的有Paxos和Raft,但是在联盟链中,***中的节点可能是利益对立方,节点完全有动机在一些不利于自己的情况下尝试作恶,破坏***的一致性。因此,联盟链的共识算法必须要能够容忍拜占庭节点,故不能使用Paxos或Raft这样的非拜占庭容错算法。
早期的区块链采用高度依赖节点算力的PoW(Proof of Work)机制,来保证比特币网络分布式记账的一致性,PoW机制为区块链的共识机制奠定了基础,通过哈希运算计算出一个满足要求的随机数,即获得本次记账权,PoW的优点是完全去中心化,节点自由进出,但是PoW机制需要消耗大量的算力,造成大量的资源浪费,且共识达成的周期较长,没有最终确定性。之后又出现了PoS(Proof of Stake)机制,根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找随机数的速度。PoS机制一定程度上缩短了达成共识的时间,但是依然需要挖矿,本质上并没有改变PoW的问题。
目前,联盟链的共识算法一般用采PBFT算法(Practical Byzantine FaultTolerance实用拜占庭容错算法)及其改进算法,PBFT类算法能耗低,吞吐量较大,具有最终确定性。PBFT算法是第一个得到广泛应用的拜占庭容错算法,在PBFT算法中,至多可以容忍不超过***全部节点数量的1/3的拜占庭节点,即如果有超过2/3的正常节点,整个***就可以正常工作。
发明内容
考虑到目前PBFT类算法应用到区块链时,普遍存在以下问题:共识过程中,所有节点完全平等,没有关于可信度和可靠性的区分,所有节点的话语权没有差别,不符合真实场景;错误节点在共识阶段中作恶无法被其他节点发现和剔除。本申请提供一种联盟区块链共识方法,解决现有技术中存在的问题,在PBFT共识过程中引入信誉模型,信誉模型依据节点过去的行为所反映节点的信誉值构建信誉模型,这些信息可以帮助评估节点的可信度。具体是一种采用联盟区块链的根据节点历史投票行为计算节点可信度构建信誉模型的方法,并提出一种基于PBFT算法的融合信誉模型的共识方法。
根据第一方面,一种实施例中提供一种联盟区块链共识方法,包括:
当联盟区块链网络中出现由节点私钥签名并发起的向全网进行广播的交易时,响应于该交易:如果副本节点接收到该交易,则进行泛洪转发;如果主节点接收到该交易,则验证该交易的合法性,如果不合法,则丢弃;如果合法,则将该交易记录到其区块数据结构的交易字段中,并构造一新区块,向其他节点广播预准备消息以及所述新区块;
任意一节点接收到所述新区块后,校验该新区块的真实性,如果为真,则向其他节点发送准备确认消息的投票信息,如果为假,则向其他节点发送准备拒绝消息的投票信息;并收集和存储来自其他节点的投票信息;
对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的准备确认消息以及这些节点的话语权,当收到大于第一数量的节点的准备确认消息,且这些节点的话语权大于第一值时,则向其他节点发送提交确认消息以及发送其所收集和存储的来自其他节点的投票信息;
对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的提交确认消息以及这些节点的话语权,当收到大于第二数量的节点的提交确认消息,且这些节点的话语权大于第二值时,则将所述新区块写入本节点的区块链中,以及将所述新区块在联盟区块链网络中进行广播,以完成本论共识;
各节点还接收其他节点发送的所收集和存储的投票信息,并在开始下论共识之前,各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,计算并更新其他节点的话语权。
进一步,主节点验证交易的合法性,包括:
主节点判断交易是否符合交易书写组成规则,判断交易是否已经存在于其区块链当中,以及判断交易的脚本是否正确执行;
当判断结果为交易不符合交易书写组成规则,或交易已经存在于其区块链当中,或交易的脚本未正确执行,则主节点验证该交易的结果为不合法,反之,则验证结果为合法;
节点校验接收到的新区块的真实性,包括:
节点判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块没有指向本节点的区块链的最新区块,则判断本节点的区块链的列表中是否已经存在该新区块,如果已经存在,则校验结果为该新区块为假,如果不存在,则将该新区块写入本节点的区块链的列表,并进行同步,同步完成后再重新判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块是指向本节点的区块链的最新区块,则判断新区块中的交易是否都为合法交易,如果都为合法交易,则校验结果为该新区块为真,反之,则校验结果为该新区块为假。
进一步,各节点计算并更新其他节点的话语权,包括:
各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,判断其他节点的投票信息的状态,以计算其他节点的信誉值;其中所述判断其他节点的投票信息的状态,包括:判断其他节点是否给不同节点发送不同的投票信息,其他节点的投票信息与最终是否达成共识的结果是否相同;当判断节点给其他节点发送不同的投票信息,将该节点的信誉值置为0;否则,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为不同,则降低该节点的信誉值,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为相同,则提升该节点的信誉值。
基于节点的信誉值,计算节点的话语权。
进一步,还包括各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,识别其他节点是否为错误节点,当判断一节点给其他节点发送不同的投票信息,或判断一节点给其他节点发送的所收集和存储的投票信息为修改后的信息,则将该节点识别为错误节点,该节点会被剔除出所述联盟区块链网络。
根据第二方面,一种实施例中提供一种计算机可读存储介质,包括程序,所述程序能够被处理器执行实现上述根据第一方面的所述方法。
依据上述实施例的一种联盟区块链共识方法,由于通过分析节点对历史区块的投票信息,计算节点的可信度,并和节点自身可靠性结合,以此来区分在共识过程中不同节点的话语权,使其符合真实场景的需求,并根据节点的信誉值,可以发现和剔除恶意节点,提高共识方法的效率和持续可靠性。
附图说明
图1为经典PBFT正常执行流程图;
图2为一种实施例的联盟区块链共识方法的流程图;
图3为另一种实施例的联盟区块链共识方法的流程图;
图4为一种实施例中计算节点信誉的示意图;
图5为一种实施例中计算节点的话语权的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
请参考图1,为经典PBFT正常执行流程图;PBFT采用三阶段协议来广播请求给replicas:pre-prepare(预准备阶段),prepare(准备阶段),commit(提交阶段)。
pre-prepare阶段和prepare阶段用来把在同一个view(视图)里发送的请求给确定下序列,就是排好序,让各个replicas节点都认可这个序列,照序执行,当然里面可能会有拜占庭节点恶意操作,我们接下来会举出这种情况,以及三阶段协议是如何来处理这样的情况。假设如图1所示,目前我们有四个节点组成的分布式网络。我们要提前清楚,在这个网络里:
1.有可能四个节点都是乖节点或者说是正确节点、合法节点;
2.主节点是坏节点或者说是错误节点,其余三个备份节点是乖节点;
3.主节点是乖节点,三个备份节点里有一个是坏节点,其余是乖节点;
不论上述三种情况哪一种出现,三阶段协议都能保证这个分布式网络健康、合法的运行。不会给坏节点可乘之机,从而避免破坏的出现。
prepare阶段和commit阶段用来确保那些已经达到commit状态的请求即使在发生view change后在新的view里依然保持原有的序列不变,比如一开始在view 0中,共有主节点、副本节点和副本节点2三个请求依次进入了commit阶段,假设没有坏节点,那么这四个replicas即将要依次执行者三条请求并返回给Client。但这时主节点问题导致viewchange的发生,主节点变成副节点1,在新的view里,原本的主节点、副节点1和副节点2三条请求的序列被保留,作数。那些处于pre-prepare和prepare阶段的请求在view change发生后,在新的view里都将被遗弃,不作数。
pre-prepare阶段,主节点收到来自Client的一条请求并分配了一个编号给这个请求,然后主节点会广播一条PRE-PREPARE信息给备份节点,这个PRE-PREPARE信息包含该请求的编号、所在的view和自身的一个digest。直到该信息送达到每一个备份节点,接下来就看收到信息的备份节点们同不同意主节点分配给该请求的这个编号n,即是否accept这条PRE-PREPARE信息,如果一个备份节点accept了这条PRE-PREPARE,它就会进入下面的prepare阶段。
prepare阶段,一个备份节点进入到自己的prepare阶段后,开始将一条PREPARE信息广播给主节点和其它两个备份节点,直到PREPARE信息都抵达那三个节点。与此同时,该备份节点也会分别收到来自其它两个备份节点的PREPARE信息。当这个备份节点开始综合比较来自其它两个备份节点的PREPARE信息和自身的PREPARE信息时,如果该备份节点发现其它两个节点都同意主节点分配的编号,又看了一下自己,自己也同意主节点的分配,那么我们就说该请求在这个replica上的状态是prepared,该replica就拥有了一个证书叫prepared certificate。那么replica 1一个人认为作数不足以让全网都认同,所以再新的view中,请求m的编号n将作废,需要重新发起提案。所以就有了下面的commit阶段。
commit阶段,紧接着prepare阶段,当一个replica节点发现有一个quorum同意编号分配时,它就会广播一条COMMIT信息给其它所有节点告诉他们它有一个preparedcertificate了。与此同时它也会陆续收到来自其它节点的COMMIT信息,如果它收到了2f+1条COMMIT(包括自身的一条,这些来自不同节点的COMMIT携带相同的编号n和view v),我们就说该节点拥有了一个叫committed certificate的证书,请求在这个节点上达到了committed状态。此时只通过这一个节点,我们就能断定该请求已经在一个quorum中到达了prepared状态,即一个quorum的节点们都同意了编号n的分配。当请求m到达commited状态后,该请求就会被该节点执行。
在本发明实施例中,提供一种联盟区块链共识方法,利用节点投票信息计算节点的信任值;考虑区块链节点之间具有差异性,节点之间的可信度与可靠性不同,利用节点信任值作为节点在共识过程中投票时的话语权;同时,在对新区块进行共识的过程中,不仅考虑该区块得到的话语权支持,同时也考虑区块链得到的节点数支持。
实施例一:
在现有区块链技术中,区块链中的数据是由该区域块链中的数据是由该区块链网络中的各区块链节点(以后简称节点)共同维护的。节点在接收到业务请求时,一般需要经过缓存、共识和存储这三个环节方可将业务请求对应的业务数据存储至区块中,并将该区块上链至节点对应的区块链上。当该区块链网络中的多数节点存储该业务数据在各自节点的区块链数据中时,该业务数据才可视为是被存储在各节点共同维护的区块数据中。
共识作为必不可少的环节,目前采用的共识机制有工作量证明(POW)机制、拜占庭容错(PBFT)机制、权益机制证明等多种。这里以工作量证明机制为例进行说明。
具体的,首先节点可接收用户发送的业务请求,该业务请求中包含业务数据,其中该业务请求可以是用户直接输入该节点的,也可接收区块链网络中其他节点广播的业务请求。具体该节点如何接收该业务请求对业务的执行并不造成影响。
之后,该节点可根据该业务请求确定对应的业务数据。其中,该节点根据该业务请求确定对应的业务数据的过程可称为节点受理业务请求,至于如何确定该业务数据可能随着具体情况的不同而不同。如常见的业务请求中携带的业务数据已经包含了业务需要执行的内容。例如,对于交易业务请求,该交易业务请求中携带有支付方地址,支付方余额,支付金额,收款方地址等信息,则接收该业务请求的节点可直接根据该业务请求确定该业务数据。又如,由于通常业务请求中还可包含针对智能合约的指令等业务数据。这样,该节点在受理该业务请求时,根据业务请求中的业务数据的不同可能还需要根据业务数据进行业务处理,并得到业务处理的结果,则节点在确定业务数据时,也可将该业务处理的结果作为该业务数据。当然,该节点也可将该业务请求中携带的业务数据以及进行业务处理的结果一并作为该业务请求对应的业务数据。具体的该业务数据的内容可根据区块链的配置而不同,只要是与该业务请求对应的,需要存储在该区块链数据中的数据即可视为是业务数据。
需要说明的是,区块链网络中的节点针对一个业务请求可以分为受理节点和非受理节点,这里的受理节点是指接收用户或者其他设备发送该业务请求的节点,非受理节点是指通过广播方式从其他节点获取该业务请求的节点。
当确定的该业务数据没有被存储在已经经过共识的区块链数据中时,该业务数据为待共识的业务数据,并可以被存储在该节点的缓存中。
然后,在该节点确定该待共识的业务数据之后,该节点可将该待共识的业务数据向该区块链网络中的其他节点进行广播,也就是同步至该区块链网络中的其他节点中。这样,该区块链网络中的各节点可以接收通过广播的方式发送的该待共识的业务数据。在后续进行共识时,该区块链网络中的各节点可以对该待共识的业务数据进行共识。
最后,该区块链网络中的各节点可以根据该区块链的共识机制,确定发起共识的节点,并由该发起共识的节点从该节点存储的各待共识的业务数据中,选择用于共识的业务数据。进而由该区块链网络中的各节点可根据该区块链的共识机制,对该发起共识的节点选择的用于共识的业务数据进行共识。
其中,该区块链网络中的每个节点在对该发起共识的节点发送的各待共识的业务数据进行共识时,可判断接收到的各待共识的业务数据,是否也均存储在该节点缓存中的待共识列表中,若是,则确定接收到的各待共识业务共识通过,并将记录各待共识的业务数据的新区块存储在该节点维护的区块链数据中,若否,则不存储。
请参照图2和图3,本发明一实施中提供一种联盟区块链共识方法,其可以包括步骤S101~S109,下面具体说明。
步骤S101:当联盟区块链网络中出现由节点私钥签名并发起的向全网进行广播的交易时,响应于该交易:如果副本节点接收到该交易,则进行泛洪转发;如果主节点接收到该交易,则验证该交易的合法性,如果不合法,则丢弃;如果合法,则将该交易记录到其区块数据结构的交易字段中,并构造一新区块,向其他节点广播预准备消息以及所述新区块。在一实施例中,主节点构造新区块,向其他节点发送所述新区块,包括:主节点在预设时间内构造并发送新区块,其中所述新区块被主节点写入接收到的交易。
***中某个用作为交易发起者发起一笔交易,并用私钥签名,确认其交易发起者的身份。
由于区块链网络中的共识节点分为主节点和副本节点,主节点编号由下式决定:
p=(c+h)%N
其中c为视图编号,h为当前区块高度,N为共识节点个数。
在一实施例中,主节点验证交易的合法性,包括:
主节点判断交易是否符合交易书写组成规则,判断交易是否已经存在于其区块链当中,以及判断交易的脚本是否正确执行;
当判断结果为交易不符合交易书写组成规则,或交易已经存在于其区块链当中,或交易的脚本未正确执行,则主节点验证该交易的结果为不合法,反之,则验证结果为合法。
步骤S103:任意一节点接收到所述新区块后,校验该新区块的真实性,如果为真,则向其他节点发送准备确认消息的投票信息,如果为假,则向其他节点发送准备拒绝消息的投票信息;并收集和存储来自其他节点的投票信息,例如用位图来收集和存储来自其他节点的投票信息。
在一实施例中,节点校验接收到的新区块的真实性,包括:
节点判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块没有指向本节点的区块链的最新区块,则判断本节点的区块链的列表中是否已经存在该新区块,如果已经存在,则校验结果为该新区块为假,如果不存在,则将该新区块写入本节点的区块链的列表,并进行同步,同步完成后再重新判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块是指向本节点的区块链的最新区块,则判断新区块中的交易是否都为合法交易,如果都为合法交易,则校验结果为该新区块为真,反之,则校验结果为该新区块为假。
在一实施例中,本发明的联盟区块链共识方法还包括步骤:任意一节点接收到所述新区块后,还怀疑发送新区块的主节点是否为错误节点,当怀疑为错误节点时,则该节点发起并广播或由随机选取的节点广播视图变更消息;当其他节点收到视图变更消息后,会广播确认消息;所述怀疑发送新区块的主节点是否为错误节点,包括:当判断主节点发送的新区块中包含的交易为假交易,或者在预设时间内主节点没有发送新区块,则怀疑该主节点为错误节点;任意一节点,其统计本节点收到多少节点的确认消息以及这些节点的话语权,当收到大于第三数量的节点的确认消息,且这些节点的话语权大于第三值时,则变更到新的视图,例如当收到大于全网数量1/2的共识节点的确认消息,且这些节点的话语权大于全网2/3的话语权时,则变更得到新的视图。
步骤S105:对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的准备确认消息以及这些节点的话语权,当收到大于第一数量的节点的准备确认消息,且这些节点的话语权大于第一值时,则向其他节点发送提交确认消息以及发送其所收集和存储的来自其他节点的投票信息;例如,当收到大于全网数量1/2的共识节点的准备确认消息,且这些节点的话语权大于全网2/3的话语权时,则向其他节点发送提交确认消息以及发送其在步骤S103所收集和存储的来自其他节点的投票信息。
步骤S107:对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的提交确认消息以及这些节点的话语权,当收到大于第二数量的节点的提交确认消息,且这些节点的话语权大于第二值时,——例如,当收到大于全网数量1/2的共识节点的提交确认消息,且这些节点的话语权大于全网2/3的话语权时——则将所述新区块写入本节点的区块链中,以及将所述新区块在联盟区块链网络中进行广播,以完成本论共识。
步骤S109:各节点还接收其他节点发送的所收集和存储的投票信息,并在开始下论共识之前,各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,计算并更新其他节点的话语权。
在一实施例中,各节点计算并更新其他节点的话语权,包括:各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,判断其他节点的投票信息的状态,以计算其他节点的信誉值;其中所述判断其他节点的投票信息的状态,包括:判断其他节点是否给不同节点发送不同的投票信息,其他节点的投票信息与最终是否达成共识的结果是否相同;当判断节点给其他节点发送不同的投票信息,将该节点的信誉值置为0;否则,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为不同,则降低该节点的信誉值,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为相同,则提升该节点的信誉值。然后基于节点的信誉值,计算节点的话语权。
在一实施例中,计算节点的信誉值包括以下方式:
其中,Ri(t)表示编号为i的节点在经过了t次共识后的信誉值,0<x<1,0<y<0.05,Ri(0)为一预设值,例如为0.6。例如,某一节点在本论共识过程中投票消息为准备确认消息,而最终结果为达成共识,则投票消息与最终结果相同,若最终结果为没有达成共识,则投票消息与最终结果不同;类似地,某一节点在本论共识过程中投票消息为准备拒绝消息,而最终结果为达成共识,则投票消息与最终结果不同,若最终结果为没有达成共识,则投票消息与最终结果相同。可以看到,可以将所有节点的信誉值的初始值都设置为0.6,当节点的投票消息丢失或与最终结果不同时,节点的信誉值将会降低;若节点给不同节点发送不同消息,则其信誉值将直接将为0,并被剔除出网络。当节点的投票信息和最终结果相同,则节点的信誉分会慢慢增加,y较大时,节点信誉上升快,y较小时,节点的信誉上升慢。
在一实施例中,当节点信誉值小于预设的信誉阈值时,例如0.5,则会被判定为错误节点并被剔除出所述联盟区块链网络。
通过上式就可以计算节点的信誉值,那么计算节点的话语权可以包括以下方式:
其中,Ri(t)表示编号为i的节点在经过了t次共识后的信誉值,Di(t)表示编号为i的节点在第t轮的话语权,P(i)表示编号为i的节点自身的可靠性,为一预设值;a为一大小1的值,b为一小于1且大于0的值,P(i)表示编号为i的节点自身的可靠性。
上述的信誉值和话语权的模型,需要一个识别错误节点的机制,因此在一实施例中,本发明的联盟区块链共识方法还可以包括各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,识别其他节点是否为错误节点,当判断一节点给其他节点发送不同的投票信息,或判断一节点给其他节点发送的所收集和存储的投票信息为修改后的信息,则将该节点识别为错误节点,该节点会被剔除出所述联盟区块链网络。下面具体说明。
如上所述上述的信誉值和话语权的模型,需都一个识别错误节点的机制,这个过程是一个较为复杂的过程,因为错误节点可能时不时地撒谎,并且可能在很长一段时间内表现正常,直到它决定开始攻击为止。此外,错误节点可以在共识过程中任意一个阶段发出不一致的信息,也可能只在一个阶段发生不一致行为。
PBFT算法有三个阶段,错误节点的识别只发生在第三阶段。一个错误节点可能有两种欺骗方式:(1)在第二阶段时,给不同节点发送不同投票信息,这种欺骗方式可能会导致共识无法达成;(2)在第三阶段,发送修改过的内容,这种欺骗方式会导致正确节点被误认为错误节点。所以,一个错误节点可能有四种表现形式,分别在第二阶段和第三阶段选择欺骗或者不欺骗。
场景 | 1 | 2 | 3 | 4 |
阶段二 | 正常 | 正常 | 欺骗 | 欺骗 |
阶段三 | 正常 | 欺骗 | 正常 | 欺骗 |
所以,在一次共识过程中,需要考虑以下三种情形:
(1)错误节点只在第二阶段发生欺骗行为,没有节点在第三阶段进行欺骗行为。这种情形下,错误节点在第二阶段给不同节点发送了不同的投票信息,但是所有节点(包括错误节点)在第三阶段发送了正确的投票信息,也就是上表中的情形三。这种情形下,节点的欺骗行为将很容易被发现,因为在第三阶段收到的各个节点的投票信息都是正确的,只要根据第三阶段得到的各个节点的投票信息就能找出有欺骗行为的错误节点。
(2)错误节点没有在第二阶段进行欺骗行为,但在第三阶段发生了欺骗行为。这种情况下,错误节点在第二阶段的投票信息都是一致的,但是错误节点在第三阶段发出了修改过的收集的投票信息,也就是上表中的情形二。这种情形下,节点的欺骗行为也很容易就会被发现,因为一个节点的投票信息有自身的私钥签名,当其他节点收到消息时,通过该节点的公钥就可以验证该节点的投票信息。因此,在第三阶段进行欺骗行为的节点会很快被发现。
(3)错误节点在第二阶段和第三阶段都发生了错误行为,也就是上表中的情形四。只要网络中有超过2/3话语权的正确节点工作,这些节点就可以在阶段二和阶段三达成一致。由于在第三阶段进行欺骗行为的节点可以通过公钥验证的方式发现,于是所有在第三阶段发生欺骗行为的节点的信息将被剔除,此时,就可以通过第一种情形的方式找出在第二阶段发生了欺骗行为的错误节点。
如果发生过欺骗行为就会被判定为错误节点,小于0.5也会被认为是错误节点,因此,就可以把错误节点从网络中剔除,并根据前文所述的公式计算和更新每个节点的信誉值。
节点的话语权由节点的信誉值和上一轮共识的行为,以及节点本身的可靠性共同决定,话语权的计算也在该步骤完成。
用Di(t)表示编号为i的节点在第t轮的话语权,P(i)表示节点自身的可靠性,Di(1)=P(i),则:
节点的信誉值越高,其话语权也相应地越高;节点本身可靠性越强,话语权也越高;并且,一个节点如果在上一轮共识过程正确地工作,那么下一轮共识也更有可能正确工作,因此其话语权也相应地上升。
因此,本实施例融合了信誉模型的共识方法,节点和节点之间的话语权有所区分,根据其自身可靠性以及其在以往的共识过程中的行为,可以计算出节点在该轮共识过程中的话语权。同时,本发明提供的方法可以发现并剔除错误节点,增强***的持续稳定性。
综上,本申请提供一种联盟区块链中融合信誉模型的共识方法,根据节点在共识过程中的投票行为,为节点的可信度进行计算,并且结合节点自身可靠性,给出了节点在共识过程中的话语权。该方法符合真实场景需求,提高共识成功率,降低共识时延。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过程序来完成,该程序存储于联盟区块链进行记账共识的服务器中,并应用于相应的区块链服务中。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的***进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。
Claims (10)
1.一种联盟区块链共识方法,其特征在于,包括:
当联盟区块链网络中出现由节点私钥签名并发起的向全网进行广播的交易时,响应于该交易:如果副本节点接收到该交易,则进行泛洪转发;如果主节点接收到该交易,则验证该交易的合法性,如果不合法,则丢弃;如果合法,则将该交易记录到其区块数据结构的交易字段中,并构造一新区块,向其他节点广播预准备消息以及所述新区块;
任意一节点接收到所述新区块后,校验该新区块的真实性,如果为真,则向其他节点发送准备确认消息的投票信息,如果为假,则向其他节点发送准备拒绝消息的投票信息;并收集和存储来自其他节点的投票信息;
对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的准备确认消息以及这些节点的话语权,当收到大于第一数量的节点的准备确认消息,且这些节点的话语权大于第一值时,则向其他节点发送提交确认消息以及发送其所收集和存储的来自其他节点的投票信息;
对于联盟区块链网络中任意一节点,其统计本节点收到多少节点的提交确认消息以及这些节点的话语权,当收到大于第二数量的节点的提交确认消息,且这些节点的话语权大于第二值时,则将所述新区块写入本节点的区块链中,以及将所述新区块在联盟区块链网络中进行广播,以完成本论共识;
各节点还接收其他节点发送的所收集和存储的投票信息,并在开始下论共识之前,各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,计算并更新其他节点的话语权。
2.如权利要求1所述的联盟区块链共识方法,其特征在于,
主节点验证交易的合法性,包括:
主节点判断交易是否符合交易书写组成规则,判断交易是否已经存在于其区块链当中,以及判断交易的脚本是否正确执行;
当判断结果为交易不符合交易书写组成规则,或交易已经存在于其区块链当中,或交易的脚本未正确执行,则主节点验证该交易的结果为不合法,反之,则验证结果为合法;
节点校验接收到的新区块的真实性,包括:
节点判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块没有指向本节点的区块链的最新区块,则判断本节点的区块链的列表中是否已经存在该新区块,如果已经存在,则校验结果为该新区块为假,如果不存在,则将该新区块写入本节点的区块链的列表,并进行同步,同步完成后再重新判断接收到的新区块是否指向本节点的区块链的最新区块;
如果接收到的新区块是指向本节点的区块链的最新区块,则判断新区块中的交易是否都为合法交易,如果都为合法交易,则校验结果为该新区块为真,反之,则校验结果为该新区块为假。
3.如权利要求1所述的联盟区块链共识方法,其特征在于,主节点构造新区块,向其他节点发送所述新区块,包括:主节点在预设时间内构造并发送新区块,其中所述新区块被主节点写入接收到的交易。
4.如权利要求1所述的联盟区块链共识方法,其特征在于,还包括:
所述任意一节点接收到所述新区块后,还怀疑发送新区块的主节点是否为错误节点,当怀疑为错误节点时,则该节点发起并广播或由随机选取的节点广播视图变更消息;当其他节点收到视图变更消息后,会广播确认消息;所述怀疑发送新区块的主节点是否为错误节点,包括:当判断主节点发送的新区块中包含的交易为假交易,或者在预设时间内主节点没有发送新区块,则怀疑该主节点为错误节点;
任意一节点,其统计本节点收到多少节点的确认消息以及这些节点的话语权,当收到大于第三数量的节点的确认消息,且这些节点的话语权大于第三值时,则变更到新的视图。
5.如权利要求1所述的联盟区块链共识方法,其特征在于,各节点计算并更新其他节点的话语权,包括:
各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,判断其他节点的投票信息的状态,以计算其他节点的信誉值;其中所述判断其他节点的投票信息的状态,包括:判断其他节点是否给不同节点发送不同的投票信息,其他节点的投票信息与最终是否达成共识的结果是否相同;当判断节点给其他节点发送不同的投票信息,将该节点的信誉值置为0;否则,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为不同,则降低该节点的信誉值,当判断节点给其他节点发送的投票信息与最终是否达成共识的结果为相同,则提升该节点的信誉值;
基于节点的信誉值,计算节点的话语权。
7.如权利要求5或6所述的联盟区块链共识方法,其特征在于,当节点信誉值小于预设的信誉阈值时,则会被判定为错误节点并被剔除出所述联盟区块链网络。
9.如权利要求1所述的联盟区块链共识方法,其特征在于,还包括各节点根据接收到的其他节点发送的所收集和存储的投票信息、以及本节点所收集和存储的投票信息,识别其他节点是否为错误节点,当判断一节点给其他节点发送不同的投票信息,或判断一节点给其他节点发送的所收集和存储的投票信息为修改后的信息,则将该节点识别为错误节点,该节点会被剔除出所述联盟区块链网络。
10.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810122889.9A CN108492103B (zh) | 2018-02-07 | 2018-02-07 | 一种联盟区块链共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810122889.9A CN108492103B (zh) | 2018-02-07 | 2018-02-07 | 一种联盟区块链共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108492103A CN108492103A (zh) | 2018-09-04 |
CN108492103B true CN108492103B (zh) | 2021-04-27 |
Family
ID=63344644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810122889.9A Active CN108492103B (zh) | 2018-02-07 | 2018-02-07 | 一种联盟区块链共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108492103B (zh) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600161A (zh) * | 2018-03-12 | 2018-09-28 | 成都零光量子科技有限公司 | 一种公平高效的区块链共识方法 |
CN110730959A (zh) * | 2018-04-21 | 2020-01-24 | 因特比有限公司 | 用于执行由区块链请求的动作的方法和*** |
CN109447795B (zh) * | 2018-09-11 | 2021-06-04 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN109670930A (zh) * | 2018-09-13 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 欺诈设备识别方法、装置、设备及计算机可读存储介质 |
CN109309671A (zh) * | 2018-09-14 | 2019-02-05 | 爱立信(中国)通信有限公司 | 一种基于区块链的通信设备数据管理方法和装置 |
CN109274674B (zh) * | 2018-09-27 | 2021-03-23 | 福建福链科技有限公司 | 一种具有高安全性的区块链异构共识方法及终端 |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态*** |
CN109389502B (zh) * | 2018-10-08 | 2019-12-06 | 莆田市烛火信息技术有限公司 | 一种依附相关链算力的区块链的共识方法 |
CN109509092A (zh) * | 2018-10-16 | 2019-03-22 | 中国传媒大学 | 基于联盟链的数据交易激励方法及*** |
CN109359860A (zh) * | 2018-10-16 | 2019-02-19 | 湘潭大学 | 一种基于智能合约的钢铁生产数据的存取方法 |
CN109586949B (zh) * | 2018-10-17 | 2021-04-09 | 北京新唐思创教育科技有限公司 | 区块生成方法及计算机存储介质 |
CN109413178B (zh) * | 2018-10-21 | 2021-03-05 | 浙江数值跳跃网络科技有限公司 | 一种基于物联网的区块链数据收录方法及数据收录*** |
WO2020082213A1 (zh) * | 2018-10-22 | 2020-04-30 | 深圳市哈希树科技有限公司 | 一种网络可扩展性区块链实现方法 |
CN109450996A (zh) * | 2018-10-25 | 2019-03-08 | 国信优易数据有限公司 | 一种数据上链管理方法、装置、设备和区块链*** |
CN109377229B (zh) * | 2018-11-23 | 2021-03-02 | 全链通有限公司 | 一种交易共识方法、节点及区块链*** |
CN110945853B (zh) * | 2018-12-07 | 2022-06-21 | 北京大学深圳研究生院 | 基于联盟链投票共识算法产生及管理多模标识网络的方法 |
CN109767199B (zh) * | 2018-12-10 | 2023-06-16 | 西安电子科技大学 | 基于信誉的pbft共识***及方法、区块链数据处理*** |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN109754163A (zh) * | 2018-12-18 | 2019-05-14 | 上海众源网络有限公司 | 一种内容评分方法、装置及电子设备 |
CN109727029A (zh) * | 2018-12-18 | 2019-05-07 | 杭州茂财网络技术有限公司 | 一种联盟链共识方法和*** |
CN111478785B (zh) * | 2019-01-24 | 2021-11-02 | 北京京东尚科信息技术有限公司 | 区块链网络中的共识方法、节点及存储介质 |
CN109918261B (zh) * | 2019-01-25 | 2022-11-22 | 中国联合网络通信集团有限公司 | 故障监听方法、装置、设备及计算机可读存储介质 |
CN109859047A (zh) * | 2019-01-31 | 2019-06-07 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法和区块链更新*** |
CN109886681B (zh) * | 2019-01-31 | 2021-06-18 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及共识*** |
WO2020168477A1 (zh) * | 2019-02-20 | 2020-08-27 | 北京大学深圳研究生院 | 一种联盟链共识下满足分区容忍性的拓扑构造方法及*** |
CN109995536A (zh) * | 2019-03-15 | 2019-07-09 | 广州杰赛科技股份有限公司 | 一种区块链共识方法、装置及可读存储介质 |
CN109951474B (zh) * | 2019-03-15 | 2021-07-30 | 杭州云象网络技术有限公司 | 一种实现区块链共识出块的方法 |
CA3058233C (en) | 2019-03-18 | 2023-03-07 | Alibaba Group Holding Limited | Consensus system downtime recovery |
US10938750B2 (en) | 2019-03-18 | 2021-03-02 | Advanced New Technologies Co., Ltd. | Consensus system downtime recovery |
US11347598B2 (en) | 2019-03-18 | 2022-05-31 | Advanced New Technologies Co., Ltd. | Consensus system downtime recovery |
CN110086780B (zh) * | 2019-03-26 | 2021-11-02 | 北京百度网讯科技有限公司 | 基于以太坊的被篡改交易的处理方法、装置及存储介质 |
CN110034959A (zh) * | 2019-04-04 | 2019-07-19 | 郑州师范学院 | 一种区块链投票场景中可信节点度量方法 |
CN109885264B (zh) * | 2019-04-16 | 2019-12-06 | 北京艾摩瑞策科技有限公司 | 一种区块链节点的逻辑分片方法及其*** |
CN110049051B (zh) * | 2019-04-22 | 2020-08-11 | 成都四方伟业软件股份有限公司 | 请求的验证方法、装置、存储介质及联盟链验证*** |
CN110059981B (zh) * | 2019-04-29 | 2021-06-04 | 威富通科技有限公司 | 信任度评估方法、装置及终端设备 |
CN110191116B (zh) * | 2019-05-24 | 2021-10-26 | 北京清红微谷技术开发有限责任公司 | 恶意节点隔离方法和***、算力验证终端及p2p网络 |
CN110222532A (zh) * | 2019-06-06 | 2019-09-10 | 杭州趣链科技有限公司 | 一种基于命名空间实现联盟链隐私保护的分区共识方法 |
CN110245951B (zh) * | 2019-06-19 | 2021-04-20 | 西南交通大学 | 一种基于树形结构的联盟链主从多链共识方法 |
CN110289966B (zh) * | 2019-06-19 | 2021-08-03 | 西南交通大学 | 基于拜占庭容错的抗自适应攻击联盟链共识方法 |
CN110335156A (zh) * | 2019-07-09 | 2019-10-15 | 广东投盟科技有限公司 | 区块链的规则维护方法及其*** |
US11341122B2 (en) | 2019-07-24 | 2022-05-24 | Vmware, Inc. | Byzantine fault tolerance that supports heterogeneous clients |
US11334561B2 (en) | 2019-07-24 | 2022-05-17 | Vmware, Inc. | Flexible byzantine fault tolerant protocol using message delay upper bound for client commit decision |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN110535836B (zh) * | 2019-08-12 | 2021-10-29 | 安徽师范大学 | 一种基于角色分类的信任区块链共识方法 |
CN110519246B (zh) * | 2019-08-15 | 2021-09-28 | 安徽师范大学 | 基于信任区块链节点的信任度计算方法 |
CN110598060A (zh) * | 2019-09-18 | 2019-12-20 | 广东卓启投资有限责任公司 | 一种区块链快速共识方法、装置、计算机设备和存储介质 |
CN110704533B (zh) * | 2019-09-24 | 2021-06-18 | 东北大学 | 一种基于区块链和投票机制的假新闻监测方法 |
CN110673914B (zh) * | 2019-09-24 | 2021-06-29 | 支付宝(杭州)信息技术有限公司 | 一种区块链共识的视图切换方法及区块链*** |
CN110691077B (zh) * | 2019-09-24 | 2021-06-29 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的业务校验方法及联盟链*** |
CN111026569B (zh) * | 2019-10-25 | 2023-09-15 | 贵阳信息技术研究院(中科院软件所贵阳分部) | 一种在联盟链中修复指定区块数据的方法 |
CN110796547A (zh) * | 2019-10-30 | 2020-02-14 | 桂林电子科技大学 | 一种基于联盟区块链的改进的实用拜占庭容错*** |
CN111131209B (zh) * | 2019-12-16 | 2022-06-28 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、***、计算机设备及存储介质 |
CN111327490B (zh) * | 2020-01-20 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 区块链的拜占庭容错检测方法及相关装置 |
CN111371877B (zh) * | 2020-02-28 | 2022-02-18 | 桂林电子科技大学 | 一种异构联盟链的共识方法 |
CN111629022B (zh) * | 2020-03-20 | 2022-05-20 | 恒宝股份有限公司 | 实用性拜占庭容错的节点设置方法 |
CN111464539B (zh) * | 2020-03-31 | 2022-11-04 | 中国联合网络通信集团有限公司 | 区块链记账方法及记账节点 |
CN111464633B (zh) * | 2020-03-31 | 2023-03-21 | 成都质数斯达克科技有限公司 | 用于区块链的交易信息的共识方法及*** |
CN111556133B (zh) * | 2020-04-26 | 2023-03-14 | 布比(北京)网络技术有限公司 | 区块链共识方法、***及计算机存储介质、电子设备 |
CN111510502A (zh) * | 2020-04-28 | 2020-08-07 | 吉林科创电力有限公司 | 一种基于动态信誉值的pbft共识传播优化方法 |
CN113709197B (zh) * | 2020-05-21 | 2024-02-23 | 顺丰科技有限公司 | 联盟区块链组织***、区块链*** |
CN111770103B (zh) * | 2020-06-30 | 2021-12-14 | 中国科学技术大学 | 基于区块链共识结果反馈的网络节点安全属性评估方法 |
CN111865608B (zh) * | 2020-07-02 | 2022-08-26 | 南京邮电大学 | 一种应用于联盟链的共识机制运行方法 |
CN111988321B (zh) * | 2020-08-24 | 2022-02-11 | 桂林电子科技大学 | 一种基于机器学习的联盟链异常检测***及其检测方法 |
CN112118117A (zh) * | 2020-08-27 | 2020-12-22 | 紫光云(南京)数字技术有限公司 | 一种基于Paxos算法的区块链共识方法 |
CN112422621A (zh) * | 2020-09-28 | 2021-02-26 | 国网信息通信产业集团有限公司北京分公司 | 基于pbft区块链技术的多站融合电力数据共识方法和装置 |
CN112351117A (zh) * | 2020-11-25 | 2021-02-09 | 北京邮电大学 | 一种域名管理方法、装置、电子设备及存储介质 |
CN112669135B (zh) * | 2020-11-30 | 2024-03-08 | 泰康保险集团股份有限公司 | 数据采集方法及装置、计算机设备及计算机可读存储介质 |
CN112822267B (zh) * | 2021-01-05 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据处理方法和装置 |
CN112835854A (zh) * | 2021-02-01 | 2021-05-25 | 北京百度网讯科技有限公司 | 文件存储方法、装置、电子设备和存储介质 |
CN113379428B (zh) * | 2021-05-10 | 2023-07-07 | 贵州大学 | 一种瓶装酒流转溯源方法和*** |
CN113326240B (zh) * | 2021-06-22 | 2023-05-30 | 哈尔滨工程大学 | 一种边缘网络中能耗敏感的终端节点的数据共享方法 |
CN114172680B (zh) * | 2021-08-16 | 2023-01-20 | 北京天德科技有限公司 | 一种基于节点信誉机制的区块链***的运行方法 |
CN113676541B (zh) * | 2021-08-23 | 2023-06-27 | 南昌航空大学 | 一种改进的pbft共识方法 |
CN113746637B (zh) * | 2021-09-03 | 2024-02-27 | 华东师范大学 | 适用于联盟链且具有高可扩展性的segbft共识算法 |
CN113923275B (zh) * | 2021-10-11 | 2023-11-28 | 卓尔智联(武汉)研究院有限公司 | 区块链协商方法、电子设备及计算机可读存储介质 |
CN114625497B (zh) * | 2021-12-28 | 2023-04-07 | 杭州电子科技大学 | 一种基于协同感知的可信服务组合方法 |
CN114048517B (zh) * | 2022-01-14 | 2022-05-20 | 北京大学深圳研究生院 | 区块链的双通道共识***和方法、计算机可读存储介质 |
CN114338053B (zh) * | 2022-03-16 | 2022-05-13 | 成都信息工程大学 | 一种动态的基于信誉的区块链共识方法和*** |
CN115277722B (zh) * | 2022-07-27 | 2023-08-22 | 长安大学 | 一种基于信誉值模型的dr-pbft改进方法 |
CN115334038B (zh) * | 2022-08-20 | 2024-03-26 | 信通院(江西)科技创新研究院有限公司 | 一种基于区块链的appid申请管理方法和*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671821B1 (en) * | 1999-11-22 | 2003-12-30 | Massachusetts Institute Of Technology | Byzantine fault tolerance |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106453286A (zh) * | 2016-09-27 | 2017-02-22 | 北京天德科技有限公司 | 一种基于区块链的信誉方法和*** |
CN106651332A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 一种区块链中新区快的生成方法及区块链 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及*** |
CN107045518A (zh) * | 2016-10-18 | 2017-08-15 | 北京天德科技有限公司 | 一种区块链的扩展设计方法 |
CN107395403A (zh) * | 2017-07-07 | 2017-11-24 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
-
2018
- 2018-02-07 CN CN201810122889.9A patent/CN108492103B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671821B1 (en) * | 1999-11-22 | 2003-12-30 | Massachusetts Institute Of Technology | Byzantine fault tolerance |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106453286A (zh) * | 2016-09-27 | 2017-02-22 | 北京天德科技有限公司 | 一种基于区块链的信誉方法和*** |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及*** |
CN107045518A (zh) * | 2016-10-18 | 2017-08-15 | 北京天德科技有限公司 | 一种区块链的扩展设计方法 |
CN106651332A (zh) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | 一种区块链中新区快的生成方法及区块链 |
CN107395403A (zh) * | 2017-07-07 | 2017-11-24 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108492103A (zh) | 2018-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108492103B (zh) | 一种联盟区块链共识方法 | |
US11177939B2 (en) | Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system | |
EP3610436B1 (en) | Rapid distributed consensus on blockchain | |
CN108717630B (zh) | 一种出块方法及其实现*** | |
US20210026745A1 (en) | Methods, systems, and computer readable media for providing byzantine fault tolerance | |
EP4060544A1 (en) | Blockchain for general computation | |
EP3545665B1 (en) | System and method for detecting replay attack | |
CN110351133A (zh) | 用于区块链***中的主节点切换处理的方法及装置 | |
JP7319961B2 (ja) | 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法 | |
CN112883114A (zh) | 应用于区块链的交易处理方法和装置 | |
CN107464106A (zh) | 区块链主链与侧链间交易的方法及*** | |
CN111199481A (zh) | 基于异步定向非循环图的分布式交易网络 | |
CN110648139B (zh) | 基于分片技术和博弈论的区块链事务验证扩容方法及装置 | |
TW202145759A (zh) | 具有短完結時間之高吞吐量區塊鏈共識系統、電腦實施方法以及非暫時性電腦可讀媒體 | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
WO2019141984A1 (en) | Interaction between blockchains | |
CN109194493B (zh) | 一种信息管理***、方法及装置 | |
Sun et al. | RTChain: A reputation system with transaction and consensus incentives for e-commerce blockchain | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链*** | |
KR20200083145A (ko) | 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법 | |
US20230017790A1 (en) | Graphic-blockchain-orientated hybrid consensus implementation apparatus and implementation method thereof | |
CN111582843A (zh) | 一种基于聚合签名的区块链隐私交易方法 | |
US20220278854A1 (en) | Unity Protocol Consensus | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN113837758A (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 |