第38卷第2期计算机应用研究Vol.
38No.
2录用定稿ApplicationResearchofComputersAcceptedPaper收稿日期:2020-01-05;修回日期:2020-03-07基金项目:国家自然科学基金面上项目(61472139)作者简介:黄建华(1963-),男(通信作者),湖南麻阳,副教授,博士,主要研究方向为计算机网络与信息安全(jhhuang@ecust.
edu.
cn);黄雪茹(1995-),女,安徽亳州,硕士,主要研究方向为区块链;季钰翔(1996-),男,江苏连云港,硕士,主要研究方向为区块链;唐瑞琮(1990-),男,浙江杭州,硕士,主要研究方向为区块链与金融信息技术.
一种基于双链模型的分区共识协议*黄建华1,黄雪茹1,季钰翔1,唐瑞琮2(1.
华东理工大学信息科学与工程学院,上海200237;2.
香港DAEX区块链有限公司,上海200120)摘要:针对目前分区模型中区块链的存储容量不能随着分区的增加而同步扩展以及分区算法存在的安全性问题,提出一种基于双链模型的分区共识协议DB-SCP(DualBlockchain-basedShardingConsensusProtocol).
首先通过基于哈希链和交易链的双链分区存储模型来设计验证信息共享机制和交易差异化存储机制,实现了区块链的存储容量随分区的增多而同步增加;其次,采用基于节点投票份额的分区方法把节点权益拆分到不同的分区,有效防止了分区中权益过多节点的出现;最后采用VRF函数改进分区内共识算法,保证了验证者选取的随机性,且使用密钥演变技术保证了交易的前向安全性.
安全性分析表明,基于投票份额的分区方式既稳定又安全,实验结果表明该协议有着良好的性能优势,存储容量较传统区块链模型提升了大约30%~70%.
关键词:区块链;分区;共识协议中图分类号:TPdoi:10.
19734/j.
issn.
1001-3695.
2020.
01.
0002ShardingconsensusprotocolbasedondualblockchainsHuangJianhua1,HuangXueru1,JiYuxiang1,TangRuicong2(1.
SchoolofInformationScience&Engineering,EastChinaUniversityofScience&Technology,Shanghai200237,China;2.
HONGKONGDAEXBlockchainLimited,Shanghai200120,China)Abstract:Inviewofthefactthatthestoragecapacityoftheblockchaininthecurrentshardmodelcannotbeexpandedsynchronouslywiththeincreaseofshardsandthesecurityproblemsoftheshardalgorithm,thispaperproposedaDualBlockchain-basedShardingConsensusProtocol(DB-SCP).
Firstly,itusedadual-blockchainshardstoragemodelbasedonhashchainandtransactionchaintodesigntheverificationinformationsharingmechanismanddifferentiatedtransactionstoragemechanism.
Therefore,thestoragecapacityoftheblockchainincreasessynchronouslywiththeincreaseofshards.
Secondly,itadoptedtheshardingmechanismbasedonvotingshares,throughsplitingnodestakesintodifferentshardstopreventanodefromhavingexcessivestakesinashard.
Finally,itusedtheVRFfunctiontoimprovetheintra-shardconsensusalgorithmtoensuretherandomnessofverifierselection,andthekeyevolutiontechnologyintroducedensurestheforwardsecurityoftransactions.
Thesecurityanalysisshowsthattheshardingmechanismbasedonvotingsharesisbothstableandsafe.
ExperimentalresultsshowthattheDB-SCPprotocolhasgoodperformanceadvantages,anditsstoragecapacityisimprovedbyabout30%~70%comparedwiththetraditionalblockchainmodel.
Keywords:blockchain;sharding;consensusalgorithm0引言区块链是一种融合了密码学、分布式系统、网络协议等一体的综合技术,具有去中心化、不可窜改、不可否认、可追溯等特点,在金融[1]、供应链、医疗保健、物联网等领域均展现了广阔的应用前景[2].
由于没有中心机制,区块链需要通过共识算法选择一个节点出块,以保证所有节点状态的一致性和区块链的不可窜改性,因此,区块链的出块效率和安全性显得尤为重要.
基于区块链的比特币系统采用的是工作量证明(PoW)共识算法[3],节点之间通过计算一个难度值来决定谁来出块,参与其中的节点数越多,安全性越高,其问题是计算难度值的过程需要消耗大量的电力资源[4].
为了弥补此不足,SunnyKing在PPCoin[5]中引入了权益证明(PoS)共识算法,既能防止女巫攻击[6],又不产生任何能耗.
权益证明有很多不同的变种,如DPoS[7]、PoSV[8]和PoA[9],但都在一定程度上引入新的安全性问题[10].
以上两种都是属于基于证明类的共识算法,要求加入网络的节点能证明自己比其他节点更有资格添加一个区块到链上,主要应用于进行金融价值转移的公有链,其存在的问题是交易处理速度低,增加节点数量并不能显著提高系统吞吐量,且本质上都存在共识终结性问题,容易出现区块链分叉情况;另一类是基于投票的共识算法,要求网络中的节点交换当前新区块或者交易的验证结果,然后作出最终的决定.
最典型的是实用拜占庭算法PBFT[11],PBFT解决了之前拜占庭容错算法[12]效率不高的问题,可提供共识终结性,避免交易确认的延迟,可以容忍小于1/3个无效或者恶意节点,但它容易受到DoS攻击,存在通信复杂性和可扩展性问题.
除了PBFT,还有很多进一步提升性能或鲁棒性的BFT算法被提出,主要有DBFT、HoneyBadger-BFT[13]和Tendermint[14]等.
这类算法解决了证明类算法效率不高的问题,交易处理能力可达上千TPS,且具有强一致性,不易分叉.
其不足是节点扩展性差,通信复杂度高,对加入节点有许可要求,通常只能用于联盟链和私有链.
研究和实践表明分区是提高区块链扩展性和性能的有效途径.
Zilliqa[15]是第一个提出使用分区解决可扩展性问题的公共区块链;以太坊[16]为扩容也在做分区方面的尝试,其方录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期式是通过将区块分成子区块进行分而治之;Elastico[17]使用的分区协议可实现交易速度随着全网计算能力的提高呈线性增长.
但是目前大多数的分区模型中每个节点存储的都是整个区块链的交易,并不能实现随着分区数的增多而同步扩展区块链存储容量,给区块链在物联网、金融等领域的应用带来挑战.
同时现有的基于PoW的分区方式计算难度难以把握,导致分区时间不稳定,而基于节点的PoS分区方式则会出现节点在分区中权益过现象,导致分区的不安全性.
为了解决以上问题,本文提出一种基于双链模型的分区共识协议DB-SCP(DualBlockchains-basedShardingConsensusProtocol),该协议包括地址分区和权益分区,并通过构建由哈希链和交易链组合的双链(dualblockchains)模型来提高区块链的存储能力,其中哈希链存储全网共享的验证信息;而交易链只存储与本分区有关的交易.
为了提高分区过程和分区内共识的安全性,采用了基于节点投票份额的分区机制[18],通过将节点的权益拆分成多个份额来实现节点投票份额的随机分区,从而有效防止单个节点在分区中权益过高的现象.
在共识算法方面,将VRF[19]引入PBFT共识算法来改进算法的安全性,保障了选取验证者的随机性和公平性.
此外,为了保证前向安全性,共识算法引入了密钥演变技术[20,21],以一个epoch为周期进行私钥的改变,即使节点的私钥泄露,也能防止恶意节点窜改过去的交易,可在一定程度上抵御长程攻击.
1DB-SCP分区共识协议概述1.
1系统设置与假设DB-SCP中有两种角色:用户和权益人.
用户使用区块链基础设施完成转账或合约调用;权益人负责整个区块链架构的运行,保证其安全性.
为了成为权益人,参与者需缴纳一定的押金以加入权益集VaSet,该集合的每一项元素包括押金缴纳者的公钥地址和押金数.
作为权益证明,押金既防范女巫攻击又可对恶意节点进行惩罚,如果成功出块,权益人会得到与其押金成比例的奖励.
假设系统共有个权益人,表示第个权益人();系统分为个分区,分区编号用位表示();每个权益人要想参加当前epoch的共识过程必须在上一个epoch时间内缴纳押金.
对于网络模型,假设网络通信信道是部分同步的,网络中信息传输存在一个未知的上界,即时延是任意的但也是有限的.
对于攻击模型,本文假设全网恶意节点权益比少于1/4,每个分区的投票份额数大于150,在此假设下可保证每个分区的恶意节点权益比少于1/3.
1.
2DB-SCP分区共识协议在DB-SCP中共有2种分区:地址分区和权益分区,前者是实现了区块链存储容量的扩展,后者则实现了分区内共识的安全.
地址分区基于权益人地址将网络划分成一系列分区,各个分区独立并行地处理分区交易,每个权益人仅存储与本分区有关的交易,实现了交易的差异化存储,从而扩展了整个网络的存储容量;权益分区是将权益人所拥有的权益拆分成一个个份额并随机分到不同分区,以有效防止单个分区节点权益过大问题.
为实现交易的分区存储,本文提出了如图1所示的由哈希链和交易链组合的双链模型.
不同分区拥有不同交易链,哈希链由全网共有,所有分区保持一致.
交易链由与本分区有关的交易块构成,由分区内的所有权益人保存,权益人所属分区由其地址哈希值的低位决定,即根据函数的值来确定所属分区.
哈希链主要记录相关验证信息(如merkle根[22])和用于权益分区的随机种子等信息,由全网所有权益人保存.
图1双链模型Fig.
1Dual-Blockchainmodel整个系统以纪元(epoch)作为大周期运行,每个epoch再划分多个轮次(round),在每一个round时间内,每个分区都会产生一个区块,可以用epoch、round和区号来标志某个区块.
在每个epoch开始的时候,将根据最新哈希块中的随机数random来划分权益人投票份额所属分区,从而确定权益人在每个分区所拥有的投票值.
分区共有两种类型,分为创块区和组合区.
创块区有n-1个,负责并行产生区块;组合区只有一个,负责对各个创块区提交的哈希块(区块头)进行组合和验证,然后将组合好的子哈希链广播给整个区块链网络.
为了保证协议启动,最初的VaSet和random会被硬编码到创世区块中,一个epoch的运行过程如图2所示.
在一个epoch中,权益人做以下操作:a)更新VaSet和建立权益分区.
VaSet记录押金缴纳者的公钥地址和其押金数,可以看做是权益列表.
为了允许参与者随时加入和退出VaSet,每个epoch结束后权益人都要更新VaSet以掌握系统最新的权益关系.
在每一个epoch开始时,权益人获得与其所缴纳押金成正比的投票份额,这些投票份额会根据分区算法随机分配到各个分区,投票份额分到哪个区,则代表权益人在哪个区具有投票权.
权益分区完成后,各个权益人和同一分区内其他成员建立连接.
b)每一round各个创块区会产生一个区块.
分区内使用改进的基于VRF的RBFT算法进行共识,分区成员每一round选取一个leader来提议区块,利用VRF选出一部分验证者对提议区块投票.
如果区块得到足够多的投票,则leader发送区块体给分区内的权益人,权益人以交易块的形式保存,同时leader提交哈希块(区块头部分)到组合区.
图2DB-SCP运行示意图Fig.
2DB-SCPoperationdiagramc)组合区也使用RBFT算法确定哈希块的排列顺序.
与创块区不同的是,分区内选取的leader负责将自己收到的每一个哈希块进行哈希,按照哈希结果从小到大对哈希块进行排列,最后形成一条一定长度的子哈希链,长度由leader节点收到哈希块的个数决定.
之后通过VRF选取的验证者对哈希链进行投票,达成共识后leader将哈希链广播到整个区块链网络中,所有权益人将其添加到哈希链上.
d)重复步骤b)直到整个epoch结束,此时系统进入下一个epoch周期.
新一轮epoch之初,权益人获得新的投票份额并将其重新分区,其分区所用的种子存在于最新的哈希块中,为了保证交易的前向安全性,随着epoch发生改变,权益人密钥随之进行演变.
录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期2权益分区2.
1权益分区算法目前的分区方法主要是基于PoW和PoS算法.
基于PoW的分区方法不容易把握难度值的大小,会导致分区效率不高;而基于PoS的分区方法存在某些节点在分区所占权益比重过大的情况,若这些节点存心作恶,将无法保证分区内诚实节点所占比重超过规定阈值.
针对这些问题,本文采用基于投票份额的分区算法[15],将分区的安全考虑从最小节点数转移到最小投票份额数.
如图3所示,权益人根据其缴纳的押金获得与之成比例的投票份额,这些投票份额会被随机分配到不同分区,从而权益人可以在对应的分区中获得相应的投票权,一个投票份额对应一票.
通过这种投票份额分区方式,即使恶意节点拥有较大的权益,也难以在某一分区内进行集中攻击,而对于诚实节点而言,所拥有的权益越大,生成的投票份额越多,在各个分区得到的收益也会越多,不会导致诚实节点的利益受损.
图3基于投票份额分区Fig.
3Votingshare-basedsharding系统共有个分区,分区编号用位表示(),,其中为的账户地址,为用于分区的随机种子,为权益人的第个投票份额编号,表示最低k位,的第个投票份额将根据值分配到指定分区,的取值范围由份额大小和节点所拥有的权益值决定.
份额大小,为在中总的权益值,为分区数,为安全系数,它可以通过算法根据全网的权益变化情况动态设定.
为节点所拥有的投票份额数,前文所提到的满足.
每个参与权益分区的权益人会管理一张分区映射表,此表记录了各个权益人投票份额的分区情况.
假设有4个权益人和4个分区,根据图3可得到表1所示投票份额分区结果,该表详细描述了每个权益人的投票份额被随机分到哪个区,以及每个权益人在每个分区所拥有的投票份额数.
表1基于投票份额的分区结果Tab.
1Shardingresultsbasedonvotingshares分区1权益人投票份额编号{1,3,9}{2}{2}{1}投票份额数3111分区2权益人投票份额编号{2,6,10}{1,6}0{5}投票份额数3201分区3权益人投票份额编号{5,7}{4,5}0{2,4}投票份额数2202分区4权益人投票份额编号{4,8}{3}{1}{3,6}投票份额数2112注:,,,,集合内为每个权益人的所有投票份额编号2.
2分区算法安全性分析本文中分区内使用改进的PBFT算法RBFT,所以必须保证分区内恶意节点投票份额占比小于1/3.
设事件表示某个分区内恶意节点所拥有的投票份额数为,则其概率为(1)为全网总的投票份额数,是恶意节点所拥有的最多投票份额数,为每个分区所拥有的投票份额数,由此可以看出某分区内恶意节点所拥有的投票份额数为的概率服从超几何分布,当无限大的时候,超几何分布转换为二项分布,则恶意节点所拥有的投票份额数不超过的概率为(2)从表2可以看出,当时,高达0.
991,且随着的不断增加,每个分区内恶意节点所占比重小于的概率越来越高,分区内的安全性也越来越高.
表2与的正比关系Tab.
2Proportionalrelationshipbetweenand501500.
9911003000.
99951504500.
999972006000.
9999982507500.
999999873009000.
9999999935010500.
99999999940012000.
9999999999545013500.
99999999999750015000.
99999999999979接下来证明为什么假设整体恶意节点所拥有的权益比打包交易成块,并将此区块发送给其他验证者.
经过2轮投票之后,共识区块内的所有交易将被确认,相应的用户A的余额会减少X元.
由于转账交易为跨区交易,所以会产生一个中继交易发送到分区2中,在分区2中完成后面的交易验证操作.
2)接收到中继交易的分区2会把它当普通交易进行处理.
首先对其进行验证,若验证通过则打包上链.
验证的流程如下,首先根据中继交易中的发送区号、块号用来标识产生此交易的哈希块,从而找到哈希块中的中继交易的merkle根,通过此中继交易中的merkle路径验证其交易的正确性.
若通过验证,则分区2中的leader会把此交易打包进新的区块,提交到哈希链上,此时用户B的余额会增加X元,交易框架如图8所示.
图8交易框架Fig.
8Transactionframe录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期4区内共识算法本文对PBFT算法进行了改进,提出基于VRF的算法RBFT(randombyzantinefaulttolerance),用于创块区和组合区共识.
与传统的PBFT相比,RBFT使用VRF算法随机选择验证者,并确保验证者数量控制在一定范围内,增强了随机性和安全性.
同时RBFT引入密钥演变技术来保证过去交易的不可窜改,增强了抵御长程攻击的能力.
分区内成员每round基于follow-the-satoshi算法选举leader,参与投票的验证者由权益人运行VRF算法选出,选中的验证者与leader建立连接.
新区块由leader打包并广播给各个验证者,leader和验证者运行RBFT共识算法就所提交的区块达成共识,区块头(哈希块)提交到组合区,区块体(交易块)在本分区内广播,由本分区的权益人保存.
组合区选举的leader收到一定数量的哈希块,对其进行验证和组合,形成一定长度的子哈希链,发给各个验证者,达成共识后,leader将子哈希链在全网进行广播.
区内共识流程如图9所示.
图9区内共识流程Fig.
9Intra-shardconsensusprocess4.
1leader选举RBFT在每个round之初选取leader.
如果仅根据权益大小选取leader,攻击者就会预先知道leader的顺序,并有针对性地对以后的leader进行攻击.
为了避免这个问题,RBFT采用follow-the-satoshi算法选取leader,这里satoshi表示聪,是加密货币的最小单位.
follow-the-satoshi最早在PoA中被提出,该算法的目标是使得每个权益人被选为leader的概率与其权益成正比,由于每轮的leader又是不确定的,只能说权益越大,被选中的可能性越大,安全性也更高.
RBFT对follow-the-satoshi的实现为:权益人将本分区的成员权益表按公钥地址顺序排列,取上一个round哈希块中随机种子哈希值最后几位,由其所处的权益区间决定本轮的leader.
例如某分区投票份额表为,划分的权益区间如图10所示.
权益总数为16个satoshi,需要4bit表示,则取上一个哈希块中随机种子哈希值最后4位,假设值为10,计算10mod1610,属于区间,则为本轮的leader.
图10权益区间Fig.
10Stakerange4.
2随机选举验证者利用VRF选取验证者,随机选择验证者算法见算法1.
选出委员会成员的个数由参数决定,在本文中,可保证选出验证者个数在4和30之间的概率达到0.
999,详细证明参照文献[30].
算法1随机选择算法输入:whiledo输出:基于权益的共识算法中,被选取的概率应该和其所拥有的权益成正比,从算法1可以看出,拥有的权益值越多,运算出来的越大[27].
各个权益人算出后,若,则会主动和leader节点建立连接,leader收到后首先会对值进行验证,验证算法见算法2.
经过一段时间后leader将自己提议的区块广播给通过验证的节点,即验证者.
leader和验证者随后运行RBFT算法,就新提出的区块达成共识.
一轮结束之后,开始下一轮的leader和验证者选举,重复上述操作.
算法2:验证算法输入:ifthenreturn0;whiledo输出:4.
3密钥演变基于权益的共识算法不需要消耗算力,产生区块几乎没有成本,因此导致攻击者可以从历史上很远的一个区块开始制造分叉,也就是所谓的长程攻击.
制造分叉最常用的方式就是获取某些节点的私钥,窜改全部或部分交易历史,从而代替原有的主链.
为了在一定程度抵御长程攻击,本文共识算法引入密钥演变技术,此技术意义在于保证密钥具有前向安全性,即使密钥在未来被破坏也能够保护过去进行的交易不可窜改.
密钥演变的最大特点是公钥固定,而私钥随着时间进行更新,且这个更新过程是单向的.
本文使用的密钥演变算法基于椭圆曲线,基点.
每个epoch之后,所有节点以epoch为参数进行密钥演变,其过程共分为四个阶段:a)密钥产生:初始私钥随机选取,为一无穷大素数,.
假设一个epoch为一周,则令T52.
b)密钥演变:.
此算法具备单向安全性,即知道无法推断出.
c)签名阶段:如算法3,消息M在本文中即为leader节点提出的区块.
恶意节点无法从中获取私钥,因为的值没办法获取.
d)验证阶段:如算法4所示,验证者收到签名后,首先对进行验证,验证节点是否进行了密钥演变,之后会对收到的参数一一验证,验证通过后签名验证流程过程结束,在下一个epoch后重复密钥演变、签名和验证3阶段.
在DB-SCP协议中节点可以任意加入和离开,如果每个新节点的私钥都从开始,验证时会造成一定的混乱,因此每个新加入的节点,epoch就是加入时的epoch数.
算法3签名算法录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期输入:基点,公钥,私钥,消息随机选,,,输出:算法4验证算法输入:,公钥如果,继续;否则返回0如果,返回1;否则返回0输出:1(成功)或0(失败)5实验评估本节主要从吞吐量、共识时延、交易处理时间、存储量等方面进行实验评估.
5.
1实验环境与参数设置实验使用Docker虚拟化技术来搭建区块链的多节点环境,Docker的运行环境为1台DELLR320服务器,整个实验的软硬件环境如表3所示.
表3实验环境配置Tab.
3Experimentalenvironmentconfiguration软硬件配置DockerEngine版本18.
09.
0CPUIntelXeon(R)E5-2407@2.
2GHZ内存64GB操作系统Ubuntuserver14.
04实验初始分区个数为2,每个分区内共有5个节点,之后依次增加分区个数到20,共进行10组实验,所有数据都取在相同参数下的平均数.
5.
2性能测试分区性能主要从吞吐量和时延两个方面来评估.
这里吞吐量指单位时间内整个系统处理的交易量,分区时延指所有参与共识的权益人进行投票份额随机分区所花费的时间.
为了便于仿真,本文将区块大小设置为1KB,且由于交易内容的不同导致交易大小不是常数,同时每个区块中的具体交易数并不影响实验结果中的变化趋势,所以简单假设每个区块中有2笔交易.
吞吐量实验分别测试了DB-SCP协议和PoW协议,结果如图11所示.
由实验结果可以看出,DB-SCP的吞吐量要明显高于PoW,且DB-SCP的吞吐量随节点数量的增长呈近线性的增加,而节点数量的增长却对PoW的吞吐量影响不大.
造成这种现象的原因是DB-SCP中每个分区可以并行处理交易,随着网络中的节点数量的不断增加,可以划分出更多的分区,就能同时处理更多的交易请求,因而系统的吞吐量也就在不断提高.
与之相对,基于PoW的共识机制中每个共识周期只能生成一个共识区块,因此即使网络中节点数量增加,也不会对系统的吞吐量有任何的贡献.
分区时延实验对比测试了基于投票份额、基于PoS和基于PoW三种分区方式的分区时延.
基于投票份额分区所用的随机种子从哈希链中最新的区块中获得,在新一轮epoch之初,权益人获得与押金成比例的投票份额,实验假设每个权益人拥有的投票份额数为10.
权益人获取随机种子之后对自己的公钥、随机数和份额编号进行哈希运算得到每个份额所属分区,然后向同一分区的其他权益人请求建立连接,当分区内的成员形成连通图后分区过程结束,所以分区时延为计算所有份额的哈希时长加上节点建立连接时长.
基于PoS的分区方式中,权益人直接对自己的公钥、随机数进行哈希运算,从而得到所属分区,因此分区时延为哈希时长加上节点建立连接时长.
基于PoW的分区方式中节点根据难度值消耗算力计算出一个符合条件的随机数,由随机数的最后几位得出自己所属分区,接着与同一分区内其他节点进行连接.
与计算随机数的时耗相比,节点建立连接时长可以忽略不计,所以实验中PoW分区时延仅考虑计算随机数时长.
图11吞吐量实验Fig.
11Throughputexperiment在分区数不变的情况下,实验测试三种分区方式的时延,共进行了10组实验,实验结果如图12、13所示.
从图12可以看出基于投票份额的分区时延要小于PoW,且相对稳定.
PoW分区时延呈现出一种不稳定的状态,原因是每次PoW计算满足条件的随机数的时间都不一样,而基于PoS份额的分区时延只需要进行哈希运算,所以相对稳定.
由图13可以看出,基于投票份额的分区时延和基于PoS的分区时延差不多且都比较小,原因是两者都是仅需要进行哈希运算.
由以上分析可以看出基于投票份额的分区方式在提高分区安全性的同时也很好的控制了分区时延.
图12基于投票份额与PoW分区耗时对比Fig.
12Comparisonofshardingdelaybetweenvotingsharesandpow图13基于投票份额与PoS分区耗时对比Fig.
13ComparisonofshardingtimeConsumptionbetweenvotingsharesandpos录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期此外,实验还测试了基于PoW、基于PoS和基于投票份额三种分区方式分区时延随着分区数增加的变化情况,如图14所示.
由实验结果可知,随着分区数的不断增加,三种方式分区时延都在增加,原因是更多的分区会造成整个分区过程所花费的时间增加,但基于投票份额和基于PoS的分区时延要明显低于PoW的分区时延,时延降低了大约70%~90%.
随着分区数的不断增多,可以看到基于投票份额的时延要稍大于PoS,因为前者权益人需要计算每个份额的所属分区,而后者只需要计算一次所属分区即可,但通过实验结果可以看出基于投票份额时延仅仅比基于PoS时延多了3%.
图14三种分区方式时延对比Fig.
14Shardingdelaycomparisonofthreemethods5.
3交易处理速度测试交易性能测试实验同时考虑区内交易和跨区交易,在实验中设定跨区交易占总交易数的3/4,所以整个系统处理的交易数实际上是正常交易数的1.
75倍,实验结果如图15所示.
可以看出,虽然引入中继交易来处理和验证跨区交易会导致总体交易数量增多,但是其处理速度仍然大于正常处理交易的速度,且随着交易数量的不断增多,相比于不分区,分区的处理速度增加得越来越多,造成这一现象的主要原因是分区处理交易速度增长的幅度远远大于交易数增长的幅度.
由此可以看出中继交易的引入既保持了跨区交易的安全性,同时也提高了交易处理的速度.
图15分区与不分区处理交易时间对比Fig.
15Comparisonoftransactionprocessingtimebetweenshardingandnon-sharding5.
4交易处理速度测试在双链模式下,每个权益人仅存储与本分区有关的交易,从而减少了本地的存储量,实验对进行存储分区和不进行存储分区的区块链存储量进行了对比.
假设每个分区提交5个区块,每个分区有10个权益人,每一个区块中区块头和区块体的比例为1:3,根据不同的分区个数可计算出分区存储方式与不分区存储方式的存储量,结果如图16所示.
从图中可以看到,分区存储较不分区存储,存储量降低了30%~70%,从扩容的角度来说,采用存储分区方式的区块链容量提高了30%~70%.
存储效率提高的主要原因是每个分区的权益人只存储与本分区有关的交易,从而实现交易记录的分区存储,增加了区块链的存储容量,减少了存储成本.
图16分区存储与不分区存储容量对比Fig.
16Comparisonbetweenshardingstorageandnon-shardingstoragecapacity6结束语区块链交易记录的存储需求与日俱增,为了扩展区块链的存储容量,本文提出一种基于双链模型的分区共识协议DB-SCP,该协议采用由哈希链和交易链组成的双链架构,其中哈希链全网共享,存储相关验证信息,交易链仅存储与本分区有关的交易,不同分区拥有不同交易链,分区越多,则区块链存储容量越大.
此外,用于分区内共识的RBFT算法使用VRF保证了选举验证者的随机性和安全性,引入的密钥演变技术保证了交易的前向安全性.
针对现有的基于PoW分区方机制存在的分区效率较低和基于PoS的分区方式存在单个节点权益过高等问题,提出了基于权益投票份额的分区机制,可有效防止节点在分区中权益过高的问题.
安全性分析表明,基于投票份额的分区机制既稳定又安全,实验结果表明DB-SCP有着良好的性能优势,在存储容量方面较传统区块链提升了大约30%~70%.
参考文献:[1]王硕.
区块链技术在金融领域的研究现状及创新趋势分析[J].
上海金融,2016(2):26-29.
(WangShuo.
Analysisontheresearchstatusandinnovationtrendofblockchaintechnologyinthefinancialfield[J].
ShanghaiFinance,2016(2):26-29.
)[2]袁勇,王飞跃.
区块链技术发展现状与展望[J].
自动化学报,2016,042(004):481-494.
(YuanYong,WangFeiyue.
Developmentstatusandprospectofblockchaintechnology[J].
ActaAutomaticaSinica,2016,042(004):481-494.
)[3]NakamotoS.
Bitcoin:Apeer-to-peerelectroniccashsystem[EB/OL].
(2008).
http://bitcoin.
org/bitcoin.
pdf.
[4]GervaisA,KarameGO,WyustK,etal.
Onthesecurityandperformanceofproofofworkblockchains[C]//Proceedingsofthe2016ACMSIGSACconference.
ACM,2016:3-16.
[5]KingS,NadalS.
PPcoin:peer-to-peercrypto-currencywithProof-of-Stake[J].
Self-publishedPaper,2012.
[6]DouceurJR.
Thesybilattack[C]//InternationalWorkshoponPeer-to-PeerSystems.
Berlin:Springer,2002:251-260.
[7]LuoY,ChenY,ChenQ,etal.
AnewelectionalgorithmforDPosconsensusmechanisminblockchain[C]//2018the7thInternationalConferenceonDigitalHome(ICDH).
IEEE,2018:116-120.
[8]UsmanC.
Thenarcotizedblockchain:apotcoincasestudy[J].
SSRNElectronicJournal,2018.
[9]BusseA,EberhardtJ,FrostS,etal.
AResponsetotheUnitedNations录用定稿黄建华,等:一种基于双链模型的分区共识协议第38卷第2期CITESBlockchainChallenge:IncrementalandIntegrativePoA-basedPermitExchange[C]//2019IEEEInternationalConferenceonBlockchainandCryptocurrency(ICBC).
2019:320-328.
[10]ZhengZibin,XieShaoan,DaiHong-Ning,etal.
Blockchainchallengesandopportunities:asurvey[J].
InternationalJournalofWebandGridServices,2018,14(4):352-375.
[11]CastroM,LiskovB.
Practicalbyzantinefaulttolerance[C]//InProceedingsofthe3rdSymposiumonOperatingSystemsDesignandImplementation(OSDI).
NewOrleans,1999.
[12]范捷,易乐天,舒继武.
拜占庭系统技术研究综述.
软件学报,2013,24(6):1346-1360.
(FanJie,YiLe-Tian,ShuJi-Wu.
ResearchonthetechnologiesofByzantinesystem.
JournalofSoftware,2013,24(6):1346-1360).
[13]MakhdoomI,AbolhasanM,NiW.
BlockchainforIoT:thechallengesandawayforward[C]//Proceedingsofthe15thInternationalJointConferenceone-BusinessandTelecommunications.
Portugal,2018.
[14]KwonJ.
Tendermint:consensuswithoutmining[EB/OL].
(2016).
https://tendermint.
com/static/docs/tendermint.
pdf.
[15]TheZilliqaTeam.
Thezilliqatechnicalwhitepaper[EB/OL].
(2017).
https://docs.
zilliqa.
com/whitepaper.
pdf.
[16]Albert.
Onshardingblockchains[EB/OL].
(2019).
https://github.
com/ethereum/wiki/wiki/Sharding-FAQs.
[17]LuuL,NarayananV,ZhengChaodong,etal.
Asecureshardingprotocolforopenblockchains[C]//InProceedingsofthe2016ACMSIGSACConferenceonComputerandCommunicationsSecurity.
NewYork,2016:17–30.
[18]TheHarmonyTeam.
Harmonytechnicalwhitepaper[EB/OL].
(2018)https://harmony.
one/pdf/whitepaper.
pdf.
[19]MicaliS,RabinM,VadhanS.
Verifiablerandomfunctions[C]//InProceedingsofthe40thAnnualIEEESymposiumonFoundationsofComputerScience(FOCS).
NewYork,1999.
[20]BellareM,MinerSK.
Aforward-securedigitalsignaturescheme[C]//InAdvanceinCryptology-CRYPTO.
Berlin:Springer,1999:431-448.
[21]BoLBL,LinYinlin.
Anewforward-securedigitalsignatureschemebasedonellipticcurve[C]//Inthe2ndInternationalConferenceonIndustrialandInformationSystems.
China,2010.
[22]Wikipedia.
Merkletree[EB/OL].
https://en.
wikipedia.
org/wiki/Merkletree.
[23]Kokoris-KogiasE,JovanovicP,GasserL,etal.
Omniledger:Asecure,scale-out,decentralizedledgerviasharding[C]//In2018IEEESymposiumonSecurityandPrivacy(SP).
IEEE,2018:583-598.
[24]SytaE,JovanovicP,Kokoris-KogiasE,etal.
Scalablebias-resistantdistributedrandomness[C]//Inthe38thIEEESymposiumonSecurityandPrivacy.
IEEE,2017.
[25]ZamaniM,MovahediM,andRaykovaM.
RapidChain:afastblockchainprotocolviafullsharding[C]//Inthe2018ACMSIGSACConference.
CryptologyePrintArchive,2018.
[26]FeldmanP.
Apracticalschemefornon-interactiveverifiablesecretsharing[C]//InProceedingsofthe28thAnnualSymposiumonFoundationsofComputerScience.
Washington:IEEEComputerSociety,1987:427-438.
[27]DanezisG,MeiklejohnS.
Centrallybankedcryptocurrencies[C]//InProceedingsofthe23rdAnnualNetworkandDistributedSystemSecuritySymposium.
2016.
[28]LamportL.
Howtomakeamultiprocessorcomputerthatcorrectlyexecutesmultiprocessprograms[J].
IEEETransactionsonComputers,1979,28(9):690–691.
[29]WangJiaping.
Monoxide:scaleoutlockchainswithasynchronousconsensuszones[C]//Inthe16thUSENIXSymposiumonNetworkedSystemsDesignandImplementation.
2019.
[30]GiladY,HemoR,MicaliS,etal.
Algorand:scalingbyzantineagreementsforcryptocurrencies[C]//InProceedingsofthe26thSymposiumonOperatingSystemsPrinciples.
NewYork:ACM,2017:51–68.
vpsdime怎么样?vpsdime是2013年成立的国外VPS主机商,以大内存闻名业界,主营基于OpenVZ和KVM虚拟化的Linux套餐,大内存、10Gbps大带宽、大硬盘,有美国西雅图、达拉斯、新泽西、英国、荷兰机房可选。在上个月搞了一款达拉斯Linux系统VPS促销,详情查看:vpsdime夏日促销活动,美国达拉斯vps,2G内存/2核/20gSSD/1T流量,$20/年,此次推出一款Wi...
昨天有在"盘点2021年主流云服务器商家618年中大促活动"文章中整理到当前年中大促618活动期间的一些国内国外的云服务商的促销活动,相对来说每年年中和年末的活动力度还是蛮大的,唯独就是活动太过于密集,而且商家比较多,导致我们很多新人不懂如何选择,当然对于我们这些老油条还是会选择的,估计没有比我们更聪明的进行薅爆款新人活动。有网友提到,是否可以整理一篇当前的这些活动商家中的促销产品。哪些商家哪款产...
官方网站:点击访问星梦云活动官网活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50G10Mbps1个100G不限流量210元/月 99元/月点击自助购买成都电信优化线路8vCPU8G40G+100G15Mbps1个100G不限流量370元/月 160元/月点击自助购买成都电信优化线路16vCPU16G40G+100G20Mb...
打包交易为你推荐
手机浏览器哪个好手机什么浏览器最好用?少儿英语哪个好少儿英语哪套教材好哪里好呢?电视直播软件哪个好电视直播软件哪个好绝地求生加速器哪个好绝地求生用什么加速器比较好?英语词典哪个好英语词典哪种更好啊?炒股软件哪个好用玩股票哪个软件好?美国国际东西方大学明尼苏达大学(是莫瑞斯分校)和美国东北大学 应该去哪一个 是这个方面的专家回答啊!有偏见性的不要说!电信dns服务器地址电信宽带的DNS服务地址是多少网通dns服务器地址网通的DNS是多少?360云盘企业版企业云盘和360云盘有什么不同
域名到期查询 南通服务器租用 广州主机租用 荷兰vps smartvps 免费申请网页 raksmart ion ix主机 59.99美元 网站实时监控 发包服务器 52测评网 免费智能解析 免费phpmysql空间 优酷黄金会员账号共享 银盘服务 无限流量 英雄联盟台服官网 国内域名 更多