DeFi 攻击解析:JIT 流动性攻击 vs 三明治攻击
<!--StartFragment-->
在去中心化交易所(DEX)中,存在各种 MEV(最大可提取价值)攻击手段。今天我们来聊两个最典型的:JIT(Just-In-Time)流动性攻击 和 三明治攻击(Sandwich Attack)。
本文面向小白,用最直观的方式讲清楚两者区别、原理以及危害。
一、三明治攻击
三明治攻击是最经典的 AMM 攻击手法之一,流程如下:
- 攻击者先买(Front-run)\ 攻击者看到大额用户交易即将执行,提前买入代币,将价格抬高。
- 用户执行交易\ 用户被迫在更高价格买入,滑点增加。
- 攻击者卖出(Back-run)\ 用户交易完成后,攻击者将代币高价卖出,赚取差价。
核心特点
- 攻击者是 主动交易者,通过操纵价格赚差价
- 利润完全依赖 用户交易帮忙推高价格
- 没有用户交易,攻击者自己操作无法盈利
- 用户的滑点损失就是攻击者的收益
小白类比
就像你去超市买一箱水,黄牛提前大量抢货,把价格推高,你只能高价买入,然后黄牛再把抢来的水高价卖掉赚钱。
二、JIT 流动性攻击(Just-In-Time)
JIT 攻击主要出现在 Uniswap v3,依赖 v3 的 集中流动性 特性。
攻击流程:
- 攻击者监控 mempool,发现大额 swap
- 在交易执行前瞬间 提供大量集中流动性
- 大额 swap 执行时,手续费大部分归攻击者
- 同一交易区块内立即撤走流动性
核心特点
- 攻击者是 流动性提供者(LP),而不是交易者
- 不操纵价格,不买卖代币
- 利润来自 手续费分成
- 主要针对 v3 的窄区间流动性,v2/v1 无法实现
三、三明治 vs JIT:本质区别
| 维度 | 三明治攻击 | JIT 攻击 |
|---|---|---|
| 攻击者身份 | 交易者 | 流动性提供者 |
| 目的 | 利用价格差赚取滑点 | 利用流动性赚取手续费 |
| 是否操纵价格 | 是 | 否 |
| 是否依赖用户交易 | 必须 | 不必须(只需大额 swap) |
| 特定于 v3 | 否 | 是 |
一句话总结:\ 三明治靠价格差赚钱,JIT靠手续费赚钱;三明治伤害用户,JIT伤害 LP。
四、常见误区
- “JIT会拉高价格吗?”\ 不会。LP 添加流动性不会改变池子的价格,只会增加深度。
- “三明治可以自己随便拉高再卖?”\ 不行。攻击者必须有用户交易帮忙把价格推高,否则自己操作必亏。
五、总结
- 三明治攻击:利用用户交易产生滑点,赚取差价
- JIT 流动性攻击:利用 v3 集中流动性,瞬间赚取手续费
- 两者都依赖 交易观察和 Mempool 监听
- 理解原理,有助于保护自己免受 MEV 影响
如果你是 DEX 开发者或者普通 DeFi 用户:
- 小心大额交易可能被三明治
- LP 在 v3 池子中提供流动性时要意识到 JIT 风险
- 可考虑设置滑点保护或使用 Flashbots 等私有交易池
这篇文章就整理到这里,读完你应该能清楚区分 三明治攻击 和 JIT 攻击,知道它们是怎么操作、谁赚钱、谁亏钱。
有什么疑问,欢迎在评论区留言讨论!
<!--EndFragment-->
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
区块链技术网
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。