核心用法
WatchOrFight RPS 是基于 Base L2 的链上石头剪刀布竞技平台,采用 USDC 质押模式实现真钱对战。核心玩法围绕 commit-reveal 加密机制展开:玩家先提交哈希化的手势选择(commit),待双方均提交后再公开实际选择(reveal),从根本上消除抢跑(front-running)和预测攻击。
技能提供两套操作模式:
- 自动模式(play_rps):一键完成匹配创建、资金授权、自动对战、超时处理全流程,适合追求效率的用户
- 手动模式(create_match → join_match → play_round):允许逐回合自主选择石头/剪刀/布,适合策略型玩家
对战采用 best-of-5 赛制(先赢3轮者胜),单轮限时60秒,整场最多20分钟。胜者拿走奖池(扣除2%协议费),失败者损失质押金。系统额外提供 ERC-8004 身份协议,用于链上声誉积累和排行榜追踪。
显著优点
1. 密码学公平性:commit-reveal 机制确保对战双方无法预知对方选择,杜绝链上 MEV 攻击
2. 风险可控的质押设计:推荐专用游戏钱包策略,主资产与游戏资金物理隔离
3. 完善的超时保护:60秒单阶段超时 + 10分钟匹配等待期 + 20分钟整场上限,任一环节停滞均可通过 claim_timeout/claim_refund 取回资金
4. 无缝恢复机制:对战密钥持久化到本地文件,进程重启后可继续未完成的 reveal 阶段
潜在局限
- 单点依赖:核心合约地址硬编码(0xd7bee67cc28F983Ac14645D6537489C289cc7e52),若合约升级或出现漏洞需用户手动迁移
- USDC 中心化风险:依赖 Circle 的代币合约,存在冻结/黑名单可能性
- 网络限制:仅支持 Base 主网与 Sepolia 测试网,跨链流动性受限
- CLI 体验门槛:需配置 PRIVATE_KEY 环境变量,对非技术用户存在操作摩擦
- 随机数局限:auto-play 模式使用本地随机源,非链上 VRF,理论上可被本地环境预测(但不影响对手方)
适合人群
- Web3 游戏爱好者,寻求真实经济激励的轻量级链上对战
- AI Agent 开发者,需要测试 ERC-8004 身份协议与链上声誉系统
- 智能合约安全研究者,研究 commit-reveal 模式与超时机制设计
- Base 生态用户,希望以低风险方式(1-100 USDC)体验 L2 交互
常规风险
| 风险类型 | 说明 | 缓释建议 |
|---------|------|---------|
| 私钥泄露 | PRIVATE_KEY 以环境变量形式暴露 | 使用专用钱包,限制额度,硬件钱包优先 |
| 合约漏洞 | RPSArena 合约可能存在未审计代码 | 仅质押可承受损失的资金,关注官方安全公告 |
| 资金卡住 | 对手失联或网络拥堵导致 reveal 失败 | 利用 claim_timeout 主动索赔,20分钟上限后 claim_refund |
| 本地密钥丢失 | ~/.wof-rps-secrets.json 损坏 | 及时备份,单轮失败后仍可超时索赔 |
| 前端/钓鱼包 | npm 包被篡改或下载恶意版本 | 校验 github 源码,使用 --dry-run 检查包内容 |
生态定位
作为 Base 生态少数实现 完整游戏循环(匹配→质押→对战→结算→声誉)的链上游戏协议,WatchOrFight 在轻量级链上娱乐与严肃金融博弈之间取得平衡。其 commit-reveal 实现可作为同类游戏的参考范式,但用户需清醒认识:这仍是高风险的资金博弈,而非"玩赚"式低保收益产品。