(57)【要約】      （修正有）【課題】仮想通貨の取引を望む利用者の取引条件をマッチングし、容易に取引を開始可能な仮想通貨取引装置を提供する。【解決手段】第１の仮想通貨と第２の仮想通貨との間で取引を行うための仮想通貨取引装置であって、その売買注文画面１００には、利用者が望む数量の第１の仮想通貨と交換する第２の仮想通貨の数量を指定した注文内容を入力させて売り注文を行うための売り注文入力欄１０１と、他の仮想通貨取引装置で行われた売り注文を含めて、売り注文を一覧表示する買い板１０２と、が表示される。買い板１０２に表示される売り注文を選択することで買い注文が行われる。【選択図】図６
2020009361.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想通貨と第２の仮想通貨とを交換する取引を行う仮想通貨取引装置であって、
当該仮想通貨取引装置の利用者が所望する数量の前記第１の仮想通貨と交換する前記第２の仮想通貨の数量を指定した注文内容を入力させる入力手段と、
該入力手段によって入力された前記注文内容を、前記第１の仮想通貨の売り注文としてネットワークに送出する売り注文送出手段と、
ネットワークに送出された売り注文を板情報として表示する板情報表示手段と、
を備えることを特徴とする仮想通貨取引装置。
【請求項２】
請求項１に記載の仮想通貨取引装置において、
前記取引は、一の利用者からの前記第１の仮想通貨の送金を示す、特定情報を含む第１の送金情報と、前記一の利用者に対して送金された前記第２の仮想通貨の受け取りを示す第１の受取情報と、他の利用者からの前記第２の仮想通貨の送金を示す、前記特定情報を含む第２の送金情報と、前記他の利用者に対して送金された前記第１の仮想通貨の受け取りを示す第２の受取情報と、がネットワークに公開されることにより行われ、
前記板情報表示手段が表示する前記売り注文の中から、所望の売り注文を選択させる選択手段と、
該選択手段による売り注文の選択に係る情報を、前記第２の仮想通貨と交換する前記第１の仮想通貨の買い注文としてネットワークに送出する買い注文送出手段と、
他の仮想通貨取引装置によって前記売り注文に対応する買い注文がネットワークに公開されたとき、前記第１の送金情報を公開して、前記他の仮想通貨取引装置と前記取引を開始する取引実行手段と、
を備えることを特徴とする仮想通貨取引装置。
【請求項３】
請求項１又は２に記載の仮想通貨取引装置において、
前記板情報表示手段は、
ネットワークに公開されている、特定の利用者に係る前記第１の送金情報の数に対する前記第１の受取情報の数に基づいた当該利用者に係る前記取引の成功回数及び成功確率を付与した前記板情報を表示することを特徴とする仮想通貨取引装置。
【請求項４】
請求項１乃至３の何れか一項に記載の仮想通貨取引装置において、
前記売り注文送出手段によって前記売り注文を送出するときに、
所定の送金先に対する送金情報であって、手数料に対応する仮想通貨の送金を示す送金情報をネットワークに送出する手数料支払い手段を備えることを特徴とする仮想通貨取引装置。
【請求項５】
請求項１乃至４の何れか一項に記載の仮想通貨取引装置において、
前記売り注文送出手段は、前記売り注文を送出するときに、当該売り注文を行った仮想通貨取引装置に係る通知先情報を前記注文内容に含めて送出することを特徴とする仮想通貨取引装置。
【請求項６】
複数の仮想通貨取引装置間の仮想通貨の取引を仲介する取引サーバ装置であって、
各仮想通貨取引装置は、第１の仮想通貨に対する第２の仮想通貨の交換数量を指定した売り注文をネットワークに送出し、前記売り注文に対応する買い注文をネットワークに送出し、
ネットワークに送出された売り注文に基づく板情報を生成する板情報生成手段と、
前記板情報を前記仮想通貨取引装置に配信する板情報配信手段と、
を備えることを特徴とする取引サーバ装置。
【請求項７】
請求項６に記載の取引サーバ装置において、
前記売り注文は、当該売り注文を行った仮想通貨取引装置に係る通知先情報を含み、
前記取引サーバ装置は、前記ネットワークに公開された売り注文に対応する買い注文があった場合、前記通知先情報が示す通知先に通知を行うことを特徴とする取引サーバ装置。
【請求項８】
請求項６又は７に記載の取引サーバ装置において、
前記取引は、一の利用者からの仮想通貨の送金を示す、第１の特定情報を含む第１の送金情報と、前記一の利用者に対して送金された仮想通貨の受け取りを示す第２の特定情報を含む第１の受取情報と、他の利用者からの仮想通貨の送金を示す前記第１の特定情報を含む第２の送金情報と、前記他の利用者に対して送金された仮想通貨の受け取りを示す前記第２の特定情報を含む第２の受取情報と、がネットワークに公開されることにより行われ、
前記第１の送金情報に係る仮想通貨の数量に基づいて、前記一の利用者に対して仮想通貨を送金し、前記第２の送金情報に係る仮想通貨の数量に基づいて、前記他の利用者に対して仮想通貨を送金する送金手段を備えることを特徴とする取引サーバ装置。
【請求項９】
請求項８に記載の取引サーバ装置において、
ネットワークに公開されている、特定の利用者に係る前記第１の送金情報の数に対する前記第１の受取情報の数に基づいて、当該利用者に係る前記取引の成功回数及び成功確率を評価する評価手段を備え、
前記板情報生成手段は、前記評価手段による評価結果に基づいて、前記売り注文に係る利用者の評価結果を、前記板情報に付与することを特徴とする取引サーバ装置。
【請求項１０】
請求項９に記載の取引サーバ装置において、
ネットワークに公開されている、特定の利用者に係る前記第１の送金情報の数に対する前記第１の受取情報の数に基づいて、当該利用者に係る前記取引の成功回数及び成功確率を評価する評価手段を備え、
前記送金手段は、前記評価手段による評価結果に基づいて、送金する仮想通貨の種類及び数量を決定することを特徴とする取引サーバ装置。
【請求項１１】
第１の仮想通貨と第２の仮想通貨とを交換する取引を行う仮複数の仮想通貨取引装置と、取引サーバ装置と、を備える仮想通貨取引システムであって、
前記仮想通貨取引装置は、
当該仮想通貨取引装置の利用者が所望する数量の前記第１の仮想通貨と交換する前記第２の仮想通貨の数量を指定した注文内容を入力させる入力手段と、
該入力手段によって入力された前記注文内容を、前記第１の仮想通貨の売り注文としてネットワークに送出する売り注文送出手段と、
ネットワークに送出された売り注文を板情報として表示する板情報表示手段と、
を備え、
前記取引サーバ装置は、
前記ネットワークに送出された売り注文に基づく板情報を生成する板情報生成手段と、
前記板情報を前記仮想通貨取引装置に配信する板情報配信手段と、
を備え、
前記板情報表示手段は、前記板情報配信手段によって配信された前記板情報を、前記表示装置に表示させる、
ことを特徴とする仮想通貨取引システム。
【請求項１２】
入力手段と、売り注文送出手段と、板情報表示手段を備え、第１の仮想通貨と第２の仮想通貨と交換する取引を行う仮想通貨取引装置の仮想通貨取引方法であって、
前記入力手段が、当該仮想通貨取引装置の利用者が所望する数量の前記第１の仮想通貨と交換する前記第２の仮想通貨の数量を指定した注文内容を入力させるステップと、
前記売り注文送出手段が、前記入力手段によって入力された前記注文内容を、前記第１の仮想通貨の売り注文としてネットワークに送出するステップと、
前記板情報表示手段が、ネットワークに送出された売り注文を板情報として表示するステップと、
を含むことを特徴とする仮想通貨取引方法。
【請求項１３】
請求項１２に記載の仮想通貨取引方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想通貨を利用者間で取引するための仮想通貨取引装置に関し、特に、異なる仮想通貨を交換取引するための仮想通貨取引装置に関する。
【背景技術】
【０００２】
近年、Ｐ２Ｐネットワーク上で分散型台帳管理を実現するブロックチェーンと呼ばれる技術が知られている。
そして、このブロックチェーンを取引の台帳として活用した仮想通貨（暗号通貨）（特許文献１）が知られており、現金に代わる新たな決算手段や送金手段などに用いられてきている。
このような仮想通貨として、当初はＢｉｔｃｏｉｎ（ビットコイン）（登録商標）のみが知られていたが、現在では、同様の仕組みを利用した様々な仮想通貨（アルトコインと呼ばれる）が利用されている。例えば、アルトコインとしてＭｏｎａｃｏｉｎ（モナコイン）（登録商標）、Ｌｉｔｅｃｏｉｎ（ライトコイン）などが知られている。
従来、仮想通貨の利用者は、自己の保有する仮想通貨を別の仮想通貨に交換したいと考えたとき、取引所を利用するか、異なる仮想通貨を保持する利用者間で、それぞれの仮想通貨が有する仕組みを利用して相互で送金取引を行う他は選択肢がなかった。
【０００３】
取引所を利用した仮想通貨の取引では、第三者である取引所を信頼し、取引所に仮想通貨を預けるかたちとなる。
預けた仮想通貨を悪意ある取引所に「持ち逃げ」されるリスクはもちろんあるが、善意の取引所であっても、それらが狙われ、預けた仮想通貨がクラッキングなどによって流出するという懸念がある。
【０００４】
また、異なる仮想通貨を保持する利用者間で仮想通貨を「交換」する方法では、例えば、利用者Ａが利用者Ｂにビットコインを送金し、利用者Ｂが上記のモナコインを利用者Ａが送金するという手順がとられる。その場合、ビットコインを受け取った利用者Ｂが、約束通りにモナコインを利用者Ａに送金せず、ビットコインを「持ち逃げ」するおそれがある。
【０００５】
このようなセキュリティ上の問題を解決するための技術として、「Ａｔｏｍｉｃ  Ｓｗａｐ（以下、アトミックスワップと記載する）」と呼ばれる、取引所を介さず、且つ利用者間の相対取引のリスクをも解消した仮想通貨の取引手法が提案されている（非特許文献１）。
この「アトミックスワップ」では、取引所を介さずに「トラストレス（取引所を信用せず）」にセキュアな取引が行えることはもちろん、特殊なトランザクションを介して非直接的に（間接的に）通貨の交換を行うことで、「トラストレス（相対取引の相手となる利用者を信用せず）」にセキュアな取引を行うことが出来る。「特殊なトラザクション」とは、受取人に加え、有効期限と、当事者の一方がランダムに生成（決定）した秘密の値のハッシュ値と、を指定したトランザクションである。
「アトミックスワップ」の参加者は、上記の特殊なトランザクションを互いに作成する。そして、受取人が上記ランダムに選択された秘密の値を知る場合にのみ、その受取人が特殊なトランザクションに接続するトランザクションを作成して仮想通貨を受け取ることが可能である。
なお、「秘密の値」は取引の過程で開示される必要があるため、参加者の一方のみが仮想通貨を受け取れるということがない。また、一般的には有効期限を指定した上で差出人が仮想通貨を取り戻すことが可能なようトランザクションを作成するため、アトミックスワップに失敗しても、どちらかが仮想通貨を失うということはない。
従って「アトミックスワップ」は、特殊なトランザクションを介して、間接的且つ安全な取引を行うことが出来る。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−２０７８６０公報
【非特許文献】
【０００７】
【非特許文献１】ｂｉｔｃｏｉｎ  ｗｉｋｉ、［２０１８年３月１日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐｓ：／／ｅｎ．ｂｉｔｃｏｉｎ．ｉｔ／ｗｉｋｉ／Ａｔｏｍｉｃ＿ｃｒｏｓｓ−ｃｈａｉｎ＿ｔｒａｄｉｎｇ＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように「アトミックスワップ」では、利用者間で直接の取引が可能であり、取引所を介した取引のリスクを回避出来る。
しかしながら、「アトミックスワップ」を用いて仮想通貨の売買をしようとした場合、仮想通貨の利用者同士が、希望する売買条件を交換可能なインターフェイスが従来存在せず、条件のあった取引相手を見つけることは容易ではい、という問題があった。
本発明は、以上の問題を鑑みてなされたものであり、利用者が希望する仮想通貨の取引条件をマッチングし、容易に、且つ安全に仮想通貨の取引を開始可能な仮想通貨取引装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題を解決するためになされたものであり、以下の形態により実現することが可能である。
本発明に係る第１の形態は、第１の仮想通貨と第２の仮想通貨とを交換する取引を行う仮想通貨取引装置であって、当該仮想通貨取引装置の利用者が所望する数量の前記第１の仮想通貨と交換する前記第２の仮想通貨の数量を指定した注文内容を入力させる入力手段と、該入力手段によって入力された前記注文内容を、前記第１の仮想通貨の売り注文としてネットワークに送出する売り注文送出手段と、ネットワークに送出された売り注文を板情報として表示する板情報表示手段と、を備える仮想通貨取引装置を特徴とする。
【発明の効果】
【００１０】
以上のように構成したので、本発明によれば、利用者が希望する仮想通貨の取引条件をマッチングし、容易に、且つ安全に仮想通貨の取引を開始可能な仮想通貨取引装置を実現することが出来る。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の仮想通貨取引装置が適用されるシステムの構成を示す概略図である。
【図２】仮想通貨のトランザクションを概説するための図である。
【図３】アトミックスワップの基本的な仕組みを概説する図である。
【図４】アトミックスワップの流れを詳細に説明する図である。
【図５】、本実施形態に係る仮想通貨取引装置（端末装置）の機能構成を示す図である。
【図６】本実施形態の端末装置における売買注文画面の一例を説明する図である。
【図７】本実施形態において、仮想通貨の利用者が行った売り注文を説明する図である。
【図８】本実施形態に係る取引サーバの機能構成を示す図である。
【図９】売り側の端末装置が実行する売り注文処理を説明するフローチャートである。
【図１０】取引サーバが実行する板情報生成処理を説明するフローチャートである。
【図１１】買い側の端末装置が実行する買い注文処理を説明するフローチャートである。
【図１２】売り側の端末装置が実行するアトミックスワップ実行処理を説明するフローチャートである。
【図１３】買い側の端末装置が実行するアトミックスワップ実行処理を説明するフローチャートである。
【図１４】取引サーバが実行する取引評価処理を説明するフローチャートである。
【図１５】取引サーバが実行する売買マッチング成立後の処理を説明するフローチャートである。
【図１６】売り注文を行った利用者の取引成功確率を反映した板情報を示す図である。
【発明を実施するための形態】
【００１２】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
図１は、本実施形態の仮想通貨取引装置が適用されるシステムの構成を示す概略図である。
図１（ａ）は、本実施形態の仮想通貨取引装置としての端末装置を含むネットワークの構成を示す概略図である。
本実施形態に係るシステム１において、複数の利用者の利用に係る仮想通貨取引装置（以下、端末装置）１０ａ、１０ｂ、１０ｃ・・がインターネットを介して相互に接続されている。
さらにインターネットには、ブロックチェーンネットワークに参加してマイニング作業を行うマイナーが用いる多数のマイナー装置３０と、端末装置１０ａ、１０ｂ、１０ｃ・・の利用者が、下記に説明するアトミックスワップによる仮想通貨の交換などの取引を行う際に必要となる板情報の提供などを行う取引サーバ４０と、が接続されている。
【００１３】
多数のマイナー装置３０ｘ（３０ｘ−１、３０ｘ−２・・・）やクライアント装置によってブロックチェーンネットワークｘが構成され、多数のマイナー装置３０ｙ（３０ｙ−１、３０ｙ−２・・・）やクライアント装置によってブロックチェーンネットワークｙが構成されている。
これらのブロックチェーンネットワークは、Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）ネットワークであり、ブロックチェーンネットワークｘは仮想通貨Ｘのネットワーク、ブロックチェーンネットワークｙは仮想通貨Ｙのネットワークである。
【００１４】
ブロックチェーンには、仮想通貨に用いられるものを含め、多くのものが存在している。仮想通貨にも、代表的なビットコインの他に、アルトコインと呼ばれるものが知られている。アルトコインの代表的なものとして、Ｅｔｈｅｒｅｕｍ（イーサリアム）やＭｏｎａｃｏｉｎなどが知られている。
【００１５】
インターネット上においてはビットコインを運営、機能させるためのブロックチェーンネットワークや、各種アルトコインの運営、機能させるためのブロックチェーンネットワークが存在する。
各ブロックチェーンネットワークには、それぞれマイナー装置３０が多く接続されて、プルーフオブワーク作業を行っている。また、ブロックチェーンネットワーク（仮想通貨）によっては、マイニングとしてプルーフオブワーク作業を行わないものもある。
【００１６】
いずれの場合においても、ブロックチェーンネットワークは、中央集権的なサーバを持たないＰ２Ｐネットワークである。ブロックチェーンは、ブロックチェーンネットワークに属するそれぞれのマイナー装置が有するストレージやサーバ装置、プールサーバに備えるストレージに、同じものが格納されている。ブロックチェーンが、分散型取引台帳と呼ばれる所以である。
【００１７】
図１（ｂ）は、ブロックチェーンネットワークに属する装置が有するブロックチェーンを示す図である。
図１（ｂ）を用いて、ブロックチェーンの概略を説明する。
ブロックチェーンは、逐次発生する取引情報などをブロック単位で接続することにより成立する。
【００１８】
すなわち、ブロックチェーン技術では、取引記録や契約など、内容を保証したいデータ（の集合）をブロックという単位で扱う。このブロックを所定の方法で一繋ぎすなわちチェーン状に接続したものがブロックチェーンである。ブロックチェーンの生成にあたってはハッシュ関数が用いられており、ハッシュ関数は任意長の任意データに対して固定長のハッシュ値を求めるための関数である。
ハッシュ関数には一方向性という特徴があり、任意データからハッシュ値を求めることは容易であるが、逆に、ハッシュ値から元のデータを復元することは現実的には不可能であるとされる。
【００１９】
ブロックチェーンに対して新たなブロックを接続するためには、チェーンにおける直前のブロックのハッシュ値と、接続すべき新たなブロックのトランザクションデータを１まとめにしたマークルルートと呼ばれるデータ、Ｎｏｎｃｅ値と呼ばれる数値（例えば３２ｂｉｔ固定長数値）を接続したデータに対してハッシュ値（例えば、ＳＨＡ−２５６ハッシュ）を計算した時にその上位数ビット（例えば１０Ｂｉｔ）が０となるような、Ｎｏｎｃｅ値を求める。
【００２０】
ＳＨＡ−２５６ハッシュ値は、ほぼランダムな２５６ｂｉｔの値となるため、あるＮｏｎｃｅ値を選んだ時に上位１０ｂｉｔが０となる確率は１０２４分の１となるが、上記したハッシュ関数の一方向性によって、基本的に、全てのＮｏｎｃｅ値に対して総当たりで、上記のハッシュ値の上位ビットが０となるか否かを検証するより他に方法がない。この総当たりでの検証を行って、ハッシュ値の上位ビットが０となるＮｏｎｃｅ値を見つけ、報告してブロックを承認する作業は、マイニング、あるいはプルーフオブワーク（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ，ＰｏＷ）と呼ばれる。
その結果、図１（ｂ）に示すように、ブロックチェーンの各ブロックは、そのブロックのデータと、直前のブロックのハッシュ値と、Ｎｏｎｃｅ値と、を含んでいる。
【００２１】
このようなブロックチェーンは、各ブロックが直前のブロックのハッシュ値を持っているため、先端の（起点となる最古の）ブロックから順に辿ることで、全てのブロックの正当性を確認することが出来る。
なお途中のブロックを改ざんしようとすると、そのブロック以降全てのブロックのＮｏｎｃｅ値を再計算する必要があるが、上記した総当たりを全てのブロックについて行うしかないため、計算量的に不可能である。
このような特徴を有することで、ブロックチェーンの信頼性は担保されている。
【００２２】
図１に示したように異なるブロックチェーンネットワーク、異なる仮想通貨が存在する中で、仮想通貨同士を交換したいという需要があり、そのための安全な仕組みとして、例えばアトミックスワップと呼ばれるものがすでに知られている。
従来、仮想通貨の利用者は、自己の保有する仮想通貨を別の仮想通貨に交換（両替）したいと考えたとき、取引所を利用するか、異なる仮想通貨（暗号通貨）を保持する利用者間で、それぞれの仮想通貨が有する仕組みを利用して相互で送金取引を行う他は選択肢がなかった。
取引所を利用した方法では、例えば、ビットコインを所持する利用者Ａが、モナコインを所望する場合、ある取引所にビットコインを預け、それと同価値のモナコインの支払いを取引所から受ける。あるいは、モナコインを所持する利用者Ｂが、ビットコインを所望する場合、ある取引所にモナコインを預け、それと同価値のビットコインの支払いを取引所から受ける。
【００２３】
このような取引所を利用した仮想通貨の取引では、第三者である取引所を信頼し、取引所に仮想通貨を預けるかたちとなる。
預けた仮想通貨を悪意ある取引所に「持ち逃げ」されるリスクはもちろんあるが、善意の取引所であっても、それらが狙われ、預けた仮想通貨がクラッキングなどによって流出するという懸念がある。
【００２４】
このようなリスクを嫌い、異なる仮想通貨を保持する利用者間で仮想通貨を「交換」することも出来る。
この方法では、交換レートを利用者間で決められるというメリットもあるが、このような相対での取引では、例えば、利用者Ａが利用者Ｂにビットコインを送金し、利用者Ｂがモナコインを利用者Ａに送金するという手順がとられる。
その場合、ビットコインを受け取った利用者Ｂが、約束通りにモナコインを利用者Ａに送金せず、ビットコインを「持ち逃げ」するおそれがある。
【００２５】
このように、取引所を用いた方法にも、利用者間で仮想通貨を交換する方法にも、無視できないセキュリティリスクが存在する。
アトミックスワップは、異なる仮想通貨を交換するにあたってのセキュリティ上の問題を解決するための技術であり、取引所を介さずに「トラストレス（取引所を信用せず）」にセキュアな取引を行えることはもちろん、特殊なトランザクションを介して非直接的（間接的に）に通貨の交換を行うことで、「トラストレス（相対取引の相手となる利用者を信用せず）」にセキュアな取引を行うことが可能な仮想通貨の取引（交換）手法である。
【００２６】
なお、本明細書において、「仮想通貨を利用者に対して送金」するとは、あくまで便宜的な表現である。
ビットコインをはじめとした仮想通貨においては、仮想通貨の「送金」は、ネットワーク上に分散して記録される所定単位の仮想通貨（通貨価値）（ビットコインではＵＴＸＯ：Ｕｎｓｐｅｎｔ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｕｔｐｕｔと呼ぶ）を、利用者の公開鍵あるいは公開鍵ハッシュとしてのアドレスによってロックする処理である。
「ＵＴＸＯ」は、後述する「トランザクション」において他のトランザクションと未だ接続されていないアウトプットを意味し、所有者の公開鍵を記載したＳｃｒｉｐｔＰｕｂＫｅｙを含んでいる。
ＵＴＸＯをロックしている公開鍵の所有者がＵＴＸＯの所有者であり、当該ＵＴＸＯが、その所有者が所有する仮想通貨の残高である。
【００２７】
仮想通貨の「送金」とは、直前の所有者の公開鍵、あるいは公開鍵ハッシュによってロックされているＵＴＸＯを、上記直前の所有者が生成した電子署名によってアンロックすることで、新たに作成したトランザクションと接続し、その新たに作成したトランザクションのＵＴＸＯを、次の所有者の公開鍵、あるいは公開鍵ハッシュによって再度ロックする処理である。
そして、この「トランザクション」をブロックチェーンネットワークに対して広報（ブロードキャスト）し、トランザクションが承認されてブロックチェーンに組み込まれることで「送金（ＵＴＸＯの所有権の移転）」が行われる。
【００２８】
仮想通貨の「送金」に際して行われることは、ＵＴＸＯをアンロックして新たなトランザクションと接続し、その新たなトランザクションが新たなブロックの一部として承認されることであり、何らかの価値情報がデータとして利用者の端末装置間でやりとりされることはない。金銭的価値を示すデータが端末装置間で授受されるわけでもない。
従って、端末装置内に、仮想通貨（の残高）を示す情報が格納されることはない。この点において、仮想通貨は、Ｆｅｌｉｃａ（登録商標）など、ＩＣチップ内に残高情報を有する一部の電子マネーとは本質的に異なる。
端末装置にインストールされた「ウォレット」ソフトウェアは、利用者の公開鍵あるいは公開鍵ハッシュに紐付けられたＵＴＸＯをブロックチェーンネットワークから検索することによって、利用者が有する仮想通貨の「残高」を利用者に提示することが出来る。
【００２９】
図２は、仮想通貨のトランザクションを概説するための図であり、（ａ）はトランザクションの基本的な構成を概念で示す図、（ｂ）は、前トランザクションに対して、新規トランザクションを接続したときの状態を示す図である。
「トランザクション」は、送金元から送金先への通貨価値の転送（移転）を記号化したものであり、図２（ａ）に示すように、送金元を示すフィールドであるインプットと、送金先を示すフィールドであるアウトプットと、を有する。
また、「アウトプット」には、送金額と、ＳｃｉｒｐｔＰｕｂＫｅｙと、を含む。
ＳｃｒｉｐｔＰｕｂＫｅｙは、このアウトプット（トランザクション）をアンロックするための条件を定義したスクリプト言語である。
ＳｃｒｉｐｔＰｕｂＫｅｙには、一般的には、特定の秘密鍵による電子署名によってのみアンロックが可能となるようなスクリプトが記述されており、これによって、仮想通貨の所有権が、該当する秘密鍵を所有する送金先のアカウント（利用者）のものとなる。
「インプット」は、ＵＴＸＯを使うために、ＳｃｒｉｐｔＳｉｇと呼ばれるＵＴＸＯのロックを解除するためのスクリプトを含む。ＳｃｒｉｐｔＳｉｇは主に、ＳｃｒｉｐｔＰｕｂＫｅｙで要求されるＵＴＸＯのアンロックのための電子署名である。
【００３０】
図２（ｂ）に示すように、前トランザクションにおいてＩｎｄｅｘ０で特定されるＳｃｉｒｐｔＰｕｂＫｅｙに対応するアウトプットに、新規トランザクションが接続されている。
Ｉｎｄｅｘ１で特定されるＳｃｉｒｐｔＰｕｂＫｅｙに対応するアウトプットには、新規トランザクションが接続されていないため、当該アウトプットは、ＵＴＸＯのままである。
【００３１】
新規トランザクションは、前トランザクションのＳｃｒｉｐｔＰｕｂＫｅｙで求められる新規トランザクションを接続した（する）利用者の電子署名を含むＳｃｒｉｐｔＳｉｇと、接続先の前トランザクションを特定するためのトランザクションＩＤとしての前トランザクション全体のハッシュ値（トランザクションハッシュ）と、前トランザクションにおける接続先のＳｃｒｉｐｔＰｕｂＫｅｙを特定するためのＩｎｄｅｘと、をインプットに含む。
アウトプットには、新規トランザクションのＵＴＸＯを、接続した利用者にロックするための公開鍵（公開鍵ハッシュ）を含むＳｃｒｉｐｔＰｕｂＫｅｙが含まれる。
新規トランザクションのインプットに付される電子署名は、新規トランザクションのＳｃｒｉｐｔＳｉｇを除くデータと、前トランザクションにおける接続されたＳｃｒｉｐｔＰｕｂＫｅｙと、のハッシュ値を、秘密鍵を用いて暗号化することで生成される。
【００３２】
図３は、アトミックスワップの基本的な仕組みを概説する図である。
上記のように、アトミックスワップは、利用者Ａ、利用者Ｂ間における、異なるブロックチェーンネットワークに係る異なる仮想通貨の交換取引に係る手法である。
利用者Ａは仮想通貨Ｘ（例えばビットコイン）を利用者Ｂに対して「送金」し、利用者Ｂは、利用者Ａとの間で予め決定した交換レートにて、相当額の仮想通貨Ｙ（例えばモナコイン）を利用者Ａに「送金」する。
【００３３】
ここで説明する例では、利用者Ａが先に仮想通貨Ｘを「送金」し、利用者Ｂが後から仮想通貨Ｙを「送金」する。
なお、アトミックスワップの前に、換金レートの決定とともに、公開鍵を利用者間で交換しておく。この他の処理はオンチェーン処理（ブロックチェーンの仕組みを利用した処理）であるが、公開鍵の交換は、Ｅ−ｍａｉｌやその他の手段で実行可能な手続である。
【００３４】
アトミックスワップにおいては、利用者Ａがランダムに選択した値（後述する秘密の値Ｒ）から逆算不可能な方法で生成された値（秘密の値Ｒのハッシュ値Ｈ）を使用する。
まず、送金対象である利用者Ａの仮想通貨Ｘは、利用者Ａの公開鍵又は公開鍵ハッシュでロックされた利用者Ａの所有に係る仮想通貨のＵＴＸＯである。
このＵＴＸＯは、現在の所有者である利用者Ａの電子署名によってアンロックされる。
そして、利用者Ａ側の端末装置では、上記ランダムに選択された値（秘密の値Ｒ）が付与され、かつ利用者Ｂの持つ秘密鍵により生成可能な電子署名が付与されていること、をアンロックの条件としたＳｃｒｉｐｔＰｕｂＫｅｙ（アウトプット）をＵＴＸＯとして持つ特殊なトランザクションが作成されて（上記アンロックしたＵＴＸＯに接続され）「送金」が行われる。
【００３５】
また、何らかの理由でアトミックスワップが失敗した場合に備えて、ＴｉｍｅＬｏｃｋを設定することで、一定時間が経過し、且つ利用者Ａの持つ秘密鍵による生成可能な電子署名が付与されていることも、上記特殊なトランザクションのアンロック条件として加えることが、一般的に行われている。
上記特殊なトランザクションを作成した時点では、そのＵＴＸＯには、如何なるトランザクションも接続されておらず、誰の所有に係るものでもない。一定時間が経過した後には、利用者Ａは、そのＵＴＸＯのロックを自らの電子署名でアンロックして取り戻すことが可能である。
【００３６】
また利用者Ｂ側について、送金対象である利用者Ｂの仮想通貨Ｙは、利用者Ｂの公開鍵又公開鍵ハッシュでロックされた利用者Ｂの所有に係る仮想通貨のＵＴＸＯである。
このＵＴＸＯは、利用者Ｂの電子署名によってアンロックされる。
そして、利用者Ａがランダムに選択した上記の値（秘密の値Ｒ）が付与され、かつ利用者Ａの持つ秘密鍵により生成可能な電子署名が付与されていること、をアンロックの条件としたＳｃｒｉｐｔＰｕｂＫｅｙをＵＴＸＯとして持つ特殊なトランザクションが作成されて（上記アンロックしたＵＴＸＯに接続され）「送金」が行われる。
【００３７】
また、アトミックスワップが失敗した場合に備えて、ＴｉｍｅＬｏｃｋを設定することで、一定時間が経過し、且つ利用者Ｂの持つ秘密鍵による生成可能な電子署名が付与されていることも特殊なトランザクションのアンロック条件として加えられる。
上記特殊なトランザクションを作成した時点では、そのＵＴＸＯには、如何なるトランザクションも接続されておらず、誰の所有に係るものでもない。一定時間が経過した後には、利用者Ｂは、そのＵＴＸＯのロックを自らの電子署名でアンロックして取り戻すことが可能である。
【００３８】
なお、利用者Ｂが「送金」のために作成した特殊なトランザクションがＵＴＸＯのアンロックの条件としている秘密の値Ｒと、利用者Ａの持つ秘密鍵により生成可能な電子署名と、を付与した新たなトランザクションが作成されることで上記特殊なトランザクションがアンロックされ、且つ新たなトランザクションのＵＴＸＯが自らの公開鍵でロックされることで、利用者Ａは利用者Ｂが送金した仮想通貨を受け取ることが出来る（ＵＴＸＯの所有権が利用者Ｂから利用者Ａに移る）。
一方で、利用者Ａが「送金」のために作成した特殊なトランザクションがＵＴＸＯのアンロックの条件としている秘密の値Ｒと、利用者Ｂの持つ秘密鍵により生成可能な電子署名と、を付与した新たなトランザクションが作成されることで上記特殊なトランザクションがアンロックされ、且つ新たなトランザクションのＵＴＸＯが自らの公開鍵でロックされることで、利用者Ｂは利用者Ａが送金した仮想通貨を受け取ることが出来る（ＵＴＸＯの所有権が利用者Ａから利用者Ｂに移る）。
【００３９】
アトミックスワップについて、より詳細に説明する。
ステップ（１）において、利用者Ａが利用する端末装置１０は、仮想通貨Ｘを利用者Ｂに「送金」する第１トランザクションＴｘ１を作成し、ネットワークに送出（ブロードキャスト）する。
第１トランザクションＴｘ１のアウトプットにおけるＳｃｒｉｐｔＰｕｂＫｅｙには、利用者Ａがランダムに選択した秘密の値Ｒのハッシュ値Ｈと、送金先である利用者Ｂの公開鍵（または、公開鍵ハッシュとしてのアドレス）と、が記載されている。
【００４０】
具体的には、第１トランザクションＴｘ１のＳｃｒｉｐｔＰｕｂＫｅｙは、このアウトプット（ＵＴＸＯ）のアンロック条件として、（１）ＳｃｒｉｐｔＰｕｂＫｅｙに記載された秘密の値Ｒのハッシュ値と、第１トランザクションＴｘ１に対応するトランザクションに記載された秘密の値Ｒのハッシュ値との一致確認、（２）受け取り側（送金先）の電子署名と公開鍵の検証を求める。
すなわち、利用者Ａがランダムに選択した秘密の値Ｒと、受け取り側の利用者Ｂの電子署名及び公開鍵と、が対応するトランザクションのインプットで指定されたとき、第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）をアンロックできる。
また、第１トランザクションＴｘ１のＳｃｒｉｐｔＰｕｂＫｅｙは、上記ＴｉｍｅＬｏｃｋの期限が過ぎた（タイムアウト）後、（１）送金元の公開鍵、（２）送金元の電子署名が入力されたときに、タイムスタンプの確認と署名の検証を求める。
【００４１】
すなわち、第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）のアンロック条件は、
（タイムアウト前）利用者Ｂの電子署名と公開鍵、利用者Ａがランダムに選択した秘密の値Ｒ
（タイムアウト後）利用者Ａの電子署名と公開鍵
である。
受け取り側の利用者Ｂが利用する端末装置１０ｂは、利用者Ｂ自身の電子署名と公開鍵、秘密の値Ｒをインプットに記載したトランザクション（後述の第４トランザクションＴｘ４）を作成することで、この第１トランザクションＴｘ１を使用した仮想通貨Ｘの受け取りを完了することが出来る。
【００４２】
上記のように、第１トランザクションＴｘ１には、ＴｉｍｅＬｏｃｋが設定されており、第１トランザクションＴｘ１の作成後、所定時間以内に対応するトランザクション（後述の第４トランザクション）が作成されない場合（ＴｉｍｅＬｏｃｋ期限が終了すると）、取引はタイムアウトされる。この場合、送金元である利用者Ａの電子署名と公開鍵によって、利用者Ａへの「返金（Ｒｅｆｕｎｄ）」が可能となる。
また、第１トランザクションＴｘ１のインプットにおけるＳｃｒｉｐｔＳｉｇには、利用者Ａの電子署名が含まれる。
この電子署名は、利用者Ａの公開鍵又は公開鍵ハッシュにロックされている仮想通貨Ｘ（ＵＴＸＯ）を、（利用者Ｂへの）「送金」のためにアンロックするために、第１トランザクションＴｘ１に付与される。
【００４３】
作成された第１トランザクションＴｘ１は、仮想通貨Ｘのブロックチェーンネットワークｘに公開され、ハッシュ値Ｈの値は、利用者Ｂ（端末装置１０ｂ）の知るところとなる。
上記のように、第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）は、利用者Ｂの電子署名と公開鍵及び利用者Ａがランダムに選択した秘密の値Ｒによってアンロックすることが出来る。
この時点で、利用者Ｂ（端末装置１０ｂ）は、秘密の値Ｒを知らないので自らの電子署名のみによって（上記第４トランザクションＴｘ４を作成して）第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）をアンロックすることが出来ない（利用者Ａの仮想通貨Ｘを受け取ることが出来ない）。
一方で、利用者Ａは、ＴｉｍｅＬｏｃｋ期限前は、「送金」した仮想通貨Ｘ（ビットコイン）を回収することが出来ない。
【００４４】
ステップ（２）において、利用者Ｂが利用する端末装置１０ｂは、仮想通貨Ｙを利用者Ａに「送金」する第２トランザクションＴｘ２を作成し、仮想通貨Ｙのブロックチェーンネットワークｙに送出（ブロードキャスト）する。
第２トランザクションＴｘ２のアウトプットにおけるＳｃｒｉｐｔＰｕｂＫｅｙには、仮想通貨Ｘのブロックチェーンネットワークｘに公開されているハッシュ値Ｈと、送金先である利用者Ａの公開鍵と、が記載されている。
【００４５】
上記と同様に、第２トランザクションＴｘ２のＳｃｒｉｐｔＰｕｂＫｅｙは、このアウトプット（ＵＴＸＯ）のアンロック条件として、（１）ＳｃｒｉｐｔＰｕｂＫｅｙに記載された秘密の値Ｒのハッシュ値と、第２トランザクションＴｘ２に対応するトランザクションに記載される秘密の値Ｒのハッシュ値と、の一致確認、（２）受け取り側（送金先）の電子署名と公開鍵の検証を求める。
利用者Ａがランダムに選択した秘密の値Ｒと、受け取り側の利用者Ａの電子署名及び公開鍵と、が対応するトランザクションのインプットで指定されたとき、第２トランザクションＴｘ２のアウトプット（ＵＴＸＯ）をアンロックできる。
また、第２トランザクションＴｘ２のＳｃｒｉｐｔＰｕｂＫｅｙは、上記ＴｉｍｅＬｏｃｋ期限が過ぎたタイムアウト後、（１）送金元の公開鍵、（２）送金元の署名が入力されたときに、タイムスタンプの確認と署名の検証を求める。
【００４６】
すなわち、第２トランザクションＴｘ２のアウトプット（ＵＴＸＯ）のアンロック条件は、
（タイムアウト前）利用者Ａの電子署名と公開鍵、利用者Ａがランダムに選択した秘密の値Ｒ
（タイムアウト後）利用者Ｂの電子署名と公開鍵
である。
受け取り側の利用者Ａが利用する端末装置１０は、利用者Ａ自身の電子署名と公開鍵、秘密の値Ｒをインプットに記載したトランザクション（後述の第３トランザクションＴｘ３）を作成することで、この第２トランザクションＴｘ２を使用した仮想通貨Ｙの受け取りを完了することが出来る。
【００４７】
第２トランザクションＴｘ２には、ＴｉｍｅＬｏｃｋが設定されており、第２トランザクションＴｘ２の作成後、所定時間以内に対応するトランザクション（後述の第３トランザクションＴｘ３）が作成されない場合（ＴｉｍｅＬｏｃｋ期限が終了すると）、取引はタイムアウトされる。この場合、送金元である利用者Ｂの電子署名と公開鍵によって、利用者Ｂへの「返金（Ｒｅｆｕｎｄ）」が可能となる。
【００４８】
また、第２トランザクションＴｘ２のインプットにおけるＳｃｒｉｐｔＳｉｇには、利用者Ｂの電子署名が含まれる。
この電子署名は、利用者Ｂの公開鍵又は公開鍵ハッシュにロックされている仮想通貨（ＵＴＸＯ）を、（利用者Ａへの）送金のためにアンロックするために、第２トランザクションＴｘ２に付与される。
【００４９】
第２トランザクションＴｘ２のアウトプット（ＵＸＴＯ）は、利用者Ａの電子署名と公開鍵、秘密の値Ｒによってアンロックすることが出来る。
なお、利用者Ｂは、ＴｉｍｅＬｏｃｋ期限前は、「送金」した仮想通貨Ｙ（モナコイン）を回収することが出来ない。
第２トランザクションＴｘ２は仮想通貨Ｙのブロックチェーンネットワークｙに公開される。
【００５０】
ステップ（３）において、利用者Ａが利用する端末装置１０は、仮想通貨Ｙを受け取るための第３トランザクションＴｘ３を作成し、ネットワークに送出する。
第３トランザクションＴｘ３は、第２トランザクションＴｘ２に対応するものであり、特に、第３トランザクションＴｘ３のＳｃｒｉｐｔＳｉｇ（インプット）が、第２トランザクションＴｘ２のＳｃｒｉｐｔＰｕｂＫｅｙ（アウトプット）に対応する。
【００５１】
第３トランザクションＴｘ３のアウトプットにおけるＳｃｒｉｐｔＰｕｂＫｅｙには、利用者Ａの公開鍵（公開鍵ハッシュとしてのアドレス）が記載されている。
また、第３トランザクションＴｘ３のインプットにおけるＳｃｒｉｐｔＳｉｇには、利用者Ａがランダムに選択した秘密の値Ｒ、利用者Ａの電子署名と公開鍵が含まれる。
上記のように第２トランザクションＴｘ２のＳｃｉｒｐｔＰｕｂＫｅｙでは、アウトプットのアンロック条件として、秘密の値Ｒと、利用者Ａの電子署名及び公開鍵と、を求めており、これらに対応する内容が記載されている。
【００５２】
利用者Ａ(端末装置１０）は、第３トランザクションＴｘ３を作成して第２トランザクションＴｘ２のアウトプット（ＵＴＸＯ）をアンロックし、第３トランザクションＴｘ３のアウトプット（ＵＴＸＯ）を利用者Ａの公開鍵又は公開鍵ハッシュにロックすることで、利用者Ｂが「送金」した仮想通貨Ｙを受けとることが出来る。
そして、第３トランザクションＴｘ３も仮想通貨Ｙのブロックチェーンネットワークｙに公開される（ブロードキャストされる）ため、秘密の値Ｒは利用者Ｂの知るところとなる。
【００５３】
ステップ（４）において、利用者Ｂが利用する端末装置１０ｂは、仮想通貨Ｘを受け取るための第４トランザクションＴｘ４を作成してネットワークに送出する。
第４トランザクションＴｘ４は、第１トランザクションＴｘ１に対応するものであり、特に、第４トランザクションＴｘ４のＳｃｒｉｐｔＳｉｇが、第１のトランザクションＴｘ１のＳｃｒｉｐｔＰｕｂＫｅｙに対応する。
第４トランザクションＴｘ４のアウトプットにおけるＳｃｒｉｐｔＰｕｂＫｅｙには、利用者Ｂの公開鍵（公開鍵ハッシュとしてのアドレス）が記載されている。
【００５４】
また、第４トランザクションＴｘ４のインプットにおけるＳｃｒｉｐｔＳｉｇには、（第３トランザクションＴｘ３の結果）ブロックチェーンネットワークに公開されている秘密の値Ｒと、利用者Ｂの電子署名が含まれる。
上記のように第１トランザクションＴｘ１のＳｃｉｒｐｔＰｕｂＫｅｙは、アウトプット（ＵＴＸＯ）のアンロック条件として利用者Ｂの電子署名と公開鍵、秘密の値Ｒを求めており、これらに対応する内容が記載されている。
利用者Ｂ（端末装置１０ｂ）は、第４トランザクションＴｘ４を作成して第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）をアンロックし、第４トランザクションＴｘ４のアウトプット（ＵＴＸＯ）を利用者Ｂの公開鍵又は公開鍵ハッシュにロックすることで、利用者Ａが「送金」した仮想通貨Ｘを受けとることが出来る。
【００５５】
なお、図３において、仮想通貨の「送金」を示す第１トランザクションＴｘ１、第２トランザクションＴｘ２は、夫々、第１の「送金情報」、第２の「送金情報」と考えることが出来る。
また、仮想通貨の「受取」を示す第３トランザクションＴｘ３、第４トランザクションＴｘ４は、第１の「受取情報」、第２の「受取情報」と考えることが出来る。
なお、送金のための第１トランザクションＴｘ１、第２トランザクションＴｘ２が求める解除（アンロック）条件（受け取りのための第３トランザクションＴｘ３、第４トランザクションＴｘ４のインプットに必要な内容）として、送金先（受け取り側）の公開鍵が求められない場合もある。
また、受け取りのための第３トランザクションＴｘ３、第４トランザクションＴｘ４のアウトプットには、受け取り側の公開鍵ハッシュ（アドレス）を指定する場合や、公開鍵そのものを指定する場合がある。
【００５６】
トランザクションスクリプトの記載条件は様々であるが、アトミックスワップにおいて、重要であるのは秘密の値Ｒ（とそのハッシュ値Ｈ）であり、この値を知る者のみが、後続のトランザクションを繋ぎうる（ＵＴＸＯをアンロックして仮想通貨を受け取ることが出来る）ということである。
以下の説明では、第３トランザクションＴｘ３、第４トランザクションＴｘ４のインプットにおいて受け取り側の公開鍵については指定を行わず、アウトプットには公開鍵を指定している（Ｐ２ＰＫ：Ｐａｙ  ｔｏ  Ｐｕｂｌｉｃ  Ｋｅｙと呼ばれる方法である）が、本実施形態はそれに限定されることはない。
本実施形態は、第３トランザクションＴｘ３、第４トランザクションＴｘ４のインプットに受け取り側の公開鍵を記載し、アウトプットに受け取り側の公開鍵ハッシュ（アドレス）を指定する（Ｐ２ＰＫＨ：Ｐａｙ  ｔｏ  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｈａｓｈと呼ばれる方法である）場合をも含む。
第１トランザクションＴｘ１、第２トランザクションＴｘ２についても、本実施形態は、アウトプットで送金先の公開鍵を指定する場合、送金先の公開鍵ハッシュを指定する場合、のいずれをも含む。
【００５７】
図４は、従来のアトミックスワップの流れを詳細に説明する図である。
図３に示す第１トランザクションＴｘ１から第４トランザクションＴｘ４までの期間が、アトミックスワップの実行期間である。
ステップＳ１において、最初に仮想通貨を「送金」する側である利用者Ａの端末装置１０は、利用者Ａの電子署名（第１トランザクションＴｘ１用のＳｉｇＡ１）を生成する。この処理はハードウェアウォレットを用いて行われ、利用者Ａは、端末装置１０にハードウェアウォレットＨＷ＿Ａを接続する。ハードウェアウォレットには、利用者Ａの秘密鍵が格納されている。またハードウェアウォレットＨＷ＿Ａは、格納されている秘密鍵を用いて電子署名を生成する署名生成用の処理部（回路）を有する。
【００５８】
ステップＳ２において、端末装置１０は、第１トランザクションＴｘ１を作成する。これは、仮想通貨Ｘを利用者Ｂに「送金」するためのトランザクションである。
第１トランザクションＴｘ１は、インプット（ＳｃｒｉｐｔＳｉｇ）として、利用者Ａの電子署名（上記のＳｉｇＡ１）を含み、アウトプット（ＳｃｒｉｐｔＰｕｂＫｅｙ）として上記した秘密の値Ｒのハッシュ値Ｈ、送金先である利用者Ｂの公開鍵（ＰｕｂＫｅｙＢ）を含んでいる。
また、第１トランザクションＴｘ１のインプットは、前トランザクションのハッシュ（トランザクションＩＤ）を含んでいる。
端末装置１０は、この第１トランザクションＴｘ１を、仮想通貨Ｘのブロックチェーンネットワークｘに対して送出する。
第１トランザクションＴｘ１が、仮想通貨Ｘのブロックチェーンネットワークｘに公開されると、ハッシュ値Ｈも公開される。
この後、望ましくは、利用者ＡのハードウェアウォレットＨＷ＿Ａは端末装置１０から取り外される。
【００５９】
それを受けて、ステップＳ３において、後から仮想通貨を「送金」する側である利用者Ｂの端末装置１０ｂにおいて、利用者Ｂの電子署名（第２トランザクションＴｘ２用のＳｉｇＢ１）が生成される。この処理もハードウェアウォレットを用いて行われ、利用者Ｂは端末装置１０ｂにハードウェアウォレットＨＷ＿Ｂを接続する。このハードウェアウォレットＨＷ＿Ｂには、利用者Ｂの秘密鍵が格納されている。上記と同様に、ハードウェアウォレットＨＷ＿Ｂは、格納されている秘密鍵を用いて電子署名を生成する署名生成用の処理部（回路）を有する。
【００６０】
ステップＳ４において、端末装置１０ｂは、第２トランザクションＴｘ２を作成する。これは、仮想通貨Ｙを利用者Ａに「送金」するためのトランザクションである。
第２トランザクションＴｘ２は、インプット（ＳｃｒｉｐｔＳｉｇ）として、利用者Ｂの電子署名（上記のＳｉｇＢ２）を含み、アウトプット（ＳｃｒｉｐｔＰｕｂＫｅｙ）として、仮想通貨Ｘのブロックチェーンネットワークｘに公開されたハッシュ値Ｈ、送金先である利用者Ａの公開鍵（ＰｕｂＫｅｙＡ）を含んでいる。
また、第２トランザクションＴｘ２のインプットは、前トランザクションのハッシュ（トランザクションＩＤ）を含んでいる。
端末装置１０ｂは、この第２トランザクションＴｘ２を、仮想通貨Ｙのブロックチェーンネットワークｙに対して送出する。
この後、望ましくは、利用者ＢのハードウェアウォレットＨＷ＿Ｂは端末装置１０ｂから取り外される。
【００６１】
次いで、ステップＳ５において、利用者Ａの端末装置１０は、利用者Ａの電子署名（第３トランザクションＴｘ３用のＳｉｇＡ２）を生成する。この処理もハードウェアウォレットを用いて行われる。
ステップＳ６において、端末装置１０は、第３トランザクションＴｘ３を作成する。これは、第２トランザクションＴｘ２のアウトプット（ＵＴＸＯ）をアンロックして、仮想通貨Ｙを利用者Ａ自身に「送金」（受取）するためのトランザクションである（当該第３トランザクションＴｘ３のアウトプット（ＵＴＸＯ）をアンロックし、利用者Ａの公開鍵（公開鍵ハッシュ）でＵＴＸＯをロックしたトランザクションを接続する）。
【００６２】
第３トランザクションＴｘ３は、インプット（ＳｃｒｉｐｔＳｉｇ）として、利用者Ａ自身の電子署名（上記ＳｉｇＡ２）と上記した秘密の値Ｒを含み、アウトプット（ＳｃｒｉｐｔＰｕｂＫｅｙ）として、送金先である利用者Ａ自身の公開鍵（ＰｕｂＫｅｙＡ）を含んでいる。
また、第３トランザクションＴｘ３のインプットは、前トランザクションである第２トランザクションＴｘ２のハッシュ（トランザクションＩＤ）を含んでいる。
端末装置１０ａは、この第３トランザクションＴｘ３を、仮想通貨Ｙのブロックチェーンネットワークｙに対して送出する。
第３トランザクションＴｘ３が、仮想通貨Ｙのブロックチェーンネットワークｙに公開されると、秘密の値Ｒもブロックチェーンネットワークｙ上に公開される。
この後、望ましくは、利用者ＡのハードウェアウォレットＨＷ＿Ａは、端末装置１０から取り外される。
【００６３】
それを受けて、ステップＳ７において、後から仮想通貨を「送金」する側である利用者Ｂの端末装置１０ｂにおいて、利用者Ｂの電子署名（第４トランザクションＴｘ４用のＳｉｇＢ２）が生成される。この処理もハードウェアウォレットを用いて行われ、利用者Ｂは端末装置１０ｂにハードウェアウォレットＨＷを接続する。
【００６４】
ステップＳ８において、端末装置１０ｂは、第４トランザクションＴｘ４を作成する。これは、第１トランザクションＴｘ１のアウトプット（ＵＴＸＯ）をアンロックして仮想通貨Ｘを利用者Ｂ自身に「送金」（受取）するためのトランザクションである（当該第４トランザクションＴｘ４のアウトプット（ＵＴＸＯ）をアンロックし、利用者Ｂの公開鍵（公開鍵ハッシュ）でＵＴＸＯをロックしたトランザクションを接続する。
第４トランザクションＴｘ４は、インプット（ＳｃｒｉｐｔＳｉｇ）として、利用者Ｂ自身の電子署名（上記のＳｉｇＢ２）と仮想通貨Ｙのブロックチェーンネットワークｙに公開された秘密の値Ｒを含み、アウトプット（ＳｃｒｉｐｔＰｕｂＫｅｙ）として、送金先である利用者Ｂ自身の公開鍵（ＰｕｂＫｅｙＢ）を含んでいる。
また、第４トランザクションＴｘ４のインプットは、前トランザクションである第１トランザクションＴｘ１のハッシュ（トランザクションＩＤ）を含んでいる。
端末装置１０ｂは、この第４トランザクションＴｘ４を、仮想通貨Ｘのブロックチェーンネットワークｘに対して送出する。
【００６５】
なお、上記に説明をした従来知られるアトミックスワップの仕組みには、仮想通貨の交換には時間がかかるという問題がある。
特にビットコインのトランザクションがブロックチェーンで処理されるとき、ネットワークを構成するマイナー装置による上述のＰｏＷに起因して、第１トランザクションＴｘ１、第３トランザクションＴｘ３の処理がブロックチェーンのブロックに組み込まれるまで平均６０分を要する。
【００６６】
現在、ビットコインの一つのブロックが承認されるまで約１０分間を要することが知られており、ブロックチェーンがほぼ完全に信頼されるまでは６つのブロックが接続される必要があるとされる。
従って、第１トランザクションＴｘ１、第２トランザクションＴｘ２がブロックに完全に組み込まれるまでは約１０分×６＝６０分を要することになる。
【００６７】
その間、互いの利用者が「送金」した仮想通貨を受け取るための第３トランザクションＴｘ３、第４トランザクションＴｘ４を送出することが出来ないため、受け取る予定の仮想通貨を次の取引に利用することが出来ない。
さらに、アトミックスワップの仕組みは、取引所を介さず、利用者間で直接仮想通貨の交換が出来るという利点があるが、取引条件が見合った取引相手を見つけることは容易ではない。取引条件とは、例えば、送金する仮想通貨の種類、着金する仮想通貨の種類、送金する仮想通過と着金する仮想通過との交換レートなどのことである。
本実施形態の仮想通貨取引システムは、アトミックスワップにおいて、取引条件が見合った取引相手を見つけることを容易にし、取引の利便性を向上することを図る。
【００６８】
図５は、本実施形態に係る仮想通貨取引装置（端末装置）の機能構成を示す図であり、（ａ）はハードウェアによる機能構成を示す図、（ｂ）はソフトウェアによる機能構成を示すブロック図である。
本実施形態の端末装置１０ａ、１０ｂ、１０ｃ・・・は、仮想通貨を利用する多数の利用者が共通して利用するものであり、共通の構成を有する端末装置１０として説明する。
なお、以下の説明では、あくまで一例として、利用者Ａと端末装置１０ａと利用者Ｂの端末装置１０ｂとの間で行われる処理を説明する。
そして、本実施形態で説明する、例えば、利用者Ａが使用する端末装置１０ａが行う処理と、利用者Ｂが使用する端末装置１０ｂが行う処理は互いに入れ替え可能である。
【００６９】
下記の説明において、利用者Ａが端末装置１０ａを用いて売り注文を行って、利用者Ｂが端末装置１０ｂを用いて買い注文を行う場合もあれば、その逆に利用者Ｂが売り注文を行って、利用者Ａが買い注文を行う場合もある。
すなわち、上記の説明では、端末装置１０ａが秘密の値Ｒを決定し、アトミックスワップを主導する立場にあったが、当然、端末装置１０ｂが秘密の値Ｒを決定してアトミックスワップを主導する場合も生じうる。この場合、本実施形態で説明する端末装置１０ａの処理を、端末装置１０ｂが行い、逆に端末装置１０ｂの処理を、端末装置１０ａが行うことになる。
端末装置１０ａ、端末装置１０ｂは、本質的に同じ装置であり同様の処理を実行可能であり、役割の違いに応じて、互いに異なる処理を実行することが出来る。
【００７０】
図５（ａ）に示すように、端末装置１０は、装置全体の制御を行う汎用のオペレーティングシステムを実行する。端末装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２とを備える。さらに、端末装置１０は、ドライブ装置１３と、記録媒体１４と、不図示のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ネットワーク  Ｉ／Ｆ１５と、外部ＩＯ  Ｉ／Ｆ１６とを備える。
ＣＰＵ１１は、端末装置１０の機能を実現するプログラムを実行する。ＲＡＭ１２は、ＣＰＵ１１による処理のために各種のプログラムや一時データ、変数が展開される。
ドライブ装置１３は、記録媒体１４に記憶された情報の読み出しか書き込みかの少なくともいずれか一方を行なう装置である。記録媒体１４は、ドライブ装置１３によって書き込まれた情報を記憶する。記録媒体１４は、例えば、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ブルーレイディスクなどの種類の記憶媒体のうちの少なくとも１つである。また、例えば、端末装置１０は、端末装置１０内の記録媒体１４の種類に対応したドライブ装置１３を含む。
記録媒体１４及びＲＯＭのすくなくとも一方は、プログラムやデータが格納される。ネットワーク  Ｉ／Ｆ１５は、端末装置１０をネットワークに接続する。外部ＩＯ  Ｉ／Ｆ１６は、端末装置１０に対して周辺機器を接続する。
【００７１】
外部ＩＯ  Ｉ／Ｆ１６には、秘密鍵を格納して電子署名の作成に利用するハードウェアウォレットＨＷを接続することが出来る。
さらに、端末装置１０は、マウスやキーボードなどの入力装置１７と、液晶ディスプレイなどの表示装置１８と、を備え、利用者は、表示装置１８に表示された売買注文画面において、仮想通貨の売買注文を行うことが出来る。
【００７２】
また、図５（ｂ）に示すように、ＣＰＵ１１は、処理部として、インターフェイス処理部２１と、売り注文処理部２２と、買い注文処理部２３と、板情報表示処理部２４と、アトミックスワップ実行処理部２５と、を実行する。
アトミックスワップ実行処理部２５は、Ｒ値決定処理部２５ａと、ハッシュ処理部２５ｂと、トランザクション作成処理部２５ｃと、電子署名生成処理部２５ｄと、トランザクション送出処理部２５ｅと、ネットワーク探索処理部２５ｆと、を含む。
【００７３】
インターフェイス処理部２１は、表示装置１８に売買注文画面１００を表示し、売買注文画面１００に対する入力装置１７を用いた入力を受け付けるための処理部である。
売買注文画面１００で設定された項目はＲＡＭ１２に格納される。
売り注文処理部２２は、売買注文画面１００に対する入力に基づいて、仮想通貨の売り注文を行うための処理部である。
買い注文処理部２３は、売買注文画面１００に表示される買い板（板情報）に対する選択操作などに基づいて、仮想通貨の買い注文を行うための処理部である。
板情報表示処理部２４は、取引サーバ４０から受信した板情報、あるいは端末装置１０自体によってブロックチェーンネットワークを探索することによって収集した売り注文から生成した板情報を、インターフェイス処理部２１に表示させる処理部である。
【００７４】
図６は、本実施形態の端末装置における売買注文画面の一例を説明する図である。
売買注文画面１００は、仮想通貨の売り注文を行うための売り注文欄１０１と、自端末あるいは他端末で表示された売り注文欄１０１から行われた売り注文を一覧表示した板情報を表示するとともに買い注文を行うための買い板１０２と、を備えている。
これはあくまで一例であり、売り注文を行うための画面と、買い板を表示するための画面と、が個別に用意されていてもよい。
売り注文欄１０１では、例えば、どれだけの数量の（何単位の）仮想通貨Ｘを、どれだけの数量の（何単位の）仮想通貨Ｙで売りたいか、を設定することが出来る。
なお、この例では、基準となる仮想通貨Ｘを、仮想通貨Ｙで売る（交換する）場合のみが記載されているが、それに限らず、他の仮想通貨同士での売り注文を行えるようにしてもよい。
【００７５】
売り側の利用者の端末装置１０において、売りたい仮想通貨Ｘの数量を入力欄１０１ａに入力し、交換したい（代わりに買いたい）仮想通貨Ｙの額を入力欄１０１ｂに入力した状態で、注文ボタン１０１ｃが選択されると、売り注文処理部２２が売り注文処理を行う。後述するが、売り注文は、注文内容をアウトプットのＯＰ＿ＲＥＴＵＲＮと呼ばれる領域に注文の内容を記したトランザクションをブロードキャストすることによって行われる。ＯＰ＿ＲＥＴＵＲＮは、トランザクションのアウトプットにおいて８０ｂｙｔｅの自由データを書ける領域である。
【００７６】
なお、ＯＰ＿ＲＥＴＵＲＮには、売り注文を行った後で、端末装置１０（ウォレット）がオフラインとなった場合でも、売り注文に対する買い注文があったときにはオンラインに復帰できるように通知先のＵＲＬ若しくはＩＰアドレスを記載することが出来る。
後述するように、取引サーバ４０は、板情報に基づく買い注文があった場合には、対応する売り注文のＯＰ＿ＲＥＴＵＲＮに記載される通知先に対して通知を行い、売り側の端末装置を確実にオンラインとして円滑に取引が開始できるように制御する。
買い板１０２には、板情報表示処理部２４が取得、あるいは生成した売り注文の板情報が表示される。
買い側の利用者の端末装置１０において、買い板１０２に表示される売り注文の中から、任意の（買い側の利用者の条件にあった）売り注文が選択されると、買い注文処理部２３が買い注文処理を行う。
従来、アトミックスワップによる取引を行う際に、取引条件があった取引相手を探すことは容易ではなかったが、このような板情報を用いることで、条件があう取引相手を容易に見つけることが出来る。
【００７７】
なお、売り注文と買い注文とは表裏一体である。例えば、図６の買い板１０２に示される売り注文に、利用者Ｅによる「１００単位の仮想通貨Ｘを、７０単位の仮想通貨Ｙで売りたい」という売り注文がある。
この売り注文を選択することで行われる買い注文は、１００単位の仮想通貨Ｘを利用者Ｅの希望通り、７０単位の仮想通貨Ｙと引き替えに「買う」注文であると同時に、７０単位の仮想通貨Ｙを１００単位の仮想通貨Ｘと引き替えに「売る」注文に他ならない。
【００７８】
図７は、本実施形態において、仮想通貨の利用者が行った売り注文を説明する図である。
上記したように、売り注文は、注文内容をアウトプットのＯＰ＿ＲＥＴＵＲＮと呼ばれる領域に注文の内容を記したトランザクションをブロードキャストすることによって行われる。
図６の買い板１０２における板情報は、様々な利用者が所望の条件で行った売り注文を取りまとめて表示したものであり、各利用者の端末装置１０において以下のような処理が行われることで実現される。
【００７９】
すなわち、図７に示すように、利用者Ａの端末装置１０ａが、１００単位の仮想通貨Ｘを１５０単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
利用者Ｂの端末装置１０ｂが、１００単位の仮想通貨Ｘを２００単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
利用者Ｃの端末装置１０ｃが、１００単位の仮想通貨Ｘを２５０単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
【００８０】
利用者Ｄの端末装置１０ｄが、１００単位の仮想通貨Ｘを２００単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
利用者Ｅの端末装置１０ｅが、１００単位の仮想通貨Ｘを７０単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
利用者Ｆの端末装置１０ｆが、１００単位の仮想通貨Ｘを８０単位の仮想通貨Ｙで売りたい旨をＯＰ＿ＲＥＴＵＲＮに記したトランザクションをブロードキャストした。
【００８１】
図６の買い板１０２では、例として、図７に示した各利用者の売り注文を、例えば仮想通貨Ｘに対する交換レートが低い順に表示している。
また、単一の利用者が、複数の売り注文を出しているような場合には、利用者毎に並び替えて表示するようにしてもよい。
また、後述するが、売り注文を出している利用者毎の取引成功確率によって、売り注文を並び替えて表示してもよい。
なお、図６においては便宜上、売り注文に利用者を付して表示されているが、実際には、利用者のウォレットアドレス（公開鍵、公開鍵ハッシュ）が表示される。
図６の買い板１０２の売り注文に対する買い注文が行われると（売り注文が選択されると）、選択された売り注文を行った売り側の利用者と、売り注文を選択した買い側の利用者と、の間で、アトミックスワップ実行処理部２５によるアトミックスワップが行われる。
【００８２】
図５（ｂ）に戻りアトミックスワップ実行処理部２５に含まれる各処理部を説明する。
Ｒ値決定処理部２５ａは、本実施形態では、売り側の端末装置１０ａにおいて、上記のランダムな値Ｒを決定する処理部である。
ハッシュ処理部２５ｂは、Ｒ値決定処理部２５ａが決定したランダムな値Ｒのハッシュ値Ｈを演算する処理部である。
【００８３】
トランザクション作成処理部２５ｃは、アトミックスワップの契機となった板情報における売り注文又はそれを選択した買い注文の内容に基づいて、アトミックスワップのトランザクションを作成するための処理部である。
電子署名生成処理部２５ｄは、ハードウェアウォレットＨＷを制御し、ハードウェアウォレットＨＷに格納されている秘密鍵を利用して電子署名を生成させるための処理部である。
端末装置１０に接続されるハードウェアウォレットＨＷは、夫々、秘密鍵を格納（記憶）する不図示の秘密鍵記憶部と、秘密鍵記憶部に格納されている秘密鍵を用いて電子署名を生成する不図示の署名生成部（回路）を備えている。
【００８４】
ハードウェアウォレットＨＷは、電子署名生成処理部２５ｄによる制御に基づき、署名生成部において電子署名の生成を行う。
あるいは、ハードウェアウォレットＨＷは、秘密鍵を格納する機能のみを有し、ＣＰＵ１１（電子署名生成処理部２５ｄ）が電子署名を作成するようにしてもよい。
なお、端末装置１０に夫々接続されるハードウェアウォレットは、夫々利用者Ａ、利用者Ｂに帰属し、夫々の利用者の秘密鍵を格納した異なるハードウェアウォレットである。
【００８５】
トランザクション送出処理部２５ｅは、作成したトランザクションを、ネットワーク  Ｉ／Ｆ１５を介してブロックチェーンネットワークに送出するための処理部である。
ネットワーク探索処理部２５ｆは、ブロックチェーンネットワークを探索し、承認され、公開されたトランザクションから、アトミックスワップに必要な値（秘密の値Ｒ、ハッシュ値Ｈ）の値を取得する処理部である。
【００８６】
図８は、本実施形態に係る取引サーバの機能構成を示す図であり、（ａ）はハードウェアによる機能構成を示す図、（ｂ）はソフトウェアによる機能構成を示すブロック図である。
図８（ａ）に示すように、取引サーバ４０は、ＣＰＵ４１と、ＲＡＭ４２と、ＨＤＤ４３及びＲＯＭ（図示せず）と、ネットワークＩ／Ｆ４４とを備える。ＣＰＵ４１は、装置全体の制御を行う汎用のオペレーティングシステムを実行するとともに、取引サーバ４０の機能を実現する。ＲＡＭ４２には、プログラムを実行するＣＰＵ４１による処理のために各種のプログラム、一時データ及び変数が展開される。ＨＤＤ４３及びＲＯＭには、プログラムやデータが格納される。ネットワークＩ／Ｆ４４は、取引サーバ４０をネットワークに接続する。
【００８７】
また、図８（ｂ）に示すように、ＣＰＵ４１は、処理部として、売り注文取得処理部５１と、板情報生成処理部５２と、板情報配信処理部５３と、買い注文通知処理部５４と、取引評価処理部５５と、与信・貸付処理部５６と、を実行する。
また、取引サーバ４０は、記憶部として、注文情報記憶部６１、板情報記憶部６２、取引評価記憶部６３と、を備えている。
売り注文取得処理部５１は、仮想通貨Ｘのブロックチェーンネットワークｘの探索を行い、ＯＰ＿ＲＥＴＵＲＮを用いた売り注文が発見されると、その内容を収集して注文情報記憶部６１に格納する処理を行う。
【００８８】
板情報生成処理部５２は、注文情報記憶部６１に記憶された注文情報に基づいて、板情報を生成し、板情報記憶部６２に格納する処理を行う。
板情報配信処理部５３は、端末装置１０からの要求に応じて、板情報記憶部６２に記憶された板情報を、端末装置１０に配信する処理を行う。
買い注文通知処理部５４は、板情報に含まれる売り注文に対する買い注文が行われたときに、そのことを売り側の端末装置に通知する処理を行う。
【００８９】
取引評価処理部５５は、仮想通貨Ｘ、Ｙのブロックチェーンネットワークｘ、ｙに対して探索を行い、特定の利用者が過去に行ったアトミックスワップの第１トランザクションＴｘ１の数、第３トランザクションＴｘ３の数から、取引成功回数、取引成功確率を評価し、その評価結果を取引評価記憶部６３に格納する処理を行う。
与信・貸付処理部５６は、ブロックチェーンネットワークで行われるアトミックスワップを監視し、その実行中に、利用者に対して取引金額に応じた額（数量）の仮想通貨を貸し付ける処理を行う。
なお、本実施形態でいう「貸付」とは、利用者に対して取引金額に応じた額（数量）の仮想通貨を送金することのみを示す。アトミックスワップの正常終了、あるいはキャンセルによって利用者が仮想通貨を取得した後の「返金」については、別途利用者（端末装置）側で、取引サーバ４０のウォレットに対する送金トランザクションが公開（ブロードキャスト）されることで行われる。
取引評価記憶部６３に格納された利用者毎のアトミックスワップの取引成功確率、取引成功回数は、板情報生成処理部５２によって生成される板情報に反映されてもよい。
【００９０】
すなわち、図６に示した端末装置１０の売買注文画面１００で表示される板情報において、各売り注文に付随して、売り側の利用者の取引成功確率、取引成功回数を表示する。そのようにすることで、買い側の利用者は、取引が成功する見込みが高い売り注文を選んで、買い注文を行うことができる。
板情報において、取引成功確率や取引成功回数によって、売り注文を並び替えて表示するようにしてもよい。
なお、注文情報記憶部６１、板情報記憶部６２、取引評価記憶部６３は、ＲＡＭ４２、ＨＤＤ４３の何れに設定されてもよい。
すなわち、ブロックチェーンネットワークから取得した注文情報や、生成した板情報、各利用者の取引成功確率評価などは、ＲＡＭ４２に保持される一時データとしてのみ扱われても良いし、ＨＤＤ４３にファイルとして格納された上でＲＡＭ上にロードされてもよい。
【００９１】
なお、図８の説明おいて、各処理部は、ネットワーク上のブロックチェーンのデータを検索することにより、特定のトランザクションを取得する処理を行っている。また、取引サーバ４０がネットワークから取得した完全なブロックチェーンをＨＤＤ４３に格納しているとき、各処理部は、ＨＤＤ４３に格納されているブロックチェーンのデータを検索することにより、特定のトランザクションを取得してもよい。
【００９２】
図９は、売り側の端末装置が実行する売り注文処理を説明するフローチャートである。
ＣＰＵ１１（インターフェイス処理部２１）は、ステップＳ１０１において、売買注文画面１００の売り注文欄１０１を用いて、売り注文操作が行われたか否かを判定する。
売り注文操作が行われたと判定した場合（ステップＳ１０１でＹｅｓ）、ＣＰＵ１１（売り注文処理部２２）は、ステップＳ１０２において、売り注文欄１０１で設定された売り注文の内容をＯＰ＿ＲＥＴＵＲＮに記載したトランザクションを作成する。
売り注文の内容に売り側の利用者のウォレットアドレス（公開鍵、公開鍵ハッシュ）を含めることが好適である。
そして、ＣＰＵ１１（売り注文処理部２２）は、ステップＳ１０２において、ステップＳ１０１で作成したトランザクションをブロックチェーンネットワークに送出（ブロードキャスト）することで、売り注文処理を行う。
売り側の利用者が仮想通貨Ｘを売る場合、トランザクションは、例えば仮想通貨Ｘのブロックチェーンネットワークｘに送出される。
このときに、ＣＰＵ１１は、手数料支払い手段として、所定の手数料（例えば、仮想通貨Ｘ）を取引サーバ４０のウォレットアドレスに送金するトランザクションをブロードキャストするようにしてもよい。
売り注文内容を含むトランザクションが承認され、ブロックチェーンに組み込まれることで売り注文が正式に完了する。
【００９３】
図１０は、取引サーバが実行する板情報生成・配信処理を説明するフローチャートである。
ステップＳ１１１において、ＣＰＵ４１（売り注文取得処理部５１）は、板情報の更新タイミングであるか否かを判定する。
更新タイミングであると判定した場合（ステップＳ１１１でＹｅｓ）、ＣＰＵ４１（売り注文取得処理部５１）は、ステップＳ１１２において、注文情報をＯＰ＿ＲＥＴＵＲＮに記載した新たなトランザクションが、仮想通貨Ｘのブロックチェーンネットワークｘにおいて公開されているか否かを判定する。
【００９４】
公開されている場合（ステップＳ１１１でＹｅｓ）、ＣＰＵ４１（売り注文取得処理部５１）は、ステップＳ１１３において、注文情報をＯＰ＿ＲＥＴＵＲＮに記載した新たなトランザクションのＯＰ＿ＲＥＴＵＲＮから売り注文の情報（注文者のウォレットアドレス、注文内容）を取得して注文情報記憶部６１に格納する。
そして、ＣＰＵ４１（板情報生成処理部５２）は、ステップＳ１１４において、ステップＳ１１３で取得した注文情報を一覧表示した板情報を生成し、板情報記憶部６２に格納して今回の処理を終了する。
ステップＳ１１１において、板情報の更新タイミングではないと判定した場合（ステップＳ１１１でＮｏ）、あるいはＯＰ＿ＲＥＴＵＲＮに注文情報を記載した新たなトランザクションが公開されていない場合（ステップＳ１１２でＮｏ）、ＣＰＵ４１（板情報配信部５３）は、ステップＳ１１５において、端末装置から板情報の要求があったか否かを判定する。
【００９５】
板情報の要求があったと判定した場合（ステップＳ１１５でＹｅｓ）、ＣＰＵ４１（板情報配信処理部５３）は、ステップＳ１１６において、板情報記憶部６２に格納されている最新の板情報を、要求のあった端末装置１０に配信する。
なお、ブロックチェーンを探索し、売り注文を含むトランザクションから売り注文情報を取得し、板情報を生成する処理は、取引サーバ４０で行うのではなく、各端末装置１０で行うことも出来る
その場合、端末装置１０は、ブロックチェーンを随時監視し、売り注文を含むトランザクションが公開されるとそれを取得して板情報に反映する。
【００９６】
ところで、買い板（板情報）１０２に表示される売り注文のうち消化された売り注文については買い板１０２から非表示とされる必要がある。
端末装置１０によって行われた買い板１０２を用いた買い注文が公開された時点で、板情報記憶部６２に格納されている板情報から消去してもよいし、買い注文が公開された後、アトミックスワップが正常に終了した時点で（買い側の端末装置１０ｂによって第４トランザクションが公開された時点で）板情報記憶部６２に格納されている板情報から消去してもよい。
【００９７】
図１１は、買い側の端末装置が実行する買い注文処理を説明するフローチャートである。
ＣＰＵ１１（インターフェイス処理部２１）は、ステップＳ１２１において、買い板１０２に表示されている注文内容が入力装置１７を用いて選択されることで、買い注文操作が行われたか否かを判定する。
買い注文操作が行われたと判定した場合（ステップＳ１２１でＹｅｓ）、ＣＰＵ１１（買い注文処理部２３）は、ステップＳ１２２において、買い注文として、買い板１０２で選択された売り注文の内容をＯＰ＿ＲＥＴＵＲＮに記載した買い注文のトランザクションを作成する。買い注文のトランザクションは、売り側の利用者にアトミックスワップをリクエストするトランザクションであると言える。また、その内容として、買い側の利用者のウォレットアドレス（公開鍵、公開鍵ハッシュ）を含めることが好適である。
そして、ＣＰＵ１１（買い注文処理部２３）は、ステップＳ１２３において、ステップＳ１２２で作成したトランザクションをブロードキャストすることで、買い注文処理を行う。
【００９８】
買い側の利用者が、仮想通貨Ｘと引き替えに仮想通貨Ｙを「送金」する場合、トランザクションは、例えば仮想通貨Ｙのブロックチェーンネットワークｙに送出される。
このときに、ＣＰＵ１１は、手数料支払い手段として、所定の手数料（例えば、仮想通貨Ｙ）を取引サーバ４０のウォレットアドレスに送金するトランザクションをブロードキャストするようにしてもよい。
買い注文内容を含むトランザクションが承認され、ブロックチェーンに組み込まれることで買い注文が正式に完了する。
以上の処理によって、仮想通貨の売り側と買い側のマッチングが終了し、アトミックスワップを行う準備が完了したことになる。
【００９９】
図１２は、売り側の端末装置が実行するアトミックスワップ実行処理を説明するフローチャートである。
売り側の端末装置は、ここでは端末装置１０ａが該当し、図１２の説明におけるＣＰＵ１１は、端末装置１０ａのＣＰＵ１１である。
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５１において、売り注文処理に係る売り注文に対応する買い注文のトランザクションが公開されたか否かを判定する。
【０１００】
公開されたと判定した場合（ステップＳ１５１でＹｅｓ）、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５２において、売り注文と、買い注文の内容に基づいて、送金先と、送金額を決定する。
送金先としては、相手方の利用者の公開鍵や公開鍵ハッシュとしてのアドレスが入力される。公開鍵は、事前に交換される。
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５３において、ランダムな値Ｒを決定し、ステップＳ１５４において、値Ｒのハッシュ値Ｈを算出する。
ランダムな値Ｒは、アトミックスワップ実行処理部２５によって自動的に生成されてもよいし、売り側の利用者自身が決定して入力するような構成としてもよい。
【０１０１】
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５５において、ハードウェアウォレットを制御し、ハードウェアウォレットＨＷ＿Ａに格納された秘密鍵を利用して第１トランザクションＴｘ１用の利用者Ａの電子署名ＳｉｇＡ１を生成させる。
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５６において、電子署名ＳｉｇＡ１を付した第１トランザクションＴｘ１を作成し、ＣＰＵ１１（トランザクション送出処理部６４）は、ステップＳ１５７において、第１トランザクションＴｘ１を仮想通貨Ｙのブロックチェーンネットワークｙに送出する。
【０１０２】
その後、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５８において、仮想通貨Ｘのブロックチェーンネットワークｘの探索を開始する。
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５９において、（通貨交換の相手方である端末装置１０ｂが作成し、承認されることによって）第２トランザクションＴｘ２が仮想通貨Ｘのブロックチェーンネットワークｘに公開されているか否かを判定する。第２トランザクションＴｘ２はハッシュ値Ｈを含む。
【０１０３】
アトミックスワップ実行処理部２５は、ブロックチェーン上のデータの中から、ハッシュ値Ｈ、及び利用者Ａの公開鍵（アドレス）を含むトランザクションを検索する。これにより、アトミックスワップ実行処理部２５は、ブロックチェーン上に第２トランザクションＴｘ２が公開されているか否かを判定する。
または、アトミックスワップ実行処理部２５は、端末装置１０ｂから第２トランザクションＴｘ２のトランザクションＩＤを受け取ってもよい。そして、アトミックスワップ実行処理部２５は、受け取ったトランザクションＴｘ２のトランザクションＩＤを用いてブロックチェーン上のデータを検索する。これにより、アトミックスワップ実行処理部２５は、ブロックチェーン上に第２トランザクションＴｘ２が公開されているか否かを判定する。
【０１０４】
第２トランザクションＴｘ２が公開されていないと判定した場合（ステップＳ１５９でＮｏ）、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１５９の処理を繰り返し、第２トランザクションＴｘ２の公開を待機する。
第２トランザクションＴｘ２が公開されていると判定した場合（ステップＳ１５９でＹｅｓ）、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１６０において、ハードウェアウォレットを制御し、ハードウェアウォレットＨＷ＿Ａに格納された秘密鍵を利用して第３トランザクションＴｘ３用の利用者Ａの電子署名ＳｉｇＡ２を生成させる。
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１６１において、電子署名を付した第１トランザクションＴｘ１を作成し、ＣＰＵ１１（トランザクション送出処理部６４）は、ステップＳ１６２において、第３トランザクションＴｘ１を仮想通貨Ｙのブロックチェーンネットワークｙに送出する。
【０１０５】
図１３は、買い側の端末装置が実行するアトミックスワップ実行処理を説明するフローチャートである。
買い側の端末装置は、ここでは端末装置１０ｂが該当し、図１３の説明におけるＣＰＵ１１は、端末装置１０ｂのＣＰＵ１１である。
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７１において、買い注文に基づいて、送金先、送金額を設定する。
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７２において、第１トランザクションＴｘ１が仮想通貨Ｙのブロックチェーンネットワークｙに公開されているか否かを判定する。
【０１０６】
アトミックスワップ実行処理部２５は、ブロックチェーン上のデータの中から、利用者Ａの公開鍵（アドレス）を含むトランザクションを検索する。これにより、アトミックスワップ実行処理部２５は、ブロックチェーン上に第１トランザクションＴｘ１が公開されているか否かを判定する。
または、アトミックスワップ実行処理部２５は、端末装置１０ａから第１トランザクションＴｘ１のトランザクションＩＤを受け取ってもよい。そして、アトミックスワップ実行処理部２５は、受け取ったトランザクションＴｘ１のトランザクションＩＤを用いてブロックチェーン上のデータを検索する。これにより、アトミックスワップ実行処理部２５は、ブロックチェーン上に第１トランザクションＴｘ１が公開されているか否かを判定する。
第１トランザクションＴｘ１が公開されていると判定した場合（ステップＳ１７２でＹｅｓ）、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７３において、第１トランザクションＴｘ１に含まれるハッシュ値Ｈの値を取得する。
【０１０７】
次に、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７４において、ハードウェアウォレットＨＷ＿Ｂを制御し、ハードウェアウォレットＨＷに格納された秘密鍵を利用して、ハッシュ値Ｈを含んだ第２トランザクションＴｘ２用の利用者Ｂの電子署名ＳｉｇＢ１を生成させる。
【０１０８】
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７５において、ステップＳ１７４で生成した電子署名ＳｉｇＢ１を付した第２トランザクションＴｘ２を作成し、ステップＳ１７６において、作成した第２トランザクションＴｘ２を仮想通貨Ｙのブロックチェーンネットワークｙに送出する。
【０１０９】
次に、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７７において、ブロックチェーンネットワークｙの探索を開始する。
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７８において、第３トランザクションＴｘ３が仮想通貨Ｙのブロックチェーンネットワークｙに公開されているか否かを判定する。
【０１１０】
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、該当するブロックチェーン全体を検索し利用者Ｂの公開鍵（アドレス）を含むトランザクションデータを検索することによって、第３トランザクションＴｘ３をブロックチェーンから探し出すことが出来る。
あるいは、第３トランザクションＴｘ３を作成した端末装置１０ａから、第３トランザクションＴｘ３のトランザクションＩＤを受け取ることで、そのトランザクションＩＤに該当するトランザクションを検索することによって、第３トランザクションＴｘ３をブロックチェーンから探し出すことが出来る。
【０１１１】
第３トランザクションＴｘ３が公開されていないと判定した場合（ステップＳ１７８でＮｏ）、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１７８の処理を繰り返し、第３トランザクションＴｘ３の公開を待機する。
第３トランザクションＴｘ３が公開されていると判定した場合（ステップＳ１７８でＹｅｓ）、ＣＰＵ１１（ネットワーク探索処理部６５）は、ステップＳ１７９において、第３トランザクションＴｘ３のインプットにおける秘密の値Ｒを取得する。
【０１１２】
そして、ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１８０において、ハードウェアウォレットＨＷ＿Ｂを制御し、ハードウェアウォレットＨＷに格納された秘密鍵を利用して、Ｒの値を含んだ第４トランザクションＴｘ４用の利用者Ｂの電子署名ＳｉｇＢ２を生成させる。
【０１１３】
ＣＰＵ１１（アトミックスワップ実行処理部２５）は、ステップＳ１８１において、ステップＳ１８０で生成した電子署名ＳｉｇＢ２を付した第４トランザクションＴｘ４を作成し、ステップＳ１８２において、作成した第４トランザクションＴｘ４を仮想通貨Ｙのブロックチェーンネットワークｙに送出する。
【０１１４】
上記のようなアトミックスワップには、取引の成立まで時間がかかるという欠点がある。取引の成立とは、取引対象の仮想通貨を各利用者が最終的に受け取る処理、が完了することである。
従って、アトミックスワップで得られた（得られる予定の）仮想通貨をさらに別の取引に用いたい（回転取引を行いたい）と利用者が考えても、仮想通貨は直ぐに利用可能な状態とはならない。
そこで本実施形態のシステムでは、取引サーバ４０は、アトミックスワップでやりとりされる仮想通貨を担保として与信を行い、仮想通貨を双方の利用者に貸し付けることができる。
より具体的には、アトミックスワップのトランザクションを監視し、未承認のトランザクション分は、キャンセルもしくは相当する対価が送金されるものとして、仮想通貨を貸し付ける。キャンセルとは、引の有効期限が過ぎると仮想通貨を元の持ち主に戻す処理のことである。
また、売り注文を出している利用者の過去の取引成功確率をブロックチェーンから計算し、与信する仮想通貨の種類と数量とを決定することも出来る。
【０１１５】
図１４は、取引サーバが実行する取引評価処理を説明するフローチャートである。
取引サーバ４０のＣＰＵ４１（取引評価処理部５５）は、ステップＳ３０１において、アトミックスワップの成功確率の評価タイミングであるか否かを判定する。
評価タイミングであると判定した場合（ステップＳ３０１でＹｅｓ）、ＣＰＵ４１（取引評価処理部５５）は、ステップＳ３０２において、ブロックチェーンネットワークを探索して、特定の利用者が開始したアトミックスワップの全てのトランザクションＴｘ１（ハッシュ値Ｈを含む）を収集し、ステップＳ３０３において、利用者毎に、見つかったトランザクションＴｘ１を計数する。
【０１１６】
次いで、ＣＰＵ４１（取引評価処理部５５）は、ステップＳ３０４において、ブロックチェーンネットワークを探索して、特定の利用者が開始したアトミックスワップの全てのトランザクションＴｘ３（値Ｒの開示を含む）を収集し、ステップＳ３０５において、利用者毎に、見つかったトランザクションＴｘ３を計数する。
特定の利用者が開始した全てのアトミックスワップが正常に開始された場合、その利用者が公開した第１トランザクションＴｘ１の数と、第３トランザクションＴｘ３の数は一致するはずである。
一致しない場合、その利用者は、ランダムな値Ｒを開示せずにアトミックスワップを中断し、その結果、取引の相手も仮想通貨を受け取っていないことになる。
【０１１７】
ＣＰＵ４１（取引評価処理部５５）は、ステップＳ３０６において、ステップＳ３０３で計数した第１トランザクションＴｘ１の数に対する、ステップＳ３０５で計数した第３トランザクションＴｘ３の数の割合を、その利用者の「成功確率」として計算する。
そして、ＣＰＵ４１は、ステップＳ３０７において、ステップＳ３０６で計算した成功確率、ステップＳ３０５で計数した成功回数、ステップＳ３０３で計数した試行回数（母数）を、利用者毎に関連づけて取引評価記憶部６３に格納する。
なお、図１４のフローチャートでは、特定の利用者について過去の全てのアトミックスワップのトランザクションを収集するようにしているが、これは初回の評価にのみ必要な処理であり、次回以降の取引評価タイミングでは、初回以降に新たに発生したアトミックスワップのトランザクションのみを取得して、過去分と合算して取引成功確率などを算出することが出来る。
【０１１８】
なお、図１４の処理は、ブロックチェーンネットワークでアトミックスワップを行った（開始した）全ての利用者の取引成功確率を算出（評価）している。
この方法によっては、特定の利用者が最初に本実施形態の仕組みを用いて売り注文を行い、本実施形態の買い板にその売り注文が表示された時点から、その利用者の過去の取引成功確率や成功回数を全て表示することが出来る。
その反面、全ての利用者について取引履歴を追跡することは、処理負荷や管理すべき情報量の上で問題があるとも言える。本実施形態の仕組みを利用しない利用者の情報は、無駄であると考えられるからである。
そこで、下記に示す売買マッチング後の処理内において、買い板１０２から開始されたアトミックスワップの成否に基づいて、買い板１０２に表れた売り側利用者の取引成功確率のみを評価するようにしてもよい。
これにより、ブロックチェーンを探索する負荷や利用者毎の取引成功確率の情報量を著しく低減することが出来る。
【０１１９】
図１５は、取引サーバが実行する売買マッチング成立後の処理を説明するフローチャートである。
ＣＰＵ４１（買い注文通知処理部５４）は、ステップＳ４０１においてブロックチェーンネットワークを探索し、板情報に含まれる売り注文に対応する買い注文のトランザクションが公開されたか否かを判定する。
そのようなトランザクションが公開されたと判定した場合（ステップＳ４０１でＹｅｓ）、ＣＰＵ４１（買い注文通知処理部５４）は、ステップＳ４０２において、売り注文のＯＰ＿ＲＥＴＵＲＮに通知先（ＩＰアドレス、ＵＲＬ）の記載があったか否かを判定する。
通知先の記載がないと判定した場合には（ステップＳ４０２でＮｏ）、ＣＰＵ４１はステップＳ４０４に処理を進める。
【０１２０】
通知先の記載があると判定した場合（ステップＳ４０２でＹｅｓ）、ＣＰＵ４１（買い注文通知処理部５４）は、ステップＳ４０３において、記載された通知先に対して買い注文があったことを通知する。
売り側の端末装置１０ａにおいて売り注文が行われた後、買い側の端末装置１０ｂで買い注文が行われた場合、に売り側の端末装置にオフラインとなっているとアトミックスワップを開始することが出来ない。
そこで、本実施形態の取引サーバ４０では、板情報から買い注文が行われた場合に、対応する売り注文のＯＰ＿ＲＥＴＵＮに記載された通知先（ＩＰアドレス、ＵＲＬ）に対して通知を行うことで、売り側の端末装置がオンラインとなるように促す。
このように制御することで、板情報を用いて買い注文が行われた場合に、売り注文を行った端末装置（ウォレット）を確実にオンラインとさせて、円滑に取引を開始することが出来る。
【０１２１】
その後、ＣＰＵ４１（与信・貸付処理部５６）は、ステップＳ４０４において、アトミックスワップの第１トランザクションＴｘ１が、売り側の端末装置１０ａによって公開されたか否かを判定する。
第１トランザクションＴｘ１が公開されたと判定した場合（ステップＳ４０４でＹｅｓ）、ＣＰＵ４１（与信・貸付処理部５６）は、ステップ４０５において、買い側の端末装置１０ｂによって第２トランザクションＴｘ２が公開されたか否かを判定する。
第２トランザクションＴｘ２が公開されたと判定した場合（ステップＳ４０５でＹｅｓ）ＣＰＵ４１（与信・貸付処理部５６）は、ステップＳ４０６において、売り側の端末装置１０ａによって第３トランザクションＴｘがすでに公開されたか否かを判定する。
【０１２２】
第３トランザクションＴｘ３がすでに公開されたと判定した場合（ステップＳ４０６でＹｅｓ）、そのまま処理を終了する。
第３トランザクションＴｘ３がまだ公開されていないと判定した場合（ステップＳ４０５でＮｏ）、第４トランザクションＴｘ４も当然公開されていないと考えられる。
この状態は、アトミックスワップのために双方の利用者が「送金」した仮想通貨が滞留し、どちらの利用者も受取をしていない状態である。
【０１２３】
このような状態では、ＣＰＵ４１（与信・貸付処理部５６）は、ステップＳ４０７において、図１４の処理で評価した、売り側の利用者のアトミックスワップの成功確率に基づいて、貸し付ける仮想通貨と、貸付額を決定する。仮想通貨を貸し付けるとは、売り側の利用者、買い側の利用者に貸付額に応じた仮想通貨を送金する処理のことである。
貸し付ける仮想通貨、貸付額を決定するための基準が、今回の取引における「売り側」に当たる利用者の成功確率であるのは。本実施形態において、ランダムな値Ｒを決定して取引の主導権を持っているのは売り側の利用者だからである。アトミックスワップの成否は、売り側の利用者がＲの値を含む第３トランザクションＴｘ３を公開するか否かに懸かっているため、売り側の利用者の成功確率で取引を評価する
【０１２４】
売り側のビットコインと買い側のライトコインを交換する処理を一例として、貸し付ける仮想通貨の種類と数量とを決定する処理を説明する。
＜第１例＞
ビットコインの売り注文を出している売り側の利用者の過去の取引成功確率が例えば６０％の場合、取引サーバ４０（与信・貸付処理部５６）は、売り側の利用者にはライトコインの取引数量を上限にライトコインを貸し出す。これは、アトミックスワップが成功して売り側がビットコインと引き換えにライトコインを受け取る可能性が比較的高い（６０％）ためである。ライトコインの取引数量とは、売り注文及び対応する買い注文で規定されたビットコインと交換するライトコインの数量のことである。
【０１２５】
そして、取引サーバ４０（与信・貸付処理部５６）は、買い側にはビットコインの取引数量を上限にビットコインを貸し出す。これは、アトミックスワップが成功して、買い側がライトコインと引き換えにビットコインを受け取る可能性が高い（６０％）ためである。ビットコインの取引数量とは、売り注文及び対応する買い注文で規定されたライトコインと交換するビットコインの数量のことである。
この例の与信・貸付処理では、売り側の利用者の過去の取引成功確率が５０％を超える場合、アトミックスワップが成立して、互いに所望する仮想通貨を受け取る可能性が比較的高いため、注文された数量を上限として、取引で受け取る予定の仮想通貨を事前に（取引成立前に）送金する。
逆に、売り側の利用者の過去の取引成功確率が５０％以下（未満）であれば、アトミックスワップが成立しない可能性が比較的高い。その場合、仮想通貨の貸付（送金）自体行わないようにするようにしてもよい。あるいは、取引がキャンセルされることを前提に、売り側、買い側の取引の元手となっている仮想通貨（この例であれば、売り側ではビットコイン、買い側ではライトコイン）を、取引数量を上限に売り側、買い側の利用者夫々に貸し出してもよい。
【０１２６】
＜第２例＞
また、上記の＜第１例＞に比べて細かく条件を設定してもよい。
すなわち、ビットコインの売り注文を出している売り側の利用者の過去の取引成功確率が６０％の場合、取引サーバ４０（与信・貸付処理部５６）は、売り側の利用者には、売り注文及び対応する買い注文で規定されたライトコインの取引数量の６割を上限にライトコインを貸し出すとともに、ビットコインの取引数量の４割を上限にビットコインを貸し出す。
それに対し、取引サーバ４０（与信・貸付処理部５６）は、買い側の利用者には、ビットコインの取引数量の６割を上限にビットコインを貸し出すとともに、ライトコインの取引数量の４割を上限にライトコインを貸し出す。
売り側の利用者の過去の実績によれば、売り側の利用者は、６０％の確率で取引が成功してライトコインを手に入れ、４０％の確率で元手のビットコインを取り戻し、売り側の利用者は、６０％の確率で取引が成功してビットコインを手に入れ、４０％の確率で元手のライトコインを取り戻すと考えられる。
この確率を元に、売り側、買い側双方の利用者に貸し付ける仮想通貨、数量を決定している。
【０１２７】
なお、＜第１例＞、＜第２例＞において、取引手数料を取る場合には、取引数量から取引手数料に相当する数量を差し引いた数量を、上記取引数量として仮想通貨の貸し出し数量の上限を算出し、仮想通貨を貸し出してもよい。
フローチャートの説明に戻り、ステップＳ４０８において、ＣＰＵ４１は、売り側の利用者に、ステップＳ４０７で決定した数量の仮想通貨を送金するトランザクションをブロードキャストする。
そして、ステップＳ４０９において、取引サーバ４０のＣＰＵ４１は、売り側の利用者に、ステップＳ４０７で決定した数量の仮想通貨を送金するトランザクションをブロードキャストする。
【０１２８】
以上のように構成することで、本実施形態の仮想通貨取引装置においては、取引速度が遅いアトミックスワップにおいて、アトミックスワップが成功して仮想通貨を受けとる前に、仮想通貨を事前に借り受けて別の取引などに利用することが出来る。
また、アトミックスワップがキャンセルされる場合でも、実際に取引がタイムアウトして元手を取り戻せるようになるまでの時間を無駄にせず、いち早く仮想通貨を受け取って別の取引に利用することが出来る。
このようなことを可能とすることで、仮想通貨の使い勝手、利便性を飛躍的に高めることが出来る。
【０１２９】
図１６は、売り注文を行った利用者の取引成功確率を反映した板情報を示す図である。
図６、図７に示した利用者Ａ〜Ｆについて、図１４の処理で各利用者の過去の取引が以下のように評価されたとする。
すなわち、利用者Ａは、１００回試行したアトミックスワップが５０回成功し、成功確率は５０％である。
また、利用者Ｂは、４０回試行したアトミックスワップが１２回成功し、成功確率は３０％である。
また、利用者Ｃは、５回試行したアトミックスワップが５回成功し、成功確率は１００％である。
また、利用者Ｄは、３０回試行したアトミックスワップが１５回成功し、成功確率は５０％である。
また、利用者Ｅは、３０回試行したアトミックスワップが３０回成功し、成功確率は１００％である。
また、利用者Ｆは、７０回試行したアトミックスワップが４２回成功し、成功確率は６０％である。
【０１３０】
そして、図１６に示すように、買い板１０２に表示される板情報に含まれる売り注文には、成功確率、成功回数、試行回数が付加表示される。
この場合、配信サーバ４０で生成される板情報では、例えば、図１６に示すように、売り注文は、成功確率が高い順、利用者Ｅ→利用者Ｃ→利用者Ｆ→利用者Ａ→利用者Ｄ→利用者Ｂの順番で表示されてもよい。成功率が同じ場合は、成功回数が多い利用者の売り注文を上に表示する。
また、成功確率ではなく、単に、成功回数が多い利用者の売り注文を上に表示するようにしてもよい。
以上のように、取引条件（交換レート）のみならず、アトミックスワップが成功する蓋然性を買い板１０２上で視認可能としたことで、好ましい取引を判断可能として取引の利便性を大いに高めることが出来る。
【符号の説明】
【０１３１】
１０  端末装置、１１  ＣＰＵ、１２  ＲＡＭ、１３  ドライブ装置、１４  記録媒体、１５  ネットワークＩ／Ｆ、１６  外部ＩＯ  Ｉ／Ｆ、１７  入力装置、１８  表示装置、２１  インターフェイス処理部、２２  注文処理部、２３  注文処理部、２４  板情報表示処理部、２５  アトミックスワップ実行処理部、２５ａ  Ｒ値決定処理部、２５ｂ  ハッシュ処理部、２５ｃ  トランザクション作成処理部、２５ｄ  電子署名生成処理部、２５ｅ  トランザクション送出処理部、２５ｆ  ネットワーク探索処理部、３０  マイナー装置、３０ｘ  マイナー装置、３０ｙ  マイナー装置、４０  取引サーバ、４１  ＣＰＵ、４２  ＲＡＭ、４３  ＨＤＤ、５０  ブロックチェーン監視処理部、５１  注文取得処理部、５２  板情報生成処理部、５３  板情報配信処理部、５４  注文通知処理部、５５  取引評価処理部、５６  与信・貸付処理部、６１  注文情報記憶部、６２  板情報記憶部、６３  取引評価記憶部、６４  トランザクション送出処理部、６５  ネットワーク探索処理部、１００  売買注文画面、１０１  注文欄、１０２  買い板
【図１】
2020009361.tif 000003
【図２】
2020009361.tif 000004
【図３】
2020009361.tif 000005
【図４】
2020009361.tif 000006
【図５】
2020009361.tif 000007
【図６】
2020009361.tif 000008
【図７】
2020009361.tif 000009
【図８】
2020009361.tif 000010
【図９】
2020009361.tif 000011
【図１０】
2020009361.tif 000012
【図１１】
2020009361.tif 000013
【図１２】
2020009361.tif 000014
【図１３】
2020009361.tif 000015
【図１４】
2020009361.tif 000016
【図１５】
2020009361.tif 000017
【図１６】
2020009361.tif 000018