﻿---
title: "夹击攻击"
description: "说明搜索者如何在待处理兑换前后插入交易、恶化用户成交结果，并从交易排序中提取价值。"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 夹击攻击

> 仅供教育参考，不构成安全或投资建议。滑点控制与私有路由可降低夹击风险，但不能保证成交质量、纳入区块、最终性或追回损失。

<a id="answer"></a>

## 直接答案

夹击攻击是一种有害的最大可提取价值行为：攻击者在用户兑换前紧接着放入一笔交易，并在其后再放入一笔。第一笔交易把资金池价格推向不利于用户的方向，用户以更差汇率成交，最后一笔交易则按部分由用户订单造成的价格平掉攻击者仓位。

攻击成立需要攻击者提前看到用户意图或拥有排序优势，订单须产生足够价格影响，而且用户的执行限制仍允许兑换成功。它最常见于自动做市商兑换，但更广泛的风险是：任何可预测的状态变化，只要排序能让他人提取价值，就可能受影响。

<a id="mechanism"></a>

## 工作原理

用户签署并广播兑换。若详细信息在纳入区块前进入公开交易池或其他可观察订单流，搜索者便可解码资产、数量、路径、最低输出和截止时间，并模拟不同交易顺序。

对于 AMM 资金池中的买入，搜索者先行买入。该抢跑交易改变储备并提高用户的成交价格。只要结果仍满足用户的最低输出条件，用户随后会获得少于交易前报价的输出代币。搜索者再在用户之后卖出，通过尾随交易捕获部分价格变动。

总回款不等于利润。攻击者还须支付两次兑换费、Gas 或构建者费用，并承担失败尝试和库存风险。竞争、其他交易、用户兑换回滚或区块顺序变化都可能使整组交易亏损；夹击并非天然原子化，也不保证成功。

滑点保护限制的是可接受的最差输出，并不阻止排序。容忍度过宽会给不利成交留下更多空间，过紧则可能在波动中让正常兑换回滚。应用和集成合约应执行基于当前报价、经用户认可的最低输出和适当截止时间，不能使用零值或陈旧的硬编码值。

私有提交、受保护订单流、批量拍卖、基于意图的执行和拆单在某些系统中可降低暴露。保护效果取决于哪些中间方能看到订单、构建者覆盖、回退行为、流动性、费用和实现方式；“私有”或“MEV 保护”标签并非通用保证。

<a id="example"></a>

## 示例

用户提交一笔可见兑换，准备从 AMM 资金池用代币 A 买入代币 B。搜索者模拟后发现，订单足以推动资金池价格，而用户设置的最低输出也容许价格向不利方向变动后继续成交。

搜索者先买入代币 B，用户随后以恶化后的汇率买入，搜索者紧接着卖出代币 B。用户仍收到不低于签名时设定的最低数量，却少于之前的报价；搜索者只能保留扣除兑换费、排序费用和执行成本后的余额。

<a id="risks"></a>

## 风险

用户受到的直接损害是成交更差、实际滑点更高。在会对失败执行收费的链和交易设计中，兑换回滚后还可能消耗 Gas。流动性薄弱、可见大单、宽松限制、市场波动和可预测路径会增加暴露，但不存在一个能证明攻击必然发生的单一阈值。

缓解措施也有取舍。拆成小单可能增加总费用或泄露重复策略；严格限制会增加回滚；私有路由带来信任、审查、日志和回退问题；受保护界面也可能只覆盖部分链或路径。应核验签名中的最低输出、截止时间、路径、端点政策、回执和所需最终性，而不能只相信保护标识。

<a id="misconceptions"></a>

## 常见误区

- **每次不利价格变动都是夹击攻击。** 正常价格影响、市场波动、路由变化和套利也会使成交偏离报价；判断夹击需要交易排序证据。
- **攻击者只是从钱包里偷走代币。** 典型夹击是在用户授权兑换前后改变资金池状态，并不要求攻击者的交易直接从用户钱包转出资产。
- **设置任意滑点容忍度就能阻止攻击。** 最低输出只能限制可接受的恶化程度，搜索者仍可能优化夹击，使兑换贴近该边界成功。
- **私有提交会消除 MEV。** 它可对公开池隐藏订单，但 RPC 运营者、中继、构建者、求解器或公开回退仍可能观察或影响订单。
- **成功回执证明成交公平。** 成功只证明合约条件通过，不证明用户获得了最佳可用价格或避开了有害排序。

<a id="related"></a>

## 相关主题

- [自动做市商](/zh-cn/crypto/amm/)
- [抢跑](/zh-cn/crypto/front-running/)
- [最大可提取价值](/zh-cn/crypto/mev/)
- [私有交易 RPC](/zh-cn/crypto/private-transaction-rpc/)
- [去中心化交易所](/zh-cn/crypto/dex/)

<a id="sources"></a>

## 来源

- [Maximal extractable value (MEV)](https://ethereum.org/developers/docs/mev/) - Ethereum.org (accessed: 2026-08-21)
- [What is a sandwich attack?](https://support.uniswap.org/hc/en-us/articles/19387081481741-What-is-a-sandwich-attack) - Uniswap Labs (accessed: 2026-08-21)
- [SCWE-090: Missing Slippage Protection in Automated Token Swaps](https://scs.owasp.org/SCWE/SCSVS-CODE/SCWE-090/) - OWASP Smart Contract Security (accessed: 2026-08-21)

Source: https://wiki.fcontext.com/zh-cn/crypto/sandwich-attack/index.mdx
