> 웹3.0 > 본문

솔라나 공동 신규 기사: 솔라나의 동시 리더 메커니즘으로 MEV 문제를 해결하고 글로벌 가격 발견 엔진 구축

王林
풀어 주다: 2024-07-12 17:29:52
원래의
715명이 탐색했습니다.

저자: Anatoly Yakovenko

편집자: Deep Tide TechFlow

Solana 联创新文:Solana 的并发领导者机制,解决 MEV 并构建全球价格发现引擎

개요

MEV는 무허가 블록체인의 근본적인 문제입니다. 대부분의 무허가형 블록체인과 마찬가지로 솔라나의 목표는 체인 운영자가 사용자로부터 추출하는 MEV를 최소화하는 것입니다.

Solana의 접근 방식은 리더(예: 블록 생산자) 간의 경쟁을 극대화하여 MEV를 줄이는 것입니다. 이는 슬롯 시간을 단축하고, 단일 리더가 연속적으로 예약한 슬롯 수를 줄이고, 슬롯당 동시 리더 수를 늘리는 것을 의미합니다.

일반적으로 초당 리더가 많다는 것은 사용자가 T초를 기다린 후 들어오는 리더로부터 최고의 제안을 선택할 수 있는 옵션이 더 많다는 것을 의미합니다. 리더가 많을수록 좋은 리더가 블록 공간을 제공하는 데 드는 비용이 낮아져 사용자가 좋은 리더와만 거래하고 나쁜 리더의 거래를 제외하는 것이 더 쉬워집니다. 무엇이 좋고 무엇이 나쁜지 시장이 결정해야 합니다.

Solana의 더 큰 비전은 중앙 집중식 거래소(CEX) 중 최고의 성능과 경쟁할 수 있는 글로벌 무허가 가격 검색 엔진을 구축하는 것입니다.

싱가포르에서 시장에 영향을 미치는 이벤트가 발생하더라도 메시지는 광섬유를 통해 빛의 속도로 뉴욕의 CEX로 전송되어야 합니다. 메시지가 뉴욕에 도달하기 전에 솔라나 네트워크의 리더는 해당 블록에서 메시지를 방송했어야 합니다. 물리적인 인터넷 분할이 동시에 발생하지 않는 한, 솔라나의 상태는 메시지가 뉴욕에 도달할 때 이미 메시지를 반영하고 있을 것입니다. 따라서 뉴욕에서 CEX와 Solana 사이에 차익거래 기회가 있어서는 안 됩니다.

이 목표를 완전히 달성하려면 솔라나에는 매우 낙관적인 확인을 보장하는 많은 동시 리더가 필요합니다.

여러 리더 구성

현재 리더 일정과 마찬가지로 시스템에서는 각 슬롯을 1명의 리더가 아닌 2명의 리더로 구성합니다. 두 리더를 구별하기 위해 한 채널에는 A 라벨이 지정되고 다른 채널에는 B 라벨이 지정됩니다. A와 B는 독립적으로 회전할 수 있습니다. 이 계획을 실행하기 위해 대답해야 할 질문은 다음과 같습니다.

  • 블록 A와 B가 서로 다른 시간에 도착하거나 실패하면 어떻게 되나요?

  • 블록 A와 B의 거래 순서를 병합하는 방법은 무엇입니까?

  • A와 B 사이에 블록 용량을 할당하는 방법은 무엇입니까?

동시 블록 전송

특정 프로세스를 이해하려면 터빈을 빠르게 이해해야 합니다.

리더는 블록을 만들 때 블록을 조각으로 분할합니다. 32개 조각의 배치는 32개 코드 조각의 삭제 코드입니다. 64개의 조각 중 다수가 머크화되고 루트 서명되었으며 이는 이전 로트에 연결되었습니다.

각 샤드는 독립적인 결정론적 무작위 경로를 통해 전송됩니다. 각 마지막 배치의 재전송자는 루트에 서명합니다.

수신자의 관점에서 각 수신기는 인증된 재전송자로부터 32개의 조각을 수신해야 합니다. 누락된 부분은 무작위로 수리됩니다.

이 숫자는 대기 시간에 미치는 영향을 최소화하면서 늘리거나 줄일 수 있습니다.

재송신기 조각 경로 샘플링이 충분히 무작위이고 공유에 의해 가중치가 부여된다고 가정하면 협력적으로 분할된 네트워크에 필요한 공유는 도착 시간과 데이터 측면에서 모두 ε 공유보다 훨씬 더 큽니다. 수신자가 32/64(구성 가능) 샤드의 각 배치가 T 시간 내에 도착하는 것을 감지하면 모든 노드도 마찬가지일 가능성이 높습니다. 이는 32개의 임의 노드가 충분히 크고 모두가 무작위로 동일한 파티션에 있을 가능성이 낮기 때문입니다.

분할이 발생하면 합의를 통해 해결해야 합니다. 이는 보안에 영향을 미치지 않지만 상대적으로 느립니다.

다중 블록 생산

단일 블록이 전송되면 각 수신자(다음 리더 포함)는 각 블록에 대해 샤드 배치가 도착하는 것을 볼 수 있습니다. 블록이 T 밀리초 동안 불완전하면 현재 리더는 블록을 건너뛰고 블록 없이 포크를 만듭니다. 리더가 틀리면 다른 모든 노드가 해당 블록에 투표하고 리더의 블록은 건너뜁니다. 결함이 없는 리더는 즉시 투표에 표시된 가장 무거운 포크로 전환합니다.

다중 블록 전송의 경우 각 노드는 관찰된 블록 파티션에 투표하기 전에 최대 T 밀리초를 기다려야 합니다. 두 명의 동시 리더의 경우 가능한 시나리오는 A, B 또는 A와 B입니다. 추가 대기 시간은 블록이 지연되는 경우에만 추가됩니다. 정상적인 작동에서는 모든 블록이 동시에 도착해야 하며, 각 검증인은 두 블록이 도착하자마자 투표할 수 있습니다. 따라서 실제로 T는 0에 가까울 수 있습니다.

이 공격에서 집중해야 할 것은 매우 적은 양의 토큰을 스테이킹한 리더가 슬롯 경계에서 약간 나중에 블록을 전송할 수 있는지 여부입니다. 이를 통해 네트워크가 안정적으로 분할되고 네트워크가 많은 비용을 소비하도록 강제할 수 있습니다. 문제를 해결하기 위한 합의 메커니즘을 통과할 시간입니다. 네트워크의 일부는 A에 투표하고, 일부는 B에 투표하며, 네트워크의 일부는 A와 B 모두에 투표합니다. 이 세 가지 분할 상황은 모두 합의 메커니즘을 통해 해결되어야 합니다.

구체적으로 제로 네이버후드의 목표는 노드가 동시에 블록을 복구하도록 보장하는 것입니다. 공격자가 0 근방에 협력 노드를 갖고 있는 경우 정상적으로 31/64 조각을 전송할 수 있으며 공격자가 파티션을 생성하려는 시도에서 마지막 조각을 선택적으로 전송할 수 있습니다. 정직한 노드는 어떤 재전송자가 늦었는지 감지하고 블록을 복구하자마자 누락된 조각을 단일 정직한 노드에 푸시할 수 있습니다. 재전송자는 어디에서나 조각을 수신하거나 복원하면 계속할 수 있습니다. 따라서 하나의 정직한 노드가 복구된 직후 모든 노드에서 블록을 복구해야 합니다. 얼마나 오래 기다려야 하는지, 그것이 절대적인지, 각 샤드 도착 시간에 따라 가중치가 부여되는지, 스테이크 노드 평판을 사용해야 하는지를 결정하려면 테스트가 필요합니다.

각 블록에서 조정된 리더와 재전송자가 나올 확률은 대략 P 리더 공유(64P 재전송자 공유)입니다. 지분의 1%는 공격자가 리더로서 배열한 ½ 샤드 배치로 공격을 시도하는 데 사용될 수 있습니다. 따라서 탐지 및 완화는 충분히 강력해야 합니다.

비동기 실행을 통해 사용되지 않은 용량을 이월할 수 있으므로 이 공격은 다음 리더에게 최소한의 영향을 미칩니다. 따라서 현재 리더가 다음 리더에게 슬롯을 건너뛰도록 강제하고 다음 리더가 4개의 연속 슬롯을 갖게 되면 건너뛴 슬롯의 사용되지 않은 용량이 이월되어 리더가 건너뛴 슬롯 트랜잭션을 다시 포함할 수 있습니다.

동시 블록 병합

사용자가 블록에 포함되거나 첫 번째가 될 가능성을 높이기 위해 리더 A와 B 모두에게 동일한 트랜잭션을 보내는 경우 이는 리소스 낭비를 초래합니다. 이런 일이 발생하면 동시 리더 수를 늘리면 단순히 두 배의 쓰레기 트랜잭션을 처리하게 되므로 성능 향상이 매우 제한됩니다.

중복 거래를 피하기 위해 상위 N명의 수수료 납부자가 거래가 유효한 리더 채널을 결정합니다. 이 예에서는 가장 높은 비트가 A 또는 B를 선택합니다. 수수료 납부자는 독점적인 채널에 배정되어야 리더는 수수료 납부자가 유효하고 모든 자금(솔라나 블록체인의 최소 통화 단위)을 다른 리더에게 지출하지 않았음을 확신할 수 있습니다.

이렇게 하면 스패머는 논리적으로 동일한 거래에 대해 최소 두 번 비용을 지불해야 하지만, 첫 번째 거래가 될 확률을 높이기 위해 스패머는 여전히 논리적으로 동일한 거래를 보낼 수 있습니다.

이러한 현상을 방지하기 위해 사용자는 리더 우선 수수료 외에 100% 소각 주문 수수료를 추가로 포함하도록 선택할 수 있습니다. 수수료가 가장 높은 주문이 먼저 실행됩니다. 그렇지 않으면 FIFO(선입선출) 순서가 사용됩니다. 동점인 경우 결정론적 무작위 순열을 사용하여 순서가 결정됩니다. 따라서 스패머가 포함 수수료를 두 번 지불하는 것보다 주문 수수료를 높이고 먼저 실행하는 것이 더 비용 효율적입니다.

묶음 및 재주문 거래 순서를 처리하려면 시스템에서 전체 거래 순서의 순서 비용을 충당하기 위해 주문 수수료를 추가할 수 있는 묶음 거래를 지원해야 합니다. 수수료 지불자는 예약된 채널에서만 유효하므로 번들은 자체 채널에서만 시퀀스를 조작할 수 있습니다.

또는 주문 수수료가 필요하지 않을 수도 있습니다. FIFO 주문이 사용되고 스패머에게 항상 모든 채널에서 우선 수수료가 부과되는 경우 N 리더에게 비용을 지불하여 포함 기회 비용을 늘리는 것이 가장 가까운 리더에게 비용을 지불하는 것과 동일하다고 시장이 결정하도록 허용하는 것이 가능할 수 있습니다. 거래를 포함하려면 먼저 운영자의 비용이 필요합니다.

블록 리소스 관리

블록체인 네트워크에서 두 명의 동시 리더가 있는 경우 각 시스템 전체 블록 용량 제한을 균등하게 분배해야 합니다. 특히 총 용량뿐만 아니라 쓰기 잠금 제한과 같은 각 특정 제한도 있습니다. 어떤 계정도 600만 CU(컴퓨팅 단위)를 초과하여 쓸 수 없으며 각 리더는 최대 2400만 CU까지만 거래를 예약할 수 있습니다. 이런 방식으로 최악의 시나리오에서도 병합된 블록은 시스템의 총 용량 제한을 초과하지 않습니다.

이 메커니즘은 수수료 변동 및 리소스 활용도 저하로 이어질 수 있습니다. 왜냐하면 예약 우선 순위에 대한 수수료는 각 리더의 역량에 따라 결정되고 각 리더는 다른 동시 리더의 예약 상태에 대해 거의 알지 못하기 때문입니다.

리소스 활용도가 낮아서 발생하는 수수료 급증을 완화하려면 사용되지 않은 블록 용량을 향후 블록으로 롤오버해야 합니다. 즉, 현재 병합된 블록이 쓰기 잠금, 총 바이트 또는 총 컴퓨팅 단위(CU)에서 X 미만을 사용하는 경우 특정 값이 나올 때까지 0 < K < 최대값. 비동기식 실행은 체인 상단에서 최대 한 에포크까지 지연될 수 있으므로 용량 롤링이 상당히 공격적일 수 있습니다.

최근 블록 데이터에 따르면 대부분의 블록은 일반적으로 80% 채워져 있는 반면 쓰기 잠금 제한은 50%보다 훨씬 낮습니다. 일반적으로 말하면, 미래의 블록을 위한 여유 용량이 항상 있어야 합니다. 블록은 일시적으로 용량 제한을 초과할 수 있으므로 실행은 합의 프로세스와 비동기적으로 이루어져야 합니다. 비동기 실행 제안에 대한 자세한 내용은 APE 문서를 참조하세요.

위 내용은 솔라나 공동 신규 기사: 솔라나의 동시 리더 메커니즘으로 MEV 문제를 해결하고 글로벌 가격 발견 엔진 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:chaincatcher.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!