火星链 火星链
Ctrl+D收藏火星链
首页 > AAVE > 正文

UNN:解析以太坊抢先交易原理及其解决方案

作者:

时间:1900/1/1 0:00:00

作为一般用户,可以通过设置较低的交易滑点和较高的Gas费来应对抢先交易。

本文旨在全面解析广泛存在于以太坊区块链上的攻击行为:Front-Running,通过对其原理的研究,寻找最有效的解决方案,最终帮助DeGate用户避免这一严重有损他们利益的攻击行为。

Front-Running和Mempool

简单来说,Front-Running是指在一笔正常交易等待打包的过程中,抢跑机器人通过设置更高Gas费用抢先完成攻击交易,以此攫取用户利益的攻击行为。而Mempool是一组已经广播到网络中并等待被打包进区块的以太坊交易,它是Front-Running可以实施的前提,抢跑机器人通过不断扫描Mempool中的交易,来分析发现可攻击的目标。下图是一个Mempool浏览器,可以通过设置各种筛选项订阅Mempool中的交易,并查看这些交易的全部详细信息。

在所有Front-Running中,最典型最具危害性的就是针对AMM交易的SandwichAttacks,除此以外还有针对套利、清算交易、闪电贷等利用系统漏洞获利的抢跑攻击,攻击者数量众多,且由自动化脚本控制,永远不知疲倦,因此任何有利可图的交易都会遭受他们的饱和攻击,几乎没有幸免的可能。

ENS将推出区块链原生的、可通过域名解析系统路由的顶级域名.box:6月7日消息,ENS开发者nick.eth发推称,ENS将推出区块链原生的、可通过域名解析系统路由的顶级域名.box。该域名系统中所有注册和转移都将在链上进行,NFT的所有者将同时拥有DNS和ENS域名。

据悉,.box域名可用于DID配置文件和钱包、去中心化的网站和消息传递、Web2网站和电子邮件、收藏与交易等。[2023/6/7 21:21:43]

接下来,我们重点对三明治攻击进行分析。

SandwichAttacks

真实攻击案例

首先我们来看一个真实的三明治攻击案例。

上图可见,三笔交易在同一个区块被打包,两笔攻击交易中间夹着一笔正常交易。其具体流程如下:

用户首先发起一笔正常交易,用237000.705USDC买入DG,设置GasPrice为40.5Gwei;

Beosin:Avalanche链上Platypus项目损失850万美元攻击事件解析:2月17日,据区块链安全审计公司Beosin旗下Beosin EagleEye安全风险监控、 预警与阻断平台监测显示,Avalanche链上的Platypus项目合约遭受闪电贷攻击,Beosin安全团队分析发现攻击者首先通过闪电贷借出4400万USDC之后调用Platypus Finance合约的deposit函数质押,该函数会为攻击者铸造等量的LP-USDC,随后攻击者再把所有LP-USDC质押进MasterPlatypusV4合约的4号池子当中,然后调用positionView函数利用_borrowLimitUSP函数计算出可借贷余额,_borrowLimitUSP函数会返回攻击者在MasterPlatypusV4中质押物品的价值的百分比作为可借贷上限,利用该返回值通过borrow函数铸造了大量USP(获利点),由于攻击者自身存在利用LP-USDC借贷的大量债务(USP),那么在正常逻辑下是不应该能提取出质押品的,但是MasterPlatypusV4合约的emergencyWithdraw函数检查机制存在问题,仅检测了用户的借贷额是否超过该用户的borrowLimitUSP(借贷上限)而没有检查用户是否归还债务的情况下,使攻击者成功提取出了质押品(4400万LP-USDC)。归还4400万USDC闪电贷后, 攻击者还剩余41,794,533USP,随后攻击者将获利的USP兑换为价值8,522,926美元的各类稳定币。[2023/2/17 12:12:32]

抢跑机器人检测到这笔有利可图的交易后,随即展开攻击,发起一笔买入交易,设定GasPrice为49.9Gwei,凭借Gas竞争机制成功抢跑用户的正常交易;

安全团队:Reaper Farm项目遭到攻击事件解析,项目方损失约170万美元:据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Reaper Farm项目遭到黑客攻击,成都链安安全团队发现由于_withdraw中owner地址可控且未作任何访问控制,导致调用withdraw或redeem函数可提取任意用户资产。攻击者(0x5636e55e4a72299a0f194c001841e2ce75bb527a)利用攻击合约(0x8162a5e187128565ace634e76fdd083cb04d0145)通过漏洞合约(0xcda5dea176f2df95082f4dadb96255bdb2bc7c7d)提取用户资金,累计获利62ETH,160万 DAI,约价值170万美元,目前攻击者(0x2c177d20B1b1d68Cc85D3215904A7BB6629Ca954)已通过跨链将所有获利资金转入Tornado.Cash,成都链安链必追平台将对被盗资金进行实时监控和追踪。[2022/8/2 2:54:19]

与此同时,机器人发出另一笔卖出交易,设置GasPrice同样为40.5Gwei,因为时间顺序的原因,紧贴着用户正常交易完成。

一次完美的抢跑攻击完成,算上手续费,机器人共赚取16448.012-16310.3-15.2-10.61=$111.9,而这种两笔攻击交易夹着一笔正常交易的攻击,就被形象的称为三明治攻击。

BitDNS入选火种源计划,将为BitCherry生态应用提供域名解析服务:据官方消息,2021年4月14日,BitDNS成为首批加入BitCherry分布式商业生态的合作伙伴。BitDNS将为BitCherry链上应用提供分布式域名解析服务,实现一键去中心化,帮助企业和个人用户更加便捷、安全的参与数字资产交易,管理链上价值数据信息。BitCherry将携手BitDNS打造去中心化的网络生态系统,建立安全便捷的链上分布式商业生态体系。[2021/4/14 20:18:34]

原理说明

为了更好的说明攻击原理,我们补充一些相关背景知识。

我们知道,现如今的主流DEX如Uniswap等,采用的都是AMM机制,其价格遵循恒定乘积公式。例如,在Uniswap中建立一个A代币与ETH的流动池,A数量为1000,ETH数量为100,则两者数量乘积为100000,当前A价格为0.1ETH。当Alice试图用10个ETH来池子里购买A时,他所得到的A的数量X,可以用下面的公式推导(注:为简化计算,以下均未考虑手续费):

\*=100000,X=90.9

这笔交易中,A的价格为10/90.9=0.11,相比于原来A的价格,价格滑点为:

/0.1\*100%=10%

一笔交易就让币价产生了10%的滑点,可见越是流动性差的池子,遇到大额交易,越是容易产生滑点。而如果,能在用户正常的大额交易前,抢先买入A,再在用户正常交易后,将刚买入的A卖出,就可以获得一笔不菲的收益。沿用刚才的例子,假设在Alice的交易前,Bob抢先花5个ETH购买A,然后在Alice的交易完成后,Bob再把之前买入的A卖出,我们看看会有什么样的结果。

动态 | 浙江大学携手剑桥大学发布区块链生态深层解析报告:近期,浙江大学互联网金融研究院携手剑桥大学新兴金融研究中心发布区块链生态深层解析报告《Distributed Ledger Technology Systems-A Conceptual Framework》的中文版——《分布式账本技术系统:一个概念框架》。浙大AIF副院长杨小虎指出,该报告不仅阐明了如何识别DLT系统,分析和比较现有的DLT系统,还通过六个实例为新系统设计提供有用的借鉴。[2018/8/17]

首先是Bob的抢跑交易:

(1000-X)\*(100+5)=100000,X=47.62

即,Bob用5ETH购得47.62个A

接下来是Alice的正常交易,注意此时流动池中A的数量变为952.38,ETH的数量变为105:

(952.38-X)\*(105+10)=100000,X=82.81

最后Bob卖出47.62个A的交易,此时流动性中A的数量为869.57,ETH的数量为115:

\*=100000,Y=5.97

通过这一次抢跑攻击,Bob净赚5.97-5=0.97个ETH,而Alice净亏90.9-82.81=8.09个A,Bob通过使Alice蒙受更大的滑点损失来获得自己的收益!

当然,实际的抢跑攻击会更复杂,攻击者需要进行更精密的计算,以求实现以下两个目标:

让用户的交易结果无限逼近用户自己设置的最大滑点,以求达到理论上的最大套利空间

在手续费竞争力和收益之间取得平衡,尽可能的在与其他机器人的竞争中获胜

我们用图表来更好的描述这一过程:

用户在A点,打算投入in_amount(user)个USDT购买ETH,这笔交易正常会把当前状态推向B,同时用户设置了最大滑点为B(max_slippage);

抢跑机器人监测到这笔交易,先于用户交易之前,进行了一笔in_amount(robot)个USDT的买入交易,将当前状态推到A';

用户的交易随后执行,达到其设置的最大滑点B(max_slippage);

抢跑机器人把步骤2中买入的ETH卖出,状态达到C点,得到out_amount(robot)个USDT

抢跑机器人获得收益out_amount(robot)-in_amount(robot)-手续费

解决方案

既然我们已经看到了Front-Running的杀伤力,那我们有什么办法阻止抢跑攻击呢?

作为一般用户,应对Front-Running可以有以下几种手段:

设置较低的交易滑点,比如0.1%,这会让抢跑机器人缺少可盈利的空间。?缺点:滑点过低导致大额交易十分容易失败,且失败的交易仍然需要支付高昂手续费。

提高gas费用,这会增加机器人的攻击成本。缺点:这同样也增加了自己的交易成本。

可以看出,以上解决方案都是无奈之举,且有各种不足,幸运的是,有很多团队认识到了Front-Running的危害性,并提出了不少有建设性的解决方案。首先通过对捕猎全过程的分析,我们可以得出结论,要实现Front-Running,需要几个要素:

Transaction公开性:可以在Mempool中获取交易的详细信息

以太坊交易执行机制:可以通过gas竞争的方式抢先完成交易

AMM交易曲线机制:恒定乘积机制可以造成较大滑点

那么反制手段就是分别在这几个要素上做文章。

Transaction公开性

既然机器人是通过分析Mempool中的交易来决定是否发起攻击,那么我们将交易信息直接加密,让机器人看不到或者看不懂不就好了?

社区中就有人提议使用零知识证明技术zk-SNARKs来达成上述目标,即运用zk-SNARKs将每笔交易的信息都加密隐藏起来,让机器人无从下手。

不过,目前该方案还不够成熟,存在需要消耗更高Gas费用和可能被利用来进行阻塞攻击,导致系统化整体liveness的缺陷。

以太坊交易执行机制

当前的以太坊交易执行机制是通过Gas竞争来完成的,即谁出的Gas费高,矿工就优先打包谁的交易,那么我们如果绕过这种机制,把交易发给矿工让其直接打包,就杜绝了抢跑机器人在中途攻击的可能性

所以一种类似于Layer0的方案也得到了一些应用,如星火矿池的Taichi服务,用户可以直接在MetaMask中设置Taichi的以太坊节点,这样交易就直接在没有出现在Mempool的情况下被打包了,但劣势是被打包的时效有一定的不确定性。

另外,如ArcherSwap类似理念的解决方案,构建了交易者和矿工之间的桥梁,交易者可以通过打赏的形式让矿工直接打包自己的交易,这就避免了被Front-Running的可能。虽然有那么点交保护费来避免被攻击的感觉,但也实实在在的降低了交易者的成本,而且有着不收取交易失败费用的优势。

AMM算法优化

在AMM机制下,大额交易产生过大的价格滑点,是Front-Running的利润空间,如果有一种AMM机制可以减少大额交易对后续交易价格的影响,就可以有效防止Front-Running攻击。早在2018年,Vitalik在以太坊技术社区中提供了一个方案,当发生兑换交易时,交易池价格不会立刻调整成真实价格,而是在若干分钟内,缓慢的趋向真实价格,这就好像交易池凭空多出了很多流动性一样,因此我们将这种技术称之为VitrualBalance技术。这种新机制,可大大压缩套利者的利润空间,有效防御Front-Running攻击,同时还可以增加流动性做市商的收益,可谓一举多得,1inch的mooniswap就是这个方案的一个实现版本。

增加流动性

此外,还有种思路,就是尽可能的加大交易池中特定价格区间的流动性,流动性越大,滑点越小,当流动性大到一定程度的时候,抢跑机器人就丧失了盈利空间,Uniswap的V3版本的聚焦流动性特性,就是在这方面做出的努力。

展望未来

我们有理由相信,在各个团队坚持不懈的努力之下,随着各种解决方案的持续演进,以及新一代AMM、以太坊二层等技术的相继落地,很快我们就可以为用户提供一个更公平更安全的链上交易环境。

撰文:DeGate

标签:RUNUNNFRONTONTRAL RUNE - Rune.GameSunny AggregatorFrontierCONT价格

AAVE热门资讯
加密货币:7大证据显示大量新人正涌入加密货币市场

作者|布劳克琴编辑?|门人??运营|小石头风清扬原标题:《新人入场加密货币?市场给出了这7大证据!》我们都知道,本轮牛市,企业机构已跑步入场.

1900/1/1 0:00:00
DAI:它来了它来了,AMM颠覆者Uniswap带着王炸V3版本来了

那么,期待已久的UniswapV3到底是什么呢?它和V2有何不同?当涉及到自动做市商领域时,这是否会改变游戏规则?它会直接在Layer2上启动吗?您将在本文中找到这些问题的答案.

1900/1/1 0:00:00
UNC:融资新闻丨Launch X获得60万美元融资资金,打造多链IDO Launchpad

2021年4月24,LaunchX,这个由MarshlandCapital,MagnusCapital和ValarenVentures领导的基于去中心化多链且基于治理的IDOLaunchpad.

1900/1/1 0:00:00
ROLL:从 zkSync 看以太坊 Layer 2 的机遇和挑战

.details.details-contp,p{word-break:normal;text-align:unset}pimg{text-align:center!important}Q1:最.

1900/1/1 0:00:00
BAGS:观察丨算力从中国转移北美对比特币会有何影响?

尽管大多数比特币挖矿仍位于中国,但有迹象表明如今该活动已经开始向其他地方转移。 据此前相关报道称,比特币最大矿池之一F2Pool联合创始人王纯透露,在2020年4月,中国代表的比特币算力已经不到.

1900/1/1 0:00:00
比特币:晚间必读5篇 | NFT和DEX 谁成就了谁?

1.9个链上指标判断BTC处于牛熊周期什么阶段在本文中,我们将探索一些精选的链上指标,这些指标可洞悉屯币者、投机者和矿工的情绪和宏观支出模式.

1900/1/1 0:00:00