CN114629654A - 一种面向信任管理机制的双链区块链及其共识方法 - Google Patents
一种面向信任管理机制的双链区块链及其共识方法 Download PDFInfo
- Publication number
- CN114629654A CN114629654A CN202210231266.1A CN202210231266A CN114629654A CN 114629654 A CN114629654 A CN 114629654A CN 202210231266 A CN202210231266 A CN 202210231266A CN 114629654 A CN114629654 A CN 114629654A
- Authority
- CN
- China
- Prior art keywords
- block
- chain
- node
- consensus
- transaction
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000000694 effects Effects 0.000 claims abstract description 64
- 230000007246 mechanism Effects 0.000 claims abstract description 31
- 230000006399 behavior Effects 0.000 claims description 38
- 230000001186 cumulative effect Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 239000008709 Curare Substances 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 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
-
- 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/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
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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
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)
Abstract
本发明公开了一种面向信任管理机制的双链区块链及其共识方法,涉及信任管理领域;双链区块链将事务数据和信任数据分开进行存储,形成事务链和信誉链并行的双链结构,便于数据的维护和检索;事务链和信誉链分别用来存储不同的信息;使用贡献度证明(Proofof Contribution,PoC)进行事务链的共识,基于共识节点在过去一段时间内对整个区块链的贡献度来计算事务块的块贡献度,只有满足上链阈值的区块才能被正式加入事务链;使用活跃度证明(ProofofActivity,PoA)进行信誉链的共识,基于在过往时间内请求节点的活跃程度对信誉块达成共识;两种共识方法都能够避免节点的算力浪费,解决出块权力集中的问题,同时具有强一致性,避免了区块链分叉问题,区块能够得到快速确认。
Description
技术领域
本发明涉及信任管理领域,尤其涉及一种面向信任管理机制的双链区块链及其共识方法。
背景技术
从本质上讲,区块链是一个分布式的共享账本和数据库,具有去中心化、公开透明、不可伪造、可追溯等特性,确保存储在其中的数据的完整性和真实性。由于区块链能够解决信息不对称问题,使得它拥有丰富的应用场景。共识机制是区块链系统安全性的重要保障。它通过数学的方式,让参与区块链网络的分布式节点就区块的创建达成共识,保证所有节点持有的区块链副本在一定时间之后是一致的。
传统的中心化数据存储方式不能满足物联网的可扩展性,也不能避免单点故障问题;存储在本地的信任数据则可能会被恶意节点篡改。为了解决上述问题,区块链技术和共识协议被引入物联网的信任管理机制中,用来保证信任数据的完整性和可追溯性。
目前,在信任管理系统中,区块链为单链结构,事务数据和信任数据一起被存储在同一个区块中;并由参与节点共同维护和管理区块链网络,保证区块中数据的完整性。当进行信任计算时,需要从区块链中筛选出信任数据进行下一步工作。于此同时,在信任管理系统中,为了减少节点的算力消耗,区块链所使用的共识机制,主要有如下两种:一是结合PoS和PoW 的共识机制,通过节点持有股权的多少,动态调节PoW中数学问题的难度。节点持有的股权越多,进行PoW的数学运算时目标难度越低,优先完成数学难题的节点拥有出块权。二是PoS 共识机制的变体,将节点的信任分数作为股权,选择信任分数高的节点作为区块的创建者。
在信任管理系统中,单链区块链结构将事务数据和信任数据一起存储在同一个区块中,没有做到数据的分离,不利于数据的搜索和使用。其所使用的共识机制也存在一定的问题。在PoS和PoW相结合的共识协议中,股权越大并且算力越高的节点会持续持有创建区块的权力,节点进行PoW的数学计算会造成算力浪费;在类PoS共识机制中,可信节点将会持续持有创建区块的权力,导致新加入的节点无法获得出块权。这两种方法都会造成创建区块的权力集中的问题,最终会导致只有某些节点才能进行区块的创建,这与区块链去中心化的特性是相违背的。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种面向信任管理机制的双链区块链及其共识方法;双链区块链将事务数据和信任数据分开进行存储,形成事务链和信誉链并行的双链结构,便于数据的维护和检索;事务链和信誉链分别用来存储不同的信息,使用不同的共识算法交叉产生事务块和信誉块;使用贡献度证明(Proof ofContribution, PoC)进行事务链的共识,基于共识节点在过去一段时间内对整个区块链的贡献度来计算事务块的块贡献度,只有满足上链阈值的区块才能被正式加入事务链;使用活跃度证明(Proof of Activity,PoA)进行信誉链的共识,基于在过往时间内请求节点的活跃程度对信誉块达成共识;PoA和PoC两种共识方法都能够避免节点的算力浪费,解决出块权力集中的问题,同时具有强一致性,避免了区块链分叉问题,区块能够得到快速确认。
本发明所采取的技术方案是:
一方面,本发明提供一种面向信任管理机制的双链区块链;
所述面向信任管理机制的双链区块链:在区块链的单链结构的基础上增加一条单链,建立事务链和信誉链并行的双链结构,将事务数据和信任数据分开进行存储。
所述双链结构的区块链的模型中,在每条单链中,每个块之间通过包含前一个块的哈希值进行连接,形成链式结构;在双链之间,位于不同链的两个块之间通过信誉块包含事务块的块ID实现对应关系。
所述事务块中,事务块的块头包含参与事务块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值以及merkle树的树根,事务块的块体包含以merkle树结构存储的事务信息。
所述信誉块中,信誉块的块头包含参与信誉块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值、merkle树的树根以及信誉块对应的事务块的块ID,信誉块的块体包含以 merkle树结构存储的信任信息、共识节点在贡献度证明共识过程中的行为信息集。
所述事务信息包括事务的索引值ID,请求节点ID,服务提供节点ID,时间戳和服务摘要。
所述信任信息包括事务的索引值ID,请求节点的评级,请求节点对推荐节点的信任反馈和时间戳。
所述行为信息集包含所有参加PoC共识过程的共识节点的行为信息,所述行为信息包含共识节点ID,节点在共识过程的投票行为,共识节点的累积贡献度。
另一方面,本发明还提出了一种面向信任管理机制的双链区块链的共识方法,用于实现所述面向信任管理机制的双链区块链的共识过程,具体包括:用于事务链共识的贡献度证明共识算法、用于信誉链共识的活跃度证明共识算法;其中,贡献度证明共识算法根据信誉链中最后(Q+1)*M个区块的信息对事务块进行共识;活跃度证明共识算法根据事务链中最后N个块的信息对信誉块进行共识。
所述贡献度证明共识算法进行事务链共识的过程中,若事务链和信誉链的高度都为L,每个信誉块的块体存储了节点在PoC共识过程中的行为表现和累积贡献度,根据信誉链中最后 (Q+1)*M个块的信息对事务块进行共识,产生事务链中第L+1个块,具体包括以下步骤:
S1:选择T个委员会成员;
以第L个事务块和第L个信誉块的hash值及系统当前产生的T个随机数种子为数据源,产生 T个委员会成员;
S2:计算每个委员会成员的贡献度;
节点当前贡献度Ccur由累积贡献度Cacc和近期贡献度Crec加权得到,如式(1)所示:
Ccur=α×Cacc+(1-α)×Crec (1)
其中,α表示动态权重;
近期贡献度Crec通过信誉链中最后M个块中的信息计算得到,如式(2)-式(4)所示:
其中,β表示共识节点的近期累积行为,γ是根据β计算得到的;当节点在第i个块中诚实投票时,hi=1并且mi=0;当节点在第i个块中恶意投票时,hi=0并且mi=-1;θ是一个惩罚因子,用来控制节点恶意投票行为的比重;近期贡献度Crec的取值范围是[-1,1];
累积贡献度Cacc是在Q*M个区块的范围内搜索得到的共识节点最近的累积贡献度的值;系统初始的时候,Cacc=0;若在Q*M个块的范围内没有搜索到共识节点的累积贡献度,则Cacc=0;累积贡献度在事务块合法加入到事务链后进行计算,同此次投票的行为一起被收集并记录在信誉块中的节点行为集内;
当前贡献度Ccur,基于动态权重α计算,α的上下限为[Lα,Uα],如式(5)、式(6)所示:
其中,Tv是共识节点在最后M个块内参与贡献度证明的次数,Pv是一个可以根据网络的大小进行调整的预定义值;Lα和Uα的取值范围是[0,1];
若当前信誉链高度小于M,则使用所有块的信息计算Crec,此时Cacc=0;如果当前信誉链高度小于(Q+1)*M,则在(信誉链高度-M)个块中寻找共识节点的累积贡献度Cacc;
S3:收集事务打包成块;
T个委员会成员中,当前贡献度Ccur最高的节点负责收集事务并打包成块,同时附上节点的当前贡献度;
S4:计算块贡献度;
剩余T-1个委员会成员节点负责验证区块并进行投票,同时附上剩余T-1个委员会成员节点的当前贡献度,得到区块的块贡献度,如式(7)所示:
S5:判断区块能否上链;
区块上链取决于事务块的块贡献度Cblock和上链阈值Cthres的大小关系;
按照Cthres=0,一个区块能否上链有以下3种情况:
情况1:Cblock大于Cthres;区块被直接添加到事务链;
情况2:Cblock小于Cthres;区块被丢弃,重复S1-S5;
情况3:Cblock等于Cthres;分为以下两种子情况:
(1)若所有共识节点的Ccur都是0,取决于赞成和反对的委员会成员节点数量,当赞成的节点数量大于反对的节点数量,则区块被直接添加到事务链上,当赞成的节点数量小于或等于反对的节点数量,则区块被丢弃,重复S1-S5;
(2)若不是所有节点的Ccur都是0,取决于当前贡献度Ccur最大的节点是反对还是赞成,若赞成则区块被直接添加到事务链,若反对则区块被丢弃,重复S1-S5;
S6:计算累积贡献度;
当事务块被合法添加到事务链后,计算参与此次共识的委员会成员节点的累积贡献度;
节点的投票行为分为两种:
(1)诚实投票表示节点赞成该块上链且区块最终被添加到链上;
(2)恶意投票表示节点反对该块上链且区块最终被添加到链上;
根据共识过程中委员会成员节点的行为,对节点进行奖励或者惩罚,得到节点的累积贡献度;累积贡献度Cacc的取值范围是[-1,1],当Cacc>1时,Cacc=1;当Cacc<-1时,Cacc=-1;如式(8) 所示:
其中,reward表示当节点进行诚实投票时,所获得的奖励;punish表示当节点进行恶意投票时,所受到的惩罚;
其中,punish与以下3个条件有关,如式(9)、式(10)所示:
条件1:恶意投票节点的当前贡献度Ccur的绝对值越大,对节点惩罚越大;
条件2:恶意投票的节点数量Nummal越多,对恶意投票节点的惩罚越大;
条件3:块贡献度Cblock越低,对恶意投票节点的惩罚越大;
w1+w2+w3=1 (10)
其中,Pc表示惩罚因子,控制整个惩罚度的大小,Pc为常量;w1、w2、w3为条件1、条件2、条件3的权重系数;
诚实投票节点的奖励是根据对恶意投票节点的惩罚获得,如式(11)所示:
其中,punishv表示恶意投票节点v所受到的惩罚,Numhon表示诚实投票节点的数量。
所述活跃度证明共识算法:在双链共识过程中,事务链先于信誉链得到共识;在使用活跃度证明进行信誉链共识的过程中,若当前事务链的高度为L+1,信誉链的高度为L,产生信誉链中第L+1个块,需根据事务链中除第L+1个块外的最后N个块的信息进行共识,包括以下步骤:
S1:计算请求者的活跃度;
根据事务链中除第L+1个块外的最后N个块中的数据计算请求者的活跃度,如式(12)所示:
其中,activityi表示节点i的活跃度;Numi是节点i在N个块中总的请求次数,Total是在N 个块中所有节点的请求次数之和;
S2:选取委员会成员;
根据节点活跃度activity对N个块中的所有请求节点进行排序,并对所有节点按照排序顺序均分成三个集合(高activity,中activity,低activity),并按照X(高activity)、Y(中activity)、Z(低activity)的数量分别从三个集合中随机选取委员会成员;X、Y和Z的关系如公式(13)、公式(14)所示:
X>Y>Z (13)
X≥Y+Z (14)
S3:收集事务打包成块;
在X+Y+Z个委员会成员节点中,具有最高活跃度activity的节点负责收集事务并打包成块;
S4:验证区块合法性;
将S3中除具有最高activity的节点外,其余X+Y+Z-1个节点验证区块并进行投票;在X+Y+Z 个委员会成员节点中,若赞同区块上链的节点占比大于或等于设定阈值,将区块加入到信誉链中;若赞同区块上链的节点占比小于设定阈值,信誉块被丢弃,重复S1-S4。
所述S4中判断赞同区块上链的节点占比的设定阈值应大于50%。
有益技术效果
1、本发明中的双链区块链结构将事务数据和信任数据分开进行存储,实现了数据分类,便于数据的检索和利用。
2、贡献度证明和活跃度证明共识算法都可以避免出块权利集中的问题。在贡献度证明过程中,委员会成员是通过前一个事务块和信誉块的hash值,以及系统当前产生的T个随机数种子为数据源产生的;委员会成员的选择具有不可预测性,所有的节点都有相同的机会行使出块的权力,避免了出块权利集中的问题。在活跃度证明过程中,委员会成员是从高activity,中activity,低activity三个集合中分别随机选择X、Y、Z个节点,这让所有节点都有机会成为出块者;并且活跃度高的节点更加依赖于这个区块链系统,所以有更高的概率成为委员会成员。
3、贡献度证明和活跃度证明共识算法都可以避免算力浪费问题,降低出块时间。在贡献度证明过程中,只需要计算T个委员会成员节点的贡献度、惩罚度以及奖励度,不需要所有节点付出大量算力竞争出块的权力。在活跃度证明过程中,只需要计算节点在N个块中的活跃度,计算简单,避免了算力的浪费,提高了吞吐量。
4、贡献度证明和活跃度证明共识算法都具有较高的抵抗攻击的能力。在贡献度证明中,系统会定期检查节点贡献度,限制具有较低贡献度的节点参与共识过程。只有当区块链网络中超过50%的节点是恶意节点时,委员会成员中恶意节点的概率会超过50%,反对区块上链的节点的贡献度绝对值之和才有可能大于赞成区块上链的节点的贡献度之和,使系统对诚实节点产生的块进行丢弃,提高出块延迟;当委员会中恶意节点对整个网络的贡献度超过诚实节点才可以向区块链中加入恶意事务块,而这需要恶意节点在之前的共识中总是行为诚实,以保证恶意节点的贡献度是足够大的正值。在活跃度证明中,若恶意节点想要成功将恶意块加入到信誉链上,需要一个具有最高activity的恶意节点负责收集事务打包成块,并且委员会成员中赞同恶意区块上链的节点的占比必须超过设定阈值;若恶意节点是为了降低吞吐量、提高区块丢弃率和共识延迟,委员会成员中反对诚实区块上链的恶意节点数量需要足够多,使得赞同区块上链的节点的占比低于设定阈值。无论是想要将恶意区块加入到区块链,还是恶意节点想要提高共识延迟,都需要恶意节点持续保持节点贡献度或者节点活跃度,并且恶意节点在所有节点中占有较高比例,这对恶意节点来说代价巨大。
附图说明
图1为本发明实施例提供的一种面向信任管理机制的双链区块链结构示意图;
图2为本发明实施例提供的事务块和信誉块的区块结构示意图;
图3为本发明实施例提供的事务信息和信任信息的结构示意图;
图4为本发明实施例提供的节点在PoC中的行为信息集和行为信息的结构示意图;
图5为本发明实施例提供的双链区块链交叉共识过程的示意图;
图6为本发明实施例提供的贡献度证明共识算法的流程图;
图7为本发明实施例提供的节点累积贡献度和近期贡献度计算范围的示意图;
图8为本发明实施例提供的活跃度证明共识算法的流程图;
图9为本发明实施例提供的请求节点活跃度的计算范围的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本实施例中,提供一种面向信任管理机制的双链区块链及其共识方法;双链区块链将事务数据和信任数据分开进行存储,形成事务链和信誉链并行的双链结构,便于数据的维护和检索;事务链和信誉链分别用来存储不同的信息,使用不同的共识算法交叉产生事务块和信誉块;使用贡献度证明(Proof of Contribution,PoC)进行事务链的共识,基于共识节点在过去一段时间内对整个区块链的贡献度来计算事务块的块贡献度,只有满足上链阈值的区块才能被正式加入事务链;使用活跃度证明(Proof of Activity,PoA)进行信誉链的共识,基于在过往时间内请求节点的活跃程度对信誉块达成共识;PoA和PoC两种共识方法都能够避免节点的算力浪费,解决出块权力集中的问题,同时具有强一致性,避免了区块链分叉问题,区块能够得到快速确认。
本发明所采取的技术方案是:
一方面,本发明提供一种面向信任管理机制的双链区块链;
所述面向信任管理机制的双链区块链:如图1所示,在区块链的单链结构的基础上增加一条单链,建立事务链和信誉链并行的双链结构,将事务数据和信任数据分开进行存储。
如图1所示,所述双链结构的区块链的模型中,在每条单链中,每个块之间通过包含前一个块的哈希值进行连接,形成链式结构;在双链之间,位于不同链的两个块之间通过信誉块包含事务块的块ID实现对应关系。
如图2所示,所述事务块中,事务块的块头包含参与事务块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值以及merkle树的树根,事务块的块体包含以merkle树结构存储的事务信息。
如图2所示,所述信誉块中,信誉块的块头包含参与信誉块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值、merkle树的树根以及信誉块对应的事务块的块ID,信誉块的块体包含以merkle树结构存储的信任信息、共识节点在贡献度证明共识过程中的行为信息集。
如图3所示,所述事务信息包括事务的索引值ID,请求节点ID,服务提供节点ID,时间戳和服务摘要。
如图3所示,所述信任信息包括事务的索引值ID,请求节点的评级,请求节点对推荐节点的信任反馈和时间戳。
如图4所示,所述行为信息集包含所有参加PoC共识过程的共识节点的行为信息,所述行为信息包含共识节点ID,节点在共识过程的投票行为,共识节点的累积贡献度。
另一方面,本发明还提出了一种面向信任管理机制的双链区块链的共识方法,用于实现所述面向信任管理机制的双链区块链的共识过程,具体包括:用于事务链共识的贡献度证明共识算法、用于信誉链共识的活跃度证明共识算法;如图5所示,贡献度证明共识算法根据信誉链中最后(Q+1)*M个区块的信息对事务块进行共识;活跃度证明共识算法根据事务链中最后 N个块的信息对信誉块进行共识。
所述贡献度证明共识算法进行事务链共识的过程中,若事务链和信誉链的高度都为L,每个信誉块的块体存储了节点在PoC共识过程中的行为表现和累积贡献度,根据信誉链中最后 (Q+1)*M个块的信息对事务块进行共识,产生事务链中第L+1个块。在实施例中,Q=2并且M=5,其具体流程如图6所示,具体包括以下步骤:
S1:选择T个委员会成员;
以第L个事务块和第L个信誉块的hash值及系统当前产生的T个随机数种子为数据源,产生 T个委员会成员,在实施例中,T=10;
S2:计算每个委员会成员的贡献度;
节点当前贡献度Ccur由累积贡献度Cacc和近期贡献度Crec加权得到,如式(1)所示:
Ccur=α×Cacc+(1-α)×Crec (1)
其中,α表示动态权重;
如图7所示,近期贡献度Crec通过信誉链中最后M个块中的信息计算得到,如式(2)-式(4) 所示:
其中,β表示共识节点的近期累积行为,γ是根据β计算得到的。当节点在第i个块中诚实投票时,hi=1并且mi=0;当节点在第i个块中恶意投票时,hi=0并且mi=-1;θ是一个惩罚因子,用来控制节点恶意投票行为的比重,在实施例中,θ=1.1;近期贡献度Crec的取值范围是 [-1,1];
如图7所示,累积贡献度Cacc是在Q*M个区块的范围内搜索得到的共识节点最近的累积贡献度的值;系统初始的时候,Cacc=0;若在Q*M个块的范围内没有搜索到共识节点的累积贡献度,则Cacc=0;累积贡献度在事务块合法加入到事务链后进行计算,同此次投票的行为一起被收集并记录在信誉块中的节点行为集内;
当前贡献度Ccur,基于动态权重α计算,α的上下限为[Lα,Uα],如式(5)、式(6)所示:
其中,Tv是共识节点在最后M个块内参与贡献度证明的次数,Pv是一个可以根据网络的大小进行调整的预定义值,在实施例中,Pv=5;Lα和Uα的取值范围是[0,1],在实施例中,Lα=0.2, Uα=0.8;
若当前信誉链高度小于M,则使用所有块的信息计算Crec,此时Cacc=0;如果当前信誉链高度小于(Q+1)*M,则在(信誉链高度-M)个块中寻找共识节点的累积贡献度Cacc;
S3:收集事务打包成块;
T个委员会成员中,当前贡献度Ccur最高的节点负责收集事务并打包成块,同时附上节点的当前贡献度;
S4:计算块贡献度。
剩余T-1个委员会成员节点负责验证区块并进行投票,同时附上剩余T-1个委员会成员节点的当前贡献度,得到区块的块贡献度,如式(7)所示:
S5:判断区块能否上链;
区块上链取决于事务块的块贡献度Cblock和上链阈值Cthres的大小关系;
按照Cthres=0,一个区块能否上链有以下3种情况:
情况1:Cblock大于Cthres;区块被直接添加到事务链;
情况2:Cblock小于Cthres;区块被丢弃,重复S1-S5;
情况3:Cblock等于Cthres;分为以下两种子情况:
(1)若所有共识节点的Ccur都是0,取决于赞成和反对的委员会成员节点数量,当赞成的节点数量大于反对的节点数量,则区块被直接添加到事务链上,当赞成的节点数量小于或等于反对的节点数量,则区块被丢弃,重复S1-S5;
(2)若不是所有节点的Ccur都是0,取决于当前贡献度Ccur最大的节点是反对还是赞成,若赞成则区块被直接添加到事务链,若反对则区块被丢弃,重复S1-S5;
S6:计算累积贡献度;
当事务块被合法添加到事务链后,计算参与此次共识的委员会成员节点的累积贡献度;
节点的投票行为分为两种:
(1)诚实投票表示节点赞成该块上链且区块最终被添加到链上;
(2)恶意投票表示节点反对该块上链且区块最终被添加到链上;
根据共识过程中委员会成员节点的行为,对节点进行奖励或者惩罚,得到节点的累积贡献度;累积贡献度Cacc的取值范围是[-1,1],当Cacc>1时,Cacc=1;当Cacc<-1时,Cacc=-1;如式(8) 所示:
其中,reward表示当节点进行诚实投票时,所获得的奖励;punish表示当节点进行恶意投票时,所受到的惩罚;
其中,punish与以下3个条件有关,如式(9)、式(10)所示:
条件1:恶意投票节点的当前贡献度Ccur的绝对值越大,对节点惩罚越大;
条件2:恶意投票的节点数量Nummal越多,对恶意投票节点的惩罚越大;
条件3:块贡献度Cblock越低,对恶意投票节点的惩罚越大;
w1+w2+w3=1 (10)
其中,Pc表示惩罚因子,控制整个惩罚度的大小,Pc为常量,在实施例中Pc=20;w1、w2、w3为条件1、条件2、条件3的权重系数,在实施例中,w1=0.3,w2=0.3,w3=0.4;
诚实投票节点的奖励是根据对恶意投票节点的惩罚获得,如式(11)所示:
其中,punishv表示恶意投票节点v所受到的惩罚,Numhon表示诚实投票节点的数量。
活跃度证明共识算法:在双链共识过程中,事务链先于信誉链得到共识;在使用活跃度证明进行信誉链共识的过程中,若当前事务链的高度为L+1,信誉链的高度为L,产生信誉链中第L+1个块,需根据事务链中除第L+1个块外的最后N个块的信息进行共识,其具体流程如图 8所示,包括以下步骤:
S1:计算请求者的活跃度;
如图9所示,根据事务链中除第L+1个块外的最后N个块中的数据计算请求者的活跃度,在实施例中,N=15,如式(12)所示:
其中,activityi表示节点i的活跃度;Numi是节点i在N个块中总的请求次数,Total是在N 个块中所有节点的请求次数之和;
S2:选取委员会成员;
根据节点活跃度activity对N个块中的所有请求节点进行排序,并对所有节点按照排序顺序均分成三个集合(高activity,中activity,低activity),并按照3(高activity)、2(中 activity)、1(低activity)的数量分别从三个集合中随机选取委员会成员;
在本实施例中,X=3、Y=2、Z=1;3(高activity)、2(中activity)及1(低activity) 的关系如公式(13)、公式(14)所示:
3(高activity)>2(中activity)>1(低activity) (13)
3(高activity)≥2(中activity)+1(低activity) (14)
S3:收集事务打包成块;
在3+2+1个委员会成员节点中,具有最高活跃度activity的节点负责收集事务并打包成块;
S4:验证区块合法性;
将S3中除具有最高activity的节点外,其余5个节点验证区块并进行投票;在6个委员会成员节点中,若赞同区块上链的节点占比大于或等于设定阈值,本实施例中,阈值设定为2/3;将区块加入到信誉链中;若赞同区块上链的节点占比小于设定阈值,信誉块被丢弃,重复S1-S4。
Claims (10)
1.一种面向信任管理机制的双链区块链,其特征在于:在区块链的单链结构的基础上增加一条单链,建立事务链和信誉链并行的双链结构,将事务数据和信任数据分开进行存储;
所述双链结构的区块链的模型中,在每条单链中,每个块之间通过包含前一个块的哈希值进行连接,形成链式结构;在双链之间,位于不同链的两个块之间通过信誉块包含事务块的块ID实现对应关系。
2.如权利要求1所述的面向信任管理机制的双链区块链,其特征在于:所述事务块中,事务块的块头包含参与事务块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值以及merkle树的树根,事务块的块体包含以merkle树结构存储的事务信息。
3.如权利要求1所述的面向信任管理机制的双链区块链,其特征在于:所述信誉块中,信誉块的块头包含参与信誉块共识的节点ID的集合、块ID、时间戳、前一个块的哈希值、merkle树的树根以及信誉块对应的事务块的块ID,信誉块的块体包含以merkle树结构存储的信任信息、共识节点在贡献度证明共识过程中的行为信息集。
4.如权利要求2所述的面向信任管理机制的双链区块链,其特征在于:所述事务信息包括事务的索引值ID,请求节点ID,服务提供节点ID,时间戳和服务摘要。
5.如权利要求3所述的面向信任管理机制的双链区块链,其特征在于:所述信任信息包括事务的索引值ID,请求节点的评级,请求节点对推荐节点的信任反馈和时间戳。
6.如权利要求3所述的面向信任管理机制的双链区块链,其特征在于:所述行为信息集包含所有参加PoC共识过程的共识节点的行为信息,所述行为信息包含共识节点ID,节点在共识过程的投票行为,共识节点的累积贡献度。
7.一种面向信任管理机制的双链区块链的共识方法,用于实现权利要求1所述的面向信任管理机制的双链区块链的共识过程,其特征在于:具体包括:用于事务链共识的贡献度证明共识算法、用于信誉链共识的活跃度证明共识算法;其中,贡献度证明共识算法根据信誉链中最后(Q+1)*M个区块的信息对事务块进行共识;活跃度证明共识算法根据事务链中最后N个块的信息对信誉块进行共识。
8.如权利要求7所述的面向信任管理机制的双链区块链的共识方法,其特征在于:所述贡献度证明共识算法进行事务链共识的过程中,若事务链和信誉链的高度都为L,每个信誉块的块体存储了节点在PoC共识过程中的行为表现和累积贡献度,根据信誉链中最后(Q+1)*M个块的信息对事务块进行共识,产生事务链中第L+1个块,具体包括以下步骤:
S1:选择T个委员会成员;
以第L个事务块和第L个信誉块的hash值及系统当前产生的T个随机数种子为数据源,产生T个委员会成员;
S2:计算每个委员会成员的贡献度;
节点当前贡献度Ccur由累积贡献度Cacc和近期贡献度Crec加权得到,如式(1)所示:
Ccur=α×Cacc+(1-α)×Crec (1)
其中,α表示动态权重;
近期贡献度Crec通过信誉链中最后M个块中的信息计算得到,如式(2)-式(4)所示:
其中,β表示共识节点的近期累积行为,γ是根据β计算得到的;当节点在第i个块中诚实投票时,hi=1并且mi=0;当节点在第i个块中恶意投票时,hi=0并且mi=-1;θ是一个惩罚因子,用来控制节点恶意投票行为的比重;近期贡献度Crec的取值范围是[-1,1];
累积贡献度Cacc是在Q*M个区块的范围内搜索得到的共识节点最近的累积贡献度的值;系统初始的时候,Cacc=0;若在Q*M个块的范围内没有搜索到共识节点的累积贡献度,则Cacc=0;累积贡献度在事务块合法加入到事务链后进行计算,同此次投票的行为一起被收集并记录在信誉块中的节点行为集内;
当前贡献度Ccur,基于动态权重α计算,α的上下限为[Lα,Uα],如式(5)、式(6)所示:
其中,Tv是共识节点在最后M个块内参与贡献度证明的次数,Pv是一个可以根据网络的大小进行调整的预定义值;Lα和Uα的取值范围是[0,1];
若当前信誉链高度小于M,则使用所有块的信息计算Crec,此时Cacc=0;如果当前信誉链高度小于(Q+1)*M,则在(信誉链高度-M)个块中寻找共识节点的累积贡献度Cacc;
S3:收集事务打包成块;
T个委员会成员中,当前贡献度Ccur最高的节点负责收集事务并打包成块,同时附上节点的当前贡献度;
S4:计算块贡献度;
剩余T-1个委员会成员节点负责验证区块并进行投票,同时附上剩余T-1个委员会成员节点的当前贡献度,得到区块的块贡献度,如式(7)所示:
S5:判断区块能否上链;
区块上链取决于事务块的块贡献度Cblock和上链阈值Cthres的大小关系;
按照Cthres=0,一个区块能否上链有以下3种情况:
情况1:Cblock大于Cthres;区块被直接添加到事务链;
情况2:Cblock小于Cthres;区块被丢弃,重复S1-S5;
情况3:Cblock等于Cthres;分为以下两种子情况:
(1)若所有共识节点的Ccur都是0,取决于赞成和反对的委员会成员节点数量,当赞成的节点数量大于反对的节点数量,则区块被直接添加到事务链上,当赞成的节点数量小于或等于反对的节点数量,则区块被丢弃,重复S1-S5;
(2)若不是所有节点的Ccur都是0,取决于当前贡献度Ccur最大的节点是反对还是赞成,若赞成则区块被直接添加到事务链,若反对则区块被丢弃,重复S1-S5;
S6:计算累积贡献度;
当事务块被合法添加到事务链后,计算参与此次共识的委员会成员节点的累积贡献度;
节点的投票行为分为两种:
(1)诚实投票表示节点赞成该块上链且区块最终被添加到链上;
(2)恶意投票表示节点反对该块上链且区块最终被添加到链上;
根据共识过程中委员会成员节点的行为,对节点进行奖励或者惩罚,得到节点的累积贡献度;累积贡献度Cacc的取值范围是[-1,1],当Cacc>1时,Cacc=1;当Cacc<-1时,Cacc=-1;如式(8)所示:
其中,reward表示当节点进行诚实投票时,所获得的奖励;punish表示当节点进行恶意投票时,所受到的惩罚;
其中,punish与以下3个条件有关,如式(9)、式(10)所示:
条件1:恶意投票节点的当前贡献度Ccur的绝对值越大,对节点惩罚越大;
条件2:恶意投票的节点数量Nummal越多,对恶意投票节点的惩罚越大;
条件3:块贡献度Cblock越低,对恶意投票节点的惩罚越大;
w1+w2+w3=1 (10)
其中,Pc表示惩罚因子,控制整个惩罚度的大小,Pc为常量;w1、w2、w3为条件1、条件2、条件3的权重系数;
诚实投票节点的奖励是根据对恶意投票节点的惩罚获得,如式(11)所示:
其中,punishv表示恶意投票节点v所受到的惩罚,Numhon表示诚实投票节点的数量。
9.如权利要求7所述的面向信任管理机制的双链区块链的共识方法,其特征在于:所述活跃度证明共识算法:在双链共识过程中,事务链先于信誉链得到共识;在使用活跃度证明进行信誉链共识的过程中,若当前事务链的高度为L+1,信誉链的高度为L,产生信誉链中第L+1个块,需根据事务链中除第L+1个块外的最后N个块的信息进行共识,包括以下步骤:
S1:计算请求者的活跃度;
根据事务链中除第L+1个块外的最后N个块中的数据计算请求者的活跃度,如式(12)所示:
其中,activityi表示节点i的活跃度;Numi是节点i在N个块中总的请求次数,Total是在N个块中所有节点的请求次数之和;
S2:选取委员会成员;
根据节点活跃度activity对N个块中的所有请求节点进行排序,并对所有节点按照排序顺序均分成三个集合(高activity,中activity,低activity),并按照X(高activity)、Y(中activity)、Z(低activity)的数量分别从三个集合中随机选取委员会成员;X、Y和Z的关系如公式(13)、公式(14)所示:
X>Y>Z (13)
X≥Y+Z (14)
S3:收集事务打包成块;
在X+Y+Z个委员会成员节点中,具有最高活跃度activity的节点负责收集事务并打包成块;
S4:验证区块合法性;
将S3中除具有最高activity的节点外,其余X+Y+Z-1个节点验证区块并进行投票;在X+Y+Z个委员会成员节点中,若赞同区块上链的节点占比大于或等于设定阈值,将区块加入到信誉链中;若赞同区块上链的节点占比小于设定阈值,信誉块被丢弃,重复S1-S4。
10.如权利要求9所述的面向信任管理机制的双链区块链的共识方法,其特征在于:所述S4中判断赞同区块上链的节点占比的设定阈值应大于50%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231266.1A CN114629654B (zh) | 2022-03-09 | 2022-03-09 | 一种面向信任管理机制的双链区块链及其共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210231266.1A CN114629654B (zh) | 2022-03-09 | 2022-03-09 | 一种面向信任管理机制的双链区块链及其共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629654A true CN114629654A (zh) | 2022-06-14 |
CN114629654B CN114629654B (zh) | 2024-05-24 |
Family
ID=81899451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210231266.1A Active CN114629654B (zh) | 2022-03-09 | 2022-03-09 | 一种面向信任管理机制的双链区块链及其共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629654B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174685A (zh) * | 2022-07-05 | 2022-10-11 | 上海交通大学 | 基于流水线机制的区块链中的非中断式跨链委员会换届方法 |
CN116996521A (zh) * | 2023-09-28 | 2023-11-03 | 江西农业大学 | 基于信任评估模型的中继委员会跨链交互系统及方法 |
CN116582243B (zh) * | 2023-04-20 | 2024-06-07 | 中国人民解放军战略支援部队信息工程大学 | 基于森林拓扑结构的区块链系统分层跨链共识方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018232493A1 (en) * | 2017-06-24 | 2018-12-27 | Zeu Crypto Networks Inc. | DOUBLE CHAIN BLOCK CHAINS NETWORK FOR REALIZING CHAIN TRANSACTIONS |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
KR20190048666A (ko) * | 2017-10-31 | 2019-05-09 | 한국전자통신연구원 | 블록체인 기반의 온라인 상품 거래와 평판정보 관리 방법 및 장치 |
CN111291418A (zh) * | 2020-01-15 | 2020-06-16 | 盛合区块链科技发展(深圳)有限公司 | 一种基于区块链的双层商用运营架构操作系统 |
CN111935674A (zh) * | 2020-08-17 | 2020-11-13 | 重庆邮电大学 | 一种基于区块链技术的车联网分层认证方法 |
CN112991128A (zh) * | 2021-03-02 | 2021-06-18 | 北京航空航天大学 | 一种区块链技术的数据共享社区治理方法 |
CN113327112A (zh) * | 2021-06-01 | 2021-08-31 | 华北电力大学 | 一种基于跨链互操作的综合能源微网群高信誉度分布式交易方法 |
CN113553380A (zh) * | 2021-07-23 | 2021-10-26 | 东北大学 | 面向信誉-行为关联双区块链的数据溯源系统 |
-
2022
- 2022-03-09 CN CN202210231266.1A patent/CN114629654B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018232493A1 (en) * | 2017-06-24 | 2018-12-27 | Zeu Crypto Networks Inc. | DOUBLE CHAIN BLOCK CHAINS NETWORK FOR REALIZING CHAIN TRANSACTIONS |
KR20190048666A (ko) * | 2017-10-31 | 2019-05-09 | 한국전자통신연구원 | 블록체인 기반의 온라인 상품 거래와 평판정보 관리 방법 및 장치 |
CN109697606A (zh) * | 2018-09-30 | 2019-04-30 | 贝克链区块链技术有限公司 | 基于创新性的信誉证明共识协议的分布式网络及生态系统 |
CN111291418A (zh) * | 2020-01-15 | 2020-06-16 | 盛合区块链科技发展(深圳)有限公司 | 一种基于区块链的双层商用运营架构操作系统 |
CN111935674A (zh) * | 2020-08-17 | 2020-11-13 | 重庆邮电大学 | 一种基于区块链技术的车联网分层认证方法 |
CN112991128A (zh) * | 2021-03-02 | 2021-06-18 | 北京航空航天大学 | 一种区块链技术的数据共享社区治理方法 |
CN113327112A (zh) * | 2021-06-01 | 2021-08-31 | 华北电力大学 | 一种基于跨链互操作的综合能源微网群高信誉度分布式交易方法 |
CN113553380A (zh) * | 2021-07-23 | 2021-10-26 | 东北大学 | 面向信誉-行为关联双区块链的数据溯源系统 |
Non-Patent Citations (3)
Title |
---|
CHENYU HUANG ET AL.: "RepChain: A Reputation-Based Secure, Fast, and High Incentive Blockchain System via Sharding", IEEE INTERNET OF THINGS JOURNAL, vol. 8, no. 6, pages 1 - 7 * |
包振山等: "基于树形拓扑网络的实用拜占庭容错共识算法", 应用科学学报, no. 01, 30 January 2020 (2020-01-30) * |
蔡维德等: "基于区块链的应用系统开发方法研究", 软件学报, vol. 28, no. 6, 31 July 2017 (2017-07-31) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174685A (zh) * | 2022-07-05 | 2022-10-11 | 上海交通大学 | 基于流水线机制的区块链中的非中断式跨链委员会换届方法 |
CN115174685B (zh) * | 2022-07-05 | 2023-08-11 | 上海交通大学 | 基于流水线机制的区块链中的非中断式跨链委员会换届方法 |
CN116582243B (zh) * | 2023-04-20 | 2024-06-07 | 中国人民解放军战略支援部队信息工程大学 | 基于森林拓扑结构的区块链系统分层跨链共识方法 |
CN116996521A (zh) * | 2023-09-28 | 2023-11-03 | 江西农业大学 | 基于信任评估模型的中继委员会跨链交互系统及方法 |
CN116996521B (zh) * | 2023-09-28 | 2023-12-15 | 江西农业大学 | 基于信任评估模型的中继委员会跨链交互系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114629654B (zh) | 2024-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114629654A (zh) | 一种面向信任管理机制的双链区块链及其共识方法 | |
CN110580653B (zh) | 一种基于交易的区块链共识机制 | |
CN114297722B (zh) | 一种基于区块链的隐私保护异步联邦共享方法及系统 | |
Apesteguia et al. | Imitation and the evolution of Walrasian behavior: Theoretically fragile but behaviorally robust | |
CN111510502A (zh) | 一种基于动态信誉值的pbft共识传播优化方法 | |
Chen et al. | Dim-ds: Dynamic incentive model for data sharing in federated learning based on smart contracts and evolutionary game theory | |
CN108712468B (zh) | 一种区块链收益分配方法和分配系统 | |
CN114462624A (zh) | 一种基于区块链开展可信联邦学习的方法 | |
CN114741721A (zh) | 针对文件区块链的基于贡献值证明的共识装置及共识方法 | |
Liu et al. | A storage sustainability mechanism with heterogeneous miners in blockchain | |
CN113298668B (zh) | 考虑社交网络的移动群智感知用户大规模快速招募方法 | |
Teixeira et al. | Eliciting Fairness in N‐Player Network Games through Degree‐Based Role Assignment | |
Walinono et al. | Ananalysis Of Determinants Of Poverty Rates In Indonesia | |
Fosu et al. | Neoliberalism and economic growth in contemporary Africa | |
Jiang et al. | A novel pricing mechanism for user coalition in blockchain | |
Xiao et al. | Improved Practical Byzantine Fault Tolerance Algorithm Based on Supply Chain | |
Sahin et al. | Optimal Incentive Mechanisms for Fair and Equitable Rewards in PoS Blockchains | |
Yang et al. | Federated Continual Learning via Knowledge Fusion: A Survey | |
Lu et al. | Multi-level two-sided rating protocol design for service exchange contest dilemma in crowdsensing | |
CN116541831B (zh) | 一种基于区块链与联邦学习的双重防御方法 | |
Xie et al. | IAPE Exploration under the International Communication Environment Based on Big Data Analysis of Social Network | |
Wang | Application of IoT in exploring the development path of the whole agricultural industry chain under the perspective of ecological environment | |
Junfeng et al. | Dynamic trust model based on extended subjective logic | |
Chen et al. | Optimize emission reduction commitments for international environmental agreements | |
Wang et al. | Consensus Algorithm of Proof-of-Stake Based on Credit Model |
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 |