给地址打分的合约:ERC-4974 链上评分接口的三个硬规则 图 1
给地址打分的合约:ERC-4974 链上评分接口的三个硬规则 · 图 1

给地址打分的合约:ERC-4974 链上评分接口的三个硬规则

“这个人靠不靠谱”是链上交易最贵的信息。ERC-4974(Ratings)尝试给它一个最小标准接口:让合约可以公开地给一个以太坊地址记一个数字分数,其他应用读这个分数做判断。按 ercs 仓库记录,提案状态为 Stagnant(停滞),创建于 2022 年 4 月 2 日,只依赖 ERC-165。接口小得不凡——总共三个函数、三个事件,但正因为小,它把“谁说了算”这件事暴露得格外彻底。

一个 operator 说了算

规范的骨架是这样:合约初始化时必须设置一个非零地址作为 operator,运营者换人必须发 NewOperator 事件;只有 operator 调用 rate(address, int8) 才产生有效评分,每笔评分发出 Rating 事件;operator 也可以用 removeRating(address) 抹掉某人的分数,同样有 Removal 事件。所有人读取时调用 ratingOf(address),返回一个有符号 8 位整数——取值范围负一百二十八到正一百二十七。

三行规则读完就能发现要害:这是一套中心化评分的接口。它没有投票、没有多方签名、没有去中心化聚合。operator 是单个地址,它可以给盟友满分、给对手负分,可以悄悄换人(换人必须发事件,但事件之前它说了算)。标准统一了“怎么读分”,完全没有统一“分数为什么可信”。

给地址打分的合约:ERC-4974 链上评分接口的三个硬规则 图 2
给地址打分的合约:ERC-4974 链上评分接口的三个硬规则 · 图 2

有符号整数意味着什么

int8 允许负分,这是一个值得注意的设计选择:评分不是单纯的好评计数,而是允许表达“风险警告”。当某个合约给一个地址记了负分,按语义是在公开宣称该地址有负面记录。由此而来的现实问题包括:被误评分的地址如何申诉——规范只给 operator 留了 removeRating 的后门,没有异议流程;评分依据在何处——Rating 事件只有地址和数字,理由永远在链下;负分的传播力——任何读这个接口的程序都可能据此拒服务,被评分者对链上数据的记忆没有删除权。

评分、信誉、征信的三级台阶

读这类标准时值得把三个词分开。评分是单个主体的主观数字,如 ERC-4974;信誉是多个信号聚合后的画像,需要处理刷分、女巫攻击与时效衰减;征信则牵动金融法规与个人信息权利。ERC-4974 只碰了第一级台阶。看到“链上征信协议”“永不磨灭的信用记录”之类的表述,先查它落地的接口是不是一个单 operator 合约——如果是,那它的全部客观性,就等于那一个地址的信用。

停滞状态的现实意义

链上只有数字,没有理由

一个必须接受的现实:Rating 事件只携带被评分地址和一个数字,评分理由、证据文件、评分时点,全部留在链下。引用这个分数的任何分析文章,若不能同时给出合约地址和可核验的链下依据,就只剩转述。同时接受另一半现实:operator 可以 removeRating 抹掉昨天的失误,也可以随时把 operator 交给下一个地址。所以读一份评分合约的正确姿势是:盯 NewOperator 事件——它出现的那一笔交易,就是整套评分体系易主的时刻;再盯 Removal 的密度,批量清除往往意味着一次舆论风波或一次换血。8 位整数的量程是规范为了跨合约可比刻意收的窄,理由与申诉流程,它一概不管。链上记住数字,链下才记得原因。

Stagnant 说明评分标准化路线推进停滞,一个合理的原因是“谁来当 operator”无解:让渡给平台违背去中心化叙事,交给投票又遭遇女巫与贿选。目前链上信誉产品普遍走可验证凭证、零知识证明或加权社交图谱的路子,都比单点打分复杂得多。普通用户接触“链上评分”时,可以带着三个问题核对:分数来自哪个合约、当前 operator 是谁、这条分和 Removal 历史能不能在浏览器翻到。读得回全部历史的分数才有讨论价值,读不回历史的分数只是品牌宣传。本文为机制说明,不构成任何投资建议。