← 기사 목록으로
July 17, 2026
5분 소요

MEV의 해부: 샌드위치, 프론트러닝, 그리고 멤풀이라는 어두운 숲

MEV의 해부: 샌드위치, 프론트러닝, 그리고 멤풀이라는 어두운 숲
#mev
#샌드위치 공격
#프론트러닝
#mempool
#flashbots
#defi
#ethereum

탈중앙 거래소에서 스왑에 서명하고 공개 RPC 엔드포인트로 브로드캐스트하는 순간, 사실 매칭 엔진에 사적인 지시를 보낸 것이 아니다. 서명되고 실행 가능한 의도 표명을 전 세계가 보는 게시판에 게시한 것이며, 그것을 실행해 줄 누군가에게 포상금 — 가스 가격 — 을 붙인 셈이다. 누구나 그 게시물을 읽을 수 있다. 그것을 공정하게, 순서대로, 혹은 아예 실행해야 할 의무는 아무에게도 없다. 다른 트랜잭션들과 비교해 어떤 순서로 처리될지는 당신이 제출한 트랜잭션의 속성이 아니다. 그것은 당신을 상대로 이익을 얻는 제3자가 내리는 결정이다.

이것이 온체인 트레이딩의 불편한 본질이다. 암호화폐 시장에서의 통계적 차익거래와 페어 트레이딩에서 CEX와 DEX 사이에 포지션을 옮기는 데는 "MEV 리스크"가 따른다고 지나가듯 언급하며 그 용어를 미결로 남겨두었다. 이 글은 그 빚을 갚는다. 이 시리즈는 온체인 실행의 경제학을 다루는데, 이 글이 그 첫 관문으로서 멤풀, 번들, 백러닝, 샌드위치, PBS 같은 어휘를 정확히 정의하는 역할을 맡는다. 이후 다룰 플래시론을 이용한 원자적 차익거래퀀트를 위한 Uniswap v3 집중 유동성 글들은 독자가 이 메커니즘을 이미 이해하고 있다고 전제한다.

MEV — 최대(또는 극대) 추출 가능 가치(Maximal/Maximum Extractable Value) — 는 블록 안의 트랜잭션 포함 여부, 배제 여부, 순서를 선택함으로써 표준 블록 보상과 우선 수수료를 넘어 특정 주체가 뽑아낼 수 있는 이익이다. 이것은 버그가 아니다. 허가 없는(permissionless) 블록체인이 트랜잭션을 정렬하는 방식에서 필연적으로 발생하는 구조적 결과다. 2019년 이 메커니즘이 공식적으로 규명된 이후, 누적 추출 가치는 수십억 달러에 달했고, 서처(searcher), 빌더(builder), 릴레이(relay), 블록 제안자(proposer)로 이루어진 하나의 산업 전체가 이를 포착하고 재분배하기 위해 성장했다. 온체인에서 거래한다면, 당신은 이 세금을 내고 있거나 내지 않기 위해 의도적인 조치를 취한 것이다.

1. 트랜잭션 생애주기: 당신의 의도가 왜 공개되는가

가치가 어디서 새어나가는지 보려면, 지갑에서부터 최종 확정된 블록까지 트랜잭션을 따라가 보아야 한다.

공개 멤풀

지갑이 트랜잭션에 서명하고 표준 노드의 RPC 엔드포인트에 제출하면, 노드는 이를 검증(서명, 논스, 충분한 잔고)한 뒤 통과하면 P2P 네트워크를 통해 다른 노드들에게 전파(gossip)한다. 각 노드는 아직 포함되지 않은 이 트랜잭션들을 **멤풀(mempool, memory pool)**이라는 로컬 버퍼에 보관한다. 1~2초 안에, 네트워크상의 사실상 모든 노드 — 대기 중인 트랜잭션에서 가치를 추출하는 것을 업으로 삼는 주체가 운영하는 노드를 포함해서 — 가 당신이 서명한, 완전히 디코딩된 트랜잭션의 사본을 갖게 된다.

여기서 핵심 문구는 "완전히 디코딩된다"는 부분이다. 당신의 트랜잭션은 불투명한 덩어리가 아니다. 이는 알려진 컨트랙트에 대한 ABI로 인코딩된 호출이다. 멤풀을 지켜보는 누구든 이를 디코딩해서 다음과 같이 명확하게 읽어낼 수 있다. 이 주소는 Uniswap v2 WETH/USDC 풀에서 40 ETH를 USDC로 스왑하려 하며, 최소 96,000 USDC까지는 받아들인다. 그 마지막 조항 — 수용 가능한 최소 산출량 — 이 바로 당신의 슬리피지 허용치이며, 이것은 단순한 힌트가 아니다. 콜데이터에 컴파일된 확고한 파라미터다. 곧 살펴보겠지만, 이는 공격자의 예산선(budget line)이기도 하다.

멤풀은 때때로 **다크 포레스트(dark forest, 어두운 숲)**라고도 불리는데, 이는 댄 로빈슨(Dan Robinson)과 게오르기오스 콘스탄토풀로스(Georgios Konstantopoulos)가 2020년에 쓴 에세이가 류츠신(劉慈欣)의 은유를 차용한 데서 나온 이름이다. 눈에 보이는 존재는 무엇이든 보이지 않는 포식자에게 즉시 사냥당하는 공간이라는 뜻이다. 순진하게 수익성 있는 트랜잭션을 공개 멤풀에 브로드캐스트하면, 당신이 서명한 그 형태로는 결코 블록에 도달하지 못할 수 있다. 봇이 그 기회를 먼저 소비하고 당신에게 불리하게 주변 블록을 재구성해버릴 것이다.

우선순위 큐로서의 가스 가격

이더리움의 수수료 시장(EIP-1559 이후)은 가스 가격을 소각되는 프로토콜 **베이스 수수료(base fee)**와 블록 제안자에게 돌아가는 **우선 수수료(priority fee, "팁")**로 분리한다. 블록이 만들어질 때, 빌더는 자신에게 가장 많은 대가를 지불하는 트랜잭션을 포함하려는 경제적 동기를 갖는다. 대략적으로 말해, 멤풀은 팁을 기준으로 한 우선순위 큐다. 팁이 높을수록 더 먼저 포함된다.

이 메커니즘이 순서를 구매 가능하게 만든다. 만약 당신의 대기 중인 스왑을 보고, 내가 그것보다 바로 직전에 내 트랜잭션을 실행하고 싶다면, 나는 아무것도 해킹할 필요가 없다. 그저 더 높은 팁을 내는 트랜잭션을 제출하면 된다. 빌더는 자신의 인센티브에 따라 내 것을 먼저 배치한다. 순서는 프로토콜이 보장하는 공정성이 아니라, 프로토콜이 운영하는 경매이며, 그 경매에 걸린 상품은 당신의 대기 중인 트랜잭션에 담긴 정보로 행동할 권리다.

두 가지 사실이 결합하여 MEV 문제 전체를 구성한다.

  1. 대기 중인 트랜잭션은 눈에 보인다 (공개 멤풀).
  2. 순서는 판매용이다 (팁 우선순위 경매).

아래의 모든 내용은 이 두 사실의 따름정리다.

지갑에서 블록까지의 트랜잭션 생애주기: 서명된 트랜잭션이 공개 멤풀에 브로드캐스트되어 서처에게 노출되고, 빌더에 의해 우선 수수료 순으로 정렬되어 블록에 담긴다

2. 샌드위치 메커니즘, 실제 수식과 함께

샌드위치는 스와퍼를 노리는 대표적인 독성 MEV 전략이며, 그 산술을 끝까지 따라가 볼 가치가 있다. 그 숫자들이 왜 슬리피지 설정이 당신이 통제할 수 있는 가장 중요한 방어 파라미터인지를 설명해주기 때문이다.

불변량 x·y=k

Uniswap v2 풀은 토큰 X의 준비금 xx와 토큰 Y의 준비금 yy를 보유하며, 매 거래 후 다음 불변량을 강제한다(잠시 수수료는 무시한다).

xy=kx \cdot y = k

트레이더가 토큰 X를 Δx\Delta x만큼 풀에 팔면, 새로운 X 준비금은 x+Δxx + \Delta x가 되고, kk를 보존하기 위해 풀은 다음을 지불해야 한다.

Δy=ykx+Δx=yΔxx+Δx.\Delta y = y - \frac{k}{x + \Delta x} = \frac{y \, \Delta x}{x + \Delta x}.

Uniswap v2의 0.3% 수수료를 적용하면, 입력값은 γ=0.997\gamma = 0.997로 스케일링된다.

Δy=yγΔxx+γΔx.\Delta y = \frac{y \, \gamma \, \Delta x}{x + \gamma \, \Delta x}.

핵심 속성은 이렇다. 한 방향으로 더 많이 매수할수록 한계 가격은 더 나빠진다. 가격 임팩트는 볼록(convex)하다. 이 볼록성이야말로 공격자가 화폐화하는 대상이다.

설정

WETH/USDC 풀을 예로 들어보자. 계산을 깔끔하게 하기 위해 ETH 가격이 대략 2,500 USDC가 되는 준비금을 가정한다.

  • x=10,000x = 10{,}000 WETH
  • y=25,000,000y = 25{,}000{,}000 USDC
  • k=2.5×1011k = 2.5 \times 10^{11}

당신은 40 WETH로 USDC를 매수하려 한다(WETH를 풀에 파는 것). 설명을 위해 수수료를 무시하면, 빈 블록에서의 정직한 체결은 다음과 같다.

Δy=25,000,0004010,000+40=1,000,000,00010,04099,601 USDC.\Delta y = \frac{25{,}000{,}000 \cdot 40}{10{,}000 + 40} = \frac{1{,}000{,}000{,}000}{10{,}040} \approx 99{,}601 \text{ USDC}.

거래 전 스팟 가격은 25,000,000/10,000=2,50025{,}000{,}000 / 10{,}000 = 2{,}500 USDC/WETH이므로, 40 WETH는 거래 전 중간가 기준으로 100,000 USDC "가치"가 있다. 실제로는 99,601을 받는데 — 약 399 USDC의 차이는 당신 자신의 가격 임팩트와 수수료 때문이다. 이제 1% 슬리피지 허용치를 설정했다고 하자. 당신의 트랜잭션의 amountOutMin은 다음과 같다.

99,601×0.9998,605 USDC.99{,}601 \times 0.99 \approx 98{,}605 \text{ USDC}.

이 숫자는 이제 멤풀에서 공개된다. 이는 관찰자 누구에게나 이렇게 알려준다. 이 사람은 40 WETH에 대해 최소 98,605 USDC까지는 받아들인다. 깨끗한 블록에서 얻었을 값(99,601)과 당신의 하한선(98,605) 사이의 차이 — 약 996 USDC — 가 바로 당신이 프론트러닝하는 자에게 자발적으로 넘겨준 여유분이다. 이것이 공격자의 예산이다.

공격 단계별 분석

서처는 세 개의 트랜잭션을 구성하여 하나의 블록 안에서 다음 순서로 강제한다.

1. 프론트런(공격자가 먼저 매수한다). 공격자는 당신보다 먼저 자신의 WETH를 풀에 팔아, USDC 가격을 밀어올린다(WETH 가격은 내린다). 그래서 당신의 거래가 체결될 때 WETH당 받는 USDC가 줄어들게 만든다. 공격자는 당신의 거래가 여전히 amountOutMin을 통과하도록 규모를 조정한다 — 통과하지 못하면 당신의 스왑은 되돌려지고(revert) 샌드위치할 피해자가 사라지기 때문이다. 최적의 프론트런 규모는 당신을 정확히 하한선에 위치시키는 가장 큰 규모다.

공격자가 자신의 40 WETH로 프론트런한다고 하자. 풀은 x=10,040x = 10{,}040으로 이동하고, 불변량에 따라 공격자는 다음을 받는다.

25,000,0004010,04099,601 USDC out,\frac{25{,}000{,}000 \cdot 40}{10{,}040} \approx 99{,}601 \text{ USDC out},

이로써 준비금은 x=10,040x = 10{,}040 WETH, y24,900,399y \approx 24{,}900{,}399 USDC가 된다.

2. 피해자(당신의 스왑이 악화된 풀에서 체결된다). 당신의 40 WETH는 이제 다음 준비금을 상대로 체결된다.

Δy=24,900,3994010,040+40=996,015,96010,08098,811 USDC.\Delta y = \frac{24{,}900{,}399 \cdot 40}{10{,}040 + 40} = \frac{996{,}015{,}960}{10{,}080} \approx 98{,}811 \text{ USDC}.

제약 조건을 확인하면: 98,811 > 98,605이므로 당신의 트랜잭션은 되돌려지지 않는다 — 체결은 되지만, 더 나쁜 조건으로 체결된다. 깨끗한 블록에서 받았을 99,601 대신 98,811을 받았다. 당신은 약 790 USDC를 손해 보았고, 이 사실을 전혀 알 수 없다. 당신의 스왑은 "성공"했으니까. 풀은 이제 x=10,080x = 10{,}080 WETH, y24,801,588y \approx 24{,}801{,}588 USDC가 된다.

3. 백런(공격자가 되판다). 이제 공격자는 1단계에서 매수한 USDC를 풀에 되팔아 — 혹은 동등하게 자신의 WETH를 되사서 — 당신의 거래가 만들어낸 상승한 가격을 포착한다. 보유한 약 99,601 USDC로 WETH를 되사면 다음과 같다.

Δx=10,08099,60124,801,588+99,6011,004,010,08024,901,18940.32 WETH.\Delta x = \frac{10{,}080 \cdot 99{,}601}{24{,}801{,}588 + 99{,}601} \approx \frac{1{,}004{,}010{,}080}{24{,}901{,}189} \approx 40.32 \text{ WETH}.

공격자는 1단계에서 40 WETH를 지출했고 3단계에서 40.32 WETH를 되받았다 — 가스비를 제하기 전 약 **0.32 WETH(~800 USDC)**의 이익이며, 이는 거의 전적으로 당신의 슬리피지 예산에서 추출된 것이다. 슬리피지를 좁히면 그 예산은 줄어들고, 공격자의 최적 프론트런 규모는 작아지며, 어느 임계값 아래로 내려가면 가스비를 제한 후 샌드위치는 수익성을 잃어 서처는 당신을 그냥 지나친다.

여기서 얻는 교훈은 "슬리피지 허용치가 나쁘다"가 아니다. 어느 정도의 허용치는 있어야 일반적인 가격 변동에도 트랜잭션이 되돌려지지 않는다. 교훈은 슬리피지 허용치가 직접적으로 추출 가능한 수량이라는 것이며, 이를 1%나 더 심하게는 얕은 풀에서 "자동"이라는 게으른 기본값으로 설정하는 것은 지켜보는 누구에게나 그만큼의 돈을 테이블 위에 남겨두는 것과 같다는 점이다. 당신 자신의 거래가 가격을 몇 퍼센트씩 움직이는 저유동성 풀에서는, 기본 슬리피지가 명목가치의 상당 부분을 넘겨줄 수도 있다.

서처의 수익 조건에 대한 최소한의 스케치는 다음과 같다.

def sandwich_profit(x, y, gamma, victim_dx, victim_min_out, attack_dx, gas_cost):
    out1 = (y * gamma * attack_dx) / (x + gamma * attack_dx)
    x1, y1 = x + attack_dx, y - out1
    vout = (y1 * gamma * victim_dx) / (x1 + gamma * victim_dx)
    if vout < victim_min_out:
        return None  # victim would revert; no sandwich
    x2, y2 = x1 + victim_dx, y1 - vout
    got_back = (x2 * gamma * out1) / (y2 + gamma * out1)
    return got_back - attack_dx - gas_cost  # profit in WETH

서처는 vout >= victim_min_out을 유지하는 가장 큰 프론트런을 찾기 위해 attack_dx에 대해 소규모 최적화를 수행한다. 그 최적점은 당신의 슬리피지 하한선이 바인딩되는 지점이며 — 이는 다시 말해 공격자의 수익이 정확히 당신이 남겨둔 여유분만큼으로 제한된다는 뜻이다.

3. MEV의 분류: 독성 대 양성

"MEV"는 욕설처럼 쓰이곤 하지만, 그 전부가 피해자로부터의 추출은 아니다. 전략을 순서로 인해 누군가가 더 나빠지는가를 기준으로 분류하는 것이 도움이 된다.

프론트러닝(Frontrunning). 대기 중인 수익성 있는 트랜잭션을 관찰하고, 이를 복제하거나 선점하며, 더 높은 팁을 내고 먼저 실행한다. 전형적인 사례는 가격을 움직일 대규모 매수를 보고 그 앞에서 매수하는 것이다. 순전히 독성이다. 피해자는 더 나쁜 가격을 받거나 아예 기회를 통째로 도둑맞는다.

백러닝(Backrunning). 대상 트랜잭션 바로 다음에 당신의 트랜잭션을 배치하여 그것이 만들어낸 상태를 이용해 행동한다. 결정적으로, 순수한 백런은 대상의 체결을 악화시키지 않는다 — 이후에 실행되므로 피해자의 가격은 이미 확정되어 있다. 만약 당신의 대규모 스왑이 WETH/USDC 풀을 바이낸스 가격과 어긋나게 만들었다면, 차익거래자가 당신을 백런하여 가격을 재조정하고 그 차익을 챙긴다. 당신은 피해를 입지 않는다. 사실 이 차익거래야말로 온체인 가격이 더 넓은 시장을 계속 추종하게 만드는 요인이다. 백러닝은 스펙트럼의 양성 극단이며 — 곧 살펴보겠지만 — 현대의 MEV 보호 시스템은 정확히 백런 수익을 그것을 만들어낸 사용자에게 돌려주기 위해 설계된다.

샌드위칭(Sandwiching). 위에서 해부했듯이 같은 피해자를 감싼 프론트런과 백런의 조합이다. 구조적으로 독성이다. 프론트런은 오로지 피해자의 체결을 악화시켜 백런이 그것을 수확할 수 있게 하기 위해서만 존재한다.

원자적 차익거래(Atomic arbitrage). 한 장소에서 자산을 싸게 사고 다른 장소에서 비싸게 파는 단일 트랜잭션 — 예를 들어 WETH가 Sushiswap보다 Uniswap에서 더 싸다면 — 무위험 수익을 하나의 트랜잭션 안에서 전부 아니면 전무(all-or-nothing) 방식으로 챙긴다(수익성이 없으면 되돌려진다). 특정 피해자가 없다. 시장이 남겨둔 가격 불일치를 메우는 행위다. 대체로 양성으로 간주되며 — 거래소 간 가격 일관성을 개선한다 — 이 시리즈의 원자적 차익거래와 플래시론 편의 주제이기도 하다. 그 글에서는 플래시론의 "자본이 필요 없다"는 속성이 이를 특히 날카롭게 만든다.

청산(Liquidations). 대출 포지션(Aave, Compound, Maker)이 담보 임계값 아래로 떨어지면, 프로토콜은 부실 채무를 상환하고 담보를 압류하는 자에게 보너스를 제공한다. 서처들은 그 청산자가 되기 위해 경쟁한다. "피해자" — 청산당하는 차입자 — 가 존재하기는 하지만, 이들은 어차피 프로토콜의 규칙에 따라 청산당한다. MEV 경쟁은 주로 누가 그 보너스를 받는지를 결정할 뿐이며, 경쟁을 통해 그 보너스를 줄일 수도 있다. 시장 건전성 측면에서는 중립에서 양성 사이, 차입자에게는 불쾌한 일이라고 부를 수 있다.

대략적인 지도는 다음과 같다.

전략 피해자가 손해를 보는가? 판정
프론트런 독성
샌드위치 독성
백런(순수) 아니오 양성
원자적 차익거래 아니오 양성 (가격 일관성 개선)
청산 차입자 (프로토콜 규칙에 따름) 중립

이 독성/양성의 구분이 중요한 이유는, 현대 MEV 완화 스택 전체가 독성 전략을 억제하면서 양성 전략은 보존하고 재분배하려는 시도이기 때문이다. DEX 가격을 정직하게 유지시키는 차익거래를 함께 망가뜨리지 않고서는 순서 게임 전체를 금지할 수 없다. 관건은 독성 가치를 그것이 빼앗긴 사람에게 되돌리는 경로를 만드는 것이다.

4. 짧은 역사: 가스 경매에서 Flashbots까지

Flash Boys 2.0과 우선순위 가스 경매

이 현상은 필립 다이언(Philip Daian), 스티븐 골드페더(Steven Goldfeder), 타일러 켈(Tyler Kell), 윤치 리(Yunqi Li), 슈에위안 자오(Xueyuan Zhao), 이도 벤토프(Iddo Bentov), 로렌츠 브라이덴바흐(Lorenz Breidenbach), 아리 주엘스(Ari Juels)가 쓴 2019년 논문 **"Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges"**에서 명명되고 측정되었다. 이 논문은 "채굴자 추출 가능 가치(miner extractable value)"라는 용어를 도입했으며(이후 업계가 작업증명 채굴자에서 지분증명 제안자로 옮겨가면서 최대(maximal) 추출 가능 가치로 일반화되었다), **우선순위 가스 경매(priority gas auctions, PGA)**를 기록했다. 이는 봇들이 수익성 있는 기회의 순서를 차지하기 위해 실시간으로 가스 가격을 서로 올려 부르며 경쟁하는 현상이다.

PGA는 눈에 띄게 병리적이었다. 봇들이 가진 유일한 지렛대가 공개된 가스 가격이었기 때문에, 몇 초 안에 더 높은 팁으로 반복해서 재제출하는 공개 입찰 전쟁을 벌여 단 하나의 차익거래나 청산 기회를 차지하려 했다. 이는 두 가지 나쁜 결과를 낳았다. 첫째, 이는 네트워크를 혼잡하게 만들고 MEV와 무관한 사람들에게까지 가스 가격을 부풀렸다. 둘째, 더 우려스럽게도, 이 논문은 만약 블록 안에 존재하는 MEV가 블록 보상을 초과한다면 합리적인 채굴자가 이를 훔치기 위해 체인을 재조직화할 유인을 가질 것이라고 주장했다. 이는 합의(consensus) 안정성 자체를 위협한다. MEV는 단순한 사용자 공정성 문제가 아니라 체인 자체에 대한 위협이었다.

대응으로서의 Flashbots

Flashbots는 2020년 PGA를 진정시키기 위해 등장했다. 그 통찰은 이렇다. 순서 경매를 공개 멤풀 밖으로 옮겨 봉인 입찰(sealed-bid) 방식의 오프체인 채널로 이동시키는 것이다. 트랜잭션을 브로드캐스트하고 공개 가스 전쟁을 벌이는 대신, 서처는 번들(bundle) — 원자적으로, 전부 아니면 전무 방식으로, 특정한 상대적 순서로 포함될 트랜잭션들의 정렬된 목록 — 을 구성하여 블록 빌더에게 입찰가와 함께(종종 가스 가격이 아니라 제안자에게 직접 이전되는 방식으로 지불된다) 사적으로 제출한다. 빌더는 받은 모든 번들과 트랜잭션으로부터 만들 수 있는 가장 가치 있는 블록을 조립하여 제안자에게 제시한다.

이로써 두 가지가 동시에 개선된다. 서처들은 더 이상 공개 멤풀에 실패한 입찰을 스팸처럼 뿌리지 않으므로, 일반 사용자에게 미치는 가스 가격 외부효과가 줄어든다. 그리고 승리한 번들은 온전히 포함되거나 아예 포함되지 않으므로, 예전에 블록을 막았던 "실패한 프론트런" 트랜잭션들이 사라진다. 입찰 전쟁은 여전히 일어나지만 — 이제는 온체인의 공개적인 고함 경쟁이 아니라 빌더 내부의 사적 경매로서 일어난다.

PBS: 제안자-빌더 분리

Flashbots의 아키텍처는 오늘날 이더리움에서 지배적인 모델인 **제안자-빌더 분리(proposer-builder separation, PBS)**로 일반화되었다. 역할은 다음과 같이 분리된다.

  • **서처(Searchers)**는 MEV 기회를 찾아 번들로 패키징한다.
  • **빌더(Builders)**는 번들과 공개 트랜잭션으로부터 가장 가치 있는 완전한 블록 하나를 조립하기 위해 경쟁한다.
  • **릴레이(Relays)**는 빌더와 제안자 사이에 위치하여, 빌더로부터 완전한 블록을 받아 그 헤더와 입찰 가치만을 제안자에게 전달함으로써, 제안자가 블록의 내용을 보기 전에 그것을 커밋하게 만든다(제안자가 MEV를 단순히 가로채는 것을 방지한다).
  • **제안자(Proposers, 검증자)**는 가장 높은 입찰가를 가진 헤더를 선택하고, 서명하고, 대가를 받는다.

이는 이더리움 검증자 대다수가 실행하는 미들웨어인 MEV-Boost를 통해 프로토콜 외부에서 구현된다 — 블록의 약 80~90%가 MEV-Boost를 통한 외부 빌더에 의해 만들어진다. 이는 작동하지만, 신뢰받는 릴레이에 의존한다. 다음 단계인 **enshrined PBS(ePBS, EIP-7732)**는 제안자-빌더 분리를 이더리움 프로토콜에 직접 내장하여 신뢰받는 릴레이 의존성을 제거하는 것을 목표로 한다. 2026년 중반 현재 이는 Glamsterdam 업그레이드에 예정되어 있으며, 2026년 후반 메인넷 활성화를 목표로 하고 있다. 지지자들은 블록이 커밋되는 방식을 개선하고 독성 재정렬의 여지를 좁힘으로써 사용자의 MEV 손실을 실질적으로 줄일 수 있다고 주장한다. 정확한 수치는 실제로 배포될 때까지는 희망사항 정도로 받아들여야 하지만, 방향성만큼은 분명하다. 프로토콜은 수년간 존재하지 않는 척했던 MEV 공급망을 흡수하고 있다.

MEV-Share: 가치를 돌려주다

일반 트레이더에게 가장 중요한 발전은 Flashbots의 주문흐름 경매(order-flow auction)인 MEV-Share다. 이 아이디어는 다크 포레스트를 뒤집는다. 당신의 트랜잭션이 모든 포식자에게 보이는 대신, 당신은 그것을 사적으로 MEV-Share 노드로 보내고, 그 노드는 서처들에게 부분적인 힌트만(얼마나 공개할지는 당신이 선택한다) 공개한다. 서처들은 당신의 트랜잭션을 백런하기 위해 입찰하고 — 기억하겠지만, 백런은 당신에게 해가 되지 않는다 — 그 결과로 생긴 수익의 상당 부분이 당신에게 환급되며, 나머지는 번들 포함을 위해 서처와 제안자가 나눠 갖는다.

이 경제적 재구성은 우아하다. 대규모 스왑은 백런 기회를 만들어낸다. 문제는 누가 그것을 포착하느냐다. 다크 포레스트의 세계에서는 서처와 빌더가 그 전부를 가져간다. MEV-Share 하에서는, 당신 자신의 트랜잭션이 만들어낸 가치가 대부분 당신에게 돌아온다. Flashbots의 소비자 대상 RPC인 Flashbots Protect는 소매 트랜잭션을 이 시스템을 통해 라우팅하며, 2025년에는 여기에 가스 수수료 환급까지 추가하여 사용자가 돌려받는 몫을 의미 있게 늘렸다. 이것이 바로 "양성은 재분배하고, 독성은 억제한다"는 원칙이 구체화된 사례다.

5. 트레이더를 위한 실전 방어

포식자의 먹잇감이 되지 않기 위해 서처를 직접 운영할 필요는 없다. 영향력이 큰 순서대로 나열하면 다음과 같다.

풀마다 슬리피지를 신중하게 설정하라

2장에서 슬리피지 허용치가 곧 공격자의 예산*이라는 사실을 확립했다. 여기서 두 가지 규칙이 따라온다. 첫째, 슬리피지는 습관적인 1%가 아니라 그 풀의 실제 유동성과 당신 거래의 가격 임팩트에 맞춰 설정하라. 유동성이 깊은 풀에서는 0.1~0.3% 허용치로도 충분할 수 있다. 얕은 풀에서는 규모를 안전하게 거래할 수 없다는 사실을 받아들이거나, 더 작은 단위로 나눠라. 둘째, 저유동성 페어에서는 절대 "자동" 혹은 "무제한" 슬리피지를 사용하지 마라 — 그것은 서명된 백지수표다. 좁은 허용치에서 스왑이 계속 되돌려진다면, 그것은 시장이 당신에게 이 거래가 그 풀에 비해 너무 크다고 알려주는 신호이지, 하한선을 느슨하게 풀라는 신호가 아니다.

사설 RPC를 경유하라

가장 근본적인 구조적 해결책은 트랜잭션을 아예 공개 멤풀 밖에 두는 것이다. 지갑을 트랜잭션을 전파하는 대신 빌더에게 직접 전달하는 사설 RPC로 설정하라.

  • Flashbots Protect — 트랜잭션을 MEV-Share 시스템으로 보내므로 프론트러너에게 공개적으로 노출되지 않으며, 백런 가치의 일부와 가스 환급을 돌려준다.
  • MEV Blocker(CoW Protocol 등이 운영) — 프론트러닝과 샌드위칭으로부터 보호하고 백런 수익을 사용자에게 리베이트하는 유사한 사설 RPC 서비스로, 무료 수수료 모델을 채택하고 있다.

샌드위치가 성립하려면 공격자가 당신의 대기 중인 트랜잭션을 보고 그 앞에 프론트런을 삽입해야 하기 때문에, 트랜잭션을 공개 멤풀에서 제거하는 것만으로 프론트런 기회 자체가 완전히 사라진다. 백런 기회는 여전히 남아있지만, 이제는 도둑맞는 대신 당신에게 경매로 돌아온다. 대가는 RPC 운영자에 대한 약간의 신뢰와, 가끔은 다소 느려지는 포함 시간이다 — 샌드위치 리스크를 제거하는 것에 비하면 보통 사소한 수준이다. (2025년 사설 보호 RPC에 대한 벤치마크 연구는 이들의 실제 정산 결과가 공개 제출보다 항상 확실히 나은 것은 아니라는 점을 발견했다. 따라서 그 효과는 강력하지만 보편적이지는 않다. 대부분의 소매 규모 DEX 스왑에는 여전히 사설 라우팅이 올바른 기본값이다.)

배치 경매 및 의도 기반 벤뉴를 선호하라

일부 DEX 설계는 구조적으로 순서에 의한 이점을 제거한다. CoW Protocol은 **균일 청산 가격(uniform clearing price)**을 적용한 배치 경매로 거래를 정산한다. 배치 안의 모든 거래가 동일한 가격에 청산되므로, 악용할 수 있는 "첫 번째"나 "마지막" 위치가 존재하지 않으며, 솔버(solver)들은 당신을 재정렬하려 경쟁하는 대신 당신에게 최선의 체결을 제공하려 경쟁한다. 구체적인 경로에 서명하는 대신 당신이 원하는 것에 서명하고 솔버가 실행 경로를 찾게 하는 의도 기반(intent-based) 시스템도 마찬가지로 샌드위치가 발붙일 곳을 없앤다. 큰 규모로 거래한다면, 이런 벤뉴는 어떤 슬리피지 조정보다 값어치가 있다.

L2가 왜 다른지 이해하라

Arbitrum, Optimism, Base 등 오늘날 대부분의 이더리움 롤업에서는 롤업 팀이 운영하는 **단일 시퀀서(sequencer)**가 블록을 생성한다. 서처가 지켜볼 대기 중인 트랜잭션의 공개 멤풀이 존재하지 않으며, 순서를 결정하는 신뢰받는 주체가 단 하나뿐이다. 실제로 대부분의 시퀀서는 트랜잭션을 **선착순(first-come-first-served)**으로 정렬하며 사용자를 상대로 샌드위치 공격을 실행하지 않는다. 따라서 프로토콜 계층에서는 이 체인들에서 샌드위칭이 대체로 존재하지 않는다.

하지만 이 트레이드오프를 정확히 읽어야 한다. 당신이 탈중앙화된 MEV 추출로부터 안전한 이유는, 중앙화된 정렬자가 이를 추출하지 않을 것이라고 신뢰하고 있기 때문이다. 시퀀서는 얼마든지 당신을 프론트런할 수 있다. 다만 그렇게 하지 않기로 (그리고 평판상 그렇게 하지 않도록 묶여) 선택했을 뿐이다. 이는 일시적인 균형 상태다. 롤업이 시퀀서를 탈중앙화하면서 — 공유 시퀀서, 기반 시퀀싱(based sequencing), L2 위의 PBS 방식 경매 등 — 동일한 멤풀 가시성과 순서 판매 역학이 다시 나타날 수 있으며, L2의 MEV 문제는 이미 해결된 사안이 아니라 열린 설계 문제가 된다. "나는 L2에 있으니까"가 곧 "MEV는 나를 건드릴 수 없다"를 무기한 의미한다고 가정하지 마라. 그것은 "지금은 신뢰받는 한 주체가 그렇게 하지 않겠다고 약속했다"는 의미일 뿐이다.

이 시리즈의 나머지 글에 가져갈 것

이 주제를 핵심 사실로 압축하면 다음과 같다.

  1. 공개 멤풀 스왑은 공개된 의도에 구매 가능한 순서 슬롯이 결합된 것이다. 어떤 단일한 버그가 아니라 바로 이 결합이 문제의 전부다.
  2. 정률곱(constant-product) AMM에서, 슬리피지 허용치는 공격자가 추출할 수 있는 수량이며, 샌드위치의 수익은 정확히 당신이 남겨둔 여유분에 의해 제한된다. 슬리피지 설정은 편의를 위한 토글이 아니라 보안 결정이다.
  3. MEV는 단일하지 않다. 프론트런과 샌드위치는 독성이며, 백런과 원자적 차익거래는 양성이고 심지어 유용하다. 이들이 온체인 가격을 일관되게 유지시켜주기 때문이다. 좋은 완화책은 전자를 억제하고 후자를 재분배한다.
  4. 업계의 대응은 PGA(공개 가스 전쟁, Flash Boys 2.0, 2019년)에서 Flashbots / 번들 / PBS(봉인된 사설 경매)로, 그리고 MEV-Share(백런 가치를 사용자에게 반환)로 이어졌으며, 다음 단계로 프로토콜 내의 enshrined PBS가 예정되어 있다.
  5. 트레이더로서 당신의 방어 수단은 풀별로 세밀하게 조정된 슬리피지, 사설 RPC(Flashbots Protect, MEV Blocker), 그리고 배치 경매 벤뉴이며 — 동시에 L2에서의 안전은 현재 시퀀서에 대한 신뢰 가정일 뿐, 물리 법칙이 아니라는 인식이다.

원자적 차익거래와 플래시론 편은 이 표에서 서처 쪽의 입장을 다룬다 — 빌린 자본과 원자적 되돌림(atomic revert)을 안전망으로 삼아 양성 추출이 어떻게 구축되는지를 살펴본다. Uniswap v3 집중 유동성 편은 위에서 다룬 정률곱 수식을 다시 살펴보며, 집중 유동성이 가격 임팩트 곡선을 — 그리고 그에 따라 여기서 도출한 샌드위치 예산을 — 어떻게 재구성하는지 보여준다. 멤풀은 어두운 숲이다. 이제 당신은 그 안에서 무엇이 사냥하고 있는지 안다.

참고문헌

  • Daian, Goldfeder, Kell, Li, Zhao, Bentov, Breidenbach, Juels (2019), Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv:1904.05234.
  • Robinson & Konstantopoulos (2020), Ethereum is a Dark Forest.
  • Flashbots documentation: MEV-Boost, MEV-Share, Flashbots Protect, MEV refunds (docs.flashbots.net).
  • Ethereum PBS / EIP-7732 (enshrined proposer-builder separation), Glamsterdam upgrade materials.
  • MEV Blocker (mevblocker.io); CoW Protocol batch-auction design.
  • Private MEV Protection RPCs: A Benchmark Study (arXiv:2505.19708, 2025).
blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

시장에서 앞서 나가세요

뉴스레터를 구독하여 독점적인 AI 트레이딩 통찰력, 시장 분석 및 플랫폼 업데이트를 받아보세요.

귀하의 개인정보를 존중합니다. 언제든지 구독을 취소할 수 있습니다.