本文探讨了以太坊的网络更新过程,包括硬分叉和软分叉的基本概念以及其对以太坊生态系统的影响。文章还介绍了以太坊改进提案(EIP)的过程,以及如何通过开发网络和测试网络来确保网络升级的安全性。在最后部分,文章简述了以太坊的原生货币以太币及其与Gas费用的关系,提出了以太坊的经济模型。
这是关于区块链的系列文章的一部分。如果这是你看到的第一篇文章,我强烈推荐从系列的开始部分开始。
由于我们已经涵盖了以太坊的一些关键概念,我认为我们应该从快速回顾开始。
当然,关于以太坊还有很多内容要说。今天,我们将讨论一些我们之前未曾涉及的缺失方面——但再次强调,这将不会是完整的故事。
把这看作是一个不那么肤浅的介绍吧!
考虑到这一点,让我们直接开始!
在上一篇文章中,我们提到以太坊经历了一次事件,在这次事件中,停止使用工作证明(Proof of Work)作为其首选的共识机制,并转向权益证明(Proof of Stake)。
那么,这个事件到底是什么?它是如何运作的?
我的意思是,听起来很简单,但当然,并非如此。
让我们试着思考一下这种变化的影响。
区块链在其本质上是分布式系统。切换共识机制本质上意味着改变游戏的规则——也就是说,系统中节点为参与网络和帮助发展区块链而需要遵循的规则。
正如我们已经提到的,这些规则是编程进网络节点中的。所以,概括一下:
对网络的升级意味着改变节点的源代码。
而且有一个陷阱——而且是一个非常重要的陷阱:区块链是分布式系统。
换句话说,除了实际的数据结构外,“区块链”是一组分布在全球的节点,由不同的人或团体所有,并在互相之间通信。
你不能简单地关闭旧节点并开启新节点。协调是至关重要的。而且,还有另一个方面需要考虑:我们无法确保每个人都会迁移到新的节点版本。
这就引出了一个问题:那些选择不进行升级的节点将会发生什么?
确实非常引人入胜。
显然,旧版本在某个时刻是一个完全有效的实现,能够与其他节点进行通信。根据更改的类型,旧节点可能与新节点不兼容——但它们仍然可以与其他旧节点进行兼容!
这导致了一个有趣的情况:现有的旧节点不想切换到新版本,可能能够相互通信,并达成共识输入新块。与此同时,新节点也会做同样的事情,但同意的是不同的块。因此,区块链分裂了。
这被称为硬分叉。
当新的升级节点开始实施新规则时,新的块会开始被生成,随着更多升级节点的参与,它们加入新的历史记录。但旧节点无法理解这一点——于是它们同意了一个不同的故事!
我们通常希望每个人最终都会进行升级,因此旧分叉会自然地消亡。虽然这可能不会完全发生!
实际上,以太坊PoW仍在运行,但我们不再将其识别为“以太坊”。
不过,并非所有的变化都是平等的。有些变化比其他变化更极端。例如,假设我们保持相同的旧规则集,但只添加少数新规则。这个“升级”只是旧代码的一个略微更严格的版本。那么会发生什么呢?
好吧,升级节点生成的块在旧节点看来是有效的,但反之则不然。
这创造了部分向后兼容性的情况。旧节点可能仍然参与共识——尽管它们可能会错过某些新特性和限制。并且它们会接受来自升级节点的块,因为这些块遵循旧规则集!
还有一个有趣的结果是:旧节点可能暂时同意在新节点看来是无效的新块。这意味着它们可能暂时遵循一条对新节点无效的链,而新节点则会查看遵循新规则的另一条链。
所以这也算是链上的一个分叉——可惜是另一种类型:软分叉。
区别在于,只要大多数网络节点能够升级,任何软分叉都会自然消亡,因为它将被升级节点消除。因此,优点是我们不必冒着将网络分割成竞争链的风险。
在以太坊的历史上,许多升级都是软分叉。与转向权益证明(硬分叉)的戏剧性切换相比,软分叉引入了更细微的改动,如新的操作码、Gas成本调整或安全性改进——同时保持与旧节点的兼容性。
你可以在这里找到完整的更改历史。
你会注意到在合并(The Merge)之后,这些升级开始使用一些有趣的名称——这是有充分理由的。节点被分成两部分:执行客户端,负责处理交易逻辑,以及共识客户端,负责……共识!
我不想剧透所有内容,因此有关更多信息,请查看这篇文章。
下一个升级是Pectra,它带有一些酷炫的新特性,比如处理账户抽象的新方法。
好的!我们现在对网络的升级有了更好的理解。
升级是一件好事。毕竟,区块链是相对年轻的系统——有很多改进的空间,无论是通过新特性、更好的性能,还是更强大的加密原语。
但谁或什么决定了网络中应该包含哪些新特性?
与更传统的软件不同,没有单一的公司或人直接拥有以太坊。相反,改进需要遵循一个以社区提案为中心的过程,称为以太坊改进提案,简称EIP。
EIP只是一个文档,提出网络的新更改或特性。它不仅陈述了变更的理由,还概述了它应该如何实施。
这些文档有一个标准化的生命周期:
为了使EIP成为以太坊的一部分,需要获得核心开发人员、客户端团队以及更广泛的社区的批准。在这个意义上,该系统在其发展中实现了去中心化,确保好的想法和优点推动了进步,而不是权威。
现在,这一切都是美好的——直到我们记住这是我们人类所编写的软件,我们时常会犯错。
而区块链是一种高度协调的系统,必须完美和谐地运作,以便正确工作。我们如何确保升级不会破坏一切?
我们需要一种方式在更改到达网络之前测试这些更改。传统的软件开发通过多个环境来解决这个问题——所以我们为什么不能做同样的事情呢?
这就是开发网络(devnets)登场的地方。开发网络也由相互通信的节点组成,它们共享一些印刻在区块链中的历史记录,但与我们称之为“以太坊”的主要、标准区块链完全无关——即主网络(mainnet)。
正是在这些开发网络中,升级首先进行测试。实际上,这是弄乱事情、发现错误、解决问题和迭代的地方。
一旦更改变得足够稳定,它们仍然不会直接进入主网络。还有另一个中间步骤——测试网(testnet)。
在正常情况下,测试网是智能合约开发人员在其“上线”至主网络之前测试其创建的地方,主网络才是实际的价值。换句话说:你不会想花真正的钱去部署一个有缺陷的合约——最好是在一个模拟主网络的受控环境中先进行测试,但仍然可以自由地搞砸事情。
酷,对吧。
升级会从开发网络推广到测试网络,之后再正式上线。这里的理由是,现在更多的开发人员可以使用新特性,并可能真正将其用于实际应用——因此这是找到任何需要在无法回头之前解决的最后时刻错误的完美场景。
我想,仅此而已,简而言之!
当然,关于以太坊的发展还有很多要说——例如还有一份关于计划中的变更的完整路线图,旨在改善网络。
甚至有一些已经失去关注的计划变更,如danksharding。
此外,还有很多关于在以太坊之上构建的内容——所谓的第二层解决方案(Layer 2 solutions)。这将是以后的主题。现在,让我们对以太坊的发展做一个结束,并继续关注另一个关键方面。
我无法结束有关以太坊的严肃讨论,而不谈它如何处理其本币,以太币(Ether)。
重要的是,以太币的总发行与比特币的运作截然不同。我们已经讨论了将来会存在的比特币上限的问题,这一限制在以太坊中并不存在。
别急,牛仔。
这并不意味着以太币的数量会失控增长。主要因为它有两个目的:作为一种价值储备(像比特币一样),但它也是网络的Gas。
我这是什么意思,你可能会问?以太坊实际上需要以太币才能工作,这与比特币不同。
这不仅仅是数字货币——它是系统正常运作所需的基本资源。
而且以太币的发行与另一个关键概念,Gas费(gas)有着紧密关系。
我们在系列的早期讲过这种“Gas”动态。简而言之,它是计算努力的一种度量,能够让我们对单个程序能够执行多少计算进行限制。
后来的事情就能帮助避免无限循环。
以太坊上的每个操作都需要消耗一定的Gas费。就像,实际上,每一个操作码都有一个最小Gas费。因此,简单的转账大约需要_21,000_Gas单位,而智能合约调用可能需要数十万甚至数百万的Gas单位。
因此,其哲学是按需支付——或者至少是与需求相称。你支付的实际价格计算如下:
现在,Gas单位与所需的计算工作量严格相关。然而,Gas价格则是另一回事。
Gas价格以gwei为单位进行衡量——以太币的十亿分之一——并根据网络需求波动。
当许多人试图同时使用以太坊时(另一种说法是并发),Gas价格就会上涨。
所以你会说“嘿,为什么我10美元的转账花费20美元的Gas费?”这使你感到愤怒。
这运作得就像一种负激励。当交易价格飙升时,愿意支付高“税费”的人会减少,因此他们将停止不断向网络发送请求。
但并不是网络决定Gas价格——这是用户决定的。或者至少,过去一直是如此。
在EIP-1559之前,用户仅仅是在一个简单拍卖中出价愿意支付多少Gas费。这是一种竞争,导致了不可预测的费用高峰和低效。
当前系统使用两部分费用结构:
这种设计使得费用更可预测,同时仍允许用户在需要时优先处理紧急交易。
如果我们把所有这些事结合起来,可以看到以太坊的运作中发生着一个复杂的经济循环:
总的来说,这是一种比比特币更复杂的经济模型。我们称这种类型的分析为以太币的代币经济学(tokenomics),它们是以太坊作为计算平台的角色的结果,而不仅仅是一种货币。
但当然,它仍然是一种货币。
最后,以太坊区块有一个目标Gas限制——在单个区块中可使用的Gas的最大数量。
这限制了每个区块可以包含的交易数量,作为一种保护机制。
没有它,验证者可能会包含太多交易,以至于其他节点无法在一个时间段内进行验证,可能会导致网络不稳定。
Gas限制可以随着时间的推移稍微调整,允许网络逐渐扩展,只要不妨碍稳定性。
好了,我觉得这是一个很好的停顿点!
这真是一段旅程!虽然这并不算令人意外——以太坊是一个非常丰富的生态系统,也是非常稳定的技术。
而我们仅仅触及了表面而已!
但我想,光是几篇文章并不能涵盖一切。我的初衷并不是如此——我想保持这种相对友好的氛围,而这是个非常深奥的主题。
尽管如此,我认为我们已经涵盖了足够的要点,能够清楚地理解以太坊是什么,它是如何运作的,以及它为区块链带来了哪些新概念。
现在,我必须承认……我在说这是关于以太坊的总结时说谎了。从某种意义上来说,是的——但在我们转向其他区块链之前,还有一些内容需要讨论。
我们需要谈谈汇总(rollups),更广泛的话说是第二层(Layer 2)区块链。这些构建在以太坊之上——但这个概念更加普遍,扩展到其他生态系统。
这将是我们下次见面的主题!
- 原文链接: medium.com/@francomangon...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!