主页 > 如何从imtoken转出以太坊 > 谈谈以太坊2.0的设计目标

谈谈以太坊2.0的设计目标

如何从imtoken转出以太坊 2023-04-30 06:27:40

翻译校对:敏敏、阿健

任何项目都应该有一个设计目标,把握项目的总体概念,控制项目的发展方向。 设计目标为评估单个设计决策提供了标准,并将成为判断项目成败的标准。

还记得在 2018 年 11 月举行的 DevCon 上,Danny Ryan 在经过多次对话后,清晰地记录了以太坊 2.0 的 5 大设计目标。 这些目标也不是想象中的虚构,而是从反复讨论中提炼出来的,反映了以太坊 2.0 研究人员的优先事项。 如果您想了解更多背景知识,请收听 Danny 的比特币播客。

五个主要的设计目标如下(我为每个目标提取了关键词,并根据自己的喜好重新排列了顺序):

上面的设计目标总结了以太坊 2.0 的设计目的——未来会是什么样子——但并没有真正解释原因。 在本文中,我想探讨上述每个目标的重要性及其对协议开发的影响。

其实挑出以上任何一点都可以写一篇文章,我这里只能点到为止,但希望能解释清楚。 因此,下面会涉及到以太坊2.0的很多新特性。

分散的

允许具有 O(C) 处理能力的商用笔记本电脑处理/验证 O(1) 分片(包括在任何系统级别上的验证,例如信标链)。

以太坊显卡算力_470d以太坊算力_以太坊cpu算力

网络节点连接图(带剪裁)[来源:维基媒体]

以太坊一贯的基本原则之一是尽可能去中心化。 这实际上意味着尽可能降低人们参与协议(即以太坊1.0的挖矿机制)的门槛,将中心化参与的收益降到最低。

PoW 挖矿机制无法满足后一点,似乎也无法满足前一点。 PoW 挖矿显然正在走向中心化,一些矿场通过掌握硬件、廉价电力和大量冷却实现规模经济。 随着挖矿需要越来越多的高成本矿机,个体参与者的成本也随之增加。 尽管 PoS 协议也存在争议,但大多数人认为它不会像 PoW 那样面临强大的中心化压力。 这也是促使以太坊 2.0 计划从 PoW 机制过渡到 PoS 机制的原因之一。

以太坊cpu算力_以太坊显卡算力_470d以太坊算力

以太坊 2.0 的所有设计都是面向去中心化的。

比如去年夏天,为了突破目前1.0主网的局限性,以太坊决定在新的PoS信标链上实现以太坊2.0分片系统。 通过这种方式,系统可以支持更多的验证者(以太坊 2.0 上的区块生产者,类似于 1.0 上的矿工),成为验证者所需质押的最低代币数量从 1000 个 ETH 货币减少到 32 个 ETH 货币。 与1000相比,32大大降低了参与门槛。 此外,目前对偶尔下线的验证者的惩罚要低得多,这使得不能保证“五个九(99.999%)”的消费级硬件一直在线参与区块生产,增加了网络的开放性参与。 花费。

话虽如此,这个设计目标的关键不是 PoS,而是确保商品硬件的单一网络能够维持以太坊 2.0 系统的运行。 另一种方式是您不需要大型机即可成为系统的参与者。

从设计的角度来看,以太坊 2.0 协议有意摆脱对 CPU 或内存要求极高的“超级节点”。 交易所或区块浏览器可以部署“超级节点”,但在以太坊 2.0 协议中,“超级节点”与普通验证节点相比没有优势。 轻客户端协议的广泛应用使得验证者节点可以集中算力资源来保护信标链和它们所在的分片,只需要了解一点点对整个系统其他部分来说必要的信息。

根据这个设计目标的详细阐述可以看出,要完全参与以太坊2.0协议,保护整个系统并获得质押奖励,所需的计算资源只需要一台消费级笔记本电脑或小型托管虚拟私有服务器。 满足。

实现完全去中心化的设计绝非易事——远不及设计高性能集中式协议那么容易,但对于以太坊而言,没有任何妥协。

韧性

主网分区后,当大部分节点离线时,整个系统仍然可以运行。

470d以太坊算力_以太坊cpu算力_以太坊显卡算力

图像被裁剪 [来源:Flickr]

以太坊cpu算力_以太坊显卡算力_470d以太坊算力

如果区块链上 80% 的节点同时长时间离线怎么办?

在未来的某一天,以太坊区块链可能会被用于为关键基础设施提供动力:支付、身份、发电等等。 这样的基础设施不能失去可用性。 即使发生灾难,它们也必须继续运行。 即使一个国家通过国家防火墙阻止协议通信,即使第三次世界大战爆发。

分布式系统的基本原则是,任何分布式系统最多只能同时满足一致性(consistency)、可用性(availability)和分区容错(partition tolerance)这三个要求中的两个。 网络分区的问题很难避免。 节点会因为各种原因加入或退出网络。 这实际上需要系统具有一致性(是否所有节点对同一个请求给出相同的响应)和可用性(网络选择是否连续运行)。 从根本上说,当网络分区发生时,唯一保证一致性的方法就是关闭整个网络。

这个设计目标极大地影响了信标链上随机数生成器的设计。 目前,分布式随机数生成的黄金标准是 Dfinity 的“阈值签名中继”,它通过参与者无法操纵的方式通过数字签名实现(伪)随机性。 由于阈值签名中继在网络分区的情况下无法继续运行,以太坊 2.0 只能另辟蹊径,使用经典的 RANDAO,将众多参与者贡献的随机数组组合成一个随机输出值。 现在,我们都知道 RANDAO 合约在抗操纵方面有点弱(最后一个参与者比其他参与者拥有更大的权力,可以操纵随机数)。 因此,RANDAO 的共识机制旨在加强对操纵的抵抗力。 攻击者必须巧妙地把握时机,控制多个连续区块,才有机会摧毁整个系统。 这种情况发生的概率很低:根据共识协议的设计,假设有 2/3 的参与者是诚实的,攻击成功的概率几乎为零。

不管怎样,RANDAO 是有活性的:即使很多参与者失败,也不会影响整个区块链的运行。

上述原理的另一个例子是“inverse sqrt e drop time”中使用的“inactivity penalty quotient”,信标链上的一个区块需要得到最终确认,绝大多数验证者(持股)必须投票给这个区块. 如果出现大量验证者离线或延迟导致网络分区问题,则无法获得大多数验证者的选票。 解决这个问题的方法是,在区块链还没有最终确定任何信息期间,未能上线的验证者质押的质押将被大量没收。 质押惩罚将在很长一段时间内(约 18 天)逐步进行,以便验证者尽可能多地回归网络。 不过,最终,当无投票权的验证者拥有足够的股份而有投票权的验证者拥有足够的股份时,多数票将得到保证,这样整个链就可以继续确认区块。 片。

(需要注意的是,这种涉及活跃度的行为给用户和应用留下了很大的选择余地:在区块链上的区块还没有最终确定的时期,每个应用都可以选择是否使用区块链。这种灵活性就丧失了一旦区块链停止运行。感谢 Danny Ryan 指出这一点。)

以太坊的承诺一直是“势不可挡”。 以太坊 2.0 将延续这一承诺。

安全

通过密码学和设计技术增加验证者总数和单位时间内验证者数量上限。

470d以太坊算力_以太坊cpu算力_以太坊显卡算力

以太坊cpu算力_以太坊显卡算力_470d以太坊算力

近三分之一的验证者是恶意的,但在任一子集中,恶意方都不占主导地位

下面说说以太坊2.0的安全性,就是让系统尽可能的抵抗攻击(比如PoW协议中的51%攻击)。

在以太坊 2.0 中,这种安全性体现在大量轮流随机组成委员会的验证者:每个委员会成员的签名都是协议活动所必需的,例如检查数据可用性和对区块进行投票。

召集大批验证者并组建委员会有几个好处。 首先,较大的验证者池意味着更高程度的去中心化,而参与者的多样性使得共谋变得更加困难。 尽管如此,从风险模型可以看出,攻击者有可能控制超过 1/3 的验证者。

其次,如果存在违反协议的情况——例如,两个区块在同一高度被敲定——这意味着一定有很多验证者违反了规则(同时为两个区块投票)。 这种行为是可以检测到的,行为不端的验证者可能会被罚没。 链上的任何决定都需要得到多数验证者的签名,这赋予了系统强大的“经济安全”:参与者作恶将被罚款并没收大量资金。 PoW 链不同:发动 51% 攻击的作恶者只支付运行硬件的边际成本:他们的 ASIC 矿场不会被烧毁。

第三是从数学的角度。 假设验证者池中超过 1/3 的验证者是不诚实的,那么我们从验证者池中选择的委员会越多,委员会中存在大多数不诚实验证者的概率就越低。 例如,我们有 1000 个验证者,其中 333 个是不诚实的。 假设一个委员会只有 1 名成员,则该委员会被不诚实的验证者控制的概率为 33.3%。 假设委员会由 3 名成员组成,随机选出一个委员会,则选出的委员会成员中超过 2/3 不诚实的概率为 25.9%。 将委员会中的验证者数量增加到 13 个,则有 10% 的概率超过 2/3 的验证者是不诚实的,依此类推。 最后,如果委员会人数达到 667,则多数人不诚实的概率为 0%。

在以太坊 2.0 中以太坊cpu算力,如果攻击者出现在委员会中,他需要控制委员会中 2/3 的权益才能造成严重危害。 目前委员会总人数下限为128人,由数千人组成的验证者池中选举产生。 即使攻击者成功控制了 1/3 的验证者池,攻击成功的概率也只有万亿分之一以下。

实现这一设计目标有助于委员会在协议中发挥广泛的作用:基本上每个协议活动都是由随机分配的委员会投票决定的。 这些委员会经常重组,有时每 384 秒重组一次。 由于密码学创新——BLS 聚合签名,这也是可能的。 粗略地说,委员会的每个成员都必须签署这个决定,而 BLS 聚合签名技术可以将这些签名组合成一个签名,更容易验证。 如果没有这项技术,验证每个签名所需的时间将大大限制参与决策的验证者数量。

简单

以太坊cpu算力_470d以太坊算力_以太坊显卡算力

最小化复杂性,即使以牺牲效率为代价。

以太坊显卡算力_以太坊cpu算力_470d以太坊算力

以太坊 2.0 不是 Rube Goldberg 机器 [来源:维基媒体]

这是所有设计目标中解释得最好的设计目标之一。 复杂性是安全的敌人。 为确保以太坊 2.0 始终能够按预期运行,我们必须合理设计协议。 我们需要能够分析协议活动以排除极端情况和不当激励,并且我们需要进行尽可能多的形式验证。

如果你看看目前以太坊 2.0 的技术规范,“简单”可能不会给你留下第一印象。 不过,简单不是指代码量,主要是指我们实现的概念。 目前看来,所有的区块链技术都集中在分布式系统、密码学和博弈论这三个高难度学科上。 即使是像以太坊 1.0 这样相对简单的加密经济系统,也会遇到意想不到的情况。 Gas Token 就是一个例子:它的机制旨在减少区块链状态存储的数据,但实际上增加了存储的数据量。 我们的协议越简单,我们就越能分析这种奇怪的情况并找到解决方案。

创新是区块链行业生存的法宝。 几乎每天我都会听到新的共识协议、加密原语和加密经济设计的出现。 相比之下,以太坊 2.0 的设计虽然包含了高度的创新,但还是比较保守。 保守主义是有意为之的,因为设计必须尽可能简单。

例如,Polkadot 在设计上与以太坊 2.0 有很多相似之处(这并不奇怪,毕竟 Gavin Wood 参与了以太坊分片的早期构想)。 两者都使用分片协议:在 Polkadot 中每个分片可以运行不同的协议,而在以太坊 2.0 中每个分片运行相同的协议。 虽然波卡采用的异构设计也有优势,但以太坊还是倾向于尽可能降低设计的复杂度。

以太坊 2.0 的设计理念是只将少数必要的功能集成到 Layer 1(最关键的共识层),而将其他复杂的功能放在上层堆栈。 这也是协议本身不涉及身份特征和隐私的原因之一。 如果想深入了解这方面的内容,推荐阅读Vitalik的《Layer 1: Short-term Innovation, Long-term Conservation》。

坚持

选择抗量子计算的组件,或者选择可更换的组件,直到抗量子组件可用为止。

以太坊显卡算力_470d以太坊算力_以太坊cpu算力

以太坊显卡算力_以太坊cpu算力_470d以太坊算力

图片被裁剪 [来源:维基媒体]

如果未来出现足够强大的量子计算机,目前使用的密码技术的安全性将大大削弱,尤其是BLS和ECDSA数字签名。 没有人知道这一天何时到来,但区块链要想活几十年,我们还是要做好充分的准备。

以太坊2.0设计中的一些技术,比如基于哈希计算的RANDAO,已经具备了抗量子计算的能力。 至于其他技术,比如使用基于椭圆曲线的 BLS 签名聚合算法,它们对量子计算的抵抗力较小。

另一项仍在开发中的技术是 STARKs——可扩展的透明知识证明。 基于零知识证明的 STARK,称为 ZK-STARKS(用于隐私保护),可以证明协议活动已正确执行,而无需验证具体细节。

虽然 STARKs 有很多很酷的特性,但最关键的一点是“抗量子计算能力”。

尽管如此,我们还是不能掉以轻心。 “信任至少要经过10年的考验才能被信任”,这是应用密码学家的经验。 STARK 是新技术,仍在开发中。 对 STARK 安全性的研究才刚刚开始。

然而,我们还有时间。 目前最重要的是确保已知的非抗量子计算的密码机制在未来可以很容易地被抗量子计算的算法所取代。 具体来说,在以太坊 2.0 协议中以太坊cpu算力,STARKs 可以替代一些创建数据可用性证明所涉及的技术,以及上面提到的签名聚合协议。

结语

去中心化、抗冲击、安全、简单、耐用——这些是以太坊 2.0 的基本设计原则。 它们构成了以太坊 2.0 的 DNA。 以太坊有自己独特的身份,从以太坊社区的愿景中提炼出来,有了这些设计目标,以太坊 2.0 可以继续。 无论是目标、原则还是价值观,它们都是以太坊 2.0 与其他区块链设计的区别。

470d以太坊算力_以太坊cpu算力_以太坊显卡算力

资料来源:Pixabay