TL;DR:
- 6 ~8 F& M4 n" K
- "Bedrock" 是 Optimism 主网的一次重大升级,目标是显著降低使用费用。这一改变源于一个简单的假设:较低的费用等于更好的用户体验。- T" f# D: [/ h- a! K, y. [
- 通过一系列的优化和创新,Bedrock 升级预计将为 Optimism 主网带来 47% 的协议成本和安全费用的降低。
- 主要的优化措施包括:
- 有效地传输交易数据:在 Layer 1(一层网络)和 Layer 2(二层网络)之间进行优化,提高数据压缩效率,重新组织从 Optimism 发送到 L1 的数据方式以最大化 L1 上可用数据空间的使用。' P. b* X( `0 s: \' G1 s( g2 A6 |/ }
- 改进数据压缩方法:在多种压缩算法中,最终选择了 zlib,因为它为 Optimism 的需求提供了良好的性能。8 [5 U" a( Q5 x
- 采用新的批处理系统:批处理系统是一种线格式,将传统的区块转化为尽可能消除额外信息,只保留必要的少量元数据的批处理。( R6 K H8 U- V0 n* Q$ w' L
- 此外,Bedrock 版本还尽可能地降低了在以太坊上的 Gas 费用。这是通过移除所有执行 Gas,并将 L1 数据费用降低到理论最低值实现的。
- 最终,这些改进将帮助 Optimism 主网用户节省大量的交易成本。 J1 R" O* q1 L+ r. |" K. E+ J4 D
- 升级完成后,Optimism 团队将通过 OP Labs 推特帐户发布更新,包括后 Bedrock 数据(将显示预测的准确度),因此请密切关注。
降低使用费用是Bedrock版本中占据极大比例的设计原则。这导致了对如何将交易发布到L1(Layer 1)以及反向操作的全面重新架构。
尽管这种方式的影响极大,但它源于一个非常简单的假设:较低的费用=好。我们希望我们的生态系统最具可接入性:最简单,最有趣,建设和交易成本最低。
最终,Bedrock升级将为Optimism主网带来47%的协议成本和安全费用的降低。请继续阅读,了解我们是如何实现这一目标的。
费用从何而来?' J- e, E$ ~# F
4 z0 g$ I: e9 X$ Q; ?3 r
在Optimism主网上发送交易的费用有两个来源:L2(二层网络)执行费和L1数据/安全费。& d: s# Y) S ?( F2 s: f+ H) U
L2执行费用类似于以太坊上常规交易费用的工作方式,但附加的优点是,由于网络不像L1那样拥挤,Optimism主网上的执行Gas价格非常低。
L1数据费是因为在Optimism上的所有交易也都发布到以太坊。这一步对Optimism的安全至关重要,因为它意味着所有需要同步Optimism节点的数据都始终在以太坊上公开可用。这使得Optimism成为了L2。在Optimism上的用户必须支付将他们的交易提交给以太坊的费用。由于以太坊上的Gas费用非常昂贵,因此L1数据费占据了Optimism主网上交易总成本的很大一部分。
寻找改进点( e. Y+ h( Z0 B! E V5 Z7 r2 b
在Bedrock开发初期,我们能够确定几个导致用户不必要成本的区域。特别是,Optimism的遗留系统设计的方式,并未尽可能高效地使用L1数据空间。例如,向以太坊发布数据的前Bedrock系统,只是尽可能多地将交易添加到可以填充单个L1交易的压缩数据束中。% O! x# r2 g" N' d5 Y- a' [/ r
为了解决这个问题,最合理的开始地方是尝试提高向以太坊发布的大量数据压缩的效率。我们还发现,重新组织从Optimism发送到L1的数据方式可以最大化L1上可用数据空间的使用。
修复方法的迭代
8 k) p6 Q- x2 t$ r3 w4 B" u
一旦我们有了一个提交由压缩数据组成的交易组的概念验证,使我们更接近目标,我们就专注于优化这种方法。
在指导开发的关键约束中,需要将L2块的主体分割到多个L1交易中。如果有人提交一个大的交易到L2,它可能需要被切分以适应L1的Calldata。此外,我们用来压缩数据的算法,输入的数据越多,压缩比就越好。为了解决这个约束并最大化压缩比,我们设计了一个可以利用这些属性的系统。8 |$ A+ p/ K5 Y+ x5 v! ]' u) n
批量和压缩数据" ~: \' C1 M" o' C# n" b0 K* I
这个系统的关键构建块是批处理。批处理是一种旨在最小化写入L1的成本和软件复杂性的线格式。传统的区块被转化为批处理,尽可能多地消除额外的信息,只保留必要的,少量的元数据。; ?" I5 d! I) [
接下来,被称为序列批处理的L2交易列表被压缩成所谓的通道。每个通道都有一个最大大小(最初约为9.5Mb)。这些通道在提交到L1之前将使用压缩算法进行压缩。将大量批处理压缩到每个通道中,这是我们获得良好压缩比的效率所在。
通道被进一步划分为通道帧。这是帮助我们解决上述关键约束的部分。将通道切成帧让我们可以处理非常大的L2交易,通过并行发送这些交易到L1,从而尽可能地填满相应的L1交易。
压缩算法
在选择压缩算法时,我们考虑了如zstd,brotli和LZW等候选者,但最终选择了zlib,因为它为我们的需求提供了良好的性能。/ d w9 l2 q F/ c0 L6 X1 m
在这种情况下,良好的性能意味着良好的压缩比率与我们试图达成的良好的压缩和解压速度之间的正确平衡。这反映了选择压缩算法的典型权衡:速度/压缩比率性能。. x( d1 I1 _5 p+ e9 {# ?8 \
最小化使用以太坊Gas8 r8 ^8 z4 G: X4 X+ B0 u
; Q8 P9 ~+ x6 y! Z0 e+ G/ D
最后一个有助于费用降低的部分是,Bedrock移除了所有执行Gas,将L1数据费用降低到理论最低值。我们在Bedrock解释器中深入讨论了这一点。
以下是摘录:
Bedrock移除了所有由L1系统在发送称为批处理交易的交易时使用的执行Gas。所有以前在L1的智能合约上发生的验证逻辑都转移到了块推导逻辑(block derivation logic)中。相反,批处理交易被发送到以太坊上被称为批处理收件箱地址的单个EOA(Externally Owned Account,外部拥有的账户)。
批处理仍然受到有效性检查的约束(即它们必须被正确编码),批处理内的单个交易也是如此(例如,签名必须有效)。无效的批处理和否则有效的批处理中的无效单个交易被认为是被丢弃的,并且与系统无关。按数字计算的成本降低
Bedrock升级后,我们预计**协议成本/安全费用将降低47%**,包括状态链承诺的99%和批提交成本的20%。" o& i! }9 v, u: `9 x* y
升级后,我们将通过OP Labs推特帐户发布更新,包括后Bedrock数据(将显示我们的预测有多准确),因此请密切关注。
下一步:费用优化和EIP-48449 ^% Q* _# X. v" A9 y6 D* d: J- l
我们为了降低Bedrock发布的费用,我们建立的设计和解决方案感到非常自豪。这是我们团队倾向于扎实的工程基础并干净地执行的结果。
我们的团队正在继续优化费用,以降低L2数据费用,所以请期待在Bedrock之后的版本中看到这个。我们可以做的具体事情之一是定时批提交,以便批处理被保证在特定的时间窗口(比如说10分钟)内提交,并且我们可以在这10分钟内费用最低时提交批处理。
更令人兴奋的是,EIP-4844将很快被纳入以太坊。当那个时候来临,发布数据到L1的成本将进一步降低。