区块链数据模型框架介绍

区块链数据模型框架介绍

最佳答案 匿名用户编辑于2023/12/15 13:30

在区块链技术的5 层体系架构中,数据层定义了各节点中数据的联系和组织方式,利用多种算法和机制保证数据的强关联性和验证的高效性。

1.账户数据模型

目前的区块链技术中,账户数据模型主要有两种形式,一种是以比特币为代表的 UTXO 模型。另一种是以以太坊为代表的基于账户余额模型的记账模式。UTXO 模型通过链式拓扑的方式组织所有交易数据的输入和输出,每一个交易的输出最终都能追寻到一个货币源头,也就是当前比特币被挖出时的区块的第一笔交易。比特币通过UTXO 模型作为其交易信息底层存储的数据结构。基于账户余额模型的记账模式和现在银行卡记账方式类似,通过记录交易者的账户与余额信息从而实现合约事务的顺利进行。

1.UTXO 模型 UTXO 模型是未花费的交易输出的记账模型。它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是出块奖励,末尾则是当前未花费的交易输出。由于在UTXO中没有账户的概念,所以系统可以并行地处理交易,同时不可变的账本能够在比特币节点快速更新时,也能清晰的记录整个网络中每一笔交易数据的快照,使得整个区块链交易清晰透明。当需要计算某个地址中的余额时,系统会遍历整个网络中的全部相关区块,验证交易与余额。

从结构来看,交易主要的两个单元字段就是交易的输入和输出。输入表示着交易的发送方,输出表示着交易的接收方及给自己的“找零”,在各类区块链浏览器上能看到的输入比特币之和与输出比特币之和之差就是这笔交易的矿工费。由于所有交易的输入必然是前面某笔交易的输出,所以交易最核心的字段是交易的输出。UTXO 模型的用户利用新的地址用于转账和交易,新地址与原地址之间的关系很难被追踪,更好地保证用户的隐私;UTXO 模型理论上来说可以并行地利用不同的 UTXO 签发多笔交易,并广播到网络中;以比特币为例,在比特币进行交易时,每一次交易的输入值都必须全部花掉,不能只花掉部分。比如,转账地址需要10 个比特币,输出比特币的钱包地址中只有 10 个比特币,发起一个交易就可以把比特币转到目标钱包地址中。但钱包地址中有15 个比特币,那从输出钱包地址中转 10 个比特币至目标地址,同时转5 个比特币给自身新的钱包地址。

2.账户余额模型 账户余额模型:相比于 UTXO 模型,账户余额模型是一种非常容易理解的区块链应用模型,它与我们生活中的账户模型非常相似,只是为了保证账户的安全,使用了签名以及nonce 的机制阻止恶意的攻击。这种基于账户余额模型的应用包含所有账户余额的全局状态,在进行转账时,需要由节点对账户的余额进行验证,判断当前账户是否有足够的余额进行转账。现阶段,采用账户余额模型的区块链,其包含两种账户:外部账户和合约账户。

外部账户(externally owned accounts),由密钥控制。外部账户创建流程:首先要创建随机私钥(以以太坊为例:64 位16 进制字符/32 字节);其次从私钥推导出公钥(以以太坊为例:128 位16进制字符/64 字节);最后从公钥推导出地址(以以太坊为例:40位16进制字符/20 字节): 合约账户(contract accounts),由智能合约的代码控制。合约账户不是通过公私钥对控制的。一个合约可以调用另外一个合约,所以要通过 nonce 值记录调用的次数。合约账户不能主动发起交易,所有的交易只能由外部账户发起,外部账户发起交易如果调用合约账户,合约账户可以发送 message 调用另外一个合约,但是合约无法自身发起交易。

以以太坊为例,账户模型包括四个字段:一个随机数(nonce)、账户的余额(balance)、存储(storageRoot)、合约代码(codeHash)。Nonce:如果账户是外部账户,nonce 代表从此账户地址发送的交易序号。如果账户是合约账户,nonce 代表此账户创建的合约序号。Balance: 此地址拥有余额的数量。StorageRoot: Merkle Patricia 树的根节点Hash 值。MerklePatricia 树会将此账户存储内容的 Hash 值进行编码,默认是空值CodeHash:此账户虚拟机代码的哈希值。对于合约账户,就是被 Hash 的代码并作为 codeHash 保存。对于外部拥有账户,codeHash域是一个空字符串的 Hash 值。

只有合约账户才有代码,其中存储的是codeHash。这个字段在生成后是不可修改的,这意味着智能合约代码是不可修改的。

账户余额模型的优点在于:每一笔交易都需要有一个签名,交易的输入和输出都是地址,能够节省存储空间;因为创建交易时不需要对过去的 UTXO 进行签名,可以从任何时间点开始同步区块的状态,利于编写轻量级客户端。 无论是 UTXO 模型还是账户余额模型,都能够很好地解决区块链世界中的“安全”问题,保证交易的合法,从原理上杜绝一些可能的攻击行为,实现原理的不同其实也只是由于出发点不同,在设计时权衡了利弊。

3.区块数据模型

链式结构模型 由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态变化的日志记录。每个区块有自己的时间戳,每个时间戳应当将前一个区块的时间戳纳入其随机散列值中,这样就形成了链条。共识算法是为了维护系统中只有一条唯一的合法链,任何分叉链都被视作对系统的攻击。正是基于此种考虑,比特币系统产生新块的时间被设定为10 分钟,系统需要足够的时间保证新块被传递给所有的用户节点,保证最长链的产生者会有更多的竞争者,保证系统会有更少的分叉。 区块链的链式结构具有以下优势: 安全性:区块链的链式结构以其不可篡改性而闻名。每个区块都包含前一个区块的哈希值,这种连接方式使得一旦数据被写入区块链,很难修改。数据的安全性和可信度很高,适用于需要高度安全性的应用,如数字货币和金融交易。 可预测性:区块链的共识机制通常比较简单,例如,比特币使用的工作量证明(Proof of Work,PoW)和以太坊的以太坊2.0使用的权益证明(Proof of Stake,PoS)。简单性使得区块链在运行和维护方面具有较高的可预测性,确保系统的稳定性和一致性。广泛认可:区块链的链式结构在过去十多年内得到广泛接受和采用,这意味着它拥有庞大的生态系统、开发社区和支持。这种认可使得区块链容易与传统金融机构、政府监管机构等合作,以实现更广泛的采用。

DAG 结构模型 不同于链式区块链中每个区块只能有一个父节点,DAG 结构模型允许每个区块指向两个或者两个以上的区块,容纳了很多分叉,这些分叉共同构成了一幅有向无环图。其次,它允许每个区块只有一个交易,而链式区块链中每个区块中的交易可能多达几千笔,如比特币。最后,DAG 结构中的交易在进入系统之前就已经确立了相互之间的引用关系,该引用关系为交易确立了局部的时间先后关系,而链式区块链中默认交易之间是无序的,交易之间的顺序是由矿工来随机决定的。

当用户向区块链中添加数据时,所在网络节点创建新的存储单元并将其广播给其他节点,每个单元中必须包含一个或多个先前单元的哈希值(与本单元直接相连的单元称为父单元),这样做的目的是使得各单元之间有序,如果尝试修改其中一个单元,则必须改变它所有的子孙单元,如此就保证了数据的防篡改性。如果沿着父子链的历史单元前进,当同一个单元被多个后来的单元引用时,会观察到很多分叉,当同一个单元引用多个较早单元时,会出现融合,最终形成一个有向无环图(DAG)结构。 链式结构在保证去中心化和安全性的前提下无法大幅度的提高扩展性,导致难以商业化运用。而对于DAG 结构的区块链,如果网络足够强大,能够大幅度的提高扩展性,采用DAG 技术的分布式数据库,起步就可以把每秒事务处理(TPS)做到10 万以上,还能把交易费用做到极低。DAG 技术作为区块链的一个有益补充,其异步通讯机制在提高扩展性、缩短确认时间和降低支付费用方面优势明显,也是未来去中心化技术领域发展方向之一。无论链式结构还是 DAG 结构,区块数据是构建区块链系统的核心要素之一, 区块数据中主要包括区块高度、区块哈希、前一区块哈希、区块时间戳、区块发起者、区块签名、版本信息、交易列表、多重签名、随机数、交易总数、默克尔根、其它数据等。

4.交易类数据模型

交易类数据只要包含交易信息与交易状态信息,其中我们将交易信息也分为交易数据模型以及合约数据模型。

交易数据模型 针对交易数据模型信息,主要包括交易发起者标识、交易接收者表示、交易发起者签名、交易内容数据、交易ID、其它数据等。交易数据模型通常具备以下特性: 可验证性:能够通过签名验证交易数据的数据完备性完备性:能够通过交易识别发起者、合约标识和合约参数唯一性:交易应当具备全局唯一的标识,同时能够使用较低成本防止重放攻击。

合约数据模型 合约数据通常指智能合约,是定义为在区块链上运行的应用或程序,简单来说智能合约就是一个确定性的计划,当满足某些条件的时候它会执行特定的任务。合约数据主要包括合约标识、合约哈希、版本信息、代码哈希、代码信息、合约类型、ABI 描述、合约状态、合约名称、合约发起者、时间戳等,用于记录区块链用户的交易记录。通常,合约的数据模型以外部账户模型为载体,记录的信息与账户数据格式相对应。

智能合约有以下几个特征: 分布式:智能合约在区块链网络的所有节点中被复制和分发。一致性:在满足要求的情况下,智能合约仅执行其预先设计好的操作,而且无论任何节点的执行它的结果都是一致的,自动化:它可以自动的执行各种任务,就像是自动程序一样,但是在没触发智能合约的情况下将保持休眠状态,不会执行任何的操作。不可篡改:智能合约一经部署就无法再更改了。

参考报告REPORT

区块链行业数据模型技术与应用研究报告(2023年).pdf

区块链行业数据模型技术与应用研究报告(2023年)区块链技术的集成应用在新的技术革新和产业变革中起着重要作用,全球主要国家都在加快布局区块链技术发展。以习近平同志为核心的党中央高度重视区块链发展,多次强调要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。随着以“数字新基建、数据新要素、虚拟新经济”为核心特征的数字经济发展的全面来临,全球各国和产业界都高度重视区块链基础设施推动数字经济发展的重要动能,欧盟区块链服务基础设施EBSI、印度国家区块链框架NBF等国家级重大工程先后启动建设。&ld...

我来回答

快速提问

海量报告支持,行业专家解读

海量文库支持,行业专家解答

用户解答榜
分享至