:SolanaのMempoolなしのトランザクションフォワーディングプロトコル

Solanaの50,000 TPS ブロックチェーンネットワークを可能にする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 — 分散台帳保管
このブログ投稿では、パフォーマンスの高い敵対ネットワーク向けのSolanaのmempool管理ソリューションであるガルフストリームについて説明します。 今後のブログ投稿では、これらの主要な革新の7つすべてを紹介します。
Mempoolの説明
mempoolは、送信済みでネットワークによってまだ処理されていないトランザクションのセットです。 現在、 BitcoinとEthereumのMempoolがライブで表示されています。
バイト単位で測定した30日間のBitcoin mempoolバイト単位で測定した30日間のBitcoin mempool
トランザクションで測定される30日間のEthereum mempoolトランザクションで測定される30日間のEthereum mempool
BitcoinとEthereumの場合、未確認のトランザクションの数は通常、上記のように20K〜100Kのレベルです。mempoolのサイズ(ほとんどの場合、未確認のトランザクションの数として測定されます)は、ブロックスペースの需要と供給に依存します。 ブロックチェーン時代の初期の頃でさえ、mempoolが上昇するとネットワーク全体に重大なボトルネック効果が生じます。
だから、Solanaはどのように良くなりますか? ネットワークスループットを増加させることなく、Solanaバリデーターは100,000のmempoolサイズを管理できます。 つまり、50,000 TPSのネットワークスループットでは、100,000トランザクションmempoolが数秒で実行されます。 それが、Solanaを世界で最もパフォーマンスの高い許可のないブロックチェーンにしている理由です。
すごいですよね? しかし、この単純な分析では多くの重要な要素を無視しています…
EthereumおよびBitcoinのMempoolは、ゴシッププロトコルを使用してピアツーピア方式でランダムノード間で伝播されます。 ネットワーク内のノードは、ローカルmempoolを表すブルームフィルターを定期的に構築し、そのフィルターに一致しないトランザクション(最低料金などの他のいくつかのトランザクションとともに)をネットワーク上の他のノードに要求します。 単一のトランザクションをネットワークの残りの部分に伝播するには、少なくともlog(N)ステップかかり、帯域幅、メモリ、およびフィルタリングに必要な計算リソースを消費します。
ベンチマーククライアントが1秒あたり100,000トランザクションを生成し始めると、ゴシッププロトコルはすぐに能力の限界に達します。 すべてのトランザクションをメモリに保持しながら、フィルターを計算し、マシン間でフィルターを適用するコストは非常に高くなります。 リーダー(ブロックプロデューサー)も同じトランザクションをブロック内で再送信する必要があります。つまり、すべてのトランザクションがネットワークを介して少なくとも2回伝播されます。 それは効率的でも機能的でもありません。
Gulf Streamの紹介
Solanaネットワーク上のこの問題の解決策は、トランザクションのキャッシュと転送をネットワークの限界まで追い込むことです。 ガルフストリームと呼びます。 すべてのバリデーターが今後のリーダーの順序を知っているため、クライアントとバリデーターはトランザクションを事前に予想されるリーダーに転送します。 これにより、バリデーターは事前にトランザクションを実行し、確認時間を短縮し、リーダーを迅速に切り替え、未確認のトランザクションプールからのバリデーターに対するメモリプレッシャーを軽減できます。 この解決策は、非決定論的なリーダーを持つネットワークでは不可能です。
それでは、どのように機能しますか? ウォレットなどのクライアントは、特定のブロックハッシュを参照するトランザクションに署名します。 クライアントは、ネットワークによって完全に確認されたかなり最近のブロックハッシュを選択します。 ブロックは約800ミリ秒ごとに提案され、ブロックを追加するたびに展開するにはタイムアウトが指数関数的に増加する必要があります。 デフォルトのタイムアウト曲線を使用すると、完全に確認されたブロックハッシュは、最悪の場合、32ブロック古くなっています。 トランザクションは、参照されるブロックの産物でのみ有効であり、Xブロックでのみ有効です。 Xはまだ確定していませんが、ブロックハッシュのTTL(有効期間)は約32ブロックであると予想されます。 ブロック時間を800ミリ秒とすると、これは24秒に相当します。
トランザクションがバリデーターに転送されると、バリデーターは次のリーダーのいずれかに転送します。 クライアントは、バリデーターからのトランザクション確認に署名できます。 クライアントは、ブロックハッシュが有限時間内に期限切れになるか、トランザクションがネットワークによって確認されることを知っています。 これにより、クライアントは、実行または失敗が保証されているトランザクションに署名できます。 ネットワークがロールバックポイントを超えてトランザクション参照のブロックハッシュの有効期限が切れると、クライアントはトランザクションが無効になり、チェーンで実行されないことを保証します。
Off the Chain:アナトリー・ヤコヴェンコ、CEO兼Solanaの共同設立者:「シャーディング」は実際に何を意味するのか…
アナトリーヤコヴェンコは、SolanaのCEO兼共同創立者です。 この会話では、アナトリーとアンソニー・ポンプリアノが議論します…podcasts.apple.com
このアーキテクチャには多くの肯定的な副作用があります。 まず、ロードバリデーターは事前にトランザクションを実行し、失敗したものを消去できます。 第二に、リーダーは、トランザクションを転送したバリデーターのステークの重みに基づいて、トランザクションの処理に優先順位を付けることができます。 これにより、大規模なサービス拒否中にネットワークを適切に低下させることができます。
今では、ブロックチェーンネットワークがそのmempoolが最小であるのと同じくらいしか機能していないことが明らかになりました。 トランザクションスループットが制限されているネットワークは、成長を続けるmempoolに対処するためにまったく新しいスケーリングテクノロジーを改良しようとする高貴な努力を引き受けますが、Solanaは、Proof of History、Gulf Stream、Pipeline VMなどの最適化で初期のブロックチェーンネットワークの問題を解決し、大きなトランザクションスループットを実現します。 これは、最初から世界規模での飛躍的なスピードであり、世界中のビジネス、経済、人々のための高機能な分散型インフラストラクチャを作成するための基本的な開発です。