(57)【要約】      （修正有）【課題】分散型台帳検証システムを提供する。【解決手段】分散型台帳に記録するための第１のコンピュータデバイスによって実行される方法であって、第１のユーザからの問いに対する正答に基づいて第１のハッシュ値を生成するステップと、第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、第１のトランザクションデータをブロードキャストするステップと、を備える。第１のトランザクションデータは、第２のコンピュータデバイスによってブロードキャストされる第２のトランザクションデータと比較することによって分散型台帳に記録され、第２のトランザクションデータは、問いに対する第２のユーザからの回答に基づいて生成された第２のハッシュ値を含む。【選択図】図３
2019176432.tif 000002
【特許請求の範囲】
【請求項１】
分散型台帳に記録するための第１のコンピュータデバイスによって実行される方法であって、
第１のユーザからの第１の問いに対する第１の正答に基づいて第１のハッシュ値を生成するステップと、
前記第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、前記第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第１のトランザクションデータをブロードキャストするステップと、
を備え、
前記第１のトランザクションデータは、第２のコンピュータデバイスによってブロードキャストされる第２のトランザクションデータと比較することによって前記分散型台帳に記録され、前記第２のトランザクションデータは、前記第１の問いに対する第２のユーザからの第１の回答に基づいて生成された第２のハッシュ値を含む
ことを特徴とする方法。
【請求項２】
前記第１のコンピュータデバイスは、認証機関デバイスであり、
前記方法は、
書式データを前記第１の問いに適用するステップをさらに備え、
前記第１の回答は、前記書式データが適用されている
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１のコンピュータデバイスは、認証機関デバイスであり、
前記方法は、
前記第１の正答を受信するステップと、
第２の問いに対する第２の正答を生成するステップと、
前記第１の正答および前記第２の正答に基づいて前記第１のハッシュ値を生成するステップと
を備え、
前記第２のハッシュ値は、前記第１の問いに対する前記第２のユーザからの第１の回答および前記第２の問いに対する前記第２のユーザからの第２の回答に基づいて生成される
ことを特徴とする請求項１または２に記載の方法。
【請求項４】
分散型台帳に記録するための第１のコンピュータデバイスによって実行される方法であって、
第１のユーザからの回答に基づいて第１のハッシュ値を生成するステップであって、前記回答は、第２のユーザからの問いに対する回答である、ステップと、
前記第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、前記第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第１のトランザクションデータをブロードキャストするステップと、
を備え、
前記第１のトランザクションデータは、第２のコンピュータデバイスによってブロードキャストされる第２のトランザクションデータと比較することによって前記分散型台帳に記録され、前記第２のトランザクションデータは、前記問いに対する正答に基づいて生成された第２のハッシュ値を含む
ことを特徴とする方法。
【請求項５】
秘密鍵および書式データを受信するステップであって、前記書式データは、公開鍵で暗号化されている、ステップと、
前記秘密鍵を使用して前記書式データを復号するステップと、
前記書式データを前記回答に適用するステップと
さらに備え、
前記回答は、前記書式データが適用されている
をさらに備えた請求項４に記載の方法。
【請求項６】
分散型台帳に記録するための方法であって、
第１のコンピュータデバイスによって、
第１のユーザからの問いに対する正答に基づいて第１のハッシュ値を生成するステップと、
前記第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、前記第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第１のトランザクションデータをブロードキャストするステップと、
第２のコンピュータデバイスによって、
第２のユーザからの回答に基づいて第２のハッシュ値を生成するステップであって、前記回答は、前記問いに対する回答である、ステップと、
前記第２のハッシュ値を含む第２のトランザクションデータを生成するステップであって、前記第２のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第２のトランザクションデータをブロードキャストするステップと、
第３のコンピュータデバイスによって、
前記第１のトランザクションデータおよび前記第２のトランザクションデータを受信するステップと、
前記第１のトランザクションデータに含まれる前記第１のハッシュ値と、前記第２のトランザクションデータに含まれる前記第２のハッシュ値とを比較するステップと、
前記比較した結果を示す電文をブロードキャストするステップと
を備えたことを特徴とする方法。
【請求項７】
プロセッサによって実行されると、請求項１乃至６のいずれか一項に記載の方法をコンピュータデバイスに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーン上での正誤判断・結果共有システム（分散型台帳検証システム）に関し、特に、従来のプルーフオブワーク（ｐｏＷ）による検証を行うことなく台帳の改ざんを防止する分散型台帳検証システムに関する。
【背景技術】
【０００２】
近年、いわゆる「ブロックチェーン」と称される分散型台帳システムが利用されつつある。ブロックチェーンでは、複数のコンピュータデバイス（ノード）の間で通信を行うピアツーピアネットワークにおいて、ブロックと称されるデータを連結することによって台帳が作成される。ブロックチェーンにおいて生成される台帳は、全ノードに公開され、それぞれのノードが台帳の正当性を検証することによって、台帳の改ざんを防止している。
【０００３】
各ノードは、プルーフオブワークと称される計算を行い、最初に計算を解いたノードが次のブロックを生成することができる（新たなブロックが承認される）。このプルーフオブワークでは、ｎｏｎｃｅと称されるランダムな変数を増加させることによって計算が解かれる。この計算は、ある程度のリソース（時間およびコンピュータデバイス機器の物理的リソースなど）を要する（つまり、計算に要する負荷が高い）。プルーフオブワークにおける計算においてこのような高い負荷をかけるのは、仮に台帳の改ざんが行われた場合、そのブロックを承認するのに前のブロックに遡って再計算する必要があり、正当なブロックを承認することと比べて再計算速度に要する速度が追い付かないからである。つまり、ブロックチェーンでは、台帳の改ざんを防止するために、負荷の高い計算を解くことを要求している（非特許文献１を参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Satoshi Nakamoto、“Bitcoin: A Peer-to-Peer Electronic Cash System,”、［online］、2008年、2018年2月15日検索、インターネット＜URL:https://bitcoin.org/bitcoin.pdf＞）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、ブロックチェーンにおける台帳の改ざんを防止するために、負荷の高い計算を解くことをノードに要求している。この計算は、例えば、１００未満の数字を求める（ｆ（ｘ）＜１００）というような単純な計算であり、ノードは、ｎｏｎｃｅを総当たり的に増加させて計算する。この計算は負荷を高めることのみを目的としているものであり、計算自体に意味を成していない。
【０００６】
ブロックチェーンは、負荷の高い計算を解くことをノードに要求しつつ、計算を最初に解いたノードに報奨を与えることによって、台帳の相互管理を実現している。しかしながら、上述した負荷を考慮すると、計算に要するリソースの観点から無駄が多い側面も有している。
【０００７】
本発明によれば、従来のプルーフオブワークによる検証を行うことなく台帳の改ざんを防止する分散型台帳検証システムが提供される。特に、本発明によれば、ユーザ間で交換される問いおよびその回答に関する情報そのものを秘匿しつつ、その回答の検証結果および判断ロジックを広く共有し、信用ある機関なしに回答を検証することができる分散型台帳検証システムが提供される。
【課題を解決するための手段】
【０００８】
本発明の一実施形態に係る分散型台帳に記録するための第１のコンピュータデバイスによって実行される方法は、分散型台帳に記録するための第１のコンピュータデバイスによって実行される方法であって、第１のユーザからの問いに対する正答に基づいて第１のハッシュ値を生成するステップと、前記第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、前記第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、前記第１のトランザクションデータをブロードキャストするステップと、を備え、前記第１のトランザクションデータは、第２のコンピュータデバイスによってブロードキャストされる第２のトランザクションデータと比較することによって前記分散型台帳に記録され、前記第２のトランザクションデータは、前記問いに対する第２のユーザからの回答に基づいて生成された第２のハッシュ値を含むことを特徴とする。
【発明の効果】
【０００９】
本発明の一実施形態に係る分散型台帳検証システムによれば、従来の分散型台帳検証システムにおける台帳の改ざん耐性を担保しつつ、有意な方法によってトランザクションの検証を行うことによってコンピュータリソースなどの無駄を削減することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る分散型台帳検証システムの全体的な構成の例を示すブロック図である。
【図２】本発明の一実施形態に係る分散型台帳検証システムを構成するデバイスの詳細な構成要素の例を示すブロック図である。
【図３】第１の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図４】第１の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図５】第１の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図６】第２の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図７】第２の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図８】第３の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【図９】第３の実施形態に係る分散型台帳検証システムが実行する処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付した図面を参照して、本発明の一実施形態に係る分散型台帳検証システムを詳細に説明する。本発明の一実施形態に係る分散型台帳検証システムは、ピアツーピアネットワークにおいて正当なデータのみを連結することによって分散型台帳を作成する（つまり、データの改ざんを防止する）。この台帳は、それぞれのユーザが相互に検証することによって台帳の正当性が担保される。
【００１２】
図１は、本発明の一実施形態に係る分散型台帳検証システムの全体的な構成の例を示している。本発明の一実施形態に係る分散型台帳検証システムは、複数のコンピュータデバイス１および認証機関デバイス２がネットワーク３を介して相互接続されることによって構成される。複数のコンピュータデバイス１の各々は、スマートフォンなどの携帯電話およびタブレット端末などの携帯情報端末、デスクトップ型パーソナルコンピュータ、ノート型パーソナルコンピュータ、およびデータセンター設置型コンピュータなどを含むが、それらに限定されない。
【００１３】
複数のコンピュータデバイス１の各々は、分散型台帳検証システムのノード（つまり、分散型台帳検証システムへの参加者（ユーザ）が使用するコンピュータデバイス）を構成する。また、複数のコンピュータデバイス１のうちのいずれかが、認証機関としての役割を果たす。認証機関は、認証機関のみの役割を果たしてもよく、認証機関および参加者の両方の役割を果たしてもよい。
【００１４】
図１では、ノードを構成するコンピュータデバイスを、コンピュータデバイス１ａ乃至１ｃ（以下、「コンピュータデバイス１」）と表し、認証機関を構成するコンピュータデバイスを、認証機関デバイス２と表している。なお、ノードおよび認証機関が実装されるコンピュータデバイスのタイプは特に限定されず、演算および通信機能を有するいずれかのコンピュータデバイスであってもよい。また、ネットワーク３は、インターネットなどのパブリックネットワークである。
【００１５】
コンピュータデバイス１は、本発明の一実施形態に係る分散型台帳検証システムに参加するユーザが使用するコンピュータデバイスである。コンピュータデバイス１を使用するユーザは、公開鍵暗号方式における秘密鍵と公開鍵のペア、および公開鍵から生成されるユーザＩＤを有する。ユーザＩＤは、本発明の一実施形態に係る分散型台帳検証システムにおいてユーザを識別するＩＤ（アドレス）であり、以下で説明するトランザクションデータが、全てのユーザＩＤを宛先としてブロードキャストされる。ユーザは、コンピュータデバイス１を使用して、台帳にデータを書き込む。この台帳を書き込む際に、他のノードによってデータの正当性が検証される。
【００１６】
認証機関デバイス２は、ユーザが台帳にデータを書き込む際に使用する秘密鍵および公開鍵のペアを発行する役割を果たす。上述したように、認証機関デバイス２は、分散型台帳検証システムにおけるノードのうちの１つであってもよく、または認証機関としての役割のみを果たしてもよいが、少なくとも分散型台帳システムにおいて、信頼可能な第三者機関の役割を果たす（特殊な権限を有する）。
【００１７】
次に、図２を参照して、本発明の一実施形態に係る分散型台帳検証システムを構成するコンピュータデバイス１および認証機関デバイス２の詳細な構成要素の例を説明する。コンピュータデバイス１および認証機関デバイス２は、同一の構成を有してもよく、または異なる構成を有してもよい。本実施形態では、両者は同一の構成を有するものとして説明する。よって、図２では、コンピュータデバイス１および認証機関デバイス２をまとめて、コンピュータデバイス１が有する構成要素を説明する。
【００１８】
コンピュータデバイス１は、制御装置１１、メモリ１２、記憶装置１３、通信装置１４、および表示装置１５を備えている。図２には示されないが、認証機関デバイス２も同様の構成要素を有しており、以下の説明で、それぞれ制御装置２１、メモリ２２、記憶装置２３、通信装置２４、および表示装置２５を有するものとする。
【００１９】
制御装置１１は、プロセッサとも称され、上記各構成要素の制御やデータの演算を行う。また、制御装置１１は、本発明の一実施形態に係る各種処理を実行するための、記憶装置１３に記憶されているプログラムをメモリ１２に読み出して実行する。ここで、上述したプログラムとは、本発明の一実施形態に係る分散型台帳検証システムを実行するためのプログラム（以下、「分散型台帳検証プログラム」）であり、各コンピュータデバイス１および認証機関デバイス２の記憶装置１３に記憶されている。認証機関デバイス２は、コンピュータデバイス１とは異なる特殊な権限を有するが、その権限は、分散型台帳検証プログラムによって制御されてもよい（例えば、認証機関デバイス２のみが秘密鍵および公開鍵を発行する権限を有するよう制御される）。代わりに、認証機関デバイス２のみ、コンピュータデバイス１が実行するプログラムとは異なるプログラムを実行することによって制御されてもよい（このプログラムを実行したコンピュータデバイスのみが秘密鍵および公開鍵を発行することができる）。
【００２０】
メモリ１２は、他のコンピュータデバイス１および認証機関デバイス２などからブロードキャストされたデータ、コンピュータ実行可能な命令および当該命令による演算処理後のデータなどを記憶する揮発性データ記憶装置である。メモリ１２は、ＲＡＭ（ランダムアクセスメモリ）（例えば、ＳＲＡＭ（スタティックＲＡＭ）およびＤＲＡＭ（ダイナミックＲＡＭ））などで実装されてもよい。
【００２１】
記憶装置１３は、上述した分散型台帳検証プログラムおよび本発明の一実施形態に係る分散型台帳検証システムを通じて生成される台帳を記憶する不揮発性データ記憶装置である。記憶装置１３は、ＲＯＭ（リードオンリメモリ）などの不揮発性半導体メモリ、磁気記憶装置（ハードディスクドライブなど）、および光ディスクなどで実装されてもよい。また、記憶装置１３には、認証機関デバイス２が生成した秘密鍵と公開鍵のペアおよびユーザＩＤが記憶されている。
【００２２】
通信装置１４は、ネットワーク３を介して接続された他のコンピュータデバイス１および認証機関デバイス２との間でデータおよび制御情報を送受信するネットワークインタフェースである。このネットワークインタフェースは、例えば、ＴＣＰ／ＩＰなどのプロトコルに準拠したネットワークカード（例えば、ＬＡＮカード）などによって実装される。
【００２３】
表示装置１５は、制御装置１１が分散型台帳検証プログラムを実行することによって、ユーザが情報を入力および表示するための入出力インタフェースを表示する。表示装置１は、コンピュータデバイス１と一体化されたディスプレイデバイス（例えば、タッチパネルディスプレイ）、または別個に接続されたディスプレイデバイス（例えば、ディスプレイボード）などで実装される。
【００２４】
＜第１の実施形態＞
次に、図３乃至図５を参照して、本発明の第１の実施形態に係る分散型台帳検証システムが実行する処理の例を説明する。本発明の一実施形態に係る分散型台帳検証システムは、ユーザ間の相互検証によってデータが記録される台帳を管理するシステムに関するものである。台帳にデータを記録する行為は、例えば、資金決済などの取引行為に対応するが、その行為は特に限定されない。以下では、ユーザが台帳に記録する行為を「トランザクション」と称し、そのときに台帳に記録されるデータを「トランザクションデータ」と称する。第１の実施形態では、ユーザの本人確認を行う例を説明し、本人確認を証明するユーザ（被確認ユーザ）および本人確認を検証するユーザ（確認ユーザ）の双方がトランザクションを発生させる。
【００２５】
第１の実施形態を説明する前提として、ユーザがコンピュータデバイス１を通じて生成したトランザクションデータは、本発明の一実施形態に係る分散型台帳検証システムに参加する全てのコンピュータデバイス１にブロードキャストされる。トランザクションデータは、少なくとも同一のユーザが生成した前のトランザクションデータから生成されたハッシュ値を含む。
【００２６】
トランザクションデータがブロードキャストされると、他のユーザがそのトランザクションデータの正当性を検証する。そして、正当と判断されたトランザクションに対応するトランザクションデータが前のトランザクションデータと連結して台帳に記録される。各トランザクションデータは、前のトランザクションデータのハッシュ値が含まれ、該当のトランザクションデータを改ざんしようとすると、そのトランザクションデータにつながる過去の全てのデータのハッシュ値をも変更する必要がある。本発明の一実施形態に係る分散型台帳は、このような履歴構造によって台帳の改ざん耐性を高めている。
【００２７】
図３乃至図５の例では、ユーザＡ（図示せず）が、ユーザＢ（図示せず）との間で資金決済などを行う上で、その取引においてユーザＢによってユーザＡの本人確認が行われるものとする。ユーザＡの本人確認は、自身が有する本人確認証明データ（例えば、氏名および住所などを含む）とユーザＢが有するユーザＡの本人確認検証データとを比較することによって行われる。ユーザＡが使用するコンピュータデバイス１をコンピュータデバイス１Ａとし、ユーザＢが使用するコンピュータデバイス１をコンピュータデバイス１Ｂとする。また、コンピュータデバイス１Ａが生成したトランザクションデータは、ユーザＡおよびユーザＢ以外の第三者によって検証されるが、その検証するものをユーザＣとし、ユーザＣが使用するコンピュータデバイス１をコンピュータデバイス１Ｃとする。以下で説明する各動作は、コンピュータデバイス１Ａ乃至コンピュータデバイス１Ｃ、および認証機関デバイス２のそれぞれが分散型台帳検証プログラムを実行することによって実装される。
【００２８】
なお、図３乃至図５の説明では、以下で言及するトランザクションデータ１が生成および検証されるが、対応するトランザクション１の前にトランザクションａが発生しているものとする。トランザクションａは、他のユーザによって検証されており、対応するトランザクションデータａが台帳に記録されている。よって、トランザクションデータ１には、トランザクションデータａから生成されたハッシュ値が含まれるものとする。同様に、以下で言及するトランザクションデータ２に対応するトランザクション２の前にトランザクションｂが発生しているものとする。トランザクションデータ２には、トランザクションｂに対応するトランザクションデータｂから生成されたハッシュ値が含まれるものとする。
【００２９】
図３は、ユーザＡが、自身の本人確認のための本人確認証明データを生成し、本人確認証明データに基づいて生成されたトランザクションデータ１をブロードキャストするまでの処理を説明するフローチャートである。
【００３０】
まず、ユーザＡがコンピュータデバイス１Ａの表示装置１５（以下、表示装置１５Ａ）に表示された入出力インタフェース（図示しない）を介して本人確認を行うための所定の操作を行う。この操作は、ユーザＡが自身の本人確認のための本人確認証明データを台帳に記録するトランザクション１のトリガとなり、対応するトランザクションデータ１が生成される。トランザクション１が検証されると、ユーザＡの本人確認が行われたことになり、トランザクションデータ１が台帳に記録される。上記操作に応じて、コンピュータデバイス１Ａの通信装置１４（以下、通信装置１４Ａ）は、認証機関デバイス２に秘密鍵発行要求を送信する（ステップＳ３０１）。
【００３１】
認証機関デバイス２の通信装置２４が秘密鍵発行要求を受信すると、制御装置２１が秘密鍵と公開鍵のペアを生成する（ステップＳ３０２）。生成した秘密鍵は、書式データとともにコンピュータデバイス１Ａに送信され（ステップＳ３０３）、生成した公開鍵は、全てのコンピュータデバイス１にブロードキャストされる（ステップＳ３０４）。ここで、書式データとは、ユーザＡの本人確認を行うためにコンピュータデバイス１Ａが生成する本人確認証明データおよび認証機関デバイス２が生成する本人確認検証データの双方に共通する書式を有するデータである。
【００３２】
書式データは、ユーザＡ、ユーザＢまたは認証機関のいずれかが予め定義し、少なくともその書式データが記憶装置２３に記憶されている。書式データは、本人確認を行う際に、コンピュータデバイス１Ｂによって認証機関デバイス２に送信されてもよく、または予め記憶装置２３に記憶されてもよい。制御装置２は、上述した公開鍵を生成すると、生成した公開鍵を使用して書式データを暗号化する。この暗号化によって、以下で説明するように、書式データの更新は、認証機関が発行した秘密鍵を有しているユーザのみが更新することができるよう制御される。
【００３３】
通信装置１４ＡがステップＳ３０３で送信された秘密鍵および書式データを受信すると、コンピュータデバイス１Ａの制御装置１１（以下、制御装置１１Ａ）は、書式データに基づいて、本人確認証明データを生成する（ステップＳ３０５）。本人確認証明データは、書式データに従ってユーザＡの本人確認を証明するために使用する情報（例えば、氏名および住所など）が挿入されたデータである。上述した情報は、本人確認を行う際に上述した入出力インタフェースを介してユーザＡによって入力されてもよく、または予めコンピュータデバイス１Ａの記憶装置１３（以下、記憶装置１３Ａ）に記憶されてもよい。
【００３４】
本人確認証明データは、後述する本人確認検証データとともにハッシュ化される。検証者は、ハッシュ値が一致するかを確認することによって、双方のデータが一致するかを検証する。よって、本人確認証明データおよび本人確認検証データは同一の情報を有するだけでなく、同一のデータ構造を有する必要がある。書式データは、双方のデータ間で統一したデータ構造を定義したデータである。
【００３５】
上述した本人確認証明データを生成することは、ユーザＡの本人確認情報を使用して書式データを更新することを意味する。本人確認を行うユーザＡおよびユーザＢは、認証機関が発行した秘密鍵を有している。つまり、ユーザＡおよびユーザＢのみがこの書式データを更新することができる。
【００３６】
本人確認証明データが生成されると、制御装置１１Ａは、本人確認証明データからハッシュ値を生成し、ステップＳ３０３で送信された秘密鍵を使用して署名を生成する。また、上述したトランザクションデータａからハッシュ値を生成する。そして、制御装置１１Ａは、本人確認証明データから生成したハッシュ値、生成した署名、およびトランザクションデータａから生成したハッシュ値を含むトランザクションデータ１を生成する（ステップＳ３０６）。トランザクションデータ１が生成されると、通信装置１４Ａは、トランザクションデータ１を全てのコンピュータデバイス１にブロードキャストする（ステップＳ３０７）。
【００３７】
図４は、ユーザＢが、ユーザＡの本人確認のための本人確認検証データを生成し、本人確認検証データに基づいて生成されたトランザクションデータ２をブロードキャストするまでの処理を説明するフローチャートである。
【００３８】
ユーザＢがコンピュータデバイス１Ｂの表示装置１５（以下、表示装置１５Ｂ）に表示された入出力インタフェース（図示しない）を介してユーザＡの本人確認を検証するために使用する本人確認検証情報（例えば、氏名および住所など）を入力する。この操作は、ユーザＢがユーザＡの本人確認のための本人確認検証データを台帳に記録するトランザクション２のトリガとなり、対応するトランザクションデータ２が生成される。この情報は、ユーザＢが有しているユーザＡに関する情報であり、上述した入出力インタフェースから入力することに代えて、予めコンピュータデバイス１Ｂの記憶装置１３（以下、記憶装置１３Ｂ）に記憶されてもよい。なお、本人確認検証データに含まれるユーザＡの氏名および住所などの属性は特に限定されないが、上述した本人確認証明データと同様の属性を含む必要がある。
【００３９】
上記操作に応じて、コンピュータデバイス１Ｂの通信装置１４（以下、通信装置１４Ｂ）は、認証機関デバイス２に本人確認検証情報を送信する（ステップＳ４０１）。通信装置２４が本人確認検証情報を受信すると、制御装置２１は、図３のステップＳ３０３でコンピュータデバイス１Ａに送信されたものと同一の書式データに本人確認検証情報を挿入して本人確認検証データを生成する（ステップＳ４０２）。
【００４０】
本人確認検証データが生成されると、制御装置２１は、本人確認検証データからハッシュ値を生成し、図３のステップＳ３０２で生成した秘密鍵を使用して署名を生成する。また、上述したトランザクションデータｂからハッシュ値を生成する。そして、制御装置２１は、本人確認検証データから生成したハッシュ値、生成した署名、およびトランザクションデータｂから生成したハッシュ値を含むトランザクションデータ２を生成する（ステップＳ４０３）。トランザクションデータ２が生成されると、通信装置２４は、トランザクションデータ２を全てのコンピュータデバイス１にブロードキャストする（ステップＳ４０４）。
【００４１】
ユーザＡが生成した本人確認証明データおよびユーザＢが生成した本人確認検証データは、双方が有しているユーザＡに関する情報である。以下で説明するように、これらの情報が同一の書式に従ってハッシュ化されるので、双方の情報が一致する限り、ハッシュ値も一致することになる。トランザクションのデータを検証する検証者（ユーザＣ）は、生成された２つのハッシュ値が同一であるか否かを確認することによって本人確認を行い、ひいてはトランザクションの正当性を検証する。
【００４２】
上述した処理によって、トランザクションデータ１およびトランザクションデータ２が全てのコンピュータデバイス１にブロードキャストされることになる。後続の処理では、ユーザＡおよびユーザＢ以外の第三者がトランザクションデータ１およびトランザクションデータ２を検証することになる。上述したように、この検証を行う第三者は、コンピュータデバイス１Ｃを使用するユーザＣであるものとする。
【００４３】
なお、本実施形態では、トランザクションデータ２は、認証機関デバイス２によって生成されるが、認証機関デバイス２の代わりにコンピュータデバイス１Ｂによって生成されてもよい。この場合、ステップＳ４０１で本人確認検証情報が認証機関デバイス２に送信されるのではなく、秘密鍵発行要求が送信される。それに応じて、認証機関デバイス２が秘密鍵と書式データをコンピュータデバイス１Ｂに送信し、コンピュータデバイス１Ｂが書式データに本人確認検証情報を挿入して本人確認検証データを生成する。その後は、上述したステップＳ４０３およびステップＳ４０４で説明した処理と同様に、トランザクションデータ２が生成およびブロードキャストされる。
【００４４】
図５は、ユーザＣが、図３および図４でブロードキャストされたトランザクションデータ１およびトランザクションデータ２の整合性を検証する処理を説明するフローチャートである。
【００４５】
コンピュータデバイス１Ｃの通信装置１４（以下、通信装置１４Ｃ）がトランザクションデータ１およびトランザクションデータ２を受信する（ステップＳ５０１）。そして、コンピュータデバイス１Ｃの制御装置１１（以下、制御装置１１Ｃ）は、図３のステップＳ３０４でブロードキャストされた公開鍵を使用して、トランザクションデータ１およびトランザクションデータ２を復号する（ステップＳ５０２）。復号されると、コンピュータデバイス１Ｃの表示装置１５（以下、表示装置１５Ｃ）には、本人確認証明データから生成したハッシュ値および本人確認検証データから生成したハッシュ値が表示される。そして、ユーザＣは２つのハッシュ値が一致するか否かを確認することによってトランザクション１およびトランザクション２を検証する（ステップＳ５０３）。
【００４６】
上記検証において、２つのハッシュ値が一致する場合は、本人確認がされたものとしてトランザクション１およびトランザクション２を承認する。一致しない場合は、本人確認がされていないものとしてトランザクション１およびトランザクション２を承認しない。トランザクションが承認されると、対応するトランザクションデータ１およびトランザクションデータ２が台帳に記録され、それぞれがトランザクションデータａおよびトランザクションデータｂと連結される。
【００４７】
上記トランザクション１およびトランザクション２の承認は、ユーザＣが表示装置１５Ｃに表示された入出力インタフェース（図示しない）を介して所定の操作を行うことによって行われる。つまり、上記操作が行われたことに応答して、通信装置１４Ｃが、トランザクション１およびトランザクション２それぞれに対する承認電文を全てのコンピュータデバイス１にブロードキャストする（ステップＳ５０４）。なお、本人確認がされなかった場合、少なくともトランザクション１は承認されず、トランザクションデータ１は破棄されてもよい。
【００４８】
本実施形態では、ユーザＣが検証を行うユーザとして説明しているが、トランザクションデータ１およびトランザクションデータ２は、全てのコンピュータデバイス１にブロードキャストされるので、上述した検証を最も早く行ったユーザが検証者になる。つまり、トランザクション１およびトランザクション２は、最も早く検証を行ったユーザに対応するノードに連結し、分散型台帳を形成する。よって、検証者は認証機関になることもあり、例えば、ビットコインなどで利用されている報酬がない場合は、認証機関が検証者として機能することによって、誰も検証を行わないといった事態を回避することができる。
【００４９】
上述したコンピュータデバイス１Ａが実行する処理（図３で説明した処理）およびコンピュータデバイス１Ｂが実行する処理（図４で説明した処理）の順序は逆であってもよい。すなわち、図３および図４の説明とは逆に、本人確認検証データが生成およびブロードキャストされた後に、本人確認証明データが生成およびブロードキャストされてもよい。
【００５０】
以上のように第１の実施形態に係る分散型台帳検証システムを説明した。第１の実施形態では、トランザクションの検証を行う際に、本人確認に使用するデータの整合性の可否を検証者に要求している。従来の分散型台帳システムで適用されているプルーフオブワークでは、負荷をかけることのみを目的とし、計算自体に意味を成していないことは上述した。第１の実施形態に係る分散型台帳検証システムでは、本人確認に使用するデータの整合性をチェックすることが、従来のプルーフオブワークにおける計算に対応している。つまり、本人確認を行うためのデータの整合性を確認することが、トランザクションを検証することにもなっている。このような構成によって、本人確認を行うことと同時にトランザクションの正当性を確認することができ、ひいては、従来の分散型台帳システムと比較して、コンピュータリソースなどの無駄を削減することができる。
【００５１】
また、認証機関が発行する秘密鍵によってトランザクションデータが暗号化され、また後続のトランザクションデータには、前のトランザクションデータのハッシュ値が含まれるので、第三者による改ざん耐性をも高めている。そして、トランザクションデータには、本人確認に使用する情報から生成されたハッシュ値のみが含まれ、本人確認に使用する情報そのものは含まれないので、個人情報が第三者に漏洩することも防止することができる。つまり、第１の実施形態に係る分散型台帳検証システムによれば、ユーザ間で交換される問いおよびその回答に関する情報そのものが秘匿されつつ、その回答の検証結果および判断ロジックがユーザ間で広く共有され、信用ある機関なしに回答を検証することができる。
【００５２】
上述した書式データは、有効期限および書き込み回数に関する情報を有するように構成されてもよい。有効期限を有している場合、認証機関から書式データが送信されてから所定の期間が経過すると書き込みができないよう制御される。書き込み回数を有している場合、認証機関から書式データが送信されてから所定の回数の書き込みを行うと書き込みができないよう制御される。この制御によって、例えば、ユーザが生成した本人確認証明データを第三者に移転することを防止することができ、ひいては、台帳の整合性をさらに担保することができる。この制御は、以下の第２の実施形態および第３の実施形態でも同様に適用される。
【００５３】
＜第２の実施形態＞
次に、図６乃至図７を参照して、本発明の第２の実施形態に係る分散型台帳検証システムが実行する処理の例を説明する。第２の実施形態では、被確認ユーザ（借り手）が確認ユーザ（貸し手）から融資を受ける例を説明する。よって、第１の実施形態で説明したユーザＡは借り手となり、ユーザＢが貸し手となる。認証機関は、例えば、ユーザＡが資産を預けている口座を管理する金融機関である。検証者はユーザＣとなる。第１の実施形態での説明と同様に、ユーザＡ乃至ユーザＣはコンピュータデバイス１Ａ乃至コンピュータデバイス１Ｃのそれぞれを使用し、認証機関が認証機関デバイス２を使用するものとする。よって、コンピュータデバイス１Ａ乃至コンピュータデバイス１Ｃ、および認証機関デバイス２のそれぞれの構成要素（制御装置１１Ａなど）は、第１の実施形態での説明と同様である。
【００５４】
認証機関デバイス２は、例えば、金融機関が提供する既存の勘定系コンピュータシステムで実装されてもよく、または認証機関デバイス２と勘定系システムとが連携してもよい。以下の実施形態では、認証機関デバイス２が勘定系システムの機能を有するものとする。認証機関デバイス２は、ユーザＡについての口座情報および資産情報などを有し、それらの情報をユーザＩＤに基づいて特定することができるものとする。
【００５５】
図６は、ユーザＢがユーザＡからの融資の申し込みを受けたことに対し、融資検証データを生成し、融資検証データに基づいて生成されたトランザクションデータ１をブロードキャストするまでの処理を説明するフローチャートである。
【００５６】
まず、ユーザＢは、表示装置１５Ｂに表示された入出力インタフェース（図示しない）を介して、ユーザＡのユーザＩＤおよび融資条件に関する情報を入力する。この操作は、ユーザＡが融資条件を満たすかを確認するための融資証明データを台帳に記録するトランザクション１のトリガとなり、対応するトランザクションデータ１が生成される。
【００５７】
これらの情報が入力されると、制御装置１１Ｂは、融資条件データを生成する（ステップＳ６０１）。融資条件データは、少なくともユーザＡのユーザＩＤおよび融資条件（例えば、「資産を１０００万円以上有していること」などとする問い、およびその問いに対して「Ｙｅｓ」などとする回答など）を含む。融資条件データを生成すると、通信装置１４Ｂは、融資条件データを認証機関デバイス２に送信する（ステップＳ６０２）。
【００５８】
通信装置２４が融資条件データを受信すると、制御装置２１が秘密鍵と公開鍵のペアを生成する（ステップＳ６０３）。また、制御装置２１は、ステップＳ６０２で送信された融資条件データに含まれるユーザＩＤ（ユーザＡのユーザＩＤ）に基づいて、ユーザＡの資産額を含む資産情報を取得する（例えば、認証機関デバイス２は、ユーザごとに記憶および管理された資産情報データベースを備え、そのデータベースから情報を取得する）（ステップＳ６０４）。
【００５９】
次に、制御装置２１は、書式データに基づいて融資検証データを生成する（ステップＳ６０５）。融資検証データは、ステップＳ６０２で送信された融資条件データが挿入されたデータである。書式データは、第１の実施形態で説明した書式データと同様に、ユーザＡが融資条件を満たすかを確認するために認証機関デバイス２が生成する融資検証データおよびコンピュータデバイス１Ａが生成する融資証明データの双方に共通する書式を有するデータである。
【００６０】
ここで、ステップＳ６０４で、制御装置２１がユーザＡの資産情報を取得しているが、この資産情報に基づいて新たな融資条件を追加して融資検証データが生成されてもよい。新たな融資条件は、例えば、ステップＳ６０４でユーザＡの資産が１５００万円以上ある場合、「資産を１５００万円以上有していること」などとする問い、およびその問いに対して「Ｙｅｓ」などとする回答などである。この資産情報は、例えば、ゼロ知識証明技術を使用して秘匿にされてもよい。
【００６１】
次に、制御装置２１は、融資検証データからハッシュ値を生成し、ステップＳ６０３で生成した秘密鍵を使用して署名を生成する。また、上述したトランザクションデータｂからハッシュ値を生成する。そして、制御装置２１は、融資検証データから生成したハッシュ値、生成した署名、およびトランザクションデータｂから生成したハッシュ値を含むトランザクションデータ１を生成する（ステップＳ６０６）。トランザクションデータ１が生成されると、通信装置１４Ｂは、トランザクションデータ１を全てのコンピュータデバイス１にブロードキャストする（ステップＳ６０７）。
【００６２】
第２の実施形態でも同様に、確認ユーザ（ユーザＢ）から生成されるトランザクションデータ１は、認証機関デバイス２によって生成されるが、認証機関デバイス２の代わりにコンピュータデバイス１Ｂによって生成されてもよい。この場合、ステップＳ６０５では書式データに認証機関デバイス２が設定した融資条件（ユーザＡの資産情報に基づいた）のみが挿入され、その書式データおよび秘密鍵がコンピュータデバイス１Ｂに送信される。そして、コンピュータデバイス１Ｂが、この書式データにユーザＢが設定した融資条件を挿入して本人確認検証データを生成する。その後は、上述したステップＳ６０６およびステップＳ６０７で説明した処理と同様に、トランザクションデータ１が生成およびブロードキャストされる。
【００６３】
図７は、ユーザＡが融資条件を満たすかを証明するための融資証明データを生成し、融資証明データに基づいて生成されたトランザクションデータ２をブロードキャストするまでの処理を説明するフローチャートである。
【００６４】
ユーザＡは、表示装置１５Ａに表示された入出力インタフェース（図示しない）を介して融資条件を満たすかを証明するための所定の操作を行う。この操作は、ユーザＡが融資条件を満たすかを証明するための融資証明データを台帳に記録するトランザクション２のトリガとなり、対応するトランザクションデータ２が生成される。上記操作に応じて、通信装置１４Ｂは、認証機関デバイス２に秘密鍵発行要求を送信する（ステップＳ７０１）。通信装置２４が秘密鍵発行要求を受信すると、図６のステップＳ６０３で生成した秘密鍵、および公開鍵で暗号化された融資検証データを送信する（ステップＳ７０２）。また、通信装置２４は、生成した公開鍵を全てのコンピュータデバイス１にブロードキャストする（ステップＳ７０３）。
【００６５】
通信装置１４ＡがステップＳ７０２で送信された秘密鍵および融資検証データを受信すると、制御装置１１Ａは、融資検証データに基づいて、融資証明データを生成する（ステップＳ７０４）。融資証明データは、融資検証データに従ってユーザＡが回答した情報が挿入されたデータである（例えば、「１０００万円有しているか？」の問いに対して「Ｙｅｓ」など）。なお、上述したように、融資検証データは認証機関デバイス２によって生成された公開鍵によって暗号化されているが、ユーザＡは認証機関デバイス２から発行された秘密鍵を有しているので、その秘密鍵を使用して、融資検証データの内容を参照することができる。つまり、ユーザＡは、融資検証データに含まれる融資条件に基づいて、融資条件を満たすか否かについて回答することができる。
【００６６】
ユーザＡが生成した融資証明データおよびユーザＢが生成した融資検証データに含まれる情報が同一の書式に従ってハッシュ化されるので、双方の情報が一致する限り、ハッシュ値も一致することになる。トランザクションのデータを検証する検証者（ユーザＣ）は、生成された２つのハッシュ値が同一であるか否かを確認することによってユーザＡの回答に対する検証を行い、ひいてはトランザクションの正当性を検証する。
【００６７】
融資証明データが生成されると、制御装置１１Ａは、融資証明データからハッシュ値を生成し、ステップＳ７０２で送信された秘密鍵を使用して署名を生成する。また、上述したトランザクションデータａからハッシュ値を生成する。そして、制御装置１１Ａは、解答検証データから生成したハッシュ値、生成した署名、およびトランザクションデータａから生成したハッシュ値を含むトランザクションデータ２を生成する（ステップＳ７０５）。トランザクションデータ２が生成されると、通信装置１４Ｂは、トランザクションデータ２を全てのコンピュータデバイス１にブロードキャストする（ステップＳ７０６）。
【００６８】
上述した処理によって、トランザクションデータ１およびトランザクションデータ２が全てのコンピュータデバイス１にブロードキャストされることになる。その後は、ユーザＣによってトランザクションデータ１およびトランザクションデータ２の双方に含まれるハッシュ値が一致するかを検証する。つまり、ユーザＢの問い（融資条件を満たすか）に対してユーザＡの回答が一致するかが検証される。具体的な検証の処理は、第１の実施形態における図５で説明した処理を同様であるので説明を省略する。
【００６９】
以上のように第２の実施形態に係る分散型台帳検証システムを説明した。第２の実施形態では、トランザクションの検証を行う際に、貸し手が確認することになる資産状況に対する問いおよび借り手がその問いに対する回答の整合性の可否を検証者に要求している。これによって、第１の実施形態で説明したのと同様に、従来の分散型台帳システムと比較して、コンピュータリソースなどの無駄を削減することができる。
【００７０】
また、貸し手からの問いに対し借り手が回答するべき情報（融資検証データ）および借り手が実際に回答する情報（融資証明データ）が同一の書式に従ってハッシュ化されているので、ユーザＡの資産内容などを公開することなく、検証者は融資条件を満たすか否かの検証を行うことができる。
【００７１】
さらに、認証機関として、借り手が資産を預けている銀行がその役割を担うことによって、借り手の資産状況をより正確に反映した融資条件を満たすかの確認をすることができる。つまり、貸し手（ユーザＢ）からの問い（第１の問い）および認証機関からの問い（第２の問い）をトランザクションデータに含めることができる。この第２の問いは、少なくとも貸し手が知りえない情報であり、コンピュータデバイス１Ｂによって、融資条件データを介して認証機関デバイス２から受信される。一方で、ゼロ資産証明などの技術を使用することによって、借り手の資産についての情報が第三者に知られることはない。
【００７２】
＜第３の実施形態＞
次に、図８および図９を参照して、本発明の第３の実施形態に係る分散型台帳検証システムが実行する処理の例を説明する。第３の実施形態では、試験などの問題を解答する例を説明する。よって、第１の実施形態で説明したユーザＡは試験の回答者となり、ユーザＢが試験実施機関などの出題者となる。検証者はユーザＣとなる。第１の実施形態での説明と同様に、ユーザＡ乃至ユーザＣはコンピュータデバイス１Ａ乃至コンピュータデバイス１Ｃのそれぞれを使用するものとする。よって、認証機関デバイス２とともにコンピュータデバイス１Ａ乃至コンピュータデバイス１Ｃのそれぞれの構成要素（制御装置１１Ａなど）は、第１の実施形態での説明と同様である。
【００７３】
第２の実施形態では、出題者と回答者との関係は、１対Ｍ（Ｍは１以上の整数）、またはＮ対Ｍ（Ｎは２以上の整数）となる。つまり、出題者は、試験を申し込んだ１または複数の回答者に対し、問題を出題することになる。以下の例では、１または複数の回答者のうちユーザＡのみを回答者として説明する。
【００７４】
図８は、ユーザＢが、ユーザＡに出題するための問題データを生成し、本人確認証明データに基づいて生成されたトランザクションデータ１をブロードキャストするまでの処理を説明するフローチャートである。
【００７５】
まず、ユーザＢは、表示装置１５Ｂに表示された入出力インタフェース（図示しない）を介して、回答者のユーザＩＤを入力する。回答者のＩＤが入力されると、制御装置１１Ｂは、回答者リストを生成する（ステップＳ８０１）。回答者リストは、少なくともユーザＢが定めている回答者全てのユーザＩＤを含む。この回答者リストに含まれる回答者ＩＤは、事前にユーザＢに試験の実施を申し込んだユーザに対応するユーザＩＤである。
【００７６】
また、ユーザＢは、上述した入出力インタフェースを介して、回答者に公開する出題内容およびその出題内容に対する正答情報を入力する。出題内容および正答情報が入力されると、制御装置１１Ｂは、問題データおよび正答データを生成する（ステップＳ８０２）。回答者リスト、問題データおよび正答データを生成すると、通信装置１４Ｂは、それらのうちの少なくとも回答者リストおよび正答データを認証機関デバイス２に送信する。問題データも認証機関２に送信されてもよいが、その送信は必須ではなく、例えば、本発明の一実施形態に係る分散型台帳検証システムとは別に回答者に公開されてもよい（例えば、ＷＥＢページに問題をアップロードすることによって公開する）。問題データも認証機関デバイス２に送信される場合、問題データは、以下のステップで秘密鍵とともにコンピュータデバイス１Ａに送信される。
【００７７】
通信装置２４が回答者リストおよび正答データを受信すると、制御装置２１が回答者ＩＤそれぞれに対して秘密鍵と公開鍵のペアを生成する（ステップＳ８０３）。そして、制御装置２１は、書式データに基づいて、解答検証データを生成する（ステップＳ８０４）。解答検証データは、ステップＳ８０２で生成した正答データが挿入されたデータである。書式データは、第１の実施形態で説明した書式データと同様に、ユーザＡが問題に回答するためにコンピュータデバイス１Ａが生成する回答証明データおよび認証機関デバイス２が生成する回答検証データの双方に共通する書式を有するデータである。
【００７８】
解答検証データが生成されると、制御装置２１は、解答検証データからハッシュ値を生成し、ステップＳ８０３で生成した秘密鍵を使用して署名を生成する。また、上述したトランザクションデータｂからハッシュ値を生成する。そして、制御装置２１は、解答検証データから生成したハッシュ値、生成した署名、およびトランザクションデータｂから生成したハッシュ値を含むトランザクションデータ１を生成する（ステップＳ８０５）。トランザクションデータ１が生成されると、通信装置２４は、トランザクションデータ１を全てのコンピュータデバイス１にブロードキャストする（ステップＳ８０６）。
【００７９】
図９は、ユーザＡが問題に解答するための解答証明データを生成し、回答証明データに基づいて生成されたトランザクションデータ２をブロードキャストするまでの処理を説明するフローチャートである。
【００８０】
ユーザＡは、表示装置１５Ａに表示された入出力インタフェース（図示しない）を介して問題に解答するための所定の操作を行う。この操作は、ユーザＡが問題に解答するための解答証明データを台帳に記録するトランザクション２のトリガとなり、対応するトランザクションデータ２が生成される。上記操作に応じて、通信装置１４Ｂは、認証機関デバイス２に秘密鍵発行要求を送信する（ステップＳ９０１）。通信装置２４が秘密鍵発行要求を受信すると、図８のステップＳ８０３で生成した秘密鍵および公開鍵で暗号化された書式データを送信する（ステップＳ９０２）。また、通信装置２４は、生成した公開鍵を全てのコンピュータデバイス１にブロードキャストする（ステップＳ９０３）。
【００８１】
通信装置１４ＡがステップＳ９０２で送信された秘密鍵および書式データを受信すると、制御装置１１Ａは、書式データに基づいて、解答証明データを生成する（ステップＳ９０４）。解答証明データは、書式データに従って回答者が解答した情報が挿入されたデータである。上述した情報は、問題に解答する際に上述した入出力インタフェースを介してユーザＡによって入力されてもよく、または予め記憶装置１３Ｂに記憶されてもよい。
【００８２】
ユーザＡが生成した解答証明データおよびユーザＢが生成した解答検証データに含まれる情報が同一の書式に従ってハッシュ化されるので、双方の情報が一致する限り、ハッシュ値も一致することになる。トランザクションのデータを検証する検証者（ユーザＣ）は、生成された２つのハッシュ値が同一であるか否かを確認することによってユーザＡの解答に対する検証を行い、ひいてはトランザクションの正当性を検証する。
【００８３】
解答証明データが生成されると、制御装置１１Ａは、解答検証データからハッシュ値を生成し、ステップＳ９０２で送信された秘密鍵を使用して署名を生成する。また、上述したトランザクションデータａからハッシュ値を生成する。そして、制御装置１１Ａは、解答検証データから生成したハッシュ値、生成した署名、およびトランザクションデータａから生成したハッシュ値を含むトランザクションデータ２を生成する（ステップＳ９０５）。トランザクションデータ２が生成されると、通信装置１４Ｂは、トランザクションデータ２を全てのコンピュータデバイス１にブロードキャストする（ステップＳ９０６）。
【００８４】
上述した処理によって、トランザクションデータ１およびトランザクションデータ２が全てのコンピュータデバイス１にブロードキャストされることになる。その後は、ユーザＣによってトランザクションデータ１およびトランザクションデータ２の双方に含まれるハッシュ値が一致するかを検証する。つまり、出題に対するユーザＡの解答が一致するかが検証される。具体的な検証の処理は、第１の実施形態における図５で説明した処理と同様であるので説明を省略する。
【００８５】
第３の実施形態でも同様に、確認ユーザ（ユーザＢ）から生成されるトランザクションデータ１は、認証機関デバイス２によって生成されるが、認証機関デバイス２の代わりにコンピュータデバイス１Ｂによって生成されてもよい。この場合、ステップＳ８０２で正答データが認証機関デバイス２に送信されるのではなく、秘密鍵発行要求が送信される。それに応じて、認証機関デバイス２が秘密鍵と書式データをコンピュータデバイス１Ｂに送信し、コンピュータデバイス１Ｂが書式データに正答データを挿入して解答検証データを生成する。その後は、上述したステップＳ９０５およびステップＳ９０６で説明した処理と同様に、トランザクションデータ１が生成およびブロードキャストされる。
【００８６】
以上のように第３の実施形態に係る分散型台帳検証システムを説明した。第３の実施形態では、トランザクションの検証を行う際に、試験などの問題における解答および正答の整合性の可否を検証者に要求している。これによって、第１の実施形態で説明したのと同様に、従来の分散型台帳システムと比較して、コンピュータリソースなどの無駄を削減することができる。
【００８７】
また、出題者および回答者のいずれも、認証機関が発行した秘密鍵を使用しないと書式データを更新することができない。つまり、認証機関によって認証されたユーザのみが出題することができ、認証されたユーザのみが解答することができる。この構成によって、出題者の出題権限および回答者の解答権限を制御することができる。
【００８８】
なお、通常、試験は試験期間が定められているが、上述したように、書式データに有効期限を設定することによって期限経過後は書式データを更新することができなくなる。このことは、期限経過後にはユーザが解答することができないことを意味する。この構成によって、試験期間を実質的に定めることができる。
【００８９】
また、問題が複数の設問で構成される場合、設問ごとにトランザクションが発生してもよく、または一定数の設問ごとにトランザクションが発生してもよい。
【００９０】
上述した第１の実施形態乃至第３の実施形態で説明したトランザクションの検証はいずれも、１のユーザからの問いに対する正答と、もう一方のユーザのその問いに対する回答とが一致するかを確認するものである。いずれのケースでも、両者の整合性を第三者が確認することによって、トランザクションの正当性を検証している。つまり、本発明の一実施形態に係る分散型台帳検証システムは、確認者の問いに対する被確認者の回答が一意となるような（例えば、選択問題、正答が一意な数字および文字であるなど）問いおよび回答から構成される検証に適用されてもよい。
【００９１】
また、第２の実施形態で説明したように、１のユーザからの第１の問いに対する第１の正答と認証機関からの第２の問いに対する第２の正答とをトランザクションデータに含めてもよい。第２の実施形態では、融資条件に対する例を説明したが、そのような例に限定されず、確認者が知りえない任意の問いに対する正答を認証機関が補足してもよい。
【００９２】
さらに、１のユーザからの問いに対する正答と、もう一方のユーザのその問いに対する回答とが統一した書式データに従って同一のデータ構造を有するデータがハッシュ化されることは上述した。よって、双方のデータのハッシュ値が比較されるので、双方のデータが完全一致する必要がある。このことを考慮して、例えば、正答および／または回答に含まれる平仮名およびカタカナなどの文字を変換するなど、正答および／または回答の内容を変更しない範囲で文字などの形式を双方で一致するよう変換してもよい。この変換は、例えば、予め定義された所定の基準に基づいて、コンピュータデバイス１が実行してもよく、または認証機関デバイス２が実行してもよい。また、変換の基準は、書式データにおいて定義されてもよい。
【００９３】
上記実施形態で説明したハードウェアの構成要素は例示的なものにすぎず、その他の構成も可能であることに留意されたい。また、上記実施形態で説明した処理の順序は、必ずしも説明した順序で実行される必要がなく、任意の順序で実行されてもよい。さらに、本発明の基本的な概念から逸脱することなく、追加のステップが新たに加えられてもよい。
【００９４】
また、本発明の一実施形態に係る分散型台帳検証システムは、コンピュータデバイス１および／または認証機関デバイス２によって実行されるプログラムによって実装されるが、当該プログラムは、非一時的記憶媒体に記憶されてもよい。非一時的記憶媒体の例は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、レジスタ、キャッシュメモリ、半導体メモリ装置、内蔵ハードディスクおよび取外可能ディスク装置などの磁気媒体、光磁気媒体、ならびにＣＤ−ＲＯＭディスクおよびデジタル多用途ディスク（ＤＶＤ）などの光学媒体などを含む。
【符号の説明】
【００９５】
１  コンピュータデバイス
２  認証機関デバイス
３  ネットワーク
【図１】
2019176432.tif 000003
【図２】
2019176432.tif 000004
【図３】
2019176432.tif 000005
【図４】
2019176432.tif 000006
【図５】
2019176432.tif 000007
【図６】
2019176432.tif 000008
【図７】
2019176432.tif 000009
【図８】
2019176432.tif 000010
【図９】
2019176432.tif 000011
【手続補正書】
【提出日】平成30年10月18日(2018.10.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散型台帳に記録するためのコンピュータデバイスによって実行される方法であって、
第１のコンピュータデバイスによってブロードキャストされた第１のトランザクションデータを受信するステップであって、前記第１のトランザクションデータは、第１のユーザからの問いに対する正答に基づいて生成された第１のハッシュ値を含み、過去のトランザクションデータと関連付けられている、ステップと、
第２のコンピュータデバイスによってブロードキャストされた第２のトランザクションデータを受信するステップであって、前記第２のトランザクションデータは、前記問いに対する第２のユーザからの回答に基づいて生成された第２のハッシュ値を含み、過去のトランザクションデータと関連付けられている、ステップと、
前記第１のトランザクションデータに含まれる前記第１のハッシュ値と、前記第２のトランザクションデータに含まれる前記第２のハッシュ値とを比較するステップと、
前記比較が一致する場合、前記第１のトランザクションデータを前記分散型台帳に記録し、前記第２のトランザクションデータを前記分散型台帳に記録するステップと
を備えたことを特徴とする方法。
【請求項２】
分散型台帳に記録するための方法であって、
第１のコンピュータデバイスによって、
第１のユーザからの問いに対する正答に基づいて第１のハッシュ値を生成するステップと、
前記第１のハッシュ値を含む第１のトランザクションデータを生成するステップであって、前記第１のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第１のトランザクションデータをブロードキャストするステップと、
第２のコンピュータデバイスによって、
第２のユーザからの回答に基づいて第２のハッシュ値を生成するステップであって、前記回答は、前記問いに対する回答である、ステップと、
前記第２のハッシュ値を含む第２のトランザクションデータを生成するステップであって、前記第２のトランザクションデータは、過去のトランザクションデータと関連付けられている、ステップと、
前記第２のトランザクションデータをブロードキャストするステップと、
第３のコンピュータデバイスによって、
前記第１のトランザクションデータおよび前記第２のトランザクションデータを受信するステップと、
前記第１のトランザクションデータに含まれる前記第１のハッシュ値と、前記第２のトランザクションデータに含まれる前記第２のハッシュ値とを比較するステップと、
前記比較が一致する場合、前記第１のトランザクションデータを前記分散型台帳に記録し、前記第２のトランザクションデータを前記分散型台帳に記録するステップと
を備えたことを特徴とする方法。
【請求項３】
前記第１のコンピュータデバイスは、認証機関デバイスであり、
前記第１のハッシュ値を生成するステップは、書式データを前記正答に適用し、前記書式データが適用された前記正答に基づいて、前記第１のハッシュ値を生成するステップを含み、
前記第２のハッシュ値を生成するステップは、書式データを前記回答に適用し、前記書式データが適用された前記回答に基づいて、前記第２のハッシュ値を生成するステップを含む、
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記第１のコンピュータデバイスは、認証機関デバイスであり、
前記方法は、
前記第１のコンピュータデバイスによって、第２の問いに対する第２の正答を生成するステップをさらに備え、
前記第１のハッシュ値を生成するステップは、前記正答および前記第２の正答に基づいて、前記第１のハッシュ値を生成するステップを含む
ことを特徴とする請求項２または３に記載の方法。
【請求項５】
前記方法は、
前記第１のコンピュータデバイスによって、
秘密鍵および公開鍵のペアを生成するステップと、
前記公開鍵を使用して前記書式データを暗号化するステップと、
前記秘密鍵および前記書式データを前記第２のコンピュータデバイスに送信するステップと
をさらに備え、
前記第２のハッシュ値を生成するステップは、前記第１のコンピュータデバイスによって送信された前記書式データを前記回答に適用し、前記書式データが適用された前記回答に基づいて、前記第２のハッシュ値を生成するステップを含む
ことを特徴とする請求項３に記載の方法。
【請求項６】
プロセッサによって実行されると、請求項１乃至５のいずれか一項に記載の方法をコンピュータデバイスに実行させるコンピュータ実行可能命令を含むことを特徴とするコンピュータプログラム。