Skip to content
免许可 去中心

提升以太坊网络无需许可性和去中心化的近期和中期未来

作者:维塔利克·布特林 2024年5月17日 原文链接

特别感谢 Dankrad Feist、Caspar Schwarz-Schilling 和 Francesco 的快速反馈和审阅。

我正在肯尼亚的一场以太坊开发者互操作性会议的最后一天写这篇文章。在这次会议上,我们在实施和完善重要的即将推出的以太坊改进方面取得了重大进展,特别是点对点数据可用性采样系统(PeerDAS)、Verkle树转换(一种更高效的状态存储方案)以及在 EIP 4444 背景下存储历史数据的去中心化方法。从我的角度来看,以太坊开发的步伐以及我们交付大型且重要功能的能力正在提升,这些功能能够切实改善节点运营者和(L1和L2)用户的体验。


以太坊客户端团队正在合作推出 Pectra 开发网络。

考虑到这种更强的技术能力,一个需要思考的重要问题是:**我们是否在朝着正确的目标前进?**促使我思考这个问题的一个契机是长期 Geth 核心开发者 Peter Szilagyi 最近发布的一系列不满推文:

这些都是合理的担忧。这些担忧也是以太坊社区中许多人都表达过的。这些同样也是我个人在很多场合都有过的担忧。然而,我也认为现状并没有 Peter 的推文所暗示的那么悲观;相反,许多担忧已经在正在开发的协议功能中得到解决,而其他许多担忧也可以通过对当前路线图进行切实可行的调整来解决。

为了在实践中理解这意味着什么,让我们逐一分析 Peter 提供的三个例子。这里并非要针对 Peter 个人;这些担忧是社区中许多成员普遍共有的,因此我们需要认真地加以解决。

MEV 和对构建者的依赖

在过去,以太坊区块是由矿工创建的,他们使用相对简单的算法来创建区块。用户将交易发送到一个通常被称为"内存池"(或"交易池")的公共 p2p 网络。矿工监听内存池,接受有效且支付手续费的交易。他们会包含所能包含的交易,如果空间不够,他们会优先考虑手续费最高的交易。

这是一个非常简单的系统,对去中心化很友好:作为矿工,你只需运行默认软件,就能获得与专业矿场相同水平的手续费收入。然而,在 2020 年左右,人们开始利用所谓的矿工可提取价值(MEV,Miner Extractable Value):这种收益只能通过执行复杂的策略来获得,这些策略需要了解各种去中心化金融协议内部发生的活动。

例如,考虑像 Uniswap(一个主流去中心化交易所)这样的平台。假设在时间 T,美元/ETH 的汇率——在中心化交易所和 Uniswap 上——是 3,000 美元。在时间 T+11,中心化交易所上的美元/ETH 汇率上升到 3,005 美元。但以太坊还没有产生下一个区块。在时间 T+12,区块产生了。区块创建者可以将他们的第一笔交易设置为一系列 Uniswap 买入操作,以 3,000 美元到 3,004 美元的价格买入 Uniswap 上所有可用的 ETH。这就是额外的收益,被称为 MEV。除了去中心化交易所之外的应用程序也有类似的问题。2019 年发表的 Flash Boys 2.0 论文详细讨论了这个问题。


Flash Boys 2.0 论文中的一张图表,显示了使用上述方法可获取的收益金额。

这个问题在于,它打破了挖矿(或在2022年后的区块提议)可以"公平"的说法:现在,那些在优化这类提取算法方面能力更强的大型参与者可以获得更高的每区块回报。

从那时起,就出现了两种策略之间的争论,我将其称为MEV最小化MEV隔离。MEV最小化有两种形式:(i)积极开发无MEV的Uniswap替代方案(例如Cowswap),以及(ii)构建协议内的技术,如加密交易池,以减少区块生产者可获得的信息,从而减少他们可以获取的收益。特别是,加密交易池可以防止三明治攻击这样的策略,这种攻击会在用户交易的前后插入交易,以实现金融套利(即"抢先交易")。

MEV隔离的工作方式是接受MEV的存在,但试图通过将市场分为两类参与者来限制其对质押中心化的影响:验证者负责确认和提议区块,但选择区块内容的任务则通过拍卖协议外包给专业的区块构建者。个体质押者现在不再需要自己去优化去中心化金融(DeFi)套利;他们只需加入拍卖协议,接受最高出价即可。这被称为提议者/构建者分离(PBS)。这种方法在其他行业中也有先例:餐厅能够保持如此去中心化的一个主要原因是,它们经常依赖于一组相对集中的供应商来处理各种具有大规模经济效益的运营。到目前为止,就MEV而言,PBS在确保小型验证者和大型验证者处于公平竞争环境方面取得了合理的成功。然而,它也带来了另一个问题:选择哪些交易被纳入的任务变得更加集中化

我一直认为最小化 MEV 是有益的,我们应该追求这个目标(我个人经常使用 Cowswap!)- 尽管加密交易池面临许多挑战,但仅仅最小化 MEV 可能是不够的;MEV 不会降到零,甚至接近零。因此,我们还需要某种形式的 MEV 隔离。这就产生了一个有趣的任务:如何让"MEV 隔离箱"尽可能小?我们如何在确保建块者仍能发挥优化套利和收集其他形式 MEV 作用的同时,最大限度地限制他们的权力?

如果建块者有权完全排除区块中的交易,就很容易产生攻击。假设你在某个去中心化金融协议中有一个抵押债仓(CDP),由一个价格快速下跌的资产作为抵押。你想要增加抵押品或退出 CDP。恶意建块者可能会串通拒绝包含你的交易,故意拖延直到价格下跌到足以强制清算你的 CDP。如果发生这种情况,你将不得不支付巨额罚金,而建块者将从中获得大部分利益。那么,我们如何防止建块者排除交易并实施这类攻击呢?

这就是包含列表(inclusion lists,用于确保特定交易必须被包含)的用武之地。

来源:这篇 ethresear.ch 文章

包含列表允许区块提议者(即质押者)选择必须进入区块的交易。构建者仍可以重新排序交易或插入自己的交易,但必须包含提议者的交易。最终,包含列表被修改为约束下一个区块而不是当前区块。无论是哪种情况,这些修改都剥夺了构建者完全将交易排除在区块之外的能力。

以上这些都是一个复杂背景的深层探讨。但 MEV 本身就是一个复杂的问题;即使上述描述也忽略了许多重要的细节。正如那句老话所说:"你可能不在寻找 MEV,但 MEV 正在寻找你"。以太坊研究者已经在"最小化限制区域"这个目标上达成了共识,即尽可能减少构建者可能造成的危害(例如,通过排除或延迟交易来攻击特定应用)。

话虽如此,我认为我们还可以走得更远。从历史上看,包含列表常常被视为一个"特殊情况下的边缘功能":在通常情况下,你不会考虑它们,但当恶意构建者开始做出疯狂的事情时,它们可以提供一条"第二路径"。这种态度反映在当前的设计决策中:在当前的 EIP中,包含列表的 gas 限制约为210万。但我们可以对包含列表的思考方式做出一个哲学上的转变:将包含列表视为区块本身,而将构建者的角色视为一个边缘功能,仅用于添加一些交易以收集 MEV。如果反过来让构建者只有210万的 gas 限制呢?

我认为朝这个方向发展的想法——即将隔离范围压缩到尽可能小的范围——非常有趣,我赞同朝这个方向发展。这确实是对"2021年时期理念"的一个转变:在2021年时期的理念中,我们对这样的想法更加热衷:既然我们现在有了区块生产者,我们可以"扩展"他们的功能,让他们以更复杂的方式为用户服务,例如通过支持ERC-4337费用市场。在这种新理念下,ERC-4337的交易验证部分将需要被写入协议。幸运的是,ERC-4337团队已经越来越认同这个方向

总结:MEV的思路已经在向着赋权区块生产者的方向回归,包括赋予区块生产者直接确保用户交易被打包的权力。账户抽象提案在朝着减少对中心化中继者甚至打包者依赖的方向发展。然而,有一个很好的论点认为我们还做得不够深入,我认为推动开发过程在这个方向上走得更远的压力是非常值得欢迎的。

流动性质押

如今,独立质押者仅占以太坊质押的相对较小比例,大多数质押都是由各类提供商完成——包括一些中心化运营商,以及像 Lido 和 RocketPool 这样的 DAO。

我进行了自己的研究——通过各种投票[1] [2]、调查和面对面交谈,询问"为什么你——特别是你——现在不进行独立质押?"对我而言,一个健康的独立质押生态系统是以太坊质押最理想的结果,以太坊最好的特点之一就是我们实际上在努力支持一个健康的独立质押生态系统,而不是简单地屈服于委托质押。然而,我们距离这个目标还很远。在我的投票和调查中,有几个一致的趋势:

  1. 绝大多数不进行独立质押的人将其主要原因归结为32 ETH的最低要求;
  2. 在提到其他原因的人中,最主要的是运行和维护验证者节点的技术挑战;
  3. ETH即时可用性的损失、"热"私钥的安全风险,以及无法同时参与DeFi协议,这些都是相对次要的顾虑。

根据Farcaster投票显示的人们不进行独立质押的主要原因。

质押研究需要解决两个关键问题:

  1. 我们如何解决这些顾虑?

  2. 如果在解决了大部分这些问题后,大多数人仍然不愿意进行独立质押,那么我们如何在这种情况下保持协议的稳定性并防止攻击?

许多正在进行的研究和开发项目正是为了解决这些问题:

  1. Verkle trees 加上 EIP-4444 使质押节点能够在很低的硬盘需求下运行。此外,它们使质押节点能够几乎即时同步,大大简化了设置过程以及从一个实现切换到另一个实现等操作。通过减少提供每个状态访问证明所需的数据带宽,它们也使以太坊轻客户端的应用变得更加可行。

  2. 关于如何允许更大规模验证者集合(从而实现更低质押门槛)同时减少共识节点开销的研究(例如这些提案)。这些设想可以作为单时隙确定性的一部分来实现。这样做还会提高轻客户端的安全性,因为它们将能够验证完整的签名集,而不是依赖于同步委员会)。

  3. 持续的以太坊客户端优化不断降低运行验证者节点的成本和难度,尽管历史数据在不断增长。

  4. 关于惩罚上限的研究可能会缓解私钥风险的担忧,并使质押者能够同时在 DeFi 协议中质押他们的 ETH(如果他们希望这样做的话)。

  5. 0x01 提款凭证允许质押者将一个 ETH 地址设置为其提款地址。这使得去中心化质押池更加可行,让它们在与中心化质押池的竞争中占据优势。

然而,我们还可以做得更多。从理论上讲,我们可以让验证者更快地提取资金:即使验证者集合在每次最终确定时(即每个纪元)发生几个百分点的变化,Casper FFG 仍然是安全的。因此,如果我们投入足够的努力,我们可以进一步缩短提款期限。如果我们想大幅降低最低质押金额,我们可以在其他方面做出权衡取舍,例如,如果我们将最终确定时间增加 4 倍,那就可以实现最低质押金额减少 4 倍。单时隙确定性之后会通过完全摆脱"每个质押者都参与每个纪元"的模式来解决这个问题。

这整个问题的另一个重要部分是质押的经济学。一个关键问题是:我们是希望质押成为一个相对小众的活动,还是希望每个人或几乎每个人都质押他们的所有 ETH?如果每个人都在质押,那么我们希望每个人承担什么样的责任?如果人们最终因为懒惰而简单地委托这种责任,这可能会导致中心化。这里存在着重要且深刻的哲学问题。错误的答案可能会引导以太坊走向中心化,沦为"传统金融系统的翻版,只是增加了几道手续";而正确的答案则可能创造一个成功生态系统的光辉典范,拥有广泛且多样化的独立质押者和高度去中心化的质押池。这些问题涉及以太坊的核心经济学和价值观,因此我们需要更加多元化的参与。

节点的硬件要求

以太坊去中心化的许多关键问题最终都归结为一个已经争论了十年的"区块链政治"问题:我们希望运行节点的门槛有多低,以及如何实现?

如今,运行节点很困难。大多数人都不会这样做。在我用来写这篇文章的笔记本电脑上,我运行着一个 reth 节点,它占用了2.1太字节的空间——这已经是经过大量软件工程优化后的结果。我不得不购买一个额外的4TB硬盘安装到笔记本电脑上来存储这个节点。我们都希望运行节点能变得更容易。在我理想的世界里,人们能够在手机上运行节点。

正如我上面所写,EIP-4444和Verkle树是让我们更接近这个理想的两项关键技术。如果两者都得到实施,节点的硬件要求可能最终会降至不到一百千兆字节,如果我们完全取消历史存储责任(也许仅针对非质押节点),甚至可能接近于零。Type 1 ZK-EVMs 将消除自行运行EVM计算的需求,因为你可以改为简单地验证执行正确性的证明。在我理想的世界里,我们将所有这些技术整合在一起,甚至以太坊浏览器扩展钱包(例如Metamask、Rabby)都内置了一个节点,可以验证这些证明,进行数据可用性采样,并确保链是正确的。

上述愿景通常被称为"The Verge"。

这一点是众所周知且被理解的,即使是那些对以太坊节点规模表示担忧的人也明白这一点。然而,这里存在一个重要的顾虑:如果我们将维护状态和提供证明的责任转移出去,那么这不就是一个中心化的风险点吗?即使他们无法通过提供无效数据来作弊,但过度依赖他们不是也违背了以太坊的原则吗?

这个顾虑的一个非常近期的体现是很多人对 EIP-4444 的不适:如果常规以太坊节点不再需要存储旧的历史数据,那么谁来存储呢?一个常见的回答是:肯定有足够多的大型参与者(例如区块浏览器、交易所、Layer 2)有动力持有这些数据,而且与互联网档案馆存储的 100 PB 数据相比,以太坊链的数据量很小。所以认为任何历史数据会真正丢失是荒谬的。

然而,这个论点依赖于对少数大型参与者的依赖。在我的信任模型分类中,这是一个 1-of-N 假设,但这个 N 相当小。这存在着极端风险。我们可以采取的另一种方案是在点对点网络中存储旧的历史数据,每个节点只存储一小部分数据。这种网络仍然会进行足够的数据复制以确保鲁棒性:每份数据都会有数千个副本,而且在未来我们可以使用纠删码(实际上,通过将历史数据放入 EIP-4844 风格的 blob 中,其中已经内置了纠删码)来进一步提高鲁棒性。

Blob 数据在blob 内部blob 之间都有纠删码。对于以太坊所有历史数据来说,将信标链和执行层区块放入 blob 中可能是构建超强稳健存储的最简单方式。图片来源:codex.storage

长期以来,这项工作一直处于搁置状态;尽管Portal Network已经存在,但实际上它并未获得与其在以太坊未来重要性相匹配的关注度。幸运的是,现在各方都强烈关注并推动向 Portal 的精简版本投入更多资源,重点关注历史数据的分布式存储和可访问性。我们应该继续推进这一势头,并且应该努力尽快实施 EIP-4444,同时配套一个用于存储和检索历史数据的强大的去中心化点对点网络。

对于状态和 ZK-EVM 来说,这种分布式方法更加困难。要构建一个高效的区块,你必须拥有完整的状态。在这种情况下,我个人倾向于采用一种务实的方法:**我们定义并坚持某种程度的硬件要求,这些要求是针对"功能完备节点"所需的,这个要求高于(理想情况下不断降低的)仅验证链所需的成本,但仍然低到业余爱好者可以承担。**我们依赖于一个 N 选 1 的假设模型,其中我们确保参与者(N)的数量足够大。例如,这样的硬件要求可能是一台高端消费级笔记本电脑。

ZK-EVM 证明可能是最棘手的部分,即使有Binius 这样的进展多维度 gas的最坏情况边界限制,实时 ZK-EVM 证明系统可能仍需要比归档节点强大得多的硬件。我们可以努力开发一个分布式证明网络,其中每个节点负责证明区块执行量的百分之一,这样区块生产者只需要在最后聚合这一百个证明即可。证明聚合树可以进一步提供帮助。但如果这种方式效果不理想,那么另一个折衷方案是允许证明所需的硬件要求变得更高,但要确保"执行所有功能的节点"能够直接验证以太坊区块(无需证明),并且验证速度要足够快以有效参与网络。

结论

我认为 2021 年的以太坊思维确实过于依赖将责任转移给少数大规模参与者,只要存在某种市场机制或零知识证明(ZK)系统来强制这些中心化主体诚实行事即可。这类系统在一般情况下运行良好,但在最坏情况下会出现灾难性失败。

我们不会这样做。

同时,我认为有必要强调的是,当前的以太坊协议提案已经显著偏离了那种模式,并更加严肃地对待真正去中心化网络的需求。围绕无状态节点、MEV 缓解措施、单时隙确定性等概念的想法,已经在这个方向上取得了很大进展。一年前,通过依托半中心化节点的中继来进行数据可用性采样的想法还在被认真考虑。而今年,我们已经超越了这种需求,在 PeerDAS 方面取得了显著的突破性进展。

但是在我上面提到的三个方向上,以及许多其他重要方向上,我们还可以做更多工作来推进发展。Helios在为以太坊提供"真正的轻客户端"方面取得了重大进展。现在,我们需要让以太坊钱包默认包含它,并且让 RPC 提供商在提供结果时附带证明以便进行验证,并且将轻客户端技术扩展到 Layer 2 协议。如果以太坊正在通过以 Rollup 为中心的路线图进行扩容,Layer 2 需要获得与 Layer 1 相同的安全性和去中心化保证。在以 Rollup 为中心的世界中,还有许多其他我们应该更加重视的事情;去中心化和高效的跨 L2 桥接就是众多例子之一。许多 dapp 通过中心化协议获取日志,因为以太坊原生的日志扫描变得太慢。我们可以通过专门的去中心化子协议来改进这一点;这里是我的一个关于如何实现的提议。

有近乎无限数量的区块链项目瞄准"我们可以超快,以后再考虑去中心化"这个细分市场。我认为以太坊不应该成为这样的项目之一。以太坊 L1 可以而且应该成为那些确实采用超大规模方法的 Layer 2 项目的强大基础层,使用以太坊作为去中心化和安全性的支柱。即使是以 Layer 2 为中心的方法也要求 Layer 1 本身具有足够的可扩展性来处理大量操作。但我们应该深深尊重使以太坊独特的那些特性,并在以太坊扩容的同时继续努力维护和改进这些特性。

ai

去中心化的多面性

作者:Vitalik Buterin

去中心化是加密货币的一个基本价值主张。在过去的几年里,有许多关于去中心化的讨论,包括如何定义它,以及如何最好地衡量它。在这篇文章中,我想探讨一个特定的问题:**去中心化是一个单一的属性,还是多个不同属性的集合?**我的结论是:去中心化确实是多个不同属性的集合,这些属性经常(但不总是)相互关联。

理解去中心化的多面性有助于我们:

  1. 更好地理解不同系统的权衡取舍
  2. 理解为什么不同的应用场景需要不同类型的去中心化
  3. 理解为什么某些形式的去中心化比其他形式更容易实现

去中心化的四个维度

我认为去中心化主要可以分为四个不同的维度:

  1. 协议去中心化:协议的规则在多大程度上由多个不同的参与者共同决定和执行,而不是由单一实体控制
  2. 基础设施去中心化:运行协议所需的基础设施在多大程度上由多个不同的参与者控制
  3. 接口去中心化:用户与协议交互所需的工具在多大程度上由多个不同的参与者控制
  4. 经济去中心化:协议的经济利益在多大程度上由多个不同的参与者共享,而不是集中在少数参与者手中

ETHStudy (An Ethereum Ecosystem Initiative)
Supported by Uweb(University of Web3)