MEV 공격(최대 클레임 가치 공격)은 거래 순서 대한 제어를 악용하여 특정 거래를 순서, 삽입 또는 제외하여 추가 수익을 얻는 블록체인 행위입니다.
저자: 웨이원허우
MEV란 무엇인가요?
MEV 공격(최대 클레임 가치 공격)은 거래 순서 에 대한 제어를 악용하여 특정 거래를 순서, 삽입 또는 제외하여 추가 수익을 얻는 블록체인 행위입니다.
가장 흔한 수법은 샌드위치 공격으로, 공격자가 사용자의 매수 주문 전후에 자신의 주문을 삽입하여 가격을 조작하여 차익거래를 통해 이익을 얻고 사용자가 더 높은 가격을 지불하도록 유도하는 수법입니다. 다른 수법으로는 선행매매(front-running)와 청산차익거래(liquidation arbitrage)가 있습니다.
샌드위치 공격과 프런트러닝 공격은 블록체인 생태계에 본질적으로 해롭다는 점에 유의해야 합니다. 블록체인 유동성에 기여하는 삼각 차익거래와는 달리, 샌드위치 공격과 프런트러닝 공격은 사용자의 거래 수익을 희생하여 이익을 취합니다. 샌드위치 공격과 프런트러닝 공격은 유동성을 손상시키며, 거래가 발생하지 않으면 이러한 공격은 사라집니다. 따라서 샌드위치 공격과 프런트러닝 공격은 블록체인(특히 DeFi)에 심각한 악영향을 미쳐 업계의 암적인 존재로 자리매김합니다.
MEVless 프로토콜
전제
MEVless는 다음과 같은 공격 시나리오에 적합합니다.
- 샌드위치 공격
- 선두 공격
MEVless가 적용되는 체인:
여기서 저는 MEVless 프로토콜을 L1 퍼블릭 체인 계층(특히 ETH 및 Solana와 같은 범용 블록체인)에서 사용하는 것을 권장하지 않습니다. MEVless는 블록 자체에 대한 특정 수정이 필요하며, 이러한 수정은 MEV 저항성을 위해 특별히 설계되었기 때문에 다른 업무 유형(특히 MEV 저항성이 필요하지 않은 비즈니스 유형)에는 적합하지 않을 수 있습니다. 저는 MEVless를 전용 업무 애플리케이션 체인이나 L2에 배치한 후, 최종적으로 ETH L1에 다시 배치하는 것을 권장합니다.
원칙
MEVless의 원리는 거래 주문과 관련하여 채굴자의 행동을 제한하는 것입니다. 저희의 접근 방식은 채굴자가 순서 에서 특정 거래 내용을 보지 못하도록 하는 것입니다. 또한, 채굴자가 세부 정보를 알지 못하는 상태에서 거래가 순서 되므로 채굴자조차도 MEV 공격을 감행할 수 없습니다. 주문 후, 이 주문은 다른 노드와 사용자가 알 수 있도록 공개 네트워크에 게시됩니다. 이 시점에서 거래 주문은 고정되어 블록에 통합됩니다. 이후 특정 거래 내용을 제출할 때는 이 합의 순서를 따라야 하므로 MEV 조작의 여지가 없습니다.
우리는 온체인 블록을 두 가지 유형으로 나눕니다.
- 순차 블록은 거래 해시 수신, 사용자 선불금 차감, 그리고 거래 순서 확정의 세 가지 작업만 수행합니다. 순차 블록 간의 간격은 실행 블록 간의 간격보다 짧을 수 있습니다.
- 블록을 실행하는 것은 일반 블록을 실행하는 것과 다르지 않습니다. 이는 단순히 이전에 정렬된 블록에서 약속된 순서 에 따라 거래를 실행하는 것을 포함합니다.
이 두 가지 유형의 블록은 번갈아 생성됩니다. 예를 들어, 제네시스 블록 다음으로 가장 높은 홀수 번호의 블록이 순서 지정 블록이고, 가장 높은 짝수 번호의 블록이 실행 블록입니다.
프로세스

- 블록 N(순차 블록)이 블록 생성을 시작합니다.
- 사용자는 자신의 거래 해시를 온체인 전송하고 선불금을 지불합니다. 선불금은 두 부분으로 구성됩니다.
1) 거래 해시 가스 수수료: 거래 해시를 저장하고 순서 데 사용되는 계산 비용입니다. 이 비용은 일반적으로 고정되어 있으며 필수입니다.
2) 보너스 팁: 주문 목록에서 거래 순서 최대한 높이기 위해 사용자가 지불하는 추가 수수료입니다. 이 금액은 고정되어 있지 않으며, 선택 사항일 수 있습니다. - 거래 해시를 수신한 후, 체인 노드는 다음 단계를 완료합니다.
- 거래 계좌에 선불금을 충당할 만큼 충분한 금액이 있는지 확인하세요.
- 거래 해시는 선불 금액을 기준으로 가장 높은 값부터 가장 낮은 값까지 순서 됩니다.
- 거래계좌에서 선불금액 공제
- 주문된 거래는 블록 단위로 커밋으로 저장되고 P2P 네트워크에 게시됩니다.
- 사용자가 최근 발행된 거래의 해시를 구독하고 쿼리한 후, 해당 해시가 온체인 의 순서 번호에 커밋되고, 사용자는 구체적인 거래 세부 정보를 온체인 과 DA(DA는 선택 사항)로 보냅니다.
- 블록 생성은 블록 N+1(실행 블록)에서 시작됩니다.
- 거래 세부 정보를 수신한 후, 체인 노드는 다음 단계를 완료합니다.
- DA에서 거래 내용을 검색합니다(이전 블록의 모든 순서 에 해당 거래 내용이 있는 경우 이 단계를 건너뜁니다).
- 거래 내용이 이전에 약속한 txHash와 일치하는지 확인하고, 일치하지 않으면 거래를 삭제합니다.
- 사전에 합의한 순서대로 거래를 실행합니다.
DA의 역할(선택)
이 시나리오에서 거래가 온체인 에 전송되면 채굴자가 해당 거래가 수익성이 있다고 판단하고 악의적으로 해당 거래를 보류하여 블록체인에 기록되지 않도록 한 다음, 사용자가 동일한 거래를 다시 전송할 때까지 기다렸다가 또 다른 공격을 시작할 수 있습니다.
이 시점에서 사용자의 거래 수익은 여전히 침식될 뿐만 아니라, 앞서 전송한 거래 해시로 인해 추가 선불금을 지불해야 합니다.
따라서 사용자가 전송한 거래가 블록체인에 기록되도록 하려면 DA(예: ETH Blob)가 필요합니다. 이렇게 하면 블록 생성 노드가 악의적으로 거래를 보류하더라도 다른 검증자 노드와 전체 노드는 거래 내용을 계속 수신할 수 있습니다.
해당 거래는 이후 블록 생성 과정에서 실행됩니다. 이렇게 하면 자신의 상태와 다른 노드의 상태 간 불일치를 방지하기 위해 블록 생성 노드는 해당 거래를 블록에 포함해야 합니다.
이 과정에서 DA는 사용자에게 추가적인 보호 계층을 제공하지만, 필수 옵션은 아닙니다. 사용자가 거래가 P2P 네트워크의 충분한 전체 노드에 충분히 전파되었다고 판단하는 경우, DA를 사용하지 않을 수 있습니다.
DA를 도입하면 체인의 채굴자 그룹이 공동 독점을 통해 사용자 거래를 보류하는 것을 방지할 수도 있습니다.
장점
- 암호화된 메모리 풀과 비교했을 때 MEVless 솔루션은 오버헤드가 낮아 CPU와 메모리를 많이 사용하는 암호 해독 작업이 필요 없습니다.
트랜잭션 해시만 먼저 정렬됩니다. 각 해시의 길이는 32바이트 또는 그보다 짧습니다. 정렬이 완료되면 해시 전송 시 네트워크 대역폭에 미치는 부담이 매우 줄어듭니다. - PBS와 비교했을 때, MEVless는 MEV 공격의 근원이 되는 거래 주문 권한부터 제약을 가합니다. 주문 전에 공격자가 거래 정보를 수집하는 것을 차단하기 때문에, 공격자가 MEV 공격을 시작하기 위한 전제 조건을 제거합니다.
- 이를 통해 탈중앙화 실행과 검증 가능한 결과가 가능해집니다. MEV 공격에 대응하는 모든 단계는 코드 계층에 하드코딩되어 있습니다. 전체 노드가 이 코드에 따라 코드를 실행하는 한, 결과는 결정론적이어서 블랙박스 작업을 통해 MEV 공격을 실행하기가 매우 어렵습니다.
- 특정 거래 내용을 알기 전에 합의를 위해 모든 노드에 약속된 거래 순서를 공개하지 않는 개인 정보 보호 메모리풀 노드와 달리, MEVless는 약속된 거래 순서를 전체 네트워크에 공개하여 모든 전체 노드가 블록에 쓰기 전에 합의에 도달하여 거래가 약속된 순서대로 실행되도록 보장합니다.
추측 MEV
이전에 표준 MEV 공격에 대해 논의했습니다. 그러나 공격자가 특정 거래 내역을 확인할 수 없고 특정 거래를 표적으로 삼을 수 없는 경우, 다른 공격 방법인 추측 MEV 공격을 사용할 수 있습니다.
이 공격 방법은 구체적으로 다음과 같은 방식으로 나타납니다. MEVless에서 공격자는 사전에 함정을 설치하고 거래 해시값을 온체인 에 제출할 수 있습니다. 블록 실행이 시작되고 모든 사용자가 자신의 거래 내용을 제출하면, 공격자는 다른 사용자가 제출한 거래 내용을 기반으로 공격에 유리한지 판단하고 계산할 수 있습니다. 공격에 유리한 경우, 공격자는 자신의 거래 내용을 제출하고, 그렇지 않은 경우, 거래 내용 제출을 거부하여 샌드위치 공격을 실현합니다.
MEVless 프로토콜에서는 이러한 접근 방식을 유지하기 어렵습니다. 투기에는 비용이 발생하기 때문입니다. 공격자가 수익성이 없다고 판단하여 거래 제출을 포기하면, txHash 제출 시 지불한 선불금이 낭비됩니다. 더욱이, 공격자가 자신의 거래 순서 더 높게 설정할수록...
그러면 그가 지불해야 할 선불 비용도 더 높아집니다.
그렇다면 일부 독자들은 블록 생성 노드가 직접 MEV 공격을 감행한다면, 이 선불금은 사실상 공격자에게 자신을 내주는 것과 같아 공격 비용을 완전히 상쇄하는 셈이 될 수 있다고 생각할 수 있습니다. 이 경우 어떻게 해결해야 할까요?
컨센서스 레이어 최적화
실제로 블록 생성 노드가 MEV 공격을 시작하면 선불된 금액은 블록 보상으로 충당되므로 공격 비용 낭비가 발생하지 않습니다. 이러한 투기적 방식을 약화시키기 위한 저희의 접근 방식은 채굴자가 자신이 다음 블록 생성자가 될지 예측할 수 없도록 하여 투기적 비용을 크게 증가시키는 것입니다. 이를 위해 컨센서스 레이어 에 다음과 같은 설계를 추가해야 합니다.
- 합의에 접근: L1 토큰 소각 증명. 채굴 그룹에 참여할 자격을 얻으려면 L1에서 일부 L1 토큰(ETH/USDT/USDC)을 소각해야 합니다.
- 블록 합의: L1 해시 기반 VDF. ETH L1의 최신 블록 해시를 입력으로 사용하고, VDF를 통해 무작위 출력값을 생성한 후 모든 채굴자의 출력값을 비교합니다. 최대값(출력값 * 소멸된 L1 토큰 수)을 얻는 노드가 이번 라운드의 블록 생성 노드가 됩니다.
- 최종 합의: 위 단계에서 생성된 블록은 3 ETH 슬롯 주기로 ETH L1에 업로드되며, (출력 값 * 소멸된 L1 토큰 수) 중 가장 큰 값을 갖는 포크 최종 브랜치로 선정됩니다. ETH에서 최종 확정된 후에는 롤백할 수 없습니다.
더욱이 이러한 합의 설계는 탈중앙화 증가함에 따라 MEV에 저항하는 데 더욱 효과적입니다. 왜냐하면 채굴자가 많을수록 각 채굴 노드가 다음 블록 생성 노드가 될지 예측하기가 더 어려워지고 추측적 MEV의 리스크 높아지기 때문입니다.
면책 조항: 블록체인 정보 플랫폼으로서, 본 사이트에 게시된 글은 작성자와 게스트의 개인적인 관점 일 뿐이며 Web3Caff의 입장을 대변하지 않습니다. 본 글에 포함된 정보는 참고용일 뿐이며 어떠한 투자 조언이나 제안도 아닙니다. 거주 국가 또는 지역의 관련 법률 및 규정을 준수하시기 바랍니다.
공식 Web3Caff 커뮤니티 에 오신 것을 환영합니다 : Twitter 계정 | Web3Caff Research Twitter 계정 | WeChat 독자 그룹 | WeChat 공식 계정





