Skip to main content
目录 目录(7 节)

Wangxiaoming

 · 

任何人都能触发PAR销毁:我用一笔交易验证了它的无权限机制

普通持币人无需管理员权限即可触发PAR手续费销毁。本文用一笔主网交易验证开放执行机制,并还原keeper停摆、费用积累及147.87万枚PAR最终销毁的全过程。

披露:作者持有PAR。本文记录一次公开链上机制的排查与实际调用,不构成投资建议。作者为触发本次销毁支付了Gas,没有从手续费分配中获得任何收益。

10月15日,我用一个普通钱包调用PAR的手续费收取合约,销毁了 1,478,704.549850枚PAR。

我不是项目方,没有管理员权限,也不在任何白名单里。这个地址此前甚至没有Robinhood Chain的Gas,我临时转入了0.00004 ETH,最终只花了约0.00000536 ETH,折合约1.25美分。

我没有拿走任何手续费。合约按发行时写死的规则,把协议份额销毁,把另一半记入creator的费用账户。

这笔交易真正证明的不是“社区帮项目方烧了一次币”,而是:

PAR的直接销毁是一个无需许可、向所有人开放的执行机制。任何社区成员都能触发,项目方无权阻止,也不能临时改变分账结果。

这是一次可以独立查证的主网实测,而不是对源码的纸面解读。

一笔任何人都能验证的主网交易

本次触发交易:

交易调用的是:

collectFees(0x507b6f349a80114097a67b8b4677367acc15b220)

相关合约:

交易回执里的关键链上记录非常清楚:

  1. PoolManager向locker转入 2,957,409.099700 PAR;
  2. locker向零地址转出 1,478,704.549850 PAR;
  3. 其余 1,478,704.549850 PAR 进入creator费用账户;
  4. 调用后 pendingFees(PAR) 归零;
  5. 官方累计总销毁升至 109,371,390.888664 PAR,占初始10亿供应的10.94%。

回购销毁累计值在交易前后没有变化,因此本次新增销毁全部来自PAR自身交易手续费,不是回购。

“无需许可”具体是什么意思

很多项目会说自己的机制“去中心化”,但这个词经常把三件不同的事混在一起:

  • 谁有权决定销毁多少;
  • 谁有权触发销毁;
  • 谁能拿走销毁流程中的资产。

PAR这条直接销毁路径把三者拆开了。

销毁多少不是调用者决定的。金额来自Uniswap v4池已经产生、尚未领取的LP手续费。

谁能触发没有限制。collectFees(address token) 是external函数,没有 onlyOwner,没有keeper白名单,也不要求调用者持有PAR。

资产流向同样不是调用者决定的。token、creator收款人、协议份额和creator份额都在launch时冻结。陌生地址调用,只能替既定受益人完成领取,并把协议的PAR份额调用 burn 销毁。

换句话说,调用者只能按下按钮,不能改写按钮后面的结果。

这就是这次实测最重要的地方:我用一个普通社区地址按下了按钮,链上严格执行了既定分账。

为什么会积累147万枚待销毁PAR

事情起于一个反常数据。

10月14日,PAR主池明明有交易,回购销毁也在继续,但用官方两个累计字段相减,PAR自身交易带来的“直接销毁”却是0。

我最初使用的公式是:

直接销毁 = 总销毁 burned − 回购销毁 buybackBurned

这个公式只能拆解已经执行的历史销毁,不能回答“交易产生了多少待销毁手续费”。因为Swap和销毁并不是同一个动作:

  1. 用户交易,LP手续费留在池内;
  2. 任何人调用 collectFees;
  3. locker领取手续费;
  4. 协议份额的PAR被销毁;
  5. creator份额进入费用托管账户。

如果第二步没人执行,手续费不会消失,只会继续积累,但总供应不会立刻变化。

链上排查:自动执行器停在10月5日

为了绕过索引器,我扫描了PAR合约的 Transfer(from, 0x0, value) 日志,并按销毁发起地址分类。

旧locker在本次调用前的最后一笔直接销毁发生在2026年10月5日12:27 UTC:

此后,回购钱包仍在执行销毁,PAR主池也仍在交易,但原本负责定时调用的链下keeper没有继续触发 collectFees。

10月14日多伦多自然日内,主池发生174笔Swap,其中68笔买入、106笔卖出。卖出方向输入约26,528,253 PAR,对应约13.3万PAR的协议直接销毁权益已经产生,却仍留在未领取手续费里。

当我直接读取locker的:

pendingFees(address token)

池内已经累计约294万PAR和0.338 ETH待领取。通过 eth_call 模拟 collectFees(PAR) 后,调用成功,返回数量与 pendingFees 一致。

这说明:

  • PAR代币的 burn 没有失效;
  • locker没有失去权限;
  • 手续费可以正常领取;
  • 分账路径可以正常执行;
  • 停止的是链下自动调用,不是链上销毁机制。

Permissionless不是“自动”,但它给了社区接管执行的能力

这次事件同时展示了permissionless机制的优点和边界。

它的边界是:无需许可不等于无需执行。 合约不会凭空发交易。如果项目方keeper、社区机器人和外部观察者都不调用,待销毁手续费可以一直留在池内。

它的优点是:执行权并不被项目方垄断。 即使官方keeper停止,社区也不需要申请权限、不需要团队重新部署、不需要等待治理投票。任何人都能检查待领取金额,模拟交易,然后触发同一套不可临时更改的分账。

这比“团队承诺定期回购销毁”多了一层可验证性:社区不仅能看,还能在执行缺位时直接补上最后一步。

更合理的监控方式

仅盯着累计销毁计数器,会把“没有产生手续费”和“产生了但没人触发”混为一谈。对于这类开放执行机制,监控至少应包含:

  • locker最后一次 collectFees 的时间;
  • pendingFees 中待领取的PAR和计价资产;
  • 已产生待销毁额与已执行销毁额;
  • keeper超过正常调用间隔后的告警;
  • 社区是否部署独立的备用执行器。

最理想的状态不是依赖某位持币人偶然发现问题,而是让多个独立keeper竞争执行。因为调用者拿不到手续费,协议还可以考虑为执行者提供小额Gas补偿,让开放权限变成稳定的公共基础设施。

结论

147.87万枚PAR被销毁当然是一个可见结果,但它不是本文最重要的数字。

真正重要的是,PAR的社区销毁权这次经过了主网验证:

  • 普通地址可以调用;
  • 无需管理员批准;
  • 调用者不能截留资产;
  • 调用者不能修改分账;
  • 销毁数量由真实累计手续费决定;
  • 官方keeper停止后,社区仍能完成执行。

源码告诉我们“理论上任何人都能调用”。这笔交易则把理论变成了证据:一个持币人发现执行中断,独立验证待销毁费用,然后用约1.25美分Gas完成了147.87万枚PAR的链上销毁。

Download Pickful App

Better experience on mobile

iOS

Android

APK