哈希表和区块链都姓哈希,却是两类东西:前者是程序内部用哈希函数加速查找的数据结构,靠一个管理者说了算;后者靠区块头哈希串联和全网重复验证来防篡改。本文讲清哈希表的键值映射、冲突处理与扩容逻辑,再逐条对比区块链真正解决的问题,并解释为什么在节点本地数据库里两者反而是合作关系。
汇总与「数据结构」相关的文章,帮助你系统了解该主题。
哈希表和区块链都姓哈希,却是两类东西:前者是程序内部用哈希函数加速查找的数据结构,靠一个管理者说了算;后者靠区块头哈希串联和全网重复验证来防篡改。本文讲清哈希表的键值映射、冲突处理与扩容逻辑,再逐条对比区块链真正解决的问题,并解释为什么在节点本地数据库里两者反而是合作关系。
ERC-7813(2026 年 8 月核验处于 Last Call 阶段)提出一种把链上数据组织成带固定键值结构的表的存储模式:统一访问接口、紧凑二进制编码、标准化事件,让链下索引器能按模式自动同步状态,还能在运行时注册新表。本文拆解它对 NFT 元数据与索引生态意味着什么。
节点退出历史数据存储之后,合并前的以太坊历史靠什么继续被验证?停滞提案EIP-7643提出把所有工作量证明时代区块哈希与总难度装进一个SSZ累加器,用一个承诺根代替逐块执行。本文拆它的结构与用途。
共识层早已用SSZ序列化,执行层的区块却还困在RLP和逐块默克尔 Patricia 树里。草案EIP-7807把执行区块整体迁到SSZ,从区块哈希到逐块trie统一表示。本文解释这次换编码的动机、它不动的东西,以及统一表示为什么是无状态路线的地基。
SSZ序列化长期没有一个表示'可能有值也可能没有'的正规类型,工程师们用哨兵值、空列表等土办法绕行。EIP-6475提议的Optional[T]用首字节0x01标记存在、以长度为零表示缺失,并把默克尔化归约为长度至多为1的列表。本文拆解它的三条规则与背后的前向兼容考量。
以太坊的字段大多用任意精度整数定义,节点各写各的上限会积累一致性隐患。2018 年的 EIP-1985 给 Gas、区块高度、时间戳、地址、各类尺寸划出统一值域,2022 年的 EIP-4803 则提议把交易 gas 上限钉在 2 的 63 次方减一并自创世追溯适用。本文对照这两份都停在 Stagnant 的提案与已经生效的 nonce 封顶先例,讲清"数字边界"为什么是共识问题,以及它对钱包显示大数字的实际影响。
EIP-8188 在 2026 年 3 月提议给以太坊账户与存储槽的编码加一个 last_written_block 字段,记录这段状态最近一次被改写于哪个区块;写时更新、读时不动,也不改任何 Gas 价格。这份草案想回答一个一直没被直接回答的问题:哪些状态还活着、哪些已经沉睡了很多个区块。本文解释它为什么不翻历史就能知道写入时间、读取为什么不刷新它,以及这份元数据与状态创建成本提案(EIP-8037)怎么互相咬合。
SSZ 的定容列表 List[type, N] 要求预先声明容量:小列表要为海量零叶付哈希成本,跨分叉改容量还会打断下游证明。EIP-7916 提出渐进列表 ProgressiveList:默克尔树按实际叶数按 4 倍递归生长,元素位置(gindex)与列表长度无关,证明写一次长期可用。本文讲清三种病、递归树形与容量表,以及它和渐进容器 EIP-7495 的分工。
ERC-2021 同年出生的一组 dType 标准里,ERC-2157 创建于 2019 年 6 月 28 日,状态 Stagnant。它规定类型数据的外置存储合约:每条记录有哈希定位的地址,接口提供插入、更新、删除、按键查询、按序遍历和计数八类函数。本文按原文拆解这套通用数据表接口与类型注册表的配合方式,以及它给链上数据结构化留下什么。
以太坊收据长期以 RLP 编码挂在默克尔-帕特里西亚树里,轻客户端证明一条日志要带上整条收据。EIP-6466 提议把收据迁移到 SSZ 结构:字段有固定轮廓,默克尔化后每个部分都能单独出具证明。本文解释 RLP 收据的举证困境、SSZ 树式的替代写法,以及它当前停在草案阶段的现实。