Day 13
【实战5.1】Rug Pull预警系统设计:Token风险评分模型
分析经典Rug Pull案例,设计多维度Token风险评分模型(合约/团队/流动性/交易),构建Token扫描工具PRD
2026-03-20
实战项目Rug Pull风险评分Token安全合约分析预警系统
实战项目 5.1:Rug Pull 预警系统设计
项目信息
项目编号:5.1
所属方向:反欺诈分析
难度:⭐⭐⭐⭐ 高级
预计时间:5-6小时
前置技能:安全基础(Day 20, 55-56)、合约阅读(Day 5-6)
项目目标
识别 Rug Pull 风险信号,设计 Token 风险评分模型和扫描工具
产出清单:
├── ✅ Rug Pull 案例分析库
├── ✅ Token 风险评分模型
└── ✅ Token 扫描工具 PRD
Task 1:Rug Pull 案例分析库
五大经典 Rug Pull 类型
类型 1:流动性抽离(最常见)
═══════════════════════════════════════════════════════════
方式:项目方添加 LP → 吸引买入 → 一次性移除全部 LP
案例:2021 年大量 BSC 土狗币
损失:单个项目 $100K-$10M
检测:监控 LP 移除事件 + LP 锁定状态
难度:⭐ 最容易检测
═══════════════════════════════════════════════════════════
类型 2:无限增发(Mint 攻击)
═══════════════════════════════════════════════════════════
方式:合约中隐藏 mint 函数 → 增发巨量 Token → 砸盘
案例:Meerkat Finance ($31M, 2021)
检测:审查合约是否有 owner-only mint 函数
难度:⭐⭐ 需要读合约
═══════════════════════════════════════════════════════════
类型 3:交易税操纵
═══════════════════════════════════════════════════════════
方式:初始低税率吸引买入 → 后改为 99% 卖出税 → 无法卖出
案例:Squid Game Token ($3.3M, 2021)
检测:检查合约是否有可修改的 fee/tax 参数
难度:⭐⭐⭐ 需要理解合约逻辑
═══════════════════════════════════════════════════════════
类型 4:后门函数
═══════════════════════════════════════════════════════════
方式:合约中隐藏后门 → 可任意转移用户资金
案例:多个 DeFi 项目
检测:审查 transferFrom 权限、代理合约升级权限
难度:⭐⭐⭐⭐ 需要专业审计
═══════════════════════════════════════════════════════════
类型 5:虚假项目(Slow Rug)
═══════════════════════════════════════════════════════════
方式:团队逐步减少开发 → 慢慢卖出 Token → 最终放弃
案例:很多山寨 DeFi 协议
检测:监控团队钱包的 Token 卖出行为 + GitHub 活跃度
难度:⭐⭐⭐⭐⭐ 最难检测(看起来像正常项目)
═══════════════════════════════════════════════════════════
Task 2:Token 风险评分模型
四维度评分系统
Token 风险评分(满分 100 分,越高越危险)
═══════════════════════════════════════════════════════════
维度 A:合约风险(40 分)
├── 合约未开源 +20 分
├── 存在 owner-only mint 函数 +10 分
├── 交易税 > 5% +5 分
├── 交易税可修改 +10 分
├── 代理合约(可升级)无 Timelock +10 分
├── 未经任何审计 +5 分
├── 黑名单函数(可禁止特定地址交易) +5 分
└── 合约代码与已知骗局相似度 > 80% +15 分
维度 B:团队风险(20 分)
├── 团队完全匿名 +10 分
├── 无可验证的历史项目 +5 分
├── 社交媒体创建时间 < 3 个月 +5 分
├── 团队 Token 无锁仓 +10 分
└── 团队持有 > 20% 供应量且无 Vesting +5 分
维度 C:流动性风险(25 分)
├── LP 未锁定 +15 分
├── LP 集中在 ≤ 3 个地址 +10 分
├── 总流动性 < $50K +5 分
├── LP 锁定期 < 6 个月 +5 分
└── 流动性/市值比 < 5% +10 分
维度 D:交易行为风险(15 分)
├── 持有者集中度(Top10 > 50%) +10 分
├── 买卖比极端(>5:1 或 <1:5) +5 分
├── 大户持续卖出 +5 分
├── 交易量突然暴涨 10x(拉盘信号) +5 分
└── 仅在单一 DEX 有流动性 +5 分
━━━ 评级标准 ━━━
0-25 分:🟢 低风险
26-50 分:🟡 中风险(谨慎投资)
51-75 分:🟠 高风险(不建议投资)
76-100 分:🔴 极高风险(疑似骗局)
═══════════════════════════════════════════════════════════
核心 SQL — Token 持有者集中度分析
-- 项目5.1 Task 2: Token 持有者集中度分析
-- 高集中度 = 项目方/内部人控制大量 Token = 砸盘风险
WITH token_balances AS (
SELECT
"to" as holder,
contract_address as token,
SUM(CASE WHEN "to" = holder THEN value ELSE 0 END)
- SUM(CASE WHEN "from" = holder THEN value ELSE 0 END) as balance
FROM erc20_ethereum.evt_Transfer
WHERE contract_address = 0x... -- 目标 Token 地址
GROUP BY "to", contract_address
HAVING SUM(CASE WHEN "to" = "to" THEN value ELSE 0 END)
- SUM(CASE WHEN "from" = "to" THEN value ELSE 0 END) > 0
),
ranked AS (
SELECT
holder,
balance,
balance * 100.0 / SUM(balance) OVER() as pct_supply,
ROW_NUMBER() OVER (ORDER BY balance DESC) as rank
FROM token_balances
WHERE holder NOT IN (
0x0000000000000000000000000000000000000000, -- 黑洞
0x000000000000000000000000000000000000dEaD -- 销毁地址
)
)
SELECT
-- Top 10 持有者集中度
SUM(CASE WHEN rank <= 10 THEN pct_supply ELSE 0 END) as top10_pct,
SUM(CASE WHEN rank <= 20 THEN pct_supply ELSE 0 END) as top20_pct,
COUNT(*) as total_holders,
-- 基尼系数简化版
CASE
WHEN SUM(CASE WHEN rank <= 10 THEN pct_supply ELSE 0 END) > 80
THEN '🔴 极度集中'
WHEN SUM(CASE WHEN rank <= 10 THEN pct_supply ELSE 0 END) > 50
THEN '🟠 高度集中'
WHEN SUM(CASE WHEN rank <= 10 THEN pct_supply ELSE 0 END) > 30
THEN '🟡 中度集中'
ELSE '🟢 分散'
END as concentration_level
FROM ranked
Task 3:Token 扫描工具 PRD
PRD:TokenGuard — Token 风险扫描器
产品定位:一键扫描 Token 安全风险,帮用户避免 Rug Pull
目标用户:DeFi 交易者、投资者、研究员
核心功能:输入 Token 地址 → 输出风险评分 + 详细报告
用户旅程
Step 1:输入 Token 地址或名称
└── 支持 Ethereum / BSC / Arbitrum / Base
Step 2:自动扫描(5-10 秒)
├── 合约代码分析(开源?审计?危险函数?)
├── 持有者分析(集中度?大户动向?)
├── 流动性分析(LP 锁定?深度?)
└── 交易行为分析(买卖比?异常模式?)
Step 3:输出风险报告
├── 总评分(0-100)+ 风险等级(🟢🟡🟠🔴)
├── 四维度分项评分
├── 关键风险项高亮
├── 类似 Token 对比
└── "是否安全"的简明建议
Step 4:持续监控(Pro 功能)
├── LP 移除告警
├── 大户卖出告警
├── 合约升级告警
└── 推送到 Telegram/Discord
竞品对比
| 功能 | TokenGuard | Token Sniffer | GoPlus | De.Fi |
|---|---|---|---|---|
| 合约扫描 | ✅ | ✅ | ✅ | ✅ |
| 持有者分析 | ✅ 深度 | 基础 | ✅ | 基础 |
| 行为监控 | ✅ 实时 | ❌ | 部分 | ❌ |
| 多链支持 | 4 链 | 2 链 | 多链 | 多链 |
| 差异化 | 行为+实时告警 | 简单评分 | API 服务 | 授权管理 |
MVP 范围
Phase 1 MVP(4 周):
├── 合约风险扫描(开源/mint/税率/代理)
├── 持有者集中度分析
├── LP 锁定状态查询
├── 风险评分展示
└── 支持 Ethereum 主网
Phase 2(+4 周):
├── 多链支持(BSC/Arbitrum/Base)
├── 交易行为分析
├── 历史风险趋势
└── Telegram Bot 告警
Phase 3(+4 周):
├── ML 模型(相似骗局检测)
├── 实时监控 Dashboard
├── API 接口(B2B)
└── 社区举报 + 评价
面试题准备
Q: 作为 PM,如何设计一个 Token 安全检测产品?
30 秒版本: 四层检测 — (1) 合约层:扫描代码是否开源、有无危险函数(mint/blacklist/可改税率);(2) 持有者层:分析 Top10 集中度和团队锁仓状态;(3) 流动性层:LP 是否锁定、深度是否足够;(4) 行为层:大户卖出趋势、买卖比是否异常。输出一个 0-100 的风险分加简明建议。核心差异化在实时监控告警 — 不只告诉你"现在安不安全",还告诉你"什么时候变危险了"。
下一步
完成本项目后,推荐继续:
- 项目 5.2:钓鱼攻击监控与防护
- 项目 5.3:异常交易监控系统