以太坊2.0最广为人知的的变化是staking和分片,但实际上,它包含了大量的变化,这些变化都是从改进以太坊中得到的灵感。
我们从比特币与以太坊中学到了什么
比特币诞生于11年前,自其诞生之日起,它就激励了许多人去学习更多的东西,并进一步研究区块链设计和加密经济学,以了解如何改进它们。
从PoW开始,我们了解到协议安全性在加密货币中是至关重要的。激励人们在游戏中拥有更多的皮肤(使用昂贵的硬件)非常有效。虽然“自私挖矿(selfish mining)”还有一定的回旋余地,但确保比特币网络安全的PoW表现却异常出色。
当以太坊在2015年发布时,它引入了“通用”区块链的概念,允许任何人在网络上构建与ETH和各种令牌交互的应用程序。这些应用为DeFi的成熟和成长打开了大门,现如今,DeFi上已经拥有超过10亿美元的抵押资产。
目前为止,Ethereum已经发布近5年了,它所经历的惊人增长帮助该行业发现了瓶颈以及哪些可以改进。
当以太坊在2017年增长遇到困难时,一些“以太坊杀手”挺身而出,“击败”了以太坊。但这些“杀手”主要是为了每秒更高的交易而牺牲了更弱的安全性,或者在明显误导(和混乱)的情况下不公布交易费用。但这些都不是Ethereum需要改进缺陷的“解决方案”。
要想真正改进Ethereum,每个相关人员都需要从现有系统后退一步,重新开始。我们可以拿走以太坊最好的部分,同时也清除它的许多缺陷。
注意:为了方便参考,当我提到“状态”时,我指的是以太坊永久保存的全局持久数据,如账户信息、交易和智能合约状态等令牌余额。
进入Ethereum 2.0
Ethereum 2.0是加密货币领域中最大的开源成果,旨在交付一个全新的系统来实现Ethereum的预期目标。您可能听说过Casper和Sharding,但是Ethereum 2.0包含的目标太多了。
由于以太坊2.0(Eth2)的许多改进肯定会打破现有以太坊链的变化,这些变化将建立在Eth2链上,现有以太坊链将在新系统中“插入(plugged)”(插入分片)。这样,Eth2将不需要升级现有的网络而变得复杂,而以太坊原网络也会正常运作,并带来新系统所能带来的所有好处。但是,正如我们所提到的,以太坊2.0包含的目标太多了。
这篇文章将会讨论Eth2所带来的人们可能不知道的重大变化。
货币政策
加密货币的货币政策比大多数人认为的更重要!对于那些通过发行(在区块奖励中铸造新供应)来吸引矿商和哈希率的代币,为其安全性提供资金所需的发行量越少越好。
我们已经可以看到,比特币拥有最安全的链,同时在前20位的代币中保持最低的发行率。目前,BTC的年发行量为3.8%,考虑到以太坊的年发行量约为4.5%(如果ETH反映了BTC的减半政策,这个数字会高得多),这已经是相当低的水平了。
虽然很多以太坊的持有者认为ETH为安全付出了过高的代价,但是降低供应的发行可能会导致算力和安全性的下降,因为矿商没有那么有利可图。这使得降低PoW的发行变得困难,因为这可能会对供应链安全产生意想不到的副作用。当然,比特币(在很大程度上)不存在这个问题,因为它的大部分矿业回报变化在长期内是可以预测的。
以太坊2.0最大的目标之一是转换到POS,这意味着去掉昂贵的挖掘硬件,如ASIC或GPU矿机。这种高强度的计算和能耗将被更便宜的标准计算机所取代,这些标准计算机只处理Eth2节点处理的东西,比如块传播和同步。对于那些保护网络的人来说,成本要便宜得多,此外,必须质押32枚ETH。
随着总体安全成本的降低,根据网络中有多少人,现在可以将发行降低到0%-1%之间。这样,发行规模就精确到它需要支付多少钱才能获得最优的安全性。
发行和奖励的数量取决于需要多少安全资金
除了减少发行,Eth2还打算用一种名为EIP1559的不同策略来取代交易费中的拍卖市场和gas价格。你不需要了解它是如何运作的,但只要知道大部分花费的费用将会在这个模型中消耗掉。虽然用户通常会在EIP1559上支付更少的费用,但在以太坊2.0中会有多个分片,因此Eth2中的总费用使用/燃烧可能比当前以太坊中的费用使用更大。
再加上极低的发行率(
共识算法(如PoW或PoS)的目标是保持链的安全性和分散性,而保护网络安全的动机是将加密货币与简单的账本分离开来。这一激励措施确保了矿工/矿工为网络提供安全保障。以太坊2.0在为矿商融资方面所寻求的是最低可行发行量(MVI)。
MVI是指该链持续地维持最低数量的发行,以保证安全性。低发放量和费用的逐渐消耗使得攻击更加昂贵(因为ETH变得更加稀缺),降低了网络遭受大规模攻击的机会。
无状态
当人们谈论以太坊及其规模大小时,你可能听说过“状态膨胀”。这是指一次性gas费用支付使您的数据在以太坊区块链上拥有永久居留权的问题, 导致了一个无限的、不断增长的状态,在这种状态下,大量的数据甚至可能无法使用。
存储大小的状态“膨胀”,这意味着以太坊节点需要更多的存储空间或更好的硬件,这与网络的年龄成线性关系。从长期来看,这限制了谁有能力运行以太坊节点,并且每当区块gas限制增加时,状态增长就会成为一个更大的问题。
对于ETH2,目标是实现无状态,这意味着light(无状态)节点将能够验证所有事务和状态的所有部分,而不需要实际持有任何状态。无状态允许轻量级客户机以有状态/无状态的形式存在,每个无状态都需要不同的规范,这使得节点通常更容易访问。如果您拥有的资源比无状态节点所需的资源多,但是对于完整的有状态节点来说还不够,那么您可以运行一个处于中间状态的半有状态节点。
使用无状态范式的网络图
这对于分片非常重要!由于每个分片都有自己独特的状态,所以ETH2中的验证器将对它们验证分片的状态执行状态更改(事务)。无状态协议使得验证器在切换分片时不必下载分片的整个状态,只需要表示数据的二进制merkle树(它要小得多)。分片越多,状态增长就越没有止境,而且总会有交易或探索区块之类的服务,它们被鼓励保持所有分片链的状态/数据,并准确地交付它,而不考虑成本。
这为充当“状态提供者”的软件打开了大门,这些软件将事务更改的状态部分提供给验证器,以便验证器可以轻松地执行状态更改。状态中继器有助于磁盘I/O和存储密集型验证部分完全转移到不同的实体。
这打开了一扇有趣的激励机制之门(对于状态,这是Ethereum的一个问题),并极大地受益验证器,因为它们不再需要保持整个分片状态。然而,他们仍然可以验证他们从中继器接收到的状态是否正确,因为他们可以将接收到的信息与同步的状态树进行比较。
账户的抽象
目前在Ethereum协议中有两种类型的帐户,外部帐户(用户)和合约帐户。只有外部帐户能够启动事务,并且只有以自己的名义进行事务的用户才允许修改其帐户的状态。目前,有一些元交易,但这些都依赖于一个中继网络来支付gas,就像GSN一样。
以太坊2.0的目标是将这两种帐户类型抽象为1,使用户帐户和合约帐户与网络难以区分。当然,合约仍然存在,但这将为以太坊本身作为元交易的中继者打开大门。你为自己签署了一项交易,并广播它将不会是与网络交互的唯一方式。
你也可以让你的普通账户像智能合约一样运作,比如把你的主账户收到的ETH直接发送到你的冷钱包里,或者把任何ETH自动发送到你的DAI账户里。
功能可以构建到帐户中,这为dapp的设计和功能打开了更多的窗口!用户管理帐户的处理将不再是一组明确定义的操作,就像它们目前在以太坊中一样。
帐户抽象的一个有趣的可能性是,合同将能够支付自己的gas费用,或者是发送交易的原始地址。这是一个复杂的问题,所以仍然有很多工作要做,但是在这种变化之后可以建立的可能性是巨大的!
执行环境
对于在以太坊上开发的任何人来说,他们的主要语言选择是Solidity或Vyper,它们有自己的特点,但是它们很好地满足了开发生态系统的需要。目前,这些语言被编译成更通用、更低级的操作,以便以太坊虚拟机(EVM)理解。
EVM使用这些操作码来帮助以太坊节点生成相同的计算结果,而不管运行它的计算机是什么。它还使自定义复杂的操作(如验证签名或获得帐户余额)变得很容易,只需一行代码即可完成。如果没有EVM读取并正确地将更改分配给状态,这些特性通常是不可能的。
EVM是整个智能合约生态系统的重要基础,即使是在其他链上。如果以太坊上的任何应用程序能够使用EVM想要的任何运行时,那就太好了。链不应该把自己的状态转换规则(像EVM)强加给其他人,执行应该更加开放。这就是执行环境的用武之地。
执行环境(EEs)允许将任何类型的状态转换直接构建到协议中(使用WASM),这让我们能够完全抽象处理事务的方式。可以有专门用于处理ZK rollup或私有事务的EE,也可以有用于UTXO建模事务(如BTC)的EE。甚至可以有一个特定于令牌的EE,它可以用于所有令牌,而不必为存在的每个令牌上传相同的代码。当然,现有的EVM将被复制到一个名为eWASM的EE中,以维护对当前生态系统的支持。
ETH1上的每一个Dapp都需要在设计时充分考虑EVM,以太坊的状态转换函数(EVM)的所有限制会影响整个系统。有了EEs,这一瓶颈将不复存在,全新类型的数据应用程序将被构建,充分利用它们对协议的开放式依赖。