MT和MPT---区块链的数据结构

本文涉及的产品
图片翻译,图片翻译 100张
语种识别,语种识别 100万字符
文档翻译,文档翻译 1千页
简介: 本文从翻译Vitalik Buterin 的一篇博客开始介绍三个概念: * Merkle Tree: 默克尔树 * Merkle Patricia Tree: 默克尔帕特里夏树 * Merkle Proofs: 默克尔证明 ---- ### 概述 Merkle Tree是区块链的一个基础概念; 虽然可以通过构造包含所有交易的区块头的方式而不使用Merkle Tree,

本文从翻译Vitalik Buterin 的一篇博客开始介绍三个概念:

  • Merkle Tree: 默克尔树
  • Merkle Patricia Tree: 默克尔帕特里夏树
  • Merkle Proofs: 默克尔证明

概述

Merkle Tree是区块链的一个基础概念; 虽然可以通过构造包含所有交易的区块头的方式而不使用Merkle Tree, 但是如此笨重的设计注定让区块链无法走的更远。感谢Merkle Tree让以太坊可以运行在小型设备上:智能手机,平板电脑,甚至是slock.it即将生产的IOT设备。
Merkle Tree到底是何方神圣?下面我们娓娓道来。

最简单的Merkle Tree的形式是下图展示的这种二叉树。每个节点有两个孩子, 叶子节点是数据的哈希值。

image.png

为什么像上图这样设计呢? 因为这种结构可以提供一种叫Merkle Proofs的机制。

image.png

如上图所示, Merkle Proofs包含三部分: 待验证的块数据的哈希(如图中的9Dog:64), 根哈希(如图中的6c0a), 验证路径(图中黄色部分: 1FXq:18, ec20, 8f74)。

证明验证过程:

  • 9Dog:64和1Fxq:18 求哈希。
  • 上步结果和ec20求哈希。
  • 上步结果和8f74求哈希。
  • 上步结果和根哈希(6c0a)比对是否一致。

比特币中的Merkle Proofs

Merkle Proofs最早应用在比特币中, 如下图所示比特币用所有交易的哈希构造了一颗Merkle Tree, 而Merkle Tree的根哈希写在区块头中:

image.png

之所以这样做的目的是因为这种设计可以支持SPV(简单支付验证): 为了验证一笔交易无需下载所有区块和交易信息, 只需下载80字节的区块头就可以了。区块头包含5类数据:

  • 前一个区块头的哈希
  • 时间戳
  • 挖矿难度
  • 工作量证明nonce
  • 上一段提到的所有交易组成的Merkle Tree的根哈希

如果客户端想验证一笔交易的可靠性, 只需要按照上述的Merkle Proofs过程提供交易哈希和路径, 再经过一系列哈希运算后比对根哈希就可以了。
这样客户端避免了下载所有区块数据进行交易验证的噩梦, 我们称这种客户端为轻客户端。

但是上述过程虽然可以验证一笔交易的有效性, 但是它无法提供更强大的能力。 例如它无法提供验证一个账号当前持有多少资产? 虽然轻客户端可以查询多个节点并且通过某种协议保证了至少一个可信节点返回的是真实的信息来查看账户余额, 但是这样做无疑更复杂。
所以为什么不从一开始的数据结构上就解决这类问题呢? 以太坊设计正是为此而来。


以太坊中的Merkle Proofs

以太坊中的区块头包含三颗Merkle Tree, 分别是: 交易树, 单据树, 状态树。

image.png

这种设计使得更复杂的轻客户端协议成为可能, 甚至可以处理以下问题:

  • 这笔交易已经包含在一个区块了么? (交易树可以处理)
  • 告诉我过去30天, 这个地址触发的所有X事件的信息(类似前一段火爆的ico的智能合约) (单据树可以处理)
  • 我的账户现在有多少余额? (状态树可以处理)
  • 这个账户是否存在? (状态树可以处理)
  • 如果执行这笔交易会发生什么? (比较复杂, 不说明了)

帕特里夏树

最上面我们介绍了二叉的Merkle Tree形式; 对于交易树而言这种二叉的数据结构已经非常优秀了, 因为交易树是一次性计算写入后再也不会改变的,所以它对计算效率的要求并不高。

但是对于状态树情况就比较复杂了, 比如以太坊中的状态是一个key-value的map。key是账户地址, values则包含了每个账户的balance,nonce,code 和 storage。下面是测试网络上的状态数据的描述:

{
    "0000000000000000000000000000000000000001": {
        "balance": "1"
    },
    "0000000000000000000000000000000000000002": {
        "balance": "1"
    },
    "0000000000000000000000000000000000000003": {
        "balance": "1"
    },
    "0000000000000000000000000000000000000004": {
        "balance": "1"
    },
    "102e61f5d8f9bc71d0ad4a084df4e65e05ce0e1c": {
        "balance": "1606938044258990275541962092341162602522202993782792835301376"
    }
}

不同于交易树, 状态树因为交易的发生,账户的新增等动作会频繁的进行插入,更新等操作。如何让树的插入和更新变得高效, 我们需要一种新的树形数据结构,新的数据结果需要具备两个特性:

  • 树的深度有限,哪怕收到攻击使得树的深度持续增加。否则树深度过大会导致计算缓慢而无法正常服务。
  • 树根哈希的计算仅依赖数据,不依赖更新的次序。无论对树更新的次序如何根哈希的结果是确定的。

帕特里夏树是最符合我们需求的了, 一句话解释什么是帕特里夏树: 每个节点有16个孩子表示路径, 分别代表了16进制的的16个字符。例如path为dog的16进制表示是: 6 4 6 15 6 7, 查找它的过程就是从根节点开始找到低6个孩子,然后进入下一层对应节点找到第4个孩子...依此类推。

后计

上面是对Vitalik Buterin(以太坊创始人)博客的翻译, 整体内容比较浅显没有涉及具体的知识点, 算是介绍性的博客。

下面列一些有价值参考资料:

原文
帕特里夏树
字典树
MPT

目录
相关文章
|
6月前
|
算法 安全 数据挖掘
《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)(上)
《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)(上)
78 0
《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)(上)
|
6月前
|
存储 数据挖掘 区块链
《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)(下)
《区块链公链数据分析简易速速上手小册》第3章:区块链数据结构(2024 最新版)(下)
73 0
|
2天前
|
存储 供应链 安全
探索区块链技术在供应链管理中的应用
本文深入探讨了区块链技术在供应链管理中的应用,分析了其如何提高透明度、安全性和效率。通过具体案例研究,展示了区块链如何解决传统供应链中的信任问题,降低成本,并促进更高效的物流管理。文章还讨论了实施区块链技术面临的挑战和未来发展趋势。
|
3天前
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与实践
区块链技术在供应链管理中的应用与实践
|
6天前
|
供应链 区块链 数据安全/隐私保护
区块链技术在供应链管理中的革新应用
区块链技术在供应链管理中的革新应用
|
9天前
|
存储 传感器 物联网
未来已来:区块链、物联网与虚拟现实技术融合的新篇章
【10月更文挑战第38天】本文旨在探索新兴技术区块链、物联网(IoT)和虚拟现实(VR)在未来社会的应用前景。通过分析这些技术的发展趋势,我们将揭示它们如何相互交织,共同塑造一个更智能、更互联的世界。文章将不包含传统意义上的摘要内容,而是直接深入主题,展开讨论。
|
8天前
|
供应链 安全 物联网
区块链技术的未来展望:重塑信任与价值传递
区块链技术的未来展望:重塑信任与价值传递
21 1
|
10天前
|
供应链 物联网 区块链
探索未来:区块链、物联网与虚拟现实技术的融合与创新
【10月更文挑战第37天】在技术不断进步的今天,新兴技术如区块链、物联网和虚拟现实正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的发展趋势和应用场景,并提供代码示例来说明它们是如何相互融合和创新的。我们将从区块链技术的基础开始,介绍其在金融领域的应用;然后探讨物联网技术的发展及其在智能家居中的应用;最后,我们将讨论虚拟现实技术的进步以及它在游戏和教育领域的应用。通过这些技术的融合与创新,我们可以更好地理解和预测未来的发展趋势。
|
10天前
|
供应链 算法 区块链
深入浅出区块链技术:从原理到应用
【10月更文挑战第21天】 本文旨在为读者提供一个关于区块链技术的全面概述,包括其工作原理、关键技术特点以及在现实世界中的应用案例。通过本文,您将能够理解区块链如何在不依赖中心化机构的情况下确保数据的安全性和不可篡改性,并探讨这项技术如何被应用于金融、供应链管理等多个领域,以提高效率和透明度。
26 1
|
13天前
|
供应链 物联网 区块链
未来已来:探索区块链、物联网与虚拟现实技术的融合趋势与实践应用
【10月更文挑战第34天】随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐步渗透到我们的生活中,不仅改变着我们的生活方式,还在重塑全球的经济结构。本文将深入探讨这些技术的发展现状、相互之间的融合趋势以及在实际应用中的创新场景。我们将通过具体案例分析,揭示这些技术如何共同作用,推动社会向更加智能、互联的方向发展。
28 3

热门文章

最新文章

下一篇
无影云桌面