主页 > imtoken官方 > 以太坊 2.0 路线图 | 以太坊的未来会是什么样子

以太坊 2.0 路线图 | 以太坊的未来会是什么样子

imtoken官方 2023-03-16 05:17:42

本文描述了以太坊 2.0 背后的设计理念。

最近有很多文章讨论以太坊 2.0 的路线图、研究建议和现状。 但是没有关于 2.0 背后的设计理念和不变量的公开文章。 明确不变量对协调非常有帮助,并使开发人员在哲学上保持一致。 本文将解释2.0中的一些设计、背景以及对未来协议的影响。

历史发展

以太坊诞生后,技术人员正在尝试将 PoW 转换为 PoS。 Vitalik Buterin 当时正在探索可行的解决方案,以防 PoS 出现漏洞,并且比 PoW 具有更高的安全性。 他和以太坊研究团队设计了一个 slasher 机制来惩罚 PoS 犯罪者削减他们的存款。

1568710054427742.png

数学家 Vlad Zamfir 随后加入了 slasher 项目,并在 2014 年的大部分时间专注于解决 PoS 远程攻击。 当受到远程攻击时,攻击者可以从头开始创建一条比当前规范链更长的完整链,这使得网络的其余节点信任新的规范状态。 这在 PoW 中几乎不可能发生,因为发起攻击需要大量的算力,而 PoS 不依赖算力,所以发起远程攻击会导致区块链崩溃。

Vitalik 和 Vlad 一致认为,对于远程攻击,严格禁止客户端同步链超过某个检查点。 因此,新节点不需要从创世块开始同步链,只需要从网络中其他节点一致确认的最新“检查点”开始同步,即当新节点加入网络时,旧节点节点可以信任。 这种现象后来被称为 PoS 主观性弱化。 当新节点加入时,他们会主观上信任“最终”、“不可逆”的区块。

在开发 Slasher 时,Vitalik 和以太坊基金会 Virgil Giffith 正忙于编写 ArXiV 的初始版本的 Casper 权益证明白皮书。 从 2014 年到 2017 年以太坊公司出的以太零,以太坊一直在尝试从 PoW 向 PoS 转型。 同时,以太坊也在努力实现分片技术,扩展区块链。 2018 年 3 月,在台北研讨会之后,以太坊研究团队提出将 Casper Proof of Stake 和分片技术合并到 Ethereum Slasher,即以太坊 2.0。

为什么是以太坊 2.0?

本文旨在解释核心问题背后的设计理念:“为什么要使用以太坊 2.0?” 通过硬分叉检查现有系统的共识协议和数据完整性并不容易,放弃以太坊 1.0 从头开始​​构建新系统不是更简单吗? 我们面临的最大挑战是需要社区参与2.0的建设,并明确过渡到以太坊2.0后有巨大的收益和需求。

虽然范式转变伴随着巨大的责任,但现在是这样做的最佳时机。 不管你喜不喜欢,加密仍处于起步阶段,在这个阶段做出的决定可能会对未来几年的加密采用产生深远影响。 该团队已为过渡到 PoS 和以太坊应用程序扩展做好充分准备。

挑战

纯粹的第 1 层扩展会在很大程度上牺牲安全性,而分片区块链会阻止全局交易验证(就像比特币和以太坊正在使用的那样)。 关键的挑战是:如何在不牺牲去中心化或安全性的情况下进行扩展? 许多竞争对手使用集中式方法。 以太坊选择将网络状态划分为 1024 个分片,代表一组同质的区块链,每个分片由称为信标链的根链协调。 信标链运行 Casper Proof of Stake 协议,该协议没有委托权或中心化投票权。 每个节点只负责打包网络中的部分交易,并可以并行生成多个区块,从而使整个网络的吞吐量线性增长。 该解决方案的粗略规范回答了以下问题:

如果没有全局验证交易,网络中的安全配置文件将如何变化? 如何在筛选验证者时防止出现垄断情况? 如何设计激励措施以最大限度地提高数据利用率和参与度?

经过多年的研究、探索和协调权衡,以太坊最终选择了 PoS 共识算法。 间接验证全局交易,每个分片交易首先由分片验证器检查,然后提交到信标链上的检查点。 后者充当协调分片信息的“协调者”。

1568710941322188.png

不变的设计

协议设计的一个关键方面是了解协议将在哪些不变量下运行。 拥有一份不可协商的设计决策清单对于以太坊及其开发者社区来说至关重要。

我们可以将 Eth2 的核心分解为以下几个要点:

· 未经许可参与网络

Layer 1的范围应该简洁、抽象、紧凑

最大限度地表达协议,而不是假设它的未来用途——即符合以太坊的座右铭“我们没有未来”

• 网络应处于活动状态以有效地从灾难情况中恢复。

· 将协议复杂性与应用程序开发复杂性分开。

无需许可

Eth2 和其他“新一代”区块链之间的一个显着区别是如何确定共识参与。 Eth2 的唯一要求是持有 32 个 ETH 才能成为验证者。 没有代表,没有投票来筛选验证者,也没有决定谁可以参与的中央法律。 更重要的是,所有验证者在 Eth2 中都受到平等对待——硬上限为 32 ETH。 但是,任何人都可以拥有多个验证器实例。 简化的安全和共识协议。 从激励设计和形式化建模的角度来看,在投票区块时规定所有参与者拥有相同的权益是非常重要的。 1验证=32ETH作为质押,其他区块链采用中心化方案扩容,但对于以太坊,永远不会采用。

简洁,但最大程度地表达

Eth2 的目标是让核心定义简洁明了。 从根本上讲,以太坊是一个可扩展的、无需许可的平台,用于创建去中心化应用程序。

1568710991582329.png

应用逻辑就不用介绍了,以太坊类比就是一个Linux内核——它不依赖于操作系统的功能和应用场景,而是依赖于在内核上构建应用的开发者。

安全

Eth2 的 PoS 模型,称为 Casper the Friendly Finality Gadget,在一组保证高活跃度和网络参与度的激励机制下运行。 Eth2 扩展了 Casper 以利用它来保护分片区块链网络。 即利用链终止阈值的概念,保证Eth2的1024个分片与信标链共享同一个安全池。

PoS 的核心前提是验证者完成预期角色指定的任务获得奖励,偷懒则失去奖励,违背协议作恶将被严厉惩罚(slashed)。 前提虽然简短,但重点体现在细节上。 如果我们考虑单个验证者的行为以及整个验证者委员会的行为,Casper 经济学就会变得更加复杂。

一般来说,PoS 链的一个悬而未决的问题是什么时候惩罚以及根据行为的严重程度如何惩罚? 也就是说,我们需要找到一种综合性的惩罚措施,简明扼要地同时涵盖所有极端情况。 鉴于协议的操作取决于验证者行为和强大的运行时,可能存在诚实验证者无法执行的情况。 例如,停电、网络不稳定等,导致诚实的验证者下线,所以我们必须明确区分懒惰惩罚和作恶行为惩罚。

1568711017117087.png

Eth2 的部分设计理念是让破坏协议的攻击付出巨大的代价。 就像对其他链的 51% 攻击需要很高的代价一样。 攻击者逆向了协议的最后部分,这部分会清楚地暴露在所有人面前,社区可以协调软分叉来移除肇事者,使攻击无效。 当然,如果攻击成功而协调失败,如果攻击者的唯一目的是破坏系统并造成大规模破坏,系统的完整性就会受到损害。

PoS 系统的另一个主要限制是验证者的困境,以现象命名。 系统中的验证者是懒惰的,只是相信协议中的其他人已经认真完成了他们的工作,因此不会验证他们负责的事情。 除非有重大惩罚,否则验证者可以通过不履行职责来节省带宽和计算能力。 可以通过为网络中的数据丢失或错误签名添加重大惩罚和质询机制来减轻这种行为。

以太坊 2.0 的验证者激励如下:

验证者不活跃:二次泄漏

ETH2 依赖于网络中 2/3 诚实参与者的拜占庭容错阈值。 对不活动的惩罚也称为不活动泄漏。 如果超过 4 个周期仍未确认链的最终性,协议将严格控制验证者奖励。 也就是说,如果自链长时间确认最终性,最大奖励将降为 0。此时验证者需要表现良好,否则将面临惩罚。 惩罚的严重程度与链条最终确定后的时间成正比,以防止验证者下线。 验证者懒惰的时间越长,惩罚越重。 这种“secondary leak”惩罚对短期懒惰影响不大,但对长期懒惰影响更大。 罚款金额将被销毁,不会重新分配给诚实的验证者。

蓄意为恶:砍

最初的以太坊 PoS 提案是这样写的:Evil validators 将受到严厉惩罚,即大幅削减惩罚,通常是针对个别验证者,而不是串通验证者。 如果大多数验证者联手作恶,就会破坏网络。 根据拜占庭容错的保证,对作案者的惩罚=3×同期作案者的数量。 这有助于惩罚大型联盟的不当行为,并抑制恶意验证者池的增长。 也就是说,在网络中发起联合攻击,会损害攻击者的集体利益。 提倡报告机制,鼓励验证者发现其他非法攻击,并将削减的资金作为报告奖励。

验证者奖励

基于 Vitalik 的以太坊 slasher 设计原理以太坊公司出的以太零,他概述了每个时期(64 个区块)验证者基本奖励的 4 个具体组成部分:

1.检查指定的epoch checkpoint,奖励1/4

2.证明指定区块链头,奖励1/4

3. 证明快速打包入链,奖励1/4

4.证明指定了正确的分片区块,奖励1/4

该基础奖励根据正确参与验证者的数量获得额外奖励。 这种额外奖励用于激励验证者做正确的事情,推动集体诚实行为。 奖励发放时间表应该是一致的和直观的,增加更多的复杂性只会使系统容易出错并且从宏观经济角度更难理解。

将协议复杂性与应用程序复杂性分开

说 Eth2 路线图令人生畏是轻描淡写的说法。 它可能是最雄心勃勃的,具有吸收行业经验教训并优雅地创建解决扩展问题的可持续协议的长期计划。 关于分片会降低开发人员体验的事实已经有很多讨论,因为在内部剥离 Eth2 开发人员是极其困难的,我们有一个复杂的分片系统,需要彼此交互。 从表面上看,Eth2 令人望而生畏,并不清楚如何在项目中明确执行合约。 但真相非常微妙。

1568711064416463.png

应用开发者只需要知道 Eth2 协议的一小部分。 普通的智能合约开发人员不需要了解验证器注册表或信标链终端小工具的内部结构。 因此,Phase 0 被完全从应用层移除。 Phase 1 和 Phase 2 最近也提出了强有力的建议,提倡更高程度的抽象执行环境,让 Eth2 更强大、更简洁。 最坏的情况是,钱包和应用程序开发者需要了解跨分片交易的细节,以便掌握一些显示即时交易结算的技巧。 计算机操作系统和内部结构比 10 年前复杂得多,但大多数应用程序开发人员不需要了解使它们成为如此强大的计算机体系结构的隐藏内部结构。 这种关注点分离是良好架构设计的核心,有人可能会争辩说,在构建 Eth2 时我们应该牢记不变的设计。

构建真实世界的计算机

1568711086529396.png

总而言之,以太坊是比较漂亮的,这意味着它可以运行任何可以想象的类型的代码,就像今天的计算机一样,尽管它是一台非常有限、速度很慢的单线程计算机。 今天的以太坊类似于早期的弱处理器。 今天在以太坊上运行应用程序也很昂贵,因为该协议内置了一些机制来防止公共场景中困扰公共物品的悲剧。 以太坊的动态开发人员不断改进当前的网络,包括核心层和第二层。 但从治理的角度来看,预定的升级可能会很困难。 一旦 Eth2 激活几年,我们就可以感觉到它有一定的局限性,希望建立 Eth3,这意味着 Eth2 的核心设计已经失败。 该协议应该以不需要硬分叉的方式升级,即,一旦系统上线,第 1 层设计需要最少或接近零的创新。 我们还有很长的路要走,提醒自己为什么要构建这个软件,10 年后它仍然存在吗? 这样我们将编写更健壮的代码,经得起时间的考验。

原版的:

稿件来源(翻译):