(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】制御方法、制御プログラム、および情報処理装置
(51)【国際特許分類】
G06Q 20/22 20120101AFI20240730BHJP
【FI】
G06Q20/22 300
(21)【出願番号】P 2023515942
(86)(22)【出願日】2021-04-20
(86)【国際出願番号】 JP2021016106
(87)【国際公開番号】W WO2022224365
(87)【国際公開日】2022-10-27
【審査請求日】2023-05-29
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】藤本 真吾
(72)【発明者】
【氏名】鎌倉 健
【審査官】原 忠
(56)【参考文献】
【文献】特開2020-047104(JP,A)
【文献】中国特許出願公開第112435030(CN,A)
【文献】国際公開第2020/255382(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
処理をコンピュータが実行することを特徴とする制御方法。
【請求項2】
前記第1のブロックチェーンネットワークは、さらに、前記一連の取引のそれぞれの状態に対応する状態データの元データを管理し、
前記一連の取引の開始時に、前記一連の取引に関するパラメータを、前記一連の取引に関するユーザ端末から取得し、
前記第1のブロックチェーンネットワークから、前記一連の取引の初期の状態に対応する状態データの元データを取得し、取得した前記元データに、取得した前記パラメータを組み合わせて作成される、前記初期の状態に対応する状態データの記録要求を、前記第1のブロックチェーンネットワークに送信する、
処理を前記コンピュータが実行することを特徴とする請求項1に記載の制御方法。
【請求項3】
前記第1のブロックチェーンネットワークは、さらに、前記一連の取引のそれぞれの状態に対応する状態データの元データを管理し、
前記確定する処理は、
取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定し、前記第1の分散台帳に記録された、前記現在の状態に対応する状態データを、前記現在の状態の状態遷移先に対応する状態データに更新する、ことを特徴とする請求項1または2に記載の制御方法。
【請求項4】
前記現在の状態に対応する取引の実行指示を送信した際、前記現在の状態に対応する取引の実行結果の待ち受け状態に移行し、
前記待ち受け状態において、前記現在の状態に対応する取引の実行結果を受け付ける、
処理を前記コンピュータが実行し、
前記確定する処理は、
取得した前記状態データに規定された前記条件と、受け付けた前記実行結果とに基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、ことを特徴とする請求項1~3のいずれか一つに記載の制御方法。
【請求項5】
前記待ち受け状態において、前記現在の状態に対応する取引の実行結果を受け付けずに一定時間が経過したことを検出する、
処理を前記コンピュータが実行し、
前記確定する処理は、
前記一定時間が経過したことを検出した場合、取得した前記状態データに規定された前記条件と、前記一定時間が経過したことを検出した結果とに基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、ことを特徴とする請求項4に記載の制御方法。
【請求項6】
前記第1のブロックチェーンネットワークは、さらに、前記一連の取引を識別する識別情報に、前記現在の状態に対応する状態データを識別する識別情報を対応付けて管理し、
前記状態データを取得する処理は、
前記一連の取引を識別する識別情報に基づいて、前記第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得する、ことを特徴とする請求項1~5のいずれか一つに記載の制御方法。
【請求項7】
複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項8】
複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御プログラム、および情報処理装置に関する。
【背景技術】
【0002】
従来、それぞれユーザの資産を管理する複数のブロックチェーンネットワークがあり、異なるブロックチェーンネットワークで管理する資産を交換するような、複数のブロックチェーンネットワークを介した一連の取引を実行することが望まれる場合がある。これに対し、中継サーバが、複数のブロックチェーンネットワークを連携させて、中央集権的に一連の取引を実行させるシステムが考えられる。中継サーバは、例えば、実行させた取引を識別する取引IDと、タイムスタンプとを対応付けて記録することにより、実行させた取引の証跡を残しながら、一連の取引を実行させることが考えられる。
【0003】
先行技術としては、例えば、スマートコントラクトが、電子署名を、支払金額とトランザクションの雛形とを用いて検証するものがある。また、例えば、スタンバイ保証リソースの生成および処理のためのブロックチェーンネットワークを生成し、取引の1つ以上の関係者を識別してスタンバイ保証リソースの生成および処理に関連付けられた分散台帳へのアクセスを許可する技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-047104号公報
【文献】米国特許出願公開第2019/0251555号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、実行された取引の透明性または中立性を確保することが難しい。例えば、中継サーバが、中央集権的に一連の取引を実行させるため、実行されたそれぞれの取引の透明性または中立性を確保することができない。
【0006】
1つの側面では、本発明は、取引の透明性または中立性を確保することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する制御方法、制御プログラム、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、取引の透明性または中立性を確保することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。
【
図2】
図2は、取引制御システム200の一例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、連携専用ノード201のハードウェア構成例を示すブロック図である。
【
図5】
図5は、連携専用BC台帳212の記録内容の一例を示す説明図である。
【
図6】
図6は、連携対象ノード202のハードウェア構成例を示すブロック図である。
【
図7】
図7は、情報処理装置100の機能的構成例を示すブロック図である。
【
図8】
図8は、取引制御システム200の動作の一例を示す説明図である。
【
図9】
図9は、情報処理装置100が一連の取引の開始要求を受信する場合における、取引制御システム200の動作の一例を示す説明図(その1)である。
【
図10】
図10は、情報処理装置100が一連の取引の開始要求を受信する場合における、取引制御システム200の動作の一例を示す説明図(その2)である。
【
図11】
図11は、情報処理装置100がブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図(その1)である。
【
図12】
図12は、情報処理装置100がブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図(その2)である。
【
図13】
図13は、情報処理装置100が、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図(その1)である。
【
図14】
図14は、情報処理装置100が、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図(その2)である。
【
図15】
図15は、第1の初期化処理手順の一例を示すフローチャートである。
【
図16】
図16は、第2の初期化処理手順の一例を示すフローチャートである。
【
図17】
図17は、状態遷移処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる制御方法、制御プログラム、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる制御方法の一実施例)
図1は、実施の形態にかかる制御方法の一実施例を示す説明図である。情報処理装置100は、複数のブロックチェーンネットワークを介する一連の取引を実行可能に、複数のブロックチェーンネットワークを連携させるためのコンピュータである。以下の説明では、ブロックチェーンを「BC(BlockChain)」と表記する場合がある。
【0012】
複数のBCネットワークは、具体的には、それぞれユーザの資産を管理するBCネットワークであることが考えられる。一連の取引は、具体的には、異なるユーザ間で資産を交換するための一連の取引であることが考えられる。
【0013】
従来、異なるBCネットワークで管理する資産を交換するような、複数のBCネットワークを介した一連の取引を実行可能にすることが望まれる。
【0014】
これに対し、例えば、複数のBCネットワークを介する一連の取引を実行可能にするため、複数のBCネットワークと通信可能な中継サーバが用意されることがある。そして、中継サーバが、アプリケーションにより、複数のBCネットワークを連携させて、一連の取引を実行可能にするシステムが考えられる。
【0015】
この手法では、中継サーバは、実行させた取引を識別する取引IDと、タイムスタンプとを対応付けて、連携専用BCネットワークに記録させることにより、実行させた取引の証跡を残しながら、一連の取引を実行させることが考えられる。
【0016】
しかしながら、この手法では、中継サーバは、アプリケーションにより、中央集権的に一連の取引を実行可能にすることになるため、取引の透明性または中立性を確保することが難しいという問題がある。透明性は、例えば、中継サーバがどのように一連の取引を実行させているのかが確認可能であることを意味する。中立性は、例えば、中継サーバが一連の取引を実行したことを確認可能であることを意味する。
【0017】
また、それぞれのBCネットワークが使用する通信プロトコルまたは署名アルゴリズムが異なる場合がある。また、それぞれのBCネットワークに設定されたパラメータが異なる場合がある。このため、中継サーバが、複数のBCネットワークを連携させて、一連の取引を実行させることは難しい場合がある。
【0018】
また、例えば、複数のBCネットワークを介する一連の取引を実行可能にするため、HTLC(Hashed Time Locked Contracts)を用いたAtomic Swapと呼ばれる手法が考えられる。この手法は、交換する資産それぞれに同一の暗証番号で解除可能な電子的鍵を付与することにより、複数のBCネットワークを介する一連の取引を実行可能にする。
【0019】
ただし、HTLCを用いるには、対象となるBCネットワークが、マルチシグネチャと呼ばれる取引承認方式を採用していることが必須であり、この条件を満たすBCネットワークが少なく、実現が困難となっている問題がある。
【0020】
そこで、本実施の形態では、複数のBCネットワークを介する一連の取引を実行可能にするとともに、一連の取引に含まれる取引の透明性または中立性を確保することができる制御方法について説明する。
【0021】
図1において、情報処理装置100は、第1のBCネットワーク110と通信可能である。第1のBCネットワーク110は、例えば、複数のノードによって形成される。情報処理装置100は、複数のBCネットワーク120と通信可能である。それぞれのBCネットワーク120は、例えば、複数のノードによって形成される。
【0022】
第1のBCネットワーク110は、一連の取引の現在の状態に対応する状態データ101を記録する第1の分散台帳111を管理する。一連の取引は、複数のBCネットワーク120を介して実行される。状態は、一連の取引のいずれの取引が実行対象であるかを示す。状態データ101は、例えば、一連の取引に関するパラメータと、現在の状態に対応する取引の手順と、一連の取引における状態遷移に関する条件とが規定される。
【0023】
第1のBCネットワーク110は、状態データ101を管理するスマートコントラクトを有する。スマートコントラクトは、例えば、問い合わせに応じて現在の状態に対応する状態データ101を問い合わせ元に送信したり、現在の状態に対応する状態データ101を更新したりする。
図1の例では、一連の取引のそれぞれの状態に対応する状態データ101の元データが存在するとする。元データは、例えば、第1の分散台帳111に、検証可能に記録されるとする。
【0024】
(1-1)情報処理装置100は、第1のBCネットワーク110から、現在の状態に対応する状態データ101を取得する。情報処理装置100は、例えば、現在の状態に対応する状態データ101を、第1のBCネットワーク110に問い合わせて、現在の状態に対応する状態データ101を、第1のBCネットワーク110から受信することにより取得する。
【0025】
これにより、情報処理装置100は、現在の状態において、一連の取引のいずれの取引が実行対象であるかを特定可能にすることができる。また、情報処理装置100は、現在の状態から、どのような条件に基づいて、状態遷移するのかを特定可能にすることができる。
【0026】
(1-2)情報処理装置100は、現在の状態に対応する取引の実行指示を取得する。情報処理装置100は、例えば、状態データ101に規定された現在の状態に対応する取引の手順に、状態データ101に規定されたいずれかのパラメータを付与することにより、現在の状態に対応する取引の実行指示を作成することにより取得する。情報処理装置100は、取得した現在の状態に対応する取引の実行指示を、複数のBCネットワーク120に含まれるBCネットワーク120に送信する。
【0027】
これにより、情報処理装置100は、BCネットワーク120に、一連の取引のうち、現在の状態に対応する取引を実行させることができる。
【0028】
(1-3)情報処理装置100は、取得した状態データ101に規定された条件に基づいて、第1のBCネットワーク110と連携して次の状態へ遷移を指示、BC上での合意成形プロセスを経て一連の取引の次の状態を確定する。次の状態とは、現在の状態の状態遷移先である。情報処理装置100は、例えば、取得した状態データ101に規定された条件に基づいて、一連の取引の次の状態の確定要求を作成し、第1のBCネットワーク110に送信する。
【0029】
これにより、情報処理装置100は、第1のBCネットワーク110に、第1の分散台帳111に記録された元データから、一連の取引の次の状態に対応する状態データ101を作成させることができる。そして、情報処理装置100は、第1のBCネットワーク110に、作成した状態データ101を、現在の状態に対応する新たな状態データ101として設定させ、第1の分散台帳111に記録させることができる。
【0030】
このように、情報処理装置100は、第1のBCネットワーク110と連携して、一連の取引のうち、実行済みの取引の手順が規定された状態データ101を、改ざん困難な状態で、第1の分散台帳111に蓄積させていくことができる。このため、情報処理装置100は、どのような取引が実行されたのかを事後的に検証可能にすることができ、透明性および中立性を確保し易くすることができる。
【0031】
また、情報処理装置100は、一連の取引のそれぞれの状態に対応する状態データ101の元データが検証可能であるため、どのように一連の取引が実行されるのかを検証可能にすることができ、透明性および中立性を確保し易くすることができる。また、情報処理装置100は、BCネットワーク120に、マルチシグネチャと呼ばれる技術が実装されていなくても、複数のBCネットワーク120を介した一連の取引を実行可能にすることができる。
【0032】
ここでは、情報処理装置100が、第1のBCネットワーク110から、現在の状態に対応する状態データ101を一度取得した後、現在の状態に対応する取引の実行指示を送信し、かつ、一連の取引の次の状態を確定する場合について説明したが、これに限らない。例えば、情報処理装置100が、現在の状態に対応する取引の実行指示を送信した後、現在の状態に対応する取引の実行結果を受け付けてから、現在の状態に対応する状態データ101を再び取得し、一連の取引の次の状態を確定する場合があってもよい。
【0033】
ここでは、情報処理装置100が、第1のBCネットワーク110を形成するノードとは異なるコンピュータである場合について説明したが、これに限らない。例えば、情報処理装置100が、第1のBCネットワーク110を形成するノードとしても動作するコンピュータである場合があってもよい。
【0034】
(取引制御システム200の一例)
次に、
図2を用いて、
図1に示した情報処理装置100を適用した、取引制御システム200の一例について説明する。
【0035】
図2は、取引制御システム200の一例を示す説明図である。
図2において、取引制御システム200は、情報処理装置100と、連携専用BCネットワーク211を形成する1以上の連携専用ノード201と、連携対象BCネットワーク221を形成する1以上の連携対象ノード202と、ユーザ端末203とを含む。
【0036】
取引制御システム200において、情報処理装置100と連携専用ノード201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、情報処理装置100と連携対象ノード202とは、有線または無線のネットワーク210を介して接続される。
【0037】
(2-1)情報処理装置100は、一連の取引の開始時、一連の取引に関するパラメータを取得する。情報処理装置100は、例えば、一連の取引に関するパラメータを含む、一連の取引の開始要求を、ユーザ端末203から受信することにより取得する。情報処理装置100は、パラメータを取得した場合、連携専用BCネットワーク211に、取得したパラメータを含む、一連の取引の初期の状態に対応する状態データを、現在の状態に対応する状態データとして、連携専用BC台帳212に記録させる。
【0038】
(2-2)情報処理装置100は、連携専用BCネットワーク211と通信し、連携専用BC台帳212に記録された、一連の取引の現在の状態に対応する状態データを取得する。情報処理装置100は、取得した状態データに基づいて、一連の取引の現在の状態に対応する取引の実行要求を作成し、連携対象BCネットワーク221に送信する。情報処理装置100は、連携対象BCネットワーク221から、現在の状態に対応する取引の実行結果の待ち受け状態に移行し、現在の状態に対応する取引の実行結果を待ち受ける。
【0039】
(2-3)情報処理装置100は、待ち受け状態において、現在の状態に対応する取引の実行結果を受け付けると、連携専用BCネットワーク211と通信し、連携専用BC台帳212に記録された、一連の取引の現在の状態に対応する状態データを取得する。情報処理装置100は、取得した状態データと、受け付けた現在の状態に対応する取引の実行結果とに基づいて、一連の取引の次の状態の確定要求を、連携専用BCネットワーク211に送信する。これにより、情報処理装置100は、連携専用BCネットワーク211に、一連の取引の次の状態を確定させ、次の状態に対応する状態データを、現在の状態に対応する状態データとして、連携専用BC台帳212に記録させる。
【0040】
(2-4)情報処理装置100は、(2-2)および(2-3)を繰り返すことにより、一連の取引が終了するまで、連携対象BCネットワーク221に、一連の取引に含まれる取引を順次実行させることができる。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0041】
連携専用ノード201は、連携専用BCネットワーク211を形成するコンピュータである。連携専用ノード201は、連携専用BC台帳212に記録された、一連の取引の現在の状態に対応する状態データを、情報処理装置100に提供する。連携専用ノード201は、情報処理装置100と通信し、連携専用BC台帳212に記録された、一連の取引の現在の状態に対応する状態データを更新する。連携専用BCネットワーク211は、
図1に示した第1のBCネットワーク110に対応する。連携専用ノード201は、例えば、サーバ、または、PCなどである。
【0042】
連携対象ノード202は、連携対象BCネットワーク221を形成するコンピュータである。連携対象ノード202は、情報処理装置100と通信し、一連の取引に含まれる取引を実行する。取引は、例えば、連携対象BC台帳222に記録されることにより実行される。連携対象ノード202は、一連の取引に含まれる取引の実行結果を、情報処理装置100に送信する。連携対象BCネットワーク221は、
図1に示したBCネットワーク120に対応する。連携対象ノード202は、例えば、サーバ、または、PCなどである。
【0043】
ユーザ端末203は、取引制御システム200の利用者が有するコンピュータである。ユーザ端末203は、利用者の操作入力に基づき、一連の取引に関するパラメータを含む、一連の取引の開始要求を作成し、情報処理装置100に送信する。ユーザ端末203は、例えば、サーバ、PC、タブレット端末、または、スマートフォンなどである。
【0044】
ここでは、取引制御システム200が、ユーザ端末203を含む場合について説明したが、これに限らない。例えば、取引制御システム200が、ユーザ端末203を含まない場合があってもよい。
【0045】
また、ここでは、情報処理装置100が、連携専用ノード201とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、連携専用ノード201としても動作する場合があってもよい。
【0046】
また、ここでは、情報処理装置100が、連携対象ノード202とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、連携対象ノード202としても動作する場合があってもよい。
【0047】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0048】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0049】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0050】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0051】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0052】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0053】
(連携専用ノード201のハードウェア構成例)
次に、
図4を用いて、連携専用ノード201のハードウェア構成例について説明する。
【0054】
図4は、連携専用ノード201のハードウェア構成例を示すブロック図である。
図4において、連携専用ノード201は、CPU401と、メモリ402と、ネットワークI/F403と、記録媒体I/F404と、記録媒体405とを有する。また、各構成部は、バス400によってそれぞれ接続される。
【0055】
ここで、CPU401は、連携専用ノード201の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。各種プログラムは、例えば、スマートコントラクトを含む。メモリ402に記憶されるプログラムは、CPU401にロードされることにより、コーディングされている処理をCPU401に実行させる。メモリ402は、連携専用BC台帳212を記憶する。
【0056】
ネットワークI/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F403は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F403は、例えば、モデムやLANアダプタなどである。
【0057】
記録媒体I/F404は、CPU401の制御に従って記録媒体405に対するデータのリード/ライトを制御する。記録媒体I/F404は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体405は、記録媒体I/F404の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体405は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体405は、連携専用ノード201から着脱可能であってもよい。
【0058】
連携専用ノード201は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、連携専用ノード201は、記録媒体I/F404や記録媒体405を複数有していてもよい。また、連携専用ノード201は、記録媒体I/F404や記録媒体405を有していなくてもよい。
【0059】
(連携専用BC台帳212の記録内容の一例)
次に、
図5を用いて、連携専用BC台帳212の記録内容の一例について説明する。
【0060】
図5は、連携専用BC台帳212の記録内容の一例を示す説明図である。連携専用BC台帳212は、一連の取引ごとに、一連の取引に対応する取引管理データ501を記録する。取引管理データ501は、例えば、一連の取引を識別する識別情報であるTrade IDを含む。取引管理データ501は、例えば、一連の取引に含まれるいずれかの取引の実行結果に対応するイベントデータを含む。
【0061】
取引管理データ501は、例えば、現在の状態に対応する状態IDを含む。取引管理データ501は、例えば、次の状態に対応する状態IDを含む。これにより、取引管理データ501は、一連の取引の現在の状態を管理可能にすることができ、現在の状態に対応する状態データ503を特定可能にすることができる。また、取引管理データ501は、一連の取引において、どのような状態遷移が生じたかを特定可能にすることができる。
【0062】
連携専用BC台帳212は、一連の取引のそれぞれの状態に対応する状態データ503の元データ502を記録する。元データ502は、当該元データ502を含む元データ502群を識別する識別情報であるシナリオIDを含む。元データ502群は、一連の取引のそれぞれの状態に対応する状態データ503の元データ502を含む。
【0063】
元データ502は、当該元データ502に対応する一連の取引のいずれかの状態を識別する状態IDを含む。元データ502は、一連の取引に関するパラメータを含む。元データ502は、当該元データ502に対応する一連の取引のいずれかの状態に対応するオペレーションを含む。オペレーションは、一連の取引のいずれかの状態において実行対象となる、当該状態に対応するいずれかの取引を実行する手順である。手順は、例えば、パラメータを設定可能な変数を含んでもよい。
【0064】
元データ502は、当該元データ502に対応する一連の取引のいずれかの状態に対応するスクリプトを含む。スクリプトは、例えば、状態遷移の条件を含む。スクリプトは、例えば、一連の取引のいずれかの状態において、当該状態に対応するいずれかの取引を実行したことに応じて、実行結果としてどのような形式のイベントデータを待ち受けるかを特定可能に示してもよい。これにより、元データ502は、状態データ503を生成可能にすることができる。
【0065】
状態データ503は、一連の取引において状態遷移が発生した際、元データ502に基づいて作成される。状態データ503は、当該状態データ503に対応する一連の取引のいずれかの状態を識別する状態IDを含む。状態データ503は、一連の取引に関するパラメータを含む。状態データ503は、当該状態データ503に対応する一連の取引のいずれかの状態に対応するオペレーションを含む。オペレーションは、一連の取引のいずれかの状態において実行対象となる、当該状態に対応するいずれかの取引を実行する手順である。手順は、例えば、パラメータを設定可能な変数を含んでもよい。
【0066】
状態データ503は、当該状態データ503に対応する一連の取引のいずれかの状態に対応するスクリプトを含む。スクリプトは、例えば、状態遷移の条件を含む。スクリプトは、例えば、一連の取引のいずれかの状態において、当該状態に対応するいずれかの取引を実行したことに応じて、実行結果としてどのような形式のイベントデータを待ち受けるかを特定可能に示してもよい。これにより、状態データ503は、現在の状態が、一連の取引のいずれの状態であるのかを特定可能にすることができる。また、状態データ503は、現在の状態において、いずれの取引を実行すればよいのか、および、現在の状態から、どのような条件で状態遷移するのかを特定可能にすることができる。
【0067】
(連携対象ノード202のハードウェア構成例)
次に、
図6を用いて、連携対象ノード202のハードウェア構成例について説明する。
【0068】
図6は、連携対象ノード202のハードウェア構成例を示すブロック図である。
図6において、連携対象ノード202は、CPU601と、メモリ602と、ネットワークI/F603と、記録媒体I/F604と、記録媒体605とを有する。また、各構成部は、バス600によってそれぞれ接続される。
【0069】
ここで、CPU601は、連携対象ノード202の全体の制御を司る。メモリ602は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU601のワークエリアとして使用される。各種プログラムは、例えば、スマートコントラクトを含む。メモリ602に記憶されるプログラムは、CPU601にロードされることにより、コーディングされている処理をCPU601に実行させる。メモリ602は、連携対象BC台帳222を記憶する。
【0070】
ネットワークI/F603は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F603は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F603は、例えば、モデムやLANアダプタなどである。
【0071】
記録媒体I/F604は、CPU601の制御に従って記録媒体605に対するデータのリード/ライトを制御する。記録媒体I/F604は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体605は、記録媒体I/F604の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体605は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体605は、連携対象ノード202から着脱可能であってもよい。
【0072】
連携対象ノード202は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、連携対象ノード202は、記録媒体I/F604や記録媒体605を複数有していてもよい。また、連携対象ノード202は、記録媒体I/F604や記録媒体605を有していなくてもよい。
【0073】
(ユーザ端末203のハードウェア構成例)
ユーザ端末203のハードウェア構成例は、具体的には、
図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
【0074】
(情報処理装置100の機能的構成例)
次に、
図7を用いて、情報処理装置100の機能的構成例について説明する。
【0075】
図7は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部700と、取得部701と、検索部702と、更新部703と、指示部704と、出力部705とを含む。
【0076】
記憶部700は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部700が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部700が、情報処理装置100とは異なる装置に含まれ、記憶部700の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0077】
取得部701~出力部705は、制御部の一例として機能する。取得部701~出力部705は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0078】
記憶部700は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部700は、複数のBCネットワークを介して実行される一連の取引に関するパラメータと、一連の取引の現在の状態に対応する取引の手順と、一連の取引における状態遷移に関する条件とが規定された、現在の状態に対応する状態データを記憶する。
【0079】
一連の取引は、例えば、ユーザの資産を交換するための複数の取引などである。パラメータは、例えば、いずれのユーザの資産を、他のいずれのユーザに、どの程度譲渡するかを示す値である。状態は、一連の取引のいずれの取引が実行対象であるかを示す。BCネットワークは、例えば、連携対象BCネットワーク221である。
【0080】
条件は、例えば、取引が実行成功したことである。条件は、例えば、取引が実行失敗したことである。条件は、例えば、取引の実行結果が、所定の実行結果に一致することである。状態データは、例えば、条件が満たされた際、一連の取引のいずれの状態に遷移するのかが規定される。状態データは、例えば、取得部701によって一時的に取得される。
【0081】
取得部701は、各機能部の処理に用いられる各種情報を取得する。取得部701は、取得した各種情報を、記憶部700に記憶し、または、各機能部に出力する。また、取得部701は、記憶部700に記憶しておいた各種情報を、各機能部に出力してもよい。取得部701は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部701は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0082】
取得部701は、一連の取引の開始時に、一連の取引に関するパラメータを取得する。取得部701は、例えば、一連の取引の開始時に、一連の取引に関するパラメータを、一連の取引に関するユーザ端末203から受信することにより取得する。取得部701は、具体的には、一連の取引に関するパラメータを含む、一連の取引の開始要求を、ユーザ端末203から受信することにより取得する。
【0083】
取得部701は、例えば、一連の取引の開始時に、一連の取引に関するパラメータを、複数のBCネットワークに含まれるBCネットワークから取得する。取得部701は、例えば、一連の取引に関するパラメータを含むイベントデータを、複数のBCネットワークに含まれるBCネットワークから受信することにより取得する。
【0084】
取得部701は、現在の状態に対応する取引の実行指示を、複数のBCネットワークに含まれるBCネットワークに送信した際、現在の状態に対応する取引の実行結果の待ち受け状態に移行する。そして、取得部701は、待ち受け状態において、現在の状態に対応する取引の実行結果を受け付ける。取得部701は、例えば、現在の状態に対応する取引の実行結果を含むイベントデータを、複数のBCネットワークに含まれるBCネットワークから受信することにより取得する。
【0085】
取得部701は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0086】
取得部701は、例えば、一連の取引に関するパラメータを取得したことを、検索部702と、更新部703と、指示部704との処理を開始する開始トリガーとして受け付ける。取得部701は、例えば、現在の状態に対応する取引の実行結果を受け付けたことを、検索部702と、更新部703と、指示部704との処理を開始する開始トリガーとして受け付ける。
【0087】
まず、取得部701が、一連の取引に関するパラメータを取得した場合における、検索部702と、更新部703と、指示部704との動作について説明する。検索部702は、第1のBCネットワークから、一連の取引の初期の状態に対応する状態データの元データを取得する。
【0088】
第1のBCネットワークは、現在の状態に対応する状態データを記録する第1の分散台帳を管理する。第1のBCネットワークは、例えば、第1の分散台帳を管理するスマートコントラクトにより、第1の分散台帳を管理する。第1の分散台帳は、例えば、連携専用BC台帳212である。第1のBCネットワークは、例えば、一連の取引を識別する識別情報に、現在の状態に対応する状態データを識別する識別情報を対応付けて管理する。第1のBCネットワークは、さらに、一連の取引のそれぞれの状態に対応する状態データの元データを管理する。第1のBCネットワークは、例えば、連携専用BCネットワーク211である。
【0089】
検索部702は、例えば、一連の取引の現在の状態に対応する状態データを、第1のBCネットワークに問い合わせる。検索部702は、第1のBCネットワークに、現在の状態に対応する状態データがなければ、第1のBCネットワークから、一連の取引の初期の状態に対応する状態データの元データを取得する。これにより、検索部702は、一連の取引の初期の状態に対応する状態データを作成可能にすることができる。
【0090】
更新部703は、取得した元データに、取得したパラメータを組み合わせて作成される、初期の状態に対応する状態データの記録要求を、第1のBCネットワークに送信する。これにより、更新部703は、現在の状態に対応する状態データを、第1のBCネットワークに記録させることができる。そして、更新部703は、一連の取引の初期の状態に対応する取引を実行可能にすることができ、一連の取引を開始可能にすることができる。
【0091】
指示部704は、現在の状態に対応する取引の実行指示を、複数のBCネットワークに含まれるBCネットワークに送信する。現在の状態に対応する取引の実行指示は、例えば、取得した状態データに規定された現在の状態に対応する取引の手順に、取得した状態データに規定されたいずれかのパラメータを付与することにより作成される。
【0092】
指示部704は、例えば、取得した状態データに規定された現在の状態に対応する取引の手順に、取得した状態データに規定されたいずれかのパラメータを付与することにより、現在の状態に対応する取引の実行指示を作成する。指示部704は、作成した実行指示を、複数のBCネットワークに含まれるBCネットワークに送信する。これにより、指示部704は、複数のBCネットワークに含まれるBCネットワークに、現在の状態に対応する取引を実行させ、一連の取引を進めることができる。
【0093】
次に、取得部701が、現在の状態に対応する取引の実行結果を受け付けた場合における、検索部702と、更新部703と、指示部704との動作について説明する。検索部702は、現在の状態に対応する取引の実行結果を受け付けた場合、第1のBCネットワークから、一連の取引の現在の状態に対応する状態データを取得する。
【0094】
検索部702は、例えば、一連の取引を識別する識別情報に基づいて、第1のBCネットワークから、現在の状態に対応する状態データを取得する。検索部702は、具体的には、一連の取引を識別する識別情報を含む問い合わせを、第1のBCネットワークに送信した結果、第1のBCネットワークから、現在の状態に対応する状態データを受信することにより取得する。これにより、検索部702は、どのような条件に基づいて状態遷移すればよいのかを特定可能にすることができる。
【0095】
更新部703は、取得した状態データに規定された条件に基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定する。次の状態は、現在の状態の状態遷移先である。更新部703は、例えば、取得した状態データに規定された条件と、受け付けた実行結果とに基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定する。更新部703は、具体的には、第1の分散台帳に記録された、現在の状態に対応する状態データを、次の状態に対応する状態データで更新させることにより、一連の取引の次の状態を確定する。これにより、更新部703は、一連の取引を適切に進めることができる。
【0096】
更新部703は、待ち受け状態において、現在の状態に対応する取引の実行結果を受け付けずに一定時間が経過したことを検出してもよい。そして、更新部703は、一定時間が経過したことを検出した場合、取得した状態データに規定された条件と、一定時間が経過したことを検出した結果とに基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定する。
【0097】
更新部703は、例えば、一定時間が経過したことを検出すると、現在の状態に対応する取引が実行失敗したと判断する。更新部703は、例えば、現在の状態に対応する取引が実行失敗した場合に対応する次の状態を確定する。更新部703は、具体的には、第1の分散台帳に記録された、現在の状態に対応する状態データを、次の状態に対応する状態データで更新させることにより、一連の取引の次の状態を確定する。これにより、更新部703は、一連の取引を適切に進めることができる。
【0098】
検索部702は、次の状態が確定し、次の状態が新たな現在の状態になると、第1のBCネットワークから、一連の取引の現在の状態に対応する状態データを取得する。検索部702は、例えば、一連の取引を識別する識別情報に基づいて、第1のBCネットワークから、現在の状態に対応する状態データを取得する。検索部702は、具体的には、一連の取引を識別する識別情報を含む問い合わせを、第1のBCネットワークに送信した結果、第1のBCネットワークから、現在の状態に対応する状態データを受信することにより取得する。これにより、検索部702は、現在の状態に対応する取引を、どのように実行すればよいのかを特定可能にすることができる。
【0099】
指示部704は、取得した状態データに規定された現在の状態に対応する取引の手順に基づいて、現在の状態に対応する取引の実行指示を、複数のBCネットワークに含まれるBCネットワークに送信する。現在の状態に対応する取引の実行指示は、例えば、取得した状態データに規定された現在の状態に対応する取引の手順に、取得した状態データに規定されたいずれかのパラメータを付与することにより作成される。
【0100】
指示部704は、例えば、取得した状態データに規定された現在の状態に対応する取引の手順に、取得した状態データに規定されたいずれかのパラメータを付与することにより、現在の状態に対応する取引の実行指示を作成する。指示部704は、作成した実行指示を、複数のBCネットワークに含まれるBCネットワークに送信する。これにより、指示部704は、複数のBCネットワークに含まれるBCネットワークに、現在の状態に対応する取引を実行させ、一連の取引を進めることができる。
【0101】
出力部705は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部705は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0102】
出力部705は、例えば、一連の取引に含まれる取引が実行成功したことを、ユーザが参照可能に出力する。出力部705は、例えば、一連の取引に含まれる取引が実行失敗したことを、ユーザが参照可能に出力する。出力部705は、例えば、一連の取引が完了したことを、ユーザが参照可能に出力する。
【0103】
(取引制御システム200の動作の一例)
次に、
図8を用いて、取引制御システム200の動作の一例について説明する。
【0104】
図8は、取引制御システム200の動作の一例を示す説明図である。
図8において、連携専用BC台帳212は、現在の状態に対応する状態データ800を記録しているとする。情報処理装置100は、現在の状態に対応する状態データ800に基づいて、一連の取引の現在の状態に対応する取引を、連携対象BCネットワーク221に実行させたとする。情報処理装置100は、現在の状態に対応する取引の実行結果に対する待ち受け状態に移行したとする。
【0105】
(8-1)情報処理装置100は、待ち受け状態において、現在の状態に対応する取引の実行結果であるイベントデータを含むブロックデータを、連携対象BCネットワークから受信する。情報処理装置100は、受信したブロックデータから、イベントデータを抽出する。情報処理装置100は、抽出したイベントデータが示す取引の実行結果に基づいて、抽出したイベントデータに対応するTrade IDを特定する。
【0106】
(8-2)情報処理装置100は、特定したTrade IDに基づいて、現在の状態に対応する状態データ800を、連携専用BCネットワーク211に問い合わせることにより、現在の状態に対応する状態データ800を取得する。
【0107】
(8-3)情報処理装置100は、現在の状態に対応する状態データ800に含まれるスクリプトと、抽出したイベントデータとに基づいて、一連の取引の次の状態を特定する。情報処理装置100は、イベントデータを含む、次の状態について合意形成を実施させる合意要求を、連携専用BCネットワーク211に送信することにより、スマートコントラクトを呼び出し、次の状態について合意形成を実施させる。
【0108】
(8-4)連携専用BCネットワーク211は、スマートコントラクトにより、現在の状態に対応する状態データ800に基づいて、次の状態について合意形成を実施し、次の状態について合意形成を実施した結果を、情報処理装置100に送信する。合意形成を実施した結果は、例えば、合意形成が成功し、次の状態が確定したことを示す。合意形成を実施した結果は、例えば、合意形成に失敗したことを示す場合があってもよい。
【0109】
連携専用BCネットワーク211は、スマートコントラクトにより、合意形成が成功すると、連携専用BC台帳212に、次の状態に対応する状態データ800を、新たな現在の状態に対応する状態データ800として記録する。次の状態に対応する状態データ800は、例えば、次の状態に対応する状態データ800の元データ801に基づいて作成される。次の状態に対応する状態データ800は、例えば、現在の状態に対応する状態データ800に含まれるパラメータを引き継ぐ。
【0110】
(8-5)情報処理装置100は、合意形成を実施した結果を受信する。情報処理装置100は、合意形成を実施した結果に基づいて、次の状態が確定していれば、Trade IDに基づいて、現在の状態に対応する状態データ800を、連携専用BCネットワーク211に問い合わせる。情報処理装置100は、問い合わせに応じて、現在の状態に対応する状態データ800を取得する。情報処理装置100は、現在の状態に対応する状態データ800に含まれるパラメータと、オペレーションとに基づいて、現在の状態に対応する取引の実行指示を作成し、連携対象BCネットワーク221に送信する。
【0111】
これにより、情報処理装置100は、一連の取引を適切に進めることができる。情報処理装置100は、連携専用BCネットワーク211と連携して、実行済みの取引の手順が規定された状態データ800を、改ざん困難な状態で、連携専用BC台帳212に蓄積させていくことができる。このため、情報処理装置100は、どのような取引が実行されたのかを事後的に検証可能にすることができ、透明性および中立性を確保し易くすることができる。また、情報処理装置100は、一連の取引のそれぞれの状態に対応する状態データ800の元データ801が検証可能であるため、どのように一連の取引が実行されるのかを検証可能にすることができ、透明性および中立性を確保し易くすることができる。
【0112】
(取引制御システム200の動作の具体例)
次に、
図9~
図14を用いて、取引制御システム200の動作の一例について説明する。まず、
図9および
図10を用いて、情報処理装置100が一連の取引の開始要求を受信する場合における、取引制御システム200の動作の一例について説明する。
【0113】
図9および
図10は、情報処理装置100が一連の取引の開始要求を受信する場合における、取引制御システム200の動作の一例を示す説明図である。
図9において、情報処理装置100は、状態遷移管理手段900と、取引指示作成手段901と、イベントフィルタ手段902と、取引指示送信手段903と、データ受信手段904とを有する。
【0114】
(9-1)状態遷移管理手段900は、資産交換を実現する一連の取引に関するパラメータと、一連の取引に用いられる元データ群を特定可能にするシナリオIDとを含む、一連の取引の開始要求を、ユーザ端末203から受信する。
【0115】
(9-2)状態遷移管理手段900は、一連の取引の開始要求を受信すると、初期の状態に対応する状態データの作成要求を、連携専用BCネットワーク211に送信し、連携専用BCネットワーク211のスマートコントラクトを呼び出す。作成要求は、例えば、開始要求に含まれるパラメータと、開始要求に含まれるシナリオIDとを含む。
【0116】
連携専用BCネットワーク211は、スマートコントラクトにより、初期の状態に遷移することについての合意形成を実施し、合意形成が成功すると、初期の状態に対応する状態データを、連携専用BC台帳212に記録する。初期の状態に対応する状態データは、例えば、
図10に示す状態データ1000である。ここで、
図10の説明に移行する。
【0117】
図10に示すように、状態データ1000は、例えば、シナリオID(図中のscenariId)を含む。状態データ1000は、例えば、初期の状態に対応することを示す状態ID(図中のstateId)を含む。状態データ1000は、例えば、Trade ID(図中のtradeId)を含む。状態データ1000は、例えば、パラメータを含む。
【0118】
状態データ1000は、例えば、オペレーションを含む。オペレーションは、パラメータを設定可能な変数を含む。オペレーションは、例えば、オペレーションの種別と、取引を実行する連携対象BCネットワークを識別可能な識別情報を含む。オペレーションは、例えば、取引に用いられるスマートコントラクトを識別する識別情報を含む。オペレーションは、例えば、取引に用いられる関数を識別する識別情報を含む。状態データ1000は、例えば、スクリプトを含む。スクリプトは、初期の状態からの状態遷移の条件を含む。
【0119】
図9の説明に戻り、(9-3)状態遷移管理手段900は、合意形成の結果を、連携専用BCネットワーク211から取得する。状態遷移管理手段900は、合意形成が成功していれば、初期の状態に対応する状態データを、連携専用BCネットワーク211に問い合わせて、初期の状態に対応する状態データを、連携専用BCネットワーク211から受信する。
【0120】
(9-4)状態遷移管理手段900は、初期の状態に対応する状態データを、取引指示作成手段901に送信する。取引指示作成手段901は、初期の状態に対応する状態データに基づいて、初期の状態に対応する取引の実行指示を作成し、状態遷移管理手段900に送信する。状態遷移管理手段900は、初期の状態に対応する取引の実行指示を受信する。
【0121】
(9-5)状態遷移管理手段900は、初期の状態に対応する取引の実行指示を受信すると、イベントフィルタ手段902に、初期の状態に対応する取引の実行結果に対する待ち受け状態を設定する。イベントフィルタ手段902は、連携対象BCネットワーク221から、ブロックデータを受信可能である。イベントフィルタ手段902は、初期の状態に対応する取引の内容に基づいて、受信したブロックデータに含まれるイベントデータが、初期の状態に対応する取引の実行結果に相当するのかを特定可能な、実行結果に対する待ち受け状態に移行する。
【0122】
(9-6)状態遷移管理手段900は、取引指示送信手段903を介して、受信した初期の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する。その後、イベントフィルタ手段902は、データ受信手段904を介して、連携対象BCネットワーク221から、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信することになる。
【0123】
情報処理装置100が、イベントフィルタ手段902により、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における取引制御システム200の動作の一例については、
図13および
図14を用いて後述する。
【0124】
次に、
図11および
図12を用いて、情報処理装置100がブロックデータを受信する場合における、取引制御システム200の動作の一例について説明する。
【0125】
図11および
図12は、情報処理装置100がブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図である。
図11において、情報処理装置100は、
図9と同様に、状態遷移管理手段900と、取引指示作成手段901と、イベントフィルタ手段902と、取引指示送信手段903と、データ受信手段904とを有する。
【0126】
イベントフィルタ手段902は、一連の取引を開始する開始トリガーとなるイベントデータを含むブロックデータに対する待ち受け状態である。イベントフィルタ手段902は、例えば、一連の取引に関するパラメータと、一連の取引に用いられる元データ群を特定可能にするシナリオIDとを有する。パラメータと、シナリオIDとは、例えば、管理者によって予め指定される。パラメータは、イベントデータから抽出されてもよい。
【0127】
(11-1)イベントフィルタ手段902は、データ受信手段904を介して、連携対象BCネットワーク221から、一連の取引を開始する開始トリガーとなるイベントデータを含むブロックデータを受信する。イベントフィルタ手段902は、受信したブロックデータに、一連の取引を開始する開始トリガーとなるイベントデータが含まれるか否かを確認する。
【0128】
(11-2)イベントフィルタ手段902は、受信したブロックデータに、一連の取引を開始する開始トリガーとなるイベントデータが含まれれば、一連の取引の開始要求を、状態遷移管理手段900に送信する。開始要求は、例えば、一連の取引に関するパラメータと、一連の取引に用いられる元データ群を特定可能にするシナリオIDとを含む。
【0129】
(11-3)状態遷移管理手段900は、一連の取引の開始要求を受信すると、初期の状態に対応する状態データの作成要求を、連携専用BCネットワーク211に送信し、連携専用BCネットワーク211のスマートコントラクトを呼び出す。作成要求は、例えば、開始要求に含まれるパラメータと、開始要求に含まれるシナリオIDとを含む。
【0130】
連携専用BCネットワーク211は、スマートコントラクトにより、初期の状態に遷移することについての合意形成を実施し、合意形成が成功すると、初期の状態に対応する状態データを、連携専用BC台帳212に記録する。初期の状態に対応する状態データは、例えば、
図12に示す状態データ1200である。ここで、
図12の説明に移行する。
【0131】
図12に示すように、状態データ1200は、例えば、シナリオID(図中のscenariId)を含む。状態データ1200は、例えば、初期の状態に対応することを示す状態ID(図中のstateId)を含む。状態データ1200は、例えば、Trade ID(図中のtradeId)を含む。状態データ1200は、例えば、パラメータを含む。
【0132】
状態データ1200は、例えば、オペレーションを含む。オペレーションは、パラメータを設定可能な変数を含む。オペレーションは、例えば、オペレーションの種別と、取引を実行する連携対象BCネットワークを識別可能な識別情報を含む。オペレーションは、例えば、取引に用いられるスマートコントラクトを識別する識別情報を含む。オペレーションは、例えば、取引に用いられる関数を識別する識別情報を含む。状態データ1200は、例えば、スクリプトを含む。スクリプトは、初期の状態からの状態遷移の条件を含む。
【0133】
図11の説明に戻り、(11-4)状態遷移管理手段900は、合意形成の結果を、連携専用BCネットワーク211から取得する。状態遷移管理手段900は、合意形成が成功していれば、初期の状態に対応する状態データを、連携専用BCネットワーク211に問い合わせて、初期の状態に対応する状態データを、連携専用BCネットワーク211から受信する。
【0134】
(11-5)状態遷移管理手段900は、初期の状態に対応する状態データを、取引指示作成手段901に送信する。取引指示作成手段901は、初期の状態に対応する状態データに基づいて、初期の状態に対応する取引の実行指示を作成し、状態遷移管理手段900に送信する。状態遷移管理手段900は、初期の状態に対応する取引の実行指示を受信する。
【0135】
(11-6)状態遷移管理手段900は、初期の状態に対応する取引の実行指示を受信すると、イベントフィルタ手段902に、初期の状態に対応する取引の実行結果に対する待ち受け状態を設定する。イベントフィルタ手段902は、連携対象BCネットワーク221から、ブロックデータを受信可能である。イベントフィルタ手段902は、初期の状態に対応する取引の内容に基づいて、受信したブロックデータに含まれるイベントデータが、初期の状態に対応する取引の実行結果に相当するのかを特定可能な、実行結果に対する待ち受け状態に移行する。
【0136】
(11-7)状態遷移管理手段900は、取引指示送信手段903を介して、受信した初期の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する。その後、イベントフィルタ手段902は、データ受信手段904を介して、連携対象BCネットワーク221から、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信することになる。
【0137】
情報処理装置100が、イベントフィルタ手段902により、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における取引制御システム200の動作の一例については、
図13および
図14を用いて後述する。
【0138】
次に、
図13および
図14を用いて、情報処理装置100が、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における、取引制御システム200の動作の一例について説明する。
【0139】
図13および
図14は、情報処理装置100が、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における、取引制御システム200の動作の一例を示す説明図である。情報処理装置100は、
図9と同様に、状態遷移管理手段900と、取引指示作成手段901と、イベントフィルタ手段902と、取引指示送信手段903と、データ受信手段904とを有する。
【0140】
イベントフィルタ手段902は、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータに対する待ち受け状態である。イベントフィルタ手段902は、例えば、一連の取引に含まれる取引の実行結果に相当するイベントデータを特定可能にする情報として、当該取引に関するパラメータを有する。
【0141】
(13-1)イベントフィルタ手段902は、データ受信手段904を介して、連携対象BCネットワーク221から、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する。イベントフィルタ手段902は、受信したブロックデータに、一連の取引に含まれる取引の実行結果に相当するイベントデータが含まれるか否かを確認する。
【0142】
(13-2)イベントフィルタ手段902は、受信したブロックデータに、一連の取引に含まれる取引の実行結果に相当するイベントデータが含まれれば、一連の取引に含まれる取引の実行結果に相当するイベントデータを、状態遷移管理手段900に送信する。
【0143】
(13-3)状態遷移管理手段900は、一連の取引に含まれる取引の実行結果に相当するイベントデータを受信すると、一連の取引のTrade IDを特定する。状態遷移管理手段900は、特定したTrade IDに基づいて、連携専用BCネットワーク211のスマートコントラクトを呼び出し、現在の状態に対応する状態データを問い合わせる。情報処理装置100は、現在の状態に対応する状態データを、連携専用BCネットワーク211から受信する。
【0144】
(13-4)状態遷移管理手段900は、受信した状態データに含まれるスクリプトに基づいて、次の状態を特定する。状態遷移管理手段900は、イベントデータに基づいて、連携専用BCネットワーク211のスマートコントラクトを呼び出し、連携専用BCネットワーク211に、次の状態に遷移することについての合意形成を実施させる。
【0145】
連携専用BCネットワーク211は、スマートコントラクトにより、次の状態に遷移することについての合意形成を実施し、合意形成が成功すると、次の状態に対応する状態データを、連携専用BC台帳212に記録する。連携専用BCネットワーク211は、合意形成の結果を、状態遷移管理手段900に送信する。
【0146】
(13-5)状態遷移管理手段900は、合意形成の結果を、連携専用BCネットワーク211から取得する。状態遷移管理手段900は、合意形成が成功していれば、現在の状態に対応する状態データを、連携専用BCネットワーク211に問い合わせて、現在の状態に対応する状態データを、連携専用BCネットワーク211から受信する。
【0147】
(13-6)状態遷移管理手段900は、現在の状態に対応する状態データを、取引指示作成手段901に送信する。取引指示作成手段901は、現在の状態に対応する状態データに基づいて、現在の状態に対応する取引の実行指示を作成し、状態遷移管理手段900に送信する。状態遷移管理手段900は、現在の状態に対応する取引の実行指示を受信する。
【0148】
(13-7)状態遷移管理手段900は、現在の状態に対応する取引の実行指示を受信すると、イベントフィルタ手段902に、現在の状態に対応する取引の実行結果に対する待ち受け状態を設定する。イベントフィルタ手段902は、連携対象BCネットワーク221から、ブロックデータを受信可能である。イベントフィルタ手段902は、現在の状態に対応する取引の内容に基づいて、受信したブロックデータに含まれるイベントデータが、現在の状態に対応する取引の実行結果に相当するのかを特定可能な、実行結果に対する待ち受け状態に移行する。
【0149】
(13-8)状態遷移管理手段900は、受信した現在の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する。その後、イベントフィルタ手段902は、連携対象BCネットワーク221から、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信することになる。次に、
図14の説明に移行し、情報処理装置100が、一連の取引に含まれる取引の実行結果に相当するイベントデータを含むブロックデータを受信する場合における、取引制御システム200の動作の一例について具体的に説明する。
【0150】
図14において、(14-1)情報処理装置100は、ブロックデータ1401を、連携対象BCネットワーク221から受信する。(14-2)情報処理装置100は、受信したブロックデータ1401から、イベントデータ1402を抽出する。(14-3)情報処理装置100は、イベントデータ1402を解釈し、Trade IDを特定する指針となるTX IDを取得する。
【0151】
(14-4)情報処理装置100は、取得したTx IDに基づいて、対応DB1400から、Trade IDを取得する。対応DB1400は、Tx IDと、Trade IDとを対応付けて記憶する。対応DB1400は、さらに、Trade IDと、シナリオIDとを対応付けて記憶する。情報処理装置100は、取得したTrade IDに基づいて、対応DB1400から、シナリオIDを取得する。
【0152】
(14-5)情報処理装置100は、取得したTrade IDに基づいて、連携専用BCネットワーク211に、現在の状態に対応する状態データを問い合わせる。(14-6)情報処理装置100は、現在の状態に対応する状態データを、連携専用BCネットワーク211から受信する。(14-7)情報処理装置100は、受信した現在の状態に対応する状態データに含まれるスクリプトに基づいて、次の状態を特定する。
【0153】
(14-8)情報処理装置100は、イベントデータ1402と、シナリオIDとを含む、特定した次の状態についての合意形成を実施する合意要求を、連携専用BCネットワーク211に送信する。連携専用BCネットワーク211は、次の状態についての合意形成が成功すると、シナリオIDに基づいて、次の状態に対応する状態データの元データを取得し、次の状態に対応する状態データを作成する。連携専用BCネットワーク211は、作成した状態データを、新たな現在の状態に対応する状態データとして、連携専用BC台帳212に記録する。
【0154】
これにより、情報処理装置100は、一連の取引を適切に進めることができる。情報処理装置100は、連携専用BCネットワーク211と連携して、実行済みの取引の手順が規定された状態データ800を、改ざん困難な状態で、連携専用BC台帳212に蓄積させていくことができる。このため、情報処理装置100は、どのような取引が実行されたのかを事後的に検証可能にすることができ、透明性および中立性を確保し易くすることができる。
【0155】
(第1の初期化処理手順)
次に、
図15を用いて、情報処理装置100が実行する、第1の初期化処理手順の一例について説明する。第1の初期化処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0156】
図15は、第1の初期化処理手順の一例を示すフローチャートである。
図15において、情報処理装置100は、ユーザ端末203から、一連の取引に関するパラメータと、一連の取引に対応するシナリオIDとを含む一連の取引の実行要求を受信する(ステップS1501)。
【0157】
次に、情報処理装置100は、受信した実行要求に含まれるパラメータとシナリオIDとに基づいて、連携専用BCネットワーク211のスマートコントラクトを呼び出す。そして、情報処理装置100は、連携専用BCネットワーク211に、一連の取引の初期の状態に遷移することについての合意形成を実施させる(ステップS1502)。
【0158】
次に、情報処理装置100は、スマートコントラクトの呼び出し結果を取得する。そして、情報処理装置100は、合意形成により、一連の取引の初期の状態に遷移することが確定され、初期の状態に対応する状態データが、連携専用BC台帳212に記録されたことを検出する(ステップS1503)。
【0159】
次に、情報処理装置100は、スマートコントラクトの呼び出し結果に含まれるTrade IDに基づいて、連携専用BCネットワーク211に、一連の取引の現在の状態に対応する状態データの問い合わせを送信する(ステップS1504)。そして、情報処理装置100は、連携専用BCネットワーク211から、現在の状態に対応する状態データを受信する(ステップS1505)。
【0160】
次に、情報処理装置100は、受信した状態データに含まれるオペレーションに基づいて、一連の取引の現在の状態に対応する取引の実行指示を作成する(ステップS1506)。そして、情報処理装置100は、一連の取引の現在の状態に対応する取引の実行結果の待ち受け状態を設定する(ステップS1507)。
【0161】
次に、情報処理装置100は、作成した一連の取引の現在の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する(ステップS1508)。そして、情報処理装置100は、第1の初期化処理を終了する。これにより、情報処理装置100は、一連の取引を開始し、初期の状態に対応する取引を実行可能にすることができる。
【0162】
(第2の初期化処理手順)
次に、
図16を用いて、情報処理装置100が実行する、第2の初期化処理手順の一例について説明する。第2の初期化処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0163】
図16は、第2の初期化処理手順の一例を示すフローチャートである。
図16において、情報処理装置100は、連携対象BCネットワーク221から、ブロックデータを受信する(ステップS1601)。
【0164】
次に、情報処理装置100は、受信したブロックデータを解釈し、受信したブロックデータからイベントデータを抽出する(ステップS1602)。そして、情報処理装置100は、抽出したイベントデータが、一連の取引を開始する開始トリガーであるか否かを判定する(ステップS1603)。
【0165】
ここで、開始トリガーではない場合(ステップS1603:No)、情報処理装置100は、第2の初期化処理を終了する。一方で、開始トリガーである場合(ステップS1603:Yes)、情報処理装置100は、ステップS1604の処理に移行する。
【0166】
ステップS1604では、情報処理装置100は、抽出したイベントデータに対応するパラメータとシナリオIDとに基づいて、連携専用BCネットワーク211のスマートコントラクトを呼び出す。そして、情報処理装置100は、連携専用BCネットワーク211に、一連の取引の初期の状態に遷移することについての合意形成を実施させる(ステップS1604)。
【0167】
次に、情報処理装置100は、スマートコントラクトの呼び出し結果を取得する。そして、情報処理装置100は、合意形成により、一連の取引の初期の状態に遷移することが確定され、初期の状態に対応する状態データが、連携専用BC台帳212に記録されたことを検出する(ステップS1605)。
【0168】
そして、情報処理装置100は、スマートコントラクトの呼び出し結果に含まれるTrade IDに基づいて、連携専用BCネットワーク211に、一連の取引の現在の状態に対応する状態データの問い合わせを送信する(ステップS1606)。
【0169】
次に、情報処理装置100は、連携専用BCネットワーク211から、現在の状態に対応する状態データを受信する(ステップS1607)。そして、情報処理装置100は、受信した状態データに含まれるオペレーションに基づいて、一連の取引の現在の状態に対応する取引の実行指示を作成する(ステップS1608)。
【0170】
次に、情報処理装置100は、一連の取引の現在の状態に対応する取引の実行結果の待ち受け状態を設定する(ステップS1609)。そして、情報処理装置100は、作成した一連の取引の現在の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する(ステップS1610)。その後、情報処理装置100は、第2の初期化処理を終了する。これにより、情報処理装置100は、一連の取引を開始し、初期の状態に対応する取引を実行可能にすることができる。
【0171】
(状態遷移処理手順)
次に、
図17を用いて、情報処理装置100が実行する、状態遷移処理手順の一例について説明する。状態遷移処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0172】
図17は、状態遷移処理手順の一例を示すフローチャートである。
図17において、情報処理装置100は、連携対象BCネットワーク221から、ブロックデータを受信する(ステップS1701)。
【0173】
次に、情報処理装置100は、受信したブロックデータを解釈し、受信したブロックデータからイベントデータを抽出する(ステップS1702)。そして、情報処理装置100は、抽出したイベントデータに、既存のTrade IDが含まれるか否かを判定する(ステップS1703)。
【0174】
ここで、既存のTrade IDが含まれない場合(ステップS1703:No)、情報処理装置100は、状態遷移処理を終了する。一方で、既存のTrade IDが含まれる場合(ステップS1703:Yes)、情報処理装置100は、ステップS1704の処理に移行する。
【0175】
ステップS1704では、情報処理装置100は、既存のTrade IDに基づいて、連携専用BCネットワーク211に、一連の取引の現在の状態に対応する状態データの問い合わせを送信する(ステップS1704)。そして、情報処理装置100は、連携専用BCネットワーク211から、現在の状態に対応する状態データを受信する(ステップS1705)。
【0176】
次に、情報処理装置100は、受信した状態データに含まれる条件と、抽出したイベントデータとに基づいて、連携専用BCネットワーク211のスマートコントラクトを呼び出す。そして、情報処理装置100は、連携専用BCネットワーク211に、一連の取引の次の状態に遷移することについての合意形成を実施させる(ステップS1706)。
【0177】
次に、情報処理装置100は、スマートコントラクトの呼び出し結果を取得し、合意形成により、一連の取引の次の状態に遷移することが確定され、次の状態に対応する状態データが、連携専用BC台帳212に記録されたことを検出する(ステップS1707)。そして、情報処理装置100は、スマートコントラクトの呼び出し結果に含まれるTrade IDに基づいて、連携専用BCネットワーク211に、一連の取引の現在の状態に対応する状態データの問い合わせを送信する(ステップS1708)。
【0178】
次に、情報処理装置100は、連携専用BCネットワーク211から、現在の状態に対応する状態データを受信する(ステップS1709)。そして、情報処理装置100は、受信した状態データに含まれるオペレーションに基づいて、一連の取引の現在の状態に対応する取引の実行指示を作成する(ステップS1710)。
【0179】
次に、情報処理装置100は、一連の取引の現在の状態に対応する取引の実行結果の待ち受け状態を設定する(ステップS1711)。そして、情報処理装置100は、作成した一連の取引の現在の状態に対応する取引の実行指示を、連携対象BCネットワーク221に送信する(ステップS1712)。その後、情報処理装置100は、状態遷移処理を終了する。これにより、情報処理装置100は、一連の取引を適切に進めることができる。
【0180】
以上説明したように、情報処理装置100によれば、現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のBCネットワークから、現在の状態に対応する状態データを取得することができる。情報処理装置100によれば、取得した状態データに基づいて、現在の状態に対応する取引の実行指示を、複数のBCネットワークに含まれるBCネットワークに送信することができる。情報処理装置100によれば、取得した状態データに規定された条件に基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定することができる。これにより、情報処理装置100は、一連の取引を適切に進めることができる。
【0181】
情報処理装置100によれば、一連の取引の開始時に、一連の取引に関するパラメータを、一連の取引に関するユーザ端末203から取得することができる。情報処理装置100によれば、第1のBCネットワークから、一連の取引の初期の状態に対応する状態データの元データを取得することができる。情報処理装置100によれば、取得した元データと、取得したパラメータとに基づいて、初期の状態に対応する状態データの記録要求を、第1のBCネットワークに送信することができる。これにより、情報処理装置100は、複数のBCネットワークに、一連の取引を開始させることができる。
【0182】
情報処理装置100によれば、第1の分散台帳に記録された、現在の状態に対応する状態データを、次の状態に対応する状態データで更新させることができる。これにより、情報処理装置100は、次の状態に対応する取引を適切に実行可能にすることができる。
【0183】
情報処理装置100によれば、現在の状態に対応する取引の実行指示を送信した際、現在の状態に対応する取引の実行結果の待ち受け状態に移行し、待ち受け状態において、現在の状態に対応する取引の実行結果を受け付けることができる。情報処理装置100によれば、取得した状態データに規定された条件と、受け付けた実行結果とに基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定することができる。これにより、情報処理装置100は、一連の取引に含まれる取引の実行結果に応じて、一連の取引を適切に進めることができる。
【0184】
情報処理装置100によれば、待ち受け状態において、現在の状態に対応する取引の実行結果を受け付けずに一定時間が経過したことを検出することができる。情報処理装置100によれば、一定時間が経過したことを検出した場合、取得した状態データに規定された条件と、一定時間が経過したことを検出した結果とに基づいて、第1のBCネットワークと連携して、一連の取引の次の状態を確定することができる。これにより、情報処理装置100は、一連の取引に含まれる取引が実行失敗したことに応じて、一連の取引を適切に進めることができる。
【0185】
情報処理装置100によれば、一連の取引を識別する識別情報に基づいて、第1のBCネットワークから、現在の状態に対応する状態データを取得することができる。これにより、情報処理装置100は、現在の状態に対応する状態データを適切に取得することができる。
【0186】
情報処理装置100によれば、第1の分散台帳を管理するスマートコントラクトにより、第1の分散台帳を管理する第1のBCネットワークと連携することができる。これにより、情報処理装置100は、第1の分散台帳を管理するスマートコントラクトを利用することができる。
【0187】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した制御プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した制御プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0188】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0189】
(付記1)複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
処理をコンピュータが実行することを特徴とする制御方法。
【0190】
(付記2)前記第1のブロックチェーンネットワークは、さらに、前記一連の取引のそれぞれの状態に対応する状態データの元データを管理し、
前記一連の取引の開始時に、前記一連の取引に関するパラメータを、前記一連の取引に関するユーザ端末から取得し、
前記第1のブロックチェーンネットワークから、前記一連の取引の初期の状態に対応する状態データの元データを取得し、取得した前記元データに、取得した前記パラメータを組み合わせて作成される、前記初期の状態に対応する状態データの記録要求を、前記第1のブロックチェーンネットワークに送信する、
処理を前記コンピュータが実行することを特徴とする付記1に記載の制御方法。
【0191】
(付記3)前記第1のブロックチェーンネットワークは、さらに、前記一連の取引のそれぞれの状態に対応する状態データの元データを管理し、
前記確定する処理は、
取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定し、前記第1の分散台帳に記録された、前記現在の状態に対応する状態データを、前記現在の状態の状態遷移先に対応する状態データに更新する、ことを特徴とする付記1または2に記載の制御方法。
【0192】
(付記4)前記現在の状態に対応する取引の実行指示を送信した際、前記現在の状態に対応する取引の実行結果の待ち受け状態に移行し、
前記待ち受け状態において、前記現在の状態に対応する取引の実行結果を受け付ける、
処理を前記コンピュータが実行し、
前記確定する処理は、
取得した前記状態データに規定された前記条件と、受け付けた前記実行結果とに基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、ことを特徴とする付記1~3のいずれか一つに記載の制御方法。
【0193】
(付記5)前記待ち受け状態において、前記現在の状態に対応する取引の実行結果を受け付けずに一定時間が経過したことを検出する、
処理を前記コンピュータが実行し、
前記確定する処理は、
前記一定時間が経過したことを検出した場合、取得した前記状態データに規定された前記条件と、前記一定時間が経過したことを検出した結果とに基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、ことを特徴とする付記4に記載の制御方法。
【0194】
(付記6)前記第1のブロックチェーンネットワークは、さらに、前記一連の取引を識別する識別情報に、前記現在の状態に対応する状態データを識別する識別情報を対応付けて管理し、
前記状態データを取得する処理は、
前記一連の取引を識別する識別情報に基づいて、前記第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得する、ことを特徴とする付記1~5のいずれか一つに記載の制御方法。
【0195】
(付記7)前記状態データを取得する処理は、
前記待ち受け状態において、前記現在の状態に対応する取引の実行結果を受け付けた際、前記状態データを再び取得する、ことを特徴とする付記4に記載の制御方法。
【0196】
(付記8)前記第1のブロックチェーンネットワークは、前記第1の分散台帳を管理するスマートコントラクトにより、前記第1の分散台帳を管理する、ことを特徴とする付記1~7のいずれか一つに記載の制御方法。
【0197】
(付記9)複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。
【0198】
(付記10)複数のブロックチェーンネットワークを介して実行される一連の取引に関するパラメータと、前記一連の取引の現在の状態に対応する取引の手順と、前記一連の取引における状態遷移に関する条件とが規定された、前記現在の状態に対応する状態データを記録する第1の分散台帳を管理する第1のブロックチェーンネットワークから、前記現在の状態に対応する状態データを取得し、
取得した前記状態データに規定された前記現在の状態に対応する取引の手順に、取得した前記状態データに規定されたいずれかのパラメータを付与することにより作成された、前記現在の状態に対応する取引の実行指示を、前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークに送信し、
送信した前記取引の実行指示が前記複数のブロックチェーンネットワークに含まれるブロックチェーンネットワークにおいて処理された結果を受信した場合に、取得した前記状態データに規定された前記条件に基づいて、前記第1のブロックチェーンネットワークと連携して、前記一連の取引の現在の状態の状態遷移先を確定する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0199】
100 情報処理装置
101,503,800,1000,1100,1200 状態データ
110 第1のBCネットワーク
111 第1の分散台帳
120 BCネットワーク
200 取引制御システム
201 連携専用ノード
202 連携対象ノード
203 ユーザ端末
210 ネットワーク
211 連携専用BCネットワーク
212 連携専用BC台帳
221 連携対象BCネットワーク
222 連携対象BC台帳
300,400,600 バス
301,401,601 CPU
302,402,602 メモリ
303,403,603 ネットワークI/F
304,404,604 記録媒体I/F
305,405,605 記録媒体
501 取引管理データ
502,801 元データ
700 記憶部
701 取得部
702 検索部
703 更新部
704 指示部
705 出力部
900 状態遷移管理手段
901 取引指示作成手段
902 イベントフィルタ手段
903 取引指示送信手段
904 データ受信手段
1400 対応DB
1401 ブロックデータ
1402 イベントデータ