押上身家,而非汗流浃背
想象一个法庭需要一个诚实的陪审团,却没办法核查任何人的底细。这里有个聪明的办法:要求每位陪审员在落座之前先交一大笔现金押金。公正裁决,你就能拿回押金,外加一点辛苦费;被抓到作弊,押金就没收。这下,诚实不再是一种道德上的指望——它成了桌面上最便宜的选项。这一个想法,就是权益证明的全部。
共识机制,无非就是一个没有领袖的网络用来就下一个区块达成一致的规则手册。上一篇介绍过其中一种规则手册——工作量证明,在那里你靠在一场猜数字竞赛中烧电来换取记账的权利。权益证明把那份物理代价换成了金融代价。你证明的不是自己耗了多少电,而是自己有一笔钱押在上面。这笔押金叫做你的权益,把它押下去这个动作就叫质押。
由谁来记账:验证者
一个锁定了权益、并帮忙维护这条链运转的人,就是验证者。验证者干两件事。每隔一阵子,会有一位被选中去提议一个区块——把待处理的交易收集起来,拼出账本的下一页。其余所有人则对它进行见证:各自核对这个被提议的区块是否有效,然后广播一张签了名的投票,表示「这个看起来没问题」。先提议,再见证。当足够大比例的质押验证者都为某个区块作了见证,它就成为链的一部分。
提议者是怎么选出来的?按权益的比例。网络会跑一场加权的彩票,你被选中的概率正好与押金的大小相称:押的钱多一倍,被选中提议的次数大约也多一倍。这呼应了工作量证明——在那里,你的概率与你占的算力份额挂钩;在这里,则与你占的押注金额份额挂钩。无论哪种方式,影响力都是你必须花钱买的东西,所以没法靠开出成千上万个空壳身份就把它伪造出来。
Stake-weighted selection (one slot) Alice staked 320 ########## Bob staked 160 ##### Carol staked 80 ### Dave staked 40 # pick proposer -> Alice (biggest stake, best odds) Alice proposes a block Bob, Carol, Dave attest: valid? yes -> sign vote enough votes -> block is added
作弊要赔上押金:罚没
是什么拦着一个验证者,不去批准一个造假的区块,或试图同时押注两条相互冲突的链?答案是一种直接写进规则里的惩罚:罚没(slashing)。如果一个验证者签下了可被证明违反规则的投票——比方说,为同一个时段的两个不同区块都作了见证——网络就会销毁他质押押金中的一大块,并把他驱逐出去。谁也不用去告他或把他揪出来;这份损失是自动发生的,从他早已锁定的钱里扣。
把这两套系统并排放在一起,那种对称很漂亮。在工作量证明下,攻击者的代价是外部的——他们烧掉的电和机器,是花在外部世界里的钱。在权益证明下,代价是内部的——是协议可以拿走的那笔押金。两者之中,攻击这条链都意味着点燃自己的钱。区别在于,质押的钱可以被直接惩罚,而烧掉的电力则永远只能算是被白白浪费。
锁住过去的投票:终局性
正因为验证者投下的是明确、签了名的票,权益证明能提供一样工作量证明只能近似做到的东西:终局性。在一个靠点票的系统里,一旦质押押金中的绝对多数都为某个区块作了见证,网络就能宣布它终局——彻底定案。要推翻它,就得有数量庞大的验证者去推翻自己先前的票,从而全都被罚没,一下子销毁巨额的金钱。所以撤销一个已终局的区块,不只是不太可能,而是可被证明地后果惨重。
回报:同样的安全,能耗却只是零头
重头戏般的区别就在这里。工作量证明必须让数以百万计的机器昼夜不停地猜数字,所以它的安全是靠源源不断的电力买来的——多到相当于一个国家的用电量。权益证明根本不跑那场竞赛。一个验证者大多时候不过是一台普通电脑,核对区块、签署投票,耗电极少。从前者切换到后者,可以把一个网络的能耗削减九成九以上,同时守住那个核心承诺:攻击这条链的代价,必须高于它有可能赚到的一切。
所以这个思维模型很短。锁一笔钱来加入。按你权益的比例被选中去提议或见证。守规则,就稳稳赚一份手续费;可被证明地破坏规则,就眼看着自己的押金被罚没。诚实有回报,不诚实是自毁,而要把这一切执行起来,不需要任何中央权威。如今两台伟大的共识引擎都已尽收眼底,接下来的几篇会转向这些链实际被拿来建造的是什么。