引介

EF Eth2 研究团队第五次 AMA 节选

Ajian   |     |   322 次阅读

编者注:北京时间 2020 年 11 月 18 日 21 时,以太坊基金会的 Eth2.0 研究团队在 Reddit 论坛上开展了新一期 AMA 活动。名义上,这是为 Eth2.0 的 Phase 0 创世而举办的一期 AMA,但网友们的没有局限在 Phase 0 创世上。实际上,与 Staking 相关的问题只占一小部分,更多的问题集中在两个方面:(1)Eth2.0 的未来路线图;(2)以太坊 1.0 和 2.0 的合并时间。这也很容易理解,一方面,大家希望知道 Eth2.0 的长期前景;另一方面,合并的时间也关系到用户存入的押金在什么时候能够释放出来(实际上关系更密切的是历程碑是押金什么时候开放转账,但在用户眼里,合并这个事件显然意味着更多)。

毫无疑问,这两个问题是相关联的;毫无疑问,所有人都在期待一个更清晰的答复;也毫无疑问,此次放出的信息,使路线图看起来大有不同。

我们节选了与 Eth2.0 未来路线图和 Eth1.0-Eth2.0 合并时间的问题,翻译了研究团队的回答。第一部分的问题都与路线图的变化有关;第二部分的问题都与合并有关;第三部分包含两个问题,一个与 rollup 的潜力有关,另一个与自营 Eth2 验证者+信标链节点的开销有关。


路线图变更

嗨,伙计们,关于即将上线的主网,我的破冰问题是:你们认为 Phase 0 上线后,当前规范中哪部分的变化会最大?

Vitalik

这个问题有点突然,但是在过去的几个月中,路线图上有很多工作都在推进,我认为有必要总结一下有哪些部分已经发生了变化(这与接下来两年规范代码的发展有关):

最重要的三个变化是:

  • 以 rollup 为中心的路线图,将“phase 1”的设计简化为分片数据(shard data)(供 rollup 使用),更易于实现。
  • 简化 Eth1-Eth2 合并。根据这个路线图,(i)eth1 交易直接存在于信标链而非分片上,(ii)得益于乐观性执行(optimistic execution),合并阶段的执行暂停(execution pause)时间可能会大大缩短。这会让合并变得更容易实现,而且概念证明(PoC)已经开始实现。
  • 阶段性工作并行化。这是最新、可能也是最被低估的一个变化。从本质上来说,就是(i)轻客户端支持,(ii)数据分片(即 phase 1),(iii)合并,三者都独立于其它项来推进,这样每个部分只要准备好就可以实现,无论其它部分处于什么阶段。

这些变化的目的是让 eth2 能够尽早变得有用。轻客户端支持可能会在分片之前实现,让信标链尽快发挥作用,甚至成为用来在 eth1 上达成共识的工具。简化合并意味着双链合并将更早发生。阶段性工作并行化能够让合并比预期更快实现,甚至有可能比分片还要早

作为 “以 rollup 为中心” 策略的一部分,“phase 2”(原生的分片化执行)暂时不会再被强调。这是因为 “phase 2” 的 最终目标 (超高 TPS),让 “数据分片(phase 1)+ rollup ” 的方案来实现,效果会更好,而且后者还有望比 phase 2 更早实现。因此,现阶段我们最好将所有精力都放到如何推进这些方案尽快实现上。尽管如此,我们不会采取任何不可逆的措施,导致我们未来无法引入原生的分片化执行。在任何时候,我们的路线图都完全兼容原生的分片化执行。

一句话总结:合并会提前实现,PoS 会提前实现,我们将提前迎来 10 万 TPS。

Justin Drake

从长期来看,信标链的大部分逻辑都有可能发生巨大变化:

  • 轻客户端支持
  • 秘密的领袖选举,用于挑选区块提议者
  • 可验证延迟函数(VDF)的无偏倚随机性
  • 针对 eth1 合并的 eth 投票改造
  • 信标链区块的数据可得性(data availability)采样
  • 将 BLS 聚合签名升级成后量子替代方案
  • 将 Casper FFG 升级成 Casper CBC
  • (如果 SHA256 不再安全)将 SHA256 替换成算术化友好型哈希函数,或更安全的函数
  • 通过一些调整让状态转换函数对欺诈证明、SNARK 化 和/或 形式验证更加友好

那么,路线图中还有哪个部分,是你们没有头绪怎么做的吗?还是说都已确定有可能实现了?

Justin

我认为,实现数据分片和 Eth1/Eth2 合并的研究都完成了,或者说风险很低 —— 现在已经变成主要是工程和协调问题了。

我认为,我们最终会需要一个新的核心虚拟机(也就是 “Phase 2”)来替代 EVM。如果可以是一个 zkVM,也就是 EVM 的一个 SNARK 友好型替代方案,那就很棒了。在 Eth2 zkVM 的研究和工程方面仍有许多重大的开放问题。

Dankrad:

从研究的角度看,我会说,没有哪一个我们是有具体计划的(Phase 0,1,2)。不论是 Phase 1(数据可得性)还是 Phase 2(无状态执行,以及一个更大的问题,我们需不需要使用一个新的 VM 比如 eWASM),都还有实践(执行)问题需要解决。

在更长的路线图上,我们还需要量子安全性。这是一个我们仍需研究来使之变得可行的领域(虽然某些带有牺牲的系统可能可以安放在任意场景中)。


以太坊 2.0 的不同组件(轻客户端、分片、合并、eWASM、执行环境,rollup,等等)中,哪些仍然是研究课题,离实现阶段还有多远?

Danny

我不确定 eWASM 是不是真的会放到主网上。与 EVM 相关的合约、工具、语言、优化项,等等,数量都仍在急剧扩大。此外,从 eWASM 中获得的性能提升,与我们已有的 EVM 相比,可能微乎其微。更何况,EVM 本身已经成了一个区块链标准。

“执行环境” 提议也搁置了。尚不清楚,这种抽象层是否(1)能物有所值,带来对得起其复杂性的实质价值;(2)用 eWASM/EVM 来编写这些执行环境是否足够高效。

Justin

  • 轻客户端。研究和规范化工作大部分已经完成了。实现也相对简单。
  • 数据分片。研究基本上完成了,正在形成规范。数据可得性采样技术中有一些工程上的调整,但我们已经知道如何在委员会内部实现简单的数据分片。
  • 合并。预计针对合并的协调会很难,尤其因为要处理的是不断增生的 Eth1。
  • eWASM。Phase2(即,拥有一个 Eth2 核心虚拟机)对于以 rollup 为中心的短期路线图来说,不再具有最高优先级。在长期中,我估计我们会拥有一个核心 VM,WASM 是首要的种子选手。
  • 执行环境:在中期,rollup 及各种 VM 已足以替代 EE(从长期来看也有可能如此)。
  • rollup:rollup 技术本身并不是 eth2 的一部分 —— 它是一种新兴的 Laery-2 方案 —— 所以这个问题超出了我们研究团队的关切范围。

TXRX 团队在第 52 次 Eth2 实现者会议上说:

可执行信标链提议:直接将 eth1 链放到信标链上。这会降低通信复杂度,实现即时存取款,并为一些应用提供同步。下周将发布工作。

以太坊基金会会改变 eth2 的架构吗?

Danny

如果我们只有一条执行链(eth1),那么将这条链作为一等公民原生集成到信标链上能够提供最高的安全性,实现对分片数据承诺(sharded data commitments)的即时原生访问,并大幅降低共识难度。这是一个非常优雅的设计,而且目前正处于原型设计阶段(我们或许很快就能看到信标链合并测试网!)。到目前为止,我个人比较喜欢这种设计,但是几个月后我们将了解更多。


既然新的计划是放弃分阶段开发,转向轻客户端、合并和分片并行开发,那你认为三者的交付顺序会是怎样的?(哪些部分会更容易实现?)

Vitalik

我认为,轻客户端将在 2021 年实现,如果我们努力一下,甚至有可能赶在 2021 年年初实现。至于合并和分片,我预期我们将在 2021 年年底看到成熟的测试版本,但是不确定是否会主网上线。

Danny

轻客户端功能是在现有信标链基础上的简单升级,因此几乎可以肯定这会是第一个实现的。

除此之外,我并不是 100% 确定。我相信合并比分片容易实现,但是需要更多维护、测试和协调,因为这会影响到以太坊主网。鉴于这些复杂的因素,我目前还无法判定分片和合并的交付顺序。我想,这个问题的答案或许在第一季度末就会浮出水面。

Justin

交付顺序(相对来说比较有把握):

  • PoS —— “phase 0”
  • 轻客户端 —— “phase 0.5”
  • 数据分片 —— “phase 1”
  • 合并 —— “phase 1.5”
  • 高级虚拟机 —— “phase 2”

Eth1-Eth2 合并

到目前为止,Phase 0 的 ETH 押金存入速度还很缓慢。我认为,人们之所以犹豫要不要参与质押,首要原因是不知道这些 ETH 需要锁仓多久。开发团队有考虑过将合并的优先级放在分片之前吗?或者说,至少先在 eth1 和 eth2 之间建立一个桥梁?

Carl Beekhuizen

问题在于,eth1 和 eth2 分离会带来一些好处,因此我们得有所牺牲。

  • 由于 eth1 上交易和持有大量价值,改变 eth1 会比 eth2 慢得多。如果将 eth1 合并到 eth2 中,那么 eth1 肯定会大大拖慢 eth2 达到最终形态的速度。
  • 关于如何 eth1 和 eth2 之间建立桥梁,我们还需要完成许多开发工作。eth1 节点(至少)需要同步 eth2 上已经获得终局性的 epoch。

Dankrad

我们正在计划将合并和分片的规范独立开来。因此,合并不会受到 phase 1 启动的影响,而且可以在准备就绪时立即执行。

Danny

这些阶段不分先后顺序。分片数据和合并都是并行开发的。根据我的个人预测,合并虽然在许多方面可能不是很复杂,但是需要重大更改和非常密集的测试,因为它会影响高价值和高使用率的以太坊主网。

我不确定哪个会先准备好,但是合并当然有可能先于分片数据。


我注意到,phase 1.5 现在被称为“对接(Docking)”阶段,计划于 2021 或 2022 年实现。我们是否应该理解成 2021 年末或 2022 年初?

Danny

我们正在尝试为各个阶段定义新的名称和术语,因为在 phase 0 之后,各个阶段的顺序并不一定。

“对接”是一个很好的比喻,比 phase 1.5 更加直观。我们正在建立一个可持续的太空栖息地(信标链),当前的以太坊火箭(由 PoW 提供动力)最终将与信标链对接,并将信标链作为最终归宿。

另外,删除各个阶段后面的序号表明,这些阶段都是独立并行开发的。你可以在实现分片化的数据可得性之前,将 eth1 与 eth2 合并,反之亦然。正是这种独立性让并行开发成为可能。在不久的将来,我们甚至有可能看到 eth1-eth2 合并测试网……

Justin

eth1-eth2 合并很难,因为这涉及到协调 eth1 和 eth2,而且需要对抗 eth1 的不断生长。 我预期 eth1-eth2 合并不会在 2021 年发生。


有没有关于 phase 0 最低运行时间的讨论?

假设 phase 1 很快就会完成。为便于讨论,假设 phase 1 于 2021 年第一季度准备就绪。那么按计划来说,phase 1 是会在准备就绪时立即启动?还是必须等到 phase 0 启动后的 6/9/12 个月之后 phase 1 启动,才能更好地测试我们想要测试的一切内容?

Vitalik

我想说,“分片实现之前的最低运行时间是多久” 和 “合并实现之前的最低运行时间是多久” 是两个不同的问题。在稳定的情况下,分片随时都能上。如果不用等那么久,我会更开心。

至于合并,我会说这取决于社区,而非我个人,而且这个决定更难。需要让更广泛的以太坊社区包括 eth1 核心开发者、区块浏览器、交易所等,相信 PoS 的风险已经足够低,可以彻底转向 PoS。

我想说的是,在一年内实现合并是不现实的。即使完整的合并实现在 2 月从天而降,我也会建议大家耐心等到 11 月,先让人们相信 PoS 是安全的,这样人们才会放心将整个价值 500 亿的生态真正转移到信标链上。

Danny

一旦分片准备就绪(构建完成/经过测试/上线测试网等),我会支持立即参与分片(phase 1)。

至于合并(phase 1.5),我想先等信标链至少稳定生产 9 个月再说。在认定信标链足够稳定安全,可以成为以太坊的新家之前,我们确实需要花费较长一段时间来审视信标链。

其他

为 phase 2 设想的所有执行环境都能在 rollup 上实现吗?在创新方面,以 rollup 为中心的路线图有哪些不足?

Vitalik

是的,任何执行环境都能在 rollup 上实现。我想说的是,以 rollup 为中心的路线图更有利于创新,因为它的免许可性更高(任何人都可以使用任何规则创建 rollup)。因此,对于不同的团队(包括与当前核心开发流程关系不大的团队)来说,更容易加入进来。

这一方案的主要缺点是,由于不同 rollup 的内部执行规则完全不同,我们有可能会失去开发者网络效应。尽管如此,我的预测是,如果出现这种情况,很快就会形成一套主流标准,其它标准则趋于小众化。

Dankrad

从本质上来说,rollup 就是 “谁来确保正确执行” 的问题。如果没有 rollup,那么提供 Layer 1 安全性的实体都是相同的(eth2 上的验证者)。在 rollup 中,会有其他实体来提供安全性,有两种方式:为正确执行创建零知识证明(zkrollup —— 目前不适用于通用执行)(译者注:创建的其实是计算完整性证明,未必具有零知识性),或生成欺诈证明(optimistic rollup)。

从功能上来说,任何执行环境都能在 rollup 上实现。zkrollup 可以提供与链上执行相同的安全性,但是需要很多资源来创建证明,这会影响到抗审查性。optimistic rollup 主要牺牲的是终局性——作为用户,你无法知道交易是否得到最终确定,除非你将之前的所有交易都执行一遍(译者注:即使不运行所有交易,optimistic rollup 的状态挑战期也是有上限的,因此只要相应的挑战期结束,相关的状态就获得了终局性,而不是像 Dankrad 说的这样只有自己运行才知道)。

Justin:

任何虚拟机都可以在 rollup 上实现,只要对欺诈证明(针对 optimistic rollup 方案)和/或算术化(针对密码学 rollup 方案)友好即可。

以 rollup 为中心的路线图非常有利于创新,因为我们将看到许多无需与 eth2 核心虚拟机竞争的实验。前面已经说过,以 rollup 为中心的路线图确实(在安全性和可用性方面)有一些权衡。我认为,eth2 核心虚拟机(“phase 2”)终将实现。


事实证明,推荐使用的验证者硬件至少需要 16GB 内存 + 至少 1TB 的固态硬盘。原因有两个:一个是因为,在网络无法获得终局性的时候,节点的资源使用量会大幅飙升;另一个是:为了对 eth1 的最新块投票,一般都建议使用 geth 客户端。

如果每一个验证者节点都要运行 Geth 客户端,或至少有能力运行它,为什么不让每一个信标链区块都包含一个新的 eth1 区块,让信标链区块生产者更快地替代矿工?

Vitalik

如果每一个验证者节点都要运行 Geth 客户端,或至少有能力运行它,为什么不让每一个信标链区块都包含一个新的 eth1 区块,让信标链区块生产者更快地替代矿工?

这是个事实,所以我们也正计划这样做(译者注:“planning on doing”的项目不明,Vitalik 说的可能是新路线图的思路,即让信标链区块本身包含(执行分片的)交易,而不是让信标链区块包含现在的以太坊的区块)

Justin

两个原因都只是暂时的,我估计能在 2021 年解决:

  • 缺乏终局性所导致的崩溃:客户端会找出办法来妥帖地处理无终局性的情形。(现在,终局性可以说是被拿来当拐杖用了。)我们已经计划开启一个长期运行的测试网,并且是禁掉终局性的,以此来强迫客户端提升性能。
  • Eth1 区块投票:以明文的 Eth1 区块头为基础构建一个简单的层级就能解决这个问题 —— 因为同步着的轻客户端就能下载所有区块头。具体来说,只需创建一个押金证明(即押金与 Eth1 区块头配套的默克尔证明)的 gossip 广播网络即可。

如果每一个验证者节点都要运行 Geth 客户端,或至少有能力运行它,为什么不让每一个信标链区块都包含一个新的 eth1 区块,让信标链区块生产者更快地替代矿工?

另外,要求区块提议者维护一个 Eth1 全节点,让我觉得很不舒服,这完全违背了我们 “在树莓派上就能运行一个 Eth2 验证者” 的设计目标。

(完)


原文链接: https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/
作者: EF Eth2 Research team
翻译&校对: 闵敏 & 阿剑

 
0 人喜欢