Tech

NFT卒業証書はどう実装されるのか?プロトタイプ実装を基に仕組みを解説


NFT卒業証書はどう実装されるのか?プロトタイプ実装を基に仕組みを解説

こんにちは。開発エンジニアのロサリノです。

関連記事" NFT卒業証書とは?教育機関のための新しい「学びの証明」の考え方"では、NFT卒業証書がなぜ注目されているのか、教育分野における「学びの証明」という観点から背景が整理されています。

一方で、実際にどのような仕組みでシステムとして成立するのかは、技術的な観点から整理される機会はまだ多くありません。そこで今回は、NFT卒業証書がどのようなシステム構成で実現されるのかを、最小構成のプロトタイプを実装し、発行から検証までの流れを整理します。

発行から検証までの流れに沿って技術的な視点から解説していきます。

目次

  • NFT卒業証書の仕組みはどのように成立するのか
  • NFT卒業証書のシステム構成
  • 実装で難しかったポイント
  • 検証で確認できたポイント
  • 検証から見えてきた課題
  • おわりに

1. NFT卒業証書の仕組みはどのように成立するのか

NFT卒業証書という概念は紹介される機会が増えていますが、実際にどのような仕組みで運用されるのかは、技術的な観点から整理されることはまだ多くありません。

例えば、次のような点です。

  • 誰が発行するのか
  • どうやって内容を確認するのか
  • 毎回、学校に問い合わせないといけないのか

こうした部分が曖昧なままでは、実際の証明書として使うのは難しいはずです。
そこで今回は、卒業証書をデジタルで発行し、第三者が自分で内容を確認できる仕組みが作れるかという点を、実際に作って確かめてみることにしました。今回は、「発行 → 学生が持つ → 第三者が確認する」という一連の流れを、最初から最後まで通せるかを検証のゴールとして設定します。

2. NFT卒業証書のシステム構成

このプロトタイプで最も重視したのは、デジタル卒業証書として発行された証明を、第三者が検証できる構造を作ることでした。ブロックチェーン証明やVerifiable CredentialsVC)などの技術は、こうしたデジタル証明を実現するための仕組みとして使われています。ブロックチェーン連携やNFT発行ロジックの実装については、以下の記事でも詳しく紹介しています。

LINE Mini Dapp × Kaiaで条件達成型NFT発行ロジックを実装してみた

PDFの卒業証書は、見た目はそれらしく見えても、中身を書き換えようと思えば簡単にできてしまいます。中央のデータベースで管理する方法もありますが、その場合は確認のたびに発行元に問い合わせる必要があります。一方で、ブロックチェーンに直接書き込む方法もありますが、個人情報の扱いや、あとから修正・失効する難しさなど、運用面で気になる点もあります。こうした点を踏まえ、今回は決まった形式で書かれたデジタル証明書に発行元のデジタル署名を付け、第三者がその署名を検証できる仕組みを採用しました。

今回のプロトタイプは、次のような構成で実装しています。

  • 管理者が証書を発行する画面
  • 裏側で証書に署名する仕組み
  • データはブロックチェーンには載せず、別で管理
  • 誰でもアクセスできる確認用の画面
管理者ポータルから証明書データを入力・発行し、バックエンドAPIと署名サービスでVCを生成・保存、QRコード経由で検証Webが署名済みVCを取得・暗号検証する全体フロー図(ウォレット不要・ブラウザ即時検証対応)

ブロックチェーン連携については検討しましたが、今回は「卒業証書として成立するか」を確認することを目的としたため、最小構成の仕組みに絞って実装しています。

3. 実装で難しかったポイント

実装で最も時間がかかったのは、卒業証書に書かれている情報を、システムが理解できる形でどのように表現するかという部分でした。

具体的には、次のような項目です。

  • 学籍番号
  • 学位
  • 専攻
  • 卒業年月

これらの項目は、人が見る分には分かりやすいですが、そのままでは「どういう意味のデータなのか」をシステム側が判断できません。

その為、

  • 既に使われている表現で置き換えられないか
  • 置き換えられない場合は、意味をきちんと説明する定義を用意する

といった作業を、一つずつ確認する必要がありました。

「自由に項目を追加できる」と考えていた部分も、
実際には決まりごとをきちんと揃えないと正しく動作しません。データの意味や構造をあらかじめ定義しておくことが、システムとして成立させるうえで重要なポイントでした。

Ed25519Signature2020を用いてVerifiable Credential(学位証明)を生成・署名するJavaScriptコード例で、@context定義、issuer、credentialSubject、発行日を設定しvc.issueで署名済みVCを作成している画面

4. 動かしてみて確認できたこと

作成した証書については、管理画面から証書を発行し、確認用のURLから内容を検証できるところまで動作を確認しました。

NFT卒業証明システムの証明書発行画面で、氏名・学籍番号・学位・専攻・卒業年と月を入力し証明書を発行するフォームUI

卒業証書として運用することを考えると、次の点は特に重要なポイントになります。

  • 発行元に連絡しなくても確認できる
  • 特別なウォレットを持っていなくても確認できる

一方で、少し項目を変更しただけでも検証に失敗するケースがあることも確認できました。データの書き方や構造は想像以上に厳密であり、利用者が意識しなくても扱えるように、画面側でうまく抽象化する必要がありそうです。

5. 検証から見えてきた課題

今回のプロトタイプを通して見えてきたのは、次のような点です。

  • NFT卒業証書は、アイデアだけでなく実際にシステムとして実装できる
  • 重要なのは「ブロックチェーンを使っているか」ではなく、第三者が中身を確認できる仕組みになっているか
  • 見た目以上に、データの書き方や管理のルールが重要になる 

一方で、どこまでを仕組みで担保するか、どこを運用でカバーするかなど、実際の導入を考えると整理すべき点もまだ多くあります。

6. おわりに

NFT卒業証書というテーマは、概念として語られることが多い一方で、実際のシステム構成がどのようになっているのかは、まだ十分に知られていません。今回のプロトタイプ検証を通して、卒業証書をデジタルで発行し、第三者が内容を確認できる仕組みは、比較的シンプルな構成で実現できることが確認できました。

重要なのは、ブロックチェーンを使うことそのものではなく、証明の真正性を第三者が確認できる構造をどう設計するかという点です。教育機関としてNFT卒業証書の導入を検討する場合には、技術面だけでなく、運用設計や導入範囲の整理も重要になります。導入を検討する際に整理しておきたいポイントについては、以下の記事で詳しくまとめていますので、あわせてご覧ください。

もしかして今がタイミング?教育機関がNFT卒業証書の導入を検討する際に知っておくべきポイントを解説!