首页 / 区块链 / 【区块链整理】四、区块链数据结构
【区块链整理】四、区块链数据结构
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【区块链整理】四、区块链数据结构,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1829字,纯文字阅读大概需要3分钟。
内容图文
哈希指针
对前一个区块做哈希计算得到的哈希值,包含在当前区块当中作为引用。
Merkle Tree 和 Merkle Patricia Tree
Merkle Tree 中,叶子节点为保存的数据值。形成过程如下:
- 叶子节点经过哈希计算得到哈希值。
- 将哈希值两两结合计算哈希值。
- 重复步骤2,直到得到 Root 节点。
了解 Merkle Patricia Tree 之前,除了了解 Merkle Tree 以外,还需要知道 Trie (字典树、前缀树)以及 Patricia Tree 相关知识。
Merkle Patricia Tree 中包含三种节点:扩展节点、分支节点、叶节点。官方示意图如下:
Merkle Tree 应用场景
Merkle Tree 应用最多的地方是数据的比对和完整性校验。如 TX4 值发生了改变:
1. 首先对根节点 Root 进行对比,不一致即表示数据发生篡改行为。
2. 分别对 H12、H34 进行比较,此时 H34 不一致。
3. 分别对 H3、H4 进行对比,最终发现 H4 哈希值不一致。
简略的区块链结构示意图
区块头包含的内容及意义
Previous Hash:前一区块头哈希值。
Version:当前区块版本。
Target:挖矿难度。
Nounce:比特币中为随机数,用来不断尝试进而得到满足挖矿难度的哈希值;以太坊中存在不同的结构上,包含 nounce 含义不同。状态数中外部账户情况下代表为此账户地址发送的交易序号,合约账户表示为此账户创建的合约序号;交易树中代表交易者发送交易数的计数;
以太坊中包含的三种 MPT 结构树
1. 状态树
存储整个区块链当前所有账户的状态数据
2. 交易树
存储在本区块中发生的所有交易的数据。
3. 收据树
存储在本区块中发生的所有收据的信息。包括:区块序号、区块哈希值、交易哈希值、当前交易使用的 Gas、当前交易执行完当前区块使用的累计 Gas、执行交易创建的日志等。
以太坊账户状态包括哪些内容
nounce:外部账户情况下代表为此账户地址发送的交易序号,合约账户表示为此账户创建的合约序号。
balance:此地址拥有的以太币数量。
storageRoot:Merkle Tree 根节点哈希值。默认值为空。
codeHash:此账户以太坊虚拟机代码的哈希值。对于合约账户,就是被哈希的代码作为 codeHash 保存。外部账户来说,是空字符串的哈希值。
比特币交易过程
参考 【区块链整理】二、比特币交易脚本 中 脚本执行步骤 内容。
参考资料:
《区块链原理及技术应用》——赵其刚
内容总结
以上是互联网集市为您收集整理的【区块链整理】四、区块链数据结构全部内容,希望文章能够帮你解决【区块链整理】四、区块链数据结构所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。