## MEVless 프로토콜
확장: Layer2/3를 위한 무신뢰성 온체인 안티-MEV 솔루션
### 전제 조건
MEVless 적용 가능한 공격 시나리오:
- 샌드위치 공격
- 선두 공격
MEVless 적용 체인:
본 논문에서 저자는 MEVless 프로토콜을 L1 퍼블릭 체인 수준(특히 이더리움(ETH) 및 솔라나(Solana) 와 같은 범용 블록체인)에서 사용하는 것을 권장하지 않습니다. MEVless는 블록 자체에 대한 특정 수정을 요구하는데, 이는 MEV 저항성을 위해 특별히 설계되었으며, 다른 비즈니스 유형(특히 MEV 저항성이 필요하지 않은 비즈니스 유형)에는 적합하지 않을 수 있기 때문입니다. 저자는 MEVless를 전용 DeFi 애플리케이션 체인이나 L2 체인에 배치한 후, 이더리움(ETH) L1 체인으로 돌아와 결제할 것을 권장합니다.
### 원칙
MEVless의 원리는 거래 순서 지정 시 채굴자 행동을 제한하는 데 있습니다. 저희의 접근 방식은 채굴자 주문 과정에서 특정 거래 내용을 보지 못하도록 하는 것입니다. 거래는 채굴자 거래 내용을 보지 않고도 주문되므로, 채굴자 조차도 특정 거래 내용을 알지 못하기 때문에 MEV 공격을 수행할 수 없습니다. 주문 후에는 다른 노드와 사용자에게 알릴 수 있도록 순서를 공개 네트워크에 게시해야 합니다. 이 시점에서 거래 순서가 확정되어 블록 에 포함됩니다. 따라서 나중에 특정 거래 내용이 제출되면 이 합의 순서에 따라 실행되므로 MEV 연산을 수행할 여지가 없습니다.
우리는 온체인 블록을 두 가지 유형으로 구분합니다.
- 거래 해시 수신, 사용자 선불금 공제, 거래 주문 약정 제공의 세 가지 작업만 완료하는 블록 주문
- 실행 블록은 일반 블록과 다르지 않으며, 이전 주문 블록 에서 커밋된 순서에 따라서만 트랜잭션을 실행하면 됩니다.
이 두 가지 유형의 블록은 번갈아 생성됩니다. 예를 들어, 제네시스 블록 (Genesis Block) 다음에 블록 높이가 홀수인 블록은 정렬 블록이고, 블록 높이가 짝수인 블록은 실행 블록입니다.
### 프로세스
1. 블록 N(주문 블록)이 블록 생산을 시작합니다.
2. 사용자는 거래 해시를 체인에 전송하고 특정 선불금을 지불합니다. 선불금은 두 부분으로 구성됩니다.
거래 해시 가스 수수료: 주문 시 거래 해시 저장 및 계산 수수료로 사용됩니다. 이 수수료는 일반적으로 고정되어 있으며 필수입니다.
추가 팁: 사용자가 최대한 빨리 거래를 주문할 수 있도록 추가 수수료를 지불합니다. 이 금액은 고정되어 있지 않으며 0이 될 수 있습니다.
3. 체인 노드가 거래 해시를 수신한 후 다음 단계를 완료합니다.
- 거래 계좌에 선불금을 지불할 충분한 자금이 있는지 확인하세요.
- 선불 금액을 기준으로 거래 해시를 높은 순서에서 낮은 순서로 정렬합니다.
- 거래계좌에서 선불금액을 공제합니다.
- 정렬된 거래 순서를 블록 에 커밋으로 저장하고 P2P 네트워크에 게시합니다.
4. 사용자가 구독하고 체인에 커밋된 거래 해시 의 주문 순서 번호를 확인하기 위해 쿼리를 보낸 후 특정 거래 내용을 체인과 DA로 보냅니다(DA는 선택 사항입니다).
5. 블록 N+1 (실행 블록)이 블록 생산을 시작합니다.
6. 체인 노드가 거래 내용을 수신한 후 다음 단계를 완료합니다.
- DA에서 거래 내용을 가져옵니다(이전 블록 에서 주문에 커밋된 모든 txHash에 해당 거래 내용이 있는 경우 이 단계를 건너뜁니다)
- 거래 내용이 이전에 커밋된 주문 txHash와 일치하는지 확인하고 일치하지 않으면 삭제합니다.
- 이전에 커밋된 순서에 따라 트랜잭션을 실행합니다.
이 과정은 순환적으로 계속됩니다.
### DA의 역할(선택 사항)
이 방식에서는 거래 내용이 체인에 전송된 후, 채굴자 해당 거래가 수익성이 있다고 판단하여 악의적으로 거래를 보류하여 체인에 포함되지 않도록 한 다음, 사용자가 동일한 거래를 다시 전송하여 공격할 때까지 기다릴 수 있습니다. 이 경우, 사용자의 거래 수익은 여전히 감소할 뿐만 아니라, 이전에 전송된 거래 해시 대한 선불금도 낭비하게 됩니다.
따라서 사용자가 전송한 거래가 온체인에 확실히 포함되도록 하려면 DA(예: 이더리움(ETH) Blob)가 필요합니다. 이렇게 하면 블록 생성 노드가 악의적으로 거래를 보류하더라도 다른 검증 노드와 전체 노드는 거래 내용을 수신하고 후속 블록 생성 과정에서 해당 거래를 실행할 수 있습니다. 이를 통해 블록 생성 노드는 다른 노드와의 상태 불일치를 방지하기 위해 해당 거래를 블록에 포함해야 합니다.
이 과정에서 DA는 사용자에게 추가적인 보호 계층을 제공하며, 필수 사항은 아닙니다. 사용자가 거래가 P2P 네트워크의 충분한 전체 노드에 충분히 전파되었다고 판단하는 경우, DA를 사용하지 않도록 선택할 수 있습니다. DA를 도입하면 체인 내 채굴자 공동으로 사용자 거래를 독점하고 보류하는 것을 방지할 수도 있습니다.
## 장점
1. 암호화된 메모리풀과 비교했을 때, MEVless 솔루션은 오버헤드가 낮아 CPU와 메모리에 에너지를 많이 소모하는 복호화 작업이 필요하지 않습니다. MEVless는 트랜잭션 해시를 먼저 정렬하며, 해시 길이는 32바이트(또는 그보다 더 짧음)에 불과합니다. 정렬이 완료된 후에는 전파가 네트워크 대역폭에 미치는 부담을 최소화합니다.
2. PBS와 비교했을 때 MEVless는 공격자가 거래 정보에 접근하여 주문하기 전에 차단함으로써 MEV 공격의 근원인 거래 주문 권한을 제한합니다. 이를 통해 공격자가 MEV 공격을 수행하기 위한 전제 조건을 제거합니다.
3. 분산 실행 및 검증 가능한 결과 도출에 유리합니다. 모든 MEV 방어 방법과 단계는 코드 수준에서 하드코딩됩니다. 전체 노드가 이 코드에 따라 실행되는 한, 결과는 결정론적이어서 블랙박스 작전에서 MEV 공격을 수행하기 어렵습니다.