改五个常数踢掉矿机:EIP-3372 与 ethash 的抗体实验 图 1
改五个常数踢掉矿机:EIP-3372 与 ethash 的抗体实验 · 图 1

给挖矿算法换题,是工作量证明社区一种特殊的武器:不换算法,只换某个常数,就能让价值连城的专用芯片在一夜之间变成计算器。EIP-3372 是这种武器最外科医生式的一件:2021 年 3 月 13 日起草,状态 Stagnant,核心动作是把 ethash 算法里通用的 FNV 哈希常数拆成五个不同的素数。它的讨论页标题把这层意图喊得很直白——对 ethash 做小幅修改以打破现有 ASIC 实现,同时标注了 EIP-969 再提交的身份。

一个 FNV 拆成五个

ethash 的选块、混合、压缩各步都反复调用同一个 FNV 哈希——一个三十多年的公有领域老函数,一次乘法加一次异或,硬件里就是一条乘法器电路,常数是一个三百多万量级的素数。EIP-3372 的定义方式像做替换手术:保留旧常数 0x1000193 之外,引入 0x10001a7、0x10001ab、0x10001cf、0x10001e3、0x10001f9 五个新素数,各自的用途精确到步骤——DAG 条目选取那一步换用 fnvA,条目混合步换 fnvB,压缩混合里的三层嵌套依次换成 fnvC 套 fnvD 套 fnvE,唯独 DAG 生成步的 fnv 保持原样不动。算法骨架一点没变,变的是每个关节的螺丝型号。

为什么改常数就能废掉芯片

GPU 跑挖矿是软件:换常数就是一次更新。ASIC 是把算法固化进光刻的芯片,算法等于电路本身,改一个字节的定义就得重新流片。这正是 2017 年 EIP-969 的原始逻辑——它选择调整 ethash 混合与数据集生成环节的常量和参数来作废存量矿机,最终没能生效,专用矿机在其悬而未决期间照常面世;后来的 EIP-1436 再加一针,同样停在草稿。EIP-3372 的赌注是:只改常数不动尺寸,DAG 兼容性让矿机商不能无缝升级,同时改动小到’不会影响 ETH 持有者和网络的稳定’——这是它在 Rationale 里对比’升级到 Ethash 2.0’路线时自认的优势。

动机页里的一段历史现场

提案的动机章节是研究那段历史的原始材料:它写道 ASIC 构成严重的集中化风险,若不清除,GPU 小矿工将因 EIP-1559 的账本结构被迫亏损退出;它提到 ASIC 整机售价上万美金而 GPU 不足一千;还引用了制造商在 EIP-1057 争论期间对开发者施压与法律威胁的指控,把’矿工永远追逐利润,因此会攻击网络与开发者本人’写成拒绝维持现状的理由。这些文字带着 2021 年特有的紧迫感:那年夏天合并已经在路上,工作量证明的死亡时间精确到季度。

抗ASIC军备竞赛的真实战绩

复盘这条路线,胜负手不在提案写得多精巧。1436、969、3372 这一串疫苗提案没有任何一针刺进主网激活,而专用矿机照常迭代——厂商在提案悬而未决的窗口里从容调整了产品。真正的终局因素在别处:算法每改一次,都同时惩罚了诚实的 GPU 矿工(他们才是立刻要更新软件的人),而合并的确定日程让任何一次算法变更只延长几个月寿命。EIP-3372 停在草稿,是这个命题失去意义后自然搁置的结局——2022 年 9 月,以太坊换了共识,整场军备竞赛连废墟都没留下。

提案体裁本身也是一种时间胶囊

顺着这条线索还能读到一种冷门文体:这份提案的动机章节读起来更像一封公开信而不是技术规范,作者用大半篇幅论证’为什么现状不可持续’,把芯片制造商与开发者社区的冲突写进了标准文档的脚注。密码学协议很少给商业战争留正文位置,EIP 仓库留了——而且以可检索、带版本历史的方式永久留了。对后来研究算力政治的人,这几段话的史料价值可能超过那五个素数:它记录了一个社区在换共识前夜,如何认真地把’用算法变更驱逐专用资本’当作一条还在讨论桌上的政策选项。技术方案的寿命有几年,政策辩论的切片反倒被仓库保管得完好。

快速问答

问:FNV 是什么级别的哈希? 答:一个三十多年的公有领域老函数,一次乘法加一次异或的循环,谈不上碰撞抗性,在 ethash 里只用来做内部混合,不承担对外承诺。

问:为什么 DAG 生成那一步不换常数? 答:提案明确保留它,意图是让缓存与 DAG 的尺寸结构尽量向后兼容,把破坏面精确对准’计算路径’而不是’数据尺寸’,给客户端一次平滑切换。

风险提示:本文为协议历史科普,不构成任何投资建议;常数取值与适用范围以 EIP 仓库当期文本为准。