ETF:观点 | 以太坊 2.0 得自以太坊 1.0 升级的灵感

对比以太坊1.0,以太坊2.0最显著的变化就是权益证明共识和分片架构,但实际上,还有很多方面的创新,启发自改进以太坊的过程。

自比特币和以太坊创生以来,我们看到的事情

比特币区块链已经运行了11年了,其创生启发了无数有志之士学习乃至研究区块链的设计和密码经济学,以发现还有哪些可以改进的地方。

从PoW上,我们已经知道,对于密码学货币来说协议的安全性永远是最重要的。用昂贵的硬件来激励人们更深入地与链绑定,效果出奇地好。虽然仍不免有钻空子的空间,在保护比特币的网络安全上,PoW的表现已是超凡绝伦。

以太坊区块链则是在2015年启动的,它的诞生标志着“通用型”区块链的出现:每个人都能在网络上建立可以与ETH和其它token互动的应用了。这些应用为去中心化金融打开了大门,如今,人们为去中心化金融操作而存入的质押品价值已超过10亿美元。我有另一篇文章讲述了?DeFi如何一步步成长为以太坊上真实可用服务的过程。

限制Eth1.X拓展吞吐量的因素

现在以太坊已经野蛮生长5年了,其所经历的现象级成长也为整个行业指明了瓶颈在哪、能够改进的地方又在哪。

在2017年,以太坊的发展陷入困境的时候,多个“以太坊终结者”起来号称要“打败”以太坊。但这些“终结者”主要是牺牲安全性来换取更高的吞吐量,还在完全误导性地宣传说交易不需要支付手续费。实际上,没有一种是以太坊所面临问题的“解决方案”。

要想真正升级以太坊,所有人都必须跳脱出现有的系统、重新开始。我们可以取以太坊之精华、弃其许多糟粕。

注意:在下文中,我用“状态”来指称以太坊区块链上保存上的全局永久数据,例如账户信息、交易数据和智能合约状态。

以太坊2.0

以太坊2.0?是密码货币领域迄今为止最大的开源项目,旨在开发出一个能实现以太坊初始目标乃至更高远追求的新系统。你可能听过?Casper和分片,但以太坊2.0的目标还不止于此。

因为很多改进对现有的以太坊区块链来说过于激进,所以这些改进可能会做到以太坊2.0链上,然后现有的以太坊链会“接入”新系统。这样的话以太坊2.0就不会因为要升级现有的网络而变得过于复杂,而以太坊网络能照常运行,然后收获新系统带来的所有好处。

本文想谈谈人们不甚了解的以太坊2.0变更,以及这些变更是如何从帮助以太坊朝向去中心化美丽世界的过程中取得灵感的。

货币政策

密码学货币的货币政策不容小视。因为密码学货币要用增发的货币吸引矿工和算力,在保证安全性的前提下,增发量越少越好。在市值排名前20的币种,我们看到比特币的区块链是最安全的,同时其货币增发率也是最低的。现在的比特币年增发率为3.8%,比起ETH的约4.5%低了不少。

虽然很多以太坊的囤币党都觉得,以太坊区块链为安全付出的费用太高了;但是,如果这就降低增发率,可能会导致挖矿算力和安全性的大跌,因为矿工赚不到那么多钱了。因此,PoW下的增发率是难以降低的,因为降低了会对链的安全性有意料之外的副作用。比特币没有这个问题是因为其挖矿奖励的变化在长期中基本上是可以预测的。

那么,以太坊2.0的最大目标之一就是转换成权益证明共识机制,也就是要移除昂贵的挖矿硬件的作用,密集的计算和电力消耗,将被取而代之为便宜的普通电脑,仅处理Eth2节点的进程如区块传输和同步便足矣。这样保护网络安全的成本就低了很多!不过用户要锁定32ETH才能加入。

降低了整体的安全成本,增发率就能降低到1%一下,具体来说还取决于有多少用户参与网络成为验证者。如此一来,增发率就能随其到底要为安全性支付多少费用而伸缩。

-增发数量随实际需要为安全支付的费用而伸缩-

除了增发率上的缩减,以太坊2.0还旨在替换掉现在支付Gas费时用到的拍卖市场模式,换成稍有区别的模式,即“EIP1559”。你不需要知道它的工作原理,只需要知道,在此模式下,用户所支付的手续费的大部分都会被销毁掉。虽然说在该模式下,用户会支付更少的手续费,但因为以太坊2.0有很多个分片,所以总的手续费规模会比现在的以太坊更大,因此销毁掉的数量也会更多。

一方面是很低的增发率,另一方面是销毁部分手续费,以太坊2.0的净增发率可能为负,也就是烧掉的数量会比增发的数量还多!然后ETH就会变得更为稀缺,让攻击PoS系统的成本更为高昂。

共识算法的目标是保证区块链的安全性和去中心化,保护网络的激励机制才是真正让密码学货币活起来而不仅是账本数字的因素。激励机制保证了矿工/质押者会给网络提供安全性。而以太坊2.0在安全费用上所追求的是?最低必要增发率。最低必要增发率意味着链持续增发为保证安全性而必须发放的最低数量。低增发率及销毁策略会逐渐让攻击者的攻击成本变高,从而降低大规模攻击的概率。

无状态性

你可能听说过“状态爆炸”这个词,人们在论及以太坊及其状态数据规模的时候常常提到。这个问题的实质是,一次性支付Gas费就可以让你的数据永远留在以太坊区块链上,这就导致了状态数据不受限制地日渐增长,而很多数据可能再也没有被使用过。状态数据在存储规模上的“爆炸”,意味着以太坊的节点的存储空间和硬件条件必须随着网络的持续存活而线性增加。长期来看,这限制了能够运行以太坊节点的人群规模,而状态数据增长问题在每次区块Gas上限提高时都会变得更为严重。

那么,以太坊2.0解决这个问题的办法就是无状态性,就是让节点不保存任何状态也能验证所有交易和状态的所有部分。实现了无状态性之后,节点的模式就可以形成一条从有状态到无状态的光谱,每一种模式都有不同的规范。如果你硬件比较好,运行无状态节点绰绰有余,但还是不能运行完全保存状态的节点,那么你可以取其折中,运行一个“准-带状态”节点。想了解更多,请看?ETHDenver活动上的这个演讲!

-无状态范式下的网络拓扑-

这对于分片来说至关重要!因为每个分片都有自己独有的状态,而Eth2验证者需要在他们所验证的分片上依据状态来执行状态变更。无状态式的协议使得验证者无需下载一个分片的完整状态,只需下载表示数据的二进制默克尔树即可。

分片越多,状态数据的增长越是没有止境,虽然到时候肯定会有比如交易所或者区块浏览器这样的服务,有动力保存所有的分片状态数据/历史数据,并不计成本地准确交付。然后就有可能出现?“状态提供者”?软件,为验证者提供一笔交易所要改变的状态部分,让后者能够执行状态变更。状态提供者可以彻底地消除验证过程中的硬盘读写需要和密集存储需要。这不仅为新的、针对状态的激励机制开启了可能性,还能极大地帮助验证者,因为后者不再需要保存完整的分片状态了。当然,他们仍可以验证从状态中继者处收到的状态的正确性,因为可以拿这些数据与已完成同步的状态树相比较。

账户抽象

在当前的以太坊协议中,有两种类型的账户,外部控制型账户和智能合约型账户。只有外部控制型账户能发起交易,而且只有控制私钥的用户自己发起的交易才能改变自己账户的状态。现在虽然有了元交易,但它需要依赖一个中继者网络来支付Gas费。

对于以太坊2.0来说,目标是把这两种账户抽象化成一种账户,让网络中的用户账户和合约账户毫无区别。合约当然会继续存在,但那时以太坊网络自己就能充当元交易的中继者了,自己签名发起一笔交易并广播出去将不再是你与网络交互的唯一办法。

到时候,你可以让你的账户像一个智能合约,比如别人发给你ETH,你的主账户会自动将其转发到你的冷钱包里,又或者,把所有发给你的ETH都自动卖成DAI来持有。

能把功能模块直接做到账户里面,会产生很多很多有意思的dApp设计和功能!用户管理账户的操作会变得五花八门,而不是像现在的以太坊协议一样,允许的操作都是被定死的。

账户抽象化的一个有趣可能性就是合约能够自己支付Gas费,能自己发起交易。但这是个很复杂的问题,迄今仍在开发中,不过一旦开发成功,带来的可能性就极为丰茂了。

执行环境

做以太坊应用开发的开发者,首选的编程语言都是?Solidity?或者?Vyper,它们都各有奇怪的特性,但在实用性上,其开发生态还是很好的。在当前的用法中,用这些语言写成的代码都要编译成更通用、更底层的操作,来方便以太坊虚拟机解读。如果你想更深入地理解EVM,可以阅读这篇文章。虽然也不是太必要啦。

EVM所用的操作码让以太坊节点能产生出同样的计算结果,而不论运行节点的计算机是什么样的。它也让定制化的复杂操作比如验证签名和获取账户余额变得更简单,只需一行代码就搞定。如果没有EVM准确地读取出状态并执行状态变更,各种功能都是不可能实现的。

虽然EVM作为整个智能合约生态的基础表现得很好,如果以太坊上的应用可以使用任意的运行时语言,那会更好。链不应该把自己的状态转换规则强加在他人身上,执行本身应该要更加开放才对。这就是为什么大家想出了“执行环境”。

执行环境机制使得所有的状态转换规则都可以直接做进协议层,让交易的处理方式能与系统的其它部分完全独立开来。比如,可以有一个执行环境是专门用来处理?ZKrollup?和隐蔽交易的,而另有一个EE是用来处理UTXO模式交易的。甚至可以有一个?token专用型EE,专门用来承载所有token,而不用为每一种token都上传相同的代码。当然,现有的EVM也会被替换成一个叫做?eWASM?的EE,以保证对现有生态系统的支持。

Eth1上的每个dApp都必须在设计式充分考虑EVM的行为,因此以太坊状态转换函数的局限性就成了整个生态系统的瓶颈。有了EE机制,这个瓶颈就不复存在,利用对协议的开放式依赖的全新?dApp?也能出现。如果你想了解更多,EthHub这里有一个跟?WillVillanueva?一起做的绝佳播客。这里还有一篇叙述最新进展的文章。

原文链接:?https://medium.com/coinmonks/what-eth2-has-learned-from-eth1-d1f7e0830a98作者:?IvanMartinez翻译:?阿剑

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:31ms0-2:369ms