目录
- [Rug Pull (跑路盘) 识别与防御](#Rug Pull (跑路盘) 识别与防御)
-
- [1. 什么是 Rug Pull](#1. 什么是 Rug Pull)
- [2. 受害者视角:典型剧本](#2. 受害者视角:典型剧本)
- [3. 常见手法 (按发生位置分类)](#3. 常见手法 (按发生位置分类))
-
- [3.1 Liquidity Rug (抽 LP) --- 最经典](#3.1 Liquidity Rug (抽 LP) — 最经典)
- [3.2 Mint Rug (无限增发砸盘)](#3.2 Mint Rug (无限增发砸盘))
- [3.3 Ownership / Proxy Rug (升级合约逻辑)](#3.3 Ownership / Proxy Rug (升级合约逻辑))
- [3.4 Approval Rug (永久授权)](#3.4 Approval Rug (永久授权))
- [3.5 Slow Rug / Soft Rug (慢性跑路)](#3.5 Slow Rug / Soft Rug (慢性跑路))
- [3.6 Exit Liquidation Rug (借贷型跑路)](#3.6 Exit Liquidation Rug (借贷型跑路))
- [4. 红旗清单 (Red Flags)](#4. 红旗清单 (Red Flags))
- [5. 自动化检测方案](#5. 自动化检测方案)
-
- [5.1 静态合约风险扫描](#5.1 静态合约风险扫描)
- [5.2 实时链上监控 (核心,最有价值)](#5.2 实时链上监控 (核心,最有价值))
- [5.3 行为指标打分 (慢性 rug)](#5.3 行为指标打分 (慢性 rug))
- [5.4 综合分层方案 (推荐)](#5.4 综合分层方案 (推荐))
- [6. 面向普通用户的现成工具](#6. 面向普通用户的现成工具)
- [7. 给安全平台的实践建议](#7. 给安全平台的实践建议)
- [8. 真实案例参考](#8. 真实案例参考)
- [9. 参考资料](#9. 参考资料)
- [10. 一句话总结](#10. 一句话总结)
Rug Pull (跑路盘) 识别与防御
面向新人和安全研究者。读完应该能回答:什么是 rug pull?它和貔貅币 (\[honeypot-pixiu-token]) 有什么区别?常见手法有哪几类?我作为用户怎么避坑?我作为安全平台怎么自动检测和监控?
1. 什么是 Rug Pull
Rug pull 字面意思是 "把地毯抽走" ------ 你站在地毯上,项目方猛地一抽,你直接摔到地上。在 Web3 语境里:
项目方在筹集到足够资金 / 流动性 / 持有者后,通过某种方式把池子里的真金白银 (ETH / BNB / USDT) 卷走,留给散户一堆归零的代币。
和貔貅币的关键区别:
| 维度 | 貔貅币 (Honeypot) | Rug Pull (跑路盘) |
|---|---|---|
| 用户能不能买 | 能 | 能 |
| 用户能不能卖 | 不能 / 极高税 | 一开始能,后来不能 |
| 项目方核心动作 | 让你永远卖不掉 | 自己先跑 |
| 时间窗口 | 部署即陷阱 | 通常需要等"养盘" |
| 关键合约权限 | _transfer 限制 |
LP / Owner / Mint / Proxy |
实际上很多骗局是 "养盘 → 拉盘 → rug → 顺手开貔貅模式" 的组合拳。
2. 受害者视角:典型剧本
Day 0 匿名团队部署合约 + 加 LP (10 BNB) + 在 Telegram/X 建群
Day 1 "网红" / KOL 开始喊单,FOMO 进场
Day 3 K 线连续阳线,$XYZ 涨 10 倍,群里晒收益截图刷屏
Day 7 持有人破万,TVL 200 BNB,看似"基本面良好"
Day 8 凌晨 3 点 (亚洲深夜 / 美国凌晨):
① 项目方调用 removeLiquidity 抽走 LP → 币价瞬间归零
② 或 owner 调用 mint 增发 1 万亿枚砸盘 → 稀释归零
③ 或 owner 调用 setTax(99) 变成貔貅 → 谁都跑不出来
Day 8.1 群被解散 / Telegram 频道删除 / 网站关闭
Day 9 链上分析: 资金通过 Tornado Cash / 跨链桥洗走
整个链路在合约层面通常是合法的------owner 行使了合约赋予 owner 的权力,只是这种权力本来就不该给。
3. 常见手法 (按发生位置分类)
3.1 Liquidity Rug (抽 LP) --- 最经典
最朴素的一种,直接调用 router:
solidity
// 项目方钱包持有 LP token (因为是它加的池子)
IUniswapV2Router02(router).removeLiquidity(
tokenA,
WETH,
lpAmount,
0, // amountAMin = 0
0, // amountBMin = 0
deployer,
block.timestamp
);
执行后:
- 池子里的 ETH / BNB 全部进入 deployer 钱包
- 池子里只剩项目方代币 (一文不值)
- 用户钱包里的代币变成纯空气
前提条件:deployer 持有 LP token (即流动性没被锁死)。
3.2 Mint Rug (无限增发砸盘)
合约里留了 owner-only 的 mint / _mint 函数:
solidity
function mint(address to, uint256 amount) external onlyOwner {
_mint(to, amount);
}
部署初期发行量 100 万,等用户买了一堆后,owner 增发 10 亿全部砸到池子里换走 ETH。用户手里的代币因为通胀稀释到接近 0。
变种:
- Hidden mint :用名字诡异的函数 (
updateBalance/airdrop/claim) 偷偷做 mint - Modifier 绕过 :通过
transferFrom+ 永久 allowance 给一个内部地址,等价于无限 mint
3.3 Ownership / Proxy Rug (升级合约逻辑)
合约用 EIP-1967 proxy。初期 implementation 看着很干净,等持仓上来 owner 调用 upgradeTo(newImpl),新逻辑里:
- 把
_transfer改成貔貅 - 加一个
drain()函数把所有余额转给 owner - 改税率到 99%
审计陷阱:第一次审计只看了当时的 implementation,没看 proxy admin 权限,不能发现这种风险。
3.4 Approval Rug (永久授权)
不是改合约,而是利用用户给的 ERC-20 授权:
- 项目方诱导用户对一个"质押合约"或"领空投合约"做
approve(spender, MAX_UINT256) - 等大量地址授权后,spender 调用
transferFrom把所有授权地址的代币 / USDT 一次卷走
这类常见于:
- 假空投网站 (Connect Wallet → Sign → 实际 approve)
- 假 DEX 前端 (改了路由地址,approve 给攻击者)
- EIP-2612 Permit 钓鱼 (一个签名就授权,连 gas 都不用)
3.5 Slow Rug / Soft Rug (慢性跑路)
不是一次抽光,而是慢慢拿。常见模式:
- 持续高税进 deployer 钱包:每笔交易 5% "marketing tax" 实际进 owner,慢慢累积
- 质押 / 挖矿合约的虚假 reward:用户存 ETH 进去挖代币,实际 ETH 被转走
- "Marketing wallet" 隐性砸盘:deployer 持有 20% 初始供应,分批小额抛售
特征:链上看每天都很正常,但 90 天后回头看 LP 变小一半。
3.6 Exit Liquidation Rug (借贷型跑路)
针对借贷协议或 perp DEX:
- 项目方部署一个"高 APR"的借贷池
- 用某个垃圾代币做抵押,借出真金白银 (USDC / ETH)
- 不还款,让抵押品被清算 (但抵押品是垃圾,根本卖不出)
- 协议产生坏账,存款人 (LP) 承担损失
2022 年的 Mango Markets, Aave 上的 CRV 攻击都是类似手法的衍生。
4. 红旗清单 (Red Flags)
给散户的"投前 5 分钟必查":
| 红旗 | 怎么查 | 严重程度 |
|---|---|---|
| 团队完全匿名 + 没有任何过往项目 | 项目官网 / Twitter / LinkedIn | ⚠️⚠️ |
| 合约未开源 | Etherscan / BscScan 的 Contract 标签 | ⚠️⚠️⚠️ 直接 pass |
Owner 未 renounce (owner() ≠ 0x000) |
合约 read 函数 | ⚠️⚠️ |
| LP 未锁仓 / 锁仓时间 < 6 个月 | Mudra / Unicrypt / PinkLock | ⚠️⚠️⚠️ |
合约里有 mint / setTax / setBlacklist |
源码搜索 | ⚠️⚠️ |
| 合约是 proxy (可升级) | 看是否是 EIP-1967 proxy 模式 | ⚠️⚠️ |
| Top 10 持仓 > 50% | BscScan Holders 标签 | ⚠️⚠️ |
| Deployer 钱包持仓 > 5% 且未锁 | 链上分析 | ⚠️⚠️ |
| 部署时间 < 7 天 | Etherscan Contract Creation | ⚠️ (新盘风险高) |
| TG / Discord 禁止讨论价格 / 频繁踢人 | 社群观察 | ⚠️ |
| APR / 收益高得离谱 (>1000%) | 文档 / DApp UI | ⚠️⚠️⚠️ |
经验法则:红旗 ≥ 2 个直接放弃,不要博侥幸。
5. 自动化检测方案
5.1 静态合约风险扫描
部署时一次性扫描合约的"危险权限"。核心要返回的字段:
python
risk_report = {
# Owner 风险
"owner_renounced": bool,
"is_proxy": bool, # 可升级 = 高危
"proxy_admin_renounced": bool,
# Mint / Supply 风险
"has_mint_function": bool,
"has_hidden_mint": bool, # mint 但函数名不叫 mint
"max_supply_capped": bool,
# Transfer 风险 (和貔貅币高度重叠)
"can_modify_tax": bool,
"max_buy_tax": float, # 看代码上限
"max_sell_tax": float,
"has_blacklist": bool,
"has_pause": bool, # owner 可暂停所有转账
# 流动性风险
"lp_locked": bool,
"lp_lock_until": timestamp,
"lp_lock_amount_pct": float, # 锁了多少比例 LP
# 持仓集中度
"top10_holding_pct": float,
"deployer_holding_pct": float,
}
工具栈:
- GoPlus Token Security API --- 上述大部分字段可以直接拿
- Slither (有源码时) --- 检测 mint / proxy / dangerous-modifier
- 自建反编译扫描 --- 没源码时用 Panoramix 反编译扫 selector
5.2 实时链上监控 (核心,最有价值)
静态扫描只能告诉你"风险存在",真正止损的是实时监控触发预警。监听以下事件:
| 监听对象 | 触发条件 | 告警级别 |
|---|---|---|
| LP token | Transfer event 中 from = locker contract,且 value 大 |
🔴 LP 解锁 (跑路前兆) |
| Pair 合约 | Burn event (即 removeLiquidity) 数额超过池子 10% |
🔴 正在抽 LP |
| Token 合约 | OwnershipTransferred 到一个全新地址 |
🟠 owner 换人 |
| Token 合约 | Upgraded event (proxy 升级) |
🔴 逻辑被改 |
| Token 合约 | Mint / Transfer(from=0x0) 大额 |
🟠 突然增发 |
| Token 合约 | owner 调用 setTax / setBlacklist |
🟠 规则突变 |
| Deployer 钱包 | 大额转账 / 提币到 CEX / Tornado | 🟠 可能在洗钱 |
技术方案:
- 节点 WebSocket 订阅 (
eth_subscribenewHeads / logs),实时推送 - Tenderly Alerts / Forta Network --- 托管方案
- 自建 indexer:Hive 数仓接入链上交易表,按 token 维度跑分钟级聚合
5.3 行为指标打分 (慢性 rug)
针对 slow rug,离线跑指标:
sql
-- 伪 SQL
SELECT
token_address,
-- LP 流失速度
(lp_30d_ago - lp_now) / lp_30d_ago AS lp_drain_30d,
-- Deployer 净流出
deployer_outflow_usd_30d AS deployer_dump_30d,
-- 持有人增长是否停滞
holders_now - holders_30d_ago AS holder_growth_30d,
-- 卖单是否被少数地址垄断
unique_sellers_30d / total_sells_30d AS seller_concentration
FROM token_metrics_daily
WHERE block_date = current_date
HAVING lp_drain_30d > 0.3 OR deployer_dump_30d > 50000
这类查询在 Hive 数仓 (参考 hive-data-query-guide.md) 里能跑出全市场 rug 风险榜单,反向用于交易所上币审查 / 钱包风控。
5.4 综合分层方案 (推荐)
[T-0 上币 / 部署时]
Layer 1 静态扫描 (GoPlus + Slither)
↓
[T+0 ~ T+∞ 持续监控]
Layer 2 事件订阅 (LP / Owner / Proxy / Mint)
↓
[T+1d ~ T+30d 慢性指标]
Layer 3 行为打分 (LP drain / deployer dump / 集中度)
↓
[异常触发]
Layer 4 人工 review + 用户预警 (钱包插件 / 通知)
6. 面向普通用户的现成工具
| 工具 | 用途 | 链支持 |
|---|---|---|
| RugDoc | 专门审 farm / vault / 收益聚合器 rug 风险,给"安全等级" | BSC / Polygon 等 |
| Token Sniffer | 综合百分制评分,覆盖 owner / LP lock / clone scam | ETH / BSC |
| De.Fi Scanner | 综合代币 + 协议 rug 风险报告 | 全链最广 |
| GoPlus Security | 底层 API,DEXTools / Dexscreener 都在用它 | 全链 |
| Mudra / Unicrypt / PinkLock | 查 LP 是否真的锁了、锁到什么时候 | 多链 |
| 钱包插件: Pocket Universe / Wallet Guard / Blockaid | 在签名前实时模拟交易后果,挡 approval rug | EVM 全链 |
实战流程:
- 投前 --- Token Sniffer + GoPlus + Mudra (LP 锁仓) 三件套
- 投中 --- 钱包插件做签名拦截,杜绝 approval / permit 钓鱼
- 投后 --- 关键 token 加入 De.Fi / Forta 的 watchlist,事件实时推送
7. 给安全平台的实践建议
如果在做"代币 / 项目跑路风险"服务,分阶段建设:
MVP (4 周)
- 接入 GoPlus + Token Sniffer API,覆盖静态风险
- 输出统一 schema 的 risk report (字段见 5.1)
- 风险等级映射:
SAFE / LOW / MEDIUM / HIGH / CRITICAL
V2 (3 个月)
- 自建实时事件监控 (LP burn / Owner change / Proxy upgrade / Large mint)
- 推送通道:Webhook / Telegram / Email / 钱包插件
- 对所有"用户已持仓"的 token 自动加监控
V3 (6 个月)
- 离线行为指标打分 (Hive)
- 全市场 rug 风险榜单 (反向用于上币审查)
- 联动 SAR (Suspicious Activity Report) 与合规系统
- 资金流追踪 (deployer → mixer → CEX) 用于事后追赃
8. 真实案例参考
- AnubisDAO (2021) --- 募资 13,556 ETH 后 deployer 钱包私钥被"泄露",全部资金消失 (典型 deployer rug)
- SQUID Token (2021) --- 蹭《鱿鱼游戏》IP,2 周涨 23 万倍,deployer 抽 LP 跑路
- Thodex (2021) --- 土耳其 CEX 跑路,CEO 卷走 20 亿美金
- Compounder Finance (2020) --- proxy 升级 rug,逻辑改完直接 drain
- Magnate Finance (2023) --- Base 链借贷协议 rug,deployer 与 SolFire / Kokomo 是同一团伙
9. 参考资料
- GoPlus Security Docs: https://docs.gopluslabs.io/
- Forta Network: https://forta.org/
- Tenderly Alerts: https://tenderly.co/alerts
- RugDoc Wiki: https://wiki.rugdoc.io/
- SlowMist 慢雾年报: https://www.slowmist.com/
- "Do Not Rug on Me: Leveraging Machine Learning Techniques for Automated Scam Detection" (Mazorra et al., 2022)
10. 一句话总结
Rug pull 的核心是项目方手里捏着一把"合法的开关" ------抽 LP、增发、改税、升级 proxy、卷 approval。
防御的底层逻辑只有一句:把用户从信任开关持有者,迁移到信任开关被锁死本身 。
工具都只是辅助,看到红旗别 FOMO,比任何检测器都管用。