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