(57)【要約】【課題】ブロックチェーンに記録された各手続の間に要した所要時間の目安値を算出することができる情報処理システム等を提供する。【解決手段】情報処理システムは、相互に通信を行う複数の情報処理装置を備え、該複数の情報処理装置が複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理システムであって、第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部とを備える。【選択図】図１
2018101367.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信を行う複数の情報処理装置を備え、該複数の情報処理装置が複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理システムであって、
第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、
該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部と
を備える情報処理システム。
【請求項２】
前記算出部は、一の前記データブロックが生成される生成時間の平均値を前記差分値に乗算して前記所要時間を算出する
請求項１に記載の情報処理システム。
【請求項３】
前記第１及び第２手続のデータは、オンライン取引に関する取引情報である
請求項１又は請求項２に記載の情報処理システム。
【請求項４】
前記取引情報は、オンライン取引における手数料を含み、
前記算出部が算出した前記所要時間に応じて、手続を行った利用者に対して支払う前記手数料の配分を算出する配分算出部を備える
請求項３に記載の情報処理システム。
【請求項５】
前記格納部は、格納するデータ量に応じて、一の手続のデータを分割して複数のデータブロックに格納し、
前記算出部は、前記複数のデータブロックのうち、先頭のデータブロックに係るブロック番号に基づいて前記差分値を計算し、前記所要時間を算出する
請求項１〜請求項４のいずれか１項に記載の情報処理システム。
【請求項６】
ネットワーク上で保持される複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理方法であって、
第１及び第２手続夫々のデータを前記データブロックに順次格納し、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得し、
取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する
情報処理方法。
【請求項７】
複数のデータブロックを時系列的に関連付けたブロックチェーンを保持するネットワークに接続された情報処理装置に、
第１及び第２手続夫々のデータを前記データブロックに順次格納し、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得し、
取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する
処理を実行させるプログラム。
【請求項８】
複数のデータブロックを時系列的に関連付けたブロックチェーンを保持するネットワークに接続される情報処理装置であって、
第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、
該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部と
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、プログラム及び情報処理装置に関する。
【背景技術】
【０００２】
近年、Ｐ２Ｐ（Peer to Peer）に係る個々のピアにデータベースを分散して管理するブロックチェーン技術を応用した、様々なシステムが開発されている。ブロックチェーン技術は、仮想通貨の決済のみならず、例えば複数企業間での情報共有、社内における稟議手続等、ネットワーク上で行われる種々の手続処理について応用が検討されている。
【０００３】
一般的に、ブロックチェーンに記録される各手続の時刻は、各手続に関する入力処理を行う個々のピアにおいて計測された時刻を用いており、計測時刻が不正確である虞がある。また、個々のピアにおいて計測時刻が意図的に操作される虞がある。
【０００４】
例えば特許文献１では、Ｐ２Ｐ通信によりパケットデータの送受信を行うパケットネットワークにおいて、ピア間でのパケットデータの伝送遅延時間、及び各ピアでのパケットデータの滞留時間を計測する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１５−５３２３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に係る発明をブロックチェーン技術に適用した場合、ピアにおける偶発的な遅延時間しか計測することができない。また、ピアが処理する計算負荷が高まり、ブロックチェーン上の記録処理が遅延する虞がある。
【０００７】
一つの側面では、ブロックチェーンに記録された各手続の間に要した所要時間の目安値を算出することができる情報処理システム等を提供することにある。
【課題を解決するための手段】
【０００８】
一つの案では、情報処理システムは、相互に通信を行う複数の情報処理装置を備え、該複数の情報処理装置が複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理システムであって、第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部とを備える。
【発明の効果】
【０００９】
一つの側面では、ブロックチェーンに記録された各手続の間に要した所要時間の目安値を算出することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの一例を示す模式図である。
【図２】サーバの構成例を示すブロック図である。
【図３】取引ＤＢのレコードレイアウトの一例を示す説明図である。
【図４】手続記録処理の概要について説明するための説明図である。
【図５】ブロックチェーンの概要を説明するための説明図である。
【図６】所要時間算出処理の概要について説明するための説明図である。
【図７】手続記録処理の処理手順の一例を示すフローチャートである。
【図８】所要時間算出処理の処理手順の一例を示すフローチャートである。
【図９】実施の形態２に係る手数料配分処理を説明するための説明図である。
【図１０】実施の形態２に係る所要時間算出処理の処理手順の一例を示すフローチャートである。
【図１１】実施の形態３に係る所要時間算出処理について説明するための説明図である。
【図１２】実施の形態３に係る手続記録処理の処理手順の一例を示すフローチャートである。
【図１３】実施の形態３に係る所要時間算出処理の処理手順の一例を示すフローチャートである。
【図１４】上述した形態のサーバの動作を示す機能ブロック図である。
【図１５】実施の形態４に係るサーバのハードウェア群を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
本実施の形態では、複数のユーザ間で行われる手続処理をブロックチェーンにより管理する情報処理システムを一例として説明を行う。図１は、情報処理システムの一例を示す模式図である。情報処理システムは、情報処理装置１、１、１…を備える。各装置は、インターネット等のネットワークＮを介して通信接続されている。
【００１２】
情報処理装置１は、種々の情報処理を行う情報処理装置であり、例えばサーバコンピュータ、パーソナルコンピュータ等である。本実施の形態において情報処理装置１はサーバコンピュータであるものとし、以下ではサーバ１と読み替える。サーバ１は他のサーバ１、１、１…と相互にＰ２Ｐ通信を行い、ユーザが行う手続に関するデータを送受信する。すなわちサーバ１は、Ｐ２Ｐに係る通信システムのノード装置として機能する。なお、例えばサーバ１には、ユーザが操作するユーザ端末２が接続されている。
【００１３】
各サーバ１は、ネットワークＮ上で保持されるブロックチェーンにより、ユーザが行う手続のデータを管理する。ブロックチェーンは、複数のデータブロックを時系列的に関連付けた構造体である。個々のデータブロックは、複数のデータの集合であり、数十から数百のデータが格納される。なお、以下では簡潔のため、データブロックを単に「ブロック」と呼ぶ。各サーバ１は、システム内で送受信されるデータを検証し、検証したデータが正当である場合、当該データをブロックに順次格納してブロックチェーンに記録する。各サーバ１は、検証結果を他のサーバ１と共有することで、同一のブロックチェーンに係るデータを記憶する。
【００１４】
本実施の形態に係る情報処理システムは、オンライン取引における取引手続の履歴、すなわち取引情報を管理する取引管理システムとして適用することができる。より具体的には、情報処理システムは、証券取引における決済手続を管理する。この場合、情報処理システムを利用するユーザとして、証券取引に関与する銀行、証券会社、投資会社、取引の代理人等が考えられる。例えば国境を越えて取引を行うクロスボーダー取引において、従来、複数の関係者を介して決済を行う必要があるため、取引の約定があってから決済が完了するまで数日掛かっていた。しかし、後述するようにブロックチェーン技術を利用した場合、サーバ１、１、１…が短時間で自動的に取引情報の検証を行うため、取引期間の大幅短縮が可能となる。
【００１５】
図２は、サーバ１の構成例を示すブロック図である。サーバ１は、制御部１１、記憶部１２、通信部１３、大容量記憶装置１４を含む。
制御部１１はＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）等の演算処理装置を含み、記憶部１２に記憶されたプログラムＰを読み出して実行することにより、サーバ１に係る種々の情報処理、制御処理等を行う。なお、図２では制御部１１を単一のプロセッサとして図示してあるが、制御部１１はマルチプロセッサであってもよい。記憶部１２はＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ素子を含み、制御部１１が処理を実行するために必要なプログラムＰ又はデータ等を記憶している。また、記憶部１２は、制御部１１が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部１３は通信に関する処理を行うための処理回路等を含み、ネットワークＮを介して他のサーバ１、１、１…と情報の送受信を行う。
【００１６】
大容量記憶装置１４は、例えばハードディスク等を含む大容量の記憶装置である。大容量記憶装置１４は、取引ＤＢ１４１等を記憶している。取引ＤＢ１４１は、ブロックチェーンに係るデータを記憶している。なお、本実施の形態において記憶部１２及び大容量記憶装置１４は一体の記憶装置として構成されていてもよい。また、大容量記憶装置１４は複数の記憶装置により構成されていてもよい。また、大容量記憶装置１４はサーバ１に接続された外部記憶装置であってもよい。
また、本実施の形態においてサーバ１は上記の構成に限られず、例えば操作入力を受け付ける入力部、サーバ１に係る情報を表示する表示部等を含んでもよい。
【００１７】
図３は、取引ＤＢ１４１のレコードレイアウトの一例を示す説明図である。取引ＤＢ１４１は、ブロック番号列、トランザクションＩＤ列、送信元列、送信先列、金額列、取引内容列、ハッシュ値列を含む。ブロック番号列は、ブロックチェーンにおける各ブロックの時系列的な順序を示す番号を記憶している。トランザクションＩＤ列は、ブロック番号と対応付けて、ブロックに格納されている各取引情報（トランザクション）のＩＤを記憶している。送信元列は、トランザクションＩＤと対応付けて、各取引情報の送信元であるユーザのアカウント情報を記憶している。送信先列は、トランザクションＩＤと対応付けて、各取引情報の送信先であるユーザのアカウント情報を記憶している。金額列は、トランザクションＩＤと対応付けて、各取引手続に要する手数料の金額を記憶している。取引内容列は、トランザクションＩＤと対応付けて、各取引の内容、例えば取引額、取引銘柄、支払方法等の情報が記憶されている。多くのブロックチェーンは、ブロックチェーンの各ブロックには、任意の情報を書き込む取引の空き記憶領域を有する。例えばビットコイン（登録商標）であれば、ＯＰ＿ＲＥＴＵＲＮ領域と呼ばれる、任意の情報が書き込める記憶領域が取引情報に存在する。本実施の形態においてサーバ１は、空き記憶領域に取引内容を書き込む。ハッシュ値列は、ブロック番号と対応付けて、各ブロックに格納された取引情報をハッシュ化したハッシュ値を記憶している。
【００１８】
図４は、手続記録処理の概要について説明するための説明図である。以下では情報処理システムが行う処理の概要について説明する。なお、以下では説明の便宜上、サーバ１の処理主体は制御部１１であるものとして説明する。
サーバ１、１、１…は、ユーザ間で行われる取引手続の正当性を各々検証し、検証した取引手続が正当である場合、ブロックチェーンに記録する処理を行う。ここで、例えば図４に示すように、「アカウントＰ」のユーザと「アカウントＱ」のユーザとの間で、ある手続Ａが行われる場合を考える。この場合、取引情報の送信元であるサーバ１は、ユーザ端末２から手続Ａに関する取引情報を取得し、Ｐ２Ｐ通信により他のサーバ１、１、１…に送信する。この場合、例えば送信元のサーバ１は、事前に取り決められている公開鍵を用いてユーザの電子署名を生成し、取引情報に付して送信する。
【００１９】
各サーバ１の制御部１１は、当該手続Ａに係る取引情報の正当性を検証する。例えば制御部１１は、取引ＤＢ１４１を参照し、新規の手続Ａに係る取引情報と、ブロックチェーンに記録済みの取引情報との整合性を検証する。例えば制御部１１は、送信元のユーザの「アカウントＰ」に係る取引履歴をブロックチェーンから参照し、取引金額が当該ユーザの資産を超過していないか等の条件で検証を行う。また、例えば制御部１１は、手続Ａに係る取引情報に付された電子署名を、当該ユーザが保持している秘密鍵を用いて複号することにより、「アカウントＰ」に係るユーザによる真正な電子署名であるか否か、すなわち不正アクセスでないか等の条件で検証を行う。手続Ａに係る取引情報が正当であると判定した場合、制御部１１は、当該取引情報を最新のブロックに格納する。取引情報が正当でないと判定した場合、制御部１１は、当該取引情報を破棄する。情報処理システムを構成する個々のサーバ１、１、１…は、各々が手続Ａに係る取引情報の正当性を検証する。すなわちサーバ１、１、１…は、ブロックチェーンの更新作業に参加して検証を行う検証者として機能する。
【００２０】
サーバ１の制御部１１は、ネットワークＮに出力される新規の取引情報を順次取得して検証を行い、検証結果に応じてブロックに順次格納していく。上述の如く、一のブロックには数十から数百の取引情報が格納可能である。制御部１１は、数十から数百の所定数に達するまで上記の処理を継続する。なお、一のブロックに格納可能な上記の取引情報の数は例示であり、数十から数百の数に限定されるものではない。例えば制御部１１は、一のブロックに一の取引情報のみを格納するようにしてもよい。
【００２１】
検証済みの取引情報が蓄積された後、制御部１１は他のサーバ１、１、１…との間で、最新のブロックを生成する権限をいずれかのサーバ１に定める合意形成処理を行う。上述の如く、サーバ１、１、１…は個々に検証処理を行うため、個々のサーバ１による検証結果を整合するには時間が掛かる。また、不正者がアクセスしてブロックチェーンのデータを書き換える虞もある。そこで、サーバ１、１、１…は、最新のブロックを生成するサーバ１を、信頼性の高い一のサーバ１に決定する処理を行う。
【００２２】
図５は、ブロックチェーンの概要を説明するための説明図である。例えばビットコインに係るブロックチェーン技術を本システムに応用した場合、サーバ１、１、１…は、ＰＯＷ（Proof of Work）と呼ばれる演算処理を実行し、ブロックチェーンを更新するサーバ１を決定する。ＰＯＷは、新たに生成するブロックの一つ前のブロックに予め格納されたハッシュ値から、ある正解値を探索する演算処理である。サーバ１の制御部１１は、新たにブロックを生成する場合、当該ブロックの一つ前のブロックに格納されたハッシュ値及び取引情報をハッシュ化したハッシュ値を生成し、最新のブロックに格納する。例えば図５に示すように、ブロック番号「３」のブロックを生成する場合、制御部１１は、ブロック番号「２」のブロックに格納されているハッシュ値と、複数の取引情報とをハッシュ化してハッシュ値を生成し、ブロック番号「３」のブロックに格納する。
【００２３】
例えばビットコインの例では、制御部１１は演算処理の難易度を上げる目的で、取引情報のほかにナンス値をヘッダに挿入してハッシュ値を生成する。ナンス値は、ハッシュ値のヘッダにゼロが所定数連続するような値であり、ナンス値に係るゼロの数を適切な数に設計することで、演算処理の処理負荷が調整される。
【００２４】
各サーバ１の制御部１１は、最新のブロックを生成する場合、前のブロックに含まれる当該ハッシュ値から正解値（ビットコインの例ではナンス値）を探索するという探索問題を解く。例えば図５に示すように、ブロック番号「４」のブロックを新たに生成する場合、各サーバ１の制御部１１は、ブロック番号「３」のブロックに格納されているハッシュ値から正解値を探索する。１回の演算処理で正解値を探し当てる確率は低く、例えばビットコイン等の仮想通貨に係るブロックチェーン技術を応用した場合、平均して１０分程度の時間が掛かる。各サーバ１は一斉に探索問題の演算処理を実行し、正解値を探索する。そして、最も早く正解値を探し当てたサーバ１に、最新のブロックを生成する権限が与えられる。不正者がブロックチェーンのデータを書き換えようとする場合、善意の検証者（サーバ１）全ての演算処理速度を上回る速度でブロックを生成する必要があり、実際に不正な書き換えを行うことは極めて難しくなっている。
【００２５】
探索に成功した場合、サーバ１の制御部１１は、検証した取引情報を格納した最新のブロックを生成し、当該ブロックに係るデータを他のサーバ１、１、１…に通知する。この場合、上述の如く制御部１１は、一つ前のブロックに格納されているハッシュ値及び取引情報からハッシュ値を生成し、当該ハッシュ値を新たなブロックに格納した上で各サーバ１に通知する。例えば図５に示すように、制御部１１は、ブロック番号「３」のブロックに格納されているハッシュ値及び取引情報をハッシュ化したハッシュ値を生成し、新たなブロック番号「４」のブロックに格納して他のサーバ１、１、１…に通知する。新たなブロックに格納されたハッシュ値は、一つ前のブロックのハッシュ値を含むことから、ブロックチェーンを構成する各ブロックは時系列的に関連付けられている。他のサーバ１、１、１…は、通知されたブロックのデータの正当性を確認した後、取引ＤＢ１４１に記憶する。これにより、各サーバ１、１、１…の取引ＤＢ１４１には、同一のブロックチェーンに係るデータが複製されて記憶される。
【００２６】
なお、探索に成功したサーバ１の管理者には、探索に成功した報酬が与えられる。すなわち、探索に成功したサーバ１の管理者に、当該ブロックに格納されている各取引の手数料が支払われる。これにより、管理者にはサーバ１という計算資源を投入するインセンティブが与えられる。
【００２７】
なお、上記ではブロックチェーンの更新権限を決定する手法としてＰＯＷを用いたが、本実施の形態はこれに限定されるものではなく、例えばＰＯＩ（Proof of Importance）、ＰＯＳ（Proof of Stake）等を用いてもよい。
また、上記ではビットコイン技術を応用したシステムについて説明したが、本実施の形態はこれに限定されるものではない。例えばビットコイン以外に、イーサリアム（Ethereum）、ハイパーレジャー・ファブリック（Hyperledger Fabric）等に係るブロックチェーン技術を応用してもよい。これに応じて、サーバ１、１、１…が実行する合意形成処理のアルゴリズムも上記とは異なるものとなる。すなわち、上記で説明したブロックチェーンの生成処理は一例であって、サーバ１は複数のデータブロックを時系列的に関連付けたブロックチェーンを生成することができればよく、ブロックチェーンを生成する処理内容は特に限定されない。
【００２８】
図６は、所要時間算出処理の概要について説明するための説明図である。上述の記録処理により、サーバ１の制御部１１は、複数のブロックが時系列的に繋げられたブロックチェーンを保持することになり、各ブロックには個々の取引情報が格納される。図６に示すブロックチェーンでは、ブロック番号「２」のブロックに手続Ａが、ブロック番号「４」のブロックに手続Ｂが格納されている。手続Ａは、「アカウントＰ」のユーザから「アカウントＱ」のユーザに対して行われた第１の取引手続（以下、第１手続Ａという）である。また、手続Ｂは、「アカウントＱ」のユーザから「アカウントＲ」のユーザに対して行われた第２の取引手続（以下、第２手続Ｂという）である。
【００２９】
ここで、第１手続Ａと第２手続Ｂとは一連の取引手続であり、「アカウントＰ」から送金がなされ、「アカウントＱ」を介して「アカウントＲ」に入金されるものとする。すなわち、「アカウントＱ」のユーザは「アカウントＰ」のユーザから第１手続Ａに係る取引情報を受け取り、入金内容を確認した後、「アカウントＲ」のユーザに対して第２手続Ｂに係る取引情報を受け渡す。本実施の形態においてサーバ１は、「アカウントＱ」のユーザが第１手続Ａに係る取引情報を受け取ってから第２手続Ｂを行うまでに要した、人為的に必要な所要時間を算出する処理を行う。
【００３０】
一般的に、各手続に係る手続時刻を把握するには、ユーザ端末２において各手続に係る取引情報にタイムスタンプを付し、当該タイムスタンプを参照して時刻を割り出す。しかしながら、既に述べたように、ユーザ端末２において誤った、又は操作されたタイムスタンプが付される虞がある。そこで本実施の形態では、第１手続Ａ及び第２手続Ｂの間の所要時間を、第１手続Ａ及び第２手続Ｂの取引情報が格納された各ブロックのブロック番号から割り出す。
【００３１】
例えば制御部１１は、ブロック生成時に、又はユーザ端末２から所定の出力要求を受け付けた場合等に、所要時間の算出処理を実行する。具体的に制御部１１は、取引ＤＢ１４１（ブロックチェーン）から、第１手続Ａ及び第２手続Ｂの取引情報が夫々格納された各ブロックのブロック番号を取得する。なお、例えば制御部１１は、各取引情報の空き記憶領域に関連性を持たせるための情報を書き込んでおくなどして、第１手続Ａ及び第２手続Ｂが一連の取引であることを識別する。制御部１１は、取得した第１手続Ａ及び第２手続Ｂのブロック番号の差分値から、所要時間を算出する。図６に示す例の場合、制御部１１は、第１手続Ａのブロック番号「２」と第２手続Ｂのブロック番号「４」とから、差分値４−２＝２を計算する。
【００３２】
例えば制御部１１は、当該差分値に、一ブロックを生成する生成時間の平均値を乗算する。上記のように、サーバ１がブロックを生成する際、合意形成のために所定の時間が掛かる。当該生成時間の平均値は、例えばビットコインの場合は１０分間である。制御部１１は、ブロック番号の差分値に各ブロックの生成時間の平均値を乗算することで、第１手続Ａのブロックが生成されてから第２手続Ｂのブロックが生成されるまでの時間、すなわち第１手続Ａから第２手続Ｂまでの所要時間を算出する。以上より、「アカウントＱ」のユーザが第１手続Ａに係る取引情報を受け取ってから第２手続Ｂを行うまでの時間の目安値を割り出すことができる。
【００３３】
なお、上記では一ブロックの生成時間の平均値を１０分間として説明したが、本実施の形態はこれに限定されるものではない。特に実用上は、生成時間の平均値は１０分間よりも短いことが好ましい。この場合、例えばサーバ１、１、１…は、生成時間の平均値が任意の値となるように、生成時間の平均値について再設定を受け付けてもよい。例えばサーバ１、１、１…は、ネットワークＮを介してプログラムＰをアップデートし、ブロック生成処理の処理内容を変更する。具体的にサーバ１、１、１…は、探索問題の演算処理に係る処理負荷を変更する。この場合、サーバ１は正解値を所望のスケールに設計することで探索問題の難易度を修正し、処理負荷を変更することができる。これにより、サーバ１、１、１…が合意を形成するために費やす時間、すなわちブロックの生成時間を再設定することができる。
【００３４】
図７は、手続記録処理の処理手順の一例を示すフローチャートである。図７に基づき、情報処理システムが実行する手続記録処理の処理内容について説明する。
各サーバ１の制御部１１は、他のサーバ１、１、１…との間でＰ２Ｐ通信を行い、新規の取引情報を取得する（ステップＳ１１）。制御部１１は取引ＤＢ１４１を参照し、取得した取引情報の正当性を検証する処理を実行する（ステップＳ１２）。例えば制御部１１は、ブロックチェーンに記録済みの取引情報と新規の取引情報とが整合するか否か、新規の取引情報に適正な電子署名が付されているか否か等を判定する。制御部１１は、検証の結果、新規の取引情報が正当であるか否かを判定する（ステップＳ１３）。正当であると判定した場合（Ｓ１３：ＹＥＳ）、制御部１１は、新規の取引情報をブロックに格納する（ステップＳ１４）。正当でないと判定した場合（Ｓ１３：ＮＯ）、制御部１１は、取引情報を破棄する（ステップＳ１５）。
【００３５】
ステップＳ１４又はＳ１５の処理を実行した後、制御部１１は、現在のブロックに格納した取引情報が所定数に達したか否かを判定する（ステップＳ１６）。所定数に達していないと判定した場合（Ｓ１６：ＮＯ）、制御部１１は処理をステップＳ１１に戻す。これにより、制御部１１は新たに取引情報を取得して正当性を検証し、ブロックに順次格納していく。
【００３６】
所定数に達したと判定した場合（Ｓ１６：ＹＥＳ）、制御部１１は、前のブロックに格納されているハッシュ値から正解値を探索する演算処理を実行する（ステップＳ１７）。探索に成功した場合、制御部１１は新たなハッシュ値を格納した上で、現在のブロックに係るデータを他のサーバ１、１、１…に通知する（ステップＳ１８）。他のサーバ１、１、１…は、通知されたブロックに係るデータを取引ＤＢ１４１に記憶することで、ブロックチェーンを更新する。制御部１１は次のブロックに移行し（ステップＳ１９）、処理をステップＳ１１に戻す。
【００３７】
図８は、所要時間算出処理の処理手順の一例を示すフローチャートである。図８に基づいて、手続間の所要時間を算出する処理内容について説明する。なお、サーバ１は以下の処理を、図７で説明した手続記録処理の実行時に行ってもよいし、又は定期的に行ってもよい。
サーバ１の制御部１１は、第１及び第２手続に係る取引情報が格納されているブロックのブロック番号を取引ＤＢ１４１から取得する（ステップＳ３１）。制御部１１は、取得した第１及び第２手続夫々のブロック番号の差分値を計算する（ステップＳ３２）。制御部１１は、当該差分値に、一ブロックの生成時間の平均値を乗算し、第１及び第２手続の間に要した所要時間を算出する（ステップＳ３３）。制御部１１は、一連の処理を終了する。
【００３８】
なお、上記ではオンライン取引における手続処理を一例として説明したが、本実施の形態はこれに限定されるものではない。例えば本実施の形態に係る情報処理システムは、社内において複数の社員が事務手続を受け渡すためのワークフローシステムとして適用してもよい。すなわち情報処理システムは、手続に関するデータをブロックチェーン上で管理することができればよく、手続の内容は特に限定されない。
【００３９】
また、上記では、検証者として機能するサーバ１が所要時間の算出を行ったが、本実施の形態はこれに限定されるものではない。例えば検証者として機能しないユーザ端末２がブロックチェーンに係るデータを参照してブロック番号を取得し、所要時間を算出してもよい。このように、所要時間を算出するハードウェア上の処理主体は限定されない。
【００４０】
以上より、本実施の形態１によれば、ブロックチェーンに記録された各手続の間に要した所要時間の目安値を算出することができる。
【００４１】
また、本実施の形態１によれば、ブロック番号の差分値に、一ブロック当たりの生成時間の平均値を乗算することで、より適切に所要時間の目安値を算出することができる。
【００４２】
また、本実施の形態１によれば、オンライン取引に係る取引管理システムに適用することで、取引の決済期間を大幅に短縮し、かつ、決済手続に要した所要時間の目安値を割り出すことができる。
【００４３】
（実施の形態２）
本実施の形態では、ユーザが手続を行う所要時間に応じて、ユーザに対してインセンティブを与える形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図９は、実施の形態２に係る手数料配分処理を説明するための説明図である。図９では、「アカウントＰ」のユーザが「アカウントＱ」のユーザに対して行った手続Ａ、「アカウントＱ」のユーザが「アカウントＲ」のユーザに対して行った手続Ｂ、「アカウントＲ」のユーザが「アカウントＳ」のユーザに対して行った手続Ｃの取引情報が夫々、ブロック番号「２」、「４」、「３４」のブロックに格納されている様子を図示している。サーバ１の制御部１１は、実施の形態１と同じく、ブロック番号の差分値に基づいて各手続の間の所要時間を算出する。例えば手続Ａと手続Ｂとの間の所要時間を考えた場合、制御部１１は、ブロック番号の差分値４−２＝２から、所要時間２×１０＝２０分間を算出する。
【００４４】
上述の如く、情報処理システムはマイニング（合意形成処理の一種）のインセンティブとして、探索問題を解いたサーバ１の管理者（マイナー）に対し、手数料を支払う。そして本実施の形態に係る情報処理システムは、マイナーに対してだけでなく、各手続を行うユーザに対しても、手続を迅速に行うインセンティブを与えるべく、手数料を配分する。
【００４５】
具体的に制御部１１は、算出した所要時間に応じて、各手続を行ったユーザに対して支払う手数料の配分を算出する。例えば手続Ｂを行った「アカウントＱ」のユーザについて考える。上述の如く、手続Ａと手続Ｂとの間の所要時間は２０分間であることから、当該ユーザは手続Ｂに着手可能となってから完了するまでに２０分間を要したことになる。サーバ１の制御部１１は、当該所要時間が短いほど金額が大きくなるように、手数料の配分を算出する。例えば制御部１１は、基準として設定されている設定時間を、算出した所要時間で除算し、手続を行ったユーザに対して割り与える手数料の割合を算出する。制御部１１は、算出した割合を手数料の金額に乗算し、ユーザに対して支払う手数料の配分を算出する。なお、制御部１１は、当該配分を手数料全額から差し引いた残余額をマイナーに対して支払う金額とする。
【００４６】
例えば制御部１１は、各手続について所要時間を算出する毎に上記の配分算出処理を実行し、各手続を行ったユーザに対して支払う手数料の配分を決定していく。例えば図９に示すように、手続Ｃを行った「アカウントＲ」のユーザは３００分を要していることから、制御部１１は「アカウントＱ」のユーザよりも手数料の配分を低く見積もって計算する。制御部１１は、算出した手数料の配分に関する情報を取引情報に書き込み、ブロックに格納する。
【００４７】
なお、上記でサーバ１は、個別の手続Ａ、Ｂ、Ｃ…の手数料について、ユーザとマイナーとの配分を定めることとしたが、本実施の形態はこれに限定されるものではない。例えばサーバ１は、一連の取引に係る手続Ａ、Ｂ、Ｃ…について、ユーザに割り与える手数料の割合を定めておき、所要時間が最も短い手続を行ったユーザに総取りさせる形で、手続Ａ、Ｂ、Ｃ…の手数料の一部を一のユーザに支払うこととしてもよい。また、例えば制御部１１は、手続に要した所要時間が設定時間よりも長いユーザには手数料を配分せず、所要時間が設定時間よりも短いユーザには手数料を配分することとしてもよい。このように、サーバ１は所要時間に応じて手数料の配分を算出することができればよく、計算方法は特に限定されない。
【００４８】
図１０は、実施の形態２に係る所要時間算出処理の処理手順の一例を示すフローチャートである。第１及び第２手続の間の所要時間を算出する処理を実行した後（ステップＳ３３）、サーバ１の制御部１１は、以下の処理を実行する。
制御部１１は、算出した所要時間に応じて、取引手続を行ったユーザに対して支払う手数料の配分を算出する（ステップＳ２０１）。具体的に制御部１１は、所要時間が短いほど金額が大きくなるように、手数料の配分を算出する。例えば制御部１１は、基準として設定されている設定時間を、ステップＳ３３で算出した所要時間により除算し、ユーザに対して割り与える手数料の割合を算出する。制御部１１は、算出した割合を手数料の金額に乗算し、手続きを行ったユーザに対して支払う配分を算出する。また、制御部１１は、ユーザに対して割り与えた配分を手数料から差し引き、残余額をマイナーに対する支払額とする。制御部１１は、一連の処理を終了する。
【００４９】
以上より、本実施の形態２によれば、手続に要した所要時間に応じてユーザに支払を行うことで、ユーザには手続を迅速に行うインセンティブが与えられ、結果として取引全体を速やかに行うことができる。
【００５０】
（実施の形態３）
本実施の形態では、一の手続に関するデータを複数のブロックに分割して管理する形態について述べる。
図１１は、実施の形態３に係る所要時間算出処理について説明するための説明図である。図１１に基づき、本実施の形態においてサーバ１が実行する処理の概要について説明する。実施の形態１と同様に、サーバ１の制御部１１はブロックチェーン上のデータを参照し、ネットワークＮを介して取得する取引情報の正当性を検証する。そして制御部１１は、取引情報が正当であると判定した場合、取引情報をブロックに格納する。
【００５１】
上述の如く、一のブロックには数十から数百の取引情報を格納可能である。しかし一般的に、ブロックに一の取引情報として格納可能なデータ量は、一定の規定値に制限されている場合が多い。例えばビットコインに係るブロックチェーン技術では、各取引情報の空き記憶領域に書き込み可能なデータ量は８０バイトに制限されている。取引情報が当該バイト数を超える場合、一の取引情報としてブロックに格納することができない。
【００５２】
上記の場合、サーバ１の制御部１１は、一の取引情報を複数に分割してブロックに格納することができる。例えば図１１に示すように、「取引Ａ」に係る取引情報のデータ量が規定値以上である場合、制御部１１は、「取引Ａ」に係る取引情報を複数のデータに分割してブロックに格納する。
【００５３】
この場合、一の取引情報を分割した各データが、複数のブロックに跨って格納される可能性がある。例えば図１１に示すように、制御部１１が「取引Ａ」のデータを３つに分割した場合を考える。この場合、制御部１１は各データをブロック番号「２」のブロックに順次格納する。しかし、ブロック番号「２」のブロックに格納した取引情報が所定数に達した場合、制御部１１は、「取引Ａ」に係るデータの一部を繰り越し、新たなブロック番号「３」のブロックに格納する。
【００５４】
このように、一の取引情報を分割して複数のブロックに格納した場合、制御部１１は、当該複数のブロックのうち、ブロックチェーンにおいて先頭に位置するブロックのブロック番号を基準として各手続間の所要時間を算出する。図１１に示す例では、制御部１１は、「取引Ａ」のデータが格納されている各ブロックのブロック番号「２」、「３」のうち、先頭の「取引Ａ−１」に係るデータが格納されているブロック番号「２」を基準として手続間の所要時間を算出する。「取引Ａ」の手続と「取引Ｂ」の手続との間の所要時間を算出する場合、制御部１１は、「取引Ｂ」のデータが格納されているブロックの番号「１０」と、「取引Ａ」のデータが格納されている先頭ブロックの番号「２」とから、差分値「８」を計算する。制御部１１は、当該差分値「８」から所要時間「８０分」を算出する。一の取引情報が分割されて複数のブロックに格納されている場合、ブロックチェーン上で先頭に位置するブロックが生成された時点の方が、その他のブロックが生成された時点と比較して、実際の手続時点に近い。従って、サーバ１は、先頭ブロックのブロック番号を基準とすることで、手続間で要した所要時間の目安値を適切に割り出すことができる。
【００５５】
図１２は、実施の形態３に係る手続記録処理の処理手順の一例を示すフローチャートである。図１２に基づき、実施の形態３における手続記録処理の処理内容について説明する。
各サーバ１の制御部１１は、後述するステップＳ３０７の処理により一の手続に係る取引情報を複数に分割したデータであって、ブロックチェーンに未記録となっている繰り越しデータがあるか否かを判定する（ステップＳ３０１）。繰り越しデータがあると判定した場合（Ｓ３０１：ＹＥＳ）、制御部１１は処理をステップＳ３０８に移行する。
【００５６】
繰り越しデータがないと判定した場合（Ｓ３０１：ＮＯ）、制御部１１は他のサーバ１、１、１…との間でＰ２Ｐ通信を行い、新規の取引情報を取得する（ステップＳ３０２）。制御部１１は取引ＤＢ１４１を参照し、取得した取引情報の正当性を検証する処理を実行する（ステップＳ３０３）。制御部１１は、検証の結果、新規の取引情報が正当であるか否かを判定する（ステップＳ３０４）。正当でないと判定した場合（Ｓ３０４：ＮＯ）、制御部１１は取引情報を破棄し（ステップＳ３０５）、処理をステップＳ３０９に移行する。
【００５７】
正当であると判定した場合（Ｓ３０４：ＹＥＳ）、制御部１１は、新規の取引情報に係るデータ量が所定値以上であるか否かを判定する（ステップＳ３０６）。具体的に制御部１１は、取引内容として書き込むべきデータ量が、一の取引情報として取引の空き記憶領域に書き込み可能なデータ量を上回っているか否かを判定する。所定値以上でないと判定した場合（Ｓ３０６：ＮＯ）、制御部１１は処理をステップＳ３０８に移行する。
【００５８】
所定値以上であると判定した場合（Ｓ３０６：ＹＥＳ）、制御部１１は、取引情報を複数のデータに分割する（ステップＳ３０７）。制御部１１は、取引情報をブロックに格納する（ステップＳ３０８）。ステップＳ３０７で取引情報を分割した場合、制御部１１は、分割した一のデータを格納する。
【００５９】
ステップＳ３０５又はＳ３０８の処理を実行した後、制御部１１は、現在のブロックに格納した取引情報が所定数に達したか否かを判定する（ステップＳ３０９）。所定数に達していないと判定した場合（Ｓ３０９：ＮＯ）、制御部１１は処理をステップＳ３０１に戻す。分割した複数のデータのうち、繰り越したデータがある場合、制御部１１は、繰り越したデータを順次ブロックに格納していくこととなる。
【００６０】
所定数に達したと判定した場合（Ｓ３０９：ＹＥＳ）、制御部１１は、前のブロックに付されたハッシュ値から正解値を探索する演算処理を実行する（ステップＳ３１０）。探索に成功した場合、制御部１１は新たなハッシュ値を付加した上で、現在のブロックに係るデータを他のサーバ１、１、１…に通知する（ステップＳ３１１）。制御部１１は次のブロックに移行し（ステップＳ３１２）、処理をステップＳ３０１に戻す。これにより、もともと一の取引情報から分割されたデータがブロックチェーンに未記録である場合、制御部１１は、未記録のデータを次のブロックに格納する。以上より、制御部１１はデータ量に応じて取引情報を分割し、複数のブロックに格納する。
【００６１】
図１３は、実施の形態３に係る所要時間算出処理の処理手順の一例を示すフローチャートである。図１３に基づき、実施の形態３に係る所要時間算出処理の処理内容について説明する。
サーバ１の制御部１１は、取引ＤＢ１４１から、第１及び第２手続の取引情報が格納された各ブロックのブロック番号を取得する（ステップＳ３２１）。ステップＳ３０１において、第１又は第２手続の取引情報が複数のブロックに分割して記憶されている場合、制御部１１は、ブロックチェーンにおいて先頭に位置するブロックのブロック番号を読み出す。制御部１１は、先頭ブロックのブロック番号に基づいて、第１及び第２手続のブロック番号の差分値を計算する（ステップＳ３２２）。制御部１１は、計算した差分値に一ブロック当たりの生成時間の平均値を乗算し、第１及び第２手続の間の所要時間を算出する（ステップＳ３２３）。制御部１１は、一連の処理を終了する。
【００６２】
以上より、本実施の形態３によれば、ブロックに格納するデータ量が大きく、複数のブロックに格納された場合であっても、手続間の所要時間の目安値を割り出すことができる。
【００６３】
（実施の形態４）
図１４は、上述した形態のサーバ１の動作を示す機能ブロック図である。制御部１１がプログラムＰを実行することにより、サーバ１は以下のように動作する。格納部１０１は、第１及び第２手続夫々のデータを前記データブロックに順次格納する。取得部１０２は、前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する。算出部１０３は、該取得部１０２が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する。
【００６４】
図１５は、実施の形態４に係るサーバ１のハードウェア群を示すブロック図である。読取部１５はディスクドライブ、メモリーカードスロット等であり、ＣＤ（Compact Disk）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、メモリーカード、又はＵＳＢ（Universal Serial Bus）等の可搬型記憶媒体１ａを読み取る。制御部１１はプログラムＰを可搬型記憶媒体１ａより読み取り、記憶部１２に記憶しても良い。また、制御部１１はネットワークＮを介して他のコンピュータからプログラムＰをダウンロードし、記憶部１２に記憶しても良い。さらにまた制御部１１は、半導体メモリ１ｂからプログラムＰを読み込んでも良い。
【００６５】
本実施の形態４は以上の如きであり、その他は実施の形態１から３と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【００６６】
以上の実施の形態１から実施の形態４を含む実施形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）
相互に通信を行う複数の情報処理装置を備え、該複数の情報処理装置が複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理システムであって、
第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、
該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部と
を備える情報処理システム。
（付記２）
前記算出部は、一の前記データブロックが生成される生成時間の平均値を前記差分値に乗算して前記所要時間を算出する
付記１に記載の情報処理システム。
（付記３）
前記第１及び第２手続のデータは、オンライン取引に関する取引情報である
付記１又は付記２に記載の情報処理システム。
（付記４）
前記取引情報は、オンライン取引における手数料を含み、
前記算出部が算出した前記所要時間に応じて、手続を行った利用者に対して支払う前記手数料の配分を算出する配分算出部を備える
付記３に記載の情報処理システム。
（付記５）
前記配分算出部は、前記所要時間が短いほど金額が大きくなるように、前記手数料の配分を算出する
付記４に記載の情報処理システム。
（付記６）
前記格納部は、格納するデータ量に応じて、一の手続のデータを分割して複数のデータブロックに格納し、
前記算出部は、前記複数のデータブロックのうち、先頭のデータブロックに係るブロック番号に基づいて前記差分値を計算し、前記所要時間を算出する
付記１〜付記５のいずれか一つに記載の情報処理システム。
（付記７）
ネットワーク上で保持される複数のデータブロックを時系列的に関連付けたブロックチェーンを管理する情報処理方法であって、
第１及び第２手続夫々のデータを前記データブロックに順次格納し、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得し、
取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する
情報処理方法。
（付記８）
複数のデータブロックを時系列的に関連付けたブロックチェーンを保持するネットワークに接続された情報処理装置に、
第１及び第２手続夫々のデータを前記データブロックに順次格納し、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得し、
取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する
処理を実行させるプログラム。
（付記９）
複数のデータブロックを時系列的に関連付けたブロックチェーンを保持するネットワークに接続される情報処理装置であって、
第１及び第２手続夫々のデータを前記データブロックに順次格納する格納部と、
前記ブロックチェーンから、前記第１及び第２手続夫々のデータが格納された前記データブロック夫々の時系列的な順序を示すブロック番号を取得する取得部と、
該取得部が取得した前記第１及び第２手続夫々のブロック番号の差分値に基づき、前記第１及び第２手続の間の所要時間を算出する算出部と
を備える情報処理装置。
【００６８】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６９】
１  サーバ（情報処理装置）
１１  制御部
１２  記憶部
Ｐ  プログラム
１３  通信部
１４  大容量記憶装置
１４１  取引ＤＢ
２  ユーザ端末
【図１】
2018101367.tif 000003
【図２】
2018101367.tif 000004
【図３】
2018101367.tif 000005
【図４】
2018101367.tif 000006
【図５】
2018101367.tif 000007
【図６】
2018101367.tif 000008
【図７】
2018101367.tif 000009
【図８】
2018101367.tif 000010
【図９】
2018101367.tif 000011
【図１０】
2018101367.tif 000012
【図１１】
2018101367.tif 000013
【図１２】
2018101367.tif 000014
【図１３】
2018101367.tif 000015
【図１４】
2018101367.tif 000016
【図１５】
2018101367.tif 000017