一句话理解
ERC-4337 把“交易由签名者付 Gas”这条默认规则拆开了:用户的操作被封装为 UserOperation,由打包人提交上链,费用由第三方 paymaster 代付的通道。所谓“免费 mint”,多数是这条通道的商业运用——羊毛出在猪身上,本文讲清猪是谁、什么时候猪会死(账户抽象基础见ERC-4337 钱包是什么)。
执行流谁付钱
正常流程:用户签名 UserOp → bundler 打包成一笔普通交易 → Gas 由 bundler 先付、从用户智能账户扣(通常经原生 Gas 或 ERC-20 支付)。paymaster 变体:签名 UserOp 时附带 paymaster 字段,验证“该用户的这笔操作值得免单”后由 paymaster 合约出资(出资来源通常是项目方预存的资金池)。免单的边界:paymaster 只代付通道 Gas,mint 价格、版税、合约执行的其他费用照常。
两种 paymaster 形态
链下签名型:项目方后端对合格请求签名,链上合约验签名放行。灵活(可随时改补贴策略),信任集中在后端(签名策略 bug 会造成资金池被薅)。链上规则型:验证规则写成链上逻辑(“每人限领一次”“白名单 Merkle 叶匹配即付”),策略透明但改动慢。识别方法:免 Gas 活动的条款页应写明走哪条,模糊者按链下型评估其策略突变风险。
免费 mint 的商业逻辑与对价
补贴 mint 成本等于把营销预算直接发给合格参与者,常见于新钱包获客、新链冷启动、白名单激励。对价通常写在条款里:领取即授权、地址数据收集、社交任务。值得记住的结构性事实:免费 mint 与付费 mint 的合约可能完全不同,无 Gas 意味着无“付费筛选”,垃圾地址与女巫涌入更严重,白名单设计的严谨性(Merkle 与签名的取舍见默克尔认领)成为项目质量分水岭。
故障模式
- 补贴池耗尽:批量 UserOp 验证失败,界面报“暂时无法处理”——不是资产问题,是营销预算花完(观察项目方资金池地址余额可预判)。
- Bundler 单点:免 Gas 操作依赖 bundler 在线,宕机期间你的 UserOp 停在队列不进块,普通 Gas 路径是最后的逃生门。
- 验签策略漏洞:链下签名型若校验不严(不限 mint 数量、可重放),补贴池被脚本搬空,活动提前终止——历史补贴战里的“秒薅”新闻皆此类结构故障。
常见问答
问:代付 Gas 会不会泄露更多隐私?
paymaster 与 bundler 在你的操作路由里承担可见角色:补贴资格验证通常要求把地址与资格凭证发给对方后端,这比直接上链多了一层“被营销方记录”的暴露(地址画像面见链上足迹)。敏感地址建议走普通路径。
问:项目说 4337 免 Gas,我怎么验证真假?
做完一笔后看它的交易特征:真 4337 路径的交易发起人是 EntryPoint/入口合约而非你的地址,你的“签名”对应的 UserOp 哈希可在浏览器或项目诊断页查到;普通“代付”则是一笔他人转账前置于你的操作。两者对用户的体验相同,工程实现与风险结构不同。
问:paymaster 免 Gas 和普通设置 gas price 为 0 有什么区别?
Gas price 为 0 的交易在协议层无法进块(排序方无激励)。4337 通道是协议内建的合法变体:你的意图作为 UserOp 数据交给打包人,打包人把费用问题交给 paymaster 合约的出资逻辑——费用的支付方与责任结构被重新设计,而不是试图让免费交易直接挤进旧结构。这也是为什么免 Gas 必须绑定一个「谁有动机替你出钱」的商业答案(三种动机见正文,资金流逻辑见Gas 曲线)。
问:作为开发者部署 paymaster 要注意什么?
核心是出资策略的防滥用边界:请求来源过滤(签名门控)、速率与配额、可回收性设计(活动结束回收池内余款)。链上规则型要把验证逻辑写到「即使被全网脚本围攻也不超预算」的确定性;历史补贴战的事故报告多数可归结到这三道防线的某道缺失(安全实践参考预言机与账户抽象生态的公开安全文档)。
风险提示
本文为机制教程,不构成投资建议。免 Gas 路径引入 bundler 与 paymaster 运营依赖,参与免 Gas 活动前读清条款中的授权与数据收集声明。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。