本文探讨了动态基础费用对Solana区块链的重要性,借鉴了以太坊EIP-1559的概念,以适应多线程环境。文章详细描述了现有费用模型的不足,以及如何通过引入动态费用机制来提升资源使用的公平性和防止网络拥堵,同时保持Solana的高并发性能。
Solana 的区块链模型以其并行执行和本地费用市场而著称,这使得在规模大时能够实现高吞吐量和低延迟。然而,当网络使用量激增时,静态费用结构可能无法满足需求,因为它们缺乏实时调整交易成本的自动机制。在这篇文章中,我们探讨了动态基础费用——受到以太坊 EIP-1559 的启发,但针对多线程环境进行了调整——展示了 Solana 如何实现全球拥堵信号,以:
下面,我们概述了 Solana 与以太坊费用模型的现状,强调了动态费用的动机,然后提出一个简单的数学框架,说明 Solana 如何可能纳入基础费用乘数以进行全球拥堵管理。
动态基础费用对 Solana 重要的原因有几个:
在高负载下防止垃圾交易
如果使用量较低,基础费用保持最低——没有损害。但是,随着区块容量接近极限(例如,每个区块 4800 万计算单位),费用乘数将自动上升。这会阻止垃圾交易或低价值交易堵塞网络。
与资源使用成比例定价
在动态模型中,每笔交易的费用与其消耗的计算单位(CUs)的数量相一致(而不是对所有交易收取固定的签名费用)。这提供了更公平的费用分配,并激励开发者优化他们的链上程序。
通货紧缩效应和验证者奖励
与 EIP-1559 类似,基础费用的一部分(或全部)可以被销毁。这减少了在高使用时的代币供应,有利于长期持有者。验证者仍然可以从急需包括交易的用户那里获得优先小费。
保持并行性和可扩展性
即使有全球费用,Solana 的并发模型仍然完整。争夺同一账户的用户可以在本地出价,而全球基础费用则确保整个网络不会因低价垃圾交易而受到影响。
目前,Solana 收取固定基础费用(例如,每签名 5000 lamports),并为竞争较大的账户提供本地费用优先权。虽然本地费用竞标可以在“热点”账户场景中提供帮助,但当整体网络使用量激增时,并没有全球强制动态机制来提高或降低交易的基线成本。主要缺点是:
以太坊的 EIP-1559 引入了一种全球基础费用,该费用逐块调整,以目标气体使用阈值为目标(通常为 50%)。它包括:
在其核心,以太坊协议将每个区块的大小(气体使用)与目标区块大小 $s^*$ 进行比较。如果上一个区块使用的气体大于目标,基础费用就会上涨;如果使用的少,基础费用就会下降。形式上,如果 $b[i - 1]$ 是上一个区块 $i-1$ 的基础费用,$s[i - 1]$ 是该区块的测量气体使用量,那么新区块的基础费用 $b[i]$ 是:
$$ b[i] \;=\; b[i - 1] \;\cdot\; \Bigl( 1 \;+\;\phi \,\frac{s[i - 1] - s^}{\,s^\,} \Bigr), $$
其中:
例如,如果 $s[i-1]$ 大于 $s^*$,表示需求高,则 $b[i]$ 按比例增长为 $\frac{s[i - 1] - s^*}{s^*}$。相反,如果区块使用的气体单位少于 $s^*$,基础费用则会下降。
初始条件:在以太坊中,$b[0]$ 设置为 1 Gwei,区块大小可以扩展到 $2s^*$。采纳类似模型的 Solana 或其他区块链可以选择不同的起始费用或区块大小参数。
在 EIP-1559 下,当用户创建交易时,他们除了气体限制外,还指定两个关键参数:
设交易实际消耗的气体为 $\tilde{g} \le g$。那么有效气体价格为:
$$ \min{\,b + \varepsilon,\, c}, $$
且用户支付的总金额为 $\tilde{g}\,\times\,\min{b + \varepsilon,\,c}$。
用户的总支付中:
在像 Solana 这样的并行或“多线程”区块链中,直接采用 EIP-1559 的方法可能需要调整:
尽管如此,更新基础费用的方程式、费用上限 $\bigl(c\bigr)$ 的概念以及小费 $\bigl(\varepsilon\bigr)$ 都可以直接延续,前提是链上实施逻辑来衡量每个区块的使用情况与期望目标的比较。
通过销毁基础费用,网络在高使用期间获得通货紧缩的杠杆,同时验证者仍然可以受益于小费。这种“标定价格”与本地“加小费”相结合,有可能成为管理 Solana 这样的高吞吐量、并发区块链中交易需求的有效途径。
为了将 EIP-1559 类似的机制调整到 Solana 的并行环境中,我们考虑一个混合模型:
这样的设计,局部费用处理微观层面的竞争,而全球费用则保护系统免受大规模垃圾交易或需求冲击。
Solana 的线程级并发将保持不变——多个线程各自处理一组账户。如果用户希望在一个热门线程上确保快速处理,他们增加一个优先小费以影响本地排序。然而,仅此并不足以处理全球拥堵。
我们增加一个每块更新的拥堵信号:
基础费用乘数,$M_n$:第 $n$ 个区块的单一参数。交易 $\tau$ 的费用为:
$$ \text{BaseFee}(\tau,n) = \text{CU}(\tau) \,\times\, M_n \quad+\quad \text{(可选小费)}。 $$
受 EIP-1559 启发,我们使用以下公式调整 $M_{n+1}$:
$$ M_{n+1} \;=\; M_n \times \exp!\Bigl(\alpha \,(\,\phi_n - \phi^*)\Bigr), $$
如果 Solana 使用 $T$ 并行线程,设 $u_n^{(t)}$ 为线程 $t$ 的使用量。总使用量为 $u_n = \sum_t u_n^{(t)}$,得出全球填充率 $\phi_n$。另外,为了突显“热门线程”,你可以定义:
$$ \phin = \max{t} \Bigl{ u_n^{(t)} / B_t \Bigr}, $$
其中 $Bt$ 是每个线程的容量。任何方法确保 $M{n+1}$ 反映所有线程的峰值或总资源使用情况。
让我们定义一组最小的方程来描述该系统:
$$ M_{n+1} \;=\; M_n \,\times\, \exp!\Bigl(\alpha\,(\phi_n - \phi^*)\Bigr). $$
$$ \text{Cost}(\tau,n) \;=\; \text{CU}(\tau) \,\times\, M_n \;+\; \text{小费}(\tau)。 $$
这种方法有几种好处:
高负载下的灵活性
随着使用接近最大容量,指数规则迅速提高基础费用。低价值垃圾交易变得不经济,确保资源用于高价值交易。
公平资源核算
使用更多计算时间或更重操作的交易支付更多,以阻止未优化程序占用网络。
保持并行效率
本地费用市场(优先小费)仍然管理微观层面的竞争。全球基础费用层只是确保系统整体使用情况保持在目标的 $ \phi^*$ 附近。
费用稳定性
如果 $\alpha$ 设置得当,基础费用会在多个区块上平稳调整,最大限度减少费用波动,同时仍能响应上升或下降的需求。
这种方法存在一些潜在挑战:
本地与全球拥堵
线程可能面临热点;单一的全球基础费用可能无法完美反映每个线程的使用情况。我们可能需要一种“线程权重”方案或对非常热门账户征收本地附加费。
摆动
如果 $\alpha$ 设置得太高,费用可能快速飙升和下跌。需要实证测试来寻找稳定的参数。
实施复杂性
每块更新基础费用乘数并在并行线程中强制实施可能需要对 Solana 运行时进行更深层的更改。收益是一个强大、自动化和更加公平的费用市场。
定义目标填充率
将 $\phi^*$ 设置为 50% 留有应对需求激增的“余地”,但可能导致链的利用不足。将 $\phi^*$ 设置为 90% 则接近最大使用率但减小了应对突然激增的缓冲。治理或开发者共识是选择最佳选择所必需的。
在 Solana 上实施动态基础费用机制将结合:
这种混合方法可以解决一些持续存在的问题:
最终,采用随区块填充率上升的基础费用,确保合法的高价值交易可以超越垃圾交易,而日常使用在正常情况下仍然保持可负担。当 Solana 继续扩展——潜在地处理成千上万的交易每秒——动态基础费用提供了一条能够应对未来挑战的用户友好型、拥堵响应的可持续发展路径。
- 原文链接: github.com/thogiti/thogi...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!