一种区块链分片系统中降低存储开销的方法技术方案

技术编号:39660589 阅读:8 留言:0更新日期:2023-12-11 18:22
本发明专利技术公开了一种区块链分片系统中降低存储开销的方法

【技术实现步骤摘要】
一种区块链分片系统中降低存储开销的方法、装置及介质


[0001]本专利技术属于计算机存储领域,更具体地,涉及一种区块链分片系统中降低存储开销的方法

装置及介质


技术介绍

[0002]区块链是一种极具前景与潜在应用价值的基础设施,有望革新各行各业传统的生产关系

然而区块链却存在极其严重的可扩展性问题,即长区块同步时间

高昂的存储开销以及低吞吐量,阻碍了区块链的应用落地

[0003]在以太坊中,区块链中的每个全节点都需要复制整个网络的状态时,共识系统无法横向扩展

即使实现了高吞吐量,需要快速通信

足够存储和计算能力的工作负载就会为全节点的参与设置高门槛,这又极大地阻碍了实际系统中的去中心化

[0004]以太坊社区已经研究了区块链系统中的分片,分片方案可以将单链的吞吐量横向扩展至多链的吞吐量,每条链都能独立处理交易并贡献其吞吐量至总的吞吐量

与传统分布式系统中的分片策略类似,区块链可以分为多个分片来并行处理交易,横向扩展系统,但由于区块链是去中心化的点对点网络,且涉及复杂状态的更迭,因此区块链分片策略面临着诸多挑战

[0005]Luu
等人提出的
Elastico
是最早的区块链分片协议,其基于拜占庭协议完成每个分片内的共识与总的共识

然而为了保证安全性,在全局委员会中的节点仍需要处理来自整个区块链系统的数据,引入了高昂的存储开销与通信开销,且其仅支持片内的交易而无法支持跨分片的交易

[0006]Kokoris

Kogias
等人提出的
OmniLedger

Mahdi
等人提出的
RapidChain
为了保证分片的安全引入随机分片策略;为了使节点能够处理跨片交易引入两阶段原子提交协议,保证跨片交易的原子性;全节点只需要处理其所在分片的交易,对其他分片只存区块头部信息用于验证两阶段的前置交易是否上链

存储开销与通信开销的降低使这两个方案更具可行性

[0007]Wang
等人提出的
Monoxide
进一步针对跨片交易的锁开销与分片的安全性,提出最终原子性与连弩共识策略

最终原子性保证了跨片交易的一阶段原子性操作一旦完成,二阶段的原子性操作最终也将被执行,消除了两阶段提交的互锁通信开销来提升性能

连弩共识使有能力同步与存储更多分片的节点只需要做一次工作量证明即可完成多个分片的出块,越多节点选择连弩共识,区块链算力被稀释到各个分片的程度就越低,每个分片内都有足够的算力保证其安全性

然而只有全节点聚集的矿池能够承担连弩共识的存储开销,由此可知
Monoxide
为了保证区块链的安全性而牺牲了去中心化的特性

[0008]Wang
提出的
RepShard
是一种基于信誉的区块链分片方案,采用了两层链结构,由独立的交易链和信誉链组成,前者在其分片内记录交易,后者由所有分片共同维护以更新每个参与节点的声誉分数

[0009]总体而言,现有的解决方案并没有达到理想分片效果,尽管都能通过分片提高吞
吐量,但也有各自缺陷,主要的问题是,过大的存储开销与跨片通信等额外开销,或者较低的安全性


技术实现思路

[0010]针对现有技术的缺陷和改进需求,本专利技术提供了一种区块链分片系统中降低存储开销的方法

装置及介质,旨在解决现有的分片方案过大的存储开销与跨片通信等额外开销的问题,并保证系统较高的安全性

[0011]为实现上述目的,按照本专利技术的第一方面,提供了一种区块链分片系统中降低存储开销的方法,所述区块链分片系统包括若干分片链及一条主链,其中,所述分片链存储片内交易及各节点的余额信息,所述主链存储片间聚合交易及各分片的总余额信息;
[0012]所述方法包括:
[0013]将所有节点划分至各分片,每个节点向各自的分片链和主链中质押代币以获得竞争出块的权利;
[0014]对每个分片,选定出块者收集与该分片相关的片内交易和跨片交易,其中,目的为该分片的跨片交易,通过读取主链上对应源分片的总余额信息验证该组交易的正确性,当余额满足要求后,该组交易被接受;所述出块者将收集的所有交易打包成新区块,并将所述新区块广播到所述出块者所在分片的其他节点;
[0015]对每个分片,每经过一个主链时间周期,将该分片所有出块者收集的源为该分片的跨片交易根据目的分片的不同进行聚合,得到多个片间聚合交易;其中,每个片间聚合交易包括源分片和目的分片的索引号

被聚合的所有交易组成的默克尔根

该分片所有状态组成的默克尔根

被聚合的所有交易的总余额;
[0016]将所有片间聚合交易在全网进行广播,并从全网选定出块者将所有片间聚合交易打包后追加到主链上

[0017]进一步地,从全网选定出块者将所有片间聚合交易打包后追加到主链上后,所述方法还包括:
[0018]当分片
S
p
中诚实节点举报当前主链时间周期的片间聚合交易有误时,诚实节点向智能合约提供收集的证据并发起挑战,所述证据包括当前主链时间周期内分片
S
p
相关的交易,以及这组交易发生前的状态;
[0019]智能合约从主链中读取分片
S
p
在上一个主链时间周期内的状态根和当前主链时间周期内的所有交易根,并与根据诚实节点提供的证据计算得到的状态根和交易根进行比较,若均相同,则认为诚实节点提供的证据正确,智能合约根据所述证据判定挑战是否成功;否则,挑战失败;
[0020]智能合约将根据挑战结果,通过质押的代币进行惩罚与奖励;
[0021]其中,所述状态根为一组状态组成的默克尔根,所述交易根为一组交易组成的默克尔根

[0022]进一步地,所述智能合约根据所述证据判定挑战是否成功,包括:
[0023]智能合约对诚实节点提供的所有交易进行遍历,对每笔交易进行验证,同时通过该交易,对诚实节点提供的状态进行状态变迁;遍历过程中,当出现交易验证失败或出现负数余额的状态则证明挑战成功;
[0024]遍历所有交易后,智能合约读取当前主链时间周期内分片
S
p
的状态根,与遍历后新得到的状态计算出的状态根进行比较,若不同则挑战成功,若相同则挑战失败

[0025]进一步地,在出块者收集跨片交易时,对于源分片和目的分片相同的一组跨片交易,出块者通过
BLS
聚合签名算法将一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种区块链分片系统中降低存储开销的方法,其特征在于,所述区块链分片系统包括若干分片链及一条主链,其中,所述分片链存储片内交易及各节点的余额信息,所述主链存储片间聚合交易及各分片的总余额信息;所述方法包括:将所有节点划分至各分片,每个节点向各自的分片链和主链中质押代币以获得竞争出块的权利;对每个分片,选定出块者收集与该分片相关的片内交易和跨片交易,其中,目的为该分片的跨片交易,通过读取主链上对应源分片的总余额信息验证该组交易的正确性,当余额满足要求后,该组交易被接受;所述出块者将收集的所有交易打包成新区块,并将所述新区块广播到所述出块者所在分片的其他节点;对每个分片,每经过一个主链时间周期,将该分片所有出块者收集的源为该分片的跨片交易根据目的分片的不同进行聚合,得到多个片间聚合交易;其中,每个片间聚合交易包括源分片和目的分片的索引号

被聚合的所有交易组成的默克尔根

该分片所有状态组成的默克尔根

被聚合的所有交易的总余额;将所有片间聚合交易在全网进行广播,并从全网选定出块者将所有片间聚合交易打包后追加到主链上
。2.
根据权利要求1所述的区块链分片系统中降低存储开销的方法,其特征在于,从全网选定出块者将所有片间聚合交易打包后追加到主链上后,所述方法还包括:当分片
S
p
中诚实节点举报当前主链时间周期的片间聚合交易有误时,诚实节点向智能合约提供收集的证据并发起挑战,所述证据包括当前主链时间周期内分片
S
p
相关的交易,以及这组交易发生前的状态;智能合约从主链中读取分片
S
p
在上一个主链时间周期内的状态根和当前主链时间周期内的所有交易根,并与根据诚实节点提供的证据计算得到的状态根和交易根进行比较,若均相同,则认为诚实节点提供的证据正确,智能合约根据所述证据判定挑战是否成功;否则,挑战失败;智能合约将根据挑战结果,通过质押的代币进行惩罚与奖励;其中,所述状态根为一组状态组成的默克尔根,所述交易根为一组交易组成的默克尔根
。3.
根据权利要求2所述的区块链分片系统中降低存储开销的方法,其特征在于,所述智能合约根据所述证据判定挑战是否成功,包括:智能合约对诚实节点提供的所有交易进行遍历,对每笔交易进行验证,同时通过该交易,对诚实节点提供的状态进行状态变迁;遍历过程中,当出现交易验证失败或出现负数余额的状态则证明挑战成功;遍历所有交易后,智能合约读取当前主链时间周期内分片
S
p
的状态根,与遍历后新得到的状态计算出的状态根进行比较,若不同则挑战成功,若相同则挑战失败
。4.
根据权利要求1至3任一项所述的区块链分片系统中降低存储开销的方法,其特征在于,在出块者收集跨片交易时,对于源分片和目的分片相同的一组跨片交易,出块者通过
BLS
聚合签名算法将一组带签名的跨片交易转化为一组不带签名的跨片交易与一个聚合签名

5.
根据权利要求1至3任一项所述的区块链分片系统中降低存储开销的方法,其特征在于,所述将...

【专利技术属性】
技术研发人员:万胜刚易成龙张骏烨刘俊伦何绪斌谢长生
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1