ブロックチェーンを利用したデジタル資格証明書について

Shun Takagiwa / 高際 隼
LayerX-jp
Published in
14 min readJan 7, 2019

紙の証明書における本質的な課題、既存の事例、ブロックチェーンが何を解決するかについて考える。

Photo by Vasily Koloda on Unsplash

サマリー

紙の資格証明書は偽造・改ざんされていないかを簡単に瞬時に低コストで検証できないことが最大の課題であり、いわゆる信用コストが発生している。ブロックチェーンを活用することで、簡単/瞬時/低コストで検証可能なデジタル資格証明書を提供できるようになるのではないか。

概要

本記事では、ブロックチェーンを利用したデジタル資格証明書について説明する。ブロックチェーンの社会実装は金融領域から始まると考えられているが、非金融領域で有望な分野の一つに学位や資格のデジタル証明書がある。VitalikもDevcon4にて以下のように言及している。

As for non-financial applications, Buterin said he likes the idea of authentication of university degrees which is being implemented in Singapore. The technology purportedly allows institutions to digitally issue education certificates on a blockchain.

本記事のコンテンツの一覧は以下のようになっている。

  • 現状の課題
  • なぜブロックチェーンなのか
  • どう実現するか(提案手法)
  • 今後の課題
  • まとめ
  • 所感
  • 参考情報

早速、現状の課題から考えてみる。

現状の課題

ここでは、紙の証明書に存在する問題と、その取り組みを紹介する。

偽の証明書問題

言語能力の証明書、大学の卒業証明書、医師免許など様々な資格があり、その資格に対する証明書がある。職業免許には常に偽造の問題があり、コストをかけて様々な偽造対策が実施されている。また、言語能力の証明書や大学の卒業証明書の偽造も増えており、社会問題となっている。

留学生、出願書類を偽造 成績・語学証明…目立つ中国人 大学、対策悩む — 2014/11/24付日本経済新聞 朝刊

海外から日本の大学に出願する受験生の書類で偽造が発覚するケースが相次ぎ、各大学が頭を悩ませている。大半は中国からの受験生で、現地の高校の成績や語学力の証明書が偽造されることが多い。

「卒業証明書に高校の印鑑がない」。東京都内にある私大の入試担当者は、中国の受験生から届いた出願書類を見て驚いた。現地の高校側に電話で問い合わせたところ偽造と分かり、受験を認めなかった。

偽造があるという前提で一枚一枚チェックしなければならず、手間がかかる。中国語を話せるスタッフの人数も限られている

京都大大学院でも複数の中国人学生の学歴詐称が入学後に判明した。対策として「アドミッション支援オフィス」を2010年に新設し、留学希望者が卒業した大学が中国や香港、台湾の場合は出願書類を入念に調べているという。

大学評価・学位授与機構(東京)は今年2~4月、約300大学の職員を対象に海外の受験生の出願書類に関する調査を初めて実施した。出願書類の偽造やその疑いが発覚したケースを経験した教職員は9%。84%の教職員が書類の真偽の確認は「困難」「やや困難」と回答した。

要約すると、証明書の偽造が増えているが検証コストが高く、見抜けないケースも多いとのこと。

紙の証明書における取り組み

従来より証明書は紙で発行されてきた。紙の証明書には様々な偽造防止の技術が施され、偽造や改ざんは難しくなっている。

しかし、精巧に偽造された偽の証明書も多く出回っており、先の大学入試出願書類の偽造の例のように、実際に本物かどうか検証するには証明書の発行機関に問い合わせ確認する作業が必要になっている。

この、検証にコストがかかるという問題が大きな課題となっている。証明書の偽造・改ざんを簡単かつ低コストで検証できるようになれば、偽の証明書問題は解決するのではないだろうか。

次のサブセクションでは、検証コスト削減を実現した数少ない事例を紹介する。

既存の証明書の検証に対する取り組み

証明書発行機関の提供するデータベースや暗号技術により、証明書が本物かどうか検証する取り組みがある。ここでは、データベースによる方法と暗号技術による方法を例として1つずつ紹介する。

厚生労働省が提供する医師等資格確認検索というサービスがあり、職種、氏名、性別、生年月日、登録番号、登録年月日の全てが揃うと登録の有無が確認できる。ただし、このサービスは2年に1回の届け出をしている医師・歯科医師しか検索できないという問題がある。また、そもそも医師免許は賞状のような形態をしており顔写真が含まれていないため、なりすましの確認ができない問題がある。

もう一つの例として、コンビニ交付証明書の偽造・改ざん防止技術がある。これはスクランブル画像による改ざん防止技術を利用して偽造・改ざんを検知している。これはよくできた仕組みになっており、おもて面の証明書を暗号化した画像(スクランブル画像)を裏面に添付し、証明書復号画像表示システムによってスクランブル画像を復号するとおもて面の画像が得られる。実際に受け取った証明書おもて面の内容と証明書復号画像表示システムで復号した画像を比較することで、証明書の内容が偽造・改ざんされていないかを確認(検証)することができる。

コンビニ交付証明書の偽造・改ざん防止技術は非常によく設計されており、その名に偽造・改ざん防止技術と付いているが、本質的な価値は上で述べたように偽造・改ざんされていないかを検証できることにある。従来の証明書は発行者に問い合わせする必要がある等検証コストが高かったが、比較的簡単に検証できるようになった点は特筆に値する。

この仕組みはもっと普及していいように思えるが、なぜ普及しないのだろうか。仮説に過ぎないが、言語能力認定試験や高校、大学など証明書発行団体それぞれが運用するにはコストが高過ぎるのかもしれない。異なる資格発行者同士で共通のシステムを利用する方法も考えられるが、誰がシステムを管理し、誰がプロジェクトを推進するか、どのようにデータ連携し、どのように特定のデータを秘匿するかなどを考慮するとプロジェクト推進は困難になると予想される。

なぜブロックチェーンなのか

すでに述べたように、紙の証明書には偽造・改ざんがされていないかの検証が難しいという問題がある。ブロックチェーンとデジタル資格証明書の相性が良い理由はここにある。

ブロックチェーンには、記録の内容や署名者(≒記録作成者)の情報が偽造・改ざんされているかどうかを簡単に検証できるという性質がある。もしブロックチェーンを利用したデジタル資格証明書の運用が実現したら、勝手に医師免許を偽造したり、あるいは日本語能力試験N2合格の証明書をN1に書き換えたりしても検証によって検知できるということを示している。

どう実現するか(提案手法)

まず、ブロックチェーンを利用したデジタル資格証明書に関わる参加者を整理する。基本的には以下の3者が考えられる。

  • 発行者
  • 受領者
  • 検証者

発行者は資格の認定・発行団体を指す。受領者は資格試験を受験し、認定を受けた者を指す。受領者は発行された証明書を受け取る。検証者は受領者から証明書を受け取り、証明書の真偽を検証する者を指す。

証明書の発行から検証まで、大まかに以下のようなワークフローが考えられる。

発行者のセットアップ

発行者は証明書の発行時にブロックチェーンにトランザクションを送信する。検証時に正しい発行者によってトランザクションが署名されていることを確認できるようにするため、発行者の情報(公開鍵、団体名など)をWebに公開しておく。

発行者公開情報には、秘密鍵の流出に備え、公開鍵の作成日と有効期限も記載しておく。そうすることで、この期間外に発行された証明書を無効とみなすことができるようになる。もし流出しなかったとしても、鍵を交換する仕組みをいれておくことで定期的な鍵のローテーションができるようになり、セキュリティが向上する。

また、誤って発行した証明書を無効化できるよう、証明書失効リスト (Certificate Revocation List, CRL) もWebに公開しておく。

証明書の発行

証明書の発行は以下のシーケンスで行う。

ステップ4において作成される証明書には、受領者の個人情報と資格の詳細(資格名、グレード、有効期限等)が記載される。偽造・改ざんの検証だけでなく、受領者の顔写真などを埋め込んでおけばなりすましも防止することができる。データ形式はJSONなどを想定している。

ステップ5では、例えばBitcoinトランザクションのOP_RETURNやEthereumトランザクションのInput Dataなどに証明書のメッセージダイジェストを書き込むことを想定している。トランザクションがブロックに承認されたら、ステップ6にてトランザクションIDを得られる。

資格名や有効期限など証明書の内容を1文字でも改ざんすれば、証明書から得られるメッセージダイジェストが変化し改ざんを検知できる。

ステップ7では、証明書とそれに対応するトランザクションIDを受領者に送付する。

証明書の閲覧

証明書は手元にあるので、そのまま閲覧可能になる。証明書データをどのようにレンダリングするかはアプリケーション側で制御する。例えば、モバイルアプリやWEBブラウザでの閲覧が考えられる。

受領者自身も次項のプロセスで証明書を検証できる。

証明書の検証

証明書の検証は以下のシーケンスで行う。

ステップ2では、受け取った証明書の内容が適切かどうかを確認する。例えば、大学の卒業証明書を要求しているのに別の証明書になっていないか、有効期限が切れていないか、顔写真が埋め込まれていれば本人確認をしたりなどを行う。

ステップ11では、そもそも正しい発行者によって作成されたトランザクションかどうかを確かめる。もし違っていれば、不正な人物が不正に作成したトランザクションということになり、受け取った証明書をリジェクトできる。

ステップ12では、受け取った証明書の実際のメッセージダイジェストと、証明書発行者によってブロックチェーンに書き込まれたメッセージダイジェストを比較する。もし値がずれていれば、受け取った証明書が偽造・改ざんされているということになる。

他の手法

提案手法はトランザクションにダイジェストを書き込む方式なので、基本どんなデータベースでも動くと考えられる。永続的な記録としてBitcoinへの書き込みが最有力。

  • 独自トークンの利用はユーザビリティが下がるので推奨しない
  • ERC721などスマートコントラクトを利用した設計も、証明書は移管したり交換したりするものではないので、過剰になると思われる

今後の課題

ブロックチェーンとデジタル資格証明書の相性が良いとは言っても、実現までにざっと以下のような問題がある。

ユーザビリティ

鍵の管理をどうするかという問題がある。中央で管理(ログインID/password方式)するか、それぞれが管理するか。それぞれが管理するなら、鍵紛失に備えて復元機能実装を実装すると良いかもしれない。復元機能としては、uPortの例が参考になる。

また、大量の証明書をまとめて発行したり、大量の証明書をまとめて検証するというニーズも確実に存在する。

プライバシー

証明書の内容を必要な範囲だけに公開したい。ブロックチェーンに書き込むデータは証明書のダイジェストなので、プロトコルとして証明書自体はどこにも公開する必要はないが、エコシステムとして証明書をどこに保存するかは問題になる。

スケーラビリティ

スケーラビリティが問題になることはほとんどないと考えられる。

あえて挙げるなら、証明書発行時のトランザクションがボトルネックになると考えられる。ユーザビリティの問題とも重複するが、例えば大量の証明書それぞれを葉とするマークルツリーを作成し、ルートハッシュのみをブロックチェーンに書き込むという方法が考えられる。こうすれば手数料を削減しつつスケールさせることができる。

証明書の閲覧や検証はP2Pネットワークなのでスケールすると考えられる。プロトコル以外だとWEBサーバー統合部分が問題になるだろう。

運用上の問題

プロトコル(証明書の発行および検証プロセス)をオープン化・分散化するかといった問題や、開発をどう推進するかという問題がある。

誰がブロックチェーン利用料(トランザクション手数料)を負担するかという問題もある。プロトコルとしては発行者が負担することになっているが、中央集権的に鍵を管理するのであれば、プラットフォーム運営者が負担することもできる。

最大の課題として、社会的な理解が得られるかという問題がある。多くの人にとって、人生で証明書について考える瞬間は少ない。ブロックチェーンを利用してどんなに良いデジタル証明書を発明したとしても、特に困っていなかった人からすればそれは重要な問題ではない。普及させるためにはそれ相応のニーズが必要になってくる。

ブロックチェーンを利用することで、紙の証明書の管理コストが下がる(焼失・紛失が起きない)、真正性の維持コストが下がる(発行者に問い合わせ無しにブロックチェーンを介して偽造・改ざんの検証ができる)といったことが実現する。こういった将来のビジョンをしっかり伝えていくことが必要となってくる。

提案手法はプロトコルに過ぎず、実現するには周辺のエコシステムも含めた環境の充実が求められる。今後はこれらの課題について考え、実現させていきたい。

まとめ

紙の証明書で実現が難しかった偽造・改ざんの検知・検証する仕組みを、ブロックチェーンを利用することで簡単/瞬時/低コストに実現できるようになる。

日本国内では証明書の偽造が問題になることは少ないが、グローバル化やWebとの統合が加速するにつれて信用コストが増大する。ブロックチェーンを利用したデジタル資格証明書により、社会全体で負担しているコストを削減できるのではないか。

所感

ブロックチェーンを利用したデジタル資格証明書を実装するだけでなく真に普及させるには、日本の企業や大学に閉じずグローバルに推進する必要がある。

また、今回は教育における資格証明書に注目したが、この技術はトレーサビリティ、オンライン投票、分散IDといった領域にも応用できると考えられる。

参考情報

提案手法はMIT Media Labが開発中のOSSプロジェクトBlockcertsに強い影響を受けている。Blockcertsはブロックチェーンを利用した証明書を発行・閲覧・検証するためのオープンスタンダードである。オープンバッジなど既存の標準にも準拠し、プラットフォーム横断可能でオープンな標準の策定に注力している。コミュニティも活発に活動している。

Blockcertsでは証明書の発行に受領者のブロックチェーンアドレスを要求するが、受領者は発行された証明書に再度署名しない。ユーザビリティも下げるため、受領者のアドレスは不要ではないかと考え提案手法では省略している。

また、Blockcertsはデジタル資格証明書の発行と検証のプロトコルであり、周辺のエコシステムまで整備し切れているとは言えない。とはいえ、オープンなプロトコルと充実したエコシステムを整えユーザーを集めることができれば、Blockcertsが覇権を握る可能性は高い。

記事を読んで楽しんで頂けた方は、Twitterでフォローいただけると嬉しいです。

--

--