译者按:北京时间11月18日晚9点,以太坊基金会研究团队在reddit论坛进行了第五次AMA,主题包括以太坊2.0创世和路线图等。ECN对问答进行了筛选整理,并且编译成文。需要注意的是,核心研发者对于某些话题存在自己的看法和推测,为避免曲解,请以随附的原帖链接为准。
路线图
Q:阶段0上线之后,现有规范哪部分会发生较大改变?
Vitalik Buterin:
在过去几个月中,关于路线图有许多事情在演变,我认为在此总结一下这些变化是非常有必要的 (这会影响到接下来两年的规范编写):
以Rollup为中心的路线图。将“阶段1”(Phase 1) 简化为数据分片 (供rollups使用),使其更易于实现。
简化eth1和eth2的合并。大致是根据这份路线图而来,但是现在 1) eth1交易能够直接在信标链上进行,而不是分片; 2) 得亏optimistic执行,合并期间的执行中断时间可能会被大大缩短。这使得合并过程被简化,目前已经开始PoC阶段。
各阶段并行进行。这是最新的计划,也许 (其重要性) 也是最被低估的。可以分成 1) 轻客户端支持; 2) 数据分片 (也即“阶段1”); 3) eth1和eth2的合并,这三个过程将独立推进,从而使得每个部分能够被独立实现,而不需要考虑其他部分的研发进度。
这些所有改变的初衷都是为了加快eth2真正可用的进程。轻客户端的支持可能会在分片之前实现,使得信标链能快速可用 (为eth1提供共识)。经过简化的合并过程意味着eth1和eth2的合并会比之前预设的要快。各阶段并行进行,可以进一步加速合并,甚至有可能在分片实现之前就能进行合并。
作为rollup中心策略的一部分,“阶段2”(phase 2, 也即分片执行) 目前来看没有那么重要。主要是因为阶段2的终极目标 (即实现高TPS) 能够在数据分片 (阶段1) + rollups的基础上实现,甚至效果更好。而分片+rollups会在阶段2之前实现,因此目前在这个部分集中精力是更好的选择。也就是说,我们不会采取任何不可逆的举动,使得在将来无法添加本地分片执行功能。如果将来有需要的话,这个路线图能够随时兼容分片执行功能。
太长不读:eth1和eth2的合并到来得越快,PoS实现得越快,大家也就能更快地见到10万TPS的以太坊。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gckkkkk/?utm_source=share&utm_medium=web2x&context=3
Justin Drake:
长期来看,信标链的大部分逻辑可能会发生比较大的变化:
轻客户端支持
秘密提议者选举
使用VDF提供无偏随机性 (unbiasable randomness)
为合并过程改进eth1投票
信标区块数据可用性采样
升级BLS聚合签名为后量子替代方案 (post-quantum alternative)
Casper FFG升级为Casper CBC
用算术友好的哈希函数替换SHA256 (如果发现SHA256不安全,则使用更安全的函数)
调整状态
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpqsg7/?utm_source=share&utm_medium=web2x&context=3
Q: 根据当前轻客户端、合并和分片的并行路线,实现的顺序可能如何?(哪个部分更快/更容易实现)
Vitalik Buterin:
轻客户端支持很容易在2021年实现,如果我们努把力的话2021年初也不是没有可能。合并和分片我预计我们应该会在2021年末看到成熟的测试版本,尚不确定2021年能否在主网进行合并和分片。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcprwsh/?utm_source=share&utm_medium=web2x&context=3
Justin Drake:
可能的交付顺序:
PoS—"phase 0"
轻客户端—"phase 0.5"
数据分片—"phase 1"
eth1和eth2合并—"phase 1.5"
内置VM—"phase 2"
阶段0.5很有可能会在2021年实现,理想情况下阶段1也可能在2021年实现。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcps4a9/?utm_source=share&utm_medium=web2x&context=3
Q: 阶段0最短需要运行多久?阶段0之后的阶段是根据固定的时间间隔来实现还是一旦准备好就上线?
Danny Ryan:
阶段1 (分片) 一旦准备好就会上线,包括搭建、测试、测试网等等。
至于合并阶段 (phase 1.5),我希望等到信标链在产品环境中平稳运行至少9个月之后。我们真的需要一段时间来观察产品环境中的信标链表现,才能判断其是否稳定和安全,足以成为以太坊的新归宿。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpsag6/?utm_source=share&utm_medium=web2x&context=3
Vitalik Buterin:
“在分片之前的最短运行时间”和“在合并之前的最短运行时间”是不一样的。分片在稳定之后就可以上线。
至于合并,我只能说这却决于社区而不是我,这是一个非常艰难的决定。广大的以太坊社区,包括eth1核心开发者、区块浏览器、交易所等等都需要PoS的安全性得到足够的确认,才能完全迁移过去。
对于合并这个方面,我认为一年之内不现实。即使明年2月已经完全可以实现了,我也建议我们先稍安勿躁,观察到十一月或之后,以让大家信服PoS的安全性,这样大家才能放心地将这个承载了500亿美元地生态系统真正地迁移到信标链。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpqvdu/?utm_source=share&utm_medium=web2x&context=3
Q: 根据第52次实现者会议TXRX团队关于可执行信标链的提议,EF会更改以太坊2.0的架构吗?
Danny Ryan:
如果我们继续使用单一的执行链 (eth1),那么将其本地集成到信标链中是最安全的选择,并且能够本地访问分片数据,也减少了共识的复杂度。这是一个非常优雅的设计,目前相关的原型工作正在进行中 (可能很快就能迎来信标链合并测试网!)
目前我个人很赞成这个设计,但要等到几个月之后再看实际效果。
Dankrad Feist补充:
补充一下,在我们实现无状态Eth1之前,这是唯一可能的设计。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcprwq1/?utm_source=share&utm_medium=web2x&context=3
Q: 在当前的发展路线中,是否还有领域是团队尚未明晰其实现方式和可行性的?
Justin Drake:
数据分片以及eth1和eth2的合并方面,研究工作已经完成,并且风险也比较低,目前主要是工程和协调问题。
我认为我们最终需要一个内置的虚拟机 (也即所谓的phase 2) 来取代现有的EVM。如果内置虚拟机会是zkVM (SNARK友好的EVM替代方案) 的话非常不错。Eth2 zkVM的研究与工程交叉领域仍然存在重要的开放问题。
Dankrad Feist:
从研究的角度来看,我觉得我们已经有具体计划的阶段0、1、2都没有难以克服的挑战。但是在阶段1和阶段2中我们还有执行方面的问题需要解决,分别是数据可用性 (阶段1)、无状态执行以及是否会使用类似eWASM的新虚拟机 (阶段2)。
从长期的路线来说,我们还面临量子安全性挑战。但还需要进一步研究和探索。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcldr0w?utm_source=share&utm_medium=web2x&context=3
研发状态
Q: 在不同的以太坊2.0组件中,包括轻客户端、分片、合并、eWASM、执行环境和rollups等等,哪些领域正在进行积极研发?距离实现还有多远?
Justin Drake:
轻客户端:研究和规范工作基本完成,实现起来相对容易。
数据分片:研究工作基本完成,正在进行规范编写。数据可用性采样方面还存在工程挑战,但是我们有更简单的解决方案,即只具备委员会的数据分片。
eth1和eth2的合并:我预计这个部分的协调难度会很大,尤其是在僵化的eth1中。
eWASM: 阶段2 (即内置的Eth2 VM) 在以rollup为中心的中期策略中不是当务之急。从更长远的角度来看,我认为我们会有内置的虚拟机,而正在成为区块链标准的WASM则是候选之一。
执行环境:Rollup虚拟机在中期 (甚至是长期) 来看是执行环境的一个足够好的替代方案。
Rollups:Rollups并不是eth2共识的一部分,而是第二层基础设施的迫切需求,因此不属于EF Eth2团队的范畴。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpttnn/?utm_source=share&utm_medium=web2x&context=3
创世&质押
Q: 如果在11月24日没有16,384名验证者进行质押怎么办?能否改变最低验证者数量的参数以确保eth2能够在12月1日创世?
Danny Ryan:
关于该问题这个issue里有一些讨论:
https://github.com/ethereum/eth2.0-specs/issues/2134
我个人认为对于首次上线来说,合约中有超过10万的ETH就足够了,降低这个阈值以避免合约中的ETH被锁定过长时间是合理的。对于早期参与者来说,奖励会非常高,也可能吸引后来的验证者。
但是在11月24日或者12月1日就对这个参数进行修改的话未免显得有些激进。我们还不清楚接下来几周的情况,最好还是保持观察。
在上面链接的讨论中,客户端团队似乎倾向于12月按兵不动,如果有需要的话1月初再修改参数。这似乎是可取的。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/
虚拟机
Q: eWASM目前的状态是什么?eWASM或者WebAssembly在以rollup为中心的路线图中是否有意义?
Vitlaik Buterin:
我将给出一个艰难但诚实的答案:从短期到中期,eWASM在目前的路线图中已不再加以强调。
主要原因在于:
由一个虚拟机变为两个也增加了一倍共识复杂度。
我们计划中已经有很多事情,而相比PoS+sharding路线图中部分,切换虚拟机带来的收益颇低。
eWASM最初设想的许多益处 (即以接近本地的速度执行,消除预编译需求) 尚未实现。尤其是,事实证明很创建运行时速度快且安全的编译器。
事实证明,在现有的EVM中可以高效地实现许多事情,只是需要一定技巧 (例如weierstrudel)
目前, EVM 384 能够帮助我们消除大量预编译需求。
因此,在短期内,eWASM存在的可能性就是作为rollups的内置执行引擎 (因为在rollups内你可以使用任何状态转换函数,只需要为其写一个欺诈证明)。
长期来看,我认为还是有必要并且有充分理由对EVM进行升级,例如,长期来说我们需要ZK-SNARK虚拟机执行,WASM比起EVM效率更高,而专门为设计的对SNARK友好的WASM子集会更加高效。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpr9ry/?utm_source=share&utm_medium=web2x&context=3
EIP-1559
Q: 我感觉EIP-1559是ETH 2.0规范的一部分,且会在阶段1实现?
为了在ETH 1.0实现EIP-1559已经有很多工作进行了。在ETH 1.0和ETH 2.0间是否有重叠的部分?是否可以厘清这两部分的工作?它们之间会相互影响吗?
Danny Ryan:
EIP-1559属于ETH 2.0规范中分片数据的费用市场部分。按照计划,ETH 1.0的交易执行会采用相似的费用销毁和gas价格机制来定价分片数据。如果1559能上线主网的话,这会很棒。在ETH 1.0与ETH 2.0合并之后,1559式的交易将在eth1执行里可用,分片数据的1559式费用市场会建在eth2的数据分片里。
理论上,在ETH 1.0和ETH 2.0间是有很多重叠部分的,因此今天在eth1主网上为1559做的研发努力大多都适用于eth2数据市场里使用这项工具的设计与理解。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpr1d5/?utm_source=share&utm_medium=web2x&context=3
Justin Drake:
是的,逻辑近似EIP-1559的费用与价格机制 (即费用销毁) 会成为阶段1的一部分。
Eth1上的EIP-1559实现可能为社区提供这些机制更清晰的图景,并为Eth2中的费用销毁降低风险。我希望在Eth1可以进行大量的协调工作 (例如推动教育以及与钱包的结合)。
ETH 1.0与ETH 2.0的费用销毁机制会稍有不同,且会并存一段时间。我们的构想是在ETH 1.0和ETH 2.0合并后,ETH 2.0的费用销毁机制会取代EIP-1559。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcprehi/?utm_source=share&utm_medium=web2x&context=3
执行环境&rollups
Q: 为阶段2设想的所有执行环境 (Execution Environments, EE) 能否都在roll-up上实现?从创新来看,以roll-up为中心的路线图有什么缺点?
Vitalik Buterin:
是的,所有的EE都会成为rollup。我会说以rollup为中心的路线图更有利于创新,因为它更“无须许可”(任何人都可以以任何规则创建一个rollup),因此它使得各种团队都可以参与,包括那些与当前核心开发过程不相近的。
这个方法的主要缺点在于我们有失去开发者网络效应的风险,因为现在很多不同rollup的内部执行规则具有根本性的区别。也就是说,我预计如果这个路线图要执行下去,很快就会有一套占主导的标准,而其他的标准只能迎合一些小众社区的需求。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpqbny/?utm_source=share&utm_medium=web2x&context=3
Dankrad Feist:
rollup本质上指向一个问题——谁来确保正确的执行。在没有rollup的情况下,在Layer1提供安全性的和Eth2上的验证者还是相同的实体。而在rollup里,实体变成了为正确执行生成的零知识证明 (zkrollup目前还无法在通用执行中应用) 或欺诈证明 (optimistic rollups)。
执行环境的任何功能都可以通过Rollup实现。zkrollup提供链上执行一样的安全性,但是它们在生成证明的时候需要大量的资源,而证明是抗审查的。Optimistic rollup主要是在最终确定性上做了折衷:作为一名用户,除非你执行当前交易之前的所有相关交易,否则你无法得知此笔交易是否被敲定了。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpqt52/?utm_source=share&utm_medium=web2x&context=3
无状态
Q: 一个关于PoS的问题:无状态ETH 1.0是否仍是一个必需先决条件?
现在的推荐验证者配置是至少16gb的内存+至少1tb的固态硬盘,原因有两个:一是以防
当区块长时间无法敲定时资源使用会大幅度增加,二是因为运行geth节点的人会非常倾向于给ETH1.0的区块头投票。
Justin Drake:
这两个原因都是暂时的,我预期会在2021年得到解决:
区块无法敲定时所需资源的激增:客户端想办法解决无法敲定的问题是一个好方法。(现在最终确定性理论上会被用作一个支点)。我们现在有一些计划 (cc /u/protolambda),我们将搭建一个长期运行的测试网,其中设置为网络无法敲定区块,从而强行促使客户端进行优化。
给Eth1投票:在一般的Eth1区块头同步轻客户端上搭建一层数据层就足以解决这个问题了,这层数据层相当于是个gossip网络,用来广播存款证明 (即在Eth1区块头中的存款与相应的默克尔证明)。
Q: 如果几乎每个验证者节点都运行geth或至少具备运行geth的能力, 为什么不让每个信标区块都包含一个新的eth1区块,让信标区块生成者更快地替代矿工?
Justin Drake:
我对要求区块提议者运行一个Eth1全节点这个看法感到非常反感。这完全是与让Eth2的验证者可以在树莓派上运行节点这一设计目标相悖。
Q: 我不认为这个目标是合理的,因为现在32个ETH是最低质押金额,这是个巨大数额,而完整实现PoS之后几乎可以肯定ETH价格会升高,现实中,持有32个ETH的人其实是打算质押在质押池里 (去中心化当然是最好),而有能力运行多个节点的人才会自己动手。
有多少验证者会真的用节点去冒险,只是为了省200美元或基本的nuc空间?个人来说,我是不会将我的ETH用一个树莓派质押在主网的。
Justin Drake:
32个ETH的最低质押金额与此无关,原因有两个:
1. 如果持有远少于32个ETH,可以质押在一个m-of-n池里
2.我们要把关注点放在奖励上,而不是质押金额。实际上,我们想将收益率尽可能提高以保证验证者是有利润的。要求运行一个Eth1节点的话,他们肯定会反噬收益,甚至收益可能为负,如果你有参与m-of-n池的话 (参考第1点)。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpt183/?utm_source=share&utm_medium=web2x&context=3
增发
Q: ETH的最大供应量是多少?
Vitalik Buterin:
我认为现在是个很好的机会,可以在这里提出一些不太受欢迎但却很重要的观点。实际上,在接下来的两年中,以太坊的生态系统将处于快速转型的状态。譬如,十六进制树结构 (hexary trie) 将被二进制树结构 (binary trie) 代替,PoW将被淘汰及被PoS取代,我们将添加一种从未用过的新技术“数据可用性采样”。除此之外,以太坊的经济模式正从三个方面进行彻底的改革:(i) PoW -> PoS, (ii) 引入EIP 1559, (iii) 用户活动从L1转移至L2
以太坊生态系统有个长远而坚定的目标:成为一个稳定且可靠的系统。但是大家拥护以及支持以太坊,不能因为坚信现有的规则 (经济或技术上的) 值得我们不惜一切代价去维护而去支持以太坊,而是因为我们相信以太坊生态系统将来要往什么方向发展。在未来两年,主要任务就是稳定且珍惜我们将要构建的东西。直到那时,以太坊的参与率便证实了我们的预测:这个路线图是值得我们支持的。一旦升级完成,我们的网络最终会变得更有效率、稳定、强大,并成为全球经济重要组成部分的基础。
在接下来1-2年中或直到Eth1->Eth2合并,发行计划为每年约470万;等到PoS机制完全开始运行之后,减去已销毁的ETH (销毁量甚至超过发行量) 每年的发行量约0-200万。我认为给出其他任何不同的答案都意义不大。也就是说,我确实希望阶段0代码已经完成这一事实 (基本上只等人们存ETH进存款合约这部分了) 可以很大程度上化解转移过程中的风险,而不像以往甚至六个月前风险那么大!
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcprfwj/?utm_source=share&utm_medium=web2x&context=3
Q: ETH的总发行量将会是多少?
Justin Drake:
当Eth1和Eth2合并之后,PoW链就会停止增发ETH。而PoS链的ETH增发事实上会限制在每年100万左右。我希望EIP-1559的手续费销毁设置将会更加缓解PoS增发带来的通胀压力。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpl66h/?context=3
测试网
Q: 有没有计划启动另一个测试网?并且按照当前Eth2主网规范,其中设有同样数量的验证者,以便社区可以实时了解加入创世的盈利水平?
Justin Drake:
Pyrmont测试网昨天发布了:)
更多关于Pyrmont的信息可阅读《Eth2更新速览#20》
https://pyrmont.launchpad.ethereum.org
https://pyrmont.beaconcha.in
https://pyrmont.eth2.wtf
Q: 我知道,我有参与测试网。但Pyrmont测试网可以容纳10万名验证者,会有计划推出一个1.6万验证者的公共测试网吗?
Justin Drake:
这我不太清楚,但是质押奖励可以借助类似这样的工具来计算:
https://www.stakingrewards.com/earn/ethereum-2-0/calculate
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcpx3dr/?utm_source=share&utm_medium=web2x&context=3
支线
Q:我们可以借助rollups来实现透明的分片吗?(也就说开发者和终端用户甚至都感觉不到它的存在)
Vitalik Buterin:
当然可以!以rollup为中心的路线图其中一个好处就是:它给支持跨分片同步通信的rollup更多的实验空间。甚至不需要分片,只有一个单独的大型定序器 (mega-sequencer) 单线程处理所有东西。也就是说你可以在rollup上拥有每秒交易处理数百甚至数千笔 (与杀手级以太坊的功能相当) 的同步域 (synchronous domains),而不会出现使得整个基础层链都以该种方式运作的集中化风险。
来源:
https://www.reddit.com/r/ethereum/comments/jvkoat/ama_we_are_the_efs_eth_20_research_team_pt_5_18/gcprawm/?utm_source=share&utm_medium=web2x&context=3