JP6786119B2 - 取引装置、取引方法及び取引プログラム - Google Patents

取引装置、取引方法及び取引プログラム Download PDF

Info

Publication number
JP6786119B2
JP6786119B2 JP2018177386A JP2018177386A JP6786119B2 JP 6786119 B2 JP6786119 B2 JP 6786119B2 JP 2018177386 A JP2018177386 A JP 2018177386A JP 2018177386 A JP2018177386 A JP 2018177386A JP 6786119 B2 JP6786119 B2 JP 6786119B2
Authority
JP
Japan
Prior art keywords
transaction
electronic signature
network
information
trading
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.)
Active
Application number
JP2018177386A
Other languages
English (en)
Other versions
JP2020048161A (ja
Inventor
優佑 星月
優佑 星月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Axell Corp
Original Assignee
Axell Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Axell Corp filed Critical Axell Corp
Priority to JP2018177386A priority Critical patent/JP6786119B2/ja
Priority to US16/559,536 priority patent/US20200098042A1/en
Publication of JP2020048161A publication Critical patent/JP2020048161A/ja
Application granted granted Critical
Publication of JP6786119B2 publication Critical patent/JP6786119B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、取引装置、取引方法及び取引プログラムに関する。
ブロックチェーン上に取引情報を記録する暗号通貨(仮想通貨)が用いられている。ブロックチェーンとは、複数の取引情報を含むブロックを生成し、生成したブロックを連結することにより、分散型ネットワークにデータを記録するデータベースのことである。ブロックには、複数の取引情報に加えて、1つ前に生成されたブロックの内容を示すハッシュ値を含むので、ブロックチェーンは、生成されたブロックが時系列に沿ってつながっていくデータ構造を有する。
暗号通貨には、異なる特徴を有する複数の種類の暗号通貨がある。このため、ユーザは、暗号通貨を使用するとき、用途に適した暗号通貨を選択して利用する。暗号通貨の種類には、例えば、ビットコイン(BTC:登録商標)、イーサリアム(ETH:商標登録)、ライトコイン(LTC)、及びモナコイン(MONA:登録商標)などがある。暗号通貨の用途には、例えば、価値の保存、商品の購入、及び契約内容の管理の手数料などがある。
上記のように、複数の種類の暗号通貨を用途に応じて使い分けるため、異なる暗号通貨を交換する取引が行われている。異なる暗号通貨を交換する取引には、ユーザと取引相手のユーザとの間の直接の取引である直接取引と、ユーザと取引相手のユーザとの間に取引所などの第三者を介する取引である仲介取引とがある。以下の説明では、取引相手のユーザのことを単に取引相手ともいう。
暗号通貨の直接取引について説明する。
例えば、ユーザは、自身が所有するビットコインと、取引相手が所有するライトコインとの交換取引を行うとき、ビットコインを取引相手に送金する。そして、取引相手は、ビットコインがユーザから届いたことを確認すると、ユーザにライトコインを送金する。
直接取引において、取引相手は、ユーザからビットコインが届いたことを確認したあと、ユーザにライトコインを送金しないでビットコインを持ち逃げすることが可能である。したがって、ユーザは、取引相手が信用できることを前提として、ビットコインを取引相手に送金しなければならない。
暗号通貨の仲介取引について説明する。
例えば、ユーザは、自身が所有するビットコインを取引所に預ける。また、取引相手は、自身が所有するライトコインを取引所に預ける。そして、取引所は、ユーザに取引相手が預けたライトコインを送金し、取引相手にユーザが預けたビットコインを送金する。
仲介取引において、ユーザと取引相手とは取引所に暗号通貨を預けているので、取引所の不正及び取引所のハッキングなどにより、暗号通貨が盗難される恐れがある。また、仲介取引では、取引所を利用するので、手数料が直接取引と比較して割高になることがある。したがって、ユーザは、取引所が信用できること及び手数料が割高になることを前提として、ビットコインを取引所に預けなければならない。
上記の問題を解決するために、信用のない個人間での取引においても暗号通貨を持ち逃げされることなく直接取引することができる、アトミックスワップ(Atomic Swap)という取引手法が用いられている。
関連する技術として、トランザクションに記された取引内容の信頼性を確保しつつ、1つのトランザクションで複合的な取引形態を扱うことを可能にする技術がある。関連する技術において、資産の移動元(保持元)a、bは、自己の管理するアドレスの秘密鍵による署名「a」、「b」を付することを条件に、複合的な取引に関する取引情報を一つのトランザクション(複合トランザクション)に記すことを許容する。そして、複合トランザクションをデータベースに記録する場合、なりすまし(取引主体となる当事者を含む)を防止すべく、資産の移動元の全署名「a」、「b」が正当であることを記録の条件の一つとする(例えば、特許文献1及び非特許文献1参照)。
国際公開第2017/170912号
bitcoin wiki、[2018年3月1日検索]、ネットワーク、<URL:https://en.bitcoin.it/wiki/Atomic_cross−chain_trading>
アトミックスワップでは、ブロッチェーンの承認時間以上の間隔を空けて、各ユーザはブロックチェーンのネットワークに2回ずつ取引情報を送信する。ハードウェアウォレットを用いる場合、秘密鍵の盗難を防止するために、ユーザは電子署名の生成処理以外のときに取引装置からハードウェアウォレットを取り外すことにより、ハードウェアウォレットをオフライン状態にする。このように、ハードウェアウォレットを用いたアトミックスワップでは、ハードウェアウォレットを取引装置に抜き差しするため、ユーザの作業が煩雑になる。
本発明は、一側面として、ハードウェアウォレットを用いたアトミックスワップにおいて、ユーザの作業を簡略にする技術を提供する。
本明細書で開示する取引装置のひとつに、生成部と、記憶部と、作成部と、送信部とを備える取引装置がある。生成部は、秘密情報を用いて算出された特定情報を含む第1取引情報が第1ネットワークに公開されたあと、特定情報を含む第2取引情報に含ませる第1電子署名の生成をする。また、生成部は、第1取引情報に含まれる情報を用いて、第4取引情報に含ませる第2電子署名の生成をする。記憶部は、第2電子署名を記憶する。作成部は、特定情報と第1電子署名とを含む第2取引情報の作成をする。また、作成部は、秘密情報を含む第3取引情報が第2ネットワークに公開されたあと、記憶部に記憶されている第2電子署名を用いて、秘密情報と第2電子署名とを含む第4取引情報の作成をする。送信部は、第1ネットワークに第4取引情報を送信する処理と、第2ネットワークに第2取引情報を送信する処理とをする。第1取引情報は、取引相手からユーザに第1データを引き渡しする取引に用いる情報である。第2取引情報は、ユーザから取引相手に第2データを引き渡しする取引に用いる情報である。第3取引情報は、取引相手がユーザから第2データを受け取る取引に用いる情報である。第4取引情報は、ユーザが取引相手から第1データを受け取る取引に用いる情報である。
1実施態様によれば、ハードウェアウォレットを用いたアトミックスワップにおいて、ユーザの作業を簡略にすることができる。
アトミックスワップに用いられるネットワーク構造の一例を示す図である。 暗号通貨の取引情報の一例を示す図である。 アトミックスワップの処理の一例を示す図である。 ハードウェアウォレットを用いたアトミックスワップの処理の一例を示すシーケンス図である。 実施形態のハードウェアウォレットを用いたアトミックスワップの処理の一例を示すシーケンス図である。 取引装置の一実施例を示す機能ブロック図である。 コンピュータ装置の一実施例を示すブロック図である。
実施形態の取引装置について説明する。
以下の説明では、取引装置がアトミックスワップを用いて、異なる種類の暗号通貨を交換する処理について説明する。なお、実施形態の取引装置が実行するアトミックスワップは、暗号通貨の交換に限らず、メッセージの送信及び契約内容の管理などで用いるデータの交換にも用いることができる。
図1は、アトミックスワップに用いられるネットワーク構造の一例を示す図である。
図1を参照して、アトミックスワップに用いられるネットワーク構造を説明する。
アトミックスワップに用いられるネットワークは、取引装置10と、取引装置20と、ネットワーク30と、ネットワーク40と、ネットワーク200とを含む。そして、取引装置10と、取引装置20と、ネットワーク30と、ネットワーク40とは、ネットワーク200を介して互いに通信可能に接続されている。
取引装置10及び取引装置20は、例えば、後述するコンピュータ装置である。以下の説明では、一例として、取引装置10を取引相手が操作する取引装置として説明する。また、取引装置20をユーザが操作する取引装置として説明する。
ネットワーク30及びネットワーク40は、P2Pネットワークなどの分散型ネットワークであり、ブロックチェーン上に取引情報を記録する。以下の説明では、一例として、ネットワーク30は、ビットコインのコンセンサスアルゴリズムであるプルーフオブワーク(PoW)を採用しているものとして説明する。また、ネットワーク40は、ライトコインのコンセンサスアルゴリズムであるプルーフオブワークを採用しているものとして説明する。
また、ネットワーク30内で発生した取引を記録するブロックチェーンのことをビットコインのブロックチェーンともいう。さらに、ネットワーク40内で発生した取引を記録するブロックチェーンのことをライトコインのブロックチェーンともいう。なお、ネットワーク30及びネットワーク40は、それぞれプルーフオブステーク(PoS)、プルーフオブインポータンス(PoI)、及びプルーフオブコンセンサス(PoC)などの他のコンセンサスアルゴリズムを採用してもよい。
ネットワーク30は、マイニングを実行する複数のノード装置301から30nが通信可能に接続されている。また、ネットワーク40は、マイニングを実行する複数のノード装置401から40nが通信可能に接続されている。以下の説明では、ノード装置301から30nを特に区別しないときは、ノード装置300ともいう。また、ノード装置401から40nを特に区別しないときは、ノード装置400ともいう。
プルーフオブワークにおいて、マイニングとは、ブロックに含まれるナンスを変化させながら、ブロックのデータにハッシュ関数を適用したとき、決められた数以上の0が並ぶハッシュ値が得られるナンス(以下、正しいナンスともいう。)を探す作業のことである。ブロックのデータには、ブロックに連結される前ブロックのデータのハッシュ値と、ナンスと、取引情報とを含む。
ノード装置は、ブロックを生成するとき、ブロックに含むトランザクションを検証する。そして、ノード装置は、正しいトランザクションを承認し、承認したトランザクションをブロックに含ませて、ナンスを探す作業を実行する。ノード装置は、正しいナンスを発見すると、正しいナンスを含むブロックを生成し、ノード装置が保持するブロックチェーンに新たに生成したブロックを連結する。また、ノード装置は、ブロックチェーンのネットワーク上に新たに生成したブロックを送信する。そして、新たに生成したブロックは、ネットワークに接続された他のノード装置が保持するブロックチェーンにも連結される。これにより、トランザクションは、ブロックチェーン上に記録される。以下の説明では、トランザクションを含んだブロックがブロックチェーンに連結されることを、トランザクションがブロックチェーンに記録されるともいう。
ネットワーク200は、ネットワーク30及びネットワーク40に限らず、さらに他のネットワークと接続されてもよい。また、ネットワーク200は、取引装置10及び取引装置20に加えて、さらに他の取引装置と接続されてもよい。
図2は、暗号通貨の取引情報の一例を示す図である。
図2(a)は、取引情報の構成を説明する図である。図2(b)は、取引情報を接続する処理を説明する図である。取引情報とは、暗号通貨の引き渡しと、受け取りとを実行し、暗号通貨の所有権を移転する処理に用いられるトランザクションのことである。
以下の説明では、トランザクションスクリプトとして、P2PKH(Pay to Public Key Hash)を用いるものとして説明する。なお、トランザクションスクリプトとして、P2PK(Pay to Public Key)を用いる場合には、UTXOをロックするScriptPubKeyは、UTXOの受領者である送信先のユーザの公開鍵を含む。また、P2PKにおいて、UTXOをアンロックするScriptSigは、UTXOの授与者であるトランザクションを作成する送信元のユーザの秘密鍵を用いて生成した電子署名を含む。
UTXOは、トランザクションのインプットとして使われていない、未使用のトランザクションのアウトプットのことである。UTXOは、暗号通貨の所有権であり、次のトランザクションのインプットとしてUTXOが使用される。したがって、暗号通貨の送金とは、送金者によりUTXOが使用され、着金者によってのみ使用可能なUTXOが作成されることである。トランザクションのインプットとは、暗号通貨の使用を処理する情報である。また、トランザクションのアウトプットとは、暗号通貨の使途を処理する情報である。UTXOとは、Unspent Transaction Outputの略である。
電子署名は、例えば、トランザクションのScriptSigを除くデータと、前トランザクションのScriptPubKeyとを用いて得られる電子署名用の値を、トランザクションを作成する送信元のユーザの秘密鍵で暗号化した値である。前トランザクションとは、送信元のユーザが送金時に作成するトランザクションのインプットと接続される、送信元のユーザへの送金情報が記述されたアウトプットを含むトランザクションのことである。電子署名用の値とは、例えば、トランザクションのScriptSigを除くデータと、前トランザクションのScriptPubKeyとを含むデータにハッシュ関数を適用して得られる値である。
図2(a)を参照してトランザクションの構成を説明する。
トランザクションは、暗号通貨の所有の移転をまとめた取引情報である。トランザクションは、インプット(input)と、アウトプット(output)とを含む。
インプットは、トランザクションを作成する送信元のユーザが所有する前トランザクションのUTXOをアンロックするための情報である。そして、インプットは、ScriptSigを含む。
ScriptSigは、送信元のユーザが所有するUTXOをアンロックするためのスクリプトである。ScriptSigは、送信元のユーザの電子署名と公開鍵とを含む。ScriptSigに含まれる電子署名及び公開鍵は、送信元のユーザの秘密鍵を用いて生成された値である。
アウトプットは、暗号通貨の所有権の移転を示す情報である。アウトプットは、送金額と、ScirptPubKeyとを含む。
ScriptPubKeyは、トランザクションのアウトプットをアンロックするための条件を定義したスクリプトである。ScriptPubKeyは、送信先のユーザの秘密鍵を用いて生成された公開鍵のハッシュ値(以下、公開鍵ハッシュともいう。)を含む。
図2(b)を参照してトランザクションを接続する処理を説明する。以下の説明では、一例として、接続対象の前トランザクションのアウトプット0が、新規トランザクションに接続される処理を説明する。また、各トランザクションは、ネットワーク30内で処理されるものとする。
前トランザクションのアウトプットは、送金額とScirptPubKey0とを含むアウトプット0(output0)と、送金額とScirptPubKey1とを含むアウトプット1(output1)と、を含む。アウトプット0とアウトプット1とは、それぞれIndex0とIndex1と関連付けられている。Index0とIndex1とは、それぞれアウトプット0とアウトプット1とを識別する識別子である。
前トランザクションのアウトプット0に、新規トランザクションのインプット0が接続される。前トランザクションのアウトプット1には、新規トランザクション及び他のトランザクションのインプットが接続されていないので、UTXOの状態である。
新規トランザクションのインプット0は、ScriptSigと、前トランザクションのトランザクションハッシュと、前トランザクションのアウトプットの識別子であるIndex0とを含む。
ScriptSig0は、前トランザクションのアウトプット0をアンロックする処理に用いられる電子署名と公開鍵とを含む。電子署名は、例えば、新規トランザクションのScriptSig0を除くデータと、前トランザクションのアプトプット0に含まれるScriptPubKey0とを用いて得られる電子署名用の値を、秘密鍵を用いて暗号化することにより生成される。このとき、秘密鍵には、新規トランザクションを作成するユーザの秘密鍵が用いられる。
トランザクションハッシュは、前トランザクション全体のハッシュ値である。そして、トランザクションハッシュは、前トランザクションを識別するためのトランザクションIDとして用いられる。Index0は、前トランザクションにおける接続先のアウトプット0を識別する識別子である。
上記の前トランザクションに含まれるアウトプット0と、新規トランザクションに含まれるインプット0とが接続される処理を説明する。以下の説明では、前トランザクションがビットコインのブロックチェーンに記録された状態であるものとする。
取引装置10は、新規トランザクションを作成し、ネットワーク30に送信することにより、各ノード装置300が備える未検証のトランザクションを格納するトランザクションプールに新規トランザクションを格納する。ノード装置300は、新規トランザクションを検証の対象として選択すると、新規トランザクションのトランザクションIDとIndex0とを参照し、ブロックチェーン上のトランザクションを検索する。ノード装置300は、トランザクションIDに対応する前トランザクションを発見し、さらに、Index0に対応するアウトプット0を発見する。
そして、ノード装置300は、インプット0に含まれるScriptSig0と、アウトプット0に含まれるScriptPubKey0とを連結する。これにより、ノード装置300は、ScriptSig0に含まれる公開鍵のハッシュ値と、ScriptPubKey0に含まれる公開鍵ハッシュとの一致を検証する第1検証を実行する。さらに、ノード装置300は、ScriptSig0に含まれる電子署名と公開鍵とを用いて電子署名を検証する第2検証を実行する。ノード装置300は、第1検証と第2検証とが承認されると、前トランザクションのアウトプット0と新規トランザクションのインプット0とを接続する。
そして、ノード装置300は、承認した新規トランザクションをブロックに含ませて、ナンスを探す作業を実行する。ノード装置300は、正しいナンスを発見すると、正しいナンスが含まれるブロックを生成し、ノード装置300が保持するブロックチェーンに新たに生成したブロックを連結する。また、ノード装置300は、ブロックチェーンのネットワーク上に新たに生成したブロックを送信する。これにより、新たに生成したブロックは、ネットワークに接続された他のノード装置が保持するブロックチェーンにも連結され、新規トランザクションがブロックチェーンに記録される。
図3は、アトミックスワップの処理の一例を示す図である。
図3を参照して、アトミックスワップの処理を説明する。
以下の説明では、一例として、取引相手が所有するビットコインと、ユーザが所有するライトコインとを交換する処理について説明する。取引装置10が秘密値Rを生成する処理を説明するが、取引装置20が秘密値Rを生成してもよい。すなわち、以下で説明する取引装置10の実行する処理を取引装置20が実行し、取引装置20が実行する処理を取引装置10が実行してもよい。また、説明の簡単化のため、各トランザクションのアウトプットには、1つのアウトプットが含まれるものとし、アウトプットをIndexに応じて参照する処理の説明を省略する。なお、交換する暗号通貨の数量(交換数量)は、アトミックスワップの処理の前にユーザと取引相手との間で為替レートなどに基づいて決定してもよい。また、ユーザと取引相手とは、アトミックスワップの処理の前にそれぞれお互いのアドレス及び公開鍵を交換してもよい。ユーザと取引相手とは、暗号通貨の交換数量の決定、並びにアドレス及び公開鍵の交換を、メール及び記録媒体の提供などの任意の通信手段により行ってもよい。
ステップ(1)において、取引相手の取引装置10は、秘密値Rをランダムに生成する。また、取引装置10は、秘密値Rにハッシュ関数を適用し、ハッシュ値Hを生成する。取引装置10が秘密値Rをハッシュ化するときに用いられるハッシュ関数は、例えば、SHA−2、MD5、及びSHA−1などの一方向ハッシュ関数である。
さらに、取引装置10は、ビットコインをユーザに送金するためのトランザクションTx1を作成する。そして、取引装置10は、作成したトランザクションTx1をネットワーク30に送信する。これにより、トランザクションTx1は、ネットワーク30に公開される。
トランザクションTx1のインプットは、取引相手の電子署名及び取引相手の公開鍵を含むScriptSigと、アンロックするUTXOを含む前トランザクションのトランザクションIDとを含む。トランザクションTx1のScriptSigによってアンロックするUTXOは、取引相手が所有するUTXOである。取引相手の電子署名及び取引相手の公開鍵は、取引相手が所有する秘密鍵を用いて生成される。
トランザクションTx1のアウトプットは、ハッシュ値H及びユーザの公開鍵ハッシュを含むScriptPubKeyを含む。ユーザの公開鍵ハッシュは、ユーザの公開鍵を用いて生成される。ユーザの公開鍵ハッシュとは、ユーザの公開鍵にハッシュ関数を適用して得られるハッシュ値のことである。
ステップ(2)において、ユーザの取引装置20は、ライトコインを取引相手に送金するためのトランザクションTx2を作成する。そして、取引装置20は、作成したトランザクションTx2をネットワーク40に送信する。これにより、トランザクションTx2は、ネットワーク40に公開される。
トランザクションTx2のインプットは、ユーザの電子署名及びユーザの公開鍵を含むScriptSigと、アンロックするUTXOを含む前トランザクションのトランザクションIDとを含む。トランザクションTx2のScriptSigによってアンロックするUTXOは、ユーザが所有するUTXOである。ユーザの電子署名及びユーザの公開鍵は、ユーザが所有する秘密鍵を用いて生成される。
トランザクションTx2のアウトプットは、ハッシュ値H及び取引相手の公開鍵ハッシュを含むScriptPubKeyを含む。取引相手の公開鍵ハッシュは、取引相手の公開鍵を用いて生成される。取引相手の公開鍵ハッシュとは、取引相手の公開鍵にハッシュ関数を適用して得られるハッシュ値のことである。ハッシュ値Hは、トランザクションTx1がネットワーク30に公開されると、取引装置20によりトランザクションTx1から取得され、トランザクションTx2のアウトプットに記述される。
ステップ(3)において、取引装置10は、ライトコインを取引装置20から受け取るためのトランザクションTx3を作成する。そして、取引装置10は、作成したトランザクションTx3をネットワーク40に送信する。これにより、トランザクションTx3は、ネットワーク40に公開される。
トランザクションTx3のインプットは、秘密値R、取引相手の公開鍵、及び取引相手の電子署名を含むScriptSigと、アンロックするUTXOを含むトランザクションTx2を識別するトランザクションIDとを含む。
トランザクションTx3のアウトプットは、取引相手の公開鍵ハッシュを含むScriptPubKeyを含む。
ユーザが送金したライトコインの所有を取引相手に移転する処理について、一例として、トランザクションTx3を用いてトランザクションTx2のUTXOをアンロックし、アンロックしたUTXOを取引相手のアドレスにロックする処理を説明する。取引相手のアドレスとは、例えば、取引相手の公開鍵ハッシュを変換した値である。
ノード装置400は、トランザクションTx3がネットワーク40に送信されると、トランザクションTx3に含まれるトランザクションIDに対応するトランザクションTx2のUTXO(アウトプット)を参照する。また、ノード装置400は、トランザクションTx3のScriptSigに含まれる秘密鍵Rにハッシュ関数を適用して、ハッシュ値を求める。そして、ノード装置400は、求めたハッシュ値と、トランザクションTx2のScriptPubKeyに含まれるハッシュ値Hとが一致するか否かの第1検証を実行する。ノード装置400が秘密値Rのハッシュ値を求めるときに用いるハッシュ関数は、取引装置10が秘密値Rをハッシュ化するときに用いるハッシュ関数と同じハッシュ関数である。
また、ノード装置400は、トランザクションTx3のScriptSigに含まれる取引相手の公開鍵にハッシュ関数を適用して得られるハッシュ値を求める。そして、ノード装置400は、求めたハッシュ値と、トランザクションTx2のScriptPubKeyに含まれる取引相手の公開鍵ハッシュとが一致するか否かの第2検証を実行する。さらに、ノード装置400は、トランザクションTx3のScriptSigに含まれる取引相手の電子署名と公開鍵とを用いて電子署名の検証をする第3検証を実行する。
ノード装置400は、上記の第1検証、第2検証及び第3検証が成功すると、トランザクションTx2のUTXOを取引相手のアドレスにロックする。すなわち、ノード装置400は、取引相手がライトコインを受け取ったことを示すアウトプットを作成し、作成したアウトプットをトランザクションTx3に含まれる、取引相手が所有するUTXOとしてロックする。これにより、ライトコインの所有は、ユーザから取引相手に移転する。
トランザクションTx1のScriptPubKeyには、所定の時間経過後にトランザクションTx1のアウトプットがUTXOのままであった場合、取引相手の公開鍵を用いて、取引相手にビットコインを戻す処理を実行するスクリプトを含む。これにより、取引装置10は、取引が成立しないとき、所定の時間経過後に取引相手のアドレスにビットコインを戻すことができる。以下の説明では、暗号通貨が戻される処理を実行するスクリプトをタイムロックともいう。
ステップ(4)において、取引装置20は、取引相手によってネットワーク40に公開されたトランザクションTx3に含まれる秘密値Rを取得し、ビットコインを取引装置10から受け取るためのトランザクションTx4を作成する。そして、取引装置20は、作成したトランザクションTx4をネットワーク30に送信する。これにより、トランザクションTx4は、ネットワーク30に公開される。
トランザクションTx4のインプットは、秘密値R、ユーザの公開鍵、及びユーザの電子署名を含むScriptSigと、アンロックするUTXOを含むトランザクションTx1を識別するトランザクションIDとを含む。
トランザクションTx4のアウトプットは、ユーザの公開鍵ハッシュを含むScriptPubKeyを含む。
取引相手が送金したビットコインの所有をユーザに移転する処理について、一例として、トランザクションTx4を用いてトランザクションTx1のUTXOをアンロックし、アンロックしたUTXOをユーザのアドレスにロックする処理を説明する。ユーザのアドレスとは、例えば、ユーザの公開鍵ハッシュを変換した値である。
ノード装置300は、トランザクションTx4がネットワーク30に送信されると、トランザクションTx4に含まれるトランザクションIDに対応するトランザクションTx1のUTXO(アウトプット)を参照する。また、ノード装置300は、トランザクションTx4のScriptSigに含まれる秘密鍵Rにハッシュ関数を適用して、ハッシュ値を求める。そして、ノード装置300は、求めたハッシュ値と、トランザクションTx1のScriptPubKeyに含まれるハッシュ値Hとが一致するか否かの第4検証を実行する。ノード装置300が秘密値Rのハッシュ値を求めるときに用いるハッシュ関数は、取引装置10が秘密値Rをハッシュ化するときに用いるハッシュ関数と同じハッシュ関数である。
また、ノード装置300は、トランザクションTx4のScriptSigに含まれるユーザの公開鍵にハッシュ関数を適用して得られるハッシュ値を求める。そして、ノード装置300は、求めたハッシュ値と、トランザクションTx1のScriptPubKeyに含まれるユーザの公開鍵ハッシュとが一致するか否かの第5検証を実行する。さらに、ノード装置300は、トランザクションTx4のScriptSigに含まれるユーザの電子署名と公開鍵とを用いて電子署名の検証をする第6検証を実行する。
ノード装置300は、上記の第4検証、第5検証及び第6検証が成功すると、トランザクションTx1のUTXOをユーザのアドレスにロックする。すなわち、ノード装置300は、ユーザがビットコインを受け取ったことを示すアウトプットを作成し、作成したアウトプットをトランザクションTx4に含まれる、ユーザが所有するUTXOとしてロックする。これにより、ビットコインの所有は、取引相手からユーザに移転する。
トランザクションTx2のScriptPubKeyには、所定の時間経過後にトランザクションTx2のアウトプットがUTXOのままであった場合、ユーザの公開鍵を用いて、ユーザにライトコインを戻す処理を実行するスクリプトを含む。これにより、取引装置20は、取引が成立しないとき、所定の時間経過後にユーザのアドレスにライトコインを戻すことができる。
図4は、ハードウェアウォレットを用いたアトミックスワップの処理の一例を示す図(その1)である。
図4を参照して、ハードウェアウォレットを用いたアトミックスワップについて説明する。図3を参照して説明した処理については、説明を省略する。以下の説明では、ハードウェアウォレットAは、取引相手の秘密鍵aを格納しているものとして説明する。また、ハードウェアウォレットBは、ユーザの秘密鍵bを格納しているものとして説明する。なお、以下で説明する取引装置10の実行する処理を取引装置20が実行し、取引装置20が実行する処理を取引装置10が実行してもよい。
取引装置10は、ハードウェアウォレットAが取引相手により接続されると、取引相手の電子署名A1を生成する。そして、取引相手は、秘密鍵aを用いて電子署名A1が生成されると、ハードウェアウォレットAを取引装置10から取り外す(S1)。ハードウェアウォレットAは、例えば、取引装置10から電子署名用の値が入力されると、記憶している秘密鍵aを用いて電子署名A1を生成する署名生成回路を含んでもよい。
取引装置10は、ビットコインをユーザに送金するためのトランザクションTx1を作成する。そして、取引装置10は、ネットワーク30にトランザクションTx1を送信する(S2)。これにより、トランザクションTx1は、ネットワーク30に公開される。
トランザクションTx1のインプットは、電子署名A1及び取引相手の公開鍵を含むScriptSigA1(SSigA1)と、ScriptSigA1を用いてアンロックされるUTXOを含む前トランザクションのトランザクションIDとを含む。また、トランザクションTx1のアウトプットは、取引装置10がランダムに生成した秘密値Rのハッシュ値H及びユーザの公開鍵ハッシュを含むScriptPubKeyB1(SPubKeyB1)を含む。したがって、S2において、トランザクションTx1がネットワーク30に送信されることにより、ハッシュ値Hはネットワーク30に公開される。
取引装置20は、ハードウェアウォレットBがユーザにより接続されると、ユーザの電子署名B1を生成する。そして、ユーザは、秘密鍵bを用いて電子署名B1が生成されると、ハードウェアウォレットBを取引装置20から取り外す(S3)。ハードウェアウォレットBは、例えば、取引装置20から電子署名用の値が入力されると、記憶している秘密鍵bを用いて電子署名B1を生成する署名生成回路を含んでもよい。S3において、例えば、ユーザは、トランザクションTx1がビットコインのブロックチェーンに記録されて送金完了とみなされてから、ハードウェアウォレットBを取引装置20に接続する。
取引装置20は、ライトコインを取引相手に送金するためのトランザクションTx2を作成する。そして、取引装置20は、ネットワーク40にトランザクションTx2を送信する(S4)。これにより、トランザクションTx2は、ネットワーク40に公開される。
トランザクションTx2のインプットは、電子署名B1及びユーザの公開鍵を含むScriptSig(SSigB1)と、ScriptSigB1を用いてアンロックされるUTXOを含む前トランザクションのトランザクションIDとを含む。また、トランザクションTx2のアウトプットは、S2においてネットワーク30に公開されたハッシュ値H及び取引相手の公開鍵ハッシュを含むScriptPubKeyA1(SPubKeyA1)を含む。
トランザクションTx1及びトランザクションTx2が承認され、それぞれが対応するブロックチェーンのブロックに記録されたあと、取引相手により取引装置10にハードウェアウォレットAが接続される。取引装置10は、ハードウェアウォレットAが取引相手により接続されると、トランザクションTx2に含まれる情報を用いて生成した電子署名用の値と、ハードウェアウォレットAに格納されている秘密鍵aとを用いて、取引相手の電子署名A2を生成する。そして、取引相手は、ハードウェアウォレットAを取引装置10から取り外す(S5)。S5において、例えば、取引相手は、トランザクションTx2がライトコインのブロックチェーンに記録されて送金完了とみなされてから、ハードウェアウォレットAを取引装置10に接続する。
取引装置10は、ライトコインを取引装置20から受け取るためのトランザクションTx3を作成する。そして、取引装置10は、ネットワーク40にトランザクションTx3を送信する(S6)。これにより、トランザクションTx3は、ネットワーク40に公開される。
トランザクションTx3のインプットは、秘密値R、取引相手の公開鍵、及び電子署名A2を含むScriptSigA2(SSigA2)と、トランザクションTx2を識別するトランザクションIDとを含む。トランザクションTx3のアウトプットは、取引相手の公開鍵ハッシュを含むScriptPubKeyA2(SPubKeyA2)を含む。したがって、S6において、トランザクションTx3がネットワーク40に送信されることにより、秘密値Rはネットワーク40に公開される。
そして、ノード装置400がトランザクションTx3のインプットと、トランザクションTx2のアウトプットとを接続し、承認する。これにより、トランザクションTx3がライトコインのブロックチェーンに記録され、ユーザから取引相手にライトコインを送金する処理が完了する。
なお、トランザクションTx2に含まれるタイムロックの指定時間は、トランザクションTx3がライトコインのブロックチェーンに記録されるよりも十分に長く設定される。すなわち、S5とS6との処理が、タイムロックを用いた返金処理よりも優先的に実行できるように設定されている。これにより、取引相手からビットコインを受け取ったユーザが、取引相手がライトコインを受け取るよりも先に自身のアドレスにライトコインを戻す処理をできなくすることで、取引の安全を確保している。
取引装置20は、トランザクションTx3がネットワーク40に公開され、ハードウェアウォレットBがユーザにより接続されると、ユーザの電子署名B2を生成する。そして、ユーザは、ハードウェアウォレットBを取引装置20から取り外す(S7)。
取引装置20は、ビットコインを取引装置10から受け取るためのトランザクションTx4を作成する。そして、取引装置20は、ネットワーク30にトランザクションTx4を送信する(S8)。
トランザクションTx4のインプットは、S6においてネットワーク40に公開された秘密値R、ユーザの公開鍵、及び電子署名B2を含むScriptSigB2(SSigB2)と、トランザクションTx1を識別するトランザクションIDとを含む。トランザクションTx4のアウトプットは、ユーザの公開鍵ハッシュを含むScriptPubKeyB2(SPubKeyB2)を含む。そして、ノード装置300がトランザクションTx4のインプットと、トランザクションTx1のアウトプットとを接続し、承認する。これにより、トランザクションTx4がビットコインのブロックチェーンに記録され、取引相手からユーザにビットコインを送金する処理が完了する。
なお、トランザクションTx1に含まれるタイムロックの指定時間は、トランザクションTx4がビットコインのブロックチェーンに記録されるよりも十分に長く設定される。すなわち、S7とS8との処理が、タイムロックを用いた返金処理よりも優先的に実行できるように設定されている。これにより、ユーザからライトコインを受け取った取引相手が、ユーザがビットコインを受け取るよりも先に自身のアドレスにビットコインを戻す処理をできなくすることで、取引の安全を確保している。
アトミックスワップの処理では、上記のように、トランザクションTx1及びトランザクションTx2がブロックチェーンに記録されたあとに、トランザクションTx3及びトランザクションTx4の生成を実行する。
ビットコインのブロックチェーンは、1つのブロックを承認し、ブロックチェーンに連結するのに約10分の時間を要する。そして、トランザクションTx1を含むブロックがブロックチェーンに記録されてから、トランザクションTx1を含むブロックの後ろに複数のブロックが連結されると送金完了とみなされる。複数のブロックの数は、新たに連結したブロックの改ざんができなくなると考えられる、十分に安全な数として決められる。
したがって、例えば、複数のブロックの数が5つである場合、トランザクションTx1を作成したあと、トランザクションTx1がブロックに記録されて、トランザクションTx3を作成するまでに、少なくとも約60分以上の時間がかかることになる。すると、取引相手は、アトミックスワップの処理をするとき、できる限りハードウェアウォレットAをオフライン状態にしておくために、少なくとも約60分以上の時間をおいて、ハードウェアウォレットAを取引装置10に抜き差しする作業をしなければならない。なお、トランザクションTx1の送金手数料が低く設定されていると、ノード装置300によるトランザクションの承認の優先順位も低くなるので、結果として時間間隔が60分よりもさらに長くかかることもある。
また、ライトコインのブロックチェーンは、1つのブロックを承認し、ブロックチェーンに連結するのに約2.5分の時間を要する。そして、トランザクションTx2を含むブロックがブロックチェーンに記録されてから、トランザクションTx2を含むブロックの後ろに複数のブロックが連結されると送金完了とみなされる。複数のブロックの数は、新たに連結したブロックの改ざんができなくなると考えられる、十分に安全な数として決められる。
したがって、例えば、複数のブロックの数が5つである場合、トランザクションTx2を作成したあと、トランザクションTx2がブロックに記録されて、トランザクションTx4を作成するまでに、少なくとも約12.5分以上の時間がかかることになる。すると、ユーザは、アトミックスワップの処理をするとき、できる限りハードウェアウォレットBをオフライン状態にしておくために、少なくとも約12.5分以上の時間をおいて、ハードウェアウォレットBを抜き差しする作業をしなければならない。なお、トランザクションTx2の送金手数料が低く設定されていると、ノード装置400によるトランザクションの承認の優先順位も低くなるので、結果として時間間隔が12.5分よりもさらに長くかかることもある。
以上のように、ハードウェアウォレットを用いたアトミックスワップでは、安全性を確保するために、電子署名の生成処理を実行するタイミング以外において、ハードウェアウォレットを取引装置から取り外しておき、オフライン状態にしておく作業が発生する。したがって、ハードウェアウォレットを用いたアトミックスワップでは、安全性を確保するために、ハードウェアウォレットを取引装置に抜き差ししなければならないので、ユーザの作業が煩雑になる。
図5は、実施形態のハードウェアウォレットを用いたアトミックスワップの処理の一例を示すシーケンス図である。
図5を参照して、ハードウェアウォレットを用いたアトミックスワップの処理の一例を説明する。
アトミックスワップに用いられるネットワークは、図1に示すように、取引装置70と、取引装置80と、ネットワーク30と、ネットワーク40と、ネットワーク200とを含む。そして、取引装置70と、取引装置80と、ネットワーク30と、ネットワーク40とは、ネットワーク200を介して互いに通信可能に接続されている。
図3及び図4を参照して説明した処理については、説明を省略する。以下の説明では、図5に記載の実施形態の電子署名に含まれるデータ及びトランザクションの記述と、図4を用いて説明した電子署名に含まれるデータ及びトランザクションの記述とは、同じ内容であるので同じ符号を付し説明を省略する。なお、以下で説明する取引装置70の実行する処理を取引装置80が実行し、取引装置80が実行する処理を取引装置70が実行してもよい。
取引装置70及び取引装置80は、例えば、後述するコンピュータ装置である。以下の説明では、一例として、取引装置70を取引相手が操作する取引装置として説明する。また、取引装置80をユーザが操作する取引装置として説明する。
取引装置70は、ハードウェアウォレットAが取引相手により接続されると、取引相手の秘密鍵aを用いて電子署名A1を生成する。そして、取引相手は、秘密鍵aを用いて電子署名A1が生成されると、ハードウェアウォレットAを取引装置70から取り外す(S11)。また、取引装置70は、秘密値Rをランダムに生成する。さらに、取引装置70は、秘密値Rにハッシュ関数を適用し、ハッシュ値Hを生成する。取引装置70が秘密値Rをハッシュ化するときに用いられるハッシュ関数は、例えば、SHA−2、MD5、及びSHA−1などの一方向ハッシュ関数である。
そして、取引装置70は、ビットコインをユーザに送金するためのトランザクションTx1を作成する。そして、取引装置70は、ネットワーク30にトランザクションTx1を送信する(S12)。これにより、トランザクションTx1は、ネットワーク30に公開される。したがって、トランザクションTx1のScriptPubKeyB1(SPubKeyB1)に含まれるハッシュ値Hもネットワーク30に公開されることになる。
取引装置80は、トランザクションTx1がネットワーク30に公開されたあと、ハードウェアウォレットBがユーザにより接続されると、ユーザの秘密鍵bを用いて電子署名B1を生成する(S13)。さらに、取引装置80は、ユーザの電子署名B2を生成する。そして、ユーザは、秘密鍵bを用いて電子署名B1及び電子署名B2が生成されると、ハードウェアウォレットBを取引装置80から取り外す(S14)。
取引装置80は、例えば、下記の方法でトランザクションTx1がネットワーク30に公開されたか否かを監視し、トランザクションTx1がネットワーク30に公開されたと判定すると、S13及びS14の処理を実行する。
取引装置80は、例えば、取引相手のアドレスを用いて、取引装置70から送信されたトランザクションを監視することにより、トランザクションTx1がネットワーク30に公開されたか否かを判定してもよい。また、取引装置80は、取引装置70からトランザクションTx1のトランザクションIDを受け取り、ビットコインのブロックチェーンを監視することにより、トランザクションTx1がネットワーク30に公開されたことを判定してもよい。
そして、取引装置80は、トランザクションTx1がネットワーク30に公開されたとき、取引装置80の音声、表示、及び振動などの機能の少なくとも一つを利用してユーザに通知してもよい。また、取引装置80は、トランザクションTx1がネットワーク30に公開されたとき、ユーザが携帯する携帯端末に情報を出力することにより、携帯端末の音声、表示、または振動などの機能を利用してユーザに通知してもよい。図5を用いた説明においては、取引装置80による通知のタイミングは、トランザクションTx1がネットワーク30に公開されたときであるものとして説明する。これに限らず、取引装置80による通知のタイミングは、トランザクションTx1がネットワーク30に公開されたあと、であれば他のタイミングであってもよい。
取引装置80は、S12において公開されたトランザクションTx1のScriptPubKeyB1に含まれるハッシュ値Hを用いて、ライトコインを取引装置70に送金するためのトランザクションTx2を作成する。そして、取引装置80は、トランザクションTx1がビットコインのブロックチェーンに記録されたあと、ネットワーク40にトランザクションTx2を送信する(S15)。これにより、トランザクションTx2は、ネットワーク40に公開される。
取引装置80は、S12において公開されたトランザクションTx1に含まれる情報を用いて、ビットコインを取引装置70から受け取るための仮のトランザクションTx4を作成する。そして、取引装置80は、仮のトランザクションTx4を記憶する(S16)。仮のトランザクションTx4とは、トランザクションTx4から秘密値Rを除いた情報である。すなわち、仮のトランザクションTx4は、秘密値Rがネットワーク40に公開される前に得られる情報を用いて作成された、秘密値Rを含まないトランザクションTx4である。なお、S13のあとにS15、S14のあとにS16、という処理の順番を守る限り、S13からS16の処理は順不同に実行されてもよい。
取引装置70は、トランザクションTx2がネットワーク40に公開されたあと、ハードウェアウォレットAが取引相手により接続されると、トランザクションTx2に記述された情報を用いて電子署名用の値を生成する。そして、取引装置70は、電子署名用の値と、ハードウェアウォレットAに格納されている秘密鍵aとを用いて、ユーザの電子署名A2を生成する。そして、取引相手は、秘密鍵aを用いて電子署名A2が生成されると、ハードウェアウォレットAを取引装置70から取り外す(S17)。
取引装置70は、例えば、下記の方法でトランザクションTx2がネットワーク40に公開されたか否かを監視し、トランザクションTx2がネットワーク40に公開されたと判定すると、S17の処理を実行する。
取引装置70は、例えば、ユーザのアドレスを用いて、取引装置80から送信されたトランザクションを監視することにより、トランザクションTx2がネットワーク40に公開されたか否かを判定してもよい。また、取引装置70は、取引装置80からトランザクションTx2のトランザクションIDを受け取り、ライトコインのブロックチェーンを監視することにより、トランザクションTx2がネットワーク40に公開されたことを判定してもよい。
そして、取引装置70は、トランザクションTx2がネットワーク40に公開されると、取引装置70の音声、表示、及び振動などの機能の少なくとも一つを利用して取引相手に通知してもよい。また、取引装置70は、トランザクションTx2がネットワーク40に公開されると、取引相手が携帯する携帯端末に情報を出力することにより、携帯端末の音声、表示、または振動などの機能を利用して取引相手に通知してもよい。図5を用いた説明においては、取引装置70による通知のタイミングは、トランザクションTx2がネットワーク40に公開されたときであるものとして説明する。これに限らず、取引装置70による通知のタイミングは、トランザクションTx2がネットワーク40に公開されたあと、であれば他のタイミングであってもよい。
取引装置70は、電子署名A2を生成すると、ライトコインを取引装置80から受け取るための電子署名A2を含むトランザクションTx3を作成する。そして、取引装置70は、トランザクションTx2がライトコインのブロックチェーンに記録されたあと、ネットワーク40にトランザクションTx3を送信する(S18)。これにより、トランザクションTx3は、ネットワーク40に公開される。したがって、トランザクションTx3のScriptSigA2(SSigA2)に含まれる秘密値Rもネットワーク40に公開されることになる。そして、トランザクションTx3は、ノード装置400により承認されることにより、ライトコインのブロックチェーンに記録される。なお、S14のあとにS16、S15のあとにS17、S17のあとにS18、という処理の順番を守る限り、S14、S16、S17、S18の処理は順不同に実行されてもよい。
取引装置80は、S18において公開されたトランザクションTx3のScriptSigA2に含まれる秘密値Rと、記憶している仮のトランザクションTx4とを用いて、ビットコインを取引装置70から受け取るためのトランザクションTx4を作成する。そして、取引装置80は、ネットワーク30にトランザクションTx4を送信する(S19)。これにより、トランザクションTx4は、ネットワーク30に公開される。そして、トランザクションTx4は、ノード装置300により承認されることにより、ビットコインのブロックチェーンに記録される。
上記の説明では、取引装置80は、S16において、仮のトランザクションTx4を作成したが、S14において、電子署名B2を記憶することにより、S16の処理を省略してもよい。この場合には、取引装置80は、S14において生成した電子署名B2を記憶し、S19において、ネットワーク40に公開されたトランザクションTx3のScriptSigA2に含まれる秘密値Rと、記憶している電子署名B2とを用いてトランザクションTx4を作成する。
なお、ノード装置が、トランザクションから秘密値R及びハッシュ値Hの値を取得し、秘密値Rにハッシュ関数を適用したハッシュ値と、ハッシュ値Hとが一致するか否かの検証を、上記した第4検証に代えて実行する場合、下記の構成を採用してもよい。上記の説明では、ハッシュ値HをScriptPubKeyA1及びScriptPubKeyB1に含むものとして説明したが、ハッシュ値Hは、数値としてトランザクションTx1及びトランザクションTx2に含まれてもよい。また、秘密値RをScriptSigA2及びScriptSigB2に含むものとして説明したが、秘密値Rは、数値としてトランザクションTx3及びトランザクションTx4に含まれてもよい。
図6は、取引装置の一実施例を示す機能ブロック図である。
図6は、取引装置70及び取引装置80が有する機能を示すブロック図である。
図6を参照して、取引装置80の機能について説明する。なお、取引装置70は、取引装置80の機能の少なくとも1つ以上の機能を有してもよい。以下の説明では、図5で説明した構成に関しては、同じ符号を付し、説明を省略する。また、ビットコインを引き渡しする処理と、受け取る処理とは、ビットコインの所有権を移転する処理のことである。また、ライトコインを引き渡しする処理と、受け取る処理とは、ライトコインの所有権を移転する処理のことである。ビットコインは、第1データの一例である。ライトコインは、第2データの一例である。
取引装置80は、制御部60と、接続部91と、記憶部92と、表示部93とを含む。制御部60は、生成部61と、作成部62と、送信部63と、通知部64と、受付部65と、を含む。接続部91は、電子署名B1と電子署名B2とを生成するときに用いられる秘密鍵bを格納するハードウェアウォレットB(記憶装置)と着脱可能に接続される。記憶部92は、各種情報を記憶する。表示部93は、各種情報を表示する。
記憶部92は、生成部61により生成される電子署名B2、並びに作成部62により作成される仮のトランザクションTx4の少なくとも一方を記憶する。また、記憶部92は、作成部62により作成されるトランザクションTx2を記憶してもよい。さらに、記憶部92は、電子署名B1を記憶してもよい。トランザクションTx2は、ユーザから取引相手にライトコインを引き渡しする取引に用いる情報である。トランザクションTx2は、第2取引情報の一例である。トランザクションTx4は、ユーザが取引相手からビットコインを受け取る取引に用いる情報である。トランザクションTx4は、第4取引情報の一例である。
生成部61は、秘密値Rを用いて算出されたハッシュ値Hを含むトランザクションTx1がネットワーク30に公開されたあと、ハッシュ値Hを含むトランザクションTx2に含ませる電子署名B1を生成する。すなわち、生成部61は、トランザクションTx1に含まれるハッシュ値Hを用いて、ハッシュ値を含むトランザクションTx2を生成する。このとき、生成部61は、ユーザにより接続部91に接続されるハードウェアウォレットBに格納されている秘密鍵bを用いて、電子署名B1を生成する。秘密値Rは、秘密情報の一例である。ハッシュ値Hは、特定情報の一例である。トランザクションTx1は、取引相手からユーザにビットコインを引き渡しする取引に用いる情報である。トランザクションTx1は、第1取引情報の一例である。電子署名B1は、第1電子署名の一例である。ネットワーク30は、第1ネットワークの一例である。
また、生成部61は、トランザクションTx1がネットワーク30に公開されたあと、トランザクションTx1に含まれる情報を用いて、トランザクションTx4に含ませる電子署名B2を生成する。このとき、生成部61は、ユーザにより接続部91に接続されるハードウェアウォレットBに格納されている秘密鍵bを用いて、電子署名B2を生成する。そして、生成部61は、生成した電子署名B2を記憶部92に記憶させてもよい。電子署名B2は、第2電子署名の一例である。トランザクションTx1に含まれる情報とは、例えば、トランザクションTx4のScriptSigB2と接続される、トランザクションTx1のScriptPubKeyB1である。
作成部62は、ハッシュ値と電子署名B1とを含むトランザクションTx2を作成する。そして、作成部62は、作成したトランザクションTx2を記憶部92に記憶させてもよい。作成部62は、記憶部92に電子署名B2が記憶されているとき、秘密値Rを含むトランザクションTx3がネットワーク40に公開されたあと、記憶部92に記憶されている電子署名B2を用いて秘密値Rと電子署名B2とを含むトランザクションTx4を作成する。なお、作成部62は、トランザクションTx4を作成したあと、安全性を確保するために、記憶部92から電子署名B2を消去してもよい。トランザクションTx3は、取引相手がユーザからライトコインを受け取る取引に用いるトランザクションである。トランザクションTx3は、第3取引情報の一例である。ネットワーク40は、第2ネットワークの一例である。
作成部62は、仮のトランザクションTx4を作成して記憶部92に記憶させてもよい。すなわち、作成部62は、電子署名B2を仮のトランザクションTx4に含ませた状態で記憶部92に記憶させる。作成部62は、記憶部92に仮のトランザクションTx4が記憶されているとき、秘密値Rを含む第3トランザクションがネットワーク40に公開されたあと、記憶部92に記憶されている仮のトランザクションTx4を用いて、トランザクションTx4を作成する。なお、作成部62は、トランザクションTx4を作成したあと、安全性を確保するために、記憶部92から電子署名B2を消去してもよい。また、作成部62は、記憶部92に電子署名B2及び仮のトランザクションTx4が記憶されているとき、電子署名B2及び仮のトランザクションTx4のいずれか一方を用いてトランザクションTx4を作成してもよい。
作成部62は、記憶部92に電子署名B1が記憶されているとき、トランザクションTx1がネットワーク30に公開されたあと、記憶部92に記憶されている電子署名B1を用いて、ハッシュ値Hと電子署名B1とを含むトランザクションTx2を作成してもよい。この場合には、作成部62は、ビットコインのブロックチェーンにトランザクションTx1が記録されたあと、記憶部92に記憶されている電子署名B1を用いて、ハッシュ値と電子署名B1とを含むトランザクションTx2を作成してもよい。
送信部63は、ネットワーク30にトランザクションTx4を送信する。また、送信部63は、ネットワーク40にトランザクションTx2を送信する。すなわち、送信部63は、ビットコインの取引が実行されるネットワーク30に、トランザクションTx4を送信する。さらに、送信部63は、ライトコインの取引が実行されるネットワーク40に、トランザクションTx2を送信する。
送信部63は、記憶部92にトランザクションTx2が記憶されているとき、ビットコインのブロックチェーンにトランザクションTx1が記録されたか否かを判定する。そして、送信部63は、ビットコインのブロックチェーンにトランザクションTx1が記録されたあと、記憶部92に記憶されているトランザクションTx2をネットワーク40に送信する。
通知部64は、トランザクションTx1がネットワーク30に公開されたあと、トランザクションTx1が公開されたことを通知する。通知部64は、例えば、ネットワーク30上でユーザのアドレス宛に送信されたトランザクションを監視することにより、トランザクションTx1が公開されたか否かを判定してもよい。また、通知部64は、例えば、トランザクションTx1が公開されたとき、表示部93にトランザクションTx1が公開されたことを示す情報を表示することにより、トランザクションTx1が公開されたことをユーザに通知してもよい。
通知部64は、トランザクションTx1がビットコインのブロックチェーンに記録されたあと、トランザクションTx1がビットコインのブロックチェーンに記録されたことを通知してもよい。通知部64は、例えば、ネットワーク40上で取引相手のアドレス宛に送信されたトランザクションを監視することにより、トランザクションTx1がビットコインのブロックチェーンに記録されたか否かを判定してもよい。また、通知部64は、例えば、トランザクションTx1がビットコインのブロックチェーンに記録されたあと、表示部93にトランザクションTx1が記録されたことを示す情報を表示してもよい。これにより、通知部64は、トランザクションTx1がビットコインのブロックチェーンに記録されたことを取引相手に通知してもよい。
受付部65は、ハードウェアウォレットBが接続部91に接続されたとき、ユーザによる秘密鍵bの入力を受け付ける。受付部65は、例えば、ハードウェアウォレットBが接続部91に接続されたとき、自動的に秘密鍵bを取得してもよい。
図6を参照して、取引装置70の機能を説明する。なお、取引装置80は、取引装置70の機能の少なくとも1つ以上の機能を有してもよい。
取引装置70は、制御部60と、接続部91と、記憶部92と、表示部93とを含む。制御部60は、生成部61と、作成部62と、送信部63と、通知部64と、受付部65と、を含む。接続部91は、電子署名A1と電子署名A2とを生成するときに用いられる秘密鍵aを格納するハードウェアウォレットA(記憶装置)と着脱可能に接続される。記憶部92は、各種情報を記憶する。表示部93は、各種情報を表示する。
生成部61は、ユーザにより接続部91に接続されるハードウェアウォレットAに格納されている秘密鍵aを用いて、電子署名A1を生成する。また、生成部61は、トランザクションTx2がネットワーク40に公開されたあと、ユーザにより接続部91に接続されるハードウェアウォレットAに格納されている秘密鍵aと、トランザクションTx2に含まれる情報とを用いて、電子署名A2を生成する。
作成部62は、ハッシュ値Hと電子署名A1とを用いて、トランザクションTx1を作成する。また、作成部62は、秘密値Rと電子署名A2とを用いて、トランザクションTx3を作成する。
送信部63は、トランザクションTx1をネットワーク30に送信する。また、送信部63は、トランザクションTx3をネットワーク40に送信する。すなわち、送信部63は、ビットコインの取引が実行されるネットワーク30に、トランザクションTx1を送信する。さらに、送信部63は、ライトコインの取引が実行されるネットワーク40に、トランザクションTx3を送信する。
通知部64は、トランザクションTx2がネットワーク40に公開されたとき、トランザクションTx2が公開されたことを通知する。通知部64は、例えば、ネットワーク40上で取引相手のアドレス宛に送信されたトランザクションを監視することにより、トランザクションTx2が公開されたか否かを判定してもよい。また、通知部64は、例えば、トランザクションTx2が公開されたとき、表示部93にトランザクションTx2が公開されたことを示す情報を表示することにより、トランザクションTx2が公開されたことを取引相手に通知してもよい。
通知部64は、トランザクションTx2がライトコインのブロックチェーンに記録されたあと、トランザクションTx2がライトコインのブロックチェーンに記録されたことを通知してもよい。通知部64は、例えば、ネットワーク40上で取引相手のアドレス宛に送信されたトランザクションを監視することにより、トランザクションTx2がライトコインのブロックチェーンに記録されたか否かを判定してもよい。また、通知部64は、例えば、トランザクションTx2がライトコインのブロックチェーンに記録されたあと、表示部93にトランザクションTx2が記録されたことを示す情報を表示してもよい。これにより、通知部64は、トランザクションTx2がライトコインのブロックチェーンに記録されたことを取引相手に通知してもよい。
受付部65は、ハードウェアウォレットAが接続部91に接続されたとき、ユーザによる秘密鍵aの入力を受け付ける。受付部65は、例えば、ハードウェアウォレットAが接続部91に接続されたとき、自動的に秘密鍵aを取得してもよい。
図7は、コンピュータ装置の一実施例を示すブロック図である。
図7を参照して、コンピュータ装置50の構成について説明する。
図7において、コンピュータ装置50は、制御回路51と、記憶装置52と、読書装置53と、記録媒体54、通信インターフェイス55と、入出力インターフェイス56と、入力装置57と、表示装置58とを含む。また、通信インターフェイス55は、ネットワーク400と接続される。そして、各構成要素は、バス59により接続される。取引装置10、取引装置20、取引装置70、及び取引装置80は、コンピュータ装置50に記載の構成要素の一部または全てを適宜選択して構成することができる。
制御回路51は、コンピュータ装置50全体の制御をする。制御回路51は、例えば、Central Processing Unit(CPU)などのプロセッサである。制御回路51は、例えば、図6において、制御部60として機能する。
記憶装置52は、各種データを記憶する。そして、記憶装置52は、例えば、Read Only Memory(ROM)及びRandom Access Memory(RAM)などのメモリや、Hard Disk(HD)などである。記憶装置52は、制御回路51を、制御部60として機能させる取引プログラムを記憶してもよい。記憶装置52は、例えば、図6において、記憶部92として機能する。
取引装置70及び取引装置80は、取引処理をするとき、記憶装置52に記憶された取引プログラムをRAMに読み出す。RAMに読み出された取引プログラムを制御回路51で実行することにより、取引装置70及び取引装置80は、生成処理と、作成処理と、送信処理と、通知処理と、接続処理と、受付処理とのいずれか1以上を含む取引処理を実行する。なお、取引プログラムは、制御回路51が通信インターフェイス55を介してアクセス可能であれば、ネットワーク400上のサーバが有する記憶装置に記憶されていても良い。
読書装置53は、制御回路51に制御され、着脱可能な記録媒体54のデータのリード/ライトを行なう。
記録媒体54は、各種データを保存する。記録媒体54は、例えば、取引処理プログラムを記憶する。記録媒体54は、例えば、Secure Digital(SD)メモリーカード、Floppy Disk(FD)、Compact Disc(CD)、Digital Versatile Disk(DVD)、Blu−ray(登録商標) Disk(BD)、及びフラッシュメモリなどの不揮発性メモリ(非一時的記録媒体)である。
通信インターフェイス55は、ネットワーク400を介してコンピュータ装置50と他の装置とを通信可能に接続する。
入出力インターフェイス56は、例えば、各種入力装置と着脱可能に接続するインターフェイスである。入出力インターフェイス56と接続される入力装置には、例えば、ハードウェアウォレットHW、キーボード、及びマウスなどがある。入出力インターフェイス56は、接続された各種入力装置とコンピュータ装置50とを通信可能に接続する。そして、入出力インターフェイス56は、接続された各種入力装置から入力された信号を、バス59を介して制御回路51に出力する。また、入出力インターフェイス406は、制御回路51から出力された信号を、バス59を介して入出力装置に出力する。ハードウェアウォレットHWは、例えば、ハードウェアウォレットA及びハードウェアウォレットBである。入出力インターフェイス56は、例えば、図6において、接続部91として機能する。
入力装置57は、例えば、タッチパネル、コード読み取り装置及びキーボードなどである。入出力インターフェイス56に接続された各種入力装置及び入力装置57は、例えば、ユーザ及び取引相手から秘密鍵、公開鍵、トランザクションID、及び秘密値Rなどの入力を受け付けてもよい。
表示装置58は、各種情報を表示する。表示装置58は、例えば、及びトランザクションTx1が公開されたとき、トランザクションTx1が公開されたことを示す画像を表示してもよい。また、表示装置58は、例えば、及びトランザクションTx2が公開されたとき、トランザクションTx2が公開されたことを示す画像を表示してもよい。さらに、表示装置58は、タッチパネルでの入力を受け付けるための情報を表示しても良い。表示装置58は、例えば、図6の表示部93として機能する。
ネットワーク400は、例えば、LAN、無線通信、P2Pネットワーク、またはインターネットなどであり、コンピュータ装置50と他の装置を通信接続する。
以上のように、実施形態の取引装置80は、トランザクションTx1がネットワーク30に公開されたあと、電子署名B1及び電子署名B2を生成し、記憶装置52に電子署名B2を記憶させる。そして、取引装置80は、トランザクションTx3がネットワー40に公開されたあと、トランザクションTx3に含まれる秘密値Rと、記憶装置52に記憶している電子署名B2とを用いてトランザクションTx4を作成する。したがって、取引装置70は、ハードウェアウォレットが一度接続されるだけでアトミックスワップの処理を実行できるので、ユーザの作業を簡略にすることができる。
実施形態の取引装置80は、トランザクションTx1がネットワーク30に公開されたあと、電子署名B1及び電子署名B2を生成する。さらに、取引装置80は、秘密値Rを含まない仮のトランザクションTx4を作成し、記憶装置52に記憶させる。そして、取引装置80は、トランザクションTx3がネットワー40に公開されたあと、トランザクションTx3に含まれる秘密値Rと、記憶装置52に記憶している仮のトランザクションTx4とを用いてトランザクションTx4を作成する。したがって、取引装置80は、ハードウェアウォレットが一度接続されるだけでアトミックスワップの処理を実行できるので、ユーザの作業を簡略にすることができる。
実施形態の取引装置80は、取引装置70によりトランザクションTx1がネットワーク30に公開されたあと、トランザクションTx1が公開されたことをユーザに通知する。これにより、取引装置80は、トランザクションTx1が公開されたあと、ユーザにハードウェアウォレットBを接続するタイミングを知らせることができる。なお、取引装置80は、トランザクションTx1がビットコインのブロックチェーンに記録されたあと、トランザクションTx1がビットコインのブロックチェーンに記録されたことをユーザに通知してもよい。これにより、取引装置80は、トランザクションTx1がビットコインのブロックチェーンに記録されたあと、ユーザにハードウェアウォレットBを接続するタイミングを知らせることができる。この場合には、取引装置80は、トランザクションTx1がビットコインのブロックチェーンに記録される前にハードウェアウォレットBが接続部91に接続される場合と比較して、電子署名B1及び電子署名B2を記憶部92に記憶しておく時間を短くできる。したがって、取引装置80は、より安全性の高い取引を実行することができる。
実施形態の取引装置80は、ハードウェアウォレットBと着脱可能に接続される接続部91を有するので、電子署名B1及び電子署名B2の生成処理の実行のとき以外において、ハードウェアウォレットBをオフラインにすることが可能である。したがって、取引装置80は、アトミックスワップ実行時の安全性を向上することができる。
実施形態の取引装置80は、電子署名B1及び電子署名B2を記憶装置52に記憶する。そして、取引装置80は、取引装置70によりトランザクションTx1がネットワーク30に公開されたあと、記憶装置52に記憶されている電子署名B1を用いて、ハッシュ値Hと電子署名B1とを含むトランザクションTx2を作成する。この場合には、取引装置80は、ビットコインのブロックチェーンにトランザクションTx1が記録されたあと、記憶部92に記憶されている電子署名B1を用いて、ハッシュ値と電子署名B1とを含むトランザクションTx2を作成してもよい。これにより、取引装置80は、トランザクションTx1がネットワーク30に公開されたあと、ユーザの任意のタイミングでハードウェアウォレットBの接続を受け付け、電子署名B1及び電子署名B2を同じタイミングで生成することが可能になる。したがって、取引装置80は、ユーザの作業を簡略にすることができる。
実施形態の取引装置80は、トランザクションTx2を記憶装置52に記憶する。そして、取引装置80は、ビットコインのブロックチェーンにトランザクションTx1が記録されたあと、記憶装置52に記憶されているトランザクションTx2をネットワーク40に送信する。これにより、取引装置80は、二重払いのリスクを抑制することができる。
上記の説明においては、ビットコインのブロックチェーン及びライトコインのブロックチェーンを用いて説明したが、例えば、モナコインのブロックチェーン及びイーサリアムのブロックチェーンなど他の種類のブロックチェーンを利用してもよい。他のブロックチェーンを用いる場合でも、取引装置80は、電子署名B1及び電子署名B2を同じタイミングで生成し、電子署名B2を記憶装置52に記憶することより、ハードウェアウォレットBが一度接続されるだけでアトミックスワップを実行することができる。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
50 コンピュータ装置
51 制御回路
52 記憶装置
53 読書装置
54 記録媒体
55 通信I/F
56 入出力I/F
57 入力装置
58 表示装置
59 バス
60 制御部
70、80 取引装置
91 接続部
92 記憶部
93 表示部

Claims (8)

  1. 取引相手からユーザに第1データを引き渡しする取引に用いる第1取引情報であって、秘密情報を用いて算出された特定情報を含む前記第1取引情報が第1ネットワークに公開されたあと、前記ユーザから前記取引相手に第2データを引き渡しする取引に用いる第2取引情報であって、前記特定情報を含む前記第2取引情報に含ませる第1電子署名の生成と、前記第1取引情報に含まれる情報を用いて、前記ユーザが前記取引相手から前記第1データを受け取る取引に用いる第4取引情報に含ませる第2電子署名の生成と、をする生成部と、
    前記第2電子署名を記憶する記憶部と、
    前記特定情報と前記第1電子署名とを含む前記第2取引情報の作成と、前記取引相手が前記ユーザから第2データを受け取る取引に用いる第3取引情報であって、前記秘密情報を含む前記第3取引情報が第2ネットワークに公開されたあと、前記記憶部に記憶されている前記第2電子署名を用いて、前記秘密情報と前記第2電子署名とを含む前記第4取引情報の作成と、をする作成部と、
    前記第1ネットワークに前記第4取引情報を送信する処理と、前記第2ネットワークに前記第2取引情報を送信する処理と、をする送信部と、
    を備えることを特徴とする取引装置。
  2. 前記作成部は、
    前記第2電子署名を含む前記第4取引情報を作成して前記記憶部に記憶させ、前記秘密情報を含む前記第3取引情報が前記第2ネットワークに公開されたあと、前記記憶部に記憶されている前記第2電子署名を含む前記第4取引情報を用いて、前記秘密情報と前記第2電子署名とを含む前記第4取引情報を作成する
    ことを特徴とする請求項1に記載の取引装置。
  3. 前記取引装置は、さらに、
    前記第1取引情報が前記第1ネットワークに公開されたあと、前記第1取引情報が公開されたことを通知する通知部
    を備えることを特徴とする請求項1または2に記載の取引装置。
  4. 前記取引装置は、さらに、
    前記第1電子署名と前記第2電子署名とを生成するときに用いられる秘密鍵を格納する記憶装置と着脱可能に接続される接続部と、
    前記記憶装置が前記接続部に接続されたとき、前記秘密鍵の入力を受け付ける受付部と、
    を備えることを特徴とする請求項1から3のいずれか一つに記載の取引装置。
  5. 前記記憶部は、さらに、
    前記第1電子署名を記憶し、
    前記作成部は、
    前記第1取引情報が前記第1ネットワークに公開されたあと、前記記憶部に記憶されている前記第1電子署名を用いて、前記特定情報と前記第1電子署名とを含む前記第2取引情報を作成する
    ことを特徴とする請求項1から4のいずれか一つに記載の取引装置。
  6. 前記記憶部は、さらに、
    前記第2取引情報を記憶し、
    前記送信部は、
    前記第1ネットワーク内で発生した取引を記録するブロックチェーンに前記第1取引情報が記録されたあと、前記記憶部に記憶されている前記第2取引情報を前記第2ネットワークに送信する
    ことを特徴とする請求項1から5のいずれか一つに記載の取引装置。
  7. コンピュータによって実行される取引方法であって、
    取引相手からユーザに第1データを引き渡しする取引に用いる第1取引情報であって、秘密情報を用いて算出された特定情報を含む前記第1取引情報が第1ネットワークに公開されたあと、前記ユーザから前記取引相手に第2データを引き渡しする取引に用いる第2取引情報であって、前記特定情報を含む前記第2取引情報に含ませる第1電子署名の生成と、前記第1取引情報に含まれる情報を用いて、前記ユーザが前記取引相手から前記第1データを受け取る取引に用いる第4取引情報に含ませる第2電子署名の生成と、をし、
    前記第2電子署名を記憶部に記憶し、
    前記特定情報と前記第1電子署名とを含む前記第2取引情報の作成と、前記取引相手が前記ユーザから第2データを受け取る取引に用いる第3取引情報であって、前記秘密情報を含む前記第3取引情報が第2ネットワークに公開されたあと、前記記憶部に記憶されている前記第2電子署名を用いて、前記秘密情報と前記第2電子署名とを含む前記第4取引情報の作成と、をし、
    前記第1ネットワークに前記第4取引情報を送信する処理と、前記第2ネットワークに前記第2取引情報を送信する処理と、をする
    ことを特徴とする取引方法。
  8. 取引相手からユーザに第1データを引き渡しする取引に用いる第1取引情報であって、秘密情報を用いて算出された特定情報を含む前記第1取引情報が第1ネットワークに公開されたあと、前記ユーザから前記取引相手に第2データを引き渡しする取引に用いる第2取引情報であって、前記特定情報を含む前記第2取引情報に含ませる第1電子署名の生成と、前記第1取引情報に含まれる情報を用いて、前記ユーザが前記取引相手から前記第1データを受け取る取引に用いる第4取引情報に含ませる第2電子署名の生成と、をし、
    前記第2電子署名を記憶部に記憶し、
    前記特定情報と前記第1電子署名とを含む前記第2取引情報の作成と、前記取引相手が前記ユーザから第2データを受け取る取引に用いる第3取引情報であって、前記秘密情報を含む前記第3取引情報が第2ネットワークに公開されたあと、前記記憶部に記憶されている前記第2電子署名を用いて、前記秘密情報と前記第2電子署名とを含む前記第4取引情報の作成と、をし、
    前記第1ネットワークに前記第4取引情報を送信する処理と、前記第2ネットワークに前記第2取引情報を送信する処理と、をする
    処理をコンピュータに実行させることを特徴とする取引プログラム。
JP2018177386A 2018-09-21 2018-09-21 取引装置、取引方法及び取引プログラム Active JP6786119B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018177386A JP6786119B2 (ja) 2018-09-21 2018-09-21 取引装置、取引方法及び取引プログラム
US16/559,536 US20200098042A1 (en) 2018-09-21 2019-09-03 Trading Apparatus, And Trading Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018177386A JP6786119B2 (ja) 2018-09-21 2018-09-21 取引装置、取引方法及び取引プログラム

Publications (2)

Publication Number Publication Date
JP2020048161A JP2020048161A (ja) 2020-03-26
JP6786119B2 true JP6786119B2 (ja) 2020-11-18

Family

ID=69883555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018177386A Active JP6786119B2 (ja) 2018-09-21 2018-09-21 取引装置、取引方法及び取引プログラム

Country Status (2)

Country Link
US (1) US20200098042A1 (ja)
JP (1) JP6786119B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110400221B (zh) * 2018-09-29 2021-09-10 腾讯科技(深圳)有限公司 数据处理方法、系统、存储介质及计算机设备
KR20210096176A (ko) * 2018-11-27 2021-08-04 엔체인 홀딩스 리미티드 피어-투-피어 네트워크를 통한 데이터 저장, 리트리브 및 통신을 위한 컴퓨터 구현 시스템 및 방법
US11544787B2 (en) 2020-06-29 2023-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for providing protocol for digital asset trading
JP7371927B2 (ja) * 2020-12-04 2023-10-31 株式会社アクセル 処理システム、処理装置、処理方法及び処理プログラム
US20220391868A1 (en) * 2021-06-04 2022-12-08 Agland Capital, LLC Cropland coin cryptocurrency non-fungible token (nft) system and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10249801B3 (de) * 2002-10-24 2004-05-06 Giesecke & Devrient Gmbh Verfahren zum Ausführen einer gesicherten elektronischen Transaktion unter Verwendung eines tragbaren Datenträgers
JP2013505487A (ja) * 2009-09-17 2013-02-14 ロイヤル カナディアン ミント 電子財布のための資産価値記憶、転送システム
JP5932709B2 (ja) * 2013-05-09 2016-06-08 株式会社日立製作所 送信側装置および受信側装置

Also Published As

Publication number Publication date
US20200098042A1 (en) 2020-03-26
JP2020048161A (ja) 2020-03-26

Similar Documents

Publication Publication Date Title
JP6786119B2 (ja) 取引装置、取引方法及び取引プログラム
US11818269B2 (en) Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets
JP6841911B2 (ja) 情報保護用のシステム及び方法
EP3740923B1 (en) Multi-approval system using m of n keys to generate a transaction address
TWI706275B (zh) 用於資訊保護的系統和方法
JP6714156B2 (ja) 情報保護のためのシステム及び方法
CN108389047B (zh) 区块链中母链与子链交易的方法及区块链网络
JP5956615B2 (ja) 分散電子振込みシステム
JP6756041B2 (ja) 情報保護用のシステム及び方法
CN108764870A (zh) 基于区块链的交易处理方法及装置、电子设备
US20170346639A1 (en) Public Key Infrastructure based on the Public Certificates Ledger
JP2021529397A (ja) ブロックチェーンアドレスおよび所有者の検証のためのシステムおよび方法
JP2002158650A (ja) 認証・暗号化処理代行用のサーバ、アクセスカード、プログラム記録媒体及び携帯端末
CN115423457A (zh) 基于区块链的跨境金融支付结算方法及系统
US20210035094A1 (en) Legitimacy management system, legitimacy management method, and program
EP4046326A1 (en) Multi factor authentication using blockchain transactions
KR102097995B1 (ko) 이중 지불 방지를 위한 전자 결제 시스템 및 그 결제 방법
JP7457406B2 (ja) 仮想通貨システム
KR102415982B1 (ko) 블록체인 시스템
JP6959649B2 (ja) 仮想通貨取引装置、取引サーバ装置、仮想通貨取引システム、仮想通貨取引方法及びプログラム
WO2022153641A1 (ja) 決済システム、決済装置、決済方法及び決済プログラム
JP7040815B2 (ja) 取引システム、取引装置、取引方法及び取引プログラム
CN113516461A (zh) 一种基于分布式账本的量子货币交易方法
THOMAS et al. Survey on Blockchain Based Privacy Preserving Digital Ledger for Medical Data sharing
TW201947482A (zh) 用以使用區塊鏈來執行基元式互換之電腦實施系統及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201021

R150 Certificate of patent or registration of utility model

Ref document number: 6786119

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250