CN112804101B - 一种基于投票与信用机制的主从多链跨链方法及*** - Google Patents

一种基于投票与信用机制的主从多链跨链方法及*** Download PDF

Info

Publication number
CN112804101B
CN112804101B CN202110031705.XA CN202110031705A CN112804101B CN 112804101 B CN112804101 B CN 112804101B CN 202110031705 A CN202110031705 A CN 202110031705A CN 112804101 B CN112804101 B CN 112804101B
Authority
CN
China
Prior art keywords
node
chain
block
nodes
voting
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
Application number
CN202110031705.XA
Other languages
English (en)
Other versions
CN112804101A (zh
Inventor
王瑞锦
张凤荔
郭上铜
朱举异
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202110031705.XA priority Critical patent/CN112804101B/zh
Publication of CN112804101A publication Critical patent/CN112804101A/zh
Application granted granted Critical
Publication of CN112804101B publication Critical patent/CN112804101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于投票与信用机制的主从多链跨链方法及***,通过引入投票机制来决定记账权的归属,避免了节点之间的算力竞争,使***中的节点都能公平地获得记账权;通过给节点赋予信用值,从而减小权益对***的影响,同时对节点的行为进行量化评价能够更好地约束节点的行为,使其对恶意行为产生顾虑;并且在此基础上构建一个从链基于POVT共识,主链基于PBFT共识的主从多链分层跨链模型,并对其性能进行了实验分析,结果表明***的效率有了提高,同时对诸如双花攻击、自私挖矿、权益粉碎等攻击手段都有一定的防御能力。

Description

一种基于投票与信用机制的主从多链跨链方法及***
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于投票与信用机制的主从多链跨链方法及***。
背景技术
区块链作为一种分布式数据库,最基本也是最核心的要求是所有的节点能对所保存的数据达成一致,因此共识机制一直是被研究的重点。
目前,区块链技术常用的共识算法有工作量证明PoW(Proof of Work)、权益证明PoS(ProofofStake)与实用拜占庭容错算法PBFT(PracticalByzantineFaultTolerance)等。其中,PoS共识与PoW共识相比,节点通过投入权益使挖矿的难度下降,投入的权益越多,挖矿的难度越低,该方法考虑的是持有代币越多的人越希望保持***的稳定,这样才能使其利益不受损害。但是,这样也带来了新的问题,拥有代币越多的人越有更大的可能性获得出块权,以此得到出块奖励,这样会形成一个恶性循环,不利于***长期的公平与稳定,并且PoS共识最终还是要通过哈希运算来竞争记账权。
因此,如何更加公平的选择出块节点,彻底避免节点之间的算力竞争,提高参与共识的节点的可靠性,同时降低权益对记账权分配的影响,提高***的效率,以及增大对***发起权益粉碎攻击、双花攻击、自私挖矿攻击的难度,是一个亟需解决的技术问题。
发明内容
为了解决上述问题,本发明一方面提供了一种基于投票与信用机制的主从多链跨链方法,所述基于投票与信用机制的主从多链跨链方法包括如下步骤:
从希望参与共识的节点中根据节点的权益及STrust值选择一些节点组成共识节点集合N={(A1,S1,STrust1),(A2,S2,STrust2)...(An,Sn,STrustn)};
将集合中的节点进行编号;
将时间划分为时间片段;
从链通过POVT共识完成完整的从出块到上链的过程;
通过运行梅森旋转算法生成一个伪随机数来产生组成主链的代表节点编号;
主链节点之间通过PBFT算法对数据达成共识,完成上链过程。
优选的,所述POVT共识包括如下步骤:
在共识节点集合中从范围为(1,2,…,Nump)的生产节点中选择编号与随机数R相同的节点成为出块节点;
投票节点在收到生产节点发出的区块验证请求后,对区块中的数据进行验证;
根据生产节点接收的消息,选择记录此时时间的时间戳,或立即取消该节点的共识资格;
判断每个被选择的生产节点出块时间是否超过设定的时间Tb
在每一轮周期结束后,成功参与共识的节点会获得STrust值奖励。
优选的,所述出块节点从交易池中取出一些交易打包并组装成区块,随后将区块广播给投票节点并准备接受投票节点的反馈消息,如果产生的区块是创世区块,则随机数R为1;如果产生的区块是非创世区块,则随机数R由上一生产节点在生成新区块的过程中产生。
优选的,所述随机数R的生成过程如下:
生产节点在向投票节点提交区块后同时收集投票节点的反馈消息,即Signature[i](1≤i≤Numv),同时根据时间戳Timestamp由式(1)的到Rsource:
Figure BDA0002892577220000021
对得到的Rsource进行哈希运算,然后取字符串的后32位将其转化成整数,得到R',如式(2):
R'=StrToInt(SubStringEnd32(Hash(Rsource))) (2)
将R'由(3)可得随机数R:
R=R'mod Nump(1≤R≤Nump) (3)
优选的,通过综合考虑一个节点的有效出块数、有效投票数、参与度等因素,然后使用STrust值来定量地描述一个节点的可信度,再结合节点本身的权益来决定节点是否能够参与共识过程。
优选的,主链节点从集合N中选择,利用从链生产节点计算随机数R的过程中得到的中间数据R'作为梅森旋转算法的种子得到一个随机数Rm,再从集合N中选择编号与Rm相同的节点作为代表节点构成主链。
优选的,在从链的生产节点生成随机数Rm后,将其写进新生成的区块中,在每一周期最后一个从链区块产生后,集合N中所有编号与写入各区块中的Rm相同的节点成为代表节点,代表节点将自己所在从链中已确认的区块数据上传至主链网络中,随后参与共识并将主链区块保存至本地。
本发明的另一方面提供了一种基于投票与信用机制的主从多链跨链***,其特征在于,所述基于投票与信用机制的主从多链跨链***包括:
节点生成模块:从希望参与共识的节点中选择一些节点组成共识节点集合;
时间划分模块:将时间划分为时间片段,每一个时间片为一个周期,每一个周期分成多个时隙;
节点编号模块:对每一个时隙产生区块的生产节点编号;
主链生成模块:主链节点负责将其所在主体每一周期内已被确认的区块数据上传至主链网络中,主链节点之间通过对数据达成共识,形成一条主链;
数据跨链模块:完成不同从链之间的数据跨链。
优选的,在集合N形成后,通过POVT共识来决定每一个时隙产生区块的生产编号,同时在这个过程中通过运行梅森旋转算法生成一个伪随机数来产生组成主链的代表节点编号。
优选的,所述基于投票与信用机制的主从多链跨链***搭建在Docker18.10上。
优选的,所述基于投票与信用机制的主从多链跨链***采用的操作***为Ubuntu18.04。
本发明的有益效果在于:本发明提供的一种基于投票与信用机制的主从多链跨链方法及***,通过引入投票机制来更加公平地选择出块节点,彻底避免节点之间的算力竞争;并且引入的信用机制能够保证参与共识的节点的可靠性,同时降低权益对记账权分配的影响;对节点的行为进行量化评价能够更好地约束节点的行为,使其对恶意行为产生顾虑;有效提高了***的效率,且增大对***发起权益粉碎攻击、双花攻击、自私挖矿攻击等的难度。
附图说明
图1为本发明提供的一种基于投票与信用机制的主从多链跨链方法流程图;
图2为本发明提供的POVT共识算法流程图;
图3为本发明提供的一种基于投票与信用机制的主从多链跨链***结构示意图;
图4为节点信用增长图;
图5为节点信任度惩罚对比图;
图6为节点每秒交易处理量TPS图。
具体实施方式
为了对本发明的实施例进行详细说明,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。本发明的主要目的在于提供一种基于投票与信用机制的主从多链跨链方法及***,旨在解决如何更加公平的选择出块节点,彻底避免节点之间的算力竞争,提高参与共识的节点的可靠性,同时降低权益对记账权分配的影响;提高***效率,且增大对***发起权益粉碎攻击、双花攻击、自私挖矿攻击难度的技术问题。
为实现上述目的,本发明提供了一种实施例,如图1所示,图1为本发明提供的一种基于投票与信用机制的主从多链跨链方法流程图。所述基于投票与信用机制的主从多链跨链方法包括如下步骤:
从希望参与共识的节点中根据节点的权益及STrust值选择一些节点组成共识节点集合N={(A1,S1,STrust1),(A2,S2,STrust2)...(An,Sn,STrustn)};
将集合中的节点进行编号;
将时间划分为时间片段;
从链通过POVT共识完成完整的从出块到上链的过程;
通过运行梅森旋转算法生成一个伪随机数来产生组成主链的代表节点编号;
主链节点之间通过PBFT算法对数据达成共识,完成上链过程。
进一步的,将时间划分为时间片段,每一个时间片为一个周期(epoch),每一个周期分成多个时隙(slot),每个时隙从链完成完整的从出块到上链的过程,在每一个周期的最后一个时隙结束后,代表节点将该周期所有已确认的区块数据上传至主链网络中。
进一步的,模型中的节点被分成5种角色:普通节点No、投票节点Nv、生产节点Np、候补节点Nc、代表节点Nm。在每一个周期开始前会根据节点的权益以及信用值(STrust值)从希望参与共识的节点中选择一些节点出来组成一个共识节点集合N={(A1,S1,STrust1),(A2,S2,STrust2)...(An,Sn,STrustn)},该集合中的节点由3种角色组成:生产节点、投票节点、候补节点。其中生产节点从交易池中取出交易并打包组装成区块,投票节点对数据进行验证并投票,候补节点负责在生产节点或投票节点因为某些原因无法继续提供服务时递补成为该角色继续行使使命,保证了***的安全性与稳定性。
进一步的,在集合N形成后,通过PoVT共识来决定每一个时隙产生区块的生产节点编号,同时在这个过程中通过运行梅森旋转算法[10]生成一个伪随机数来产生组成主链的代表节点的编号。集合N中的节点允许同时拥有主链和从链的双重身份,主链节点负责将其所在主体每一周期内已被确认的区块数据上传至主链网络中,主链节点之间再通过PBFT算法对数据达成共识,形成一条主链。
进一步的,在每一周期开始前,***从希望参与共识的节点中根据节点的权益以及STrust值选择一些节点组成共识节点集合N={(A1,S1,STrust1),(A2,S2,STrust2)…(An,Sn,STrustn)},其中集合N中的节点个数|N|=Nump+Numv+Numc,A为节点的公钥地址,S为节点的权益,STrust值为节点的信用值,Nump为生产节点的个数,Numv为投票节点的个数,Numc为候补节点的个数。将集合中的节点进行编号,编号1到Nump的节点成为生产节点,编号Nump+1到Nump+Numv的节点为投票节点,剩下的个数为Numc的节点成为候补节点,普通节点No不参与共识但需同步最新数据块至本地。
如图2所示,图2为本发明提供的POVT共识算法流程图。
具体的,所述POVT共识算法包括如下步骤:
S1:在周期开始前,根据节点的权益及STrust值形成一个共识节点集合;
S2:在集合中从范围为(1,2,…,Nump)的生产节点中选择编号与随机数R相同的节点成为出块节点;所述出块节点从交易池中取出一些交易打包并组装成区块,随后将区块广播给投票节点,并准备接受投票节点的反馈消息;
S3:投票节点在收到生产节点发出的区块验证请求后,对区块中的数据进行验证,验证无误后签名并加盖时间戳,并广播确认信息;若发现数据有误,则广播一个拒绝信息;
S4:若生产节点收到Numv/2+1个投票节点的确认消息则表明已对该区块达成共识,生成一个记录此时时间的时间戳,并对该区块进行后续的签名、广播等操作;若网络中存在超过Numv/2+1个投票节点发出拒绝消息则判定该生产节点有恶意行为,立即取消该节点的共识资格,并由编号为R+1的生产节点继续进行共识流程(若R+1>Nump,则从第一个生产节点开始),同时在候补节点中根据编号顺序递补成为新的生产节点;
S5:每个被选择的生产节点都被要求在一个时间Tb内完成出块,若超过这个时间还没能完成出块,则由编号R+1(若R+1>Nump,则从第一个生产节点开始)的生产节点继续完成下一个区块的产生;
S6:在每一轮周期结束后,成功参与共识的节点会获得STrust值奖励。相应的,有恶意行为的节点也会受到降低STrust值的惩罚,则该节点后续想要参与共识的难度增加。
具体的,在步骤S2中,如果产生的区块是创世区块,则随机数R为1;如果产生的区块是非创世区块,则随机数R由上一生产节点在生成新区块的过程中产生。
具体的,所述随机数R的生成过程如下:
生产节点在向投票节点提交区块后同时收集投票节点的反馈消息,即Signature[i](1≤i≤Numv),同时根据时间戳Timestamp由式(1)的到Rsource:
Figure BDA0002892577220000071
对得到的Rsource进行哈希运算,然后取字符串的后32位将其转化成整数,得到R',如式(2):
R'=StrToInt(SubStringEnd32(Hash(Rsource))) (2)
将R'由(3)可得随机数R:
R=R'modNump(1≤R≤Nump) (3)
具体的,除了生成创世区块的R值默认为1之外,每一个生产节点生成区块的同时也产生一个记录在区块中的随机数R来决定谁是下一个生产节点。
进一步的,信用机制通过综合考虑一个节点的有效出块数、有效投票数、参与度等因素,然后使用STrust值来定量地描述一个节点的可信度,再结合节点本身的权益来决定节点是否能够参与共识过程。
具体的,节点的有效出块数是指生产节点在整个周期内生成的有效区块的数量。若一个生产节点在属于它的时隙内成功生成一个通过验证的区块,则认定该节点生成一个有效区块。反之,则为无效区块。节点有效投票数γ表示为:
Figure BDA0002892577220000072
其中
Figure BDA0002892577220000073
表示节点i在第s个时隙内是否成功生成区块,若成功生成区块则为1,否则为0。t是节点生成区块的时间,γ随着t的增大而减小。c(c∈[0,1])是调节因子,可根据***的实际考虑调节出块时间的影响大小。a是权重,可根据***实际需要做出调节。
具体的,节点有效投票数是指节点在整个周期内投出的有效票数,有效票数是指若节点在正确验证区块及数据无误后按要求签名确认则认定为有效投票。与此同时,若节点对某一区块投出了确认票,但在该时隙内网络中存在超过Numv/2+1个拒绝消息,则认定该节点的此次投票无效。节点的有效投票数表示为:
Figure BDA0002892577220000081
其中Vi s表示节点i在第s个时隙内是否投出有效票,若是则为1,不是则为-1。m为该周期内总的时隙数,n为节点i在该周期内实际参与的时隙数。b(b∈[0,1])为调节因子。
具体的,节点参与度是指节点参与交易的情况。节点参与度λ可表示为:
Figure BDA0002892577220000082
其中trans表示的是节点节点i在第s个时隙内产生的区块中参与的交易数,若节点i是交易发送者或接收者其中一方则为1,否则为0。f(f∈[0,1])为调节因子。
具体的,节点的历史信用影响度是指节点的信用值受其历史信用值与权益的影响。节点的历史信用影响度ε可表示为:
Figure BDA0002892577220000083
其中Stake表示节点所拥有的权益,
Figure BDA0002892577220000084
表示节点i在第h个周期之前的信用值,g(g∈[0,1])是调节因子。ε的值随着
Figure BDA0002892577220000085
的值增大而增大,降低节点权益的影响占比。
具体的,惩罚因子:为确保***能够安全稳定地运行,需要采取措施对节点的一些恶意行为进行惩罚。惩罚因子θ表示为:
Figure BDA0002892577220000086
其中
Figure BDA0002892577220000087
表示节点i在第s个时隙内是否产生了无效的区块,若是则为1,否则为0。
Figure BDA0002892577220000088
表示节点i在第s个时隙内是否发出了无效的投票,若是则为1,否则为0。c和d分别为对应的调节因子,可根据***实际需要灵活调整对无效块和无效票的惩罚力度。
具体的,节点信任度更新公式:周期结束后,***会根据公式评价共识节点的行为,更新其信用值。信用值更新公式
Figure BDA0002892577220000089
可表示为:
Figure BDA0002892577220000091
其中
Figure BDA0002892577220000092
表示节点i在第h个周期的信用值,为提高节点参与共识的积极性,若节点被选入集合N中但实际未参与共识(如候补节点)***也会给予这些节点信用值奖励。
具体的,若节点因为作恶而导致STrust值降至***设定的阈值以下,则会被限制为每隔若干个周期才能参与一次共识,并且若节点持续作恶直至STrust值降为0,则该节点将会永久丧失参与共识的资格。
进一步的,主链节点从集合N中选择,利用从链生产节点计算随机数R的过程中得到的中间数据R'作为梅森旋转算法(MT19937-32)的种子得到一个随机数Rm,再从集合N中选择编号与Rm相同的节点作为代表节点构成主链。Rm的计算过程如下:首先将R'作为种子赋值给MT[0],根据式(10)递推得到剩下的623个状态,完成全部624个状态的填充。
Figure BDA0002892577220000093
然后对得到的旋转链进行遍历并根据式(11)对每一个状态位进行处理:
Figure BDA0002892577220000094
其中,
Figure BDA0002892577220000095
表示异或操作,m的取值为397,||表示将MT[i]的高1位和MT[i+1]的低31位组合,设组合后的数字为x,则xA的运算规则为:
Figure BDA0002892577220000096
其中a的取值为0x9908B0DF,x0表示的是该数的最低位。然后再经过式(13)的处理,得到一个伪随机数Rm':
Figure BDA0002892577220000097
Figure BDA0002892577220000098
Figure BDA0002892577220000099
Figure BDA00028925772200000910
其中令x=MT[0],(u,d)=(11,FFFFFFFF16),(s,b)=(7,9D2C568016),(t,c)=(15,EFC6000016),l=18。最后将Rm'取模处理后得到Rm
Rm=Rm'mod|N|(1≤Rm≤|N|) (14)
其中|N|是指集合N中生产节点、投票节点、候补节点的数量总和。选取节点编号与Rm相同的节点成为主链节点,再由主链节点构建一条主链,完成主链上的事务处理。
进一步的,在从链的生产节点生成了随机数Rm后将之写进新生成的区块中,在每一周期最后一个从链区块产生后,集合N中所有编号与写入各区块中的Rm相同的节点成为代表节点,代表节点将自己所在从链中已确认的区块数据上传至主链网络中,随后参与共识并将主链区块保存至本地。为了保证主链上保存的从链区块数据都是真实完整、未被篡改的,代表节点在打包之前会检查被上传的从链区块数据的上传次数,只有被不少于其所在从链中一半以上的代表节点上传过的从链区块数据才能被主链节点打包上链。当主链节点确保所打包信息都符合要求后,在主链上通过PBFT共识算法达成共识,完成信息在主链上的完整上链过程。
进一步的,每一周期被选择成为主链节点的各从链代表节点会将自己所在从链本周期产生的区块上传至主链网络中,同时参与主链共识,在共识完成后各代表节点同样保存主链区块至本地网络中,每一个代表节点保存的主链区块中都包含来自不同从链的区块数据供其所在从链其余节点查询,从而完成不同从链之间的数据跨链。
对于权益粉碎攻击:在PoS网络中,拥有较低权益的节点挖出区块的可能性同样很低。另一方面,拥有较低权益的节点就更有可能去尝试分叉,因为在PoS网络中节点产生区块并不需要投入大量的算力等资源,而即使分叉失败也只是损失较小的权益,而一旦攻击成功则能获取大量利益。在PoVT中,生产者只是负责组装区块,还需要经过投票节点的确认才能发布区块,并且一个时隙内一个生产者最多只被允许产生一个区块,所以攻击者是无法发起权益粉碎攻击的。
对于自私挖矿攻击:自私挖矿的攻击者在挖出区块后选择不将挖出的区块发布出去,而是在已挖出的区块上继续挖出新的区块,当自己的秘密分叉超过主链的长度时就将秘密分叉发布出来取代原来的主链成为新的最长链,使自己获得更多的收益。这种攻击不仅严重损害了原来主链上的诚实矿工的权利,而且还会造成数据丢失等危害区块链稳定性的情况。但是在PoVT机制下,出块者是在生产节点中通过投票机制随机选择出来的,同时生产节点的选择则受到STrust值的影响,并且生产节点如果不能在规定的时间内产生区块的话不仅得不到STrust值的奖励反而STrust值会下降,这样导致节点之后成为共识节点的概率降低,从而使攻击难以成功。
对于双花攻击:双花攻击是所有区块链网络都必须要解决的威胁。传统的双花攻击的步骤是:(1)攻击者发起一个交易;(2)在交易上链后,攻击者在该交易之前的一个区块上建立一个包含新交易的分叉;(3)而当分叉的长度超过原主链时,攻击者将其发布从而取代原主链成为新的最长链,此时原交易被新的交易所取代。而在主从多链分层跨链***中,从链的区块数据不仅会被保存在从链节点上,还会通过代理节点上传至主链中,在经过主链共识后形成主链区块保存至主链节点中。若想发起双花攻击,不仅需要改变从链的区块信息,同时还要改变相应的主链节点上的区块信息,成本巨大,攻击难以实现。
如图3所示,为本发明提供的一种基于投票与信用机制的主从多链跨链***结构示意图。实施例中:在Docker18.10上搭建了一个从链基于PoVT,主链基于Fabric的主从多链分层跨链原型(模型)***,实验的操作***为Ubuntu18.04。实验的主要测试目的是测试该主从多链跨链分层共识机制的每秒交易处理速度、节点信用值增加以及节点作恶后信用值受到的惩罚。我们将实验的节点设置为11个,分别是5个投票节点、4个生产节点、2个候补节点,同时我们将一个周期划分为10个时隙,每个时隙经历出块到上链的全过程。我们将STrust值的阈值设置为30,当节点的STrust值低于30时,我们设定为节点必须要每隔5个周期才能参与以此共识。
进一步的,为了能够更加灵活的调整***节点的信用值增长,我们对参与信用值评价的参数都设置了权重。每一轮周期参与共识的节点以及节点参与共识所扮演的角色都不尽相同,所以我们选取了某一个节点在不同的权重下参与共识的信用值增长。如图4所示,图4为节点信用增长图;给权重分别取值为1,0.5,0.1。可以看到,权重能对节点STrust值的增长有一个较好地调节,权重较高时,节点的STrust值能快速地上升,最终达到我们设定的最大STrust值300。同时,随着权重的减小,节点的STrust值的增长变得缓慢,但最终也能达到最大值。这保障了不同节点规模的***的稳定性,当节点规模较小时,可以将权重加大,而在节点规模较大的网络则将权重降低,这样网络中的节点的STrust的增长速度能保持大致相同,不至于产生少数节点的STrust值增长过快从而危及***安全性和稳定性的情况出现。
进一步的,节点正常参与共识的话STrust值会保持一个增长的状态,但如果节点在参与共识时有作恶行为,如投票节点未能诚实投票以及出块节点打包的区块中包含被篡改的交易等情况时,节点会立即丧失本周期共识资格,同时在周期结束时受到STrust值降低的惩罚。如图5所示,图5为节点信任度惩罚对比图;线2表示节点正常参与共识时STrust值的变化情况,可以看到在第40个周期时节点的STrust值达到最大值;线3在前15个周期时正常参与共识,而在第15个周期时节点开始作恶,这时节点的Strust值快速下降达到30一下,此后节点被限制为每隔5个周期才能参与一次共识,此时若节点还是持续作恶,当STrust值降至0时节点将被永久剥夺参与共识的资格;从线1可以看到节点在第35个周期时开始正常参与共识,但一直到第45个周期才将STrust值升至30以上,而此时正常参与共识的节点的STrust早已达到最大值,所以由此可以看出节点若作恶,将付出巨大的STrust值代价,从而影响到节点参与共识的难度,这是一种很明显的得不偿失的行为。
进一步的,如图6所示,图6为节点每秒交易处理量TPS图;每秒交易处理量即用区块打包的交易数除以区块的生成时间,***的每秒交易处理量能够衡量***的交易处理性能。我们一共进行了50个周期共识,一共产生500个区块。实验中的以太坊网络采用标准的设置,平均每15秒生成一个区块,同时我们设置从链的Tb值为10,即每10秒产生一个区块,实验结果由图5所示。在采用标准以太坊网络中的TPS平均值为49,而在采用PoVT的单挑从链中的TPS在60左右波动,平均值为63。而在采用PBFT共识的主链网络中的TPS在45左右波动,平均值为47。可以看到采用PoVT的从链的交易处理速度是要优于以太坊网络的以及整个跨链模型的交易处理速度是比较理想的。
上述实施例中,描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (6)

1.一种基于投票与信用机制的主从多链跨链方法,其特征在于,所述基于投票与信用机制的主从多链跨链方法包括如下步骤:
从希望参与共识的节点中根据节点的权益及STrust值选择一些节点组成共识节点集合N={(A1,S1,STrust1),(A2,S2,STrust2)...(An,Sn,STrustn)},其中,A为节点的公钥地址,S为节点的权益,STrust值为节点的信用值,所述共识节点集合N中的节点由3种角色组成:生产节点、投票节点、候补节点,所述生产节点从交易池中取出交易并打包组装成区块,所述投票节点对数据进行验证并投票,所述候补节点负责在生产节点或投票节点无法继续提供服务时递补成为该角色继续行使使命,保证***的安全性与稳定性;
将集合中的节点进行编号,编号1到Nump的节点成为生产节点,编号Nump+1到Nump+Numv的节点为投票节点,剩下的个数为Numc的节点成为候补节点,普通节点No不参与共识但需同步最新数据块至本地;其中,Nump为生产节点的个数,Numv为投票节点的个数,Numc为候补节点的个数;
将时间划分为时间片段,每一个时间片段为一个周期,每一个周期分成多个时隙,每个时隙从链完成完整的从出块到上链的过程;
从链通过POVT共识完成完整的从出块到上链的过程;
通过运行梅森旋转算法生成一个伪随机数来产生组成主链的代表节点编号;
主链节点之间通过PBFT算法对数据达成共识,完成上链过程;
其中,POVT共识包括如下步骤:
在共识节点集合中从范围为(1,2,…,Nump)的生产节点中选择编号与随机数R相同的节点成为出块节点;
投票节点在收到生产节点发出的区块验证请求后,对区块中的数据进行验证;根据生产节点接收的消息,选择记录此时时间的时间戳,或立即取消该节点的共识资格;
判断每个被选择的生产节点出块时间是否超过设定的时间Tb
在每一轮周期结束后,成功参与共识的节点会获得STrust值奖励。
2.如权利要求1所述的一种基于投票与信用机制的主从多链跨链方法,其特征在于,在所述出块节点从交易池中取出交易并打包组装成区块后,将区块广播给投票节点并准备接受投票节点的反馈消息,如果产生的区块是创世区块,则随机数R为1;如果产生的区块是非创世区块,则随机数R由上一生产节点在生成新区块的过程中产生。
3.如权利要求1所述的一种基于投票与信用机制的主从多链跨链方法,其特征在于,所述随机数R的生成过程为:
生产节点在向投票节点提交区块后同时收集投票节点的反馈消息,即Signature[i](1≤i≤Numv),同时根据时间戳Timestamp由式(1)得到Rsource:
Figure FDA0003540926130000021
对得到的Rsource由式(2)进行哈希运算,然后取字符串的后32位将其转化成整数,得到R':
R'=StrToInt(SubStringEnd32(Hash(Rsource))) (2)
将R'由式(3)可得随机数R:
R=R'mod Nump(1≤R≤Nump) (3)。
4.如权利要求1所述的一种基于投票与信用机制的主从多链跨链方法,其特征在于,综合考虑一个节点的有效出块数、有效投票数、参与度,使用STrust值来定量地描述一个节点的可信度,再结合节点本身的权益来决定节点是否能够参与共识过程。
5.如权利要求1所述的一种基于投票与信用机制的主从多链跨链方法,其特征在于,主链节点从集合N中选择,利用从链生产节点计算随机数R的过程中得到的中间数据R'作为梅森旋转算法的种子得到一个随机数Rm,再从集合N中选择编号与Rm相同的节点作为代表节点构成主链。
6.如权利要求5所述的一种基于投票与信用机制的主从多链跨链方法,其特征在于,在从链的生产节点生成随机数Rm后,将其写进新生成的区块中,在每一周期最后一个从链区块产生后,集合N中所有编号与写入各区块中的Rm相同的节点成为代表节点,代表节点将自己所在从链中已确认的区块数据上传至主链网络中,随后参与共识并将主链区块保存至本地。
CN202110031705.XA 2021-01-11 2021-01-11 一种基于投票与信用机制的主从多链跨链方法及*** Active CN112804101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110031705.XA CN112804101B (zh) 2021-01-11 2021-01-11 一种基于投票与信用机制的主从多链跨链方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110031705.XA CN112804101B (zh) 2021-01-11 2021-01-11 一种基于投票与信用机制的主从多链跨链方法及***

Publications (2)

Publication Number Publication Date
CN112804101A CN112804101A (zh) 2021-05-14
CN112804101B true CN112804101B (zh) 2022-04-29

Family

ID=75809816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110031705.XA Active CN112804101B (zh) 2021-01-11 2021-01-11 一种基于投票与信用机制的主从多链跨链方法及***

Country Status (1)

Country Link
CN (1) CN112804101B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572825B (zh) * 2021-07-09 2023-03-21 中国科学院计算技术研究所 面向中继链跨链架构的接入控制与资源访问控制方法及***
CN113672987B (zh) * 2021-09-06 2023-09-05 上海万向区块链股份公司 PoW机制下分组式记账节点的选择方法及***
CN114025012B (zh) * 2022-01-10 2022-03-22 国网电子商务有限公司 基于信用分组的节点选取方法、装置、存储介质和设备
CN114048515B (zh) * 2022-01-11 2022-03-22 四川大学 一种基于联邦学习和区块链的医疗大数据共享方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104662838A (zh) * 2012-09-27 2015-05-27 惠普发展公司,有限责任合伙企业 沿着阻塞链路传输特定业务
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN110351067A (zh) * 2019-06-12 2019-10-18 南京理工大学 针对主从多链的区块链共识机制

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059369A1 (en) * 2017-05-16 2020-02-20 Peking University Shenzhen Graduate School Determining consensus by parallel proof of voting in consortium blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104662838A (zh) * 2012-09-27 2015-05-27 惠普发展公司,有限责任合伙企业 沿着阻塞链路传输特定业务
CN106445711A (zh) * 2016-08-28 2017-02-22 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN110351067A (zh) * 2019-06-12 2019-10-18 南京理工大学 针对主从多链的区块链共识机制

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Blockchain Dividing Based on Node Community Clustering in Intelligent Manufacturing CPS;Suisheng Li;《2019 IEEE International Conference on Blockchain (Blockchain)》;20191231;全文 *

Also Published As

Publication number Publication date
CN112804101A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112804101B (zh) 一种基于投票与信用机制的主从多链跨链方法及***
CN109842606B (zh) 基于一致性哈希算法的区块链共识算法和***
Yu et al. Repucoin: Your reputation is your power
CN109639430B (zh) 安全高速轻量级的区块链***及方法
Szalachowski et al. {StrongChain}: Transparent and Collaborative {Proof-of-Work} Consensus
CN109982435B (zh) 基于区块链的频谱接入和管理方法
CN110351067B (zh) 针对主从多链的区块链共识方法
CN111090892A (zh) 一种基于vrf和门限签名的区块链共识方法和装置
CN111988137B (zh) 一种基于门限签名和公平奖励的DPoS共识方法及其***
CN109039646B (zh) 一种基于节点能力的区块链区块打包和验证方法及***
CN112104482B (zh) 一种基于并行投票的共识方法
US11157899B1 (en) System and method for bootstrapping a separate proof of work chain
CN113407632A (zh) 一种基于pbft的委托权益证明区块链共识算法
CN110611701A (zh) 一种基于区块链的参数配置和交易处理方法
CN112468255B (zh) 基于网络共识结合vrf算法的区块链节点时间同步方法
CN112769936B (zh) 一种基于投票与信用机制的povt共识算法
CN113422805B (zh) 一种基于可验证随机函数的分片共识方法
CN112651830A (zh) 应用于电力资源共享网络的区块链共识方法
Wang et al. Game-theoretical analysis of mining strategy for bitcoin-ng blockchain protocol
Shi et al. Pooling is not favorable: Decentralize mining power of PoW blockchain using age-of-work
US11354629B1 (en) Controlling initiation of a blockchain election using a burn quota
Reijsbergen et al. Laksa: A probabilistic proof-of-stake protocol
US11290280B1 (en) Cryptocurrency mining using a single-leader election algorithm
CN115189871A (zh) 一种基于可验证随机函数和门限签名的拜占庭容错共识算法
WO2020199179A1 (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