(57)【要約】      （修正有）【課題】仮想通貨の資金移動システムおよび方法を提供する。【解決手段】本発明の仮想通貨の資金移動システムは、ユーザごと、および資金の種類ごとに資金を保管する手段と、ユーザごと、および資金の種類ごとに資金の残高情報を記憶する手段と、第１の電子署名が付与された資金移動の許可のトランザクションを公開する手段と、資金移動の許可のトランザクションに第２の電子署名を付与する手段と、第１の公開鍵を使用して、第１の電子署名を検証する手段と、第２の公開鍵を使用して、第２の電子署名を検証する手段と、資金移動の許可のトランザクションに基づいて、資金移動を実行する手段と、を備える。第１の電子署名および第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成され、資金の残高情報は、保管された資金または資金移動の許可のトランザクションに基づいて更新される。【選択図】図５
2020046975.tif 000002
【特許請求の範囲】
【請求項１】
ユーザごと、および資金の種類ごとに資金を保管する手段と、
前記ユーザごと、および前記資金の種類ごとに前記資金の残高情報を記憶する手段と、
第１の電子署名が付与された資金移動の許可のトランザクションを公開する手段と、
前記資金移動の許可のトランザクションに第２の電子署名を付与する手段と、
第１の公開鍵を使用して、前記第１の電子署名を検証する手段と、
第２の公開鍵を使用して、前記第２の電子署名を検証する手段と、
前記資金移動の許可のトランザクションに基づいて、資金移動を実行する手段と、
を備えたシステムであって、
前記第１の電子署名および前記第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成され、
前記資金の残高情報は、前記保管された前記資金または前記資金移動の許可のトランザクションに基づいて更新される、
システム。
【請求項２】
ユーザデバイスから注文情報を受信する手段と、
前記注文情報に基づいて約定を行う手段と、
をさらに備え、
前記資金の残高情報はさらに、前記注文情報に基づいて更新される、請求項１に記載のシステム。
【請求項３】
コンピュータにより実施される方法であって、
ユーザごと、および資金の種類ごとに資金を保管することと、
前記ユーザごと、および前記資金の種類ごとに前記資金の残高情報を記憶することと、
第１の電子署名が付与された資金移動の許可のトランザクションを公開することと、
前記資金移動の許可のトランザクションに第２の電子署名を付与することと、
第１の公開鍵を使用して、前記第１の電子署名を検証することと、
第２の公開鍵を使用して、前記第２の電子署名を検証することと、
前記資金移動の許可のトランザクションに基づいて、資金移動を実行することと、
を含む方法であって、
前記第１の電子署名および前記第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成され、
前記資金の残高情報は、前記保管された前記資金または前記資金移動の許可のトランザクションを参照して更新される、
方法。
【請求項４】
ユーザデバイスから注文情報を受信することと、
前記注文情報に基づいて約定を行うことと、
をさらに含み、
前記資金の残高情報はさらに、前記注文情報に基づいて更新される、請求項３に記載の方法。
【請求項５】
マルチシグネチャを利用して資金を移動するための装置であって、
ユーザデバイスから注文情報を受信する手段と、
前記注文情報に基づいて、ユーザごと、および資金の種類ごとに前記資金の残高情報を更新する手段と、
前記注文情報に基づいて約定を行う手段と、
第１の電子署名が付与された資金移動の許可のトランザクションに第２の電子署名を付与する手段と、
を備え、
前記第１の電子署名および前記第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成される、装置。
【請求項６】
コンピュータにより実行される方法であって、
ユーザデバイスから注文情報を受信することと、
前記注文情報に基づいて、ユーザごと、および資金の種類ごとに前記資金の残高情報を更新することと、
前記注文情報に基づいて約定を行うことと、
第１の電子署名が付与された資金移動の許可のトランザクションに第２の電子署名を付与することと、
を含み、
前記第１の電子署名および前記第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成される、方法。
【請求項７】
請求項３、４、または６のいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムが格納されたコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想通貨の資金移動システムおよび方法に関する。より詳細には、マルチシグネチャを利用した仮想通貨の資金移動システムおよび方法に関する。本明細書では、仮想通貨の送金、出金等を総称して資金移動と記載する。
【背景技術】
【０００２】
従来の仮想通貨取引所は、ユーザの仮想通貨を一時的に受け取るためのウォレット（アドレス）をユーザごとに用意している。各ユーザから一時的に受け取った仮想通貨は、仮想通貨取引所の管理者のみがコントロール可能な１つまたは複数のウォレットに混在して保持される。仮想通貨取引所は、各ユーザからいくら仮想通貨を預かっているかについて、別途データベース等によって管理している。
【０００３】
仮想通貨の取引等の資金移動を行うトランザクションは、仮想通貨取引所が管理している秘密鍵による電子署名が必要である。ここで、資金移動のトランザクションは、マルチシグネチャ（以下、「マルチシグ」という。）と呼ばれる技術を応用することが知られている。マルチシグは、複数に分散されたＮ個の秘密鍵のうちのＭ個の秘密鍵を使用した電子署名を要求することによって、取引のセキュリティを高めることができる技術である（Ｎ≧Ｍ＞１）。マルチシグを採用している仮想通貨取引所は、複数に分散された秘密鍵を一箇所または複数箇所に保管しているが、秘密鍵の全てが仮想通貨取引所の管理下にあることに変わりない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、仮想通貨取引所が管理している秘密鍵が盗難された場合、ウォレットに保管されたユーザの資金が盗難される可能性がある。秘密鍵を管理している仮想通貨取引所はサイバー攻撃の対象となりやすいため、オフライン環境で秘密鍵を管理する対策手法（コールドウォレット）が知られている。コールドウォレットはインターネットを介する攻撃に対して安全であるが、物理的な盗難、ソーシャルエンジニアリングによる漏洩などの可能性もある。
【０００５】
さらに、従来の仮想通貨取引所において出金処理を行う場合、仮想通貨取引所はユーザから出金依頼を受信すると、手動または自動で出金依頼の承認を行い、仮想通貨取引所のウォレットからユーザ指定のウォレットに対して資金移動を行っていた。しかしながら、例えばユーザが複数のウォレットに分散して保管している仮想通貨を移動させる場合、移動先のユーザ指定のウォレットが存在するかどうか、およびユーザ指定のウォレットがユーザの管理下にあるかどうかについては不明であるという問題があった。
【０００６】
このような従来の中央集権型の仮想通貨取引所に対し、ＤＥＸ（Decentralized EXchange：分散型取引所）と呼ばれる取引所が注目されている。ＤＥＸは、資産の管理および取引がブロックチェーン上で行われるため、例えば注文／約定があった場合、注文／約定ごとにブロックチェーンへの書き込みが発生し、トランザクションの承認を得る必要がある。ＤＥＸは、トランザクションの承認が数分から数十分を要する場合があることから、即時性が要求される取引または大量の取引に対して実用上の問題がある。
【０００７】
したがって、より安全で高速に仮想通貨の取引等を行うことができる仮想通貨取引所のシステムが望まれる。
【０００８】
本発明は、このような課題に対し、仮想通貨の資金移動システムおよび方法を提供することを目的とする。より詳細には、マルチシグネチャを利用した仮想通貨の資金移動システムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様である、仮想通貨の資金移動システムは、ユーザごと、および資金の種類ごとに資金を保管する手段と、ユーザごと、および資金の種類ごとに資金の残高情報を記憶する手段と、第１の電子署名が付与された資金移動の許可のトランザクションを公開する手段と、資金移動の許可のトランザクションに第２の電子署名を付与する手段と、第１の公開鍵を使用して、第１の電子署名を検証する手段と、第２の公開鍵を使用して、第２の電子署名を検証する手段と、資金移動の許可のトランザクションに基づいて、資金移動を実行する手段と、を備えたシステムであって、第１の電子署名および第２の電子署名はそれぞれ、複数に分散された秘密鍵によって作成され、資金の残高情報は、前記保管された前記資金または資金移動の許可のトランザクションに基づいて更新される。
【発明の効果】
【００１０】
本発明によれば、資金移動のトランザクションについて仮想通貨取引所とユーザの双方の電子署名を要するため、ユーザの資金がより安全に保管される。また、ユーザが管理していない不正なアドレスに対する出金を防ぐことができる。さらに、ＤＥＸにおいて問題となったブロックチェーンへの書き込みにかかるトランザクションの承認を待つことなく取引が成立するため、高速に仮想通貨の取引が可能となる。また、ユーザ間で取引が成立したにも関わらず、ユーザが資金移動の許可のトランザクションを送信しない場合、資金の移動が行われないため、より安全な取引が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る仮想通貨の資金移動システムの構成を例示する図である。
【図２】本発明の一実施形態に係る残高情報のデータ項目を例示する図である。
【図３】本発明の一実施形態に係る注文情報のデータ項目を例示する図である。
【図４】本発明の一実施形態に係る仮想通貨の入金処理フローを例示する図である。
【図５】本発明の一実施形態に係る仮想通貨の取引処理フローを例示する図である。
【図６】本発明の一実施形態に係る仮想通貨の出金処理フローを例示する図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。複数の図面において同一の符号は同一の要素を表し、重複した説明は省略する。
【００１３】
図１は、本実施形態に係る仮想通貨の資金移動システムの構成を例示する図である。図１は概略的に、ユーザデバイス１００ａ、１００ｂ・・・１００ｎ（以下、総称して「ユーザデバイス１００」という。）、ネットワーク１１０、ブロックチェーン・ネットワーク１２０、取引所サーバ１３０、および管理者デバイス１４０が例示される。
【００１４】
ユーザデバイス１００は、仮想通貨の取引等を行うユーザにより操作されるデバイスであり、例えば、ＰＣ、タブレット、スマートフォン等とすることができる。ユーザデバイス１００は、デスクトップウォレット、モバイルウォレット等のアプリケーションがインストールされてもよい。ユーザデバイス１００は、インストールされたアプリケーションによって、仮想通貨を使用するための秘密鍵およびアドレス情報等を管理することができる。
【００１５】
ユーザデバイス１００は、複数に分散された秘密鍵のうちの１つを有する。秘密鍵は独立したハードウェア（トークン）に格納されてもよく、取引ごとまたは定期的に生成されてもよい。ユーザデバイス１００は、資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、ユーザデバイス１００の秘密鍵を使用して電子署名を作成し、署名済みのトランザクションをブロックチェーン・ネットワーク１２０に送信することができる。資金移動の許可のトランザクションは、ブロックチェーン・ネットワーク１２０において公開され、トランザクションＩＤにより識別可能となる。
【００１６】
資金移動の許可のトランザクションは、例えば、ユーザ指定のウォレットに対する仮想通貨の出金、仮想通貨の取引等に関するトランザクションとすることができる。資金移動の許可のトランザクションは、資金移動元および資金移動先のウォレット（アドレス）情報、ユーザデバイス１００および管理者デバイス１４０の公開鍵等の情報を含んでもよい。
【００１７】
ユーザデバイス１００はまた、ネットワーク１１０を介して注文情報を取引所サーバ１３０に送信することができる。注文情報は、ユーザ情報、注文種類、通貨ペア、レート、量等を含むデータである。注文情報はまた、資金移動の許可のトランザクションのトランザクションＩＤを含んでもよい。
【００１８】
ネットワーク１１０は、ユーザデバイス１００と、ブロックチェーン・ネットワーク１２０および取引所サーバ１３０との間で相互通信可能な周知のネットワークとすることができ、特に限定されることはない。
【００１９】
ブロックチェーン・ネットワーク１２０は、ブロックチェーン技術を利用した分散型ネットワークであり、ネットワーク参加者（ノード）によって取引、アプリケーション処理等のトランザクションが実行され、記録される。ブロックチェーン・ネットワーク１２０は、仮想通貨を管理するためのウォレット（アドレス）が開設される。ブロックチェーン・ネットワーク１２０に開設されたウォレットは、ユーザごと、仮想通貨の種類ごとに仮想通貨を保管することができる。ブロックチェーン・ネットワーク１２０に開設されたウォレットは、資金の移動について複数の電子署名を要求するマルチシグを導入することができる（以下、「マルチシグ対応のウォレット」という。）。
【００２０】
ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに基づいて、マルチシグ対応のウォレットの資金を実際に移動することができる。資金の移動は、ユーザデバイス１００の秘密鍵による電子署名および管理者デバイス１４０の秘密鍵による電子署名が要求される。
【００２１】
取引所サーバ１３０は、仮想通貨取引所が運営するサーバであり、残高情報ＤＢ１３１および注文情報ＤＢ１３２を備える。取引所サーバ１３０は、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットおよび／またはユーザの法定通貨をプールするための仮想通貨取引所指定の金融機関の口座を参照して取得した残高情報を残高情報ＤＢ１３１に格納する。仮想通貨取引所指定の金融機関の口座は、ユーザごとに割り当てた仮想の口座番号等によりユーザを判別してもよい。取引所サーバ１３０は、定期的にトリガされてブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットおよび／またはユーザの法定通貨をプールするための仮想通貨取引所指定の金融機関の口座を参照するように構成されてもよい。
【００２２】
取引所サーバ１３０はまた、ユーザデバイス１００から受信した注文情報に基づいて、注文情報ＤＢ１３２の注文情報を更新する。取引所サーバ１３０はさらに、注文情報ＤＢ１３２の注文情報とブロックチェーン・ネットワーク１２０の資金移動の許可のトランザクションとを比較して、内容が一致するかどうかを比較することができる。
【００２３】
残高情報ＤＢ１３１は、ユーザ、通貨、残高等を含む資金の残高情報を格納し、保持することができるデータベースである。注文情報ＤＢ１３２は、ユーザ、注文、通貨、レート、量等を含む注文情報を格納し、保持することができるデータベースである。
【００２４】
管理者デバイス１４０は、仮想通貨取引所の管理者により操作されるデバイスであり、例えば、ＰＣ、サーバ等とすることができる。管理者デバイス１４０は、ユーザデバイス１００が有している秘密鍵とは異なる、複数に分散された秘密鍵のうちの１つを有する。秘密鍵は独立したハードウェア（トークン）に格納されてもよく、取引ごとまたは定期的に生成されてもよい。管理者デバイス１４０は、ブロックチェーン・ネットワーク１２０上の資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、管理者デバイス１４０の秘密鍵を使用して電子署名を作成し、付与することができる。
【００２５】
ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに対してユーザデバイス１００の秘密鍵によって作成され、付与された電子署名をユーザデバイス１００の公開鍵を使用して署名検証を行う。ブロックチェーン・ネットワーク１２０はまた、資金移動の許可のトランザクションに対して管理者デバイス１４０の秘密鍵によって作成され、付与された電子署名を管理者デバイス１４０の公開鍵を使用して署名検証を行う。署名検証は、資金移動の許可のトランザクションに基づいて算出したハッシュ値と、ユーザデバイス１００の公開鍵または管理者デバイス１４０の公開鍵によってそれぞれの電子署名を復号したものとを突合せること等により実行できる。署名検証は、ブロックチェーン基盤により実施され得る公知の技術を用いることができる。署名検証が正常に完了すると、ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに基づいて、マルチシグ対応のウォレットの資金を移動させる。
【００２６】
図２は、本実施形態における残高情報ＤＢ１３１が保持する残高情報のデータ項目を例示する図である。図２は、ユーザ、通貨、残高を含むデータ項目を例示しているが、他のデータ項目を含むことも可能である。図２は例えば、ユーザＡのＪＰＹ（日本円）の残高が１００，０００円、ＢＴＣ（ビットコイン）の残高が１．２３ＢＴＣ、ＥＴＨ（イーサリアム）の残高が２．２２ＥＴＨであることを示している。
【００２７】
図３は、本実施形態における注文情報ＤＢ１３２が保持する注文情報のデータ項目を例示する図である。図３は、ユーザ、注文（注文種類）、通貨（通貨ペア）、レート、量（注文量）を含むデータ項目を例示しているが、他のデータ項目を含むことも可能である。図３は、ユーザＡが１ＥＴＨあたりのレートを５０，０００円で１ＥＴＨの買い注文を出していることが例示される。図３はまた、ユーザＢが１ＥＴＨあたりのレートを４９，０００円で１ＥＴＨの売り注文を出していることが例示される。
【００２８】
図４は、本実施形態に係る仮想通貨の入金処理フローを例示する図である。以下、ユーザがユーザデバイス１００を使用して、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットに資金を入金する場面について説明する。
【００２９】
（仮想通貨の入金）
Ｓ４０１：ユーザデバイス１００は、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットに仮想通貨の入金を行う。仮想通貨の入金は、仮想通貨の種類、量、ウォレットを指定すること等により行われる。ウォレットの指定は、例えば送金元のウォレットを他の仮想通貨取引所が提供するウェブウォレット等とし、送金先のウォレットをブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットとすることができる。マルチシグ対応のウォレットは、他のユーザが管理している他のユーザのウォレットからの入金（資金譲渡）を受け付けてもよい。
【００３０】
Ｓ４０２：ブロックチェーン・ネットワーク１２０は、入金された仮想通貨をユーザごとおよび仮想通貨の種類ごとに区別されたマルチシグ対応のウォレットに保管する。保管はブロックチェーンの書き込み、承認等により行われる。
【００３１】
Ｓ４０３：取引所サーバ１３０は、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットおよび／またはユーザの法定通貨をプールするための仮想通貨取引所指定の金融機関の口座を参照して取得した残高情報を残高情報ＤＢ１３１に格納する。取引所サーバ１３０は、定期的にトリガされてブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットおよび／またはユーザの法定通貨をプールするための仮想通貨取引所指定の金融機関の口座を参照するように構成されてもよい。
【００３２】
このようにすることで、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットに仮想通貨が保管され、ユーザごとおよび通貨ごとの残高情報は、取引所サーバ１３０の残高情報ＤＢ１３１に格納される。残高情報ＤＢ１３１に格納された残高情報は、仮想通貨取引所において仮想通貨の売買等の取引を行う際に必要となる。
【００３３】
図５は、本実施形態に係る仮想通貨の取引処理フローを例示する図である。以下、ユーザＡおよびユーザＢは、それぞれが有するユーザデバイス１００を使用して、仮想通貨の注文を出して取引を行う場面について説明する。
【００３４】
Ｓ５０１：ユーザＡのユーザデバイス１００およびユーザＢのユーザデバイス１００はそれぞれ、取引所サーバ１３０に対して仮想通貨の注文情報を送信する。注文情報は、例えばユーザＡが１ＥＴＨあたりのレートを５０，０００円で１ＥＴＨの買い注文、およびユーザＢが１ＥＴＨあたりのレートを４９，０００円で１ＥＴＨの売り注文が含まれる場合、図３に例示する情報が注文情報ＤＢ１３２に格納される。
【００３５】
Ｓ５０２：取引所サーバ１３０は、注文情報ＤＢ１３２に格納された注文情報に基づいて残高情報ＤＢ１３１の残高情報を更新し、注文情報の約定を行う。この段階ではブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットに保管されたユーザＡおよびユーザＢの資金は移動しない。
【００３６】
Ｓ５０３：ユーザＡのユーザデバイス１００およびユーザＢのユーザデバイス１００はそれぞれ、ブロックチェーン・ネットワーク１２０に資金移動の許可のトランザクションを送信する。資金移動の許可のトランザクションはそれぞれ、ユーザＡおよびユーザＢのそれぞれのユーザデバイス１００が有する秘密鍵によって作成された電子署名が付与される。電子署名の付与は、例えば、ユーザＡのユーザデバイス１００が、資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、ユーザＡのユーザデバイス１００の秘密鍵を使用して電子署名を作成し、付与することにより行われる。
【００３７】
Ｓ５０４：取引所サーバ１３０は、注文情報ＤＢ１３２に格納された注文情報とブロックチェーン・ネットワーク１２０の資金移動の許可のトランザクションとを比較し、内容が一致することを確認する。例えば、取引所サーバ１３０は、ユーザＡの注文情報とユーザＡが送信した資金移動の許可のトランザクションを比較する。
【００３８】
Ｓ５０５：管理者デバイス１４０は、ブロックチェーン・ネットワーク１２０上の資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、管理者デバイス１４０の秘密鍵を使用して電子署名を作成し、付与する。
【００３９】
Ｓ５０６：ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに対してユーザＡのユーザデバイス１００の秘密鍵によって作成され、付与された電子署名をユーザＡのユーザデバイス１００の公開鍵を使用して署名検証を行う。ブロックチェーン・ネットワーク１２０はまた、資金移動の許可のトランザクションに対してユーザＢのユーザデバイス１００の秘密鍵によって作成され、付与された電子署名をユーザＢのユーザデバイス１００の公開鍵を使用して署名検証を行う。署名検証は、資金移動の許可のトランザクションに基づいて算出したハッシュ値と、ユーザデバイス１００の公開鍵によって電子署名を復号したものとを突合せること等により実行できる。資金移動の許可のトランザクションは、ユーザＡおよびユーザＢのそれぞれが有するユーザデバイス１００の秘密鍵によって電子署名が行われているため、取引の当事者がユーザＡおよびユーザＢであることが保証される。したがって、取引相手以外に対する送金が防止される。
【００４０】
Ｓ５０７：ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに対して管理者デバイス１４０の秘密鍵によって作成され、付与された電子署名を管理者デバイス１４０の公開鍵を使用して署名検証を行う。署名検証は、資金移動の許可のトランザクションに基づいて算出したハッシュ値と、管理者デバイス１４０の公開鍵によって電子署名を復号したものとを突合せること等により実行できる。
【００４１】
Ｓ５０８：ブロックチェーン・ネットワーク１２０は、資金移動の許可のトランザクションに基づいて、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットの資金をユーザごとおよび仮想通貨ごとに移動させる。資金の移動は、例えば、ユーザＡのマルチシグ対応のウォレットのイーサリアムを１ＥＴＨ分増加させ、ユーザＢのマルチシグ対応のウォレットのイーサリアムを１ＥＴＨ分減少させる等とすることができる。
【００４２】
資金移動の許可のトランザクションは、ユーザＡおよびユーザＢのそれぞれが有するユーザデバイス１００の秘密鍵によって作成された電子署名が付与されるため、実際の取引相手以外への資金移動を防止することができる。資金移動の許可のトランザクションがユーザデバイス１００から送信されない場合、管理者デバイス１４０により電子署名が作成されないため、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットにある資金の移動が行われず、より安全な取引が可能となる。
【００４３】
また、ブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットの資金移動が行われる前に取引所サーバ１３０が注文情報の約定を行うことで、実際の資金移動よりも前に取引を成立させることができる。また、ブロックチェーンを介さず注文情報の約定を行うことにより、従来のＤＥＸのようにブロックチェーンへの書き込みにかかるトランザクションの承認を待つことなく取引が成立する。したがって、より高速な仮想通貨取引が可能となる。
【００４４】
図６は、本実施形態に係る仮想通貨の出金処理フローを例示する図である。以下、ユーザがブロックチェーン・ネットワーク１２０にあるマルチシグ対応のウォレットから、ユーザが管理するプライベートなウォレットに対して仮想通貨を出金する場面について説明する。
【００４５】
Ｓ６０１：ユーザデバイス１００は、ブロックチェーン・ネットワーク１２０に仮想通貨の出金依頼のトランザクションを送信する。出金依頼のトランザクションは資金移動の許可のトランザクションであり、ユーザ指定のウォレット、仮想通貨の種類、量の情報等を含み、ユーザデバイス１００の秘密鍵によって作成された電子署名が付与されている。ユーザ指定のウォレットは、例えば他の仮想通貨取引所が提供するウェブウォレット等とすることができる。電子署名の付与は、資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、ユーザデバイス１００の秘密鍵を使用して電子署名を作成し、付与することにより行われる。
【００４６】
Ｓ６０２：取引所サーバ１３０は、ブロックチェーン・ネットワーク１２０の出金依頼のトランザクションに基づいて、残高情報ＤＢ１３１の残高情報を更新する。この段階ではブロックチェーン・ネットワーク１２０のマルチシグ対応のウォレットに保管された資金の移動は行われない。
【００４７】
Ｓ６０３：管理者デバイス１４０は、ブロックチェーン・ネットワーク１２０上の資金移動の許可のトランザクションに基づいて算出されたハッシュ値に対し、管理者デバイス１４０の秘密鍵を使用して電子署名を作成し、付与する。
【００４８】
Ｓ６０４：ブロックチェーン・ネットワーク１２０は、出金依頼のトランザクションに対してユーザデバイス１００の秘密鍵によって作成され、付与された電子署名をユーザデバイス１００の公開鍵を使用して署名検証を行う。署名検証は、出金依頼のトランザクションに基づいて算出したハッシュ値と、ユーザデバイス１００の公開鍵によって電子署名を復号したものとを突合せること等により実行できる。出金依頼のトランザクションは、ユーザが有するユーザデバイス１００の秘密鍵によって電子署名が行われているため、出金の依頼者が正当なユーザであることが保証される。したがって、なりすましが防止される。
【００４９】
Ｓ６０５：ブロックチェーン・ネットワーク１２０は、出金依頼のトランザクションに対して管理者デバイス１４０の秘密鍵によって作成され、付与された電子署名を管理者デバイス１４０の公開鍵を使用して署名検証を行う。署名検証は、資金移動の許可のトランザクションに基づいて算出したハッシュ値と、管理者デバイス１４０の公開鍵によって電子署名を復号したものとを突合せること等により実行できる。
【００５０】
Ｓ６０６：ブロックチェーン・ネットワーク１２０は、出金依頼のトランザクションに基づいて、ユーザごとおよび仮想通貨ごとのマルチシグ対応のウォレットからユーザ指定のウォレットに仮想通貨を送金する。
【００５１】
このように、ユーザが有するユーザデバイス１００の秘密鍵によって電子署名が行われることで、出金依頼者がユーザであることが保証されるため、不正な出金先のウォレットが指定されることがない。
【００５２】
別の実施形態において、ユーザデバイス１００および／または取引所サーバ１３０が有する秘密鍵は、定期的にまたは取引ごとに生成されてもよい。このようにすることで、さらに秘密鍵の漏洩の危険性が軽減される。
【００５３】
また、別の実施形態において、資金移動の許可のトランザクションは支払スクリプトの形式で構成されてもよく、複数の電子署名が集まると支払スクリプトが実行されて実際に資金の移動が行われるように実装されてもよい。資金移動の許可のトランザクションは、支払スクリプトのハッシュ値が含まれてもよい。
【００５４】
説明のため各処理を分けて記載したが、各処理を統合、連携させ、それぞれが有する処理の一部または全部を他方が行うように実装されてもよい。
【００５５】
以上、例示的な実施形態を参照しながら本発明の原理を説明したが、本発明の要旨を逸脱することなく、構成および細部において変更する様々な実施形態を実現可能である。すなわち、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を採用することが可能である。
【符号の説明】
【００５６】
１００ａ、１００ｂ、１００ｎ  ユーザデバイス
１１０  ネットワーク
１２０  ブロックチェーン・ネットワーク
１３０  取引所サーバ
１３１  残高情報ＤＢ
１３２  注文情報ＤＢ
１４０  管理者デバイス
【図１】
2020046975.tif 000003
【図２】
2020046975.tif 000004
【図３】
2020046975.tif 000005
【図４】
2020046975.tif 000006
【図５】
2020046975.tif 000007
【図６】
2020046975.tif 000008