Rug Pull (跑路盘) 识别与防御

目录

  • [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_subscribe newHeads / 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 全链

实战流程:

  1. 投前 --- Token Sniffer + GoPlus + Mudra (LP 锁仓) 三件套
  2. 投中 --- 钱包插件做签名拦截,杜绝 approval / permit 钓鱼
  3. 投后 --- 关键 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. 参考资料


10. 一句话总结

Rug pull 的核心是项目方手里捏着一把"合法的开关" ------抽 LP、增发、改税、升级 proxy、卷 approval。

防御的底层逻辑只有一句:把用户从信任开关持有者,迁移到信任开关被锁死本身

工具都只是辅助,看到红旗别 FOMO,比任何检测器都管用。

相关推荐
m0_380167143 小时前
加密市场数据的未来:实时化、多交易所与 AI-ready
人工智能·区块链
master-dragon5 小时前
貔貅币 (Honeypot Token) 识别与防御 & remix实践测试
区块链·智能合约
搞科研的小刘选手14 小时前
【中山大学主办】第六届计算机科学与区块链国际学术会议(CCSB 2026)
分布式·神经网络·计算机视觉·区块链·计算机科学·共识算法·自然语言
Richown1 天前
用 Three.js + React 打造一个赛博朋克风格的 3D 作品集页面
区块链·react
Upsy-Daisy1 天前
IOTA 学习笔记(一):IOTA 是什么?从区块链到 Tangle
笔记·学习·区块链
软件工程小施同学1 天前
最新区块链论文录用资讯 CCF A--WWW 2026 12篇
区块链
master-dragon1 天前
Solidity 智能合约开发实战:从零构建 PiggyBank 存钱罐合约
区块链
酿情师1 天前
孤立交易:比特币节点为什么会暂存缺少父交易的交易
区块链
拼尽全力前进2 天前
加密算法分类
区块链