lucifer

在 Web3 里买新币,死法基本就三种,而且个个经典。第一种叫硬 rug:项目方直接把流动性池撤空卷款跑路,代币瞬间归零,从”因为相信所以看见”到”查无此币”只需要一笔交易。第二种叫软 rug:团队握着大份额代币按兵不动,看起来岁月静好,然后每天精准砸一点,温水煮青蛙,你甚至说不清自己是哪天死的。第三种最阴,叫貔貅盘(honeypot)——以只进不出的上古神兽命名:你买得进,卖不出,要么卖出直接 revert,要么卖出税高达 99%,1000 USDT 进去,50 USDT 出来,”客服”还会劝你长期持有必有回报。

很多人觉得识别这些骗局需要深厚的合约功底,其实不需要。发币的门槛低到令人发指:一段二三十行的 ERC-20 模板代码,复制粘贴改个名字,五分钟上线,全部成本就是几美元的 Gas 费。门槛越低,骗子密度越高。所以”上新币之前先做检查”不是选修课,是必修课——你不检查合约,合约就会检查你的钱包。

这篇文章不讲大道理,只讲五项买前检查:流动性安全、合约权限、卖出模拟、持仓分布、团队背景。每项都配一个菜市场、买房、相亲级别的类比——你哪怕记不住术语,把类比记住也能躲掉大半的坑——外加”为什么 + 怎么查”,最后用三段纯标准库的 Python 代码把检查思路自动化。学完至少能躲开 80% 明晃晃的坑,剩下 20% 属于《合约安全审计入门》的专业范畴,那篇是审计工程师视角,本文是你掏钱之前五分钟的快速体检。

三种死法:先认清对手

先别急着掏钱包,动手检查之前,得先搞清楚我们要防的是什么。三种死法,作案机制完全不同,你对号入座一下自己是怎么死的:

  • 硬 rug:执行动作是”撤流动性”。项目方把手里的 LP token(流动性凭证)一撤,池子里的 ETH 和代币瞬间归项目方所有,价格图表直接跳崖。整个跑路过程通常一笔交易完成,你连挂单止损的机会都没有。
  • 软 rug:执行动作是”卖币”。团队、早期投资人、做市商握着大份额筹码,等价格拉起来之后分批出货。没有戏剧性的跑路现场,只有漫长阴跌,最后项目”自然死亡”。
  • 貔貅盘:执行动作在合约代码里。transfer 函数被植入逻辑——买入畅通无阻,卖出要么 revert 要么扣 95% 的税。它的营业逻辑一句话就能讲完:你买的时候店员满脸堆笑,你卖的时候老板直接抢。你的币还在钱包里,数字还显示着,但它的流动性已经死了,是名副其实的”数字纪念品”。

三种死法共用同一个作案工具——合约。所以五项检查的主线始终是围绕合约和链上数据取证。


买入前的五项检查

接下来是正菜。每一项检查我都给你配了一个生活类比,术语可以忘,类比请务必带走。

检查一:流动性安全——押金押在中介,才退不回去

先说类比:流动性锁仓,就是押金押在中介手里,不能退。租过房的人都懂:押金押在中介那里,租约没到期,谁也别想把它要回去。LP token(流动性凭证)就是币圈的”押金条”——锁进锁仓合约,项目方到期日之前一根手指都碰不到池子;烧进黑洞地址,等于押金条当着所有人的面撕了,永久作废。反过来,押金条要是还躺在项目方自己兜里呢?那这份”押金”就只是个态度,人家随时可以揣着钱走人。

为什么查:硬 rug 的执行机制就是撤流动性。你在 DEX 买币,本质是把自己的 USDT 换进了流动性池,池子的另一边躺着项目方注入的资产。谁掌握 LP token,谁就能随时把池子端走。流动性安全是硬 rug 的唯一防线。

怎么查:

  1. 看池子深度。在 DEXScreener 或 DEX 界面看池子里有多少真实资产(比如多少 ETH)。池子太浅的话,几千美元就能砸出 50% 的滑点——不用 rug,一根普通卖单就能让你腰斩。池子深度是体格,rug 是意外,体格太差的连意外的资格都没有。
  2. 看 LP token 去向。健康的做法有两种:锁仓(通过 UNCX、Team Finance 这类锁仓平台,锁仓合约地址和到期时间链上公开可查)或烧毁(LP token 转入 0x000...dead 黑洞地址,永久无法撤出)。两者任选其一,跑路按钮就等于被拆掉了——押金进了中介,或者押金条当场撕了。
  3. 看撤流动性权限在谁手里。如果 LP token 躺在部署者钱包里,既没锁也没烧——这不叫安全,只叫”跑路按钮还没按”。要不要把手放上去,你自己决定。

检查二:合约权限——房东偷偷配了你的门钥匙

第二个类比:owner 权限,就是房东偷偷配了你的门钥匙。你搬进出租屋,自己换了锁,以为这就是你的家了——可房东手里还留着一把钥匙,想什么时候进来就什么时候进来。合约里的 owner,就是那个房东。

这把钥匙都能干什么?数给你看:mint,凭空加印筹码,你手里那份越攥越薄;pause,一键把全楼的门从外面锁死,谁都别想买卖;setTax,今天进出免费,明天先交 99% 的过路费;blacklist,把你的钥匙直接作废,你想卖币?系统查无此人;selfdestruct,房子不想要了,连地基一起爆破;delegatecall,把整栋楼的物业管理外包给一个外人,楼还是你的楼,规矩已经不是你的规矩。合约是法律,而 owner 是随时可以修法的人。

怎么查(Etherscan 实操):

  1. 打开代币的 Etherscan 页面,找 Contract 标签。
  2. 没有绿色对勾 = 合约未验证开源。不肯给你看源码,就像不肯给你看厨房的餐厅——你可以吃,但建议做好食物中毒的心理准备。未开源本身就是红旗,不用再往下查了。
  3. 绿色对勾 = 点开源码,Ctrl+F 搜关键词:onlyOwner、mint、blacklist、setTax、pause、selfdestruct、delegatecall。每个命中的关键词都要弄清楚:它控制什么功能、谁能调用、调用后果是什么。搜到 mint 不一定是灾难(有些项目有上限增发),但”无上限 + onlyOwner”的组合基本可以判定为劫案预谋。
  4. 看 owner 是不是普通钱包地址,以及有没有调用过 renounceOwnership(放弃所有权)。这一步相当于房东当着全体租客的面,把私配的钥匙咔嚓剪断——剪了之后,谁也没法再进屋改规矩,大加分项。但要确认真的调用过,”声称放弃”和”已经放弃”是两回事。

本文教你的是五分钟用户侧体检;想系统学习怎么从攻击者视角审合约,见文末的《合约安全审计入门》。

检查三:卖出模拟——买房前,先试着转手一次

第三个类比:卖出模拟,就是买房之前先试着转手一次。老手买大额资产,会先拿一小笔钱试水:挂出去,看有没有人接盘,看过户要被抽走多少。等全款砸进去才发现房子根本过不了户,那就晚了。买币同理——买入是项目方设计的欢迎仪式,卖出才是照妖镜。

先看清对手的营业逻辑。貔貅盘的日子是这样的:你进店买币,店员满脸堆笑,扫码、到账,还送你一面”钻石手”锦旗,一路畅通无阻;等你哪天想卖了,老板从柜台后面窜出来直接抢——那张 95% 的卖出税,就是明抢给你的收据。

怎么查:

  1. 先用检测工具扫一遍:GoPlus Security、Token Sniffer、honeypot.is 等,看卖出模拟结果和买卖税率。
  2. 但要明白工具的局限:有些貔貅盘只对”非白名单地址”revert,检测器用默认地址模拟,查不出来。工具会误报,也会漏报。
  3. 最硬核的办法:用测试钱包(小号)真买一小笔,然后立刻试着卖掉。买得起不算数,卖得掉才算数。测试钱包里只放你打算烧掉的零钱,这一步的学费是确定的,学费之后的安全是大概率确定的。
  4. 卖出后对比到手金额和账面金额。差距过大就是隐形税在作怪——记住下文卖出税模拟里的结论:5% 是慢性毒药,95% 是当场处决。

检查四:持仓分布——这个小区的房源攥在谁手里

第四个类比:持仓集中度,就是一个小区大部分房源握在一个人手里。你满心欢喜买了某小区一套房,入住才发现:小区八成的房子是同一个业主的。他哪天心情不好,集体挂售,房价当场崩给你看——你唯一能选的,是割肉跑,还是蹲着陪葬。筹码高度集中的币,就是这样一个小区。持仓分布决定了”谁能在什么时候杀死你”。

怎么查:

  1. Etherscan 的 Holders 标签看前 10 大地址占比。经验线:Top10 超过 50% 要警惕,超过 70% 基本可以告别了——这个小区的定价权,已经在人家手里了。
  2. 识别开发者钱包:从合约部署交易往前追,看头号地址是否从部署者或预售地址收币。开发者钱包持仓 20% 以上,等于把刀递到对方手里还把后背转过去。
  3. 警惕单地址巨鲸:一个地址握着 20% 以上流通量,它进出场都会砸出瀑布,不管它是不是项目方。
  4. 记得排除流动性池地址和锁仓合约地址——它们占大头是正常现象,别看见占比就腿软。
  5. 持仓监控是门进阶手艺,想深挖可以看《如何查看鲸鱼挂单数据》,那是本文检查四的加强版;代币分配的其他红旗(团队份额、解锁曲线、FDV 陷阱)则见《代币经济学:如何判断一个代币值不值得买》。

检查五:团队与背景——相亲对象连身份证都不敢给你看

最后一项查人。类比:团队背景,就是相亲对象连身份证都不敢给你看。处对象可以不打听收入,但对方连身份证都捂着,你还敢把彩礼打过去?代码不会撒谎,但人会让代码撒谎。匿名团队不一定 rug,但匿名意味着跑路零成本——没有身份,就没有声誉破产这回事。

怎么查:

  1. 匿名团队三件套:GitHub 提交历史(是不是开工前一周临时堆出来的)、推特建号时间、域名注册时间。三件套都是上周注册的,你面对的就不是项目,是魔术道具店的新货架——身份证、学历证、履约能力,全套新办,随用随取。
  2. 审计报告也可能是假的。伪造一张”已通过 XXX 审计”的图片成本为零,就像相亲简历上的”名企高管”可以自己印。看出报告方:审计公司是否真实存在、官网能否对上号、该公司是否在自己的页面承认审计过这个项目。看 scope:审计范围有没有覆盖你担心的那些函数,还是只审了个 ERC-20 模板就宣布全境和平。记住:审计报告不等于资金安全保险单。
  3. 社交热度不等于安全。Telegram 人数可以买,KOL 喊单可以收费,”万人社区”和”万人稳定亏损”之间只隔着一个 KOL 产业链。热度是营销指标,不是安全指标——介绍人再热情,身份证也得本人掏。

用 Python 把检查思路自动化

五项检查里凡是”看数据、算比例、打分”的活儿,本质上都是数据处理,这正是 Python 的主场。下面三段代码全部纯标准库,复制就能跑——本文写作时已在 Python 3 环境真实跑通,后面的输出都是真跑出来的,不是手打的。

一、合约风险扫描器:给合约做一次体检

先说直觉。检查二里”读源码找红旗”,人肉版是开着 Etherscan 按 Ctrl+F 搜关键词;机器版思路一模一样——列一张红旗体检表,命中一项加几分,锁仓、放弃权限这类好行为减刑减分,最后按总分给个评级。跟体检报告一个逻辑:逐项打分,汇总,出结论。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""合约风险扫描器:模拟"读源码找红旗"的自动化流程。

真实场景:在 Etherscan 打开开源合约源码,用关键词搜索红旗特征。
这里的玩具版把"源码"抽象成特征清单(函数名 / 修饰符集合),
扫描思路和真实静态分析工具一致:命中规则 -> 累计风险分 -> 给评级。
"""

# 风险规则表:(特征, 权重, 说明)。权重越高越危险,负分是"减刑项"
RISK_RULES = [
("mint", 3, "存在铸币函数:owner 可无限增发,你的持仓会被稀释"),
("blacklist", 3, "存在黑名单机制:你的地址可能被拉黑,转账卖出全冻结"),
("setTax", 3, "存在动态税率函数:owner 能把卖出税随时改成 99%"),
("selfdestruct", 4, "存在自毁函数:合约可被销毁,池子里的钱跟着陪葬"),
("pause", 2, "存在暂停交易函数:owner 一键冻结所有人的买卖"),
("delegatecall", 2, "存在 delegatecall:合约逻辑可被外部改写,合约会'变异'"),
("setMaxTx", 1, "存在交易限额:常见于控盘,限制你单笔卖出的数量"),
("onlyOwner", 1, "存在 owner 权限修饰符:合约里有'管理员'的影子"),
("renounceOwnership", -2, "存在放弃所有权函数:若已调用,owner 权限作废,减分"),
("lockLP", -2, "存在流动性锁仓逻辑:撤池子的手被捆住,减分"),
]

def scan(features):
"""扫描特征清单,返回(命中列表, 风险分)"""
hits = []
score = 0
for feature, weight, desc in RISK_RULES:
if feature in features:
hits.append((feature, weight, desc))
score += weight
return hits, score

def rate(score):
"""按风险总分给评级"""
if score >= 6:
return "高危:建议直接拉黑,别回头看"
elif score >= 3:
return "可疑:需要人工进一步审查,钱包捂紧"
else:
return "相对健康:本项通过,但还有四项检查等着它"

def report(features, name):
print("=" * 58)
print(f"合约风险扫描报告:{name}")
print("=" * 58)
hits, score = scan(features)
if not hits:
print(" 未命中任何规则(若合约未开源,则更危险,直接红旗)")
for feature, weight, desc in hits:
sign = "+" if weight > 0 else ""
print(f" [{sign}{weight}] {feature:<18} {desc}")
print("-" * 58)
print(f" 风险总分:{score}")
print(f" 评级:{rate(score)}")
print()

# 样本一:虚构的健康币 LULU,特征清单干净,还主动锁仓和放弃权限
LULU = ["transfer", "approve", "balanceOf",
"transferOwnership", "renounceOwnership", "lockLP"]

# 样本二:虚构的貔貅盘 PIPI,红旗密密麻麻,凑齐了作恶全家桶
PIPI = ["transfer", "approve", "balanceOf",
"mint", "onlyOwner", "blacklist", "setTax", "pause",
"setMaxTx", "delegatecall"]

report(LULU, "虚构的 LULU 币(健康样本)")
report(PIPI, "虚构的 PIPI 币(貔貅盘样本)")

代码说明:灵魂就是那张 RISK_RULES 体检表——每条规则是 (特征, 权重, 说明) 三元组,权重代表危险程度,负分是减刑项(锁仓、放弃所有权)。scan 把特征清单和体检表对一遍,命中就累计风险分;rate 按总分出评级;report 负责把报告打印成人话。LULU 和 PIPI 都是虚构币种:一个清单干净还主动锁仓,一个凑齐了作恶全家桶。

真实运行输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
==========================================================
合约风险扫描报告:虚构的 LULU 币(健康样本)
==========================================================
[-2] renounceOwnership 存在放弃所有权函数:若已调用,owner 权限作废,减分
[-2] lockLP 存在流动性锁仓逻辑:撤池子的手被捆住,减分
----------------------------------------------------------
风险总分:-4
评级:相对健康:本项通过,但还有四项检查等着它

==========================================================
合约风险扫描报告:虚构的 PIPI 币(貔貅盘样本)
==========================================================
[+3] mint 存在铸币函数:owner 可无限增发,你的持仓会被稀释
[+3] blacklist 存在黑名单机制:你的地址可能被拉黑,转账卖出全冻结
[+3] setTax 存在动态税率函数:owner 能把卖出税随时改成 99%
[+2] pause 存在暂停交易函数:owner 一键冻结所有人的买卖
[+2] delegatecall 存在 delegatecall:合约逻辑可被外部改写,合约会'变异'
[+1] setMaxTx 存在交易限额:常见于控盘,限制你单笔卖出的数量
[+1] onlyOwner 存在 owner 权限修饰符:合约里有'管理员'的影子
----------------------------------------------------------
风险总分:15
评级:高危:建议直接拉黑,别回头看

对着输出读:LULU 只命中两条减刑项,总分负 4,放行;PIPI 凑齐 mint、黑名单、动态税率,总分 15,直接拉黑。同一张体检表,两种人生。想接真实数据也简单:用正则从开源合约源码里把函数名和修饰符抽出来,替换 features 清单就行。

二、持仓集中度分析:数一数房源攥在几个人手里

还是先说直觉。怎么用数字描述”小区房源是不是攥在一个人手里”?借反垄断领域的老工具 HHI(赫芬达尔-赫希曼指数):把每个地址的持仓份额平方后求和。为什么要平方?为了狠狠惩罚大头——一个地址攥 41.5%,平方完是 1722;散户那点零头,平方完约等于没有。集中度立刻现形。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""持仓集中度分析:Top10 占比 + HHI 指数。

HHI(赫芬达尔-赫希曼指数):把每个地址的持仓份额(百分数)平方后求和。
筹码越集中,HHI 越大。反垄断领域用它判断市场是否被巨头垄断,
我们借来判断一个币的筹码是不是攥在少数人手里。
本文口径:HHI < 500 健康,500~1000 警惕,> 1000 危险。
"""

# 健康样本:Top20 逐级递减,没人有压倒性筹码
HEALTHY = [6.8, 5.9, 5.2, 4.6, 4.1, 3.7, 3.3, 3.0, 2.8, 2.6,
2.4, 2.2, 2.0, 1.9, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3]
HEALTHY_OTHERS = 100 - sum(HEALTHY) # 剩余份额,由大量散户地址持有
HEALTHY_OTHERS_N = 3000 # 假设剩 3000 个散户地址均摊

# rug 前夕样本:头号地址一家独大,筹码高度集中
PRE_RUG = [41.5, 13.8, 5.5, 4.2, 3.5, 2.8, 2.4, 2.0, 1.8, 1.6,
1.5, 1.4, 1.3, 1.2, 1.1, 1.0, 0.9, 0.8, 0.7, 0.6]
PRE_RUG_OTHERS = 100 - sum(PRE_RUG)
PRE_RUG_OTHERS_N = 800

def analyze(holders, others_pct, others_n, name, dev_wallet=False):
top10 = sum(holders[:10])
# HHI = Σ 份额^2;"其他"部分按 others_n 个地址均摊后计入
hhi = sum(s ** 2 for s in holders)
each = others_pct / others_n
hhi += others_n * each ** 2
print(f"—— {name} ——")
print(f"Top10 持仓合计:{top10:.1f}%")
if dev_wallet:
print(f"头号地址持仓 {holders[0]}%,疑似开发者钱包,远超安全线")
print(f"HHI 指数:{hhi:.0f}")
if hhi < 500:
verdict = "健康:筹码分散,没人能一口吞掉盘面"
elif hhi <= 1000:
verdict = "警惕:出现集中筹码,盯紧大地址动向"
else:
verdict = "危险:高度集中,随时可能被砸出瀑布"
print(f"结论:{verdict}")
print()

analyze(HEALTHY, HEALTHY_OTHERS, HEALTHY_OTHERS_N, "健康样本:虚构的 LULU 币")
analyze(PRE_RUG, PRE_RUG_OTHERS, PRE_RUG_OTHERS_N, "rug 前夕:虚构的 PIPI 币", dev_wallet=True)

代码说明:HEALTHY 和 PRE_RUG 是两套模拟的前 20 大地址持仓(虚构口径)。HHI = Σ 份额的平方;”剩余散户”那部分按 others_n 个地址均摊后计入,避免把几千个散户挤成一个假巨鲸。判定口径在文件头写着:HHI < 500 健康,500~1000 警惕,> 1000 危险。

真实运行输出:

1
2
3
4
5
6
7
8
9
10
—— 健康样本:虚构的 LULU 币 ——
Top10 持仓合计:42.0%
HHI 指数:228
结论:健康:筹码分散,没人能一口吞掉盘面

—— rug 前夕:虚构的 PIPI 币 ——
Top10 持仓合计:79.1%
头号地址持仓 41.5%,疑似开发者钱包,远超安全线
HHI 指数:2008
结论:危险:高度集中,随时可能被砸出瀑布

对着输出读,两套数据的差距非常直观:健康样本 LULU,Top10 占 42%、HHI 只有 228,谁也吞不掉谁;rug 前夕的 PIPI,Top10 占 79.1%、头号地址一家攥着 41.5%、HHI 飙到 2008——差了一个数量级。这就是”房源攥在一个人手里”的数学版。真实场景下,持仓数据可以从 Etherscan 的 Holders 接口或链上索引协议直接拉。

持仓集中度对比:健康的 LULU(Top10 42.0%、HHI 228)与 rug 前夕的 PIPI(Top10 79.1%、头号地址 41.5%、HHI 2008),模拟数据

三、卖出税模拟:老板抢钱的收据

现在把检查三那个店员与老板的故事,翻译成数学。公式只有一行:到手金额 = 账面金额 x(1 - 税率)。就这一行,能算出三种人生。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""卖出税模拟:买入 1000 USDT 的币,不同税率下到手多少钱。

貔貅盘的核心机制就藏在 transfer 里:转账时扣税,或者干脆 revert。
5% 的"温和税"是慢性毒药,95% 的"明抢"是当场处决。
"""

BUY = 1000.0 # 买入花费的 USDT(简化:不考虑价格冲击和 Gas)

def sell_with_tax(value, tax_rate):
"""按税率卖出,返回到手金额"""
return value * (1 - tax_rate)

# 场景一:温和税 5%,表面看人畜无害
net = sell_with_tax(BUY, 0.05)
print("场景一:卖出税 5%(温和税)")
print(f" 投入 {BUY:.0f} USDT,到手 {net:.2f} USDT,磨损 {BUY - net:.2f} USDT")

# 场景二:明抢 95%,貔貅盘经典款
net = sell_with_tax(BUY, 0.95)
print("场景二:卖出税 95%(明抢)")
print(f" 投入 {BUY:.0f} USDT,到手 {net:.2f} USDT,磨损 {BUY - net:.2f} USDT")

# 场景三:双边各 5% 的温和税,往返 5 次(每次往返过两次闸,共 10 次)
balance = BUY
for _ in range(5):
balance = sell_with_tax(balance, 0.05) # 卖出扣 5%
balance = sell_with_tax(balance, 0.05) # 下一轮买入再扣 5%
print("场景三:双边各 5% 税,往返 5 次(共过 10 次闸)")
print(f" 投入 {BUY:.0f} USDT,剩 {balance:.2f} USDT,"
f"磨损 {BUY - balance:.2f} USDT({100 * (BUY - balance) / BUY:.1f}%)")

代码说明:sell_with_tax 就是那一行公式本体。三个场景:单次卖出的 5% 温和税、单次卖出的 95% 明抢、双边各 5% 往返 5 次。简化口径:不考虑价格冲击和 Gas,只为把税本身看清楚。

真实运行输出:

1
2
3
4
5
6
场景一:卖出税 5%(温和税)
投入 1000 USDT,到手 950.00 USDT,磨损 50.00 USDT
场景二:卖出税 95%(明抢)
投入 1000 USDT,到手 50.00 USDT,磨损 950.00 USDT
场景三:双边各 5% 税,往返 5 次(共过 10 次闸)
投入 1000 USDT,剩 598.74 USDT,磨损 401.26 USDT(40.1%)

逐个场景读。场景一,1000 进 950 出,像付了笔小费,很多人因此放松警惕——这就是慢性毒药,单看人畜无害。场景二,就是老板从柜台后面窜出来那一下:1000 进 50 出,账面上币还在,实际到手 5%,等于间接归零。场景三最值得回味:双边各 5%,单看还是温和,可往返 5 次、过 10 次闸之后只剩 598.74,磨掉 40%——税是按过闸次数复利收的,不是按你持有的时间。波段玩家对高税币深恶痛绝,就是被这道闸反复收割过了。

卖出税模拟:投入 1000 USDT,5% 税到手 950,95% 税到手 50,双边 5% 往返 5 次只剩 598.74,模拟数据

复盘一个典型 rug 的 72 小时

五项检查和三段代码都是”静态”的体检工具,最后把它们装进时间轴,完整复盘一个 rug 从开盘到归零的全过程。先把口径说死:这是一个虚构的合成案例,由真实 rug 的常见套路拼合而成,所有数字取典型量级,并与本文三段模拟的口径对齐——对号入座可以,拿去查地址就是我的不对了。

时刻 发生了什么 关键数字
T+0 开盘建池,宣传”公平发射,社区共有” 流动性约 8 万美元
T+3h 社媒造势,KOL 齐喊”百倍金狗” 市值拉到开盘的 5 倍
T+10h 官推晒”LP 已锁仓”截图 锁在一个没人查证过合约的地址里
T+24h 开发者钱包悄悄吸筹,筹码加速集中 Top10 合计 79.1%,HHI 冲到 2008
T+30h owner 调用 setTax 把卖出税改到 95%,顺手拉黑名单 早期买家发现:买得进,卖不出
T+72h 撤池跑路,代币归零 群里最后一条消息,是”客服”劝你长期持有

把一位”标准受害者”的账摊开算:假设他在 T+3h 被”5 倍”的气氛裹挟着投入 1000 USDT 买入,扛到 T+30h 想止盈——即便币价一分没跌,按 95% 的卖出税,到手也只有 50 USDT;真拖到 T+72h,连这 50 也没了,那 8 万美元的池子连同所有人的本金一起消失,全部汇进开发者钱包。而回看这 72 小时,五项检查每一项都有红旗飘过:流动性没锁进可查证的锁仓合约,是检查一的红旗;owner 留着 setTax 和 blacklist,是检查二的红旗;卖出模拟会当场翻车,是检查三的红旗;Top10 79.1%、HHI 2008 早在 T+24h 就亮了灯,是检查四的红旗;”公平发射”配上周新注册的官推,是检查五的红旗。rug 不是没有信号,是绝大多数人从来不看。


免责声明

先说清楚边界:这五项检查降低风险,但不消除风险。骗局也在通过对拍升级——锁仓可以作假(锁了小池子、藏了大池子),审计可以伪造,卖出模拟可以设白名单。清单能帮你过滤掉 80% 明晃晃的坑,但剩下 20% 需要,也只能需要,你自己承担。

其次,本文不构成任何投资建议。买不买、买多少、亏了找谁哭,都是你自己的决策。DYOR(Do Your Own Research)不是一句口号,是字面意思。

最后提醒:项目方跑路不是唯一的死法。买完新币记得顺手检查一下钱包里的授权——rug 的姊妹篇是无限授权钓鱼,见《Web3 中的授权与撤销授权》;而另一种经典死法不是项目方动手,是你自己被钓鱼站偷了私钥,见《我是一个区块链黑客(第一篇)》。防住了项目方,别忘了防自己。

总结

上新币之前的五项检查,浓缩成一张口袋清单——每项带走一个类比就够:

  1. 流动性安全:押金押在中介了吗?池子深度够不够,LP token 是否锁仓或烧毁,撤流动性权限在谁手里。
  2. 合约权限:房东有没有私配你的门钥匙?源码开没开源,onlyOwner 能不能 mint、暂停交易、改税率、拉黑名单,所有权有没有真的放弃。
  3. 卖出模拟:买房前先试着转手一次。检测工具扫一遍,再用小号真买真卖一笔——买得起不算数,卖得掉才算数。
  4. 持仓分布:这个小区的房源攥在谁手里?Top10 占比、开发者钱包持仓、单地址巨鲸,排除池子地址再看。
  5. 团队与背景:相亲对象的身份证掏出来看看。匿名程度、GitHub 和域名的”工龄”、审计报告的出报告方与 scope、社交热度的含金量。

上新币之前的五项买前检查:每项配一个生活类比与一句红旗提示

三段 Python 代码演示了检查背后的数学:风险评分把红旗变成数字,HHI 把筹码集中度变成数字,卖出税把跑路成本变成数字。数字不会说谎,说谎的是宣传海报。

检查花的这五分钟,可能是你在币圈最划算的五分钟。

相关阅读


 评论


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 。
载入天数...载入时分秒...