(57)【要約】      （修正有）【課題】複数のブロックチェーンを効率的に連携する決済システム、決済方法、利用者装置、決済プログラムを提供する。【解決手段】決済システムは、雛形情報トランザクションを第１ブロックチェーンのネットワーク４に送信するサービス提供者装置２と、トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを第１ブロックチェーンのネットワーク４に送信する利用者装置１と、スマートコントラクト４１とを備える。スマートコントラクト４１は、電子署名を支払金額とトランザクションの雛形とを用いて検証し、サービス提供者装置２は、トランザクションの雛形と電子署名と支払金額とを用いて決済トランザクションを生成し、第２ブロックチェーンのネットワーク３に送信し、トランザクションの雛型には複数の出力条件が設定され、決済トランザクションは、複数の出力条件のいずれかを満たした場合に、利用可能となる。【選択図】図１
2020047104.tif 000002
【特許請求の範囲】
【請求項１】
第１ブロックチェーンと、第２ブロックチェーンとを連携した決済システムであって、
トランザクションの雛形を含む雛形情報トランザクションを、第１ブロックチェーンのネットワークに送信するサービス提供者装置と、
第１ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信する利用者装置と、
第１ブロックチェーンに含まれるスマートコントラクトと、を備え、
前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
前記サービス提供者装置は、第１ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第２ブロックチェーンのネットワークに送信し、
前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする決済システム。
【請求項２】
請求項１記載の決済システムであって、
前記利用者装置は、前記支払情報トランザクションのキャンセル要求を前記サービス提供者装置に送信し、前記サービス提供者装置により第１ブロックチェーンに登録された他のトランザクションの雛形を用いて生成される他の電子署名と、他の支払金額とを含むキャンセル用の他の支払情報トランザクションを、第１ブロックチェーンのネットワークに送信し、
前記サービス提供者装置は、前記他のトランザクションの雛型を含む他の雛形情報トランザクションを第１ブロックチェーンのネットワークに送信し、第１ブロックチェーンに登録された前記他の支払情報トランザクションに合意する場合、前記複数の出力条件に含まれるハッシュロックで指定されたハッシュの原像を含む原像トランザクションを、第１ブロックチェーンのネットワークに送信すること
を特徴とする決済システム。
【請求項３】
請求項１記載の決済システムであって、
前記利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、第２ブロックチェーンのネットワークに送信し、
前記送金トランザクションには、第１期間が経過すると前記利用者装置の電子署名のみで、前記送金トランザクションの利用が可能となる出力条件が設定されていること
を特徴とする決済システム。
【請求項４】
請求項３記載の決済システムであって、
前記複数の出力条件には、前記決済トランザクションが第２期間の経過後に利用可能となるタイムロックが含まれ、
前記スマートコントラクトは、第１期間よりも、第２期間が長いか否かを検証すること
を特徴とする決済システム。
【請求項５】
第１ブロックチェーンと、第２ブロックチェーンとを連携した決済方法であって、
サービス提供者装置は、
トランザクションの雛形を含む雛形情報トランザクションを、第１ブロックチェーンのネットワークに送信し、
利用者装置は、
第１ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、
前記電子署名と、支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信し、
第１ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
前記サービス提供者装置は、第１ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第２ブロックチェーンのネットワークに送信し、
前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする決済方法。
【請求項６】
第１ブロックチェーンと、第２ブロックチェーンとを連携した決済システムにおける利用者装置であって、
所定金額の保証金を送金する送金トランザクションを、第２ブロックチェーンのネットワークに送信する送金トランザクション生成部と、
サービス提供者装置により第１ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、
前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする利用者装置。
【請求項７】
請求項６に記載の利用者装置として、コンピュータを機能させることを特徴とする決済プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロックチェーンの技術に関し、特に、複数のブロックチェーンを連携させる技術に関する。
【背景技術】
【０００２】
中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みがデジタル仮想通貨ビットコインを中心に普及しつつある。ブロックチェーンと呼ばれるこの仕組みにおいては、やり取りされる情報の信頼性が分散ネットワーク内の合意形成のプロセスによって担保され、かつ、改ざんや二重使用などの不正を系全体で防ぐことで健全性が保たれる。
【０００３】
ブロックチェーンでは、参加者間の仮想通貨の取引情報（トランザクション）が「ブロック」という単位でまとめられ、各ブロックは数珠つなぎとなって時系列順に管理される。新たなブロックの承認は、Proof of Workなどの分散ネットワークにおける合意アルゴリズムによって形成される。新たなブロックの承認は、ブロック内部に記録された通貨取引が系全体で合意されたことを示す。このブロックチェーンを用いて管理される一連の取引情報の帳簿を「分散台帳」と呼び、ネットワークに参加する各ノード（端末）は同一の分散台帳を保持している。
【０００４】
ところで、ビットコインにおいて、オフチェーン取引と呼ばれる実装上の工夫がなされている。オフチェーン取引とは、全ての取引をブロックチェーンに記録するのではなく、ブロックチェーン外で実施した２者間の取引のうち、最終的な結果のみをブロックチェーンに記録する方式である。非特許文献１に示すように、オフチェーン取引の一方式であるペイメントチャネルでは、２者間の利用者で不完全なトランザクションのやりとりをすることで、仮想的な支払いを実現するチャネルを構築することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】bitcoin wiki, “Payment channels”,  https://en.bitcoin.it/wiki/Payment_channels
【発明の概要】
【発明が解決しようとする課題】
【０００６】
「Spillman-style payment channels」、「CLTV-style payment channels」など単方向のペイメントチャネルを応用して、仮想通貨ブロックチェーン用のトランザクションから、電子署名と支払金額を除いた不完全なトランザクションを作成し、この不完全なトランザクションを他のブロックチェーン内で更新していくことにより、仮想通貨ブロックチェーンに接続しなくても他のブロックチェーン上で、仮想的なビットコインの支払いを可能にすることが考えられる。
【０００７】
この方法では、利用者からサービス提供者へサービスの対価の支払いを行うことができるが、逆の方向に（サービス提供者から利用者へ）支払いを行うことはできない。すなわち、支払いのキャンセルが発生した際に、サービス提供者から同じチャネルを用いて利用者に対して返金することができない。
【０００８】
これは、サービス提供者のみが最新の不完全トランザクションから生成したトランザクションを、仮想通貨ブロックチェーンにブロードキャストする権利を持っており、利用者のみが不完全なトランザクションの金額を更新していく形態であることに起因する。例えば利用者が前回更新した支払金額をキャンセルし、前回の支払金額よりも低い支払金額で不完全なトランザクションを更新したとして、最終的にどの時点の不完全なトランザクションの支払金額でトランザクションを生成し、仮想通貨ブロックチェーンにブロードキャストするかは、サービス提供者により決定される。
【０００９】
そのため、サービス提供者が、キャンセルを反映した低い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストするのではなく、キャンセル前の高い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストする可能性は否定できない。
【００１０】
本発明は、上記課題を鑑みてなされたものであり、本発明の目的は、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、第１の本発明は、第１ブロックチェーンと、第２ブロックチェーンとを連携した決済システムであって、トランザクションの雛形を含む雛形情報トランザクションを、第１ブロックチェーンのネットワークに送信するサービス提供者装置と、第１ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信する利用者装置と、第１ブロックチェーンに含まれるスマートコントラクトと、を備え、前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第１ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第２ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【００１２】
第２の本発明は、第１ブロックチェーンと、第２ブロックチェーンとを連携した決済方法であって、サービス提供者装置は、トランザクションの雛形を含む雛形情報トランザクションを、第１ブロックチェーンのネットワークに送信し、利用者装置は、第１ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、前記電子署名と、支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信し、第１ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第１ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第２ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【００１３】
第３の本発明は、第１ブロックチェーンと、第２ブロックチェーンとを連携した決済システムにおける利用者装置であって、所定金額の保証金を送金する送金トランザクションを、第２ブロックチェーンのネットワークに送信する送金トランザクション生成部と、サービス提供者装置により第１ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第１ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【００１４】
第４の本発明は、上記利用者装置として、コンピュータを機能させることを特徴とする決済プログラムである。
【発明の効果】
【００１５】
本発明によれば、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る決済システムの全体構成を示す図である。
【図２】ブロックチェーンクライアントの構成を示すブロック図である。
【図３】「設定」処理を示す概念図である。
【図４】送金トランザクションの出力条件を示す図である。
【図５】トランザクション雛形のイメージ図である。
【図６】トランザクション雛形の出力条件を示すスクリプトの例である。
【図７】「支払」処理を示す概念図である。
【図８】利用者装置の電子署名の作成処理を示すフローチャートである。
【図９】ブリッジングコントラクトの支払い検証処理を示すフローチャートである。
【図１０】「キャンセル」処理を示す概念図である。
【図１１】「決済」処理を示す概念図である。
【図１２】仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１８】
図１は、本発明の実施の形態に係る決済システムの全体構成図である。本決済システムは、仮想通貨型ブロックチェーン（第２ブロックチェーン）での仮想通貨による支払いと、スマートコントラクト型ブロックチェーン（第１ブロックチェーン）によるサービス提供とを連携したシステムである。
【００１９】
仮想通貨型ブロックチェーンは、当該ブロックチェーンのＰ２Ｐネットワーク３（以下、「仮想通貨型ネットワーク」）に参加するノードによって共有される分散台帳である。仮想通貨型ブロックチェーンには、仮想通貨の取引履歴が登録される。どこからどこにいくらの仮想通貨を移動するかといった取引情報を記載したトランザクションが仮想通貨型ネットワーク３にブロードキャストされると、そのトランザクションを含むブロックが生成されて、生成されたブロックが仮想通貨型ブロックチェーンの末尾に追加される。
【００２０】
スマートコントラクト型ブロックチェーンは、当該ブロックチェーンのＰ２Ｐネットワーク４（以下、「スマートコントラクト型ネットワーク」）に参加するノードによって共有される分散台帳である。トランザクションがスマートコントラクト型ネットワーク４にブロードキャストされると、そのトランザクションを含むブロックが生成され、生成されたブロックがスマートコントラクト型ブロックチェーンの末尾に追加される。ブロックが追加されると、当該ブロックに含まれるトランザクションを入力として、参加ノードの端末上で事前に登録されたスクリプトコード（即ちスマートコントラクト）が実行され、分散台帳が更新される。このようなスマートコントラクト型ブロックチェーンを実現する基盤として例えば、Ethereum、Hyperledger Fabricなどが挙げられる。
【００２１】
利用者装置１は、スマートコントラクト型ブロックチェーンが提供するサービスの利用者が使用する装置である。利用者装置１は、トランザクション生成部１１と、キャンセル処理部１２と、ブロックチェーンクライアント１３とを備える。
【００２２】
トランザクション生成部１１は、後述する「設定」、「支払」、「決済」および「キャンセル（取消）」の処理（ステップ）において、必要なトランザクションを生成する。生成したトランザクションは、ブロックチェーンクライアント１３を介して、対応するブロックチェーンのネットワーク３、４に送信される。
【００２３】
「設定」処理では、トランザクション生成部１１は、「利用者のアドレスからマルチシグアドレスへのデポジットを行う送金トランザクション」（送金トランザクション）を生成し、仮想通貨型ネットワーク３に送信する（ステップＳ１）。その後、利用者装置１は、「デポジット情報を登録するトランザクション」（保証金情報トランザクション）を生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ２）。
【００２４】
「支払」処理および「キャンセル」処理では、トランザクション生成部１１は、「支払いを示す電子署名と支払金額を登録するトランザクション」（支払情報トランザクション）を生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ３）。
【００２５】
「決済」処理では、トランザクション生成部１１は、サービス提供者がキャンセルの同意を反故にした場合、「決済トランザクションのサービス提供者が受け取るはずの資金を利用者のアドレスに送金するトランザクション」（ペナルティトランザクション）を生成し、仮想通貨型ネットワーク３に送信する（ステップＳ８）。
【００２６】
キャンセル処理部１２は、スマートコントラクト型ブロックチェーンに登録した支払情報トランザクションをキャンセルする場合に、キャンセル要求をサービス提供者装置２に送信する。
【００２７】
図２は、ブロックチェーンクライアント１３の構成を示すブロック図である。本実施形態の利用者装置１は、仮想通貨型ネットワーク３およびスマートコントラクト型ネットワーク４と接続する。このため、ブロックチェーンクライアント１３は、仮想通貨型ブロックチェーンクライアント１４と、スマートコントラクト型ブロックチェーンクライアント１５とを備える。
【００２８】
仮想通貨型ブロックチェーンクライアント１４は、分散台帳１４１、と、ブロックチェーン制御部１４２とを備える。分散台帳１４１には、ブロックチェーン制御部１４２を介して、仮想通貨型ネットワーク３に接続された全ての端末（装置）と緩やかに同期することによって、リアルタイムに近い形で最新状態のブロックチェーンが記憶されている。
【００２９】
ブロックチェーン制御部１４２は、仮想通貨型ネットワーク３に接続された端末と自律分散的に協調してブロックチェーンの系を維持する。具体的には、ブロックチェーン制御部１４２は、分散台帳１４１にアクセスし、分散台帳１４１のブロックチェーンを読み出し、または、更新する。ブロックチェーン制御部１４２は、トランザクションを仮想通貨型ネットワーク３に送信する。
【００３０】
スマートコントラクト型ブロックチェーンクライアント１５は、分散台帳１５１と、ブロックチェーン制御部１５２とを備える。分散台帳１５１およびブロックチェーン制御部１５２は、分散台帳１４１およびブロックチェーン制御部１４２と同様である。
【００３１】
サービス提供者装置２は、スマートコントラクト型ブロックチェーン上でサービスを運営するサービス提供者が使用する装置である。サービス提供者は、利用者からの支払いを受けて何らかのサービス（例えば、デジタルコンテンツの権利登録など）を、利用者に提供する。
【００３２】
サービス提供者装置２は、トランザクション生成部２１と、トランザクション雛形生成部２２と、ブロックチェーンクライアント２３とを備える。
【００３３】
トランザクション生成部２１およびトランザクション雛形生成部２２は、「設定」、「支払」、「キャンセル」および「決済」の処理のうち、「設定」、「キャンセル」および「決済」において必要なトランザクションを生成する。
【００３４】
「設定」処理および「キャンセル」処理では、トランザクション雛形生成部２２は、「トランザクション雛形を登録するトランザクション」（雛形情報トランザクション）を生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ４）。トランザクション雛形については、後述する。
【００３５】
「キャンセル」処理では、トランザクション生成部２１は、トランザクション雛形の出力条件であるハッシュの原像を登録するトランザクション」（原像トランザクション）を生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ９）。
【００３６】
「決済」処理では、トランザクション生成部２１は、「マルチシグアドレスのデポジットを決済するトランザクション」（決済トランザクション）を生成し、仮想通貨型ネットワーク３に送信する（ステップＳ５）。また、トランザクション生成部２１は、「決済を実行して、マルチシグアドレスからサービス提供者へのアドレスへの支払いを確定するトランザクション」（決済実行トランザクション）を生成し、仮想通貨型ネットワーク３に送信する（ステップＳ１０）。
【００３７】
ブロックチェーンクライアント２３は、利用者装置１のブロックチェーンクライアント１３（図２参照）と同様であるため、ここでは説明を省略する。
【００３８】
本実施形態の特徴として、スマートコントラクト型ネットワーク４上には、２つのスマートコントラクトが事前に登録されている。具体的には、スマートコントラクト型ブロックチェーンのプロトコルに従って、ブリッジングコントラクト４１およびサービスコントラクト４２が、当該ネットワーク４に接続された各端末上の分散台帳１５１に登録されている。
【００３９】
ブリッジングコントラクトは、仮想通貨型ブロックチェーンとスマートコントラクト型ブロックチェーンとを連携するスマートコントラクトである。ブリッジングコントラクトは、利用者装置１から支払いに関する情報（電子署名、支払金額）を受け取り、その正当性を検証する。
【００４０】
サービスコントラクトは、ブリッジングコントラクトが支払情報の正当性を確認した後に、サービス提供者が実施するサービス（例えば、コンテンツの権利移転など）を実行するスマートコントラクトである。
【００４１】
どちらのスマートコントラクトも、格納している変数の状態を確認・参照するAPI（Application Programming Interface）を備える。例えば、利用者装置１は、APIを用いて、自身の分散台帳１５１からサービスコントラクトの実行結果を取得する（ステップＳ６）。また、サービス提供者装置２は、APIを用いて、自身の分散台帳からブリッジングコントラクトに登録されたデポジット情報および支払情報を取得する（ステップＳ７）。なお、図１のステップＳ６およびＳ７の破線は、自身の装置に格納された分散台帳を参照する処理を示す。
【００４２】
次に、本実施形態の処理を説明する。本実施形態では、「設定」、「支払」および「決済」の３つの基本処理と、応用的な「キャンセル」の応用処理とを行う。
【００４３】
図３に、「設定」処理の概念図を示す。「設定」処理では、次の「支払」処理のために必要な準備をする。
【００４４】
まず、利用者装置１は、送金トランザクションを生成し、送金トランザクションを仮想通貨型ネットワーク３に送信（ブロードキャスト）する（ステップＳ１１）。送金トランザクションは、利用者のアドレス（ウォレット）から、利用者とサービス提供者とが共同で管理するマルチシグアドレス宛に、所定の金額のデポジット（保証金）を送金するトランザクションである。
【００４５】
マルチシグアドレスは、仮想通貨型ブロックチェーンにおいて、出金の際にトランザクションに対して複数人の電子署名を必要とするアドレスのことである。本実施形態では、利用者の電子署名と、サービス提供者の電子署名とが必要なマルチシグアドレスを用いる。ここでは、例えば、1.0BTCがマルチシグアドレスに送金されたとする。
【００４６】
送金トランザクションが仮想通貨型ネットワーク３に送信されることにより、送金トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク３に接続された全ての端末の分散台帳（ブロックチェーン）に反映される。ここでは、仮想通貨型ブロックチェーンにおいて、利用者のアドレスから、マルチシグアドレス宛に、1.0BTCのデポジットが送金されたことが確定する。
【００４７】
本実施形態においては、送金トランザクションには、所定の期間（第１期間）が経過すると、利用者装置１の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。具体的には、ステップＳ１１の送金トランザクションがブロックチェーンに含まれてから一定の期間が経過すると、利用者のみの電子署名で出金することができる。すなわち、利用者は送金トランザクションを含むブロックがブロックチェーンに登録されてれから、一定の期間が経過した後は、送金トランザクションを次のトランザクションの入力（インプット）として使用することができる。このような時間制限を「タイムロック」と呼ぶ。タイムロックの期間は、例えば、Ｓ１１の送金トランザクションがブロックチェーンに含まれた後に、当該ブロックの後ろに所定の数のブロック（例えば、100ブロック）が接続する時間とする。送金トランザクションにこのような出力条件を設定することで、利用者は、タイムロックの期間が経過した後は、マルチシグアドレスのデポジットを、自身のアドレスに返金（送金）することができるようになる。
【００４８】
このマルチシグアドレスにタイムロックを施すことで、サービス提供者による決済トランザクションが送信されず、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。例えば100ブロックのタイムロックがかかっていた場合に、100ブロック以上経過すると、利用者は、返金トランザクションを生成し、利用者の電子署名のみでマルチシグアドレスに送金されたデポジットを、利用者のアドレスに送金（返金）できる。
【００４９】
ビットコインでは、トランザクションの出力に対してスクリプトによって出力条件を規定することができる。タイムロックは、トランザクションの属性の１つで、タイムロックで指定した時間または時刻までトランザクションが承認されない（マイナーによるブロックの生成時に不正なトランザクションとして扱われる）ようにするものである。
【００５０】
図４は、本実施形態における、送金トランザクションの出力条件を説明するための図である。図４（ａ）は、送金トランザクションの出力条件の概念図である。図４（ａ）の「User」は利用者を示し、「SP」はサービス提供者を示す。図示する例では、「User」（利用者）の電子署名および「SP」（サービス提供者）の電子署名のマルチシグアドレスであることの条件と、タイムロックで指定した時刻以後（ここでは、100ブロック以後）は、「User」の電子署名のみで利用可能であることを示している。図４（ｂ）は、図４（ａ）に示す出力条件のビットコインにおけるスクリプトの例である。
【００５１】
次に、利用者装置１は、デポジットに関するデポジット情報を登録するためのトランザクション（保証金情報トランザクション）を、スマートコントラクト型ネットワーク４に送信する（ステップＳ１２）。当該トランザクションは、デポジット情報として、少なくとも送金したデポジットの金額を含み、ステップＳ１１の送金トランザクションのID、マルチシグアドレスなどの情報を、さらに含んでも良い。
【００５２】
このトランザクションがスマートコントラクト型ネットワーク４に送信されることにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に反映される。これにより、全ての端末において、分散台帳のブリッジングコントラクトが管理するストレージ領域に、デポジット情報が登録される。
【００５３】
サービス提供者装置２は、自身の分散台帳に登録されているブリッジングコントラクトから、利用者装置１が登録したデポジット情報を取得する（ステップＳ１３）。サービス提供者装置２は、取得したデポジット情報を用いて、トランザクションの雛型（トランザクション雛形）を作成する（ステップＳ１４）。ここで、トランザクション雛形は、仮想通貨型ブロックチェーンのトランザクションを変形した、不完全なトランザクションの形式である。具体的には、後述する「決済」処理で「マルチシグアドレスからの送金を示す決済トランザクション」から、「送金額」および「すべての電子署名」の情報を除外したトランザクションである。
【００５４】
図５に、トランザクション雛形のイメージを図示する。図示する例では、入力に必要な「全ての電子署名」および出力に必要な「送金額」は、「null」(空欄)となっている。また、図示する例では、２つの出力（出力１、出力２）を有し、２種類の送金額が記載されている。１つは、基本的にはサービス提供者に送金する金額であり、もう１つは利用者へのお釣として送金する金額である。なお、出力１の宛先には、次に説明する出力条件（条件１、条件２）を指定するスクリプトのハッシュ値が設定されている。
【００５５】
また、ステップＳ１１では、マルチシグアドレスには1.0BTCがデポジットされている。次の「支払」処理では、利用者装置１は、このデポジットの範囲（1.0BTC）で、トランザクション雛形の「送金額（すなわち支払金額とお釣）」と「電子署名」とを更新して支払情報トランザクションを生成し、ブリッジングコントラクトに提出することになる。
【００５６】
本実施形態においては、トランザクション雛形の出力１には複数の出力条件が設定され、後述する「決済」処理の決済トランザクションは、複数の出力条件のいずれかを満たした場合に利用可能となる。ここでは、以下の２つの出力条件が課せられている。
【００５７】
図６に、条件１、２の出力条件を表したビットコインのスクリプトの例を示す。
【００５８】
条件１：トランザクション雛形（不完全なトランザクション）の出力は、タイムロックによって制限される。サービス提供者装置２は、指定されたタイムロックの一定の期間（第２期間）が経過すると、当該トランザクション雛形を用いて生成した決済トランザクションを、次のトランザクションの入力（インプット）として使用することができる。なお、タイムロックの一定の期間は、図６に示すスクリプトに設定され、Ｓ１５でトランザクション雛形とともに、当該スクリプトはスマートコントラクト型ネットワーク４に送信され、全ての端末の分散台帳に反映される。利用者は、自身の分散台帳に登録されたスクリプトを見てタイムロックの時間を確認することができる。図６に示す例では、一定の期間は、送金トランザクション（図２：Ｓ１１）がブロックチェーンに含まれた後に、110個のブロックがその後ろに接続する時間である。
【００５９】
条件２：トランザクション雛形の出力は、ハッシュロックによって制限される。利用者は、ハッシュの原像（元のデータ）と、その署名とを使用して、スクリプトのロックを解除することができる。ここで「ハッシュロック」とは、指定されたハッシュに対応する原像を次のトランザクションの入力において提出することで、トランザクション雛形を用いて生成される決済トランザクションが使用可能になる条件である。
【００６０】
本実施形態では、サービス提供者装置２は、トランザクション雛形を生成する際に任意の原像を生成し、当該原像のハッシュをスクリプトに設定する。ただし、設定の段階では原像は公開しない。条件１で述べたように、スクリプトはスマートコントラクト型ネットワーク４を介して利用者にも共有されているため、利用者装置１がハッシュの原像を取得できれば、本スクリプトと、原像と、利用者の署名とを合わせて決済トランザクションが使用可能となる。
【００６１】
条件１および条件２は、トランザクション雛形が「決済」処理を経て、完全な決済トランザクションとして仮想通貨型ブロックチェーンに記録された後に機能する（後述する「決済」処理を参照）。条件１または条件２のどちらか一方の条件が満たされた場合にのみ、決済トランザクションは使用可能になる。
【００６２】
条件１は、サービス提供者装置２が、指定したタイムロック後にのみ、マルチシグアドレスからの送金を自身のアドレス（ウォレット）に移すことができることを示している。具体的には、「決済」処理で、完全なトランザクションである決済トランザクションとしてブロードキャストされ、当該決済トランザクションがブロックチェーンに含まれた後に、一定数のブロックが後ろに接続する時間分（例えば110ブロック）経過後に、マルチシグアドレスから送金された資金のうち、自身が受け取る資金（図５の出力１の支払金額）を自由に移動できるようになる。
【００６３】
もし、この待機時間の間に、サービス提供者が裏切り行為（「キャンセル処理」を参照）を行った場合、利用者は、条件２でマルチシグアドレスから送金された資金を全て（出力１・出力２ともに）取り戻す、すなわち、自身のアドレスに送金（返金）することができる。
【００６４】
条件２では、スクリプトに指定されたハッシュロックに対応する原像を、当該決済トランザクションに後続するトランザクションの入力に指定した場合、当該決済トランザクションは、利用者の電子署名のみで利用可能となる。この条件２は、キャンセルを成立させるために、サービス提供者に対するペナルティとして設定されている。詳細は、後述する「キャンセル」処理で説明する。
【００６５】
なお、条件１または条件２の実行順序は、(1)サービス提供者によって「キャンセルの合意」に対する裏切り行為が行われた場合、条件１のタイムロックの経過前に利用者が条件２を用いて、決済トランザクションでサービス提供者が入手するはずの資金（出力１）を、利用者の署名のみで自身のアドレスに送金する、(2) サービス提供者による裏切り行為が行われなかった場合、条件１のタイムロックの経過後に、サービス提供者が条件１を用いて決済トランザクションでサービス提供者が入手するはずの資金（出力１）を自身のアドレスに送金する、という順番になる。
【００６６】
そして、サービス提供者装置２は、仮想通貨型ブロックチェーンにおいて、ステップＳ１１で送信された送金トランザクションを含むブロックが確定するのに十分な時間を経た上で、ステップＳ１４で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク４に送信する（ステップＳ１５）。
【００６７】
これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に反映される。ここでは、トランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。
【００６８】
この時、サービス提供者装置２は、雛形情報トランザクションに、トランザクション雛形の他に、次の支払処理で行われる電子署名の検証に必要な情報（例えば、利用者装置１の仮想通貨のアドレスに関する公開鍵）と、決済処理の検証に必要な情報（例えば、図６に示すスクリプト）とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。
【００６９】
次に、「支払」処理について説明する。
【００７０】
図７に、「支払」処理の概念図を示す。図７では、支払金額を更新しながら３回の支払処理を行う例を示す。
【００７１】
まず、１回目の支払いにおいて、利用者装置１は、「設定」処理でサービス提供者装置２が登録したトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する（ステップＳ２１）。そして、利用者装置１は、トランザクション雛形から電子署名１を作成する（ステップＳ２２）。
【００７２】
図８は、利用者装置１のステップＳ２１およびステップＳ２２の処理を示すフローチャートである。利用者装置１は、前述のとおり、ブリッジングコントラクトからトランザクション雛形を取得する（ステップＳ２１）。そして、利用者装置１は、取得したトランザクション雛形に支払金額１（ここでは、0.3BTCとする）を設定し、署名前トランザクション１を生成する（ステップＳ２２１）。そして、利用者装置１は、署名前トランザクション１に対して、マルチシグアドレスに対応する利用者の秘密鍵で電子署名１を生成する（ステップＳ２２３）。
【００７３】
図７に戻り、利用者装置１は、支払金額１と電子署名１とを含み、これらの情報をブリッジングコントラクトに登録するためのトランザクション（支払情報トランザクション）を生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ２３）。これにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に反映される。ここでは、スマートコントラクト型ブロックチェーンにおいて、支払金額１と電子署名１とが各端末のブリッジングコントラクトに登録される。
【００７４】
本トランザクションを含むブロックが分散台帳に登録される時、全ての端末上で、ブリッジングコントラクトによる所定の処理（支払い検証）が実行される（ステップＳ２４）。
【００７５】
図９は、ブリッジングコントラクトが行うステップＳ２４の検証処理を示すフローチャートである。まず、ブリッジングコントラクトは、ステップＳ２３で利用者装置１が送信した「電子署名１と支払金額１（0.3BTC）とを登録するトランザクション」を取得する（ステップＳ２４１）。ブリッジングコントラクトは、取得したトランザクションの支払金額１と、その支払手数料（仮想通貨型ブロックチェーンにおいてマイナーに支払う手数料など）とを合わせた金額がデポジット金額（1.0BTC)を超えていないかを検証する（ステップＳ２４２）。
【００７６】
超えていないことが検証された場合（正当性が検証された場合）、ブリッジングコントラクトは、支払情報トランザクションに含まれる電子署名１を、支払金額とトランザクションの雛形とを用いて検証する。具体的には、ブリッジングコントラクトは、設定処理（図３参照）で事前にブリッジングコントラクトに登録されたトランザクション雛形に、支払金額１を設定して署名前トランザクションを作成する（ステップＳ２４３）。支払金額１を設定する際には、利用者へのお釣となる送金額（1.0BTC-0.3BTC-支払手数料）もブリッジングコントラクト上で適切に計算され、設定される。次に、ブリッジングコントラクトは、作成した署名前トランザクションを用いて、電子署名１を検証する（ステップＳ２４４）。
【００７７】
この電子署名の検証方法として、ビットコインなどで用いられているECDSA方式の電子署名では、署名前のメッセージと電子署名とを用いて、検証用の公開鍵を復元できることが知られている。
【００７８】
そこで、ブリッジングコントラクトは、例えば図３のステップＳ１５などで事前に登録しておいた署名検証に必要な情報（公開鍵、公開鍵のハッシュなど）を利用して、ステップＳ２４１で取得したトランザクションの電子署名１の正当性を検証する。すなわち、ブリッジングコントラクトは、生成した署名前トランザクションと、利用者装置１から送信された電子署名１とを用いて公開鍵を復元し、復元した公開鍵と事前に登録しておいた公開鍵とが一致する場合、電子署名１は正当であると検証する。一方、復元した公開鍵と事前に登録しておいた公開鍵とが一致しない場合、ブリッジングコントラクトは、電子署名１は正当でないと検証する。
【００７９】
そして、ブリッジングコントラクトは、電子署名１の正当性が検証された場合、サービスコントラクトを呼び出す（ステップＳ２４５）。
【００８０】
図７に戻り、電子署名１が正当であると検証された場合、ブリッジングコントラクトは、その支払金額１に応じたサービスを実行するためにサービスコントラクトを呼び出す。（ステップＳ２５）。具体的には、ブリッジングコントラクトは、支払金額１などをパラメータとして、サービスコントコントラクトのメソッドを呼び出す（ステップＳ２５）。これにより、サービスコントラクトは、支払金額に応じた所定のサービス（例えばデジタルコンテンツの権利移転など）を実行する。
【００８１】
図７では、利用者装置１は、ステップＳ２１〜Ｓ２５の支払処理を３回の実施し、その都度、サービスコントラクトによるサービスが実施される。２回目の支払処理（ステップＳ３１〜Ｓ３５）および３回目の支払処理（ステップＳ３１〜Ｓ３５）は、１回目の支払処理（ステップＳ２１〜Ｓ２５）と同様である。
【００８２】
ただし、支払金額は、支払金額１(0.3BTC)＜支払金額２(0.6BTC)＜支払金額３(0．9BTC)の関係が成り立ち、最後の支払金額(0.9BTC)が最終的な決済金額となる。ここで、２回目以降の支払金額は、前回の支払金額に今回のサービス分の支払金額を加算したものである。図７に示す例では、利用者装置１は、３回の支払いを行い、その都度0.3BTC分のサービスが提供されることを示している。
【００８３】
なお、図７では、利用者装置１は、３回に渡っての支払情報トランザクションを、スマートコントラクト型ネットワーク４にブロードキャストしているが（ステップＳ２３、Ｓ３３、Ｓ４３）、もし、３回目の支払いで、下記で説明する「決済」処理を行なった場合、サービス提供者装置２は、１回目と２回目の支払情報を用いて決済を行うことはできない。例え１回目と２回目の支払情報を用いて決済トランザクションを生成し、ブロードキャストしたとしても、仮想通貨型ブロックチェーンの合意検証のプロセスで弾かれ、ネットワーク的に無効となる。
【００８４】
ここまでで、「設定」および「支払い」の処理について説明した。ここで、通常の支払いとは別のフローとなる「支払い」の「キャンセル」処理について説明する。「キャンセル」処理では、「支払い」処理とは異なり、先に登録した支払金額よりも、低い金額を登録することが可能である。キャンセルは以前の支払いを無効にするために、新たなトランザクション雛形を登録する必要がある。
【００８５】
図１０に、「キャンセル」処理の概要を示す。図１０に示す処理が行われることで、利用者およびサービス提供者との間で、「支払の」処理のキャンセルが合意されたと見なされる。
【００８６】
利用者装置１は、サービス提供者装置２にキャンセル要求を送信する（ステップＳ７１）。
【００８７】
サービス提供者装置２は、キャンセル要求を受信すると、新しいトランザクション雛形（他のトランザクション雛形）を生成する（ステップＳ７２）。具体的には、サービス提供者装置２は、新しい原像を生成し、当該原像のハッシュを用いて新しいトランザクション雛形および出力条件のスクリプトを生成する。新たなトランザクション雛形および出力条件のスクリプトは、「設定」処理のトランザクション雛形（図３：Ｓ１４）および出力条件のスクリプト（図６）と、原像のハッシュのみが異なり、その他は同様である。なお、原像は、特に指定しないが、簡単に推測できないものである必要がある。
【００８８】
サービス提供者装置２は、ステップＳ７２で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク４に送信する（ステップＳ７３）。これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に反映される。ここでは、新たなトランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。
【００８９】
この時、サービス提供者装置２は、雛形情報トランザクションに、新たなトランザクション雛形の他に、キャンセル処理で行われる電子署名の検証に必要な情報（例えば、利用者装置１の仮想通貨のアドレスに関する公開鍵）と、決済処理の検証に必要な情報（例えば、出力条件を示すスクリプト）とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。
【００９０】
利用者装置１は、新しいトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する（ステップＳ７４）。そして、利用者装置１は、図７のＳ２２およびＳ２３と同様に、新たな電子署名を生成し、新たなトランザクション雛形を用いて新たな支払情報（支払金額、電子署名）をブリッジングコントラクトに登録するための支払情報トランザクション（他の支払情報トランザクション）をスマートコントラクト型ネットワーク４に送信する（ステップＳ７５、Ｓ７６）。これにより、支払情報トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に登録される。新たな支払情報の支払金額は、「支払処理」の最新の支払情報トランザクションの支払金額よりも低い金額である。
【００９１】
新たな支払情報トランザクションを含むブロックが分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによる支払い検証が実行される（ステップＳ７７）。すなわち、ブリッジングコントラクトは、新たな支払情報トランザクションの支払金額および電子証明を検証する。ブリッジングコントラクトは、図７のＳ２４と同様の支払い検証を行う。さらに、ブリッジングコントラクトは、新たな支払金額が、前回の支払情報トランザクションの支払金額よりも低い金額であるか否かを検証し、低い金額の場合、新たな支払金額は正当であると判断する。
【００９２】
サービス提供者装置２は、自身の分散台帳から新たな支払情報トランザクションを取得し、当該トランザクションの支払金額をサービス提供者に提示する。サービス提供者は、支払金額を確認して、利用者が要求したキャンセルに合意するか否かを判断する。サービス提供者は、利用者のキャンセル要求が不当なものである場合など、利用者からのキャンセル要求に合意しないと判断することもできる。合意しない場合は、サービス提供者装置２は、次のステップＳ７９を行わない。
【００９３】
サービス提供者がキャンセルに合意する場合、サービス提供者装置２は、古いトランザクション雛型（図３：Ｓ１５）の条件２で設定したハッシュの元となる原像を、ブリッジングコントラクトに登録するための原像トランザクションを生成し、スマートコントラクト型ネットワーク４に送信する（ステップＳ７９）。これにより、原像トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク４に接続された全ての端末の分散台帳に登録される。これにより、古いトランザクション雛型における条件２のハッシュの原像が利用者装置１に共有される。本実施形態では、サービス提供者装置２が原像トランザクションを送信することで、サービス提供者が、キャンセルに合意したとみなされる。
【００９４】
原像トランザクションを含むブロックが各端末の分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによるサービスの取り消し処理が実行される（ステップＳ８０）。ブリッジングコントラクトは、Ｓ７４の支払金額に応じて、既に実行されたサービスを取り消すためにサービスコントラクトを呼び出す。具体的には、ブリッジングコントラクトは、所定の金額（例えば、前回の支払金額と今回お支払金額との差分金額）をパラメータとして、サービスコントコントラクトのメソッドを呼び出す。これにより、サービスコントラクトは、差分金額に応じた所定のサービスを取り消す。
【００９５】
最後に「決済」処理について説明する。
【００９６】
図１１は、「決済」処理を示す図である。サービス提供者装置２は、任意のタイミングで支払いを締めて、仮想通貨型ブロックチェーン上に支払いを反映させる。まず、サービス提供者装置２は、最終的な支払金額と、電子署名と、トランザクション雛形とを、自身の分散台帳（ブリッジングコントラクト）から取得する（ステップＳ５１）。
【００９７】
ここで、最終的な支払金額と、電子署名と、トランザクション雛形とは、キャンセル処理が行われていない場合は、図７の支払金額３と、電子署名３と、トランザクション雛形であり、キャンセル処理が行われた場合は、図１０の新たな支払金額と、電子署名と、トランザクション雛形である。
【００９８】
そして、サービス提供者装置２は、トランザクション雛形にＳ５１で取得した支払金額と電子署名とを設定して決済トランザクションを生成する。この時点の決済トランザクションは、「利用者装置１のみの電子署名が付与された、マルチシグアドレスから送金するトランザクション」である。すなわち、この時点の決済トランザクションは、サービス提供者装置２の電子署名がないため、有効なトランザクションではない。
【００９９】
そこで、サービス提供者装置２は、マルチシグアドレスからの送金を有効にするために、決済トランザクションに、自身の端末上でマルチシグに対応する自身の秘密鍵で電子署名を付与し、仮想通貨型ブロックチェーン上で有効となる決済トランザクションを作成する（ステップＳ５２）。署名後の決済トランザクションは、利用者とサービス提供者の２つの電子署名を持つため仮想通貨型ブロックチェーン上で有効となる。
【０１００】
サービス提供者装置２は、署名後の決済トランザクションを仮想通貨型ネットワーク３に送信する（ステップＳ５３）。サービス提供者は、送金トランザクション（図３のＳ１１）の出力条件により、当該送金トランザクションのブロックが分散台帳に登録されてから100ブロックが接続されるまでの前に、決済トランザクションを送信する必要がある。
【０１０１】
決済トランザクションが仮想通貨型ネットワーク３に送信されることにより、決済トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク３に接続された全ての端末の分散台帳に反映される。
【０１０２】
これにより、決済トランザクションの出力２のお釣りは、利用者のアドレスに送金される。一方、決済トランザクションの出力１の支払金額については、仮想通貨型ブロックチェーンにおいて、決済トランザクション（トランザクション雛形）の出力１の宛先で設定されたハッシュが示すスクリプトの条件１、２のいずれかを満たした場合、当該決済トランザクションの使用が可能となる。
【０１０３】
これにより、本実施形態では、サービス提供者に支払いのキャンセルを履行させる。すなわち、本実施形態では、サービス提供者が原像トランザクションを送信することで、利用者が要求するキャンセルに合意したにもかかわらず、それを反故にする取引を防止することができる。
【０１０４】
具体的には、サービス提供者がマルチシグアドレスに送金されたデポジットから所定の支払金額を得ることができるのは、条件１のタイムロックで指定された期間の経過後である。図示する例では、送金トランザクション（図３のＳ１１）のブロックが分散台帳に登録されてから110ブロックが接続された期間（T2）の経過後である。すなわち、サービス提供者装置２は、決済トランザクションに指定された支払金額を自身のアドレスに送金するための決済実行トランザクションは、条件１のタイムロック期間経過後（T2）となる（ステップＳ５６）。
【０１０５】
また、サービス提供者装置２は、キャンセルに合意した場合、図１０のステップＳ７９において、古いトランザクション雛形で使用したハッシュの原像をブリッジングコントラクトの分散台帳に登録することで利用者に公開している。そのため、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、公開されたハッシュの原像を用いることで、条件２のハッシュロックの解除することができる。
【０１０６】
この場合、利用者は、条件１のタイムロックの期間（T2）が経過する前に、決済トランザクションで指定された出力１の支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにサービス提供者に支払われるはずの支払金額を取り戻すことができる（ステップＳ５５）。なお、決済トランザクションの出力２のお釣りは、決済トランザクション（Ｓ５３）がブロックチェーンに登録されることにより、利用者のアドレスに送金される。
【０１０７】
このように本実施形態では、サービス提供者がキャンセルに合意した場合、条件２による利用者のペナルティトランザクションがペナルティ（罰金）として機能するため、サービス提供者は利用者を裏切るような行動が取り難くなる。すなわち、決済トランザクション（トランザクション雛形）に出力条件を課すことで、利用者よりも前に、サービス提供者が決済トランザクションの出力１の支払金額を自身のアドレスに送金することは難しい。
【０１０８】
以下に、キャンセル処理が行われていない場合と、キャンセル処理が行われている場合とに分けて、Ｓ５３以降の処理を説明する。
【０１０９】
＜キャンセル処理が行われていない場合＞
サービス提供者装置２は、図７の支払金額３と、電子署名３と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク３に送信する（ステップＳ５３）。サービス提供者装置２は、送金トランザクション（図３のＳ１１）の出力条件で指定された期間（T1）までの間に、決済トランザクションを送信する。
【０１１０】
そして、サービス提供者装置２は、条件１のタイムロックで指定された期間（T2）の経過後に、決済トランザクションに指定された支払金額（出力１）を自身のアドレスに送金するための決済実行トランザクションを、仮想通貨型ネットワーク３に送信する（ステップＳ５６）。
【０１１１】
これにより、マルチシグアドレスから、サービス提供者のアドレス宛に、0.9BTCの支払金額３が送金され、決済が完了する。
【０１１２】
なお、サービス提供者装置２が決済トランザクションを仮想通貨型ネットワーク３に送信するまで（ステップＳ５３）、すなわちサービス提供者が支払いを締めるまで、利用者装置１は、図５に示すｎ回目の支払処理を行い、支払金額を書き換えて、追加のサービス提供を受けることができる。
【０１１３】
＜キャンセル処理が行われている場合＞
サービス提供者装置２は、原則として、キャンセル処理で登録された新たな支払金額と、電子署名と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク３に送信する（ステップＳ５３）。サービス提供者装置２は、送金トランザクション（図３のＳ１１）の出力条件で指定された期間（T1）までの間に、決済トランザクションを送信する。
【０１１４】
ここで、利用者は、サービス提供者がペナルティを承知で利用者を裏切る（キャンセルを反故にする）ことに備えて、仮想通貨型ブロックチェーンに決済トランザクションが含まれるかどうかを監視し、決済トランザクションを検証する（Ｓ５４）。具体的には、利用者装置１は、自身の分散台帳を参照して、決済トランザクションが存在するか否か、また、決済トランザクションが存在する場合は、当該決済トランザクションの支払金額が、キャンセル処理で送信した支払金額であるか否かを検証する。
【０１１５】
決済トランザクションの支払金額がキャンセル処理で送信した支払金額でない場合（検証ＮＧの場合）、利用者装置１は、条件１の期間（T2）が経過する前に、決済トランザクションの出力１で指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを仮想通貨型ネットワーク３に送信する（ステップＳ５５）。これにより、利用者は、決済トランザクションでサービス提供者に支払われるはずの支払金額（出力１）を、ペナルティとして自身のアドレスに戻すことができる。なお、決済トランザクションが送信されない場合、利用者装置１は、送金トランザクションでマルチシグアドレスに対して送金したデポジットを自身のアドレスに返金するための返金トランザクションを送信する。
【０１１６】
決済トランザクションの支払金額がキャンセル処理で送信した支払金額の場合（検証ＯＫの場合）、利用者装置１はＳ５５のペナルティトランザクションを送信しない。これにより、サービス提供者装置２は、条件１の期間（T2）の経過後に、決済実行トランザクションを送信する（Ｓ５６）。これにより、サービス提供者は、決済トランザクションの出力１に指定された、キャンセル処理で合意した支払金額を自身のアドレスに送金することができる。
【０１１７】
図１２に、仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す。送金トランザクション１２１は、図３のＳ１１で説明したように、利用者が1.0BTCのデポジットをマルチシグアドレスに送金するためのトランザクションである。この送金トランザクションの出力条件（例えば100ブロックのタイムロック）の間に、決済トランザクション１２３（図１１：Ｓ５３）が送信されない場合、利用者は、返金トランザクション１２２を送信し、送金トランザクションで送金した1.0BTCのデポジットを自身のアドレスに取り戻す。これにより、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。
【０１１８】
一方、送金トランザクションの出力条件の間に決済トランザクション１２３（図１１：Ｓ５３）が送信された場合であって、サービス提供者がキャンセル処理の合意を反故にした場合、利用者は、決済トランザクション（出力１）の条件２によりペナルティトランザクション１２４（図１１：Ｓ５５）を送信し、決済トランザクションの出力１に設定された支払金額（0.7BTC）を、自身（利用者）のアドレスに送金する。
【０１１９】
また、決済トランザクション１２３が送信された場合であって、キャンセル処理が行われていない場合または合意したキャンセル処理が正しく履行されている場合、サービス提供者は、決済トランザクション（出力１）の条件１により決済実行トランザクション１２５（図１１：Ｓ５６）を送信し、決済トランザクションの出力１に設定された支払金額（0.7BTC）を、自身（サービス提供者）のアドレスに送金する。
【０１２０】
なお、決済トランザクションの出力２のお釣り（0.3BTC）は、決済トランザクションがブロックチェーンに登録されると、利用者のアドレスへ送金される。
【０１２１】
本実施形態では、送金トランザクションのタイムロックの期間（T1）と、決済トランザクション（トランザクション雛形）の条件１のタイムロックの期間（T2）とを調整することで、利用者端末１の仮想通貨型ブロックチェーンへの監視コストを下げる。具体的には、タイムロックの期間をT1＜T2とすることで、送信トランザクションへのタイムロックよりも、決済トランザクションへのタイムロックが必ず長くなるように設定する。これにより、サービス提供者は、T1のタイムロックが切れる前に決済トランザクションの送信（ステップＳ５３）を行わなければならず、また、決済トランザクションの送信を行ったとしても、T1を経過しT2までは、決済トランザクションを利用（出力１の支払金額を自身のアドレスに送金）することができない。
【０１２２】
したがって、トランザクション雛形とともに登録される条件１のT2が、T1より長いことが保証できれば、利用者装置１は、少なくともT１までの時間は、サービス提供者装置２の決済トランザクションを監視する必要はなく、T1からT2までの間に決済トランザクションを確認すればよい。より具体的には、利用者装置１はT1からT2の間で仮想通貨型ネットワーク３に接続し、または、自身の分散台帳を参照し、「決済トランザクションが既にブロックに含まれているか否か」、「決済トランザクションが正当か否か」を確認する（Ｓ５４）。したがって、T1とT2の期間が設定されていることにより、利用者装置が仮想通貨型ブロックチェーンに接続する期間が限定され、常時ブロックチェーンを監視する必要性がなくなる。
【０１２３】
本実施形態では、T1＜T2であることを、スマートコントラクトを用いて保証する。具体的には、トランザクション雛形を登録する際に（図３のステップＳ１５、および、図１０のステップＳ７３）、ブリッジングコントラクトは、送金トランザクションのタイムロックの期間（T1）よりも、トランザクション雛形のタイムロックの期間（T2）が長いか否かを検証し、T1＜T2を満たしていない場合は、エラーメッセージをサービス提供者装置２に送信する。なお、T1については、図５に示すように、トランザクション雛形の入力（スクリプト）に設定されている。
【０１２４】
以上説明した本実施形態では、トランザクションの雛型（出力１）には複数の出力条件が設定され、決済トランザクションは、複数の出力条件のいずれかを満たした場合に、利用可能となる。これにより、本実施形態では、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。具体的には、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、キャンセル処理でサービス提供者が公開したハッシュの原像を用いることで、条件２のハッシュロックの解除することができる。すなわち、利用者は、条件１のタイムロックの期間が経過する前に、決済トランザクションで指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにデポジットを取り戻すことができる。
【０１２５】
このように本実施形態では、トランザクション雛形に出力条件を課すことで、サービス提供者がキャンセルに合意した場合、条件２による利用者のペナルティトランザクションがペナルティとして機能し、また、条件１のタイムロックの制約があるため、サービス提供者が、利用者よりも前に決済トランザクションの支払金額を自身のアドレスに送金することは難しい。したがって、サービス提供者は利用者を裏切るような行動が取り難くなる。
【０１２６】
また、本実施形態では、図１０に示すキャンセル処理を行うことで、利用者は、送信済みの支払情報トランザクションをキャンセルすることができる。また、サービス提供者が原像トランザクションを送信することで、利用者は、サービス提供者がキャンセルの合意したことを確認することができる。
【０１２７】
また、本実施形態では、利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、仮想通貨ブロックチェーンのネットワークに送信し、送金トランザクションには、第１期間（T1）が経過すると利用者装置の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。これにより、本実施形態では、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。
【０１２８】
また、本実施形態では、トランザクション雛形の複数の出力条件には、決済トランザクションが第２期間の経過後に利用可能となるタイムロックが含まれ、スマートコントラクトは、第１期間よりも、第２期間が長いか否かを検証する。これにより、本実施形態では、利用者が仮想通貨型ブロックチェーン（仮想通貨型ネットワーク３または自身の分散台帳）を確認する期間が限定され、常時ブロックチェーンに接続し決済トランザクション等を監視する必要がなく、運用コストが低減する。
【０１２９】
また、本実施形態では、「支払」処理においてサービス提供者装置２は介在せず、支払の検証からサービスの提供までをスマートコントラクト型ブロックチェーン上で全て実行する。これにより、本実施形態では、サービス提供者装置２は、支払いの検証からサービスの提供まで、スマートコントラクト型ブロックチェーンへの接続を必要としない。すなわち、サービス提供者装置２は、スマートコントラクト型ブロックチェーンを常に監視する必要がないため、運用コストが低減する。
【０１３０】
また、本実施形態では、支払の検証からサービスの提供までの間、サービス提供者装置２が仲介しないため、サービス提供者装置２の故障またはサービス提供者の不正により、一連の支払処理が正しく実行されない状況を回避することができる。
【０１３１】
また、本実施形態では、支払の検証からサービスの提供を、スマートコントラクト型ブロックチェーンのブリッジングコントラクトおよびサービスコントラクトが、自律的に実行するため、より透明性が高く監査可能なシステムを構築することができる。
【０１３２】
また、本実施形態では、トランザクション雛形をスマートコントラクト型ブロックチェーンに登録し、利用者装置１およびサービス提供者装置２は、自身の分散台帳からトランザクション雛形を取得して利用するため、トランザクションの送信数を削減し、ブロックの肥大化を抑制し、また、ブロックの計算コストも削減することができる。
【０１３３】
また、本実施形態では、利用者の電子署名とサービス提供者の電子署名とが必要なマルチシグアドレスを利用したトランザクションを使用する。これにより、利用者装置１が、勝手に決済トランザクションを仮想通貨型ブロックチェーンに登録し、仮想通貨を使用することを防止することができる。すなわち、本実施形態では、サービス提供者装置２のみが、決済トランザクションに自身の電子署名を付与して仮想通貨型ブロックチェーンに登録することができる。すなわち、サービス提供者装置２が、決済のタイミングを制御することができ、任意のタイミングで決済を確定させることができる。
【０１３４】
なお、上記説明した利用者装置１およびサービス提供者装置２は、例えば、CPU（Central Processing Unit、プロセッサ）と、メモリと、ストレージ（HDD：Hard Disk Drive、SSD：Solid State Drive）と、通信装置と、入力装置と、出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、利用者装置１およびサービス提供者装置２の各機能は、利用者装置１用のプログラムの場合は利用者装置１のCPUが、サービス提供者装置２用のプログラムの場合はサービス提供者装置２のCPUが、それぞれ実行することにより実現される。
【０１３５】
また、利用者装置１用のプログラム、および、サービス提供者装置２用のプログラムは、HDD、SSD、USBメモリ、CD-ROM、DVD-ROM、MOなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【０１３６】
また、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、本実施形態のスマートコントラクトは、図１に示すように、ブリッジングコントラクトと、サービスコントラクトの２つの種類のスマートコントラクトを備える。しかしながら、１つのスマートコントラクトが、ブリッジングコントラクトとサービスコントラクトの両方の機能を備えることとしてもよい。
【０１３７】
また、本実施形態では、１つのサービスコントラクトの場合を例として説明したが、サービスコントラクトは複数あってもよい。この場合、各サービスコントラクトは、それぞれ異なる種類のサービスを実施し、ブリッジングコントラクトは、支払情報トランザクションで指定されたサービスに対応するサービスコントラクトを呼び出す。
【符号の説明】
【０１３８】
１  ：利用者装置
１１：トランザクション生成部
１２：キャンセル処理部
１３：ブロックチェーンクライアント
１４：仮想通貨用ブロックチェーンクライアント
１５：スマートコントラクト用ブロックチェーンクライアント
２  ：サービス提供者装置
２１：トランザクション生成部
２２：トランザクション雛形生成部
２３：ブロックチェーンクライアント
２４：仮想通貨用ブロックチェーンクライアント
２５：スマートコントラクト用ブロックチェーンクライアント
３  ：仮想通貨型ブロックチェーンのネットワーク
４  ：スマートコントラクト型ブロックチェーンのネットワーク
４１：ブリッジングコントラクト
４２：サービスコントラクト    
【図１】
2020047104.tif 000003
【図２】
2020047104.tif 000004
【図３】
2020047104.tif 000005
【図４】
2020047104.tif 000006
【図５】
2020047104.tif 000007
【図６】
2020047104.tif 000008
【図７】
2020047104.tif 000009
【図８】
2020047104.tif 000010
【図９】
2020047104.tif 000011
【図１０】
2020047104.tif 000012
【図１１】
2020047104.tif 000013
【図１２】
2020047104.tif 000014