CN111106942A - 一种基于ap-pbft算法的区块链信用机制 - Google Patents
一种基于ap-pbft算法的区块链信用机制 Download PDFInfo
- Publication number
- CN111106942A CN111106942A CN201911277645.9A CN201911277645A CN111106942A CN 111106942 A CN111106942 A CN 111106942A CN 201911277645 A CN201911277645 A CN 201911277645A CN 111106942 A CN111106942 A CN 111106942A
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- message
- consensus
- network
- 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.)
- Granted
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
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于AP‑PBFT算法的区块链信用机制,包括如下步骤,步骤S1、在区块链网络中部署选取节点的智能合约,符合智能合约参选规则的节点成为候选节点,将所有候选节点进行等级制排名,根据排名选出若干个节点加入区块链网络进行分布式记账;步骤S2、成为记账节点后,记账节点之间通过PBFT共识算法产生区块,根据记账节点对网络的贡献轮流成为视图中的主节点,主节点将需要共识的内容打包封装并在网络中广播,其他副本节点收到广播内容后进行共识,经历了REQUEST,PRE‑PREPARE、PREPARE和COMMIT阶段后,网络中达成共识的节点数目大于2/3,产生新的区块。步骤S3、对主节点进行分析,并予以奖惩。该机制大大减少拜占庭问题出现的概率,增加出块效率,并提升了安全性,同时,利用超时重发机制,增加消息的送达率,提高网络共识效率。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种基于AP-PBFT算法的区块链信用机制。
背景技术
近些年,区块链技术在许多领域都是研究的热点,尤其是互联网金融领域更是将区块链技术广泛深刻地应用。一切涉及到中心化账本技术的领域都有可能存在区块链的应用前景,可以说区块链是一种既有效率又值得信任的分布式账本技术。去中心化、不可篡改以及具有较高的安全性是区块链的显著特点。
区块链作为一本记录所有交易的分布式公开账簿,区块链网络中的每一个参与者都把其看作是一本最具权威的记录。既然作为公开账本,那么其上的所有历史数据都不可被篡改,只允许在其后继续添加账本数据,并且每个区块链网络中的节点都有权利向账本中继续写入数据。共识机制是用来选出写入账本数据的一种方法,这一机制确保了所有参与节点的平等,并按某种秩序达成一致意见。拜占庭将军问题是区块链各种共识算法必须要考虑的一个问题。简述该问题:一群将军想要进攻防御能力极大的拜占庭,想要攻下的必要条件是所有将军必须达成共识,行动一致,并且还要保证行动的正确性。
拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低至多项式级,使得拜占庭容错算法在实际应用中变得具有可行性。PBFT是一种状态机副本复制算法,每个状态机都保存了服务的状态,同时实现了服务的操作。用R表示所有副本所组成的集合,0至|R|-1中的整数表示每一个副本。所有的副本在一个被称为视图的轮换过程中运作。在每一个视图中,一个副本作为主节点,其他副本作为备份。
发明内容
本发明所要解决的技术问题是克服现有技术的不足,提供一种基于AP-PBFT算法的区块链信用机制,可以让PBFT算法网络节点动态化,并对作恶节点设置一套惩戒机制。
本发明提供一种基于AP-PBFT算法的区块链信用机制,包括如下步骤,
步骤S1、在区块链网络中部署选取节点的智能合约,符合智能合约参选规则的节点成为候选节点,将所有候选节点进行等级制排名,根据排名选出若干个节点加入区块链网络进行分布式记账;
步骤S2、成为记账节点后,记账节点之间通过PBFT共识算法产生区块,根据记账节点对网络的贡献轮流成为视图中的主节点,主节点将需要共识的内容打包封装并在网络中广播,其他副本节点收到广播内容后进行共识,经历了REQUEST,PRE-PREPARE、PREPARE和COMMIT阶段后,网络中达成共识的节点数目大于2/3,产生新的区块。
步骤S3、对主节点进行分析,并予以奖惩。
作为本发明的进一步技术方案,步骤S1中,智能合约的节点通过率设置为大于2/3,智能合约采用信用积分制,将所有被选举节点的初始积分设为0,当被选举节点进行第一次共识时,不作为节点或恶意节点的积分会被降低,积极参与共识的节点,积分会增加。预设一个时间间隔TA,当TA时间到达时,根据积分情况将所有被选举的节点进行排名,积分较低的节点会被重新选举出的节点替换,被替换的节点将被收回记账的权利。
进一步的,步骤S2中,客户端对需要共识的内容进行签名,并将共识的内容发送至区块链网络中,区块链网络中任意一个节点接收所需共识的内容,并判断该次交易是否满足转发条件,若满足,则将该交易缓存在共识队列,在新一轮共识之前,初始化区块链系统,从共识队列中取出优先级最高的交易,从而实现动态选举;对被选举出的节点用数字进行编号,节点集合为G{0,1,2,3,4,……},G中最大能容忍的恶意节点数为n,根据PBFT机制集合大小应大于3n+1;则令|G|=3n+1。N为集合G中的节点数;每次重新选举后,节点会进行随机重新编号;每次共识过程前选取出议长节点p,则有p=(h+v)mod|R|;
其中,h为该区块的高度,v为视图编号,议长节点p负责整个共识的过程。
更进一步的,初始化区块链系统为创建共识对象,共识对象包括将要生成的区块链的高度、时间戳、区块链的哈希头部和打包的交易集合。
更进一步的,转发条件为判断该次交易的签名是否正确,检查该节点是否在之前有收到过这笔交易的输入,并确保该交易的发起客户有足够的余额支付此次交易产生的费用。
进一步的,步骤S2中,打包封装的消息格式为<Message,v,blockHeight,TXs,nounce,hash(TXs),>σ;其中,Message为该消息格式的消息记号,v为视图编号,blockHeight为区块高度,TXs为参与共识的交易集合,nounce为交易集合的随机数,nounce随着交易次数的增长而增长。
进一步的,主节点完成封装后进行签名,向全网进行广播,共识网络中每个副节点接受到消息记号后需要先进行判断,首先,判断blockHeight即区块链高度是否在规定的高度范围内;其次,判断该消息记录的签名是否正确,并且判断该消息视图与该副本节点的视图是否是同一个视图,最后,同样也需要判断该副本节点在此之前是否没有收到过该消息记号;当副本节点判断消息符合标准时,该节点进入PREPARE阶段,在该阶段中,会封装PREPARE消息并进行签名<Prepare,v,blockHeight,hash(TXs),>σ;其中,Prepare为prepare阶段的消息记号;v为视图编号,blockHeigh为区块高度,hash(TXs)为交易集合的哈希值,σ为该消息的签名;封装消息之后Prepare消息记号会向共识网络进行信息广播;进入prepare阶段副本节点同样需要先对该消息进行判断:首先对blockHeight进行判断,判断区块链高度是否在规定的高度范围之内;其次,确认消息签名的正确性,该消息视图是否与副本所在视图为同一视图;最后,确认该副本节点在此之前没有接受过此Prepare消息记号;满足上述的三个条件后,进入commit阶段,网络中的副本节点会发出COMMIT消息;COMMIT的消息格式为:<COMMIT,v,blockHeight,hash(TXs)>σ;其中,COMMIT为该消息阶段的COMMIT阶段标志;v为视图编号,blockHeight为区块链区块高度,hash(TXs)为交易集合的hash值,σ为该消息的签名;副本节点在收到该COMMIT消息之后仍需进行判断;首先,判断该消息的区块高度blockHeight是否在规定的区块高度范围内;其次,判断消息签名是否正确,该消息的消息视图是否与该副本节点的视图一致;最后,判断,该副本节点在此之前没有收到过COMMIT消息;在符合上述的三个条件后,通过判断条件的COMMIT消息加入COMMIT消息队列,当消息队列中的通过判断的COMMIT消息数量达到2f+1个时,该COMMIT消息最终与共识网络达成一致。
进一步的,步骤S3中,若主节点达成共识,则对达成共识的主节点进行奖励;若主节点不作为甚至作恶时,则不能产生区块,对不作为甚至作恶节点进行废除。
本发明的有益效果为:
1.该区块链信用机制使投票过程更加透明,从共识网络中取出记账节点,通过AP-PBFT算法进行共识,采用积分机制选取节点,可以降低不作为节点和作恶节点的积分,收回其记账权力,并给予惩罚。
2.网络中的共识节点进行共识需经历REQUEST,PRE-PREPARE、PREPARE和COMMIT阶段,从而大大减少拜占庭问题出现的概率,增加出块效率,并提升了安全性。
3.在共识网络中利用超时重发机制,增加消息的送达率,提高网络共识效率。
附图说明
图1为本发明的节点选举过程示意图;
图2为本发明的主节点进行全网广播示意图;
图3为本发明的PBFT视图切换过程示意图。
图4为本发明的AP-PBFT视图切换过程示意图。
具体实施方式
本实施例提供一种基于AP-PBFT算法的区块链信用机制,包括如下步骤,
步骤S1、在区块链网络中部署选取节点的智能合约,符合智能合约参选规则的节点成为候选节点,将所有候选节点进行等级制排名,根据排名选出若干个节点加入区块链网络进行分布式记账;
步骤S2、成为记账节点后,记账节点之间通过PBFT共识算法产生区块,根据记账节点对网络的贡献轮流成为视图中的主节点,主节点将需要共识的内容打包封装并在网络中广播,其他副本节点收到广播内容后进行共识,经历了REQUEST,PRE-PREPARE、PREPARE和COMMIT阶段后,网络中达成共识的节点数目大于2/3,产生新的区块。
步骤S3、对主节点进行分析,并予以奖惩。
该机制的实现流程分为三个步骤:记账节点选举、共识流程和视图切换流程。
记账节点选举的过程如下:
首先需要在区块链网络中部署选取节点的智能合约,该智能合约一旦编码到程序中也具有不可篡改性。网络中的节点参选候选节点,在智能合约中设定好参选规则,符合条件后成为候选节点。考虑到拜占庭节点的存在,因此节点的通过率设置为大于2/3,避免拜占庭节点作恶。
在区块链网络中,任何节点都可以参与选举。采用信用积分制,所有被选举的节点初始积分为0。当被选举的节点进行第一次共识时,不作为节点或者是恶意节点的积分会被降低,对网络中积极参与共识的节点,积分会增加。定义一个时间间隔TA,当TA时间到达时,所有被选举的节点的积分情况会进行排名,积分较低的节点会被重新选举出的节点替换。被替换的节点将被收回记账的权利。
引入惩罚机制,可以大大提升区块链网络的安全性,因为节点作恶时需要考虑到后续的结果。如图1,展示了节点选举的过程,节点通过率设置为大于2/3,此轮通过节点数为5个。图1中,每个节点中横线以上的数字表示节点编号,横线以下的数字表示该节点的积分。
共识流程的具体方法为:
客户首先要对需要共识的内容进行签名,并将共识的内容发送至区块链网络中。区块链网络中的任意一个节点收到需要共识的内容后,不会立即将需要共识的内容转发给其他节点,而是需要对共识内容进行判断,判断此次的交易的所有签名是否正确,有最基础的安全保障;检查该节点是否在之前没有收到过这笔交易的输入;确保该交易的发起客户有足够的余额去支付此次交易产生的费用。只有同时满足上述三个条件,该节点才会将这次交易转发给其他的节点。
满足上述的三个条件后,该交易进入缓存共识队列。在进行新一轮共识之前,首先需要对区块链系统进行初始化,包括以下步骤:创建共识对象,包括将要生成的区块链的高度,时间戳,区块链的哈希头部,以及打包的交易集合。
缓存队列中的所有交易存在优先级,每次从队列中取出优先级最高的交易,从而实现动态选举。
被选举出来的节点用数字进行编号1,2,3,4,……,被选举出来的代表节点集合G{0,1,2,3,4,……},G中最大能容忍的恶意节点数为n,根据PBFT机制集合大小应大于3n+1。一般令|G|=3n+1。N表示集合G中的节点数。每次重新选举后,节点会进行随机重新编号。每次共识过程前选取出议长节点p,满足p=(h+v)mod|R|
h表示该区块的高度,v表示视图编号。议长节点p负责整个共识的过程。
节点封装签名的消息格式通常定义为<Message,v,blockHeight,TXs,nounce,hash(TXs),>σ。其中Message表示此消息格式的消息记号,v表示视图编号,blockHeight表示区块高度,TXs是参与共识的交易集合,nounce表示交易集合的随机数。nounce随着交易次数的增长而增长。
主节点将完成上述格式封装后,进行签名,并向全网进行广播。网络中的每个副本节点在接受到消息记号后同样也需要先进行判断,只有满足下述条件的消息记号才会被副本节点所接受:首先需要判断blockHeight即区块链高度是否在规定的高度范围内;其次,判断该消息记录的签名是否正确,并且判断该消息视图与该副本节点的视图是否是同一个视图。最后,同样也需要判断该副本节点在此之前是否没有收到过该消息记号。主节点向副节点广播过程如图2所示。
当副本节点判断消息记号符合标准时,该节点进入PREPARE阶段。在该阶段中,会封装PREPARE消息并进行签名<Prepare,v,blockHeight,hash(TXs),>σ。其中Prepare表示prepare阶段的消息记号。v表示视图编号,blockHeight表示区块高度,hash(TXs)表示交易集合的哈希值,σ是该消息的签名。封装消息之后Prepare消息记号会向共识网络进行信息广播。进入prepare阶段副本节点同样需要先对该消息进行判断:首先对blockHeight进行判断,判断区块链高度是否在规定的高度范围之内;其次,确认消息签名的正确性,该消息视图是否与副本所在视图为同一视图;最后,确认该副本节点在此之前没有接受过此Prepare消息记号。
满足上述的三个条件后,进入commit阶段,网络中的副本节点会发出COMMIT消息。COMMIT的消息格式为:<COMMIT,v,blockHeight,hash(TXs)>σ。其中COMMIT表示该消息阶段的COMMIT阶段标志。v表示视图编号,blockHeight表示区块链区块高度,hash(TXs)表示交易集合的hash值,σ是该消息的签名。副本节点在收到该COMMIT消息之后仍需进行判断。首先,判断该消息的区块高度blockHeight是否在规定的区块高度范围内;其次,判断消息签名是否正确,该消息的消息视图是否与该副本节点的视图一致;最后,判断,该副本节点在此之前没有收到过COMMIT消息。
在符合上述的三个条件后,通过判断条件的COMMIT消息加入COMMIT消息队列,当消息队列中的通过判断的COMMIT消息数量达到2f+1个时,该COMMIT消息最终与共识网络达成一致。
完成上述的Message,Prepare,Commit阶段后,此次共识过程结束。如果在此次共识过程结束后,主节点未在规定时间内完成共识流程,则可认为共识节点不作为甚至作恶,会进行视图切换,进而主节点切换,最终副本节点进入下一轮共识。
视图切换流程的具体过程如下:
视图切换保证了区块链网络中主节点失效的情况下,仍然保证了区块链系统正常运作,确保了系统的活性。当主节点在规定的时间内没有响应,共识网络就会进行视图切换,避免让副本节点一直无限的等待下去。
如图3所示,视图切换过程分为五步,:
1.Leader:从区块链网络中的所有节点中选取了一个主节点,新的区块由主节点负责产生;
2.Pre-prepare:在pre-prepare阶段中,每个节点都会把客户端发来的交易进行全网广播。主节点0将新的交易进行排序后存入列表,并进行全网广播,如上图所示扩散到节点1,节点2以及节点3;
3.Prepare:每个节点在收到交易列表后,会根据排序先对这些交易进行模拟。在所有交易执行完成后,基于交易结果会计算新的区块的哈希摘要,随后进行全网广播。如上图所示,图中,节点1向节点0,节点2,节点3进行广播,节点2向节点0,节点1,节点3进行广播,以此类推;
4.Commit:如果一个节点收到2f个其他节点发来的摘要都与自己的相等,这个节点就会像全网进行广播,发出一条commit消息;
5.Reply:如果一个节点收到2f+1条commit消息,即可提交新区块。并且,这个节点交易到本地的区块链和状态数据库也一并提交。
在AP-PBFT区块链算法中,使用计时器的超时机制触发视图变更事件。在引用超时机制的区块链网络中,主节点失效后,系统仍然保证活性。一旦超时,视图变更将被及时触发。在副本节点收到请求时,会检查超时计时器是否在运行,如果计时器不在运行,由副本节点激发计时器运行。如果计时器超时,将会把视图变更的消息进行全网广播。
新的VIEW-CHANGE消息格式为<VIEW-CHANGE,v,blockHeight,hash(TXs),TXs>σ。如图4所示,以下围绕PBFT的视图切换流程进行分步阐述:
1.如果网络中的多数节点处于不活跃的状态,则进入下一轮共识;
2.副本节点创建VIEW-CHANGE消息,并将在共识网络中广播;
3.副本网络收到VIEW-CHANGE消息后,会首先判断该消息的签名是否正确,然后判断v的大小,是否比副本节点目前的编号大,如果比目前的编号大则说明在此之前接受过该消息,
4.如果view-change中有2f+1个VIEW-CHANGE消息的时候,区块链网络会创建v+1作为该视图的新编号;
5.区块链网络中的副本节点收到新的视图编号同样也会先进行判断,判断v+1是否比该副本目前的编号大1。
以上显示和描述了本发明的基本原理、主要特征和优点。本领域的技术人员应该了解,本发明不受上述具体实施例的限制,上述具体实施例和说明书中的描述只是为了进一步说明本发明的原理,在不脱离本发明精神范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由权利要求书及其等效物界定。
Claims (8)
1.一种基于AP-PBFT算法的区块链信用机制,其特征在于,包括如下步骤,
步骤S1、在区块链网络中部署选取节点的智能合约,符合智能合约参选规则的节点成为候选节点,将所有候选节点进行等级制排名,根据排名选出若干个节点加入区块链网络进行分布式记账;
步骤S2、成为记账节点后,记账节点之间通过PBFT共识算法产生区块,根据记账节点对网络的贡献轮流成为视图中的主节点,主节点将需要共识的内容打包封装并在网络中广播,其他副本节点收到广播内容后进行共识,经历了REQUEST,PRE-PREPARE、PREPARE和COMMIT阶段后,网络中达成共识的节点数目大于2/3,产生新的区块。
步骤S3、对主节点进行分析,并予以奖惩。
2.根据权利要求1所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述步骤S1中,智能合约的节点通过率设置为大于2/3,智能合约采用信用积分制,将所有被选举节点的初始积分设为0,当被选举节点进行第一次共识时,不作为节点或恶意节点的积分会被降低,积极参与共识的节点,积分会增加。预设一个时间间隔TA,当TA时间到达时,根据积分情况将所有被选举的节点进行排名,积分较低的节点会被重新选举出的节点替换,被替换的节点将被收回记账的权利。
3.根据权利要求1所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述步骤S2中,客户端对需要共识的内容进行签名,并将共识的内容发送至区块链网络中,区块链网络中任意一个节点接收所需共识的内容,并判断该次交易是否满足转发条件,若满足,则将该交易缓存在共识队列,在新一轮共识之前,初始化区块链系统,从共识队列中取出优先级最高的交易,从而实现动态选举;对被选举出的节点用数字进行编号,节点集合为G{0,1,2,3,4,……},G中最大能容忍的恶意节点数为n,根据PBFT机制集合大小应大于3n+1;则令|G|=3n+1。N为集合G中的节点数;每次重新选举后,节点会进行随机重新编号;每次共识过程前选取出议长节点p,则有p=(h+v)mod|R|;
其中,h为该区块的高度,v为视图编号,议长节点p负责整个共识的过程。
4.根据权利要求3所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述初始化区块链系统为创建共识对象,共识对象包括将要生成的区块链的高度、时间戳、区块链的哈希头部和打包的交易集合。
5.根据权利要求3所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述转发条件为判断该次交易的签名是否正确,检查该节点是否在之前有收到过这笔交易的输入,并确保该交易的发起客户有足够的余额支付此次交易产生的费用。
6.根据权利要求1所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述步骤S2中,打包封装的消息格式为<Message,v,blockHeight,TXs,nounce,hash(TXs),>σ;其中,Message为该消息格式的消息记号,v为视图编号,blockHeight为区块高度,TXs为参与共识的交易集合,nounce为交易集合的随机数,nounce随着交易次数的增长而增长。
7.根据权利要求1所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,主节点完成封装后进行签名,向全网进行广播,共识网络中每个副节点接受到消息记号后需要先进行判断,首先,判断blockHeight即区块链高度是否在规定的高度范围内;其次,判断该消息记录的签名是否正确,并且判断该消息视图与该副本节点的视图是否是同一个视图,最后,同样也需要判断该副本节点在此之前是否没有收到过该消息记号;当副本节点判断消息符合标准时,该节点进入PREPARE阶段,在该阶段中,会封装PREPARE消息并进行签名<Prepare,v,blockHeight,hash(TXs),>σ;其中,Prepare为prepare阶段的消息记号;v为视图编号,blockHeigh为区块高度,hash(TXs)为交易集合的哈希值,σ为该消息的签名;封装消息之后Prepare消息记号会向共识网络进行信息广播;进入prepare阶段副本节点同样需要先对该消息进行判断:首先对blockHeight进行判断,判断区块链高度是否在规定的高度范围之内;其次,确认消息签名的正确性,该消息视图是否与副本所在视图为同一视图;最后,确认该副本节点在此之前没有接受过此Prepare消息记号;满足上述的三个条件后,进入commit阶段,网络中的副本节点会发出COMMIT消息;COMMIT的消息格式为:<COMMIT,v,blockHeight,hash(TXs)>σ;其中,COMMIT为该消息阶段的COMMIT阶段标志;v为视图编号,blockHeight为区块链区块高度,hash(TXs)为交易集合的hash值,σ为该消息的签名;副本节点在收到该COMMIT消息之后仍需进行判断;首先,判断该消息的区块高度blockHeight是否在规定的区块高度范围内;其次,判断消息签名是否正确,该消息的消息视图是否与该副本节点的视图一致;最后,判断,该副本节点在此之前没有收到过COMMIT消息;在符合上述的三个条件后,通过判断条件的COMMIT消息加入COMMIT消息队列,当消息队列中的通过判断的COMMIT消息数量达到2f+1个时,该COMMIT消息最终与共识网络达成一致。
8.根据权利要求1所述的一种基于AP-PBFT算法的区块链信用机制,其特征在于,所述步骤S3中,若主节点达成共识,则对达成共识的主节点进行奖励;若主节点不作为甚至作恶时,则不能产生区块,对不作为甚至作恶节点进行废除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277645.9A CN111106942B (zh) | 2019-12-13 | 2019-12-13 | 一种基于ap-pbft算法的区块链信用过程方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911277645.9A CN111106942B (zh) | 2019-12-13 | 2019-12-13 | 一种基于ap-pbft算法的区块链信用过程方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111106942A true CN111106942A (zh) | 2020-05-05 |
CN111106942B CN111106942B (zh) | 2023-07-11 |
Family
ID=70422453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911277645.9A Active CN111106942B (zh) | 2019-12-13 | 2019-12-13 | 一种基于ap-pbft算法的区块链信用过程方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111106942B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683121A (zh) * | 2020-05-22 | 2020-09-18 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
CN112132682A (zh) * | 2020-08-10 | 2020-12-25 | 国网浙江省电力有限公司嘉兴供电公司 | 一种基于区块链技术的电力交易方法、装置及系统 |
CN112215706A (zh) * | 2020-09-17 | 2021-01-12 | 中国科学院计算技术研究所数字经济产业研究院 | 分布式智能合约系统及实现方法 |
CN112819433A (zh) * | 2021-02-01 | 2021-05-18 | 北京工业大学 | 一种用于协同政务区块链的共识方法 |
CN112866399A (zh) * | 2021-01-28 | 2021-05-28 | 深圳大学 | 一种改进的pbft共识方法、装置、智能终端及存储介质 |
CN113114495A (zh) * | 2021-04-03 | 2021-07-13 | 湖南大学 | 一种基于区块链的主节点公平选举方法 |
CN113269630A (zh) * | 2021-07-06 | 2021-08-17 | 贵州大学 | 一种用于联盟区块链的实用拜占庭容错算法改进方案 |
CN113938494A (zh) * | 2021-10-13 | 2022-01-14 | 中国人民解放军国防科技大学 | 一种面向大规模物联网场景的链网分割重组方法及系统 |
WO2022063013A1 (zh) * | 2020-09-23 | 2022-03-31 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
CN114301918A (zh) * | 2021-12-29 | 2022-04-08 | 吉林大学 | 一种基于作恶节点淘汰树的高效区块链共识方法 |
CN114978684A (zh) * | 2022-05-20 | 2022-08-30 | 江南大学 | 基于改进凝聚型层次聚类的pbft共识方法 |
CN115293769A (zh) * | 2022-10-08 | 2022-11-04 | 中铱数字科技有限公司 | 一种基于区块链的动态管理和校验节点系统 |
CN115334172A (zh) * | 2022-07-20 | 2022-11-11 | 林郁芳 | 一种区块链协议处理系统及其处理方法 |
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
CN117194359A (zh) * | 2023-11-07 | 2023-12-08 | 国网信息通信产业集团有限公司 | 一种支持隐私保护的数据共享方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108377206A (zh) * | 2018-03-12 | 2018-08-07 | 众安信息技术服务有限公司 | 用于配置共识算法的方法、装置及计算机可读存储介质 |
CN109347804A (zh) * | 2018-09-19 | 2019-02-15 | 电子科技大学 | 一种用于区块链的拜占庭容错共识优化方法 |
CN110427433A (zh) * | 2019-08-08 | 2019-11-08 | 上海中通吉网络技术有限公司 | 一种区块链共识方法和存储介质 |
CN110505091A (zh) * | 2019-08-23 | 2019-11-26 | 昆明理工大学 | 一种基于pbft改进的共识方法 |
-
2019
- 2019-12-13 CN CN201911277645.9A patent/CN111106942B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108377206A (zh) * | 2018-03-12 | 2018-08-07 | 众安信息技术服务有限公司 | 用于配置共识算法的方法、装置及计算机可读存储介质 |
CN109347804A (zh) * | 2018-09-19 | 2019-02-15 | 电子科技大学 | 一种用于区块链的拜占庭容错共识优化方法 |
CN110427433A (zh) * | 2019-08-08 | 2019-11-08 | 上海中通吉网络技术有限公司 | 一种区块链共识方法和存储介质 |
CN110505091A (zh) * | 2019-08-23 | 2019-11-26 | 昆明理工大学 | 一种基于pbft改进的共识方法 |
Non-Patent Citations (4)
Title |
---|
Y. WANG ET AL.: "Study of Blockchains’s Consensus Mechanism Based on Credit", 《IN IEEE ACCESS, VOL. 7, PP. 10224-10231, 2019, DOI: 10.1109/ACCESS.2019.2891065.》 * |
Y. WANG ET AL.: "Study of Blockchains’s Consensus Mechanism Based on Credit", 《IN IEEE ACCESS, VOL. 7, PP. 10224-10231, 2019, DOI: 10.1109/ACCESS.2019.2891065.》, 8 February 2019 (2019-02-08) * |
刘敖迪等: "区块链技术及其在信息安全领域的研究进展", 《软件学报》 * |
刘敖迪等: "区块链技术及其在信息安全领域的研究进展", 《软件学报》, no. 07, 27 April 2018 (2018-04-27) * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683121B (zh) * | 2020-05-22 | 2022-12-13 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
CN111683121A (zh) * | 2020-05-22 | 2020-09-18 | 哈尔滨工程大学 | 基于DPoS的云端数据溯源区块链共识机制改进方法 |
CN112132682A (zh) * | 2020-08-10 | 2020-12-25 | 国网浙江省电力有限公司嘉兴供电公司 | 一种基于区块链技术的电力交易方法、装置及系统 |
CN112215706A (zh) * | 2020-09-17 | 2021-01-12 | 中国科学院计算技术研究所数字经济产业研究院 | 分布式智能合约系统及实现方法 |
CN112215706B (zh) * | 2020-09-17 | 2023-06-30 | 中国科学院计算技术研究所数字经济产业研究院 | 分布式智能合约系统及实现方法 |
WO2022063013A1 (zh) * | 2020-09-23 | 2022-03-31 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
CN112866399A (zh) * | 2021-01-28 | 2021-05-28 | 深圳大学 | 一种改进的pbft共识方法、装置、智能终端及存储介质 |
CN112866399B (zh) * | 2021-01-28 | 2023-01-31 | 深圳大学 | 一种改进的pbft共识方法、装置、智能终端及存储介质 |
CN112819433B (zh) * | 2021-02-01 | 2024-03-26 | 北京工业大学 | 一种用于协同政务区块链的共识方法 |
CN112819433A (zh) * | 2021-02-01 | 2021-05-18 | 北京工业大学 | 一种用于协同政务区块链的共识方法 |
CN113114495A (zh) * | 2021-04-03 | 2021-07-13 | 湖南大学 | 一种基于区块链的主节点公平选举方法 |
CN113269630A (zh) * | 2021-07-06 | 2021-08-17 | 贵州大学 | 一种用于联盟区块链的实用拜占庭容错算法改进方案 |
CN113938494A (zh) * | 2021-10-13 | 2022-01-14 | 中国人民解放军国防科技大学 | 一种面向大规模物联网场景的链网分割重组方法及系统 |
CN113938494B (zh) * | 2021-10-13 | 2023-09-12 | 中国人民解放军国防科技大学 | 一种面向大规模物联网场景的链网分割重组方法及系统 |
CN114301918A (zh) * | 2021-12-29 | 2022-04-08 | 吉林大学 | 一种基于作恶节点淘汰树的高效区块链共识方法 |
CN114301918B (zh) * | 2021-12-29 | 2023-09-22 | 吉林大学 | 一种基于作恶节点淘汰树的高效区块链共识方法 |
CN114978684A (zh) * | 2022-05-20 | 2022-08-30 | 江南大学 | 基于改进凝聚型层次聚类的pbft共识方法 |
CN115334172A (zh) * | 2022-07-20 | 2022-11-11 | 林郁芳 | 一种区块链协议处理系统及其处理方法 |
CN115334172B (zh) * | 2022-07-20 | 2024-04-19 | 新疆丝路智汇信息科技有限公司 | 一种区块链协议处理系统及其处理方法 |
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
CN115293769B (zh) * | 2022-10-08 | 2022-12-27 | 中铱数字科技有限公司 | 一种基于区块链的动态管理和校验节点系统 |
CN115293769A (zh) * | 2022-10-08 | 2022-11-04 | 中铱数字科技有限公司 | 一种基于区块链的动态管理和校验节点系统 |
CN117194359A (zh) * | 2023-11-07 | 2023-12-08 | 国网信息通信产业集团有限公司 | 一种支持隐私保护的数据共享方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111106942B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111106942A (zh) | 一种基于ap-pbft算法的区块链信用机制 | |
CN110677485B (zh) | 一种基于信用的动态分层拜占庭容错共识方法 | |
CN110784346B (zh) | 一种基于信誉值的pbft共识系统及方法 | |
CN109639837B (zh) | 基于信任机制的区块链DPoS共识方法 | |
CN111355810B (zh) | 一种基于信誉与投票机制的改进pbft共识方法 | |
CN110796547A (zh) | 一种基于联盟区块链的改进的实用拜占庭容错系统 | |
CN111010278B (zh) | 一种基于DPoS高容错分层共识方法 | |
CN110611701B (zh) | 一种基于区块链的参数配置和交易处理方法 | |
CN109255713A (zh) | 一种区块链网络中某一时间段内记账权的获取方法 | |
CN109819022A (zh) | 一种基于信用评价的区块链共识方法 | |
CN109951474A (zh) | 一种实现区块链共识出块的方法 | |
CN111935207A (zh) | 基于改进型c4.5算法区块链系统共识方法 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
CN111865608B (zh) | 一种应用于联盟链的共识机制运行方法 | |
CN111478795B (zh) | 一种基于混合拜占庭容错的联盟区块链网络共识方法 | |
CN113407632A (zh) | 一种基于pbft的委托权益证明区块链共识算法 | |
CN113141414A (zh) | 一种cnfs协议中区块链节点的分组多链异步共识方法 | |
CN111414420A (zh) | 一种改进的pbft区块链共识方法 | |
CN115633035B (zh) | 一种基于改进的pbft物联网区块链共识算法 | |
CN113660125A (zh) | 一种基于随机可信委员会的共识方法及装置 | |
CN115065468A (zh) | 一种基于分组信誉值的pbft共识优化方法 | |
CN114745131A (zh) | 一种区块链的pbft改进共识算法 | |
US20220278854A1 (en) | Unity Protocol Consensus | |
CN114154969B (zh) | 一种基于区块链的大型交易和结算方法 | |
CN112860807B (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 |