JP2019212241A - 情報処理装置、情報処理方法、プログラム及び取引システム - Google Patents
情報処理装置、情報処理方法、プログラム及び取引システム Download PDFInfo
- Publication number
- JP2019212241A JP2019212241A JP2018110655A JP2018110655A JP2019212241A JP 2019212241 A JP2019212241 A JP 2019212241A JP 2018110655 A JP2018110655 A JP 2018110655A JP 2018110655 A JP2018110655 A JP 2018110655A JP 2019212241 A JP2019212241 A JP 2019212241A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- user
- rate
- virtual currency
- neutral
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 36
- 238000003672 processing method Methods 0.000 title claims description 3
- 230000007935 neutral effect Effects 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims description 34
- 238000005065 mining Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 25
- 238000012795 verification Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 33
- 238000003860 storage Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 19
- 238000013515 script Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
【課題】差金決済を伴う取引を、中央管理者を不要として行うことができる情報処理装置等を提供する。【解決手段】情報処理装置2は、取引の条件を設定する設定部と、取引の条件に基づき、ユーザ及び相手方が仮想通貨をデポジットした第1トランザクションを生成する第1生成部と、第1トランザクションを出力する第1出力部と、中立者から公開鍵を取得する第1取得部と、公開鍵を用いて、デポジットされた仮想通貨をスポットレートに応じて配分する第2トランザクションを生成する第2生成部と、決定時点を経過した場合、決定時点のスポットレートと、中立者の電子署名とを取得する第2取得部と、スポットレートに対応する第2トランザクションを出力する第2出力部と、中立者の電子署名を用いて、ユーザに配分された仮想通貨を送金する第3トランザクションを生成する第3生成部と、第3トランザクションを出力する第3出力部とを備えることを特徴とする。【選択図】図1
Description
本発明は、情報処理装置、情報処理方法、プログラム及び取引システムに関する。
外国為替等の取引を行う場合において、NDF(Non-Deliverable Forward)取引のように、外貨等の現物の受け渡しを行わず、価格変動に応じた差金決済を行う取引手法がある。例えば特許文献1では、銀行が顧客から外国為替予約の申込を受け付け、NDF取引に係る差金決済、送金等を行う為替変動リスクヘッジ方法が開示されている。
しかしながら、特許文献1に係る発明では銀行等の金融機関が顧客間に介在して差金決済を行っており、すなわち、中央管理者が必要となる。
一つの側面では、差金決済を伴う取引を、中央管理者を不要として行うことができる情報処理装置等を提供することを目的とする。
一つの側面では、情報処理装置は、差金決済を伴う取引の条件であって、経時的に取引レートが変動する取引対象について、ユーザ及び相手方の間で取り決めた前記取引対象の契約レートと、差金決済を行う前記取引レートの決定時点と、想定元本とを含む取引条件を設定する設定部と、前記取引条件に基づき、前記ユーザ及び相手方夫々が所定額の仮想通貨をデポジットした第1トランザクションを生成する第1生成部と、前記第1トランザクションを、前記仮想通貨のトランザクションデータを分散して管理する各ノードに出力する第1出力部と、前記相手方と異なる中立者から、該中立者の秘密鍵に基づき生成された公開鍵を取得する第1取得部と、取得した前記中立者の公開鍵を用いて、前記第1トランザクションでデポジットされた前記仮想通貨を、複数の前記取引レート夫々に応じて前記ユーザ及び相手方に配分する複数の第2トランザクションを生成する第2生成部と、前記決定時点を経過した場合、該決定時点の前記取引レートと、該取引レートから前記中立者の秘密鍵に基づき生成された電子署名とを取得する第2取得部と、取得した前記取引レートに対応する前記第2トランザクションを前記各ノードに出力する第2出力部と、前記中立者の電子署名を用いて、前記第2トランザクションで前記ユーザに配分された前記仮想通貨を前記ユーザ宛に送金する第3トランザクションを生成する第3生成部と、前記第3トランザクションを前記各ノードに出力する第3出力部とを備えることを特徴とする。
一つの側面では、差金決済を伴う取引を、中央管理者を不要として行うことができる。
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態1)
図1は、取引システムの構成例を示す模式図である。本実施の形態ではNDF取引を一例に、仮想通貨を用いた差金決済取引を行う取引システムについて説明する。取引システムは、情報処理装置1、情報処理端末2、2、2…、マッチングサーバ3、仲介者装置4を有する。各装置は、インターネット等のネットワークNを介して通信接続されている。
(実施の形態1)
図1は、取引システムの構成例を示す模式図である。本実施の形態ではNDF取引を一例に、仮想通貨を用いた差金決済取引を行う取引システムについて説明する。取引システムは、情報処理装置1、情報処理端末2、2、2…、マッチングサーバ3、仲介者装置4を有する。各装置は、インターネット等のネットワークNを介して通信接続されている。
本システムについて説明する前に、NDF取引について簡単に説明する。NDF取引はフォワード取引(先渡取引)の一種であり、いわゆる為替予約取引の一種である。主にNDF取引は、流動性の低い国の法定通貨、あるいは法規制により国外への持ち出しが禁止されている国の法定通貨の為替予約を行う場合に用いられる。NDF取引は、一般的な為替予約と比較した場合、取引対象である通貨(元本)の受け渡しを行わず、為替レートの変動に応じた差金のみを決済する点が大きく異なる。
一般的な為替予約について説明すると、例えば日本法人が米国法人に商品を販売して代金を得る場合に、売買契約の約定時と、売買代金の決済時とでは日本円とUSドルとの間で為替レートの変動が生じ、当初の見込みよりも日本円換算での売上が減少するリスクがある。このような場合、日本法人は、決済時のレート(スポットレート、実勢直物レート等と呼ばれる)に関わらず、事前に取り決めた契約レートでUSドルを売却し、日本円を購入するフォワード取引を行うことで、外国為替の変動リスクをヘッジする。
一方で、NDF取引では取引対象である外国通貨の受け渡しを行わず、スポットレート(取引レート)と契約レートとの差額に想定元本を乗じた金額を、取引対象である外国通貨とは異なる主要通貨で差金決済する。例えば日本法人が人民元の為替予約を行う場合、人民元は法規制があるため、人民元と日本円との間の直接的な為替予約を行うことが難しい。そこで日本法人は、為替レートの変動による差額相当の金額を人民元ではなく、USドルなどの主要通貨で差金決済する。これにより、一般的な為替予約を行った場合と同様の効果を得ることができ、外国為替の変動リスクをヘッジすることができる。
しかしながら、NDF取引は相対取引であり、当事者間に銀行などの金融機関が介在して、顧客(当事者)から注文を集めた上で取引をマッチングさせている。カウンターパーティリスク(取引相手の倒産等によって契約が実行されないリスク)や、マッチングの難しさなどの問題があるため、顧客は大口のみに限定され、取引に伴う仲介料も発生する。
そこで本実施の形態では、上述の問題を解決するため、ブロックチェーンに代表される分散型台帳技術を用いて、仮想通貨建てで差金決済を行う取引システムについて説明する。
情報処理装置1は、ユーザ間のNDF取引自体には関与しない中立者の情報処理装置であり、例えばオラクル(登録商標)のようなリレーショナルデータベース管理システムのサーバ装置である。以下の説明では簡潔のため、情報処理装置1をサーバ1と読み替える。後述するように、サーバ1はNDF取引に係るトランザクションの実行に必要なデータ(公開鍵、電子署名等)を公開し、ユーザ同士の信頼関係を不要としたNDF取引を可能とする。
情報処理端末2は、種々の情報処理、情報の送受信が可能な多機能端末、パーソナルコンピュータ等の情報処理装置であり、本システムを利用してNDF取引を行う各ユーザの端末装置である。以下の説明では簡潔のため、情報処理端末2を端末2と読み替える。端末2は、取引の相手方の端末2との間で通信を行い、後述する仮想通貨のトランザクション処理を実行してNDF取引を行う。本実施の形態で各端末2は、ビットコイン(登録商標)建てで差金決済を行うトランザクションを実行する。
なお、端末2が取り扱う仮想通貨はビットコインに限定されず、その他の既存の仮想通貨、あるいは本システム独自の仮想通貨であってもよい。
なお、端末2が取り扱う仮想通貨はビットコインに限定されず、その他の既存の仮想通貨、あるいは本システム独自の仮想通貨であってもよい。
マッチングサーバ3は、本システムを提供するサービス事業者のサーバ装置であり、各ユーザから提示されたNDF取引の希望条件(オファー又はビッド)をマッチングさせる装置である。マッチングサーバ3は、各ユーザがNDF取引を申し込むためのいわゆる取引板を提供し、NDF取引を希望する法定通貨、契約レート、レート決定日等の情報を含むオファー又はビッドを端末2から取得してマッチングを行い、希望条件が合致するユーザ同士を取引相手として通知する。
仲介者装置4は、ユーザ間のNDF取引を仲介する仲介者の装置であり、例えば本システムの管理者、あるいは投資家等の装置である。後述するように、サーバ1は、各ユーザが取引板に出力した希望条件、具体的にはNDF取引の想定元本が一致しない場合、仲介者を各ユーザに紹介(提示)する。サーバ1は、ユーザ間に仲介者を立てることでマッチングの不成立を防止する。
図2は、サーバ1、端末2及びマッチングサーバ3の構成例を示すブロック図である。サーバ1は、制御部11、主記憶部12、通信部13、及び補助記憶部14を備える。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部14に記憶されたプログラムP1を読み出して実行することにより、サーバ1に係る種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための処理回路等を含み、端末2等と情報の送受信を行う。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部14に記憶されたプログラムP1を読み出して実行することにより、サーバ1に係る種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための処理回路等を含み、端末2等と情報の送受信を行う。
補助記憶部14は大容量メモリ、ハードディスク等であり、制御部11が処理を実行するために必要なプログラムP1、その他のデータを記憶している。また、補助記憶部14は、レートDB141を記憶している。レートDB141は、為替レートに関する情報と、後述するトランザクションに必要なデータとを記憶するデータベースである。
なお、補助記憶部14はサーバ1に接続された外部記憶装置であってもよい。また、サーバ1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
また、本実施の形態においてサーバ1は上記の構成に限られず、例えば可搬型記憶媒体に記憶された情報を読み取る読取部等を含んでもよい。
端末2は、制御部21、主記憶部22、通信部23、表示部24、入力部25、補助記憶部26を備える。
制御部21は、一又は複数のCPU、MPU等の演算処理装置を有し、補助記憶部26に記憶されたプログラムP2を読み出して実行することにより、端末2に係る種々の情報処理、制御処理等を行う。主記憶部22は、RAM等の一時記憶領域であり、制御部21が演算処理を実行するために必要なデータを一時的に記憶する。通信部23は、通信を行うためのアンテナ、処理回路等を含み、サーバ1等と情報の送受信を行う。表示部24は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置であり、制御部21から与えられた画像を表示する。入力部25は、例えばタッチパネル、メカニカルキー等の操作部品であり、ユーザからの操作入力を受け付ける。
制御部21は、一又は複数のCPU、MPU等の演算処理装置を有し、補助記憶部26に記憶されたプログラムP2を読み出して実行することにより、端末2に係る種々の情報処理、制御処理等を行う。主記憶部22は、RAM等の一時記憶領域であり、制御部21が演算処理を実行するために必要なデータを一時的に記憶する。通信部23は、通信を行うためのアンテナ、処理回路等を含み、サーバ1等と情報の送受信を行う。表示部24は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置であり、制御部21から与えられた画像を表示する。入力部25は、例えばタッチパネル、メカニカルキー等の操作部品であり、ユーザからの操作入力を受け付ける。
補助記憶部26は、ROM(Read Only Memory)等の不揮発性メモリであり、制御部21が処理を実行するために必要なプログラムP2、その他のデータを記憶している。また、補助記憶部26は、ユーザが保有する仮想通貨を管理するためのウォレットデータ261を記憶している。ウォレットデータ261は、ウォレットアドレスの管理に用いる公開鍵方式の暗号鍵(秘密鍵、公開鍵)等の情報を含む。
マッチングサーバ3は、制御部31、主記憶部32、通信部33、及び補助記憶部34を備える。
制御部31は、一又は複数のCPU、MPU等の演算処理装置を有し、補助記憶部26に記憶されたプログラムP3を読み出して実行することにより、マッチングサーバ3に係る種々の情報処理、制御処理等を行う。主記憶部32は、RAM等の一時記憶領域であり、制御部31が演算処理を実行するために必要なデータを一時的に記憶する。通信部33は、通信を行うための処理回路等を含み、端末2等と情報の送受信を行う。
制御部31は、一又は複数のCPU、MPU等の演算処理装置を有し、補助記憶部26に記憶されたプログラムP3を読み出して実行することにより、マッチングサーバ3に係る種々の情報処理、制御処理等を行う。主記憶部32は、RAM等の一時記憶領域であり、制御部31が演算処理を実行するために必要なデータを一時的に記憶する。通信部33は、通信を行うための処理回路等を含み、端末2等と情報の送受信を行う。
補助記憶部34は大容量メモリ、ハードディスク等であり、制御部31が処理を実行するために必要なプログラムP3、その他のデータを記憶している。また、補助記憶部14は、ユーザDB341及び取引板DB342を記憶している。ユーザDB341は、各ユーザの情報を格納するデータベースである。取引板DB342は、各ユーザが取引板に出力したNDF取引の申込情報(オファー又はビッド)を記憶するデータベースである。
図3は、レートDB141、ユーザDB341、及び取引板DB342のレコードレイアウトの一例を示す説明図である。
レートDB141は、日付列、公開鍵列、スポットレート列、署名値列を含む。日付列は、NDF取引のレート決定日となる各日付を記憶している。公開鍵列は、日付と対応付けて、各日付(レート決定日)での差金決済に用いられる、中立者(サーバ1)が生成した公開鍵を記憶している。公開鍵は、サーバ1が管理する秘密鍵を用いて生成される。スポットレート列は、日付と対応付けて、各日付における実際のスポットレートを記憶している。署名値列は、日付と対応付けて、各日付でのスポットレートから中立者の秘密鍵に基づき生成された署名値であって、公開鍵列にレコードされている公開鍵に対応する署名値を記憶している。
レートDB141は、日付列、公開鍵列、スポットレート列、署名値列を含む。日付列は、NDF取引のレート決定日となる各日付を記憶している。公開鍵列は、日付と対応付けて、各日付(レート決定日)での差金決済に用いられる、中立者(サーバ1)が生成した公開鍵を記憶している。公開鍵は、サーバ1が管理する秘密鍵を用いて生成される。スポットレート列は、日付と対応付けて、各日付における実際のスポットレートを記憶している。署名値列は、日付と対応付けて、各日付でのスポットレートから中立者の秘密鍵に基づき生成された署名値であって、公開鍵列にレコードされている公開鍵に対応する署名値を記憶している。
ユーザDB341は、ユーザID列、氏名列、アカウント列を含む。ユーザID列は、各ユーザを識別するための識別情報を記憶している。氏名列は、ユーザIDと対応付けて、各ユーザの氏名を記憶している。アカウント列は、ユーザIDと対応付けて、各ユーザのアカウント情報を記憶している。
取引板DB342は、申込ID列、ユーザID列、決定日列、売買列、参照通貨列、元本列、契約レートを含む。申込ID列は、各ユーザが取引板に出力した申込情報を識別するための識別情報を記憶している。申込情報は、取引対象である法定通貨の売却を希望するオファーと、法定通貨の購入を希望するビッドとがある。ユーザID列は、申込IDと対応付けて、申込情報を出力したユーザのユーザIDを記憶している。決定日列は、申込IDと対応付けて、NDF取引におけるレートの決定日(決定時点)を記憶している。売買列は、申込IDと対応付けて、ユーザが申し込んだ売買の種別(オファー又はビッドの別)を記憶している。参照通貨列は、申込IDと対応付けて、NDF契約で取り扱う法定通貨の種類を記憶している。元本列は、申込IDと対応付けて、NDF取引の想定元本の金額を記憶している。契約レート列は、申込IDと対応付けて、ユーザが申し込んだ為替予約の契約レートを記憶している。
図4は、取引システムの利用例を示す説明図である。図4に示す具体例を参照して、取引システムの概要について説明する。
上述の如く、本実施の形態ではNDF取引を一例に説明を行う。図4では、日本法人であるユーザAと、ベトナム法人であるユーザCとが商品の売買を行う場合に、ユーザA、Cがそれぞれ、為替ヘッジのためNDF取引を行う様子を図示してある。
上述の如く、本実施の形態ではNDF取引を一例に説明を行う。図4では、日本法人であるユーザAと、ベトナム法人であるユーザCとが商品の売買を行う場合に、ユーザA、Cがそれぞれ、為替ヘッジのためNDF取引を行う様子を図示してある。
ここではユーザAがユーザCに、1ヶ月後に商品を販売する売買契約を結ぶ場合を想定する。この場合に、契約時のスポットレートで、1JPY(日本円)が100VND(ベトナムドン)であるものとする。また、契約時において1BTC(ビットコイン)が100万JPY、及び1億VNDに相当するものとする。
ユーザA及びCは、日本円及びベトナムドンとは異なる通貨建てで代金の授受を行う。ここで、一般的なNDF取引ではUSドルのような主要通貨(法定通貨)建てで行うが、本実施の形態では仮想通貨建てで行う。ここでは、ユーザA、Cは契約時の仮想通貨のスポットレートを参照して、0.1BTC(10万JPY、1000万VND)の代金で合意したものとする。
売買契約を結んだユーザAは、1ヶ月間の為替の変動リスクを考慮して、NDFによる為替予約を行いたいと考えている。例えば図4に示すように、ユーザAは、契約時と同額のスポットレートである1BTC=100万JPYで為替予約を行い、契約時と同額で決済を確定させたいと考えている。
この場合にユーザAは、端末2を介して、NDF取引の希望条件を規定した申込情報をマッチングサーバ3に出力する。上述の例ではユーザAが売り手側であるため、ユーザAの端末2は、取引対象(通貨)の売却を申し込むオファーをマッチングサーバ3に出力する。上述の如く、マッチングサーバ3は本システムに係るNDF取引の取引板を管理しており、各ユーザからNDF契約の希望条件を規定した申込情報(オファー又はビッド)を受け付ける。マッチングサーバ3は、各ユーザからの希望条件をマッチングさせ、マッチングした取引の相手方(第2のユーザ)をユーザ(第1のユーザ)に提示する。
例えばユーザAの端末2は、取引対象とする法定通貨、NDF取引において希望する契約レート、仮想通貨換算の想定元本、及びスポットレートの決定日(決定時点)等、種々の希望条件を規定したオファーを取引板(マッチングサーバ3)に出力する。上述の例では、ユーザAの端末2は、取引対象とする法定通貨を日本円とし、契約レートを1BTC=100万JPYとし、想定元本を0.1BTC(10万JPY)とし、レート決定日を1ヶ月後とするオファーを出力する。マッチングサーバ3は、ユーザAのオファーを他のユーザのビッドとマッチングさせ、希望条件が合致(同一又は類似)する他のユーザをNDF取引の相手方として検索する。マッチングサーバ3は、相手方の情報(例えば相手ユーザ自身の情報、相手方が提示した希望条件等)をユーザAの端末2に送信する。図4の例では、ユーザBがユーザAの相手方としてマッチングされ、ユーザAに提示されたものとする。
ユーザA、Bはそれぞれ端末2を介して、NDF取引の詳細について合意し、取引条件を設定してNDFの契約を約定させる。ユーザA、Bは、NDF取引実行のためのトランザクションの生成に移り、仮想通貨を媒介にしたNDF取引を行う。当該処理の詳細については、図5以降で詳述する。
一方で、ユーザCもまた、NDFによって為替予約を行いたいと考えている。例えばユーザCも、ユーザAと同様に、契約時のスポットレートと同じレートで決済を確定させたいと考えている。そこでユーザCは、取引対象とする通貨をベトナムドン、契約レートを1BTC=1億VND、想定元本を0.1BTC(=1000万VND)、レート決定日を1ヶ月後とするビッドを取引板に出力する。マッチングサーバ3は、ユーザCの希望条件と合致する他のユーザを検索する。
この場合に、例えばマッチングサーバ3は、契約レート、レート決定日等の条件は合致するが、想定元本が合致しないユーザDを検索したものとする。例えばユーザCの想定元本は0.1BTCであるが、ユーザDの想定元本は0.05BTCであるものとする。また、契約レート及びレート決定日が合致するその他のユーザはいないものとする。
上記の場合、ユーザC、Dは想定元本が同じユーザが現れない限り、マッチングが成立せず、NDF取引を行うことができない。そこでマッチングサーバ3は、ユーザC、Dの間に仲介者を立ててマッチングを成立させる。仲介者は、上記のように想定元本が合致しないため相手方が見つからないユーザに対し、ユーザが希望する条件でNDF取引を行う第三者である。仲介者は、例えば本システムの運営者であってもよく、投資家等の第三者であってもよい。マッチングサーバ3は、ユーザCと仲介者との間、及びユーザDと仲介者との間でマッチングを成立させ、ユーザC、Dにそれぞれ仲介者を提示する。ユーザC、Dは、仲介者との間で取引条件の詳細を設定し、NDF取引の契約を約定させる。このように、契約レート等の条件が一致するが、想定元本が一致しない複数のユーザの申込情報を取得した場合、マッチングサーバ3は、仲介者の情報をユーザに提示(紹介)する。これにより、マッチングの不成立を防止することができる。
図5及び図6は、トランザクション生成処理に関する説明図である。図5では、NDF取引を実現するための仮想通貨のトランザクション生成処理について、概念的に図示している。図6では、想定され得る複数のスポットレートに応じて各ユーザに配分される供託金の取り分を説明するための説明図である。図5及び図6を用いて、マッチング成立後にユーザA、Bの端末2が生成するトランザクションについて説明する。
なお、以下の説明では、ユーザA、Bの端末2は各ユーザの秘密鍵に基づき公開鍵を生成し、交換(取得)済みであるものとして説明する。
まずユーザA、Bの端末2は、オフチェーンでトランザクションのやり取りを行うため、専用の通信路を確立する。当該通信路は、例えばライトニングネットワークのペイメントチャネルである。各端末2は、相手方の端末2との間でトランザクションの送受信を行う場合、当該通信路を介して送受信を行う。
次にユーザA、Bの端末2は、カウンターパーティリスクを考慮して、所定額の仮想通貨を互いに供託しておく。具体的には、端末2は、各々のユーザのウォレットアドレスから所定額の仮想通貨をマルチシグアドレスにデポジットしたトランザクション(第1トランザクション)を生成する。なお、以下の説明では当該トランザクションを「デポジットトランザクション」と呼ぶ。
図5において、白抜き矢印より上側に、デポジットトランザクションが生成され、ブロックチェーンに取り込まれる様子を図示している。例えば端末2は、ユーザA、Bから同額ずつ仮想通貨をデポジット(供託)したデポジットトランザクションを生成する。デポジットトランザクションは、ユーザA、Bそれぞれのウォレットアドレスから送金された仮想通貨をインプットとし、ユーザA、Bそれぞれからの送金額の総額をアウトプットとする。図5に従って説明すると、例えばユーザAの端末2が、ユーザAの供託額に相当する「0.01BTC」のインプットを記述したデポジットトランザクションを生成してユーザBの端末2に受け渡し、ユーザBの端末2が、ユーザBの供託額「0.01BTC」のインプット、及びユーザA、Bの供託額の総額「0.02BTC」のアウトプットを当該トランザクションに追加する。なお、ユーザA、Bが供託する金額は、NDF取引の想定元本に応じて定められ、例えばユーザA、Bはそれぞれ想定元本の10%に相当する金額の仮想通貨を供託する。ユーザBの端末2は、デポジットトランザクションをブロックチェーンネットワークの各ノードにブロードキャスト(出力)する。
なお、各ユーザからの供託額は同額でなくともよく、例えばユーザが合意すれば各々異なる額としてもよい。また、想定元本に対する供託額の比率も設計事項である。
また、ユーザA、Bの端末2が通信を行う通信路はライトニングネットワークのペイメントチャネルに限定されず、例えばマッチングサーバ3が取引板の一機能としてチャット機能を提供し、各端末2は当該機能を利用して通信を行ってもよい。つまり、各端末2の間の通信をある程度の秘匿性を確保しつつ行うことができればよく、その通信手段は特に限定されない。
本実施の形態において端末2はマルチシグネチャ技術を利用し、供託された仮想通貨の使用にユーザA、B両方の電子署名を必要とするマルチシグアドレスを送金先としたデポジットトランザクションを生成する。マルチシグアドレスは、定められた複数の当事者の秘密鍵のうち、一又は複数の秘密鍵に基づく電子署名によって利用可能となるウォレットアドレスである。端末2は、デポジットトランザクションを生成する場合、ユーザA、B両方の電子署名の検証を解除条件(第1の解除条件)としてアウトプットのロッキングスクリプトに記述する。端末2は、上述の解除条件を記述したデポジットトランザクションをブロードキャストする。これにより、一度供託された仮想通貨はユーザA、Bの合意がなければ使用できなくなる。
また、端末2は、デポジットトランザクションのアウトプットで規定するもう一つの解除条件(第2の解除条件)として、レート決定日から一定期間が経過し、かつ、ユーザA、Bのいずれかの電子署名が検証されること、を解除条件に設定する。具体的には、端末2は、デポジットトランザクションのロックタイムフィールドに所定の期間を記述し、もう一つの解除条件として、ユーザA、Bのいずれかの電子署名の検証をアウトプットのスクリプトに記述する。当該解除条件は、当事者のいずれかが契約違反を犯した場合のための罰則規定であり、後述するように、NDF取引の実行のために必要な、デポジットトランザクションに続くトランザクションを一方当事者がブロードキャストしない場合に備えて加えられる規定である。当該規定について、詳しくは後述する。
上述の如く、ユーザA、Bは両者合意の上でマルチシグアドレスに所定額を供託する。続いてユーザA、Bそれぞれの端末2は、レート決定日にNDF取引を実行する(閉じる)ための後続のトランザクションを生成する。具体的には、端末2は、将来想定され得る複数のスポットレートそれぞれに対応して、供託金からユーザA、Bに配分される取り分(仮想通貨)をアウトプットとして定めたトランザクション(第2トランザクション)を複数生成する。なお、以下の説明では便宜上、「取引を閉じる」ことから、当該トランザクションをクロージングトランザクションと呼ぶ。
図5において、白抜き矢印の下側に、ユーザA、Bそれぞれがクロージングトランザクションを生成して交換する様子を図示している。クロージングトランザクションは、デポジットトランザクションのアウトプットをインプットとし、レート決定日のスポットレートに応じたユーザA、Bそれぞれの取り分をアウトプットとするトランザクションである。ユーザA、Bの端末2はそれぞれ、想定され得る複数のスポットレートに対応して、複数のクロージングトランザクションを生成して交換し、レート決定日まで保持しておく。
図5において白抜き矢印のすぐ下に示す、ユーザAの端末2が生成するクロージングトランザクションを一例に説明を行う。図5に示すように、ユーザAの端末2は、デポジットトランザクションのアウトプット「0.02BTC」を、クロージングトランザクションのインプットとして記述する。そして端末2は、想定されるスポットレートに応じて、ユーザAの取り分に相当する「0.0090BTC」のアウトプットと、ユーザBの取り分に相当する「0.0110BTC」のアウトプットとを生成する。
図6に、複数のスポットレートと、各スポットレートに応じたユーザA、Bの取り分とを示す計算例を図示する。図6に示す例では、「84万JPY/BTC」から「105万JPY/BTC」までの1万JPY/BTCずつのスポットレートと、各スポットレートでのユーザA、Bそれぞれの取り分となる仮想通貨の金額と、日本円換算の金額とを示してある。なお、上述の例に則して、100JPY/BTCを契約レートとし、0.02BTCを供託額として計算してある。
図5で示したユーザAの端末2が生成するクロージングトランザクションは、図6においてスポットレート「101万JPY/BTC」に対応するクロージングトランザクションである。具体的には図6に示すように、「101万JPY/BTC」の場合、ユーザAの取り分は約0.0090BTCであり、ユーザBの取り分は約0.0110BTCである。この場合の各ユーザの取り分は、日本円換算でユーザAが9080JPY、ユーザBが11120JPYとなる。
ここで、各ユーザの端末2は、自装置のユーザが不利なスポットレートに対応するクロージングトランザクションを生成する。具体的には、端末2は、ユーザが供託した金額よりも、ユーザに配分される取り分が少ないスポットレートのクロージングトランザクションを生成する。
図6において点線で示すように、ユーザA、Bが合意した予約レートを境界にして、ユーザAに収益が発生するレートと、損益が発生するレートとで分かれている。例えば「99万JPY/BTC」の場合、ユーザAの取り分は約0.0110BTCであり、供託額0.01BTCよりも多くなっている。すなわち、ユーザAにとって有利なレートとなっている。一方で、「101万JPY/BTC」の場合、ユーザAの取り分は約0.0090BTCであり、供託額0.01BTCよりも少なくなっている。すなわち、ユーザAにとって不利なレートとなっている。
各ユーザの端末2は、自装置のユーザの取り分が供託額未満となるスポットレートのクロージングトランザクションを生成する。上述の例に則して説明すれば、ユーザAの端末2は、100万JPY/BTCを超過する各スポットレートに対応したクロージングトランザクションを生成する。一方で、ユーザBの端末2は、100万JPY/BTC未満の各スポットレートのクロージングトランザクションを生成する。
なお、予約レート(100万JPY/BTC)に対応するクロージングトランザクションは、ユーザA、Bのいずれの端末2が生成してもよい。
なお、予約レート(100万JPY/BTC)に対応するクロージングトランザクションは、ユーザA、Bのいずれの端末2が生成してもよい。
図5に戻って説明を続ける。上述の如く、各ユーザの端末2は、自装置のユーザに不利なスポットレートのクロージングトランザクションを生成する。図5では図示の便宜上、ユーザA、Bそれぞれの端末2が生成するクロージングトランザクションを一つずつしか図示していないが、端末2は、実際には複数のスポットレートそれぞれに対応する複数のクロージングトランザクションを生成する。また、図6では簡潔のため、1万JPY/BTCずつスポットレートを記載したが、実際にはさらに小さな桁数でスポットレートは計算され、各端末2は数千のクロージングトランザクションを生成する。
端末2は、クロージングトランザクションのインプットに対し、ユーザの秘密鍵を用いて生成した電子署名を付加する。例えばユーザAの端末2がクロージングトランザクションを生成する場合、ユーザAの秘密鍵を用いて電子署名を生成する。そして端末2は、ユーザAの電子署名を、クロージングトランザクションのインプットのアンロッキングスクリプトに記述する。これにより、後述するように、相手方(ユーザB)が電子署名を付加してクロージングトランザクションをブロードキャストすることで、クロージングトランザクションをブロックチェーンに取り込み可能となる。
また、端末2は、クロージングトランザクションの各アウトプットの解除条件を以下のように設定した上で、相手方の端末2に送信する。具体的には、端末2は、取り分が少ない自装置のユーザのアウトプットに関しては、当該ユーザの公開鍵のハッシュ値をスクリプトに記述することで、当該ユーザの電子署名のみの検証を解除条件として設定する。一方で、端末2は、取り分が多い相手方のアウトプットに関しては、相手方及び中立者(サーバ1)の電子署名の検証を解除条件として設定する。
以下、クロージングトランザクションの電子署名方式について説明する。本実施の形態で端末2は、P2PKH(Pay-to-Public-Key-Hash)の形式でクロージングトランザクションのアウトプットのスクリプトを記述し、Schnorr署名方式の電子署名を用いる。ただし、一般的なSchnorr署名とは使い方が異なる。一般的なSchnorr署名では、署名者は自らの秘密鍵xと、ジェネレータG(楕円曲線のベースポイント)とからポイントX=xGを計算し、ポイントXを公開鍵として公開する。さらに署名者は、秘密鍵xとは異なる秘密の乱数値kを計算し、ポイントR=kGを計算する。続いて、次の式(1)を計算する。
s(m)=k−h(m,R)a …(1)
式(1)においてh(p,q)はハッシュ関数であり、mは署名対象のメッセージである。本実施の形態では、メッセージmはスポットレートに相当する。一般的なSchnorr署名では(R,s(m))が電子署名に相当する。
式(1)で与えられる電子署名の検証は、ポイントX、R、メッセージm、及びs(m)に基づき、以下の式(2)が成立するか否かを検証することである。
式(1)で与えられる電子署名の検証は、ポイントX、R、メッセージm、及びs(m)に基づき、以下の式(2)が成立するか否かを検証することである。
s(m)G=R−h(m,R)A
=kG−h(m,R)aG …(2)
=kG−h(m,R)aG …(2)
本実施の形態では、一般的なSchnorr署名と同じく式(1)及び(2)の計算式を用いるが、公開鍵及び電子署名の定義が異なる。具体的には、公開鍵は(X,R)とし、電子署名はs(m)のみとする。すなわち、乱数値kに基づき算出されたポイントRは公開鍵の一部として事前に公開される。ポイントRが公開されているため、端末2は、任意のメッセージm=i、すなわち任意のスポットレートiに対応する式(2)のs(i)Gを、電子署名s(i)が未知であっても計算することができる。
サーバ1は中立者αとして機能し、中立者αの秘密鍵x=vと、秘密の乱数値kとを管理している。そしてサーバ1は、秘密鍵vから生成されるポイントV=vGと、ポイントR=kGとからなる公開鍵(V、R)を公開している。具体的には図3でレートDB141に図示したように、サーバ1は、将来の日付毎に別々の公開鍵を生成し、公開している。ユーザA、Bそれぞれの端末2は、相手方との間で設定したレート決定日に応じて、対応する公開鍵をサーバ1から取得する。
端末2は、取り分が多い相手方のアウトプットに対して、ユーザB及び中立者αの電子署名の検証を解除条件に設定する。図5の例では、ユーザAの端末2は、相手方であるユーザBの取り分に相当する「0.0110BTC」のアウトプットのスクリプトに、ユーザB及び中立者αの電子署名の検証を解除条件として記述する。
ここで、端末2は一般的なマルチシグネチャ(例えばPay to Multisig)と同じように、中立者αの公開鍵とユーザBの公開鍵とを用いてユーザBのアウトプットのスクリプトを記述し、中立者αの電子署名と、ユーザBの電子署名とを個別に検証するように解除条件を設定してもよい。しかし、本実施の形態で端末2は、P2PKH形式のスクリプトを特殊に構成することで、解除条件を設定する。具体的には、端末2は中立者αの公開鍵とユーザBの公開鍵とを集約した一の公開鍵を生成し、当該一の公開鍵のハッシュ値をアウトプットのスクリプトに記述する。これにより、当該一の公開鍵に対応する秘密鍵に基づき、一の電子署名のみでアウトプットを利用できるように設定する。
なお、以下の説明では便宜上、ユーザA、Bそれぞれの秘密鍵xを符号a、bで表し、秘密鍵a、bから生成される公開鍵をPub(a)=aG、Pub(b)=bGと表す。
なお、以下の説明では便宜上、ユーザA、Bそれぞれの秘密鍵xを符号a、bで表し、秘密鍵a、bから生成される公開鍵をPub(a)=aG、Pub(b)=bGと表す。
まず端末2は、式(2)に従い、中立者αの公開鍵(V,R)よりs(i)Gを計算する。次に端末2は、s(i)Gと、ユーザBの公開鍵Pub(b)とを加算することで、次の式(3)のように中立者α及びユーザBの公開鍵を集約した一の公開鍵Pub(b,i)を記述する。
Pub(b,i)=Pub(b)+s(i)G …(3)
端末2は、公開鍵Pub(b,i)のハッシュ値をユーザBの取り分に相当するアウトプットのスクリプトに記述し、公開鍵Pub(b,i)に対応する秘密鍵Priv(b,i)によってアウトプットを解除可能なように設定する。後述するように、秘密鍵Priv(b,i)はユーザBの秘密鍵bと中立者αの電子署名s(i)とから計算可能であるため、ユーザBの端末2は、中立者αの電子署名s(i)を用いて自らの取り分を利用することができる。
また、併せて端末2は、相手方のアウトプットの解除条件として、レート決定日から一定期間が経過し、かつ、自装置のユーザの電子署名が検証されること、をもう一つの解除条件(第2の解除条件)として設定する。上述の例では、ユーザAの端末2は、クロージングトランザクションのロックタイムフィールドに一定期間を記述し、かつ、ユーザBの取り分に相当するアウトプットのスクリプトに、ユーザAの電子署名の検証を解除条件として設定する。当該解除条件は、当事者のいずれかが契約違反を犯した場合のための罰則規定であり、後述するように、レート決定日において実際のスポットレートとは異なるレートのクロージングトランザクションを一方当事者がブロードキャストする場合に備えた規定である。
各ユーザの端末2は、各々のユーザの取り分に相当するアウトプットの解除条件を上記のように規定して、クロージングトランザクションを生成する。そして端末2は、相手方の端末2との間でクロージングトランザクションの送受信を行い、相手方が生成したクロージングトランザクションを保持する。端末2は、互いに自らのユーザが不利なスポットレートのクロージングトランザクションを生成したため、ユーザに有利なスポットレートのクロージングトランザクションを保持することになる。各端末2は、レート決定日まで処理を待機し、レート決定日となった場合、以下の処理を実行する。
図7は、契約実行処理について説明するための説明図である。図7に基づき、レート決定日に端末2が実行する処理の概要を説明する。
レート決定日に至った場合、中立者αであるサーバ1は、当日のスポットレートm=iを公表する。さらにサーバ1は、当日のスポットレート(メッセージ)m=iと、秘密鍵a及び乱数値kとに基づき、式(1)で表す中立者αの電子署名s(i)を生成して公開する。
レート決定日に至った場合、中立者αであるサーバ1は、当日のスポットレートm=iを公表する。さらにサーバ1は、当日のスポットレート(メッセージ)m=iと、秘密鍵a及び乱数値kとに基づき、式(1)で表す中立者αの電子署名s(i)を生成して公開する。
ユーザA、Bの端末2は、サーバ1からスポットレートm=iと、スポットレートm=iから生成された電子署名s(i)とを取得する。そして各端末2は、当該スポットレートに対応するクロージングトランザクションを保持しているか否かを判定する。ここでは、スポットレートがユーザAにとって有利なレートであり、ユーザAの端末2がクロージングトランザクションを保持していたものとする。
ユーザAの端末2は、レート決定日のスポットレートに対応するクロージングトランザクションをブロードキャストする。端末2が保持するクロージングトランザクションはユーザAにとって有利なものであるため、ユーザAには、当該トランザクションをブロードキャストしてNDF取引を実行するインセンティブが働く。端末2は、クロージングトランザクションのインプットに対してユーザAの電子署名を付加し、ブロードキャストする。ユーザBの電子署名はすでに記述されているため、ユーザA、B両方の電子署名がクロージングトランザクションに記述されたことになる。これにより、クロージングトランザクションのインプットはデポジットトランザクションのアウトプットの解除条件を満たし、クロージングトランザクションはブロックチェーンに正常に取り込まれる。
ここで、ユーザAがクロージングトランザクションをブロードキャストしない場合、ユーザBは自らの取り分を引き出せなくなる虞がある。この場合、デポジットトランザクションのアウトプットで規定された罰則規定が働き、ユーザBは、供託金の全額を引き出すことができる。すなわち、ユーザAがクロージングトランザクションをいつまでもブロードキャストせず、レート決定日から一定期間が経過した場合、デポジットトランザクションで定められたタイムロックが解除される。ユーザBの端末2は、ユーザBの秘密鍵に基づき電子署名を生成して、デポジットトランザクションから供託金の全額をユーザBのウォレットアドレスに送金するトランザクションを生成し、ブロードキャストする。これにより、取引の安全が担保される。
クロージングトランザクションにおいて、取り分が少ないユーザBのアウトプットは、ユーザBの電子署名の検証を解除条件としてあり、ユーザBの公開鍵のハッシュ値によってロックされている。すなわち、ユーザBの取り分はすでにユーザBのウォレットアドレスに送金済みの状態であり、ユーザBは自らの秘密鍵を用いて取り分を自由に使うことができる。
一方で、取り分が多いユーザAのアウトプットは、式(3)と同様に、ユーザAの公開鍵Pub(a)と中立者αの公開鍵(V,R)とを集約した公開鍵Pub(a,i)によってロックされている。従って、端末2はユーザAの秘密鍵aのみではユーザAの取り分を取り出すことができず、中立者αの秘密鍵vも用いなければならない。しかし、公開鍵Pub(a)=aGであることから、式(3)より次の式(4)の関係が成立する。
Pub(a,i)=(a+s(i))G …(4)
従って、ユーザAのアウトプットを使用するために必要な秘密鍵Priv(a,i)は、a+s(i)と同じになる。すなわち、ユーザAの端末2は、ユーザAの秘密鍵aに中立者αの電子署名s(i)を加算することで、秘密鍵Priv(a,i)を特定することができる。端末2は当該秘密鍵を用いて電子署名を生成し、ユーザAの取り分をユーザAのウォレットアドレスに送金するトランザクション(第3トランザクション)を生成して、ブロードキャストする。
なお、上記ではユーザAが適切なスポットレート、つまり実際のレート通りのクロージングトランザクションをブロードキャストした場合について説明したが、ユーザAが不正行為に及び、実際とは異なるレートのクロージングトランザクションがブロードキャストされる虞がある。この場合、クロージングトランザクションに設定された罰則規定が働き、ユーザBは、ユーザAの取り分を含めて供託金の全額を引き出すことができる。具体的には、実際とは異なるレートのクロージングトランザクションをブロードキャストした場合、サーバ1が管理している秘密鍵v及び乱数値kが未知であるため、ユーザAは、ユーザAの取り分に相当するアウトプットを利用するために必要な中立者αの電子署名s(i)を知得できない。従って、ユーザAは自らの取り分を引き出すことができない。この状態で一定期間が経過した場合、クロージングトランザクションに設定されたタイムロックが解除される。そしてユーザBの端末2は、ユーザBの電子署名を用いてユーザAのアウトプットをユーザBのウォレットアドレスに送金するトランザクションをブロードキャストすることで、ユーザBの取り分を含め、供託額の全額を引き出すことができる。これにより、取引の安全性が確保される。
図8は、NDF取引の結果を示す説明図である。図8では、図4で示した利用例に対応して、NDF取引の結果の一例を示している。
図8では、レート決定日のスポットレートは、1BTCが90万JPY及び1憶1000万VNDであり、1JPYが122VNDであったものとして説明する。この場合、売買契約に従ってユーザAは商品をユーザCに引き渡し、代金として0.1BTCを受け取る。1BTCが90万JPYであるため、ユーザAが受け取る代金の日本円換算の金額は9万JPYまで下がっている。
図8では、レート決定日のスポットレートは、1BTCが90万JPY及び1憶1000万VNDであり、1JPYが122VNDであったものとして説明する。この場合、売買契約に従ってユーザAは商品をユーザCに引き渡し、代金として0.1BTCを受け取る。1BTCが90万JPYであるため、ユーザAが受け取る代金の日本円換算の金額は9万JPYまで下がっている。
しかし、上述のNDF取引に係るトランザクションにより、ユーザAは、契約レート及びスポットレートの差額に相当する0.0091BTCを得る。ユーザAは、代金0.1BTCに0.0091BTCを加えた0.1091BTCを両替所等で日本円に交換することで、予約時の価格である10万JPYとほぼ同額での売買が保証される。一方で、ユーザBは期待値を外したため、ユーザBに差金を支払う形になる。
ユーザCは、代金としてユーザAに0.1BTCを支払う。1BTCが1憶1000万VNDであるため、ユーザCが支払う代金のベトナムドン換算の金額は1100万VNDまで上がっている。しかし、ユーザCもNDF契約に係るトランザクションにより、契約レート及びスポットレートの差額に相当する0.0091BTCを得る。ユーザBは、1000万VNDを両替所等で0.0909BTCに換金し、これに0.0091BTCを加えた0.1BTCを支払いに充てることで、予約時と同じ価格である1000万VNDでの売買が保証される。一方で、ユーザDは期待値を外したため、仲介者を介してユーザCに差金を支払う形になる。
図9は、契約生成処理の処理手順の一例を示すフローチャートである。図9に基づき、NDF契約の生成処理について説明する。
端末2の制御部21は、ユーザ(第1のユーザ)による操作入力に基づき、NDF取引に係るユーザの希望条件を規定した申込情報をマッチングサーバ3に出力する(ステップS11)。希望条件は、取引対象とする法定通貨、NDF取引の契約レート、スポットレートの決定日(決定時点)、想定元本等の情報を含む。マッチングサーバ3は、各ユーザから受け付けた申込情報が示す希望条件のマッチングを行い、希望条件が合致(一致又は類似)するユーザを示すマッチング結果を返信する。あるいは、マッチングサーバ3は、ユーザ間での契約レート、レート決定日等の条件は一致するが、想定元本が一致しない場合、仲介者の情報をマッチング結果として返信する。制御部21は、マッチングサーバ3から、ステップS11で出力した申込情報に基づくマッチング結果を取得する(ステップS12)。マッチング結果は、NDF取引の相手方(第2のユーザ、又は仲介者)の情報、相手方が提示した希望条件等の情報を含む。
端末2の制御部21は、ユーザ(第1のユーザ)による操作入力に基づき、NDF取引に係るユーザの希望条件を規定した申込情報をマッチングサーバ3に出力する(ステップS11)。希望条件は、取引対象とする法定通貨、NDF取引の契約レート、スポットレートの決定日(決定時点)、想定元本等の情報を含む。マッチングサーバ3は、各ユーザから受け付けた申込情報が示す希望条件のマッチングを行い、希望条件が合致(一致又は類似)するユーザを示すマッチング結果を返信する。あるいは、マッチングサーバ3は、ユーザ間での契約レート、レート決定日等の条件は一致するが、想定元本が一致しない場合、仲介者の情報をマッチング結果として返信する。制御部21は、マッチングサーバ3から、ステップS11で出力した申込情報に基づくマッチング結果を取得する(ステップS12)。マッチング結果は、NDF取引の相手方(第2のユーザ、又は仲介者)の情報、相手方が提示した希望条件等の情報を含む。
制御部21は、ユーザによる操作入力に基づき、NDF取引の契約を約定させるか否かを判定する(ステップS13)。約定させないと判定した場合(S13:NO)、制御部21は処理をステップS11に戻す。約定させると判定した場合(S13:YES)、制御部21は、各々のユーザが所定額の仮想通貨をマルチシグアドレスにデポジットするデポジットトランザクション(第1のトランザクション)を生成し、ブロックチェーンネットワークの各ノードに出力する(ステップS14)。具体的には、制御部21は、各々のユーザのウォレットアドレスから入金される所定額の仮想通貨をインプットとし、入金された仮想通貨の総額をアウトプットとするトランザクションを生成する。また、制御部21は、両ユーザの秘密鍵に基づく電子署名の検証をアウトプットの解除条件(第1の解除条件)に設定する。さらに制御部21は、一定期間が経過し、かつ、いずれか一方のユーザの電子署名が検証されることをアウトプットのもう一つの解除条件(第2の解除条件)に設定する。制御部21は、デポジットトランザクションを、仮想通貨のトランザクションデータを分散して管理する、ブロックチェーンネットワークの各ノードにブロードキャストする。
制御部21は、中立者として機能するサーバ1から、サーバ1が管理する秘密鍵に基づき生成された公開鍵を取得する(ステップS15)。具体的には上述の如く、制御部21はサーバ1から、秘密鍵vを用いて生成されたポイントVと、乱数値kを用いて生成されたポイントRとを公開鍵(V,R)として取得する。
制御部21は、取得した中立者の公開鍵に基づき、デポジットトランザクションでデポジットされた仮想通貨を、レート決定日において想定され得る複数のスポットレートそれぞれに応じて各ユーザに配分する複数のクロージングトランザクション(第2トランザクション)を生成する(ステップS16)。具体的には、制御部21は、デポジットトランザクションのアウトプットをインプットとし、各ユーザの取り分に相当する2つのアウトプットを有するトランザクションを生成する。制御部21は、想定され得る複数のスポットレート夫々に対応して各ユーザの取り分を計算し、各レートに対応する複数のクロージングトランザクションを生成する。
より詳細には、制御部21は、取引条件として設定済みの契約レートと、想定元本とを参照して、自装置のユーザ(第1のユーザ)に配分される仮想通貨の金額が、当該ユーザがデポジットした仮想通貨の金額未満であるスポットレート、すなわちユーザにとって不利なスポットレートのデポジットトランザクションを生成する。
また、制御部21は、クロージングトランザクションの2つのアウトプットそれぞれの解除条件を設定する。制御部21は、自装置のユーザの取り分に相当するアウトプットに関しては、当該ユーザの秘密鍵に基づく電子署名の検証を解除条件に設定する。一方で、制御部21は、相手方(第2のユーザ)の取り分に相当するアウトプットに関しては、相手方及び中立者の電子署名の検証を解除条件(第1の解除条件)に設定する。より詳細には、制御部21は、中立者αの公開鍵(V,R)に基づき生成されるs(i)Gと、相手方の秘密鍵xに基づき生成された公開鍵Pub(x)とを加算することで、中立者α及び相手方の公開鍵を集約した一の公開鍵Pub(x、i)を生成する。制御部21は、生成した公開鍵Pub(x、i)のハッシュ値をアウトプットのスクリプトに記述し、公開鍵Pub(x、i)に対応する秘密鍵Priv(x,i)に基づく電子署名の検証を解除条件として設定する。
さらに制御部21は、相手方のアウトプットの解除条件として、一定期間が経過し、かつ、自装置のユーザの電子署名が検証されることをもう一つの解除条件(第2の解除条件)に設定する。
制御部21は、各々が生成したクロージングトランザクションを相手方の端末2との間で送受信する(ステップS17)。具体的には、制御部21は、自身が生成したクロージングトランザクションに自装置のユーザの電子署名を付加し、相手方に送信する。制御部21は、同様に相手方の電子署名が付加されたクロージングトランザクションを相手方の端末2から受信する。制御部21は、相手方の端末2から受信したクロージングトランザクションを補助記憶部26に記憶(保持)し(ステップS18)、一連の処理を終了する。
図10は、契約実行処理の処理手順の一例を示すフローチャートである。図10に基づき、NDF契約の実行処理について説明する。
端末2の制御部21は、現在の日付がレート決定日であるか否かを判定する(ステップS31)。レート決定日でないと判定した場合(S31:NO)、制御部21は処理を待機する。レート決定日であると判定した場合(S31:YES)、制御部21はサーバ1から、レート決定日におけるスポットレート(取引レート)と、当該スポットレートから中立者の秘密鍵に基づいて生成された電子署名とをサーバ1から取得する(ステップS32)。具体的には、サーバ1は、レート決定日のスポットレートm=iを公開すると共に、スポットレートiと、秘密に管理している秘密鍵v及び乱数値kとを用いて、式(1)に基づき電子署名s(i)を生成して公開する。端末2の制御部21は、サーバ1が公開したスポットレートiと、電子署名s(i)とを取得する。
端末2の制御部21は、現在の日付がレート決定日であるか否かを判定する(ステップS31)。レート決定日でないと判定した場合(S31:NO)、制御部21は処理を待機する。レート決定日であると判定した場合(S31:YES)、制御部21はサーバ1から、レート決定日におけるスポットレート(取引レート)と、当該スポットレートから中立者の秘密鍵に基づいて生成された電子署名とをサーバ1から取得する(ステップS32)。具体的には、サーバ1は、レート決定日のスポットレートm=iを公開すると共に、スポットレートiと、秘密に管理している秘密鍵v及び乱数値kとを用いて、式(1)に基づき電子署名s(i)を生成して公開する。端末2の制御部21は、サーバ1が公開したスポットレートiと、電子署名s(i)とを取得する。
制御部21は、レート決定日のスポットレートに対応するクロージングトランザクションを、自装置で保持(記憶)しているか否かを判定する(ステップS33)。保持していると判定した場合(S33:YES)、制御部21は、自装置のユーザの電子署名を付加した上で、当該クロージングトランザクションをブロックチェーンネットワークの各ノードに出力する(ステップS34)。その後、制御部21は、サーバ1から取得した中立者の電子署名を用い、クロージングトランザクションで自装置のユーザに配分された仮想通貨を、当該ユーザのウォレットアドレスに送金するトランザクション(第3トランザクション)を生成し、出力する(ステップS35)。
具体的には上述の如く、制御部21は、ユーザの秘密鍵xに紐付く公開鍵Pub(x)と、中立者αの電子署名s(i)とに基づき、ユーザ及び中立者αそれぞれの公開鍵Pub(x)及び(V、R)を集約した公開鍵Pub(x,i)に対応する秘密鍵Priv(x,i)を特定する。制御部21は、特定した秘密鍵Priv(x,i)を用いて電子署名を生成し、当該電子署名を付加したトランザクションを生成してブロードキャストする。制御部21は、一連の処理を終了する。
スポットレートに対応するクロージングトランザクションを保持していないと判定した場合(S33:NO)、制御部21は、相手方の端末2からクロージングトランザクションがブロックチェーン上に出力されたか否かを判定する(ステップS36)。クロージングトランザクションが出力されたと判定した場合(S36:YES)、制御部21は、相手方が自らの取り分に相当するアウトプットを相手方のウォレットアドレスに送金する、ステップS35のトランザクションをブロックチェーン上に出力したか否かを判定する(ステップS37)。相手方がトランザクションを出力したと判定した場合(S37:YES)、制御部21は一連の処理を終了する。
相手方がトランザクションを出力していないと判定した場合(S37:NO)、制御部21は、クロージングトランザクションで規定された一定期間を経過したか否かを判定する(ステップS38)。一定期間が経過していないと判定した場合(S38:NO)、制御部21は処理をステップS37に戻す。一定期間が経過したと判定した場合(S38:YES)、制御部21は、相手方の取り分に相当するクロージングトランザクションのアウトプットを自装置のユーザのウォレットアドレスに送金するトランザクションを生成し、ブロックチェーン上に出力する(ステップS39)。具体的には、制御部21は、相手方のアウトプットのスクリプトで規定された解除条件に従い、自装置のユーザの電子署名を付加したトランザクションを生成してブロードキャストする。制御部21は、一連の処理を終了する。
相手方からクロージングトランザクションが出力されていないと判定した場合(S36:NO)、制御部21は、デポジットトランザクションで規定された一定期間が経過したか否かを判定する(ステップS40)。一定期間が経過していないと判定した場合(S40:NO)、制御部21は処理をステップS36に戻す。一定期間が経過したと判定した場合(S40:YES)、制御部21は、デポジットトランザクションにデポジットされた仮想通貨の全額をユーザのウォレットアドレスに送金するトランザクションを生成し、ブロックチェーン上に出力する(ステップS41)。具体的には、制御部21はアウトプットのスクリプトで規定された解除条件に従い、自装置のユーザの電子署名を付加したトランザクションを生成してブロードキャストする。制御部21は、一連の処理を終了する。
なお、上記では、Schnorr署名を一般的な使い方とは異なる使い方で用い、これに対応して、クロージングトランザクションのアウトプットを、P2PKH形式の特殊なスクリプトで構成した。しかし、本実施の形態はこれに限定されるものではない。例えば一般的な使い方と同じく、秘密鍵vに基づくポイントVのみをSchnorr署名の公開鍵として用いてもよい。この場合、端末2は任意のスポットレートm=iのs(i)Gを計算できないため、代わりにサーバ1が任意のスポットレートm=iのs(i)Gを計算した上で各端末2に配信すればよい。また、例えば各端末2は、一般的なマルチシグネチャと同じく、中立者αの公開鍵のハッシュ値と、ユーザA又はBの公開鍵のハッシュ値とをクロージングトランザクションのアウトプットのスクリプトに記述することで、中立者α及びユーザA、Bの電子署名を個別に検証させるようにしてもよい。
また、可能であるならば、Pay to PubKeyやP2SH(Pay to Script Hash)のアルゴリズムを用いて各トランザクションのスクリプトを記述してもよい。また、電子署名はSchnorr署名だけでなく、DSA等のその他の電子署名であってもよい。すなわち、端末2は、少なくとも中立者の公開鍵に用いてクロージングトランザクションを生成し、中立者の電子署名によってクロージングトランザクションに続く後続のトランザクションを生成可能であればよく、スクリプトの記述形式、電子署名の方式等は特に限定されない。
また、上記でサーバ1が中立者として機能し、マッチングサーバ3がマッチング機能を有するものとして説明したが、両機能を一の装置(サーバ)に実装してもよい。
また、上記で端末2は、中立者として機能するサーバ1からスポットレートを取得するものとしたが、必ずしも中立者からスポットレートを取得する必要はなく、中立者以外の第三者(例えば為替レートを発表する金融機関等)から取得するようにしてもよい。
また、上記ではNDF取引を一例に説明したが、本実施の形態はこれに限定されるものではない。例えば法定通貨と仮想通貨との間の両替取引、FX(Foreign Exchange)取引等の価格変動リスクをヘッジする取引を行うようにしてもよい。また、後述する実施の形態2のように、取引対象とする現物は通貨自体の価格(為替)でなくともよい。また、金融取引に限定されず、例えばゲーム内の取引であってもよい。すなわち、取引システムは、経時的に取引レートが変動する取引対象について、取引価格の変動リスクをヘッジする処理を、仮想通貨を用いた差金決済によって行うことができればよく、その取引対象は特に限定されない。
以上より、本実施の形態1によれば、NDF取引を行う各ユーザの端末2は、所定額をデポジットトランザクションによって供託した後、想定され得る複数のスポットレートそれぞれに対応して、複数のクロージングトランザクションを生成しておく。ここで端末2は、各ユーザとは異なる中立者の公開鍵を用いて、クロージングトランザクションのアウトプットをロックする。そして端末2は、レート決定日を経過した場合、レート決定日のスポットレートに対応するクロージングトランザクションをブロードキャストする。そして端末2は、中立者の秘密鍵に基づき生成された電子署名を用いて、自らのウォレットアドレスに取り分を送金する。所定額が事前に供託されているためカウンターパーティリスクが解消されていると共に、中立者の公開鍵及び電子署名を用いてNDF取引を実行するため、各ユーザは互いの信頼関係を不要としてNDF取引を行うことができる。これにより、小口での取引も可能な、中央管理者を不要としたNDF取引を行うことができる。
また、本実施の形態1によれば、各ユーザはマルチシグアドレスに供託金をデポジットしておくと共に、互いに生成したクロージングトランザクションに電子署名を付加して交換しておき、レート決定日に対応するクロージングトランザクションを保持するユーザが、当該クロージングトランザクションをブロードキャストする。これにより、NDF取引を好適に実施することができる。
また、本実施の形態1によれば、各ユーザは自らに不利なスポットレートのクロージングトランザクションを生成し、交換する。これにより、各ユーザは自らに有利なスポットレートのクロージングトランザクションを保持することになり、レート決定日のスポットレートが自らに有利なスポットレートである場合、クロージングトランザクションをブロードキャストするインセンティブが働く。これにより、好適にNDF取引を実現することができる。
また、本実施の形態1によれば、クロージングトランザクションを生成する場合、端末2は、取り分が多い相手方のアウトプットに関して、相手方及び中立者の電子署名の検証を第1の解除条件を設定すると共に、一定期間が経過し、かつ、ユーザの電子署名が検証されることを第2の解除条件に設定する。第1の解除条件により、クロージングトランザクションをブロードキャストする側のユーザ(つまり有利なユーザ)は中立者の電子署名を用いて自らのウォレットアドレスへの送金を行うよう強制され、中立者による間接的な取引の承認を行うことができる。また、第2の解除条件により、有利なユーザは一定期間内に正しいスポットレートのクロージングトランザクションをブロードキャストするよう強制され、不正行為が是正される。
また、本実施の形態1によれば、式(3)で示したようにユーザ(相手方)及び中立者それぞれの公開鍵を一の公開鍵に集約し、当該公開鍵に基づいてクロージングトランザクションのアウトプットをロックする。これにより、ユーザ及び中立者の秘密鍵を別々に検証する必要がなく、トランザクションのデータサイズを圧縮し、スケーラビリティの問題に対応することができる。
また、本実施の形態1によれば、クロージングトランザクションを生成する場合、端末2は、取り分が少ないユーザのアウトプットに関しては、当該ユーザのみの電子署名の検証を解除条件に設定する。すなわち、クロージングトランザクションがブロードキャストされた場合、すでにユーザの取り分に相当するアウトプットはユーザの秘密鍵に紐付けられた形になり、ユーザのウォレットアドレスに送金済みの状態となる。従って、取り分が少ないユーザはクロージングトランザクションに続く後続のトランザクションを生成する必要がなく、ユーザの負担を減らすことができる。
また、本実施の形態1によれば、デポジットトランザクションのアウトプットの第2の解除条件として、一定期間が経過し、かつ、いずれか一方のユーザのみの電子署名が検証されることを解除条件に設定する。これにより、クロージングトランザクションをブロードキャストすべきユーザが当該トランザクションを出力しない事態に対応することができる。
また、本実施の形態1によれば、サーバ1はNDF取引の取引板を提供する。これにより、各ユーザは不特定のユーザとの間で取引を行うことができる。
また、本実施の形態1によれば、サーバ1は、各ユーザの希望条件で規定された想定元本が揃わない場合、仲介者を取引相手として紹介する。これにより、マッチングの不成立を防止することができる。
(実施の形態2)
実施の形態1では、仮想通貨を用いて外国為替のヘッジを行う形態について述べた。本実施の形態では、仮想通貨のマイニングに伴う報酬をヘッジする形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
図11は、実施の形態2の概要を示す説明図である。図11では、ユーザがマイニングに伴う報酬のリスクヘッジを行うため、取引板にオファーを出力する様子を概念的に図示している。図11に基づき、本実施の形態の概要について説明する。
実施の形態1では、仮想通貨を用いて外国為替のヘッジを行う形態について述べた。本実施の形態では、仮想通貨のマイニングに伴う報酬をヘッジする形態について述べる。なお、実施の形態1と重複する内容については同一の符号を付して説明を省略する。
図11は、実施の形態2の概要を示す説明図である。図11では、ユーザがマイニングに伴う報酬のリスクヘッジを行うため、取引板にオファーを出力する様子を概念的に図示している。図11に基づき、本実施の形態の概要について説明する。
本実施の形態で取引システムが実行するトランザクションの処理内容は実施の形態1と同様であるが、取り扱う取引の内容が異なる。具体的には、取引システムは、マイニングの難易度(difficulty)調整に伴うマイニング報酬の変動リスクをヘッジする取引を取り扱う。
ビットコイン等のブロックチェーンシステムでは、マイナーが各ブロックの検証(マイニング)に要する時間を調整するため、マイニングに係る計算問題の難易度を定期的に変更している。ビットコインを例にした場合、Proof of Workに係るナンス値を探索する時間が1ブロック当たり約10分間となるように、2016ブロック(約2週間に相当)がブロックチェーンに追加される毎に、1ブロック当たりの平均計算時間を求め、難易度を調整している。その難易度は徐々に上がる傾向にある。
一方で、難易度が変更されるということは、マイナーにとって、マイニングの報酬として得る手数料の期待値が変動することを意味する。周知のように、多くのマイナーがASIC(Application Specific Integrated Circuit)等の高い計算能力(Hash Power)を有する計算機を用いて、電気代、水道代等を投資して報酬を得ている。また、近年ではマイニングプールへの投資も行われており、計算機を所持する直接的なマイナーではないが、マイニングプールの運営主体に投資してマイニングを行わせ、対価として報酬を得ている者も存在する。このようなマイナー等にとって、難易度が上がった場合、マイニングによって得る報酬の期待値が下がることになる。
そこで本実施の形態に係る取引システムでは、将来のマイニングの難易度変更に備え、マイニングの報酬が変動するリスクをヘッジする取引の市場を提供する。具体的には、取引システムはNDF取引の場合と同様に、マイニングの報酬を取引対象にするが、報酬自体の受け渡しは行わず、マイニングの難易度調整に伴う報酬の変動額(差額)分のみを差金決済する取引の市場を提供する。つまり、本実施の形態ではマイニングの難易度が為替レートに相当し、マイニングの報酬が想定元本に相当する。
売り手側であるユーザの端末2は、当該取引に係る希望条件を規定したオファーをマッチングサーバ3に出力する。具体的には、端末2は、契約レートに相当するマイニングの難易度、スポットレートに相当する難易度の決定日(決定時点)、想定元本に相当するマイニングの報酬額等を規定した申込情報を出力する。
マッチングサーバ3は同様に、買い手側のユーザの端末2からビッドを受け付け、売り手側のユーザのオファーと希望条件をマッチングさせる。マッチングサーバ3は、マッチング結果を端末2に返信する。各ユーザの端末2は、取引条件の詳細を設定して取引に合意し、実施の形態1と同様、差金決済を行うためのデポジットトランザクション及びクロージングトランザクションの生成に移る。
図12は、実施の形態2に係る契約生成処理の処理手順の一例を示すフローチャートである。図12に基づき、本実施の形態に係る契約生成処理について説明する。
端末2の制御部21は、マイニングの難易度調整に伴うマイニング報酬の変動リスクをヘッジする取引であって、マイニング報酬を取引対象にして、マイニングの難易度の変更に基づく差金決済を行う取引の希望条件を規定した申込情報を出力する(ステップS201)。より詳細には、当該取引は、ユーザが取り決めた難易度を契約レートにして、レート決定日における実際の難易度(スポットレート)と契約レートとの差分に、マイニングによって得られるであろう報酬の期待値(想定元本)を乗算した金額を差金決済する取引である。オファーする希望条件は、取り扱う仮想通貨、契約レートに相当する難易度、スポットレートに相当する難易度の決定日、想定元本に相当するマイニング報酬の期待値等の情報を含む。
端末2の制御部21は、マイニングの難易度調整に伴うマイニング報酬の変動リスクをヘッジする取引であって、マイニング報酬を取引対象にして、マイニングの難易度の変更に基づく差金決済を行う取引の希望条件を規定した申込情報を出力する(ステップS201)。より詳細には、当該取引は、ユーザが取り決めた難易度を契約レートにして、レート決定日における実際の難易度(スポットレート)と契約レートとの差分に、マイニングによって得られるであろう報酬の期待値(想定元本)を乗算した金額を差金決済する取引である。オファーする希望条件は、取り扱う仮想通貨、契約レートに相当する難易度、スポットレートに相当する難易度の決定日、想定元本に相当するマイニング報酬の期待値等の情報を含む。
制御部21は、マッチングサーバ3から、ステップS11で出力した申込情報に基づくマッチング結果を取得する(ステップS202)。制御部21は処理をステップS13に移行し、取引が約定した場合、実施の形態1と同様にトランザクションの生成に移る。
以上より、本実施の形態2によれば、マイニングの報酬の変動リスクをヘッジすることができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 サーバ(情報処理装置)
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P1 プログラム
141 レートDB
2 端末(情報処理端末)
21 制御部
22 主記憶部
23 通信部
24 表示部
25 入力部
26 補助記憶部
P2 プログラム
261 ウォレットデータ
3 マッチングサーバ
31 制御部
32 主記憶部
33 通信部
34 補助記憶部
P3 プログラム
341 ユーザDB
342 取引板DB
4 仲介者装置
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P1 プログラム
141 レートDB
2 端末(情報処理端末)
21 制御部
22 主記憶部
23 通信部
24 表示部
25 入力部
26 補助記憶部
P2 プログラム
261 ウォレットデータ
3 マッチングサーバ
31 制御部
32 主記憶部
33 通信部
34 補助記憶部
P3 プログラム
341 ユーザDB
342 取引板DB
4 仲介者装置
Claims (13)
- 差金決済を伴う取引の条件であって、経時的に取引レートが変動する取引対象について、ユーザ及び相手方の間で取り決めた前記取引対象の契約レートと、差金決済を行う前記取引レートの決定時点と、想定元本とを含む取引条件を設定する設定部と、
前記取引条件に基づき、前記ユーザ及び相手方夫々が所定額の仮想通貨をデポジットした第1トランザクションを生成する第1生成部と、
前記第1トランザクションを、前記仮想通貨のトランザクションデータを分散して管理する各ノードに出力する第1出力部と、
前記相手方と異なる中立者から、該中立者の秘密鍵に基づき生成された公開鍵を取得する第1取得部と、
取得した前記中立者の公開鍵を用いて、前記第1トランザクションでデポジットされた前記仮想通貨を、複数の前記取引レート夫々に応じて前記ユーザ及び相手方に配分する複数の第2トランザクションを生成する第2生成部と、
前記決定時点を経過した場合、該決定時点の前記取引レートと、該取引レートから前記中立者の秘密鍵に基づき生成された電子署名とを取得する第2取得部と、
取得した前記取引レートに対応する前記第2トランザクションを前記各ノードに出力する第2出力部と、
前記中立者の電子署名を用いて、前記第2トランザクションで前記ユーザに配分された前記仮想通貨を前記ユーザ宛に送金する第3トランザクションを生成する第3生成部と、
前記第3トランザクションを前記各ノードに出力する第3出力部と
を備えることを特徴とする情報処理装置。 - 前記第1生成部は、前記ユーザ及び相手方夫々の電子署名が必要なマルチシグアドレスに前記仮想通貨をデポジットする前記第1トランザクションを生成し、
前記第2生成部が生成した前記複数の第2トランザクションに、前記ユーザの電子署名を付加して前記相手方に送信する送信部と、
該相手方の電子署名が付加された、前記相手方が生成した前記複数の第2トランザクションを前記相手方から受信する受信部と、
受信した前記複数の第2トランザクションを保持する保持部と
を備え、
前記第2出力部は、前記保持部が保持している前記複数の第2トランザクションのうち、前記決定時点の前記取引レートに対応する前記第2トランザクションに、前記ユーザの電子署名を付加して出力する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第2生成部は、前記ユーザに配分される前記仮想通貨の金額が、前記ユーザが前記マルチシグアドレスにデポジットした前記仮想通貨の金額未満となる前記取引レートに対応した前記第2トランザクションを生成し、
前記受信部は、前記ユーザに配分される前記仮想通貨の金額が、前記ユーザが前記マルチシグアドレスにデポジットした前記仮想通貨の金額を超える前記取引レートに対応した前記第2トランザクションを前記相手方から受信し、
前記第2出力部は、前記決定時点の前記取引レートに対応する前記第2トランザクションを前記保持部が保持している場合、該第2トランザクションを出力する
ことを特徴とする請求項2に記載の情報処理装置。 - 前記第2生成部は、前記相手方に配分される前記仮想通貨に相当するアウトプットに関し、前記相手方及び中立者の電子署名の検証を第1の解除条件に、前記決定時点から一定期間が経過し、かつ、前記ユーザの電子署名が検証されることを第2の解除条件に設定した前記第2トランザクションを生成し、
前記受信部は、前記ユーザに配分される前記仮想通貨に相当するアウトプットに関し、前記ユーザ及び中立者の電子署名の検証を第1の解除条件に、前記決定時点から一定期間が経過し、かつ、前記相手方の電子署名が検証されることを第2の解除条件に設定した前記第2トランザクションを受信する
ことを特徴とする請求項3に記載の情報処理装置。 - 前記相手方の秘密鍵に基づき生成された公開鍵を取得する第3取得部を備え、
前記第2生成部は、
前記相手方及び中立者夫々の公開鍵に基づき、一の公開鍵を生成し、
前記一の公開鍵を用いて、前記第2トランザクションに前記第1の解除条件を設定し、
前記第3生成部は、
前記ユーザの公開鍵及び前記中立者の電子署名に基づき、前記一の公開鍵に対応する秘密鍵を特定し、
特定した秘密鍵を用いて、前記第1の解除条件を満たす電子署名を生成して前記第3トランザクションに付加する
ことを特徴とする請求項4に記載の情報処理装置。 - 前記第2生成部は、前記ユーザに配分される前記仮想通貨に相当するアウトプットに関し、前記ユーザの電子署名の検証を解除条件に設定した前記第2トランザクションを生成し、
前記受信部は、前記相手方に配分される前記仮想通貨に相当するアウトプットに関し、前記相手方の電子署名の検証を解除条件に設定した前記第2トランザクションを取得する
ことを特徴とする請求項4又は5に記載の情報処理装置。 - 前記第1生成部は、前記ユーザ及び相手方夫々の電子署名の検証をアウトプットの第1の解除条件に、前記決定時点から一定期間が経過し、かつ、前記ユーザ又は相手方の電子署名が検証されることをアウトプットの第2の解除条件に設定した前記第1トランザクションを生成する
ことを特徴とする請求項2〜6のいずれか1項に記載の情報処理装置。 - 前記ユーザによる前記取引の希望条件を外部装置に出力する条件出力部と、
前記ユーザと前記希望条件が合致する他の前記ユーザを示すマッチング結果を、前記外部装置から取得する第4取得部と
を備え、
前記設定部は、前記他のユーザとの間で前記取引条件を設定する
ことを特徴とする請求項1〜7のいずれか1項に記載の情報処理装置。 - 前記想定元本に係る前記希望条件が前記他のユーザのいずれとも合致しない場合、前記ユーザと前記他のユーザとの間で前記取引を仲介する仲介者の情報を前記外部装置から取得する
ことを特徴とする請求項8に記載の情報処理装置。 - 前記設定部は、前記仮想通貨のマイニングに伴う報酬を前記取引対象にして、前記契約レートに相当する前記マイニングの難易度と、前記取引レートに相当する難易度の決定時点と、前記想定元本に相当する前記報酬の金額とを含む前記取引条件を設定する
ことを特徴とする請求項1〜9のいずれか1項に記載の情報処理装置。 - 差金決済を伴う取引の条件であって、経時的に取引レートが変動する取引対象について、ユーザ及び相手方の間で取り決めた前記取引対象の契約レートと、差金決済を行う前記取引レートの決定時点と、想定元本とを含む取引条件を設定し、
前記取引条件に基づき、前記ユーザ及び相手方夫々が所定額の仮想通貨をデポジットした第1トランザクションを生成し、
前記第1トランザクションを、前記仮想通貨のトランザクションデータを分散して管理する各ノードに出力し、
前記相手方と異なる中立者から、該中立者の秘密鍵に基づき生成された公開鍵を取得し、
取得した前記中立者の公開鍵を用いて、前記第1トランザクションでデポジットされた前記仮想通貨を、複数の前記取引レート夫々に応じて前記ユーザ及び相手方に配分する複数の第2トランザクションを生成し、
前記決定時点を経過した場合、該決定時点の前記取引レートと、該取引レートから前記中立者の秘密鍵に基づき生成された電子署名とを取得し、
取得した前記取引レートに対応する前記第2トランザクションを前記各ノードに出力し、
前記中立者の電子署名を用いて、前記第2トランザクションで前記ユーザに配分された前記仮想通貨を前記ユーザ宛に送金する第3トランザクションを生成し、
前記第3トランザクションを前記各ノードに出力する
処理をコンピュータに実行させることを特徴とする情報処理方法。 - 差金決済を伴う取引の条件であって、経時的に取引レートが変動する取引対象について、ユーザ及び相手方の間で取り決めた前記取引対象の契約レートと、差金決済を行う前記取引レートの決定時点と、想定元本とを含む取引条件を設定し、
前記取引条件に基づき、前記ユーザ及び相手方夫々が所定額の仮想通貨をデポジットした第1トランザクションを生成し、
前記第1トランザクションを、前記仮想通貨のトランザクションデータを分散して管理する各ノードに出力し、
前記相手方と異なる中立者から、該中立者の秘密鍵に基づき生成された公開鍵を取得し、
取得した前記中立者の公開鍵を用いて、前記第1トランザクションでデポジットされた前記仮想通貨を、複数の前記取引レート夫々に応じて前記ユーザ及び相手方に配分する複数の第2トランザクションを生成し、
前記決定時点を経過した場合、該決定時点の前記取引レートと、該取引レートから前記中立者の秘密鍵に基づき生成された電子署名とを取得し、
取得した前記取引レートに対応する前記第2トランザクションを前記各ノードに出力し、
前記中立者の電子署名を用いて、前記第2トランザクションで前記ユーザに配分された前記仮想通貨を前記ユーザ宛に送金する第3トランザクションを生成し、
前記第3トランザクションを前記各ノードに出力する
処理をコンピュータに実行させることを特徴とするプログラム。 - 各ユーザの情報処理端末と、前記ユーザと異なる中立者の情報処理装置とを有する取引システムであって、
前記情報処理端末は、
差金決済を伴う取引の条件であって、経時的に取引レートが変動する取引対象について、第1及び第2のユーザの間で取り決めた前記取引対象の契約レートと、差金決済を行う前記取引レートの決定時点と、想定元本とを含む取引条件を設定する設定部と、
前記取引条件に基づき、前記第1及び第2のユーザ夫々が所定額の仮想通貨をデポジットした第1トランザクションを生成する第1生成部と、
前記第1トランザクションを、前記仮想通貨のトランザクションデータを分散して管理する各ノードに出力する第1出力部と、
前記情報処理装置から、前記中立者の秘密鍵に基づき生成された公開鍵を取得する第1取得部と、
取得した前記中立者の公開鍵を用いて、前記第1トランザクションでデポジットされた前記仮想通貨を、複数の前記取引レート夫々に応じて前記第1及び第2のユーザに配分する複数の第2トランザクションを生成する第2生成部と、
前記決定時点を経過した場合、該決定時点の前記取引レートと、該取引レートから前記中立者の秘密鍵に基づき生成された電子署名とを取得する第2取得部と、
取得した前記取引レートに対応する前記第2トランザクションを前記各ノードに出力する第2出力部と、
前記中立者の電子署名を用いて、前記第2トランザクションで前記第1又は第2のユーザに配分された前記仮想通貨を前記第1又は第2のユーザ宛に送金する第3トランザクションを生成する第3生成部と、
前記第3トランザクションを前記各ノードに出力する第3出力部と
を備えることを特徴とする取引システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018110655A JP2019212241A (ja) | 2018-06-08 | 2018-06-08 | 情報処理装置、情報処理方法、プログラム及び取引システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018110655A JP2019212241A (ja) | 2018-06-08 | 2018-06-08 | 情報処理装置、情報処理方法、プログラム及び取引システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019212241A true JP2019212241A (ja) | 2019-12-12 |
JP2019212241A5 JP2019212241A5 (ja) | 2020-01-30 |
Family
ID=68845282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018110655A Withdrawn JP2019212241A (ja) | 2018-06-08 | 2018-06-08 | 情報処理装置、情報処理方法、プログラム及び取引システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019212241A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022003841A1 (ja) | 2020-06-30 | 2022-01-06 | 富士通株式会社 | 署名制御方法、署名制御プログラム、および情報処理装置 |
WO2022224991A1 (ja) * | 2021-04-22 | 2022-10-27 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 制御方法、端末、及び、プログラム |
JP2022554202A (ja) * | 2020-06-22 | 2022-12-28 | 杭州趣鏈科技有限公司 | 対話型集約署名方法、設備および記憶媒体 |
JP7277677B1 (ja) | 2023-01-24 | 2023-05-19 | 直樹 神田 | 為替マッチング処理プログラム、為替マッチング処理方法、及び、為替マッチング処理システム |
-
2018
- 2018-06-08 JP JP2018110655A patent/JP2019212241A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022554202A (ja) * | 2020-06-22 | 2022-12-28 | 杭州趣鏈科技有限公司 | 対話型集約署名方法、設備および記憶媒体 |
WO2022003841A1 (ja) | 2020-06-30 | 2022-01-06 | 富士通株式会社 | 署名制御方法、署名制御プログラム、および情報処理装置 |
WO2022224991A1 (ja) * | 2021-04-22 | 2022-10-27 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 制御方法、端末、及び、プログラム |
JP7277677B1 (ja) | 2023-01-24 | 2023-05-19 | 直樹 神田 | 為替マッチング処理プログラム、為替マッチング処理方法、及び、為替マッチング処理システム |
WO2024157822A1 (ja) * | 2023-01-24 | 2024-08-02 | 直樹 神田 | 為替マッチング処理プログラム、為替マッチング処理方法、及び、為替マッチング処理システム、並びに、記録媒体 |
JP2024104554A (ja) * | 2023-01-24 | 2024-08-05 | 直樹 神田 | 為替マッチング処理プログラム、為替マッチング処理方法、及び、為替マッチング処理システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11727401B1 (en) | System, method and program product for generating and utilizing stable value digital assets | |
JP7533974B2 (ja) | 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法 | |
US11720887B1 (en) | System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat | |
US11562333B1 (en) | System, method and program product for generating and utilizing stable value digital assets | |
US10243743B1 (en) | Tokens or crypto currency using smart contracts and blockchains | |
JP7554536B2 (ja) | ブロックチェーンにおけるエンティティの効率的な移転のための方法およびシステム | |
EP3776441B1 (en) | Digital asset exchange | |
Auer | Embedded supervision: how to build regulation into blockchain finance | |
JP6956062B2 (ja) | 取引方法、プログラム、検証装置及び生成方法 | |
US20200020032A1 (en) | System and method for cryptocurrency trading | |
US20190220813A1 (en) | Smart Contract Optimization for Multiparty Service or Product Ordering System | |
Brühl | Virtual currencies, distributed ledgers and the future of financial services | |
JP2023018111A (ja) | ブロックチェーンによって統合された暗号難易度を基にした金融商品の電子取引及び決済システム | |
US20210125282A1 (en) | Information Processing Method, Information Processing Apparatus and Non-Transitory Computer-Readable Storage Medium | |
US11909860B1 (en) | Systems, methods, and program products for loaning digital assets and for depositing, holding and/or distributing collateral as a token in the form of digital assets on an underlying blockchain | |
US11637693B2 (en) | Distributed blockchain-type implementations configured to execute know-your-customer (kyc) verification for MANAGING tokenized digital assets and improved electronic wallets, and methods of use thereof | |
JP2019212241A (ja) | 情報処理装置、情報処理方法、プログラム及び取引システム | |
CN110599348B (zh) | 股权激励的方法、装置、设备及存储介质 | |
US20200074460A1 (en) | System and method for a stable cryptocurrency | |
JP2019159935A (ja) | プログラム、情報処理装置及び情報処理方法 | |
US10140658B1 (en) | Commodity backed virtual currency method and system for network transactions | |
Li et al. | Secure electronic ticketing system based on consortium blockchain | |
KR20190099545A (ko) | 국가별 화폐 단위를 가상적인 픽셀을 조합하여 만들어내는 블록 체인 기반의 암호화폐와 해당 플랫폼 및 프로그램 및 서비스 | |
JP7290299B2 (ja) | コインの価値の変動を抑えつつ暴落を防止するブロックチェーンシステム及びコンピュータープログラム | |
Kothari et al. | Smart contract for real estate using blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191113 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20191213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20191213 |