币安智能链多项目跑路 PopcornSwap 卷走 4 万 BNB 交易所公链“尴尬”何解?

近日,多名流动性“矿工”对吴说区块链表示,币安智能链上又一个 DeFi“土矿”popcornswap 跑路,项目方卷走近 48000 个 BNB,价值约 215 万美金。数日内还有三个项目(Zap Finance 和 Tin Finance、SharkYield)跑路。目前 SharkYield 跑路疑似带走了 6000 个 BNB。

币安表示安全团队在“连夜跟进”popcornswap 项目,但并不一定能追回成功。币安此前宣传文章也表示追回是小概率事件,希望用户务必谨慎投资,选择优质的头部项目参与。

此次 popcornswap 跑路事件出现两个问题:

1、矿工反馈,币安表示 USDT (通过 Tether)、BUSD 可以冻结,但 BNB 无法冻结,因此跑路项目开始大范围使用 BNB。

2、币安曾经表示,未来币安智能链社区会为部署上来的优质项目陆续提供审计服务,未来会有标示将审计与未审计完成的项目进行区分,以供用户参考。但是直到目前,该审计标示没有出现,可能是审计机构的昂贵费用与时长的阻碍。

币安此前的反馈是,BSC 是与以太坊一样的公链,不应该为上面的项目负责。何一曾经表示:币安智能链项目又不是币安发的,以太坊上挖矿赔钱怎么不找 V 神索赔?

但另一方面币安又在宣传帮助用户追回资产。例如自动做市商(AMM)的“土矿”项目 Wine Swap 跑路,币安安全团队帮助用户追回了损失资金的 99.9%,共计超过 34.4 万美元。币安也表示,像这样的追索往往需要耗费大量的人力物力,而往往这些追查的线索会中断,能像这次追讨成功可以说是万里无一。

由此币安就会陷入一个尴尬的境地:对于跑路项目究竟是管,还是不管?用户也会对此有疑问,币安究竟管不管?

BSC 上项目的逻辑是,发展好的项目 CZ 会转发推特,然后引起关注逐渐壮大。相较之下火币生态链中心化程度更高,会列出报名项目,跑路情况较少。币安智能链更多希望“不做裁判员”。

这也可以理解,币安智能链的国际化程度更高,对于习惯 DAO 社区文化的海外用户而言,他们可能更能理解 BSC 的做法。海外社区非常警惕中心化的管理,因此币安轻易冻结 BNB 资产,也可能给海外用户带来担忧。哪怕是针对黑客行为冻结,也需要先有警方的要求。

火币因为项目与用户绝大多数是中国人,这也决定了他们必须选择中心化的管控,据说火币对于跑路项目有详细的应急方案,几个小项目也第一时间得到了处理。

对于币安来说,BSC 上跑路情况确实有日渐严重的倾向,依靠制度治理可能是唯一的选择。但目前为止,我们还没有看到币安智能链制度上改进的动作。

参考币安智能链(BSC)的野望与尴尬:超越以太坊还是成为孙宇晨?

 

以下内容为 iNexusPro 独家授权吴说区块链发布,内容稍作编辑

土矿一般来讲,抽走资金一般这几个步骤:

1、通过高 APY 吸引你冲动梭哈(注意,很多鸡贼的土矿都是写 APR,看起来更高,用 APR 的土矿求稳可以直接关闭),毕竟高 APY 都是真金白银支撑的,收益这么高大户早来了,正所谓的收益越高,风险越大。

2、通过一些“所谓的”安全措施(timelock 等)让你觉得风险很低。

3、盗取资金之后马上换为非 erc 代币或者无法冻结的代币,然后等待混币机会逃走。

看到了这个步骤,你应该明白了,如果能够做到:

1、不开源的土矿一律不碰,不管他 APY 写得多么诱人

2、开源的土矿,如果要参与,一定是在 diff 合约,检查变量参数之后,少量资金参与。(然而可能还有风险,比如 popcornswap,会详解)

3、那么相信你能规避大部分风险,下面简单讲一下怎么 diff 合约,怎么检查参数,以及一些衍生的思考。

第一步:diff

这里以在线对比工具 https://www.diffchecker.com/ 为例

注意一点,diff 的合约需要是你真实要转币进去的合约地址(可以转非常少的量去拿地址)

首先拿到原版的 MasterChef 代码(这里以 pancakeswap 为例):

https://bscscan.com/address/0x73feaa1ee314f8c655e354234017be2193c9e24e#code

接着这里以 popcornswap 为例:

https://bscscan.com/address/0x584527ded17aceb3dc617c40b04e8fe9afc57096#code

分别吧代码复制到两边,开始 diff

这里我保存了 diff 结果,可以直接点这个 link:https://www.diffchecker.com/VqaCP3DK

像结果中字符串(名称等)的修改,或者 // 后的内容(注释)都可以忽略

币安智能链多项目跑路 PopcornSwap 卷走 4 万 BNB 交易所公链“尴尬”何解?

如上图这种,可以忽略

如果是原版添加的代码,土狗删除的,一般也不重要,重点是土狗和原版代码不同的地方:

币安智能链多项目跑路 PopcornSwap 卷走 4 万 BNB 交易所公链“尴尬”何解?

上图为关键差异,土狗修改了原版的 migrator 方法,还增加了个一个叫做 preUpgrade 的函数。

看到这里,如果你对合约一无所知,安全期间,就可以直接关闭页面保平安了。

这里简单分析一下差异,首先 migrate 方法,这个是 sushiswap 继承的代码,原版代码就有将池子里钱掏空的可能性(所以土狗如果有 migrate 方法,求稳就不要去玩)。

popcorn 这里,新的 preUpgrade 方法,是 public 的,代表所有人都能调用,就是一个非常可疑的点,理论上在 migrator 设置为恶意地址的时候能够让 migrator 掏空所有的钱。

第二步:检查变量

点击土狗合约的这个按钮:

币安智能链多项目跑路 PopcornSwap 卷走 4 万 BNB 交易所公链“尴尬”何解?

检查 migrator,owner 等变量:(owner 是核心

币安智能链多项目跑路 PopcornSwap 卷走 4 万 BNB 交易所公链“尴尬”何解?

可以看到 migrator 是 0,owner 是一个 timelock 地址,土狗的一种套路是,声称自己有 timelock,给出了合约地址,但 owner 并不是 timelock 的地址,那明显就是骗局了。

当然 timelock 合约,也可以做小动作,所以也需要做 diff 操作,这里他的 timelock 没有问题,就不赘述了

那么完成了上面两步,很多资深矿工可能会觉得,timelock 有的,合约变量没问题,虽然有代码存在风险,但是有 timelock 啊,没事,冲 tmd,对低级土狗而言,可能确实就无风险了,但很可惜,popcornswap 是一个略高级的土狗。看我下面分解盗币过程:

项目方通过调用:

https://bscscan.com/tx/0x38f75296e3343228c0309f8c99a24ca4f4812372f2b032f38ce25ac5a992b768

preUpgrade 方法,让自己的地址有了合约里 token 的 transferFrom 权限(简单理解为 uniswap 交易之前你需要 allow 合约花你的币,这里是 allow 自己花合约里的币)

看前面的代码可以发现,preUpgrade 确实又这个功能,但他只会给 migrator 这个权限,而 migrator 又是 0,修改 migrator 需要经过时间锁,那么他是怎么做到的呢?(这个问题其实也困扰了我一会)

答案是:项目方在部署合约后,加 timelock 之前,把 migrator 改成了自己的地址,并通过 preUpgrade 提前获取了里面所有 token 的 allowance,然后再改回 migrator,添加时间锁。

因为这些 tx 混在项目方添加池子的 tx 中,普通人根本不可能去检查一个池子之前的每一个 tx,所以 popcornswap 得以在 2 小时内盗取 2 mil 的代币。

这个作案手法也引起了我的思考,目前并没有有效的工具,能够查出一个合约地址里,token allow 给其他地址的情况,因此非常难发现问题。普通的用户,没有能力,也不太可能发现这个端倪,甚至我相信在本次事件中,一些对合约代码有所了解的土矿老司机也一并翻车。

后续思考

本次作案手法曝光之后,相信未来的土矿也很有可能利用类似的手法进行盗币,而对普通用户而言防不胜防,事实上最近 2 天 bsc 上就有 2 个矿翻车,金额还都不小。

作为交易所公链,不管是 bsc,还是 heco,他们的核心竞争力是什么?是去中心化吗?

我个人认为不是的。

bsc,heco 等,他们最大的优势应该是 1. 低手续费 2. 交易所公信力背书。

以 bsc 为例,作为一个类似 DPos 的设计公链,跨链桥非去中心化,以及上面的大部分资产都是币安发放的情况下,即使代码开源,谈何去中心化?

个人认为,反而应该反其道行之,引入类似 EOS 的仲裁机制,最大程度的保证用户在链上的的财产安全才是生存之道。

本文来自吴说区块链,本文观点不代表格时财经立场,转载请联系原作者;如有侵权,请联系编辑删除。

免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。

分享本页
返回顶部