CN108614748B - 一种拜占庭容错的方法及其通证经济的治理系统 - Google Patents
一种拜占庭容错的方法及其通证经济的治理系统 Download PDFInfo
- Publication number
- CN108614748B CN108614748B CN201810356002.2A CN201810356002A CN108614748B CN 108614748 B CN108614748 B CN 108614748B CN 201810356002 A CN201810356002 A CN 201810356002A CN 108614748 B CN108614748 B CN 108614748B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- rights
- interests
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- 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
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- 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
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种拜占庭容错的方法及其通证经济的治理系统,方法包括:拟参与区块链运营的节点委托自己的权益到区块链网络节点,得到权益值;构建权益表,其长度是节点总数系数倍,每个节点的信息在权益表中占据长度,和其权益值成正比;用随机函数产生随机数在权益表中选数值从而选若干节点参与运营;参与运营的节点分配不同的工作提案、背书、确认从而完成共识;如有备选区块得到所述确认节点的确认,所有共识节点保存完成共识的区块。系统包括区块链网络、控制单元、侦测单元、运营单元、分配单元,侦测不同节点算力分配不同工作并据此分配利益。以综合考虑权益占比,算力,投入运维成本情况并合理分配权重和利益。
Description
技术领域
本发明涉及一种区块链(Blockchain)网络的共识算法(consensus mechanism),尤其涉及一种拜占庭容错(Byzantine FaultTolerance,BFT)方法及其通证经济的治理系统。
背景技术
目前,区块链技术得到了广泛应用,其去中心化的模式保证了数据不易被篡改,从而提升了安全性。
在实际应用中,包含多个节点(节点可认为是区块链中参与处理业务的设备)的区块链网络能够为客户端提供相应的业务服务。具体而言,区块链网络中的各节点将针对客户端的业务请求进行处理,并向客户端反馈处理结果,在此过程中,独立运行的各节点所生成的处理结果有可能不一致,为了保证客户端能够接收到正确的处理结果,故采用共识算法以使各节点在预设规则下通过交互对某些数据、行为或流程达成一致。常见的共识算法包括实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法、授权拜占庭容错(Delegated Byzantine FaultTolerance)算法等。
但上述拜占庭容错算法没有考虑通证(token)所有者节点,参与运营节点和普通节点的权重和分润问题,其中,分润指通过一定的规则将共识网络的收益分配给特定的节点。通证所有者是利益相关人,和区块链网络之间拥有更多的利益联系;参与运营节点参与了区块链网络的更多工作,他们和普通节点拥有相同的权重和分润是不适宜的。在目前的很多区块链网络和拜占庭容错算法中,经常会出现算力较强的矿工节点、权益较大的节点和无关的节点获得较高的权重和分润问题,例如受委托挖矿的矿工利用算力占据网络大量资源,而其根本不在意区块链网络的运营情况,而利益相关人却没有足够的权重,而权重决定了其成为记账节点的几率,同时权重还也是分润比例的基础。
此外,区块链技术基于计算机网络技术和用户参与,由于计算机和网络都不可避免的有故障存在,而参与一种经济模型的人,不可避免的会理性的自私的获取不应得的权益,所以区块链网络中不可避免的会有停止工作的节点和因为各种目的而作恶的节点。传统的拜占庭容错算法中,区块链网络中超过1/3的节点停止工作后,区块链网络将无法提供服务,当有1/3的节点联合作恶,且其他所有的节点若恰被分割为两个孤岛,会使区块链产生分叉。
因此,有必要开发一种新型拜占庭容错方法和通证经济的治理系统以解决上述技术问题。
发明内容
本发明所要解决的技术问题是:传统拜占庭算法超过1/3的节点停止工作后无法工作,以及现有区块链网络部分比例的通证所有者节点,参与运营节点和普通节点的权重和分润不合理导致节点参与积极性受挫,降低投入乃至退出网络,造成区块链网络的退化。
为解决上述技术问题,本发明提供了一种拜占庭容错方法,包括如下步骤;
步骤S1:拟参与区块链运营节点委托自己的权益到区块链网络,得到权益值,并成为运营节点,所述区块链网络包括共识网络和非共识网络,所述共识网络中包含运营节点;
步骤S2:根据权益值构建权益表,所述权益表的长度的数值是所述运营节点的数量的系数倍,所述系数为正数,每个所述运营节点的信息各自在所述权益表中占据权益表长度,占据的权益表长度和所述权益值成正比,每个所述运营节点的信息占据的权益表长度互无重合部分,且所有所述运营节点的信息占据的长度之和小于或等于所述权益表的总长度,所述运营节点拥有自身占据的长度和在所述权益表总长度中的坐标范围;
步骤S3:用随机数发生函数产生随机数,所述随机数为多位,将所述随机数的选出部分位数作为长度数值,若所述长度数值落在一个在所述运营节点所占据的长度坐标范围内,则该节点被选中成为功能节点;
步骤S4:按照步骤S3用所述随机数的不同部分位数从所运营节点中选中多个节点作为功能节点,所述功能节点分配不同工作成为提案节点、背书节点或确认节点;所述提案节点构建新的备选区块,签名后在所述区块链网络中广播;所述背书节点对收到的备选区块进行验证并背书,签名后在所述区块链网络中广播;所述确认节点对得到所述背书节点的背书的备选区块进行确认,签名后在区块链网络中广播;
步骤S5:如有备选区块得到所述确认节点的确认,则所述备选区块完成共识,成为完成共识的区块,所述区块链网络中的所有运营节点保存所述完成共识的区块。
本发明的有益效果在于:通过在共识前引入权益抵押过程,使区块链网络中的共识网络正常工作的节点比例提高,因为其是主动申请参与共识网络,为停机的节点可能性较少。同时其委托权益,增加了节点作恶的成本,并且作恶后更可能被追溯、处罚。同时根据其委托的权益分配不同的权益值达到不同权重,调动节点参与区块链网络的积极性。
优选的,所述步骤S2中,所述权益表由表项构成,每个表项可存储一个运营节点的信息,所述权益表的长度单位是表项的个数,即表项数。其有益效果在于:方便计算以及符合计算机存储逻辑。
优选的,所述步骤S3和S4中,所述部分位数的区间数值与所述权益表的长度的数值相同。其有益效果在于:方便计算和选取。
优选的,所述步骤S2中,所述权益表的表项数等于所述运营节点的数量和所述系数的乘积,所述权益表的表项分别包含一个运营节点的信息,包含一个运营节点信息的表项数量和其委托的权益成正比。其有益效果在于:方便计算,和分配不同节点的权益占比,类似企业股份中的拆股作用。
优选的,所述区块链网络运营中,所述运营节点可以退出或被踢出,所述共识网络在所述区块链网络中选择新的所述拟参与区块链运营节点参与区块链运营,是否进行所述退出由运营节点自己决定,是否踢出一个运营节点由权益表中的其他节点投票决定。其有益效果在于:修正,减少停止工作节点的比例,增加惩罚机制,增加节点作恶的成本。
优选的,所述权益表中所述包含一个运行节点信息的表项不连续,每次选择运营节点前,用洗牌算法对所述权益表中全部所述表项进行洗牌,以打乱原有表项的排序。其有益效果在于:使共识节点产生更加随机以避免被恶意的用户预测并攻击。
优选的,其特征在于,所述确认节点加入背书功能,成为背书节点。其有益效果在于:适用于小型网络节点数量紧张的情况,或减少共识所需的节点和步骤以增加共识速度。
优选的,所述区块链网络中的每个节点维护权益表。其有益效果在于:公正透明的向各节点展示权重和收益基础,有利于网络健康发展,同时增加冗余备份以增加权益表的安全性。
优选的,将所述拟参与区块链运营节点的运维成本、算力投入、委托的权益计算权益值,其占据的权益表长度和权益值成正比。其有益效果在于:较为平衡的分配权重,综合考虑各种情况,调动节点参与的积极性。
本发明还提供了一种基于所述的拜占庭容错方法的通证经济的治理系统,其特征在于,包含区块链网络、控制单元、侦测单元、运营单元、分配单元,所述权益为通证,区块链网络运营需要不同的功能节点,所述功能节点负责区块链网络中的不同工作,所述功能节点根据工作不同有不同的算力需求,所述控制单元计算不同功能节点所需的最低算力发送给所述侦测单元,所述侦测单元侦测所述参与区块链运营节点的算力将符合条件的节点编为运营节点,并将信息反馈给所述控制单元,所述控制单元收到所述侦测单元反馈的信息计算不同功能节点的算力需求发送给所述运营单元,所述运营单元根据需求所述区块链运营节点分配不同工作成为不同功能节点并计算其工作情况反馈给所述控制单元,所述控制单元根据所述权益值、所述运营节点的算力和所述工作情况计算其应得通证并发送给分配单元,所述分配单元将所述通证分配给参与过运营的区块链节点,所述通证由区块链网络能生产或提供服务给用户收取。
本发明的有益效果在于:较为平衡的分润,综合考虑权益值、运营节点的算力和所述工作情况各种情况,调动节点参与的积极性。
优选的,所述控制单元针对区块链网络对全区块链的即时算力需求进行评估,计算出各功能节点算力的要求,在保证所述区块链网络出块时间和周期的基础上,计算出所述功能节点算力的配置区间。其有益效果在于:筛选符合要求的节点参与区块链网络运营,防止低算力节点拖累网络,造成出块不及时。
优选的,所述侦测单元通过在所述区块链网络中部署探针侦测所述拟参与区块链运营节点的算力,判断其是否满足所述功能节点的最低算力要求。其有益效果在于:更加详细的评估节点算力情况。
优选的,所述运营单元构建权益表,将运营节点的信息放入权益表,用随机数发生函数选出所述功能节点,所述运营单元将所述运营节点按算力不同编入成不同的所述功能节点。其有益效果在于:将符合要求的节点组成网络随机选择提案节点,增加网络的健壮性与安全性。
优选的,所述运营节点成为所述功能节点进行工作,所述运营单元统计所述功能节点工作的情况。其有益效果在于:给分配利润提供依据。
优选的,所述分配单元将通证分配给参与过运营的节点。其有益效果在于:将贡献和利益挂钩,实现区块链网络运营的持续。
优选的,所述分配单元将通证分为两部分,分配给所述功能节点和所述权益表中除功能节点以外的节点,分配给所述功能节点按照所述参与区块链运营的节点的权益委托情况和工作情况分配通证。其有益效果在于:由于功能节点由随机算法产生,有的节点进入权益表可能长久无法成为功能节点,其依然对算法的随机性和安全性有贡献,同样应该获得收益。
优选的,所述功能节点包括共识节点、记账节点、验签节点或落账节点,所述共识节点包括提案节点、背书节点、确认节点。其有益效果在于:完成区块链网络的共识过程和记账过程。
优选的,所述通证经济的治理系统为分布式系统,部署在所述区块链网络中的所有节点上,所述侦测单元侦测的方式为,在所述拟参与区块链运营节点的上布置探针,所述探针为硬件检测程序。其有益效果在于:符合区块链网络的基础分布式逻辑。
优选的,所述侦测单元将不满足所述功能节点的最低算力要求的节点集合,使用集群虚拟化技术,根据其算力和配置进行模块分工,组成算力达标的逻辑节点以参与区块链运营。其有益效果在于:将算力不达标的节点充分利用,增加节点数量以增强区块链网络的强壮性。
优选的,所述随机数发生函数是可验证随机函数,所述可验证随机函数将所述备选区块的高度、最新的所述完成共识的区块的哈希值、最新的所述完成共识的区块的提案身份识别号和所述提案节点对最新的所述完成共识的区块的签名经过序列化得到字节数组,然后对所述字节数组进行至少一次哈希运算得到随机值。其有益效果在于:使随机数产生可以事后被验证,保证其为真正的随机数而非指定的数,以防止功能节点的产生被操纵。
由于区块链网络基于计算机网络的特点以及人们面对经济利益时候的趋利避害本性,区块链网络中的绝大多数节点都是理性的并追求利益最大化,当一个网络和系统存在不合理或存在漏洞,总会有人试图破坏网络以至获取不正当利益,当网络和系统较为公平,人们通过正当参与能获得利益,便会趋向按照区块链网络的设定规则行事。如果违背规则付出的代价较高而所获得甚少,不如正常参与获得的利益,区块链网络中的绝大多数节点都会按照系统的规则行事,从而维持网络的强壮。本发明综合考虑节点参与区块链运营的运维成本、算力投入、委托的权益计算权益值,均衡满足不同人群的利益分配,使区块链网络利害相关度较高的,算力较高的,投入运维成本较高的节点都均衡的获得相应的利益和地位,即权重,从而使绝大多数用户都按照规则行事,利于区块链网络的长久、健壮发展。
附图说明
图1为本发明的拜占庭容错方法的一个实施例的流程示意图。
图2为本发明的拜占庭容错方法的功能节点选取示意图。
图3为本发明的拜占庭容错方法的共识部分一个实施例的流程示意图。
图4为本发明的通证经济的治理系统的结构及工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通常,区块链网络中的全部节点根据是否参与共识可以分为两大类,参与共识的节点称为共识节点,不参与共识的节点称为非共识节点。优选地,所述提案节点、背书节点、确认节点都属于共识节点,但是分别属于三种不同身份的共识节点。此时,区块链网络中的任意一个共识节点可以不具有上述三种共识节点身份,也可以仅具有上述三种共识节点身份的一种身份,还可以同时具有上述三种共识节点身份的多种身份。
可替换地,不在区块链网络中区分共识节点和非共识节点,直接在区块链网络的全部节点中选择提案节点、背书节点、确认节点。此时,区块链网络中的任意一个节点可以不具有上述三种节点身份,也可以仅具有上述三种节点身份的一种身份,还可以同时具有上述三种节点身份的多种身份。
区块链网络中的共识节点组成共识网络,共识网络中选取部分节点作为提案节点、背书节点、确认节点参与共识,但共识后的结果由共识网络中的所有节点参与记录,即记账,为记账节点,亦所有共识节点又可称记账节点。类似的称呼还有落账节点,其在大多数种类共识网络中为记账节点的同义词,也可在少数种类共识网络中存储错误账目。共识网络中,尤其采用拜占庭容错算法的共识网络中,提案节点、背书节点、确认节点工作都需要其余的节点验证签名,因此共识过程中三种节点以外的节点都可以成为验签节点。
本发明提供了一种拜占庭容错方法的一个实施例,如图1所示。
委托权益步骤S1:拟参与区块链运营节点委托自己的权益到区块链网络,得到权益值,并成为运营节点,所述区块链网络包括共识网络和非共识网络,所述共识网络中包含运营节点;
构建权益表步骤S2:根据权益值构建权益表,所述权益表的长度的数值是所述运营节点的数量的系数倍,所述系数为正数,每个所述运营节点的信息各自在所述权益表中占据权益表长度,占据的权益表长度和所述权益值成正比,每个所述运营节点的信息占据的权益表长度互无重合部分,且所有所述运营节点的信息占据的长度之和小于等于所述权益表的总长度,所述运营节点拥有自身占据的长度和在所述权益表总长度中的坐标范围;
选择节点步骤S3:用随机数发生函数产生随机数,所述随机数为多位,将所述随机数的选出部分位数作为长度数值,若所述长度数值落在一个在所述运营节点所占据的长度坐标范围内,则该节点被选中成为功能节点;
共识步骤S4:按照步骤3用所述随机数的不同部分位数从所运营节点中选中多个节点作为功能节点,所述功能节点分配不同工作成为提案节点、背书节点或确认节点,所述提案节点构建新的备选区块,签名后在所述区块链网络中广播,所述背书节点对收到的备选区块进行验证并背书,签名后在所述区块链网络中广播,所述确认节点对得到所述背书节点的背书的备选区块进行确认,签名后在区块链网络中广播;
区块生成步骤S5:如有备选区块得到所述确认节点的确认,则所述备选区块完成共识,成为完成共识的区块,所述区块链网络中的所有运营节点保存所述完成共识的区块。
如果用N表示共识网络节点总数,F表示共识网络容忍的拜占庭节点的数目,L表示共识网络权益(POS)表的长度,Peers[N]表示参与共识的N个节点的信息。所述节点信息例如包括节点的身份识别号(ID)、节点的私钥、节点的公钥、节点的权重等。其中,节点的私钥用于对节点发送的信息进行签名和加密。节点的公钥用于对节点接收的信息进行验证和解密。所述提案节点、背书节点和确认节点是由最新完成共识的区块经过随机算法得到的随机值的不同比特位在所述节点信息表格中选定的。
所述第i个节点的身份识别号(Indexi)为整数,所有节点的身份识别号互不重复。所述节点的私钥(SKi,Secure-Key)为节点的私密信息。节点向网络中发出的所有消息都经由此私钥签名后发出。所述节点的公钥(PKi)作用为节点从网络中接收到其他节点发送的消息时,都首先用对应节点的公钥对消息进行签名验证。所述节点在共识网络中所获得的权重(Wi,Wi>0)。所述系数(scale)和节点数成正比。
基于拜占庭容错算法设定的参数,生成权益表,所述权益表由多个表项组成,其表项数为节点数N的系数倍,每个表项中可放一个节点的信息,每个节点的信息可根据权益放入多次,即每个节点的信息在权益表中占据若干表项,即表项数。由于抵押的权益并非一定整数,故计算权益表长度需要向上取整数,在系数上减1以保证算法的正确,权益表生成算法如下:
所述节点(Nodei)在权益表中所占的长度为:
在一些实施例中,进行步骤S3前,用洗牌算法对初始权益表进行随机洗牌,所述洗牌算法为全随机洗牌(AllRandomShuffle)算法、随机抽取洗牌(RandomExtractShuffle)算法、随机交换洗牌(RandomExchangeShuffle)算法或费雪耶兹洗牌(Fisher–YatesShuffle)算法。所述洗牌后权益表为最后用来选择功能节点的权益表。
本发明中一个具体的实施例,如果交易识别号记作txid,最后一个区块生成时间记作blocktimestamp,所述节点的公钥记作PKi,则费雪耶兹洗牌的实现:
Fori from L to 2do
j=hash(txid,blocktimestamp,PKi,i)%i
exchange PoS[j]andPoS[i]
本发明中一个具体的实施例中,为步骤S1-S3的具体过程,如图2所示,设节点数为6,系数为3,6个节点抵押的权益分别依次为为1、2、3、4、5、3。此为理论系统,实际中的应用节点数要远远大于此数目,从图2表格第一行可以看出,权益表表长为18=3*6,将节点身份识别号依次放入权益表中,如图2表格第二行所示,各节点身份识别号占据的表项数分别为1、2、3、4、5、3。图2表格第三行,用洗牌算法打乱其顺序,以不利于被预测到,从而增加节点选取的随机性以防止被攻击。
在步骤S3和步骤S4中,用随机函数生成随机数,优选的,所述随机函数为可验证随机函数,用所述随机数抽取权益表中的表项,被抽中的表项中存储着哪个节点的身份识别号,哪个节点就被选中,作为运营节点,分别选中不同的节点作为不同的功能节点。
在本发明一个具体实施例中,如图2所示,限定随机算法产生连续每两位在18以下的随机整数,得到随机数,050202100417,用随机数前四位选择提案节点,中间四位用于选择背书节点,后四位用于选择确认节点。由图2的表中的第2、3、4行可知,第3个和第6个节点被选作提案节点,第3个和第4个节点被选作背书节点,第4个和第5个节点被选作确认节点。
在本发明另一个具体实施例中,节点总数为128,系数为8,需要32个提案节点,故权益表的长度为1024,生成的随机数为512比特的随机值,所以选择与权益表长度数值相等的部分随机位数,即log21024=10位,即10位的2进制数的能代表0-1023的数字,区间数值为1024,区间数值和权益表长度相等。从512比特的随机数中前32位,依次选择部分位数{b9,b8,……,b1,b0}、{b10,b9,……,b2,b1}、{b11,b10,……,b3,b2}、……、{b31,b30,……,b23,b22}、{b8,b7,……,b0,b32}作为提案节点,先选出的提案节点具有更高的优先级。
在本发明的步骤S4中,即为区块链网络中的共识阶段,从区块链网络的全部节点中选择至少三种节点,所述三种节点分别是提案节点、背书节点和确认节点,所述三种节点的数量可以分别都为一个,也可以有多个,三种节点的数量可以相同,也可以不相同。
在本发明一个具体实施例中,如图3所示,S1:产生的三种节点为多个。
S2:将多个提案节点所述提案节点构建新的备选区块,签名后在所述区块链网络中广播。所述提案节点分为至少两个不同的优先级,优先级高的提案节点构建的备选区块具有较高的优先级。
S3:所述背书节点对收到的备选区块进行验证,然后将备选区块进行优先级排序,并对具有最高优先级的备选区块进行背书,签名后在区块链网络中广播。
S4:所述确认节点对预定时间内得到预定数量的背书节点的背书的备选区块进行确认,签名后在区块链网络中广播。
S5:预定时间内的到预定数量的确认节点的确认的备选区块(即完成完成共识的区块)在区块链网络中的所有共识节点中保存。
在本发明中一些实施例中,为了适应更小的网络或达到更快的验证速度,所述确认节点加入背书功能,成为背书节点。
在本发明中一些实施例中,所述权益表存储在区块链网络中的所有节点上,所述区块链网络中的每个节点维护权益表。
在本发明中一些实施例中,将所述拟参与区块链运营节点的运维成本、算力投入、委托的权益计算权益值,其占据的权益表长度和权益值成正比,其被选中概率和其运维成本、算力投入、委托权益成正比。
本发明还提供了一种基于所述的拜占庭容错方法的通证经济的治理系统,如图4所示,包含区块链网络、控制单元、侦测单元、运营单元、分配单元,所述权益为通证,区块链网络运营需要不同的功能节点,所述功能节点负责区块链网络中的不同工作,所述功能节点根据工作不同有不同的算力需求,所述控制单元计算不同功能节点所需的最低算力发送给所述侦测单元,所述侦测单元侦测所述参与区块链运营节点的算力将符合条件的节点编为运营节点,并将信息反馈给所述控制单元,所述控制单元收到所述侦测单元反馈的信息计算不同功能节点的算力需求发送给所述运营单元,所述运营单元根据需求所述区块链运营节点分配不同工作成为不同功能节点并计算其工作情况反馈给所述控制单元,所述控制单元根据所述权益值、所述运营节点的算力和所述工作情况计算其应得通证并发送给分配单元,所述分配单元将所述通证分配给参与过运营的区块链节点,所述通证由区块链网络能生产或提供服务给用户收取。
在本发明的一些实施例中,所述控制单元针对区块链网络对全区块链的即时算力需求进行评估,计算出各功能节点算力的要求,在保证所述区块链网络出块时间和周期的基础上,计算出所述功能节点算力的配置区间。
在本发明的一些实施例中,所述侦测单元侦测所述拟参与区块链运营节点的算力,判断其是否满足所述功能节点的最低算力要求。
在本发明的一些实施例中,所述运营单元将满足最低算力要求的所述拟参与区块链运营节点的信息放入权益表,用随机数发生函数选出本次参与运营的节点,所述运营单元将所述参与区块链运营的节点按算力不同编入成不同的所述功能节点。
在本发明的一些实施例中,所述运营节点成为所述功能节点进行工作,所述运营单元统计所述功能节点工作的情况。
在本发明的一些实施例中,所述分配单元将通证分配给提案节点、背书节点、确认节点。
在本发明的一些实施例中,分配单元将通证将通证分为两部分,分配给所述功能节点和所述权益表中除功能节点以外的节点,分配给所述功能节点按照所述参与区块链运营的节点的权益委托情况和工作情况分配通证。
在本发明的一些实施例中,所述功能节点为共识节点、记账节点、验签节点或落账节点,所述共识节点为提案节点、背书节点、确认节点。
在本发明的一些实施例中,所述通证经济的治理系统为分布式系统,部署在所述区块链网络中的所有节点上,所述侦测单元侦测的方式为,在所述拟参与区块链运营节点的上布置探针,所述探针为硬件检测程序。所述硬件检测程序可以检测中央处理器、缓存、内存、存储器、网络速度得到其综合算力。
在本发明的一些实施例中,其特征在于,所述侦测单元将不满足所述功能节点的最低算力要求的节点集合,用集群虚拟化技术,根据其算力和配置进行模块分工,组成逻辑节点以参与区块链运营。所述集群虚拟化技术可以采取已经商用的hadoop集群方案或VMware方案。
在本发明的一些实施例中,所述可验证随机函数是将所述备选区块的高度、最新的所述完成共识的区块的哈希值、最新的所述完成共识的区块的提案身份识别号和所述提案节点对所述最新完成共识的区块的签名经过序列化得到字节数组,然后对所述字节数组进行一次sha512运算得哈希结果,再对所述哈希结果进行sha512运算得到随机值。
除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。
虽然本发明已以较佳实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (20)
1.一种拜占庭容错方法,其特征在于,包括:
步骤S1:拟参与区块链运营节点委托自己的权益到区块链网络,得到权益值,并成为运营节点,所述区块链网络包括共识网络和非共识网络,所述共识网络中包含运营节点;
步骤S2:根据权益值构建权益表,所述权益表的长度的数值是所述运营节点的数量的系数倍,所述系数为正数,每个所述运营节点的信息各自在所述权益表中占据权益表长度,占据的权益表长度和所述权益值成正比,每个所述运营节点的信息占据的权益表长度互无重合部分,且所有所述运营节点的信息占据的长度之和小于等于所述权益表的总长度,所述运营节点拥有自身占据的长度和在所述权益表总长度中的坐标范围;
步骤S3:用随机数发生函数产生随机数,所述随机数为多位,将所述随机数的选出部分位数作为长度数值,若所述长度数值落在一个在所述运营节点所占据的长度坐标范围内,则该节点被选中成为功能节点;
步骤S4:按照步骤3用所述随机数的不同部分位数从所运营节点中选中多个节点作为功能节点,所述功能节点分配不同工作成为提案节点、背书节点或确认节点,所述提案节点构建新的备选区块,签名后在所述区块链网络中广播,所述背书节点对收到的备选区块进行验证并背书,签名后在所述区块链网络中广播,所述确认节点对得到所述背书节点的背书的备选区块进行确认,签名后在区块链网络中广播;
步骤S5:如有备选区块得到所述确认节点的确认,则所述备选区块完成共识,成为完成共识的区块,所述区块链网络中的所有运营节点保存所述完成共识的区块。
2.如权利要求1所述的拜占庭容错方法,其特征在于,所述步骤S2中,所述权益表由表项构成,每个表项可存储一个运营节点的信息,所述权益表的长度单位是表项的个数,即表项数。
3.如权利要求2所述的拜占庭容错方法,其特征在于,所述步骤S2和S3中,所述部分位数的区间数值与所述权益表的长度的数值相同。
4.如权利要求2所述的拜占庭容错方法,其特征在于,所述步骤S2中,所述权益表的表项数等于所述运营节点的数量和所述系数的乘积,所述权益表的表项分别包含一个特定所述选出参与区块链运营的节点的信息,包含一个的特定节点信息的表项总的数量和其委托的权益成正比。
5.如权利要求1所述的拜占庭容错方法,其特征在于,所述区块链网络运营中,所述运营节点可以退出或被踢出,所述共识网络在所述区块链网络中选择新的所述拟参与区块链运营节点参与区块链运营,是否进行所述退出由运营节点自己决定,是否踢出一个运营节点由权益表中的其他节点投票决定。
6.如权利要求4所述的拜占庭容错方法,其特征在于,权益表中所述包含一个的特定节点信息的表项不连续,每次选择运营节点前,用洗牌算法对所述权益表中全部所述表项进行洗牌,以打乱原有表项的排序。
7.如权利要求1所述的拜占庭容错方法,其特征在于,所述确认节点加入背书功能,成为背书节点。
8.如权利要求1所述的拜占庭容错方法,其特征在于,所述区块链网络中的每个节点维护所述权益表。
9.如权利要求1所述的拜占庭容错方法,其特征在于,根据所述拟参与区块链运营节点的运维成本、算力投入、委托的权益计算权益值。
10.一种基于如权利要求1-9任意一项所述的拜占庭容错方法的通证经济的治理系统,其特征在于,包含区块链网络、控制单元、侦测单元、运营单元、分配单元,所述权益为通证,区块链网络运营需要不同的功能节点,所述功能节点负责区块链网络中的不同工作,所述功能节点根据工作不同有不同的算力需求,所述控制单元计算不同功能节点所需的最低算力发送给所述侦测单元,所述侦测单元侦测所述参与区块链运营节点的算力将符合条件的节点编为运营节点,并将信息反馈给所述控制单元,所述控制单元收到所述侦测单元反馈的信息计算不同功能节点的算力需求发送给所述运营单元,所述运营单元根据需求所述区块链运营节点分配不同工作成为不同功能节点并计算其工作情况反馈给所述控制单元,所述控制单元根据所述权益值、所述运营节点的算力和所述工作情况计算其应得通证并发送给分配单元,所述分配单元将所述通证分配给参与过运营的区块链节点,所述通证由区块链网络能生产或提供服务给用户收取。
11.如权利要求10所述的通证经济的治理系统,其特征在于,所述控制单元针对区块链网络对全区块链的即时算力需求进行评估,计算出各功能节点算力的要求,在保证所述区块链网络出块时间和周期的基础上,计算出所述功能节点算力的配置区间。
12.如权利要求10所述的通证经济的治理系统,其特征在于,所述侦测单元通过在所述区块链网络中部署探针侦测所述拟参与区块链运营节点的算力,判断其是否满足所述功能节点的最低算力要求。
13.如权利要求11所述的通证经济的治理系统,其特征在于,所述运营单元构建权益表,将运营节点的信息放入权益表,用随机数发生函数选出所述功能节点,所述运营单元将所述运营节点按算力不同编入成不同的所述功能节点。
14.如权利要求10所述的通证经济的治理系统,其特征在于,所述运营节点成为所述功能节点进行工作,所述运营单元统计所述功能节点工作的情况。
15.如权利要求13所述的通证经济的治理系统,其特征在于,所述分配单元将通证分配给所述运营节点。
16.如权利要求15所述的通证经济的治理系统,其特征在于,所述分配单元将通证分为两部分,分配给所述功能节点和所述权益表中除功能节点以外的节点,分配给所述功能节点按照所述参与区块链运营的节点的权益委托情况和工作情况分配通证。
17.如权利要求10所述的通证经济的治理系统,其特征在于,所述功能节点包括共识节点、记账节点、验签节点或落账节点,所述共识节点包括提案节点、背书节点、确认节点。
18.如权利要求11所述的通证经济的治理系统,其特征在于,所述通证经济的治理系统为分布式系统,部署在所述区块链网络中的所有节点上,所述侦测单元侦测的方式为,在所述拟参与区块链运营节点的上布置探针,所述探针为硬件检测程序。
19.如权利要求11所述的通证经济的治理系统,其特征在于,所述侦测单元将不满足所述功能节点的最低算力要求的节点集合,使用集群虚拟化技术,根据其算力和配置进行模块分工,组成算力达标的逻辑节点以参与区块链运营。
20.如权利要求13所述的通证经济的治理系统,其特征在于,所述随机数发生函数是可验证随机函数,所述可验证随机函数将所述备选区块的高度、最新的所述完成共识的区块的哈希值、最新的所述完成共识的区块的提案身份识别号和所述提案节点对最新的所述完成共识的区块的签名经过序列化得到字节数组,然后对所述字节数组进行至少一次哈希运算得到随机值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810356002.2A CN108614748B (zh) | 2018-04-19 | 2018-04-19 | 一种拜占庭容错的方法及其通证经济的治理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810356002.2A CN108614748B (zh) | 2018-04-19 | 2018-04-19 | 一种拜占庭容错的方法及其通证经济的治理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614748A CN108614748A (zh) | 2018-10-02 |
CN108614748B true CN108614748B (zh) | 2020-09-29 |
Family
ID=63660334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810356002.2A Active CN108614748B (zh) | 2018-04-19 | 2018-04-19 | 一种拜占庭容错的方法及其通证经济的治理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614748B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109067516B (zh) * | 2018-07-20 | 2021-05-11 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
GB2577751A (en) * | 2018-10-05 | 2020-04-08 | Dragon Infosec Ltd | A consensus method and framework for a blockchain system |
CN109525398A (zh) * | 2018-10-18 | 2019-03-26 | 尚维斯 | 一种实现去中心化权力证明共识的方法 |
CN109584063B (zh) * | 2018-10-25 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN111181797B (zh) * | 2018-11-09 | 2022-05-27 | 北京天德科技有限公司 | 一种基于拦截器的区块链共识机制验证方法 |
CN109544310A (zh) * | 2018-11-13 | 2019-03-29 | 孙晞瑜 | 一种基于区块链联盟链的快速共识记账方法及其系统 |
CN109587263B (zh) * | 2018-12-20 | 2021-08-03 | 众安信息技术服务有限公司 | 一种区块同步方法及系统 |
WO2020133326A1 (zh) * | 2018-12-29 | 2020-07-02 | 北京建极练科技有限公司 | 区块链生成方法、系统、计算机存储介质和电子设备 |
CN110175758A (zh) * | 2019-05-08 | 2019-08-27 | 杭州宇链科技有限公司 | 一种基于区块链的链上多层自动分润方法 |
CN110166364B (zh) * | 2019-05-15 | 2020-07-24 | 武汉理工大学 | 一种软件定义机会网络流表更新方法 |
CN110213038B (zh) * | 2019-06-03 | 2024-06-04 | 聂明 | 一种区块链形成共识的方法及系统 |
CN110266781B (zh) * | 2019-06-12 | 2021-05-18 | 西安电子科技大学 | 一种基于哈希函数的网络节点随机选取方法 |
CN111447071B (zh) * | 2020-03-26 | 2023-08-22 | 柏建华 | 一种分布式共识算法及分布式系统 |
CN112883338B (zh) * | 2021-03-01 | 2024-03-22 | 奥科塞尔控股公司 | 一种基于带权重的随机洗牌算法的抽签方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106850536A (zh) * | 2016-11-30 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及系统 |
CN107124403A (zh) * | 2017-04-14 | 2017-09-01 | 朱清明 | 区块链中共识区块的生成方法与计算设备 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10812274B2 (en) * | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
-
2018
- 2018-04-19 CN CN201810356002.2A patent/CN108614748B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106850536A (zh) * | 2016-11-30 | 2017-06-13 | 北京瑞卓喜投科技发展有限公司 | 区块链共识方法及系统 |
CN107124403A (zh) * | 2017-04-14 | 2017-09-01 | 朱清明 | 区块链中共识区块的生成方法与计算设备 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
Non-Patent Citations (2)
Title |
---|
区块链技术中的共识机制研究;韩璇等;《Netinfo security》;20171130;全文 * |
基于动态授权的拜占庭容错共识算法的区块链性能改进研究;刘肖飞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108614748A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108614748B (zh) | 一种拜占庭容错的方法及其通证经济的治理系统 | |
CN110580653B (zh) | 一种基于交易的区块链共识机制 | |
Desai et al. | A hybrid blockchain architecture for privacy-enabled and accountable auctions | |
CN109447795B (zh) | 一种支持快速达成最终确认性的拜占庭共识方法 | |
CN112073483B (zh) | 基于信誉与委员会背书机制的权威证明共识方法及系统 | |
CN111292014B (zh) | 一种基于联盟链的智能农机调度系统及其调度方法 | |
CN110825810A (zh) | 一种基于区块链的群智感知双重隐私保护方法 | |
Zhang et al. | Cycledger: A scalable and secure parallel protocol for distributed ledger via sharding | |
CN112651830B (zh) | 应用于电力资源共享网络的区块链共识方法 | |
CN113326516A (zh) | 区块链共识方法、区块链系统及计算机设备 | |
CN113407632A (zh) | 一种基于pbft的委托权益证明区块链共识算法 | |
CN108648081B (zh) | 一种基于区块链的交易处理方法、装置和电子设备 | |
CN108712468B (zh) | 一种区块链收益分配方法和分配系统 | |
Zhang et al. | An efficient and robust committee structure for sharding blockchain | |
EP3900287A1 (en) | Technique for computing a block in a blockchain network | |
CN113626875A (zh) | 一种区块链分片赋能的知识图谱文件存储方法 | |
Sun et al. | An efficient and secure trading framework for shared charging service based on multiple consortium blockchains | |
CN111865595A (zh) | 一种区块链的共识方法及装置 | |
Rahmani | Blockchain technology: principles and algorithms | |
CN116977077A (zh) | 一种区块链共识机制及实现系统、共识节点、区块链系统 | |
CN115065689B (zh) | 一种基于历史评价的联盟链区块数据存储方法及系统 | |
Mohsenzadeh et al. | A novel reputation-based consensus framework (RCF) in distributed ledger technology | |
US20230198773A1 (en) | Voting using choice coin on a blockchain | |
CN110321218A (zh) | 一种基于点对点网络系统求解混合整数程序的方法 | |
Drakatos et al. | Rapid blockchain scaling with efficient transaction assignment |
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 |