본문으로 이동

샌드위치 공격

검색자가 대기 중인 스왑 앞뒤에 거래를 배치해 사용자의 체결 조건을 악화시키고 거래 순서에서 가치를 추출하는 방식.

업데이트

교육 목적으로만 제공되며 보안 또는 투자 조언이 아닙니다. 슬리피지 통제와 비공개 라우팅은 샌드위치 노출을 줄일 수 있지만 체결 품질, 블록 포함, 최종성 또는 손실 회수를 보장하지 않습니다.

직접 답변

샌드위치 공격은 공격자가 사용자 스왑 직전에 거래 하나를, 직후에 다른 거래 하나를 배치하는 유해한 최대 추출 가능 가치 방식입니다. 첫 거래가 풀 가격을 사용자에게 불리하게 움직이고, 사용자는 더 나쁜 환율로 체결하며, 마지막 거래는 사용자 주문이 일부 만들어 낸 가격에서 공격자의 포지션을 정리합니다.

공격에는 사용자 의도를 미리 보거나 순서를 우선 결정할 수 있는 권한, 충분한 가격 영향, 그리고 스왑이 여전히 성공하도록 허용하는 실행 한도가 필요합니다. 자동화 마켓 메이커 스왑에서 주로 논의되지만, 더 넓게는 순서를 통해 다른 당사자가 가치를 추출할 수 있는 예측 가능한 상태 변화가 모두 위험 대상입니다.

작동 방식

사용자가 스왑에 서명해 전파합니다. 블록 포함 전에 세부 정보가 공개 트랜잭션 풀이나 관찰 가능한 주문 흐름에 도달하면 검색자는 자산, 규모, 경로, 최소 출력량, 기한을 해독하고 가능한 거래 순서를 시뮬레이션할 수 있습니다.

AMM 풀에서 매수할 때 검색자가 먼저 매수합니다. 이 프런트런은 준비금을 바꾸고 사용자의 체결 가격을 높입니다. 결과가 사용자의 최소 출력 조건 안에 있으면 사용자는 거래 전 견적보다 적은 출력 토큰을 받습니다. 검색자는 사용자 뒤에서 백런으로 매도해 가격 변동 일부를 포착합니다.

총수익은 이익과 같지 않습니다. 공격자는 두 번의 스왑 수수료, Gas 또는 빌더 지급액, 실패한 시도와 재고 위험을 부담합니다. 경쟁, 다른 거래, 사용자 스왑의 되돌림, 블록 순서 변경은 전체 거래를 손실로 만들 수 있으며 샌드위치는 자동으로 원자적이거나 보장되는 방식이 아닙니다.

슬리피지 보호는 허용 가능한 최악의 출력을 제한할 뿐 순서 지정을 막지 않습니다. 허용 범위가 너무 넓으면 불리한 체결 여지가 커지고, 너무 좁으면 변동성 속에서 정상 스왑도 되돌아갈 수 있습니다. 앱과 통합 계약은 영이나 오래된 하드코딩 값 대신 현재 견적에 근거해 사용자가 승인한 최소 출력과 적절한 기한을 강제해야 합니다.

비공개 제출, 보호된 주문 흐름, 일괄 경매, 인텐트 기반 실행, 주문 분할은 일부 시스템에서 노출을 줄일 수 있습니다. 보호 효과는 주문을 보는 중개자, 빌더 범위, 폴백 동작, 유동성, 수수료와 구현에 달려 있으며 “비공개” 또는 “MEV 보호” 표시는 보편적 보장이 아닙니다.

예시

사용자가 AMM 풀에서 토큰 A로 토큰 B를 사는 공개 스왑을 제출합니다. 검색자는 주문이 풀 가격을 움직일 만큼 크고, 사용자의 최소 출력이 불리한 가격 이동 뒤에도 거래가 실행될 여지를 준다는 점을 시뮬레이션합니다.

검색자가 토큰 B를 먼저 사고, 사용자가 악화된 환율로 토큰 B를 산 뒤, 검색자가 즉시 토큰 B를 팝니다. 사용자는 서명한 최소량 이상은 받지만 이전 견적보다 적게 받고, 검색자는 스왑 수수료, 순서 지급액, 실행 비용을 제한 나머지만 보유합니다.

위험

사용자에게 직접 발생하는 피해는 더 나쁜 체결과 더 높은 실질 슬리피지입니다. 실패한 실행에도 비용을 부과하는 체인과 거래 설계에서는 스왑이 되돌아간 뒤에도 Gas를 소비할 수 있습니다. 얕은 유동성, 공개된 대규모 주문, 느슨한 한도, 변동성, 예측 가능한 경로는 노출을 늘리지만 공격 발생을 입증하는 단일 기준은 없습니다.

완화책에도 상충 관계가 있습니다. 주문 분할은 총수수료를 늘리거나 반복 전략을 노출할 수 있고, 엄격한 한도는 되돌림을 늘립니다. 비공개 경로에는 신뢰, 검열, 로그와 폴백 문제가 있으며 보호 인터페이스는 특정 체인이나 경로만 지원할 수 있습니다. 보호 배지에 의존하지 말고 서명한 최소 출력, 기한, 경로, 엔드포인트 정책, 영수증과 필요한 최종성을 확인해야 합니다.

흔한 오해

  • 불리한 가격 변동은 모두 샌드위치 공격이다. 일반적인 가격 영향, 시장 움직임, 경로 변경과 차익거래도 견적과 다른 체결을 만들 수 있으므로 샌드위치로 판단하려면 거래 순서 증거가 필요합니다.
  • 공격자는 지갑에서 토큰을 그대로 훔친다. 일반적인 샌드위치는 승인된 스왑 전후의 풀 상태를 바꾸며, 공격자 거래가 사용자 지갑에서 자산을 직접 전송할 필요는 없습니다.
  • 슬리피지 허용치를 아무 값으로든 설정하면 공격을 막는다. 최소 출력은 허용되는 악화를 제한하지만 검색자는 경계 가까이에서 스왑이 성공하도록 공격을 최적화할 수 있습니다.
  • 비공개 제출은 MEV를 제거한다. 공개 풀에서는 숨겨도 RPC 운영자, 릴레이, 빌더, 솔버 또는 공개 폴백이 주문을 관찰하거나 영향을 줄 수 있습니다.
  • 성공 영수증은 공정한 체결을 증명한다. 성공은 계약 조건을 통과했다는 뜻일 뿐 최선의 가격을 받았거나 유해한 순서를 피했다는 증거는 아닙니다.

관련 주제

출처

탐색

위키 검색...