工作量证明背了个名声:烧电,只为证明电被烧掉了。保护一条经典链的哈希运算算出来的是一个没人想要的数字,它唯一的用处就是「曾经很贵」。这是一幅漫画式的刻画,但对基于哈希的挖矿来说,基本属实。
于是很多人顺势认为,浪费本身是承重结构:链之所以安全,正因为这些工作没用。并非如此。只要看清工作量证明真正需要做到什么,就会发现「没用」只是某一种实现的属性,而不是安全性论证的要求。
工作量证明究竟是干什么用的
把一条工作量证明链剥到只剩机制,任务只有一个:让区块造起来很贵,同时让这笔开销对其他所有人来说都很容易核查。 这两条加在一起,才挡住了历史被改写:改写链意味着把所有开销重做一遍,而任何人都能验证它并没有被重做。整个安全性论证就到此为止——它压根没提那件贵事本身必须是什么。
经典工作量证明用一种方式满足了它:
- 工作: 拿 nonce 反复哈希去撞一个目标值,直到撞过去为止。
- 产出: 一个没人需要的数字。
- 证明: 能量确实被花掉了。
产出没用,并不是安全性的来源。它只是「挑了哈希来当那件贵事」之后的副作用。
真正派得上用场的工作量证明:把开销瞄准真实的事
TensorCash 保留了完全相同的安全结构,只换掉这笔开销花在哪儿。矿工跑的是一次真实的前向传播(就是回答一条提示词的那次模型推理),而「这次前向传播确实发生过」的证明,就是延长链的东西。
- 工作: 一次真实的前向传播,跑在一条真实的提示词上。
- 产出: 一份有人真的问过的答案。
- 证明: 模型确实跑过。
| 经典工作量证明 | 有用的工作量证明 | |
|---|---|---|
| 工作 | 拿 nonce 去撞目标值 | 一次真实的前向传播,真实的提示词 |
| 产出 | 一个没人需要的数字 | 一份有人真的问过的答案 |
| 证明 | 能量确实被花掉了 | 模型确实跑过 |
同样的焦耳,只是瞄准了真实的东西。这份工作在成为区块之前就已经有用了:它服务了一次请求。够格进入共识,只是顺带的结果。
「可有用的工作不会削弱安全性吗?」
这是纯粹主义者那套反驳里最尖锐的一版,值得正面回答,而不是绕开。担心的是:一旦工作本身产生了价值,激励就被搅浑了,链靠的不再是工作本身,而是外部补贴。
但看看安全性究竟从哪儿来。一个区块之所以安全,是因为它造起来很贵、验证起来很便宜,也因为伪造一份能通过验证的假货,比老老实实干活还要贵。这三条没有一条依赖于产出必须一文不值。前向传播算起来很贵;一份有效的证明检查起来很便宜;而最关键的是,你没法抄近路。
伪造很贵,验证很便宜
有用性之所以没有打开作弊的口子,靠的是一种不对称性——另一篇专文把它讲全了,这里说个大概:
验证一份证明很便宜。伪造一份能过检的证明很贵,比老老实实把活干了还贵。
这里的验证在设计上就是统计性的:验证者拿到记录下来的推理记录(transcript),对照声称跑过的那个模型逐项核对,看这些数字对得上的方式是不是诚实推理该有的样子——容忍诚实输出里那点常规波动,仅此而已。检查一份已经生成完的推理记录,成本只是当初生成它的一个零头,不对称性正是从这里来的。这道关卡是专门为挡住 grinding(不做推理,硬凑一份能过检的证明)而设计的:想突破它,你为搜出一份骗过检查的证明所烧掉的算力,会超过老实把模型跑一遍的开销。所以理性的选择就是把模型跑一遍。有用性是白搭上的顺风车,它从来没有在安全性上给你打过折。
钱买不回时间:时间证明
这笔开销还有一个性质值得钉死。算力是可以并行的:谁愿意拿 GPU 塞满一整个仓库,谁就能用一个下午把一周历史的前向传播全部重跑一遍。如果焦耳是唯一的成本,那么足够多的硬件就能把改写所需的时间压缩掉。
所以这条链还走着一只时钟。每个区块都会推进一次可验证延迟函数(VDF)——一种从构造上就必须串行的计算:每一步都要用到上一步的结果,因此堆再多硬件也几乎换不来加速。这些 VDF 滴答一个区块一个区块地累积起来,一段与之竞争的历史不仅要拿出重做的工作量,还得拿出同样走过的滴答数。这就是与工作量证明并行的时间证明:大到反常的资源可以把能量再花一遍,却没法把时间再过一遍。
活着的网络看得见深度改写
纯粹的最长链规则要求节点接受任何更重的历史,哪怕它把过去改写得再深——私下挖出来的分叉走的正是这道门。TensorCash 把网络自身的活跃状态当作第二个信号:一个一直盯着链一块一块往前长的节点,知道公开场合并没有发生过深度改写。浅层重组——每天都会有的那种,两个矿工同时挖到区块——照常放行。而一条突然冒出来、试图改写深层历史的分支,会被当成它本来的样子:异常。它会被暴露出来接受审视,而不是被悄悄跟上。
再配上 VDF 这只时钟,深度重组就变得双重不划算:偷偷建起来的分叉在滴答数上落后于公开链,而它想突袭的那个网络,全程都醒着。
什么变了,什么没变
- 没变的: 安全性论证。造起来贵,验证起来便宜,伪造起来更贵。和任何工作量证明一模一样。
- 变了的: 这笔开销产出了什么。同样的焦耳不再换来一个随手丢掉的哈希,而是回答了一条真实的提示词;链记录下来的,是「跑的确实是那个模型」的证明。
整个想法就这些。同一套安全性论证,只是把工作对准了某个人真的问出口的东西——外加一只钱拨不回去的时钟,和一个有人动手时看得见的网络。
别只听我们说:验证者是开源的,任何一份证明都可以重放。自己跑一个验证者去验一份证明,确认到底是哪个模型干的活;或者开始挖矿,自己造一份出来。安全性从来不在浪费里,而在那道检查里。
本文由 Imosuke Takakuni 以化名撰写。