IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 国立大学法人室蘭工業大学の特許一覧

特許7021747決済システム、決済方法、利用者装置、決済プログラム
<>
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図1
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図2
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図3
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図4
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図5
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図6
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図7
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図8
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図9
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図10
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図11
  • 特許-決済システム、決済方法、利用者装置、決済プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-08
(45)【発行日】2022-02-17
(54)【発明の名称】決済システム、決済方法、利用者装置、決済プログラム
(51)【国際特許分類】
   G06Q 20/22 20120101AFI20220209BHJP
   H04L 9/32 20060101ALI20220209BHJP
   G06F 21/64 20130101ALI20220209BHJP
【FI】
G06Q20/22 300
H04L9/32 200B
H04L9/32 200Z
G06F21/64
【請求項の数】 7
(21)【出願番号】P 2018176397
(22)【出願日】2018-09-20
(65)【公開番号】P2020047104
(43)【公開日】2020-03-26
【審査請求日】2020-07-28
【新規性喪失の例外の表示】特許法第30条第2項適用 2018年7月30日開催 The 2018 IEEE International Conference on Blockchain(Blockchain-2018) Halifax Convention Centerにて公開した。
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504193837
【氏名又は名称】国立大学法人室蘭工業大学
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】渡邊 大喜
(72)【発明者】
【氏名】大橋 盛徳
(72)【発明者】
【氏名】藤村 滋
(72)【発明者】
【氏名】中平 篤
(72)【発明者】
【氏名】日高 浩太
(72)【発明者】
【氏名】岸上 順一
【審査官】田上 隆一
(56)【参考文献】
【文献】特開2017-204070(JP,A)
【文献】国際公開第2018/020389(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
H04L 9/32
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムであって、
トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信するサービス提供者装置と、
第1ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する利用者装置と、
第1ブロックチェーンに含まれるスマートコントラクトと、を備え、
前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、
前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする決済システム。
【請求項2】
請求項1記載の決済システムであって、
前記利用者装置は、前記支払情報トランザクションのキャンセル要求を前記サービス提供者装置に送信し、前記サービス提供者装置により第1ブロックチェーンに登録された他のトランザクションの雛形を用いて生成される他の電子署名と、他の支払金額とを含むキャンセル用の他の支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
前記サービス提供者装置は、前記他のトランザクションの雛型を含む他の雛形情報トランザクションを第1ブロックチェーンのネットワークに送信し、第1ブロックチェーンに登録された前記他の支払情報トランザクションに対するサービス提供者からの合意を受け付けた場合、前記複数の出力条件に含まれるハッシュロックで指定されたハッシュの原像を含む原像トランザクションを、第1ブロックチェーンのネットワークに送信すること
を特徴とする決済システム。
【請求項3】
請求項1記載の決済システムであって、
前記利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信し、
前記送金トランザクションには、第1期間が経過すると前記利用者装置の電子署名のみで、前記送金トランザクションの利用が可能となる出力条件が設定されていること
を特徴とする決済システム。
【請求項4】
請求項3記載の決済システムであって、
前記複数の出力条件には、前記決済トランザクションが第2期間の経過後に利用可能となるタイムロックが含まれ、
前記スマートコントラクトは、第1期間よりも、第2期間が長いか否かを検証すること
を特徴とする決済システム。
【請求項5】
第1ブロックチェーンと、第2ブロックチェーンとを連携した決済方法であって、
サービス提供者装置は、
トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
利用者装置は、
第1ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、
前記電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
第1ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、
前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする決済方法。
【請求項6】
第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムにおける利用者装置であって、
所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信する送金トランザクション生成部と、
サービス提供者装置により第1ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、
前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
を特徴とする利用者装置。
【請求項7】
請求項6に記載の利用者装置として、コンピュータを機能させることを特徴とする決済プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンの技術に関し、特に、複数のブロックチェーンを連携させる技術に関する。
【背景技術】
【0002】
中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みがデジタル仮想通貨ビットコインを中心に普及しつつある。ブロックチェーンと呼ばれるこの仕組みにおいては、やり取りされる情報の信頼性が分散ネットワーク内の合意形成のプロセスによって担保され、かつ、改ざんや二重使用などの不正を系全体で防ぐことで健全性が保たれる。
【0003】
ブロックチェーンでは、参加者間の仮想通貨の取引情報(トランザクション)が「ブロック」という単位でまとめられ、各ブロックは数珠つなぎとなって時系列順に管理される。新たなブロックの承認は、Proof of Workなどの分散ネットワークにおける合意アルゴリズムによって形成される。新たなブロックの承認は、ブロック内部に記録された通貨取引が系全体で合意されたことを示す。このブロックチェーンを用いて管理される一連の取引情報の帳簿を「分散台帳」と呼び、ネットワークに参加する各ノード(端末)は同一の分散台帳を保持している。
【0004】
ところで、ビットコインにおいて、オフチェーン取引と呼ばれる実装上の工夫がなされている。オフチェーン取引とは、全ての取引をブロックチェーンに記録するのではなく、ブロックチェーン外で実施した2者間の取引のうち、最終的な結果のみをブロックチェーンに記録する方式である。非特許文献1に示すように、オフチェーン取引の一方式であるペイメントチャネルでは、2者間の利用者で不完全なトランザクションのやりとりをすることで、仮想的な支払いを実現するチャネルを構築することができる。
【先行技術文献】
【非特許文献】
【0005】
【文献】bitcoin wiki, “Payment channels”, https://en.bitcoin.it/wiki/Payment_channels
【発明の概要】
【発明が解決しようとする課題】
【0006】
「Spillman-style payment channels」、「CLTV-style payment channels」など単方向のペイメントチャネルを応用して、仮想通貨ブロックチェーン用のトランザクションから、電子署名と支払金額を除いた不完全なトランザクションを作成し、この不完全なトランザクションを他のブロックチェーン内で更新していくことにより、仮想通貨ブロックチェーンに接続しなくても他のブロックチェーン上で、仮想的なビットコインの支払いを可能にすることが考えられる。
【0007】
この方法では、利用者からサービス提供者へサービスの対価の支払いを行うことができるが、逆の方向に(サービス提供者から利用者へ)支払いを行うことはできない。すなわち、支払いのキャンセルが発生した際に、サービス提供者から同じチャネルを用いて利用者に対して返金することができない。
【0008】
これは、サービス提供者のみが最新の不完全トランザクションから生成したトランザクションを、仮想通貨ブロックチェーンにブロードキャストする権利を持っており、利用者のみが不完全なトランザクションの金額を更新していく形態であることに起因する。例えば利用者が前回更新した支払金額をキャンセルし、前回の支払金額よりも低い支払金額で不完全なトランザクションを更新したとして、最終的にどの時点の不完全なトランザクションの支払金額でトランザクションを生成し、仮想通貨ブロックチェーンにブロードキャストするかは、サービス提供者により決定される。
【0009】
そのため、サービス提供者が、キャンセルを反映した低い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストするのではなく、キャンセル前の高い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストする可能性は否定できない。
【0010】
本発明は、上記課題を鑑みてなされたものであり、本発明の目的は、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることにある。
【課題を解決するための手段】
【0011】
上記目的を達成するため、第1の本発明は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムであって、トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信するサービス提供者装置と、第1ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する利用者装置と、第1ブロックチェーンに含まれるスマートコントラクトと、を備え、前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【0012】
第2の本発明は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済方法であって、サービス提供者装置は、トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信し、利用者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、前記電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、第1ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【0013】
第3の本発明は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムにおける利用者装置であって、所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信する送金トランザクション生成部と、サービス提供者装置により第1ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となることを特徴とする。
【0014】
第4の本発明は、上記利用者装置として、コンピュータを機能させることを特徴とする決済プログラムである。
【発明の効果】
【0015】
本発明によれば、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。
【図面の簡単な説明】
【0016】
図1】本発明の実施形態に係る決済システムの全体構成を示す図である。
図2】ブロックチェーンクライアントの構成を示すブロック図である。
図3】「設定」処理を示す概念図である。
図4】送金トランザクションの出力条件を示す図である。
図5】トランザクション雛形のイメージ図である。
図6】トランザクション雛形の出力条件を示すスクリプトの例である。
図7】「支払」処理を示す概念図である。
図8】利用者装置の電子署名の作成処理を示すフローチャートである。
図9】ブリッジングコントラクトの支払い検証処理を示すフローチャートである。
図10】「キャンセル」処理を示す概念図である。
図11】「決済」処理を示す概念図である。
図12】仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について、図面を参照して説明する。
【0018】
図1は、本発明の実施の形態に係る決済システムの全体構成図である。本決済システムは、仮想通貨型ブロックチェーン(第2ブロックチェーン)での仮想通貨による支払いと、スマートコントラクト型ブロックチェーン(第1ブロックチェーン)によるサービス提供とを連携したシステムである。
【0019】
仮想通貨型ブロックチェーンは、当該ブロックチェーンのP2Pネットワーク3(以下、「仮想通貨型ネットワーク」)に参加するノードによって共有される分散台帳である。仮想通貨型ブロックチェーンには、仮想通貨の取引履歴が登録される。どこからどこにいくらの仮想通貨を移動するかといった取引情報を記載したトランザクションが仮想通貨型ネットワーク3にブロードキャストされると、そのトランザクションを含むブロックが生成されて、生成されたブロックが仮想通貨型ブロックチェーンの末尾に追加される。
【0020】
スマートコントラクト型ブロックチェーンは、当該ブロックチェーンのP2Pネットワーク4(以下、「スマートコントラクト型ネットワーク」)に参加するノードによって共有される分散台帳である。トランザクションがスマートコントラクト型ネットワーク4にブロードキャストされると、そのトランザクションを含むブロックが生成され、生成されたブロックがスマートコントラクト型ブロックチェーンの末尾に追加される。ブロックが追加されると、当該ブロックに含まれるトランザクションを入力として、参加ノードの端末上で事前に登録されたスクリプトコード(即ちスマートコントラクト)が実行され、分散台帳が更新される。このようなスマートコントラクト型ブロックチェーンを実現する基盤として例えば、Ethereum、Hyperledger Fabricなどが挙げられる。
【0021】
利用者装置1は、スマートコントラクト型ブロックチェーンが提供するサービスの利用者が使用する装置である。利用者装置1は、トランザクション生成部11と、キャンセル処理部12と、ブロックチェーンクライアント13とを備える。
【0022】
トランザクション生成部11は、後述する「設定」、「支払」、「決済」および「キャンセル(取消)」の処理(ステップ)において、必要なトランザクションを生成する。生成したトランザクションは、ブロックチェーンクライアント13を介して、対応するブロックチェーンのネットワーク3、4に送信される。
【0023】
「設定」処理では、トランザクション生成部11は、「利用者のアドレスからマルチシグアドレスへのデポジットを行う送金トランザクション」(送金トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS1)。その後、利用者装置1は、「デポジット情報を登録するトランザクション」(保証金情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS2)。
【0024】
「支払」処理および「キャンセル」処理では、トランザクション生成部11は、「支払いを示す電子署名と支払金額を登録するトランザクション」(支払情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS3)。
【0025】
「決済」処理では、トランザクション生成部11は、サービス提供者がキャンセルの同意を反故にした場合、「決済トランザクションのサービス提供者が受け取るはずの資金を利用者のアドレスに送金するトランザクション」(ペナルティトランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS8)。
【0026】
キャンセル処理部12は、スマートコントラクト型ブロックチェーンに登録した支払情報トランザクションをキャンセルする場合に、キャンセル要求をサービス提供者装置2に送信する。
【0027】
図2は、ブロックチェーンクライアント13の構成を示すブロック図である。本実施形態の利用者装置1は、仮想通貨型ネットワーク3およびスマートコントラクト型ネットワーク4と接続する。このため、ブロックチェーンクライアント13は、仮想通貨型ブロックチェーンクライアント14と、スマートコントラクト型ブロックチェーンクライアント15とを備える。
【0028】
仮想通貨型ブロックチェーンクライアント14は、分散台帳141、と、ブロックチェーン制御部142とを備える。分散台帳141には、ブロックチェーン制御部142を介して、仮想通貨型ネットワーク3に接続された全ての端末(装置)と緩やかに同期することによって、リアルタイムに近い形で最新状態のブロックチェーンが記憶されている。
【0029】
ブロックチェーン制御部142は、仮想通貨型ネットワーク3に接続された端末と自律分散的に協調してブロックチェーンの系を維持する。具体的には、ブロックチェーン制御部142は、分散台帳141にアクセスし、分散台帳141のブロックチェーンを読み出し、または、更新する。ブロックチェーン制御部142は、トランザクションを仮想通貨型ネットワーク3に送信する。
【0030】
スマートコントラクト型ブロックチェーンクライアント15は、分散台帳151と、ブロックチェーン制御部152とを備える。分散台帳151およびブロックチェーン制御部152は、分散台帳141およびブロックチェーン制御部142と同様である。
【0031】
サービス提供者装置2は、スマートコントラクト型ブロックチェーン上でサービスを運営するサービス提供者が使用する装置である。サービス提供者は、利用者からの支払いを受けて何らかのサービス(例えば、デジタルコンテンツの権利登録など)を、利用者に提供する。
【0032】
サービス提供者装置2は、トランザクション生成部21と、トランザクション雛形生成部22と、ブロックチェーンクライアント23とを備える。
【0033】
トランザクション生成部21およびトランザクション雛形生成部22は、「設定」、「支払」、「キャンセル」および「決済」の処理のうち、「設定」、「キャンセル」および「決済」において必要なトランザクションを生成する。
【0034】
「設定」処理および「キャンセル」処理では、トランザクション雛形生成部22は、「トランザクション雛形を登録するトランザクション」(雛形情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS4)。トランザクション雛形については、後述する。
【0035】
「キャンセル」処理では、トランザクション生成部21は、トランザクション雛形の出力条件であるハッシュの原像を登録するトランザクション」(原像トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS9)。
【0036】
「決済」処理では、トランザクション生成部21は、「マルチシグアドレスのデポジットを決済するトランザクション」(決済トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS5)。また、トランザクション生成部21は、「決済を実行して、マルチシグアドレスからサービス提供者へのアドレスへの支払いを確定するトランザクション」(決済実行トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS10)。
【0037】
ブロックチェーンクライアント23は、利用者装置1のブロックチェーンクライアント13(図2参照)と同様であるため、ここでは説明を省略する。
【0038】
本実施形態の特徴として、スマートコントラクト型ネットワーク4上には、2つのスマートコントラクトが事前に登録されている。具体的には、スマートコントラクト型ブロックチェーンのプロトコルに従って、ブリッジングコントラクト41およびサービスコントラクト42が、当該ネットワーク4に接続された各端末上の分散台帳151に登録されている。
【0039】
ブリッジングコントラクトは、仮想通貨型ブロックチェーンとスマートコントラクト型ブロックチェーンとを連携するスマートコントラクトである。ブリッジングコントラクトは、利用者装置1から支払いに関する情報(電子署名、支払金額)を受け取り、その正当性を検証する。
【0040】
サービスコントラクトは、ブリッジングコントラクトが支払情報の正当性を確認した後に、サービス提供者が実施するサービス(例えば、コンテンツの権利移転など)を実行するスマートコントラクトである。
【0041】
どちらのスマートコントラクトも、格納している変数の状態を確認・参照するAPI(Application Programming Interface)を備える。例えば、利用者装置1は、APIを用いて、自身の分散台帳151からサービスコントラクトの実行結果を取得する(ステップS6)。また、サービス提供者装置2は、APIを用いて、自身の分散台帳からブリッジングコントラクトに登録されたデポジット情報および支払情報を取得する(ステップS7)。なお、図1のステップS6およびS7の破線は、自身の装置に格納された分散台帳を参照する処理を示す。
【0042】
次に、本実施形態の処理を説明する。本実施形態では、「設定」、「支払」および「決済」の3つの基本処理と、応用的な「キャンセル」の応用処理とを行う。
【0043】
図3に、「設定」処理の概念図を示す。「設定」処理では、次の「支払」処理のために必要な準備をする。
【0044】
まず、利用者装置1は、送金トランザクションを生成し、送金トランザクションを仮想通貨型ネットワーク3に送信(ブロードキャスト)する(ステップS11)。送金トランザクションは、利用者のアドレス(ウォレット)から、利用者とサービス提供者とが共同で管理するマルチシグアドレス宛に、所定の金額のデポジット(保証金)を送金するトランザクションである。
【0045】
マルチシグアドレスは、仮想通貨型ブロックチェーンにおいて、出金の際にトランザクションに対して複数人の電子署名を必要とするアドレスのことである。本実施形態では、利用者の電子署名と、サービス提供者の電子署名とが必要なマルチシグアドレスを用いる。ここでは、例えば、1.0BTCがマルチシグアドレスに送金されたとする。
【0046】
送金トランザクションが仮想通貨型ネットワーク3に送信されることにより、送金トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク3に接続された全ての端末の分散台帳(ブロックチェーン)に反映される。ここでは、仮想通貨型ブロックチェーンにおいて、利用者のアドレスから、マルチシグアドレス宛に、1.0BTCのデポジットが送金されたことが確定する。
【0047】
本実施形態においては、送金トランザクションには、所定の期間(第1期間)が経過すると、利用者装置1の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。具体的には、ステップS11の送金トランザクションがブロックチェーンに含まれてから一定の期間が経過すると、利用者のみの電子署名で出金することができる。すなわち、利用者は送金トランザクションを含むブロックがブロックチェーンに登録されてれから、一定の期間が経過した後は、送金トランザクションを次のトランザクションの入力(インプット)として使用することができる。このような時間制限を「タイムロック」と呼ぶ。タイムロックの期間は、例えば、S11の送金トランザクションがブロックチェーンに含まれた後に、当該ブロックの後ろに所定の数のブロック(例えば、100ブロック)が接続する時間とする。送金トランザクションにこのような出力条件を設定することで、利用者は、タイムロックの期間が経過した後は、マルチシグアドレスのデポジットを、自身のアドレスに返金(送金)することができるようになる。
【0048】
このマルチシグアドレスにタイムロックを施すことで、サービス提供者による決済トランザクションが送信されず、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。例えば100ブロックのタイムロックがかかっていた場合に、100ブロック以上経過すると、利用者は、返金トランザクションを生成し、利用者の電子署名のみでマルチシグアドレスに送金されたデポジットを、利用者のアドレスに送金(返金)できる。
【0049】
ビットコインでは、トランザクションの出力に対してスクリプトによって出力条件を規定することができる。タイムロックは、トランザクションの属性の1つで、タイムロックで指定した時間または時刻までトランザクションが承認されない(マイナーによるブロックの生成時に不正なトランザクションとして扱われる)ようにするものである。
【0050】
図4は、本実施形態における、送金トランザクションの出力条件を説明するための図である。図4(a)は、送金トランザクションの出力条件の概念図である。図4(a)の「User」は利用者を示し、「SP」はサービス提供者を示す。図示する例では、「User」(利用者)の電子署名および「SP」(サービス提供者)の電子署名のマルチシグアドレスであることの条件と、タイムロックで指定した時刻以後(ここでは、100ブロック以後)は、「User」の電子署名のみで利用可能であることを示している。図4(b)は、図4(a)に示す出力条件のビットコインにおけるスクリプトの例である。
【0051】
次に、利用者装置1は、デポジットに関するデポジット情報を登録するためのトランザクション(保証金情報トランザクション)を、スマートコントラクト型ネットワーク4に送信する(ステップS12)。当該トランザクションは、デポジット情報として、少なくとも送金したデポジットの金額を含み、ステップS11の送金トランザクションのID、マルチシグアドレスなどの情報を、さらに含んでも良い。
【0052】
このトランザクションがスマートコントラクト型ネットワーク4に送信されることにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。これにより、全ての端末において、分散台帳のブリッジングコントラクトが管理するストレージ領域に、デポジット情報が登録される。
【0053】
サービス提供者装置2は、自身の分散台帳に登録されているブリッジングコントラクトから、利用者装置1が登録したデポジット情報を取得する(ステップS13)。サービス提供者装置2は、取得したデポジット情報を用いて、トランザクションの雛型(トランザクション雛形)を作成する(ステップS14)。ここで、トランザクション雛形は、仮想通貨型ブロックチェーンのトランザクションを変形した、不完全なトランザクションの形式である。具体的には、後述する「決済」処理で「マルチシグアドレスからの送金を示す決済トランザクション」から、「送金額」および「すべての電子署名」の情報を除外したトランザクションである。
【0054】
図5に、トランザクション雛形のイメージを図示する。図示する例では、入力に必要な「全ての電子署名」および出力に必要な「送金額」は、「null」(空欄)となっている。また、図示する例では、2つの出力(出力1、出力2)を有し、2種類の送金額が記載されている。1つは、基本的にはサービス提供者に送金する金額であり、もう1つは利用者へのお釣として送金する金額である。なお、出力1の宛先には、次に説明する出力条件(条件1、条件2)を指定するスクリプトのハッシュ値が設定されている。
【0055】
また、ステップS11では、マルチシグアドレスには1.0BTCがデポジットされている。次の「支払」処理では、利用者装置1は、このデポジットの範囲(1.0BTC)で、トランザクション雛形の「送金額(すなわち支払金額とお釣)」と「電子署名」とを更新して支払情報トランザクションを生成し、ブリッジングコントラクトに提出することになる。
【0056】
本実施形態においては、トランザクション雛形の出力1には複数の出力条件が設定され、後述する「決済」処理の決済トランザクションは、複数の出力条件のいずれかを満たした場合に利用可能となる。ここでは、以下の2つの出力条件が課せられている。
【0057】
図6に、条件1、2の出力条件を表したビットコインのスクリプトの例を示す。
【0058】
条件1:トランザクション雛形(不完全なトランザクション)の出力は、タイムロックによって制限される。サービス提供者装置2は、指定されたタイムロックの一定の期間(第2期間)が経過すると、当該トランザクション雛形を用いて生成した決済トランザクションを、次のトランザクションの入力(インプット)として使用することができる。なお、タイムロックの一定の期間は、図6に示すスクリプトに設定され、S15でトランザクション雛形とともに、当該スクリプトはスマートコントラクト型ネットワーク4に送信され、全ての端末の分散台帳に反映される。利用者は、自身の分散台帳に登録されたスクリプトを見てタイムロックの時間を確認することができる。図6に示す例では、一定の期間は、送金トランザクション(図2:S11)がブロックチェーンに含まれた後に、110個のブロックがその後ろに接続する時間である。
【0059】
条件2:トランザクション雛形の出力は、ハッシュロックによって制限される。利用者は、ハッシュの原像(元のデータ)と、その署名とを使用して、スクリプトのロックを解除することができる。ここで「ハッシュロック」とは、指定されたハッシュに対応する原像を次のトランザクションの入力において提出することで、トランザクション雛形を用いて生成される決済トランザクションが使用可能になる条件である。
【0060】
本実施形態では、サービス提供者装置2は、トランザクション雛形を生成する際に任意の原像を生成し、当該原像のハッシュをスクリプトに設定する。ただし、設定の段階では原像は公開しない。条件1で述べたように、スクリプトはスマートコントラクト型ネットワーク4を介して利用者にも共有されているため、利用者装置1がハッシュの原像を取得できれば、本スクリプトと、原像と、利用者の署名とを合わせて決済トランザクションが使用可能となる。
【0061】
条件1および条件2は、トランザクション雛形が「決済」処理を経て、完全な決済トランザクションとして仮想通貨型ブロックチェーンに記録された後に機能する(後述する「決済」処理を参照)。条件1または条件2のどちらか一方の条件が満たされた場合にのみ、決済トランザクションは使用可能になる。
【0062】
条件1は、サービス提供者装置2が、指定したタイムロック後にのみ、マルチシグアドレスからの送金を自身のアドレス(ウォレット)に移すことができることを示している。具体的には、「決済」処理で、完全なトランザクションである決済トランザクションとしてブロードキャストされ、当該決済トランザクションがブロックチェーンに含まれた後に、一定数のブロックが後ろに接続する時間分(例えば110ブロック)経過後に、マルチシグアドレスから送金された資金のうち、自身が受け取る資金(図5の出力1の支払金額)を自由に移動できるようになる。
【0063】
もし、この待機時間の間に、サービス提供者が裏切り行為(「キャンセル処理」を参照)を行った場合、利用者は、条件2でマルチシグアドレスから送金された資金を全て(出力1・出力2ともに)取り戻す、すなわち、自身のアドレスに送金(返金)することができる。
【0064】
条件2では、スクリプトに指定されたハッシュロックに対応する原像を、当該決済トランザクションに後続するトランザクションの入力に指定した場合、当該決済トランザクションは、利用者の電子署名のみで利用可能となる。この条件2は、キャンセルを成立させるために、サービス提供者に対するペナルティとして設定されている。詳細は、後述する「キャンセル」処理で説明する。
【0065】
なお、条件1または条件2の実行順序は、(1)サービス提供者によって「キャンセルの合意」に対する裏切り行為が行われた場合、条件1のタイムロックの経過前に利用者が条件2を用いて、決済トランザクションでサービス提供者が入手するはずの資金(出力1)を、利用者の署名のみで自身のアドレスに送金する、(2) サービス提供者による裏切り行為が行われなかった場合、条件1のタイムロックの経過後に、サービス提供者が条件1を用いて決済トランザクションでサービス提供者が入手するはずの資金(出力1)を自身のアドレスに送金する、という順番になる。
【0066】
そして、サービス提供者装置2は、仮想通貨型ブロックチェーンにおいて、ステップS11で送信された送金トランザクションを含むブロックが確定するのに十分な時間を経た上で、ステップS14で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク4に送信する(ステップS15)。
【0067】
これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、トランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。
【0068】
この時、サービス提供者装置2は、雛形情報トランザクションに、トランザクション雛形の他に、次の支払処理で行われる電子署名の検証に必要な情報(例えば、利用者装置1の仮想通貨のアドレスに関する公開鍵)と、決済処理の検証に必要な情報(例えば、図6に示すスクリプト)とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。
【0069】
次に、「支払」処理について説明する。
【0070】
図7に、「支払」処理の概念図を示す。図7では、支払金額を更新しながら3回の支払処理を行う例を示す。
【0071】
まず、1回目の支払いにおいて、利用者装置1は、「設定」処理でサービス提供者装置2が登録したトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する(ステップS21)。そして、利用者装置1は、トランザクション雛形から電子署名1を作成する(ステップS22)。
【0072】
図8は、利用者装置1のステップS21およびステップS22の処理を示すフローチャートである。利用者装置1は、前述のとおり、ブリッジングコントラクトからトランザクション雛形を取得する(ステップS21)。そして、利用者装置1は、取得したトランザクション雛形に支払金額1(ここでは、0.3BTCとする)を設定し、署名前トランザクション1を生成する(ステップS221)。そして、利用者装置1は、署名前トランザクション1に対して、マルチシグアドレスに対応する利用者の秘密鍵で電子署名1を生成する(ステップS223)。
【0073】
図7に戻り、利用者装置1は、支払金額1と電子署名1とを含み、これらの情報をブリッジングコントラクトに登録するためのトランザクション(支払情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS23)。これにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、スマートコントラクト型ブロックチェーンにおいて、支払金額1と電子署名1とが各端末のブリッジングコントラクトに登録される。
【0074】
本トランザクションを含むブロックが分散台帳に登録される時、全ての端末上で、ブリッジングコントラクトによる所定の処理(支払い検証)が実行される(ステップS24)。
【0075】
図9は、ブリッジングコントラクトが行うステップS24の検証処理を示すフローチャートである。まず、ブリッジングコントラクトは、ステップS23で利用者装置1が送信した「電子署名1と支払金額1(0.3BTC)とを登録するトランザクション」を取得する(ステップS241)。ブリッジングコントラクトは、取得したトランザクションの支払金額1と、その支払手数料(仮想通貨型ブロックチェーンにおいてマイナーに支払う手数料など)とを合わせた金額がデポジット金額(1.0BTC)を超えていないかを検証する(ステップS242)。
【0076】
超えていないことが検証された場合(正当性が検証された場合)、ブリッジングコントラクトは、支払情報トランザクションに含まれる電子署名1を、支払金額とトランザクションの雛形とを用いて検証する。具体的には、ブリッジングコントラクトは、設定処理(図3参照)で事前にブリッジングコントラクトに登録されたトランザクション雛形に、支払金額1を設定して署名前トランザクションを作成する(ステップS243)。支払金額1を設定する際には、利用者へのお釣となる送金額(1.0BTC-0.3BTC-支払手数料)もブリッジングコントラクト上で適切に計算され、設定される。次に、ブリッジングコントラクトは、作成した署名前トランザクションを用いて、電子署名1を検証する(ステップS244)。
【0077】
この電子署名の検証方法として、ビットコインなどで用いられているECDSA方式の電子署名では、署名前のメッセージと電子署名とを用いて、検証用の公開鍵を復元できることが知られている。
【0078】
そこで、ブリッジングコントラクトは、例えば図3のステップS15などで事前に登録しておいた署名検証に必要な情報(公開鍵、公開鍵のハッシュなど)を利用して、ステップS241で取得したトランザクションの電子署名1の正当性を検証する。すなわち、ブリッジングコントラクトは、生成した署名前トランザクションと、利用者装置1から送信された電子署名1とを用いて公開鍵を復元し、復元した公開鍵と事前に登録しておいた公開鍵とが一致する場合、電子署名1は正当であると検証する。一方、復元した公開鍵と事前に登録しておいた公開鍵とが一致しない場合、ブリッジングコントラクトは、電子署名1は正当でないと検証する。
【0079】
そして、ブリッジングコントラクトは、電子署名1の正当性が検証された場合、サービスコントラクトを呼び出す(ステップS245)。
【0080】
図7に戻り、電子署名1が正当であると検証された場合、ブリッジングコントラクトは、その支払金額1に応じたサービスを実行するためにサービスコントラクトを呼び出す。(ステップS25)。具体的には、ブリッジングコントラクトは、支払金額1などをパラメータとして、サービスコントコントラクトのメソッドを呼び出す(ステップS25)。これにより、サービスコントラクトは、支払金額に応じた所定のサービス(例えばデジタルコンテンツの権利移転など)を実行する。
【0081】
図7では、利用者装置1は、ステップS21~S25の支払処理を3回の実施し、その都度、サービスコントラクトによるサービスが実施される。2回目の支払処理(ステップS31~S35)および3回目の支払処理(ステップS31~S35)は、1回目の支払処理(ステップS21~S25)と同様である。
【0082】
ただし、支払金額は、支払金額1(0.3BTC)<支払金額2(0.6BTC)<支払金額3(0.9BTC)の関係が成り立ち、最後の支払金額(0.9BTC)が最終的な決済金額となる。ここで、2回目以降の支払金額は、前回の支払金額に今回のサービス分の支払金額を加算したものである。図7に示す例では、利用者装置1は、3回の支払いを行い、その都度0.3BTC分のサービスが提供されることを示している。
【0083】
なお、図7では、利用者装置1は、3回に渡っての支払情報トランザクションを、スマートコントラクト型ネットワーク4にブロードキャストしているが(ステップS23、S33、S43)、もし、3回目の支払いで、下記で説明する「決済」処理を行なった場合、サービス提供者装置2は、1回目と2回目の支払情報を用いて決済を行うことはできない。例え1回目と2回目の支払情報を用いて決済トランザクションを生成し、ブロードキャストしたとしても、仮想通貨型ブロックチェーンの合意検証のプロセスで弾かれ、ネットワーク的に無効となる。
【0084】
ここまでで、「設定」および「支払い」の処理について説明した。ここで、通常の支払いとは別のフローとなる「支払い」の「キャンセル」処理について説明する。「キャンセル」処理では、「支払い」処理とは異なり、先に登録した支払金額よりも、低い金額を登録することが可能である。キャンセルは以前の支払いを無効にするために、新たなトランザクション雛形を登録する必要がある。
【0085】
図10に、「キャンセル」処理の概要を示す。図10に示す処理が行われることで、利用者およびサービス提供者との間で、「支払の」処理のキャンセルが合意されたと見なされる。
【0086】
利用者装置1は、サービス提供者装置2にキャンセル要求を送信する(ステップS71)。
【0087】
サービス提供者装置2は、キャンセル要求を受信すると、新しいトランザクション雛形(他のトランザクション雛形)を生成する(ステップS72)。具体的には、サービス提供者装置2は、新しい原像を生成し、当該原像のハッシュを用いて新しいトランザクション雛形および出力条件のスクリプトを生成する。新たなトランザクション雛形および出力条件のスクリプトは、「設定」処理のトランザクション雛形(図3:S14)および出力条件のスクリプト(図6)と、原像のハッシュのみが異なり、その他は同様である。なお、原像は、特に指定しないが、簡単に推測できないものである必要がある。
【0088】
サービス提供者装置2は、ステップS72で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク4に送信する(ステップS73)。これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、新たなトランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。
【0089】
この時、サービス提供者装置2は、雛形情報トランザクションに、新たなトランザクション雛形の他に、キャンセル処理で行われる電子署名の検証に必要な情報(例えば、利用者装置1の仮想通貨のアドレスに関する公開鍵)と、決済処理の検証に必要な情報(例えば、出力条件を示すスクリプト)とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。
【0090】
利用者装置1は、新しいトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する(ステップS74)。そして、利用者装置1は、図7のS22およびS23と同様に、新たな電子署名を生成し、新たなトランザクション雛形を用いて新たな支払情報(支払金額、電子署名)をブリッジングコントラクトに登録するための支払情報トランザクション(他の支払情報トランザクション)をスマートコントラクト型ネットワーク4に送信する(ステップS75、S76)。これにより、支払情報トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に登録される。新たな支払情報の支払金額は、「支払処理」の最新の支払情報トランザクションの支払金額よりも低い金額である。
【0091】
新たな支払情報トランザクションを含むブロックが分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによる支払い検証が実行される(ステップS77)。すなわち、ブリッジングコントラクトは、新たな支払情報トランザクションの支払金額および電子証明を検証する。ブリッジングコントラクトは、図7のS24と同様の支払い検証を行う。さらに、ブリッジングコントラクトは、新たな支払金額が、前回の支払情報トランザクションの支払金額よりも低い金額であるか否かを検証し、低い金額の場合、新たな支払金額は正当であると判断する。
【0092】
サービス提供者装置2は、自身の分散台帳から新たな支払情報トランザクションを取得し、当該トランザクションの支払金額をサービス提供者に提示する。サービス提供者は、支払金額を確認して、利用者が要求したキャンセルに合意するか否かを判断する。サービス提供者は、利用者のキャンセル要求が不当なものである場合など、利用者からのキャンセル要求に合意しないと判断することもできる。合意しない場合は、サービス提供者装置2は、次のステップS79を行わない。
【0093】
サービス提供者がキャンセルに合意する場合、サービス提供者装置2は、古いトランザクション雛型(図3:S15)の条件2で設定したハッシュの元となる原像を、ブリッジングコントラクトに登録するための原像トランザクションを生成し、スマートコントラクト型ネットワーク4に送信する(ステップS79)。これにより、原像トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に登録される。これにより、古いトランザクション雛型における条件2のハッシュの原像が利用者装置1に共有される。本実施形態では、サービス提供者装置2が原像トランザクションを送信することで、サービス提供者が、キャンセルに合意したとみなされる。
【0094】
原像トランザクションを含むブロックが各端末の分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによるサービスの取り消し処理が実行される(ステップS80)。ブリッジングコントラクトは、S74の支払金額に応じて、既に実行されたサービスを取り消すためにサービスコントラクトを呼び出す。具体的には、ブリッジングコントラクトは、所定の金額(例えば、前回の支払金額と今回お支払金額との差分金額)をパラメータとして、サービスコントコントラクトのメソッドを呼び出す。これにより、サービスコントラクトは、差分金額に応じた所定のサービスを取り消す。
【0095】
最後に「決済」処理について説明する。
【0096】
図11は、「決済」処理を示す図である。サービス提供者装置2は、任意のタイミングで支払いを締めて、仮想通貨型ブロックチェーン上に支払いを反映させる。まず、サービス提供者装置2は、最終的な支払金額と、電子署名と、トランザクション雛形とを、自身の分散台帳(ブリッジングコントラクト)から取得する(ステップS51)。
【0097】
ここで、最終的な支払金額と、電子署名と、トランザクション雛形とは、キャンセル処理が行われていない場合は、図7の支払金額3と、電子署名3と、トランザクション雛形であり、キャンセル処理が行われた場合は、図10の新たな支払金額と、電子署名と、トランザクション雛形である。
【0098】
そして、サービス提供者装置2は、トランザクション雛形にS51で取得した支払金額と電子署名とを設定して決済トランザクションを生成する。この時点の決済トランザクションは、「利用者装置1のみの電子署名が付与された、マルチシグアドレスから送金するトランザクション」である。すなわち、この時点の決済トランザクションは、サービス提供者装置2の電子署名がないため、有効なトランザクションではない。
【0099】
そこで、サービス提供者装置2は、マルチシグアドレスからの送金を有効にするために、決済トランザクションに、自身の端末上でマルチシグに対応する自身の秘密鍵で電子署名を付与し、仮想通貨型ブロックチェーン上で有効となる決済トランザクションを作成する(ステップS52)。署名後の決済トランザクションは、利用者とサービス提供者の2つの電子署名を持つため仮想通貨型ブロックチェーン上で有効となる。
【0100】
サービス提供者装置2は、署名後の決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者は、送金トランザクション(図3のS11)の出力条件により、当該送金トランザクションのブロックが分散台帳に登録されてから100ブロックが接続されるまでの前に、決済トランザクションを送信する必要がある。
【0101】
決済トランザクションが仮想通貨型ネットワーク3に送信されることにより、決済トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク3に接続された全ての端末の分散台帳に反映される。
【0102】
これにより、決済トランザクションの出力2のお釣りは、利用者のアドレスに送金される。一方、決済トランザクションの出力1の支払金額については、仮想通貨型ブロックチェーンにおいて、決済トランザクション(トランザクション雛形)の出力1の宛先で設定されたハッシュが示すスクリプトの条件1、2のいずれかを満たした場合、当該決済トランザクションの使用が可能となる。
【0103】
これにより、本実施形態では、サービス提供者に支払いのキャンセルを履行させる。すなわち、本実施形態では、サービス提供者が原像トランザクションを送信することで、利用者が要求するキャンセルに合意したにもかかわらず、それを反故にする取引を防止することができる。
【0104】
具体的には、サービス提供者がマルチシグアドレスに送金されたデポジットから所定の支払金額を得ることができるのは、条件1のタイムロックで指定された期間の経過後である。図示する例では、送金トランザクション(図3のS11)のブロックが分散台帳に登録されてから110ブロックが接続された期間(T2)の経過後である。すなわち、サービス提供者装置2は、決済トランザクションに指定された支払金額を自身のアドレスに送金するための決済実行トランザクションは、条件1のタイムロック期間経過後(T2)となる(ステップS56)。
【0105】
また、サービス提供者装置2は、キャンセルに合意した場合、図10のステップS79において、古いトランザクション雛形で使用したハッシュの原像をブリッジングコントラクトの分散台帳に登録することで利用者に公開している。そのため、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、公開されたハッシュの原像を用いることで、条件2のハッシュロックの解除することができる。
【0106】
この場合、利用者は、条件1のタイムロックの期間(T2)が経過する前に、決済トランザクションで指定された出力1の支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにサービス提供者に支払われるはずの支払金額を取り戻すことができる(ステップS55)。なお、決済トランザクションの出力2のお釣りは、決済トランザクション(S53)がブロックチェーンに登録されることにより、利用者のアドレスに送金される。
【0107】
このように本実施形態では、サービス提供者がキャンセルに合意した場合、条件2による利用者のペナルティトランザクションがペナルティ(罰金)として機能するため、サービス提供者は利用者を裏切るような行動が取り難くなる。すなわち、決済トランザクション(トランザクション雛形)に出力条件を課すことで、利用者よりも前に、サービス提供者が決済トランザクションの出力1の支払金額を自身のアドレスに送金することは難しい。
【0108】
以下に、キャンセル処理が行われていない場合と、キャンセル処理が行われている場合とに分けて、S53以降の処理を説明する。
【0109】
<キャンセル処理が行われていない場合>
サービス提供者装置2は、図7の支払金額3と、電子署名3と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者装置2は、送金トランザクション(図3のS11)の出力条件で指定された期間(T1)までの間に、決済トランザクションを送信する。
【0110】
そして、サービス提供者装置2は、条件1のタイムロックで指定された期間(T2)の経過後に、決済トランザクションに指定された支払金額(出力1)を自身のアドレスに送金するための決済実行トランザクションを、仮想通貨型ネットワーク3に送信する(ステップS56)。
【0111】
これにより、マルチシグアドレスから、サービス提供者のアドレス宛に、0.9BTCの支払金額3が送金され、決済が完了する。
【0112】
なお、サービス提供者装置2が決済トランザクションを仮想通貨型ネットワーク3に送信するまで(ステップS53)、すなわちサービス提供者が支払いを締めるまで、利用者装置1は、図5に示すn回目の支払処理を行い、支払金額を書き換えて、追加のサービス提供を受けることができる。
【0113】
<キャンセル処理が行われている場合>
サービス提供者装置2は、原則として、キャンセル処理で登録された新たな支払金額と、電子署名と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者装置2は、送金トランザクション(図3のS11)の出力条件で指定された期間(T1)までの間に、決済トランザクションを送信する。
【0114】
ここで、利用者は、サービス提供者がペナルティを承知で利用者を裏切る(キャンセルを反故にする)ことに備えて、仮想通貨型ブロックチェーンに決済トランザクションが含まれるかどうかを監視し、決済トランザクションを検証する(S54)。具体的には、利用者装置1は、自身の分散台帳を参照して、決済トランザクションが存在するか否か、また、決済トランザクションが存在する場合は、当該決済トランザクションの支払金額が、キャンセル処理で送信した支払金額であるか否かを検証する。
【0115】
決済トランザクションの支払金額がキャンセル処理で送信した支払金額でない場合(検証NGの場合)、利用者装置1は、条件1の期間(T2)が経過する前に、決済トランザクションの出力1で指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを仮想通貨型ネットワーク3に送信する(ステップS55)。これにより、利用者は、決済トランザクションでサービス提供者に支払われるはずの支払金額(出力1)を、ペナルティとして自身のアドレスに戻すことができる。なお、決済トランザクションが送信されない場合、利用者装置1は、送金トランザクションでマルチシグアドレスに対して送金したデポジットを自身のアドレスに返金するための返金トランザクションを送信する。
【0116】
決済トランザクションの支払金額がキャンセル処理で送信した支払金額の場合(検証OKの場合)、利用者装置1はS55のペナルティトランザクションを送信しない。これにより、サービス提供者装置2は、条件1の期間(T2)の経過後に、決済実行トランザクションを送信する(S56)。これにより、サービス提供者は、決済トランザクションの出力1に指定された、キャンセル処理で合意した支払金額を自身のアドレスに送金することができる。
【0117】
図12に、仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す。送金トランザクション121は、図3のS11で説明したように、利用者が1.0BTCのデポジットをマルチシグアドレスに送金するためのトランザクションである。この送金トランザクションの出力条件(例えば100ブロックのタイムロック)の間に、決済トランザクション123(図11:S53)が送信されない場合、利用者は、返金トランザクション122を送信し、送金トランザクションで送金した1.0BTCのデポジットを自身のアドレスに取り戻す。これにより、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。
【0118】
一方、送金トランザクションの出力条件の間に決済トランザクション123(図11:S53)が送信された場合であって、サービス提供者がキャンセル処理の合意を反故にした場合、利用者は、決済トランザクション(出力1)の条件2によりペナルティトランザクション124(図11:S55)を送信し、決済トランザクションの出力1に設定された支払金額(0.7BTC)を、自身(利用者)のアドレスに送金する。
【0119】
また、決済トランザクション123が送信された場合であって、キャンセル処理が行われていない場合または合意したキャンセル処理が正しく履行されている場合、サービス提供者は、決済トランザクション(出力1)の条件1により決済実行トランザクション125(図11:S56)を送信し、決済トランザクションの出力1に設定された支払金額(0.7BTC)を、自身(サービス提供者)のアドレスに送金する。
【0120】
なお、決済トランザクションの出力2のお釣り(0.3BTC)は、決済トランザクションがブロックチェーンに登録されると、利用者のアドレスへ送金される。
【0121】
本実施形態では、送金トランザクションのタイムロックの期間(T1)と、決済トランザクション(トランザクション雛形)の条件1のタイムロックの期間(T2)とを調整することで、利用者端末1の仮想通貨型ブロックチェーンへの監視コストを下げる。具体的には、タイムロックの期間をT1<T2とすることで、送信トランザクションへのタイムロックよりも、決済トランザクションへのタイムロックが必ず長くなるように設定する。これにより、サービス提供者は、T1のタイムロックが切れる前に決済トランザクションの送信(ステップS53)を行わなければならず、また、決済トランザクションの送信を行ったとしても、T1を経過しT2までは、決済トランザクションを利用(出力1の支払金額を自身のアドレスに送金)することができない。
【0122】
したがって、トランザクション雛形とともに登録される条件1のT2が、T1より長いことが保証できれば、利用者装置1は、少なくともT1までの時間は、サービス提供者装置2の決済トランザクションを監視する必要はなく、T1からT2までの間に決済トランザクションを確認すればよい。より具体的には、利用者装置1はT1からT2の間で仮想通貨型ネットワーク3に接続し、または、自身の分散台帳を参照し、「決済トランザクションが既にブロックに含まれているか否か」、「決済トランザクションが正当か否か」を確認する(S54)。したがって、T1とT2の期間が設定されていることにより、利用者装置が仮想通貨型ブロックチェーンに接続する期間が限定され、常時ブロックチェーンを監視する必要性がなくなる。
【0123】
本実施形態では、T1<T2であることを、スマートコントラクトを用いて保証する。具体的には、トランザクション雛形を登録する際に(図3のステップS15、および、図10のステップS73)、ブリッジングコントラクトは、送金トランザクションのタイムロックの期間(T1)よりも、トランザクション雛形のタイムロックの期間(T2)が長いか否かを検証し、T1<T2を満たしていない場合は、エラーメッセージをサービス提供者装置2に送信する。なお、T1については、図5に示すように、トランザクション雛形の入力(スクリプト)に設定されている。
【0124】
以上説明した本実施形態では、トランザクションの雛型(出力1)には複数の出力条件が設定され、決済トランザクションは、複数の出力条件のいずれかを満たした場合に、利用可能となる。これにより、本実施形態では、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。具体的には、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、キャンセル処理でサービス提供者が公開したハッシュの原像を用いることで、条件2のハッシュロックの解除することができる。すなわち、利用者は、条件1のタイムロックの期間が経過する前に、決済トランザクションで指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにデポジットを取り戻すことができる。
【0125】
このように本実施形態では、トランザクション雛形に出力条件を課すことで、サービス提供者がキャンセルに合意した場合、条件2による利用者のペナルティトランザクションがペナルティとして機能し、また、条件1のタイムロックの制約があるため、サービス提供者が、利用者よりも前に決済トランザクションの支払金額を自身のアドレスに送金することは難しい。したがって、サービス提供者は利用者を裏切るような行動が取り難くなる。
【0126】
また、本実施形態では、図10に示すキャンセル処理を行うことで、利用者は、送信済みの支払情報トランザクションをキャンセルすることができる。また、サービス提供者が原像トランザクションを送信することで、利用者は、サービス提供者がキャンセルの合意したことを確認することができる。
【0127】
また、本実施形態では、利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、仮想通貨ブロックチェーンのネットワークに送信し、送金トランザクションには、第1期間(T1)が経過すると利用者装置の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。これにより、本実施形態では、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。
【0128】
また、本実施形態では、トランザクション雛形の複数の出力条件には、決済トランザクションが第2期間の経過後に利用可能となるタイムロックが含まれ、スマートコントラクトは、第1期間よりも、第2期間が長いか否かを検証する。これにより、本実施形態では、利用者が仮想通貨型ブロックチェーン(仮想通貨型ネットワーク3または自身の分散台帳)を確認する期間が限定され、常時ブロックチェーンに接続し決済トランザクション等を監視する必要がなく、運用コストが低減する。
【0129】
また、本実施形態では、「支払」処理においてサービス提供者装置2は介在せず、支払の検証からサービスの提供までをスマートコントラクト型ブロックチェーン上で全て実行する。これにより、本実施形態では、サービス提供者装置2は、支払いの検証からサービスの提供まで、スマートコントラクト型ブロックチェーンへの接続を必要としない。すなわち、サービス提供者装置2は、スマートコントラクト型ブロックチェーンを常に監視する必要がないため、運用コストが低減する。
【0130】
また、本実施形態では、支払の検証からサービスの提供までの間、サービス提供者装置2が仲介しないため、サービス提供者装置2の故障またはサービス提供者の不正により、一連の支払処理が正しく実行されない状況を回避することができる。
【0131】
また、本実施形態では、支払の検証からサービスの提供を、スマートコントラクト型ブロックチェーンのブリッジングコントラクトおよびサービスコントラクトが、自律的に実行するため、より透明性が高く監査可能なシステムを構築することができる。
【0132】
また、本実施形態では、トランザクション雛形をスマートコントラクト型ブロックチェーンに登録し、利用者装置1およびサービス提供者装置2は、自身の分散台帳からトランザクション雛形を取得して利用するため、トランザクションの送信数を削減し、ブロックの肥大化を抑制し、また、ブロックの計算コストも削減することができる。
【0133】
また、本実施形態では、利用者の電子署名とサービス提供者の電子署名とが必要なマルチシグアドレスを利用したトランザクションを使用する。これにより、利用者装置1が、勝手に決済トランザクションを仮想通貨型ブロックチェーンに登録し、仮想通貨を使用することを防止することができる。すなわち、本実施形態では、サービス提供者装置2のみが、決済トランザクションに自身の電子署名を付与して仮想通貨型ブロックチェーンに登録することができる。すなわち、サービス提供者装置2が、決済のタイミングを制御することができ、任意のタイミングで決済を確定させることができる。
【0134】
なお、上記説明した利用者装置1およびサービス提供者装置2は、例えば、CPU(Central Processing Unit、プロセッサ)と、メモリと、ストレージ(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置と、入力装置と、出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、利用者装置1およびサービス提供者装置2の各機能は、利用者装置1用のプログラムの場合は利用者装置1のCPUが、サービス提供者装置2用のプログラムの場合はサービス提供者装置2のCPUが、それぞれ実行することにより実現される。
【0135】
また、利用者装置1用のプログラム、および、サービス提供者装置2用のプログラムは、HDD、SSD、USBメモリ、CD-ROM、DVD-ROM、MOなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0136】
また、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、本実施形態のスマートコントラクトは、図1に示すように、ブリッジングコントラクトと、サービスコントラクトの2つの種類のスマートコントラクトを備える。しかしながら、1つのスマートコントラクトが、ブリッジングコントラクトとサービスコントラクトの両方の機能を備えることとしてもよい。
【0137】
また、本実施形態では、1つのサービスコントラクトの場合を例として説明したが、サービスコントラクトは複数あってもよい。この場合、各サービスコントラクトは、それぞれ異なる種類のサービスを実施し、ブリッジングコントラクトは、支払情報トランザクションで指定されたサービスに対応するサービスコントラクトを呼び出す。
【符号の説明】
【0138】
1 :利用者装置
11:トランザクション生成部
12:キャンセル処理部
13:ブロックチェーンクライアント
14:仮想通貨用ブロックチェーンクライアント
15:スマートコントラクト用ブロックチェーンクライアント
2 :サービス提供者装置
21:トランザクション生成部
22:トランザクション雛形生成部
23:ブロックチェーンクライアント
24:仮想通貨用ブロックチェーンクライアント
25:スマートコントラクト用ブロックチェーンクライアント
3 :仮想通貨型ブロックチェーンのネットワーク
4 :スマートコントラクト型ブロックチェーンのネットワーク
41:ブリッジングコントラクト
42:サービスコントラクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12