修订:Marina、Evelyn|W3.Hitchhiker
随着以太坊的兴起,我们看到了去中心化金融 (DeFi) 的高速发展,以及现在非同质化代币 (NFT) 的爆炸式增长。然而,以太坊每秒只能处理不到 20 笔交易(TPS),由于以太坊网络拥堵导致gas fee大幅上涨。在更广泛地有效采用这些网络之前,无疑需要更高的吞吐量和更便宜的费用。但ETH 2.0的扩容还需时间,在中短期内Layer 2的解决方案能够解决主要网络面临的低效率问题,同时仍能保持以太坊区块链的完整性。
Layer 2值得关注的原因如下:
-
Layer 2网络将会更快、更便宜,能够让更多用户得以进入以太坊生态;
-
提前参与Layer 2网络的激励,能够获得奖励;
-
在Layer 2 发展的预期下,用户可将资产迁移至二层网络上,将会有很大概率获得空投;
因此,Layer 2 也是今年最重要的看点之一。对于用户来说,除了体验舒适之外,最关心的还是交易成本。本文从对比Layer 2各种解决方案的交易成本出发,方便各位读者能够更加清晰的了解到每个解决方案的优劣势。
一、Layer 2的扩容技术
据L2BEAT的数据显示,当前layer 2共计19个项目,总TVL从2021年初的$48.2M 增长到$5.63B,总TVL涨幅达11580%。Layer 2的快速增长与资本涌入、背后的技术方案调整有着密切的关系。
目前主要有四种技术方案:Optimistic Rollup、ZK Rollup、Plasma、Validium。
二、各解决方案的Gas 费用
四大方案各自费用
【 以上计算前提是以当前Eth价格为2500u,区块gaslimit为30000000,gas费用为30Gwei,平均13秒的出块时间计算, 极限TPS指对应运行环境占领了所有以太坊区块空间(在证明验证上花费 500000 gas),普通TPS指对应运行环境占领了所有以太坊1/3的区块空间。】
▶️ 计算方法
如上图,普通转账eth需要字节数112左右,ZK压缩为12个字节,op系压缩为78.4(不固定,假设压缩了30%的空间),假设swap转账需要字节数约180左右,ZK压缩为14个字节,op系压缩为126个字节。
在现有的以太坊链上,gas 上限为 3000 万,交易中每个非0字节的calldata数据需要 16 个 gas,0字节需要4个gas。如果ZK占领了以太坊所有的区块空间(在证明验证上花费 500k gas),忽略0字节的数量。
那么该批次可以有(2950 万 / 16)= 1,843,750 字节的数据。如上所示,每次用户操作的 ETH 转账汇总只需要 12 个字节,这意味着该批次最多可以包含 153,645笔交易。在13 秒的平均出块时间下,这转化为 ~11,818 TPS(相比之下,直接在以太坊本身上传输的 ETH 传输为 1300 万 / 21000 / 13 ~= 101 TPS)。
由上可知ZK Rollup 转账eth的可扩展性提高了100 + 倍,而zk最大优势不在于转账eth,相比转账erc20的合约代币,与uniswap交易来算,主网消耗的gaslimit的更多,ZK Rollup 压缩的性价比也越高,ZK Rollup相比主网的uniswap交易拓展可提高400+倍。
同理,也可计算Optimistic系的扩展性与极限tps。
注意:EIP-4488、EIP-4844 将对rollup的成本大幅降低。
1、ZK Rollup的交易费用
在zkSync中,每笔交易的成本有两个组成部分:
-
链下部分(存储 + 证明者成本):状态存储和 SNARK(零知识证明)生成的成本。
(这部分依赖于硬件资源的使用,因此是不变的。我们的基准估计每次转账约为 0.001 美元。) -
链上部分(gas 成本):对于每个zkSync区块,验证者必须支付以太坊 gas 来验证 SNARK,另外每笔交易额外支付约 0.4k gas 来发布状态 ∆。
(链上部分是一个变量,取决于以太坊网络中当前的 gas 价格。但是,这部分比普通 ETH/ERC20 转账的成本要便宜几个数量级。)
(1)交易费用地板价
ZK rollup的交易地板价依赖于eth主网 gas的费用。
链上 gas fee = 每 wei 的价格 * 交易大小 * gas 的费用 * 代币的风险系数
ZK Rollup 是不是用得多费用越低 OP ,AR 是有类似这样的机制?用户的状态数更新,用户用的越多,ZK 支付给 layer1 层的 Gas 费用是会相对变少,但是并未平摊至用户。
-
链下部分:SNARK(零知识证明)生成的成本。这部分依赖于硬件资源的使用,因此是不变的。我们的估计每次转账基准约为 0.001 美元。
实际大小 = (zkp_cost_chunk * op_chunks) * token_usd_risk;
普通交易的链下 gas 成本 = 0.001 * 2 * 1 = 0.002u
交易接收者为新地址的链下 gas 成本 = 0.001 * 6 * 1 = 0.006u
swap 的链下 gas 成本 =0.001 * 5 * 1 = 0.005u
▶️ 验证流程参考下方代码块:
-
链上部分(gas 成本):对于每个zkSync区块,验证者必须支付以太坊 gas 来验证 SNARK,另外每笔交易额外支付约 0.4k gas 来发布状态 。链上部分是一个变量,取决于以太坊网络中当前的 gas 价格。但是,这部分比普通 ETH / ERC20 转账的成本要便宜几个数量级。
实际大小= 每 wei 的价格 * 交易大小 * gas的费用 * 当前gas价格 * 代币 的风险系数 = wei_price_usd*gas_tx_amount*scale_gas_price*token_usd_risk
假设 ETH 价格为2500u,当前 gas 价格为30Gwei
普通交易的链上 gas 成本 = 2500/10^18*(0+300+2002)(30*10^9)1.31 = 0.068u
交易接收者为新地址的链上 gas 成本 = 2500/10^18*(0+940+2006) (30*10^9)1.31 = 0.20865u
假设eth价格为2500u,当前gas价格为30Gwei
普通交易的链上 gas 成本 = 2500/10^18*(0+300+200*2)* (30*10^9)*1.3*1 = 0.068u
交易接收者为新地址的链上 gas 成本 = 2500/10^18*(0+940+200*6)* (30*10^9)*1.3*1 = 0.20865u
▶️
swap的gas_tx_amount = 链上验证成本 + 提交成本 + Chunk * Swap Chunk参数(0 + 710 + 200*5 )
swap的链上成本 = 2500/(10^18)*(0+710+200*5)* (30*10^9)*1.3*1 = 0.1667u
▶️ 验证流程如下:
总成本 = 链上 + 链下
普通交易总成本 = 0.002 + 0.068 =0.07 u
交易接收者为新地址的总成本 = 0.005 + 0.20865 = 0.21365 u
swap总成本 = 0.005 + 0.1667 = 0.1672 u
(2)影响地板价的因素
Rollup的交易地板价依赖于 ETH 主网 calldata 的费用。
ETH 的 gas 的相关处于草案阶段的 EIP 主要为 EIP4488,该方案将 calldata 非0字节数据由16gas 降低至 3 gas,对 layer2 TPS的影响较大,利好 layer2 的 Rollup,可以大大降低Rollup主网的交易成本,非0字节的数据可以降低为当前的 1/5 的成本不到,0 字节的也可以微微降低(ab,op,zk 等预计都可以下降至目前 1/5 的手续费)。
(3)费用支付方式
zkSync中的转账天然支持“无气体交易”:用户在被转账的代币中支付交易费用。因此,例如,如果您想交易 DAI 稳定币,您无需拥有 ETH 或任何其他代币。只需支付一小部分 DAI 的费用。
2、zkPorter的交易费用
目前 github 无 zkPorter 相关代码,由于 zkPorter 不需要链上数据可用性,预计成本将大大降低。
主要为链下成本,交易可以控制在 1 到 3 美分的恒定费用。引用自官方文档。
在zkSync 2.0中,L2 状态将分为 2 个方面:具有链上数据可用性的 ZK Rollup 和具有链下数据可用性的 zkPorter。
这两部分将是可组合和可互操作的:ZK Rollup 端的合约和账户将能够与 zkPorter 端的账户无缝交互。
从用户的角度来看,唯一明显的区别是 zkPorter 账户的费用减少了 100 倍。
想象一下应用场景:Uniswap 在 ZK Rollup 端部署他们的智能合约,zkPorter 账户可以以低于 0.03 美元的费用进行swap。zkPorter 账户可以在 Uniswap 合约上进行数千次交换,但只需将一次更新发布到以太坊。
zkPorter 账户的数据可用性将由 zkSync 代币持有者(称为监护人)保护。他们将通过签署区块来跟踪 zkPorter 端的状态,以确认 zkPorter 帐户的数据可用性。
监护人使用 zkSync 代币参与权益证明 (PoS),因此任何数据可用性故障都将导致他们被削减。这为数据可用性提供了加密经济保证。需要注意的是,zkSync 中的 PoS 比侧链等其他系统中的 PoS 安全得多。这是因为 zkSync 监护人本质上是无法窃取资金。他们只能冻结 zkPorter 状态(冻结他们自己的权益)。每个用户都可以自由选择自己的安全阈值。任何想要所有链上可用数据的用户都可以完全留在Rollup,使用ZK Rollup账号。
zksync2.0主网上线时间
根据官方文档2022年1月31日的文章内容可得知,6个月内,zkPorter将与zksync2.0 一起上线主网。
3、Arbitrum Gas 机制
Arbgas 费用将根据用户与 Arbitrum 的交互方式而有所不同,但下表可用作一般参考:
▶️ 部分代码:
4、optimism Gas 机制
optimism 交易中的两个成本来源:L2 执行费和 L1 数据/安全费。
(1)L2 执行费
就像在以太坊上一样,Optimism 上的交易必须为他们使用的计算量和存储量支付gas 。每笔 L2 交易都会支付一定的执行费用,等于交易使用的 gas 数量乘以交易附带的 gas 价格。这也是以太坊的收费方式。
这是(简单的)公式:
l2_execution_fee = transaction_gas_price * l2_gas_used
使用的 L2 气体量取决于您尝试发送的特定交易,交易在 Optimism 上使用的 gas 量通常与在 Ethereum 上的大致相同。
(2)L1 数据费
Optimism 与以太坊不同,因为 Optimism 上的所有交易也都发布到以太坊。此步骤对于 Optimism 的安全属性至关重要,因为这意味着同步 Optimism 节点所需的所有数据始终在以太坊上公开可用。这就是使 Optimism 成为 L2 的原因。
Optimism 上的用户必须支付向以太坊提交交易的费用。称之为L1 数据费用,这是 Optimism(和其他 L2)与以太坊之间的主要差异。由于以太坊上的 gas 成本非常昂贵,因此 L1 数据费用通常会在 Optimism 上占据交易的总成本。该费用基于四个因素:
-
以太坊当前的gas价格。
-
将交易发布到以太坊的 gas 成本。这交易长度的大小(以字节为单位)成比例。
-
以gas计价的固定费用。当前设置为 2100。
-
一种动态的间接费用,按固定数字支付的 L1 费用。当前设置为 1.24。
公式:
L1_data_fee = L1_gas_price * (tx_data_gas + fixed_overhead) * dynamic_overhead
三、总结
随着越来越多的应用程序接入区块链,用户的采用和交易量将呈指数级增长。从 DeFi 、NFT到 DAO,它们最终将消耗以太坊上更多的吞吐量和产生更多交易成本,使其使用体验感降低,从而阻碍了区块链向更多人口的扩展的机会。
L2s 是目前以太坊扩展的最佳解决方案,在提供高吞吐量和更便宜的费用的同时,可以很好的利用 L1s 的安全性。但由于Layer 2的扩容解决方案也在不断的更新和调整,每种方案都有其各自的优劣势,总体来说,zk rollup的交易费用更低、极限/部分TPS更快、最大拓展性也大大的得到提高以及在安全性上也有保证,zkporter次之;其他解决方案的交易费用也有所降低,但是同zk rollup相比略逊色。
未来,我们将看到许多项目在 L2 上迁移或创建,从而改善用户体验。作为 2022年最热门的趋势之一,L2s 将继续建立庞大而忠诚的用户群,这将成为以太坊最重要的发展之一。
本文内容系W3.Hitchhiker 原创,如需转载请标明出处。以上内容仅供参考、交流,不构成投资建议。如存在明显的理解或数据的错误,欢迎反馈。