区块链交易数据扩容存储方法及系统技术方案

技术编号:38608132 阅读:10 留言:0更新日期:2023-08-26 23:38
本发明专利技术涉及区块链存储技术领域,特别涉及一种区块链交易数据扩容存储方法及系统,依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。本发明专利技术在保证存储数据防篡改的同时,可降低节点存储开销,提升数据查询效率,便于区块链系统实时数据查询和溯源的实际应用。区块链系统实时数据查询和溯源的实际应用。区块链系统实时数据查询和溯源的实际应用。

【技术实现步骤摘要】
区块链交易数据扩容存储方法及系统


[0001]本专利技术涉及区块链存储
,特别涉及一种区块链交易数据扩容存储方法及系统。

技术介绍

[0002]区块链技术集成了P2P网络、密码学、智能合约及共识算法等多种技术,因其独有的去中心化、可验证、不可篡改等特点,被认为是人类进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑。区块链技术通过分布式的账本管理机制和共识机制保证了其存储数据的完整性,同时依靠交易事务的时间戳和背书签名,能够不可抵赖地记录用户的操作行为。其分布式存储及独特优势被越来越多地应用在可信存储及溯源查询等方面。但随着区块链技术的发展及应用,其存在的存储开销大、查询速度慢等不足逐渐暴露,成为制约区块链技术应用落地的新瓶颈。
[0003]区块链技术由于具有的去中心化、不可篡改等特性,被越来越多地应用在数据溯源等领域。但由于区块链独特的链式结构,数据的查询需要遍历整个区块链上的区块进行逐一查询,这给区块链带来了较大的查询负担,降低了用户体验。已有区块中的Merkel树虽然可以实现区块数据的快速验证,但其应用范围有限,只能根据已知交易数据位置进行验证,而无法检验某一指定交易是否在区块交易集合中。面对区块链应用中越来越多的实时检索及溯源查询,提高数据溯源查询效率也成为了区块链应用亟待解决的问题。

技术实现思路

[0004]为此,本专利技术提供一种区块链交易数据扩容存储方法及系统,解决现有区块链存储中不能满足实时检索和溯源查询的情形,对区块进行分组编码,通过将编码后的数据块分别存储于不同位置来保证存储数据防篡改的同时,能够有效降低节点存储开销,提升数据查询效率。
[0005]按照本专利技术所提供的设计方案,提供一种区块链交易数据扩容存储方法,包含:
[0006]依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
[0007]基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
[0008]作为本专利技术区块链交易数据扩容存储方法,进一步地,利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值中,同一区块中对区块交易数据按关键值排序并对分支节点交易数据进行哈希运算,利用布隆过滤器并依据交易数据哈希函数计算得到布隆过滤器二进制数组待加入元素的哈希值索引,在Merkel树分支节点加入子树交易数据关键字
最值信息及布隆过滤器二进制数组,在叶子节点存储交易数据的关键字及交易数据哈希值。
[0009]作为本专利技术区块链交易数据扩容存储方法,进一步地,针对区块链系统,区块链节点按不同角色划分为查询节点、存储节点和验证缓存节点,其中,查询节点存储区块头数据信息并验证来自存储节点查询结果的正确性,存储节点存储区块编码数据块及相关存储节点之间的路由信息,验证缓存节点通过接收查询节点查询结果反馈来验证存储节点可靠性并将查询热区块数据信息在本地缓存。
[0010]作为本专利技术区块链交易数据扩容存储方法,进一步地,区块链系统中,针对新加入的区块链节点,首先将其划分为查询节点,并将该新加入的区块链节点与距离最近的存储节点相连。
[0011]作为本专利技术区块链交易数据扩容存储方法,进一步地,针对存储节点,当验证缓存节点通过对存储节点可靠性验证发现当前存储节点有异常行为时,将该当前存储节点角色调整为查询节点,并从与其相连的查询节点中选取表现最优的查询节点,将选取的表现最优的查询节点变更为存储节点,其中,存储节点的异常行为包含:存储区块数据有误及存储节点间消息转发路径不可靠。
[0012]作为本专利技术区块链交易数据扩容存储方法,进一步地,基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码时,将交易数据进行片段分割,且k个连续区块分为一组,并利用柯西矩阵和单位矩阵来构造纠删码的校验矩阵;每组的k个区块数据通过利用校验矩阵编码运算将区块数据转化为编码块数据向量并进行存储,其中,单位矩阵的大小取决于区块数据的片段分割块数k和所需编码数据块数n,且单位矩阵的阶满足n

k。
[0013]作为本专利技术区块链交易数据扩容存储方法,进一步地,针对编码块数据向量的存储,还包含:将校验矩阵划分为有效编码数据块对应校验矩阵一和丢失编码数据块对应校验矩阵二,并将编码块数据向量分为现存编码向量和丢失编码数据向量;依据丢失编码数据来调整校验矩阵和编码块数据向量中数据元素位置,其中,丢失编码数据依据矩阵运算规则,利用校验矩阵一、现存编码向量及校验矩阵二的逆矩阵来计算获取。
[0014]作为本专利技术区块链交易数据扩容存储方法,进一步地,分组编码过程中,设定第m组区块为:G
m
={B
m*k
,B
m*k+1
,...,B
(m+1)*k
‑1},区块B
i
表示区块链中第i个区块,则第m组区块的k个区块数据编码结果表示为DB
m
={DB
m*n
,DB
m*n+1
,...,DB
(m+1)*n
‑1},将编码后的数据分别存储在区块链中的n个节点。
[0015]作为本专利技术区块链交易数据扩容存储方法,进一步地,分组编码后编码块数据向量的存储,还包含:设定每组编码数据中前k个编码块分别对应该组编码数据的k个区块数据,根据编码前的区块号对编码数据块存储位置进行分配;其中,分配规则表示为:对于包含N个存储节点的区块链系统,当第m组中的第一个区块B
mk
满足r=mk%N时,则将本组内的n个编码数据区块从第r个存储节点开始进行顺序存储。
[0016]进一步地,本专利技术还提供一种区块链交易数据扩容存储系统,包含:数据获取单元和数据存储单元,其中,
[0017]数据获取单元,用于依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;
[0018]数据存储单元,用于基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。
[0019]本专利技术的有益效果:
[0020]本专利技术基于纠删码的区块存储通过对区块进行分组编码,将编码后的数据块分别存储于不同位置,保证存储数据防篡改的同时,降低了节点存储开销;进一步通过节点角色分类,利用验证缓存节点增加区块缓存机制,实现对频繁本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链交易数据扩容存储方法,其特征在于,包含:依据交易共识过程在区块链系统各区块链节点共识生成一个或多个区块,且每个区块数据中利用区块头链接到前一区块并指定当前区块信息并利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值;基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码,将区块编码后的区块数据分别存储在区块链中区块编码对应存储位置的存储节点,且将一个区块编码后的完整区块数据存储在同一个存储节点,其中,区块编码对应存储位置依据编码前区块号进行分配。2.根据权利要求1所述的区块链交易数据扩容存储方法,其特征在于,利用区块体存储多个不同交易哈希运算得到的Merkel根哈希值中,同一区块中对区块交易数据按关键值排序并对分支节点交易数据进行哈希运算,利用布隆过滤器并依据交易数据哈希函数计算得到布隆过滤器二进制数组待加入元素的哈希值索引,在Merkel树分支节点加入子树交易数据关键字最值信息及布隆过滤器二进制数组,在叶子节点存储交易数据的关键字及交易数据哈希值。3.根据权利要求1或2所述的区块链交易数据扩容存储方法,其特征在于,针对区块链系统,区块链节点按不同角色划分为查询节点、存储节点和验证缓存节点,其中,查询节点存储区块头数据信息并验证来自存储节点查询结果的正确性,存储节点存储区块编码数据块及相关存储节点之间的路由信息,验证缓存节点通过接收查询节点查询结果反馈来验证存储节点可靠性并将查询热区块数据信息在本地缓存。4.根据权利要求3所述的区块链交易数据扩容存储方法,其特征在于,区块链系统中,针对新加入的区块链节点,首先将其划分为查询节点,并将该新加入的区块链节点与距离最近的存储节点相连。5.根据权利要求3所述的区块链交易数据扩容存储方法,其特征在于,针对存储节点,当验证缓存节点通过对存储节点可靠性验证发现当前存储节点有异常行为时,将该当前存储节点角色调整为查询节点,并从与其相连的查询节点中选取表现最优的查询节点,将选取的表现最优的查询节点变更为存储节点,其中,存储节点的异常行为包含:存储区块数据有误及存储节点间消息转发路径不可靠。6.根据权利要求1所述的区块链交易数据扩容存储方法,其特征在于,基于纠删码校验矩阵对所述一个或多个区块的区块数据进行分组编码时,将交易数据进行片段分割,且k个连续区块分为一组,并利用柯西矩阵和单位矩阵来构造纠删码的校验矩阵;每组的k个区块数据通过利用校验矩阵编码运算将区块数据转化为编码块数据向量并进行存储,其中,单位...

【专利技术属性】
技术研发人员:曹利峰杜学绘赵守才白金龙万季玲李金辉王娜任志宇刘敖迪杨艳
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

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

1