作者:Eric (Head of Developer Relations)
英文链接:Godwoken V1 Fee Structure
这几天,我们从公开渠道以及私下里收到了社区关于 Godwoken V1 新 gas 费模型的反馈。因此,我要先感谢那些与我们进行建设性对话的社区成员。
我觉得这是一个很好的契机,可以向社区分享我们当下对 gas 费模型的思考过程,目前的实施情况,以及未来可能的前进方向。我鼓励大家花点时间在该帖子下面分享各自的想法,以便我们能听到你们的声音。
Gas 费简介
在 Godwoken V0(即 Godwoken 之前的版本)中,基本上没有 gas 费。终端用户的交易是免费的,将智能合约部署到网络中也是免费的。当然,在部署上会有一定的限制(白名单限制)。现在,随着 Godwoken V1 在主网的上线,这一限制已经解除,任何人都可以在网络中匿名部署(或交易)。我们将其称为 Godwoken Beta 阶段。
这项改变需要引入 gas 费。
在以太坊的 L2 生态中,gas 费扮演了两个角色:
- 支付将 rollup 数据传输到 L1(以太坊)进行结算的费用。
- 保护网络免受攻击。
在 Godwoken 中,数据会传输到 Nervos L1 即 CKB 区块链上进行结算。由于 Nervos CKB 和 Godwoken 的独特性,这些结算费用低到难以想象。事实上,如此之低的费用,以至于在确定 Godwoken V1 的 gas 成本时,它不是一个需要考虑的因素。
但是,gas 费在保护网络免受攻击方面确实发挥了重要作用。现在的主要问题是 DoS 攻击。 目前 Godwoken V1 的所有限制都已解除,并且随着它越来越受欢迎,攻击面会变得更大。这是开放的公链需要承担的代价。
目前的 Gas 费
目前,系统设定的最低 gas price 为 9,000 shannons 或 90,000 gwei。在区块链浏览器中,可以看到这一数据。
这个基础的 gas price 反过来会影响网络中所有需要 gas 的功能(例如调用智能合约,变更状态)。只读操作仍然是免费的,这是 EVM 区块链的标准。每个 OP 代码的 gas price 没有变化,仍然按照标准来。我们的目标是在任何时候都尽可能地接近 100% 的兼容,因此,没有计划在 OP 代码的 gas 费上进行调整。
按照 9,000 shannons 的 gas price,我们可以让 Godwoken 和其他 L2 网络做一个基本的比较,尤其是其他 optimistic rollup。根据 https://l2fees.info/ 4 的数据,我们可以看到,Godwoken 的 gas 费与 ZKrollups 相当,大约是其他 optimistic rollup(Boba,OP,Arbitrum)费用的 1/10,当然这取决于具体的时间段和市场行情。
我们看下上图中“Send ETH”这一列,这个功能很重要,因为在所有链中它都是标准化的。在 Godwoken V1 上,则类似于(将 L2 上的 pCKB)发送到 CKB 上。(请注意 Metis 不是真正的 rollup)
我们之所以选择 9,000 shannons,是因为它让我们在 Godwoken 上发送 ERC20 代币的费用约为 1 美分。(这个费用会随市场行情的变化而波动,我们将在下面详细讨论)。
一旦设置了 gas 费模型,我们就需要查看一下写入网络这个最低成本的操作。这可能是 DoS 攻击最简单的攻击媒介。在这种情况下,它将向网络写入一个简单的日志。同样,设置 gas 费也适用于网络上更复杂的交易,例如 swap、铸造 NFT,甚至部署合约。当我们调整 gas 费时,它会改变所有的这些操作,而不仅仅是一个。
需要注意的是,gas 的使用量(以及由此产生的 gas 总成本)很大程度上取决于智能合约本身。 写得好的智能合约可以大大减少 gas 的使用量,而写得不好的智能合约反过来会大大增加 gas 使用量。因此,在 DEX 上做一笔 swap 的成本由几个因素决定:网络的基础 gas price,代码的质量,以及 solidity 智能合约语言的限制。这使得在不同网络之间比较此类操作的成本变得非常困难。
挑战
展望未来,挑战在于如何在可接受的 gas 费和保持网络安全之间找到一个平衡点。 一方面,一个贵到用不起的网络是没有用的,而另一方面,一个脆弱的网络在关键时刻可能不安全或者不方便。
或许没有正确或错误的答案,只有可以接受的权衡与取舍。
建议采取的步骤
有几个方案可能有助于确保网络安全的同时,让我们能够降低 gas 费。有些可以立即实施,而有些则必须加入到短期的路线图中。
需要特别说明的是,我们正在共同探索 Optimistic Rollup 的新领域。通常情况下,还没有最佳实践或黄金标准。因此,我们应该牢记,如果为了网络的安全或稳定,我们也可能需要放弃一些步骤。每一个都是一小步,没有任何一个建议是终极解决方案。
1) 实施速率限制,每个 IP 地址每分钟最多 100 个请求。
这意味着,如果某个 IP 地址在 1 分钟内尝试发起超过 100 个请求(1~2 个块),那么它就会被阻止。这可以降低来自同一 IP 地址的 DoS 攻击的可能性。
这在目前的网络配置中是可以实施的,不需要额外的重大变更。
2) 实施速率限制,每个区块同一账户地址最多 100 个请求。
这意味着,每个区块同一个账户地址的交易请求不能超过 100 个。这可以降低来自单个账户地址的 DoS 攻击的可能性。
这在目前的网络配置中是无法实施的,需要额外的更新,并且需要加到 Godwoken 的路线图里。
上述的第 1 步和第 2 步都是次要的安全更新,gas 费仍然是网络中最后也是最重要的安全防线。
3) 引入预言机,根据 CKB 的价格自动调节 gas 费。
目前,gas 费由 Godwoken V1 核心开发团队设置。通过引入预言机机制,gas 费用可以随着 CKB 价格的上涨/下跌而降低/提高。 这将避免网络上的交易手续费变得过于昂贵,同时还能保证 gas 费足以保护网络安全。
这在目前的网络配置中是无法实施的,需要将其添加到路线图中。与此同时,核心团队可以定期查看 CKB 的价格,按照设定的时间表手动调节 gas 费。
4) 逐步降低 Godwoken V1 的 gas 费
随着第 1 步和第 2 步的实施,gas 费可以逐步降低。
目前,系统设定的最低 gas price 为 9,000 shannons,在第 1 步实施后,我建议将最低 gas price 调整到 4,000 shannons。一旦完成并且没有引发新的问题,我们可以继续执行第 2 步,限制每个块同一地址的请求数量。完成后,我建议将最低 gas price 降至 1,000 shannons。
5) 待定
如果还有其他可以实施的创造性解决方案,我们将继续在这个帖子下面进行分享,这对我们而言很重要。这是 Godwoken 区块链之路的开始。
小结
我们希望这篇文章能够阐明 Godwoken V1 的 gas 费模型以及这些变更的原因,以确保我们在可接受的 gas 费和网络安全的需要之间找到最佳平衡点。
随着我们继续进行更新工作,我们将有目的地逐步实施每一步。我们将不断衡量结果,确保在改进过程中不会引发新的技术问题。此外,我们会确保向大家披露最新资讯,同时为最新的改进提供说明。
我们重视大家的看法,鼓励大家一如既往地提供反馈意见,让 Godwoken 受益并取得长期成功。