论文部分内容阅读
随着区块链技术的不断发展,其被应用到越来越多的商业环境中,例如可追溯系统、物联网和医疗等。在公有区块链中每个全节点都存储一个全局账本,并且节点存储的数据会随着时间的不断积累而一直增加。另外,最近很多研究也开始关注区块链的交易吞吐量,区块链系统的交易吞吐量的提升,势必会导致节点存储开销的快速增长。而且,越来越多应用数据上链的需求也为区块链数据增长提供了基础。因此,如何减少区块链中节点的存储开销是一个非常重要的问题。目前,减少区块链节点存储开销的方案主要有两种方式。1.改变现有的区块链系统架构。2.删除旧数据。改变现有区块链系统架构,将需要大多数节点的同意,这将面临系统硬分叉等安全风险。删除旧数据就是对区块链的历史数据采取直接删除方式,这样就造成了数据的丢失,也将失去区块链的可追溯特性。因此,如何在不重构现有区块链和不损失其可追溯性的前提下减少节点的存储开销是一个值得研究的问题。为了减少区块链节点的存储开销,本文提出了一种基于覆盖网分组和编码的方案,利用覆盖网的特性避免了重构现有的区块链系统,将加入覆盖网的节点进行分组管理并利用编码方案使组内节点只存储一部分数据达到减少节点存储的目的,同时避免了直接删除数据而丢失区块链的可追溯性。本文的主要内容和贡献如下:1.提出一种基于覆盖网分组和编码的方案,解决区块链节点存储量大的问题。首先,提出总体的设计模型,阐述了这个方案的工作流程。其次,由于在区块链的覆盖网节点进出不受限制的原因,分析了以分组的方式构造结构化的覆盖网络的优势。通过对比副本复制方案,分析了在组内选择网络编码的优势。对模型进行安全分析,指出方案中可能存在的恶意行为。2.设计一种覆盖网的邻近分组策略,以适用于总体方案。首先,根据交互时延为相似距离对节点进行初始分组,以降低分组内节点之间的交互时延,在初始分组之后加入的节点根据时延大小加入分组或形成新的分组,使分组内节点有较低的交互时延。其次,通过分组管理机制,抑制分组内发生恶意行为,同时对节点的进出进行管理。通过安全分析论证了安全管理机制的可以达到分组内节点纳什平衡的状态,可以有效的抑制恶意行为。实验评估了初始分组算法达到了降低分组内节点交互时延的效果,以及验证编码的Merkle哈希树生成的效率是毫秒级的并且以主流区块链的区块大小计算的节点带宽占用也是很小的,证实了分组策略的可用性和高效性。3.设计一种基于部分重复(FR)码改造的编码方案,主要应对在传统编码方案节点数量是固定的,而不适用于本方案的覆盖网组内组内节点数量是不固定的情况。首先,引入了FR码的构造思想,通过增加分层复制构造了分层部分重复(TFR)码的方案。与分组管理规则对应,对退出和加入的节点进行修复和管理,并制定了编码片段进行验证和故障节点修复方法。其次,与FR码对比,分析了TFR编码方案具有更强的容错能力。实验评估了编码和解码的速度,证实了编码效率非常高,占用计算资源少。分析了不同编码的参数在容错性和减少存储的情况,证实了编码方案在保证容错能力和编解码速度的情况下,可以极大的降低节点的存储。