Shardeumの動的状態シャーディングを探索し、ブロックチェーンの拡張性の問題を解決する

Shardeumと動的状態シャーディング: シャーディングの別の可能性

2022年9月15日、イーサリアムは待望の合併(Merge)を完了しました。これは歴史的な瞬間であり、イーサリアムはこれに向けて5年間準備し、6回延期しました。繰り返しのデバッグと長期的な開発のため、多くの人々は合併が自然とより高い可用性、安全性、および持続可能性をもたらすと誤解していますが、実際にはそうではありません。PoWからPoSへの移行は、単にレールと車輪を交換しただけであり、直接的により速い速度、より大きな容量、より低い手数料をもたらすものではありません。これらを実現できるのは、シャーディング能力を持つメインネットと、拡張性を強化するLayer2ソリューションのセットです。

イーサリアムの創設者ヴィタリック・ブテリンが指摘したように、シャーディングはスケーラビリティの三重苦に対する拡張ソリューションの一つであり、ネットワーク内のノードをより小さなグループに分けて、異なるトランザクションセットを処理し、並列処理を実現します。全ネットワークで集約するために必要な大量のデータの処理負担を軽減することで、スーパーでの買い物の会計時のように、複数の会計通路を設けることで、直感的に待機時間を減らし、会計効率を向上させることができます。

これがシャーディングの論理であり、直接的でシンプルですが、悪魔は細部に宿ります。原理と方向は間違っていませんが、実施中に多くの問題に直面することがあります。本記事では、"シャーディング"という道における方向性と困難を整理し、星空を見上げながら地に足をつけたシャーディング探求者の地図を描きます。また、既存のシャーディングソリューションを比較することで、いくつかの共通の問題を見つけ、実行可能な探求の方向性を提案します: Shardeumと動的シャーディング。

! Shardeum:シャーディングの別の可能性

一、"シャーディング"について

簡単に言えば、不可能な三角形の制約を考慮し、イーサリアムを座標系の原点(0、0)として出発し、"縦方向"と"横方向"の2つの考え方に従って、現在のブロックチェーンのスケーラビリティの方法を2つの大きなカテゴリに分けます:

縦のスケーリング(Vertical Scaling):システムの既存ハードウェアの性能を向上させることによって実現されます。分散型ネットワークを構築し、ネットワーク内の各ノードがスーパーコンピュータの能力を持つ必要があるため、各ノードには「より良い」ハードウェアが必要です。この方法は簡単かつ効果的で、特に高頻度取引、ゲーム、および他の遅延に敏感なアプリケーションシーンに最適で、スループットの初期改善を達成できます。しかし、このスケーリング方法はネットワークの分散化レベルを制限します。なぜなら、検証ノードまたはフルノードを実行するコストが高くなるからです。分散化レベルの維持は、計算ハードウェアの性能の大まかな成長速度に制約されます(これがいわゆる「ムーアの法則」であり、チップ上のトランジスタの数は2年ごとに倍増し、計算コストは半減します)。

横方向のスケーリング(Horizontal Scaling): 横方向のスケーリングにはいくつかのアプローチがあります。一つは、ブロックチェーンの文脈において、特定のエコシステム内の取引計算量を複数の独立したブロックチェーンに分散させることです。それぞれのチェーンには独自のブロック生成者と実行能力があり、この方法では各チェーンの実行レイヤーを完全にカスタマイズできます。たとえば、ノードのハードウェア要件、プライバシー機能、ガス料金、仮想マシン、そして許可設定などです。もう一つの横方向のスケーリングのアプローチはモジュール化ブロックチェーンで、ブロックチェーンの基盤インフラを実行レイヤー、データ可用性レイヤー(DA)、およびコンセンサスレイヤーに分割します。最も主流なブロックチェーンのモジュール化メカニズムはロールアップです。さらに、1つのブロックチェーンを多くの分片に分割し、並行して実行する方法もあります。各分片は1つのブロックチェーンと見なすことができ、つまり多くのブロックチェーンが並行して実行されることになります。また、通常はすべての分片を同期させる唯一の任務を持つマスター チェーンがあります。

指摘すべきは、上記のスケーラビリティの考え方は孤立して存在するものではなく、各解決策は不可能三角形の中でトレードオフのポイントを見出し、システム内の経済的力によって創造されたインセンティブメカニズムの設計と組み合わせて、マクロおよびミクロレベルでの効果的なバランスを達成するということです。

"シャーディング"を議論するためには、最初から整理する必要があります。

依然このようなシナリオを仮定します。スーパーマーケットでの買い物の会計において、会計効率を高め、顧客の待機時間を短縮するために、単一の会計通路から10の会計窓口に拡張します。帳簿の誤りを避けるために、この時点で統一されたルールを策定する必要があります。

第一、10人のレジ係がいる場合、彼らをどの窓口に配置するかはどうしますか?

次に、1000人の顧客が待機している場合、各顧客がどの窓口で会計をするかをどのように決定しますか?

第三、これら10のウィンドウに対応する10の個別の帳簿は、どのように集約すればよいですか?

第四、帳簿の不一致を避けるために、どのようにしてレジ係のミスを防ぐことができますか?

これらの質問は実際にはシャーディングにおけるいくつかの重要な問題に対応しており、それぞれは:

全ネットワークのノード/バリデーターがどのシャーディングに属しているかをどのように確認できますか?つまり、ネットワークシャーディング(Network Sharding)をどのように行いますか;

どのようにして各取引がどのシャーディングに割り当てられるかを判断しますか?つまり:取引シャーディング(Transaction Sharding);

ブロックチェーンデータは異なるシャーディングにどのように保存されますか?すなわち:どのようにして状態シャーディング(State Sharding)を行いますか;

複雑さはリスクを意味し、上記のすべてを基にして、全体システムの安全性のシャーディングをどのように回避すべきか?

! Shardeum:シャーディングの別の可能性

01 ネットワークシャーディング(Network Sharding)

ブロックチェーンを単純に分散型台帳と理解すると、PoSでもPoWでも、コンセンサスメカニズムは、各ノードが一定の既定のルールに従って記帳権を争うためのものであり、その過程で台帳の正確性を保証します。そして、ネットワーク分片は、別の既定のルールに基づいてブロックチェーンネットワークをシャーディングすることを指し、相互通信を可能な限り低減しながら、各シャードがオンチェーン取引を処理し、記帳権を争うこと - すなわち、ノードのグループ化ルールです。

このプロセスで直面する問題は、ブロックチェーン内部のノードが異なるシャーディングに分割されるにつれて、攻撃者の難易度とコストが直線的に低下することです。私たちは推論できます。このグループ化プロセスのルールと結果が固定され、予測可能であると仮定すると、攻撃者がブロックチェーンネットワーク全体を制御したい場合、特定のシャーディングを狙い、そのシャーディング内のいくつかのノードを買収するだけで済むということです。

あるパブリックチェーンの創始者は、この問題を次のように説明しています: X 個のバリデーターを持つ単一チェーンが、ハードフォークしてシャーディングチェーンに分割し、X 個のバリデーターを 10 のシャードに分けることを決定した場合、各シャードには今や X/10 個のバリデーターしかいません。1 つのシャードを破壊するには、5.1% (51% / 10) のバリデーターの総数を破壊するだけで済みます。これが第二のポイントを引き出します: 各シャードのバリデーターを誰が選ぶのか? この 5.1% のバリデーターがすべて同じシャードにいる場合のみ、5.1% のバリデーターを制御することは有害です。もしバリデーターがどのシャードで検証するかを選択できない場合、5.1% のバリデーターを制御する参加者がすべてのバリデーターを同じシャードに配置する可能性は非常に低くなり、その結果、彼らのシステムを破壊する能力が大幅に低下します。

シャーディングシステムは、ネットワークが外部のシャーディングからこれらの取引を逆転させないように信頼できるメカニズムを開発する必要があります。これまでのところ、最良の答えは、シャーディング内の検証者の数をある最小閾値以上に保つことです。これにより、不誠実な検証者が単一のシャーディングを圧倒する確率が非常に低くなります。最も一般的な方法は、ある程度の無偏なランダム性を構築し、数学的な方法に依存して、攻撃者の成功確率を最小化することです。例えば、イーサリアムでは、イーサリアムの解決策は、すべての検証者からランダムに特定のシャーディングの検証者を選び、6.4分ごとに(エポックの長さ)で検証者を変更します。

言い換えれば、ノードをランダムにグループ分けし、各グループのノードに独立して検証作業を割り当てることです。

しかし、指摘すべきは、ブロックチェーンにおけるランダム性が非常に挑戦的なトピックであるということです。論理的には、この乱数の生成プロセスは特定のシャーディングの計算に依存するべきではありません。この計算に関しては、多くの既存の設計思想が、ネットワーク全体を維持するために個別のブロックチェーンを開発することです。そのようなチェーンは、EthereumやNearではBeaconチェーンと呼ばれ、PolkaDotではRelayチェーンと呼ばれ、CosmosではCosmos Hubと呼ばれています。

! 新しいパブリックチェーンShardeumの10,000語の詳細な説明:シャーディングの別の可能性

02 トランザクション シャーディング (Transaction Sharding)

トランザクションシャーディングとは、「どのトランザクションをどのシャードに割り当てるか」というルールの策定を指し、並行処理の目的を達成し、ダブルスペンドの問題を回避することができる。ブロックチェーンの元帳モデルの違いは、トランザクションシャーディングの開発に影響を与える。

現在のブロックチェーンネットワークには、UTXO(未使用取引出力)モデルとアカウント/残高モデルの2種類の記帳方法があります。前者の典型的な代表はBTCで、後者はETHです。

UTXOモデル: BTC取引において、各取引には1つ以上の出力があり、UTXOは未使用のブロックチェーン取引の出力を指し、新しい取引の入力として使用できます。一度使用された取引出力は再度使用できません。これは、紙幣取引における支払いとお釣りに似ています。顧客は1枚以上の紙幣を店に支払い、店は1枚以上の紙幣を顧客にお釣りとして渡します。UTXOモデルでは、取引のシャーディングはクロスシャード通信を必要とします。1つの取引は複数の入力と複数の出力を含む可能性があり、アカウントの概念は存在せず、残高の記録もありません。考えられる方法の1つは、取引のある入力値に基づいてハッシュ関数を処理し、離散型のハッシュ値を生成してデータがどのシャードに行くべきかを決定することです。

エントリが一貫した方法で正しいシャーディングに配置されるように、ハッシュ関数に入力される値は同じ列から取得される必要があります。この列はShard Keyと呼ばれます。その後、1の値を生成するトランザクションはシャード1に、2の値を生成するトランザクションはシャード2に振り分けられます。この方法の欠点は、シャード間で通信を行わなければならず、二重支払い攻撃を回避する必要があることです。シャード間取引を制限すると、プラットフォームの可用性が制限され、シャード間取引を許可すると、シャード間通信のコストと性能向上による利益のバランスを取らなければならなくなります。

アカウント/バランスモデル: システムは各アカウントのバランスを記録し、取引を行う際には、システムがアカウントに支払いに必要な十分なバランスがあるかどうかを確認します。これは、銀行振込の際に銀行が各アカウントのバランスを記録するのと似ています。アカウントのバランスが必要な振込額を超えている場合にのみ、取引が行われます。アカウント/バランスモデルの下では、1件の取引には1つの入力しかないため、取引を送信者のアドレスに基づいてシャーディングすることで、同じアカウントの複数の取引が同じシャード内で処理されることが保証され、二重支払いを効果的に防ぐことができます。したがって、シャーディング技術を採用しているほとんどのブロックチェーンは、イーサリアムのようなアカウント元帳システムです。

! Shardeum:シャーディングの別の可能性

03 ステート シャーディング (State Sharding)

状態シャーディングとは、ブロックチェーンデータが異なるシャードにどのように分配されて保存されるかを指します。

依然私たちのスーパーマーケットの列に並ぶ例を使いますが、各窓口にはそれぞれの帳簿があります。彼らの帳簿はどのように記録されているのでしょうか?例えば:顧客がどの列に並ぶかによって、その帳簿に記録されます。例えば、A顧客がA窓口に行った場合、翌日その顧客が別の決済窓口、例えばB窓口に行ったとします。しかし、B窓口にはその顧客の過去のアカウント情報((例えば、プリペイドカードなどの決済方法))がありません。どうすればいいのでしょうか?A窓口からその顧客のアカウント情報を呼び出すことができますか?

状態シャーディングはシャーディングの最大の難題であり、前述のネットワークシャーディングやトランザクションシャーディングよりも厄介です。シャーディングメカニズムの下では、トランザクションはアドレスに基づいて異なるシャードで処理されることになります。つまり、状態はそのアドレスが存在するシャードにのみ保存されます。この時直面する問題は、トランザクションは単一のシャード内で行われるわけではなく、しばしばクロスシャーディング(Cross-Sharding)に関与することです。

ある送金の状況を考えてみましょう。AアカウントがBアカウントに10Uを送金する場合、Aのアドレスはシャーディング1に割り当てられ、取引の記録もシャーディング1に保存されます。Bのアドレスはシャーディング2に割り当てられ、取引の記録はシャーディング2に保存されます。

AがBに送金しようとすると、クロスシャーディング取引が発生し、シャーディング2はシャーディング1に過去の取引記録を呼び出して取引の有効性を確認します。もしAが頻繁にBにコインを送る場合、シャーディング2はシャーディング1と継続的にインタラクションを行わなければならず、取引の処理効率はそのために低下します。しかし、もしダウンロードして検証しなければならない場合、

SHM-15.18%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 6
  • 共有
コメント
0/400
ChartIgnitervip
· 6時間前
LFGの
原文表示返信0
JustAnotherWalletvip
· 10時間前
見物している シャーディングは分ければいい
原文表示返信0
PoolJumpervip
· 10時間前
ハハ、本当に遅い。半日待ってやっと交換されたシェル。
原文表示返信0
GovernancePretendervip
· 10時間前
見るだけで十分だ 誰がvbのごまかしを信じるんだ
原文表示返信0
NFTRegretDiaryvip
· 10時間前
もう一つのロール layer2 の
原文表示返信0
SerumSquirtervip
· 10時間前
pew果然イーサリアム才是爹...
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)