(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024121550
(43)【公開日】2024-09-06
(54)【発明の名称】変換装置及びスマートコントラクト
(51)【国際特許分類】
H04L 9/32 20060101AFI20240830BHJP
G06F 21/64 20130101ALI20240830BHJP
【FI】
H04L9/32 200Z
G06F21/64
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023028704
(22)【出願日】2023-02-27
(11)【特許番号】
(45)【特許公報発行日】2024-02-19
(71)【出願人】
【識別番号】521314688
【氏名又は名称】NATコンサルティング合同会社
(74)【代理人】
【識別番号】100185270
【弁理士】
【氏名又は名称】原田 貴史
(74)【代理人】
【識別番号】100225347
【弁理士】
【氏名又は名称】鬼澤 正徳
(72)【発明者】
【氏名】▲崎▼村 夏彦
(72)【発明者】
【氏名】松尾 真一郎
(57)【要約】
【課題】電子的文書の変換に際して、その変換の正当性を確認できるようにすることによって、検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにすること。
【解決手段】本発明の変換装置1は、変換対象となる対象データ及び対象データの提供者に係る提供者情報を取得可能な取得部111と、電子計算機2に、対象データを変換済データに変換可能な変換ステップ、及び、変換済データに提供者データ及びスマートコントラクトのアドレスを付与した検証可能変換済データを提供可能な提供ステップ、を実行させることが可能なスマートコントラクトに対象データの変換を指令可能な変換要求部112と、アドレスに係るスマートコントラクトの処理内容の表示を指令可能なスマートコントラクト表示部113と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
変換対象となる対象データ及び前記対象データの提供者に係る提供者情報を取得可能な取得部と、
ブロックチェーン上のスマートコントラクトであって、前記ブロックチェーンに、
前記対象データを変換済データに変換可能な変換ステップ、及び、
前記変換済データに前記提供者情報及び前記スマートコントラクトのアドレスを付与した検証可能変換済データを提供可能な提供ステップ、
を実行させることが可能なスマートコントラクトに前記対象データの変換を要求可能な変換要求部と、
前記アドレスに係る前記スマートコントラクトの処理内容を表示可能なスマートコントラクト表示部と、
を備え、
前記変換ステップは、前記対象データのフォーマットを変更する変換が可能であり、かつ、前記対象データの一部を抽出する変換が可能である、
変換装置。
【請求項2】
前記変換ステップは、前記変換済データが前記スマートコントラクトによって変換されたデータであるかを検証可能な検証情報を前記ブロックチェーンに書き込み可能であり、前記提供ステップは、前記検証情報の検証情報アドレスを前記検証可能変換済データに付与可能である、請求項1に記載の変換装置。
【請求項3】
前記取得部は、前記変換装置の利用者に係る検証鍵をさらに取得可能であり、
前記変換要求部は、前記スマートコントラクトに前記検証鍵を提供可能であり、
前記スマートコントラクトは、前記検証鍵を用いて前記対象データが正当なデータであるかを検証する検証ステップをさらに実行させることが可能であり、
前記変換ステップは、前記検証ステップにおいて前記対象データが正当なデータであると検証された場合に前記変換を実行可能である、
請求項1に記載の変換装置。
【請求項4】
ブロックチェーン上のスマートコントラクトであって、
ブロックチェーンに、
変換対象となる対象データ及び前記対象データの提供者に係る提供者情報を取得可能な取得ステップと、
変換対象となる対象データを変換済データに変換可能な変換ステップと、
前記変換済データに前記提供者情報及び前記スマートコントラクトのアドレスを付与した検証可能変換済データを提供可能な提供ステップと、
を実行させることが可能であり、
前記変換ステップは、前記対象データのフォーマットを変更する変換が可能であり、かつ、前記対象データの一部を抽出する変換が可能である、
スマートコントラクト。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換装置及びスマートコントラクトに関する。
【背景技術】
【0002】
電子的文書(データ)の変換に際して、その変換の正当性を確認する要望がある。変換の正当性の確認に関し、例えば、電子署名の確認を用いて改ざんを検知する万式では、データそのものの変化を電子署名によって検出することで改ざんを検知する。そのため、文書のフォーマットを変換したり、文書の一部を抜き出したりすると、文書が改ざんされていると誤検知される。よって、このような方式では、フォーマットの変換等を含む変換に係る正当性の確認が行えないことが懸念される。そこで、フォーマットの変換等を含む変換に係る正当性を確認可能な手段が求められている。
【0003】
電子的文書の変換に係る正当性の確認に関し、特許文献1は、文書ファイルにデータ変換処理を施して生成した変換後文書ファイルに、署名情報を付与した署名付き変換後文書ファイルのデータ完全性を検証する情報処理装置であって、前記署名付き変換後文書ファイルに含まれる、前記署名情報が付与される前の文書ファイルから計算された第1非可逆圧縮データと、前記文書ファイルに前記データ変換処理を施して生成した変換後文書ファイルから計算された第2非可逆圧縮データとを抽出する抽出手段と、前記署名付き変換後文書ファイルの変換後文書ファイルから、第3非可逆圧縮データを計算する第1計算手段と、前記第2非可逆圧縮データと、前記第3非可逆圧縮データとを比較することによって、前記署名付き変換後文書ファイルのデータ完全性を検証する第1検証手段とを備えることを特徴とする情報処理装置を開示している。
【0004】
特許文献1の技術は、文書ファイルのデータ変換処理後の変換後文書ファイルの状態で、その変換後文書ファイルのデータ完全性を検証し得る。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の技術における変換後文書ファイルのデータ完全性は、付与された電子薯名の確認及び非可逆圧縮データの比較によって改ざんされていないことを確認することによって行われる。しかしながら、特許文献1の情報処理装置は、複維な実装となることが懸念される。また、特許文献1の情報処理装置における検証では、複数の提示先の結託による名寄せ可能性を排除できない(ペアワイズ仮名性の喪失)。加えて、該検証では、データの一部を抽出する変換に対応できない等、変換に多くの制限が設けられてしまい、多くのユースケースに適合しないことも懸念される。
【0007】
何らかの暗号技術の工夫によってフォーマットの変換、データの一部抽出等を含む変換に係る正当性の確認を可能とする場合にも、特許文献1の技術と同様に、複雑な実装となること及び変換に多くの制限がかかることが懸念される。
【0008】
多くのユースケースに対応すべく、信頼できる主体に変換を依頼するという方法が取られ得る。しかしながら、このような方法では、変換を依頼した者等がその変換の正当性を検証できないことが懸念される。
【0009】
変換対象となるデータの発行者に変換後のデータの作成及び電子署名の付与を依頼する方法が取られ得る。しかしながら、このような方法では、発行者が変換対象となるデータを保管していない場合、発行者がインターネットに接続していないオフラインである場合等に変換後のデータを作成できないことが懸念される。
【0010】
本発明の目的は、電子的文書の変換に際して、その変換の正当性を確認できるようにすることによって、検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにすることである。
【課題を解決するための手段】
【0011】
本発明者らは、上記課題を解決するために鋭意検討した結果、変換を行ったスマートコントラクトのアドレスが付与された変換済データを生成する変換をスマートコントラクトで行い、該アドレスに係るスマートコントラクトを表示可能とすること等によって、上記の目的を達成できることを見いだした。そして、本発明者らは、本発明を完成させるに至った。具体的に、本発明は以下のものを提供する。
【0012】
本発明は、変換対象となる対象データ及び前記対象データの提供者に係る提供者情報を取得可能な取得部と、ブロックチェーン上のスマートコントラクトであって、前記ブロックチェーンに、前記対象データを変換済データに変換可能な変換ステップ、及び、前記変換済データに前記提供者データ及び前記スマートコントラクトのアドレスを付与した検証可能変換済データを提供可能な提供ステップ、を実行させることが可能なスマートコントラクトに前記対象データの変換を要求可能な変換要求部と、前記アドレスに係る前記スマートコントラクトの処理内容を表示可能なスマートコントラクト表示部と、を備え、前記変換ステップは、前記対象データのフォーマットを変更する変換が可能であり、かつ、前記対象データの一部を抽出する変換が可能である、変換装置を提供する。
【0013】
本発明は、対象データのフォーマットを変更する変換、対象データの一部を抽出する変換等の対象データを変換する処理をスマートコントラクトに指令できる。これにより、電子的文書の変換がブロックチェーン上のスマートコントラクトによって行われる。ここで、ブロックチェーン上のスマートコントラクトは、該スマートコントラクトの処理内容およびこれに係る不正・改ざん等を分散的に検証可能である。
【0014】
そして、本発明は、変換済データに付与されたアドレスに係るスマートコントラクトを表示することにより、変換済データに係る変換処理すなわちスマートコントラクトにおける変換処理が正当なデータ変換を行う処理であるかどうかを容易に確認可能とする。これにより、検証者は、該確認を通じて、変換後の内容が変換前の内容と同じであることを信じることができる。すなわち、本発明は、データ変換に係る分散型トラスト形成を実現できる。
【0015】
また、本発明の変換装置は、上述の変換ステップが、前記変換済データが前記スマートコントラクトによって変換されたデータであるかを検証可能な検証情報を所定のブロックチェーンに書込可能であり、前記提供ステップは、前記検証情報の検証情報アドレスを前記検証可能変換済データに付与可能であるよう構成されることが可能である。
【0016】
検証者は、このように構成された本発明から検証可能変換済データを受け取ると、そこに付与された検証情報アドレスから検証情報を取り出し、該検証情報を用いて本発明に係るスマートコントラクトによって変換されたデータであることを確認できる。これにより、検証者は、変換後の内容が変換前の内容と同じであることをよりいっそう信じることができる。
【発明の効果】
【0017】
本発明は、電子的文書の変換に際して、その変換の正当性を確認できるようにすることによって、検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにするための手段を提供できる。
【図面の簡単な説明】
【0018】
【
図1】
図1は、本実施形態のシステムSのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【
図2】
図2は、変換装置1におけるデータ変換処理の好ましい流れの一例を示すメインフローチャートである。
【
図4】
図4は、スマートコントラクトCが実行する変換処理の好ましい流れの一例を示すフローチャートである。
【
図6】
図6は、保持者と検証者が同一の場合におけるシステムSにおける処理の流れの一例を示すフローチャートである。
【
図7】
図7は、保持者と検証者が異なる場合におけるシステムSにおける処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下は、本発明の実施形態の一例について、図面を参照しながら詳細に説明するものである。
【0020】
<システムS>
図1は、本実施形態のシステムSのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。以下は、本実施形態のシステムSのハードウェア構成及びソフトウェア構成の好ましい態様の一例を、
図1を用いて説明するものである。
【0021】
システムSは、ネットワークNを介して互いに通信可能な変換装置1及びブロックチェーン2を含んで構成される。
【0022】
〔変換装置1〕
変換装置1は、制御部11と記憶部12と通信部13とを備える。変換装置1の種類は、特に限定されない。変換装置1の種類は、例えば、サーバ装置、クラウドサーバ、端末等でよい。端末は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレット端末等である。
【0023】
[制御部11]
制御部11は、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等を備える。
【0024】
制御部11は、必要に応じて記憶部12及び/又は通信部13と協働する。そして、制御部11は、変換装置1で実行される本実施形態のプログラムのソフトウェア構成要素である、取得部111、変換要求部112、スマートコントラクト表示部113等を実現する。本実施形態のプログラムのソフトウェア構成要素それぞれが提供する機能は、後述するデータ変換処理の好ましい流れの説明において示される。
【0025】
[記憶部12]
記憶部12は、データ及び/又はファイルが記憶される装置であって、ハードディスク、半導体メモリ、記録媒体、及びメモリカード等によるデータのストレージ部を有する。
【0026】
記憶部12は、ネットワークNを介してNAS、SAN、クラウドストレージ、ファイルサーバ及び/又は分散ファイルシステム等の記憶装置又は記憶システムとの接続を可能にする仕組みを有してもよい。
【0027】
記憶部12には、マイクロコンピューターで実行されるプログラム等が記憶されている。記憶部12には、対象データ、提供者情報、検証鍵、変換済データ等が記憶され得る。
【0028】
[通信部13]
通信部13は、変換装置1をネットワークNに接続してブロックチェーン2等と通信可能にするものであれば特に限定されない。通信部13として、例えば、携帯電話ネットワークに対応した無線装置、無線LANに接続可能なデバイス、及びイーサネット規格に対応したネットワークカード等が挙げられる。
【0029】
〔ブロックチェーン2〕
ブロックチェーン2は、そのブロックチェーンに記録されたデータを用いるスマートコントラクトCが実行可能であれば、特に限定されない。ブロックチェーン2は、電子署名とハッシュ値の連鎖により、イベントの前後関係、またはデータが存在した時刻の証明と、改ざん検出が容易なデータ構造を持ち、かつ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現している。これにより、ブロックチェーン2は、実行されるスマートコントラクトC、書き込まれた各種データ等に係る不正・改ざん等を分散的に検証可能である。
【0030】
ブロックチェーン2は、検証情報が書き込まれ得るよう構成されることが好ましい。ここで、検証情報は、変換済データがスマートコントラクトCによって変換されたデータであるかを検証可能な情報である。これにより、検証者は、ブロックチェーン2上に書き込まれた改ざん困難な検証情報を用いて変換済データがスマートコントラクトCによって変換されたデータであることを確認できる。これにより、検証者は、変換後の内容が変換前の内容と同じであることをよりいっそう信じることができる。
【0031】
[スマートコントラクトC]
スマートコントラクトCは、変換対象となる対象データ及び該対象データの提供者に係る提供者情報を取得可能な取得ステップと、変換対象となる対象データを変換済データに変換可能な変換ステップと、変換済データに提供者データ及びスマートコントラクトCのアドレスを付与した検証可能変換済データを提供可能な提供ステップと、をブロックチェーン2に実行させることが可能であれば、特に限定されない。
【0032】
スマートコントラクトCは、検証鍵を用いて対象データが正当なデータであるかを検証する検証ステップをさらに実行させることが可能であり、かつ、変換ステップが検証ステップにおいて対象データが正当なデータであると検証された場合に変換を実行可能であることが好ましい。
【0033】
変換ステップは、対象データのフォーマットを変更する変換が可能であり、かつ、対象データの一部を抽出する変換が可能である。このような変換として、例えば、X.509形式のデジタル証明書をJSON形式に変換する変換、X.509形式のデジタル証明書をHMACが付されたJWT形式に変換する変換等が挙げられる。変換ステップにおける変換は、例示の変換に限定されず、対象データのフォーマット変更及び/又は対象データの一部抽出を含む各種変換でよい。
【0034】
〔ネットワークN〕
ネットワークNの種類は、変換装置1及びブロックチェーン2等を互いに通信可能にするものであれば特に限定されない。ネットワークNの種類は、例えば、インターネット、携帯電話ネットワーク、無線LAN等である。
【0035】
〔変換装置1におけるデータ変換処理のメインフローチャート〕
図2は、変換装置1におけるデータ変換処理の好ましい流れの一例を示すメインフローチャートである。
図3は、
図2に続く図である。以下は、
図2及び
図3を用いた、変換装置1におけるデータ変換処理の好ましい流れの一例の説明である。
【0036】
まず、変換装置1は、変換対象となる対象データ及び該対象データの提供者に係る提供者情報等を取得する取得ステップを実行する(ステップS1からステップS4)。
【0037】
[ステップS1:対象データ及び提供者情報を取得可能か判別]
制御部11は、記憶部12及び通信部13と協働して取得部111を実行する。そして、制御部11は、変換対象となる対象データ及び該対象データの提供者に係る提供者情報を取得可能か判別する処理を実行する(ステップS1、対象データ等取得可否判別ステップ)。取得可能であると判別した場合、制御部11は、処理をステップS2に移す。取得可能であると判別しなかった場合、制御部11は、処理をステップS7に移す。
【0038】
[ステップS2:対象データ及び提供者情報を取得]
制御部11は、ステップS1の判別に係る対象データ及び提供者情報を取得する処理を実行する(ステップS2、対象データ等取得実行ステップ)。制御部11は、処理をステップS3に移す。
【0039】
対象データ等取得実行ステップにおいて取得される対象データのフォーマットは、特に限定されない。該フォーマットは、例えば、X.509形式のデジタル証明書を含むことが好ましい。これにより、変換装置1及びスマートコントラクトCは、公開鍵証明書の標準フォーマットであるX.509形式のデジタル証明書に含まれる各種情報から証明書の所有者である主体者、主体者の公開鍵情報等によって例示される一部情報を抽出し、別のフォーマットに変換できる。
【0040】
また、該フォーマットは、例えば、ERC725、ERC734、ERC735等によって定められる分散型識別子(Decentralized Identifier、DID)の各種フォーマットを含むことが好ましい。これにより、変換装置1及びスマートコントラクトCは、DIDに含まれる各種情報から変換先のフォーマットに必要な一部情報を抽出し、別のフォーマットに変換できる。
【0041】
対象データ等取得実行ステップにおいて取得される提供者情報は、対象データの提供者(発行者等)を特定可能であれば、特に限定されない。これにより、変換装置1及びスマートコントラクトCは、変換後の変換済データに対象データの提供者を特定可能な情報を含め得る。提供者情報は、例えば、対象データに含まれる発行者情報等でよい。
【0042】
[ステップS3:検証鍵を取得可能か判別]
制御部11は、ステップS2で取得された対象データ等に係る検証鍵を取得可能か判別する処理を実行する(ステップS3、検証鍵取得可否判別ステップ)。取得可能であると判別した場合、制御部11は、処理をステップS4に移す。取得可能であると判別しなかった場合、制御部11は、処理をステップS5に移す。対象データ等に係る検証鍵は、例えば、変換装置1の利用者の検証鍵、対象データの保持者の検証鍵等である。
【0043】
[ステップS4:検証鍵を取得]
制御部11は、ステップS3で取得可能と判別された検証鍵を取得する処理を実行する(ステップS4、検証鍵取得実行ステップ)。制御部11は、処理をステップS5に移す。
【0044】
検証鍵取得可否判別ステップ及び検証鍵取得実行ステップに係る検証鍵は、対象データを検証可能であれば、特に限定されない。対象データのフォーマットがX.509形式のデジタル証明書である場合、検証鍵は、例えば、対象データの上位証明書の公開鍵等でよい。
【0045】
[ステップS5:対象データの変換を要求]
制御部11は、記憶部12及び通信部13と協働して変換要求部112を実行する。制御部11は、ステップS2で取得された対象データの変換をブロックチェーン2上のスマートコントラクトCに要求する処理を実行する(ステップS5、変換要求ステップ)。制御部11は、処理をステップS6に移す。
【0046】
変換要求ステップは、スマートコントラクトCに提供者情報を提供する手順を含むことが好ましい。これにより、スマートコントラクトCは、変換後の変換済データに提供された提供者情報を含められる。
【0047】
検証鍵取得実行ステップにおいて検証鍵が取得されている場合、変換要求ステップは、スマートコントラクトCに当該検証鍵を提供し、当該検証鍵を用いた検証を指示する手順を含んでもよい。これにより、スマートコントラクトCは、提供された検証鍵を用いて対象データを検証できる。
【0048】
変換要求ステップは、検証情報の書き込みをスマートコントラクトCに指示する手順を含んでもよい。これにより、スマートコントラクトCは、変換済データがスマートコントラクトCによって変換されたデータであるかを検証可能な検証情報を指示に応じて書き込める。
【0049】
[ステップS6:変換済データを取得]
制御部11は、ステップS5の要求に応じて変換された変換済データをスマートコントラクトCから取得する処理を実行する(ステップS6、変換済データ取得ステップ)。制御部11は、処理をステップS7に移す。変換済データ取得ステップで取得される変換済データには、該変換済データを変換したスマートコントラクトCのアドレスが付与されている。
【0050】
[ステップS7:処理内容の表示を指令されたか判別]
制御部11は、記憶部12及び通信部13と協働してスマートコントラクト表示部113を実行する。制御部11は、指定されたアドレスに係るスマートコントラクトCの処理内容の表示を指令されたか判別する処理を実行する(ステップS7、表示指令判別ステップ)。指令されたと判別した場合、制御部11は、処理をステップS8に移す。指令されたと判別しなかった場合、制御部11は、処理をステップS1に移す。
【0051】
表示指令判別ステップに係る「指定されたアドレス」は、ステップS6で取得された変換済データに付与されたスマートコントラクトCのアドレスである。これにより、変換装置1は、続くステップS8において当該変換済データに係るスマートコントラクトCの処理内容を表示できる。
【0052】
[ステップS8:処理内容を表示]
制御部11は、ステップS7の指定されたアドレスに係るスマートコントラクトCの処理内容を表示する処理を実行する(ステップS8、スマートコントラクト表示ステップ)。制御部11は、処理をステップS1に移す。
【0053】
変換装置1は、変換済データに付与されたアドレスに係るスマートコントラクトCを表示することにより、変換済データに係る変換処理すなわちスマートコントラクトCにおける変換処理が正当なデータ変換を行う処理であるかどうかを容易に確認可能とする。これにより、検証者は、該確認を通じて、変換後の内容が変換前の内容と同じであることを信じることができる。すなわち、変換装置1は、データ変換に係る分散型トラスト形成を実現できる。
【0054】
〔スマートコントラクトCに係る変換処理のフローチャート〕
図4は、スマートコントラクトCがブロックチェーン2に実行させる変換処理の好ましい流れの一例を示すフローチャートである。
図5は、
図4に続く図である。以下は、
図4及び
図5を用いた、スマートコントラクトCに係る変換処理の好ましい流れの一例の説明である。
【0055】
本実施形態の説明では、ブロックチェーン2における処理の実現に参加する計算機群の一部又は全部がスマートコントラクトCに係る何らかの[処理]を実行することを、「スマートコントラクトCがブロックチェーン2に[処理]を実行させる」又は「スマートコントラクトCが[処理]を実行する」とも記載する。また、スマートコントラクトCに係る処理が実行中のステップから[別のステップ]に移ることを、「スマートコントラクトCは、処理を[別のステップ]に移す」とも記載する。
【0056】
[ステップS11:送付されたデータを取得]
スマートコントラクトCは、変換装置1から送付されたデータを取得する処理を実行する(ステップS11、データ取得ステップ)。スマートコントラクトCは、処理をステップS12に移す。該データは、例えば、対象データ、提供者情報、検証鍵、検証鍵によって対象データを検証する指示、及び/又は検証情報の書き込みに係る指令等を含む。
【0057】
[ステップS12:対象データ及び提供者情報が取得されたか判別]
スマートコントラクトCは、ステップS11において対象データ及び提供者情報が取得されたか判別する処理を実行する(ステップS12、データ判別ステップ)。取得されたと判別した場合、スマートコントラクトCは、処理をステップS13に移す。取得されたと判別しなかった場合、スマートコントラクトCは、変換処理を終了させる。
【0058】
[ステップS13:検証鍵による検証を行うか判別]
スマートコントラクトCは、ステップS12に係る対象データに対する検証鍵による検証を行うか判別する処理を実行する(ステップS13、検証実行判別ステップ)。行うと判別した場合、スマートコントラクトCは、処理をステップS14に移す。行うと判別しなかった場合、スマートコントラクトCは、処理をステップS15に移す。
【0059】
検証実行判別ステップは、例えば、ステップS11において検証鍵によって対象データを検証する指示を取得している場合に検証鍵による検証を行うと判別する手順を含む。
【0060】
[ステップS14:対象データが正当か判別]
スマートコントラクトCは、ステップS13に係る検証鍵を用いて対象データが正当か判別する処理を実行する(ステップS14、検証ステップ)。正当であると判別した場合、スマートコントラクトCは、処理をステップS15に移す。正当であると判別しなかった場合、スマートコントラクトCは、変換処理を終了させる。
【0061】
スマートコントラクトCは、ステップS12に係る対象データを変換する変換ステップを実行する(ステップS15からステップS17)。変換ステップは、変換済データがスマートコントラクトCによって変換されたデータであるかを検証可能な検証情報をブロックチェーン2に書き込み可能な検証情報書き込みステップ(ステップS16からステップS17)を含むことが好ましい。
【0062】
[ステップS15:対象データを変換]
スマートコントラクトCは、ステップS12に係る対象データを変換し、変換済データを得る処理を実行する(ステップS15、変換実行ステップ)。スマートコントラクトCは、処理をステップS16に移す。
【0063】
変換実行ステップは、特に限定されない。変換実行ステップは、対象データのフォーマットを変更する変換が可能であり、かつ、対象データの一部を抽出する変換が可能なステップである。
【0064】
変換実行ステップは、例えば、X.509形式のデジタル証明書をJSON形式に変換する手順、X.509形式のデジタル証明書をHMACが付されたJWT形式に変換する手順等を含む。
【0065】
X.509形式のデジタル証明書をJSON形式に変換する手順は、対象データのフォーマットをX.509形式からJSON形式に変換する変換である。また、該手順は、対象データに含まれる各種情報のうち一部を抽出する変換となり得る。一部を抽出する変換として、例えば、X.509形式のデジタル証明書に含まれる情報のうち、発行者識別子と生年月日のみを抽出してJSON形式の変換済データに含める変換が挙げられる。
【0066】
X.509形式のデジタル証明書をHMACが付されたJWT形式に変換する手順は、対象データのフォーマットをX.509形式からJWT形式に変換する変換である。また、該手順は、対象データに含まれる各種情報のうち一部を抽出する変換となり得る。一部を抽出する変換として、例えば、X.509形式のデジタル証明書に含まれる情報のうち、発行者識別子と生年月日のみを抽出し、スマートコントラクトCの識別子をIDトークンの対象ユーザーIDであるsub値に用い、文書番号を変換済データのJWT識別子であるJTI値に用い、HMAC値を付す変換が挙げられる。
【0067】
また、変換実行ステップは、例えば、ERC725、ERC734、ERC735等によって定められる分散型識別子(DID)の各種フォーマットを別のフォーマットのDIDに変換する手順を含んでもよい。このとき、スマートコントラクトCが各種のDIDを変換可能なUniversal Resolverとして構成されていれば、該スマートコントラクトCは、中央サービスを必要としないDID Universal Resolverとして機能し得る。
【0068】
[ステップS16:検証情報を書き込むか判別]
スマートコントラクトCは、ステップS15に係る変換済データの検証情報をブロックチェーン2に書き込むか判別する処理を実行する(ステップS16、検証情報書き込み判別ステップ)。書き込むと判別した場合、スマートコントラクトCは、処理をステップS17に移す。書き込むと判別しなかった場合、スマートコントラクトCは、処理をステップS18に移す。
【0069】
検証情報書き込み判別ステップは、例えば、ステップS11において検証情報を書き込む指示を取得している場合に検証情報を書き込むと判別する手順を含む。
【0070】
[ステップS17:検証情報を書き込み]
スマートコントラクトCは、ステップS15に係る変換済データの検証情報をブロックチェーン2に書き込む処理を実行する(ステップS17、検証情報書き込み実行ステップ)。スマートコントラクトCは、処理をステップS18に移す。
【0071】
検証情報は、特に限定されない。検証情報は、変換済データがスマートコントラクトCによって変換されたデータであるかを検証可能とする情報である。検証情報は、例えば、変換済データの識別子及び変換済データのハッシュ値を含む。これにより、検証者は、該識別子及びハッシュ値を用いて変換済データがスマートコントラクトCによって変換されたデータであることを検証できる。変換済データのフォーマットがHMACを付されたJWT形式である場合、検証情報は、例えば、変換済データのJTI値及びHMAC値を含む情報等である。
【0072】
[ステップS18:変換済データを提供]
スマートコントラクトCは、検証可能変換済データをステップS11に係る変換装置1に提供する処理を実行する(ステップS18、提供ステップ)。ここで、検証可能変換済データは、ステップS15に係る変換済データにステップS12に係る提供者データ及びスマートコントラクトCのアドレスを付したデータである。スマートコントラクトCは、変換処理を終了させる。
【0073】
ステップS17において検証情報が書き込まれている場合、提供ステップにおいて提供される検証可能変換済データは、検証情報の検証情報アドレスが付されたものであることが好ましい。これにより、検証者は、検証可能変換済データに付された検証情報アドレスを用いて検証情報を取得できる。そして、検証者は、このように取得された検証情報を用いて検証可能変換済データを検証できる。
【0074】
[変換処理の効果]
ステップS11からステップS18の変換処理により、対象データの保持者は、対象データのフォーマットを変更する変換、対象データの一部を抽出する変換等の対象データを変換する処理をスマートコントラクトCに指令できる。これにより、電子的文書の変換がブロックチェーン2上のスマートコントラクトCによって行われる。ここで、ブロックチェーン2上のスマートコントラクトCは、スマートコントラクトCに係る不正・改ざん等を分散的に検証可能である。
【0075】
ステップS11からステップS18の変換処理における変換ステップは、変換済データがスマートコントラクトCによって変換されたデータであるかを検証可能な検証情報をブロックチェーン2に書込可能であり(ステップS16からステップS17)、提供ステップは、検証情報の検証情報アドレスを検証可能変換済データに付与可能であるよう構成されることが可能である。
【0076】
検証者は、このように構成されたスマートコントラクトCから検証可能変換済データを受け取り、そこに付与された検証情報アドレスから検証情報を取り出せる。そして、検証者は、該検証情報を用いて本発明に係るスマートコントラクトCによって変換されたデータであることを確認できる。これにより、検証者は、変換後の内容が変換前の内容と同じであることをよりいっそう信じることができる。
【0077】
よって、本発明のスマートコントラクトCは、電子的文書の変換に際して、その変換の正当性を確認できるようにすることによって、検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにするための手段を提供できる。
【0078】
<実施例>
次に、本実施形態の種々の実施例について説明する。
【0079】
〔実施例1〕X.509形式の身分証明書から発行者ID及び生年月日を抽出し、JSON形式のデータにする変換
実施例1は、X.509形式の身分証明書から発行者ID及び生年月日を抽出し、JSON形式のデータにする変換を行うようスマートコントラクトCを構成するものである。実施例1の変換装置1及びスマートコントラクトCは、保持者と検証者が同一の場合におけるX.509形式の身分証明書からJSON形式のデータへの変換を提供する。
【0080】
これにより、本実施形態の変換装置1及びスマートコントラクトCは、身分証明書という、正当性が特に重要な変換において、保持者でもある検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにするための手段を提供できる。
【0081】
図6は、保持者と検証者が同一の場合におけるシステムSにおける処理の流れの一例を示すフローチャートである。以下は、
図6を用いた、実施例1に係る変換の流れの説明である。
【0082】
[ステップSA1:対象データ発行]
まず、発行者は、X.509形式の身分証明書Dを検証者に対して発行する。発行された身分証明書Dを保持する保持者でもある検証者は、変換装置1を介する等して、身分証明書Dを取得する。
【0083】
[ステップSA2:変換要求]
検証者は、変換装置1を介して、ステップSA1で発行された身分証明書DをJSON形式のデータに変換するようスマートコントラクトCに要求する。
【0084】
[ステップSA3:変換]
スマートコントラクトCは、上述の変換処理によって身分証明書Dから発行者ID及び生年月日を抽出し、スマートコントラクトCのアドレスが付されたJSON形式の変換済データBに変換する。
【0085】
[ステップSA4:変換済データ]
変換装置1は、スマートコントラクトCから変換済データBを取得する。
【0086】
[追加ステップ]
検証者は、変換装置1を介して、変換済データBに付与されたアドレスに対応するスマートコントラクトCの処理内容の表示を指令する。検証者は、表示された処理内容により、変換済データBがスマートコントラクトCによって所望の変換を行われたものだと確信する。
【0087】
〔実施例2〕X.509形式の身分証明書から発行者ID及び生年月日を抽出し、JWT形式のデータにして第三者が検証できるようにする変換
実施例2は、X.509形式の身分証明書から発行者ID及び生年月日を抽出し、JWT形式のデータにして第三者が検証できるようにする変換を行うようスマートコントラクトCを構成するものである。実施例2の変換装置1及びスマートコントラクトCは、保持者と検証者が異なる場合におけるX.509形式の身分証明書からJWT形式のデータへの変換を提供する。
【0088】
これにより、本実施形態の変換装置1及びスマートコントラクトCは、身分証明書という、正当性が特に重要な変換において、保持者と異なる検証者が変換後の内容が変換前の内容と同じであることを信じることができるようにするための手段を提供できる。
【0089】
図7は、保持者と検証者が異なる場合におけるシステムSにおける処理の流れの一例を示すフローチャートである。以下は、
図7を用いた、実施例2に係る変換の流れの説明である。
【0090】
[ステップSB1:対象データ発行]
まず、発行者は、X.509形式の身分証明書Dを検証者に対して発行する。保持者は、変換装置1等を介して、身分証明書Dを取得する。
【0091】
[ステップSB2:変換要求]
保持者は、変換装置1を介して、ステップSB1で発行された身分証明書DをJWT形式のデータに変換するようスマートコントラクトCに要求する。このとき、保持者は、身分証明書Dの保持者を認証し、身分証明書Dの対象者と該保持者とが同一であることを確認するためのデータをさらに送付することが好ましい。また、保持者は、後述するステップSB6における変換済データの提示において、保持者が検証者に対する認証で用いる検証データをさらに送付することが好ましい。
【0092】
[ステップSB3:変換]
スマートコントラクトCは、上述の変換処理によって身分証明書Dから発行者ID及び生年月日を抽出し、スマートコントラクトCのアドレス及びHMACが付されたJWT形式の変換済データEに変換する。このとき、スマートコントラクトCは、変換に先駆けて、身分証明書Dの保持者を認証し、身分証明書Dの対象者と該保持者とが同一であることを確認することが好ましい。これにより、スマートコントラクトCは、身分証明書Dの対象者と異なる者が変換を行うことを防ぐことができる。
【0093】
[ステップSB4:検証情報書き込み]
スマートコントラクトCは、ステップSB3の変換済データEに係る検証情報Fをブロックチェーン2に書き込む。この検証情報Fは、変換済データEのJTI値及びHMACを含む。
【0094】
[ステップSB5:変換済データ]
保持者は、変換装置1を介して、スマートコントラクトCから検証情報Fのアドレスが付された変換済データEを取得する。
【0095】
[ステップSB6:変換済データ提示]
保持者は、ステップSB5で取得した変換済データEを検証者に提示する。このとき、保持者は、検証者が認証に用いる検証データをさらに送付することが好ましい。
【0096】
[ステップSB7:検証情報取得]
検証者は、ステップSB6で提示された変換済データEに付された検証情報Fのアドレスを用いて、検証情報Fを取得する。
【0097】
[ステップSB8:検証]
検証者は、ステップSB7で取得した検証情報Fを用いて、変換済データEを検証する。検証者は、検証情報Fによって変換済データEがスマートコントラクトCによって変換されたデータであると確信できるため、変換済データEがスマートコントラクトCによって変換された身分証明書Dであると確信できる。
【0098】
[追加ステップ]
検証者は、変換装置1を介して、変換済データEに付与されたアドレスに対応するスマートコントラクトCの処理内容の表示を指令する。検証者は、表示された処理内容により、変換済データBがスマートコントラクトCによって所望の変換を行われたものだと確信する。このとき、検証者が用いる変換装置1は、保持者が用いた変換装置1そのものに限定されず、同様に構成された別の変換装置1でもよい。
【0099】
以上、本発明の好ましい態様の一例が説明された。なお、本発明の思想の範疇において、当業者は、各種の変更例及び修正例に想到し得るものである。よって、それら変更例及び修正例は、上述の一例と同様に、本発明の範囲に属するものと了解される。例えば、前述の実施の形態に対して、当業者が適宜、構成要素の追加、削除若しくは設計変更を行ったもの、又は、工程の追加、省略若しくは条件変更を行ったものは、本発明の要旨を備えている限り、上述の一例と同様に、本発明の範囲に含まれる。
【符号の説明】
【0100】
S システム
1 変換装置
11 制御部
111 取得部
112 変換要求部
113 スマートコントラクト表示部
12 記憶部
13 通信部
2 ブロックチェーン
C スマートコントラクト
N ネットワーク
T 端末
A 対象データ
B、E 変換済データ
D 身分証明書
F 検証情報