9月,以太坊创始人Vitalik Buterin在标题为“以太坊协议是否应该封装更多功能?”的博客文章中权衡了“封装”(enshrinement)给以太坊L1协议带来的优点和缺点,向读者提供了有关以太坊未来发展方向的线索。本文将介绍“封装”的概念,以及它将如何影响以太坊的路线图。
“封装”的概念
从传统的软件开发定义来说,封装(Encapsulation)是指,一种将抽象性函数接口的实现细节部分包装、隐藏起来的方法。而对于以太坊的“封装”来说,是指在主链上能够直接执行更多的功能,且这些功能过去可能是依赖外部软件实现的,被封装的新功能将成为“协议功能”。
在上文提到的博客文章中,Vitalik Buterin谈到了以太坊最初的“最低限度封装哲学”。该理念旨在将基本的以太坊L1层保持尽可能简单,同时依靠链下解决方案(例如rollup),以获得额外的功能和新特性。
但是,他现在认为,可能有必要对“最低限度封装哲学”稍作调整。接下来,我们将对“最低限度封装哲学”及其利弊进行进一步的探讨。
“最低限度封装哲学”
“最低限度的封装”指在区块链中封装特定功能,在不强加严格规则的前提下以简化执行。例如,以太坊协议无需封装完整的流动性质押系统(例如Lido推出的stETH),只需要封装解决关键挑战的特定部分功能。这将有助于以简单的方式实施该功能,避免使其复杂化。
以太坊的核心开发人员一直试图在基础层保持干净、简单和安全。在以太坊协议之上构建新功能主要是以太坊其余社区的责任。用Vitalik Buterin的话来说,以太坊的创建是为了“作为虚拟机来验证区块”。这种方式的关键优势之一是,硬分叉可以很容易被描述为区块处理器合约的单一交易。极简结构的其他优势还包括灵活性,可以满足不同的用户需求并避免软件的膨胀。
但是,随着行业的发展,社区意识到,封装更多功能可能会使以太坊协议得到改进,例如降低gas费,提升安全性和降低中心化风险等。
封装ERC-4337
2023年,账户抽象这个以太坊的新功能走进了大家的视线。账户抽象又被称为ERC-4337,是由Vitalik Buterin与其他五个开发人员一起编写的,是引入账户抽象的代币标准。账户抽象带来了新功能,例如智能合约钱包和使用ERC-20token向以太坊用户支付gas费用。 这些用户友好的功能有利于加速加密货币和加密钱包的采用,因此得到了广泛的期望。
多年来,账户抽象进行了多次修订。它从称为EIP-86的以太坊改进提案发展到其最终形式ERC-4337。作为ERC,账户抽象不需要硬分叉,并且从技术层面上独立以太坊协议之外而存在着。
现在,Vitalik Buterin认为封装ERC-4337的某些部分具有明显的优点。该标准有利于提高抗审查能力、gas效率和支持以太坊虚拟机(EVM)操作码。
如果通过外部软件实现,则可能攻击者可以利用入口点合约的漏洞来窃取资金。反之,而封装ERC-4337将取代其入口点合约成为协议内的功能,从而使用户的资金更安全。此外,作为L1协议的一部分,由于存储成本较低,用户在使用封装的账户抽象功能时gas费用较低。
封装PBS将有助于解决以太坊中心化风险
封装可以促进去中心化并创建一个无需信任的系统,封装PBS(提议者/建设者分离)就是一个很好的例子。以太坊区块链的提议者是验证者,他们将其区块生产权出售给了专门从区块中提取最大可提取价值(MEV)的建设者。提议者在此过程中赢得了MEV奖励,而区块建设者为自己保留了一部分MEV奖励。
当前,验证者使用FlashBot的第三方解决方案mev-boost来访问建设者的市场。该解决方案目前受到广泛欢迎,占产生的以太坊区块的90%。为了使协议免除mev-boost中心化的风险,目前正在提倡封装PBS,这将使PBS被放到以太坊协议的共识层中执行。这种协议内的建设者市场将摆脱在mev-boost市场中充当拍卖行的第三方中心化网络(被称为“relays”)的控制。
封装ZK-EVM和流动性质押功能
Vitalik Butein表示,从以太坊项目诞生开始,就试图通过在顶部构建协议使核心以太坊保持尽可能简单。但是,最近,人们对将更多功能纳入核心以太坊协议中存在谨慎的兴趣。除了刚刚提到的账户抽象,该功能可以使智能合约钱包支持关键功能,例如账户冻结和恢复。ZKEVM(即基于零知识证明的虚拟机)也通过利用先进的密码学以安全可靠的方式提高交易处理效率。从理论上说,封装账户抽象和ZKEVM都能为应对漏洞提供更有效的方法。
关于ZKEVM,ERC-4337也在这方面发挥了作用,但是重点更多是在扩容上而不是账户抽象上。ZK协议功能可以促进以太坊客户多样化的哲学。封装ZKEVM将使以太坊的社会共识能够处理特殊情况,从而减少rollup生态系统中额外治理的需求。但是,以太坊要封装ZKEVM可能面临着挑战,因为以太坊区块链可存储的数据有限。不过,这个问题也可以通过ZKEVM压缩更多数据来缓解。
Vitalik Buterin认为,如果ZKEVMs不必携带“见证”数据,其数据效率将会变高。也就是说,若特定的数据已经在以前的某些区块中被读取或编写了,可简单地假设证明者能够访问它,而不必再次提供证据。
封装流动性质押功能可以防止验证者中心化。通常,流动性质押涉及将加密货币锁定或质押在PoS区块链上,并从Lido等平台接收相应的token,该token还可继续用于DeFi。如果出现此类单一token占主导地位的情况,可能会导致单个可能受攻击的治理工具控制大部分的以太坊验证者。Lido等协议已经对此进行了更多保障,但一层防御可能还不够。
封装功能需要灵活的中间立场
当以太坊协议的复杂性被推到外部层时,可能会发生中心化风险,封装可以避免这种情况。但是,过度封装会使协议的信任和治理过载,从而损害其中立性。协议复杂性还带来系统风险,例如预编码需要添加更多复杂性。
因此,对于封装,Vitalik Buterin正在采取灵活的中间立场。他仍然热衷于封装私用mempool,以帮助用户减轻诸如抢先交易之类的问题。和mev-boost一样,私用mempool解决方案也是由第三方提供商提供的,这引起了人们对中心化和信任的担忧。
虽然封装私用mempool可以解决这个问题,但Vitalik Buterin采取了一种更务实的态度,他认为,在L1中封装反抢先交易(anti-frontrunning)仍然是一个困难的主张,至少在延迟加密技术得到完善或出现其他一些技术突破之前是困难的。
他在博客文章中分享的主要观点如下:
1.封装可帮助避免中心化风险;
2.但若封装会削弱以太坊的信任模型并使以太坊更主观,则最好避免使用封装功能;
3.封装太多功能会使协议过度复杂化;
4.若被封装的功能未能得到足够多用户使用,长期来看,封装可能会适得其反。
(编者注:此处的“抽象更多功能”是“封装更多功能”的对立面,抽象功能出来可以交给更多外部软件间接实现,而封装功能进去则是依靠更多内置功能直接实现)
一方面,倾向于进行抽象更多功能的有以下优势:
1.避免过度扩张协议信任和治理负载协议;
2.支持多样化的用户需求;
3.未来的需求不确定时;
4.降低协议复杂性。
另一方面,倾向于进行封装更多功能的有以下优势:
1.应对高昂的固定成本;
2.增强协议授权功能;
3.减少用户的代码错误风险;
4.避免高等级的中心化风险。
协议演变的底线
虽然以太坊的原始计划是通过在顶部构建协议使区块链安全运行,但Vitalik Buterin认为,以太坊的未来并非一成不变。正如行业中的一句俗语,“加密货币中没有完美的解决方案,只有权衡取舍。”封装有降低的漏洞风险和降低中心化概率的优点,但其明显缺点是它可能导致协议越来越复杂,最终变得过度扩张和笨拙。关于哪些功能应该被带入协议中,而哪些功能应该被留在生态系统其他层级,这是一个复杂的权衡问题。
总体而言,在当前的环境下,Vitalik Buterin认为区块链是“社会系统”,在理由正当充分的有益实例中,他倾向于支持以太坊协议封装一些特定的功能。对于很少被使用的功能,可能需要去除封装,从而确保向旧版本兼容和协议的轻量化。当然,他也承认,随着时间的推进,关于封装的权衡还会继续演变。