MPTC账户状态树以及MPTC区块链快速检索方法技术

技术编号:18289560 阅读:76 留言:0更新日期:2018-06-24 04:17
本发明专利技术提供了一种MPTC账户状态树以及MPTC区块链快速检索方法,其中,MPTC账户状态树,包括:根节点;分支节点;扩展节点;交易链。本发明专利技术具有以下有益效果:基于账户模型,用户可以引用所有和账户相关联的数据,方便数据资产的管理;采用基于账户编码的MPTC树的检索方法,大大优化了交易检索的效率;将交易链指针引入账户状态树,历史交易指针Pre‑hash将交易串联起来,可以获取账户编码下的包括所有历史交易的完整有序的交易链。

【技术实现步骤摘要】
MPTC账户状态树以及MPTC区块链快速检索方法
本专利技术涉及区块链技术应用领域,具体而言涉及一种MPTC账户状态树以及MPTC区块链快速检索方法。
技术介绍
区块链技术应用于数字资产可以实现降低数字资产价值传递和信任建立的成本,并保障数字资产的安全性。传统的方法检索区块链上某个交易账户的最新交易状态,采用遍历的方法。该方法从最后一个区块开始,每个区块依次查找交易,直到找到相应的账户的交易,从而获取所要查找的账户的数字资产状态。如果要获取这个账户的历史交易,仍要继续使用这种遍历的方式向前查找。由于区块链中交易信息非常庞大,使用这种方法进行检索的效率十分低下。比特币采用了UTXO(UnspentTransactionOutput)交易模型。在UTXO的模式下,每个用户可以有多个UTXO交易地址,由于用户的UTXO交易间难以进行关联,不方便进行数据资产管理,而且如今数据资产的形式多样,并非都以币的形式呈现,UTXO的模式显然并不适用。账户模型可以引用所有和账户关联的数据,可以方便数据资产的管理。以太坊的基于账户模型的MPT树的数据检索结构,可以通过扫描MPT树快速检索账户余额,但是不能获取账户的最新交易和历史交易。其中,MPT树,全称MerklePatriciaTree,实际上是一种trie前缀树,是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对。
技术实现思路
为此,本专利技术的主要目的在于提供一种MPTC账户状态树以及MPTC区块链快速检索方法,以达到如下目的:解决基于区块链的数字资产交易的快速检索和校验,提供了一种“MerkleTree+PatriciaTree+交易链”构建的账户状态树MPTC的解决方案。其中,MPTC全称MerklePatriciaTreeChain,基于梅克尔字典树的区块交易链,是MPT树与区块链的结合体。为实现上述目的,本专利技术提供如下技术方案:一种MPTC账户状态树,包括:根节点,用于储存利用其子节点值的hash计算得出的MerkleRoot;分支节点,是长度为17的list;叶子结点,用于存储指向最新交易的指针Tx-hash,利用指针Tx-hash可快速定位到账户的最新交易的区块链地址;扩展节点,为能够存储两个字段的list,其中一个字段存储叶子节点分裂之前所存储的Tx-hash,另一个字段存储能够指向下一个分支节点的hash;交易链,包含区块,用于存储账户的交易,其中,每一条交易中都包含了能快速定位到与该账户相关的前一条交易的hash,所述hash称为Pre-hash。优选地,所述的MPTC账户状态树,其中所述分支节点的list中:前16个元素为采用十六进制前缀(hex-prefix,HP)编码的key,每个元素对应key中可能存在的十六个字符,并存储指向下一个节点的指针,所述指针是hash值;最后1个元素存储以所述分支节点作为根节点时利用其子节点值的hash计算得出的MerkleRoot。一种MPTC区块链快速检索方法,包括以下步骤:步骤A01,构建新的MPTC,更新账户最新交易指针Tx-hash,计算MerkleRoot存储于区块头广播至全网;步骤A02,根据账户编码检索MPTC,获取最新交易指针Tx-hash;步骤A03,解析Tx-hash获取该账户最新交易;步骤A04,判断是否要检索历史交易,是则进入步骤A05,否则进入步骤A06;步骤A05,由Tx-hash解析出的交易结果中的Pre-hash沿区块链向前定位获取历史交易;步骤A06,查验检索结果。优选地,所述的MPTC区块链快速检索方法,其中所述步骤A06,查验检索结果采用简单验证机制SVM(SimpleVerificationMechanism),包括以下步骤:步骤B01,获得检索结果后,请求服务节点发送需验证的交易信息;步骤B02,其他节点收到消息后返回Merkle证明;步骤B03,请求服务节点利用从多个节点收到的Merkle证明,比对MerkleRoot以验证服务的正确性。根据本专利技术的MPTC账户状态树以及MPTC区块链快速检索方法,具有以下有益效果:1.基于账户模型,用户可以引用所有和账户相关联的数据,方便数据资产的管理;2.采用基于账户编码的MPTC树的检索方法,大大优化了交易检索的效率;3.将交易链指针引入账户状态树,历史交易指针Pre-hash将交易串联起来,可以获取账户编码下的包括所有历史交易的完整有序的交易链;4.MPTC随区块的构建而更新,保存了所有最新交易的指针,无需保存历史MPTC,节省存储空间;5.MPTC账户状态树的构建过程也是Merkle树的构建过程,该构建过程不可逆保证了数据查询服务的准确性;6.提供简单查验机制SVM进行数据检索服务的准确性查验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还能根据这些附图获得其他的附图。图1是根据本专利技术构思的示例性实施例的MPTC账户状态树的结构图;图2是根据本专利技术构思的示例性实施例的MPTC构建和账户交易检索的流程图;图3是根据本专利技术构思的示例性实施例的SVM查验机制流程图。具体实施方式关于本专利技术创造的详细内容及技术说明,现以实施例来作进一步说明,但应了解的是,这些实施例仅为用于示例说明,而不应被解释为本专利技术创造实施的限制。图1是根据本专利技术构思的示例性实施例的MPTC账户状态树的结构图。参照图1,本专利技术实施例提供的MPTC账户状态树,包括:根节点、分支节点、叶子结点、扩展节点以及交易链。其中,根节点S110,用于储存利用其子节点值的hash计算得出的MerkleRoot;本实施例中,分支节点包括:分支节点S210、分支节点S220、分支节点S230、分支节点S240、分支节点S250。所述分支节点是一个长度为17的list,所述list中前16个元素为采用十六进制前缀(hex-prefix,HP)编码的key,每个元素对应key中可能存在的十六个字符,并存储指向下一个节点的指针,该指针并非内存地址,而是hash值;所述list中的最后一个元素存储以该分支节点作为根节点时利用其子节点值的hash计算得出的MerkleRoot。本实施例中,叶子节点包括:叶子节点S310、叶子节点S320、叶子节点S330、叶子节点S340。所述叶子节点存储了一个指向最新交易的指针Tx-hash,利用指针可快速定位到账户的最新交易的区块链地址。当一个账户的账户编码(图1中为“10”)是某些账户编码的前缀时,分裂原应存储该账户的Tx-hash的叶子节点为扩展节点(图1中为“扩展节点S410”)。所述扩展节点S410为可存储两个字段的list,其中一个字段存储本节点由叶子节点分裂之前所存储的Tx-hash,即该账户的最新交易的指针,另一个字段存储能够指向下一个分支节点的hash。从根节点之下的分支节点到叶子节点或扩展节点的路径上的key值的顺序组合即一个账户的账户编码。例如,在图1中,S210、S220、S310路径上的key值的顺序组合“0f”为一个本文档来自技高网...
MPTC账户状态树以及MPTC区块链快速检索方法

【技术保护点】
1.一种MPTC账户状态树,其特征在于包括:根节点,用于储存利用其子节点值的hash计算得出的Merkle Root;分支节点,是长度为17的list;叶子结点,用于存储指向最新交易的指针Tx‑hash,利用指针Tx‑hash可快速定位到账户的最新交易的区块链地址;扩展节点,为能够存储两个字段的list,其中一个字段存储叶子节点分裂之前所存储的Tx‑hash,另一个字段存储能够指向下一个分支节点的hash;交易链,包含区块,用于存储账户的交易,其中,每一条交易中都包含了能快速定位到与该账户相关的前一条交易的hash,所述hash称为Pre‑hash。

【技术特征摘要】
1.一种MPTC账户状态树,其特征在于包括:根节点,用于储存利用其子节点值的hash计算得出的MerkleRoot;分支节点,是长度为17的list;叶子结点,用于存储指向最新交易的指针Tx-hash,利用指针Tx-hash可快速定位到账户的最新交易的区块链地址;扩展节点,为能够存储两个字段的list,其中一个字段存储叶子节点分裂之前所存储的Tx-hash,另一个字段存储能够指向下一个分支节点的hash;交易链,包含区块,用于存储账户的交易,其中,每一条交易中都包含了能快速定位到与该账户相关的前一条交易的hash,所述hash称为Pre-hash。2.根据权利要求1所述的MPTC账户状态树,其特征在于所述分支节点的list中:前16个元素为采用十六进制前缀(hex-prefix,HP)编码的key,每个元素对应key中可能存在的十六个字符,并存储指向下一个节点的指针,所述指针是hash值;最后1个元素存储以所述分支节点作为根节点时利用其子节点值的hash计算得出的MerkleRoot...

【专利技术属性】
技术研发人员:肖宗水郑永清李庆忠孔兰菊杨春燕
申请(专利权)人:山大地纬软件股份有限公司
类型:发明
国别省市:山东,37

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

1