编者注:北京时间6月23日晚,以太坊基金会研究团队在 Reddit 论坛进行了第六次 AMA,包括以太坊共识机制、质押、合并、分片、Layer2 、状态管理及以太坊经济机制等众多主题。ECN 对大部分问答进行了筛选整理,并编译成文。需要注意的是,基金会研发团队成员就某些话题存在个人的看法和推测,为避免曲解,请以原贴为准。
由于篇幅较长,本文将作上下两期发布,本期主题包括共识机制、合并、分片、质押及 Layer2,下期主题将包括状态管理、无状态性、经济机制、EIP-1559及密码学等。
Reddit AMA链接:https://www.reddit.com/r/ethereum/comments/o4unlp/ama_we_are_the_efs_research_team_pt_6_23_june_2021/
共识机制
01
bcd_is_me 提问:
以太坊设置了难度炸弹以防止矿工对 ETH2.0 进行分叉 (为了继续挖矿他们很可能会分叉)。怎么阻止他们在 (潜在) 分叉中拆除难度炸弹?
网友回复:
难度炸弹的目的并不是为了防止分叉,而是确保分叉。我们需要担心的是以太坊会不会走比特币的老路,由于社区对分叉过于忌惮而停滞不前。通过增加难度炸弹,无论如何都需要进行硬分叉,要么切换到 PoS 共识,要么进行 PoW 分叉。
基金会 Carl Beekhuizen 回复:
基本上是这样的。如果人们想要继续在 PoW 上挖矿,他们仍然需要分叉。这避免了”默认“选项,每个人在某个时间点都需要做出选择。
02
IronCena 提问:
你们对混合 POS/POW 机制怎么看?
Vitalik 回复:
在我看来这不适合以太坊。如果 PoS 的实施结果比 PoW 好,那么也会优于混合机制。我认为没有理由把 PoS 与 PoW 看作是一种凹形关系,而更像是线性关系。也就是说,对于有许多参与者希望“与物理实在具有直接联系” (或其他原因) 的区块链社区来说,混合 PoW/PoS 可能不失为一种好方法,同时还能提高安全性。
03
Bob-Rossi 提问:
是否讨论过降低 PoW 链区块奖励来抵消 PoS 信标链增发的奖励,防止整个以太坊网络发行量的增加?主要是因为好奇心,我想不会真实发生这种情况,因为矿工们会竭力反击。
基金会 Justin Drake 回复:
据我所知,没有想过降低 PoW 链的区块奖励。附带说明一下,我相信我们有最好的长期货币政策:最低必要发行量 (minimum viable issuance),同时为我们提供有保障的安全性和最高可行的稀缺性。PoS 的短期增发很大程度上只是宏观计划中的微弱干扰。
基金会 Danny Ryan 回复:
一直都有很多提议讨论在 PoS 到位之前降低 (甚至是提高) PoW 的发行。基于我的了解,这些提议在很大程度上遭到了直接抵制,认为此类辩论和改变只会分散注意力,并可能导致合并延迟或是面临更大的风险。
基金会 Carl Beekhuizen 回复:
我们没有这种计划。PoW 链的价值和安全性并未因为信标链的发布而发生改变,我们仍然需要为矿工维护网络安全的服务支付费用。
合并 (The Merge) 及发展规划
01
squishchaos 提问:
就研究工作而言,PoS 的合并工作还有什么障碍?在分片上线之前还有什么待解决的问题?
Vitalik 回复:
在我看来已经没有研究上的问题了。现在已经有了完整的规范,目前只剩下开发和测试工作。
现在分片也有了理论上可实现的规范,但还处于早期开发和迭代阶段。所以只是很多繁重的工作,还有很多关于 p2p 子网的细节,/u/protolambda 在这项工作的领导方面非常出色。
02
bcn1075 提问:
在合并完成之后,是否还会有类似冰河世纪 (难度炸弹) 的方式来强制升级?
基金会 Justin Drake 回复:
合并之后不会再有类似炸弹的事物。其收益和代价不相符。利益相关者和社区之间的一致性明显强于矿工和社区之间的一致性,因此不需要通过炸弹之类的事物来武装共识参与者。此外,在信标链中每个 slot 是规律的 12 秒,尚不清楚应该如何合理安放炸弹。
根据我的超良货币观点,合并是一个自然的谢林点,从反复扩展的、有时间限制的算法发行到无时间限制的算法发行。合并可能是最后一次对宏观发行政策的干预 (有计划将活跃验证者的数量限制为 2^20 或 2^19,这本身就为日发行量设置了上限)。
基金会 Danny Ryan 回复:
在这一点上存在一些争论,我个人认为现在是时候停用这种机制了。还有一些关键的升级待实现 (分片和无状态性),但我相信有足够的需求和动力来完成这些升级,而不必担心停滞。由于完全从 PoW 切换到 PoS,这些升级的对抗性力量也减少了。
03
bchain 提问:
分片会在合并完成之后的 2022 年部署。分片之后是什么计划?2023年我们能期待什么?
基金会 Justin Drake 回复:
”2022 年”听起来很合理,但与往常一样,日期只是推测。好消息是,表达性智能合约 rollups (例如 Arbitrum, MatterLabs 和 Optimism的产品) 应该会在 2022 年之后提高可扩展性,从而减少实现分片的压力。
基本数据分片之后是一系列安全性升级:秘密领导人选举、托管证明、数据可用性采样、无偏随机性。Vitalik 在这条推文中对路线图进行了可视化。
基金会 Danny Ryan 回复:
合并完成之后主要是分片和无状态性/状态管理这两大升级。我目前不确定哪个会先发布,因为它们是非常独立的工作流和升级。在那之后,我想我们可以回到对预编译的争论上:)
分片
01
Liberosist 提问:
我有一些关于数据分片的问题:
-
在数据分片实现后,数据可用性和执行的费用市场是否会互相独立?
-
一层的智能合约 (及其开发者) 如何从数据分片中受益?
-
假如数据分片的安全性要基于委员会,你们预期数据可用性采样 (DAS) 会延迟多久?
基金会 Danny Ryan 回复:
1、问题一:是的,到时会有一个类似 1559 的机制使数据进入数据分片,这与应用层的执行费用市场是独立开来的。这是两个独立的资源,因此费用市场将区分开来并独立定价。也就是说,在某些情况下,由于应用层和数据层的使用模式是通用的,在某些情况下对执行的需求可能会和数据需求相耦合。因此在这种情况下,其中一方价格飙升可能会同时引起另一方价格飙升。
2、问题二:我们预计从数据分片中受益的主要 L1 合约会是通过使用 L1 的数据达到扩容效果的 L2 协议 (即 rollups)。除了 rollups,很可能还有其他特定应用对成本低廉的 L1 数据有所需求。在我看来,一旦以太坊开发社区获取了新的资源,他们会很快找到创新的方法来使用 (并滥用) 它!
3、问题三:所幸 DAS 可以在不进行共识分叉的情况下。这是因为它本质上是对分叉选择的附加过滤器,可能会限制区块树的某些分支。因此,DAS 可以在早期进行实验,并随时间推移完全实施。基于委员会的安全将首先实现,或与 DAS 同时实现,因为我们将会严重依赖委员对信标链的承诺,为系统核心部分提供分片数据的信息 (因此能够在 EVM 中使用)。至于DAS,经过不断的研发和规范简化,我其实不再那么担心实现的复杂性了。DAS 在很大程度上重用了现有的工程组件,例如用于采样的分片 gossip 通道 (尤其是在主要的 push 而不是 pull 模型中)。
基金会 Dankrad Feist 回复:
在数据分片实现后,数据可用性和执行的费用市场是否会互相独立?
分片的概念是我们不必拆分 gas 市场。每个分片都有自己的 gas 市场,添加另一个分片不需要降低其他分片的 gas limit。
一层的智能合约 (及其开发者) 如何从数据分片中受益?
只有使用数据分片才能从中受益。要么部署会使用数据分片的 L2 协议,要么在你的合约中以其他方式利用数据可能性。如果不使用数据分片,一个反常的结果就是你的交易可能会变得更贵。原因是 L2 将能够更有效地利用 L1 区块空间,因此长期来看会推高 gas 价格。
假如数据分片的安全性要基于委员会,你们预期数据可用性采样 (DAS) 会延迟多久?
好消息是 DAS 只需要基础 (诚实多数) 数据分片的软分叉。因此基本上可以在客户端团队准备就绪后立即添加。我希望它能够在分片部署后的 12 个月内实现。
02
redpnd 提问:
分片上线之后 rollups 会发生哪些改变?
Vitalik 回复:
Rollups 可以将分片用作数据层 (短期内分片只提供数据存储功能)。这会使得 rollups 的成本降低 100 倍以上,并使现有的”侧链“项目更容易转变成为 rollups。
基金会 Justin Drake 回复:
数据分片会首先被引入。Rollups 能够将其所有的交易数据存放在数据分片中,并使用 Eth1 的 EVM 来生成 SNARKs (就基于 SNARK 的 rollups 而言) 和欺诈证明 (就optimistic rollups 而言)。
Staking (以太坊质押)
01
u/mm1dc 提问
我有一个关于提款的问题。
届时开放提款功能,能否支持部分提款?比如说,提出质押所得利润,而保留 32 ETH 继续参与质押?我听说流程为:退出、提款然后重新质押 32 ETH 生成新的验证者节点。这样的话周期太长了,而且对用户很不友好。
基金会 Justin Drake 回答
届时开放提款功能,能否支持部分提款?比如说,提出质押所得利润,而保留 32 ETH 继续参与质押?
这种从一个验证者余额中提到另一个账户中的部分提款被称为“资产转移” (transfers)。正如你所指出的,"transfers"通过解锁验证者余额中除 32 ETH 之外的“超额余额” (excess),从而提高质押的资本效率。
至于你的问题,没错,最终 Eth2 会支持 ”transfers“。然而正如这条推文所说,"transfers" 功能不会在合并时就立即开放。这是为了降低合并难度,尽快实现合并。
我听说流程为:退出、提款然后重新质押 32 ETH 生成新的验证者节点。这样的话周期太长了,而且对用户很不友好。
我们确实计划实现信标链内部”transfers“功能。届时,将不再需要退出、提款和重新激活的过程。
基金会 Danny Ryan 回答
当提款功能开启之后,对余额中 32 ETH 之外的资产进行提款肯定是一种选项。验证者集的稳定性对客户端架构 (例如,在内存中缓存和处理的共识实体较少) 以及质押的用户体验都有好处。
这个功能的细节有待研究,但我特别喜欢 Jim McDonald 的提议:允许区块提议者在生产区块时发出信号,提取余额中 32 ETH 之外的”超额余额“ (提议链接:https://ethresear.ch/t/simple-transfers-of-excess-balance/8263) 这个提议非常好,因为它不需要添加一个新的信标链操作,也不需要处理这些操作所带来的市场影响。但是用户体验方面的缺点是:验证者节点的超额余额提款相对较少 (这有也意味着系统的负载较少)。
02
u/sggts04 提问
-
合并后有没有可能降低运行一个验证者节点所需的 ETH 门槛?我知道此前定下 32 ETH 限制是,一枚 ETH 大约 100-200 美元,那么现在价格飙升了,运行一个验证者节点的门槛降低到 2-4 个 ETH 是否有意义?
-
Vitalik 曾提到,以太坊分片可以轻易扩展至 64 个分片以上。并且 64 只是你们正在努力的目标,那么一旦这个目标达到了,你们认为分片数可以增加至多少?
Vitalik Buterin 回答
合并后有没有可能降低运行一个验证者节点所需的 ETH 门槛?我知道此前定下 32 ETH 限制是,一枚 ETH 大约 100-200 美元,那么现在价格飙升了,运行一个验证者节点的门槛降低到 2-4 个 ETH 是否有意义?
至于为什么当前的验证者节点运行门槛要设置在 32 ETH,请参阅规范注释的这一部分。不幸的是,如果我们将数量减少那么多,很可能的结果是,这个链将变得更加庞大,更难处理,从而降低人们验证它的能力。
我认为的方法有:
1、接受大部分人无法参与基础层质押这一事实,并努力实现最大程度去中心化的质押池 (这些质押池内部使用多方计算)。
2、减少存款大小,要知道共识层的 RAM 存储要求很容易膨胀到 8-16 GB;同时,将 epoch 的长度增加至如 256 个 slots,将牺牲敲定的时间。
3、使用 ZK-SNARK 技术来实现轻量级的验证者;一种称为聚合器的特殊参与者将负责提出聚合签名证明。
基金会 Justin Drake 回答
合并后有没有可能降低运行一个验证者节点所需的 ETH 门槛?
降低运行一个验证者全节点的最低门槛有两个关键优势。首先,这降低了成为个人质押者的门槛,更加有利于去中心化。其次,这增加了验证者节点的数量,从而解锁了更多分片的可能性。从长远来看,我们肯定会努力降低这个门槛,但这是个艰巨的工程挑战 (见下文)。
运行一个验证者节点的门槛降低到 2-4 个 ETH 是否有意义?
问题是每个增量验证者节点都会对信标链施加一些非零的计算负载 (如 CPU 和 RAM 负载)。因此,为了让信标链本身去中心化,我们需要限制验证者的数量。就目前而言,信标链可能可以安全地支持 1 M,而无需客户端实现者进行太多工作。(目前我们大概有 18 万个验证者节点。) 虽然在没有重大突破的情况下,2 个 ETH 或 4 个 ETH 的要求听起来相当激进 (当我们升级至后量子聚合签名时就算有重大突破了),但我们或许可以通过突破 BLS 签名以及客户端 RAM 优化的极限,将门槛降低至 16 ETH 甚至是 8 ETH。
Vitalik 曾提到,以太坊分片可以轻易扩展至 64 个分片以上。并且 64 只是你们正在努力的目标,那么一旦这个目标达到了,你们认为分片数可以增加至多少?
虽然增加分片的数量绝对有可能 (早在 2018 年我就指出,我们可以利用 BLS 签名将分片数量增加至 1024 个),但是“轻易”确实有点夸大其词。原因是为了更好的用户体验,我们现在给自己施加额外的约束,即对每个分片区块和每个 slot 进行交联。这种低延迟的交联在信标链上相对密集,因此我们可能会逐步增加分片的数量 (例如,增加到 128,再到 256 等),而不是一下子从 64 个增加到 1024 个分片。
03
u/TheEvilMonkeyDied 提问
一旦人们意识到质押带来的巨大好处,当需求大到制约验证者的地步时,是否需要质押候补名单?
基金会 Justin Drake 回答
当需求大到制约验证者的地步时,是否需要质押候补名单?
已经有一个候补名单了!现在等待激活队列中大约有 5,500 个验证者节点。每天约有 900 个验证者节点被激活,因此目前需要等 6 天。
我确实认为合并后会新增大量的验证者节点,原因有二。首先,如果合并进展顺利,验证的风险将大大降低。其次,验证者 MEV (最大可提取价值,maximal extractable value) 将显著增加,包括交易费用的未销毁部分和一些外部支付 (如 Flashbots 贿赂)。这很有可能将质押的 APY 从 个位数推高至两位数。这里有一个计算 APY 的电子表格,自行输入自己的质押数量来预测吧:https://docs.google.com/spreadsheets/d/1FslqTnECKvi7_l4x6lbyRhNtzW9f6CVEzwDf04zprfA/edit#gid=0
基金会 Danny Ryan 回答
有一个进入和退出的队列。目前,每个 epoch 能够进入 (或退出) 4 个验证者。一天大概有 225 个 epoch,所以每天大约可以激活 900 个验证者节点。
可以在浏览器 https://beaconcha.in/ 中看到,目前在等候被激活的队列中有 5000 多个验证者。所以清空当前队列大约需要 6 天。信标链创世以来,我们见过队伍非常长的时候,也见过排队验证者数量接近零的时候 (能够快速激活)。
随着大家对质押的需求起起落落,我完全可以预料到这种情况会出现大幅波动。从长期来看,这将达到平衡,我预计验证者排队数量大部分时间都会徘徊在零附近。
04
u/Clear_Nose_4265 提问
对于中心化交易所 (CEX) 正成为新银行,你们有何看法?有没有办法以去中心化的方式质押少量的 ETH?我担心 CEX 的权力会太大。
基金会 Justin Drake 回答
有没有办法以去中心化的方式质押少量的 ETH?
当然。我们投入了大量的精力去设计信标链,使得验证者节点对 MPC 友好,这意味着多方 (例如,32 个 ETH 由 8 个参与方持有,各持有 4 个 ETH) 可以对单个逻辑验证者节点的控制权和所有权进行分割。基础设施的搭建还处于起步阶段,但它即将到来!
可扩展性/Layer2
01
u/Liberosist 提问
随着可编程 rollups 的成熟,有哪些方法可以优化 EVM 和 L1 以提高 rollups 的性能?有没有一些潜在的解决方案来以 L1 的级别完善 L2 的互操作性、通信和可组合性?单个 L2 解决方案可以在多个数据分片上保持可组合性,但对于 L2 间有何好处?
基金会 Justin Drake 回答
有哪些方法可以优化 EVM 和 L1 以提高 rollups 的性能?
EVM (以太坊虚拟机) 对于 optimistic rollups 和基于 SNARK 的 rollup 都非常不友好。为了构建 OVM,Optimism 团队已经研究了 EVM 超过 1.5 年。而 EVM 对 SNARK 就更加不友好了,基于 SNARK 的 EVM 可能还需要数年的时间,甚至可能需要 5-10 年时间。(顺便说一句,MatterLabs 正在构建一个“便携式 EVM”的 SNARK VM。这样的 VM 对于 L2 rollup 来说可能已经足够了,但是不足以使得以太坊 L1 完全 SNARK 化,这才是我们的长期目标)。
我的理解是,对 EVM 进行一些小的调整,拥有 optimistic EVM 可能就变得容易 10 倍。而要实现 SNARK 友好,还需要一些更加激进的改变 (例如,以一个大质数为模进行算数运算,而不是按照传统的二进制算术模 2256 进行运算),这将大大地提高 SNARK 友好性。令人遗憾的是,由于 EVM 僵化所带来的限制,让 rollup 的成本大大地提高,这也是我个人对可替代的 VMs 持开放态度的原因之一,特别是替代我们技术空白的可执行分片这一块。
02
u/thomas_m_k 提问
我的理解是,对 EVM 进行一些小的调整,拥有 optimistic EVM 可能就变得容易 10 倍。
你有关于这个的样本吗?或者有相关链接以了解更多信息吗?
基金会 Justin Drake 回答
理想情况是一个操作码,它将 Eth1 区块与状态访问的非确定性数据一起作为输入,执行 Eth1 区块,并返回相应的状态根。这样的操作码会使得构建 OVM 变得非常简单。
03
u/bcn1075 提问
一些人认为 L2 解决方案会对以太坊的可组合性产生不好的影响。L2 扩容解决方案对可组合性的真正影响是什么?
基金会 Justin Drake 回答
L2 扩容解决方案对可组合性的真正影响是什么?
主要的影响是我们从同步可组合性转向了异步可组合性。缩小这一点对于在计算机科学中实现扩容相当重要。例如,“网”是围绕着对服务器和对等节点的异步网络查询而构建的,它本身也在进行异步查询,例如对数据库进行查询。即使是一台独立的计算机在处理多个核心、多个处理引擎 (比如 GPUs) 和 I/O (比如用户输入、外部驱动器) 时,也具有基本的异步性。
好消息是,异步性是完全可管理的,并且几乎在所有情况下都可以从终端用户中完全抽象出来。坏消息是,在很大程度上,必须重新考虑和重新实现区块链可组合性基础设施。我预计将会有一段关于 “rollup 和侧链可组合性” 的实验时期,随后会有一段类似于代币标准化 (例如 ERC20 和 ERC721) 的整合以及标准化时期。
基金会 Dankrad Feist 回答
我在这里提出另一个答案,因为我非常不同意 Justin Drake 的观点!
我想很多人都没有注意到,当我们的关注点从可执行分片转向数据分片时,“我们是否仍然具有可组合性”的答案已经“完全”改变了。
人们认为“跨分片交易是困难且具有异步性的”。但是对于数据分片,我们不应该讨论分片,而是讨论 “Rollups”。没错,跨 rollup 交易仍然很困难,并且 (大多数) 是异步的。但是一个 rollup 不必只存在于一个数据分片上。事实上,可以构建一个 rollup,这个 rollup 使用 10 个数据分片来发布其所有区块,但是在内部保持了其完整的可组合性。想要以去中心化的形式实现上面的技术是一项艰难的工程任务,但也不是不可能的。
我真的很希望这能实现,希望我们能够打破这种“分片将破坏可组合性”的神话。
也就是说,我确实希望不同社区会有不同的 rollups,这些 rollups 将更加松散地耦合 (异步地)。不管没关系。到时可能会有面向所有交易者的、一个大型的 DeFi rollup (例如,包括所有闪电贷和他们想要的东西)。比方说会有一个大型的针对 “旅行” 分片,其中所有火车票和酒店都可以进行原子预订。等等。
04
u/bcn1075 提问
L2 解决方案上线、合并以及分片都完成之后,下一个提高网络可扩展性的最大机会是什么?预计的可扩展收益是什么?
基金会 Justin Drake 回答
让我对长期可扩展性持乐观态度的大趋势是一种较深奥的观察,称之为尼尔森定律。尼尔森互联网带宽定律指出,带宽以每年 50% 的速度呈指数增长。该定律自 1983 年以来一直有效,并且与连续 CPU 计算的扩展 (已基本趋于平稳) 或者 RAM 的扩展 (已显着放缓) 形成鲜明的对比。
带宽是区块链扩容的终极障碍。我们知道如何解决所有其他共识层的计算瓶颈 (例如,磁盘 I/O 可以通过无状态解决,计算可以通过递归 SNARKs 解决)。好消息是,没有理由相信尼尔森定律会很快停止,因为带宽基础设施是可并行化的。例如,要将海底互联网电缆的带宽增加一倍,就需要铺设两倍的光纤电缆和中继器。
尼尔森定律相当于每十年带宽增长 57 倍。因此,如果尼尔森定律再保持十年,我们在考虑可扩展性为 20 个基本 TPS/分片 * 64 个分片 * 100 倍扩容的 rollup * 57 尼尔森扩展 = 730 万 TPS,更何况我们还可以增加分片的数量。正如你所看到的,区块链可扩展性的前景是非常光明的。对于以太坊这样的区块链平台来说,最终能够处理互联网上绝大多数 (如 95% 以上) 的去中心化价值交易是绝对合理的。因为将来会有足够的可扩展性,并且共享安全的网络效应也相当强。
05
u/AllwaysBuyCheap 提问
有没有可能在没有中间商的情况下实现 zkRollups 的互操作性?
基金会 Justin Drake 回答
我不确定你指的是哪个特定的中间商。zkRollup 的长期目标是剔除单点故障的可能性。区块构建可以通过 PoS 实现去中心化 (类似于 PoS 侧链) 而 SNARK 证明可以通过一种称为证明携带数据 (PCD, proof carrying data) 的特殊递归 SNARKs 类型来实现去中心化。这种类型的递归 SNARKs允许轻易地将 SNARK 证明任务拆分并分发到相互不信任的证明者中。一旦区块构建和 SNARK 证明实现去中心化,就没有所谓的中间商来看守跨 rollup 活动,尤其是异步可组合性。
06
u/Liberosist 提问
关于 zkRollups 的一些问题,以及它们如何影响 L1 升级的:
-
假设 zkRollups 证明可编程性有效,正如 zkSync 2.0 和 StarkNet 声称的那样,那么它会是对 L1 可扩展性更好的升级吗?将 EVM 进行 zk-SNARK 化,并且继续关注分片的数据可用性?还是说实现可执行分片更好?
-
另外,StarkNet 已经在测试网上线,并宣布将于今年年底上线。Nethermind 甚至正在开发 一个 EVM > Cairo 的转译器。我看到当前的计划是先实现 zk-SNARK,然后将来再实现 STARKs。假设 StarkNet 可以良好地运行数年,并且 STARK 系列已经准备好生产了,为什么不直接转到 zk-STRAKs 呢?
基金会 Dankrad Feist 回答
假设我们确实能够实现高效的、完全可编程的 zkVM rollups,我认为可执行分片基本上变得毫无意义。或者这些分片将简单地利用 VM,并宣布其为新的基础层。
https://twitter.com/dankrad/status/1407456684063219724
(上半部分完)
原文链接:https://www.reddit.com/r/ethereum/comments/o4unlp/ama_we_are_the_efs_research_team_pt_6_23_june_2021/