以太坊共识之 casper 笔记

字数 2139阅读 566
image

看了 ethfans 上所有 casper 标签的文章,官网的一些中英文文档,依然没太搞明白 casper。以下是摘录。

为权益证明做的所有研究都指向一个重要问题:在不耗尽物质稀缺资源的情况下,我们可以达到工作量证明(PoW)的安全级别吗?这个问题可以转化为:PoS的投票权以链上货币计价而不是计算力计价。区块链的POS共识问题比可扩展性更被广泛讨论,运行PoW挖矿的高开销成本以及环境外部性方面存在的问题都刺激了大量资源涌入PoS安全研究。

目前区块链上最可靠的共识算法是 PoW,但 PoW 消耗大量的自然资源,业界很多人在研究新的共识算法,有没有可能在不消耗物理资源的情况,让区块链中的节点达成共识,PoS(Proof of Stake)是其中之一。

Casper是一种基于保证金的经济激励共识协议(security-deposit based economic consensus protocol),是以太坊的下一代共识算法。以太坊开发者 2014 年就开始研究 PoS,但至今还没有上线。PoS 在公链上的应用面临哪些挑战?

远程攻击(long range attack)

远程攻击指的是,区块验证者在退回保证金后,从历史上的某个区块重写区块,由于验证者已经没有保证金,也就不能对它做出惩罚。casper 的方案:要求验证者当前必须是被绑定的,只相信当前有保证金的验证节点。解除绑定保证金必须要经过一个”解冻”期,比如四个月,用以实现“同步性”前提(即延迟的消息)。禁止在N个块之前恢复,其中 N 是保证金的长度。这个规则使任何长程分杈无效。可选择的将验证者集存放在PoW的链上

只有当验证节点缴纳保证金存款的时候,它签署的承诺才有意义。也就是说,当这笔保证金被取出之后,这些节点的签名将不再有意义。也就是说,我为什么要在你取出保证金之后继续信任你?

这个限制通过要求所有人用当前信息鉴别共识解决了“远程攻击(long range attack)”问题。忽视从那些当前没有保证金存款的节点发出的共识信息,能够解决或规避长程攻击问题。

无利害关系(nothing at stake)

“无利害关系”问题指的是,权益证明机制中的矿工最佳的策略是在所有的叉上进行挖矿,因为签名的制造非常的便宜。

保证金的引入解决了"nothing at stake",也就是经典POS协议中做坏事的代价很低的问题。

剑手协议

剑手(Slasher)协议想法是这样的:如果你在同一个层级的分叉上同时签署了两份协议,那么你就会失去你所能得到的区块奖励。

如果一个验证人作出了任何Casper认为“无效”的事情,他的保证金将被罚没,出块和参与共识的权利也会被取消。将保证金加入剑手(Slasher)协议意味着无利害关系问题被正式解决。

贿赂行为攻击者模型

在贿赂式攻击模型出现后,问题将变成“收买现有节点以达到预期结果的成本是什么?”

使用安全保证金本身来给区块链设置检查点,用权益证明检查点替换开发人员设置的检查点。客户端可以使用这些检查点的哈希值来验证存款列表是否发生过更改。这些检查点将在每 X 个块后发生,并且高度在 N * X 处的块的“检查点”将在高度(N + 1)* X 处开始检查(通过它们“最长链”的共享尾端,给予它们时间去共识),在这个过程中将需要绝对多数的绑定权益,因此在同一高度存在的两个有效检查点将肯定会触发惩罚条件。这种机制严重依赖于同步性假设。

寡头垄断(卡特尔形式)

"我开始探寻一条设计权益证明协议的道路,能在形成卡特尔后仍稳健发展的权益证明协议。" 在这样一个协议中,当验证器出现缺失的(被屏蔽)情况时,卡特尔就必须被惩罚。任何一个相容性偏好的传统共识协议中 67% 绑定币组成的卡特尔也因为类似的直接激励,从而屏蔽那些非卡特尔的一方;同时,这些协议中 34% 的一方可以通过否决区块(通过阻止最终共识)来屏蔽交易。比如说Cosmos (Tendermint)和Polkadot。

减少集中化

为了达成共识,PoS 权益证明减轻了规模经济的影响。在 PoW 工作量证明中,我们已经看到,为保护网络安全,相对集中的矿池(例如 AntPool)比规模小的更受到信任。大矿池可以通过(1)在较大的运营中摊销固定成本,(2)通过运营较大的实体来提高议价能力,来降低其技术和运营基础设施(如数据中心成本,电力成本,人员成本)的单位成本。

在 POS 权益证明的情况下,一美元就是一美元。这样的好处是,你不能通过汇集在一起,使得一美元值得更多。您也不能开发或购买专用集成电路(ASIC),从而在技术上占有优势。所以,PoS 不同于 PoW 挖矿收入的累计分配方式,采用了比例分配。(成熟的去中心化的声誉/身份管理服务为按比例分配收益成为可能)。

FFG vs CBC

友好的终结工具 Casper(“FFG”)—— 又名“Vitalik's Casper” —— 是一种混合 PoW/PoS 的共识机制,它是以太坊第一个 PoS 权益证明的候选方法。具体地说,FFG 在工作量证明(如以太的 ethash PoW 链)的基础上,使用了权益证明。块链继续用 ethash PoW 算法增加区块,但是每50个块有一个 PoS “检查点”,通过网络验证者来评估区块的最终有效性(Finality)。最终有效性(Finality),指的是一种特殊的操作被执行,永远地记录在历史区块上,那之前的数据不能被修改。

使用正确的建设(“CBC”)—— 又称“Vlad's Casper” —— 与传统协议设计的方式不同:(1)协议在开始阶段是部分确定的(2)其余部分协议以证明能够满足所需/必需属性的方式得到(通常协议被完全定义,然后被测试以满足所述属性)。在这种情况下,得出完整协议的一种方法是实现所预计的安全性 (一个理想的对手) ,或者提出合理估计的错误的例外,或列举潜在的未来错误估计。更具体地说,Vlad 的工作侧重于设计协议,扩展单个节点对安全性估计的局限视角,以实现共识安全性。

总结:权益证明比工作量证明复杂的多,面临更多的挑战和不确定。POW 依然是最简单可靠的共识算法。

参考
引介 | 友善的小精灵 Casper
干货 | 理解 Serenity,Part-2:Casper
干货 | Ethereum Casper 101 包含很多扩展阅读
干货 | Casper 机制的历史起源:第一篇
ethfans casper 系列文章
What is Ethereum Casper Protocol?

推荐阅读更多精彩内容