オンチェーンとオフチェーンのデータ解説:ブロックチェーンストレージガイド | Quicknodeターミナル、コード、またはAIエージェントからQuicknodeを管理できます。CLI、Admin API、MCP、SDKが利用可能になりました。
作成を開始する 回答>ブロックチェーンの基礎について学ぶ>オンチェーンデータとオフチェーンデータ:その違いとは? オンチェーンデータとオフチェーンデータ:その違いとは?
// Tags
オンチェーン対オフチェーンブロックチェーンのデータ保存
要約:オンチェーンデータはブロックチェーン上に直接保存されるため、永続的かつ透明性が高く、誰でも検証可能です。オフチェーンデータはブロックチェーンの外、通常は従来のサーバー、IPFSのような分散型ストレージネットワーク、あるいはプライベートデータベースに保存されます。実世界のアプリケーションの多くは、コスト削減とパフォーマンス向上のために、重要な状態情報をオンチェーンに保持しつつ、容量の大きいデータや重要度の低いデータをオフチェーンに保存するという、両者の組み合わせを採用しています。
わかりやすい説明
どのブロックチェーンにも容量には限りがあります。データをオンチェーンで保存するということは、そのデータをトランザクションやスマートコントラクトの状態に書き込み、ネットワーク上のすべてのノードに永続的に記録されることを意味します。これにより、データは改ざん防止され、誰でもアクセスできるようになりますが、その代償も伴います。イーサリアムでは、たった32バイトのデータを保存するだけでも、ガス料金によっては数ドルの費用がかかることがあります。画像や文書全体をオンチェーンで保存しようとすれば、その費用は法外なものになってしまいます。
そこでオフチェーンデータの出番となります。開発者は、画像全体をブロックチェーン上に保存する代わりに、IPFS(分散型ファイルストレージネットワーク)に画像を保存し、ブロックチェーン上にはIPFSのコンテンツハッシュのみを保存することができます。ブロックチェーン上の記録はデータがどのようなものであるべきかを証明し、オフチェーンストレージが実際にデータを保持します。このハイブリッドなアプローチにより、ブロックチェーンの検証可能性と、従来のストレージシステムや分散型ストレージシステムの拡張性を両立させることができます。
これを不動産の権利証のようなものと考えてみてください。権利証そのもの(所有権を示す小さくて重要な記録)は郡書記官事務所に登録されます。しかし、実際の家屋や設計図、検査報告書、写真などはすべて別の場所に存在しています。権利証は不動産そのものを指し示しているのです。ブロックチェーンも同様に機能します。重要な証拠や参照情報をブロックチェーン上に保存しつつ、より大規模なデータセットはオフチェーン上に存在しているのです。
オンチェーンデータとは何か
オンチェーンデータには、ブロックチェーンの状態や取引履歴に永続的に記録されるすべての情報が含まれます。これには、取引記録(送信者、受信者、金額、タイムスタンプ)、スマートコントラクトのコードおよび状態変数(トークンの残高、所有権記録、ガバナンス投票)、スマートコントラクトによって発行されるイベントログ、ならびにタイムスタンプやバリデーター情報などのブロックメタデータが含まれます。
SOC 2 タイプ II 認証取得 · ISO 27001
ユーザーが分散型取引所でトークンを交換すると、取引金額、関与するアドレス、その結果生じる状態の変化など、取引の全容がオンチェーンに記録されます。NFTがミントされると、トークンID、所有者のアドレス、メタデータのURIがすべて、スマートコントラクトのオンチェーン状態に保存されます。このデータは一度確認されると不変となり、つまり誰も事後的に変更することはできません。
オンチェーンデータこそが、ブロックチェーンの中核となる価値提案である「信頼不要の検証」を実現するものです。ノードを運用している人やRPCエンドポイントにクエリを送信する人は誰でも、第三者に依存することなく、あらゆるオンチェーンデータを独自に検証することができます。これが、ネットワークにおける唯一の「真実の源」なのです。
オフチェーンデータとは何か
オフチェーンデータとは、ブロックチェーンの外に存在するが、オンチェーンの活動によって参照される、あるいはそれに関連するあらゆるデータを指します。 これには、IPFSや集中型サーバーに保存されたNFT画像やメタデータファイル、dAppで使用される大規模なデータセット(ユーザープロフィール、注文履歴、分析データ)、現実世界の情報(価格、天気、スポーツの試合結果)をブロックチェーンに取り込むオラクルデータフィード、レイヤー1でバッチ処理および決済される前のレイヤー2のトランザクションデータ、およびスマートコントラクトとやり取りを行うアプリケーションのフロントエンドやAPIなどが含まれます。
最も一般的なパターンは、オフチェーンのデータを指すコンテンツのハッシュやURIをオンチェーンに保存することです。例えば、ほとんどのNFTスマートコントラクトは、IPFSやWebサーバー上にホストされているJSONメタデータファイルを指す「tokenURI」を保存しています。そのJSONファイルには、画像のURL、説明、および属性が含まれています。ブロックチェーンはそのポインタを認識しており、オフチェーンシステムがペイロードを保持しています。
Chainlinkのようなオラクルは、オンチェーンとオフチェーンの世界をつなぐ重要な架け橋です。スマートコントラクトは、本来、外部データに直接アクセスすることはできません。株価を確認したり、気象情報を検証したり、現実世界での出荷状況を確認したりすることはできないのです。オラクルは、こうしたオフチェーンのデータを取得し、検証可能な形でオンチェーンに提供することで、スマートコントラクトが現実世界の出来事に対応できるようにします。
トレードオフ
オンチェーンとオフチェーンのどちらにデータを保存するかの判断は、コスト、速度、永続性、そして信頼性の要件によって決まります。オンチェーン保存はコストが高いものの、永続的であり、信頼を必要としません。 オフチェーン保存は安価で高速ですが、外部システムへの依存が生じます。NFTの画像が中央集権型サーバーに保存されており、そのサーバーがダウンした場合、NFT自体はオンチェーン上に存在し続けますが、それが表すアート作品にはアクセスできなくなります。画像がIPFS上にあり、誰もそれをピン留めしていない場合にも、同様の事態が発生する可能性があります。
IPFSやArweaveのような分散型ストレージプロトコルは、単一のサーバーに依存するのではなく、ノードのネットワーク全体にファイルを分散させることで、この問題を解決することを目指しています。IPFSはコンテンツアドレス型ストレージを採用しており、ファイルはサーバー上の場所ではなく、暗号ハッシュによって参照されます。ネットワーク上の少なくとも1つのノードがそのファイルをピン留めしている限り、そのファイルにはアクセスし続けることができます。Arweaveは、1回限りの料金モデルを通じて永続的な保存にインセンティブを与えることで、この仕組みをさらに進化させています。
本番用アプリケーションを開発する開発者にとって、そのアーキテクチャでは通常、財務上重要な状態(残高、所有権、承認など)をすべてオンチェーンに保持し、容量の大きな資産はIPFSなどの分散型ストレージに保存し、パフォーマンス向上のために頻繁にアクセスされるデータをオフチェーンのデータベースにキャッシュし、インデクサーやデータパイプラインを活用してオンチェーンのデータをクエリ可能にするという構成が一般的です。
オンチェーンデータとオフチェーンデータの違いは何ですか?
オンチェーンデータとオフチェーンデータは、保存場所や保証の面で異なります。オンチェーンデータはブロックチェーンの台帳に書き込まれ、すべてのノードによって検証されますが、オフチェーンデータは、チェーンが参照するだけの外部システムに保存されます。以下の表では、最も重要な属性について両者を比較しています。
属性 | オンチェーンデータ | オフチェーンデータ |
|---|
場所 | ブロックおよび契約の状態に保存される | サーバー、IPFS、またはデータベース |
費用 | 高額、バイトあたりのガスで支払われる | 低価格かつ標準的なストレージ料金 |
速度 | ブロック時間による制限 | 高速で、ほぼ瞬時の読み書き |
永続性 | 一度確認されると変更不可 | 固定またはアーカイブされていない限り、変更可能 |
透明性 | 誰でも閲覧・確認可能 | 非公開またはアクセス制限あり |
信頼モデル | トラストレスで、コンセンサスによってセキュリティが確保されている | ホストやストレージネットワークによって異なります |
こんな方に最適 | 残高、所有権、証明 | 画像、大容量ファイル、キャッシュされた分析データ |
データをオンチェーンとオフチェーンのどちらに保存すべきか?
大まかな指針は単純です。トラストレスで、確定性があり、かつ公開的に検証可能でなければならないものはすべてオンチェーンに保持し、それ以外はコスト削減と処理速度向上のためにオフチェーンに移すということです。以下の表は、一般的なデータ型と、通常最も適したストレージ層との対応関係を示しています。
データ型 | おすすめの場所 | なぜ |
|---|
トークンの残高と保有状況 | オンチェーン | トラストレスかつ確定性があること |
スマートコントラクトのロジック | オンチェーン | 実行は検証可能でなければならない |
NFTのメディアとメタデータ | オフチェーン(IPFS) | サイズが大きすぎて、オンチェーンでの保存にはコストがかかりすぎる |
分析と検索インデックス | オフチェーン | 高速なクエリが必要であり、チェーンデータから再構築される |
実世界データフィード | オラクルを介したオフチェーン処理 | Chainsでは外部データを取得できません |
レイヤー2およびロールアップのトランザクションは、オンチェーンですか、それともオフチェーンですか?
レイヤー2のトランザクションはオフチェーンで開始され、決済が完了するとオンチェーンになります。レイヤー2ブロックチェーンは、処理速度を向上させるために別のレイヤーでトランザクションを実行し、その後、ロールアップがそれらの多くをバッチ処理して、圧縮されたデータと証明をレイヤー1に送信します。つまり、実行はオフチェーンで行われますが、最終的なデータとセキュリティの基盤はオンチェーンにあります。主な2つの設計であるオプティミスティック・ロールアップとZKロールアップは、バッチ処理されたオフチェーンの処理が有効であることをどのように証明するかという点で異なります。
オラクルは、オフチェーンのデータをブロックチェーンにどのように連携させるのでしょうか?
スマートコントラクトは単独ではインターネットにアクセスできないため、オフチェーンの情報をオンチェーンに取り込むにはオラクルに依存しています。 オラクルネットワークは、資産価格やイベントの結果といった外部データを取得し、その値について合意を形成した上で、他のスマートコントラクトが読み取れるようにスマートコントラクトに書き込みます。これにより、DeFiプロトコルが市場価格に反応したり、保険契約が現実世界のイベントに対応したりすることが可能になります。その一方で、最終的に実行される値はすべてオンチェーン上に保持され、検証可能となります。
よくある質問
オフチェーンのデータは安全なのでしょうか?
その可能性はありますが、保証の仕組みは異なります。オフチェーンデータは保存先のセキュリティを継承するため、中央集権型サーバーは単一障害点となりますが、IPFSやArweaveのようなコンテンツアドレス指定型ネットワークでは、コピーが多数のノードに分散されます。オフチェーンデータの暗号ハッシュをオンチェーンに保存することで、オフチェーンのペイロードが改ざんされていないことを誰でも検証できるようになります。
NFTのオフチェーン画像が利用できなくなると、そのNFTはどうなるのでしょうか?
トークン自体は依然としてオンチェーン上に存在しますが、ホストが消滅し、誰もそのファイルをピン留めしなければ、トークンが指し示すアートワークにアクセスできなくなる可能性があります。そのため、本格的なプロジェクトでは、NFTのメディアをIPFSやArweaveに保存し、不安定なウェブURLではなく、コンテンツのハッシュをオンチェーン上に保持しているのです。
スマートコントラクトはオフチェーンのデータを直接読み取ることができますか?
いいえ。スマートコントラクトは決定論的であり、外部環境から隔離されているため、ネットワークへの呼び出しを行うことはできません。スマートコントラクトは、オフチェーンのデータを検証可能な形式でオンチェーンに提供するためにオラクルに依存しており、そのデータを利用するにはオラクルによる処理が必要です。
IPFSはオンチェーンですか、それともオフチェーンですか?
IPFSはオフチェーンです。これは、ブロックチェーンの外側にファイルを保持する分散型ストレージネットワークであり、一方、ブロックチェーンには通常、それらのファイルを指し示すIPFSコンテンツのハッシュのみが格納されます。
過去のオンチェーンデータにはどのようにアクセスすればよいですか?
現在の状態はどのノードからでも簡単に読み取れますが、完全な履歴を取得するには、多くの場合、アーカイブノードやバックフィルパイプラインが必要となります。一般的なアプローチとそのトレードオフについては、「ブロックチェーンの履歴データへのアクセス」を参照してください。
Quicknodeの役割
オンチェーンデータとオフチェーンデータの両方を扱うには、信頼性の高いインフラストラクチャが必要です。QuicknodeのCore APIを利用すれば、80以上のチェーンに対して低遅延のRPCアクセスが可能となり、オンチェーンデータの読み書きが行えます。QuicknodeStreamsを使えば 、ブロックチェーン上のイベントをリアルタイムでキャプチャし、Webhook、PostgreSQLデータベース、S3バケットなどのオフチェーン先へルーティングできるため 、オンチェーンとオフチェーンの世界を橋渡しするデータパイプラインを簡単に構築できます。 分散型ストレージに関しては、QuicknodeのIPFSピンニング サービスと専用ゲートウェイを利用することで、独自のIPFSノードを管理することなく、オフチェーンコンテンツの保存や取得が可能です。
参考資料