JP6776396B2 - Trading system - Google Patents

Trading system Download PDF

Info

Publication number
JP6776396B2
JP6776396B2 JP2019078276A JP2019078276A JP6776396B2 JP 6776396 B2 JP6776396 B2 JP 6776396B2 JP 2019078276 A JP2019078276 A JP 2019078276A JP 2019078276 A JP2019078276 A JP 2019078276A JP 6776396 B2 JP6776396 B2 JP 6776396B2
Authority
JP
Japan
Prior art keywords
transaction
remittance
user
virtual currency
account
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
JP2019078276A
Other languages
Japanese (ja)
Other versions
JP2020177377A (en
Inventor
恭平 眞田
恭平 眞田
和俊 小田
和俊 小田
Original Assignee
Gmoシステムトレード株式会社
Gmoインターネット株式会社
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 Gmoシステムトレード株式会社, Gmoインターネット株式会社 filed Critical Gmoシステムトレード株式会社
Priority to JP2019078276A priority Critical patent/JP6776396B2/en
Application granted granted Critical
Publication of JP6776396B2 publication Critical patent/JP6776396B2/en
Publication of JP2020177377A publication Critical patent/JP2020177377A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、分散型仮想通貨を取引するための取引システムに関する。 The present invention relates to a trading system for trading decentralized virtual currencies.

例えば、非特許文献1には、ブロックチェーン技術に基づく仮想通貨(即ち、分散型仮想通貨:以下、単に「仮想通貨」という。)の取引に関する技術が開示されている。 For example, Non-Patent Document 1 discloses a technique for trading virtual currencies based on blockchain technology (that is, decentralized virtual currency: hereinafter simply referred to as "virtual currency").

非特許文献1に記載されているように、仮想通貨の取引は、仮想通貨ネットワークのブロックチェーンに記憶される。詳しくは、仮想通貨を取引する際、取引を記憶したトランザクションが仮想通貨ネットワークにブロードキャストされる。1以上の取引によって1以上のトランザクションがブロードキャストされる。この1以上のトランザクションは、1つのブロックに纏められてブロックチェーンに接続される。トランザクションに記憶された取引は、ブロックチェーンへのブロックの接続が承認されることで確定する。非特許文献1によれば、トランザクションのブロードキャストから取引の確定までには、30分〜1時間程度の時間を要する。 As described in Non-Patent Document 1, virtual currency transactions are stored in the blockchain of the virtual currency network. Specifically, when trading virtual currency, the transaction that memorizes the transaction is broadcast to the virtual currency network. One or more transactions broadcast one or more transactions. The one or more transactions are grouped into one block and connected to the blockchain. The transaction stored in the transaction is confirmed when the block's connection to the blockchain is approved. According to Non-Patent Document 1, it takes about 30 minutes to 1 hour from the broadcast of the transaction to the confirmation of the transaction.

例えば、利用者Aが仮想通貨の口座αから利用者Bの口座βに仮想通貨を送金するという取引を想定すると、取引(送金)を記憶したトランザクションのブロードキャストから送金の確定までの間、口座αの残金が確定しない。このため、利用者Aが口座αから次の送金を行うためには、30分〜1時間程度待たなければならない。即ち、仮想通貨の2回の送金の間には、30分〜1時間程度の待ち時間が生じる。 For example, assuming a transaction in which user A transfers virtual currency from the virtual currency account α to user B's account β, the account α is from the broadcast of the transaction that stores the transaction (remittance) to the confirmation of the remittance. The balance is not fixed. Therefore, in order for the user A to make the next remittance from the account α, he / she must wait for about 30 minutes to 1 hour. That is, there is a waiting time of about 30 minutes to 1 hour between the two remittances of the virtual currency.

特許文献1には、このような待ち時間を低減するための技術が開示されている。特許文献1に開示された技術によれば、仮想通貨の口座である外部口座と対応する内部口座を設け、内部口座によってブロックチェーンを使用しないリアルタイムな取引を行う。また、内部口座による取引とは非同期な所定のタイミングで、外部口座の残金を内部口座の残金に一致させる。 Patent Document 1 discloses a technique for reducing such a waiting time. According to the technique disclosed in Patent Document 1, an internal account corresponding to an external account which is an account of virtual currency is provided, and real-time transactions without using a blockchain are performed by the internal account. In addition, the balance of the external account is matched with the balance of the internal account at a predetermined timing asynchronous with the transaction by the internal account.

特開2018−088076号公報Japanese Unexamined Patent Publication No. 2018-088076

岡田仁志,外2名「仮想通貨 技術・法律・制度」、東洋経済新報社、2015年6月11日Hitoshi Okada, 2 outsiders "Virtual Currency Technology / Law / System", Toyo Keizai Inc., June 11, 2015

特許文献1の技術によれば、リアルタイムな取引において使用されるのは、仮想通貨によって担保された価値であり仮想通貨ではない。即ち、特許文献1に開示された技術は、仮想通貨を使用した取引の待ち時間を低減するための技術ではない。 According to the technique of Patent Document 1, what is used in real-time transactions is the value secured by the virtual currency, not the virtual currency. That is, the technique disclosed in Patent Document 1 is not a technique for reducing the waiting time for transactions using virtual currency.

そこで、本発明は、仮想通貨を使用した取引の待ち時間を低減可能な取引システムを提供することを目的とする。 Therefore, an object of the present invention is to provide a trading system capable of reducing the waiting time for trading using virtual currency.

本発明は、第1の取引システムとして、
仮想通貨の送金を含む取引のための取引システムであって、
前記仮想通貨の前記送金は、前記送金を記憶したトランザクションが仮想通貨ネットワークにブロードキャストされて前記仮想通貨ネットワークのブロックに取り込まれ、前記ブロックが前記仮想通貨ネットワークのブロックチェーンに接続された後に確定し、
前記取引システムは、1以上の利用者システムと通信可能に接続されており、前記利用者システムから、前記仮想通貨の口座からの前記送金の依頼である送金依頼を受信可能であり、
前記取引システムは、前記利用者システムから、前記口座である所定口座からの前記送金依頼である所定送金依頼を受信すると、前記所定送金依頼に応じて、前記送金を記憶した前記トランザクションである所定トランザクションを前記仮想通貨ネットワークにブロードキャストし、
前記取引システムは、前記所定トランザクションに多重署名を施してブロードキャストした場合、その後に、前記利用者システムから、前記所定口座からの前記送金依頼である後続送金依頼を受信すると、前記所定送金依頼による前記送金が確定しているか否かに拘わらず、前記後続送金依頼に応じて、前記送金を記憶した前記トランザクションを前記仮想通貨ネットワークにブロードキャストする
取引システムを提供する。
The present invention is a first trading system.
A trading system for transactions including remittance of virtual currency
The remittance of the virtual currency is confirmed after the transaction storing the remittance is broadcast to the virtual currency network and incorporated into a block of the virtual currency network, and the block is connected to the blockchain of the virtual currency network.
The trading system is communicably connected to one or more user systems, and can receive a remittance request, which is a remittance request from the virtual currency account, from the user system.
When the transaction system receives the predetermined remittance request, which is the remittance request, from the predetermined account, which is the account, the transaction system is the transaction that stores the remittance in response to the predetermined remittance request. To the virtual currency network
When the transaction system receives the subsequent remittance request, which is the remittance request from the predetermined account, from the user system when the predetermined transaction is broadcast with multiple signatures, the remittance request is made by the predetermined remittance request. Provided is a trading system that broadcasts the transaction storing the remittance to the virtual currency network in response to the subsequent remittance request regardless of whether the remittance is confirmed.

また、本発明は、第2の取引システムとして、第1の取引システムであって、
前記取引システムは、前記利用者システムに最低手数料を送信し、
前記最低手数料は、前記トランザクションが前記ブロックに取り込まれる際の手数料の基準を示すものである
取引システムを提供する。
Further, the present invention is a first trading system as a second trading system.
The trading system sends a minimum fee to the user system and
The minimum fee provides a trading system that indicates the basis of the fee when the transaction is incorporated into the block.

また、本発明は、第1の利用者システムとして、第2の取引システムと通信可能に接続された利用者システムであって、
前記利用者システムは、前記送金依頼において、前記報奨金額として前記最低手数料が指定された前記トランザクションを前記取引システムに送信する
利用者システムを提供する。
Further, the present invention is a user system that is communicably connected to a second trading system as a first user system.
The user system provides a user system that transmits the transaction for which the minimum fee is specified as the reward amount in the remittance request to the transaction system.

また、本発明は、第1のプログラムとして、
コンピュータを、第1の利用者システムとして機能させるための
プログラムを提供する。
Further, the present invention, as a first program,
A program for making a computer function as a first user system is provided.

また、本発明は、第3の取引システムとして、第2の取引システムであって、
前記利用者システムは、前記送金依頼において前記手数料を指定でき、
前記取引システムは、指定された前記手数料が手数料条件を満たす場合、前記送金依頼に応じて前記トランザクションをブロードキャストする
取引システムを提供する。
Further, the present invention is a second trading system as a third trading system.
The user system can specify the fee in the remittance request.
The trading system provides a trading system that broadcasts the transaction in response to the remittance request when the designated fee satisfies the fee condition.

また、本発明は、第4の取引システムとして、第1から第3までのいずれかの取引システムであって、
前記取引システムは、前記ブロックチェーンに接続された前記ブロックが失われた場合、失われた前記ブロックに記憶されていた前記トランザクションを再度ブロードキャストする
取引システムを提供する。
Further, the present invention is any of the first to third trading systems as the fourth trading system.
The trading system provides a trading system that, when the block connected to the blockchain is lost, rebroadcasts the transaction stored in the lost block.

本発明によれば、取引システムは、所定送金依頼に応じてトランザクションをブロードキャストした後に、後続送金依頼を受信すると、所定送金依頼による送金が確定しているか否かに拘わらず、後続送金依頼を受け付ける。従って、利用者は、先立つ送金の確定を待つことなく、引き続き送金できる。本発明によれば、仮想通貨を使用した取引の待ち時間を低減可能な取引システムを提供できる。 According to the present invention, when the transaction system receives a subsequent remittance request after broadcasting a transaction in response to a predetermined remittance request, the transaction system accepts the subsequent remittance request regardless of whether or not the remittance by the predetermined remittance request is confirmed. .. Therefore, the user can continue to remit without waiting for the confirmation of the remittance in advance. According to the present invention, it is possible to provide a trading system capable of reducing the waiting time for trading using virtual currency.

本発明の実施の形態による取引システム及び利用者システムのネットワークを示す図である。It is a figure which shows the network of the trading system and the user system by embodiment of this invention. 図1の取引システムの一例を、利用者システムの一例及び仮想通貨ネットワークの模式的な構造と共に示す図である。It is a figure which shows an example of the trading system of FIG. 1 together with an example of a user system and a schematic structure of a virtual currency network. 図2の利用者システムが有する利用者鍵のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the user key which the user system of FIG. 2 has. 図2の取引システムが有する利用者情報のデータ構造の一例を示す図である。利用者システムとの関係を破線で示している。It is a figure which shows an example of the data structure of the user information which the transaction system of FIG. 2 has. The relationship with the user system is shown by the broken line. 図2の取引システムが有する取引口座のデータ構造の一例を示す図である。利用者システムの口座アドレスとの関係及び利用者情報の利用者特定データとの関係を破線で示している。It is a figure which shows an example of the data structure of the trading account which the trading system of FIG. 2 has. The relationship with the account address of the user system and the relationship with the user-specific data of the user information are shown by broken lines. 図2の取引システムが有する預かり鍵のデータ構造の一例を示す図である。利用者システムの口座アドレス及び第1秘密鍵との関係を破線で示している。It is a figure which shows an example of the data structure of the deposit key which the transaction system of FIG. 2 has. The relationship between the account address of the user system and the first private key is shown by the broken line. 図2の仮想通貨ネットワークにブロードキャストされるトランザクションのデータ構造を部分的且つ模式的に示す図である。It is a figure which shows the data structure of the transaction broadcast to the virtual currency network of FIG. 2 partially and schematically. 図7のトランザクションの具体的な一例を示す図である。It is a figure which shows a specific example of the transaction of FIG. 図2の仮想通貨ネットワークにおけるブロックのデータ構造を部分的且つ模式的に示す図である。It is a figure which shows the data structure of a block in the virtual currency network of FIG. 2 partially and schematically. 図2の取引システムが有する手数料情報のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the fee information which the transaction system of FIG. 2 has. 図2の仮想通貨ネットワークにおけるブロックチェーンの分岐を示す図である。It is a figure which shows the branch of a blockchain in the virtual currency network of FIG. 図2の取引システム、利用者システム及び仮想通貨ネットワークの間で行われる処理を示す図である。It is a figure which shows the process performed between the transaction system, the user system and the virtual currency network of FIG. 図12の取引システムの手数料管理サーバの処理を示すフローチャートである。It is a flowchart which shows the process of the fee management server of the transaction system of FIG. 図12の取引システムの取引サーバの処理を示すフローチャートである。It is a flowchart which shows the process of the transaction server of the transaction system of FIG. 図12の取引システムのリトライサーバの処理を示すフローチャートである。It is a flowchart which shows the process of the retry server of the trading system of FIG. 図12の利用者システムの処理の変形例を示すフローチャートである。It is a flowchart which shows the modification of the process of the user system of FIG.

図1及び図2を参照すると、本発明の実施の形態における取引システム10は、ブロックチェーン技術に基づく仮想通貨(即ち、分散型仮想通貨:以下、単に「仮想通貨」という。)を取引するためのシステムである。取引システム10における仮想通貨の取引は、少なくとも仮想通貨の送金を含んでいる。即ち、取引システム10は、仮想通貨の送金を含む取引のための取引システムである。 Referring to FIGS. 1 and 2, the trading system 10 according to the embodiment of the present invention is for trading virtual currency based on blockchain technology (that is, decentralized virtual currency: hereinafter simply referred to as "virtual currency"). System. The transaction of virtual currency in the trading system 10 includes at least the remittance of virtual currency. That is, the trading system 10 is a trading system for transactions including remittance of virtual currency.

図1を参照すると、取引システム10は、様々な通信手段を介して、1以上の利用者システム60と通信可能に接続されている。取引システム10と利用者システム60とを互いに接続する通信手段は、特に限定されない。例えば、利用者システム60は、光ファイバー(図示せず)やメタルファイバー(図示せず)等の通信線を組み合わせた有線通信網92によって取引システム10と通信可能に接続されていてもよいし、基地局(図示せず)によって制御される無線通信網94を介して取引システム10と通信可能に接続されていてもよい。有線通信網92及び無線通信網94は、インターネットの一部であってもよい。また、取引システム10及び利用者システム60は、同一組織内のシステムであってもよい。この場合、利用者システム60は、LAN(Local Area Network)96によって取引システム10と通信可能に接続されていてもよい。 Referring to FIG. 1, the trading system 10 is communicably connected to one or more user systems 60 via various communication means. The communication means for connecting the trading system 10 and the user system 60 to each other is not particularly limited. For example, the user system 60 may be communicably connected to the trading system 10 by a wired communication network 92 in which communication lines such as optical fibers (not shown) and metal fibers (not shown) are combined, or may be a base. It may be communicably connected to the trading system 10 via a wireless communication network 94 controlled by a station (not shown). The wired communication network 92 and the wireless communication network 94 may be a part of the Internet. Further, the trading system 10 and the user system 60 may be systems within the same organization. In this case, the user system 60 may be communicably connected to the trading system 10 by a LAN (Local Area Network) 96.

図2を参照すると、本実施の形態の利用者システム60は、取引端末60Tを備えている。取引端末60Tは、利用者によって操作されるコンピュータである。取引端末60Tを操作する利用者は、個人であってもよいし、会社等の組織であってもよい。利用者が個人である場合、取引端末60Tは、例えば、デスクトップPC(Personal Computer)やスマートフォンであってもよい。利用者が組織である場合、利用者システム60は、複数の様々なサーバコンピュータ(以下、単に「サーバ」という。)から構成されていてもよい。この場合、取引端末60Tは、サーバの操作端末であってもよい。 Referring to FIG. 2, the user system 60 of the present embodiment includes a trading terminal 60T. The trading terminal 60T is a computer operated by a user. The user who operates the trading terminal 60T may be an individual or an organization such as a company. When the user is an individual, the trading terminal 60T may be, for example, a desktop PC (Personal Computer) or a smartphone. When the user is an organization, the user system 60 may be composed of a plurality of various server computers (hereinafter, simply referred to as "servers"). In this case, the trading terminal 60T may be the operating terminal of the server.

本実施の形態の取引端末60Tは、取引アプリ62と、利用者鍵64と、入力装置66と、表示装置68とを備えている。取引アプリ62は、コンピュータを、利用者システム60として機能させるためのコンピュータプログラム(以下、単に「プログラム」という。)である。取引アプリ62は、取引端末60Tの記憶装置(図示せず)に記憶されている。取引アプリ62は、取引端末60TのCPU(Central Processing Unit)によって主記憶装置(図示せず)にローディングされた後に実行され、これにより、取引端末60Tは、利用者システム60として機能する。本実施の形態の取引アプリ62は、1台の取引端末60Tにインストールされている。但し、本発明は、これに限られない。例えば、取引アプリ62の様々な機能は、複数のコンピュータに分散してインストールされていてもよい。この場合、取引アプリ62は、複数のコンピュータを利用者システム60として機能させてもよい。 The trading terminal 60T of the present embodiment includes a trading application 62, a user key 64, an input device 66, and a display device 68. The transaction application 62 is a computer program (hereinafter, simply referred to as “program”) for causing the computer to function as the user system 60. The trading application 62 is stored in a storage device (not shown) of the trading terminal 60T. The transaction application 62 is executed after being loaded into a main storage device (not shown) by the CPU (Central Processing Unit) of the transaction terminal 60T, whereby the transaction terminal 60T functions as the user system 60. The trading application 62 of the present embodiment is installed on one trading terminal 60T. However, the present invention is not limited to this. For example, various functions of the trading application 62 may be distributedly installed on a plurality of computers. In this case, the transaction application 62 may make a plurality of computers function as the user system 60.

利用者鍵64は、取引端末60Tの記憶装置(図示せず)に記憶されたデータである。取引端末60Tは、利用者鍵64を1つのみ備えていてもよいし、2以上の利用者鍵64を備えていてもよい。入力装置66は、例えば、キーボードやタッチパネルである。表示装置68は、例えば、液晶画面である。利用者システム60の利用者は、入力装置66を使用して取引アプリ62を操作し、これにより、1以上の利用者鍵64を使用して仮想通貨の取引を行う。仮想通貨の取引に関する情報は、表示装置68に適時表示される。 The user key 64 is data stored in a storage device (not shown) of the trading terminal 60T. The trading terminal 60T may include only one user key 64, or may include two or more user keys 64. The input device 66 is, for example, a keyboard or a touch panel. The display device 68 is, for example, a liquid crystal screen. The user of the user system 60 operates the transaction application 62 using the input device 66, thereby trading virtual currency using one or more user keys 64. Information regarding virtual currency transactions is displayed on the display device 68 in a timely manner.

図3を図2と併せて参照すると、本実施の形態において、利用者鍵64は、第1秘密鍵642と、第1公開鍵644と、口座アドレス646とを含むデータ構造体である。第1秘密鍵642及び第1公開鍵644は、公開鍵暗号方式における2つの鍵のペアである。第1秘密鍵642は、仮想通貨の取引に署名を施すために使用され、第1公開鍵644は、署名を検証するために使用される。口座アドレス646は、取引対象の仮想通貨の口座を特定するデータであり、一般公開されたアルゴリズムを使用して第1公開鍵644から生成されている。例えば、利用者システム60の利用者が仮想通貨を送金する際、口座アドレス646によって、仮想通貨の送金元口座を特定できる。 Referring to FIG. 3 together with FIG. 2, in the present embodiment, the user key 64 is a data structure including a first private key 642, a first public key 644, and an account address 646. The first private key 642 and the first public key 644 are a pair of two keys in public key cryptography. The first private key 642 is used to sign the transaction of virtual currency, and the first public key 644 is used to verify the signature. The account address 646 is data for identifying an account of the virtual currency to be traded, and is generated from the first public key 644 using a publicly available algorithm. For example, when a user of the user system 60 remits virtual currency, the remittance source account of the virtual currency can be specified by the account address 646.

本実施の形態の利用者鍵64は、利用者システム60の内部に記憶されており、上述のデータ構造を有している。但し、本発明は、これに限られない。例えば、利用者鍵64は、利用者システム60の外部に記憶されていてもよい。より具体的には、利用者鍵64は、利用者が所有するUSB(Universal Serial Bus)メモリに記憶されていてもよい。この場合、利用者システム60は、公共施設に設置された端末であってもよい。また、口座アドレス646は、利用者鍵64に含まれていなくてもよい。この場合、取引アプリ62は、必要な都度、第1公開鍵644から口座アドレス646を生成してもよい。更に、第1秘密鍵642及び第1公開鍵644は、電子的なデータとして記憶されておらず、第1秘密鍵642及び第1公開鍵644を記載した紙の書類のみが存在していてもよい。 The user key 64 of the present embodiment is stored inside the user system 60 and has the above-mentioned data structure. However, the present invention is not limited to this. For example, the user key 64 may be stored outside the user system 60. More specifically, the user key 64 may be stored in a USB (Universal Serial Bus) memory owned by the user. In this case, the user system 60 may be a terminal installed in a public facility. Further, the account address 646 does not have to be included in the user key 64. In this case, the trading application 62 may generate an account address 646 from the first public key 644 each time it is needed. Further, the first private key 642 and the first public key 644 are not stored as electronic data, and even if only a paper document describing the first private key 642 and the first public key 644 exists. Good.

図2を参照すると、本実施の形態の取引システム10は、例えば企業等の組織によって運用されるシステムである。取引システム10は、取引サーバ20と、手数料管理サーバ30と、リトライサーバ40と、記憶装置50とを備えている。取引サーバ20、手数料管理サーバ30及びリトライサーバ40の夫々は、取引システム10の運用者によって操作されるコンピュータである。記憶装置50は、例えば磁気ディスクである。取引サーバ20、手数料管理サーバ30及びリトライサーバ40の夫々は、記憶装置50と通信可能に接続されている。即ち、取引サーバ20、手数料管理サーバ30及びリトライサーバ40の夫々は、記憶装置50にデータを書込可能(記憶可能)であり、且つ、記憶装置50に記憶されたデータを読込可能(取得可能)である。 Referring to FIG. 2, the trading system 10 of the present embodiment is a system operated by an organization such as a company. The transaction system 10 includes a transaction server 20, a fee management server 30, a retry server 40, and a storage device 50. Each of the transaction server 20, the fee management server 30, and the retry server 40 is a computer operated by the operator of the transaction system 10. The storage device 50 is, for example, a magnetic disk. Each of the transaction server 20, the fee management server 30, and the retry server 40 is communicably connected to the storage device 50. That is, each of the transaction server 20, the fee management server 30, and the retry server 40 can write (store) data in the storage device 50, and can read (acquire) the data stored in the storage device 50. ).

取引システム10における取引サーバ20、手数料管理サーバ30、リトライサーバ40及び記憶装置50の物理的な構造は、特に限定されない。例えば、取引サーバ20、手数料管理サーバ30及びリトライサーバ40の夫々は、1台のコンピュータであってもよいし、2台以上のコンピュータから構成されていてもよい。また、1台のコンピュータが、取引サーバ20、手数料管理サーバ30及びリトライサーバ40の全ての機能を有していてもよい。記憶装置50は、1台の磁気ディスクであってもよいし、2台以上の磁気ディスクから構成されていてもよい。 The physical structure of the transaction server 20, the fee management server 30, the retry server 40, and the storage device 50 in the transaction system 10 is not particularly limited. For example, each of the transaction server 20, the fee management server 30, and the retry server 40 may be one computer or may be composed of two or more computers. Further, one computer may have all the functions of the transaction server 20, the fee management server 30, and the retry server 40. The storage device 50 may be one magnetic disk or may be composed of two or more magnetic disks.

記憶装置50には、取引システム10が参照する様々なデータ構造体が記憶されている。本実施の形態において、記憶装置50には、データ構造体として、利用者システム60と夫々対応する1以上の利用者情報52と、仮想通貨の取引に使用される1以上の取引口座53と、利用者システム60の利用者鍵64と夫々対応する1以上の預かり鍵54と、手数料情報56と、トランザクション保存空間58とが記憶されている。但し、本発明は、これに限られない。例えば、記憶装置50には、上述したデータ構造体に加えて、更に別のデータ構造体が記憶されていてもよい。一方、上述したデータ構造体の夫々は、必要に応じて記憶装置50に記憶すればよい。また、上述したデータ構造体のデータ構造は、以下に説明するデータ構造に限定されず、様々に変形可能である。 The storage device 50 stores various data structures referred to by the trading system 10. In the present embodiment, as a data structure, the storage device 50 includes one or more user information 52 corresponding to the user system 60, and one or more transaction accounts 53 used for virtual currency transactions. One or more storage keys 54 corresponding to the user key 64 of the user system 60, fee information 56, and transaction storage space 58 are stored. However, the present invention is not limited to this. For example, in the storage device 50, in addition to the above-mentioned data structure, another data structure may be stored. On the other hand, each of the above-mentioned data structures may be stored in the storage device 50 as needed. Further, the data structure of the above-mentioned data structure is not limited to the data structure described below, and can be variously deformed.

図4を図2と併せて参照すると、利用者情報52には、利用者システム60と夫々対応する1以上の利用者特定データ522と、利用者特定データ522と夫々対応する1以上の利用者認証データ524とが含まれている。利用者特定データ522の夫々は、対応する利用者システム60を一意に特定可能なデータである。例えば、利用者特定データ522の夫々は、対応する利用者システム60が取引システム10のアカウントを作成した際の利用者ID(identifier)やメールアドレスである。利用者認証データ524の夫々は、対応する利用者システム60を認証するためのデータである。利用者認証データ524の夫々は、例えば、パスワードであってもよいし、指紋情報等の生体情報であってもよい。 Referring to FIG. 4 together with FIG. 2, the user information 52 includes one or more user-specific data 522 corresponding to the user system 60 and one or more users corresponding to the user-specific data 522. Authentication data 524 and the like are included. Each of the user-specific data 522 is data that can uniquely identify the corresponding user system 60. For example, each of the user identification data 522 is a user ID (identifier) or an e-mail address when the corresponding user system 60 creates an account of the transaction system 10. Each of the user authentication data 524 is data for authenticating the corresponding user system 60. Each of the user authentication data 524 may be, for example, a password or biometric information such as fingerprint information.

図5を図2と併せて参照すると、取引口座53には、利用者システム60の口座アドレス646と夫々対応する1以上の口座アドレス532と、口座アドレス532と夫々対応する1以上の利用者特定データ534とが含まれている。口座アドレス532の夫々には、対応する口座アドレス646と同じデータが記憶されている。利用者特定データ534の夫々には、対応する口座アドレス532(口座アドレス646)を有する利用者システム60を特定する利用者特定データ522と同じデータが記憶されている。 Referring to FIG. 5 together with FIG. 2, the trading account 53 includes one or more account addresses 532 corresponding to the account address 646 of the user system 60, and one or more user identification corresponding to the account address 532. Data 534 and are included. The same data as the corresponding account address 646 is stored in each of the account addresses 532. Each of the user-specific data 534 stores the same data as the user-specific data 522 that identifies the user system 60 having the corresponding account address 532 (account address 646).

本実施の形態における取引口座53は、仮想通貨の取引に使用される口座が仮想通貨の取引を行う利用者の正当な口座であるか否かを検証するために使用される。例えば、所定の利用者システム60(所定利用者システム60)の利用者が所定の口座アドレス646(所定口座アドレス646)から仮想通貨を送金しようとした場合、所定口座アドレス646が取引口座53のいずれかの口座アドレス532と一致し、且つ、一致した口座アドレス532と対応する利用者特定データ534が、所定利用者システム60と対応する利用者特定データ522と一致するとき、取引システム10は、所定口座アドレス646が利用者の正当な口座であると判断する。 The trading account 53 in the present embodiment is used to verify whether or not the account used for trading virtual currency is a legitimate account of a user who trades virtual currency. For example, when a user of a predetermined user system 60 (predetermined user system 60) tries to remit virtual currency from a predetermined account address 646 (predetermined account address 646), the predetermined account address 646 is any of the trading accounts 53. When the user-specific data 534 that matches the account address 532 and corresponds to the matched account address 532 matches the user-specific data 522 that corresponds to the predetermined user system 60, the transaction system 10 determines. It is determined that the account address 646 is the legitimate account of the user.

図6を図2と併せて参照すると、預かり鍵54には、利用者システム60の口座アドレス646と夫々対応する1以上の口座アドレス542と、口座アドレス542と夫々対応する1以上の第2秘密鍵544とが含まれている。口座アドレス532の夫々には、対応する口座アドレス646と同じデータが記憶されている。第2秘密鍵544は、仮想通貨の取引に多重署名(マルチシグニチャ)を施すための秘密鍵である。例えば、利用者システム60の利用者が所定の口座アドレス646(所定口座アドレス646)から仮想通貨を送金しようとした場合、利用者システム60は、所定口座アドレス646と対応した第1秘密鍵642を使用して仮想通貨の送金に署名を施し、取引システム10は、所定口座アドレス646と一致する口座アドレス542に対応する第2秘密鍵544を使用して仮想通貨の送金に更に署名を施す。 Referring to FIG. 6 together with FIG. 2, the deposit key 54 includes one or more account addresses 542 corresponding to the account address 646 of the user system 60, and one or more second secrets corresponding to the account addresses 542, respectively. Includes key 544 and. The same data as the corresponding account address 646 is stored in each of the account addresses 532. The second private key 544 is a private key for applying multiple signatures (multi-signature) to a virtual currency transaction. For example, when a user of the user system 60 tries to remit virtual currency from a predetermined account address 646 (predetermined account address 646), the user system 60 uses a first private key 642 corresponding to the predetermined account address 646. It is used to sign the virtual currency remittance, and the trading system 10 further signs the virtual currency remittance using the second private key 544 corresponding to the account address 542 that matches the predetermined account address 646.

上述のように、本実施の形態によれば、仮想通貨の取引に対して、互いと対応する2つの秘密鍵(第1秘密鍵642及び第2秘密鍵544)を使用したマルチシグニチャが施される。但し、マルチシグニチャを施す方法は、本実施の形態に限られず、様々に変形可能である。また、マルチシグニチャを採用せず、仮想通貨の取引に対して第1秘密鍵642による署名のみを施してもよい。この場合、取引システム10は、署名に使用された第1秘密鍵642に対応する第2秘密鍵544を備えていなくてもよい。 As described above, according to the present embodiment, a multi-signature using two private keys (first secret key 642 and second secret key 544) corresponding to each other is applied to the transaction of virtual currency. To. However, the method of applying the multi-signature is not limited to the present embodiment and can be variously modified. Further, the multi-signature may not be adopted, and only the signature by the first private key 642 may be given to the transaction of the virtual currency. In this case, the trading system 10 does not have to include the second private key 544 corresponding to the first private key 642 used for signing.

利用者システム60及び取引システム10は、上述したデータ構造体を参照しつつ、仮想通貨の取引を行う。特に、取引システム10は、利用者システム60から、仮想通貨の口座からの送金の依頼である送金依頼を受信可能である。 The user system 60 and the trading system 10 trade virtual currencies with reference to the above-mentioned data structure. In particular, the transaction system 10 can receive a remittance request, which is a remittance request from a virtual currency account, from the user system 60.

以下、利用者システム60が取引システム10を介して他の利用者システム60に仮想通貨を送金するという取引の発生から確定までの基本的な流れを説明する。 Hereinafter, the basic flow from the occurrence to the confirmation of a transaction in which the user system 60 remits virtual currency to another user system 60 via the transaction system 10 will be described.

図2を参照すると、まず、利用者システム60の取引アプリ62は、利用者の操作に応じて、取引システム10に対して送金依頼を送信する(図2の(1))。より具体的には、取引アプリ62は、送金を記憶したトランザクション88を作成し、第1秘密鍵642(図3参照)による署名を施して、取引システム10の取引サーバ20に送信する。 Referring to FIG. 2, first, the transaction application 62 of the user system 60 transmits a remittance request to the transaction system 10 in response to the operation of the user ((1) of FIG. 2). More specifically, the transaction application 62 creates a transaction 88 that stores the remittance, signs it with the first private key 642 (see FIG. 3), and transmits it to the transaction server 20 of the transaction system 10.

一般的に、トランザクション88の夫々には、送金等の取引が記憶されている。後述するように、取引システム10は、正当性を確認したトランザクション88を、仮想通貨ネットワーク80にブロードキャストする。取引システム10がブロードキャストしたトランザクション88は、仮想通貨ネットワーク80に含まれる多数のノードに伝播され、各ノードによって記憶される。また、取引システム10は、ブロードキャストしたトランザクション88を、トランザクション保存空間58に記憶する。取引システム10を含む多数のノードは、トランザクション88を互いに伝播することで、夫々が記憶しているトランザクション88を整合させている。即ち、トランザクション88は、仮想通貨ネットワーク80によって分散的に管理されており、全てのトランザクション88を集中的に管理する特定のノードは存在しない。但し、本発明は、このような特定のノードが存在している場合にも適用可能である。 Generally, transactions such as remittance are stored in each transaction 88. As will be described later, the transaction system 10 broadcasts the transaction 88 whose validity has been confirmed to the virtual currency network 80. The transaction 88 broadcast by the trading system 10 is propagated to a large number of nodes included in the virtual currency network 80 and stored by each node. Further, the transaction system 10 stores the broadcast transaction 88 in the transaction storage space 58. A large number of nodes, including the trading system 10, propagate transactions 88 to each other to align the transactions 88 they have stored. That is, transaction 88 is managed in a decentralized manner by the virtual currency network 80, and there is no specific node that centrally manages all transactions 88. However, the present invention is also applicable when such a specific node exists.

図7は、トランザクション88に含まれるデータのうち、以下の説明において必要なデータのみを模式的に示している。トランザクション88の夫々は、n個(nは、1以上の整数)の入力部88Iと、m個(mは、1以上の整数)の出力部88Oと、手数料889とを含んでいる。入力部88Iの夫々には、仮想通貨の送金元口座を特定するデータと、送金元口座の正当性を保証するためのデータとが記憶されている。出力部88Oの夫々には、仮想通貨の送金先口座を特定するデータと、送金先口座に対する仮想通貨の送金額を示すデータとが記憶されている。 FIG. 7 schematically shows only the data required in the following description among the data included in the transaction 88. Each transaction 88 includes n (n is an integer of 1 or more) input units 88I, m (m is an integer of 1 or more) output units 88O, and a fee 889. The data for identifying the remittance source account of the virtual currency and the data for guaranteeing the validity of the remittance source account are stored in each of the input units 88I. Data for specifying the remittance destination account of the virtual currency and data indicating the remittance amount of the virtual currency to the remittance destination account are stored in each of the output units 88O.

より具体的には、出力部88Oの夫々は、送金先アドレス886と、仮想通貨送金額888とを含んでいる。送金先アドレス886は、仮想通貨の送金先口座を特定するデータである。図7を図2及び図3と併せて参照すると、送金先アドレス886には、送金先の利用者システム60の利用者鍵64の口座アドレス646(送金先口座アドレス646)が記憶されている。仮想通貨送金額888には、送金先口座アドレス646に対する送金額(ゼロよりも大きな数値)が記憶されている。 More specifically, each of the output units 88O includes a remittance destination address 886 and a virtual currency remittance amount 888. The remittance destination address 886 is data for identifying the remittance destination account of the virtual currency. Referring to FIG. 7 together with FIGS. 2 and 3, the remittance destination address 886 stores the account address 646 (remittance destination account address 646) of the user key 64 of the user system 60 of the remittance destination. In the virtual currency remittance amount 888, the remittance amount (a number larger than zero) to the remittance destination account address 646 is stored.

入力部88Iの夫々は、送金元アドレス882と、署名データ884とを含んでいる。送金元アドレス882は、仮想通貨の送金元口座を特定するデータである。詳しくは、送金元アドレス882には、このトランザクション88(後続トランザクション88)に先立ってブロードキャストされたトランザクション88(先行トランザクション88)の出力部88O(先行出力部88O)を特定可能なデータが記憶されている。先行トランザクション88の先行出力部88Oの送金先アドレス886には、後続トランザクション88の入力部88Iの送金元口座(送金元口座アドレス646)が記憶されている。署名データ884は、送金元口座アドレス646の正当性を保証するためのデータであり、送金元口座アドレス646と対応する第1秘密鍵642による署名が施されている。 Each of the input units 88I includes a remittance source address 882 and signature data 884. The remittance source address 882 is data that identifies the remittance source account of the virtual currency. Specifically, the remittance source address 882 stores data that can identify the output unit 88O (preceding output unit 88O) of the transaction 88 (preceding transaction 88) broadcast prior to this transaction 88 (subsequent transaction 88). There is. The remittance destination address 886 of the advance output unit 88O of the preceding transaction 88 stores the remittance source account (remittance source account address 646) of the input unit 88I of the succeeding transaction 88. The signature data 884 is data for guaranteeing the validity of the remittance source account address 646, and is signed by the first private key 642 corresponding to the remittance source account address 646.

後述するように、手数料889には、トランザクション88をマイニングしたマイナーが受け取る仮想通貨の報奨金額(ゼロ以上の数値)が記憶されている。トランザクション88の夫々において、手数料889と、n個の入力部88Iの送金元アドレス882によって特定されるn個の先行出力部88Oの仮想通貨送金額888を合計した合計入金額と、m個の出力部88Oの仮想通貨送金額888を合計した合計送金額とは、手数料889=合計入金額−合計送金額との関係式を満たしている。この関係式から理解されるように、トランザクション88に手数料889のデータが含まれていなくても、合計入金額及び合計送金額から報奨金額を算出可能である。従って、トランザクション88には、手数料889のデータ項目が含まれていなくてもよい。 As will be described later, the fee 889 stores the incentive amount (numerical value of zero or more) of the virtual currency received by the miner who mined the transaction 88. In each transaction 88, the total deposit amount, which is the sum of the fee 889, the virtual currency remittance amount 888 of the n advance output units 88O specified by the remittance source address 882 of the n input units 88I, and m outputs. The total remittance amount, which is the sum of the virtual currency remittance amount 888 of the part 88O, satisfies the relational expression of fee 889 = total deposit amount-total remittance amount. As can be understood from this relational expression, the reward amount can be calculated from the total deposit amount and the total transfer amount even if the transaction 88 does not include the data of the fee 889. Therefore, transaction 88 may not include a data item with a fee of 889.

図2及び図8を参照すると、例えば、利用者システム60の利用者が、先行トランザクション88を伴う取引の後に、口座Aの残金(200単位の仮想通貨)の一部(150単位の仮想通貨)を口座Bに送金する場合、取引サーバ20にトランザクション88(後続トランザクション88)が送信される。 Referring to FIGS. 2 and 8, for example, a user of the user system 60 performs a part of the balance of account A (200 units of virtual currency) (150 units of virtual currency) after a transaction involving a preceding transaction 88. Transaction 88 (subsequent transaction 88) is transmitted to the transaction server 20 when the money is transferred to the account B.

後続トランザクション88は、1つの入力部88Iと、2つの出力部88Oとを含んでいる。入力部88Iの送金元アドレス882には、先行トランザクション88の出力部88Oを特定するデータである「アドレスA」が記憶されている。後続トランザクション88の出力部88Oのうちの1つにおいて、送金先アドレス886には、「口座B」が記憶されており、仮想通貨送金額888には、「150」が記憶されている。後続トランザクション88の出力部88Oのうちの他の1つにおいて、送金先アドレス886には、「口座A」が記憶されており、仮想通貨送金額888には、「49」が記憶されている。 Subsequent transaction 88 includes one input unit 88I and two output units 88O. The remittance source address 882 of the input unit 88I stores "address A" which is data for specifying the output unit 88O of the preceding transaction 88. In one of the output units 88O of the subsequent transaction 88, "account B" is stored in the remittance destination address 886, and "150" is stored in the virtual currency remittance amount 888. In the other one of the output units 88O of the subsequent transaction 88, "account A" is stored in the remittance destination address 886, and "49" is stored in the virtual currency remittance amount 888.

以上に説明したトランザクション88の構造から理解されるように、トランザクション88の入力部88Iの夫々は、他のトランザクション88の出力部88OであるUTXO(Unspent Transaction Output)にリンクされている。即ち、トランザクション88は、UTXOを介してチェーン状に繋がっており、これにより取引台帳を形成している。 As can be understood from the structure of transaction 88 described above, each of the input units 88I of transaction 88 is linked to UTXO (Unspent Transaction Output) which is the output unit 88O of another transaction 88. That is, the transaction 88 is connected in a chain shape via the UTXO, thereby forming a transaction ledger.

図2を参照すると、取引システム10は、利用者システム60からトランザクション88を受信すると(図2の(1))、後述するように、トランザクション88に記憶されたデータの妥当性をチェックし、これによりトランザクション88の正当性を確認する。取引システム10は、トランザクション88に記憶されたデータが妥当であると判断すると、トランザクション88の署名データ884(図7参照)に送金元アドレス882(図7参照)と対応する第2秘密鍵544(図6参照)による署名を施して、トランザクション88を発行する(図2の(2))。このとき、取引システム10は、トランザクション88を、仮想通貨ネットワーク80にブロードキャストする。取引システム10がブロードキャストしたトランザクション88は、取引システム10のトランザクション保存空間58に記憶される(図2の(3))。 With reference to FIG. 2, when the transaction system 10 receives the transaction 88 from the user system 60 ((1) in FIG. 2), the transaction system 10 checks the validity of the data stored in the transaction 88, as will be described later. The validity of transaction 88 is confirmed by. When the transaction system 10 determines that the data stored in the transaction 88 is appropriate, the second private key 544 (see FIG. 7) corresponding to the signature data 884 (see FIG. 7) of the transaction 88 with the sender address 882 (see FIG. 7). The transaction 88 is issued by signing according to (see FIG. 6) ((2) in FIG. 2). At this time, the transaction system 10 broadcasts the transaction 88 to the virtual currency network 80. The transaction 88 broadcast by the transaction system 10 is stored in the transaction storage space 58 of the transaction system 10 ((3) in FIG. 2).

以上の説明から理解されるように、仮想通貨の1回の送金に応じて、1つのトランザクション88が仮想通貨ネットワーク80にブロードキャストされる。即ち、送金が1回以上行われることで、送金と夫々対応した1以上のトランザクション88がブロードキャストされる。仮想通貨ネットワーク80にブロードキャストされた1以上のトランザクション88は、仮想通貨ネットワーク80のノードの1つであるマイニングシステム70によってブロック84に取り込まれ、ブロックチェーン82に接続される。換言すれば、マイニングシステム70は、未だブロック84に取り込まれていない1以上のトランザクション88を纏めて1つのブロック84を作成し、作成したブロック84をブロックチェーン82に接続する。また、マイニングシステム70は、作成したブロック84を、仮想通貨ネットワーク80にブロードキャストする。 As can be understood from the above description, one transaction 88 is broadcast to the virtual currency network 80 in response to one remittance of the virtual currency. That is, when the remittance is performed one or more times, one or more transactions 88 corresponding to the remittance are broadcast. One or more transactions 88 broadcast to the virtual currency network 80 are taken into the block 84 by the mining system 70, which is one of the nodes of the virtual currency network 80, and connected to the blockchain 82. In other words, the mining system 70 collectively creates one block 84 by collecting one or more transactions 88 that have not yet been incorporated into the block 84, and connects the created block 84 to the block chain 82. Further, the mining system 70 broadcasts the created block 84 to the virtual currency network 80.

ブロックチェーン82は、1以上のブロック84からなるチェーンである。ブロックチェーン82が正常な状態にあるとき、全てのブロック84は、連続した1本のチェーンを形成しており、マイニングシステム70が新たに作成したブロック84は、ブロックチェーン82の末尾に接続される。例えば、ブロックチェーン82が1番目のブロック84(図示せず)からK番目のブロック84まで繋がっているとき、新たに作成されたブロック84は、K+1番目のブロック84として、ブロックチェーン82のK番目のブロック84に接続される。この結果、K+1番目のブロック84のブロック84に含まれている1以上のトランザクション88が、ブロックチェーン82に取り込まれる。 The blockchain 82 is a chain composed of one or more blocks 84. When the blockchain 82 is in the normal state, all the blocks 84 form one continuous chain, and the block 84 newly created by the mining system 70 is connected to the end of the blockchain 82. .. For example, when the blockchain 82 is connected from the first block 84 (not shown) to the Kth block 84, the newly created block 84 is the Kth block 84 of the blockchain 82 as the K + 1th block 84. Is connected to the block 84 of. As a result, one or more transactions 88 included in the block 84 of the K + 1th block 84 are incorporated into the blockchain 82.

図9は、ブロック84に含まれるデータのうち、以下の説明において必要なデータのみを模式的に示している。ブロック84の夫々は、ブロックヘッダー84Hと、トランザクション領域848とを含んでいる。トランザクション領域848には、1つのコインベーストランザクション88C(後述)と、このブロック84に取り込まれた1以上のトランザクション88とが記憶されている。ブロックヘッダー84Hは、ブロックハッシュ842と、ナンス846とを含んでいる。 FIG. 9 schematically shows only the data required in the following description among the data contained in the block 84. Each of the blocks 84 includes a block header 84H and a transaction area 848. In the transaction area 848, one coinbase transaction 88C (described later) and one or more transactions 88 incorporated in the block 84 are stored. The block header 84H includes a block hash 842 and a nonce 846.

図9を図2と併せて参照すると、ブロックハッシュ842には、新たに作成されたブロック84(図2におけるK+1番目のブロック84)が接続されるブロック84(図2においてK番目のブロック84)のブロックヘッダー84Hのハッシュ値が記憶されている。このハッシュ値は、ブロックヘッダー84Hを、一般公開されたハッシュアルゴリズム(以下、「所定ハッシュアルゴリズム」という。)によってハッシュすることで得られる。 Referring to FIG. 9 together with FIG. 2, a newly created block 84 (K + 1st block 84 in FIG. 2) is connected to the block hash 842 (Kth block 84 in FIG. 2). The hash value of the block header 84H of is stored. This hash value is obtained by hashing the block header 84H with a hash algorithm that is open to the public (hereinafter, referred to as "predetermined hash algorithm").

マイニングシステム70は、ブロック84を新たに作成する際、このブロック84のナンス846の設定値を変更しつつ、所定ハッシュアルゴリズムを使用して、ブロックヘッダー84Hのハッシュ値を繰り返し算出する。マイニングシステム70は、予め定められた条件を満たす所定ハッシュ値が得られるまで、ハッシュ値の算出を繰り返す。マイニングシステム70は、所定ハッシュ値が得られたときのナンス846の設定値を、このブロック84のナンス846に設定する。即ち、ナンス846には、このブロックヘッダー84Hをハッシュしたときに所定ハッシュ値が得られるような値が記憶されている。 When the block 84 is newly created, the mining system 70 repeatedly calculates the hash value of the block header 84H by using a predetermined hash algorithm while changing the setting value of the nonce 846 of the block 84. The mining system 70 repeats the calculation of the hash value until a predetermined hash value satisfying a predetermined condition is obtained. The mining system 70 sets the set value of the nonce 846 when the predetermined hash value is obtained to the nonce 846 of the block 84. That is, the nonce 846 stores a value such that a predetermined hash value can be obtained when the block header 84H is hashed.

図2を参照すると、上述の新たなブロック84の作成は、複数のマイニングシステム70によって、同時並行的に行われる。マイニングシステム70の夫々は、トランザクション保存空間78を備えている。トランザクション保存空間78の夫々は、ブロックチェーン82と、ブロックチェーン82に取り込まれていないトランザクション88とを含んでいる。マイニングシステム70のうちの1つが新たなブロック84を作成してブロードキャストすると、他のマイニングシステム70は、ブロードキャストされたブロック84を受信し、受信したブロック84の正当性を検証した後、正当性を認めたブロック84を、自らのトランザクション保存空間78のブロックチェーン82に接続する。 Referring to FIG. 2, the above-mentioned new block 84 is created by the plurality of mining systems 70 in parallel. Each of the mining systems 70 includes a transaction storage space 78. Each of the transaction storage spaces 78 includes a blockchain 82 and a transaction 88 that has not been incorporated into the blockchain 82. When one of the mining systems 70 creates a new block 84 and broadcasts it, the other mining system 70 receives the broadcasted block 84, verifies the validity of the received block 84, and then validates it. The recognized block 84 is connected to the blockchain 82 of its own transaction storage space 78.

取引システム10は、マイニングシステム70と同様に、マイニングシステム70がブロードキャストしたブロック84を受信し、受信したブロック84の正当性を検証した後、正当性を認めたブロック84を、自らのトランザクション保存空間58のブロックチェーン82に接続する。仮想通貨ネットワーク80の他のノードも同様な処理を行う。 Similar to the mining system 70, the trading system 10 receives the block 84 broadcast by the mining system 70, verifies the validity of the received block 84, and then stores the block 84 whose validity is recognized in its own transaction storage space. Connect to the blockchain 82 of 58. Other nodes of the virtual currency network 80 perform the same processing.

新たなブロック84は、仮想通貨ネットワーク80の多数のノードによって正当性を認められることで承認される。このとき、ブロック84は、ブロックチェーン82に確定的に接続される。承認されたブロック84を作成したマイニングシステム70は、仮想通貨による報奨金を得ることができる。詳しくは、マイニングシステム70は、ブロック84を作成する際に、得るべき報奨金額を記憶したコインベーストランザクション88Cを作成して、仮想通貨の取引に応じて作成されたトランザクション88と共に、トランザクション領域848(図9参照)に取り込む。コインベーストランザクション88Cに記憶される報奨金額は、ブロック84に取り込まれたトランザクション88の手数料889(図7参照)を合計した合計報奨金額に、予め定められた所定報奨金額を加算した金額である。 The new block 84 is approved by being justified by a number of nodes in the crypto network 80. At this time, the block 84 is deterministically connected to the blockchain 82. The mining system 70 that created the approved block 84 can get a reward in virtual currency. Specifically, the mining system 70 creates a coinbase transaction 88C that stores the reward amount to be obtained when the block 84 is created, and together with the transaction 88 created in response to the transaction of the virtual currency, the transaction area 848 ( (See Fig. 9). The reward amount stored in the coinbase transaction 88C is an amount obtained by adding a predetermined predetermined reward amount to the total reward amount obtained by adding the commission 889 (see FIG. 7) of the transaction 88 incorporated in the block 84.

上述したように、仮想通貨の送金取引は、利用者システム60が取引システム10に送金依頼したときに発生する。また、仮想通貨の送金取引は、取引システム10が発行したトランザクション88がブロック84に取り込まれ、ブロック84が多数のノードにおいてブロックチェーン82に接続されたときに確定する。換言すれば、利用者システム60から他の利用者システム60への仮想通貨の送金は、送金を記憶したトランザクション88が仮想通貨ネットワーク80にブロードキャストされて仮想通貨ネットワーク80のブロック84に取り込まれ、ブロック84が仮想通貨ネットワーク80のブロックチェーン82に接続された後に確定する。 As described above, the virtual currency remittance transaction occurs when the user system 60 requests the remittance system 10 to remit. Further, the virtual currency remittance transaction is confirmed when the transaction 88 issued by the transaction system 10 is taken into the block 84 and the block 84 is connected to the blockchain 82 at a large number of nodes. In other words, the transfer of virtual currency from the user system 60 to another user system 60 is blocked by the transaction 88 that stores the transfer being broadcast to the virtual currency network 80 and taken into the block 84 of the virtual currency network 80. It is confirmed after 84 is connected to the blockchain 82 of the virtual currency network 80.

以上の説明から理解されるように、利用者システム60による送金依頼(図2の(1))から送金の確定までには、比較的長い待ち時間(例えば、30分〜1時間程度の時間)を要する。待ち時間が経過するまで、利用者システム60が送金に使用した口座アドレス646(図3参照)の残金が確定しない。従って、利用者システム60がこの口座アドレス646から次の送金を行うためには、30分〜1時間程度待たなければならない。即ち、仮想通貨の一般的な送金取引は、30分〜1時間程度の待ち時間で確定する。一方、仮想通貨の送金取引は、マイニングシステム70が送金取引によるトランザクション88を新たなブロック84に取り込まない限り、どれだけ待っても確定しない。 As can be understood from the above explanation, it takes a relatively long waiting time (for example, about 30 minutes to 1 hour) from the remittance request by the user system 60 ((1) in FIG. 2) to the confirmation of the remittance. Needs. Until the waiting time elapses, the balance of the account address 646 (see FIG. 3) used by the user system 60 for remittance is not fixed. Therefore, in order for the user system 60 to make the next remittance from this account address 646, it is necessary to wait for about 30 minutes to 1 hour. That is, a general remittance transaction of virtual currency is confirmed with a waiting time of about 30 minutes to 1 hour. On the other hand, the virtual currency remittance transaction is not confirmed no matter how long it waits unless the mining system 70 incorporates the transaction 88 by the remittance transaction into the new block 84.

マイニングシステム70の夫々は、企業等であるマイナーによって運用されている。一般的に、マイナーは、できるだけ高額な報奨金を得ることを目的として新たなブロック84を作成する。従って、トランザクション88の手数料889(図7参照)に設定された報奨金額が低い場合、このトランザクション88は、ブロック84に取り込まれ難い。換言すれば、手数料889に高い報奨金額を設定することで、待ち時間を比較的短くできる。一方、報奨金の支払いによる利用者の損失を小さくするという観点からは、手数料889にできるだけ低い報奨金額を設定することが好ましい。従って、手数料889には、低すぎず且つ高すぎない適切な報奨金額を設定することが好ましい。 Each of the mining systems 70 is operated by a miner such as a company. In general, miners create new blocks 84 with the goal of getting the highest possible bounty. Therefore, if the reward amount set in the transaction 88 fee 889 (see FIG. 7) is low, the transaction 88 is unlikely to be incorporated into block 84. In other words, by setting a high reward amount for the fee 889, the waiting time can be made relatively short. On the other hand, from the viewpoint of reducing the loss of the user due to the payment of the incentive, it is preferable to set the incentive amount as low as possible for the commission 889. Therefore, it is preferable to set an appropriate incentive amount for the fee 889, which is neither too low nor too high.

本実施の形態の取引システム10の記憶装置50には、利用者情報52、取引口座53、預かり鍵54及びトランザクション保存空間58に加えて、手数料情報56が記憶されている。本実施の形態によれば、利用者システム60は、以下に説明するように、トランザクション88の手数料889(図7参照)に適切な報奨金額を設定できる。 The storage device 50 of the transaction system 10 of the present embodiment stores the fee information 56 in addition to the user information 52, the transaction account 53, the deposit key 54, and the transaction storage space 58. According to this embodiment, the user system 60 can set an appropriate reward amount for the transaction 88 fee 889 (see FIG. 7), as described below.

図10を図2と併せて参照すると、手数料情報56には、最低手数料562が記憶されている。最低手数料562は、トランザクション88がマイニングシステム70によってブロック84に取り込まれる際のマイナーに対する報奨金額、即ち手数料889(図7参照)、の基準を示すものである。例えば、最低手数料562は、マイナーに支払うべき報奨金の絶対値であってもよいし、トランザクション88のバイト数に応じた報奨金の比率であってもよい。本実施の形態において、最低手数料562は、取引システム10の手数料管理サーバ30によって設定される。 Referring to FIG. 10 together with FIG. 2, the fee information 56 stores a minimum fee of 562. The minimum fee 562 indicates a criterion for the incentive amount for the miner when transaction 88 is incorporated into block 84 by the mining system 70, i.e., fee 889 (see FIG. 7). For example, the minimum fee 562 may be the absolute value of the incentive to be paid to the miner, or the incentive ratio according to the number of bytes in transaction 88. In this embodiment, the minimum fee 562 is set by the fee management server 30 of the trading system 10.

図12及び図13を参照すると、手数料管理サーバ30は、仮想通貨ネットワーク80を定期的に監視し、これにより、ブロック84に取り込まれた複数のトランザクション88の手数料889(図7参照)を定期的に取得する(図12の1−(1)及び図13のS1302)。例えば、手数料管理サーバ30は、ブロックチェーン82の末尾に位置するブロック84(図12においてK番目のブロック84)を参照して、ブロック84に記憶されたトランザクション88の手数料889を取得する。 Referring to FIGS. 12 and 13, the fee management server 30 periodically monitors the virtual currency network 80, whereby the fees 889 (see FIG. 7) of the plurality of transactions 88 captured in the block 84 are periodically monitored. (1- (1) in FIG. 12 and S1302 in FIG. 13). For example, the fee management server 30 refers to the block 84 located at the end of the blockchain 82 (the Kth block 84 in FIG. 12) to acquire the fee 889 of the transaction 88 stored in the block 84.

次に、手数料管理サーバ30は、取得した1以上の手数料889(図4参照)から、利用者システム60がトランザクション88を作成する際に手数料889に設定すべき報奨の最小金額又は最小比率(最低報奨)を算出する(図12の1−(2)及び図13のS1304)。次に、手数料管理サーバ30は、算出した最低報奨を、手数料情報56の最低手数料562(図10参照)に設定する(図12の1−(3)及び図13のS1306)。次に、手数料管理サーバ30は、仮想通貨ネットワーク80の定期的な監視を続ける(図12の1−(1)及び図13のS1302)。 Next, the fee management server 30 uses the acquired one or more fees 889 (see FIG. 4) to set the minimum amount or the minimum ratio (minimum) of the reward to be set in the fee 889 when the user system 60 creates the transaction 88. Reward) is calculated (1- (2) in FIG. 12 and S1304 in FIG. 13). Next, the fee management server 30 sets the calculated minimum reward to the minimum fee 562 (see FIG. 10) of the fee information 56 (1- (3) in FIG. 12 and S1306 in FIG. 13). Next, the fee management server 30 continues to regularly monitor the virtual currency network 80 (1- (1) in FIG. 12 and S1302 in FIG. 13).

手数料管理サーバ30が最低報奨を求める方法は、特に限定されない。例えば、手数料管理サーバ30は、取得した手数料889(図4参照)のうちの最低値を最低報奨としてもよい。一方、手数料管理サーバ30は、取得した手数料889からマイナーに支払われる報奨の傾向を分析し、これにより最低報奨を求めてもよい。また、手数料管理サーバ30は、ブロックチェーン82の末尾に位置する2以上のブロック84から手数料889を取得してもよい。 The method by which the fee management server 30 seeks the minimum reward is not particularly limited. For example, the fee management server 30 may set the lowest value of the acquired fees 889 (see FIG. 4) as the lowest reward. On the other hand, the fee management server 30 may analyze the tendency of the reward paid to the miner from the acquired fee 889 and obtain the minimum reward accordingly. Further, the fee management server 30 may acquire the fee 889 from two or more blocks 84 located at the end of the blockchain 82.

図12及び図14を参照すると、利用者システム60の利用者が取引アプリ62を起動すると(図12の2−(1))、取引アプリ62は、取引サーバ20に対して、利用者IDやパスワード等のログインデータを含むログイン要求を送信する(図12の2−(2))。取引サーバ20は、利用者システム60(取引アプリ62)からログインデータを受信すると(図14のS1402)、受信したログインデータを使用して、利用者システム60を認証する(図12の2−(3)及び図14のS1404)。例えば、取引サーバ20は、利用者ID及びパスワードを、利用者情報52の利用者特定データ522(図4参照)及び利用者認証データ524(図4参照)と照合することで利用者システム60を認証する。 With reference to FIGS. 12 and 14, when the user of the user system 60 activates the transaction application 62 (2- (1) in FIG. 12), the transaction application 62 indicates the user ID and the user ID to the transaction server 20. A login request including login data such as a password is transmitted (2- (2) in FIG. 12). When the transaction server 20 receives login data from the user system 60 (transaction application 62) (S1402 in FIG. 14), the transaction server 20 authenticates the user system 60 using the received login data (2- (FIG. 12-2). 3) and S1404 in FIG. For example, the transaction server 20 collates the user ID and password with the user identification data 522 (see FIG. 4) and the user authentication data 524 (see FIG. 4) of the user information 52 to perform the user system 60. Certify.

取引サーバ20は、利用者システム60の正当性を認証できなかった場合(図14のS1404のNG)、利用者システム60のログインを拒否する(図14のS1406)。一方、取引サーバ20は、利用者システム60の正当性を認証できた場合(図14のS1404のOK)、利用者システム60の口座の残金と、手数料情報56に記憶された最低手数料562(図10参照)とを取得する(図12の2−(4)及び図14のS1408)。 If the transaction server 20 cannot authenticate the validity of the user system 60 (NG in S1404 of FIG. 14), the transaction server 20 refuses to log in to the user system 60 (S1406 in FIG. 14). On the other hand, when the transaction server 20 can authenticate the validity of the user system 60 (OK in S1404 of FIG. 14), the balance of the account of the user system 60 and the minimum fee 562 stored in the fee information 56 (FIG. 14). 10) and (2 (4) in FIG. 12 and S1408 in FIG. 14).

例えば、取引サーバ20は、利用者システム60から受信した利用者IDを、取引口座53の利用者特定データ534(図5参照)と照合することで、利用者システム60の1以上の口座アドレス532(図5参照)を取得する。取引サーバ20は、取得した口座アドレス532を、トランザクション保存空間58に保存されているトランザクション88の送金先アドレス886(図7参照)と照合し、口座アドレス532への仮想通貨送金額888(図7参照)を得ることで、取得した1以上の口座アドレス532と夫々対応する残金を得る。 For example, the transaction server 20 collates the user ID received from the user system 60 with the user identification data 534 (see FIG. 5) of the transaction account 53, so that one or more account addresses 532 of the user system 60. (See FIG. 5) is acquired. The transaction server 20 collates the acquired account address 532 with the remittance destination address 886 (see FIG. 7) of the transaction 88 stored in the transaction storage space 58, and the virtual currency remittance amount 888 to the account address 532 (FIG. 7). By obtaining (see), the balance corresponding to one or more acquired account addresses 532 is obtained.

取引サーバ20は、上述のように取得した口座の残金及び最低手数料562(図10参照)を利用者システム60(取引アプリ62)に送信する(図12の2−(5)及び図14のS1410)。取引アプリ62は、受信した口座の残金及び最低手数料562(即ち、適切な報奨金額)を表示装置68に表示する(図12の2−(6))。利用者システム60の利用者は、表示された口座の残金及び適切な報奨金額を参考にしつつ送金操作を行うことができる(図12の2−(7))。 The transaction server 20 transmits the balance of the account acquired as described above and the minimum fee 562 (see FIG. 10) to the user system 60 (transaction application 62) (2- (5) in FIG. 12 and S1410 in FIG. 14). ). The trading application 62 displays the balance of the received account and the minimum fee 562 (that is, an appropriate reward amount) on the display device 68 (2- (6) in FIG. 12). The user of the user system 60 can perform the remittance operation while referring to the displayed balance of the account and the appropriate incentive amount (2- (7) in FIG. 12).

利用者システム60の利用者は、送金操作において、入力装置66を使用して、送金元口座、送金先口座、送金額及び報奨金額等のデータを入力する(図12の2−(7))。取引アプリ62は、入力された送金額及び報奨金額等のデータの妥当性をチェックする(図12の2−(8))。例えば、取引アプリ62は、入力された送金額が送金元口座の合計残金を越えているか、又は、入力された報奨金額が適切な報奨金額未満である場合、表示装置68にエラーメッセージを表示し、妥当なデータの入力を待つ(図示せず)。一方、取引アプリ62は、入力されたデータが妥当であると判断した場合、入力されたデータ及び利用者鍵64に基づいてトランザクション88を作成し、取引サーバ20に送信し、これにより送金依頼する(図12の2−(9))。 In the remittance operation, the user of the user system 60 uses the input device 66 to input data such as the remittance source account, the remittance destination account, the remittance amount and the incentive amount (2- (7) in FIG. 12). .. The transaction application 62 checks the validity of the input data such as the remittance amount and the incentive amount (2- (8) in FIG. 12). For example, the trading application 62 displays an error message on the display device 68 when the input remittance amount exceeds the total balance of the remittance source account or the input incentive amount is less than the appropriate incentive amount. , Wait for valid data input (not shown). On the other hand, when the transaction application 62 determines that the input data is appropriate, it creates a transaction 88 based on the input data and the user key 64, sends it to the transaction server 20, and requests remittance by this. (2- (9) in FIG. 12).

取引サーバ20は、利用者システム60(取引アプリ62)から送金依頼に伴うトランザクション88を受信すると(図14のS1420)、受信したトランザクション88の仮想通貨送金額888(図7参照)及び手数料889(図7参照)等のデータの妥当性をチェックする(図12の2−(10)及び図14のS1422)。例えば、取引サーバ20は、入力された仮想通貨送金額888が送金元口座の合計残金を越えているか、又は、手数料889が最低手数料562(図10参照)未満である場合(図14のS1422のNG)、送金できないことを利用者システム60(取引アプリ62)に通知する(図14のS1424)。 When the transaction server 20 receives the transaction 88 associated with the remittance request from the user system 60 (transaction application 62) (S1420 in FIG. 14), the virtual currency remittance amount 888 (see FIG. 7) and the fee 889 (see FIG. 7) of the received transaction 88 (see FIG. 7). Check the validity of the data such as (see FIG. 7) (2- (10) in FIG. 12 and S1422 in FIG. 14). For example, the transaction server 20 determines that the input virtual currency remittance amount 888 exceeds the total balance of the remittance source account, or the fee 889 is less than the minimum fee 562 (see FIG. 10) (S1422 in FIG. 14). NG), the user system 60 (transaction application 62) is notified that the remittance cannot be made (S1424 in FIG. 14).

一方、取引サーバ20は、受信したトランザクション88のデータが妥当であると判断した場合(図14のS1422のOK)、受信したトランザクション88に第2秘密鍵544(図6参照)による署名を施して、トランザクション88を発行する(図12の2−(11)及び図14のS1426)。このとき、取引サーバ20は、トランザクション88を仮想通貨ネットワーク80にブロードキャストする。また、取引サーバ20は、発行したトランザクション88を、トランザクション保存空間58に記憶する(図12の2−(12))。次に、取引サーバ20は、送金が確定しているか否かに拘わらず、利用者システム60(取引アプリ62)に送金完了を通知する(図12の2−(13)及び図14のS1428)。 On the other hand, when the transaction server 20 determines that the received transaction 88 data is valid (OK in S1422 in FIG. 14), the transaction server 20 signs the received transaction 88 with the second secret key 544 (see FIG. 6). , Issue transaction 88 (2- (11) in FIG. 12 and S1426 in FIG. 14). At this time, the transaction server 20 broadcasts the transaction 88 to the virtual currency network 80. Further, the transaction server 20 stores the issued transaction 88 in the transaction storage space 58 (2- (12) in FIG. 12). Next, the transaction server 20 notifies the user system 60 (transaction application 62) of the completion of the remittance regardless of whether or not the remittance is confirmed (2- (13) in FIG. 12 and S1428 in FIG. 14). ..

取引アプリ62は、取引サーバ20から送金完了の通知を受信すると、表示装置68に送金完了を表示する(図12の2−(14))。この結果、利用者システム60の利用者は、送金が確定したことを知ることができ、次の送金を直ちに行うことができる。 Upon receiving the remittance completion notification from the transaction server 20, the transaction application 62 displays the remittance completion on the display device 68 (2- (14) in FIG. 12). As a result, the user of the user system 60 can know that the remittance has been confirmed, and can immediately perform the next remittance.

図12を参照すると、上述したように、本実施の形態によれば、利用者システム60は、送金依頼においてトランザクション88の手数料889(図7参照)を指定できる。取引システム10は、指定された手数料889が手数料条件を満たす場合、送金依頼に応じてトランザクション88をブロードキャストする。一方、取引システム10は、指定された手数料889が手数料条件を満たさない場合、送金依頼に応じたトランザクション88をブロードキャストしない。本実施の形態における手数料条件は、手数料889≧手数料情報56に記憶された最低手数料562(図10参照)との条件である。但し、手数料条件は、これに限られない。例えば、手数料条件は、手数料889≧トランザクション88のサイズ(バイト数)×手数料情報56に記憶された最低手数料562であってもよい。 Referring to FIG. 12, as described above, according to the present embodiment, the user system 60 can specify the transaction 88 fee 889 (see FIG. 7) in the remittance request. The transaction system 10 broadcasts transaction 88 in response to a remittance request if the designated fee 889 satisfies the fee condition. On the other hand, the transaction system 10 does not broadcast the transaction 88 in response to the remittance request if the designated fee 889 does not meet the fee conditions. The fee condition in the present embodiment is a condition that the fee 889 ≧ the minimum fee 562 (see FIG. 10) stored in the fee information 56. However, the fee conditions are not limited to this. For example, the fee condition may be fee 889 ≥ transaction 88 size (number of bytes) × minimum fee 562 stored in fee information 56.

本実施の形態によれば、利用者システム60の利用者は、送金依頼する際(図12の(2−9))、トランザクション88の手数料889(図7参照)に設定すべき報奨金額として、表示装置68に表示された適切な報奨金額以上の報奨金額を入力できる。加えて、取引アプリ62は、入力された報奨金額が適切な報奨金額未満である場合、取引サーバ20に送金依頼しない。更に、取引サーバ20は、手数料889が最低手数料562(図10参照)未満である場合、トランザクション88を発行しない。 According to the present embodiment, when the user of the user system 60 requests remittance ((2-9) in FIG. 12), the reward amount to be set in the fee 889 (see FIG. 7) of transaction 88 is set. A reward amount equal to or greater than the appropriate reward amount displayed on the display device 68 can be input. In addition, the trading app 62 does not request the trading server 20 to transfer money if the entered reward amount is less than the appropriate reward amount. Further, the transaction server 20 does not issue transaction 88 if the fee 889 is less than the minimum fee 562 (see FIG. 10).

上述した利用者による妥当な入力、取引アプリ62による妥当性の検証及び取引サーバ20による妥当性の検証により、マイニングシステム70によってブロック84に取り込まれやすいトランザクション88が仮想通貨ネットワーク80に送信される。但し、本発明は、これに限られない。例えば、取引アプリ62による妥当性の検証及び取引サーバ20による妥当性の検証は、いずれか一方のみを行ってもよい。更に、取引アプリ62による妥当性の検証及び取引サーバ20による妥当性の検証を行わなくてもよい。 Due to the above-mentioned valid input by the user, validation by the trading application 62, and validation by the trading server 20, transaction 88, which is easily incorporated into the block 84 by the mining system 70, is transmitted to the virtual currency network 80. However, the present invention is not limited to this. For example, only one of the validation by the trading application 62 and the validation by the trading server 20 may be performed. Further, it is not necessary to verify the validity by the trading application 62 and the validity by the trading server 20.

図12及び図16を参照すると、取引アプリ62(利用者システム60)の機能は、更に変形可能である。例えば、変形例による取引アプリ62は、上述した実施の形態と同様に、取引システム10から口座の残金及び最低手数料562(図10参照)を受信する(図12の2−(5)及び図16のS1602)と、受信した口座の残金及び最低手数料562を表示装置68に表示する(図12の2−(6))。次に、本変形例による取引アプリ62は、上述した実施の形態と同様に、利用者システム60の利用者による送金操作を検知するまで待つ(図16のS1604のNO)。 With reference to FIGS. 12 and 16, the functions of the trading application 62 (user system 60) can be further modified. For example, the trading application 62 according to the modified example receives the balance of the account and the minimum fee 562 (see FIG. 10) from the trading system 10 (see 2- (5) and FIG. 16 of FIG. 12), as in the above-described embodiment. S1602) and the balance of the received account and the minimum fee 562 are displayed on the display device 68 (2- (6) in FIG. 12). Next, the transaction application 62 according to the present modification waits until the remittance operation by the user of the user system 60 is detected, as in the above-described embodiment (NO in S1604 of FIG. 16).

本変形例によれば、利用者システム60の利用者は、送金操作(図12の2−(7))において、送金元口座、送金先口座、送金額等のデータを入力する一方、報奨金額を入力しない。本変形例による取引アプリ62は、利用者による送金操作を検知すると(図16のS1604のYES)、入力された送金額等のデータの妥当性をチェックする一方、報奨金額の妥当性をチェックしない(図16のS1606)。 According to this modification, the user of the user system 60 inputs data such as the remittance source account, the remittance destination account, and the remittance amount in the remittance operation (2- (7) in FIG. 12), while the reward amount. Do not enter. When the transaction application 62 according to this modification detects the remittance operation by the user (YES in S1604 of FIG. 16), it checks the validity of the input data such as the remittance amount, but does not check the validity of the reward amount. (S1606 in FIG. 16).

本変形例による取引アプリ62は、入力されたデータが妥当であると判断した場合、入力されたデータ及び利用者鍵64に基づいてトランザクション88を作成し、取引サーバ20に送信し、これにより送金依頼する(図12の2−(9))。このとき、本変形例による取引アプリ62は、最低手数料562(図10参照)を指定したトランザクション88を作成して送信する(図16のS1608)。例えば、最低手数料562は、トランザクション88の手数料889(図7参照)に設定して指定してもよい。一方、トランザクション88に手数料889のデータ項目が含まれていない場合、合計送金額が合計入金額から最低手数料562を引いた金額になるように調整することで最低手数料562を指定してもよい。 When the transaction application 62 according to this modification determines that the input data is appropriate, it creates a transaction 88 based on the input data and the user key 64, sends it to the transaction server 20, and remits money thereby. Request (2- (9) in FIG. 12). At this time, the transaction application 62 according to this modification creates and transmits a transaction 88 for which a minimum fee of 562 (see FIG. 10) is specified (S1608 in FIG. 16). For example, the minimum fee 562 may be set and specified as the transaction 88 fee 889 (see FIG. 7). On the other hand, if transaction 88 does not include a data item for fee 889, the minimum fee 562 may be specified by adjusting the total remittance amount to be the total deposit amount minus the minimum fee 562.

上述したように、本変形例による利用者システム60は、送金依頼において、報奨金額として最低手数料562(図10参照)が指定されたトランザクション88を取引システム10に送信する。本変形例によっても、マイニングシステム70によってブロック84に取り込まれやすいトランザクション88を仮想通貨ネットワーク80に送信できる。 As described above, the user system 60 according to the present modification transmits the transaction 88 to which the minimum fee 562 (see FIG. 10) is specified as the reward amount in the remittance request to the transaction system 10. Also in this modification, the transaction 88, which is easily incorporated into the block 84 by the mining system 70, can be transmitted to the virtual currency network 80.

図12を参照すると、以上に説明したように、取引システム10は、利用者システム60から、利用者システム60の口座である所定口座からの送金依頼である所定送金依頼を受信すると、所定送金依頼に応じて、送金を記憶したトランザクション88である所定トランザクション88を仮想通貨ネットワーク80にブロードキャストする。取引システム10は、所定トランザクション88をブロードキャストした後に、利用者システム60から、所定口座からの送金依頼である後続送金依頼を受信すると、所定送金依頼による送金が確定しているか否かに拘わらず、後続送金依頼に応じて、送金を記憶したトランザクション88を仮想通貨ネットワーク80にブロードキャストする。 With reference to FIG. 12, as described above, when the transaction system 10 receives a predetermined remittance request, which is a remittance request from a predetermined account, which is an account of the user system 60, the transaction system 10 receives a predetermined remittance request. In response to this, a predetermined transaction 88, which is a transaction 88 that stores the remittance, is broadcast to the virtual currency network 80. When the transaction system 10 receives a subsequent remittance request, which is a remittance request from the predetermined account, from the user system 60 after broadcasting the predetermined transaction 88, regardless of whether or not the remittance by the predetermined remittance request is confirmed. In response to the subsequent remittance request, the transaction 88 that stores the remittance is broadcast to the virtual currency network 80.

本発明によれば、取引システム10は、所定送金依頼に応じてトランザクション88をブロードキャストした後に、後続送金依頼を受信すると、所定送金依頼による送金が確定しているか否かに拘わらず、後続送金依頼を受け付ける。従って、利用者は、先立つ送金の確定を待つことなく、引き続き送金できる。本発明によれば、仮想通貨を使用した取引の待ち時間を低減可能な取引システム10を提供できる。 According to the present invention, when the transaction system 10 receives a subsequent remittance request after broadcasting transaction 88 in response to a predetermined remittance request, the subsequent remittance request is made regardless of whether or not the remittance by the predetermined remittance request is confirmed. Accept. Therefore, the user can continue to remit without waiting for the confirmation of the remittance in advance. According to the present invention, it is possible to provide a trading system 10 capable of reducing the waiting time for trading using virtual currency.

特に、本実施の形態の取引システム10は、所定トランザクション88に多重署名を施してブロードキャストした場合、その後に、利用者システム60から、所定口座からの送金依頼である後続送金依頼を受信すると、所定送金依頼による送金が確定しているか否かに拘わらず、後続送金依頼に応じて、送金を記憶したトランザクション88を仮想通貨ネットワーク80にブロードキャストする。 In particular, when the transaction system 10 of the present embodiment receives a subsequent remittance request, which is a remittance request from the predetermined account, from the user system 60 after the predetermined transaction 88 is broadcast with multiple signatures, it is predetermined. Regardless of whether or not the remittance by the remittance request is confirmed, the transaction 88 that stores the remittance is broadcast to the virtual currency network 80 in response to the subsequent remittance request.

本実施の形態によれば、利用者システム60の所定口座からの送金依頼は、必ず取引システム10を介して行われる。この前提により、取引システム10は、所定口座の残金を信用でき、所定送金依頼による送金が確定しているか否かに拘わらず、後続送金依頼を受け付けることができる。加えて、本実施の形態によれば、取引システム10は、利用者システム60の所定口座の仮想通貨を預かっておらず、利用者システム60の所定口座の第2秘密鍵544(図6参照)のみを預かっている。即ち、取引システム10は、所定口座からの送金に必要な鍵の一方のみを有している。この構成により、取引システム10の運用者による不正な送金を防止できると共に、取引システム10の外部からの仮想通貨の窃盗を防止できる。但し、本発明は、これに限られず、多重署名を用いない送金依頼にも適用可能である。 According to this embodiment, the remittance request from the predetermined account of the user system 60 is always made via the transaction system 10. Based on this premise, the transaction system 10 can trust the balance of the predetermined account and can accept the subsequent remittance request regardless of whether or not the remittance by the predetermined remittance request is confirmed. In addition, according to the present embodiment, the trading system 10 does not keep the virtual currency of the predetermined account of the user system 60, and the second private key 544 of the predetermined account of the user system 60 (see FIG. 6). I keep only. That is, the trading system 10 has only one of the keys required for remittance from a predetermined account. With this configuration, it is possible to prevent illegal remittance by the operator of the trading system 10 and prevent theft of virtual currency from the outside of the trading system 10. However, the present invention is not limited to this, and can be applied to a remittance request that does not use multiple signatures.

取引システム10は、既に説明した機能に加えて、更に様々な機能を備えていてもよい。 The trading system 10 may have various functions in addition to the functions already described.

例えば、図11を参照すると、2つのマイニングシステム70(図2参照)が、ブロックチェーン82の末尾のブロック84(図11におけるK番目のブロック84)に2つのブロック84(図11におけるK+1番目の2つのブロック84)を夫々接続することがある。この結果、ブロックチェーン82は2つのチェーン(図11における破線のチェーン及び実線のチェーン)に分岐する。ブロックチェーン82が分岐した場合、チェーンの夫々に新たなブロック84が更に接続され、これによりチェーンの夫々が延びる。いずれか一方のチェーン(図11における実線のチェーン)が所定の長さまで延びたときに、ブロックチェーン82がロールバックされ、他方のチェーン(図11における破線のチェーン)のブロック84(図11の破線のチェーンにおけるK+1番目のブロック84及びK+2番目のブロック84)が失われる場合がある。 For example, referring to FIG. 11, two mining systems 70 (see FIG. 2) have two blocks 84 (K + 1th in FIG. 11) in block 84 (Kth block 84 in FIG. 11) at the end of the blockchain 82. The two blocks 84) may be connected to each other. As a result, the blockchain 82 branches into two chains (a broken line chain and a solid line chain in FIG. 11). When the blockchain 82 branches, a new block 84 is further connected to each of the chains, which extends each of the chains. When one of the chains (solid chain in FIG. 11) extends to a predetermined length, the block chain 82 is rolled back and the block 84 (broken line in FIG. 11) of the other chain (dashed chain in FIG. 11). K + 1st block 84 and K + 2nd block 84) in the chain may be lost.

ブロック84が失われると、失われたブロック84に取り込まれたトランザクション88も失われ、これにより、仮想通貨の取引は、なかったことになる。以下に説明するように、本実施の形態の取引システム10は、仮想通貨を使用した取引が記憶されたトランザクション88がブロックチェーン82に取り込まれた後に消失した場合にも、記憶された取引を確定できる。 When the block 84 is lost, the transaction 88 captured in the lost block 84 is also lost, which means that there was no virtual currency transaction. As described below, the transaction system 10 of the present embodiment confirms the stored transaction even when the transaction 88 in which the transaction using the virtual currency is stored disappears after being incorporated into the blockchain 82. it can.

図12及び図15を参照すると、取引システム10のリトライサーバ40は、ブロックチェーン82に接続されたブロック84の消失有無を定期的に監視している(図12の3−(1)及び図15のS1502)。例えば、リトライサーバ40は、ブロックチェーン82に接続されたブロック84のブロックハッシュ842(図9参照)が変化したとき、元のブロック84の消失を検知する。リトライサーバ40は、ブロックチェーン82に接続されたブロック84の消失を検知すると(図12の3−(2)及び図15のS1504)、失われたブロック84に記憶されていたトランザクション88を再発行(ブロードキャスト)する(図12の3−(3)及び図15のS1506)。 With reference to FIGS. 12 and 15, the retry server 40 of the trading system 10 periodically monitors whether or not the block 84 connected to the blockchain 82 has disappeared (3- (1) of FIG. 12 and FIG. 15). S1502). For example, the retry server 40 detects the disappearance of the original block 84 when the block hash 842 (see FIG. 9) of the block 84 connected to the block chain 82 changes. When the retry server 40 detects the loss of the block 84 connected to the blockchain 82 (3- (2) in FIG. 12 and S1504 in FIG. 15), the retry server 40 reissues the transaction 88 stored in the lost block 84. (Broadcast) (3- (3) in FIG. 12 and S1506 in FIG. 15).

上述したように、本実施の形態の取引システム10は、ブロックチェーン82に接続されたブロック84が失われた場合、失われたブロック84に記憶されていたトランザクション88を再度ブロードキャストする。取引システム10は、このように機能するため、取引システム10がブロードキャストしたトランザクション88に記憶された取引は、時間の経過に伴って必ず確定する。従って、取引の実際の確定を待つことなく、利用者システム60に対して取引の確定を通知できる。 As described above, when the block 84 connected to the blockchain 82 is lost, the trading system 10 of the present embodiment broadcasts the transaction 88 stored in the lost block 84 again. Since the transaction system 10 functions in this way, the transactions stored in the transaction 88 broadcast by the transaction system 10 are always fixed with the passage of time. Therefore, it is possible to notify the user system 60 of the confirmation of the transaction without waiting for the actual confirmation of the transaction.

以上に説明したように、本実施の形態の取引システム10によれば、利用者システム60に対して、送金取引が確定することを保証できる。例えば、ブロックチェーン82にロールバックが発生した場合でも、利用者システム60は、送金をやり直す必要がない。また、利用者システム60の所定口座から他の利用者システム60の所定口座に送金する場合、取引システム10は、他の利用者システム60に対しても、送金取引が確定することを保証できる。例えば、他の利用者システム60の利用者が小売店であり、利用者システム60の利用者が消費者である場合、小売店は、消費者からの仮想通貨の送金と同時に、消費者に商品を安心して提供できる。 As described above, according to the transaction system 10 of the present embodiment, it is possible to guarantee that the remittance transaction is confirmed with respect to the user system 60. For example, even if a rollback occurs in the blockchain 82, the user system 60 does not need to redo the remittance. Further, when remittance is made from a predetermined account of the user system 60 to a predetermined account of another user system 60, the transaction system 10 can guarantee that the remittance transaction is confirmed to the other user system 60 as well. For example, when the user of the other user system 60 is a retail store and the user of the user system 60 is a consumer, the retail store transfers the product to the consumer at the same time as the transfer of the virtual currency from the consumer. Can be provided with peace of mind.

10 取引システム
20 取引サーバ
30 手数料管理サーバ
40 リトライサーバ
50 記憶装置
52 利用者情報
522 利用者特定データ
524 利用者認証データ
53 取引口座
532 口座アドレス
534 利用者特定データ
54 預かり鍵
542 口座アドレス
544 第2秘密鍵
56 手数料情報
562 最低手数料
58 トランザクション保存空間
60 利用者システム
60T 取引端末
62 取引アプリ
64 利用者鍵
642 第1秘密鍵
644 第1公開鍵
646 口座アドレス
66 入力装置
68 表示装置
70 マイニングシステム
78 トランザクション保存空間
80 仮想通貨ネットワーク
82 ブロックチェーン
84 ブロック
84H ブロックヘッダー
842 ブロックハッシュ
846 ナンス
848 トランザクション領域
88 トランザクション
88C コインベーストランザクション
88I 入力部
882 送金元アドレス
884 署名データ
88O 出力部
886 送金先アドレス
888 仮想通貨送金額
889 手数料
92 有線通信網
94 無線通信網
96 LAN
10 Trading system 20 Trading server 30 Fee management server 40 Retry server 50 Storage device 52 User information 522 User specific data 524 User authentication data 53 Trading account 532 Account address 534 User specific data 54 Deposit key 542 Account address 544 Second Private key 56 Fee information 562 Minimum fee 58 Transaction storage space 60 User system 60T Trading terminal 62 Trading application 64 User key 642 1st private key 644 1st public key 646 Account address 66 Input device 68 Display device 70 Mining system 78 Transaction Storage space 80 Virtual currency network 82 Blockchain 84 Block 84H Block header 842 Block hash 846 Nance 848 Transaction area 88 Transaction 88C Coin-based transaction 88I Input unit 882 Remittance source address 884 Signed data 88O Output unit 886 Remittance destination address 888 Virtual currency remittance amount 889 Fee 92 Wired communication network 94 Wireless communication network 96 LAN

Claims (3)

仮想通貨の送金を含む取引のための取引システムであって、
前記仮想通貨の前記送金は、前記送金を記憶したトランザクションが仮想通貨ネットワークにブロードキャストされて前記仮想通貨ネットワークのブロックに取り込まれ、前記ブロックが前記仮想通貨ネットワークのブロックチェーンに接続された後に確定し、
前記取引システムは、1以上の利用者システムと通信可能に接続されており、前記利用者システムから、前記仮想通貨の口座からの前記送金の依頼である送金依頼を受信可能であり、
前記取引システムは、前記利用者システムから、前記口座である所定口座からの前記送金依頼である所定送金依頼を受信すると、前記所定送金依頼に応じて、前記送金を記憶した前記トランザクションである所定トランザクションを前記仮想通貨ネットワークにブロードキャストし、
前記取引システムは、前記所定トランザクションに多重署名を施してブロードキャストした場合、その後に、前記利用者システムから、前記所定口座からの前記送金依頼である後続送金依頼を受信すると、前記所定送金依頼による前記送金が確定しているか否かに拘わらず、前記後続送金依頼に応じて、前記送金を記憶した前記トランザクションを前記仮想通貨ネットワークにブロードキャストし、
前記取引システムは、前記ブロックチェーンに接続された前記ブロックが失われた場合、失われた前記ブロックに記憶されていた前記トランザクションを再度ブロードキャストする
取引システム。
A trading system for transactions including remittance of virtual currency
The remittance of the virtual currency is confirmed after the transaction storing the remittance is broadcast to the virtual currency network and incorporated into a block of the virtual currency network, and the block is connected to the blockchain of the virtual currency network.
The trading system is communicably connected to one or more user systems, and can receive a remittance request, which is a remittance request from the virtual currency account, from the user system.
When the transaction system receives the predetermined remittance request, which is the remittance request, from the predetermined account, which is the account, the transaction system is the transaction that stores the remittance in response to the predetermined remittance request. To the virtual currency network
When the transaction system broadcasts the predetermined transaction with multiple signatures, and then receives a subsequent remittance request, which is the remittance request from the predetermined account, from the user system, the said remittance request is made. Regardless of whether the remittance is confirmed or not, in response to the subsequent remittance request, the transaction that stores the remittance is broadcast to the virtual currency network .
The trading system re-broadcasts the transaction stored in the lost block when the block connected to the blockchain is lost .
請求項1記載の取引システムであって、
前記取引システムは、前記利用者システムに最低手数料を送信し、
前記最低手数料は、前記トランザクションが前記ブロックに取り込まれる際の手数料の基準を示すものである
取引システム。
The trading system according to claim 1.
The trading system sends a minimum fee to the user system and
The minimum fee is a trading system that indicates a standard of fees when the transaction is incorporated into the block.
請求項2記載の取引システムであって、
前記利用者システムは、前記送金依頼において前記手数料を指定でき、
前記取引システムは、指定された前記手数料が手数料条件を満たす場合、前記送金依頼に応じて前記トランザクションをブロードキャストする
取引システム。
The trading system according to claim 2.
The user system can specify the fee in the remittance request.
The transaction system is a transaction system that broadcasts the transaction in response to the remittance request when the designated fee satisfies the fee condition.
JP2019078276A 2019-04-17 2019-04-17 Trading system Active JP6776396B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019078276A JP6776396B2 (en) 2019-04-17 2019-04-17 Trading system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019078276A JP6776396B2 (en) 2019-04-17 2019-04-17 Trading system

Publications (2)

Publication Number Publication Date
JP6776396B2 true JP6776396B2 (en) 2020-10-28
JP2020177377A JP2020177377A (en) 2020-10-29

Family

ID=72935619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019078276A Active JP6776396B2 (en) 2019-04-17 2019-04-17 Trading system

Country Status (1)

Country Link
JP (1) JP6776396B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6571375B2 (en) * 2015-04-24 2019-09-04 国立大学法人 筑波大学 Copyright protection support device
WO2017170997A1 (en) * 2016-03-31 2017-10-05 株式会社bitFlyer Hierarchical network system, and node and program used in same
JP6511017B2 (en) * 2016-06-03 2019-05-08 日本電信電話株式会社 Contract agreement method, agreement verification method, contract agreement device and agreement verification device
JP6885457B2 (en) * 2017-03-29 2021-06-16 日本電気株式会社 Virtual currency payment agency, virtual currency payment agency method and program
US10762479B2 (en) * 2017-04-05 2020-09-01 Samsung Sds Co., Ltd. Method and system for processing blockchain-based real-time transaction
US11049104B2 (en) * 2017-04-05 2021-06-29 Samsung Sds Co., Ltd. Method of processing payment based on blockchain and apparatus thereof

Also Published As

Publication number Publication date
JP2020177377A (en) 2020-10-29

Similar Documents

Publication Publication Date Title
US11687924B2 (en) Cryptocurrency infrastructure system
US11764973B2 (en) Systems and methods for creating a universal record
US10558820B2 (en) System and method for maintaining a segregated database in a multiple distributed ledger system
US11665005B2 (en) Event communication and verification through a blockchain network
EP3414720B1 (en) Methods and systems for using digital signatures to create trusted digital asset transfers
US10592985B2 (en) Systems and methods for a commodity contracts market using a secure distributed transaction ledger
EP3439231A1 (en) Private node, processing method for private node, and program for same
KR20190099076A (en) Electronic bill management methods, devices and recording media
US10693646B2 (en) Event execution using a blockchain approach
KR20180014534A (en) Verification system and method for transaction based block chain
WO2018013144A1 (en) Digital asset distribution by transaction device
WO2018087836A1 (en) Blockchain transaction system and blockchain transaction method
KR102407187B1 (en) Method for charging electronic money automatically based on blockchain and system thereof
US11038685B1 (en) Correcting blockchain transactions with cryptocurrency type mistakes
US20200013045A1 (en) Stake pool for a secure and trusted data communication system
JP7447127B2 (en) Preventing the sending of accidental copies of data records to a distributed ledger system
CN111476670A (en) Block chain rollback insurance method, equipment and storage medium
JP6776396B2 (en) Trading system
KR20200119671A (en) method of distributing digital content by the amount of issuance, server performing the method, and computer program
KR20170099152A (en) Method and server for registering stockholder's list and recording transfer of stock ownership
CN109816525A (en) A kind of data processing method and its device, medium, terminal
TWM605762U (en) Transaction risk estimation system
Yu et al. Collusion attacks and fair time-locked deposits for fast-payment transactions in Bitcoin
JP2021036357A (en) Transaction execution method and system
WO2023123153A1 (en) Systems and methods for miner fee settlement between wallets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200730

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: 20200909

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201007

R150 Certificate of patent or registration of utility model

Ref document number: 6776396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250