(57)【要約】【課題】異なるブロックチェーンネットワークのブロックチェーン間での価値移転の取引の進捗を把握する。【解決手段】異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行する取引実行部と、前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する監視部と、を有する取引管理装置が提供される。【選択図】図１
2020046961.tif 000002
【特許請求の範囲】
【請求項１】
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行する取引実行部と、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する監視部と、
を有する取引管理装置。
【請求項２】
前記監視部は、
前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けてユーザ毎に記憶した前記記憶部を参照して、ユーザ毎の各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
請求項１に記載の取引管理装置。
【請求項３】
前記監視部は、
監視した前記各ブロックチェーンの対象データの価値の移転の確定状態に基づき、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられたブロックチェーンの対象データのいずれかの価値の移転が確定していないと判定した場合、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられた確定しているブロックチェーンの対象データの価値の移転をキャンセルした状態におけるユーザ毎の各ブロックチェーンの対象データの価値を参照させる、
請求項２に記載の取引管理装置。
【請求項４】
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行し、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
処理をコンピュータが実行する取引管理方法。
【請求項５】
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行し、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
処理をコンピュータに実行させる取引管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、取引管理装置、取引管理方法及び取引管理プログラムに関する。
【背景技術】
【０００２】
Ｐ２Ｐネットワークに流通しているブロックチェーンデータから取得される、評価対象に関する対象データに基づいて、評価対象を評価する技術が知られている（例えば、特許文献１参照）。ブロックチェーンデータとしては、例えば、ビットコイン等の仮想通貨のデータのやり取りに用いられるブロックチェーンデータが挙げられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１７／０９０３２９号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００４】
異なるブロックチェーンネットワークの一方のブロックチェーンから他方のブロックチェーンに仮想通貨等の対象データの価値の移転（例えば両替）を行うと、各ブロックチェーンのブロック上のトランザクション処理は非同期で確定する。また、各ブロックチェーン上でトランザクション処理を実行してからその処理が確定するまでの時間は異なる。そのため、任意のタイミングで対象データの残高（価値の総量）を参照すると、実際よりも残高が多くなったり、少なくなったりする場合がある。例えば、出金側の仮想通貨のブロックチェーンでの処理が入金側の仮想通貨のブロックチェーンでの処理よりも早く確定すると、一時的に総資産が少なくなる。
【０００５】
本発明では、異なるブロックチェーンネットワークのブロックチェーン間での価値移転の取引の進捗を把握できる手法を提供する。
【課題を解決するための手段】
【０００６】
１つの実施態様では、異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行する取引実行部と、前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する監視部と、を有する取引管理装置が提供される。
【発明の効果】
【０００７】
１つの側面では、本開示は、異なるブロックチェーンネットワークのブロックチェーン間での価値移転の取引の進捗を把握できる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る取引管理システムの全体構成の一例を示す図。
【図２】ブロックチェーンを説明する図。
【図３】異なるブロックチェーンネットワーク間におけるブロックチェーン間での価値移転を説明する図。
【図４】一実施形態に係るサーバ及び端末の機能構成の一例を示す図。
【図５】一実施形態に係る取引確定テーブル及び取引中テーブルの一例を示す図。
【図６】一実施形態に係るサーバのハードウェア構成の一例を示す図。
【図７】一実施形態に係る価値移転及び参照処理の一例を示すフローチャート。
【図８】一実施形態に係る価値移転処理の一例を示すフローチャート。
【図９】一実施形態に係る価値移転処理を説明する図。
【図１０】一実施形態に係る取引実行処理の一例を示すフローチャート。
【図１１】一実施形態に係る参照処理の一例を示すフローチャート。
【図１２】一実施形態に係る参照処理を説明する図。
【発明を実施するための形態】
【０００９】
以下、一実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１０】
［取引管理システムの全体構成］
まず、一実施形態に係る取引管理システム１の構成の一例について、図１を参照しながら説明する。図１は、一実施形態に係る取引管理システム１の全体構成の一例を示す図である。一実施形態に係る取引管理システム１は、サーバ１０及び端末２０を有する。
【００１１】
サーバ１０は、ネットワーク４０を介してユーザ（ブロックチェーン利用者）の端末２０に接続されている。サーバ１０は、インターネット等のネットワーク３０を介して複数の異なるブロックチェーンネットワークＮＷ１、ＮＷ２に接続されている。図１では、サーバ１０は、異なる２つのブロックチェーンネットワークＮＷ１、ＮＷ２に接続されているが、これに限られず、３つ以上の異なるブロックチェーンネットワークに接続され得る。
【００１２】
端末２０は、異なる複数のブロックチェーンネットワークＮＷ１、ＮＷ２等に通信可能であり、端末２０上で動作するアプリケーションにて異なるブロックチェーンネットワークＮＷ１、ＮＷ２等に対して取引を実行する手段を有する。
【００１３】
各ブロックチェーンネットワークＮＷ１、ＮＷ２では、ピアツーピア（Ｐ２Ｐ）ネットワークにてそれぞれの対象データが流通している。例えば、図１では、ブロックチェーンネットワークＮＷ１で流通するブロックチェーンＢＣ−Ａの対象データは、仮想通貨のＡコインであり、ブロックチェーンネットワークＮＷ２で流通するブロックチェーンＢＣ−Ｂの対象データは、仮想通貨のＢコインである。ただし、ブロックチェーンの取引（トランザクション）の対象データは、仮想通貨に限らず、株、証券、債権、不動産、ポイント等のすべての商品を対象とすることができる。
【００１４】
ブロックチェーンネットワークＮＷ１を拡大した図を参照すると、ブロックチェーンネットワークＮＷ１では、同じブロックチェーンＢＣの対象データを共有するノード群がネットワークＮＷ１で接続されている。
【００１５】
ここでは、対象データの一例である仮想通貨の取引をそれぞれのブロックチェーンＢＣ−Ａで管理する。ブロックチェーンＢＣ−Ａを管理する者は、人（ユーザ）であってもよいし、企業、団体、学校であってもよい。ここでは、対象データがＡコインのブロックチェーンＢＣ−Ａを共有するノード群Ｎ１１、Ｎ１２、Ｎ１３が会社Ｓ、会社Ｔ、会社Ｕにより管理されているが、これに限られず、ブロックチェーンＢＣ−Ａは異なる対象データのブロックチェーンであってもよい。
【００１６】
同様にして、ブロックチェーンネットワークＮＷ１と異なるブロックチェーンネットワークＮＷ２には、対象データがＢコインのブロックチェーンＢＣ−Ｂを共有するノード群Ｎ２１、Ｎ２２、Ｎ２３が存在する。ただし、これに限られず、ブロックチェーンＢＣ−Ｂは異なる対象データのブロックチェーンであってもよい。
【００１７】
なお、サーバ１０は、異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間の価値の移転を管理する取引管理装置の一例である。
【００１８】
ただし、これに限られず、サーバ１０の替わりに端末２０が上記価値の移転を管理してもよい。この場合、取引管理システム１は、サーバ１０を有さなくてもよい。例えば、端末２０が以下に説明するサーバ１０の機能を有し、端末２０がネットワーク３０を介してブロックチェーンネットワークＮＷ１、ＮＷ２に接続されるシステムが構築されてもよい。かかる構成の取引管理システム１において、端末２０は、上記取引管理装置の一例となる。
【００１９】
サーバ１０及び端末２０は、パーソナルコンピュータ、タブレット型端末、スマートフォン、ＰＤＡ（Personal  Digital  Assistants）等の情報処理装置のいずれであってもよい。サーバ１０及び端末２０には、ＨＭＤ（Head  Mount  Display）、ＦＭＤ（Face  Mount  Display）、時計型等のウェアラブルデバイスの情報処理装置が適用されてもよい。
【００２０】
［ブロックチェーン］
本実施形態に係るブロックチェーン上での取引の対象データについて、図２を参照しながら説明する。ブロックチェーンにおけるブロックチェーンデータは、複数のブロック（例えば、Ｂｎ−１、Ｂｎ・・・）が、鎖のように繋がって管理されるデータである。それぞれのブロックには、１又は２以上のトランザクションデータが格納されている。トランザクションデータは、仮想通貨の入金や出金、債券や株の売買等の取引の内容を示すデータである。例えば、ブロックＢｎ−１には、６つのトランザクション（ＴＸ１〜ＴＸ６）のデータが格納されている。
【００２１】
本実施形態では、例えばビットコイン等の仮想通貨（ＡコインとＢコインとする）のデータのやり取りに用いられるブロックチェーンデータを例に挙げて説明する。本実施形態に使用されるブロックチェーンデータでは、例えばナンス（Ｎｏｎｃｅ）と呼ばれる値によって、改ざんが防止される。
【００２２】
新たなブロック（例えば、図５のＢｎ＋１ブロック）を生成する際、ブロックチェーンに含まれていないトランザクションのデータを収集する。新たなブロックＢｎ＋１に、収集したトランザクションのデータ（例えばＴＸ２１〜ＴＸ２６）と、現在のブロックチェーンの末尾のブロックＢｎのハッシュ値（２５６ビット）を含める。ナンスの計算では、現在生成中のブロックＢｎ＋１に対して、暗号学的ハッシュ関数を適用した場合のハッシュ値の先頭のｋビットがすべて“０”になる条件を満たすような値を設定する。これにより、ブロックの改ざんが防止される。
【００２３】
［価値の総量の不整合］
図１に示す取引管理システム１において、ブロックチェーンネットワークＮＷ１とブロックチェーンネットワークＮＷ２とは異なるブロックチェーンネットワークであり、基本的にブロックチェーンＢＣ−Ａの対象データであるＡコインと、ブロックチェーンＢＣ−Ｂの対象データであるＢコインとのデータは共有されない。
【００２４】
そして、本実施形態では、同じブロックチェーンネットワークＮＷ１内における各コインの価値の移転について対象としない。本実施形態では、ブロックチェーンネットワークＮＷ１内でブロックチェーンＢＣ−Ａにより管理されているＡコインと、ブロックチェーンネットワークＮＷ２内でブロックチェーンＢＣ−Ｂによりで管理されているＢコインの一方から他方へ価値を移転する場合を対象とする。このとき、Ａコイン又はＢコインの一方のコインの出金と他方のコインの入金との間で非同期に取引が確定する。以下、ブロックチェーンＢＣ−Ａを単にＢＣ−Ａと表記し、ブロックチェーンＢＣ−Ｂを単にＢＣ−Ｂと表記し、ＢＣ−Ａ、ＢＣ−Ｂを含むブロックチェーンを総称してＢＣとも表記する。
【００２５】
図３を参照して具体的に説明する。端末２０において動作するアプリケーションによって、ユーザＡがＢＣ−Ｂで管理されている５枚のＢコインを、ＢＣ−Ａで管理されている５枚のＡコインへの価値移転の要求（以下、「価値移転リクエスト」ともいう。）をしたとする。これに応じて、各コインの価値の移転のトランザクションが実行される。
【００２６】
ここでは説明を簡単にするために、ＡコインとＢコインの価値の比は、１：１とする。また、ＢＣ−Ａでは６０秒毎にトランザクションが確定し、ＢＣ−Ｂでは２０秒毎にトランザクションが確定することとする。なお、ＢＣ−ＡとＢＣ−Ｂとのトランザクションの確定タイミングは非同期であり、連動していない。
【００２７】
図３の例では、ＢＣ−ＢにおいてユーザＡが所持する１００枚のＢコインから５枚のＢコインを出金するトランザクションが実行され（Ｂコイン：−５）、時刻ｔｌにこの取引の処理が確定する。また、ＢＣ−ＡにおいてユーザＡが所持する１００枚のＡコインに５枚のＡコインを入金するトランザクションが実行され（Ａコイン：＋５）、時刻ｔ３にこの取引の処理が確定する。
【００２８】
このように各取引の処理が非同期に確定するため、ユーザＡの所持するコインの総数は、時刻ｔ１と時刻ｔ３との間の時刻ｔ２では１９５コインとなり、時刻ｔ３後の時刻ｔ４では２００コインとなる。
【００２９】
以上のように、ブロックチェーンは取引を実行してから非同期で処理が確定する仕組みであり、取引を実行してからその処理が確定するまでに一定の時間が必要である。つまり、ユーザＡが入金及び出金の操作をしてから直ぐにその処理が確定せず、しばらくしてからそのリクエスト処理が確定する仕組みになっている。このため、任意のタイミングであるユーザが自分のＡコインとＢコインの価値の総量を参照すると、実際より価値の総量が多くなったり、少なくなったりして、ブロックチェーン間で価値の総量を維持した状態で各コインの価値を参照できない場合が生じる。例えば、出金側のＢコインのブロックチェーンＢＣ−Ｂでの処理が入金側のＡコインのブロックチェーンＢＣ−Ａでの処理よりも早く確定すると、一時的に総資産が少なくなる。
【００３０】
この不整合は、サーバ１０が、異なるブロックチェーンネットワークＮＷ１、ＮＷ２の取引を時系列に管理したときに生じる。つまり、例えば同じブロックチェーンネットワークＮＷ１内の取引を時系列に管理したときや、同じブロックチェーンネットワークＮＷ２内の取引を時系列に管理したときには生じない。
【００３１】
ユーザは、決算などのときに移転中のコインの価値が実際より減らないように価値の総量を参照したい。そこで、以下に説明する一実施形態に係る取引管理方法では、異なるブロックチェーンネットワークのブロックチェーン間で価値の総量を維持した状態でコインの残高を参照することが可能な技術を提供する。
【００３２】
なお、ブロックチェーンＢＣのトランザクション（ＴＸ）が確定するとは、図２に示すブロックが任意の計算機によって生成されるときを意味する。ブロックの生成ルールとしては、ブロックチェーンＢＣはトランザクションが実行されると、あるタイミングでそのトランザクションをまとめてブロックとする。
【００３３】
上記あるタイミングは、ブロックチェーンＢＣに対してトランザクションが実行されたときに、ブロック生成間隔（時間）及びブロックサイズに基づき以下の２つの条件のいずれかを満たしたときであり、このときにトランザクションが確定する。１つ目の条件は、まだブロックに含まれないトランザクションの総量がブロックサイズを超えておらず、かつブロック生成間隔を経過したときであり、このときにブロックが生成されトランザクションが確定する。２つ目の条件は、まだブロックに含まれないトランザクションの総量がブロックサイズを超えたときであり、このときにブロックが生成されトランザクションが確定する。
【００３４】
［機能構成］
次に、一実施形態に係る取引管理方法を実行するサーバ１０及び端末２０の機能構成の一例について、図４を参照しながら説明する。図４は、一実施形態に係るサーバ１０及び端末２０の機能構成の一例を示す図である。
【００３５】
端末２０は、要求送信部２１、制御部２２及び記憶部２３を有する。記憶部２３には、アプリケーションプログラム２４が格納されている。アプリケーションプログラム２４は、ユーザが所持する端末２０で動作し、価値移転及び参照処理を要求するためのプログラム（以下、「アプリ２４」ともいう。）である。アプリ２４は、取引所にある端末２０で動作してもよい。
【００３６】
制御部２２は、アプリ２４を動作させ、ユーザ操作に応じて出金取引や入金取引等の価値移転リクエストを出力する。また、制御部２２は、アプリ２４を動作させ、ユーザ操作に応じて各ブロックチェーンのコインの残高の参照要求（以下、「価値参照リクエスト」ともいう。）を出力する。要求送信部２１は、価値移転リクエスト及び価値参照リクエストを受け付け、サーバに通知する。
【００３７】
サーバ１０は、要求受信部１１、移転処理部１２、参照処理部１３、取引実行部１４、監視部１５及び記憶部１６を有する。記憶部１６は、取引確定テーブル１７、取引中テーブル１８及び取引管理プログラム１９を記憶する。
【００３８】
図５（ａ）は、一実施形態に係る取引確定テーブル１７の一例を示す図である。図５（ｂ）は、一実施形態に係る取引中テーブル１８の一例を示す図である。各テーブルにはユーザ毎に各種データが記憶されている。各ユーザの識別子は、アカウント名（ユーザＩＤ、会社ＩＤ等）であってもよい。
【００３９】
図５（ａ）に示す取引確定テーブル１７は、取引が確定したデータを記憶する。取引確定テーブル１７は、価値移転ＩＤ、移転元ＢＣ識別子、移転元ＴＸ（トランザクション）確定ブロック、移転元ＴＸＩＤ、移転先ＢＣ識別子、移転先ＴＸ確定ブロック、移転先ＴＸＩＤの各データを記憶する。価値移転ＩＤは、異なるブロックチェーンネットワークＮＷ１、ＮＷ２のそれぞれのブロックチェーンＢＣ−Ａ、ＢＣ−ＢにおいてペアとなるＡコイン及びＢコインの価値移転を紐付ける価値移転識別情報の一例である。
【００４０】
図５（ａ）の例では、ＢＣ−Ａのブロック１０のＴＸＩＤ「ｂｂｂｂ」のトランザクションと、ＢＣ−Ｂのブロック２４６のＴＸＩＤ「ａａａａ」のトランザクションとが、価値移転ＩＤ「ｘｘｘｘ」により紐付けられている。
【００４１】
図５（ｂ）に示す取引中テーブル１８は、取引中のデータを記憶する。取引中テーブル１８は、価値移転ＩＤ、移転元ＢＣ識別子、移転元ＴＸ確定ブロック、移転元ＴＸＩＤの各データを記憶する。図５（ｂ）の例では、ＢＣ−Ａのブロック１０のＴＸＩＤ「ｃｃｃｃ」のトランザクションが、価値移転ＩＤ「ｙｙｙｙ」に紐付けられている。
【００４２】
図４に戻り、要求受信部１１は、端末２０の要求送信部２１から送信された価値移転リクエスト及び価値参照リクエストを受信する。
【００４３】
移転処理部１２は、受信した価値移転リクエストに従い、Ａコイン及びＢコインの出金や入金のトランザクション処理を実行する。
【００４４】
参照処理部１３は、受信した価値参照リクエストに従い、Ａコイン及びＢコインの残高の参照処理を実行する。
【００４５】
取引実行部１４は、異なるブロックチェーンネットワークの一方のブロックチェーンデータと他方のブロックチェーンデータとの間の価値移転の取引を実行する。本実施形態では、取引実行部１４は、価値移転リクエストに従ったＡコイン及びＢコインの出金や入金のトランザクション処理を実行する。
【００４６】
監視部１５は、価値移転ＩＤを記憶した取引確定テーブル１７及び取引中テーブル１８を参照して、ＢＣ−Ａ及びＢＣ−Ｂ間における各コインの出金や入金のトランザクション処理の確定状態を監視する。
【００４７】
また、監視部１５は、監視したＢＣ−Ａ及びＢＣ−Ｂの各コインの価値の移転の確定状態に基づき、価値移転ＩＤにより紐付けられたＢＣ−Ａ及びＢＣ−Ｂの各コインのいずれかのトランザクションが確定していないか（つまり、取引中か）を判定する。監視部１５は、取引中を判定した場合、価値参照リクエストに対して価値移転ＩＤにより紐付けられた確定しているブロックチェーンの対象データのトランザクションをキャンセルした状態を計算し、ＢＣ−Ａ及びＢＣ−Ｂの各コインの価値又は当該価値の総量を参照させる。
【００４８】
［ハードウェア構成］
次に、一実施形態に係るサーバ１０のハードウェア構成の一例について、図６を参照しながら説明する。図６は、一実施形態に係るサーバ１０のハードウェア構成の一例を示す図である。なお、端末２０のハードウェア構成は、サーバ１０のハードウェア構成と同一であるため、説明を省略する。
【００４９】
サーバ１０は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３を有する。また、サーバ１０は、ＲＡＭ（Random  Access  Memory）１０４、ＲＯＭ（Read  Only  Memory）１０５、ＣＰＵ（Central  Processing  Unit）１０６、通信Ｉ／Ｆ１０７及びＨＤＤ（Hard  Disk  Drive）１０８を有し、それぞれがバスＢで相互に接続されている。
【００５０】
入力装置１０１は、キーボードやマウスなどを含み、サーバ１０に各操作信号を入力するために用いられる。表示装置１０２は、ＬＣＤ（Liquid  crystal  Display）モニタ等のディスプレイ、プリンタ、ＣＲＴ（Cathode  Ray  Tube）などを含み、各種の処理結果を表示する。
【００５１】
通信Ｉ／Ｆ１０７は、サーバ１０をネットワーク３０、４０に接続するインターフェースである。これにより、サーバ１０は、通信Ｉ／Ｆ１０７を介して端末２０やブロックチェーンネットワークＮＷ１、ＮＷ２のブロックチェーンＢＣ−Ａ、ＢＣ−Ｂのトランザクションのデータをやり取りする。
【００５２】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８に格納されるプログラムやデータには、サーバ１０の全体を制御するソフトウェア及びアプリケーションソフトウェアがある。ＨＤＤ１０８には、取引確定テーブル１７、取引中テーブル１８及び取引管理プログラム１９が格納されてもよい。
【００５３】
外部Ｉ／Ｆ１０３は、外部装置とのインターフェースである。外部装置には、記録媒体１０３ａなどがある。これにより、サーバ１０は、外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａは、ＣＤ（Compact  Disk）、ＤＶＤ（Digital  Versatile  Disk）であってもよい。記録媒体１０３ａは、ＳＤメモリカード（SD  Memory  card）やＵＳＢメモリ（Universal  Serial  Bus  memory）等であってもよい。
【００５４】
ＲＯＭ１０５は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ＲＯＭ１０５には、基本プログラム及びデータが格納されている。ＲＡＭ１０４は、データを一時保持する揮発性の半導体メモリであり、取引管理プログラム１９、取引確定テーブル１７、取引中テーブル１８を一時的に保持してもよい。ＣＰＵ１０６は、ＨＤＤ１０８やＲＯＭ１０５などの記憶装置から、取引管理プログラム１９及び各種データをＲＡＭ１０４上に読み出し、所定の処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【００５５】
なお、図４は機能に着目したブロック図を描いており、これらの機能ブロックで示した各部のソフトウェアを実行するプロセッサはハードウェアである。例えば、移転処理部１２、参照処理部１３、取引実行部１４、監視部１５の機能は、取引管理プログラム１９がＣＰＵ１０６に実行させる取引実行処理、価値移転処理、参照処理により実現される。
【００５６】
要求受信部１１の機能は、例えば、通信Ｉ／Ｆ１０７により実現可能である。記憶部１６の機能は、例えば、ＲＡＭ１０４、ＲＯＭ１０５及びＨＤＤ１０８により実現可能である。取引確定テーブル１７及び取引中テーブル１８に記憶されているデータは、ＲＡＭ１０４、ＲＯＭ１０５、ＨＤＤ１０８又はサーバ１０に接続されるクラウド上のサーバ等に格納されてもよい。
【００５７】
［価値移転及び参照処理］
次に、本実施形態に係る価値移転及び参照処理の一例について図７を参照して説明する。図７は、一実施形態に係る価値移転及び参照処理の一例を示すフローチャートである。本処理が開始されると、要求受信部１１は、価値移転リクエスト又は価値参照リクエストの少なくともいずれかの要求を端末２０から受信する（ステップＳ１０）。
【００５８】
次に、要求受信部１１は、受信した要求の処理内容を判定する（ステップＳ１１）。要求受信部１１は、受信した要求の処理内容が「価値移転」か否かを判定する（ステップＳ１２）。要求受信部１１が、受信した要求の処理内容が「価値移転」であると判定した場合、移転処理部１２は、価値移転処理を実行する（ステップＳ１３）。価値移転処理の具体的内容の一例は、図８のフローチャートを参照して次に説明される。
【００５９】
要求受信部１１は、受信した要求の処理内容が「価値移転」でないと判定した場合、参照処理部１３は、参照処理を実行する（ステップＳ１４）。参照処理の具体的内容の一例は図１１のフローチャートを参照して後述される。
【００６０】
［価値移転処理］
次に、本実施形態に係る価値移転処理の一例について図８及び図９を参照して説明する。図８は、一実施形態に係る価値移転処理の一例を示すフローチャートである。図９は、一実施形態に係る価値移転処理を説明する図である。なお、価値移転処理は、ユーザ毎に実行される。ここでは、ユーザＡの操作に従い、端末２０からの価値移転リクエストに応じて、サーバ１０は、ユーザＡの異なるブロックチェーンネットワークＮＷ１，ＮＷ２間におけるＢＣ−ＡのＡコインとＢＣ−ＢのＢコインとの間の価値移転のトランザクションを実行する。
【００６１】
ＢＣ−ＡのＡコインは、一のブロックチェーンネットワークで管理される一のブロックチェーンの対象データの一例である。ＢＣ−ＢのＢコインは、一のブロックチェーンネットワークと異なる他のブロックチェーンネットワークで管理される他のブロックチェーンの対象データの一例である。
【００６２】
本処理は、図７のステップＳ１３において呼び出されることで開始される。移転処理部１２は、端末２０からの価値移転リクエストに従って価値移転リクエストを一意に特定できる価値移転ＩＤを発行する（ステップＳ２０）。例えば、図９の例では、移転元ＢＣ識別子がＢＣ−Ｂのブロック番号「２４６」のＴＸＩＤ「ａａａａ」のトランザクションと、移転先ＢＣ識別子がＢＣ−Ａのブロック番号「１０」のＴＸＩＤ「ｂｂｂｂ」のトランザクションとを紐付ける価値移転ＩＤ「ｘｘｘｘ」が発行されている。
【００６３】
次に、取引実行部１４に対して各トランザクションの実行を要求する（ステップＳ２２、Ｓ２８）。ステップＳ２２では、移転処理部１２は、価値移転元ＢＣのＢＣ−Ｂに出金要求を行う。出金要求のトランザクションの実行処理については、図１０を参照して後述される。
【００６４】
次に、移転処理部１２は、ＢＣ−Ａ及びＢＣ−Ｂを監視し、出金のトランザクションの処理結果が成功（正常終了）であるかを判定する（ステップＳ２４）。移転処理部１２は、価値移転ＩＤ「ｘｘｘｘ」に紐付けられたトランザクションを含むブロックが作成されると、トランザクションの処理結果が成功（正常終了）であると判定する。移転処理部１２は、出金のトランザクションの処理結果が成功であると判定すると、トランザクション（ＴＸ）の結果（処理済の確定ブロックとトランザクションＩＤ）と価値移転ＩＤを紐付けて取引中テーブル１８に保存し（ステップＳ２６）ステップＳ２８に進む。
【００６５】
例えば、図９の例では、ＢＣ−Ａの処理済の確定ブロック「１０」のトランザクションＩＤ「ｃｃｃｃ」が価値移転ＩＤ「ｙｙｙｙ」に紐付けられ、取引中テーブル１８に記憶されている。
【００６６】
なお、ステップＳ２４において、移転処理部１２は、出金のトランザクションの処理結果が成功でないと判定すると本処理を終了する。
【００６７】
ステップＳ２８において、移転処理部１２は、価値移転先ＢＣに入金要求を行う。移転処理部１２は、ＢＣ−Ａ及びＢＣ−Ｂを監視し、入金のトランザクションの処理結果が成功（正常終了）であるかを判定する（ステップＳ３０）。移転処理部１２は、入金のトランザクションの処理結果が成功であると判定すると、取引中テーブル１８の当該価値移転ＩＤに関するレコードを取引確定テーブル１７に移動し、更に入金のトランザクションの結果を追記し（ステップＳ３２）、本処理を終了する。
【００６８】
例えば、入金と出金のトランザクションの処理結果が成功であると判定されると、図９に示すように、入金と出金のトランザクションの処理結果が価値移転ＩＤに紐付けられて取引確定テーブル１７に記憶され、取引中テーブル１８から対応するデータが削除される。ここでは、ＢＣ−Ａの処理済の確定ブロック「１０」のトランザクションＩＤ「ｂｂｂｂ」及びＢＣ−Ｂの処理済の確定ブロック「２４６」のトランザクションＩＤ「ａａａａ」が価値移転ＩＤ「ｘｘｘｘ」により紐付けられて記憶されている。
【００６９】
ステップＳ３０において、移転処理部１２が、トランザクションの処理結果が成功でないと判定すると、価値移転元ＢＣに入金要求（ステップＳ２２にて要求された出金要求をキャンセルするための返金要求）を行う（ステップＳ３４）。なお、トランザクションの処理結果が成功でない場合は、通信異常や取引の残高が足りないときに発生する。
【００７０】
次に、移転処理部１２は、取引中テーブル１８から、トランザクションの処理結果が成功でないと判定された価値移転ＩＤ、処理済の確定ブロック及びブロックチェーン上のトランザクションＩＤを削除し（ステップＳ３６）、本処理を終了する。
【００７１】
図９の例では、端末２０上のアプリを動作させ、価値移転リクエストが通知されると、サーバ１０はかかる価値移転リクエストを受け付け、図８のステップＳ２２及びステップＳ２８の要求に応じて、図１０に一例を示すように、出金と入金の取引が実行される。図９の例では、５枚のＢコインと５枚のＡコインを移転する取引と、１枚のＡコインと１枚のＢコインを移転する取引が実行される。ＡコインとＢコインの価値の比は、１：１である。
【００７２】
価値移転リクエストに応じた取引実行処理は、取引実行部１４により実行される。図１０に一例を示すように、取引実行部１４は、指定のブロックチェーンにトランザクションを実行させ、変数ｓｔａｒｔに現在時刻を設定する（ステップＳ１５）。
【００７３】
例えば、図８のステップＳ２２の出金要求では、価値移転元のブロックチェーンに出金のトランザクションを実行させる。また、図８のステップＳ２８の入金要求では、価値移転先のブロックチェーンに入金のトランザクションを実行させる。
【００７４】
次に、取引実行部１４は、トランザクションの実行が確定したかを判定する（ステップＳ１６）。取引実行部１４は、当該トランザクションを含むブロックが作成されると、取引が確定したと判定し、トランザクションの処理結果が成功したと判断して本処理を終了する（正常終了）。
【００７５】
一方、ステップＳ１６において、取引実行部１４は、当該ブロックが作成されておらず、トランザクションの実行が確定していないと判定すると、変数ｓｔａｒｔにタイムアウトの時間を加算した値よりも現在時刻が大きいかを判定する（ステップＳ１７）。
【００７６】
取引実行部１４は、変数ｓｔａｒｔにタイムアウトの時間を加算した値と比較して現在時刻が小さい又は等しいと判定した場合、所定の時間待って（ステップＳ１８：スリープ）、ステップＳ１６に戻り、再度ステップＳ１６以降の処理を実行する。
【００７７】
取引実行部１４は、変数ｓｔａｒｔにタイムアウトの時間を加算した値よりも現在時刻が大きいと判定した場合、トランザクションの処理結果が失敗したと判断して本処理を終了する（異常終了）。
【００７８】
図１０のトランザクション処理の実行に従い、図９の例では、現在時刻ｔｎの時点では、ブロックチェーンＢＣ−Ｂのブロック番号２４６の５枚のＢコインの出金のトランザクションが確定している。また、ブロックチェーンＢＣ−Ａのブロック番号１０の５枚のＡコインの入金のトランザクションが確定している。これらの２つのトランザクションは、価値移転ＩＤ「ｘｘｘｘ」により紐付けられている。よって、現在時刻ｔｎにおいて、取引確定テーブル１７には、価値移転ＩＤ「ｘｘｘｘ」にて紐付けられたブロック番号１０のトランザクションＩＤ「ｂｂｂｂ」と、ブロック番号２４６のトランザクションＩＤ「ａａａａ」が記憶された状態になる。
【００７９】
更に、現在時刻ｔｎの時点では、ブロックチェーンＢＣ−Ａのブロック１０の１枚のＢコインの出金のトランザクションが確定している。しかし、この時点では、価値移転ＩＤ「ｙｙｙｙ」により紐付けられている、ブロックチェーンＢＣ−Ｂの１枚のＢコインの入金のトランザクション（ＴＸＩＤ「ｄｄｄｄ」）は確定していない。従って、取引中テーブル１８には、価値移転ＩＤ「ｙｙｙｙ」により紐付けられている、ブロックチェーンＢＣ−Ａの１枚のＡコインの出金のトランザクション（ＴＸＩＤ「ｃｃｃｃ」）が記憶された状態になる。
【００８０】
［参照処理］
次に、本実施形態に係る参照処理の一例について図１１及び図１２を参照して説明する。図１１は、一実施形態に係る参照処理の一例を示すフローチャートである。図１２は、一実施形態に係る参照処理を説明する図である。なお、参照処理は、ユーザ毎に実行される。
ここでは、ユーザＡの操作に従い、端末２０からの価値参照リクエストに応じて、サーバ１０は、ユーザＡの複数のブロックチェーンネットワーク間における各ブロックチェーンデータの価値の総量（残高）を算出する。そして、サーバ１０は、端末２０に残高を表示させ、ユーザＡに残高を参照させる  例えば、図１２の例では、価値参照リクエストが現在時刻ｔｎに通知されているとする。
【００８１】
本処理は、図７のステップＳ１４において呼び出されることで開始される。参照処理部１３は、取引確定テーブル１７及び取引中テーブル１８からデータを取得する（ステップＳ４０）。
【００８２】
次に、参照処理部１３は、変数ｉに１を設定する（ステップＳ４２）。次に、参照処理部１３は、取引確定テーブル１７に変数ｉが示す順番に記憶されているブロックチェーンから取引が確定している確定済の最新ブロックの番号を抽出する（ステップＳ４４）。図１２の右上に示す取引確定テーブル１７の例では、変数ｉが示す１番目に記憶されているＢＣ−Ａの確定済の最新ブロックの番号「１０」が抽出される。
【００８３】
図１１に戻り、次に、参照処理部１３は、当該最新ブロックのブロックチェーンの残高を取得する（ステップＳ４６）。図１２の例では、現在時刻ｔｎにおいてブロックチェーンＢＣ−ＡのユーザＡの所持コイン数（残高）は１０４コインである。
【００８４】
次に、参照処理部１３は、取引中テーブル１８に、当該最新ブロックまでのブロックについて取引中のトランザクションが存在するかを判定する（ステップＳ４８）。図１２の右上に示す取引中テーブル１８には、ＢＣ−Ａの最新ブロック番号「１０」のブロックまでについて取引中のトランザクション「ｃｃｃｃ」が存在する。
【００８５】
参照処理部１３は、当該最新ブロックまでの取引中のトランザクションが存在すると判定すると、取引中テーブル１８から取引中のトランザクションを取得する（ステップＳ５０）。図１２の例では、ブロックの番号「１０」の取引中のトランザクション「ｃｃｃｃ」が取得される。
【００８６】
次に、参照処理部１３は、最新ブロック番号の残高に対して、取得したトランザクションの取引をキャンセル（反映）した残高を算出する（ステップＳ５２）。図１２の例では、取得したトランザクション「ｃｃｃｃ」では、Ａコインを−１（１枚出金）している。この場合、参照処理部１３は、最新ブロック番号の残高に対して、取得したトランザクションの取引をキャンセル、つまり、Ａコインを＋１（１枚返却）して残高を算出する。その結果、Aコインの残高は、１０５（＝１０４＋１）コインになる。
【００８７】
次に、参照処理部１３は、変数ｉを一つ加算し、変数ｉが取引確定テーブル１７に記憶されたブロックチェーンの個数以下であるかを判定する（ステップＳ５６）。図１２の例では、取引確定テーブル１７には２つのブロックチェーンＢＣ−Ａ，ＢＣ−Ｂが記憶されている。
【００８８】
よって、変数ｉが２の場合、参照処理部１３は、ステップＳ５６において「Ｙｅｓ」と判定し、ステップＳ４４に戻り、取引確定テーブル１７のデータから取引が確定している最新ブロックの番号（確定済ブロック番号）を抽出する（ステップＳ４４）。例えば、図１２の例では、変数ｉが示す２番目に記憶されているＢＣ−Ｂの確定済の最新ブロックの番号「２４６」が抽出される。
【００８９】
図１１に戻り、次に、参照処理部１３は、当該最新ブロックのブロックチェーンの残高を取得する（ステップＳ４６）。図１２の例では、現在時刻ｔｎにおいてブロックチェーンＢＣ−ＢのユーザＡの所持コイン数（残高）は９５コインである。
【００９０】
次に、参照処理部１３は、取引中テーブル１８に、当該最新ブロックまでのブロックについて取引中のトランザクションが存在するかを判定する（ステップＳ４８）。図１２の右上に示す取引中テーブル１８には、ＢＣ−Ｂの最新ブロック番号「２４６」のブロックまたはそれ以前のブロックに取引中のトランザクションは存在しない。
【００９１】
この場合、ステップＳ４８において、参照処理部１３は「Ｎｏ」と判定し、変数ｉを一つ加算し、変数ｉが取引確定テーブル１７に記憶されたブロックチェーンの個数以下であるかを判定する（ステップＳ５６）。図１２の例では、取引確定テーブル１７には２つのブロックチェーンＢＣ−Ａ，ＢＣ−Ｂが記憶されているため、変数ｉが３の場合、参照処理部１３は、ステップＳ５６において「Ｎｏ」と判定し、ステップＳ５８に進む。ステップＳ５８において、参照処理部１３は、価値参照リクエストを送信した端末２０に残高を参照させ（ステップＳ５８）、本処理を終了する。
【００９２】
以上により、図１２の現在時刻ｔｎにおいて、ブロックチェーンＢＣ−ＢのユーザＡの所持コイン数（残高）は９５コインであり、Ｓ５２において算出されたブロックチェーンＢＣ−ＡのユーザＡの所持コイン数の１０５コインとともに端末２０に残高「２００」が表示される。これにより、ユーザＡは、異なるブロックチェーンネットワークＮＷ１，ＮＷ２のブロックチェーンＢＣ−Ａ、ＢＣ−Ｂ間での価値移転の取引の進捗を把握することができる。
【００９３】
以上に説明したように、一実施形態に係る取引管理システム１によれば、価値移転時、サーバ１０は、ブロックチェーンＢＣ−Ａ及びＢＣ−Ｂの価値移転のトランザクションのペアに対し一意な価値移転ＩＤを割り当てる。そして、サーバ１０は、価値移転の対象となるブロックチェーンＢＣのブロック内のトランザクションを実行する。これと共に、サーバ１０は、取引確定及び取引中状態を価値移転ＩＤに紐づけて取引確定テーブル１７及び取引中テーブル１８にて管理する。
【００９４】
価値参照時、サーバ１０は、取引確定テーブル１７を参照して、価値移転ＩＤにより紐付けられる価値移転のトランザクションペアが両方確定している時点までのブロックチェーンＢＣの確定済みブロックを読みだす。そして、サーバ１０は、取引中テーブル１８を参照して、確定済みブロック又はそれ以前のブロックにかかる取引中のトランザクションが存在するかを判定する。サーバ１０は、取引中のトランザクションが存在すると判定した場合、当該取引が未実施のものとして残高を計算する。これにより、ユーザは、異なるブロックチェーンネットワークのブロックチェーン間で価値が移転されたときのの価値移転の取引の進捗を把握することができる。
【００９５】
なお、当該取引が未実施のものとして残高を計算する処理は、出金のトランザクションが確定しているが、価値移転ＩＤにより紐付けられる入金のトランザクションが確定していない場合に、出金のトランザクションをキャンセルし、未実施のものとして残高を計算する。
【００９６】
また、当該取引が未実施のものとして残高を計算する処理は、入金のトランザクションが確定しているが、価値移転ＩＤにより紐付けられる出金のトランザクションが確定していない場合に、入金のトランザクションをキャンセルし、未実施のものとして残高を計算する。
【００９７】
以上、取引管理装置、取引管理方法及び取引管理プログラムを上記実施形態により説明したが、本開示に係る取引管理装置、取引管理方法及び取引管理プログラムは上記実施形態に限定されるものではなく、本開示の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
【００９８】
例えば、上記実施形態に係る取引管理システム１の構成は一例であり、本開示の範囲を限定するものではなく、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば、サーバ１０及び端末２０がネットワーク３０，４０を介して異なるブロックチェーンネットワークに接続されているシステム形態は、本実施形態に係る取引管理システム１の一態様であり、これに限定されない。例えば、本実施形態に係る取引管理システム１に含まれるサーバ１０及び端末２０の個数は複数であってもよい。また、接続される異なるブロックチェーンネットワークの個数は２つ以上であればよく、可変であり得る。
【００９９】
サーバ１０によって実行される処理の一部がクラウドコンピュータで実行され、他の処理が端又はクラウドコンピュータと端末との間に配置されるフォグコンピュータで実行されるようなネットワークシステム内の複数のコンピュータが連携して一連の処理が行われてもよい。
【０１００】
以上の説明に関し、更に以下の項を開示する。
（付記１）
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行する取引実行部と、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する監視部と、
を有する取引管理装置。
（付記２）
前記監視部は、
前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けてユーザ毎に記憶した前記記憶部を参照して、ユーザ毎の各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
付記１に記載の取引管理装置。
（付記３）
前記監視部は、
監視した前記各ブロックチェーンの対象データの価値の移転の確定状態に基づき、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられたブロックチェーンの対象データのいずれかの価値の移転が確定していないと判定した場合、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられた確定しているブロックチェーンの対象データの価値の移転をキャンセルした状態におけるユーザ毎の各ブロックチェーンの対象データの価値を参照させる、
付記２に記載の取引管理装置。
（付記４）
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行し、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
処理をコンピュータが実行する取引管理方法。
（付記５）
前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けてユーザ毎に記憶した前記記憶部を参照して、ユーザ毎の各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
付記４に記載の取引管理方法。
（付記６）
監視した前記各ブロックチェーンの対象データの価値の移転の確定状態に基づき、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられたブロックチェーンの対象データのいずれかの価値の移転が確定していないと判定した場合、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられた確定しているブロックチェーンの対象データの価値の移転をキャンセルした状態におけるユーザ毎の各ブロックチェーンの対象データの価値を参照させる、
付記５に記載の取引管理方法。
（付記７）
異なるブロックチェーンネットワーク間において一のブロックチェーンの対象データと他のブロックチェーンの対象データとの間で価値の移転を実行し、
前記価値の移転にかかる前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けて記憶した記憶部を参照して、各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
処理をコンピュータに実行させる取引管理プログラム。
（付記８）
前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とを対応付けてユーザ毎に記憶した前記記憶部を参照して、ユーザ毎の各ブロックチェーンの対象データの価値の移転の確定状態を監視する、
付記７に記載の取引管理プログラム。
（付記９）
監視した前記各ブロックチェーンの対象データの価値の移転の確定状態に基づき、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられたブロックチェーンの対象データのいずれかの価値の移転が確定していないと判定した場合、前記一のブロックチェーンの対象データに対する取引と前記他のブロックチェーンの対象データに対する取引とにより対応付けられた確定しているブロックチェーンの対象データの価値の移転をキャンセルした状態におけるユーザ毎の各ブロックチェーンの対象データの価値を参照させる、
付記８に記載の取引管理プログラム。
【符号の説明】
【０１０１】
１    取引管理システム
１０  サーバ
１１  要求受信部
１２  移転処理部
１３  参照処理部
１４  取引実行部
１５  監視部
１６  記憶部
１７  取引確定テーブル
１８  取引中テーブル
１９  取引管理プログラム
２０  端末
２１  要求送信部
【図１】
2020046961.tif 000003
【図２】
2020046961.tif 000004
【図３】
2020046961.tif 000005
【図４】
2020046961.tif 000006
【図５】
2020046961.tif 000007
【図６】
2020046961.tif 000008
【図７】
2020046961.tif 000009
【図８】
2020046961.tif 000010
【図９】
2020046961.tif 000011
【図１０】
2020046961.tif 000012
【図１１】
2020046961.tif 000013
【図１２】
2020046961.tif 000014