区块链数据模型技术与应用研究报告 (2023年) 中关村区块链产业联盟2023年11月 版权声明 本白皮书、研究报告版权属于中关村区块链产业联盟, 并受法律保护。转载、摘编或利用其它方式使用本白皮书文字或者观点的,应注明“来源:中关村区块链产业联盟”。违反上述声明者,本单位将追究其相关法律责任。 编制说明 组织单位:中关村区块链产业联盟 牵头编制单位:(排名不分先后) 中国信息通信研究院、北京航空航天大学、北京邮电大学、中国联合网络通信集团有限公司 参与编制单位:(排名不分先后)树根互联股份有限公司 中兴通讯股份有限公司布比科技股份有限公司溪塔科技股份有限公司本体网络科技有限公司 编写组主要成员:(排名不分先后) 刘阳、池程、程彤彤、张钰雯、郭剑南、黄峥、赵正涌、崔婕、胡凝、加雄伟 前言 区块链技术的集成应用在新的技术革新和产业变革中起着重要作用,全球主要国家都在加快布局区块链技术发展。以习近平同志为核心的党中央高度重视区块链发展,多次强调要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。随着以“数字新基建、数据新要素、虚拟新经济”为核心特征 的数字经济发展的全面来临,全球各国和产业界都高度重视区块链基础设施推动数字经济发展的重要动能,欧盟区块链服务基础设施EBSI、印度国家区块链框架NBF等国家级重大工程先后启动建设。“星火·链网”是我国为持续推进产业数字化转型,利用区块链自主创新能力而谋划布局的数字经济“新型基础设施”,以代表产业数字化转型的工业互联网为主要应用场景,以网络标识这一数字化关键资源为突破口,推动区块链的应用发展,发挥实现新基建的引擎作用。 为了进一步凝聚产业共识,推动区块链基础设施规模化发展,启动了“星火·链网”系列报告编制工作,希望能够有助于产业界和学术界凝聚共识,更好地发挥区块链作为基础设施的作用,为技术和产业变革提供创新动力。本报告聚焦“区块链数据模型”方向,通过理清“区块链数据模型”概念,分析“区块链数据模型”核心挑战和发展路径,将有助于推动区块链基础设施与数据模型融合化部署,优化区块链基础设施性能,推动区块链基础设施规模化落地。 目录 一、区块链数据模型整体概述1 二、区块链数据模型重点问题3 三、区块链的数据模型关键技术5 (一)区块链数据模型整体框架5 (二)账户数据模型7 (三)区块数据模型11 (四)交易类数据模型15 四、区块链数据模型应用实践17 (一)中国信通院:星火·链网账户模型17 (二)布比科技:区块数据模型实践与应用21 (三)中国信通院:星火·链网交易类数据模型22 五、区块链数据模型总结展望25 (一)强化区块链数据模型与隐私计算融合,推动数据隐私安全25 (二)加速区块链数据模型与物联网技术融合,实现数据安全可信25 (三)推动区块链数据模型与传统技术融合,加快可信数据应用26 图目录 图1区块链架构体系5 图2区块链数据模型分类6 图3UTXO模型7 图4账户余额模型9 图5账户余额模型的账户类型10 图6DAG结构图13 图7星火·链网整体架构17 图8星火通账户模型示意图19 图9DNA平台架构19 图10并行快速的多链分片22 图11安全可插拔智能合约基础框架平台ISparkVM24 表目录 表1UTXO数据模型的字段描述8 表2外部账户与合约账户的区别11 表3区块模型的整体结构14 表4区块头数据结构14 表5区块体数据结构14 表6常见交易数据格式15 表7常见合约数据格式16 一、区块链数据模型整体概述 随着区块链技术的蓬勃兴起,类似金融、物流及医疗等行业的应用案例借助着其可溯源,安全性和去中心化等特点纷纷加速落地,每个相关行业的不同机构之间可以共同维护和共享参与方的数据,确保每个参与角色都能够对提案进行背书,并通过一定的共识算法和排序服务来促成不同节点上分布式账本内容的一致性。同时,区块链也以其特殊的数据结构,使得区块链具有数据传输以及信任管理的能力。 区块链将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。每个区块中的数据可以包括交易信息、合约代码、状态变化等,这些数据的组织方式和存储规则构成区块链数据模型的基础,本文主要针对区块链链上数据模型展开研究。链上数据涉及到区块链如何组织、存储和检索数据,是区块链网络中的数据结构,用于记录和维护交易、合约和其他信息。区块链数据模型的研究影响区块链的性能、安全性和可扩展性,现阶段,区块链数据模型主要体现以下特征:数据模型作为区块链底层架构保证系统平稳运行。不同于隐私 计算,网络技术,跨链技术等区块链的功能基础。数据模型作为一种数据规范,是实现区块链技术的重要基础。区块链技术利用数据模型能够整合各个模型层次的数据,形成统一规范的标准数据库,实现信息技术与垂直行业的打通连接,共同构成数字经济的重要举措。同时,伴随着区块链技术在各行各业的快速布局与应用,规范 化的数据模型更有利于区块链技术的拓展与管理。加速区块链技术的平稳推进。 数据模型作为区块链数据范式保证信息顺利交互。区块链数据模型是保存区块链数据的一套“模具”,把所有的数据,按照“模具”的形状、规格、关系装载起来。优秀的“模具”设计,可以将数据装载的整整齐齐,调理清晰。反之,“模具”设计的不好,数据会存在大量的冗余,杂乱无章;用数据的时候,如同拆解一团乱麻,耗费大量的时间和资源。在数字化不断推进的社会,作为“灵魂”的数据,必须要快速流动与交互。统一规范的区块链数据模型能够有效缓解数据孤岛,子链交互等诸多问题。 数据模型作为区块链数据容器保证信任可靠传输。设备从物理世界收集数据并传输到数字世界,数据的真实、准确、完整、安全是一切数字世界的基础。就公共基础设施而言,错误的数据会导致治理的混乱;就企业而言,混乱的基础数据可能导致预测出现偏差,使竞争走上错误的轨道;由物理属性、实体间交互和未来状态组成的新数据流可以实现在数字世界和物理世界之间无缝交换。数据模型能优化区块链数据的分级授权和共享,依托区块链防篡改、可追溯的特性,可以在保持数据的可信和安全的情况下,实现数据传输。 二、区块链数据模型重点问题 区块链数据可以支持在开放网络环境中的去中心化管理,但是其自身模型设计方面仍然面临着诸多问题。其核心问题体现在数据存储、事务处理性能、查询处理优化等方面。 去中心化存储崛起,导致区块链数据具有差异化存储结构。在区块链系统中,数据以区块作为基本存储单位。为了方便数据的存取,多数区块链系统利用LevelDB这一基于Key-Value结构的数据库存取数据,而部分区块链系统则选择利用文件系统或关系型数据库进行存储。不同的数据模型对应产生不同的数据存储区域划分及其固化模式,而且与传统的分布式数据库或其他去中心化存储系统相比,区块链网络中的节点均需存储数据的备份,使得数据存储在区块链框架下产生新的挑战。 快速事务执行要求,需要区块链数据模型支持并发运行。在区块链中,智能合约的一次执行相当于数据库中的一个事务。在传统的数据库中,事务处理需满足ACID特性(原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)。在区块链系统中,分布式架构的一致性要求导致事务运行速度大大降低。为了提高系统的吞吐量,部分区块链的数据模型需要支持事务处理并发机制。但是,区块链系统的并发控制与分布式数据库的并发控制相比有诸多不同。一是区块数据模型的差异将导致针对事务的并发控制需要考虑区块的提交方式。二是部分区块链中的事务处理流程与数据库中的事务不同。因此如何设计合适的区块数据模型,对事务的 执行效率有重大影响。 链上查询效率低下,促使区块链数据模型支持快速查询。由于区块链应用于不可信的环境,其查询处理的过程可归类为一般查询处理和可信查询处理。一般查询主要针对的是溯源查询等。可信查询处理对查询结果的验证技术需要数据拥有者产生一个利用私钥生成的签名,后续会利用该签名进行验证。另外,基于传统数据库生成的签名往往基于的是静态数据库,而区块链是一个动态的分布式数据存储系统,合适的区块链数据模型可以有效提高区块链系统的查询效率。 三、区块链的数据模型关键技术 (一)区块链数据模型整体框架 以工业互联网与区块链为代表的新型基础设施逐步成为我国面向未来,打造科技创新驱动、提升数字竞争力的重要保障,也是应对后疫情时代下经济复苏的必要举措。随着区块链技术的不断发展,区块链数据模型的技术价值日益提升。在区块链技术的5层体系架构中,数据层定义了各节点中数据的联系和组织方式,利用多种算法和机制保证数据的强关联性和验证的高效性。数据层相当于区块链四大核心技术中的数据结构,即“区块+链”的结构。从初始区块起,区块链系统将一直在新添加的区块,每个区块包含了哈希值、随机数、认证交易的时间戳、交易信息数据、数据签名等,是整个区块链系统中最底层的关键技术。 图1区块链架构体系 数据层的信息模型是指节点记录应用信息的逻辑结构,区块链的信息模型主要包括UTXO模型和账户余额模型。区块链数据的关联 验证结构则是依托区块链的基本数据单位“区块(block)”。区块由区块头和区块体两部分组成,区块体包含一定数量的交易集合;区块头通过前继哈希连接维持与上一区块的关联从而形成链状结构。基于传统数据层的数据模型要求,在图2中,区块链数据模型整体被分为:账户数据模型,区块数据模型以及交易类数据模型。 图2区块链数据模型分类 尽管现阶段区块链系统拥有不同的数据模型,但任何区块链数据模型设计与实现通常具备以下特性: 数据语义具有完备性:能够完整描述交易过程和结果,包含提 交者身份、交易内容等信息,并能通过所有区块重现世界状态。 数据来源具有可验证性:区块头或元数据中包含区块生成信息、哈希链等信息,用于验证区块的合法性与正确性。 数据格式具有可扩展性:区块数据结构中考虑向未来兼容的可能性,通过预留字段或模糊字段等手段,为扩展功能留出空间。 数据结构具有兼容性:区块数据结构出现变更时,能够向下兼容旧版本的节点运行时;同时不同的节点实现能够通过兼容的数据 结构进行通信。 (二)账户数据模型 目前的区块链技术中,账户数据模型主要有两种形式,一种是以比特币为代表的UTXO模型。另一种是以以太坊为代表的基于账户余额模型的记账模式。UTXO模型通过链式拓扑的方式组织所有交易数据的输入和输出,每一个交易的输出最终都能追寻到一个货币源头,也就是当前比特币被挖出时的区块的第一笔交易。比特币通过UTXO模型作为其交易信息底层存储的数据结构。基于账户余额模型的记账模式和现在银行卡记账方式类似,通过记录交易者的账户与余额信息从而实现合约事务的顺利进行。 1.UTXO模型 图3UTXO模型 UTXO模型是未花费的交易输出的记账模型。它是比特币交易生 成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是出块奖励,末尾则是当前未花费的交易输出。由于在UTXO中没有账户的概念,所以系统可以并行地处理交易,同时不可变的账本能够在比特币节点快速更新时,也能清晰的记录整个网络中每 一笔交易数据的快照,使得整个区块链交易清晰透明。当需要计算某个地址中的余额时,系统会遍历整个网络中的全部相关区块,验 证交易与余额。 表1UTXO数据模型的字段描述 字段名称描述 版本Version交易规则 输入数Tx_In交易输入列表的数量输入列表Tx_In_List一个或多个交易输入输出数Tx_Out交易输出列表的数量输出列表Tx_Out_List一个或多个交易输出锁定时间Locktime锁定时间 从结构来看,交易主要的两个单元字段就是交易的输入和输出。输入表示着交易的发送方,输出表示着交易的接收方及给自己的“找零”,在各类区块链浏览器上能看到的输入比特币之和与输出比特币