主页 > imtoken里的ht > 要了解以太坊2.0,首先要了解以太坊2.0的核心设计原则

要了解以太坊2.0,首先要了解以太坊2.0的核心设计原则

imtoken里的ht 2023-03-20 05:37:59

以太坊原理_sitejianshu.com 以太坊以太经典_以太坊为什么叫以太坊

sitejianshu.com 以太坊以太经典_以太坊原理_以太坊为什么叫以太坊

为什么不简单地从头开始创建一个新系统,而是在 1.0 的基础上煞费苦心地修改 2.0?

以太坊技术应用大会今天在北京举行。 Vitalik、以太坊基金会核心成员、以太坊DAPP开发者等重量级嘉宾齐聚一堂。 会议重点关注以太坊 2.0。

公众也普遍关注以太坊 2.0 的进展。 V神在大会上发表了题为“以太坊2.0跨分片交易”的演讲。

已经有很多文章讨论以太坊2.0的路线图、研究建议和发展现状,但是关于以太坊2.0内部运行背后的设计原则和不变量的文章并不多。 本文旨在讨论以太坊 2.0 背后的设计原则。

作者简介:Raul Jordan,Raul Jordan 是 Prysmatic Labs 的联合创始人,也是 zk Capital 的合伙人。 他毕业于哈佛大学,是一名区块链工程师和以太坊开发者。 他专注于 Prysmatic Labs 分片技术的开发。

许多文章讨论了以太坊 2.0 的路线图、研究建议和现状。 然而,关于其内部运作背后的设计原则和不变量的公开报道并不多。 拥有一套清晰的不变量对于这项协调多年的努力的成功至关重要,它让实施者思考以太坊哲学。

本文将解释其中一些设计决策、它们的背景以及它们对协议未来的意义。

一、历史

自以太坊网络诞生以来,试图将以太坊从 PoW 转换为 PoS 是一个重大进展。 Vitalik Buterin 当时正在探索一种可行的解决方案,以防范不成熟的 PoS 的缺陷,并提供比 PoW 更高的安全性。

特别是,他和以太坊研究小组设计了一种称为 slasher 的机制来惩罚 PoS 中的恶意行为者并削减他们的全部抵押品(Buterin 2014)。

sitejianshu.com 以太坊以太经典_以太坊为什么叫以太坊_以太坊原理

数学家 Vlad Zamfir 后来加入了这个项目,2014 年的大部分时间都集中在解决所谓的对 PoS 的远程攻击上。

当攻击者可以从头开始创建比当前规范区块链更长的完整链,以便让网络中的其他人相信新的规范状态时,就会发生远程攻击。

这几乎不可能在 PoW 中执行,因为它需要大量的复合计算能力。 然而,PoS 不依赖于计算能力,因此在此类攻击下会崩溃(Zamfir 2014)。

Vitalik 和 Vlad 都同意:除了“严格防止客户端同步早于某个检查点的链”之外,没有可行的远程攻击解决方案(Buterin 2015)。

这意味着网络中的新节点不需要从创世块同步链,只需要从最近的“检查点”与网络中的其他最终节点同步。

以太坊为什么叫以太坊_sitejianshu.com 以太坊以太经典_以太坊原理

也就是说,当新节点加入网络时,对旧节点有一种内在的信任。 这种现象后来被称为 PoS 的弱主观性。 当新节点加入时,网络参与者之间会主观相信“最终确定”、“不可逆转”的区块存在(Buterin 2018)。

在此期间,以太坊基金会的 Vitalik 和 Virgil Griffith 致力于在 ArXiV 上发布 Casper PoS 白皮书的初始版本(Buterin 和 Griffith 2015)。

2014-2017 年是一段漫长的时期,它标志着以太坊试图在当前运行的 PoW 链之上覆盖一个基于 PoS 的终结性系统。 与此同时,正在努力实施状态分片作为分区方案以扩展以太坊区块链。

然而,在 2018 年,当这两项计划汇集在一起​​时,以及在 3 月在台北举行的具有里程碑意义的研究会议之后,以太坊研究团队提议将 Casper PoS 与分片合并为一项名为 Ethereum Serenity 的计划,也称为以太坊 2.0。

2、为什么选择ETH 2.0?

本文解释了核心问题背后的设计原理:“为什么使用以太坊 2.0?”。

当然,对现有系统的共识协议和数据完整性进行全面检查并不是可以通过硬分叉轻松完成的事情——简单地从头开始创建一个新系统并完全放弃以太坊 1.0 不是更容易吗?

我们在构建 ETH 2.0 时面临的挑战之一是需要让社区了解这一挑战,并清楚地了解向 ETH 2.0 过渡背后的巨大兴趣和需求。

在理解这种范式转变带来的巨大责任的同时,现在是构建 ETH 2.0 的最佳时机。 不管你喜不喜欢,加密行业仍处于起步阶段,我们今天做出的决定将产生多年来加速增长和采用的复合效应。

向 PoS 的迁移已经等待了足够长的时间,以太坊应用程序的可扩展性也是如此。 现在是构建 ETH 2.0 的最佳时机,团队已准备就绪。

3、挑战未来

缺乏经验的第 1 层扩展可能会带来巨大的安全成本:区块链分片会阻止全局交易验证,就像当前的比特币和以太坊链所做的那样。

关键问题是:如何在不牺牲去中心化或安全性的情况下实现可扩展性? 许多竞争链旨在走中心化路线作为解决这个问题的手段。

以太坊选择了一种不同的方法:将网络状态划分为 1024 个分片,这些分片代表一组同质的区块链,每个分片由一个称为信标链的根链组成。 协调。 信标链在完整的 Casper PoS 上运行,没有委托,也没有集中投票权。

在这种方法中,每个节点只负责网络中发生的一小部分交易,并且许多块可以并行发生,从而线性增加整体网络吞吐量。

该解决方案旨在回答以下问题:

如果交易未在全球范围内得到验证,网络的安全配置文件将如何变化? 如何在防止卡特尔形成的同时选择验证参与者? 如何设计激励措施以最大限度地提高数据可用性并鼓励积极参与?

以太坊为什么叫以太坊_sitejianshu.com 以太坊以太经典_以太坊原理

经过多年的研究、探索和权衡理解,以太坊寻求 PoS 作为其共识算法。 如前所述,奖励是确定性的,验证实体在协议中具有相同的待遇、参与委员会的相同概率以及相同的奖励/惩罚。

全局交易验证变为间接验证。 每个分片链中的每一笔交易都会首先被该分片中的验证者验证,信标链在ETH2.0上扮演着“协调者”的角色。

sitejianshu.com 以太坊以太经典_以太坊为什么叫以太坊_以太坊原理

4.设计不变量

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

我们可以将ETH2.0的核心分解为以下几点:

1. 参与网络应该是无需许可的;

2. Layer 1在其范围内应简洁、抽象、紧凑;

3、协议应该是最有表现力的,而不是假设它未来的用途;

4. 网络应该具有弹性,能够从任何灾难性场景中有效恢复;

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

1.无需许可

以太坊 2.0 和其他“下一代”区块链之间的一个显着区别是如何确定参与共识。 以太坊 2.0 对验证者的唯一要求是拥有 32 个 ETH。

没有代理,没有投票选择验证者,也没有集中宪法来决定谁参与。 更重要的是,以太坊 2.0 中的验证者都是平等对待的:每个实体参与的硬性要求是 32 ETH。

但是,任何个人都可以拥有多个验证者身份。 这只是为了简化共识协议的安全性和紧凑性而做出的决定。 从激励设计的角度来看,并且出于正式建模的目的,在通过投票验证区块时平等对待所有参与者非常重要。

1 个验证者 = 质押 32 个 ETH,仅此而已。 其他链旨在通过采用更集中的验证方法来解决可扩展性问题。 但是,对于以太坊,不考虑此选项。

2.简洁,但最具表现力

sitejianshu.com 以太坊以太经典_以太坊原理_以太坊为什么叫以太坊

以太坊 2.0 在其核心定义和实现目标上力求简单和紧凑。 从根本上说,它是一个可扩展的、无需许可的平台,用于构建去中心化应用程序。

sitejianshu.com 以太坊以太经典_以太坊原理_以太坊为什么叫以太坊

没有必要在以太坊 2.0 中引入应用程序逻辑,这是有充分理由的。 人们可以将以太坊 2.0 系统比作精简的 Linux 内核——决定它包含哪些功能或假设用例的不是操作系统,而是为内核构建应用程序的开发人员。

“假设意图”的做法是有限的。 “我们没有任何功能”这句古老的以太坊格言也适用于以太坊 2.0。

3.确保安全

以太坊 2.0 的 PoS 模型,也称为 Casper the Friendly Finality Gadget,在一系列旨在保持高活跃度和网络参与度的激励措施下运行。

以太坊 2.0 扩展了 Casper 以利用其属性来保护分片区块链网络。 即以太坊 2.0 使用“链最终性阈值”的概念来确保系统中的 1024 个分片与信标链共享同一个安全池。

PoS 的核心前提是验证者按预期完成指定工作而获得奖励,因离线而失去质押,或因恶意违反协议而面临严厉处罚(没收质押)。

虽然前提很简单,但细节却与众不同。 一旦我们意识到我们不仅要考虑每个验证者的行为,还要考虑整个验证者委员会的行为,Casper 的经济学就会迅速变得更加复杂。

一般来说,PoS 链的一个悬而未决的问题是什么时候应该惩罚行为,以及如何根据某些验证者行为的严重性采取不同的方式。 也就是说,我们需要找到一个足够全面的惩罚,以涵盖所有边缘情况,同时保持简洁。

鉴于该协议依赖于验证者活动并依赖于对运行时的持续观察,可能存在诚实验证者无法参与的情况。 诚实验证者可能会因为断电、网络不稳定等因素而下线,但我们需要明确区分下线惩罚和恶意行为造成的惩罚。

以太坊为什么叫以太坊_以太坊原理_sitejianshu.com 以太坊以太经典

以太坊 2.0 的部分设计原理是攻击者为任何破坏协议的尝试付出巨大的代价。 也就是说,其他链上经常发生的51%攻击,在以太坊2.0上应该是代价高昂的,结果甚至可能适得其反。

也就是说,在具有明确最终性的协议中,“逆转最终性将使”攻击者对诚实的验证者显而易见,这允许社区协调软分叉以删除恶意行为者并使他们的攻击无效。

当然,即使攻击成功并且这种社区协调不成功,如果攻击者的唯一目的是破坏系统并造成巨大破坏,系统的完整性也会降低。

基于 PoS 的系统的另一个限制是验证者的困境,即系统中的验证者是懒惰的,只是相信协议中的其他人正在正确地工作,因此不验证他们是否应该负责验证消息。

除非面临重大处罚,否则这些验证者可以通过不履行职责来节省带宽或一般计算要求。 这个问题可以通过为网络中丢失的数据或错误签名的消息添加极强的惩罚和质询机制来缓解。

以太坊为什么叫以太坊_sitejianshu.com 以太坊以太经典_以太坊原理

5. 以太坊 2.0 的验证者激励

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

1.验证者离线:Quadratic Leak

以太坊 2.0 依赖于拜占庭容错阈值,它必须确保网络中三分之二的验证者是诚实的参与者。 对不参与验证的验证者的惩罚称为“不活动泄漏”。

如果一条链超过 4 个时期还没有最终确定,协议将对验证者奖励尽可能严格。 也就是说,最大预期奖励变为 0,因此验证者需要表现完美,否则将面临更多惩罚。

惩罚的大小与自上次链达到最终状态以防止验证器离线以来的时间成正比。

某些验证器离线的时间越长,这种惩罚就会呈指数增长,这被称为“二次泄漏”。 涉及这种惩罚的原因是希望不会惩罚短时间离线,但考虑到预期的现实世界行为,长时间离线有很大的缺点。

因这种惩罚而损失的资金将被销毁,不会重新分配给诚实的验证者。

2. 故意恶意活动:没收

在以太坊 PoS 的早期提案中,恶意验证者会受到大规模的惩罚,称为 slashing,通常这些机制只讨论对个别恶意验证者的惩罚,而不讨论验证者串通的严重性。 如果大多数验证者合作对网络进行恶意攻击,则网络将受到影响。

根据拜占庭容错,对恶意行为者的惩罚将是一定时间间隔内恶意行为的验证者数量的 3 倍。 这有助于惩罚大型协同攻击,还可以防止恶意验证者池的产生。

也就是说,对网络进行聚合攻击对恶意验证者有利以太坊原理,对普通验证者不利。 罚没是通过举报机制进行的,激励验证者发现其他验证者的违法行为可以罚没。

3.验证者奖励

基于 Vitalik 的 Ethereum Serenity 设计原则,他概述了每个时期验证者基本奖励的 4 个具体组成部分:

1. 证明确定正确的epoch checkpoint获得的1/4奖励;

2. 通过证明确定正确链头获得的奖励的1/4;

3. 证明区块可以快速上链获得的1/4奖励;

sitejianshu.com 以太坊以太经典_以太坊原理_以太坊为什么叫以太坊

4. 通过证明确定正确的分片区块获得的1/4的奖励;

根据正确参与验证者的数量,在基本奖励之上还有额外奖励。 这种额外的奖励会激励每个验证者做正确的事情,从而集体推动诚实行为。 奖励的发布时间表应该一致且直接。 增加更多的复杂性只会让系统更容易出错,也更难从宏观经济的角度理解。

6. 将程序复杂性与协议复杂性分开

“以太坊 2.0 路线图令人望而生畏”的说法并不准确,因为以太坊 2.0 可能是最雄心勃勃的多年计划之一,它可以吸取业界最好的教训,创造出一条优雅的道路。 一种解决可扩展性难题的协议,并且能够无限期地运行。

已经有很多关于分片如何显着降低开发人员体验的讨论。 理由是,在以太坊 2.0 协议内部节点内以太坊原理,很难分离应用程序开发人员的需求,因为高度复杂的分片系统需要相互交互(跨分片交易)。

乍一看,以太坊 2.0 看起来很吓人,目前还不清楚以太坊 2.0 中将如何执行智能合约。 然而,事实更加微妙。

以太坊原理_sitejianshu.com 以太坊以太经典_以太坊为什么叫以太坊

应用开发者只需要知道以太坊 2.0 协议的一小部分。 普通的智能合约开发人员不需要了解验证器注册表或信标链终端小工具的内部结构。

因此,phase 0 被完全从应用层移除。 最近,phase 1 和 phase 2 也提出了非常强烈的建议,主张对执行环境进行更高程度的抽象,让以太坊 2.0 更加强大和简洁。

最坏的情况是,钱包/应用开发者需要知道跨分片交易的某些细节,以通过一些技巧来显示即时交易结算。 今天的计算机操作系统和内部设备比 10 年前复杂得多,但大多数应用程序开发人员不需要了解构成强大计算机的隐藏内部结构。

这种“关注点分离”是良好架构设计的核心,可以将其视为构建以太坊 2.0 时应牢记的设计不变量。

7. 构建真实世界的计算机

总而言之,以太坊是图灵完备的,这意味着它可以像今天的计算机一样运行任何类型的代码,尽管它是一台缓慢的单线程计算机。

今天的以太坊类似于早期的弱处理器。 今天在以太坊上运行应用程序是昂贵的,因为该协议有适当的机制来防止困扰公共事业的公地悲剧。

以太坊充满活力的开发者社区从未停止创新以改进当前网络,无论是在核心层还是在第 2 层。但是,从治理的角度来看,未来计划的升级可能会出现问题和痛苦。

如果在以太坊 2.0 上线几年后,我们感到束手无策,想要构建一个以太坊 3.0,那说明我们在前者的核心设计上失败了。

可升级性应该以不需要有风险的硬分叉的方式融入协议中。 也就是说,一旦系统运行了很长时间,第 1 层的创新应该是最小的或接近于零。

我们还有很长的路要走,但我们小心地提醒自己为什么要构建这个软件,以及我们希望在 10 年内看到它的发展方向,编写更强大的东西并经得起时间代码的考验.

-结尾-

译者简介:牛爱乐,区块链研究院特约作者。