読者からの質問「データアベイラビリティとは?」
匿名の質問サイト「マシュマロ」で質問を募集したところ、「データアベイラビリティがよくわからない」というコメントをいただいた。
データアベイラビリティはわかりにくいし、そもそもブロックチェーンの機能全体を理解しないと意味が分からない部分も多い。
そこで、このご質問に回答する形で、データアベイラビリティを解説する。
データアベイラビリティを中心に概念を整理し、先日エアドロップが発表され話題になったCelestiaの仕組みを知ることを通じて、データアベイラビリティの存在意義を理解していく。
それでは、本日もよろしくお願いします。DIVE INTO CRYPTO!
🧱モジュラーブロックチェーンとは
データアベイラビリティは、ブロックチェーンの主要な機能の一部。なので、ブロックチェーンがそれぞれどのような機能が組み合わさって構成されているかを理解することがデータアベイラビリティを理解するための近道になる。
モジュラーブロックチェーンとは、ブロックチェーンの機能をいくつかの機能に分けてその機能に特化させたチェーンを組み合わせてひとつのブロックチェーンを構成すること。
モジュールとは、プログラムが集まってひとかたまりになった単位である。
もともと様々な機能が一体となった一枚岩のようなブロックチェーン(モノリシック)が発明されたが、多くの人口が利用するようになるにつれ、スケーラビリティの限界があることが認識された。
このような背景で、これまでの分散性とセキュリティを維持しながらできるだけスケーラビリティを向上させる方法が検討されモジュラーブロックチェーンが開発・導入されることになった。
ブロックチェーンの主要機能は、以下の4つ。各機能を提供するブロックチェーンをレイヤーとも呼ぶ(例えば、データ可用性レイヤー)。
実行(Execution):トランザクションやスマートコントラクトを実行して状態を移行するプロセス。
決済(Settlement):記録されたトランザクションが誰も変更できないことを記録し検証できることを保証するプロセス。ロールアップの紛争解決の際に参照される最終的な情報を提供する。
合意形成(Consensus):トランザクションの有効性を各ノードがダウンロードした情報に基づいてある時点でのネットワークの合意を確立するプロセス。
データアベイラビリティ(Data Availability):チェーン内で要求されたデータへのアクセスを保証するプロセス。ブロックチェーンが適切に機能するために不可欠なトランザクションデータへのアクセスが保証される。
データアベイラビリティの定義としては、上のようにチェーンに記録された過去のデータを公開で誰もが利用できる(ダウンロードして検証できる)状態を提供する機能だ。
モジュラーブロックチェーンとひとくちに言っても、どの主要機能をどのモジュールのレイヤーが担うかで類型が異なる。以下の図を御覧いただきたい。
上記で紹介されている類型は3つ。Rollup、Validium、Sovereign Rollupだ。
Rollupは、ArbitrumやOptimismが該当する。Validiumは最近Polygonがこれになる予定。Sovereign Rollupの代表例はCelestiaである。
💽データアベイラビリティの存在意義
結論から言えば、データアベイラビリティとはこのブロックチェーンのデータは公開されているかという問いに答えるものだ。
誰でも取引を閲覧し、検証することができるようにするため、ブロックチェーンの安全性には欠かせない。
Ethereumのブロックは、ブロックヘッダーとブロックボディで構成される。
ブロックヘッダー:タイムスタンプ、ブロックハッシュ、ブロック番号など、ブロックに関する一般的な情報(メタデータ)を含む部分
ブロックボディ:当該ブロックの一部として処理された実際のトランザクションを含む部分
コンセンサスに参加している各ノードは、それを受けて、このブロックのデータをダウンロードし、トランザクションを再実行することで、新規ブロックの正当性を確認する。
最近は、ライトクライアントにおけるデータの可用性を検証する方法に焦点を当てる傾向が強い。Ethereumにおけるライトクライアントとは、最新のブロックヘッダーのみに同期し、フルノードに対して他の情報をリクエストするノードのこと。つまり、ブロック全体をダウンロードしない。
これに関連して、ステートレスのイーサリアムにおいてデータの可用性を検証可能にするためのメカニズムについても研究されており、ステートレスネスという概念が検証されている。
要するに、そのブロックに記録された情報がちゃんと他のノードが利用できるかどうかはデータアベイラビリティレイヤーの役割なのである。
データアベイラビリティの理解の観点では、Validiumを見てもらうとわかりやすい。
Validiumは、データアベイラビリティをオフチェーンにすることで、スケーラビリティを大幅に向上させる。
なぜスケーラビリティが向上するのかといえば、オンチェーンに記録するはずのデータをオフチェーンに保存するからだ。オンチェーンだとそれだけブロックを圧迫するしガス代がかかる。
しかし、オフチェーンであるがゆえにValidiumのデータアベイラビリティが障害点になることや検閲の懸念が発生する。
また、現時点のRollupは、L1にデータの保存と検証を依存しているためL2のトランザクションコストが十分に削減できないことがある。これはL1をデータアベイラビリティに利用していることが原因。
そこで、データアベイラビリティに特化したチェーンを独自に構築し、データアベイラビリティの有効性の検証と提供だけにリソースを割くオンチェーンのレイヤーが解決策となる。
Celestiaは、データアベイラビリティに特化したデータアベイラビリティレイヤーとして、Rollupのトランザクションコストを引き下げる。
🟣Celestiaの概要
Celestiaは、Cosmosベースのレイヤー1チェーンだが、持っている機能としては、ConsensusとData Availabilityのみだ。つまり、どこかExecutionの機能を持つチェーンと組み合わせて利用されることが前提になっている。
セキュリティは、先日エアドロップされたTIAをステーキングするノードで構成されるProof of Stakeのネットワークによる。TIAはETHのようにEIP-1559のようなベースフィーとプライオリティフィーのあるモデルを採用している。
データアベイラビリティだけでなく、Consensusも提供することが可能なため、CelestiaはこれをSovereign(主権がある) Rollupと呼んでいる。ここは、Consesusをより深く理解しないといけないため、今回は割愛する。
いずれにしても、実行レイヤーがCelestiaをConsesusまで採用するか、データアベイラビリティまで採用するかはその実行レイヤー次第である。
🥮データアベイラビリティのアプローチ [Data Availability Sampling(DAS)]
Celestiaのデータアベイラビリティのスケーリングの仕組みは、Data Availability Sampling(DAS)と呼ばれる手法だ。これはEthereumでもDankshardingとして将来的に取り入れられる事になっているもの。
DASは、データアベイラビリティレイヤーに記録された情報から、ランダムにサンプルを要求しこの情報が整合性があることを確率的に検証する。一般的なデータアベイラビリティを検証するプロセスは、データすべてのダウンロードが必要。
しかし、DASであれば一部のみで検証できるため非常に効率が良い。Celestiaでは、記録するデータ量によってガスコストの価格が決まる。したがって、Celestiaをデータアベイラビリティに利用すれば大幅にガスコストを削減やスループットの向上を通じてスケーラビリティの増大が見込める。
また、DASのようにサンプル情報だけをダウンロードすればいいので、ノードに対して高いハードウェア要件を求めることでバリデータの参入障壁を下げ、分散性に貢献する。
DASとは異なるアプローチとしては、データアベイラビリティのための委員会を組織するというものもある。これはData Availability Committee(DAC)と呼ばれる。
DACでは、トランザクションデータを信頼できるユーザーで構成されたデータ可用性委員会(DAC)で保存する。オフチェーンのデータのコピーをオフラインで保存した上で、紛争が発生した場合にはこのデータを提供することが義務付けられている。
DAC のメンバーは、当該データが実際に提供可能であることを証明するために、オンチェーン上でデータを公開するような仕組みを採用している。例としては、zkSyncが開発してるzkPorterが挙げられる。
また、Eigen layerのEigen DA(Data Availability)は、独自のアプローチによってデータアベイラビリティによるスケーラビリティなどを向上させる。
このように、データアベイラビリティをどのように効率的に保証し、セキュリティを維持するかは各データアベイラビリティレイヤーを開発するチームの研究・改善余地がある領域なのである。
📝まとめ
ここまでの情報を整理する。
モジュラーブロックチェーンは、ある機能に特化したチェーンを組み合わせて構成される。
ブロックチェーンの主要機能は実行、決済、合意形成、データ可用性の4つであり、それぞれがレイヤーとして機能する。
データアベイラビリティは、ブロックチェーンのデータが公開されているかどうかを確認するものであり、ブロックチェーンの安全性に重要な役割を果たす。
データアベイラビリティの効率的な実現方法として、Data Availability Sampling(DAS)やData Availability Committee(DAC)などの手法がある。
Celestiaはデータアベイラビリティを提供するレイヤー1チェーンであり、Proof of Stakeのネットワークによるセキュリティを持つ。
データアベイラビリティのスケーリングには、DASやDACなどのアプローチが存在し、それぞれのアプローチには開発するチームの研究や改善の余地がある。
以上になる。
ぼくの説明で技術的に誤っていることがあればコメントでご指摘いただけると嬉しいです。
参考記事
こちらの記事も参考にしてください。
本日は以上です。
最後まで読んでいただきありがとうございます。もしこの記事を気に入っていただけたら「いいね・Xでのシェア」を頂けたらとても嬉しいです。質問や感想はコメントでお願いします。
🐦コミュニティ
Xでいただいたリプライや感想を紹介しています。読者の声が、ニュースレター継続の最大の原動力です。
匿名の質問を募集しています。ニュースレターで回答します。
免責事項
このニュースレターは、教育目的の情報提供を主旨としており、金融に関するアドバイスではありません。ご自身での調査やデューデリジェンスが必要です。
Lawrenceさん、データアベイラビリティについて詳しく教えていただいてありがとうございます!
モジュラーブロックチェーン、CelestiaなどについてもHashhubのリサーチを合わせて学習させていただきました!
恥ずかしながら、わたしは下記のことがわかっていませんでした。
ーーー
ブロックチェーンの主要機能は実行、決済、合意形成、データ可用性の4つであり、それぞれがレイヤーとして機能する。
ーーー
このへんの基礎知識は何を学習すれば身につきますでしょうか?
城田真琴さんの「決定版Web3」には、似たような図としてWeb3のテクノロジースタックしかありませんし「いちばんやさしいブロックチェーンの教本」(インプレス)ではCAP定理の箇所でほんの少しだけ可用性に触れているだけです😭