小白专享-图解以太坊编程

2025年06月30日更新 16 人订阅
专栏简介 最基础的数据结构 - Merkle 树 MPT树前置 - 前缀树 以太坊的核心数据结构 - MPT树 以太坊数据检索的基石 - 布隆过滤器 入门以太坊的编程的第一步 - Solidity 基本语法 Gas优化的核心 - 以太坊数据存储布局及内存优化 以太坊进阶操作 - 合约调用、地址预测、发送与接收 ETH 以太坊编程进阶 - ABI 编码、函数选择器、合约升级 以太坊代理模式的进阶 - 钻石代理和最小代理 以太坊代理模式的天花板 - 信标代理 以太坊发币 - 超简单发行 ERC-20 代币并上线到 holesky 上 NFT发行 - 超简单发行 NFT 到 holesky 上(包含 ERC165、ERC721Receiver 的含义) 带你手搓一个预言机 - 极简版的 ChainLink VRF 随机数生成 监听合约事件 -- 手把手带你在线、离线部署 The Graph 事件监听 - 合约事件监听的方案汇总 代币集大成者 - 手搓一个ERC1155合约并上线 holesky DeFi 项目的基石 - ERC4626 代币金库协议的实现 智能合约的身份保证 - 数字签名 更安全的签名 - EIP712 结构化签名 ERC20授权的更优方案 - ERC20Permit 签名授权 更安全的钱包 - 最小代码手搓 gnosis safe 多签钱包 空投大杂烩 - 合约实现空投发放的三种方案 发币防止大户提前跑路 - 手搓一个线性释放合约 你也不想你的代币被盗吧? - 手搓实现代币锁和时间锁 Pectra 升级的核心:EIP-7702的原理分析和实操 Resupply 黑客事件分析

最基础的数据结构 - Merkle 树

  • shawn_shaw
  • 发布于 2025-04-13 03:19
  • 阅读 515

🌲什么是默克尔树一种二叉树的变种,称为哈希二叉树。所有节点存储hash值,父节点是对所有子节点的hash。❀默克尔树的特性高效:可以实现不遍历整棵树,验证数据是否在树中。不可篡改:只要有一个节点被篡改,root节点hash就会发生改变。节省存储:不保存真实数据,仅保存数据的h

🌲什么是默克尔树

  1. 一种二叉树的变种,称为哈希二叉树。
  2. 所有节点存储hash值,父节点是对所有子节点的hash。

image.png

❀ 默克尔树的特性

  1. 高效:可以实现不遍历整棵树,验证数据是否在树中。
  2. 不可篡改:只要有一个节点被篡改,root节点hash就会发生改变。
  3. 节省存储:不保存真实数据,仅保存数据的hash值。

    🔨默克尔树的应用

  4. 空投白名单:将所有的空投地址构建一颗hash树,链上仅保存root根哈希。验证时,通过路径构建出root hash,和链上的root hash进行验证即可。
  5. 资产证明:构建资产的merkle tree,保存资产的root hash即可完成验证。
  6. 文件校验:构建文件的merkle tree,保存文件的root hash即可完成验证。

    🍡默克尔验证

image.png 空投白名单是使用默克尔验证的方式进行校验白名单的: 具体流程如下:

  1. 从地址=张三,构建hash--> H4
  2. 获得H4的兄弟节点hash H5, 构建父节点H2
  3. 获取H2的兄弟节点H3,构建root hash H1
  4. 和链上(合约中)保存好的root hash进行比较,如果H1 = root hash,则地址张三有效。如果不等,则说明树被篡改或者张三不在此树中。
点赞 0
收藏 0
分享

0 条评论

请先 登录 后评论