区块链新闻
-
全球化与合规双驱动:BYDFi正式加入韩国CODEVASP联盟
BYDFi加密货币交易所于2024年11月27日完成了里程碑式的合规突破—正式入驻韩国CODEVASP联盟。此举不仅大大提升了BYDFi在韩国市场的合规可信度,也展现了平台在国际化加密货币交易所合规领域上的持续努力。与此同时...
-
品牌营销狂欢,卡塔尔世界杯Candy Club准备怎么玩?
2022年卡塔尔世界杯倒计时不足一个月,各大品牌今年的营销大战已提前开始,先比赛一步进入火热的“备战”状态。 CandyClub.io,全球首家加密币社交在线游戏平台,以自己独特的方式加入到这场世界杯商业狂欢,推出...
-
MPC引爆信息安全全生态
区块链是一种链式结构,是将数据块遵循时间顺序组合并与密码学、共识机制、智能合约等技术结合所形成的一种去中心化的公共账簿技术。区块链技术极大限度弥补了传统技术数据容易被篡改盗用和真实性不足等问题,可以...
区块链应用创新
-
ATK全球震撼开启,文娱产业重获新生
2020年初,随着一场新冠肺炎的全球蔓延,实体行业遭遇经营压力和瓶颈。然而,疫情之下,区块链行业却逆势增长,有统计数据显示,2020年2月,全球披露的区块链应用项目明显增多,环比增长27.6%。区块链技术应用的...
区块链技术创新
-
南卡罗来纳州参议院将区块链视为关键的新兴技术
南卡罗来纳州参议院通过了一项决议,承认区块链技术的潜力。 该州对新兴技术的新推动 该法案被称为“参议院决议案,以承认新兴的区块链技术的重要性,并呼吁南卡罗来纳州的居民加入以鼓励在我们州...
DeFi之道丨以太坊黑暗森林的一次猎杀:套利机器人惨遭套利130 ETH
发布时间:2021/03/23 区块链产业 浏览:271
注:针对近期频繁发生的以太坊三明治套利交易(sandwich trading),开发者CodeForcer创建了一种名为“沙门氏菌”(Salmonella)的ERC20诱饵代币,通过这种方式,其在24小时内实现盈利130 ETH,而这也告诉了我们关于以太坊网络Mempool黑暗森林的对抗性。

以下是CodeForcer撰写的内容:
那些追踪以太坊mempool行动的人已意识到了三明治交易的突然兴起,对于不了解这一概念的读者来说,三明治交易是一种非常有趣的策略,其原理就是在受害者交易前后进行交易,并通过产生的滑点实现套利。
比方说,当有人进行一笔资产交易,套利者便抢在他之前购买同一资产(人为地抬高币价),然后等到对方成功买入后,套利者再卖出后即可获利。
这种策略在过去是非常高风险的,因为以太坊无法保证交易一定成功,mempool是一个很有趣的地方,但它并不是一个安全之地。
然而,随着FlashBots等MEV(矿工可提取价值)服务的兴起,这使得交易者可以创建一些“三明治包”(sandwich bundles),其中3笔交易要么全部被执行,要么都不执行。与此同时,矿工交易团队的活动也在增长,他们将“三明治包”直接纳入到自己挖得的区块。
这两种创新的结合,就使得三明治交易者可以进行一些“无风险”的套利活动,这让很多人陷入了兴奋的情绪当中。
但实际上,“无风险”并不是真的没有风险。
为了向大家说明在mempool中玩游戏的风险,我演示了一种新的称为“沙门氏菌”(Salmonella)的新交易策略,它涉及到利用通用的抢跑交易设置。三明治交易的目的是利用他人交易造成的滑点来获利,而这种策略的目的是惩罚剥削者。
对区块链进行的快速分析显示,目前一个名为“Ethermine”的团队执行了市场上大部分的三明治交易,在确定了最初的目标后,我开始分析他们的设置。
在撰写本文时,Ethermine的设置相当基础,其依靠的是Uniswap router 来执行交易,而交易历史显示Ethermine的大部分交易都属于revert交易,其智能合约本身也持有各种失败交易的代币,考虑到这些之后,我开始着手创建我的Salmonella合约。
Salmonella合约的前提非常简单,它是一个常规的ERC20代币,其行为与正常用例中的任何其他ERC20代币完全相同。但是,它有一些特殊的逻辑来检测除指定所有者以外的其他人何时在进行交易,在这些情况下,它只返回指定金额的10%。
下面就是“有毒”的transfer函数:
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
if (sender == ownerA || sender == ownerB) {
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
} else {
_balances[sender] = senderBalance - amount;
uint256 trapAmount = (amount * 10) / 100;
_balances[recipient] += trapAmount;
}
emit Transfer(sender, recipient, amount);
}
我部署了Salmonella合约,然后建立了一个包含Salmonella和以太坊的简单Uniswap池子。然后,我用二分检索法复制了三明治交易的检测数学,创建了一系列诱饵交易,使得Ethermine和其他三明治交易者会认为这是一个有趣的机会。
最后,我编写了一个执行架构,使我能够快速取消交易、更改gas价格和重置陷阱Uniswap池的状态。
在喝了几杯浓咖啡之后,我开始工作,发出了一系列诱饵交易,谨慎地将价格定在略低于市场gas的水平,以保持交易在mempool中,但如果价格开始下降,我就取消掉交易。
不到几个小时的时间,我就遇到了第一个目标,并从其机器人那里掠夺了68 ETH,又过了几个小时后,我又从他们的合约中捞走了35 ETH。
过了一夜时间之后,我浏览了一下我的Salmonella合约,结果发现自己的实验清空了另外17个三明治交易合约,当然资金量都要比Ethermine要少得多。
我继续执行了这个策略几天,一路上又清空了一堆三明治交易合约,但随着合约部署者调整他们的设置以更好地检测我的有毒代币之后,我的alpha策略很快就失效了。
总而言之,这是一个有趣的实验,我现在把它作为一个警告呈现给社区。成为一名DeFi堕落者是很有趣的,但在进行交易时你一定要小心,因为这个游戏是高度对抗性的。
Mempool见!