Futaba
https://scrapbox.io/files/649ad3a595b5eb001c4a0198.png
cross-chain query infra
= 他のチェーンのstateをtrust-minimizedな方法 (storage proofを利用した検証) で取得するインフラ
基本的なコンポーネント
Contract
Gateway
queryを実行するためのエンドポイント
Light Client
storage proofを検証するコントラクト
このコントラクトは検証するためのコントラクトなので、任意のコントラクトに置き換えることが可能
ゼロ知識証明やOptimisticな方法を使用したもの
Oracle
Chainlink Node Operatorにリクエストを送信するためのコントラクト
現時点でのアーキテクチャにおいては必要だが、今後必要なくなる場合もある
third-partyのlight clientを使用する場合は、Futaba自体がstate rootを取得する必要がないため
ex. Succinctのzk light client
Off-chain
Relayer
Src chainのGateway Contractからのイベントを受け取り、destination chainにある対象のコントラクトのaccount proofと対象のstorage slotに対するstorage proofを取得し、それをSrc chainのGateway Contractに送る
Oracle
Oracle Contractからのイベントを受け取り、特定のblock heightのblock header(state root)を取得し、Src chainのLight Client Contractに送る
Chainlink Node Operatorを使用する
公式ドキュメント
https://futaba.gitbook.io/docs/introduction/futaba-introduction