ETH是什么以及未来发展方向
ETH3.0:它会是什么?(一)
前言:对很多以太坊投资者来说,ETH3.0都是模糊不清的,甚至对于很多开发者来说,它也不够清晰。那么,作为未来的以太坊替代品,ETH3.0的发展路线图包括哪些内容?有哪些值得我们关注的地方?本文有一个简要的叙述。
ETH3.0是什么
ETH3.0计划成为以太坊的替代品。在接下来的几年里,ETH3.0的设计者试图把以太坊的共识系统和状态全部囊括进来。由于涉及的范围很广,我们无法精确地说明ETH3.0将包含或不包含那些内容。
我们确实有一些说明,也有不少团队在努力实施早期工作。在这个时点,ETH3.0设计者暂时计划包含分片、Casper、state rent以及eWASM VM。初始客户端测试正在进行中,预计将在三个月内(2021年第一季度)推出轻功能的ETH3.0测试网络。最初,ETH3.0将从以太坊主网获取其Ether,但设计者最终计划改变这种关系:把ETH3.0作为主链,以太坊1.x则是在它管理下的分链。
这对工程师来说,意味着什么?
如果你是Solidity或Dapp开发者,希望部署ETH3.0智能合约,那么,未来会有很多变化。ETH3.0是对以太坊的完全取代,它将改变我们在编写智能合约时做的很多假设。它计划多年分阶段推出,这跟产品发布周期更相似,而不像是产品升级周期。
为ETH2.x编写的工具和合约将来可能需要完全重新设计和编写。幸运的是,还有好几年时间来准备生态系统。为了帮助推动这项工作,我想讨论当前的路线图,并介绍其中的一些工程分支。
分阶段推出
目前来看,分片路线图已列出七个阶段。只有阶段0有详细的规范说明,它接收定期更新。阶段1的规范说明还不精确,且还没有进入活跃的开发阶段。在阶段1之后,路线图变成了一系列的目标,而不是技术文档。例如,在阶段2,路线图链接到ethresear.ch的次数是链接到github的三倍。因为所有未来的阶段更像是推测而不是工程落地,我们的具体讨论主要限于阶段0,阶段1,阶段2,直到阶段3;并且我们讨论了几个后续阶段的可能的粗略方向。
阶段0 —— Beacon链
阶段0引入“beacon 链”。ETH3.0设计者希望beacon链成为ETH2.0的生态系统的枢纽,成为所有其他分片的安全和验证的根源。一旦部署,beacon链将使用Casper FFG(Casper the Friendly Finality Gadget)运行PoS。Beacon链早期迭代设计尽可能简单,这也是阶段0将不支持智能合约、账户、资产转移,也不包括任何分片的原因。在beacon链上的Ether将不会在链上转移,这意味着用户也无法将其存入交易所。
BETH:新的Ether
Beacon ETH(BETH)是一种新的资产,仅由beacon链上的权益者(验证者)使用。它通过两种方式创建:1)作为验证beacon链(以及在阶段1后的分片)奖励;2)通过ETH2.X合约,任何ETH3.X的用户可以购买2ETH的BETH。合约将它视为“存款”。工程师可能会注意到该合约没有取款功能。这是因为在阶段0没有办法从beacon链中取出BETH。换句话说,一旦在ETH2.X验证者注册合约中存入Ether,ETH3.X的Ether会被有效烧毁。
Beacon链验证者观察该合约并提交存款信息到beacon链,它会向存款人发放新的BETH。因此,我们预计新的BETH会在ETH发送到验证者注册合约不久后在beacon链上发行。对存款的临时审查是可能的,但在Casper的规则下,永久性的审查不太可能发生。
直到阶段2才允许在beacon链上进行Ether代币的转账,在2.X完全折叠进分片生态系统之前,我不认为有任何方法可以将BETH转回ETH2.X。鉴于阶段0是不完整的,并且阶段1也还没有详细规范说明,所以,可以假定BETH资产至少在两年内会维持独立,且不可转移,这样的假定似乎是合理的。
一旦阶段3完成,BETH将可以转移到分片;然而,ETH将不会。这不太可能造成重大的经济困难。在过去,像BETH这样的预发布和轻功能代币,已经通过IOU在交易所进行交易。例如,HitBit和BitMEX 的XTZ期货市场在Tezos众筹期间就已经推出。如果市场对BETH有需求,我们应该会看到一个充满活力的交易所生态系统,它支持监管的BETH交易和权益。然而,对BETH的需求似乎还不明确。BETH投资不佳,因为从ETH到BETH的单向锚定使得BETH的价格上限为1ETH。也就是说,BETH永远不会比ETH更值钱,但可能会更低。
阶段0+—权益
用户可以在beacon链上存入32 个BETH权益以成为验证者。在阶段0,验证者将只管理beacon链。从阶段1开始,验证者将同时管理1024个分片链。beacon链(以及每个分片链)将使用Casper FFG来完成区块。
FFG是PoS算法,它对一些不良行为,比如链的停止和审查等,进行权益削减。聪明的读者可能已经注意到FFG的表兄弟,Casper CBC,它在分片路线图的“以太坊3.0”部分——虽然全面讨论FFG(还有CBC!)超出了本文的范畴,但我还是建议阅读Vitalik关于混合PoW/FFG的说明,他提到最小消减条件和FFG文件。
权益者做什么?
分片旨在跨节点分割(分片)状态信息,而不需要任何节点具有网络的全景图。因此,没有验证者会验证所有分片。相反,beacon链将协调所有其他分片的验证,并且所有验证者将验证beacon链。
每个周期(64个区块或大约6.4分钟),beacon链将对验证者重新洗牌,然后把他们分配到某个分片。分配到一个分片的一组验证者称为委员会。委员会的目标是128个成员。在阶段0,这意味着每隔6分钟beacon链将选择可用的验证者以在接下来的6分钟内组成委员会。
在阶段1,beacon链将为1024个分片中的每一个分配验证者委员会。这个精确的方法很复杂。它涉及多阶段随机数生成过程以及可验证的延迟功能,以进一步阻止操纵委员会选择过程的尝试。
ETH3.0随机选择委员会,同时经常轮换委员会,因为他们的工作非常重要。委员会负责保护其分片的安全性、活跃性以及完整性,同时证明beacon链上的分片状态。它们是beacon链能够获知分片状态的唯一方式,反之亦然。
从所有验证者池中随机选择他们减少了委员会作为整体撒谎或欺骗的可能性。对他们进行轮换旨在减少恶意委员会可能造成的危害。换言之,恶意节点或试图最大化利益的节点很难用选择委员会的方式来攻击网络的任何部分。此外,如果他们通过概率获得对分片委员会的控制,他们的控制权也不会超过64个区块。
工程师的PoS
尽管ETH2.X的PoW和ETH3.0的PoS的哲学差异的记录是持续的过程,但值得注意的是,一些PoW和PoS功能差异确实直接影响工程师。例如,虽然PoW链支持无状态的SPV证明和NiPoPow汇总的远程状态跟踪,PoS禁止任何低状态的通信。主观性阻止轻状态证明。换句话说,关于PoS的远程状态证明将包括与PoW无状态SPV证明大致相同的数据量,但要求事先验证整个PoS历史。
相比之下,无状态的SPV证明则不需要其他信息来验证。这意味着跨分片或跨链应用已经在主观的PoS环境中减少了功能性并增加了开支。
阶段1 —— 分片
阶段1旨在就分片链的内容达成共识,但不是关于它们的含义。换句话说,它是分片结构的试运行,而不是试图用分片进行扩展。beacon链将分片链区块视为没有结构或含义的简单比特集合。
分片链还没有账户、资产或智能合约。beacon链为每个分片每个周期随机选择分片验证者,他们只是就每个区块的内容达成共识。只要所有委员会达成共识,并定期更新分片上的beacon链,至于分片区块上出现什么内容并不重要。
分片验证者通过称为交联的过程证明分片的内容和状态。简单来说,委员会必须在beacon链中包含分片相关的可验证信息(如Merkle根)。在阶段2或更高的阶段,交联将支持跨分片通信。一旦beacon链从多个委员会收到给定交联的准确性证明,beacon链就可以相信该交联是分片的真实代表,而无需验证整个分片。如果委员会对交联的有效性持有不同意见,很显然,其中一个委员会是有错误的,应该受到消减的惩罚。这是所有分片的安全之根源:验证者的恶意行为最终会被发现,且会被beacon链惩罚。
阶段1没有任何特别有趣的东西。根本上来说,这是交联的引入阶段,也是分片引用beacon链的对称机制。设计者似乎相信这些机制会起作用。主要的开放性问题围绕规范说明和实施策略。考虑到阶段0花费了大约一年多的时间才完成合理水平的规范说明,我相信阶段1会花费差不多同样长的时间。有趣的是,阶段0的实施和规范说明同时进行。
即使在今天,距离测试网发布不到三个月,阶段0的规范说明也会定期更改。这意味着未来ETH3.0阶段在开发时间上会有很大的变化。虽然乐观主义者告诉我8个月,但在阶段0进入测试之后,很容易看到阶段1需要花费12-18个月的开发时间。
阶段2 —— 智能合约
阶段2最终带来类似于以太坊的系统,这是我们熟悉的。随着阶段2的发布,分片链从简单的数据容器转向结构化的链状态。到了这个时候,BETH能够转账,智能合约也重新引入。每个分片将基于eWASM(所谓的“EVM2”)管理虚拟机。我们期望EVM2支持账户、合约、状态、其他抽象等,这些都是我们在Solidity中熟悉的。
然而,大规模的幕后变化可能会让大多数现有工具不再有用。幸运的是,eWASM团队已经为solc、truffle及ganache做了一些基础工作。在阶段2测试网络发布之前或期间,我们可以期待看到最常用的工具移植过来,以支持EVM2。
状态租金(State rent)很可能会被包含在阶段2中,这对目前的Solidity工程师来说,会提出一些有意思的挑战。状态租金不再是无限期地存储代码和数据,而是要求合约开发者和用户随时间推移为EVM2存储付费。通过确保未使用的信息随时间推移而废弃,这可以防止状态膨胀。目的是让用户,而不是全节点来为状态付费。这里提出了许多不同的模型,且无明显的最佳模型。
有趣的是,随着一些以太坊升级计划和知名的以太坊核心开发者的推荐,状态租金可能是不同路线图中的唯一重叠之处。因此,我强烈建议计划在当前部署的合约上支付状态租金,并设计模型,用于将来向用户收取状态租金。我们不知道状态租金的精确设计,但我们应该为成本做准备。
阶段3
以太坊3.0上线,会有效缓解当前gas费过高、网络拥堵的情况,提高效率,增加交易量,包括未来混合全链融合跨链技术,提高去中心化基础设施完善,都会产生深远影响