(57)【要約】【課題】ブロック生成検証装置に一時情報を格納するとともに、台帳データ及び台帳データ用データ格納領域を軽量化する。【解決手段】トランザクション発行装置２は、トランザクション情報を生成し、トランザクション情報をブロック生成検証装置５に送信し、ブロック生成検証装置３は、格納用ブロックを生成し、一時情報を一時情報用データ格納領域３２３に格納し、格納用ブロックを台帳データに繋げ、一時情報、本トランザクション情報、本トランザクション情報のダイジェスト値、及び一時情報用データ格納領域３２３のダイジェスト値を送信し、他のブロック生成検証装置５から送信された一時情報を格納した一時情報用データ格納領域から算出したダイジェスト値と、一時情報用データ格納領域のダイジェスト値とに基づいて一時情報を検証する。【選択図】図３
2018112827.tif 000002
【特許請求の範囲】
【請求項１】
互いに情報を送受信する１つ以上のトランザクション発行装置と、複数のブロック生成検証装置とを備える情報処理システムであって、
前記トランザクション発行装置は、
本トランザクション情報及び一時情報を含むトランザクション情報を生成するトランザクション生成部と、
前記トランザクション情報を前記ブロック生成検証装置に送信するトランザクション通信部と、を有し、
前記ブロック生成検証装置は、
前記本トランザクション情報及び前記本トランザクション情報のダイジェスト値を含み、前記一時情報を含まない格納用ブロックを生成するブロック生成部と、
前記一時情報を一時情報用データ格納領域に格納し、前記格納用ブロックを台帳データに繋げる格納制御部と、
前記一時情報、前記本トランザクション情報、前記本トランザクション情報のダイジェスト値、及び前記一時情報用データ格納領域のダイジェスト値を送信するブロック通信部と、
他のブロック生成検証装置から送信された前記一時情報を格納した一時情報用データ格納領域から算出したダイジェスト値と、前記一時情報用データ格納領域のダイジェスト値とに基づいて前記一時情報を検証するブロック検証部と、
を有することを特徴とする情報処理システム。
【請求項２】
前記トランザクション発行装置は、
前記トランザクション情報に第１の電子署名を付与し、前記本トランザクション情報に第２の電子署名を付与する電子署名付与部をさらに有し、
前記格納用ブロックは、前記第２の電子署名が付与された前記本トランザクション情報を含み、一時情報及び第１の電子署名を含まないことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記トランザクション発行装置は、
前記本トランザクション情報及び前記一時情報のダイジェスト値に電子署名を付与する電子署名付与部を有し、
前記格納用ブロックは、前記電子署名が付与された前記本トランザクション情報及び前記一時情報のダイジェスト値を含み、前記一時情報を含まないことを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記ブロック通信部は、さらに一時情報を含むキャッシュテーブルを送信し、
他の前記ブロック生成検証装置から受信した前記キャッシュテーブルのダイジェスト値を算出し、算出されたダイジェスト値と、受信したブロックに含まれるキャッシュテーブルのダイジェスト値とが一致する場合に、他の前記ブロック生成検証装置から受信した本トランザクション情報に対応する格納用ブロックを検証するブロック検証部を有することを特徴とする請求項３に情報処理システム。
【請求項５】
前記ブロック検証部は、他の前記ブロック生成検証装置から、前記一時情報、本トランザクション情報のダイジェスト値、前記一時情報用データ格納領域のダイジェスト値、及び前記本トランザクション情報を受信すると、前記格納用ブロックがブロック生成条件を満たすか否かを判定し、
前記格納制御部は、前記格納用ブロックがブロック生成条件を満たすと判定されると、該格納用ブロックを台帳データに繋げることを特徴とする請求項１から４のいずれか一項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
近年、ブロックチェーンまたはブロックチェーン技術と呼ばれる仕組みが仮想通貨を中心に普及しつつある。ブロックチェーンは２００８年に仮想通貨ビットコインの中核技術として登場した。ブロックチェーンとは、分散ノードで構成されるネットワークにおいて、悪意のあるノードが一定割合以内という条件下で分散ノード間の情報同期を可能にする技術である。分散ノードが保有する情報は、台帳データまたは台帳と呼ばれ、データブロックをつないだ論理構造を持つ。
【０００３】
データブロックには、ブロックチェーンネットワークに発行されたトランザクションに関する情報が格納される。ブロックチェーンネットワークの維持に参加するノードは、ブロックチェーンネットワークに発行された各トランザクションを検証し、複数のトランザクションをまとめてデータブロックの生成を始める。データブロックの生成にはある条件があり、ブロックチェーンの維持に参加するノードは条件を満たすデータブロックを探す。条件を満たすデータブロックを生成できたノードは他のノードに対して見つけたデータブロックを送信するとともに自身の台帳データにそのブロックを追加する。データブロックを受け取ったノードは、データブロックに格納されているトランザクションやデータブロックを検証し、自身が持つ台帳データにつなぐ。
【０００４】
データブロックには、格納するトランザクションの情報の他、ひとつ前のデータブロックを示す情報やブロック生成条件に関する情報も含まれており、誰でも検証し、情報の正しさを確認することができる。データブロック間には依存関係があり、さらにブロック生成には条件があるため、過去のデータブロックになるほど改竄が困難になるという特徴がある。台帳データには、ブロックチェーンネットワークに発行された全部のトランザクションが格納される。
【０００５】
ブロックチェーンの実装はいくつか知られている。最初に実装されたブロックチェーンは仮想通貨のビットコインである（非特許文献１参照）。ビットコインでは、トランザクションのつながりで取引を表現している。近年では、台帳データにプログラムコードを埋め込み、任意の処理をトランザクションにより実行させ、その結果を台帳データに格納することができるブロックチェーンの実装も登場している（非特許文献２参照）。プログラムコードを実行できるプラットフォームでは、トランザクションの他、プログラムコードや処理結果に関する情報も台帳データに保持され、分散ノード間で同期されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Satoshi Nakamoto、[online]、 “Bitcoin: A Peer-to-Peer Electronic Cash System”、[平成２８年１２月８日検索]、インターネット<URL:http://www.cryptovest.co.uk/resources/Bitcoin%20paper%20Original.pdf>
【非特許文献２】“ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER” 、[online]、[平成２８年１２月８日検索]、インターネット<URL:http://bitcoinaffiliatelist.com/wp-content/uploads/ethereum.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ブロックチェーンでは、トランザクション情報のすべてがブロックチェーンに格納されるため、永続的に格納する必要のない一時情報のやり取りや保持が目的でも長期に渡り残り、情報が読み取られる危険性がある（分散ノードの数だけ流出のリスクが高まる）。また、台帳データにはすべてのトランザクションが格納されるため、永続的に必要とされる情報以外も格納されると台帳データが膨大になる。
【０００８】
一時情報を保持するために台帳データとは別に一時情報用データ格納領域を新設し、一時情報をそのデータ格納領域に格納するとともに、ブロックへトランザクションを格納するときにトランザクションから一時情報を除くというアプローチをとった場合、次の課題がある。
【０００９】
一時情報を除けるようにするためには、その部分を除いてトランザクションに署名する必要があるが、一時情報を記載するフィールドを第三者により置き換えられてしまう可能性がある。仮に、トランザクションへの署名の他に、一時情報にのみ新たに電子署名を付与したとしても、同じ発行者の別のトランザクションの一時情報に置き換えられてしまう可能性がある。
【００１０】
したがって、かかる点に鑑みてなされた本発明の目的は、一時情報を格納することができるとともに、台帳データまたは、台帳データおよび台帳データ用データ格納領域を軽量化することを可能にすることである。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明に係る情報処理システムは、互いに情報を送受信する１つ以上のトランザクション発行装置と、複数のブロック生成検証装置とを備える情報処理システムであって、前記トランザクション発行装置は、本トランザクション情報及び一時情報を含むトランザクション情報（実施形態では、第１のトランザクション情報又は第２のトランザクション情報を意味する）を生成するトランザクション生成部と、前記トランザクション情報を前記ブロック生成検証装置に送信するトランザクション通信部と、を有し、前記ブロック生成検証装置は、前記本トランザクション情報及び前記本トランザクション情報のダイジェスト値を含み、前記一時情報を含まない格納用ブロックを生成するブロック生成部と、前記一時情報を一時情報用データ格納領域に格納し、前記格納用ブロックを台帳データに繋げる格納制御部と、前記一時情報、前記本トランザクション情報、前記本トランザクション情報のダイジェスト値、及び前記一時情報用データ格納領域のダイジェスト値を送信するブロック通信部と、他のブロック生成検証装置から送信された前記一時情報を格納した一時情報用データ格納領域から算出したダイジェスト値と、前記一時情報用データ格納領域のダイジェスト値とに基づいて前記一時情報を検証するブロック検証部と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、一時情報を格納することができるとともに、ブロックチェーン及び台帳データ用データ格納領域を軽量化することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係る情報処理システムの機能構成図である。
【図２】図１に示すトランザクション発行装置の機能構成図である。
【図３】第１の実施形態における電子署名付きの第１のトランザクション情報を示す概念図である。
【図４】図１に示すブロック生成検証装置の機能構成図である。
【図５】第１の実施形態におけるブロックを示す概念図であり、図５（ａ）は格納用ブロックを示す概念図であり、図５（ｂ）は送受信用ブロックを示す概念図である。
【図６】第１の実施形態におけるブロックチェーンを示す概念図である。
【図７】第１の実施形態におけるブロック生成検証装置の情報処理方法を示す処理フロー図である。
【図８】第１の実施形態における他のブロック生成検証装置の情報処理方法を示す処理フロー図である。
【図９】第２の実施形態における電子署名付きの第２のトランザクション情報を示す概念図である。
【図１０】第２の実施形態におけるブロック生成検証装置の機能構成図である。
【図１１】第２の実施形態における格納用ブロックを示す概念図である。
【図１２】第２の実施形態におけるブロックチェーンを示す概念図である。
【図１３】第１の実施形態におけるブロック生成検証装置の情報処理方法を示す処理フロー図である。
【図１４】第１の実施形態における他のブロック生成検証装置の情報処理方法を示す処理フロー図である。
【図１５】トランザクション情報に含まれるプログラムコードの例である。
【発明を実施するための形態】
【００１４】
［第１の実施形態］
まず、図１を参照して、本発明の第１の実施形態の機能構成について説明する。図１は、第１の実施形態に係る情報処理システム１の機能構成図である。
【００１５】
図１に示すように、情報処理システム１は、１つ以上のトランザクション発行装置２、及び複数のブロック生成検証装置３を備える。複数のトランザクション発行装置２及び複数のブロック生成検証装置３は、互いにＰ２Ｐ（Peer to Peer）型の通信ネットワーク（以降、「ブロックチェーンネットワーク」という）により接続され、情報を送受信する。
【００１６】
トランザクション発行装置２は、スマートフォン、ＰＣ（Personal Computer）、タブレット等のコンピュータである。トランザクション発行装置２は、図２に示すようにトランザクション生成部２１、電子署名付与部２２、及びトランザクション通信部２３を備える。
【００１７】
トランザクション生成部２１は、ユーザの入力に基づき、図３に示すような第１のトランザクション情報を生成する。第１のトランザクション情報には、本トランザクション情報と一時情報とが含まれる。本トランザクション情報の一例は、情報処理システム１で利用される仮想通貨（ビットコイン）を用いた取引の情報である。また、本トランザクション情報は、計算処理を行うためのプログラムコード、計算処理の結果であってもよい。一例として、本トランザクション情報は、ユーザＵ１がユーザＵ２に送金したことを示す情報であり、金額、ユーザＵ１の識別情報、ユーザＵ２の識別情報等が含まれる。一時情報とは、取引の履歴としてブロックに永続的に保存される必要のない情報であり、例えば、暗号化された情報、該暗号化された情報を復号するためのコンテンツ復号鍵等である。このように、暗号化された情報、コンテンツ復号鍵等が一時情報に含まれることによって、例えば、暗号化された個人情報の利用者からの要望やサービス利用終了に伴い削除する運用や情報処理システム１に参加している利用者間でコンテンツ復号鍵の送受が完了した時点で削除する運用をすることが可能となる。
【００１８】
電子署名付与部２２は、トランザクション生成部２１によって生成された、本トランザクション情報と一時情報とを含む第１のトランザクション情報に秘密鍵を用いて暗号化することによって第１の電子署名を付与する。また、電子署名付与部２２は、本トランザクション情報のみに、第１の電子署名と同一の秘密鍵による第２の電子署名を付与する。
【００１９】
トランザクション通信部２３はトランザクション生成部２１によって生成された、第１のトランザクション情報、電子署名付与部２２によって付与された第１の電子署名及び第２の電子署名をブロードキャストで、複数のブロック生成検証装置３に送信する。
【００２０】
ブロック生成検証装置３は、図４に示すように、ブロック通信部３１、格納部３２、トランザクション検証部３３、ブロック生成部３４、ブロック検証部３５、及び格納制御部３６を備える。
【００２１】
ブロック通信部３１は、トランザクション発行装置２又は他のブロック生成検証装置３から送信された第１のトランザクション情報、第１の電子署名、及び第２の電子署名を受信する。また、ブロック通信部３１は、他のブロック生成検証装置３から受信した、第１のトランザクション情報、第１の電子署名、及び第２の電子署名をさらに別のブロック生成検証装置３にブロードキャストで送信する。
【００２２】
格納部３２は、各種情報及び各種情報をまとめた格納用ブロックを格納する。格納部３２は、台帳データ格納領域３２１、台帳データ用データ格納領域３２２、及び一時情報用データ格納領域３２３を備える。
【００２３】
台帳データ格納領域３２１は、台帳データを格納する。台帳データとは、図５（ａ）に示すように前のブロックのブロックヘッダのハッシュ値、台帳データ用データ格納領域３２２に格納されている複数のトランザクション情報のダイジェスト値、一時情報用データ格納領域３２３のダイジェスト値、及び複数の本トランザクション情報を含む格納用ブロックを図６に示すように前のブロックに連鎖させたチェーン状の情報の集合である。なお、一時情報用データ格納領域３２３のダイジェスト値とは、一時情報用データ格納領域３２３に記憶されている一時情報全体のダイジェスト値である。
【００２４】
ここで、「連鎖する」とは、各ブロックに、１つ前のブロックのブロックヘッダのハッシュ値を含めることである。このため、例えば、ブロックチェーンで互いに連鎖されているブロックのいずれかについて改竄が行われると、該ブロックのブロックヘッダのハッシュ値は全く異なる値となる。このため、ブロックヘッダのハッシュ値と、１つ後ろのブロックのブロックヘッダに記載されたハッシュ値とが異なることになる。したがって、トランザクション情報を改竄したことが明らかになり、改竄を防止する仕組みとして利用される。
【００２５】
台帳データ用データ格納領域３２２は、第１のトランザクション情報に含まれる電子署名付きの本トランザクション情報を格納する。
【００２６】
一時情報用データ格納領域３２３は、台帳データに繋がれるブロックにそれぞれ含まれる本トランザクション情報に対応する一時情報を格納する。
【００２７】
トランザクション検証部３３は、ブロック通信部３１がトランザクション発行装置２から受信した第１のトランザクション情報の形式及び電子署名を検証する。具体的には、トランザクション検証部３３は、第１のトランザクション情報の形式が所定の形式であるか否かを判定する。また、トランザクション検証部３３は、電子署名の署名検証により第１のトランザクション情報が正当な発行者によるものであるか否かを判定する。また、トランザクション検証部３３は、ブロック通信部３１が他のブロック生成検証装置３から電子署名付きの第１のトランザクション情報を受信すると、受信した第１のトランザクション情報の形式及び電子署名を同様に検証する。
【００２８】
ブロック生成部３４は、トランザクション検証部３３によってトランザクション情報の形式が所定の形式であり、該トランザクション情報が正当な発行者によるものであると判定された場合、図５（ａ）に示すような、ブロック本体及びブロックヘッダからなる格納用ブロックを生成する。ブロック生成部３４は、格納用ブロックのブロック本体に複数の、電子署名付きの本トランザクション情報を含め、一時情報を含めない。なお、ブロック本体に含まれる複数の本トランザクション情報の１つ以上は、対応する第１のトランザクション情報に一時情報が含まれていないものであってもよい。
【００２９】
また、ブロック生成部３４は、ブロックヘッダに、前に格納されたブロックのブロックヘッダのハッシュ値と、ブロック本体に含まれる複数のトランザクション情報のダイジェスト値と、一時情報用データ格納領域３２３のダイジェスト値とを含める。なお、ブロック生成部３４は、トランザクション情報をツリー構造で台帳データ格納領域３２１に記憶させるが、このツリー構造におけるルートノードをダイジェスト値としてブロックヘッダに含んでもよい。
【００３０】
このとき、ブロック生成部３４は、格納用ブロックがブロック生成条件を満たすためのノンス（Nonce）を探索する。ブロック生成条件とは、例えば、格納用ブロックのブロックヘッダのハッシュ値が閾値より小さくなるという条件である。
【００３１】
ブロック生成部３４は、所定の条件を満たすノンスをみつけると、格納用ブロックを台帳データに繋げる。また、ブロック生成部３４は、所定の条件を満たすノンスをみつけると、ブロック通信部３１に、送受信用ブロックを他のブロック生成検証装置３に対してブロードキャストで送信させる。また、ブロック生成部３４がノンスをみつけると、ブロック通信部３１が送受信用ブロックを送信し、さらに送信した送受信用ブロックを自ら受信してもよい。この場合、格納制御部３６は、受信した送受信用ブロックに対応する格納用ブロックを台帳データに繋げる。送受信用ブロックは、図５（ｂ）に示すように、格納用ブロックに一時情報を加えた情報である。すなわち送受信用ブロックは、第１のトランザクション情報、第１の電子署名、及び第２の電子署名を有するブロック本体と、前のブロックのブロックヘッダのハッシュ値、台帳データ用データ格納領域３２２に格納されている複数のトランザクション情報のダイジェスト値、及び一時情報用データ格納領域３２３のダイジェスト値とを有するブロックヘッダと含む。
【００３２】
ブロック検証部３５は、ブロック通信部３１が他のブロック生成検証装置３から送受信用ブロックを受信し、トランザクション検証部３３が該送受信用ブロックに含まれる第１のトランザクション情報の正当性を検証する。
【００３３】
具体的には、ブロック検証部３５は、送受信用ブロックに含まれる本トランザクション情報からダイジェスト値を算出し、算出されたダイジェスト値とブロックヘッダに記載された台帳データ用データ格納領域３２２のダイジェスト値とが同一である場合に正当性を確認する。また、ブロック検証部３５は、一時情報用データ格納領域３２３からダイジェスト値を算出し、算出されたダイジェスト値とブロックヘッダに記載された一時情報用データ格納領域３２３のダイジェスト値とが同一である場合に正当性を確認する。
【００３４】
ブロック検証部３５は、正当性が確認されると、本トランザクション情報を含み、一時情報を含まない格納用ブロックがブロック生成条件を満たすか否かを検証する。
【００３５】
格納制御部３６は、第１のトランザクション情報を一意に識別するためのトランザクションＩＤ（Identification）、及び第１のトランザクション情報に含まれる一時情報を一時情報用データ格納領域３２３に格納させる。
【００３６】
また、格納制御部３６は、ブロック生成部３４が所定の条件を満たすノンスをみつけると、図６に示すように、格納用ブロックを台帳データ格納領域３２１に繋げる。また、格納制御部３６は、ブロック通信部３１が受信した送受信用ブロックに対応する格納用ブロックがブロック生成条件を満たすと判定されると、該格納用ブロックを台帳データに繋げる。
【００３７】
また、格納制御部３６は、所定のタイミングで一時情報用データ格納領域３２３に格納されている一時情報を削除する。例えば、格納制御部３６は、トランザクションＩＤとともに一時情報を削除する旨の命令を含むトランザクション情報を受信し、該トランザクションに係る一時情報を削除することができる。また、格納制御部３６は、一時情報用データ格納領域３２３に一時情報が格納されてから所定の時間が経過したときに一時情報を削除してもよいし、トランザクションの発生日時から所定の期間が経過したとき、又は他の情報管理装置に管理されている契約期間が徒過したときに一時情報を削除してもよい。削除のタイミングについては適宜設計される。
【００３８】
続いて、第１の実施形態におけるブロック生成検証装置３の情報処理方法について図７に示すシーケンス図を参照して説明する。
【００３９】
ブロック生成検証装置３のブロック通信部３１は、トランザクション発行装置２からブロードキャストで送信された第１のトランザクション情報を受信する（ステップＳ１１）。
【００４０】
ステップＳ１１で第１のトランザクション情報が受信されると、トランザクション検証部３３は、第１のトランザクション情報の形式及び電子署名を検証し、正当な発行者によるトランザクションであるか否かを判定する（ステップＳ１２）。
【００４１】
ステップＳ１２で、第１のトランザクション情報が正当な発行者によるトランザクションであると判定されると、格納制御部３６は、一時情報をトランザクションＩＤなどのキー情報とともに一時情報用データ格納領域３２３に格納する（ステップＳ１３）。
【００４２】
ステップＳ１３で、一時情報が格納されると、ブロック生成部３４は、格納用ブロックを生成する（ステップＳ１４）。具体的には、ブロック生成部３４は、ブロック本体に、複数の電子署名付き本トランザクションを含み、ブロックヘッダに複数の本トランザクションのダイジェスト値と、前のブロックのブロックヘッダのハッシュ値と、一時情報用データ格納領域３２３のダイジェスト値とを記載する。このとき、ブロック生成部３４は、格納用ブロックがブロック生成条件を満たすようなノンスを探索する。
【００４３】
ステップＳ１４で、ノンスがみつかると、格納制御部３６は格納用ブロックを台帳データに繋げる。また、ブロック通信部３１は、ブロック生成部３４によって生成された格納用ブロックに含まれる第１のトランザクション情報と、ブロックヘッダに含まれるハッシュ値及びダイジェスト値とを含む送受信用ブロックを他のブロック生成検証装置３に対してブロードキャストで送信する（ステップＳ１５）。このとき、ブロック通信部３１が送信した送受信用ブロックを自ら受信し、格納制御部３６が、受信した送受信用ブロックに対応する格納用ブロックを台帳データに繋げてもよい。
【００４４】
次に、送受信用ブロックを受信する他のブロック生成検証装置３の情報処理方法について図８を参照して説明する。
【００４５】
他のブロック生成検証装置３のブロック通信部３１は、ブロードキャストで送信された送受信用ブロックを受信する（ステップＳ２１）。
【００４６】
ステップＳ２１で送受信用ブロックが受信されると、トランザクション検証部３３は、送受信用ブロックに含まれる第１のトランザクションの形式及び電子署名を検証する（ステップＳ２２）。
【００４７】
ステップＳ２２で、第１のトランザクション情報が正当な発行者によるトランザクションであると確認されると、格納制御部３６は、送受信用ブロックに含まれる一時情報を一時情報用データ格納領域３２３に格納する（ステップＳ２３）。
【００４８】
ステップＳ２３で一時情報が格納されると、ブロック検証部３５は、一時情報用データ格納領域３２３からダイジェスト値を算出し、算出されたダイジェスト値とブロックヘッダに記載された一時情報用データ格納領域３２３のダイジェスト値とが同一である場合に正当性を確認する（ステップＳ２４）。
【００４９】
ステップＳ２４で、一時情報用データ格納領域３２３の正当性が確認されると、ブロック検証部３５は、格納用ブロックがブロック生成条件を満たすか否かを検証する（ステップＳ２５）。
【００５０】
ステップＳ２５で格納用ブロックがブロック生成条件を満たすと確認されると、格納制御部３６は、格納用ブロックを台帳データに繋げる（ステップＳ２６）。
【００５１】
以上のように、第１の実施形態によれば、ブロック生成検証装置３は、第１のトランザクション情報に含まれる情報のうち、永続的に格納する必要のない一時情報を一時情報用データ格納領域３２３に格納し、一時情報用データ格納領域３２３に格納された一時情報を適宜削除する。これにより台帳データ格納領域３２１及び台帳データ用データ格納領域３２２には一時情報を格納させる必要がないため、これらの領域の容量を低減することができる。
【００５２】
このとき、永続的に格納する本トランザクション情報の真正性を担保するために、本トランザクション情報に電子署名を付与する必要がある。また、一時情報の真正性を担保するために一時情報にも電子署名することが考えられるが、この場合、一時情報を記載するフィールドを第三者により置き換えられてしまう可能性がある。しかし、第１の実施形態によれば、本トランザクション情報に電子署名が付されるだけでなく、一時情報と本トランザクション情報を含む第１のトランザクション情報に電子署名が付されるため、一時情報が改竄されたり、第１のトランザクション情報に含まれる一時情報のみが置き換えられたりした場合にその旨を検出することができる。したがって、情報処理システム１は一時情報の真正性を担保することができる。
【００５３】
また、第１の実施形態によれば、ブロック生成検証装置３は、一時情報を含まない本トランザクション情報のみを含む格納用ブロックを台帳データ格納領域３２１に格納するが、他のブロック生成検証装置３には一時情報を含む送受信用ブロックを送信する。そのため、他のブロック生成検証装置３は、一時情報と本トランザクション情報とのいずれをも含む第１のトランザクション情報を受信し、受信した第１のトランザクション情報を正確に検証することができる。他のブロック生成検証装置３は、一時情報が真に対応する本トランザクション情報に対応していることを確認することができる。また、ブロック生成検証装置３は、台帳データに繋がれている本トランザクション情報に対応する一時情報全体を、一時情報用データ格納領域３２３のダイジェスト値を用いて検証するため、一時情報用データ格納領域３２３に格納されている一時情報のうちのいずれかの一時情報が取り換えられていた場合にもその旨を明らかにすることができる。これにより、一時情報全体についての真正性を確保することができる。
【００５４】
また、第１の実施形態によれば、ブロック生成検証装置３は、台帳データ用データ格納領域３２２のダイジェスト値をブロックヘッダに含めて、他のブロック生成検証装置３に送信する。このため、他のブロック生成検証装置３は、ブロック本体に含まれる、複数の本トランザクション情報からダイジェスト値を算出し、算出されたダイジェスト値とブロックヘッダに含まれるダイジェスト値とに基づいて、複数の本トランザクション情報のうちのいずれかが置き換えられているか否かを判定することができる。具体的には、ブロック生成検証装置３は、算出されたダイジェスト値とブロックヘッダに含まれるダイジェスト値とが同一である場合、いずれの本トランザクション情報も置き換えられていないと判定し、算出されたダイジェスト値とブロックヘッダに含まれるダイジェスト値とが異なる場合、いずれか１つ以上の本トランザクション情報が置き換えられたと判定することができる。したがって、ブロック生成検証装置３から他のブロック生成検証装置３に送信されたブロックに含まれる複数の本トランザクション情報の真正性を確保することができる。
【００５５】
したがって、ブロックチェーンが実現する全ての本トランザクション情報の記録性、改竄耐性を損なうことなく、格納部３２に永続的に格納させる必要のない一時情報を一時的に保持したうえで記憶容量を低減させることができる。
【００５６】
［第２の実施形態］
続いて、本発明の第２の実施形態について図面を参照して説明する。
【００５７】
第２の実施形態に係る情報処理システム５は、第１の実施形態に係る情報処理システム１と同様に、１つ以上のトランザクション発行装置２、及び複数のブロック生成検証装置６を備える。複数のトランザクション発行装置２及び複数のブロック生成検証装置６は、互いにＰ２Ｐ（Peer to Peer）型の通信ネットワークにより接続され、情報を送受信する。なお、第１の実施形態における情報処理システム１と同様の構成ブロックについては同一の参照符号を付して、適宜、説明を省略する。
【００５８】
第２の実施形態においては、トランザクション生成部２１は、ユーザによる入力に基づいて、図９に示すように、本トランザクション情報及び一時情報を生成する。また、トランザクション生成部２１は、一時情報に基づいて一時情報のダイジェスト値を算出する。
【００５９】
電子署名付与部２２は、トランザクション生成部２１によって生成された、本トランザクション情報と、一時情報のダイジェスト値とを含む情報に電子署名を付与することによって暗号化トランザクション情報を生成する。
【００６０】
トランザクション通信部２３は、電子署名付与部２２によって生成された暗号化トランザクション情報と一時情報とを含む第２のトランザクション情報をブロック生成検証装置６に送信する。
【００６１】
ブロック生成検証装置６は、図１０に示すように、第１の実施形態のブロック生成検証装置３の各機能部に加えてキャッシュテーブル３７を備える。キャッシュテーブル３７には、第２のトランザクション情報に含まれる一時情報が記憶される。
【００６２】
トランザクション検証部３３は、ブロック通信部３１がトランザクション発行装置２から受信した第２のトランザクション情報の形式及び電子署名を検証する。
【００６３】
ブロック生成部３４は、図１１に示すような、ブロック本体及びブロックヘッダからなる格納用ブロックを生成する。ブロック生成部３４は、ブロック本体に複数の、電子署名付きの暗号化トランザクション情報を含める。また、ブロック生成部３４は、図１２に示すように、前のブロックのブロックヘッダのハッシュ値、複数の本トランザクション情報のハッシュ値に加えて、キャッシュテーブル３７のダイジェスト値をブロックヘッダに含める。
【００６４】
ブロック検証部３５は、他のブロック生成検証装置６から受信した、一時情報を格納しているキャッシュテーブル３７からダイジェスト値を算出する。そして、ブロック検証部３５は、算出したダイジェスト値と、送受信用ブロックのブロックヘッダに記載されたキャッシュテーブル３７のダイジェスト値とが一致するか否かを検証する。
【００６５】
また、ブロック検証部３５は、一時情報用データ格納領域３２３からダイジェスト値を算出する。そして、ブロック検証部３５は、算出したダイジェスト値と、送受信用ブロックのブロックヘッダに記載された一時情報用データ格納領域３２３のダイジェスト値とが一致するか否かを検証する。
【００６６】
次に、ブロック検証部３５は、一時情報を格納しているキャッシュテーブル３７のダイジェスト値がブロックヘッダに記載されているキャッシュテーブルのダイジェスト値と一致し、一時情報用データ格納領域３２３のダイジェスト値がブロックヘッダに記載されている一時情報用データ格納領域のダイジェスト値と一致すると、キャッシュテーブル３７に格納された一時情報のダイジェスト値が、該一時情報に対応する暗号化トランザクション情報に記載された一時情報のダイジェスト値と一致するか否かを検証する。
【００６７】
格納制御部３６は、キャッシュテーブル３７に格納された一時情報のダイジェスト値が、該一時情報に対応する暗号化トランザクション情報に記載された一時情報のダイジェスト値と一致すると判定され、かつ格納用ブロックがブロック生成条件を満たすと判定されると、格納用ブロックを台帳データに繋げる。
【００６８】
また、ブロック通信部３１は、ブロック生成部３４がブロック生成条件を満たすノンスをみつけると、格納用ブロックとキャッシュテーブル３７に格納されている一時情報とを他のブロック生成検証装置６に対してブロードキャストで送信する。
【００６９】
続いて、第２の実施形態における情報処理システム５の情報処理方法について図１３を参照して説明する。
【００７０】
ステップＳ３１〜Ｓ３３、及びＳ３５については、それぞれ第１の実施形態におけるステップＳ１１〜Ｓ１３，及びＳ１５と同様である。
【００７１】
ステップＳ３３で一時情報が格納されると、ブロック生成部３４は、格納用ブロックを生成する。具体的には、ブロック生成部３４は、ブロック本体に、複数の電子署名付き本トランザクションを含め、ブロックヘッダに複数の本トランザクションのダイジェスト値と、前のブロックのブロックヘッダのハッシュ値と、一時情報用データ格納領域３２３のダイジェスト値とに加え、キャッシュテーブル３７のダイジェスト値を記載する（ステップＳ３４）。
【００７２】
次に、送受信用ブロックを受信する他のブロック生成検証装置６の情報処理方法について図１４を参照して説明する。
【００７３】
ステップＳ４１及びＳ４２については、それぞれ第１の実施形態におけるステップＳ１１及びＳ１２と同様である。
【００７４】
ステップＳ４２で第２のトランザクション情報が検証されると、ブロック検証部３５は、キャッシュテーブル３７からダイジェスト値を算出する。そして、ブロック検証部３５は、算出したダイジェスト値が、送受信用ブロックのブロックヘッダに記載された、キャッシュテーブル３７のダイジェスト値と同一である場合に正当性を確認する。（ステップＳ４３）。
【００７５】
ステップＳ４３でキャッシュテーブル３７のダイジェスト値が一致されていると判定されると、格納制御部３６は、一時情報を一時情報用データ格納領域３２３に格納する（ステップＳ４４）。
【００７６】
ステップＳ４４で一時情報が格納されると、ブロック検証部３５は、一時情報用データ格納領域３２３からダイジェスト値を算出する。そして、ブロック検証部３５は、算出したダイジェスト値が、送受信用ブロックのブロックヘッダに記載された、一時情報用データ格納領域３２３のダイジェスト値と一致するか否かを検証し、キャッシュテーブル３７に格納された一時情報のダイジェスト値が、該一時情報に対応する本トランザクション情報に記載されたダイジェスト値と一致するか検証する（ステップＳ４５）。
【００７７】
ステップＳ４５でダイジェスト値が一致していると判定されると、ブロック検証部３５は、ノンスを用いて格納用ブロックがブロック生成条件を満たすか否かを検証する（ステップＳ４６）。
【００７８】
ステップＳ４５でブロック生成条件を満たすと確認されると、格納制御部３６は、格納用ブロックを台帳データに繋げる（ステップＳ４７）。
【００７９】
以上のように、第２の実施形態においては、第１の実施形態と同様に、情報処理システム５は、ブロック生成検証装置６の記憶容量を低減させ、一時情報の真正性を担保することができる。
【００８０】
また、第２の実施形態においては、ブロック生成検証装置６は、キャッシュテーブルのダイジェスト値を生成し、生成したダイジェスト値を含む送受信用ブロックを他のブロック生成検証装置６に送信する。このため、他のブロック生成検証装置６は、キャッシュテーブルに格納されている一時情報に電子署名が付与されていなくても、ブロックヘッダに記載されているキャッシュテーブルのダイジェスト値を用いて一時情報の真正性を確認することができる。
【００８１】
また、ブロック生成検証装置３は、台帳データに繋がれている本トランザクション情報に対応する一時情報全体を、一時情報用データ格納領域３２３のダイジェスト値を用いて検証するため、一時情報用データ格納領域３２３に格納されている一時情報のうちのいずれかの一時情報が取り換えられていた場合にもその旨を明らかにすることができる。これにより、一時情報全体についての真正性を確保することができるという第１の実施形態と同様の効果を奏する。
【００８２】
なお、上述の実施形態における情報処理システム１及び情報処理システム５は、ビットコイン型ブロックチェーンプラットフォームとして説明したが、これに限られない。情報処理システム１及び情報処理システム５は、プログラムコード実行型ブロックチェーンプラットフォームであってもよい。
【００８３】
トランザクション発行装置２のトランザクション生成部２１は、本トランザクション情報にプログラムコード（スマートコントラクト）が含まれるように第１のトランザクション情報又は第２のトランザクション情報（以降、単に「トランザクション情報」という）を生成する。なお、トランザクション生成部２１は、格納領域を指定する指定子（例えば、図１５の「nohistory」）がプロパティに記載されたプログラムコードが本トランザクション情報に含まれるようトランザクション情報を生成する。
【００８４】
また、トランザクション発行装置２のトランザクション生成部２１は、本トランザクション情報及び一時情報の１つ以上にプログラムのメソッドが含まれるようにトランザクション情報を生成する。トランザクション生成部２１は、メソッドの引数が本トランザクション情報である場合、本トランザクション情報にメソッドおよび引数が含まれるようにトランザクション情報を生成する。また、トランザクション生成部２１は、メソッドの引数が一時情報である場合、メソッドおよび一時情報への参照情報を本トランザクション情報に記載したトランザクション情報を生成する。
【００８５】
また、格納制御部３６は、トランザクション発行装置２から送信されたトランザクションにプログラムコードが含まれる場合には、該プログラムコードを台帳データ用データ格納領域３２２に格納する。格納制御部３６は、プログラムコードのプロパティに記載された格納領域を指定する指定子にもとづき、台帳データ用データ格納領域３２２および一時情報用データ格納領域３２３に領域を確保する。
【００８６】
また、格納制御部３６は、トランザクション発行装置２から送信されたトランザクションに含まれるメソッドの引数が本トランザクション情報に記載されている場合、該メソッドを実行し、実行結果のプロパティに指定された指定子にもとづき実行結果を格納し、引数は台帳データ用データ格納領域３２２に格納する。格納制御部３６は、メソッドの引数が一時情報である旨の記載がある場合、該メソッドを実行し、実行結果のプロパティに指定された指定子にもとづき格納し、引数は一時情報用データ格納領域３２３に格納する。
【００８７】
また、格納制御部３６は、所定のタイミングで一時情報用データ格納領域３２３に格納されている一時情報を削除する。例えば、格納制御部３６は、削除メソッドが記載されたトランザクションがトランザクション発行装置２から発行された場合に該トランザクションに係る一時情報を削除することができる。
【００８８】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００８９】
１，５        情報処理システム
２            トランザクション発行装置
３，６        ブロック生成検証装置
４            通信ネットワーク
２１          トランザクション生成部
２２          電子署名付与部
２３          トランザクション通信部
３１          ブロック通信部
３２          格納部
３３          トランザクション検証部
３４          ブロック生成部
３５          ブロック検証部
３６          格納制御部
３７          キャッシュテーブル
３２１        台帳データ格納領域
３２２        台帳データ用データ格納領域
３２３        一時情報用データ格納領域
【図１】
2018112827.tif 000003
【図２】
2018112827.tif 000004
【図３】
2018112827.tif 000005
【図４】
2018112827.tif 000006
【図５】
2018112827.tif 000007
【図６】
2018112827.tif 000008
【図７】
2018112827.tif 000009
【図８】
2018112827.tif 000010
【図９】
2018112827.tif 000011
【図１０】
2018112827.tif 000012
【図１１】
2018112827.tif 000013
【図１２】
2018112827.tif 000014
【図１３】
2018112827.tif 000015
【図１４】
2018112827.tif 000016
【図１５】
2018112827.tif 000017