前阵子群里因为一笔清算吵了半晚上。

有人截图说 ETH 当时是 1987 美元,有人拿另一家交易所的 K 线说最低只到 1994,还有人翻出预言机更新记录,发现链上价格在那几十秒里停在 2001。每个人的数据都是真的,每个人的结论却不一样。

这件事让我意识到,链上风控最容易被一句话糊弄过去:“让多个节点独立验证就安全了。”

问题是,如果多个节点读到的根本不是同一份数据,它们独立得越认真,答案可能越分裂。尤其当 AI Agent 要在秒级行情里自动下单、清算或调仓时,价格、制裁名单、风险评分都在变化。验证者甲在 10:00:00 抓到一个值,乙在 10:00:02 抓到另一个值,谁错了?可能谁都没错。

我重新读 @NewtonProtocol 白皮书时,真正吸引我的不是“AI”两个字,而是它怎样处理这个很土、却决定系统能不能工作的输入问题。

先别急着跑政策,第一步是把数据对齐

Newton 把评估分成 Prepare 和 Evaluate 两个阶段。

Prepare 阶段,Gateway 把数据获取任务发给当前 Operator 集合。每个 Operator 独立执行被隔离的 WASM 数据插件,去获取价格、名单或其他外部信息,再把带有时间、来源等字段的响应送回来。

这里的 Operator 不是简单复制 Gateway 给的答案。它们各自取数,保留独立观察;Gateway 也不能伪造 Operator 的签名。接下来系统需要把这些响应整理成一份 canonical dataset,也就是本次政策评估共同使用的规范数据集。

等输入达成一致,才进入 Evaluate 阶段。Operator 根据 IPFS 内容地址取得同一版 Rego 政策,用同一份规范数据独立计算,最后对结果签名并进行 BLS 聚合。

这像五位会计核账。不能让甲拿周一流水、乙拿周二流水,然后争论谁算得准;先确认大家桌上是同一叠凭证,再比较计算结果。只有“同一规则 + 同一输入”,确定性评估和错误追责才有意义。

为什么不能让 Gateway 直接选一个价格?

最省事的做法,是让一个中心服务器抓取数据,再广播给所有 Operator。这样速度快,也容易得到一致答案。

但它会制造一个非常明显的控制点:谁控制服务器,谁就能选择输入。服务器不用篡改 Rego,也不用伪造签名,只要把过期价格、错误名单或经过挑选的风险评分塞进去,所有 Operator 都可能“诚实地算出错误结论”。

@NewtonProtocol 的流式共识设计试图把取数与评估都放进 Operator 网络。网络会选出负责协调的 Gateway,但 Gateway 更像交通警察,不是法官。Operator 独立抓取、签署输入响应,再共同形成可用数据。被选中的 Gateway 可以编排流程,却不能单方面改掉其他 Operator 已签名的观察。

白皮书还提到 Gateway 采用基于 VRF 的轮换选择,避免长期由一个固定入口掌握协调权。每个注册 Operator 都可能在某个 epoch 成为 Gateway。这不是完全消除信任,而是在尽量缩小单点能够作恶的空间。

“规范数据集”也不是万能答案

这里必须泼一盆冷水。

第一,多数一致不代表事实正确。

假如十个 Operator 都调用同一家数据提供商,哪怕节点分布在十个国家,本质上还是一个信息源。数据商返回错误价格,所有人会整齐地得到同一个错误答案。看上去共识很漂亮,实际上只是一起踩坑。

所以真正要观察的,不只是 Operator 数量,还有数据源是否多样、插件怎样处理异常值、旧数据如何淘汰,以及系统能否明确记录本次评估到底引用了哪些来源。

第二,时间窗口会影响结论。

行情剧烈时,两秒前的数据和现在的数据都可能真实,却不能混在一起使用。规范数据集需要处理时间戳、数据新鲜度和响应延迟。窗口设得太窄,Operator 经常凑不齐;设得太宽,又可能把已经失效的信息纳入计算。

第三,Gateway 仍可能通过拖延影响结果。

它不能伪造签名,却可能延迟发布任务、选择不利的提交时机,或者让某些响应错过窗口。白皮书提到可检测和替代机制,但主网实际运行中,轮换是否及时、故障如何恢复、用户能否看到超时原因,仍需要真实数据证明。

ZK 能证明计算正确,却不能替现实世界担保

Newton 的挑战机制可以让外部参与者重新执行同一条 Rego 政策,并用零知识证明指出 Operator 的输出有误。这解决的是“给定政策和输入,计算是否正确”。

但如果输入数据本身就是错的,ZK 证明不会变魔术。

它能证明一台计算器按 2+2 算出了 4,却不能证明有人递过来的第一个“2”真的是两枚苹果,而不是三枚被贴错标签的苹果。

这也是我认为 Newton 最值得认真讨论的地方:它没有消灭预言机问题,而是把问题拆得更清楚。政策是否一致、输入如何形成、Operator 是否正确执行、外部挑战能否复算,各自留下不同的责任边界。系统至少不再用一句“去中心化验证”把所有风险揉成一团。

$NEWT 在这套流程里为什么不是装饰?

Prepare 阶段要执行 WASM 插件、调用数据提供方并传输响应;Evaluate 阶段要运行 Rego、生成签名并完成聚合。这些都不是免费的。

白皮书中的费用模型按实际工作量计量,包括 WASM 指令、数据请求次数和带宽消耗,再通过支付金库批量结算给 Operator 与协议。复杂政策读取更多数据、消耗更多计算,自然应该比简单的名单检查贵。

这给观察 $NEWT 提供了一套比“AI 热度”更实在的指标:每天发生多少政策评估?每次调用多少数据源?Operator 响应是否稳定?复杂任务产生的费用能否覆盖验证成本?如果真实调用增长,网络工作量和经济安全需求才会一起增长;如果没有应用使用,再完整的架构也只是昂贵的演示。

我最后记住的,不是共识,而是“同一道题”

多数链上系统很爱强调有多少节点,却很少告诉用户这些节点究竟看到了什么。

Newton 的思路提醒我:分布式验证的起点不是让更多人举手,而是先让所有人对着同一份题目作答。Prepare 负责把动态外部世界压成一份可追溯的输入,Evaluate 负责按确定性政策计算,BLS 聚合负责证明有足够质押权重同意结果,挑战机制再给错误留下被推翻的出口。

这条链路不完美,数据源集中、时间窗口、Gateway 延迟和验证成本都可能成为新风险。但它至少把“输入一致性”摆到了台面上。

当 AI Agent 开始替人管理真金白银时,我们不能只问模型聪不聪明,也不能只数 Operator 有多少。更该问一句:它们刚才做决定时,看的究竟是不是同一个世界?#Newt