MEV·Front-running·Sandwich Attack의 차이 총정리
DEX나 디파이(DeFi)를 공부하다 보면 자주 등장하는 세 가지 용어가 있습니다.
MEV
Front-running
Sandwich Attack
이 세 용어는 서로 관련이 깊기 때문에 같은 의미처럼 느껴질 수 있습니다.
하지만 정확하게는 범위가 다릅니다.
가장 쉽게 정리하면 다음과 같습니다.
MEV = 거래 순서를 이용해 추가 가치를 추출하는 더 넓은 개념
Front-running = 다른 사람의 거래보다 먼저 자신의 거래를 넣는 방식
Sandwich Attack = 피해자의 거래 앞뒤에 공격자의 거래를 배치하는 공격
즉, Sandwich Attack은 Front-running을 포함하는 대표적인 MEV 전략 중 하나로 볼 수 있습니다. OWASP도 2026년 기준으로 예측 가능한 거래 순서를 통해 발생하는 MEV 사례로 sandwich attack, back-running, liquidation front-running 등을 들고 있습니다.
이번 글에서는 MEV, Front-running, Sandwich Attack이 각각 무엇인지, 실제 DEX 거래에서는 어떤 순서로 발생하는지, 사용자가 왜 예상보다 불리한 가격으로 거래할 수 있는지를 숫자를 이용해 쉽게 설명해보겠습니다.
핵심부터 정리하면
- MEV: 가장 넓은 개념
- Front-running: 피해 거래보다 먼저 거래를 넣음
- Back-running: 피해 거래 직후에 거래를 넣음
- Sandwich Attack: Front-running + 피해자 거래 + Back-running
- 슬리피지 허용범위가 지나치게 크면 sandwich attack의 피해가 커질 수 있음
MEV란 무엇일까?
MEV는 일반적으로 Maximal Extractable Value의 약자로 사용됩니다.
블록에 들어가는 거래의
- 포함 여부
- 제외 여부
- 거래 순서
등을 활용해 일반적인 블록 보상이나 수수료 외에 추가적으로 얻을 수 있는 가치를 의미합니다.
쉽게 표현하면 블록체인에서는
어떤 거래가 먼저 실행되고 어떤 거래가 나중에 실행되느냐
에 따라 돈을 벌 수 있는 기회가 생길 수 있습니다.
바로 이 거래 순서의 경제적 가치를 넓게 MEV라고 부릅니다.
Ethereum 공식 자료도 거래를 앞이나 뒤에 배치해 가치를 추출하는 front-running과 back-running을 MEV의 사례로 설명합니다.
왜 거래 순서에 가치가 생길까?
중앙화거래소에서도 주문 순서는 중요합니다.
하지만 퍼블릭 블록체인에서는 사용자가 제출한 거래가 블록에 포함되기 전에 공개적으로 관찰될 수 있는 구조가 존재합니다.
Ethereum의 공개 멤풀을 예로 들면 거래가 확정되기 전에 다른 참여자가 거래 내용을 확인할 수 있습니다.
최근 Ethereum 개선안에서도 공개 멤풀에서 거래 내용이 주문되기 전에 노출되는 점이 front-running, sandwiching, back-running 같은 MEV 문제의 원인이 될 수 있다고 설명합니다.
예를 들어 누군가 곧
100 ETH를 대량 매수
하려는 거래를 제출했다고 가정해보겠습니다.
이 거래가 실행되면 ETH 가격이 올라갈 가능성이 있습니다.
다른 참여자가 이 거래를 미리 보고 피해자의 거래보다 먼저 ETH를 산다면 가격 상승에서 이익을 얻을 수 있습니다.
이것이 거래 순서가 경제적 가치를 만드는 기본 원리입니다.
멤풀이란 무엇일까?
사용자가 블록체인 거래를 전송했다고 해서 즉시 확정되는 것은 아닙니다.
거래는 블록에 포함되기 전 일정한 대기 상태에 있을 수 있습니다.
이를 일반적으로 Mempool, 멤풀이라고 부릅니다.
쉽게 말하면
아직 블록에 들어가지 않은 거래들의 대기 공간
이라고 이해하면 됩니다.
공개 멤풀에서는
- 어떤 토큰을 거래하는지
- 거래금액이 얼마인지
- 어떤 스마트컨트랙트를 호출하는지
등의 정보가 관찰될 수 있습니다.
MEV 검색자(Searcher)는 이러한 거래를 분석해 수익 기회를 찾을 수 있습니다.
MEV는 모두 공격일까?
아닙니다.
MEV 자체를 모두 악의적인 공격이라고 볼 수는 없습니다.
예를 들어 두 DEX 사이에 가격 차이가 발생했다고 가정해보겠습니다.
DEX A:
ETH = $3,000
DEX B:
ETH = $3,020
누군가 A에서 ETH를 사고 B에서 팔면 차익을 얻을 수 있습니다.
이런 차익거래는 두 시장의 가격을 다시 비슷하게 만드는 기능을 할 수도 있습니다.
또 청산 대상이 된 담보대출 포지션을 찾아 정상적으로 청산하는 것 역시 프로토콜 운영에 필요한 역할일 수 있습니다.
따라서 MEV에는 시장에 기능적으로 도움이 되는 활동도 있고, 사용자의 거래에서 가치를 빼앗는 형태도 존재합니다.
Front-running이란 무엇일까?
Front-running은 다른 사용자의 거래가 실행되기 전에 그 거래를 보고 자신의 거래를 앞에 배치하는 행위를 의미합니다.
예를 들어 사용자가 DEX에서 Token A를 대량 매수하려고 합니다.
공격자가 이를 발견합니다.
피해자 거래가 실행되면 Token A 가격이 상승할 것으로 예상됩니다.
공격자는 피해자보다 먼저 Token A를 매수합니다.
그 이후 피해자의 대형 매수가 실행되면서 가격이 올라갑니다.
공격자는 상승한 가격에서 이익을 얻을 수 있습니다.
OWASP는 front-running 취약성을 공격자가 멤풀에서 거래를 보고 먼저 거래를 실행해 가격을 움직이고, 피해자가 더 높은 가격에서 체결되거나 거래가 실패하게 만드는 구조로 설명합니다.
Front-running 실제 사례
가상의 DEX에서 Token A의 현재 가격이
100 USDC
라고 가정해보겠습니다.
사용자 김씨가
10만 USDC 규모의 Token A 매수
거래를 제출했습니다.
DEX의 유동성이 충분히 깊지 않아 이 거래가 실행되면 Token A 가격이
100 USDC → 105 USDC
정도로 올라갈 수 있다고 가정하겠습니다.
Searcher가 김씨의 거래를 발견합니다.
그리고 김씨보다 먼저 Token A를 100 USDC 수준에서 매수합니다.
이후 김씨의 대규모 매수가 실행되면서 가격이 105 USDC까지 상승합니다.
Searcher는 이후 Token A를 매도해 차익을 얻을 수 있습니다.
이 경우 김씨는 처음 예상했던 것보다 더 높은 평균가격에 Token A를 사게 될 수 있습니다.
Back-running은 무엇일까?
Back-running은 Front-running과 반대입니다.
다른 사용자의 거래가 실행된 직후 자신의 거래를 배치하는 방식입니다.
예를 들어 대규모 거래 때문에 DEX 가격이 일시적으로 다른 시장보다 높아졌다고 가정해보겠습니다.
Searcher가 해당 거래 직후에 차익거래를 실행해 가격차이를 이용할 수 있습니다.
즉,
Front-running → 앞에서 거래
Back-running → 뒤에서 거래
입니다.
Back-running도 MEV의 한 형태가 될 수 있지만 항상 피해자를 직접 공격하는 구조라고 볼 수는 없습니다.
Sandwich Attack이란 무엇일까?
Sandwich Attack은 이름 그대로 피해자의 거래를 공격자의 두 거래 사이에 끼워 넣는 방식입니다.
구조는 다음과 같습니다.
공격자의 선행 매수
↓
피해자의 매수
↓
공격자의 후행 매도
피해자의 거래가 공격자의 두 거래 사이에 들어가기 때문에 샌드위치 공격이라고 부릅니다.
즉,
Front-running + Victim Transaction + Back-running
구조입니다.
OWASP 역시 사용자의 대규모 스왑이 예측 가능한 가격변화를 만들 때 공격자가 거래 앞뒤에 자신의 거래를 배치해 가치를 추출하는 것을 대표적인 sandwich attack으로 설명합니다.
Sandwich Attack 실제 구조
Token A의 가격이
100 USDC
라고 가정해보겠습니다.
피해자는 100,000 USDC로 Token A를 대량 매수하려고 합니다.
공격자는 피해자의 거래를 멤풀에서 발견합니다.
1단계: 공격자가 먼저 매수
공격자가 먼저 Token A를 대량 매수합니다.
가격이
100 → 102 USDC
로 상승했다고 가정하겠습니다.
2단계: 피해자 거래 실행
피해자의 10만 USDC 매수가 실행됩니다.
이미 가격이 102 USDC까지 올라간 상태에서 시작하기 때문에 피해자는 원래 예상했던 것보다 적은 토큰을 받습니다.
피해자의 거래 때문에 가격이 다시
102 → 106 USDC
까지 올라갔다고 가정하겠습니다.
3단계: 공격자가 매도
공격자는 앞에서 매수한 Token A를 106 USDC 부근에서 매도합니다.
공격자는 피해자의 대규모 매수가 만든 가격상승을 이용해 이익을 얻습니다.
피해자는 그만큼 더 불리한 체결가격을 부담합니다.
샌드위치 공격 순서를 표로 보면
| 거래 순서 | 주체 | 행동 | 예시 가격 |
|---|---|---|---|
| 1 | 공격자 | Token A 선매수 | $100 → $102 |
| 2 | 피해자 | 대규모 Token A 매수 | $102 → $106 |
| 3 | 공격자 | Token A 매도 | 약 $106 |
공격자의 첫 번째 거래가 Front-run이고,
마지막 거래가 Back-run입니다.
이 두 거래 사이에 피해자의 거래가 끼어 있기 때문에 Sandwich Attack입니다.
피해자는 실제로 얼마나 손해를 볼까?
예를 들어 피해자가 처음 DEX 화면에서
Token A = 100 USDC
라고 보고 10,000 USDC를 스왑한다고 가정해보겠습니다.
이론적으로는
100개
를 받을 것으로 예상할 수 있습니다.
하지만 공격자의 선행 거래로 가격이 올라 실제 평균 체결가격이
103 USDC
가 되었다고 가정해보겠습니다.
실제 수령량은
10,000 ÷ 103
≈ 97.09개
입니다.
원래 예상한 100개보다 약
2.91개
적습니다.
단순 비율로 약 2.9% 차이가 발생한 셈입니다.
슬리피지가 샌드위치 공격과 연결되는 이유
앞서 DEX 슬리피지를 설명할 때 Slippage Tolerance라는 설정을 살펴봤습니다.
이 설정은 사용자가 예상가격에서 어느 정도까지 불리하게 움직여도 거래를 실행할지 결정합니다.
예를 들어 예상수령량이
100 Token A
이고 슬리피지를 5%로 설정하면 최소수령량이 대략
95 Token A
수준이 될 수 있습니다.
공격자는 거래가 실패하지 않는 범위 안에서 피해자의 체결가격을 최대한 불리하게 만들려고 시도할 수 있습니다.
따라서 지나치게 넓은 슬리피지 허용치는 공격자가 활용할 수 있는 범위를 키울 수 있습니다.
OWASP도 자동 토큰 스왑에서 최소 수령량을 적절하게 설정하지 않으면 front-running이나 sandwich attack 환경에서 사용자가 예상보다 훨씬 적은 토큰을 받을 수 있다고 경고합니다.
슬리피지를 0%로 설정하면 공격을 막을 수 있을까?
그렇게 단순하지 않습니다.
슬리피지를 지나치게 낮게 설정하면 작은 가격변화에도 거래가 실패할 수 있습니다.
특히 가격 변동성이 높거나 네트워크가 혼잡하면 거래를 제출한 순간과 실제 실행되는 순간 사이에 정상적인 가격변화가 발생할 수 있습니다.
따라서
슬리피지를 너무 높게 설정 → 불리한 체결 위험 증가
슬리피지를 너무 낮게 설정 → 거래 실패 가능성 증가
라는 균형이 존재합니다.
MEV Searcher란 무엇일까?
MEV 기회를 전문적으로 탐색하는 프로그램이나 참여자를 흔히 Searcher라고 부릅니다.
Searcher는 블록체인 상태와 대기거래 등을 분석해
- 차익거래
- 청산
- Front-running
- Back-running
- Sandwich Attack
등의 기회를 찾을 수 있습니다.
검색 과정은 대부분 자동화되어 있기 때문에 사람이 화면을 보면서 거래버튼을 누르는 방식과는 다릅니다.
수익기회가 발견되면 프로그램이 매우 빠르게 거래를 생성합니다.
Validator가 직접 공격하는 것일까?
항상 그렇지는 않습니다.
MEV 생태계에는 여러 역할이 존재할 수 있습니다.
예를 들어
- 사용자
- Searcher
- Block Builder
- Validator 또는 Proposer
등이 서로 다른 역할을 담당할 수 있습니다.
Searcher가 수익성 있는 거래 묶음을 구성하고 블록빌더가 거래순서를 정한 블록 후보를 만드는 구조가 사용될 수도 있습니다.
따라서
MEV = 검증자가 직접 모든 공격을 실행한다
라고 이해하면 지나치게 단순화한 설명입니다.
Gas Fee를 높이면 Front-running을 할 수 있을까?
과거에는 높은 가스비를 제시해 자신의 거래가 먼저 포함되도록 경쟁하는 방식이 많이 언급되었습니다.
하지만 현대 Ethereum의 블록 구축은 훨씬 복잡합니다.
거래 순서는 단순히
“가스비가 가장 높은 거래부터 무조건 실행”
되는 구조라고 보면 정확하지 않습니다.
Searcher와 Builder 사이의 거래, private order flow 등 여러 방식이 존재할 수 있습니다.
따라서 Front-running의 핵심은 가스비 하나가 아니라 거래 순서에 영향을 주어 다른 거래보다 유리한 위치를 확보하는 것입니다.
MEV와 일반적인 차익거래는 무엇이 다를까?
차익거래 역시 MEV가 될 수 있습니다.
예를 들어
DEX A: ETH $3,000
DEX B: ETH $3,020
이라면 A에서 사고 B에서 파는 거래를 통해 가격차이를 줄일 수 있습니다.
이런 차익거래는 시장 효율성을 높이는 측면도 있습니다.
반면 Sandwich Attack은 특정 사용자의 대규모 거래를 발견하고 그 사용자의 체결가격을 악화시켜 이익을 추출합니다.
따라서 둘 다 MEV의 범주에 들어갈 수 있지만 사용자에게 미치는 영향은 다릅니다.
Liquidation MEV란 무엇일까?
디파이 대출에서는 담보가치가 일정 수준 아래로 떨어지면 포지션을 청산할 수 있습니다.
청산을 실행하는 사람에게 일정한 보상이 주어지는 경우가 있습니다.
여러 Searcher가 동시에
“누가 먼저 이 포지션을 청산할 것인가?”
를 놓고 경쟁할 수 있습니다.
이런 청산기회에서 발생하는 가치 역시 MEV로 볼 수 있습니다.
정상적인 청산은 디파이 대출시스템을 유지하기 위해 필요한 기능이기도 합니다.
NFT에서도 Front-running이 발생할 수 있을까?
가능합니다.
예를 들어 희귀 NFT가 시장가격보다 매우 싸게 등록됐다고 가정해보겠습니다.
사용자가 이를 발견하고 매수거래를 제출합니다.
다른 참여자가 대기거래를 보고 먼저 매수할 수 있는 구조라면 거래 순서를 둘러싼 경쟁이 발생할 수 있습니다.
스마트컨트랙트의 특정 보상이나 토큰 민팅에서도 비슷한 문제가 생길 수 있습니다.
즉, Front-running은 DEX 토큰 스왑에만 국한되는 개념이 아닙니다.
MEV·Front-running·Sandwich Attack 차이를 한눈에 정리
| 구분 | MEV | Front-running | Sandwich Attack |
|---|---|---|---|
| 범위 | 가장 넓음 | MEV 기법 중 하나 | Front-running을 포함한 특정 공격 |
| 핵심 | 거래순서에서 가치 추출 | 다른 거래보다 먼저 실행 | 피해자 앞뒤로 거래 배치 |
| 거래수 | 상황마다 다름 | 일반적으로 선행 거래 | 공격자 2개 + 피해자 거래 |
| 사용자 피해 | 있을 수도, 없을 수도 있음 | 발생할 수 있음 | 직접적인 가격 피해 가능 |
| 대표 사례 | 차익거래·청산·샌드위치 | 먼저 매수 | 선매수 → 피해자 → 후매도 |
이를 한 문장으로 정리하면
Sandwich Attack은 Front-running과 Back-running을 조합한 대표적인 MEV 공격입니다.
Sandwich Attack은 블록체인 해킹일까?
엄밀히 말하면 일반적인 의미의 시스템 침입과는 다릅니다.
공격자가 피해자의 개인키를 훔치거나 블록체인을 해킹하지 않아도 발생할 수 있습니다.
스마트컨트랙트와 블록체인이 허용하는 정상적인 거래를 사용하지만 거래 순서를 악용해 피해자의 체결가격에서 가치를 추출하는 것입니다.
그래서 MEV 문제는 단순한 코드 보안문제만이 아니라 블록체인의 시장구조와 거래설계 문제이기도 합니다.
사용자는 MEV를 어떻게 줄일 수 있을까?
MEV 위험을 완전히 제거하기는 어렵지만 몇 가지 방법으로 노출을 줄일 수 있습니다.
슬리피지 허용범위를 불필요하게 크게 설정하지 않는다
필요 이상의 슬리피지를 허용하면 불리한 가격까지 거래가 체결될 수 있습니다.
유동성이 충분한 풀을 이용한다
같은 주문이라도 유동성이 깊으면 가격충격이 작아질 수 있습니다.
큰 주문은 Price Impact를 확인한다
거래금액이 풀 규모에 비해 지나치게 크면 공격 여부와 별개로 체결가격 자체가 크게 악화될 수 있습니다.
MEV 보호 기능을 제공하는 거래방식을 확인한다
일부 지갑이나 DEX는 거래내용을 공개 멤풀에 그대로 노출하지 않는 방식이나 private transaction 서비스를 제공할 수 있습니다.
예상수령량과 최소수령량을 확인한다
스왑 버튼을 누르기 전에 최종적으로 받을 토큰 수량을 확인하는 것이 중요합니다.
Private Mempool은 어떻게 도움이 될까?
일반 공개 멤풀에 거래가 노출되지 않으면 Searcher가 피해자의 거래를 미리 보고 Sandwich Attack을 구성하기 어려워질 수 있습니다.
그래서 거래내용을 특정 블록빌더에게 비공개 방식으로 전달하는 Private Transaction 방식이 MEV 완화수단 중 하나로 사용될 수 있습니다.
Ethereum 관련 제안들에서도 거래 주문 단계에서 내용을 숨기는 것이 front-running과 sandwiching을 줄이는 핵심 아이디어 중 하나로 논의되고 있습니다.
다만 private order flow도 신뢰, 중앙화, 서비스 가용성 등의 별도 고려사항이 있을 수 있습니다.
Commit-Reveal은 무엇일까?
스마트컨트랙트 차원에서 Front-running을 줄이는 방법 중 하나가 Commit-Reveal 방식입니다.
사용자가 처음부터 거래내용을 공개하지 않고 암호학적인 형태의 값만 먼저 제출합니다.
나중에 실제 거래내용을 공개합니다.
공격자는 처음 단계에서 사용자가 무엇을 하려는지 알기 어려우므로 거래를 미리 앞질러 실행하기 어려워집니다.
OWASP도 front-running 방어책 가운데 하나로 commit-reveal 방식을 제시하고 있습니다.
Sandwich Attack과 슬리피지의 피해를 구분해야 한다
사용자가 예상보다 적은 토큰을 받았다고 해서 모든 경우가 Sandwich Attack은 아닙니다.
일반적인 슬리피지도 발생할 수 있습니다.
예를 들어
- 거래금액이 너무 큼
- 유동성이 적음
- 거래 중 시장가격이 변함
- 다른 정상적인 거래가 먼저 실행됨
등으로 가격이 달라질 수 있습니다.
Sandwich Attack인지 확인하려면 온체인 거래내역에서 피해 거래의 바로 앞과 뒤에 같은 주소나 연관된 거래가 존재했는지 등을 분석해야 합니다.
따라서
슬리피지 발생 = 반드시 공격당함
은 아닙니다.
실제 거래에서 확인하면 좋은 항목
DEX를 이용하기 전에는 다음 항목을 확인해보는 것이 좋습니다.
- Price Impact
- Slippage Tolerance
- 예상 수령량
- 최소 수령량
- 유동성 규모
- 스왑 수수료
- 네트워크 가스비
- MEV 보호 또는 private transaction 옵션 여부
특히 신규 토큰이나 유동성이 작은 풀에서 큰 금액을 거래할 때는 더욱 주의해야 합니다.
결론: MEV가 큰 개념이고 Sandwich Attack은 그중 하나다
MEV, Front-running, Sandwich Attack의 관계는 다음과 같이 기억하면 가장 쉽습니다.
MEV
거래의 순서·포함·제외를 이용해 추가 가치를 추출하는 가장 넓은 개념입니다.
Front-running
다른 사용자의 거래를 보고 자신의 거래를 먼저 실행하는 방식입니다.
Sandwich Attack
공격자가 피해자의 거래 앞에서 먼저 거래하고, 피해자의 거래가 가격을 움직인 뒤 다시 뒤에서 거래해 이익을 얻는 구조입니다.
즉,
공격자 Front-run
↓
피해자 거래
↓
공격자 Back-run
이 하나의 샌드위치를 만듭니다.
예를 들어 사용자가 대규모 토큰 매수를 제출하면 공격자가 먼저 토큰을 사고, 피해자의 매수로 가격이 상승한 뒤 공격자가 다시 팔아 차익을 얻을 수 있습니다.
이 과정에서 피해자는 처음 예상했던 것보다 높은 가격에 토큰을 사고 더 적은 수량을 받게 될 수 있습니다.
따라서 DEX 사용자에게 중요한 것은 단순히 가스비만 확인하는 것이 아닙니다.
Price Impact, Slippage Tolerance, 유동성, 예상수령량, 거래가 공개 멤풀에 노출되는 방식까지 함께 이해하는 것이 좋습니다.
그리고 MEV 자체가 모두 악성인 것은 아닙니다.
차익거래와 정상적인 청산처럼 시장기능에 기여하는 MEV도 존재합니다.
문제가 되는 것은 다른 사용자의 거래정보와 순서를 이용해 그 사용자의 체결가격을 의도적으로 악화시키면서 이익을 추출하는 형태입니다.
결국 세 용어의 관계를 가장 간단하게 정리하면 다음과 같습니다.
MEV > Front-running > Sandwich Attack의 구성요소
그리고 Sandwich Attack은
Front-running + 피해자 거래 + Back-running
으로 기억하면 이해하기 쉽습니다.
※ 본 글은 MEV와 DEX 거래구조를 이해하기 위한 일반적인 정보 제공 목적으로 작성되었습니다. 실제 MEV 구조와 블록 구축 방식은 네트워크와 프로토콜에 따라 다를 수 있습니다. 본문은 공격 실행을 위한 구체적인 코드나 절차를 제공하기 위한 내용이 아니며, 암호화폐 및 디파이 거래에는 가격변동과 스마트컨트랙트 위험이 존재합니다.
댓글 0
첫 댓글을 남겨보세요.