谁先付钱谁搬空池子:ERC-8017 赎回竞赛桶的五个函数 图 1
谁先付钱谁搬空池子:ERC-8017 赎回竞赛桶的五个函数 · 图 1

谁先付钱谁搬空池子:ERC-8017 赎回竞赛桶的五个函数

协议要长期把一种资产的流式收入换成另一种资产——用收入回购协议代币、攒储备、补激励预算——常见做法是接一个自动做市商池,代价是被池子的滑点、手续费和流动性变化绑住;做链上拍卖又太笨重。ERC-8017 提出的替代是一个极简原语,文件头记录创建于 2025 年 8 月 31 日,仓库记录状态为 Draft,标准自己点名灵感来自 Uniswap 基金会的 Unistaker 方案,那个提案里出现过 Payout Race 这个词。

桶的语义

合约就是一口桶,桶里始终只放一种资产,规范叫它支付对象资产。任何人调用 purchase 时,按当前配置支付一笔固定金额的期望支付资产——可以是以太币或某个 ERC-20——条件满足的话,桶里支付对象资产的全部余额立刻转给调用者。没有排队、没有比例分配:竞态规则是先到先得,整桶一次易手。标准的类比是荷式拍卖的反向操作:桶越攒越满,第一个肯付出固定价格的人拿走全部积累。

谁先付钱谁搬空池子:ERC-8017 赎回竞赛桶的五个函数 图 2
谁先付钱谁搬空池子:ERC-8017 赎回竞赛桶的五个函数 · 图 2

谁管参数

所有权侧的函数一览无余:payoutAssetdesiredAsset 报出两种资产,requiredPayment 读出那笔固定价格,ownertransferOwnership 管理控制权,setRequiredPayment 改价,setPaymentSink 改收款去向,PaymentConfigUpdated 与 Purchased、OwnershipTransferred 三组事件覆盖全部状态变化。真正的策略不在合约里——标准刻意把“什么时候该买、价格该定多少”留给上游控制器,接口只保证执行面可审计、可组合。上游程序监测市场价,算好“此刻桶里这批资产值多少”,把 requiredPayment 调到能覆盖成本又不至于无人问津的水平,买家自然出现。

这个设计的赌注

读这种原语,最好的问题清单来自它明确放弃的东西。它放弃价格发现:requiredPayment 是定数,桶内资产市值随行情涨跌,定价滞后的窗口里可能出现明显亏本的成交——第一个按下 purchase 的人占便宜,这是机制内置的竞态而非漏洞。它放弃额度切分:要么整桶要么不成交,中小买家只能等上游把桶调小或把门槛拆细。它放弃信任假设转移:买家要在交易里确认余额与价格,就得先读事件与合约余额,标准没有提供额外的报价预言机。

与几种老办法的对照

把这口桶放回它想替代的方案堆里,取舍才立体。直接接 AMM 卖出收入:每笔兑换吃池子的价格冲击,且大额兑换会自我打脸——买得越多价格越差,协议收入反被自己的体量损耗。挂传统拍卖:要约、竞价、结算一整套流程,gas 与治理开销对一个常态化的小额操作太重。定一个固定的链下做市商回收:便宜,但把成交确定性换成了对手方风险。桶式原语的画像是介于三者之间——定价责任在链上参数里可见,执行没有可组合的复杂结构,任何人随时可以成为领取者,协议不需要信任特定买家。它的软肋同样清楚:requiredPayment 与市价之间的信息差永远存在,链上价格喂价若不及时更新,第一个 purchase 的人就在吃定价滞后的红利;标准刻意不做自动调价,就是要把这个决策留给上游——也因此,评估一个部署的好坏,几乎完全在“谁在维护参数、按什么数据调参”这条链下链条上,链上部分只是执行器。

Draft 状态意味着接口签名尚未定稿,引用它描述任何生产系统之前,先确认对方实现对应哪一版草稿、两种资产与两个 setter 是否与最终文本一致。它适合说明的问题其实和 NFT 领域常见的需求同构:一个只进不出的资金桶,配一套简单公开的领取规则,能替复杂的拍卖系统省下多少治理与 gas 成本——答案是全部拍卖逻辑都被替换成了“谁先来付这个价”。本文为机制说明,不构成任何投资建议。