Vitalik账户「被黑」发布钓鱼信息,这些资金骗取方式值得用户警惕
9 月 10 日,以太坊联合创始人 Vitalik Buterin X 平台(原推特)账户被黑客攻击,并且发布了一条钓鱼链接, 内容为一条关于 Danksharding 的纪念 NFT 免费领取链接。尽管这条推文还快被删除,但黑客还是盗走约 70 万美元资金。
此前 7 月, Uniswap 创始人 Hayden Adams 的 X 平台(原推特)账户同样被黑并发布了包含钓鱼链接的推文, 可见近期区块链生态中大量安全事件诸如钓鱼攻击依然频发。
此前,Beosin 已经对钓鱼攻击进行过详细的解读,大家可详细阅读: UNIBOT 爆火,如何防范 Telegram 机器人相关的钓鱼和诈骗?
签名就被盗?用过 Uniswap 的请警惕!揭秘 Permit 2 签名钓鱼
除了钓鱼攻击,还有哪些资金骗取方式值得用户警惕?近期,Beosin 团队发现跑路以及价格操控事件同样对用户的资金造成很大的损失。
随着区块链技术越来越成熟,代码层面的问题出现也越来越少,从而更倾向于骗局以及业务逻辑上出现的问题。本文我们盘点一下近期常见的资金安全问题,帮用户从根本上避免一些资金受骗。
最近发生的跑路诈骗等事件,操控者主要是通过合约后门、貔貅盘等方式进行资金骗取,而这类方式其实用户是可以避免的,主要是要了解合约运行方式以及代码原理,我们拿近期的项目来进行说明,并总结这类骗局的特点。
一、项目后门注意事项
1、特权地址修改余额
一般涉及骗局的项目都会有一个特权地址,该地址可以随意 mint、burn 或设置他人余额。这种项目存在跑路的风险,当用户使用了大量资金购买了项目代币后,项目方直接通过特权函数将价值币全部兑换出来,导致项目代币价值归零。
以 CUZK 项目代码为例:
CUZK 代币合约中存在后门,特权地址可以直接给自己账户设置超过总供应量的代币,如下代码:
ccvipaaaqqq()函数会给调用者添加巨量的 CUZK 代币,并且最后判断调用者是否为 ciyuAdmintmrr,该地址是合约初始化时创建者设置的地址(0x f 719)。
项目方通过调用 ccvipaaaqqq()函数,为自己(0x f 719)添加了巨量的代币。
随后,特权地址使用设置的代币将 pair 中 WBNB 全部兑换出来,导致 CUZK 币价归零。
2、隐藏式后门,间接添加余额
还有一些项目并没有直接操纵地址代币余额的功能,但是特权地址可以间接获取大量代币,从而将价值币全部兑换出来,导致代币价格归零。
以 BNB 链上 Flashmall 项目为例:
FlashMall 合约拥有一个 setPointRate 函数,用于设置兑换率,该函数仅有特权地址能调用。
本次跑路事件主要分为以下步骤:
设置兑换率->兑换->设置兑换率->兑换
以下为详细步骤:
1.特权地址设置率为 10000 。
2.0x 613 C 地址能将 MUSD 兑换为 10 倍的 MCoin。
3.特权地址设置率为 1000 。
4.0x 613 C 地址能将 MCoin 兑换为相同数量的 MUSD。
5.通过多次转换,0x 613 C 拥有了大量的 MUSD,最后将 USDT 全部兑换出来。
以下为 MCoin 与 MUSD 的兑换代码,数量由 pointRate 决定。
总结:合约是否拥有后门,主要看有无特权函数能对任意地址代币进行操控,或者是否有特权地址代币增发的逻辑函数。此外,如果是项目方拥有绝大部分流动性凭证,那么也可能出现跑路。用户可以通过查看合约是否放弃特权地址,或者特权地址是否为一个正常业务的合约地址来判断其风险程度,同时,查看流动性凭证是 EOA 账户拥有还是正常业务合约拥有。
二、貔貅盘项目骗局
这类项目特征主要体现在能购买项目代币,但是当用户想要卖出时,交易将报错,这类骗局合约代码的主要体现是,第一次代币转账时,将会设置一些合约状态,而之后便不能再进行转账,导致用户买入代币,将合约状态设置,之后便不能卖出。
以假冒 EDU 代币项目为例:
该项目合约地址0x 4749 ,为 EDU 同名项目。代币 owner(0x ac 15)在 EDU pair 0x E 3 f 2 地址中买卖代币,并且将持有代币发送给币安钱包和交易所,造成有很多人参与的假象(下图所示)。
如下代码,在进行第一次 transfer(买币)后,tokenGreylist[to](to 为用户地址)将设置为 true,但是由于代码中白名单地址状态未公开,转币函数无法二次调用,开关状态与白名单地址由 owner 控制,对于用户来说参与该项目默认状态下无法卖出代币。
总结:貔貅盘项目特点就是能买入不能卖出,通过查看 transfer 以及 transferfrom 实际逻辑,看有无相互限制的条件。有技术条件的可以本地模拟执行一下相关函数。