撤走流动性池里的 ETH,增发代币,改掉合约参数让别人卖不出去。这几个动作合起来叫 Rug Pull:币还在你钱包里,把它换回钱的路却被项目方断掉了。
中文里叫跑路,再按做法细分:撤走流动性叫撤池子;合约只放买单、拦住卖单的叫貔貅盘,也叫蜜罐合约;英文直译过来的「拉地毯」,说的也是这件事。动手的是项目方,即握着流动性凭证或合约权限的一方。合约被外人找到漏洞、盗走资金,属于被攻击,不算在跑路里。
Rug Pull 和币价暴跌、归零怎么区分
归零说的是价格落到接近零的结果,暴跌说的是下跌的过程。两个词都只描述价格,不管是谁、用什么办法让它跌的。
在去中心化交易所的流动性池里,代币价格由池子两边的数量之比算出来。暴跌和跑路都会让这个价格往下走,动的却不是同一处。
两种情况画在 K 线上都可能是一路往下,光看图分不出来。
分辨两者,看池子里能换回来的那一侧还剩多少,再看最近有没有普通地址的卖出交易成交。跌了多少,回答不了这个问题。
撤池子:池子里的 ETH 被一笔交易撤空
流动性池由两种币配对组成,一枚新代币配一种拿得出去换钱的币,比如 ETH 或稳定币。往池子里存币的人叫流动性提供者,存进去以后拿到一份 LP 凭证,记着他在池子里占多少份额;凭这份凭证,可以按份额把两边的币一起取回。
买币的人不在这张名单上。拿 ETH 去池子里换代币,换到手的是代币,不是 LP 凭证。换进去的 ETH 留在池子里,归 LP 凭证的持有者按份额所有。
新代币的池子如果是部署者自己建的、别人没再往里存,凭证就全在他手里。这时撤池子只是一笔普通的取回流动性交易:两边的币按份额全部转回他的地址,其中包括买家先前换进来的 ETH。刚上链、池子很浅的新代币,币圈叫土狗。
算例设部署者开池时放进 10 个 ETH 和一批新代币,拿到这个池子全部的 LP 凭证。之后买家先后往池里换进 10 个 ETH,换走一部分代币。部署者用全部凭证撤池,池子里剩下的代币和 ETH 一起回到他的地址;不计手续费,取回的 ETH 是 20 个,他自己放的 10 个,加上买家换进来的 10 个。池子两边都成了 0,这个交易对算不出价格,买家手里的代币在这个池子里换不到东西。
要让这一步做不成,LP 凭证得离开部署者:转进销毁地址,这份流动性就再也撤不了;锁进锁仓合约,要等锁定到期才能取出。凭证去了哪里,链上查得到,查法见 DYOR 自己研究一个币查什么。
项目方增发代币,是怎么把池子里的钱换走的
代币不是链自己发的,是一份合约发的,余额和总量都记在合约里(它和主网币的区别:原生币、代币和合约地址)。总量能不能变,看合约怎么写。合约里如果有铸币函数,并且只允许某个地址调用,这个地址就能凭空给自己记上一笔新币。
新币本身换不来什么,能换钱的是池子里的 ETH。部署者把新铸的币卖进池子,池子按两边数量重新算价:代币一侧突然多出一大截,ETH 一侧被换走一大截。被换走的那些 ETH,本来是你卖出时能换回的部分。效果和撤池子接近,走的却是卖出交易,用不着 LP 凭证。
铸币之外,合约还能给管理者留别的开关:调整买卖税率,把某些地址列进禁止转账的名单,暂停全部转账。税率被调到接近全部,合约就成了只能买、不能卖的貔貅盘。
貔貅盘(蜜罐合约):只能买、不能卖
代币每转一次手,都要经过合约里的转账函数。在池子里买入,是池子把代币转给买家;卖出,是持币人把代币转进池子。转账函数看得到每一笔「从哪来、到哪去」,也就能对买和卖定不同的规矩。
貔貅盘用的就是这一点:
- 卖出白名单:转进池子的那一笔,只有名单上的地址才放行,名单由部署者设定;其余地址的卖出交易直接失败。
- 卖出税接近全部:卖单能成交,但转账函数先把接近全部的数量当税扣走,转进池子的只剩零头,换回的 ETH 也只剩零头。
买入那一侧照常放行,价格继续往上走。这两种限制可以部署时就写死,也可以先关着,等买盘起来再由部署者打开。前期有人卖出成功,后来照样可能卖不出去。
跑路之后,被撤走的钱还能追回吗
链上的交易一经确认就改不回去,也不存在一个能把它退回的管理方。这时能做的,是把下面这些记录留全,然后报案:
- 自己的钱包地址,买入那几笔交易的哈希;
- 代币的合约地址、流动性池的地址,撤池子或大额卖出那几笔交易的哈希;
- 项目方公布过的网站、社交账号页面的截图,群里的公告和聊天记录。
整理好以后,带着这些材料向所在地的警方报案。
当初在项目网站上连接过钱包、给它的合约开过代币授权的,比如允许它动用钱包里的稳定币,把这些授权取消掉。
这时候不管谁、打着什么名义来要助记词或私钥,都别给:正规的服务、客服和网站不会要这两样东西(ethereum.org 安全与防骗指南的提醒)。
被撤走的 ETH 转去了哪个地址,链上一直查得到;地址本身不带姓名,要把它和一个具体的人对上,靠的是链外的线索。



