WeaveDBの目的と主要機能
Web3アプリケーションではブロックチェーンで信頼性を担保しつつも、データ保存には依然として中央集権的なデータベースに依存する場合が多く、これが単一障害点(Single Point of Failure)となり得ます。
WeaveDBはこの問題を解決するために、ブロックチェーン上で動作しつつWeb2クラウドDB並みの性能とスケーラビリティを備えた完全分散型データベースを目指して開発されています。Arweaveブロックチェーン上のスマートコントラクトによって実装されたNoSQLデータベースであり、開発者が自由に利用できる高速かつ無料の分散型データレイヤーを提供します。
主な特徴
- 高速なクエリ性能とトランザクション処理
- 低コストで恒久的なデータ保存
- ガス代の事前支払いと即時ファイナリティ
- マルチチェーン対応の暗号ウォレット認証
- Firestoreライクな分散型API
- クロスチェーンデータブリッジ
- データ暗号化のサポート
- 無制限のスケーラビリティ
- オンチェーンインデクサによる高速検索
- スケジュール機能(Cron)
- クエリトリガー
- 柔軟なアクセス制御
- 外部データ連携とゼロ知識証明対応
コア技術スタック(言語・ライブラリ・外部サービス)
- ブロックチェーン基盤: Arweave
- スマートコントラクト実行環境: Warp Contracts(旧SmartWeave)
- プログラミング言語: JavaScript / TypeScript
- データ構造とインデックス: JSONドキュメント + B+ツリー
- FPJSON: JSONベースDSLによるルール・ロジック記述
- JSONスキーマ/検証: JSON Schemaライクな方式
- 暗号アルゴリズム対応: secp256k1, Ed25519, RSA, BabyJubJub
- 外部サービス/ネットワーク: Bundlr, Lit Protocol, SnarkJS, Circom
全体的なアーキテクチャ
WeaveDBはモジュール式の4階層アーキテクチャを採用:
- データソース層:コアデータ格納用スマートコントラクト
- インデクサ層:B+ツリーなどのインデックス構築
- クエリパーサ層:クエリ解析・最適インデクサ選択
- 公開API層:NoSQL/SQL/GraphQL型APIの提供
この構造により、同一のデータを複数のアプリケーションで異なるAPIやインデックスで共有可能。
スマートコントラクトとArweaveの統合
- WeaveDBインスタンス = Arweave上の1スマートコントラクト
- トランザクションはWarpのSequencer経由で即時確定(~10ms)
- 状態はクライアント側で遅延評価(Lazy Evaluation)
- 書き込みにはBundlr経由でETH等の支払いが可能
- KVストレージアダプタで大規模データも対応可能
- スマートコントラクトのアップグレード(Evolve)可能
データモデルと処理フローの概要
- データモデル: Firestoreライクなドキュメント指向(JSON)
- スキーマ定義: JSON Schema形式(任意)
書き込みフロー
- クライアントからSDK経由で
add/set/update
などを呼び出し - JSON形式で署名されたクエリがWarpへ送信
- Warp Sequencerが即時確定しArweaveへ書き込み
- コントラクトがFPJSONでルール・トリガーを実行
- 状態更新結果が確定される
読み取りフロー
- クライアントはSDK経由で
get
などのクエリを実行 - 状態はWarpノードまたはローカルで遅延評価
- B+木インデクサを通じて高速検索
ソースコード構成と主要モジュールの役割
- コントラクト本体: Reducer関数による状態遷移ロジック
- FPJSONエンジン: DSL実行エンジン。権限・トリガー・ロジック定義
- 認証・暗号モジュール: ウォレット署名検証、マルチ鍵対応
- インデックス管理モジュール: B+ツリー構築、クエリ最適化
- Cron・トリガー処理モジュール: 定期実行/イベント連動
- 外部連携・ZK検証モジュール: リレー署名・zkJSONによる検証
- クライアントSDK/開発者ツール: JavaScript SDK、Webコンソール
WeaveDBのモジュール構成により、開発者はスマートコントラクトの複雑さを意識せず、高性能かつ安全な分散型データベースを利用可能です。