airswap项目|对 Casper 一脸懵逼? V 神连发 75 条推文为你一一道来
今早,V 神在其推特上突然宣布要刷屏,就 Casper 的研究历史和当前状态,包括 FFG 和 CBC 的斗争以及设计机制等一系列问题进行解答。以下为推特全文:
01
今天,我将发布大量推文来阐述以太坊 Casper 研究项目的历史及现状。内容包括 Casper FFG 项目和 Casper CBC 项目的竞争、从混合状态到完全切换状态、随机机制的作用、机制设计问题等。
02
以太坊早在 2014 年 1 月就已经启动了权益证明机制的研究,具体内容可见:https://blog.ethereum.org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/。 尽管这一算法不是最优的,但确实引入了许多重要的思路,尤其是通过惩罚机制成功解决无利害问题,关于无利害问题见此:https://ethereum.stackexchange.com/questions/2402/what-exactly-is-the-nothing-at-stake-problem
03
早期 Slasher 的惩罚非常轻,只是对签名奖励进行没收。Vlad Zamfir 在 2014 年中加入研究,随后其便提出让验证者抵押保证金的要求,这些保证金的额度远高于验证者所能获得的奖励。一旦验证者作恶,那么这些保证金将被没收。
04
关于 Casper 的研究历史,Vlad Zamfir 也曾在其 Medium 中书写过相关回忆,具体内容可参见:https://medium.com/@Vlad_Zamfir/the-history-of-casper-part-1-59233819c9a9
05
2014 年年底,我们花费了大量时间来处理「长程攻击」的问题。所谓长程攻击,是指攻击者将抵押在主链上的保证金撤回,并据此创建一条比主链拥有更多签名的替代「攻击链」,从而欺骗客户端切换到该链上。
06
如果攻击链从主链上分叉的时间点距今较近的话,那么问题不大。因为如果验证者同时为两条冲突的链签署两条冲突的信息的话,那么这一结果可以作为验证者作恶的证据从而罚没其保证金。
07
但是,如果分歧出现的时间点过于久远(即长程攻击),那么攻击者就有可能取出保证金并全身而退。
08
最终,我们认为长程攻击——正如 PoW 的倡导者所言,具体内容见此:https://download.wpsoftware.net/bitcoin/pos.pdf, 这是不可避免的,但我们没有接受这些倡导者的结论。
09
我们意识到,我们可以通过引入额外的安全假设来处理长程攻击:让客户端每四个月至少登录一次(保证金需要四个月才能撤出),并且客户端只需拒绝跨度大于四个月的数据回滚就行。
10
这种做法对于 PoW 支持者来说简直就是一种诅咒,因为它感觉像是一种信任假设:当你第一次同步时,你就需要从某些可信的来源来获取区块链信息。
11
但对我们这些主观主义者来说,这并不是什么大不了的事。 你只需要某些可靠的来源来告诉你区块链的共识规则到底是什么(并且不要忘记更新软件),因此这一 PoS 假设所需的额外信任并不多。
12
这是 Vlad 的复述。https://medium.com/@Vlad_Zamfir/the-history-of-casper-chapter-2-8e09b9d3b780
13
既然我们已经解决了保证金和惩罚的问题,那么我们必须明确保证金和惩罚的含义。我们清楚我们需要一个可达成「经济最终化」的属性。
14
也就是说,验证者将会遵守这样的方式在区块上进行签名:一旦某个区块被「最终化」,其余冲突区块在没有大部分验证者签名的情况下无法被敲定。一旦验证者对与其此前签署的信息相矛盾的信息进行签名,那么区块链会检测出来并对其进行惩罚。
15
我把大量精力偏离在我称之为「通过打赌达成共识」的方向上,但最终一无所获。关于「通过打赌达成共识」的内容,请参见:https://blog.ethereum.org/2015/12/28/understanding-serenity-part-2-casper/。
16、17
通过打赌达成共识是一种有趣的构造,验证者判断哪个区块会被最终化并对其下注,而赌注本身决定了共识支持哪条链。
18
在初始打赌时,验证者下注的几率会很低,但是当验证者看到大家对某个区块越来越有信心的时候,每个人下注的几率都会呈指数级增长,直到最后他们把所有的保证金都押在了该区块上。这就是「最终化」。
19
与此同时,Vlad 开始投入机制设计的研究工作,尤其是着眼于增强 Casper 对寡头垄断的抵御能力。我们还开始研究受传统拜占庭容错理论启发的共识算法,比如 Tendermint。
20
Vlad 认为,传统的 BFT 是站不住脚的(他尤其不喜欢硬性阈值,比如 PBFT 和 Tendermint 的 2/3)。他决定用其称之为「建构修正(Correct by Construction,CBC)」的方法,从零开始,有效地改造 BFT 理论。
21
这是 Vlad 对 CBC 的阐述:https://medium.com/@Vlad_Zamfir/the-history-of-casper-chapter-5-8652959cef58
22
建构修正的理念与传统的 BFT 大不相同,其「最终化」是完全主观的。
23
在 CBC 理念中,验证者会签署消息,但如果他们签署的消息与之前的消息冲突的话,他们将需要提供一份「辩词」来证明,在相关意义上,他们投票支持的新事物比他们支持的旧事物获得更多支持,因此他们有权转向支持新事物。
24
为了检测最终化结果,客户端需要寻找一种信息模式以证明大多数验证者都可靠地投票给 B 区块——除非有很大一部分的验证者「非法」切换投票,否则他们必须支持 B 区块。
25
例如,假设每个人都投票给 B,那么每个人都要对一个包含每个人给 B 的投票的区块进行投票,以证明他们支持 B 并且知道其他人也都支持 B,所以他们没有合法的理由去支持 B 以外的区块。
26
我最终放弃了通过打赌达成共识的想法,因为这种方法从根本上来说似乎风险太大。因此,我转而尝试理解像 PBFT 这样的算法到底是如何工作的。这确实花费了我一些时间,但几个月后我弄明白了。
27
我设法简化了 PBFT,详见:http://pmg.csail.mit.edu/papers/osdi99.pdf 并将其转换为区块链场景。我称之为四个「削减条件」,即规定哪些消息组合是矛盾且非法的一系列规则,详见:https://medium.com/@VitalikButerin/minimal-slashing-conditions-20f0b500fc6c
28、29
我定义了一个确定区块何时可被看作「最终化」的规则,并证明了关键的「安全性」和「貌似合理的」活性性质:(i) 某个区块一旦最终化,那么只有在大于等于 1/3 验证者违反削减条件的情况下,冲突区块才有可能最终化;(ii) 一旦某个区块最终化,那么 2/3 的诚实验证者可以携手敲定新的区块。因此,只要网络中存在超过 2/3 的诚实验证者,那么这个算法不存在「食言」或者「死锁」的状况。
30
最终,我将最小削减条件从 4 个简化为 2 个,从而导出 Casper -友好的最终化工具(Casper the Friendly Finality Gadget,FFG)版本。该版本被设计成可用于任何 PoW、PoS 或其它区块链之上的覆盖层,以添加最终化保证。
31
最终性是一个非常重要的改进:一旦某个区块被最终敲定,即便是发生网络延迟,它都是安全的(不像 PoW 中的确认机制)。与此同时,回滚区块需要大于等于 1/3 的验证者实施欺诈,而欺诈的后果是,系统会检测出他们作恶并罚没相关人员的保证金。
32
因此,回滚最终性的成本可能高达数十亿美元。Casper CBC 和 Casper FFG 尽管在技术上有所不同,但都实现了这一点。
33、34
请注意,尽管 Casper CBC 和 Casper FFG 的原理不同,但两者都是需要应用于现有的分叉选择规则之上的「覆盖层」。
35
Vlad 最初对分叉选择规则的偏好是「由最新消息驱动的 GHOST」,这是将 GHOST 朝着权益证明修改后的版本(详见 [https://eprint.iacr.org/2013/881.pdf),](https://eprint.iacr.org/2013/881.pdf),而我最初是希望从混合 PoS 开始,使用工作量证明作为基本的分叉选择规则。) 而我最初是希望从混合 PoS 开始,使用工作量证明作为基本的分叉选择规则。
36
在 Casper FFG 的初始版本中,工作量证明会逐块「运行」区块链,而权益证明则紧随其后以使区块最终化。Casper CBC 从一开始就完全由权益证明主导。
37
这时,我和 Vlad 在共识激励理论上提出了各自的观点。
38
在此,我们需要明确「单一可归因错误」和「非单一可归因错误」之间的区别,前者意味着你会知道谁该为此负责,并对其施以惩罚,后者则意味着犯错的可能是多个团体中的一个。
39
一个典型的「非单一可归因错误」案例是离线与审查制度,也可称之为「说-听错误等价(speaker-listener fault equivalence)」。
40
惩罚单一可归因错误 (比如 Casper FFG 的削减条件) 很简单,但惩罚非单一可归因错误非常困难。
41
如果区块停止最终化进程,你又无法判断到底是因为少数人离线还是大多数人在审查少数人所导致的,那你该怎么办 ?
42
关于这个问题,当时基本上有三种观点:(i) 对双方进行惩罚,但力度较轻;(ii) 对双方都进行严厉惩罚(Vlad 偏好这种做法);(iii) 把链条分叉成两部分,只惩罚每条链条上的一方,并让市场决定哪条链条更有价值(我更偏好这一做法)。
43
在这一方面,我的详细阐述可见:https://vitalik.ca/general/2017/07/16/triangle_of_harm.html。
V 神剩下的 32 条推文后续将继续更新。
看了这么多的解释,各位对 Casper 有没有一个更清晰的认识呢?欢迎在下方留言和大家讨论!
链闻 ChainNews:提供每日不可或缺的区块链新闻。
原文作者:Unitimes
文章来源:Unitimes 微信号
版权声明:文章为作者独立观点,不代表 链闻 ChainNews 立场。
- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。

链闻看天下



