当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于分层树状结构的区块链信息高效存储方法及装置制造方法及图纸

技术编号:20487744 阅读:37 留言:0更新日期:2019-03-02 20:16
本发明专利技术公开一种基于分层树状结构的区块链信息高效存储方法,包括如下步骤:区块链账户的预设分类;桶状存储的划分;分层树状结构的构建;帐户信息的输入;帐户信息一致性的检验。提出了具有创新性的区块链账户存储结构,在保障了区块链信息不可篡改等特性的前提下,对账户按照交易频率进行分层存储,从总体上看,交易频率越高的账户将被存储在越接近根节点的节点中,以减少整体的Hash次数。

An Efficient Storage Method and Device for Block Chain Information Based on Hierarchical Tree Structure

The invention discloses an efficient storage method of block chain information based on hierarchical tree structure, which includes the following steps: preset classification of block chain accounts; division of barrel storage; construction of hierarchical tree structure; input of account information; check of consistency of account information. An innovative block-chain account storage structure is proposed. On the premise of guaranteeing the characteristics of block-chain information such as non-tampering, the accounts are stored hierarchically according to transaction frequency. Generally speaking, the accounts with higher transaction frequency will be stored in the nodes closer to the root node, so as to reduce the overall number of Hash.

【技术实现步骤摘要】
一种基于分层树状结构的区块链信息高效存储方法及装置
本专利技术涉及区块链
,特别涉及一种基于分层树状结构的区块链信息高效存储方法及装置。
技术介绍
区块链是按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,是一项包括了分布式存储、点对点传输、共识机制、加密算法等技术的新型应用模式。区别于传统的中心化应用,由于每个节点都包含了区块链中完整的账本信息,所以区块链技术具有去中心化的特点,即不存在某个节点具备改变全部区块链信息的能力。以此,区块链技术具有很强的不可篡改、不可伪造的特性,保障了数据的可靠性。为了保证数据没有遭到恶意篡改,以比特币(Bitcoin)为例,比特币采用了默克尔树(MerkleTree)的形式存储交易信息,比特币的交易信息被储存在MerkleTree的叶子节点上,并根据MerkleTree的特性,依次向上进行哈希(hash)操作,目前比特币系统中涉及的hash算法包括SHA3和SHA256等,最终将根节点的hash值存储在区块中。当某个交易信息遭到篡改时,由于hash操作的特性,hash的结果也必然会发生改变,最终根节点的hash值也会发生改变。所以,只需验证储存在区块中的根节点的hash值是否发生改变就可以检验交易信息是否经过篡改。作为目前重要的区块链应用,以太坊(Ethereum)和超级账本(Hyperledger)在信息的存储方式上,继承了比特币的某些特点,但又有所创新。以太坊改进了MerkleTree的方法,将编码后具有相同前缀的交易和账户信息存储在属于同一个父节点的叶子节点中,即MerklePatriciaTree。超级账本进一步改进了MerkleTree的方法,将叶子结点改变为桶状结构,利用规定的函数,将账户交易信息存储在指定的桶中,即桶中可能包含多个交易信息,称为BucketTree。目前,区块链技术还未得到广泛的应用,除了政策性因素等影响外,自身技术上同样存在一定的问题。例如,在现有的技术下,区块链交易的存储速度相对比较低下,以比特币为例,每秒钟大约可以处理7笔交易。相比之下,Visa在处理交易的速度上,峰值可以达到每秒约14000笔。这就导致比特币无法用于处理高频交易的场景中,大量的交易信息将无法被打包存储到区块链中,造成信息的拥堵。虽然以太坊和超级账本在存储形式上的改进使得它们在信息存储速度上比比特币有所提升,但提升的幅度十分有限,依然难以满足高频交易的需要。目前,区块链交易速度过慢,以比特币为例,每秒仅可处理7笔交易,造成大量的交易无法被及时打包确认,出现交易信息拥堵的情况,难以满足在日常支付系统中高频交易的应用场景,使得区块链的应用范围极大受限。
技术实现思路
本专利技术的主要目的是提出一种基于分层树状结构的区块链信息高效存储方法,旨在克服以上问题。为实现上述目的,本专利技术提出的一种基于分层树状结构的区块链信息高效存储方法,包括如下步骤:S10区块链账户的预设分类:根据区块链场景的需要,将帐户信息预设分类成i组参数集合,i为自然数,其中帐户信息包括帐户的总数N,分层树状结构中桶的数目B,每个桶中帐户的数量x,分层树状结构中单个节点有一个或多少个子节点K,每种帐户数量的所占比A,每种帐户的交易频率R;S20对多组帐户信息的参数集合进行模拟演算,并根据模拟结果,选出最优参数集合;S30分层树状结构的构建:确定账户信息桶状存储的决定函数,输入最优参数集合及决定函数,每个桶的高度及每个高度上对应桶的数目,按一定的规则建立分层树状桶结构,根据分层树状桶结构对每个桶进行编号;S40将帐户信息经过函数计算出该帐户设置的对应的桶的序号,根据编号将帐户信息存储在在分层树状桶结构的相对应的桶中;S50信息一致性的检验:当交易发生时,帐户信息发生改变,先将桶中帐户信息拼接,进行一次哈希操作,再以此根据分层树状桶结构向上进行哈希操作,若桶中帐户信息未发生改变,则无需进行哈希操作;若桶中的帐户信息发生改变,则重新进行哈希操作,以获取新的根节点的哈希值;校验新的根节点的哈希值是否与其他可信节占的哈希值相一致,若一致,则视为帐户信息未遭到篡改,若不一致,则视为账户信息遭到篡改,则该节点不可信,需要从其他可信节点获取帐户信息以更新。优选地,所述决定函数式包括:(1)根据公式计算出每类账户数目;(2)计算权重向量其中ωik=Pik=Pi/Bi,Pi是第i类账户的使用概率,Pik代表第i类账户中第k个桶的使用概率;(3)在权重向量中增加个零,变为ω'=(0,...,0,ω),其中B表示分层树状结构中桶的数目,每一个权重向量中的元素代表一个桶,每个桶所在的高度初始化为1,当k个权重被合并时,表明这k个桶已经确定好,合并所得元素,代表一个树的内部节点。每次合并时,已经确定好的桶所在高度增加1;(4)当权重数量大于1时,选出k个ω’中最小的权重,求和得出一个新的权重;(5)舍弃这k个最小权重,将生成的新的权重插入ω’中;(6)如此循环计算,根据循环计算,获取每个桶的高度及每个高度上对应桶的数目。优选地,所述30中一定的规则为:按照装有相同的使用频率的帐户信息的桶存储在树状结构的同一高度,且若桶内帐户信息的帐户交易频率越大,所在的桶所处层数越高的规则。优选地,所述S40中每个所述桶存储多个帐户信息。优选地,所述S10之前还包括:S01对帐户信息进行RLP编码,输入经过RLP编码后的账户信息。优选地,所述函数计算选择取模函数或随机函数。优选地,若所述函数计算选择取模函数,假定树形结构中共有B个桶,编号从0到B-1,将账户视为一个整数A,令r为A对B取模之后的余数,由于r必然是0到B-1中的一个数,因此r就是账户A对应的桶的编号。本专利技术提出了具有创新性的区块链账户存储结构,依托现有的事实,即区块链账户交易频率存在巨大差异性,提出了分层树状结构的存储方法,在保障了区块链信息不可篡改等特性的前提下,对账户按照交易频率进行分层存储。从总体上看,交易频率越高的账户将被存储在越接近根节点的节点中,以减少整体的Hash次数。经实验论证,该方法能够显著降低账户存储时的Hash次数,使得整体存储时间大为缩短。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术基于分层树状结构的区块链信息高效存储方法一实施例的方法流程框图;图2为分层树状桶结构的示意图;图3为本专利技术与传统的Ethereum和HyperledgerFabric的对比效果图,本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明,若本专利技术实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一本文档来自技高网
...

【技术保护点】
1.一种基于分层树状结构的区块链信息高效存储方法,其特征在于,包括如下步骤:S10区块链账户的预设分类:根据区块链场景的需要,将帐户信息预设分类成i组参数集合,i为自然数,其中帐户信息包括帐户的总数N,分层树状结构中桶的数目B,每个桶中帐户的数量x,分层树状结构中单个节点有一个或多少个子节点K,每种帐户数量的所占比A,每种帐户的交易频率R;S20对多组帐户信息的参数集合进行模拟演算,并根据模拟结果,选出最优参数集合;S30分层树状结构的构建:确定账户信息桶状存储的决定函数,输入最优参数集合及决定函数,每个桶的高度及每个高度上对应桶的数目,按一定的规则建立分层树状桶结构,根据分层树状桶结构对每个桶进行编号;S40将帐户信息经过函数计算出该帐户设置的对应的桶的序号,根据编号将帐户信息存储在在分层树状桶结构的相对应的桶中;S50信息一致性的检验:当交易发生时,帐户信息发生改变,先将桶中帐户信息拼接,进行一次哈希操作,再以此根据分层树状桶结构向上进行哈希操作,若桶中帐户信息未发生改变,则无需进行哈希操作;若桶中的帐户信息发生改变,则重新进行哈希操作,以获取新的根节点的哈希值;校验新的根节点的哈希值是否与其他可信节占的哈希值相一致,若一致,则视为帐户信息未遭到篡改,若不一致,则视为账户信息遭到篡改,则该节点不可信,需要从其他可信节点获取帐户信息以更新。...

【技术特征摘要】
1.一种基于分层树状结构的区块链信息高效存储方法,其特征在于,包括如下步骤:S10区块链账户的预设分类:根据区块链场景的需要,将帐户信息预设分类成i组参数集合,i为自然数,其中帐户信息包括帐户的总数N,分层树状结构中桶的数目B,每个桶中帐户的数量x,分层树状结构中单个节点有一个或多少个子节点K,每种帐户数量的所占比A,每种帐户的交易频率R;S20对多组帐户信息的参数集合进行模拟演算,并根据模拟结果,选出最优参数集合;S30分层树状结构的构建:确定账户信息桶状存储的决定函数,输入最优参数集合及决定函数,每个桶的高度及每个高度上对应桶的数目,按一定的规则建立分层树状桶结构,根据分层树状桶结构对每个桶进行编号;S40将帐户信息经过函数计算出该帐户设置的对应的桶的序号,根据编号将帐户信息存储在在分层树状桶结构的相对应的桶中;S50信息一致性的检验:当交易发生时,帐户信息发生改变,先将桶中帐户信息拼接,进行一次哈希操作,再以此根据分层树状桶结构向上进行哈希操作,若桶中帐户信息未发生改变,则无需进行哈希操作;若桶中的帐户信息发生改变,则重新进行哈希操作,以获取新的根节点的哈希值;校验新的根节点的哈希值是否与其他可信节占的哈希值相一致,若一致,则视为帐户信息未遭到篡改,若不一致,则视为账户信息遭到篡改,则该节点不可信,需要从其他可信节点获取帐户信息以更新。2.如权利要求1所述的基于分层树状结构的区块链信息高效存储方法,其特征在于,所述决定函数式包括:(1)根据公式计算出每类账户数目;(2)计算权重向量其中ωik=Pik=Pi/Bi,Pi是第i类账户的使用概率,Pik代表第i类账...

【专利技术属性】
技术研发人员:郑子彬马明杰陈伟利
申请(专利权)人:中山大学
类型:发明
国别省市:广东,44

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

1