StarkNetAlpha在几周前登陆了主网,上线初期并没有应用费用机制,而与L1交互的gas成本实际上是由StarkWare补贴的。我们针对目前StarkNetAlpha版本提出了一种估算和收取交易费用的方式。
随着网络的不断升级,我们认为网络计算和收取费用的方式也相应地更新。我们在这里提出了一个初步的费用计算和收费方法,目的是随着StarkNet的发展对其进行完善。了解这些参数有助于构建者在设计他们的StarkNetdApp时更好地进行规划。
StarkNet的交易成本
通常来说,一笔交易的成本由几个因素决定:
1、数据——发送至L1的数据量:
1.1状态差异信息
First Stage Labs更名为The Open Platform,已支持Telegram钱包:金色财经报道,Web3基础设施平台First Stage Labs宣布更名为The Open Platform,并已支持Telegram钱包,该钱包使用户能够在Telegram内零费用买卖加密货币、交换和转账。[2023/9/9 13:27:59]
1.2L2→L1信息的数量
1.3已消耗的L1→L2信息
这些数据都会在不同的StarkNetL1交易中以calldata的形式发送到L1。
2、计算成本——这是针对跟踪步骤(tracesteps)的计费,包括操作系统(OS)步骤(如系统调用)。包括:
Cairo公布路线图:新合约语法将与Starknet alpha v0.12.0共同推出:6月29日消息,编程语言Cairo公布其路线图,为了社区便利性,创建公共板以描述即将推出的一些新功能;很快将推出新的合约语法,与Starknet alpha v0.12.0一起发布,需要进行一些代码更改,很大程度上丰富了智能合约语言;通过Cairo1.1.0在Starknet主网上的推出以及即将到来的v2版本,已经达到了语言成熟度的一个重要里程碑。文档、书籍和Starknet Discord等资源足够帮助用户开始并从Cairo 0迁移。
随着新合约语法的发布,Cairo现在足够稳定和丰富,足以支持复杂的应用程序,并移植现有的Cairo 0逻辑。此外,Starknet的向后兼容性保证确保即使语言发生重大变化,用户也将有足够的时间(至少六个月)来完成合约的开发或审核和部署。[2023/6/30 22:09:25]
L1证明验证
Bitstamp不活跃费用在客户响应后取消:金色财经报道,卢森堡加密货币交易所Bitstamp周三表示,在听取客户意见后,该交易所取消了收取闲置费的计划。首席执行官JB Graftieaux在一份声明中说,我们已经听到了客户对不活动费的反应。我们考虑了所有人的担忧,决定取消。
该公司上周五表示,计划开始对那些余额不足200欧元且在过去12个月没有任何活动的账户收取每月10欧元的费用。Bitstamp当时表示,在账簿上保留不活跃的账户是一种成本。(coindesk)[2022/7/7 1:56:46]
L2计算成本(SHARP)
3、存储成本:在交易执行期间需要进行多少读/写操作。
4、交易的L2网络传输成本:它的调用数据和发出的事件。
LBank已完成分发总价值约58000USDT的STAR代币空投:据官方消息,LBank于11月21日开启的STAR空投活动已于11月25日结束。STAR为Filecoin的分叉币,为奖励FIL持仓用户,LBank以10FIL=1STAR的比例空投。截止于11月27日20:00已完成STAR代币的发放,本次空投STAR数量约10000枚,总价值约58000USDT。
FileStar (STAR)通过一系列技术算法创新升级,经济模型及治理机制的精细化设计,在 Filecoin 的基础上实现了一套更加合理的分布式存储激励机制,并逐步从分布式存储进化为分布式互联网的激励层,整合全世界互联网基础设施资源,实现计算、带宽和存储资源的最优化利用,最终成为搭建 Web3.0(未来互联网)的分布式存储、可验证计算、可度量带宽的物理世界基础设施。[2020/11/27 22:22:38]
目前的费用机制
概括来讲,目前的解决方案是让用户/应用程序使用定序者(Sequencer)来估算接受“交易”所需要花费的成本:
用户要求一个新的服务("gas估算服务,estimategasservice")来估算在当前状态下运行给定“交易”所需的费用。该服务根据下文中的公式进行估算。这项服务由Sequencer公开。在内部,它将尝试根据当前的StarkNet状态估算处理该交易所消耗的资源。
正如下文所解释的,这个估算值将是交易成本的首个粗略的近似值。费用本身将以ETH(支付货币)来指定,而gas价格作为估算服务的参数提供。
在这一点上,用户可以选择是否接受所估算的费用,或标记更高/更低的费用。然后,用户确定其愿意支付的费用并进行签名,这个签名也作为交易的一部分被发送到Sequencer中,以便执行这笔交易并添加到未来的区块中。
成本公式
对于费用的首个近似值,我们考虑了服务提供商(sequencer定序者+prover证明者)支付的一些外部成本,如用于数据和计算的L1gas(上述的第1和2.1项)。计算的费用可能包括一个加价,以补偿L1gas成本的波动。在这一点上,我们忽略了证明创建、存储操作和网络的L2成本(上述的第2.2、3、4项)。
因此,在这个阶段,计算费用的公式将是:
其中:
1、gas_price是服务中配置的gas价格,每gas单位使用多少ETH。这个价格以后可以通过API查询。
2、gas_per_byte是存储调用数据时单个字节的gas成本,目前为每个字节16gas。
3、?(msgs)是交易从L2到L1发送的信息数量。
4、bytes_per_msg是消息的字节数。当然,每个消息的字节数都可以不同,所以我们可以使用所有消息的平均消息字节大小。额外的5000gas是用来更新一个内部计数器的。
5、?(state_diff_items)是该交易所做的状态差异的数量。2?31分别代表每次存储写入时需写入两个字段元素,每个字段元素由31个字节组成。
6、gas_per_step是(L1上)单步验证的一个常数定价。stepstxn是该函数执行的步骤数。
注意:该交易费成本的大头在于L1数据部分。这包括状态差异和消息。换句话说,与在L1上发布数据的成本相比,计算成本可以忽略不计。(gas_per_step<<gas_per_byte)
未来的计划
这个机制在未来可能会有几种变化。
首先,我们希望进行一些优化以减少成本。具体来说,当几笔交易共享相同的证明时,它们也共享一些开销,因此会降低生产区块和验证的成本。在这种情况下,可以对原始交易的估算费用进行一些削减。
引入volition用于数据可用性(即链下数据可用性),从而可以提供另一个节约成本的方式,我们希望将其纳入成本估算的因素。为基于L2的数据所做的存储修改可能会产生不同的成本。
当网络变得去中心化时,我们会采用其他机制和市场设计,其中细节目前正在研究中。一个例子是使用“费用拍卖”模式——用户可以使用不同成本组成的某种线性组合进行付费,并允许sequencer挑选付费最高的交易。
最后,引入费用抽象将允许网络参与者使用ETH以外的代币进行付费。
来源|community.starknet.io
作者|LiorSchejter
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。