実プロダクトでゼロ知識証明が使われている例を探すなら、大手マッチングアプリの認証バッジは分かりやすいケーススタディだ。Tinderは、特定の場所に設置された専用デバイスで確認を完了したユーザーのプロフィールに、認証済みであることを示すバッジを表示する機能を導入している。
SDK経由での統合
この機能は、外部の認証プロバイダーが提供するSDKを組み込むことで実現されている。JS、React、Swift、Kotlin、Goなど複数の言語・フレームワーク向けにSDKが提供されており、開発者はこれをアプリに組み込むことで認証結果を受け取れるようになる。
ポイントは、Tinder側が受け取るのが「このユーザーは実在する一意の人間である」という証明結果だけであり、顔画像や身分証明書のコピーといった個人を特定できる情報は一切受け取らない設計になっている点だ。
何を証明し、何を証明しないか
こうした仕組みの核にあるのがゼロ知識証明だ。「このユーザーは実在する一意の人間であり、過去に同じ枠で登録済みではない」ということだけを、身元そのものを明かさずに証明できる。
実装のアプローチとしては、個々のユーザーに識別子を直接ひもづけるのではなく、登録済みの公開鍵を保持しているかどうかという形で一意性を確認する設計が使われることが多い。サービス提供者側が個人情報をまとめて保持するリスクそのものを、設計の時点で減らす発想だ。
この設計が解決しようとしているのは、Sybil耐性の問題だ。一人のユーザーが何個ものアカウントを作れてしまうと、エアドロップの公平な配布も、投票の一人一票も、成立しなくなる。マッチングアプリの認証バッジは、この同じ仕組みを恋愛マッチングという文脈に応用した一例に過ぎない。
AIエージェントの文脈にも広がっている
この連載の別の記事でも触れたが、AIエージェントが人間の代わりに操作する場面が増えるほど、「この操作の背後に実在する人間がいるか」を証明する必要性が高まる。同じ発想をエージェント向けに拡張し、AIエージェントが実在する検証済みの人間に紐づいていることを証明できる仕組みについての議論も始まっている。
マッチングアプリのなりすまし対策も、AIエージェントの認可も、根っこにある技術的な課題は同じだ。こうした一連の取り組みは「proof of human」と呼ばれ始めている。実装例をまとめた解説もある。(実在する一意の人間であることの証明についての解説ページ)AIエージェントと人間の証明という切り口からの解説もある。(AIエージェントと人間の証明についての解説ページ)
関連記事