不喜欢广告? 无广告 今天

Merkle树生成器与可视化工具

数据开发人员安全
广告 移除?
在哈希前,每一行如何被解释。
当某一层节点数量为奇数时,应采取什么操作。
如何将左右子节点的哈希值组合后再重新哈希。

默克尔根

树图

JSON 导出

点击树中的任意节点以复制其哈希值。默克尔根是整个叶子集合的唯一指纹——只要任意一个叶子发生变化,根哈希就会改变。
广告 移除?

指导

默克尔树生成器与可视化工具

Merkle树生成器与可视化工具

粘贴一组值,选择一个哈希函数,立即看到一个可视化的默克尔树,包含每个中间节点的哈希值和最终的默克尔根。选择SHA-256、SHA-1或Keccak-256(以太坊使用的哈希函数),调整比特币风格的奇数叶子规则或OpenZeppelin的排序配对约定,并将完整的树导出为JSON格式。点击树图中的任意节点,即可将其哈希值复制到剪贴板。

如何使用

  1. 在文本区域中输入你的叶子,每行一个值。点击示例按钮以获取一个快速示例集。
  2. 选择一个哈希函数:通用场景使用SHA-256,旧系统使用SHA-1,以太坊兼容场景使用Keccak-256。
  3. 选择每一行如何被解释:作为UTF-8文本(默认)或作为已哈希的十六进制字符串。
  4. 选择一个符合目标协议的奇数叶子规则和配对拼接模式。
  5. 查看默克尔根,滚动SVG树图,并下载JSON导出文件以供下游工具使用。

特征

  • 三种哈希函数 – SHA-256、SHA-1和Keccak-256覆盖了比特币、旧系统和以太坊的常见使用场景。
  • 交互式SVG树图 – 每个节点均可点击复制;虚拟的重复兄弟节点以虚线边框绘制,以确保结构的真实性。
  • 奇数叶子策略 – 在“重复最后一个”(比特币惯例)和“提升最后一个”(将未配对节点原样上移)之间切换,以匹配目标协议。
  • 排序配对模式 – 在需要与流行的Solidity MerkleProof库兼容时,开启OpenZeppelin风格的排序拼接。
  • 预哈希十六进制输入 – 通过直接粘贴十六进制摘要跳过叶子哈希,适用于底层叶子数据较大或已标准化的情况。
  • JSON导出 – 下载包含每一层、每个节点哈希值和所选参数的完整快照,以确保可重现性。

常问问题

  1. 什么是默克尔树?

    默克尔树是一种由加密哈希构成的二叉树。叶子是输入数据的哈希值,每个父节点是其两个子节点拼接后的哈希值。顶层的单个哈希值——默克尔根——可以指纹整个数据集:只要任意一个叶子发生变化,根哈希就会改变。默克尔树允许通过共享少量的兄弟哈希值(默克尔证明)来证明某个值属于某个集合,因此它被用于比特币区块头、以太坊状态、Git提交和证书透明度日志中。

  2. 比特币为何在节点数量为奇数时会重复最后一个哈希值?

    为了保持构造的严格二叉性,比特币通过复制最右边的哈希值来填充奇数层级,使其可以与自身配对。这种做法简单易实现,但会引入一个已知的第二预像漏洞(CVE-2012-2459),即攻击者有时可以构造出不同的叶子列表,从而产生相同的根哈希。更现代的设计倾向于采用“提升”规则——将未配对的哈希值原样上移——或在内部哈希与叶子哈希之间添加域分离标签,以弥补这一缺陷。

  3. Keccak-256 与 SHA-256 和 SHA3-256 有何不同?

    Keccak-256 是赢得 NIST SHA-3 竞赛的原始海绵结构。在标准化之前,NIST 修改了填充规则,生成了 SHA3-256,其字节与标准化前的 Keccak-256 不兼容。以太坊在变更发生前就固定了原始的 Keccak-256,因此 Solidity 中的 'keccak256' 函数与 SHA3-256 并不相同。SHA-256 属于与之无关的 SHA-2 系列,采用的是默克尔-达姆加德构造,仅共享名称模式。

  4. 为何一些默克尔库在拼接前会排序配对?

    在拼接前对左右哈希值进行排序,使得父节点哈希值不再依赖于哪个子节点是“左”或“右”。这意味着默克尔证明只需包含兄弟哈希值,而无需方向位,从而使得链上证明更小(约30%),且验证合约也更简单。OpenZeppelin 的 MerkleProof.sol 使用了这一约定;经典比特币和以太坊区块头不使用此方式。排序变体主要出现在空投允许列表、治理快照和其他离链承诺中。

想要享受无广告的体验吗? 立即无广告

安装我们的扩展

将 IO 工具添加到您最喜欢的浏览器,以便即时访问和更快地搜索

添加 Chrome 扩展程序 添加 边缘延伸 添加 Firefox 扩展 添加 Opera 扩展

记分板已到达!

记分板 是一种有趣的跟踪您游戏的方式,所有数据都存储在您的浏览器中。更多功能即将推出!

广告 移除?
广告 移除?
广告 移除?

新闻角 包含技术亮点

参与其中

帮助我们继续提供有价值的免费工具

给我买杯咖啡
广告 移除?