CN112039964B - 一种基于区块链的节点信誉共识方法 - Google Patents
一种基于区块链的节点信誉共识方法 Download PDFInfo
- Publication number
- CN112039964B CN112039964B CN202010854966.7A CN202010854966A CN112039964B CN 112039964 B CN112039964 B CN 112039964B CN 202010854966 A CN202010854966 A CN 202010854966A CN 112039964 B CN112039964 B CN 112039964B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- reputation
- nodes
- request
- 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 41
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000008859 change Effects 0.000 claims abstract description 9
- 238000012790 confirmation Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 7
- 238000002360 preparation method Methods 0.000 claims description 7
- 239000003999 initiator Substances 0.000 claims description 6
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 5
- 239000010931 gold Substances 0.000 claims description 5
- 229910052737 gold Inorganic materials 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000006399 behavior Effects 0.000 description 28
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003211 malignant effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- 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/1044—Group management mechanisms
- H04L67/1048—Departure or maintenance mechanisms
-
- 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
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及共识算法技术领域,提供一种基于区块链的节点信誉共识方法,包括:步骤100,获取行为记录表;步骤200,对行为记录表中节点进行信誉值评估;步骤300,根据节点的信誉值变化计算节点的信誉增长率;步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;步骤600,要退出的节点需向共识主节点发送退出请求;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息。本发明能够对全网节点的可信性进行检测和评估。
Description
技术领域
本发明涉及共识算法技术领域,尤其涉及一种基于区块链的节点信誉共识方法。
背景技术
区块链是一个去中心化的分布式账本技术。共识算法是区块链非常重要的一部分,也是其去中心化和信任机制建立的基础。典型的共识算法可划分为:基于证明的共识和基于投票的共识。基于证明的共识算法有PoW(Proof of Work,工作量证明)、PoS(ProofofStake,股权证明)、DPoS(Delegated Proof of Stake,授权股权证明)等。这类算法要求加入网络的节点能证明自己比其他节点更有资格添加一个区块到链上。基于投票的共识算法有PBFT(Practical Byzantine Fault Tolerance,实用拜占庭算法)、DBFT(delegatedByzantine fault tolerance,授权拜占庭容错算法)以及Tendermint等。这类算法要求网络中的节点交换对当前新区块或者交易的验证结果,然后作出最终的决定。
一般来说,联盟区块链系统节点间以PBFT算法作为共识算法,能很好地避免PoW等基于证明的共识算法存在的能源浪费问题,且能允许系统在少于个节点因断电或者被攻击而无法良好工作等情况下继续良好运行,具有很好的工业应用性。然而,PBFT共识机制存在的问题有:1)节点可靠性:如何对全网节点的可靠性进行检测和评估,确保选出可信的共识节点,以保障共识网络拓扑的稳定。2)安全性:如果共识节点的行为异常,共识协议能否采取相应的惩罚机制,以减轻恶意节点带来的后续影响。3)动态性:PBFT通常是在联盟链系统中运行的算法,并未考虑实际系统中可能出现的节点数量变化的情况,因此不能实现节点的动态加入和退出;4)可扩展性:PBFT共识过程中存在节点通信复杂度高的问题,当参与共识的节点增多时,共识交互消息会成几何倍数增长,从而影响系统性能。
发明内容
本发明主要解决现有技术的实用拜占庭算法共识机制的上述技术问题,提出一种基于区块链的节点信誉共识方法,以对全网节点的可信性进行检测和评估,确保选出可信的共识节点,保障共识网络拓扑的稳定。
本发明提供了一种基于区块链的节点信誉共识方法,包括以下过程:
步骤100,获取行为记录表,其中,所述行为记录表记录全网节点共同维护的节点信誉、信誉增长率及信誉参考因素;
步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值;
步骤300,根据节点的信誉值变化计算节点的信誉增长率;
步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;
步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程;
步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。
进一步的,步骤200,包括步骤201至步骤203:
步骤201,由系统初创节点进行共识,之后共识主节点发起信誉值更新请求,共识节点收到请求后,计算全网节点新的信誉值;
步骤202,共识节点对信誉值进行共识;
步骤203,主节点将将本轮信誉值发生变化的节点信誉写入行为记录表中并在全网广播。
进一步的,在步骤201中,通过以下公式计算节点i的信誉值:
进一步的,步骤300,包括步骤301至步骤303:
步骤301,由系统初创节点进行共识,之后共识主节点发起信誉增长率更新请求,共识节点收到请求后,计算全网节点新的信誉增长率;
步骤302,对信誉增长率进行REPBFT共识;
步骤303,主节点将本轮信誉增长率发生变化的节点信誉增长率写入行为记录表中并广播到网络。
进一步的,在步骤301中,通过以下公式计算全网节点新的信誉增长率:
其中,Y(t)表示信誉增长率,Ri,n表示当前轮次节点i的信誉值,Ri,t表示前t轮节点i的信誉值。
进一步的,所述步骤400包括步骤401至步骤403:
步骤401,根据节点的信誉值和信誉增长率对节点的权限进行分配,确定参与共识节点集选举的权限;
步骤402,使用可验证随机函数VRF在有参与共识节点集选举权限的节点中进行随机抽样,选取出共识节点集,其中,共识节点集中按信誉值排名分为共识节点和候选共识节点;
步骤403,选取出共识节点集后,初始化当前视图,并选举出当前视图的共识主节点。
进一步的,所述步骤500包括步骤501至步骤505:
步骤501,当系统中交易的发起者发起交易时,用私钥签署交易,然后广播到整个网络;
步骤502,在节点收到交易后,如果它不是共识节点,则可以将其转发;如果是共识节点,则需要验证交易的合法性;如果合法,开始准备构建当前区块b;如果不合法,则直接丢弃且当主节点发送该交易信息时,可快速发起视图更换协议,而无需检查消息内容;
步骤503,在Δt时间后,主节点向其他共识节点广播共识准备消息;
步骤504,共识节点接收到主节点发送的准备消息后,对消息进行检验以判断主节点是否作恶或发生故障,若是,则发起视图转换请求并且将该节点标识记录到节点行为表中;否则,共识节点广播确认消息给主节点;
步骤505,当全部共识节点收到2f+1个(f为系统允许的最大失效节点数量)相同的确认消息时,就达成共识,并且将执行客户端发送的请求并回复客户端且发布区块,视图编号v+1;否则执行视图切换过程并且将该节点标识记录到节点行为表中。
进一步的,所述步骤600中节点动态退出,包括以下过程:
(1)要退出的节点需向共识主节点发送退出请求;
(2)如果当该节点退出后,共识节点集的数量少于3f+1,则进入节点动态加入阶段;否则,主节点和要退出的节点都向其他共识节点发送带有双方签名的退出确认消息。
进一步的,所述步骤600中节点动态加入,包括以下过程:
(1)主节点向候选共识节点发送共识节点更换消息;候选共识节点根据信誉值排名,排名最高的为新的共识节点;
(2)新的共识节点向主节点和共识节点发送加入请求消息;
(3)主节点和共识节点对此消息进行验证、确认后,发送确认节点加入消息给共识节点和新的共识节点。
本发明提供的一种基于区块链的节点信誉共识方法,与现有技术相比具有以下优点:
1、本发明对全网节点的可信性进行检测和评估,确保选出可信的共识节点,以保障共识网络拓扑的稳定;
2、对行为异常的共识节点采取相应的信誉值降低和保证金惩罚机制,确保了节点因惩罚代价而不会作恶;
3、实现了节点的动态加入和退出,提高了系统的可扩展性;
4、本发明优化了PBFT的共识过程,节省了节点共识过程中产生的通信开销。
附图说明
图1是本发明提供的基于区块链的节点信誉共识方法的实现流程图;
图2是本发明中步骤400的实现流程图;
图3是本发明中REPBFT共识过程的示意图;
图4是本发明中节点动态退出过程的示意图;
图5是本发明中节点动态加入过程的示意图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1为本发明实施例提供的基于区块链的节点信誉共识方法的实现流程图。如图1所示,本发明实施例提供的基于区块链的节点信誉共识方法,包括:
步骤100,获取行为记录表。
本实施例以纪元(epoch)作为大周期运行,每隔一个epoch则开始新一轮的共识节点选举。行为记录表是全网节点共同维护的节点信誉、信誉增长率及信誉参考因素的表,每个节点会创建一个本地元数据池,以缓存包括自身在内的所有节点的行为记录表。在每一epoch结束后更新。
步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值。
本步骤对节点的可信性进行评估得到每个节点的信誉值,并根据节点在共识过程的行为对节点的信誉进行动态更新,并对上一轮中作恶节点进行保证金惩罚。其中,对行为记录表中节点进行信誉值评估具体包括如下步骤:
步骤201,初始时,由系统初创节点进行共识,之后共识主节点发起信誉值更新请求,共识节点收到请求后,计算全网节点新的信誉值。
本实施例以纪元(epoch)作为大周期运行,每个纪元再划分多个轮次(round),在每一个轮次时间内,都会产生一个区块,并且将该轮节点的行为记录到行为缓存中。在一个纪元结束前,共识主节点发起信誉更新请求,共识节点收到请求后,使用本地行为缓存计算全网节点新的信誉值。
信誉值R是介于0到1之间的实数,系统初始运行时节点的初始信誉值均为M1。在本实施例中,M1为0.5。计算全网节点新的信誉值的方法包括:
(1)通过以下公式计算节点i的信誉值:
其中,δi表示保证金比率,τi表示未完成率,ψi表示作恶率,表示活动率,ρi表示事务量级因子。上述信誉值参考因素中,各因素所占权重为:在本实施例中权重的设置使得对一个节点的考量更侧重于节点自身的行为表现度,而不是其保证金比率和处理能力。
保证金比率:节点i的保证金表示为di,定义D=∑di是区块链网络中的保证金总和,则保证金比率为:保证金的设置使得节点在做出恶意行为时面临保证金被罚没的风险。此外,设置了最大保证金额度,以避免某些节点通过赚取巨额资金来主导节点提名。
得到节点i的信誉值后,可以对节点的信誉值进行层次划分:
信誉值排名为全网节点信誉值的前A%(例如为前25%),为优秀级别;
信誉值排名为全网节点信誉值的前B%(例如为前50%),为良好级别;
信誉值排名为全网节点信誉值的前C%(例如为前75%),为中等级别;
信誉值排名为全网节点信誉值的后D%(例如为后15%),为不合格级别。
参数A、B、C、D是节点等级的阙值,具体的取值与区块链系统对安全性的要求程度有关。
步骤202,共识节点对信誉值进行共识。
本步骤使用REPBFT进行共识。
步骤203,主节点将将本轮信誉值发生变化的节点信誉写入行为记录表中并在全网广播。
步骤300,根据节点的信誉值变化计算节点的信誉增长率。步骤300包括以下步骤:
步骤301,由系统初创节点进行共识,之后共识主节点发起信誉增长率更新请求,共识节点收到请求后,计算全网节点新的信誉增长率。
信誉增长率Y(t)为[0,100%],系统初始运行时节点的初始信誉增长率为50%,此后,在节点信誉值的动态变化的基础上,其信誉增长率也出现相应的变化。具体的,本步骤在一个epoch结束前,共识主节点发起信誉增长率更新请求,共识节点收到请求后,使用之前计算出的信誉值更新全网节点新的信誉增长率。
具体的,通过以下公式计算全网节点新的信誉增长率:
其中,Y(t)表示信誉增长率,Ri,n表示当前轮次节点i的信誉值,Ri,t表示前t轮节点i的信誉值。
节点的信誉增长率的等级阙值随全网节点的信誉增长率变化而动态变化。根据得到的新的信誉增长率,进行信誉增长率的层次划分:
信誉增长率为全网节点信誉增长率排名的前H%(例如为前25%),为一等级别;
信誉增长率为全网节点信誉增长率排名的前I%(例如为前50%),为二级别;
信誉增长率为全网节点信誉增长率排名的前J%(例如为前75%),为三等级别;
信誉增长率为全网节点信誉增长率排名的前K%(例如为前90%);为四等级别;
参数是节点等级的阙值,具体的取值与区块链系统对安全性的要求程度有关。
步骤302,对信誉增长率进行REPBFT共识;
步骤303,主节点将本轮信誉增长率发生变化的节点信誉增长率写入行为记录表中并广播到网络。
步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点。参照图2,步骤400包括步骤401至步骤403:
步骤401,根据节点的信誉值和信誉增长率对节点的权限进行分配,确定参与共识节点集选举的权限;其中,当节点信誉值为全网节点信誉值排名的前A%、前B%或前C%且信誉增长率为全网节点信誉增长率排名的前H%、前I%或前J%,则具有参与共识节点集选举的权限。
在本实施例中,每一epoch结束前,当前共识主节点基于先前生成的区块hash值使用PRNG(pseudorandom number generator)伪随机数生成器生成随机数s,阙值ω=0.6。全网节点共同维护的行为记录表。前所述,节点的信誉值划分为不同的层次,这里判断节点信誉值是否为全网节点信誉值排名的前25%、前50%或前75%。如前所述,节点的信誉增长率划分为不同的层次,这里判断节点的信誉增长率是否为全网节点信誉增长率排名的前25%、前50%或前75%。节点信誉值和信誉增长率所对应的权限如表1所示:
步骤402,使用可验证随机函数VRF在有参与共识节点集选举权限的节点中进行随机抽样,选取出共识节点集,其中,共识节点集中按信誉值排名分为共识节点和候选共识节点。
本步骤中,有选举权限的各节点使用可验证随机函数VRF参与共识节点集的随机抽样,其中,共识节点集中按信誉值排名分为该epoch的共识节点和候选共识节点。具体的,对于一个特定的随机数输入s以及输入者的私钥SK,VRF函数会输出一个随机数和一个证明proof,验证者可以通过输出的随机数、证明和输入这三部分验证出随机数是否是由该输入产生。
各节点根据s计算出的随机数是否小于阙值λ确定自己是否是共识节点,如果是,则广播一条连接请求,在时间内等待其余共识节点发起连接请求,各节点均可使用VRF验证函数基于该节点的公钥PK、随机数种子s、生成的随机数进行验证。各共识节点连接完成后,基于节点标识进行信誉值排名。在排名前85%的节点为共识节点,排名后15%的节点为候选共识节点,候选共识节点将在共识节点发生故障或节点退出时进行快速替换。
步骤403,选取出共识节点集后,初始化当前视图v,并选举出当前视图的共识主节点p。
在本步骤中,初始化视图v=0,根据以下公式选举出当前视图的共识主节点p:
其中,h表示当前区块高度,f表示系统允许的最大失效节点数量。
步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程。步骤500包括步骤501至步骤505:
步骤501,当系统中交易的发起者发起交易时,用私钥签署交易,然后广播到整个网络。
具体的,参照图3,在本实施例中,以纪元(epoch)作为大周期运行,每个epoch再划分多个轮次(round),在每一个round时间内,都会产生一个区块,并且视图编号v+1,主节点也随之更换。
当系统中交易的发起者发起交易时,用私钥签署交易,然后广播到整个网络,消息格式为:
<<CRequest,t,d,m(d),m(d),c>,Sigc>
其中,t为时间戳,d为交易数据,m(d)为交易数据的摘要,c为客户端标识,Sigc为客户端的签名。
步骤502,在节点收到交易后,如果它不是共识节点,则可以将其转发;如果是共识节点,则需要验证交易的合法性;如果合法,开始准备构建当前区块b;如果不合法,则直接丢弃且当主节点发送该交易信息时,可快速发起视图更换协议,而无需检查消息内容。
步骤503,在Δt时间后,主节点p向其他共识节点广播共识准备消息。
具体的,本步骤中,在Δt时间后(Δt是系统内设的等待回复时间),主节点处理Request消息,确定正在处理的消息是否合法,如果合法,主节点p向其他共识节点广播共识准备消息,消息格式为:
<<Prepare,h,v,t,d,m(d),sn>,Sigp>
其中,t为时间戳,h是当前区块高度+1,v为视图编号,sn为区块序列号,Sigp为主节点p的签名;
步骤504,共识节点接收到主节点发送的准备消息后,对消息进行检验以判断主节点是否作恶或发生故障,若是,则发起视图转换请求并且将该节点标识记录到节点行为表中;否则,共识节点广播确认消息给主节点。
具体的,消息格式为:
<<Commit,v,t,m(d),sn,valid/invalid>,Sigi>
其中,valid/invalid表示了节点i对此消息是否有效的标识,Sigi为主节点p的签名;
节点收到准备消息后将从以下就几个方面进行检验:
(1)附带的签名正确性;
(2)消息摘要的正确性;
(3)视图v的正确性;
(4)区块高度确实是本地数据库中最新区块高度+1;
(5)节点未收到具有相同的交易数据d和时间戳t,但序号不同的交易。
步骤505,当全部共识节点收到2f+1个(f为系统允许的最大失效节点数量)相同的确认消息时,就达成共识,并且将执行客户端发送的请求并回复客户端且发布区块,视图编号v+1;否则执行视图切换过程并且将该节点标识记录到节点行为表中。
具体的,回复消息格式为:
<<Reply,c,t,m(d),valid/invalid,n>,Sigi>
其中,n为共识节点数量,其余符号意义如前所述。
步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。
参照图4,节点动态退出,包括以下过程:
(1)要退出的节点需向共识主节点发送退出请求;
具体的,要退出的节点需向共识主节点发送退出请求,请求格式为:
<<ERequest,h>,Sigi>
其中,h为区块高度+1,主要是声明节点退出的时间(即在区块高度为h+1时退出)。
(2)如果当该节点退出后,共识节点集的数量少于3f+1,则进入节点动态加入阶段;否则,主节点和要退出的节点都向其他共识节点发送带有双方签名的退出确认消息。
具体的,如果当该节点退出后,共识节点集的数量少于3f+1,则进入节点动态加入阶段。否则,主节点和要退出的节点都向其他共识节点发送带有双方签名的退出确认消息。确认消息格式如下:
<<Commit,i,h>,Sigi/Sigp>
其中,i为要退出的节点i的编号,此编号唯一。
参照图5,节点动态加入,包括以下过程:
(1)主节点向候选共识节点发送共识节点更换消息;候选共识节点根据信誉值排名,排名最高的为新的共识节点.
具体的,主节点向候选共识节点发送共识节点更换消息;候选共识节点根据信誉值排名,排名最高的为新的共识节点,更换消息格式如下:
<<Change,i,h>,Sigp>
如前所述,i为要退出的节点i的编号,Sigp为主节点的签名。
(2)新的共识节点向主节点和共识节点发送加入请求消息。
具体的,新的共识节点向主节点和共识节点发送加入请求消息,请求消息格式为;
<<URequest,i,R,h>,Sigi>
其中,R为要加入节点i的信誉值,共识节点可查看候选共识节点信誉并验证此请求。
(3)主节点和共识节点对此消息进行验证、确认后,发送确认节点加入消息给共识节点和新的共识节点。
具体的,主节点和共识节点对此消息进行验证、确认后,发送确认节点加入消息给共识节点和新的共识节点。确认消息格式为:
<<Commit,i,h>,Sigi>
消息中的符号意义如前所述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种基于区块链的节点信誉共识方法,其特征在于,包括以下过程:
步骤100,获取行为记录表,其中,所述行为记录表记录全网节点共同维护的节点信誉、信誉增长率及信誉参考因素;
步骤200,对行为记录表中节点进行信誉值评估,得到每个节点的信誉值,包括步骤201至步骤203:
步骤201,由系统初创节点进行共识,之后共识主节点发起信誉值更新请求,共识节点收到请求后,计算全网节点新的信誉值;
步骤202,共识节点对信誉值进行共识;
步骤203,主节点将本轮信誉值发生变化的节点信誉写入行为记录表中并在全网广播;
步骤300,根据节点的信誉值变化计算节点的信誉增长率,包括步骤301至步骤303:
步骤301,由系统初创节点进行共识,之后共识主节点发起信誉增长率更新请求,共识节点收到请求后,计算全网节点新的信誉增长率;
步骤302,对信誉增长率进行REPBFT共识;
步骤303,主节点将本轮信誉增长率发生变化的节点信誉增长率写入行为记录表中并广播到网络;
步骤400,根据节点的信誉值和信誉增长率进行权限管理,具有选举权限的节点可参与共识节点集的随机动态选举,并根据主节点选举算法选举出共识主节点;
步骤500,共识主节点接收客户端发送的请求,之后将请求和签名一起广播给共识节点,开始共识过程,包括步骤501至步骤505:
步骤501,当系统中交易的发起者发起交易时,用私钥签署交易,然后广播到整个网络;
步骤502,在节点收到交易后,如果它不是共识节点,则可以将其转发;如果是共识节点,则需要验证交易的合法性;如果合法,开始准备构建当前区块b;如果不合法,则直接丢弃且当主节点发送该交易消息时,可快速发起视图更换协议,而无需检查消息内容;
步骤503,在Δt时间后,主节点向其他共识节点广播共识准备消息;
步骤504,共识节点接收到主节点发送的准备消息后,对消息进行检验以判断主节点是否作恶或发生故障,若是,则发起视图转换请求并且将该节点标识记录到节点行为表中;否则,共识节点广播确认消息给主节点;
步骤505,当全部共识节点收到2f+1个相同的确认消息时,就达成共识,并且将执行客户端发送的请求并回复客户端且发布区块,视图编号v+1;否则执行视图切换过程并且将该节点标识记录到节点行为表中;其中,f为系统允许的最大失效节点数量;
步骤600,要退出的节点需向共识主节点发送退出请求,进行节点动态退出;或者,待加入的节点也需向所有共识节点以及主节点都发送加入请求消息,进行节点动态加入。
4.根据权利要求1所述的基于区块链的节点信誉共识方法,其特征在于,所述步骤400包括步骤401至步骤403:
步骤401,根据节点的信誉值和信誉增长率对节点的权限进行分配,确定参与共识节点集选举的权限;
步骤402,使用可验证随机函数VRF在有参与共识节点集选举权限的节点中进行随机抽样,选取出共识节点集,其中,共识节点集中按信誉值排名分为共识节点和候选共识节点;
步骤403,选取出共识节点集后,初始化当前视图,并选举出当前视图的共识主节点。
5.根据权利要求1所述的基于区块链的节点信誉共识方法,其特征在于,所述步骤600中节点动态退出,包括以下过程:
(1)要退出的节点需向共识主节点发送退出请求;
(2)如果当该节点退出后,共识节点集的数量少于3f+1,则进入节点动态加入阶段;否则,主节点和要退出的节点都向其他共识节点发送带有双方签名的退出确认消息。
6.根据权利要求1或5所述的基于区块链的节点信誉共识方法,其特征在于,所述步骤600中节点动态加入,包括以下过程:
(1)主节点向候选共识节点发送共识节点更换消息;候选共识节点根据信誉值排名,排名最高的为新的共识节点;
(2)新的共识节点向主节点和共识节点发送加入请求消息;
(3)主节点和共识节点对此消息进行验证、确认后,发送确认节点加入消息给共识节点和新的共识节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854966.7A CN112039964B (zh) | 2020-08-24 | 2020-08-24 | 一种基于区块链的节点信誉共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854966.7A CN112039964B (zh) | 2020-08-24 | 2020-08-24 | 一种基于区块链的节点信誉共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039964A CN112039964A (zh) | 2020-12-04 |
CN112039964B true CN112039964B (zh) | 2022-01-04 |
Family
ID=73580605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010854966.7A Active CN112039964B (zh) | 2020-08-24 | 2020-08-24 | 一种基于区块链的节点信誉共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112039964B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112600682B (zh) * | 2020-12-09 | 2022-01-18 | 四川大学 | 一种基于委托权益证明算法的区块链共识方法和装置 |
CN112600917B (zh) * | 2020-12-11 | 2022-05-03 | 重庆邮电大学 | 一种基于信誉的区块链工作证明方法 |
CN112417056B (zh) * | 2020-12-18 | 2023-10-24 | 昆明理工大学 | 一种基于区块链数据共享的信誉值动态分片两层共识方法 |
CN112822267B (zh) * | 2021-01-05 | 2022-08-26 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数据处理方法和装置 |
CN113301118B (zh) * | 2021-04-22 | 2022-12-13 | 远光软件股份有限公司 | 区块链共识节点的确定方法、共识方法、系统及设备 |
CN113222690A (zh) * | 2021-04-27 | 2021-08-06 | 铭数科技(青岛)有限公司 | 一种应用于区域能源互联网的区块链共识方法 |
CN113364592B (zh) * | 2021-05-06 | 2024-03-29 | 陈冠华 | 一种基于信誉值联盟链的工程系统文件管理系统及方法 |
CN113364871B (zh) * | 2021-06-07 | 2022-05-17 | 杭州溪塔科技有限公司 | 一种基于智能合约的节点选举方法、装置及电子设备 |
CN113256149A (zh) * | 2021-06-11 | 2021-08-13 | 武汉龙津科技有限公司 | 区块链节点信誉调整方法、装置、电子设备及存储介质 |
CN113419823B (zh) * | 2021-06-22 | 2023-07-18 | 东北大学 | 一种适用于高并发事务的联盟链系统及其设计方法 |
CN113704813A (zh) * | 2021-07-20 | 2021-11-26 | 武汉理工大学 | 海工装备二级标识数据存储方法及系统、验证方法及系统 |
CN113507528B (zh) * | 2021-07-23 | 2022-09-23 | 联想(北京)有限公司 | 数据处理方法及电子设备 |
CN114172680B (zh) * | 2021-08-16 | 2023-01-20 | 北京天德科技有限公司 | 一种基于节点信誉机制的区块链系统的运行方法 |
CN113676541B (zh) * | 2021-08-23 | 2023-06-27 | 南昌航空大学 | 一种改进的pbft共识方法 |
CN113807850B (zh) * | 2021-09-30 | 2023-03-31 | 北京优品三悦科技发展有限公司 | 一种共识节点的状况评估方法、装置及电子设备 |
CN114095209A (zh) * | 2021-10-27 | 2022-02-25 | 中通服中睿科技有限公司 | 一种基于权重激励主节点选举的联盟链共识方法及系统 |
CN114003584B (zh) * | 2021-11-02 | 2024-02-23 | 贵州大学 | 一种基于演化博弈的拜占庭容错共识方法 |
CN114143104B (zh) * | 2021-12-06 | 2022-10-14 | 昆明理工大学 | 一种基于动态信任模型的DPoS共识机制节点信誉值度量方法 |
CN114363352B (zh) * | 2022-01-05 | 2023-08-15 | 青岛理工大学 | 基于区块链的物联网系统跨链交互方法 |
CN114650302B (zh) * | 2022-03-11 | 2024-03-12 | 南京邮电大学 | 基于区块链的物联网边缘设备可信管理方法 |
CN114938292B (zh) * | 2022-04-26 | 2023-05-23 | 重庆邮电大学 | 一种基于节点可信度的多层次优化pbft共识方法 |
CN115208578B (zh) * | 2022-07-07 | 2024-06-25 | 西安电子科技大学 | 一种基于区块链的无人机集群信息一致性共享方法 |
CN115374216B (zh) * | 2022-08-10 | 2024-04-02 | 深圳市沃享科技有限公司 | 共识方案的构建方法、装置、终端设备及计算机介质 |
CN115633035B (zh) * | 2022-12-07 | 2023-03-17 | 长春大学 | 一种基于改进的pbft物联网区块链共识算法 |
CN117176321B (zh) * | 2023-08-23 | 2024-06-07 | 南京理工大学 | 一种基于区块链技术的分布式信誉管理方法 |
CN117155947B (zh) * | 2023-08-30 | 2024-04-09 | 国网山东省电力公司德州供电公司 | 一种数据资源高可靠实时共享方法及系统 |
CN117527834B (zh) * | 2024-01-04 | 2024-03-26 | 成都理工大学 | 一种基于信誉评分机制的改进pbft共识方法 |
CN117527266B (zh) * | 2024-01-05 | 2024-05-17 | 杭州趣链科技有限公司 | 异步网络共识方法、装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN111355810A (zh) * | 2020-03-17 | 2020-06-30 | 重庆邮电大学 | 一种基于信誉与投票机制的改进pbft共识方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241114B (zh) * | 2020-01-07 | 2022-05-24 | 中国科学院信息工程研究所 | 一种结合交易与共识的智能服务交易区块链信誉管理方法和系统 |
-
2020
- 2020-08-24 CN CN202010854966.7A patent/CN112039964B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN110727731A (zh) * | 2019-09-05 | 2020-01-24 | 阿里巴巴集团控股有限公司 | 区块链网络中加入节点的方法和区块链系统 |
CN111355810A (zh) * | 2020-03-17 | 2020-06-30 | 重庆邮电大学 | 一种基于信誉与投票机制的改进pbft共识方法 |
Non-Patent Citations (1)
Title |
---|
"基于树形拓扑网络的实用拜占庭容错共识算法";包振山等;《应用科学学报》;20200130;正文第34-49页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112039964A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039964B (zh) | 一种基于区块链的节点信誉共识方法 | |
CN110784346B (zh) | 一种基于信誉值的pbft共识系统及方法 | |
CN109447795B (zh) | 一种支持快速达成最终确认性的拜占庭共识方法 | |
CN111010278B (zh) | 一种基于DPoS高容错分层共识方法 | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
CN111082943B (zh) | 一种高效的区块链共识方法 | |
CN110602217B (zh) | 基于区块链的联盟管理方法、装置、设备及存储介质 | |
CN113141414B (zh) | 一种cnfs协议中区块链节点的分组多链异步共识方法 | |
CN113014635A (zh) | 区块链系统的节点类型划分方法、装置及区块链系统 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链系统共识方法 | |
CN115065468B (zh) | 一种基于分组信誉值的pbft共识优化方法 | |
CN111988137A (zh) | 一种基于门限签名和公平奖励的DPoS共识方法及其系统 | |
CN113422805B (zh) | 一种基于可验证随机函数的分片共识方法 | |
CN113570357A (zh) | 一种动态分层的高效pbft算法 | |
CN113645190A (zh) | 一种考虑节点信誉的拜占庭容错共识方法及区块链 | |
CN115499129A (zh) | 一种多模信任跨链共识方法、系统、介质、设备及终端 | |
CN113132401A (zh) | 基于区块链的数据处理方法和装置 | |
CN115022326B (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
Corman et al. | A Secure Group Agreement (SGA) protocol for peer-to-peer applications | |
CN114422146A (zh) | 一种区块链主节点匿名排序方法 | |
CN114172680A (zh) | 一种基于节点信誉机制的区块链系统及其运行方法 | |
CN116260826A (zh) | 一种供应链溯源中拜占庭容错共识方法及系统 | |
Nezhadsistani et al. | Blockchain consensus algorithms: Past, present, and future trends | |
An et al. | Research on Byzantine Fault Tolerant algorithm based on Node Weights | |
Zhang et al. | Secure decentralized learning with blockchain |
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 |