本文探讨了如何将Dominant Resource Fairness(DRF)引入Solana的动态费用模型,以处理多资源瓶颈带来的复杂性。文章深入分析了DRF的基本原理及其适用于区块链的优势,强调了通过调整费用来实现多维公平性的策略,并详细讨论了实现中的挑战与潜在研究方向。
如果高性能区块链像 Solana 的费用模型可以自动调整,不仅基于计算使用率,还基于内存、网络带宽和 I/O 会怎样?在高吞吐量环境中,可能出现多个资源瓶颈——然而传统的一维费用机制很少能捕捉到这一现实。
在我们系列的 第一部分,我们探讨了 Solana 上的动态基本费用(受 Ethereum 的 EIP-1559 启发)如何帮助:
但是,计算单元并不是唯一的瓶颈。现代区块链节点也可能饱和内存、网络带宽或磁盘 I/O。让我为你介绍主导资源公平性(Dominant Resource Fairness,DRF)。借鉴自高性能计算和数据中心调度,DRF 是一种多维公平性机制,认识到每个工作(或交易)可以对多个资源造成压力。通过将 Solana 的动态费用与 DRF 原则(无嫉妒性、策略无效性和帕累托效率)对齐,我们可以确保:
本文探讨了为何以及如何扩展 Solana 的动态费用模型,以处理所有主要资源类型。我们将展示 DRF 的“主导资源”方法——对多资源的最大最小公平性(Max-Min Fairness,MMF)如何自然与在 第一部分 中讨论的类似 EIP-1559 的费用更新相结合。结果是一个随着现实约束而升维的多资源机制,并根据每个交易对网络的实际负担自动定价。
因此,如果你想了解区块链费用机制的下一个飞跃——超越简单的计算单元——请继续阅读。我们将阐述来自 DRF 论文 (SIGCOMM 2011) 的理论基础、区块链环境中的实际挑战,以及将多维公平性引入不间断吞吐量的好处。
Solana(和类似的高性能区块链)必须处理多个瓶颈——CPU、内存、网络、I/O——而不仅仅是“计算单位”(CUs)。多资源动态费用模型需要:
这些挑战反映了集群计算环境中的多资源调度。Ghodsi 等人在其 SIGCOMM 2011 论文中提出的主导资源公平性(DRF),为多资源分配提供了深入研究的解决方案:
尽管 DRF 最初是为集群调度任务开发的,如果我们把每个用户(或交易流)视为需要某些资源向量的“工作”,它自然可以扩展到区块链中。然后,我们可以将 DRF 的核心洞见适配到一个 自动 定价多维使用的费用机制中,与已经讨论的 Solana 的类似 EIP-1559 的动态基本费用更新良好对接。
要理解 DRF 如何为区块链费用市场提供信息,有助于重述其核心定理。所有引用均来自 Ghodsi 等人,SIGCOMM 2011。以及同一论文中的附录。
用户 $i$ 的主导份额:
$$
si \;=\; \max{r \in \mathcal{R}}
\Bigl(\tfrac{d_i^{(r)}}{B^{(r)}}\Bigr),
$$
其中 $d_i^{(r)}$ 是用户 $i$ 对资源 $r$ 的使用量,$B^{(r)}$ 是资源 $r$ 的总容量。
逐步填充算法:直观而言,DRF 不断“填充”分配,以与每个用户的需求向量成比例,直到至少一个资源对该用户饱和。这确保没有用户可以在不减少其他用户份额的情况下增加她的“主导份额”。
重要定理(在理想的连续场景中,需求严格为正):
这些定理共同表明,DRF 是多资源环境中一个很有吸引力的机制,确保公平性并缓解需求膨胀等操纵。
在 DRF 通常将每个“用户”视作一项工作或一队任务的地方,我们可以将 Solana 上的每个地址(或优先费用支付者)比作一个“用户”,其交易共同请求一个资源向量: $$ \mathbf{d}_i = \bigl( d_i^{(\text{CPU})},\, d_i^{(\text{Memory})},\, d_i^{(\text{Network})},\dots \bigr). $$
在实践中,用户 $i$ 的每笔交易 $\tau$ 可能有其自己的资源向量 $\mathbf{u}(\tau)$。对用户 $i$ 在一个区块中所有交易求和或取平均,将得到区块级请求 $\mathbf{d}_i$。如果区块链试图“公平”地容纳所有用户对下一个区块的需求,我们可以在区块边界运用 DRF 的思想。
在 DRF 中,每个用户的分配结束于均衡“主导资源份额”。在区块链费用上下文中,我们可以反转这一逻辑:
这暗示着一个动态基本费用倍增器,惩罚大的主导份额。例如,用户 $i$ 的交易费用可能是:
$$ \text{Cost}(i) \;=\; M \times \max_{r}\Bigl{ w^{(r)}\,d_i^{(r)}\Bigr}
其中 $w^{(r)}$ 为资源权重,$M$ 是随整体系统负载升降的全局缩放因子。这本质上是将 DRF 的“主导资源”原则迁移到一个定价模型中。
正如在 EIP-1559 中,我们希望每个区块自动调整 $M$,以便总使用量保持在目标阈值附近。单一资源的 EIP-1559 使用 $\exp[\alpha(\phi_n - \phi^*)]$,但在这里 $\phi_n$ 必须反映多资源负载。DRF 建议我们查看每个用户的“主导份额”,以确定区块是否饱和任何资源维度:
一种可能性是定义一个函数 $$ \phin = \max{r\in\mathcal{R}} \Bigl(\tfrac{un^{(r)}}{B^{(r)}}\Bigr), $$ 就像“主导资源使用份额”一样。然后我们做: $$ M{n+1} = M_n \times \exp!\bigl(\alpha\,[\phi_n - \phi^*]\bigr). $$ 这确保任何资源被大量使用时,费用会自动上涨,符合 DRF 的概念,即饱和一个维度就构成了系统瓶颈。
DRF 的一个标志是用户无法通过要求不需要的资源而受益。在区块链中,“撒谎”关于资源使用可能意味着在交易中人为地膨胀(或缩小)CPU/内存使用字段以操净费用。DRF 的定理 12 声明如果资源来自单一同质池,则对于每个用户真实声明需求是策略无效的。
让我们勾勒出一个更正式的基于 DRF 的区块级费用机制:
用户与需求向量:
容量:
主导份额:
定价:
费用更新:
M_n \times \exp![\alpha\,(\phi_n-\phi^*)]. $$
优点:
缺点:
DRF 论文的未来工作(第 9.1 节)指出的几个方向在区块链上下文中似乎也很相关:
最小化碎片化:
位置约束:
操作系统级 DRF:
微观经济视角:
一个多资源费用系统可以非常抵御验证者操纵,并对所有用户公正——但它需要在资源跟踪和诚实测量方面进行仔细设计。
简短回答:虽然验证者可能尝试通过巧妙地重组交易或将其拆分成多个较小的方式来减少“主导资源”费用,但一个设计良好的多资源费用框架(受 DRF 启发)限制了这种操纵的优势——尤其是在资源使用被准确测量并妥善汇总的情况下。
提交自己交易的验证者可能尝试将大型高资源交易拆分成多个较小的交易,以减少“主导资源”成本。但是,DRF 的策略无效性(假设资源测量准确)确保刻意操控系统通常带来的净收益微乎其微。拆分交易通常只是重新分配资源使用,但并不根本降低总费用,因为协议会汇总区块中所有交易的使用。
验证者可能会省略或重新排序用户交易,以保持下一个区块的费用较低。然而,下一区块的费用也取决于整体使用情况和其他验证者的选择。此外,丢弃交易意味着放弃潜在的小费收入,这通常会使此类操纵不具激励。
简短回答:每笔交易的 CPU、内存、网络和 I/O 使用情况的测量并不简单,尤其是在拜占庭环境下。这需要强大的仪器、潜在的跨验证者检查或可信硬件,以确保诚实报告。
如果验证者可以单方面错误报告其交易的使用情况,则可能会少交费用。缓解措施包括严格的运行时检查(以减少手动报告)或测量证明方案。
准确跟踪每个资源增加了实施复杂性和运行时开销,但这个好处是真正的多维公平性——按交易实际消耗的资源收费,而不仅仅是所谓的“计算”。
通过采用主导资源公平性理念,在 Solana 上的多资源费用模型有可能实现在 CPU、内存、I/O 和网络使用方面实现强势公平性和防止垃圾邮件。DRF 的已证明属性——策略无效性、无嫉妒性、瓶颈公平性、帕累托效率——为它提供了一个理论基础,而单一维度或临时定价方法往往缺乏这一基础。
这确保了如果任何资源维度接近容量,整个系统的费用会自动上涨,鼓励用户减少消耗或分散使用。
总之,DRF 为公平的多维资源分配提供了一种严谨的蓝图。将其仔细适配到 Solana 的动态费用结构中将提供强大的理论保证,确保没有用户通过错误陈述资源需求来“游戏”系统,且所有主要资源(CPU、内存、I/O、网络)都以一种平衡,关注瓶颈的方式定价。虽然仍存在显著的工程细节——特别是围绕离散交易和验证者约束——但潜在收益是一个强健的、公平的、抵御垃圾邮件的多资源费用市场,能够与 Solana 的并行执行模型一起扩展。
- 原文链接: github.com/thogiti/thogi...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!