例えば、マークルツリーを「積み木」で例えてみましょう。
各トランザクションは「積み木」一つ一つです。
2つの積み木を組み合わせて、さらに大きな積み木を作ります。この時、2つの積み木の情報を元に「ラベル」を付けます。これがハッシュ値です。
これを繰り返して、最終的に一つの大きな積み木になります。これがルートハッシュです。
あるトランザクション(積み木)を確認したいときは、ルートハッシュからその積み木まで、必要なラベル(ハッシュ値)だけを確認すれば良いのです。
冗長化とは、システムや設備について、性能や構成・データの内容などが同一のスペアを準備しておくことです。 冗長化しておくことで、システムや設備に不測の事態があっても、運用や業務を止めることなく復旧や対応をすることができるので、損失などの影響を最小限に抑えることができます。
Читать полностью…イレイジャーコーディングという仕組みも併用し、データを複数の断片(シャード)に分割し、IPFSやArweaveのような分散型ストレージに保管します。
仮にシャードの一部が失われてもデータが復活できる凄い仕組み!
そしてデータの場所を示すメタデータだけをブロックチェーンに刻み込み、オンチェーンデータを削減することができます。
・EigenDA:分散型データアベイラビリティレイヤー
EigenLayerによる重要なイノベーションであるEigenDAは、分散型データアベイラビリティレイヤーとして機能し、Ethereumのレイヤー2スケーラビリティソリューションを大幅に強化します。2024年第2四半期のEthereumメインネットへのローンチ以来、EigenDAは、高度にスケーラブルで安全なデータストレージソリューションを提供することで、ロールアップのスループットの向上とコスト削減の中心となっています。
マークルツリーは、大量のデータを効率的に検証するための木構造のデータ構造です。ブロックチェーンでは、各ブロックに含まれる多数のトランザクションの整合性を簡潔に証明するために使われています。
例え話:古代の粘土板文書
古代の王様は、たくさんの法律を粘土板に書き記していました。しかし、すべての法律を毎回確認するのは大変です。そこで、王様は賢者に次のような方法を考え出させました。
2枚の粘土板の内容を要約した短い文を作り、別の粘土板に書き記す。
すべての粘土板がペアになるまで、この作業を繰り返す。
最終的に1枚の粘土板だけが残る。これが「ルート」となる。
ある法律の内容が正しいか確認したい場合、ルートからその法律が書かれた粘土板まで、必要な粘土板だけを確認すれば良いのです。すべての粘土板を確認する必要はありません。これがマークルツリーの基本的な考え方です。
もう少し技術的な説明
マークルツリーは、葉(リーフ)ノード、枝(ブランチ)ノード、そしてルートノードから構成されます。
葉(リーフ)ノード: 検証したいデータのハッシュ値が格納されます。ブロックチェーンの場合、個々のトランザクションのハッシュ値がここにきます。ハッシュ値とは、データを一定の規則で変換して得られる短い固定長の値で、データの「指紋」のようなものです。
枝(ブランチ)ノード: 2つの子ノード(葉ノードか枝ノード)のハッシュ値を連結して、そのハッシュ値を格納します。
ルートノード: ツリーの最上位にあるノードで、すべてのデータの整合性を表すハッシュ値が格納されます。ブロックチェーンでは、ブロックヘッダーにこのルートハッシュ値が記録されます。
粘土板の例に戻ると…
各粘土板に書かれた法律が「データ」、要約文が「ハッシュ値」、最終的に残った1枚の粘土板が「ルート」に相当します。
マークルツリーのメリット
効率的な検証: データ全体を確認することなく、特定のデータの整合性を検証できます。
データの改ざん検知: もしデータが改ざんされると、ハッシュ値が変わり、ルートハッシュ値も変化します。これにより、データの改ざんを簡単に検知できます。
少量のデータで検証可能: ルートハッシュ値だけを保存しておけば、大量のデータの整合性を検証できます。
ブロックチェーンにおけるマークルツリー
ブロックチェーンでは、各ブロックに含まれる多数のトランザクションをマークルツリーで管理することで、効率的にトランザクションの検証を行っています。特定のトランザクションがブロックに含まれているかを確認したい場合、ルートハッシュ値からそのトランザクションのハッシュ値まで、必要なハッシュ値だけを確認すれば良いのです。
この説明で、マークルツリーの概念を少しでも理解していただけたら幸いです。
イレイジャーコーディングは、データを冗長化することで、一部のデータが失われても復元できるようにする技術です。例えるなら、大事な情報を複数の友達に預けるようなものです。
例え話:宝の地図の断片
あなたは宝の地図を手に入れましたが、それはとても古く、破れやすいものでした。そこであなたは地図をいくつかの断片に分け、信頼できる友達にそれぞれ預けることにしました。
従来の方法(単純なコピー): 地図をそのままコピーして複数の友達に預ける。これは簡単ですが、もしコピーを預けた友達が一人でも地図を無くしたら、全体の一部が欠けてしまいます。しかも、同じコピーをたくさん作って保管するのは場所も取ります。
イレイジャーコーディング: 地図を特殊な方法で断片化し、それぞれの断片を友達に預けます。この方法だと、たとえ何人かの友達が断片を無くしても、残りの断片から元の地図を復元できます。必要な断片数さえ集まれば、元の地図全体を復元できるのです。まるで魔法のようです!
もう少し技術的な説明
イレイジャーコーディングでは、元のデータをk個の断片に分割し、さらに冗長性を持たせるためにm個の「パリティデータ」を生成します。このパリティデータは、元のデータから計算された特別な情報で、失われた断片を復元するために使われます。
全体でk + m個の断片があり、このうち任意のk個の断片があれば、元のデータを完全に復元できます。つまり、最大m個の断片が失われても大丈夫なのです。
宝の地図の例に戻ると…
地図をk=4個の断片に分け、m=2個のパリティデータを作ったとします。合計6人の友達にそれぞれ断片を預けます。この場合、6人のうち4人から断片を集めれば、元の地図を復元できます。2人までが断片を無くしても大丈夫なのです。
イレイジャーコーディングのメリット
耐障害性: ハードディスクの故障やデータセンターの火災など、一部のデータが失われても復元できます。
ストレージ効率: 単純にデータを複製するよりも、必要なストレージ容量が少なくて済みます。
高速なアクセス: データを複数の場所に分散して保存することで、アクセス速度を向上させることができます。
イレイジャーコーディングが使われている場面
分散ストレージシステム(例:Hadoop Distributed File System (HDFS), Ceph)
クラウドストレージ
RAIDシステム(一部の種類)
イレイジャーコーディングは、現代のデータストレージにおいて重要な役割を果たしている技術です。複雑な数学的処理を背景に持ちますが、その基本的な考え方は「情報を分散して守る」というシンプルなものです。この説明で、イレイジャーコーディングの概念を少しでも理解していただけたら幸いです。
EigenDAは、ETHを再ステークすることでEthereumのコンセンサス層を活用し、ロールアップが独立したバリデータネットワークに依存することなく、より高いスループットと低いガス料金を実現します。Ethereumのアーキテクチャとの連携により、分散型セキュリティが確保され、ロールアップはデータアベイラビリティを損なうことなくスケーリングできます。イレイジャーコーディングなどの手法を用いてデータを小さなチャンクに分割することで、ストレージコストを大幅に削減し、ネットワーク効率を向上させます。さらに、システム独自のプルーフ・オブ・カストディ・メカニズムにより、オペレーターが実際にデータを保管していることが保証され、悪意のある行為に対するセキュリティが強化されます。
EigenDAのモジュラー設計は、分散型金融(DeFi)アプリケーションからゲームやソーシャルプラットフォームまで、幅広いユースケースをサポートします。この柔軟性により、開発者は予約帯域幅オプションとオンデマンド帯域幅オプションを選択でき、特定のスループットニーズに基づいてコストを最適化できます。Mantle、Caldera、CeloなどのプロジェクトはすでにEigenDAを利用してロールアップを強化しており、Ethereumのエコシステム全体でスケーラブルでコスト効率の高いソリューションを提供する際のその有効性を強調しています。
将来のアップグレードでスループットを最大1Gbpsにスケーリングする能力を持つEigenDAは、マルチプレイヤーゲームや高速金融取引などのデータ集約型アプリケーションをサポートし、より広範なブロックチェーン分野のイノベーションを推進する態勢を整えています。