ブロックチェーンテクノロジーは、分散化、透明性、セキュリティの点で前例のない可能性をもたらしますが、スケーラビリティという大きな課題にも直面しています。スケーラビリティはブロックチェーンのトリレンマの 1 つであり、他の 2 つはセキュリティと分散化です。ブロックチェーン分野では、上記の3項目を同時に満たすことを常に目指してきましたが、その戦略的ソリューションとして「シャーディング」があります。
シャーディングは、従来のデータベース管理から借用した概念であり、より大きなデータベースを、より小さく管理しやすい部分 (「シャード」と呼ばれる) に分割するプロセスを指します。シャーディングは、分散化の原則を維持しながらスケーラビリティを向上させるためにブロックチェーン分野で使用されます。シャーディングは実際にブロックチェーン ネットワークを小さな部分に分割し、シャーディングされた各部分はトランザクションとスマート コントラクトを並行して処理できます。
ブロックチェーン ネットワークでシャーディングがどのように実行されるかを理解するには、まずブロックチェーン データが従来どのように保存および処理されるかを理解する必要があります。データの処理にはさまざまな方法がありますが、ここでは逐次処理と並列処理について紹介します。
一般的に言えば、各ブロックチェーンノードはネットワーク内のすべてのトランザクション量を処理する責任があります。このようなデータ処理を「逐次処理」といいます。つまり、各ノードは、口座残高や取引履歴などのすべての重要な情報を維持および保存する必要があります。基本的に、各ノードはすべてのネットワーク操作、データ、トランザクションを処理する必要があります。
このモードは、すべてのノード上のすべてのトランザクションを記録することでブロックチェーンのセキュリティを強化しますが、データ処理速度も大幅に低下します。ここでデータの並列処理が登場し、複数の操作を同時に実行できるようになります。
シャーディングは、ブロックチェーン ネットワーク全体にわたってトランザクション ワークロードを分割または「分割」するため、このジレンマに対する効果的な解決策となります。これは、すべてのノードがブロックチェーンのワークロード全体を管理または処理する必要がないことを意味します。
対照的に、シャーディングは水平分割を通じてワークロードを分離します。このプロセスでは、データは水平サブセットに分割され、各シャードは独立したデータベースとして機能し、他のシャードとは別にトランザクションを処理できます。
水平分割と垂直分割は、データベース拡張の 2 つの主な方法です。どちらのアプローチも大規模なデータ セットを効率的に管理するように設計されていますが、その動作方法の基本はまったく異なります。シャーディングは、スプリット ホライズンを実装する一般的な方法です。
データは行に分割し、水平分割を通じて異なるノード (またはデータベース) に分散できます。各ノード (またはデータベース) にはデータのサブセットが含まれています。テーブル内の各行は一意のエンティティであるため、個別の行によってデータの整合性が損なわれることはありません。スプリット ホライズンの典型的な例は、イーサリアムやビットコインなどのブロックチェーン ネットワークの配布です。
垂直に分割されたデータは、行ではなく列に分割されます。垂直分割の各パーティションには、個々のエンティティまたはデータセット全体のサブセットのデータが含まれますが、特定の属性セットのみが含まれます。たとえば、名前、ステータス、説明、写真などの列を含む顧客テーブルなどです。垂直分割の場合、「名前」と「ステータス」が 1 つのテーブルに格納され、「説明」と「写真」が別のテーブルに格納される可能性があります。
ブロックチェーン ネットワークでは、主にスケーラビリティ、分散化、セキュリティという 3 つの主な理由により、通常、垂直パーティショニングよりも水平パーティショニングが好まれます。
スケーラビリティ: シャーディングは、データをより小さく管理しやすい「シャード」に分割することでソリューションを提供します。各シャードは独立して実行でき、より多くのトランザクションを同時に処理できるため、ネットワークの速度と効率が向上します。垂直分割では、列が異なるデータベースに分散されるため、完全なトランザクションまたはブロック情報の取得がより複雑になり、スケーラビリティが制限される可能性があります。
分散化: ブロックチェーンの中心概念と一致し、スプリット ホライズンは分散化をサポートします。ノードがデータ全体の一部 (1 シャード) のみを処理する必要がある場合、計算負荷とストレージ負荷が軽減され、より多くのノードがネットワークに参加できるようになります。対照的に、垂直パーティショニングには、完全なブロック データを理解して検証するために、各ノードがすべてのパーティション (すべてのデータ列) にアクセスする必要があるという制限があります。
セキュリティとデータの整合性: 各シャード (またはパーティション) には完全なトランザクション データが含まれており、各ノードにブロックチェーンのその部分の完全かつ正確なコピーが含まれていることを保証するため、スプリット ホライズンはデータの整合性を維持します。垂直セグメンテーションは基本的に、異なるノードのブロック データを分割するため、ブロックチェーン ネットワークの最も重要なデータの整合性とセキュリティを確保することが困難になります。
シャーディングがブロックチェーンテクノロジーにもたらす潜在的な利点については、以下で詳しく説明します:
トランザクション速度の向上: シャーディングはトランザクションの並列処理を促進します。シャーディングを使用すると、トランザクションを 1 つずつ順番に処理するのではなく、異なるシャードで同時にトランザクションを処理できます。各シャードは独立して動作するため、トランザクション速度が大幅に向上します。これはトランザクションを高速化するだけでなく、ネットワーク全体でより多くのユーザーを処理できるようになり、ネットワークの普及が促進されることを意味します。
Ziliqa は、スケーラビリティを解決するためにシャーディングを使用するブロックチェーン ネットワークです。このシャーディング メカニズムの助けにより、Ziliqa は 1 秒あたり数千のトランザクションを処理できます。
処理コストとストレージコストを最小限に抑える: 従来のブロックチェーン設計では、各ノードがすべてのトランザクションを保存する必要があります。ブロックチェーンが発展するにつれて、ハードウェアの需要も高まります。しかし、シャーディングを使用すると、各ノードはネットワーク全体のデータのごく一部の処理と保存のみを担当するため、ノードがネットワークに参加するために必要なリソースが削減されます。
したがって、バリデーターとして参加する参加者が増えれば増えるほど、高いコストをかけずにネットワークがより分散化されます。このようにして問題は軽減され、ハイエンドの高価なコンピューティング リソースを持つエンティティだけが実際にプロセスに参加できるわけではないため、ブロックチェーン ネットワークの民主化された性質が維持されます。
ネットワーク パフォーマンスの向上: シャーディングは、ネットワークの全体的なパフォーマンスと容量の向上に役立ちます。従来のブロックチェーンでは、ネットワークに参加するノードの数が日々増加しており、ノード間の通信と同期が増加しますが、パフォーマンスは低下します。
しかし、シャーディングはこの状況を変えます。各シャードは独立して並行して実行できるため、システムはより多くのトランザクションと計算を処理できます。新しいノードはネットワーク全体ではなくシャードにのみ追加されるため、ネットワークの拡張能力が向上します。効率が向上し、トランザクションがよりスムーズになり、より良いユーザーエクスペリエンスが保証されます。
シャーディングテクノロジーの将来の開発と改善によって、追加の利点がもたらされたり、既存の利点が強化されたりして、ブロックチェーンエコシステムが継続的に最適化される可能性があることを覚えておいてください。
シャーディングは、多くの潜在的な利点を通じてブロックチェーンネットワークの効率性を高めるのに役立ちますが、その過程で特有の一連の課題も生じます。シャーディングによってもたらされる潜在的な脆弱性は次のとおりです。
単一シャード乗っ取り攻撃: シャーディング環境では、単一シャードを引き継ぐのに必要な計算能力は、ネットワーク全体を引き継ぐのに必要な計算能力よりもはるかに低くなります。したがって、単一シャードは「1% 攻撃」または「シャード乗っ取り」の影響を受けやすくなります。ネットワーク全体を攻撃する場合と比較して、少数のリソースを持つ攻撃者が単一のシャードを乗っ取る可能性があります。
シャード間トランザクション: 異なるシャード (クロスシャード) でトランザクションを実行すると、特有の課題に直面します。シャード間のトランザクションは複雑であり、不注意な管理は二重支出の問題を引き起こす可能性があります。トランザクション中に、あるシャードが別のシャードのステータスを正確に追跡できない場合、ユーザーはこの脆弱性を悪用して「二重支払い問題」を引き起こす可能性があります。
データの可用性の問題: シャーディングにより、ネットワーク全体の状態の維持が複雑になります。特定のシャードを維持するノードがオフラインであるため、必要なときにこれらのシャードを利用できなくなり、ネットワーク全体を混乱させるデータ可用性の問題が発生する可能性があります。
ネットワークセキュリティ: シャーディングでは、シャード間の負荷のバランスをとるために安定したプロトコルの実装が必要です。不適切な操作により、不均一なデータ分散やリソースの不均衡が生じ、ネットワークが不安定になる可能性があります。
ノードの同期: ノードの同期では、異なるノード間で情報を共有および更新するのに時間がかかるため、ネットワークの遅延が発生する可能性があります。さらに、ノードの処理能力が低下したり、ネットワーク接続に遅れが生じたりすると、同期プロセス全体が遅くなり、ブロックチェーン ネットワーク全体のパフォーマンスが低下する可能性があります。
イーサリアムは、イーサリアム 2.0 アップグレードの一環としてシャーディングの実装を計画しています。 「Eth2」または「Quiet Phase」としても知られるイーサリアム 2.0 は、ネットワーク速度、効率、スケーラビリティを向上させるように設計されたイーサリアム ブロックチェーンへのアップグレードであり、それによってより多くのトランザクションを処理する能力が向上し、混雑が緩和されます。
現時点では、アップグレードは段階的に実装されており、最終フェーズ (フェーズ 2) にはシャーディングの完全な実装が含まれます。イーサリアム開発者らは、このアップグレードによって、スケーラビリティやトランザクションコストなど、現在のネットワークが直面している課題が解決されることを期待している。
しかし、シャーディングの実装は本質的に困難であり、特にネットワークのセキュリティと分散化の維持が困難であることは注目に値します。したがって、イーサリアム開発者は、完全に実装された後にアップグレードが成功することを確認するために、この移行について慎重に検討し、広範なテストを実施しました。
全体として、シャーディングはブロックチェーンの三元パラドックス問題の解決において大きな進歩を示しています。シャーディングは新たな複雑さと潜在的な欠点をもたらしますが、分散化に影響を与えることなくスケーラビリティを向上させることが期待されており、ブロックチェーン ネットワークの将来の開発は無限の希望に満ちています。
これが、多くのブロックチェーンが潜在的な解決策としてシャーディングを検討している理由であることは間違いありません。イーサリアムは、スケーラビリティの問題に対処するために、イーサリアム 2.0 アップグレードの一部としてシャーディングを統合しています。シャーディングの実装は、全体的なアップグレード計画の重要なコンポーネントであるカンクンのアップグレードを通じて行われる予定です。それでも、他の進化するテクノロジーと同様に、シャーディング実装の成功は、継続的な研究開発や厳格なテストなどの要素によって決まります。
以上がシャーディングの概念とその仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。