MEV와 샌드위치 공격이란? 스왑에서 새는 돈
DEX에서 스왑할 때 예상보다 나쁜 가격에 체결되는 이유. 거래 순서를 조작해 이익을 뽑아내는 MEV의 구조와 샌드위치 공격, 그리고 실제로 효과 있는 방어법을 정리했습니다.
MEV란 무엇인가
블록체인에서 거래는 들어온 순서대로 처리되지 않습니다. 블록을 만드는 쪽이 어떤 거래를 넣을지, 어떤 순서로 배치할지를 정할 수 있습니다. 이 '순서를 정하는 권한'에서 뽑아낼 수 있는 이익을 MEV(Maximal Extractable Value)라고 부릅니다.
MEV가 전부 악의적인 것은 아닙니다. 거래소 간 가격 차이를 메우는 차익거래나, 담보가 부족해진 포지션을 정리하는 청산 경쟁도 MEV에 속하며 이것들은 시장이 제대로 돌아가는 데 필요합니다. 문제가 되는 것은 특정 이용자를 직접 겨냥해 손해를 입히는 유형입니다.
대기열이 공개돼 있다
내가 스왑 버튼을 눌러도 거래는 곧바로 체결되지 않습니다. 블록에 담기기 전까지 '멤풀'이라는 대기 공간에 머무는데, 이 대기열은 누구나 들여다볼 수 있습니다. 어떤 주소가 어느 풀에서 얼마를 사려는지가 그대로 노출됩니다.
봇들은 이 대기열을 실시간으로 감시합니다. 그리고 수수료를 더 얹어 내 거래보다 앞이나 뒤에 자기 거래를 끼워 넣습니다. 투명성이라는 블록체인의 장점이 여기서는 그대로 약점이 되는 셈입니다.
샌드위치 공격
가장 흔하고 직접적인 유형입니다. 봇이 내 매수 주문을 발견하면, 먼저 같은 토큰을 사서 가격을 올려둡니다. 그다음 내 주문이 올라간 가격에 체결되고, 봇은 곧바로 되팔아 차익을 챙깁니다. 내 거래가 봇의 매수와 매도 사이에 끼는 모양이라 샌드위치라고 부릅니다.
결과적으로 나는 예상보다 적은 수량을 받게 되고, 그 차액이 봇의 이익이 됩니다. 화면에 뜬 예상 수량과 실제 받은 수량이 다르다면 상당수는 이것 때문입니다. 해킹이 아니라 정상적인 규칙 안에서 일어나는 일이라 되돌릴 방법도 없습니다.
슬리피지 허용치가 먹잇감 크기를 정한다
스왑 화면의 슬리피지 허용치는 '이만큼까지 불리해져도 체결하겠다'는 한도입니다. 이 값을 넉넉하게 열어두면 거래는 잘 되지만, 봇 입장에서는 그 한도까지가 가져갈 수 있는 몫이 됩니다. 허용치를 5%로 두면 5%까지 밀어붙여도 내 거래가 체결되기 때문입니다.
반대로 허용치를 좁히면 봇이 노릴 폭이 줄어 공격의 수지가 맞지 않게 됩니다. 다만 너무 좁히면 정상적인 가격 변동에도 거래가 실패하고 가스비만 날립니다. 유동성이 두꺼운 주요 코인은 0.1~0.5%, 변동성이 큰 신규 토큰은 그보다 넓게 잡되 필요 이상으로 열지 않는 것이 요령입니다. '거래가 자꾸 실패한다'며 허용치를 크게 올리는 것이 가장 흔한 실수입니다.
대기열을 숨기는 방법
더 확실한 방어는 애초에 대기열에 노출되지 않는 것입니다. 공개 멤풀을 거치지 않고 블록 생성자에게 직접 거래를 전달하는 비공개 경로를 쓰면, 봇이 내 거래를 미리 볼 수 없어 샌드위치 자체가 성립하지 않습니다. 플래시봇 프로텍트 같은 서비스가 이 역할을 합니다.
요즘은 주요 지갑에 이 기능이 내장돼 있는 경우가 많습니다. 설정에서 MEV 보호 옵션을 켜면 되므로 가장 손쉬운 방법입니다. 직접 RPC 주소를 바꾸는 방식도 있지만, 잘못된 주소를 넣으면 거래가 엉뚱한 곳으로 갈 수 있으므로 반드시 공식 문서에 안내된 값만 쓰세요.
그 밖에 할 수 있는 것
큰 주문은 여러 번으로 나누는 것이 도움이 됩니다. 봇도 가스비를 내고 움직이므로, 한 건당 뽑을 수 있는 이익이 작아지면 공격할 이유가 사라집니다. 유동성이 두꺼운 풀을 고르는 것도 같은 효과를 냅니다. 같은 금액이라도 풀이 깊으면 가격을 밀어 올리기 어려워 봇의 수익이 줄어듭니다.
여러 경로를 비교해 주는 애그리게이터를 쓰면 자동으로 주문을 쪼개 주기도 합니다. 다만 어떤 방법도 MEV를 완전히 없애지는 못합니다. 유동성이 얕은 신규 토큰을 큰 금액으로, 넓은 슬리피지로 사는 조합이 가장 위험하다는 것만 기억해도 대부분의 손실은 피할 수 있습니다.
사이트에서 직접 보기
유의사항
본 가이드는 정보 제공을 목적으로 하며, 특정 암호화폐의 매수·매도를 권유하는 투자 조언이 아닙니다. 암호화폐는 가격 변동성이 매우 크므로 투자 결정과 그 결과에 대한 책임은 본인에게 있습니다.