以太坊正走在一条允许节点丢掉远古历史的路上——修剪后的节点更轻,代价是”我想取两三年前的某批区块时,网络里还有谁有”变成未知数。EIP-7801 在 2024 年 10 月提交,给这个未知数装一个可查询的答案:一个名为 etha 的新子协议,节点在其中用位图公开自己的存档地图。提案现标 Draft,类别是 Networking——它不碰共识,只改节点之间怎么报家门。
位图怎么画
规则朴素得可爱:把链历史每十万零六千四百九十六个区块划一条带,每一百零六万四千九百六十块(十倍条带的跨度)配一张十个开关的位图,哪个开关拨亮就代表节点存着对应条带,并且承诺将来该条带新增的区块继续存。位图直接塞进子协议握手包的尾部,随版本号、网络标识、创世哈希、分叉标识一并交换,连接的那一毫秒 Peer 双方就互相知道对方管哪些年段的账。之所以挑这两个数字,是因为它们都是单文件区块包格式最大跨度的整数倍,落盘时可以和标准归档文件严丝合缝地对齐。亮灯之外还有硬义务:节点必须按自己声明的位图留存新区块,整体至少要覆盖历史的十分之一;取历史数据用的消息则照抄主流协议的四条——请求区块体、应答、请求收据、应答,语义一字节不改,等于旧管道挂在新门牌上。
概率账与安全考量
提案的安全章节是一道排列组合题:任何节点对某条带缺席的概率若按随机分布建模,持有该条带的邻居每多一个,取不到数据的概率就乘零点九——二十五个邻居时约百分之七,三十二个邻居降到百分之三上下。数字本身不重要,重要的是它把”历史可用性”从玄学变成可以选址、可以配额的工程指标;而结论也坦白:要让整条历史被充分复制,得让多数客户端默认参与分片存储才行。另一面是诚实的账单:随链变长,每个节点的认领条带也在变厚,存储只降约九成而非归零,增量只按全量留存一成的速率生长。
与近邻提案的谱系
etha 不是孤例而是配套件:另一场讨论确立了”历史可修剪”的正当性,另一场给握手加过”我在提供哪个高度区间的数据”的一句话简介。7801 的增量是把区间简介细化为条带级承诺,并用独立子协议隔离历史查询流量,免得新来者拿全节点当历史仓库猛敲。文本里还留了一个变体思路——把位图编码进节点记录的域字段,不用握手也能被爬虫发现,但作者自己承认那条路缺乏握手方案的认证强度,且无法保证对方真的支持这个子协议。
快速问答
问:位图能撒谎吗? 答:能,协议只保证声明可核查(取不到即证伪),不保证诚实;对历史数据这类可慢速验证的资产,声誉与多邻居冗余是当前主要防线。
问:亮十个开关太抠门,能自定义条带大小吗? 答:提案把条带与跨度定死是为了对齐归档文件与全网可比性;改动条带尺寸属于破坏兼容的重新设计。
选址类比
把这套机制换成数据保管公司的故事更好懂。全城规定仓库每段只能放十万个箱子的存货档案,任何一家公司最多认领十段、并且认领了就要对新增箱子继续负责;客户上门前先在名录上查各家的位图,就知道某个年份的箱子在哪几家有备份,不必挨家敲门。规则没有发明新的信任,只是把”反正总有人存着”这句口头禅改写成可核对的承诺。它同时暴露软肋:承诺靠声誉与重复核对执行,若全城只有几家参与,某些年份就真可能只剩一段独苗——这恰是提案安全章节反复强调默认采用率的原因。
风险提示:历史数据可用性依赖网络节点结构,重要数据建议自行归档;本文不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。