저자: Anatoly Yakovenko
편집자: Deep Tide TechFlow
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 모두에 투표합니다. 이 세 가지 분할 상황은 모두 합의 메커니즘을 통해 해결되어야 합니다.
具体的には、ゼロ近傍の目標は、ノードがブロックを同時に回復できるようにすることです。攻撃者がゼロ近傍に協力ノードを持っている場合、通常は 31/64 フラグメントを送信し、攻撃者がパーティションを作成する際に最後のフラグメントを選択的に送信できるようになります。正直なノードは、どの再送信者が遅れているかを検出し、ブロックを回復するとすぐに、失われたフラグメントを単一の正直なノードにプッシュできます。再送信者は、どこからでもフラグメントを受信するか、それを復元すれば続行できます。したがって、1 つの正直なノードが回復した直後に、すべてのノードによってブロックが回復される必要があります。どれくらい待機するか、それが絶対的なものか、各シャードの到着時間によって重み付けされているのか、ステークノードのレピュテーションを使用する必要があるのかを判断するには、テストが必要です。
各ブロック内の調整されたリーダーと再送信者の確率は、約 P リーダー シェア (64P 再送信者シェア) です。ステークの 1% を使用して、攻撃者がリーダーとして配置した 1/2 シャード バッチで攻撃を試みることができます。したがって、検出と軽減には十分な堅牢性が必要です。
非同期実行により未使用の容量を繰り越せるため、この攻撃は次のリーダーへの影響を最小限に抑えます。したがって、現在のリーダーが次のリーダーにスロットのスキップを強制し、次のリーダーが 4 つの連続したスロットを持っている場合、スキップされたスロットの未使用容量が引き継がれ、リーダーがスキップされたスロット トランザクションを再度含めることができます。
ブロックに含まれる可能性を高めるため、またはブロックに最初に入る可能性を高めるために、ユーザーがリーダー A と B の両方に同じトランザクションを送信すると、リソースの無駄が発生します。これが発生した場合、同時リーダーの数を増やしても、単に 2 倍のガベージ トランザクションを処理することになるため、パフォーマンスの向上は非常に限られます。
トランザクションの重複を避けるため、手数料支払い者の上位 N 人の数によって、トランザクションが有効なリーダー チャネルが決まります。この例では、最上位ビットが A または B を選択します。料金支払者は、その料金支払者が有効であり、そのランポート(Solana ブロックチェーンの通貨の最小単位)のすべてを他のリーダーに費やしていないことをリーダーが確信できるように、専用のチャネルに割り当てる必要があります。
これにより、スパム送信者は論理的に同一のトランザクションに対して少なくとも 2 回の支払いを強制されますが、最初のトランザクションである可能性を高めるために、スパム送信者は依然として論理的に同一のトランザクションを送信する可能性があります。
この動作を防ぐために、ユーザーはリーダーの優先料金に加えて、追加の 100% の書き込みオーダー料金を含めることを選択できます。手数料が最も高い注文が最初に執行されます。それ以外の場合は、先入れ先出し (FIFO) 順序が使用されます。同点の場合、順序は決定論的なランダム順列を使用して解決されます。したがって、スパム発信者にとっては、注文手数料を 2 回支払うよりも、注文手数料を増やして最初に約定する方が費用対効果が高くなります。
バンドルおよび再注文されたトランザクション シーケンスを処理するには、システムはバンドル トランザクションをサポートする必要があります。これにより、トランザクション シーケンス全体のシーケンス コストをカバーする注文手数料が追加される可能性があります。料金支払者はスケジュールされたチャネル内でのみ有効であるため、バンドルは独自のチャネル内のシーケンスのみを操作できます。
あるいは、注文手数料が必要ない場合もあります。 FIFO 順序が使用され、スパム送信者がすべてのチャネルで常に優先料金を請求される場合、インクルージョンの機会のコストを増やすために N 人のリーダーに支払うことは、最も可能性の高い最も近いリーダーに支払うのと同じであると市場が判断できるようにすることができるかもしれません。トランザクションに最初にオペレーターのコストを含めます。
ブロックチェーン ネットワークでは、同時リーダーが 2 人いる場合、システム全体の各ブロック容量制限を均等に分散する必要があります。具体的には、総容量だけでなく、書き込みロック制限などの特定の制限も含まれます。どのアカウントも 600 万個を超えるコンピューティング ユニット (CU) を書き込むことができず、各リーダーは最大 2,400 万個の CU の取引しかスケジュールできません。このようにして、最悪のシナリオでも、結合されたブロックがシステムの総容量制限を超えることはありません。
このメカニズムは、料金の変動やリソースの十分な活用につながる可能性があります。これは、優先順位のスケジューリングに対する料金が各リーダーの能力によって決定され、各リーダーは他の同時リーダーのスケジュール状況についてほとんど知識を持たないためです。
リソースの活用不足とその結果として生じる料金の高騰を軽減するには、未使用のブロック容量を将来のブロックにロールオーバーする必要があります。つまり、現在のマージされたブロックが書き込みロック、合計バイト数、または合計計算ユニット (CU) で使用する量が X 未満の場合、0
最近のブロック データに基づくと、ほとんどのブロックは通常 80% 埋まっていますが、書き込みロック制限は 50% をはるかに下回っています。一般的に言えば、将来のブロックのために常にある程度の予備容量が必要です。ブロックは一時的に容量制限を超える可能性があるため、実行はコンセンサス プロセスに対して非同期で行われる必要があります。非同期実行提案の詳細については、APE の記事を参照してください。
以上がSolana の共同新しい記事: Solana の同時リーダー メカニズムが MEV を解決し、世界的な価格発見エンジンを構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。