Shardingとは何ですか?
Shardingはブロックチェーンがデータと作業負荷を小さなグループに分け、多くの処理を同時並行で行えるようにする手法です。同じチェーンで責任を分割するイメージです。レジの列を早くするために精算レーンを増やすスーパーを想像してください。列の流れは速くなりますが、支払いは同じ店で行われます。
Shardingはあなたのウォレットが独自の小さなチェーン上にあるという意味ではありません。そうとは限りません。ネットワークを協調するノードのグループに分け、それぞれが結果をまとめてチェーンの整合性を保ちます。
Shardingの仕組み
車線がたくさんあるネットワークを想像してください。トランザクションは車線ごとに振り分けられ、同時に処理されてから一つの共通の真実に合わせて同期されます。簡単な流れは次の通りです:
- 開始: チェーンはアカウントやコントラクトのアドレスなどの簡単なルールに基づいてトランザクションを異なるシャードに割り当てます。
- 分割: 各シャードはローカルな委員会で自身のバッチを検証します。
- 実行: 多くのシャードが同時に動くため、処理量が増えます。スループットが向上します。
- 同期: 結果はまとめられ、全員の合意を保つコーディネート層に固定されます。
- シャード間: 別のシャードとやり取りが必要な場合は、メッセージが車線を横断して送られ、残高やコントラクト呼び出しが正しく保たれます。
これが基本です。多数の車線で処理しても、台帳は一つです。
Shardingが重要な理由
ここではあなたとあなたのアプリにとっての利点を示します:
- 利点: ユーザー数が増えても待ち時間が短くなり、手数料が安くなることが多いです。これはスケーラビリティの向上のおかげです。
- 視点: 大規模なチェーンは多くの利用者に対応したいと考えています。Shardingはそのための一つの道筋です。
- 関連性: NFTのミントや取引、分散型アプリケーション(dApps)を気にするなら、速度や手数料に直接影響します。
ロードマップを読むときは、シャード間の呼び出しがスマートコントラクトとどう連携するかを確認してください。呼び出しが速く予測可能であれば、車線をまたいでもアプリの操作感が良くなります。
Shardingの主な特徴
注目すべき点:
- 並列処理: チェーンの多くの部分が異なる作業を同時に処理します。
- 分割: データとアクティビティが分けられ、一つのグループに全負担が集中しません。
- 調整: ビーコンやコーディネータ層がシャード間の合意を保ちます。
- メッセージング: シャード間の通信により、資金や呼び出しが安全に移動できます。
- 回復力: 委員会はローテーションし、シャードが支配される可能性を減らします。
バリエーション
Shardingは一通りではありません。次のような形があります:
- ネットワーク: 検証者セットを分割し、各グループがシャードを管理します。
- ステート: アカウントデータを分割し、参加者の保管負担を軽くします。
- トランザクション: トランザクション処理を分割し、同時処理性能を高めます。
- データ: データ可用性シャーディングはロールアップ向けに大きなデータを公開しサンプリングすることに焦点を当てます。
Shardingは拡張性を高めますが、健全なコンセンサスと正直な検証者の分散に依存します。セキュリティが損なわれては高速性に意味はありません。
例
Shardingにより、あるシャードでDeFiの清算を処理しつつ、別のシャードで人気のあるミントを実行し、どちらも互いに干渉せず同じチェックポイントに収束できます。
豆知識
「sharding」という言葉は暗号通貨が注目される前からデータベース工学で使われていました。大手テックはアプリの応答性を保つためにデータをこのように分割し、ブロックチェーンは合意に基づく台帳で同じ手法を取り入れました。
まとめ
Shardingは処理を分散させることでブロックチェーンを高速に感じさせ、整合性を保ちます。車線を増やしても行き先は同じだと考えてください。
