
Axiom:Web3データアクセスの空白を埋め、スマートコントラクトに新たな能力を付与
TechFlow厳選深潮セレクト

Axiom:Web3データアクセスの空白を埋め、スマートコントラクトに新たな能力を付与
Axiomは、信頼できないデータへのアクセスと計算の欠如によりWeb3アプリケーションが乏しくなるという課題を解決することを目指しています。
執筆:camiinthisthang
編集・翻訳:TechFlow
「すべてをオンチェーンに置く」という考え方は、私にはどうも無理があるように感じられてきた。永続的ストレージ以外の目的で多くのデータをオンチェーンに置く必然性はほとんどない。The Graphや類似プロトコルがGraphQLを通じてフロントエンド統合向けにオンチェーンデータのクエリ(全文検索やフィルタリングを含む)を可能にしているとはいえ、これらはすべてクライアント側での処理にとどまる。つまり、スマートコントラクトレベルではこれらのデータを使って条件付きロジックを記述することができず、これがWeb3アプリケーションを平板化・単一化させている。利用できるデータがユーザーとのリアルタイムインタラクション情報(アカウント残高や現在のブロック番号など)に限られてしまうからだ。
従来のアプリケーションは、ユーザーのオンライン活動を活用してパーソナライズされ、没入感のある体験を提供することで成長してきた。残念ながら、Web3ではこのような体験を実現する手段がまだ存在せず、そのためWeb3はユーザー共感を得る意味のあるアプリケーションを提供できないという一般的な認識につながっている。
デジタル世界を形作ってきた著名なアプリケーション――Instagram、TikTok、Spotify、YouTubeなど――は、ユーザーインターフェース内で過去のユーザー活動を表示し、そのデータをもとに推薦アルゴリズムを構築したり、パーソナライズされた広告を配信したり、ユーザーの好みに合ったクリエイターとつなげたりしている。こうした動的な設計空間は、明らかにWeb3には欠けている。
なぜWeb3がこれができていないかというと、スマートコントラクトレベルでオンチェーンデータに信頼性を持ってアクセスできるツールが存在しないからである。驚くべきことに、スマートコントラクトはアーカイブノードからデータを読み取ることができない。たとえば特定のブロック高における過去のNFT所有権やアカウント残高といった情報を取得し、それを使って操作内の条件分岐を実行することは不可能だ。このようなデータへのアクセスを可能にするには、セキュリティやコスト面でさまざまなトレードオフが生じる:
-
アプリケーションを開発・運営する人物がEOAまたはマルチシグを通じて完全に信頼された方法でデータをオンチェーンに配置する;
-
Chainlinkが求める特定のデータタイプをサポートしている;
-
自身のコントラクト内にデータをキャッシュする(追加のコントラクトストレージ代を支払う)。
Axiomが実現する信頼不要な読み取りと計算
ここ数ヶ月、いくつかの高性能ZKチームの登場により、イーサリアムエコシステムは新たな可能性の時代を迎えた。その一翼を担うのがAxiomであり、これは信頼できないデータアクセスと計算の欠如によってWeb3アプリケーションが貧弱になっている課題に取り組むzkプロジェクトである。現在、アルファ版がイーサリアムメインネット上で公開されている。
開発者はAxiomに対してクエリを送信でき、ストレージプロルーフを通じてイーサリアムの全履歴にわたる任意のブロックヘッダ、アカウント、ストレージ値に信頼性を持ってアクセスできる。Axiomはzk技術を使ってすべてのクエリ結果に対する有効性証明を生成し、それをオンチェーンで検証する。つまり、スマートコントラクトは追加の信頼前提なしに、これらの結果を直接処理できるようになる。
Axiomは、これまでzkを利用する上で不可欠だった数学的な専門知識の多くを抽象化している。Axiomの最も注目すべき点は、開発者がSolidityでスマートコントラクトを書き、Axiomのコントラクトに対してクエリを投げ、得られた応答を自身のスマートコントラクト内で使用できる点にある。
AxiomはTS SDKとAxiomV1Queryスマートコントラクトを提供しており、開発者はオンチェーンでクエリを作成・提出し、検証済みの応答を自身のスマートコントラクト内で利用できる。その流れは以下の通り:
-
オンチェーンクエリの送信:Axiom SDKを使用してクエリを作成し、AxiomV1Queryスマートコントラクトに提出する。
-
クエリ完了を待機:オフチェーンのProverがこのクエリをインデックス化し、結果を生成してZKで有効性を証明する。この証明はオンチェーンで検証され、結果はMerkle形式でAxiomV1Queryコントラクトのストレージに書き込まれる。
-
クエリ結果の読み取り:結果がオンチェーンで検証されたら、SDKを使ってコントラクトストレージからクエリ結果を取得し、スマートコントラクトアプリケーション内で信頼性を持って利用する。
私の理解では、Axiomの使用には主に2つのコンポーネントがある:
-
クエリを構築し、Axiomスマートコントラクトに送信する。
-
Axiomスマートコントラクトから応答を読み取り、検証する。
クエリの構築と送信
最初のステップは、Node/Next.jsプロジェクトからTS SDKを使ってAxiomコントラクトにクエリを送信すること:

開発者は以下の4つのメソッドを使ってクエリを作成・送信できる:
-
newQueryBuilder - クエリの新しいインスタンスを作成;
-
append - 証明したいアドレス、ストレージスロット、および/またはブロック番号を渡す;
-
build - keccakQueryResponseを取得し、クエリをシリアル化;
-
sendQuery - クエリをAxiomV1Queryコントラクトに送信。
応答の読み取りと検証

ProverがZK証明を生成すると、対象クエリの「keccakQueryResponse」が満たされたことが書き出され、「QueryFulfilled」イベントがトリガーされる。開発者はAxiomコントラクトのストレージから応答を読み取り、以下のSDKメソッドを使ってオンチェーンで結果を検証する:
-
getValidationWitness - ユーザーが主張するデータが実際にkeccakQueryResponseにコミットされていることを証明できるようにする;
-
areResponsesValid - 提供したデータがオンチェーンに保存されたハッシュと一致するかをチェック。
応答が有効であることを検証したら、この応答を任意のスマートコントラクト関数の引数として渡すことができる。これにより、特定のアカウントに対して制限を課すロジックを実装し、関数呼び出しの中で検証済みの有効な証明を渡せるようになる。
ZKは、ついに一般ユーザーが気にするようなアプリを構築可能にするのか?
今や、ストレージプロルーフを生成してスマートコントラクト内でそれを使い、過去のオンチェーン活動に基づいたロジック制限を記述できるだけでなく、Web2のような豊かな体験を初めて実現できるようになった。
ますます多くのユーザー、活動、データがオンチェーンに移行する中で、Axiomのようなツールは、セキュリティを犠牲にすることなく豊かなユーザーエクスペリエンスを創出するために極めて重要になっていくだろう。
以下は、Axiomのブログ記事から着想を得たいくつかのプロジェクト例:
-
中央集権的機関を介さず、オンチェーン活動に基づいてスマートコントラクトが自動実行するエアドロップ。
-
信頼できる参加度スコアに基づくオンチェーンロイヤルティシステム。
-
証明可能なオフチェーンソルバーを使用して市場決済を行う、ソルバードリブン型DeFiプロトコル。
-
過去の取引を参照するNFTフロア価格オラクル。NFT貸借やデリバティブの保険引き受けを支援。
-
ランダム性マイニングによるランダムネスオラクル。
-
AMMの手数料や貸借プロトコルのLTVを調整するための信頼できるボラティリティオラクル。
-
主張されたアルゴリズムから実際に生成されたことがzkで証明されたジェネレーティブNFT。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














