検証済み属性をクエリする

2026.02.28

Guides

検証済み属性をクエリする

ラストマイル:証明から回答へ

暗号化、コミットメント、ZK 証明、選択的開示はすべてインフラです。開発者や AI エージェントが実際に必要としているのは回答です:「この条件に一致する検証済み属性をください。」

Lemma の attributes.query API がそのラストマイルです。自然言語または構造化クエリを受け付け、完全な来歴メタデータ付きの検証済み属性を返します。

自然言語クエリ

import { attributes } from "@lemmaoracle/sdk";

const results = await attributes.query(client, {
  query: "users over 18 in Japan",
  mode: "natural", // "natural" | "structured"
  proof: { required: true, type: "zk-snark" }, // type: "zk-snark" | "opaque"
  targets: {
    schemas: ["user-kyc-v1"],
    chainIds: [1, 137], // ← オプション: チェーン ID でフィルター
  },
});

レスポンスには、一致する各サブジェクトについて以下が含まれます:

  • 検証済み属性(例:{ age_bucket: "adult", country: "JP" })。
  • 証明状態:オンチェーン検証済み、オフチェーン検証済み、または保留中。
  • 証明を生成した circuitId
  • 属性空間を定義する schemaId
  • 元ドキュメントに署名した issuerId
  • 生ドキュメントの生成方法を記述する generatorId

これはキーバリュー検索ではありません。アプリケーションや AI エージェントが信頼判断を下すための、来歴情報が豊富なレスポンスです。

RAG ポリシー統合

attributes.query が返す来歴メタデータは、RAG ポリシーレイヤーに直接供給できるよう設計されています。一般的なパターン:

  • 証明必須ポリシー: proof.status === "onchain-verified" の属性のみを使用。
  • スキーマホワイトリスト: 既知の監査済みスキーマからの属性のみを受け入れ。
  • 発行者信頼リスト: 信頼できる発行者でフィルターし、未検証ソースを除外。
  • 鮮度チェック: date メタデータを使い、古い検証を除外。
  • ジェネレーター再現性: 特定の generatorId を要求し、生データが既知の監査可能なプロセスで生成されたことを保証。

これらのポリシーは Lemma 自体ではなく、アプリケーション層で実装します。Lemma はファクトとその来歴を提供し、どのファクトを信頼するかはアプリケーションが決定します。

何が違うのか

従来のオラクルは値を返します。Lemma は証明付きの値を返します。AI が「このユーザーは適格です」と言うとき、その主張を裏付ける正確な回路、スキーマ、発行者、オンチェーン検証イベントを指し示せます。これは主張と証拠の違いです。