Verifiable Credentials

Verifiable Credentialsの基礎「検証可能な証明」のしくみ

公開日 :

VC(Verifiable Credentials)は、社員証や委任状にあたるものをデータで持ち運べるようにした仕組みです。何が確かめられて、何が確かめられないのか。初めての方に向けて基本から解説します。

この記事でわかること

  • VCとは何か。紙の証明書と何が同じで、何が違うのか
  • 「検証できる」とは、具体的に何を確かめることなのか
  • VCで確かめられないことは何か

リード

VC(Verifiable Credentials)は「検証可能な証明」と訳されます。ただ、この訳語だけでは何のことか分かりにくいと思います。実際にどんなデータで、何が確かめられて、何が確かめられないのか。順に見ていきます。

ひとことで言うと

VCは、改ざんされたことが分かるデジタルの証明書です。

社員証、資格証、委任状。こうした紙の証明書にあたるものをデータとして持ち運べるようにして、受け取った相手がその場で本物かどうかを確かめられるようにした、という理解でおおむね合っています。

たとえば、社員の在籍を証明するVCであれば、中身はこうなります。

発行者 株式会社◯◯ 人事部
対象者 山田太郎
所属 営業部
役職 課長
有効期限 2027年3月31日
署名 (発行者による電子署名)

書かれている項目は、紙の社員証とほとんど同じです。違うのは、最後の行に電子署名が付いていることです。この署名があるおかげで、受け取った相手は、本当に人事部が発行したものか、途中で書き換えられていないかを確かめられます。

紙の証明書がやっていること

そもそも、紙の社員証はなぜ通用しているのでしょうか。

会社のロゴや様式から発行元が分かり、特殊な印刷やラミネートで偽造しにくく、有効期限が印字されている。だから訪問先の受付は、その人の会社に電話をかけなくても、その場で判断できます。

この「その場で確かめられる」という性質が、証明書の便利さの正体です。VCがデジタルで実現しようとしているのも、まったく同じことです。

登場するのは3者

VCの説明では、3つの役割が出てきます。英語の名称も併記しますが、日本語のほうで覚えていただければ十分です。

発行者(Issuer) は、証明を作って署名する側です。会社の人事部、大学、行政機関などがこれにあたります。

保有者(Holder) は、証明を受け取って持ち、必要なときに提示する側です。社員本人であったり、後で述べるようにAIエージェントであったりします。

検証者(Verifier) は、提示された証明を確認する側です。訪問先の受付システム、取引先のシステムなどが担います。

人事部が発行し、社員が持ち歩き、訪問先が確認する。紙の社員証の関係を、そのままデータに置き換えた形です。

発行元に問い合わせなくてよい

紙との違いで、実務上いちばん効いてくるのがこの点です。

いま、相手が本当にその会社の社員かどうかを厳密に確かめようとすると、その会社に電話をかけて在籍を照会することになります。時間がかかりますし、先方の担当者が不在なら待たされます。土日なら翌営業日です。

VCの場合、その照会が要りません。証明に付いている署名を、受け取った側が自分で検証できるからです。発行元のシステムが停止していても、休日でも、検証は成立します。この「問い合わせずに済む」という性質が、確認作業のコストを大きく下げます。

署名のしくみ

なぜ問い合わせずに確かめられるのか。ここだけ、少し技術の話になります。

発行者は、対になった2つの鍵を持ちます。秘密鍵と公開鍵です。秘密鍵は発行者だけが持ち、公開鍵は誰でも入手できる場所に置いておきます。

証明を作るとき、発行者は内容に対して秘密鍵で署名を付けます。受け取った側は、公開されている公開鍵を使って、その署名が正しいかを計算で確かめます。

実印と印鑑証明書の関係に近いものだと考えると、感覚がつかみやすいかもしれません。実印は本人しか押せず、印鑑証明書は誰でも取り寄せて照合できる。秘密鍵が実印にあたり、公開鍵が印鑑証明書にあたります。

内容が1文字でも書き換えられていれば、署名の検証は通りません。秘密鍵を持たない人は、そもそも署名を作れません。この2点によって、偽造と改ざんの両方が防げます。

なお、公開鍵をどこから取ってくるかについては、DID(分散識別子)という仕組みが使われることがあります。特定の企業のサービスに依存せずに、識別子から公開鍵をたどれるようにするための方式です。

何が確かめられて、何が確かめられないのか

VCで確かめられるのは、次の5点です。

  • 誰が発行したものか
  • 発行後に内容が書き換えられていないか
  • 有効期限内か
  • 発行者が後から取り消していないか
  • 提示している相手が、正当な保有者か

一方で、書かれている内容が事実かどうかは確かめられません。

人事部が「この人は営業部の課長である」と署名すれば、VCとしては正しく検証を通ります。その記載が事実かどうかは、人事部の責任です。

つまりVCが保証するのは「この発行者が、たしかにこう言った」というところまでです。その発行者を信用してよいかどうかは、VCの外側で判断することになります。ここを取り違えて「VCを使えば内容の真実性が保証される」と理解してしまうと、期待と実際がずれます。

取り消しをどう扱うか

証明書の運用で実は一番やっかいなのが、期限前の取り消しです。

有効期限は最初から書いてあるので簡単です。問題は、異動や退職、権限の見直しで、期限が来る前に無効にしたいときです。紙の社員証なら回収すればよいのですが、データは複製できるため、回収という手段が使えません。

VCでは、発行者が取り消した証明の一覧を公開し、確認する側がそれを参照する方式が一般的です。ただ実務では、そもそも有効期限を短く設定しておくほうが確実です。数年ではなく数か月、用途によっては数時間という設計も現実的です。

必要な項目だけを見せられる

紙の証明書にはない特徴もあります。選択的開示と呼ばれるもので、書かれている情報のうち、その場で必要な項目だけを提示できます。

年齢制限のある商品を買うとき、確認したいのは「基準を満たしているか」だけで、生年月日そのものは要りません。所属部門を示したいだけなら、氏名まで見せる必要はありません。

見せる側は余計な情報を出さずに済み、確認する側も預からずに済みます。

AIエージェントに当てはめると

ここまでの説明を、AIエージェントに置き換えてみます。

発行者は、権限を委任する側です。部門長、管理部門、システム管理者などがこれにあたります。保有者はAIエージェント本体で、検証者は、そのAIから依頼を受けるシステムや社内の承認基盤です。

AIは、自分が何を任されているかを示す証明を持ち、実行のたびに提示する。受け取る側は、発行元・改ざん・期限・取り消しを機械的に確認したうえで処理する。人が社外で仕事をするときに社員証と委任状を持つのと、やっていることは変わりません。

標準化の状況

VCは、W3C(World Wide Web Consortium)という団体が仕様を定めています。Webの技術標準を作っている国際的な組織で、HTMLなどもここが策定しています。特定の企業の独自技術ではない、ということです。

裏を返せば、技術そのものは誰でも使えます。差がつくのは、どの業務に、誰が、どんな証明を発行するのかという設計のほうです。