做最好的区块链网

TokenPocket官方钱包|为什么说坎昆升级有点糙

前两天,胖老师写了一篇分析以太坊手续贵原因的文章。后来,有老哥留言表示,坎昆升级会让以太坊layer2手续费更低,交易体验更好。更有老哥认为坎昆升级后,layer2会迎来爆发,并推荐了如op\arb\zz\magic\gmx\imx\rdnt等值得埋伏的项目。

然而,作为理性的投资者我们还需要对坎昆升级进行详尽了解,谨慎参与项。那么,什么是坎昆升级呢?

EIP-4844 (坎昆升级)是在 2021 年 11 月由 Vitalik Buterin 提出的,目的是为了实现以太坊的分片方案的部分逻辑和结构,但不真正启用分片。坎昆升级的提案过程大约花了一年多的时间,但社区对它的讨论和反馈并不多,可能是因为它比较复杂和技术性,也可能是因为它只是一个过渡性的方案。

对于坎昆升级需要了解3个问题:

1/坎昆升级解决的问题是什么?

2/坎昆升级主要内容是什么?

3/坎昆升级带来什么影响?

1/解决问题:降低calldata费用

坎昆升级核心要解决的是calldata费用昂贵的问题。

币圈老哥一般都知道,Rollup 是将一捆交易在以太坊主链外执行,执行完后将执行结果和交易数据本身经过压缩后发回到L1上,以便其他人去验证交易结果的正确性。显然,如果其他人没有办法读取数据,那就无法完成验证。因此让其他人能够获取交易原始数据这一点非常重要,它也被称为“数据可用性”(Data Availability)。

而受限于以太坊当前的架构,L2向L1的传输的数据,是储存在交易的 Calldata 里面的。然而,Calldata 在最初以太坊设计的时候只是一个智能合约函数调用的参数,是所有节点必须同步下载的数据。如果 Calldata 膨胀,将造成以太坊网络节点的高负载,因此 Calldata 的费用是比较昂贵的。这也是造成当前L2费用的主要因素。

这就造成了一种不匹配。打个比方,就像我明明只想把数据传个网盘,让有需要的其他人在一段时间内能够去下载;结果,你却把我的数据做了个我并不需要的全网广播同步,强制所有人必须在限定时间内完成下载,然后反过来因为这个服务向我收取高昂的费用。这明显是不合适、需要改进的。

对于这块内容,

《深度解读 EIP-4844:如何降低 Layer2 费用100倍?》一文有详细阐述,各位老哥有空可以看原文。胖老师很多内容也是抄他们的作业的。

链接如下:

https://www.chaincatcher.com/article/2088707

2/主要内容:携带blob交易

我们可以把L2传过来的数据单独设计一个数据类型,把它和L1的 Calldata 分开。这种数据类型只需要满足能在一定时间内被有需要的其他人所访问下载即可,无需做全网的同步。

为此,坎昆升级引入了”携带 blob 的交易“这一新的交易类型。Blob 的本体:一个用于放置L2压缩数据的“大数据块“。它被设计出来,就是为了承载L2的原始交易压缩数据,相当于之前L2的这些数据放到 Calldata,现在就放到 Blob 里面。相比于 Calldata,Blob 的数据大小可以非常大,高达 125 KB。简单来说,layer1太贵了,把数据换到blob这个地方存储据,然后把压缩的字符串存在layer1。

胖老师举个栗子:

假设你想在以太坊上存储一张小图片,但是用智能合约或者其他的交易格式会很贵。你可以用 Blob 来把图片的数据编码成一个字符串,然后发送一个 Blob 交易到以太坊。这样,你的图片就会被存储在以太坊的区块中,而不需要执行任何的逻辑或者验证。你可以用一个区块浏览器来查看你的 Blob 交易,或者用一个特殊的工具来解码你的图片数据。

这种存储方式,让Blob 有3个核心特点:

a/不能像 Calldata 那样被 EVM 所读取

b/有生命周期,在 30 天之后将被删除

c/独立于L1gas费的新费用市场

3/主要影响:降低gas费100到1000倍

总结来说,坎昆升级的目的是为了在全面实现分片之前,为以太坊提供一个“权宜之计”,通过增加大约 2 MB 的空间到区块中,来缓解网络的拥堵和降低用户的手续费。

主要优点有:

a/它可以在不牺牲去中心化的情况下,降低网络上的 gas 费用,特别是对 rollup 解决方案。Arbitrum 和 Optimism 等 rollup 解决方案可以将 gas 费用降低 100 到 1000 倍。

b/它可以在执行层中存储任意数据,为以太坊提供更大的数据可用性。

c/它可以与以太坊 2.0 的分片方案兼容,为未来的升级做好准备。

主要缺点有:

a/它只是一个临时解决方案,不能完全解决以太坊的扩容问题。

b/它会增加共识层节点的存储空间需求,因为每个区块可以带 16 个 Blob(2MB)。

c/它需要共识层节点在 30 天内清空 Blob 数据,否则会影响网络性能。这意味着需要有其他的机制来实现长期的数据存储。

其中,30 天内清空 Blob 数据将会给链上用户资产带来较大的风险。

如果共识层节点清空了 blob 数据,那么 rollup 的数据就可能丢失或不可访问。但这并不会影响 rollup 的安全性,因为 rollup 的安全性是由验证层的智能合约来保证的。只要验证层的智能合约没有被篡改或破坏,那么 rollup 的交易就是安全的。

当然,如果 rollup 的数据丢失或不可访问,那么 rollup 的用户就可能无法提取他们的资产或执行他们的操作。这就需要有其他的机制来实现长期的数据存储。那么如何实现长期的储存呢?

对此,V神表示解决方案其实很多,但具体实现细节V神没有提到。所以,这让胖老师感觉以V神做事情有点糙,不怎么讲究细腻全面的产品体验。