从PoW到PoS:以太坊的进化之路

转载
2131 天前
14024
星球日报

来源:星球日报   作者:吴盐


WanChain 全球副总裁李尼认为,PoS 的以太坊比 DPoS 机制更加民主,更加去中心化。如果它被证明比 PoW 有很大优势,可能很多新项目就会直接也会采用 Fork 这个方式转成 PoS。

“另一方面,以太坊实现 PoS 后, tps 会大大提高,这样会使一些项目从 EOS、波场转身,重新拥抱以太坊怀抱。”李尼也预测,但以太坊的出块速度,不一定有 EOS 21 个超级节点那么高效。

而以太坊黄皮书翻译者杨镇认为,以太坊共识机制的转换,相当于主网扩容,主要解决 tps 问题,现在做的这个事有点骑虎难下:

“如果考虑应用场景,需要高交互,要求处理时间,是不是一定把所有的计算步骤都在主网上做才可以?”

“之前大家就有过焦点争论,二层网络扩展上,把大量有交易要求的计算放在一个单独的二层网络上去做这个事情,过程验证放在主网证明上就可以了。”

“我个人觉得,以太坊花这么长时间做这个事情,有点不值。”

Casper 最初的设计

探讨任何一条公链,无法绕开共识算法这个核心概念。2013 年,PoS 算法并没有被写进以太坊白皮书。

“尽管比特币区块链模型非常简陋,但是实践证明它已经足够好用了,在未来五年,它将成为全世界两百个以上的货币和协议的基石。”

这是出自以太坊白皮书的一段话,以太坊从最开始就采用了比特币区块链 PoW 工作量证明机制。

比特币的工作量证明(Proof of Work)是通过消耗大量算力寻找合理的随机数生成区块验证。

在 Vitalik 看来,PoW 不仅“交通”拥堵、浪费能源,而且逐渐迈向了中心化道路。

因为随着挖矿难度的增大,ASIC 专业矿机应用而生,ASIC 专业矿机的出现,造成了算力垄断的局面。

PoS —— 权益证明,是根据每个节点的代币持有量与持有时间之积来决定记账权的机制。举例来说,如果你本金与时间之积越大,你就越有优先记账权,记账后乘积被销毁,这个过程被称作“币天销毁”。

相比于 PoW 的算力证明,PoS 机制可以有效减小能源消耗、缩短共识时间、避免算力中心化矿池“作恶”。

虽然在以太坊之前已经有 PPCoin 使用 PoS 这样的先例,但当时 PoS 的研究和实现都还很不成熟。阿剑认为“PPCoin 运行过程中出现了很多问题,比如‘理性分叉’问题(也被称为‘无利益相关’问题)。当时以太坊研究者们还没有找到一种足够安全的 PoS 机制。”

Vitalik Buterin 在《Casper 的过去、现在和未来》一文中曾提到:“以太坊的权益证明研究开始于 2014 年 1 月,是从‘剑手协议’开始的。” 

Casper(security-deposit based economic consensus protocol)即以太坊的 PoS 股权证明协议。Casper 的共识协议可以通过对保证金的直接控制来约束验证人的行为,这是与经典 PoS 股权证明的不同之处。

2014 年 4 月,Vlad Zamfir 以志愿者身份参与以太坊的开发。根据 Vlad 的说法,Vitalik 也是在那一年的维也纳比特币峰会上和他提出“剑手协议”这个概念。

“如果你在同一个层级的分叉上同时签署了两份协议,那么你就会失去你所能得到的区块奖励。”这是 Vitalik 为了解决无利害关系(nothing at stake)时提出的想法。

后来,Vlad 正式加入以太坊的开发,并在“剑手协议”的基础上指出“让验证者存储保证金,而且数额要比奖励大很多,以此驱逐贿赂攻击”。

当时,Vitalik 和 Vlad 正着手解决贿赂攻击问题(没有保证金存款的 PoS 协议很容易被低成本贿赂给击败)。

2015 年初,Vlad 遇到了一个名为 Matthew Wampler-Doty 的人,Matthew 和 Vlad 提到了保证金的概念:

“在未来将会产生一个持有多于 2/3 的安全存款保证金的 Tendermint 验证者卡特尔(垄断联盟),因为构建最终的区块并不需要其余验证者的参与(这些‘非卡特尔验证者’只持有少于 1/3 的安全存款保证金)。这些少于 1/3 的节点将被屏蔽,以至最终被移除出验证者名单。一组新的持有多于 2/3(现在总量会少一点)的安全存款保证金集卡特尔将随之产生,并且这一过程将会一直持续运作到仅剩(最多)两个验证者存在。”

Vlad 醍醐灌顶,着手研究“卡特尔验证”,并将这一理念加入到了“剑手协议”当中,这就是 Casper 最初的设计:剑手协议+保证金。

2015 年 3 月,以太坊开发者 Vinay Gupta 在博文中写下了以太坊的四个发展阶段:Frontier(前沿),以太坊启动;Homestead(家园),从 alpha 走向 beta 版;Metropolis(大都会),开发 Mist 和用户交互界面并提升用户体验(当时的预期);Serenity(宁静),实现权益证明。 

向 PoS 机制迈进

以太坊目前有两个开发团队,一个负责当前以太坊(以太坊 1.x 版本)的开发和维护,一个负责以太坊 2.0 的开发。君士坦丁堡分叉则停留在以太坊 1.x 版本范围的升级。

以太坊 2.0 ,是相对于现阶段的以太坊而言。2.0 将从宁静( Serenity)计划开启,向 PoS 股权证明机制迈进。

在上述文中提到的 Casper PoS 机制中,Casper 将采用两个版本:Vitalik Buterin 版的 Casper FFG 混合证明和 Vlad Zamfir 版的纯权益证明 Casper CBC 。

根据《ETH 2.0 工程指南》的作者 James Prestwich 的阐述,以太坊 2.0 测试网预计在今年第一季度推出。

以太坊 2.0 初期,采用 Casper FFG 机制运行和出块。彼时,信标链(beacon chain)将与以太坊 1.x 互为镜像关系,信标链为侧链,但不具有任何功能,以太坊 1.x 为主链,按照原有的 PoW 机制出块。

EthFans 编辑阿剑告诉 Odaily星球日报:“用户在 PoW 链上将以太币锁进相关的合约就可以获得参与信标链的验证者资格,并得到 PoS 奖励,但在信标链上新的以太币无法退回到 PoW 主链上。”

在信标链分片阶段,信标链将产生 1024 个分片,每个分片有一个地址。Casper FFG 信标链采用二次随机选举的方式完成出块验证并防止验证者作恶。

验证者需要向分片地址投入 32 个 新以太币作为押金。信标链每隔 64 个块(1 分钟出 10 个块)会随机选出 128 名验证者作为待定委员,再由信标链在从 128 名待定委员中随机选择出一定数量的委员组成委员会。

被选中的委员可以在各自的区块上进行验证产生新的区块,但委员的“任职”期限仅为 6.4 分钟,6.4 分钟后的区块控制者将在下一届的新委会中诞生。

以太坊的 PoS 权益证明,虽然本质上属于链下治理,但处理细节上则以技术手段来强化链上治理。

以太坊黄皮书翻译者杨镇认为,相比于 DPoS 股份授权证明,以太坊的 PoS 想做成一个更平等的投票方式,这和 EOS 有很大差别,“我相信一句话,人性是经不起考验的。”

但原定于 1 月 16 日的君士坦丁堡升级与 Casper FFG、Casper CBC 均没有半毛钱关系。

值得注意的是,在君士坦丁堡的五个 EIP 升级协议中,EIP-1234 是以太坊向 PoS 机制转换过程中采用“温水煮青蛙”式的既定策略。

该协议由 Afri Schoedon 于 2018 年 7 月19 日提出,协议建议将难度炸弹延迟 12 个月,并将矿工奖励由 3 ETH 减少到 2 ETH。

该提案在去年 8 月 31 日以太坊开发人员视频会议上被通过,并在以太坊君士坦丁堡硬分叉时执行。

以太坊的挖矿难度随挖矿时间成指数增长,即每产出 10 万个块挖矿难度指数扩大一倍。根据Hsiao-Wei Wang 的以太坊 2.0 构架图不难推测,难度炸弹预计推迟到以太坊 2.0 阶段。


以太坊 2.0 构架图 来自 Hsiao-Wei Wang

随着挖矿奖励的减少和难度炸弹的影响,信标链在各方利益者取得共识的时候,出块到足够长,信标链会变成主链,以太坊 1.x 变为侧链。此时,信标链将分片成 Shard chain。

探索中的曲折

2015~2016 年,Vitalik 和 Vlad 对 PoS 的研究依然处于摸索阶段,而可扩展性研究中的“渔夫两难”和“投注共识”问题又花掉了以太坊开发团队大部分时间。

Vitalik 后来总结:“我们在解决 PoS、可扩展性中的一些核心问题上遭遇了一系列失败,Vlad 悄悄地暂停了他在 Casper CBC 中的所有工作。”

The DAO 事件、DoS 攻击,更让以太坊团队在长达 6 个月的时间里几乎无暇顾及之前的研究方向。

直到 2017 年,Vitalik 和 Vlad 的 Casper 研究出现了转机。先是以太坊开发了一个名为最小罚没的协议:一旦在某轮中某区块获得 2/3 的验证者同意,该区块的父块便被敲定,最小罚没条件是 Casper FGG 的核心思想。

FFG 是以太坊在过渡阶段的 PoW+PoS 混合共识机制。在 FFG 最初的设计中,Vitalik 将一个权益证明协议叠加在以太坊的工作量证明协议上,即区块仍将通过工作量证明来挖出,但每 50 个区块中将有一个权益证明检查点( PoS 块 )来评估确定性(Finality)。

Vitalik 兴奋地讲到:“这会是一种可以让我们快速转向混合共识的机制,并且对现有区块链造成的冲击也最小,然后理论上我们将有可能升级为完全的权益证明。”

为此,以太坊开发团队还做了一个 Python 测试客户端,用不同的 VPS、服务器和电脑通信来做测试。

Vlad 在 2017 年也发表了 Casper CBC 的论文。与 FFG 不同的是,CBC 强调"建构中修正",协议规定:

你正式地但只是部分地指定协议。

定义该协议必须指定的属性。

从满足所有它被规定去指明的属性中推导出该协议。

CBC 协议中有一个叫做预估安全预言机,在设定提出一个合理估计的错误的例外情况,列出所有在未来可能发生的错误,在给定区间内,其正确性是由其建构过程来保证。CBC 属于纯 PoS 股权证明,预计将在以太坊 3.0 中实现。

延迟“炸弹难度”也是在这个时候开始被提出。2017 年 6 月 21 日,EIP - 649 协议提出在君士坦丁堡升级中延迟炸弹难度,将平均阻塞时间减少到15秒以下,同时区块奖励从 5 ETH 减少到 3 ETH,为以太坊的过渡赢取时间。

2018 年,已经有多个以太坊开发团队各自尝试分片技术的实现。Vitalik 认为:

“在分片这一边,最终变得越来越清楚的是:让分片系统的核心放在 PoS 链上会给我们带来更高的效率。”

“变成 PoW 链上的一个合约,我们就不得不处理 EVM 的开销,应付 Gas 机制,应付不可预测的 PoW 区块时间;PoS + 分片 可以带来更快的出块时间等一系列好处。”

这时候“权益证明协议叠加在以太坊的工作量证明协议上”被放弃,取而代之的就是以太坊 2.0 的 Casper PoS + Sharding(分片)技术。

持续的争议

Vitalik 个人博客简介倒数第五行上写着: Religion: crypt。

早在 2014 年,Vitalik 就说过:“股权证明仍然是加密货币领域最具争议的讨论之一。”时至今日,不同的人,对共识机制问题依然有不同的看法。

“减少了能源的损耗,它不再需要通过挖矿这个方式,从理论上来说, PoS 会大大的降低中心化风险。”李尼认为,PoS 比 PoW 先进很多。

矿宝负责人刘杰则认为,PoW 没什么不好,很多人觉得是在浪费电费,我的理解正相反:“矿工的电费实际上是靠经济的作用来提高 PoW 数字资产的安全性。那么大的资产,才需要那么多的电费来维护它的安全和运转。”

PoW 机制造成了寡头垄断,PoS 则属于资本家的游戏。穷者越穷,富者恒富,即使以太坊摆脱了寡头垄断,却难免再次陷入富者恒富的鸿沟。无论链上治理还是链下治理,共识机制的规则和程序都由人来制定。

共识机制问题,业内争论不休,如果上升到人类的社会治理层面,无非你管的多好,还是你管的少好。安全一定的前提下,弱中心化管理,必然带来效率问题。

原力创始人孤矢则告诉 Odaily星球日报:“目前,不论 DPoS 还是 PoS ,从安全角度来看,都没有 PoW 完美。PoW 唯一不完美的地方是太去中心化了,社区治理不好,推动很慢。但没有办法,安全和去中心化是非此即彼的问题,比如说我们团队干活的时候叫 PoW ,开会的时候就叫 PoS ,因为CEO说了算。 ”

“PoS 存在就一个问题,一直没做出来。(PoW)以太坊已经喊了一两年 PoS 了,都没做出来,代码上也没什么。这次一分叉升级啥都没改吗?不就是调了几个 Bug,然后优化了几个数据嘛。”

1 月 18 日晚间,以太坊开发团队在电话会议上就 EIP-1283 协议漏洞问题,再次将君士坦丁堡升级事件推迟至 2 月 27 日 16:56,区块高度为 7280000。

如果以太坊顺利升级成功,在宁静来临之前,难度炸弹问题还能留给以太坊开发团队多少时间?

阿剑认为:“这个很难说,也许年中,也许年底。这个过程需要解决的问题还真不少,首先是确定信标链上的分叉选择规则,然后实现 PoW 链上的质押合约等。”

以太坊如果进化到 2.0 ,最终解决的问题无外乎三点:

(1)实现强健的 PoS 共识机制;

(2)分片;

(3)将 EVM 转成 EWASM。

总结起来很简单:一个可以稳定高效运行的去中心化智能合约平台。好与不好,先做出来一个再说。