中小法人・個人事業者向けの補助金・給付金申請において、本人確認と実在証明に必要となる証明書類を検証可能な形でデータ化し、関係者間で安全な方法でデータ共有することで、補助金・給付金の申請手続きを効率化するとともに、データの利活用が可能となる仕組みの提供を目指しています。
データフロー:データの保有者である申請者は、証明者にVCの発行を依頼してVCを取得する。 申請者はローカルストレージ上にてVCを管理し、申請先の応募資格を確認した上で開示を行う。 プロトタイプシステムではVCをブラウザのローカルストレージに保持し、アクセスコントロールは行っていない。 (今後、ネットワーク越しにVCを管理する際には、送信者と受信者のみが見ることのできるアクセスコントロールを実装する予定。)
エンティティ1:公的支援(補助金・給付金等)を申請する中小法人・個人事業者(=申請者) 発行されたVCに対する所有権を持ち、ローカルストレージ上に自分に関する属性情報を保存し、 申請先の依頼に基づき、申請先に提示する。申請に必要な各種証明を取得するため、申請者から証明者にVC発行依頼をする。
エンティティ2:国、自治体、金融機関(=証明者) 申請者から申請依頼を受け取り、審査する。申請された内容が各証明者が保有している内容と相違がないことを確認する。 ブロックチェーン上にVC status管理スマートコントラクトを作成して、VCを発行する。 スマートコントラクトはVCの状態を保持しており、VCの取り消しはVCの状態を取り消し済みに変更することで行っている。 取り消しはメッセージではなく、状態の更新であり、状態を変更したログが残り続けるため、スマートコントラクトを利用している。 また、VCの発行者しか状態の更新をできないようにしている。
エンティティ3:補助金・給付金執行事務局等(=申請先) 申請者から申請情報を受け取り、審査する。補助金・給付金が、適切かつ迅速に申請者に届くようにする。 VPからVCを取得し、申請情報を審査する。そして審査結果についてシステムに登録する。
- 申請者は、このシステムと申請者の氏名等の紐づけに使用する「住民票VC」を自治体に申請する。
- 申請を受けた自治体は、申請された内容が正しいかどうかをシステム外で照会を行い、取り消し処理が可能な「住民票VC」を発行する。
- 申請者は 紐づけされた「住民票VC」のデータを活用して、補助金申請に必要となる「口座実在証明書VC」と「納税証明書VC」の発行依頼を行う。
- 申請を受けた金融機関は、申請された内容が正しいかどうかをシステム外で照会を行い、取り消し処理が可能な「口座実在証明VC」を発行する。
- 申請を受けた税務署は、申請された内容が正しいかどうかをシステム外で照会を行い、取り消し処理が可能な「納税証明VC」を発行する。
- 3種類のVCを申請者が保有している状態で、申請者は、補助金事務局に対して「補助金申請のVP」を提示する。
- 補助金事務局はVCの検証を行い、申請を受理し「補助金申請受理VC」を発行する。
- 証明者は「発行済みVC」の取り消しを行うことができる。
- 補助金事務局は「補助金申請受理VC」を発行した後も、証明者がVCの取り消しを行った場合など、「補助金申請受理VC」を取り消しを行うことができる。
ソースコードをデプロイして、クラウド上で動かすので、実行ファイル自体の個別提供はありません。
ソースコードは以下の構成です。
- /algo/firebase 要件定義書における申請者、証明者、申請先のWebアプリ
- /algo/asc1 要件定義書のrevokedInfo(VC取消)の実装におけるスマートコントラクトを定義。asc1で定義されたスマートコントラクトは、revokedInfoのアプリケーションインデックス(スマートコントラクトのID)を使って呼び出す。
以下の環境で動作します。
ミドルウェア
-
Node.js 18.x
-
Next.js 12.x
-
Python 3.10.x
以下の手順で環境構築を行います。
- Visual Studio Codeのインストール及びセットアップ
- Dockerのインストール
- Gitアカウント作成
- Gitのインストール(Windowsのみ)
- ソースコードのダウンロード
- ローカル環境でのアプリケーション起動
- Firebaseプロジェクトの作成
- Firebaseへのデプロイ
Firebaseへのデプロイ後、"Trusted Web Subsidy"のアプリケーション画面が表示されれば構築完了です。
詳細については、環境構築手順書を御覧ください。
本アプリケーションは実証実験用のプロトタイプシステムです。 実運用上での利用は保障されていません。 実運用においては、性能およびセキュリティ等についても別途検討が必要です。