저자: Cducrest
출처: ethresearch.ch
Shutterized Beacon Chain을 사용하면 거래 내용을 누구에게나 볼 수 있기 전에 트랜잭션을 선택적으로 암호화하고 체인에 통합할 수 있습니다. 이렇게 하면 검열 저항이 크게 증가하고 악의적인 MEV가 줄어듭니다. 이 기사에서는 이 개념을 자세히 소개합니다.
요약
- MEV는 중요한 문제이지만 L1 비콘 체인에서 직접 해결할 수 있습니다.
- Shutter는 솔루션을 제공합니다. 노드 그룹은 DKG 프로토콜을 사용하여 암호화 키를 계산하고 사용자가 이를 사용하여 트랜잭션을 암호화하고 암호화된 트랜잭션 체인에서 암호 해독 키를 해제할 수 있도록 합니다.
- DKG 프로토콜을 실행하도록 설정된 검증자를 사용하고 암호화된 트랜잭션을 위한 스케줄링 메커니즘을 도입함으로써 이 기술을 이더리움과 유사한 비콘 체인에 적용할 수 있습니다.
질문
채굴자 추출 가능 가치(MEV)와 선행 실행은 블록체인 공간에서 마지막으로 해결되지 않은 근본적인 문제로 널리 간주됩니다. 현재 기록상 수억 달러의 MEV가 있으며, 그 중 대부분은 사용자와 거래자에게 득보다 실이 더 많습니다. 시간이 지남에 따라 이 문제는 필연적으로 더 파괴적이 될 것이며 결국에는 우리 커뮤니티가 주류가 되는 것을 막는 치명적인 장애물이 될 수도 있습니다.
MEV라는 용어는 블록 생산자가 트랜잭션을 선택, 삽입, 주문 및 검토함으로써 얻는 이점을 설명하기 위해 Phil Daian 등에 의해 만들어졌습니다. 2020년에만 추출된 MEV의 가치는 3억 1,400만 달러 이상으로 하한선에 불과합니다. 일반적으로 MEV는 블록 생산자가 캡처하지 않고 정교한 봇을 사용하는 독립 엔터티가 캡처합니다.
MEV의 중요한 하위 집합은 기존 시장에서는 불법이지만 암호화폐 공간에서는 규제되지 않은 공격인 소위 선행 실행(front-running)으로 인한 수익입니다. 선두 주자는 네트워크에서 가치 있는 트랜잭션을 모니터링하고 대상을 식별한 후에는 트랜잭션을 체인에 일찍 포함시키기 위해 자신의 트랜잭션을 전송합니다. 그들은 더 높은 가스 가격을 지불하고, 전 세계에 분산된 네트워크 인프라를 운영하고, 스스로 블록 생산자가 되거나 역방향 채널을 통해 지불함으로써 선행 거래를 달성합니다.
선행 공격의 가장 일반적인 피해자는 탈중앙화 거래소의 거래자입니다. 선행매매는 그들이 시장에 제공하는 정보에 대해 공정한 보상을 받는 대신 더 높은 가격을 지불하도록 강요합니다. 반면에 선두 주자는 시스템에 유용한 기여를 하지 않고 거의 위험이 없는 방식으로 피해자로부터 이익을 빨아들입니다. 간단한 예는 두 개의 서로 다른 거래소에서 동일한 자산의 가격 차이를 벌어들이는 차익 거래입니다. 선행 거래자는 종종 다른 시장 참여자로부터 이러한 거래를 복사하고 더 일찍 실행함으로써 보상을 받는 반면 원래 거래자는 빈손으로 떠납니다.
교환 외에도 현상금 분배 및 경매를 포함하여 다른 많은 응용 프로그램도 영향을 받습니다. 중요한 것은 거버넌스 시스템(이더리움에서 크고 빠르게 성장하는 영역을 나타냄)의 투표에 의존하기 때문에 전면 실행 공격에 더 취약하다는 것입니다. 이러한 유형의 공격으로부터 보호할 수 있는 시스템이 없으면 심각한 문제가 발생할 수 있습니다.
전통적인 금융에서 프론트 러닝은 다양한 신뢰할 수 있는 중개자 및 운영자의 규제 또는 감독을 통해 (어느 정도까지) 억제될 수 있습니다. 허가가 필요 없는 탈중앙화 시스템에서는 그렇지 않기 때문에 주류 암호화폐 채택에 대한 전략적 장벽이 될 수 있습니다.
필요하다
우리는 Beacon Chain이 추가 오버헤드나 사용자 경험의 변화 없이 사용자에게 MEV 보호를 제공해야 한다고 믿습니다. 이 보호는 또한 추가 보안 보장과 함께 제공되어서는 안 되며, 추가 보안 가정이 실패할 경우 적어도 표준 비 MEV 보호 기능으로 대체되어서는 안 됩니다. 결국 합의 프로토콜과 비슷한 수준의 탈중앙화를 가져야 합니다.
셔터
Shutter는 사용자가 어두운 숲을 통과하는 선두주자로부터 사용자를 보호하는 방식으로 암호화된 트랜잭션을 보낼 수 있도록 합니다(모든 트랜잭션은 선두주자의 사냥터를 거쳐야 함). 예를 들어, 거래자는 Shutter를 사용하여 선행 거래자에게 주문을 불투명하게 만들 수 있습니다. 즉, 공격자는 그것이 매수 또는 매도 주문인지, 어떤 토큰이 스왑되는지 또는 어떤 가격인지 확신할 수 없습니다. 시스템은 트랜잭션이 다크 포레스트를 떠난 후에, 즉 트랜잭션의 실행 환경이 결정된 후에만 트랜잭션을 해독하고 실행합니다.
암호화 및 암호 해독을 위한 키는 Keypers라는 특수 노드 집합에서 제공됩니다. 키 홀더는 일반적으로 DKG(분산 키 생성) 프로토콜을 실행하여 암호화 키를 생성합니다. 그런 다음 해당 암호 해독 키를 발급합니다. 이 프로토콜은 최소 특정 수의 구성원이 협력할 때만 열 수 있는 암호화 잠금을 키 보유자 그룹이 제공할 수 있는 기술인 임계값 암호화를 사용합니다. 이를 통해 당사자나 소수의 결탁 키어가 사전에 어떤 것도 해독하거나 프로토콜을 깨뜨려 트랜잭션 실행을 방지할 수 없습니다. 일정 수의 Keyper("임계값")가 규칙을 위반하지 않는 한 프로토콜은 정상적으로 실행될 수 있습니다.
핵심 프로토콜 내의 L1 셔터
우리는 L1 명령 공격으로부터 개별 스마트 계약을 보호하기 위한 메커니즘인 온체인 셔터를 개발했지만 구성 가능성을 깨는 단점이 있습니다. 롤업 내부에 직접 셔터를 배치하는 방법을 추가로 조사하고 있습니다. 여기서 우리는 이더리움 스타일의 비콘 체인의 일부로 셔터 시스템을 통합하기 위한 디자인을 설명합니다. 이것의 장점은 사용자로부터 완전히 벗어나 구성 가능한 상태로 유지된다는 것입니다.
모든 셔터 시스템에서와 마찬가지로 이 프로토콜에는 키퍼 세트가 필요합니다. Keyper 그룹은 블록체인 유효성 검사자 중에서 위원회 또는 블록 생산자를 유사한 프로세스를 통해 선택하지만 훨씬 덜 자주 선택됩니다(예: 하루에 한 번). Keyper는 비콘 체인을 사용하여 공유 eon 키를 생성합니다. eon 공개 키는 거래를 암호화하기 위해 사용자에게 제공됩니다.
블록 생산자는 블록에 대한 암호화된 일반 텍스트 트랜잭션을 수집합니다. 여기에는 블록에서 실행될 일반 텍스트 트랜잭션이 포함되며 암호화된 트랜잭션은 향후 블록 높이에서 예약됩니다.
블록이 생성된 후 Keyper는 해당 블록에 대해 계획된 트랜잭션을 해독하기 위해 해독 키를 생성해야 합니다. 후속 블록에는 유효한 것으로 간주되는 암호 해독 키가 포함되어야 합니다. 블록의 사후 상태는 먼저 블록에 대해 예정된 암호화된 트랜잭션을 실행한 다음 블록에 포함된 일반 텍스트 트랜잭션을 실행하여 계산됩니다.
실행 순서와 컨텍스트(블록 번호, 타임스탬프 등...)는 암호문 트랜잭션이 포함된 순서와 이전 블록의 컨텍스트에 따라 결정됩니다. 트랜잭션이 복호화되기 전에 실행 컨텍스트가 결정되므로 트랜잭션 데이터에 대한 정보를 사용하여 MEV를 추출하는 것은 불가능합니다. 또한 낙관적으로 선행 거래에 사용될 수 있는 사이드 채널 정보를 방지합니다.
암호화 거래 수수료
블록 생산자는 암호화된 거래가 블록에 포함될 가치가 있는지 어떻게든 확인해야 합니다. 즉, 거래 데이터를 몰라도 거래 수수료를 지불할 수 있습니다. 실행 시 수수료가 지불되는 경우 계정이 포함과 실행 사이의 잔액을 고갈시킬 수 있으므로 블록 생산자는 지불을 보장할 수 없습니다.
따라서 암호화된 트랜잭션은 체인에 포함될 때 수수료를 지불하는 서명된 봉투를 제공하여 포함을 정당화합니다. 봉투 내용에는 가스 소비, 가스 가격 및 지불인 주소를 복구하기 위한 이러한 필드의 서명이 포함됩니다. 이 수수료는 암호문 트랜잭션이 포함될 때, 즉 실행될 때가 아니라 블록 생산자에게 지불됩니다. 암호문 트랜잭션의 가스 소비는 블록의 가스 한도에 포함됩니다.
기존의 가스 한도는 가스 소비로 대체되어야 합니다. 즉, 트랜잭션이 해독되고 적용될 때 일부만 사용하더라도 사용자가 사용하려는 모든 가스에 대해 요금이 부과됩니다. 이는 거래가 체인에 포함될 때 수수료를 지불하기 위해 필요합니다. 이는 블록 생성자가 매우 높은 가스 한도(다른 트랜잭션 및 수수료 대체)가 있는 트랜잭션을 매우 적은 가스(및 수수료)를 사용하는 트랜잭션으로 해독하는 것을 방지합니다.
Envelope 트랜잭션을 사용하는 또 다른 단점은 트랜잭션의 메타데이터가 유출된다는 것입니다. 즉, 지불인과 가스 가격/소비 한도가 알려져 있습니다. 이 유출된 정보를 사용하여 MEV의 일부를 여전히 추출할 가능성이 있습니다.
이러한 수수료 지불 문제를 해결하고 메타데이터 정보 유출을 방지하기 위해 zk-SNARK 접근 방식을 구상할 수 있다는 지적이 나왔다.
ASD
키 사용자가 생성한 eon 공개 키 및 암호 해독 키에는 t/n 정직한 참가자의 임계값이 필요합니다. 파라미터 t 및 n은 프로토콜에 맞게 조정할 수 있습니다. t가 높을수록 키퍼가 조기에 트랜잭션을 공모하고 해독하기가 더 어려워집니다(MEV 추출 허용). 반면에 낮은 t는 암호 해독 키가 적시에 해제될 수 있음을 보장할 수 있습니다.
암호문 트랜잭션의 복호화 및 적용을 강제하기 위해 우리는 모든 블록에 복호화 키를 포함하도록 강제해야 합니다. 이 경우 Keper가 오프라인 상태가 되거나 복호화 키 생성을 거부하면 블록 생성이 중지됩니다.
실행 예정인 암호화된 트랜잭션이 없는 경우 복호화 키 없이 블록을 생성하도록 허용하여 Keyper의 활동을 완화할 수 있습니다. Keyper가 오프라인 상태가 되면 암호화된 트랜잭션으로 블록을 분할하고 일반 텍스트 트랜잭션으로만 블록을 생성하여 체인을 복구합니다.
또한 n개의 슬롯 동안 블록이 생성되지 않으면(복호화 키가 없기 때문에) 다음 블록에 복호화 키가 포함될 필요가 없으며 복호화된 트랜잭션이 무시된다고 말함으로써 활성을 복원할 수 있습니다. 이는 체인의 기존 비 MEV 보호 기능으로 대체됩니다.
배포된 변경 사항
우리는 Keyper 소프트웨어와 모든 암호화/복호화 로직을 개발했습니다. 우리는 또한 블록 생산자(또는 주문자/시퀀서)가 암호화된 트랜잭션 배치를 커밋할 수 있도록 허용하는 논리를 개발하여 이제 암호 해독 키를 해제해도 안전하다는 신호를 Keyper에 보냅니다.
지금 해야 할 일은 클라이언트 배포에서 블록 정확성을 정의하는 규칙과 트랜잭션 실행 규칙을 변경하는 것입니다. 클라이언트에 트랜잭션을 제출하기 위한 인터페이스를 다시 정의해야 합니다. 마지막으로, dapp이 공개 키 암호화 트랜잭션이 필요한 MEV 보호 체인과 원활하게 통합될 수 있도록 도구와 플러그인을 작성해야 할 수 있습니다.