ERC-918 挖币合约:把工作量证明塞进 ERC-20 的发行设计为什么没跑通
一个 ERC-20 代币的供应量通常由发行方一笔笔铸出来。ERC-918 提出的问题是:能不能让代币像比特币一样靠算力”挖”出来,而且不写新链、只在以太坊合约里实现?这份创建于 2018 年 3 月 7 日的标准给出的答案是:把工作量证明的验证逻辑搬进合约,让 mint 函数变成一笔”交卷”交易。仓库记录的当前状态是 Stagnant,但这套参数联动的设计仍然值得拆开看,因为它把挖矿的四要素——题目、难度、奖励、调整——完整地映射到了智能合约里。
合约出题:挑战数与目标值
标准给合约规定的第一个视图函数是 getChallengeNumber,返回一个字节数为 32 的挑战数,相当于这一轮发给所有挖矿者的”题目”。紧跟其后的两个函数定义了答题规则:getMiningTarget 返回一个数值目标,getMiningDifficulty 返回当前难度。挖矿者要做的事情是反复更换一个随机数,把挑战数、自己的地址和随机数首尾相接做哈希,直到哈希结果落到目标值以下。标准原文给出的验证示例用的就是这类哈希比对:哈希值落在目标区间内才算交卷成功,否则继续换随机数。
这套规则有两个细节值得注意。第一,地址被写进了哈希输入,意味着别人算出来的随机数对你的地址无效,防止了算力成果的直接转手。第二,验证在合约里完成:挖矿者把成功的随机数作为参数调用 mint,合约重算一遍哈希,通过才发币。计算在链下,判定在链上,这正是”合约挖矿”和普通空投分发的本质区别。

难度的时间刻度
比特币靠区块间隔反推难度,ERC-918 用两个函数做同样的事:getAdjustmentInterval 返回多少个区块构成一个调整周期,getMiningReward 返回每个周期的区块奖励。周期内出块快了,下个周期目标值收紧;慢了则放松。它没有规定必须用哪种算法调整,只要求这三个量之间满足换算关系,把设计自由度留给了实现者。对读者来说,这类参数提醒了一件事:任何”靠算力发行”的代币,其通胀曲线都由合约参数决定,读合约等于读货币政策。
代理提交:delegatedMint 的签名设计
普通用户跑不起哈希碰撞,标准为此设计了一条委托通道。挖矿者先用 delegatedMintHashing 对委托内容求哈希,用自己的私钥签名,再由愿意垫付交易费的一方调用 prepareDelegatedMintTxn 或 delegatedMint 把结果提交上链。提交者付出 gas,挖矿者按事先写进消息里的比例分账。这个结构的巧妙之处在于签名对象里绑定了提交者地址与随机数,签名不能挪作他用,也不能被重放到另一笔提交上。对今天的场景来说,这是”gas 代付”思路里相当早的一个变体。
为什么停在 Stagnant
这份标准的野心是让每个项目都能发一种”可挖矿 ERC-20”。它没有跑通的原因可以从设计本身读出来:哈希碰撞在以太坊合约上验证,每次提交都要付 gas,而计算在链下自由市场里卷价格,算力收益与链上成本始终互相打架;同一时间窗口里,真正的挖矿项目大多选择了自建链,而不是把工作量证明寄居在别人的状态机上。后来以太坊转向权益证明,这条路线的讨论热度进一步熄灭,标准也就停在 Stagnant。
读这类”化石标准”的现实价值是防身:如果某个项目今天宣传”公平挖矿发行”,你至少知道该去合约里核对哪四个参数——挑战数的生成方式是否可预测、目标值谁能改、调整周期多长、奖励怎么分配。参数全部掌握在发行方手里、mint 条件随时可改的”挖矿”,和工作量证明没有任何关系。本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。