Turbine – Solanaのブロック伝播プロトコルはスケーラビリティのトリレンマを解決します

Solanaを世界で最もパフォーマンスの高いブロックチェーンにする7つの主要技術の1つを理解する
Solanaは、世界で最もパフォーマンスの高い、管理者の承認を必要としないブロックチェーンです。Solana Testnetの現在の反復では、200の物理的に異なるノードのネットワークが、GPUで実行している場合、1秒あたり50,000トランザクションを超える持続スループットをサポートします。 これを実現するには、いくつかの最適化と新しいテクノロジーを実装する必要があり、その結果、ネットワーク容量が飛躍的に向上し、ブロックチェーン開発の新しい段階が始まります。
これらがSolanaのネットワークを可能にしている7つのイノベーションです:
Proof of History (POH)— コンセンサス以前の時計;
Tower BFT — PoH最適化したPBFT;
Turbine — ブロック伝播プロトコル;
Gulf Stream — Mempoolなしのトランザクションフォワーディングプロトコル;
Sealevel — スマートコントラクト並行実行時間;
Cloudbreak — 水平スケール化されたアカウントデータベース;と
Replicators — 分散台帳保管
この記事では、BitTorrentに触発されたSolanaのブロック伝播プロトコルであり、ブロックチェーンのスケーラビリティのトリレンマを解決するTurbineについてお話しします。
スケーラビリティのトリレンマ
ブロックチェーン技術のスケーラビリティのトリレンマは、帯域幅がすべてです。 現在のほとんどのブロックチェーンネットワークでは、ノードあたりの帯域幅が固定されているため、ノード数を増やすと、すべてのデータをすべてのノードに伝播するのに必要な時間が長くなります。 それは大きな問題です。
ただし、データの伝播方法を最適化する機会は無数にあります。 多くの新しいデータ伝播手法があり、それぞれ特定のアプリケーション向けに最適化されています。 たとえば、BitTorrentはTCPを使用して大規模なファイルを大規模なグループに提供するために最適化され、MediaFLOは物理的なレイヤーでのデータ伝播に最適化されたプロトコルであり、ワイヤレスネットワーク上のマルチキャストの効率を向上させます。
そのコンテキストで、Solanaのブロック伝播プロトコルであるTurbineの話に移って、Solanaネットワークがデータを伝播してブロックチェーンのスケーラビリティのトリレンマを解決する方法を説明します。
Turbine
Solana、スケール化のためのブロックチェーン
高性能ブロックチェーンの課題の1つは、ネットワークが大量のデータを多数のピアに伝播する方法です。 たとえば、2万のバリデーターのネットワークを考えてみましょう。 リーダーは、20,000 MBのバリデーターすべてに128 MBブロック(約500,000トランザクション@ 250バイト/トランザクション)を送信する必要があります。 素朴な実装では、リーダーが各バリデーターに一意の接続を持ち、128 MBを20,000回送信する必要があります。 その数の接続に対応するだけの十分な帯域幅がありません。
この問題に対する私たちのソリューションであるTurbineは、BitTorrentから大きく借りていますが、いくつかの主要な技術的詳細がこの2つを区別しています。 Turbineはストリーミング用に最適化されており、UDPのみを使用してデータを送信し、リーダー(ブロックプロデューサー)がデータをストリーミングする際にネットワークを介してパケットごとにランダムなパスを実行します。 リーダーは、ブロックを最大64KBのサイズのパケットに分割します。 128MBブロックの場合、リーダーは2,000個の64KBパケットを生成し、各パケットを異なるバリデーターに送信します。
Solana、スケール化のためのブロックチェーン
次に、各バリデーターは、近隣と呼ばれるピアのグループにパケットを再送信します。 ネットワークを近隣のツリーとして視覚化して、ネットワークが1,000以上のバリデーターに大きく成長できるようにします。
Solana、スケール化のためのブロックチェーン
各近隣は、そのデータの一部をその下の各近隣に送信する責任があります。
Solana、スケール化のためのブロックチェーン
各近隣が200ノードで構成される場合、ルートの単一リーダーから始まる3レベルネットワークは、2ホップで40,000バリデーターに到達できます。各ネットワークリンクが平均100ミリ秒であると仮定すると、約200ミリ秒になります。
この手法で直面する課題はセキュリティです。 例:敵対ノードは、データを再ブロードキャストしないか、誤ったデータを再ブロードキャストすることを選択できます。 敵のノードを処理するために、リーダーはリードソロモン消去コードを生成します。 消去コードを使用すると、各バリデーターはすべてのパケットを受信せずにブロック全体を再構築できます。
Solana、スケール化のためのブロックチェーン
リーダーがブロックのパケットの33%を消去コードとして送信すると、ネットワークはブロックを失うことなくパケットの33%を減らすことができます。 リーダーは、ネットワークの状態に基づいてこの数値を動的に調整することもできます。 これらの決定は、前のブロックからのリーダーの観測パケットドロップ率によって行われます。
すべてのバリデーターが同等に作成されるわけではありません。 ステーク加重選択アルゴリズムは、より利害関係の強いバリデーターがリーダーに近い近隣にあるようにツリーを構築します。 各バリデーターは独立して同じツリーを計算します。 消去コードは障害を修復できますが、敵対ノードは、特にサービス拒否攻撃と組み合わされた場合、結合されたステークサイズよりも高い障害を引き起こすことができるようにツリー内に位置する可能性があります。
この種の日食攻撃にどのように対処するでしょう? ファンアウトアルゴリズムは、パケットのデジタル署名に基づいたランダムソースを使用して、すべてのパケットに対してステーク加重ツリーを生成します。 各パケットは異なるパスを使用し、パスは事前にわからないため、近隣レベルのEclipse攻撃にはネットワークのほぼ完全な制御が必要になります。
Solana、スケール化のためのブロックチェーンSolanaのインセンティブtestnetイベントTour de SOLの詳細をご覧ください。
1つのレベルでは、この手法は200から1,000ノードの間でスケーリングします。 1 Gbpsをサポートするネットワークカードは、毎秒100万パケットを送信できます。 ネットワーク接続で許可されている場合、1つのバリデーターが1秒以内に最大64 KBのパケットを1,000台のマシンに送信できます。
SolanaはTurbine伝播と、Proof of History、Pipeline VM、Proof of Replicationなどのブレークスルーを組み合わせて、およびGulf Streamを使用することで、エコシステム全体で最もパフォーマンスの高いブロックチェーンを作成します。 Solanaのtestnetは本日公開されます。 https://explorer.solana.com/で見ることができます。 コストの観点から、ほんの少数のノードのみを実行しています。 ただし、ベンチマークのために、AWS、GCE、Azureの23のデータセンターにある(共有ハードウェアではなく)200を超える物理的に異なるノードに多くのインスタンスでスピンアップしました。
ランタイムは現在機能しており、開発者は今すぐtestnowにコードを展開できます。 開発者は現在C言語でスマートコントラクトを構築でき、私たちはRustツールチェーンに積極的に取り組んでいます。 RustはSolanaスマートコントラクト開発の主要言語になります。 Rustツールチェーンは、Solana Javascript SDKの一部として公開されており、Software Development Kitをさらに反復適応しています。
Solanaはまもなく、パブリックベータインセンティブバリデーターを起動して、Cosmosのゲームオブステークスに似たTour de SOLを介してノードを実行し、トークンを稼ぎながらSolanaネットワークの限界を試すよう大衆に働きかけます。