記事ディレクトリ
概要
著者は、データベース内の成熟したシャーディングテクノロジーをブロックチェーンに適用して、スループットを向上させています。
- PBFTのパフォーマンスと単一シャードのスループットを改善
- 効率的なシャード形成プロトコルを設計
- 悪意のあるノードが存在する場合の一般的な分散トランザクションプロトコルを設計
著者の設計の多くは、IntelのSGXに依存しています。
前書き
ブロックチェーンシステムは、分散された悪意のある環境でデータの透過性、整合性、および改ざんを提供します。これらのプロパティをサポートするために、ブロックチェーンを拡張することは困難です(ノード数とTPSが比較的低い)。
現在2つの拡張方法があります。1つは信頼できるハードウェアを使用する方法で、もう1つはシャーディングテクノロジーを使用する方法です。Elastico、OmniLedger、およびRapidChainはすべてシャーディングテクノロジーを使用しますが、暗号通貨に限定されており、ユニバーサルトランザクションをサポートしていません。
著者は、許可されたブロックチェーンにシャーディングを適用し、ブロックチェーンネットワークがより多くのノードをサポートし、より高いスループット(2000〜4000 /秒)をサポートするようにします。
そして、ブロックチェーンアプリケーションをもはや暗号通貨に限定しないでください。
シャーディングテクノロジーでは、原子性と分離を確保する必要があります。これは、ACIDの原子性と独立性です。
従来のデータベースはクラッシュ障害モデルであり、ブロックチェーンはビザンチン障害モデルであるため、直接適用することはできません。最初に3つの問題を解決する必要があります。
- 拡張ビザンチン合意アルゴリズム
- 安全で効率的なシャード形成(つまり、ノードを異なるシャードに分割する戦略)を実現する
- コーディネーターが悪意のあるノードである状況に対処する
最初の問題は、SGXを使用してビザンチンノードの等価動作を排除し、フォールトトレランス率を(n-1)/ 3から(n-1)/ 2に増やします。さらに、他のいくつかの最適化が行われました。
2番目の問題は、SGXを使用して乱数を生成し、ランダムな割り当てを保証することです。
3番目の問題は、悪意のある環境での分散トランザクション(クロスシャードトランザクション)をサポートするために、2段階ロックと2段階アルゴリズム(BFT)を使用しています。
予選
データベースのシャーディング
データベースは、トランザクションを処理するデータベースの機能を向上させるために、複数の小さなデータベースに分割されています。2フェーズコミットを使用して原子性を確保し、2フェーズロックを使用して同時実行制御を実行してトランザクションを分離します。
ブロックチェーンコンセンサスプロトコル
従来の分散型とは異なり、ネットワークにはビザンチンの停止ノードが存在する場合があります。
2つの主要なコンセンサスアルゴリズムがあり、1つはPoWなどのパブリックチェーンで一般的に使用され、もう1つはPBFTのバリアントです。
コンセンサスアルゴリズムは、2つの重要なプロパティを確認する必要があります。1つは活性、つまりすべてのノードが最終的に合意に達し、もう1つは安全であり、すべての通常のノードが発散せずに合意に達します。
PoWコンセンサスアルゴリズムは、同期ネットワークで50%のフォールトトレランスを実現できますが、一部の同期ネットワークでは、33%のフォールトトレランスに急速に低下します。スループットは低いですが、多くのノードに簡単に拡張できます。
PBFTは、(n-1)/ 3のフォールトトレランスレートを達成できます。コンセンサス速度ブロック、高スループット、ただし拡張が難しい(コンセンサスが必要とするメッセージは
)
信頼できる実行環境(TEE)
ここでは紹介は行わず、SGXの詳細な紹介は後で書きます。
概観
ゴール
- 大規模ネットワーク(ビットコインやイーサリアムと同じ大きさ)をサポート
- 高スループットをサポート(ビザなどの中央組織のように)
- ユニバーサルアプリケーションをサポートします(暗号通貨トランザクションだけでなく)
課題とアプローチ
高スループットをサポートするには、BFTコンセンサスが必要であり、大規模ネットワークに拡張できない、許可されたブロックチェーンに基づいている必要があります。
著者は、SGXを使用してBFTコンセンサスのフォールトトレランスを改善し(シャードのサイズを縮小)、シャーディングテクノロジーを使用して大規模ネットワークをサポートし(BFTコンセンサスのみを各小さなシャード内で実行できます)、SGXを使用してノードをシャードに分散します。
著者は、2PCと2PLを使用してクロスシャードトランザクションの安全性を保証し、BFTシャードで2PCを実行すると、生存性が保証されます。
システムと脅威モデル
…
コンセンサスプロトコルのスケーリング
比較後、著者はPBFTを拡張することを決定しました。
- 通信オーバーヘッドを改善する
- フォールトトレランスを向上させる
ノードの数を減らす
ビザンチンノードの等価を防止できる(つまり、異なるノードに異なるメッセージを送信する)ことができる場合は、フォールトトレランスを向上させる 。
筆者は、認証済みの追記専用メモリ方式(SGXが必要)を採用して等価動作を排除し、これに基づいて、AHL(認証済みHyperLedger)が実装されました。
コミケーションの最適化
実験により、上記の最適化だけでは理想的な拡張を実現することは依然として不可能であることが証明されています。著者は、多くのコンセンサスメッセージが破棄された(キューがいっぱいだった)ため、2つの最適化を提案しました。
- Hyperledger Fabricの元のメッセージキューは2つに分割され、1つはトランザクション要求の処理に使用され、もう1つはコンセンサスメッセージの処理に使用されます。これに基づいて、AHL +が実装されます
- ノードはリクエストを受信するとブロードキャストしなくなり、リーダーにリクエストを転送するだけです(リーダーは後でPBFTでブロードキャストするため)。
- Byzcoinで最適化を使用し、コレクターを使用して、からのメッセージ まで 、どのAHLR(認証済みハイパーレジャーリレー)が実装されているかに基づいて
シャード形成
- 本当にランダム
- 断片のサイズを合理的に選択する
- 定期的な更新シャード
分散トランザクション
安全の
ため、悪意のあるコーディネーターを防止するために2PCと2PLが使用され、コーディネーターとしてBFT参照委員会®が使用され、通常の2PCです。