本文介绍了 L2 解决方案 StarkNet 交易的费用机制,及其未来的变化方向。
StarkNet Alpha 在几周前登陆了主网,上线初期并没有应用费用机制,而与 L1 交互的 gas 成本实际上是由 StarkWare 补贴的。我们针对目前 StarkNet Alpha 版本提出了一种估算和收取交易费用的方式。
随着网络的不断升级,我们认为网络计算和收取费用的方式也相应地更新。我们在这里提出了一个初步的费用计算和收费方法,目的是随着 StarkNet 的发展对其进行完善。了解这些参数有助于构建者在设计他们的 StarkNet dApp 时更好地进行规划。
通常来说,一笔交易的成本由几个因素决定:
概括来讲,目前的解决方案是让用户/应用程序使用定序者 (Sequencer) 来估算接受 “交易” 所需要花费的成本:
用户要求一个新的服务 ("gas 估算服务,estimate gas service") 来估算在当前状态下运行给定 “交易” 所需的费用。该服务根据下文中的公式进行估算。这项服务由 Sequencer 公开。在内部,它将尝试根据当前的 StarkNet 状态估算处理该交易所消耗的资源。
正如下文所解释的,这个估算值将是交易成本的首个粗略的近似值。费用本身将以 ETH (支付货币) 来指定,而 gas 价格作为估算服务的参数提供。
在这一点上,用户可以选择是否接受所估算的费用,或标记更高/更低的费用。然后,用户确定其愿意支付的费用并进行签名,这个签名也作为交易的一部分被发送到 Sequencer 中,以便执行这笔交易并添加到未来的区块中。
对于费用的首个近似值,我们考虑了服务提供商 (sequencer 定序者 + prover 证明者) 支付的一些外部成本,如用于数据和计算的 L1 gas (上述的第 1 和 2.1 项)。计算的费用可能包括一个加价,以补偿 L1 gas 成本的波动。在这一点上,我们忽略了证明创建、存储操作和网络的 L2 成本 (上述的第 2.2、3、4 项)。
因此,在这个阶段,计算费用的公式将是:
其中:
注意:该交易费成本的大头在于 L1 数据部分。这包括状态差异和消息。换句话说,与在 L1 上发布数据的成本相比,计算成本可以忽略不计。 (gas_per_step << gas_per_byte)
这个机制在未来可能会有几种变化。
首先,我们希望进行一些优化以减少成本。具体来说,当几笔交易共享相同的证明时,它们也共享一些开销,因此会降低生产区块和验证的成本。在这种情况下,可以对原始交易的估算费用进行一些削减。
引入 volition 用于数据可用性 (即链下数据可用性),从而可以提供另一个节约成本的方式,我们希望将其纳入成本估算的因素。为基于 L2 的数据所做的存储修改可能会产生不同的成本。
当网络变得去中心化时,我们会采用其他机制和市场设计,其中细节目前正在研究中。一个例子是使用 “费用拍卖” 模式 —— 用户可以使用不同成本组成的某种线性组合进行付费,并允许 sequencer 挑选付费最高的交易。
最后,引入费用抽象将允许网络参与者使用 ETH 以外的代币进行付费。
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
本文首发于:https://news.ethereum.cn/Layer2/fees-in-starknet-alpha
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!