Geode 的经济模型确保三件事:
- 结算者有激励及时结算批次
- 刷单交易无利可图 — 批次无法提取超过其贡献的价值
- 协议从直接交换活动中捕获价值,同时永久增强曲线市场
核心不变量:一个批次不能提取超过该批次经济贡献的结算奖励,除了一个严格上限的 Gas 报销。
费用来源
| 费用 | 费率 | 来源 | 受益者 |
|---|
| 结算费 | 0.1%(10 bps) | 从每个已成交意图的输入中扣除 | 结算者 |
| 直接交换费(曲线池) | 0.3%(30 bps) | 通过 beforeSwap 对直接交换收取 | 1/3 曲线储备、1/3 金库、1/3 盈余 |
| 直接交换费(标准池) | 可配置 | 通过 beforeSwap 对非意图交换收取 | 约 1/3 金库、约 2/3 盈余 |
| Gas 报销 | 基于 Gas | 从盈余中提取,每批次有上限 | 结算者 |
三方费用分配(曲线池)
曲线池的直接交换收取 0.3% 费用,三方分配:
| 份额 | BPS | 目标 | 用途 |
|---|
| 约 1/3 | 3334 | 曲线 ETH 储备 | 永久提高地板价 — 该 ETH 永远不能被提取 |
| 约 1/3 | 3333 | 协议金库 | 协议收入 |
| 约 1/3 | 约 3333 | 盈余池 | 资助结算者 Gas 报销 |
储备费用是最有趣的部分——每次直接交换都永久提高曲线的地板价。代币交易活动越多,地板价越高。
结算费
每个已成交的意图从其自身输入中支付结算费,在任何路由之前:
gross input = intent.amountIn
settlement fee = gross input × settlementFeeBps / 10,000
net input = gross input - settlement fee
- 买入意图:费用以 currency0 计价(如 WETH)
- 卖出意图:费用以 currency1 计价(如代币)
- 只有净输入参与撮合、曲线或 AMM 路由
结算者奖励
结算者从批次中赚取的总奖励:
settlerReward = batchSettlementFees + min(surplusAvailable, gasReimbursement)
组成部分 1:批次结算费
buyFees = totalFilledBuyInput × settlementFeeBps / 10,000 (以 currency0 计)
sellFees = totalFilledSellInput × settlementFeeBps / 10,000 (以 currency1 计)
组成部分 2:Gas 报销
gasUsed = gasStart - gasleft()
gasCost = gasUsed × tx.gasprice
gasReimbursement = min(
gasCost × gasReimbursementMultiplier / 100,
maxGasReimbursement
)
Gas 报销从池的累积盈余中提取。关键属性:
- 有上限:每批次不超过
maxGasReimbursement(默认:0.01 ETH)
- 基于 Gas:随实际 Gas 消耗扩展,而非匹配量
- 盈余资助:从
surplusCurrency0 然后 surplusCurrency1 中提取
- 尽力而为:盈余不足时,结算者收到更少
防刷单机制
攻击方式
刷单者提交相同金额的匹配买入和卖出意图。在朴素的盈余资助模型中,结算者奖励会随匹配量扩展,允许盈余提取。
防御机制
在 Geode 的每意图费用模型下,刷单交易严格净亏损:
| 刷单量 | 费用成本(双边) | 最大盈余提取 | 净损益 |
|---|
| 1 ETH | 0.002 ETH | 0.01 ETH | +0.008 ETH |
| 5 ETH | 0.01 ETH | 0.01 ETH | 0 ETH |
| 10 ETH | 0.02 ETH | 0.01 ETH | -0.01 ETH |
| 50 ETH | 0.10 ETH | 0.01 ETH | -0.09 ETH |
盈亏平衡点约为 5 ETH。超过该值,每增加一个 ETH 的刷单量都会使攻击者损失更多。Gas 提取保持恒定。
Gas 成本概况
结算 Gas 在固定开销后近似线性增长:
| 批次大小 (N) | 总 Gas | 每意图 Gas |
|---|
| 1 | 约 397K | 约 397K |
| 5 | 约 556K | 约 111K |
| 10 | 约 1.06M | 约 106K |
| 25 | 约 2.58M | 约 103K |
| 50 | 约 5.16M | 约 103K |
默认参数
| 参数 | 值 | 描述 |
|---|
settlementFeeBps | 10(0.1%) | 每意图输入金额的费用 |
directSwapFeeBps | 30(0.3%)曲线池 | 直接交换费用,三方分配 |
maxGasReimbursement | 0.01 ETH | 每批次盈余提取的硬上限 |
gasReimbursementMultiplier | 150(1.5×) | Gas 成本乘数 |
batchInterval | 1 个区块 | 结算间最小区块数 |
maxBatchSize | 128 | 每侧每批次最大意图数 |
已验证:所有经济属性已在 SettlementEconomics.t.sol 和 CurveDirectSwap.t.sol 中测试——包括对抗性刷单场景、Gas 上限执行、费用分配验证和曲线状态不变量。