CN112907246B - 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 - Google Patents
基于BFT协议和PoW机制的区块链共识协议实现方法和系统 Download PDFInfo
- Publication number
- CN112907246B CN112907246B CN202110292199.XA CN202110292199A CN112907246B CN 112907246 B CN112907246 B CN 112907246B CN 202110292199 A CN202110292199 A CN 202110292199A CN 112907246 B CN112907246 B CN 112907246B
- Authority
- CN
- China
- Prior art keywords
- committee
- protocol
- transaction
- pow
- 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/3825—Use of electronic signatures
-
- 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/3827—Use of message hashing
-
- 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
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/405—Establishing or using transaction specific rules
-
- 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
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供了一种基于BFT协议和PoW机制的区块链共识协议实现方法和系统,包括:步骤1:初始化区块链共识协议,包括协议中的参与方节点、由节点组成的委员会、委员会中预设的诚实节点和恶意节点;步骤2:节点解决当前这届委员会的难题,以获得进入下一届委员会的资格;步骤3:委员会验证难题答案后将难题答案作为BFT协议的输入,得到区块后并验证区块的合法性;步骤4:在难题答案达到预设阈值时,委员会进行轮转。本发明解决了仅基于PoW机制的区块链共识协议交易延时高,吞吐量低的问题;与其它同样基于BFT协议和PoW机制的区块链共识协议相比,本发明在委员会轮转时,不会打断正在进行的共识过程,从而拥有更好的性能。
Description
技术领域
本发明涉及区块链技术领域,具体地,涉及一种基于BFT协议和PoW机制的区块链共识协议实现方法和系统。
背景技术
区块链共识协议旨在一个完全去中心化的网络中维持一个开放的,只增不删以及无法篡改的账本,它利用密码学上的哈希函数来实现不可篡改的目的。区块链协议中的交易会被打包进区块,区块会被组织成链式结构,每个区块都包含前一个区块的哈希值,修改一个区块意味着同时要修改它后面的所有区块,这是很难做到的。新的交易会被打包进区块,被放入区块链的尾部。等到该区块的状态稳定之后,其中的交易也会被确认。
无准入环境的区块链共识协议通常利用PoW(proof of work)机制来抵御女巫攻击。女巫攻击指的是攻击者可以无成本的复制身份,利用自己的多个身份来破坏协议的安全性。在这些区块链共识协议中,节点花费时间调整区块的哈希值,使得它小于某个固定值来获得账本的记账权。这意味着,如果攻击者想要伪造身份获得账本的记账权,就必须投入大量的算力资源。
仅仅基于PoW机制的区块链共识协议通常面临着低交易吞吐量和高交易延时这两个严峻的挑战。交易吞吐量和交易延时是衡量区块链协议性能的两个重要指标。交易吞吐量是指每秒中确认的交易数量,而交易延时,又被称作交易确认时间,指的是交易从发起到确认所需要的时间。
中本聪共识是最早的基于PoW机制的区块链共识。它采用最长链确认原则,即在最长链上的区块中的交易才能被纳入账本中,而其它链上的区块即使是合法的也会被当作“孤块”丢弃。这个规则严重影响了交易确认时间,只有等到包含交易的区块在链上“埋”的足够深时该交易才能被确认。否则,恶意节点可能发动分叉攻击,颠覆该交易。这意味着,中本聪共识中确认一笔交易的时间大概为1个小时,因为它要花费大概10分钟来产生一个区块。除了确认时间之外,中本聪共识中的每秒7笔交易的吞吐量也一直被人诟病。然而,简单提高区块大小或者出块速率来提高交易吞吐量是不现实的,因为中本聪共识的性能和它的安全性是紧密联系在一起的。提高区块大小和出块速率的同时也会使得其更容易收到攻击。
显然,仅仅基于PoW机制的区块链共识协议已经无法满足人们今天的需求。像VISA这样的中心化的支付平台可以实现每秒处理5000到8000笔交易,交易的确认时间也只有几秒。区块链技术应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域,人们需要一个高吞吐量,低延时的区块链共识协议。
后续的一些共识协议试图用各种各样的办法来获得高交易吞吐量和低交易延时。一种混合共识协议试图将经典的拜占庭容错(BFT)协议和PoW机制结合起来。BFT协议旨在让系统中所有诚实的副本就指令的执行顺序达成一致,执行顺序一旦提交就不能被颠覆,因此BFT协议拥有很短的延时和高吞吐量。这种混合共识协议通常会用PoW机制来选取一些成员作为委员会,再在委员会内部运行高效的BFT协议来确认交易,以此来获得高吞吐量和低延时。为了保证协议的去中心化和公平性,即时的对委员会进行轮转是非常必要的。让单个委员会一直持续工作会让协议容易遭受到DDoS攻击和贿赂攻击。但是现有的混合共识协议也存在着缺陷。在这些混合共识协议中,委员会发生轮转时,当前共识进程会被打断,从而影响协议性能。
专利文献CN109409887A(申请号:CN201811281470.4)公开了一种实现区块链共识机制的方法,该区块链节点信息存储于区块链上,节点通过P2P网络连接,所述的方法包括:1)工作量证明的题目获取;2)对PoW难题的求解;3)进行投票;所述投票就是将难题计算出来的解投给候选BP,通过此方式提交到区块链,并计入区块链的状态数据库中;4)进行计票;在一个选举周期结束时,开始计票;5)出块;所述出块是当选BP(Block Producer,以下简称BP)以自身的网络资源状况商议出一个出块权拥有顺序,每个BP节点拥有出块权时区块奖励是每个有效的不可逆块得到固定奖励。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于BFT协议和PoW机制的区块链共识协议实现方法和系统。
根据本发明提供的基于BFT协议和PoW机制的区块链共识协议实现方法,包括如下步骤:
步骤1:对区块链共识协议进行初始化,包括初始化区块链共识协议中的参与方节点、由节点组成的委员会、委员会中预设的诚实节点和恶意节点;
步骤2:节点向当前届委员会提交用于解决当前届委员会所设置的难题的答案;
步骤3:当前届委员会验证难题的答案,在通过验证的情况下将难题答案作为BFT协议的输入,得到区块后并验证区块的合法性,在区块的合法性验证通过后,旷工获取进入下一届委员会的资格;
步骤4:在通过验证的难题答案的数量达到预设值时,将下一届委员会作为当前委员会;
所述诚实节点会遵守协议的规则,所述恶意节点会以任意方式背离协议的规则。
优选的,所述步骤1包括:
第一届委员会成员集合C1和对应的难题puzzle(1)被编码到协议中;
C1的选取方式包括用随机摇号的方式从区块链论坛选取n个成员,其中恶意成员数目最多为f个,n=3f+1,对应的难题puzzle(1)用C1中f+1个成员对预设字符串的签名来表示;
在协议运行前,所有节点需在本地生成自己的公私钥对,并且与其它节点建立P2P网络连接。
优选的,所述步骤2包括:
在协议初始化完成之后,若当前届委员会是第k届委员会,则第k届委员会的难题为puzzle(k),节点不停调整nonce值使得H(pk|nonce|puzzle(k))<T,其中H()为密码学意义上的抗碰撞的哈希函数,pk为对应节点的公钥,nonce值为节点需要调整的随机值,|代表将两个字符串拼接起来,T为难题的难度;
节点在找到符合要求的对应难题的答案pow后,将其广播给其它节点,其中pow的格式为(pk,nonce,puzzle(k)),节点判断其它节点发来的pow是否合法,如果其中的pk和nonce满足H(pk|nonce|puzzle(k))<T且puzzle(k)是由第k-1届委员会中f+1个成员广播的第k-1届委员会解散的endk-1消息组成的,则该pow是合法的。
优选的,所述步骤3包括:
委员会内部成员运行BFT协议来确认交易和难题答案pow,委员会内部成员在收到交易和pow并判断它们合法之后,将它们作为BFT协议的输入,委员会内部运行BFT协议共识的结果是一个区块,该区块的格式为(ref,txs,pows),其中ref为上个区块的哈希值,txs是这次共识确认的交易集合,pows是这次共识确认的pow集合,在集合pows中的pow所对应的节点即成为下一届委员会的成员;
委员会在运行时会不断的产生共识区块并将其广播给其它节点,其它节点根据区块上的签名来验证该区块是否合法,如果一个共识区块上至少有2f+1个来自当前委员会成员的有效签名,则该区块是合法的,f为委员会中最大恶意成员数目。
优选的,所述步骤4包括:
为了保证协议的去中心化特性,委员会在运转预设时间后发生轮转,当第k届委员会确认的难题答案pow数目达到规定的委员会成员数n时,第k届委员会停止运行,并且其中的成员会广播endk消息给其它节点,当第k+1届委员会的成员收到f+1条第k届委员会解散的endk消息时便会开始运行,执行BFT协议确认交易和pow;
委员会只有等到当前共识过程结束之后才会知道确认的pow数目达到n,从而停止运行发生委员会轮转,因此在本协议中委员会的轮转不会打断当前共识过程。
根据本发明提供的基于BFT协议和PoW机制的区块链共识协议实现系统,包括如下模块:
模块M1:对区块链共识协议进行初始化,包括初始化区块链共识协议中的参与方节点、由节点组成的委员会、委员会中预设的诚实节点和恶意节点;
模块M2:节点向当前届委员会提交用于解决当前届委员会所设置的难题的答案;
模块M3:当前届委员会验证难题的答案,在通过验证的情况下将难题答案作为BFT协议的输入,得到区块后并验证区块的合法性,在区块的合法性验证通过后,旷工获取进入下一届委员会的资格;
模块M4:在通过验证的难题答案的数量达到预设值时,将下一届委员会作为当前委员会;
所述诚实节点会遵守协议的规则,所述恶意节点会以任意方式背离协议的规则。
优选的,所述模块M1包括:
第一届委员会成员集合C1和对应的难题puzzle(1)被编码到协议中;
C1的选取方式包括用随机摇号的方式从区块链论坛选取n个成员,其中恶意成员数目最多为f个,n=3f+1,对应的难题puzzle(1)用C1中f+1个成员对预设字符串的签名来表示;
在协议运行前,所有节点需在本地生成自己的公私钥对,并且与其它节点建立P2P网络连接。
优选的,所述模块M2包括:
在协议初始化完成之后,若当前届委员会是第k届委员会,则第k届委员会的难题为puzzle(k),节点不停调整nonce值使得H(pk|nonce|puzzle(k))<T,其中H()为密码学意义上的抗碰撞的哈希函数,pk为对应节点的公钥,nonce值为节点需要调整的随机值,|代表将两个字符串拼接起来,T为难题的难度;
节点在找到符合要求的对应难题的答案pow后,将其广播给其它节点,其中pow的格式为(pk,nonce,puzzle(k)),节点判断其它节点发来的pow是否合法,如果其中的pk和nonce满足H(pk|nonce|puzzle(k))<T且puzzle(k)是由第k-1届委员会中f+1个成员广播的第k-1届委员会解散的endk-1消息组成的,则该pow是合法的。
优选的,所述模块M3包括:
委员会内部成员运行BFT协议来确认交易和难题答案pow,委员会内部成员在收到交易和pow并判断它们合法之后,将它们作为BFT协议的输入,委员会内部运行BFT协议共识的结果是一个区块,该区块的格式为(ref,txs,pows),其中ref为上个区块的哈希值,txs是这次共识确认的交易集合,pows是这次共识确认的pow集合,在集合pows中的pow所对应的节点即成为下一届委员会的成员;
委员会在运行时会不断的产生共识区块并将其广播给其它节点,其它节点根据区块上的签名来验证该区块是否合法,如果一个共识区块上至少有2f+1个来自当前委员会成员的有效签名,则该区块是合法的,f为委员会中最大恶意成员数目。
优选的,所述模块M4包括:
为了保证协议的去中心化特性,委员会在运转预设时间后发生轮转,当第k届委员会确认的难题答案pow数目达到规定的委员会成员数n时,第k届委员会停止运行,并且其中的成员会广播endk消息给其它节点,当第k+1届委员会的成员收到f+1条第k届委员会解散的endk消息时便会开始运行,执行BFT协议确认交易和pow;
委员会只有等到当前共识过程结束之后才会知道确认的pow数目达到n,从而停止运行发生委员会轮转,因此在本协议中委员会的轮转不会打断当前共识过程。
与现有技术相比,本发明具有如下的有益效果:
(1)本发明提出的基于BFT协议和PoW机制的区块链共识协议,解决了仅仅基于PoW机制的区块链共识协议交易延时高,吞吐量低的问题;
(2)与其它同样基于BFT协议和PoW机制的区块链共识协议相比,本发明的协议在委员会轮转时,不会打断正在进行的共识过程,从而拥有更好的性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为共识区块示意图;
图2为协议运行流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1:
本发明提出了一种新的基于BFT协议和PoW机制的区块链共识协议,它利用一个不停轮转的委员会运行BFT协议来确认交易。该协议在获得高吞吐量和低延时的同时,也提出了一种新的委员会轮转方式解决了现有混合共识协议中委员会轮转会将当前共识过程打断的问题。
本协议利用PoW机制选取一定数目的协议的参与方(又称节点)形成一个委员会,再在这个委员会内部运行高效的BFT协议确认交易。在本协议中,节点通过调用算力资源解决一个难题来获得进入委员会的资格。节点在找到一个难题的答案(工作量证明,简称pow)之后,会将它广播给其它节点。委员会在运行BFT协议确认交易的同时,也会对这些节点的pow进行确认。一旦某节点的pow被委员会确认,那么该节点将会成为下一届委员会的成员。当有足够多的节点的pow被当前委员会确认时,委员会轮转就会发生,即当前委员会会停止工作,下一届委员会会开始工作。
在本协议中,只有在当前正在共识的一批交易的确认完成之后,才会发生委员会的轮转。故在本协议中,委员会的轮转不会打断当前共识过程。
协议中的每个参与方(又称节点)底层通过P2P网络连接,拥有自己的公钥pk和私钥sk,每个节点都可以发送或者广播信息给其它节点。本协议在同步网络下工作,即每个节点向其它节点发送的消息一定会在固定的时间段内到达。节点发送的消息都会带上自己用私钥生成的签名,并且其它节点可以用其中对应的公钥来验证它的完整性和正确性。
现有的区块链共识协议将节点分为两类,一类是诚实节点,它们会严格遵守协议的规则,另外一类是恶意节点,它们会以任意方式背离协议的规则。本发明中的协议也采用同样的分类,此外只有在恶意节点占比小于1/3的情况下,本发明中的协议才能够安全的运行。为了更好的描述协议,下面给出几个符号及其含义:
Ck:用来表示第k届委员会成员的集合,本协议中第一届委员会成员在协议运行之前就已固定,即C1是被硬编码到协议中的;
n:用来表示委员会中的成员个数,其中n=3f+1。每届委员会中的成员个数都是固定的,并且本协议中的委员会轮转机制能够保证每届委员会成员中恶意节点数目不会超过f;
puzzle(k):用来表示第k届委员会的难题。
节点只有在调用算力资源解决第k届委员会的难题puzzle(k)之后才会获得进入第(k+1)届委员会的资格。第k届委员会在结束运行时,其中的成员会向其它节点广播endk消息。puzzle(k)包含第(k-1)届委员会中任意f+1个成员广播的endk-1消息,即每届委员会开始运行时都会获得一个难题。本协议中第一届委员会的难题即puzzle(1)也是和C1一样被硬编码到协议中的。
协议开始运行时委员会内部运行BFT协议来确认交易和PoW。BFT协议的输入为未被确认的交易和PoW,输出为一个共识区块,这个区块包含了已被确认的交易和PoW。一旦交易和PoW出现在共识区块中,则代表着它们已经被确认且无法被颠覆。在委员会成员中恶意节点数目不超过f时,委员会内部可以安全高效的运行BFT协议。在停止工作前,委员会会持续的运行BFT协议输出共识区块。其它节点在收到共识区块时,会将它们组织成链式结构存储在本地。
协议初始化
前面已经说过,第一届委员会成员集合C1和其对应的难题puzzle(1)是被硬编码到协议中去,也就是说它们在协议正式运行前就已经确定。C1的选取有很多种方式,例如用随机摇号的方式从某个区块链论坛选取n个成员,只需要保证其中的恶意成员数目不会超过f个即可。对应的puzzle(1)可以用C1中f+1个成员对某个字符串的签名来表示。
在协议运行前,所有节点还须在本地生成自己的公私钥对,并且与其它节点建立P2P网络的连接。
节点解决难题
假设当前届委员会是第k届委员会,则第k届委员会的难题为puzzle(k)。节点会不停调整nonce值使得H(pk|nonce|puzzle(k))<T,其中H()为密码学意义上的抗碰撞的哈希函数,pk为对应节点的公钥,nonce值为节点需要调整的随机值,|代表将两个字符串拼接起来,T为难题的难度。节点在找到符合要求的pow(即对应难题的答案)后会将其广播给其它节点。其中pow的格式为(pk,nonce,puzzle(k))。节点可以判断其它节点发来的pow是否合法,如果其中的pk和nonce能够满足H(pk|nonce|puzzle(k))<T并且puzzle(k)确实是由第(k-1)届委员会中f+1个成员广播的endk-1消息组成的,那么该pow即是合法的。
委员会确认交易和pow
委员会内部成员也会运行BFT协议来确认交易和pow。委员会内部成员在收到交易和pow并判断它们合法之后,会将它们作为BFT协议的输入。委员会内部运行BFT协议共识的结果是一个区块,该区块的格式为(ref,txs,pows),其中ref为上个区块的哈希值,txs是这次共识确认的交易集合,pows是这次共识确认的pow集合。在集合pows中的pow所对应的节点即成为下一届委员会的成员。委员会在运行时会不断的产生共识区块并将其广播给其它节点。其它节点可以根据区块上的签名来验证该区块是否合法。如果一个共识区块上至少有2f+1个来自当前委员会成员的有效签名,那么它是合法的。
如图1,为共识区块示意图。每个共识区块里都包含上个共识区块的哈希值,它们被组织成单链形状。
委员会的轮转
为了保证协议的去中心化特性,委员会在运转了一定时间之后就会发生轮转。我们假设当前届委员会为第k届委员会。当第k届委员会确认的pow数目达到n时,即达到规定的委员会成员数时,第k届委员会就会停止运行,并且其中的成员会广播endk消息给其它节点。当第(k+1)届委员会的成员收到f+1条endk消息时,便会开始运行,也是同样的执行BFT协议确认交易和pow。
委员会只有等到当前共识过程结束之后才会知道确认的pow数目达到n,从而停止运行发生委员会轮转。因此,在本协议中,委员会的轮转不会打断当前共识过程。图2为本协议运行流程示意图。
实施例2:
实施例2为实施例1的优选例。
协议的初始化已经完成,当前运行的委员会是第k届委员会。假设Alice当前的账户余额为20个,Bob当前的账户余额为10个。Alice想通过本发明的协议向Bob转账10个。Alice在本地通过客户端程序生成该交易txA后,将其发送给运行该协议的节点,等待该交易被确认。下面给出交易确认的流程:
1、节点在收到交易txA后,会检查该交易是否合法,即转账金额是否小于转账人的余额,在交易txA中,Alice的余额为20个,她转账10个给Bob,则这笔交易是合法的,随后该节点会将txA广播给其它节点。
2、第k届委员会成员在收到交易txA,同样验证它是合法的之后,会将其作为BFT协议的输入。
3、第k届委员会运行BFT协议产生区块B,其中区块B中的txs包含交易txA,委员会成员将区块B广播给其它节点。
4、节点在收到区块B后,验证其合法后,将其存储在本地的链式结构中,此时交易txA被确认。
5、Alice在收到区块B之后,验证其合法后发现其中的txs包含交易txA,则她认为该交易被确认,该转账已经完成,此时Alice的余额为10个,Bob的余额为20个。
以上为本协议的交易确认流程,与仅仅基于PoW机制的区块链协议不同,本发明的协议采用BFT协议确认交易,具有低延时,高吞吐量的优点。
下面给出委员会轮转的流程:
当前运行的委员会是第k届委员会,假设Alice的公钥为pkA,此时她调用算力资源解决puzzle(k),即不停的调整nonce值使得H(pkA|nonce|puzzle(k))<T,当Alice找到puzzle(k)对应的powA=(pkA,nonce,puzzle(k))时,将其广播给其它节点。
1、节点在收到powA时,检查中发现其中的H(pkA|nonce|puzzle(k))<T以及puzzle(k)为第k届委员会的难题,认定其合法之后,将powA广播给其它节点。
2、第k届委员会成员在收到交易powA,同样验证它是合法的之后,会将其作为BFT协议的输入。
3、第k届委员会运行BFT协议产生区块B,其中区块B中的pows包含powA,委员会成员将区块B广播给其它节点,其它节点在收到B后,认为它是合法的,会将其存储在本地的链式结构中,此时Alice成为第(k+1)届委员会的成员。
4、此时第k届委员会确认的pow数目达到n个,第k届委员会成员就会广播endk消息并且停止工作。
5、第(k+1)届委员会成员(比如Alice)在收到f+1条endk消息后就会开始工作。
以上为本协议的委员会轮转过程,与其它同样基于BFT协议和PoW机制的区块链共识协议相比,本发明的协议在委员会轮转时,不会打断正在进行的共识过程,从而拥有更好的性能,值得注意的是,本协议在运行时,交易的确认和pow的确认完全可以同时进行,这里为了方便分开阐述。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (8)
1.一种基于BFT协议和PoW机制的区块链共识协议实现交易确认的方法,其特征在于,包括如下步骤:
步骤1:对区块链共识协议进行初始化,包括初始化区块链共识协议中的参与方节点、由节点组成的委员会、委员会中预设的诚实节点和恶意节点;
用户在本地通过客户端程序生成转账交易后,发送给运行该协议的节点,节点在收到交易后,检查交易是否合法,若合法则广播给其它节点;
步骤2:节点向当前届委员会提交用于解决当前届委员会所设置的难题的答案;
步骤3:当前届委员会验证难题的答案和交易合法性,在通过验证的情况下将交易和难题答案作为BFT协议的输入,得到区块后并验证区块的合法性,在区块的合法性验证通过后,节点获取进入下一届委员会的资格;
节点在收到区块,验证其合法后,将其存储在本地链式结构中;用户在收到区块,验证其合法后,区块确认的交易集合中包含其发起的交易,交易被确认,转账完成;
步骤4:在通过验证的难题答案的数量达到预设值时,将下一届委员会作为当前委员会;
所述诚实节点会遵守协议的规则,所述恶意节点会以任意方式背离协议的规则;
所述步骤3包括:
委员会内部成员运行BFT协议来确认交易和难题答案pow,委员会内部成员在收到交易和pow并判断它们合法之后,将它们作为BFT协议的输入,委员会内部运行BFT协议共识的结果是一个区块,该区块的格式为(ref,txs,pows),其中ref为上个区块的哈希值,txs是这次共识确认的交易集合,pows是这次共识确认的pow集合,在集合pows中的pow所对应的节点即成为下一届委员会的成员;
委员会在运行时会不断的产生共识区块并将其广播给其它节点,其它节点根据区块上的签名来验证该区块是否合法,如果一个共识区块上至少有2f+1个来自当前委员会成员的有效签名,则该区块是合法的,f为委员会中最大恶意成员数目。
2.根据权利要求1所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的方法,其特征在于,所述步骤1包括:
第一届委员会成员集合C1和对应的难题puzzle(1)被编码到协议中;
C1的选取方式包括用随机摇号的方式从区块链论坛选取n个成员,其中恶意成员数目最多为f个,n=3f+1,对应的难题puzzle(1)用C1中f+1个成员对预设字符串的签名来表示;
在协议运行前,所有节点需在本地生成自己的公私钥对,并且与其它节点建立P2P网络连接。
3.根据权利要求1所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的方法,其特征在于,所述步骤2包括:
在协议初始化完成之后,若当前届委员会是第k届委员会,则第k届委员会的难题为puzzle(k),节点不停调整nonce值使得H(pk|nonce|puzzle(k))<T,其中H()为密码学意义上的抗碰撞的哈希函数,pk为对应节点的公钥,nonce值为节点需要调整的随机值,|代表将两个字符串拼接起来,T为难题的难度;
节点在找到符合要求的对应难题的答案pow后,将其广播给其它节点,其中pow的格式为(pk,nonce,puzzle(k)),节点判断其它节点发来的pow是否合法,如果其中的pk和nonce满足H(pk|nonce|puzzle(k))<T且puzzle(k)是由第k-1届委员会中f+1个成员广播的第k-1届委员会解散的endk-1消息组成的,则该pow是合法的。
4.根据权利要求1所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的方法,其特征在于,所述步骤4包括:
为了保证协议的去中心化特性,委员会在运转预设时间后发生轮转,当第k届委员会确认的难题答案pow数目达到规定的委员会成员数n时,第k届委员会停止运行,并且其中的成员会广播endk消息给其它节点,当第k+1届委员会的成员收到f+1条第k届委员会解散的endk消息时便会开始运行,执行BFT协议确认交易和pow;
委员会只有等到当前共识过程结束之后才会知道确认的pow数目达到n,从而停止运行发生委员会轮转,因此在本协议中委员会的轮转不会打断当前共识过程。
5.一种基于BFT协议和PoW机制的区块链共识协议实现交易确认的系统,其特征在于,包括如下模块:
模块M1:对区块链共识协议进行初始化,包括初始化区块链共识协议中的参与方节点、由节点组成的委员会、委员会中预设的诚实节点和恶意节点;
用户在本地通过客户端程序生成转账交易后,发送给运行该协议的节点,节点在收到交易后,检查交易是否合法,若合法则广播给其它节点;
模块M2:节点向当前届委员会提交用于解决当前届委员会所设置的难题的答案;
模块M3:当前届委员会验证难题的答案和交易合法性,在通过验证的情况下将交易和难题答案作为BFT协议的输入,得到区块后并验证区块的合法性,在区块的合法性验证通过后,节点获取进入下一届委员会的资格;
节点在收到区块,验证其合法后,将其存储在本地链式结构中;用户在收到区块,验证其合法后,区块确认的交易集合中包含其发起的交易,交易被确认,转账完成;
模块M4:在通过验证的难题答案的数量达到预设值时,将下一届委员会作为当前委员会;
所述诚实节点会遵守协议的规则,所述恶意节点会以任意方式背离协议的规则;
所述模块M3包括:
委员会内部成员运行BFT协议来确认交易和难题答案pow,委员会内部成员在收到交易和pow并判断它们合法之后,将它们作为BFT协议的输入,委员会内部运行BFT协议共识的结果是一个区块,该区块的格式为(ref,txs,pows),其中ref为上个区块的哈希值,txs是这次共识确认的交易集合,pows是这次共识确认的pow集合,在集合pows中的pow所对应的节点即成为下一届委员会的成员;
委员会在运行时会不断的产生共识区块并将其广播给其它节点,其它节点根据区块上的签名来验证该区块是否合法,如果一个共识区块上至少有2f+1个来自当前委员会成员的有效签名,则该区块是合法的,f为委员会中最大恶意成员数目。
6.根据权利要求5所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的系统,其特征在于,所述模块M1包括:
第一届委员会成员集合C1和对应的难题puzzle(1)被编码到协议中;
C1的选取方式包括用随机摇号的方式从区块链论坛选取n个成员,其中恶意成员数目最多为f个,n=3f+1,对应的难题puzzle(1)用C1中f+1个成员对预设字符串的签名来表示;
在协议运行前,所有节点需在本地生成自己的公私钥对,并且与其它节点建立P2P网络连接。
7.根据权利要求5所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的系统,其特征在于,所述模块M2包括:
在协议初始化完成之后,若当前届委员会是第k届委员会,则第k届委员会的难题为puzzle(k),节点不停调整nonce值使得H(pk|nonce|puzzle(k))<T,其中H()为密码学意义上的抗碰撞的哈希函数,pk为对应节点的公钥,nonce值为节点需要调整的随机值,|代表将两个字符串拼接起来,T为难题的难度;
节点在找到符合要求的对应难题的答案pow后,将其广播给其它节点,其中pow的格式为(pk,nonce,puzzle(k)),节点判断其它节点发来的pow是否合法,如果其中的pk和nonce满足H(pk|nonce|puzzle(k))<T且puzzle(k)是由第k-1届委员会中f+1个成员广播的第k-1届委员会解散的endk-1消息组成的,则该pow是合法的。
8.根据权利要求5所述的基于BFT协议和PoW机制的区块链共识协议实现交易确认的系统,其特征在于,所述模块M4包括:
为了保证协议的去中心化特性,委员会在运转预设时间后发生轮转,当第k届委员会确认的难题答案pow数目达到规定的委员会成员数n时,第k届委员会停止运行,并且其中的成员会广播endk消息给其它节点,当第k+1届委员会的成员收到f+1条第k届委员会解散的endk消息时便会开始运行,执行BFT协议确认交易和pow;
委员会只有等到当前共识过程结束之后才会知道确认的pow数目达到n,从而停止运行发生委员会轮转,因此在本协议中委员会的轮转不会打断当前共识过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292199.XA CN112907246B (zh) | 2021-03-18 | 2021-03-18 | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110292199.XA CN112907246B (zh) | 2021-03-18 | 2021-03-18 | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112907246A CN112907246A (zh) | 2021-06-04 |
CN112907246B true CN112907246B (zh) | 2023-04-07 |
Family
ID=76105456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110292199.XA Active CN112907246B (zh) | 2021-03-18 | 2021-03-18 | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112907246B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174685B (zh) * | 2022-07-05 | 2023-08-11 | 上海交通大学 | 基于流水线机制的区块链中的非中断式跨链委员会换届方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN110659901A (zh) * | 2019-09-03 | 2020-01-07 | 北京航空航天大学 | 基于博弈模型的区块链复杂事务验证方法及装置 |
CN111510502A (zh) * | 2020-04-28 | 2020-08-07 | 吉林科创电力有限公司 | 一种基于动态信誉值的pbft共识传播优化方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110648139B (zh) * | 2019-09-03 | 2022-04-12 | 北京航空航天大学 | 基于分片技术和博弈论的区块链事务验证扩容方法及装置 |
CN110610421B (zh) * | 2019-09-03 | 2022-03-25 | 北京航空航天大学 | 分片框架下的保证金管理方法及装置 |
CN111756546A (zh) * | 2020-06-15 | 2020-10-09 | 杭州电子科技大学 | 一种车联网环境下基于动态信誉机制的区块链共识方法 |
-
2021
- 2021-03-18 CN CN202110292199.XA patent/CN112907246B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN110659901A (zh) * | 2019-09-03 | 2020-01-07 | 北京航空航天大学 | 基于博弈模型的区块链复杂事务验证方法及装置 |
CN111510502A (zh) * | 2020-04-28 | 2020-08-07 | 吉林科创电力有限公司 | 一种基于动态信誉值的pbft共识传播优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112907246A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109360100B (zh) | 基于区块链技术的交易快速确认方法及装置 | |
EP3586493B1 (en) | Method for mining a block in a decentralized blockchain consensus network | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN111614468B (zh) | 一种区块链共识方法及系统 | |
CN113853578A (zh) | 用于在区块链智能合约中生成随机数的方法 | |
Conti et al. | Blockchain trilemma solver algorand has dilemma over undecidable messages | |
CN112968883B (zh) | 一种安全性高的区块链异构共识方法及终端 | |
CN112163856A (zh) | 用于区块链与物联网融合场景的共识方法及系统 | |
CN115378604B (zh) | 一种基于信誉值机制的边缘计算终端设备的身份认证方法 | |
CN109981690B (zh) | 一种基于区块链智能合约的防篡改定时数据保密传输方法 | |
CN112651830B (zh) | 应用于电力资源共享网络的区块链共识方法 | |
CN110855432A (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
CN113746858A (zh) | 一种基于可验证随机函数的跨链通信方法 | |
Sun et al. | Rtchain: A reputation system with transaction and consensus incentives for e-commerce blockchain | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN116094721A (zh) | 一种基于聚类的可扩展的分片共识算法 | |
CN112907246B (zh) | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 | |
CN112398949A (zh) | 交易确认方法、系统、装置和计算机设备 | |
CN110545261A (zh) | 一种应用于区块链网络中的共识算法 | |
JP6911231B1 (ja) | デジタル資産データパケットの信頼性検証システム | |
CN111787034A (zh) | 区块生成方法、同步方法、装置、区块链系统和存储介质 | |
CN109274674B (zh) | 一种具有高安全性的区块链异构共识方法及终端 | |
CN115643043B (zh) | 一种基于验证延迟函数的跨链共识选举方法及系统 | |
CN116471041A (zh) | 基于联盟链的区块链共识方法、系统、设备及介质 | |
CN110443713B (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 |