一种可信区块链分片性能优化方法

文档序号:28068790发布日期:2021-12-18 00:06阅读:131来源:国知局
一种可信区块链分片性能优化方法

1.本发明涉及区块链分片技术领域,具体而言涉及一种可信区块链分片性能优化方法。


背景技术:

2.区块链是当今国内外科技前沿、热点、难点和新兴领域。作为跨领域技术,区块链具有去中心化、公开性、自治性、信息不可篡改和匿名性等特点,在金融、电子商务、工业制造、物联网等领域有着广泛的应用前景,受到学术界和企业界的广泛关注。由于区块链系统面临着交易吞吐量低和时延长的性能瓶颈,导致系统可扩展性差,严重制约着区块链系统的实际应用。
3.可扩展性差是目前区块链系统所面临的主要挑战问题之一,表现为吞吐量低和交易时延长,极大地限制了区块链技术的发展与应用,如:以太坊在主链上每秒处理15笔交易,比特币区块链系统每秒处理7笔交易,交易费用高且确认时间长,容易导致交易积压和网络拥堵。低吞吐量和高迟延促使区块链系统迫切需要提高其可扩展能力。
4.分片技术作为链上扩展方法,可以并行处理交易,提高交易吞吐量,然而现有的分片方案,导致大量的跨片交易,增加了跨片通信量,从而影响交易吞吐量并增加了时延。此外,区块链系统存在恶意节点和节点合谋攻击等问题,导致分片系统中面临着很多信任风险,制约了区块链的可扩展性。具体问题主要表现如下:
5.分片跨片交易多和易受攻击问题:现有的分片方案中存在不合理的分片交易带来的大量跨片交易,导致跨片通信量过大,影响交易吞吐量。此外,分片技术提高系统效率的同时也造成安全性弱的问题,分片之后节点大多数被稀释,降低了算力和稀释了信任节点,容易造成单个分片的攻击成本极大下降,使得分片易于被恶意节点攻击,严重影响区块链系统的可扩展性。


技术实现要素:

6.本发明针对现有技术中的不足,提供一种可信区块链分片性能优化方法,从可信区块链分片内部出发,通过节点行为数据和状态数据,计算分片节点信任度,发现并摒弃恶意节点,减少分片内部恶意节点攻击和节点不合作的风险。通过研究可信区块链分片建模及优化方法,突破现有分片在处理交易时面临的低吞吐量和高时延的性能瓶颈和降低被恶意攻击的风险,减少跨片通信量,提高区块链交易处理的可信性和吞吐量,降低交易时延,从而提升区块链的可扩展性。
7.为实现上述目的,本发明采用以下技术方案:
8.本发明实施例提出了一种可信区块链分片性能优化方法,所述优化方法包括以下步骤:
9.s1,设置分片节点信任度计算所需要的信任评测项,基于信任评测项自动收集分片节点状态数据和行为数据并存储于可信区块链中;
10.s2,根据步骤s1的收集数据计算分片节点信任度;
11.s3,动态更新节点信任度,摒弃分片节点信任度达不到预设信任度要求的分片,并且根据分片的信任需求自适应动态调节节点信任更新频率;
12.s4,以分片容错率、片内信任度和跨片边数作为衡量指标,构建可信区块链分片性能优化模型;该可信区块链分片性能优化模型以在最小跨片边数的基础上片内信任度最高为约束条件,计算得到交易的最优分片分配结果,且计算得到的分片容错率小于分片容错率阈值;其中,分片容错率是分片中出错节点所占的比例,片内信任度是分片的所有分片节点信任度的平均值。
13.进一步地,步骤s1中,所述信任评测项包括分片内的交易处理数据和跨片的交易处理数据;该交易处理数据包括节点状态和节点行为数据,均来自于各节点所在的分片;
14.所述节点状态和节点行为数据包括分片节点的信任评价、成功处理分片交易数、处理交易时出现的错误数与总处理次数、稳定运行时间、总时间和处理时长。
15.进一步地,根据下述公式分别计算分片节点的转发率、记账率、验证率和响应率:
16.分片节点转发率=片内成功转发分片交易数/片内总转发交易数;
17.分片节点记账率=片内成功记账分片交易数/片内总记账交易数;
18.分片节点验证率=片内成功验证分片交易数/片内总验证交易数;
19.分片节点响应率=片内成功交易数+处理跨片交易数/处理时长。
20.进一步地,步骤s1中,所述基于信任评测项自动收集分片节点状态数据和行为数据并存储于可信区块链中的过程包括以下步骤:
21.以太坊建立抽象的基础层,编制自动化脚本代码组成相应的智能合约并部署在以太坊区块链系统上,并在其中设立自由定义的所有权规则、交易方式和状态转换函数;该智能合约由区块链交易触发后,自动执行读取评测项信息并在区块链中写入读取数据的操作;
22.该智能合约制定和调用的过程包括:
23.通过账户导入以太坊节点,使用合约语言solidity编写智能合约;使用以太坊控制台来编译智能合约,并将编译好的智能合约部署到网络中;智能合约被打包保存到以太坊区块链的合约部署的地址上;基于智能合约部署的地址调用该智能合约
24.其中,信任评价是由与节点有交互的其他节点提供。
25.进一步地,步骤s2中,所述计算分片节点信任度的过程包括以下步骤:
26.记分片节点i有n个信任评测项,在t时刻评测项的信任向量记为a=(a
i1
,a
i2
,

,a
ij
,

a
in
),评测项的权重向量为根据下述公式计算分片i的节点信任度t
i

[0027][0028]
式中,a
j
≥0,δ
i
=m
i
/n
i
,m
i
和n
i
分别表示分片节点i的记账、验证、转发交易、处理跨片交易的错误数和总数。
[0029]
进一步地,步骤s3中,所述根据分片的信任需求自适应动态调节节点信任更新频率的过程包括以下步骤:
[0030]
令f
i
为节点i的信任更新频率,γ
i
为节点i的信任度更新周期,f
i
=1/γ
i
,根据下述公式计算γ
i

[0031][0032]
式中,t
i
是计算得到的节点i的信任度,t
min
为预先设置的最小更新周期;t
max
为最大更新周期;ω是比例系数,0.5≤ω≤1;y1、y2和y3为自适应调整的参数,且0<y1<y2<y3<1;
[0033]
其中,初始时的信任更新周期为(t
max
+t
min
)/2。
[0034]
进一步地,步骤s4中,所述以分片容错率、片内信任度和跨片边数作为衡量指标,构建可信区块链分片性能优化模型;该可信区块链分片性能优化模型以在最小跨片边数的基础上片内信任度最高为约束条件,计算得到交易的最优分片分配结果的过程包括以下步骤:
[0035]
构建可信区块链分片性能优化模型:
[0036]
g=(v,e)
[0037]
式中,v是交易集合构成的顶点集,e是交易之间关系集合构成的边集;
[0038]
基于交易流图,寻找基于g的分片集合q={s1,s2,...,s
k
},s
k
表示分片k且s
k
=(v
k
,e
k
),k=|q|,
[0039]
当区块链系统有k个分片时,对于输入d新交易u,基于可信区块链分片性能优化模型,对分片交易进行优化放置,包括如下步骤:
[0040]
(a)基于可信区块链中存储的分片节点信息,根据下述公式计算分片k的分片容错率l
k

[0041]
l
k
=f
k
/|v
k
|
[0042]
式中,f
k
是分片k中的出错节点个数,|v
k
|是分片k中的节点总数;
[0043]
(b)对l
k
进行分析:
[0044]
如果l
k
≤ω的分片为1个,则将u放到该分片,结束流程;
[0045]
如果l
k
≤ω的分片为0个,判断k个分片均不能满足分片容错率的阈值要求,交易放置失败,区块链系统摒弃恶意节点并对可信节点重新划分,形成新一轮的多个分片,转入步骤(a);
[0046]
如果l
k
≤ω的分片为有h个,1<h≤k,则进入步骤(c);
[0047]
其中,ω是最低分片容错率阈值;
[0048]
(c)统计在每个分片中放置交易u而产生的跨片边数:
[0049][0050]
式中,e
kj
表示交易u放入分片k时与分片j产生的跨片边数,其中j,k∈[1,h]且j≠k;
[0051]
(d)根据下述公式筛选出具有最少跨片边数q的分片集合;
[0052][0053]
(e)如果具有最少跨片边数q的分片集合中只有一个分片,则将交易u放置到该分片中,结束流程;如果具有相同值q的分片有x个,1<x≤h,转入步骤(f);
[0054]
(f)根据下述公式计算分片集合中x个分片的片内信任度
[0055][0056]
式中,k
*
∈[1,x];
[0057]
将交易u放置到片内信任度最高的分片中。
[0058]
本发明的有益效果是:
[0059]
(1)基于可信区块链,根据分片节点事务类型的不同(分片节点具有转发、验证和记账事务)设计相应的节点信任评测项并计算分片节点信任度,节点信任度随着正确处理各自事务数目的增加而增加,当节点处理事务出错时采用惩罚机制,使得节点有信任消耗,提高节点信任计算的时效性和针对性。通过及时发现并摒弃恶意节点,减少分片内部恶意节点攻击和节点不合作的风险。
[0060]
(2)基于可信区块链,创新性地设计分片容错率、片内信任度和跨片边数三个衡量指标,将交易放置在分片容错率满足阈值要求、高可信的分片中,并将关联性强的交易被放在同一个分片中,提高分片吞吐量和可信性,减少跨片通信量和降低交易时延。
附图说明
[0061]
图1是本发明实施例的可信区块链分片性能优化方法流程图。
[0062]
图2为本发明实施例的技术研究路线示意图。
[0063]
图3为本发明实施例的可信区块链节点结构示意图。
[0064]
图4为本发明实施例的可信区块链中的区块结构示意图。
[0065]
图5为本发明实施例的吞吐量对比示意图。
[0066]
图6为本发明实施例的不同分片数时的交易延迟对比示意图。
[0067]
图7为本发明实施例的不同节点数时的交易延迟对比示意图。
[0068]
图8为本发明实施例的不同交易到达率时的交易延迟对比示意图。
具体实施方式
[0069]
现在结合附图对本发明作进一步详细的说明。
[0070]
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
[0071]
图1是本发明实施例的可信区块链分片性能优化方法流程图。参见图1,该优化方法包括以下步骤:
[0072]
s1,设置分片节点信任度计算所需要的信任评测项,基于信任评测项自动收集分片节点状态数据和行为数据并存储于可信区块链中。
[0073]
s2,根据步骤s1的收集数据计算分片节点信任度。
[0074]
s3,动态更新节点信任度,摒弃分片节点信任度达不到预设信任度要求的分片,并且根据分片的信任需求自适应动态调节节点信任更新频率。
[0075]
s4,以分片容错率、片内信任度和跨片边数作为衡量指标,构建可信区块链分片性能优化模型;该可信区块链分片性能优化模型以在最小跨片边数的基础上片内信任度最高为约束条件,计算得到交易的最优分片分配结果,且计算得到的分片容错率小于分片容错率阈值;其中,分片容错率是分片中出错节点所占的比例,片内信任度是分片的所有分片节点信任度的平均值。
[0076]
分片机制可以提高交易处理的并发性,从而降低交易时延,但是分片可能会带来安全性问题,也就是说区块链网络中可信节点被分片稀释,导致某些分片易于被攻击,如果仅仅从减少跨片边数来优化分片性能,可能会导致恶意节点操纵区块链数据,从而产生恶意数据,同时恶意节点可能会消极怠工,影响分片交易吞吐量和交易时延,因此,如何将合适的交易放置到可信分片中是一个关键问题。基于可信区块链,结合分片容错率、分片节点信任度和片内信任度计算结果,在考虑减少跨片交易产生的跨片边数的同时,将交易放置在片内信任度高的可信分片中,减少跨片交易数,从而实现将交易放置到合适的可信分片中。
[0077]
围绕提升区块链可扩展性(基于分片技术)这一主线,首先研究可信区块链分片节点信任度计算方法并进行信任更新(改进点一);其次研究区块链可扩展性性能优化方法,包括:可信区块链分片性能优化建模与算法设计(改进点二)。
[0078]
(1)改进点一:可信区块链分片节点信任度计算与更新,分成如下三点内容:
[0079]
(1.1)构建面向分片的可信区块链:设置分片节点信任度计算所需要的信任评测项,基于评测项收集分片节点状态数据和行为数据并存储于可信区块链中。
[0080]
(1.2)基于可信区块链计算分片节点信任度:由于分片节点有各自的事务类型,具有不同的信任评测项,采用惩罚机制,基于节点的信任评测项和数据计算其信任度,节点信任值会随着正确处理各自事务而增加,同时基于惩罚机制形成节点各自的信任消耗,从而提高信任计算的时效性和针对性。
[0081]
(1.3)设计分片节点信任更新方法:分片节点信任度会随着时间推移而动态更新,有些节点在运行过程因受攻击或其他原因变成恶意节点,需要动态更新节点信任度。设计节点信任更新方法,自适应动态调节节点信任更新频率,提高节点信任更新的针对性和时效性。
[0082]
(2)改进点二:可信区块链分片性能优化建模与算法设计。分成如下两点:
[0083]
(2.1)基于交易连接方式建立交易流图:将区块链网络中的交易按照交易时间先后关系构建成交易流图,交易抽象成图中顶点,交易之间的关系抽象成边,将交易放置问题转化成交易流图中的顶点划分问题,从而更好地对分片交易进行分析,为减少跨片通信量提供计算依据。
[0084]
(2.2)设计可信区块链分片性能优化模型与算法:基于交易流图,设计可信区块链分片性能优化模型,提出分片容错率、片内信任度和跨片边数三个衡量指标,以便对交易进行合理放置。基于该模型设计分片交易优化放置算法,将交易放置在高片内信任度的可信分片中,同时将关联性强的交易放在同一个分片中,提高吞吐量,减少交易时延和跨片通信
量。通过对分片节点进行信任更新,及时发现新的恶意节点,提高分片交易处理的可信性。
[0085]
针对研究内容,采用“数据层

信任度计算与更新

可扩展性性能优化建模

算法设计与分析”的技术研究路线,如图2所示。
[0086]
一.针对改进点一:“分片节点信任度计算与更新”[0087]
1)构建面向分片的可信区块链
[0088]
(a)可信区块链节点结构
[0089]
构建一种可信区块链,与以往存储交易信息的区块链不同,该区块链主要保存与分片节点信任计算相关信息。可信区块链节点结构如图3所示。
[0090]
图3中,采用安全性相对较高的sm3算法生成公钥和私钥,公钥和私钥匹配验证在一定程度上避免了区块链网络的sybil攻击。节点结构中存储了该可信区块链系统节点的信任评测项,其中,分片节点包括:信任评价、成功处理分片交易数(包括:转发、记账、验证等)、处理交易时出现的错误数与总处理次数、稳定运行时间、总时间、处理时长等;信任评价是由与该节点有交互的其他节点提供。通过执行区块链系统的智能合约来获取这些参数值并存储到可信区块链中。信任计算方案给出基于信任评测项计算信任度的方法。可信区块链中的区块如图4所示。
[0091]
图4中,参照比特币、以太坊等典型案例并结合我们前期研究构建的可信区块链系统,来构建面向分片的可信区块链,存储与分片节点信任相关的信息,包括:
[0092]
·
定义区块结构体:包括时间戳、前一个区块hash值和分片节点的信任评测项等。
[0093]
·
创建第一个区块,设置初始值,产生当前时间戳,生成merkle树等。
[0094]
·
产生新区块时,调用sm3加密函数加密上一个区块的哈希值、时间戳及信任评测项等数据。
[0095]
通过编制自动化脚本代码组成的智能合约并部署在以太坊区块链系统上,由区块链交易触发后,该智能合约自动执行读取并在区块链中写入数据的操作,从而实现可信区块链中评测项信息的自动收集。以太坊通过建立抽象的基础层,使得能够创建合约和p2p应用,并在其中设立自由定义的所有权规则、交易方式和状态转换函数。作为运行在该区块链上的自动执行代码,在预置触发条件被触发的情况下,将不受干预地执行可信区块链分片节点的评测项信息的收集、查询、计算、更新等操作,整个流程公开透明,使得信息收集更具权威性。此外,信任评价是由与节点有交互的其他节点提供,通过执行区块链系统的智能合约来获取这些参数值并存储到可信区块链中。合约制定和调用的主要过程描述如下:
[0096]
·
通过账户导入以太坊节点,使用合约语言solidity编写智能合约;优选的,软件系统及算法借助智能合约编程语言solidity、web3.js、java等予以编码实现。
[0097]
·
使用以太坊控制台来编译合约,并将编译好的合约部署到网络中。
[0098]
·
合约被打包保存到以太坊区块链的合约部署的地址上。
[0099]
·
基于合约部署的地址调用该合约。
[0100]
(b)设计分片节点信任评测项
[0101]
分片节点信任评测项如下:
[0102]
分片技术将区块链中的所有节点分为不同的分片,每个分片只处理片区内部的交易,跨片区的交易则由各分片合作完成。文献(徐恪等,基于区块链的网络安全体系结构与关键技术研究进展,计算机学报,2021)指出:在当前实际分片的过程中,由于对区块链网络
进行了分割,可能导致部分分片中恶意节点数量过多,使得这些分片容易遭受攻击,因此在分片的过程中如何计算分片节点可信性是区块链分片研究的主要目标。为评测分片节点的信任度,分片节点信任评测项包括节点状态数据和行为数据,均来自于各节点所在的分片,包括:分片节点的信任评价、成功处理分片交易数(包括:转发、记账、验证)、处理交易时出现的错误数与总处理次数、稳定运行时间、总时间、处理时长等。分片节点事务类型包括记账、验证、转发等,与以往区块链节点信任度计算不同,分片节点信任度计算需要考虑到分片内和跨片交易处理情况。分片节点的转发率、记账率、验证率、响应率采用的相关计算公式如下:
[0103]
分片节点转发率=片内成功转发分片交易数/片内总转发交易数。
[0104]
分片节点记账率=片内成功记账分片交易数/片内总记账交易数。
[0105]
分片节点验证率=片内成功验证分片交易数/片内总验证交易数。
[0106]
分片节点响应率=片内成功记账、验证、转发分片交易数、处理跨片交易数/处理时长。
[0107]
分片节点评测项的值和计算结果被保存到可信区块链中,此外,分片号、节点状态(正常、出错)等信息也被保存可信区块链中。
[0108]
2)基于可信区块链计算分片节点信任度
[0109]
基于分片节点信任评测项,计算分片节点信任度
[0110]
记分片节点有m个信任评测项,在t时刻评测项的信任向量记为a=(a1,a2,...,a
j
,...,a
n
),评测项的权重向量为分片节点信任度计算如式(1)所示:
[0111][0112]
式(1)中,a
j
≥0,式(1)中,δ
i
计算如式(2)所示:
[0113]
δ
i
=m
i
/n
i
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0114]
注意:分片内有记账、验证、转发交易的事务以及处理跨片交易的事务,需要根据节点事务的不同而取相应的信任评测项计算信任度和计算信任消耗(式(2)中m
f
为分片节点记账、验证、转发交易、处理跨片交易的错误数)。
[0115]
3)设计分片节点信任更新方法
[0116]
基于节点信任度随时间的更新情况,设计节点信任更新方法,自适应动态调节节点信任更新的频率,由于节点信任度处于动态变化之中,需要有针对性地设置节点信任度的更新频率。提出基于节点信任度来设置节点信任更新的频率,提高节点信任更新的针对性和时效性,从而及时发现恶意节点。
[0117]
自适应调节节点信任更新的频率,令f
i
为节点i的信任更新频率,γ
i
为节点i的信任度更新周期。f
i
=1/γ
i
,γ
i
的计算如式(3)所示:
[0118][0119]
式(3)中,t
i
是基于式(1)计算得到的节点i的信任度,t
min
为预先设置的最小更新
周期;t
max
为最大更新周期。初始时的信任更新周期为(t
min
+t
max
)/2;ω为比例系数,0.5≤ω≤1(可根据节点的运行状态进行调节,如:如果节点状态正常,可在该范围内设置大一些的ω值);y1,y2,y3为自适应调整的参数,0<y1<y2<y3<1。根据分片的信任需求不同,设置分段函数的阶段个数,式(3)给出的是有4个阶段的自适应调整更新周期。
[0120]
将以上相关方法编制成智能合约,部署在以太坊区块链上,通过执行这些智能合约来对节点信任度进行更新并自适应调整更新频率,对信任值低的节点予以标注。
[0121]
2.针对改进点二:“可信区块链分片性能优化建模与算法设计”[0122]
1)设计可信区块链分片性能优化模型
[0123]
建立分片性能优化模型时需要考虑优化放置新交易,一方面应尽可能将该交易放置到父交易多的分片中(关联性强),减少跨片交易带来的跨片边数,另一方面应该考虑分片的容错率和片内信任度,提高分片安全性。
[0124]
可信区块链分片性能优化模型,如式(4)所示:
[0125]
g=(v,e)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0126]
式(6)中,v是顶点集(交易集合),e是边集(交易之间关系集合)。基于交易流图,寻找基于g的分片集合q={s1,s2,...,s
k
},s
k
表示分片k且s
k
=(v
k
,e
k
),k=|q|,),k=|q|,(两者是集合包含关系,是因为分片后可能会有一些边成为跨片边,不包含在分片的边集里)。对新交易u,将其放置在分片容错率满足阈值要求、片内信任度高、跨片边数少的分片k中,相关计算如下:
[0127]
分片容错率:指某个分片中出错节点所占的比例。基于可信区块链中存储的分片节点出错与否信息,计算分片k的容错率(fault tolerance rate)l
k
,如式(5)所示:
[0128]
l
k
=f
k
/|v
k
|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0129]
式(5)中,f
k
是分片k中的出错节点个数,|v
k
|是分片k中的节点总数。
[0130]
片内信任度:指某个分片的所有分片节点信任度的平均值。记n
k
为分片k的片内信任度,如式(6)所示。
[0131][0132]
式(6)中,t
i
表示分片k中节点i的信任度(基于研究内容一计算得到),|v
k
|是分片k中的节点总数。
[0133]
跨片边数:记m
k
为交易u放在分片k中而产生的跨片边数,如式(7)所示:
[0134][0135]
式(7)中,e
kj
表示交易u放入分片k时与分片j产生的跨片边数(由交易u的父交易决定,父交易可能是多个且可能在不同的分片中),k为区块链系统中的分片个数。
[0136]
分片节点在运行过程中可能会出现错误等不可用问题,但每个分片的片内节点之间要达成共识,因此分片容错率要满足阈值(ω)要求(如拜占庭容错能够容纳将近1/3的错误节点误差)。当区块链系统有k个分片时,对于输入新交易u,基于上述模型,设计分片交易优化放置算法,主要步骤如下:
[0137]
(a)基于可信区块链中存储的分片节点信息,基于式(5)计算分片k的分片容错率l
k

[0138]
(b)如果l
k
≤ω的分片为1个,则将u放到该分片,退出该算法;否则进入步骤(c)。
[0139]
(c)如果l
k
≤ω的分片为有h个(1<h≤k),则进入步骤(d)。
[0140]
(d)统计在每个分片中因放置交易u而产生的跨片边数e
kj
(表示交易u放入分片k时与分片j产生的跨片边数(由每个分片中u的父交易决定)),其中j,k∈[1,h]且j≠k。
[0141]
(e)基于e
kj
和式(7)计算m
k
(表示交易u放在分片k中而产生的跨片边数)。当交易u放到分片k产生最少跨片边数(记为q),令:
[0142][0143]
(e)如果具有相同值q的分片有x个,1<x≤h,基于式(7)计算区块链系统中这x个分片的片内信任度k
*
∈[1,x]。
[0144]
(f)将交易u放置到具有最小跨片边数且片内信任度高的分片k中(可信分片),此时在满足分片容错率的情况下,分片k的片内信任度高且产生的跨片通信量最少。
[0145]
如果l
k
≤ω的分片为0个,表示k个分片均不能满足分片容错率的阈值要求,交易放置失败,退出该算法;区块链系统将摒弃恶意节点并对可信节点重新划分,形成新一轮的多个分片,进入步骤(a)。
[0146]
分片机制虽然可以提高交易处理的并发性、降低交易时延,但是分片也带来安全性问题,也就是说区块链网络中可信节点被分片稀释,导致某些分片易于被攻击,恶意节点可能会消极怠工,将会影响交易时延和吞吐量,基于上述分片交易优化放置算法的步骤(a)计算分片容错率,摒弃具有低分片容错率的分片;在此基础上,通过步骤(d)计算产生跨片边数最少的分片,减少跨片通信量;在此基础上,通过步骤(f)计算片内信任度,摒弃低片内信任度的分片,降低将交易u放置到可能有恶意节点操纵的分片中的可能性,提高分片交易处理的可信性;通过将分片放置到具有最小跨片边数且片内信任度高的分片中,从而提高分片的可信性和分片交易吞吐量,降低交易时延。此外,对分片节点进行信任更新(基于式(3)更新频率可得),如果节点信任值更新后片内信任度达不到要求,在新一轮算法运行过程中,该分片将会被摒弃;在区块链系统重新分片并形成新一轮的多个分片,低信任度的节点将不被列入分片节点并被摒弃,从而实现将交易放到合适的可信分片中。
[0147]
将本实施例提出的分片方法与流行的分片方案omniledger行了比较。throughput和transaction latency实验效果如下:
[0148]
1)吞吐量(throughput)
[0149]
吞吐量结果如图5所示,两种方法的事务吞吐量都随数的增加而增加。当分片数量较少时,如4个和6个,区块链系统中几乎没有交叉分片交易。本专利提出的方法在吞吐量上有明显的优势,并且这种优势随着分片数的增加而增加。
[0150]
2)交易延迟(transaction latency)
[0151]
如图6所示,每个分片的节点数设置为200和600。由于分片在区块链系统中的并行化能力增强,交易延迟随着分片数的增加而减少。随着分片数的增加,事务的等待时间和交易延迟都显著减少。本专利提出的方法的交易延迟低于omniledger方法。例如,当分片数为16时,其交易延迟25.3s小于omniledger的28.1s。
[0152]
如图7所示,两种方法的交易延迟随着节点计数而增加。由于跨分片事务数较少,本专利提出的方法具有较低的交易延迟。图8示出在给定相同事务到达率的情况下,所提出
的方法具有比其他方法更低的交易延迟。实验结果表明,本专利提出的方法显著减少了区块链系统中跨分片事务的数量,从而提高了事务吞吐量,降低了交易延迟。
[0153]
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1