无状态性
你可能听说过“状态爆炸”这个词,人们在论及以太坊及其状态数据规模的时候常常提到。这个问题的实质是,一次性支付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一起做的绝佳播客。这里还有一篇叙述最新进展的文章。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。