总的来说,我认为人们没有意识到以太坊路线图在过去四个月中发生了多大的变化。

尤其是很少有人注意到按照以太坊2.0当前的计划,其自身没有提供任何有用的扩容性。

在之前的计划中,向以太坊2.0过渡是解决以太坊迫切扩容性问题的全部希望。按照原本的路线,Eth2 计划通过阶段1的分片数据/区块以及阶段2的分片执行和分片状态 (甚至是完全无状态化) 来提供扩容性。通过在基础层同时实现这三点,以太坊协议层才能真正意义上实现扩容性。

当前的 Eth2 计划仅对数据 (区块) 进行分片。基于此是完全无法改善当前情况的。

但是我们依靠核心协议外的 Layer 2 rollups 来提供状态和执行分片的同等效果。而这一变化发生在 Vitalik 发布他对以 rollups 为中心的以太坊的构想之后。(中文版《以 rollup 为中心的以太坊路线图》)

Rollups 就像以太坊引擎的涡轮增压器。EVM 之所以动力不足是因为它缺乏作为燃料的数据。在某种程度上来说,这是为了避免状态膨胀而有意为之。Rollups 就像涡轮,对燃料-空气混合物进行压缩 (即数据),并施加压力使其进入 EVM。Rollups 还负责协议之外的状态。

但是 rollups 完全独立于 Eth2。Rollups 目前已经基于 Eth1 进行开发并且运行,并且已经开始逐步实现其扩容性承诺。

那么 Eth2 在扩容性方面扮演了什么角色?当前的 Eth2 计划依赖于 rollups 的成功,否则将无法提供额外的扩容性。一旦可用的 rollup 生态就位,Eth2 的性能将提升几个数量级。Rollup 涡轮增压器在 Eth1 上同样适用,但仍然受限于燃料管路。Eth2 的数据分片铺设了 64 条燃料管路,每一条的容量都远大于当前的 Eth1 区块链。也就是说 Eth2 会为 Rollups 涡轮增压器提供支持。

新路线图的几点明显优势:

➤ Rollups 使得向 PoS 的过渡 (即eth1与eth2合并) 与分片解耦,我们可以通过“可执行信标链”的方式更快地推进合并。这种设计将切换 PoS 对 dapps、工具和用户产生的影响降到最低。

➤ 我们可以选择分片和合并的优先顺序,如果哪个部分出现问题,可以降低风险。总的交付时间缩短了 (需要交付的内容减少)。

➤ Layer1 协议被大大简化。不需要再考虑跨分片交易等等。这些现在不是我们的问题了。总的来说是件好事。

但也存在一些令我顾虑的因素:

➤ Rollup 相关技术尚处于起步阶段,并不能保证它最终会成功。在最坏情况下,我们可能需要将“可执行分片”重新纳入Eth2。

译者注:对此 Vitalik 在 Reddit 上进行了以下回复

与 Rollup 技术相比,直接采用可执行分片这一扩容解决方案的研发与应用更加不成熟。特别是,如果要在多个分片上实现执行功能,我们需要:

完全无状态验证 (为了保证系统的安全性,验证者需要快速地重组,因此不能依赖验证者储存任意某个分片的状态)一个经济学适宜的区块提议模式 (前提是区块提议者可以选择分片,使得攻击者更容易在单个分片中控制区块提议并审查用户,我们必须想办法解决该问题)一个跨分片交易模型,该模型需符合经济学和适用 gas 机制一个更完备的托管证明策略 (proof of custody game) 以处理执行 (关于验证者的两难问题,其在计算上的问题要比数据严重得多。因此我们必须得防止所有验证者只投”赞成“票)

以上所有问题都是可以解决的,但同时解决这些问题比解决 rollup 的问题要难得多。当然 rollup 也有问题,但比可执行分片这一方案少得多 (可执行分片的解决方案离实现还很远)。在我首次发布《以 rollup 为中心的以太坊路线图》这篇文章的时候,已经有三个 ZK rollups 解决方案运行数月了。

➤ 以 rollup 为中心的世界:其中许多属于协议类型的事物都被剔除出协议,这在短期内会更加混乱。然而,独立于基础层的好处是能够迅速迭代,而市场的迫切需求最终会推动互操作性、工具等标准的应用。但这会是一段坎坷的道路。

➤ 便宜的 layer1 交易大概已经一去不复返了,而目前的 Eth2 设计并不会改善这一点。这个消息可能会令许多人感到惊讶和沮丧。

总之,我认为大家应该对上述内容心中有数。请对你中意的 rollup 开发者表示支持!

信标链

关于信标链最近没有什么大新闻。截至译文发布,有 91,829 名活跃验证者,验证者激活队列为 5,928。当前的队列长度为 6.5 天,前不久达到了21天,说明新质押存款速度开始慢了下来。不过现在已经有超过 300 万 ETH 被质押,价值 50 亿美元。

不过一直有一个迷思:Justin Drake 注意到有六名验证者已经在主网中自愿退出 (voluntary exits)。这有点出人意料。他们没有被罚没,但他们每个人都提交了自愿退出信息,因此他们不再作为活跃验证者。但是他们质押的 ETH 仍然处于锁定状态,直到 eth1 和 eth2 进行合并。

Afri 也发布了针对客户端的同步性能基准测试。(中文版《以太坊2.0主网客户端性能比较》) 这是很棒的工作,但不幸的是其主要参考参数是不正确的。Teku 完全不针对同步速度进行优化,因为在弱主观性的 PoS 环境中,极少数人会从创世开始同步。实际上,这么做也存在风险。对此可以看看 Meredith Baxter 的视频,解释了长程攻击相关问题。Teku 因此采取了即时快照同步的方式,使得用户可以在一分钟内完成同步并开始运行。这是更为可取的方式。但这一点并没有被纳入基准测试中。

罚没

唯一比较大的事件莫过于一连串的罚没事件。Staked.us 有 75 名验证者在 2 月 3 日被罚没,对此他们发布了一个事件声明。有些推文表示了对此次事件的同情,我并没有相似的感觉。两天后他们又有 17 名验证者被罚没,据我所知这至今尚未确认。还记得 Staked 在 12 月也有 16 名验证者被罚没,也没有公开承认。我本来打算在此处引述 Oscar Wilde,但老实说,这是需要严肃对待的事[1]。

此处是 Attestant 的文章,分析了一个架构合理的质押服务如何在零罚没风险的前提下维持尽可能高的运行时。

如果读者想了解更多关于罚没的背景,以及我们在客户端中的罚没保护措施,可以看看 Ethereum Cat Herders 的 Peep an EIP #22: EIP-3076。这个视频解释了客户端团队为了保证用户体验和安全性所采用的标准化罚没保护交换格式 (目前 Lighthouse 和 Teku 已经采用,Prysm 和 Nimbus 也即将支持)。最后十分钟还讨论了 Eth1–Eth2 合并 的可能路径。

HF1 升级

目前还有一条关于信标链此后升级命名规则的公开 issue。如果你有任何想法的话都可以参与![2] (计算机科学中的难事:缓存无效、命名以及差一错误)

我们在最近的开发者会议中对 HF1 升级中所提议包含的措施进行了讨论并达成一致。大部分内容很简单,但是其中包含了首次提出的两个事项:(1) 计算方式改变 tier 2;(译者注:原提议为将每个 epoch 进行的验证者集和惩罚计算更改为每 64 epoch 进行一次,并对 inactivity leak 进行了调整);(2) 提议在任一时间对活跃验证者的数量设置硬上限。我们同意采取第一项提议,但没有采取第二项 (目前基本上尚无定论,因为要达到提议的验证者上限至少需要一年)。文档已经对此进行了更新。

我们还同意对分叉选择规则进行两项更改,以减轻不同的理论攻击风险。Teku 团队的 Adrian 针对其中的"余额攻击防御"写了一篇文章,分析其如何在客户端中实现。

工具

Ethstaker 团队在 Twitch 上开启了 24/7 的客户端直播,旨在帮助新的以太坊2.0用户通过客户端日志辨别他们的客户端是否已经同步。光是看看也挺酷的。不幸的是,直播现在似乎已经下线了。但是它正常工作时会在四个信标链客户端以及 Geth 的控制板之间循环。

Infura 的 Eth2 API 目前已经公开测试。Pyrmont 测试网可用。

Nimbus 团队延长了他们 dashboard 挑战的提交时限。现在延长到了2月28号,最佳提交者的奖品高达 5000 美元。快来试试吧,Gafrana 非常好玩!

Jim McDonald 的 chaind 程序升级到 v0.2.0 版本,用以将 Eth2 的数据提取到 SQL 数据库中。

Jacek 的名为 ngui 的周末项目可用于探索 Nimbus 的 RPC API。

Bitfly 宣布他们出色的 Beaconcha.in 移动端程序现已开源。

Blst 库的审计已经完成。没有发现严重问题。有兴趣可以阅读完整报告。

最后,多项式承诺 (polynomial commitments) 最近很火。Alex Stokes正在使用 Rust 语言建立一个 KZG commitment 库。同时,我也在用 C 语言做同样的事。(因为我很硬核。我非常喜欢对 segmentation violations 进行debug) 我们都在做 Blst 相关的事。