[发明专利]一种基于区块链的数据结构在审
申请号: | 201810436884.3 | 申请日: | 2018-05-09 |
公开(公告)号: | CN108615156A | 公开(公告)日: | 2018-10-02 |
发明(设计)人: | 乔丹·厄尔斯 | 申请(专利权)人: | 上海魅联信息技术有限公司 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;卢军峰 |
地址: | 200050 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据结构 区块 存储状态 树状结构 相关信息 数据量 | ||
本发明公开了一种基于区块链的数据结构,该基于区块链的数据结构包括:数据结构通过树状结构来存储状态改变相关信息。本发明通过上述这种技术方案,使得数据量大大减少。
技术领域
本发明涉及区块链技术领域,具体来说,涉及一种基于区块链的数据结构。
背景技术
区块链(blockchain)是用分布式数据库识别、传播和机载信息的智能化对等网络,也称为价值互联网。中本聪在2008年,于《比特币白皮书》中提出“区块链”的概念。
以太坊(Ethereum)是一个开源的有合约功能的公共区块链平台。通过其专用加密货币以太币(Ether)提供去中心化的虚拟机来处理点对点合约。
比特币采用Merkle tree(梅克尔树)存储交易数据。Merkle树是一种哈希二叉树,其可以提供一种校验区块是否存在某交易的高效途径。Merkle树的根节点存储在区块的区块头中。同时,根据梅克尔树的特点,中本聪在比特币白皮书中提出一种SPV(SimplifiedPayment Verification,简单支付验证)。SPV使用户不运行全节点也可以验证支付,用户只需要保存所有的区块头(Block Header)就可以了。以太坊采用状态树MPT(MerklePatricia tree,梅克尔.帕特里夏树)存储区块的状态信息。MPT是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,这样的数据结构设计,使得我们可以在插入、修改或者删除操作后,快速地计算出新的树根。
然而,以太坊某一个区块的状态树MPT存储区块的所有合约地址的状态信息,这些信息总量较大,而维护一个完全节点的本地数据库需要保存区块的状态树MPT信息,随着区块数量的增多,以太坊的全节点将需要巨大的存储空间。
此外,由于以太坊中状态数据库的数据量过大,必须采用布隆滤波器来实现状态改变信息的筛选,布隆滤波器本身需要额外的维护才能正常工作。
另外,以太坊每个区块的状态改变信息中只存储该区块的最终状态改变信息,实际上该区块的状态中间可能经过多次变化,以太坊的状态数据库无法快速的获取某合约相关的所有相关状态变化列表,因为其存储的是全局状态信息,缺少可以获取这些信息的基础设施,然而现实应用中往往需要快速获取这一信息。
除此之外,比特币的SPV节点容易受到隐藏信息攻击,即恶意节点故意隐藏部分状态变化信息,同时,SPV客户端较难发觉。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种基于区块链的数据结构。
为了解决现有技术中存在的技术问题,本发明提出了一种基于区块链的数据结构,该基于区块链的数据结构包括:数据结构通过树状结构来存储状态改变相关信息。
根据本发明的一个实施例,状态改变相关信息包括:发生状态改变的地址信息、状态改变信息、与状态改变信息相对应的运行结果信息。
根据本发明的一个实施例,发生状态改变的地址信息包括账户地址信息、合约地址信息、UTXO地址信息中的至少一种。
根据本发明的一个实施例,状态改变信息为最近一次状态改变信息、数据变化信息、合约变化信息、事件触发信息、运行收据信息、余额改变信息中的一种或多种的组合,其中,数据变化信息包括:数据添加信息、数据删除信息、数据改变信息中的至少一种,合约变化信息包括:合约创建信息、合约修改信息、合约删除信息中的至少一种。
根据本发明的一个实施例,树状结构为梅克尔树。
根据本发明的一个实施例,树状结构的叶子节点存储状态改变相关信息或状态改变相关信息相对应的哈希值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海魅联信息技术有限公司,未经上海魅联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810436884.3/2.html,转载请声明来源钻瓜专利网。