JP5858506B1 - Virtual currency management program and virtual currency management method - Google Patents

Virtual currency management program and virtual currency management method Download PDF

Info

Publication number
JP5858506B1
JP5858506B1 JP2015080222A JP2015080222A JP5858506B1 JP 5858506 B1 JP5858506 B1 JP 5858506B1 JP 2015080222 A JP2015080222 A JP 2015080222A JP 2015080222 A JP2015080222 A JP 2015080222A JP 5858506 B1 JP5858506 B1 JP 5858506B1
Authority
JP
Japan
Prior art keywords
user
transaction
public key
remittance
information
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
JP2015080222A
Other languages
Japanese (ja)
Other versions
JP2016200954A (en
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.)
ORB Inc
Original Assignee
ORB Inc
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 ORB Inc filed Critical ORB Inc
Priority to JP2015080222A priority Critical patent/JP5858506B1/en
Application granted granted Critical
Publication of JP5858506B1 publication Critical patent/JP5858506B1/en
Publication of JP2016200954A publication Critical patent/JP2016200954A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】鍵ペアを更新後も、更新前に利用していた仮想通貨を継続して利用可能とする、仮想通貨管理プログラム、及び仮想通貨管理方法を提供する。【解決手段】ユーザの識別子と、ユーザの公開鍵との対応関係を示すマッピング情報を記憶する手段、仮想通貨を第1のユーザに送金する第1の取引における、第1のユーザの識別子を含む第1の取引情報と、第1の取引により送金された金額の少なくとも一部を第1のユーザが送金する第2の取引における、第1のユーザの第1の公開鍵及び第1の電子署名を含む第2の取引情報とを記憶する手段、及び第2の取引情報に含まれる第1の公開鍵が、マッピング情報において、第1の取引情報に含まれる第1のユーザの識別子に対応付けられているか否か、及び、第2の取引情報に含まれる第1の公開鍵で第2の取引情報に含まれる第1の電子署名を検証できるか否かに基づいて、第2の取引の正当性を検証する手段、を備える。【選択図】図7The present invention provides a virtual currency management program and a virtual currency management method that allow a virtual currency used before the update to be continuously used even after the key pair is updated. Means for storing mapping information indicating a correspondence relationship between a user identifier and a user public key, including a first user identifier in a first transaction in which a virtual currency is transferred to the first user The first public information and the first electronic signature of the first user in the second transaction in which the first user remits at least a part of the first transaction information and the amount remitted by the first transaction And the first public key included in the second transaction information is associated with the identifier of the first user included in the first transaction information in the mapping information. Based on whether the first electronic signature included in the second transaction information can be verified with the first public key included in the second transaction information. Means for verifying validity. [Selection] Figure 7

Description

本発明は、仮想通貨管理プログラム、及び仮想通貨管理方法等に関する。   The present invention relates to a virtual currency management program, a virtual currency management method, and the like.

近年、円やドルといった現実の貨幣による物品の取引だけでなく、電子マネー等の仮想通貨を用いた商取引が行われている。非特許文献1には、ビットコインと呼ばれる仮想通貨を用いて取引を行う技術について開示されている。
ビットコインによる取引では、ハッシュ関数と公開鍵暗号方式とを用いて、取引データの完全性が担保されている。暗号化を用いて行われた取引(以下、ビットコインの取引を「トランザクション」とも呼ぶ。)は、ビットコインを利用する全端末に対してブロードキャストで配信される。配信されたトランザクションは、マイナー(発掘者)と呼ばれる端末ソフトウェアによって正当性が検証され、発掘されたブロックにまとめられ、ブロックチェーンと呼ばれる台帳に記録され、それが他のマイナーたちにより追認されることで承認される。
In recent years, not only transactions of goods using real money such as yen and dollars but also business transactions using virtual currency such as electronic money have been carried out. Non-Patent Document 1 discloses a technique for performing a transaction using a virtual currency called bitcoin.
In the transaction using Bitcoin, the integrity of the transaction data is secured using a hash function and a public key cryptosystem. Transactions performed using encryption (hereinafter, bitcoin transactions are also referred to as “transactions”) are distributed by broadcast to all terminals using bitcoins. The delivered transaction is verified by terminal software called a miner (excavator), compiled into excavated blocks, recorded in a ledger called blockchain, and confirmed by other miners Approved by

非特許文献1には、公開鍵を用いてビットコインのコインの所有者を識別する方法について開示されている。非特許文献1に記載の方法によれば、コインの現在の所有者は、相手にコインを支払う際、現在のコイン(自分に宛てられたコインのデータ)と相手の公開鍵を合わせたデータに対して、ハッシュ関数を適用し、自分の秘密鍵を用いて署名を施す。コインを受け取った相手は、その一つ手前の取引におけるコインの受け手の公開鍵を用いて署名を検証すると共に、ハッシュ値を再計算することで、コインが正当な所有者から自分宛てに渡されたことを確認することができる。   Non-Patent Document 1 discloses a method for identifying the owner of a bit coin using a public key. According to the method described in Non-Patent Document 1, when the current owner of the coin pays the coin to the opponent, the current coin (data of the coin addressed to him) and the data of the opponent's public key are combined. On the other hand, a hash function is applied, and a signature is applied using its own secret key. The recipient of the coin verifies the signature using the public key of the coin recipient in the previous transaction, and recalculates the hash value, so that the coin is delivered to himself / herself from the rightful owner. Can be confirmed.

斉藤賢爾著、「これでわかった ビットコイン [生き残る通貨の条件]」、初版、太郎次郎社エディタス、2014年5月5日、p.92By Kengo Saito, “Bitcoin I understand now [Conditions for Surviving Currency]”, first edition, Taro Jiro Editors, May 5, 2014, p. 92

非特許文献1に記載の方法の場合、ビットコインのシステム内では、ユーザは公開鍵によって識別され、秘密鍵によってコインの所有者であることを証明する。そのため、たとえばユーザが秘密鍵を紛失してしまった場合、そのユーザは、自分が鍵を紛失する前のユーザと同一ユーザであることを証明できなくなってしまう。その結果、そのユーザはこれまで所有していたコインを利用することができなくなってしまう。   In the case of the method described in Non-Patent Document 1, in the Bitcoin system, the user is identified by the public key and proves that it is the coin owner by the private key. Therefore, for example, if the user loses the secret key, the user cannot prove that the user is the same user as the user before the key is lost. As a result, the user cannot use the coins that have been owned so far.

そこで、本発明は、上記事情に鑑み、鍵ペアを更新後も、更新前に利用していた仮想通貨を継続して利用可能とするための、仮想通貨管理プログラム、及び仮想通貨管理方法を提供することを目的とするものである。   Therefore, in view of the above circumstances, the present invention provides a virtual currency management program and a virtual currency management method for making it possible to continuously use a virtual currency that has been used before the update even after the key pair is updated. It is intended to do.

本発明による仮想通貨管理プログラムは、コンピュータを、ユーザの識別子と、当該ユーザの公開鍵との対応関係を示すマッピング情報を記憶する記憶手段、仮想通貨を第1のユーザに送金する第1の取引における、第1のユーザの識別子を含む第1の取引情報と、第1の取引により送金された金額の少なくとも一部を第1のユーザが送金する第2の取引における、第1のユーザの第1の公開鍵及び第1の電子署名を含む第2の取引情報とを記憶する記憶手段、及び第2の取引情報に含まれる第1の公開鍵が、マッピング情報において、第1の取引情報に含まれる第1のユーザの識別子に対応付けられているか否か、及び、第2の取引情報に含まれる第1の公開鍵で第2の取引情報に含まれる第1の電子署名を検証できるか否かに基づいて、第2の取引の正当性を検証する検証手段として機能させるものを含む。   The virtual currency management program according to the present invention is a first transaction in which a computer stores storage information for storing mapping information indicating a correspondence relationship between a user identifier and a public key of the user, and remits the virtual currency to the first user. In the second transaction in which the first user remits at least part of the first transaction information including the identifier of the first user and the amount remitted by the first transaction. The storage means for storing the first public key and the second transaction information including the first electronic signature, and the first public key included in the second transaction information are included in the first transaction information in the mapping information. Whether or not the first electronic signature included in the second transaction information can be verified with the first public key included in the second transaction information, whether or not it is associated with the identifier of the first user included Based on whether or not Including those which function as a verification means for verifying the validity of the second transaction.

また、本発明による仮想通貨管理方法は、コンピュータが、ユーザの識別子と、当該ユーザの公開鍵との対応関係を示すマッピング情報を記憶するステップと、仮想通貨を第1のユーザに送金する第1の取引における、第1のユーザの識別子を含む第1の取引情報と、第1の取引により送金された金額の少なくとも一部を第1のユーザが送金する第2の取引における、第1のユーザの第1の公開鍵及び第1の電子署名を含む第2の取引情報とを記憶するステップと、第2の取引情報に含まれる第1の公開鍵が、マッピング情報において、第1の取引情報に含まれる第1のユーザの識別子に対応付けられているか否か、及び、第2の取引情報に含まれる第1の公開鍵で第2の取引情報に含まれる第1の電子署名を検証できるか否かに基づいて、第2の取引の正当性を検証するステップと、を実行する方法を含む。   The virtual currency management method according to the present invention includes a step in which a computer stores mapping information indicating a correspondence relationship between a user identifier and the public key of the user, and a first remittance of the virtual currency to the first user. The first user in the second transaction in which the first user remits at least a part of the first transaction information including the identifier of the first user in the transaction and the amount repaid by the first transaction Storing the first public key and the second transaction information including the first electronic signature, and the first public key included in the second transaction information is the first transaction information in the mapping information. The first electronic signature included in the second transaction information can be verified with the first public key included in the second transaction information. Based on whether or not Including how to perform the steps of verifying the validity of the second transaction, the.

本発明のプログラムは、CD−ROM等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。   The program of the present invention can be installed or loaded on a computer through various recording media such as an optical disk such as a CD-ROM, a magnetic disk, or a semiconductor memory, or via a communication network.

また、本明細書等において、「部」とは、単に物理的構成を意味するものではなく、その構成が有する機能をソフトウェアによって実現する場合も含む。また、1つの構成が有する機能が2つ以上の物理的構成により実現されても、2つ以上の構成の機能が1つの物理的構成により実現されてもよい。   Further, in this specification and the like, the “unit” does not simply mean a physical configuration, but also includes a case where the functions of the configuration are realized by software. In addition, functions of one configuration may be realized by two or more physical configurations, or functions of two or more configurations may be realized by one physical configuration.

本発明によれば、鍵ペアを更新後も、更新前に利用していた仮想通貨を継続して利用可能とするための、仮想通貨管理プログラム、及び仮想通貨管理方法を提供することができる。   According to the present invention, it is possible to provide a virtual currency management program and a virtual currency management method for making it possible to continuously use a virtual currency that has been used before the update even after the key pair is updated.

本発明の実施形態における仮想通貨システムの構成図である。It is a block diagram of the virtual currency system in embodiment of this invention. 本発明の実施形態における端末の機能ブロックの一例を示す図である。It is a figure which shows an example of the functional block of the terminal in embodiment of this invention. 本発明の実施形態におけるマッピング情報の構造の一例を示す図である。It is a figure which shows an example of the structure of the mapping information in embodiment of this invention. 本発明の実施形態における仮想通貨の、経過時間と減価額との対応関係の一例を示す図である。It is a figure which shows an example of the correspondence of the elapsed time and the depreciation of the virtual currency in the embodiment of the present invention. 本発明の実施形態における送金トランザクションの一例を示す図である。It is a figure which shows an example of the remittance transaction in embodiment of this invention. 本発明の実施形態におけるマップトランザクションの一例を示す図である。It is a figure which shows an example of the map transaction in embodiment of this invention. 本発明の実施形態におけるID認証処理の流れの一例を示す図である。It is a figure which shows an example of the flow of ID authentication processing in embodiment of this invention. 本発明の実施形態における更新許可処理の流れの一例を示す図である。It is a figure which shows an example of the flow of the update permission process in embodiment of this invention. 本発明の実施形態におけるマイニング処理の流れの一例を示す図である。It is a figure which shows an example of the flow of the mining process in embodiment of this invention. 本発明の実施形態における端末のハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of the terminal in embodiment of this invention.

[第1の実施形態]
以下、本発明の実施の形態の1つについて詳細に説明する。なお、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均等なものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。またさらに、必要に応じて示す上下左右等の位置関係は、特に断らない限り、図示の表示に基づくものとする。さらにまた、図面における各種の寸法比率は、その図示の比率に限定されるものではない。
[First Embodiment]
Hereinafter, one embodiment of the present invention will be described in detail. The following embodiments are examples for explaining the present invention, and are not intended to limit the present invention only to the embodiments. The present invention can be variously modified without departing from the gist thereof. Furthermore, those skilled in the art can employ embodiments in which the elements described below are replaced with equivalent ones, and such embodiments are also included in the scope of the present invention. Furthermore, positional relationships such as up, down, left, and right shown as needed are based on the display shown unless otherwise specified. Furthermore, various dimensional ratios in the drawings are not limited to the illustrated ratios.

<1.システム構成の概要>
図1は、仮想通貨システム10の構成の一例を示している。図1に示すように、仮想通貨システム10は、本発明に係る仮想通貨管理プログラムをインストールした、複数のクライアント装置同士が互いに通信を行う、P2Pの構成となっている。図1の例では、仮想通貨を用いて取引を行うユーザのクライアント端末を端末100A〜C(以下、端末100A〜Cをまとめて「端末100」とも呼ぶ。)、送金トランザクションの検証や承認を行うユーザのクライアント端末を端末200A〜C(以下、端末200A〜Cをまとめて「端末200」とも呼ぶ。)として説明する。
<1. Overview of system configuration>
FIG. 1 shows an example of the configuration of the virtual currency system 10. As shown in FIG. 1, the virtual currency system 10 has a P2P configuration in which a plurality of client devices that have installed the virtual currency management program according to the present invention communicate with each other. In the example of FIG. 1, client terminals of users who perform transactions using virtual currency are terminals 100A to 100C (hereinafter, terminals 100A to 100C are collectively referred to as “terminal 100”), and remittance transactions are verified and approved. The user's client terminal will be described as terminals 200A to 200C (hereinafter, terminals 200A to 200C are collectively referred to as “terminal 200”).

端末100及び端末200は、インターネットや専用線等のネットワーク400に接続されたコンピュータである。具体的には、携帯電話やスマートフォン、PC(Personal Computer)、PDA(Personal Digital Assistants)、タブレット、ウェアラブル(Wearable)端末等が挙げられるが、これに限られない。ネットワーク400に有線又は無線で接続された装置100及び200が、互いに通信可能に設定されることにより、仮想通貨システム10を構成する。なお、本実施形態において、仮想通貨システム10は、P2P型のシステムであるとして説明するが、これに限定されるものではない。例えば、仮想通貨システム10は、クラウドコンピューティング形式のシステムとして構成されてもよい。この場合、ユーザは、仮想通貨システム10のコンピュータ処理をネットワーク経由でサービスとして利用する。また、仮想通貨システム10は、ASP(Application Service Provider)のサーバを含むシステムとして構成されてもよい。   The terminal 100 and the terminal 200 are computers connected to a network 400 such as the Internet or a dedicated line. Specific examples include a mobile phone, a smartphone, a PC (Personal Computer), a PDA (Personal Digital Assistant), a tablet, and a wearable terminal. The devices 100 and 200 connected to the network 400 by wire or wirelessly are set to be communicable with each other, so that the virtual currency system 10 is configured. In the present embodiment, the virtual currency system 10 is described as being a P2P type system, but is not limited thereto. For example, the virtual currency system 10 may be configured as a cloud computing system. In this case, the user uses the computer processing of the virtual currency system 10 as a service via the network. Moreover, the virtual currency system 10 may be configured as a system including an ASP (Application Service Provider) server.

<2.仮想通貨の概要>
まず、仮想通貨システム10によって提供される仮想通貨(以下、仮想通貨システム10によって提供される仮想通貨を「オーブ」とも呼ぶ。)の概要について説明する。オーブは既存のビットコインと同様に、インターネットを用いたP2Pデジタル通貨であり、公開鍵暗号方式とハッシュ関数を用いたデジタル署名によって取引情報の完全性が担保されている。また、オーブの取引に関する情報や履歴は、仮想通貨システム10全体で分散して管理される。なお、本実施形態においてオーブは最小単位が「1Orb」である通貨として説明する。
<2. Overview of virtual currency>
First, the outline of the virtual currency provided by the virtual currency system 10 (hereinafter, the virtual currency provided by the virtual currency system 10 is also referred to as “orb”) will be described. Orb is a P2P digital currency using the Internet, like the existing Bitcoin, and the integrity of transaction information is secured by a digital signature using a public key cryptosystem and a hash function. In addition, information and history regarding orb transactions are distributed and managed in the entire virtual currency system 10. In the present embodiment, the orb will be described as a currency whose minimum unit is “1Orb”.

オーブを利用するユーザは、まず仮想通貨管理プログラムをインストールする必要がある。仮想通貨管理プログラムには、ウォレットツールとマイニングツールとが含まれていることが望ましい。ウォレットツールは、オーブの購入やオーブを用いた取引を行うために必要なツールをいう。一方で、マイニングツールは、オーブを用いた取引の完全性や整合性を検証し、取引を承認するために必要なツールをいう。   A user who uses an orb must first install a virtual currency management program. The virtual currency management program preferably includes a wallet tool and a mining tool. The wallet tool is a tool necessary to purchase orbs and conduct transactions using the orbs. On the other hand, the mining tool refers to a tool necessary for verifying the integrity and consistency of a transaction using an orb and approving the transaction.

ウォレットツールをクライアント端末にインストールしたユーザは、ネットワーク400に一意なIDを生成する必要がある。IDは、たとえば、ユーザのメールアドレスと任意の単語とを組み合わせた文字列のハッシュ値である。生成したIDは、オーブの購入や送金に利用する公開鍵と紐づけられ、後述するマッピング情報と呼ばれる構造体で管理される。マッピング情報の生成や更新に関するデータ(以下、マッピング情報の生成や更新に関するデータを「マップトランザクション」とも呼ぶ。)は、ネットワーク400全体で共有される。   A user who has installed the wallet tool on the client terminal needs to generate a unique ID in the network 400. The ID is, for example, a hash value of a character string that combines a user's mail address and an arbitrary word. The generated ID is associated with a public key used for orb purchase and remittance, and is managed by a structure called mapping information described later. Data relating to the generation and update of mapping information (hereinafter, data relating to the generation and update of mapping information is also referred to as “map transaction”) is shared by the entire network 400.

マッピング情報を生成したユーザは、オーブを購入することができるようになる。「オーブを購入する」とは、仮想通貨システム10に新たなオーブを発生させることをいう。具体的には、ユーザによって、任意の金額の現実の通貨からオーブへと換金されることを指す。   The user who generated the mapping information can purchase the orb. “Purchase an orb” means that a new orb is generated in the virtual currency system 10. Specifically, it means that an arbitrary amount of real currency is converted into an orb by the user.

さらにユーザは、購入したオーブを他のユーザに送金することができる。「オーブを送金する」とは、元の所有者から新たな所有者へとオーブの受け渡しが行われることをいう。   Further, the user can remit the purchased orb to another user. “Transmit the orb” means that the orb is transferred from the original owner to the new owner.

オーブの購入や送金に関するデータ(以下、オーブの購入や送金に関するデータを「送金トランザクション」とも呼ぶ。特に、オーブの購入に関するデータを「通貨発生トランザクション」とも呼ぶ。)は、後述するブロックチェーンと呼ばれる構造体によって管理される。ブロックチェーンは、ブロックと呼ばれるデータが時系列に並べられたものであり、オーブの送金を記した台帳としての役割を有している。マイニングツールをウォレットツールに加えてクライアント端末にインストールしたユーザ(以下、ウォレットツールのみをインストールしたユーザを単に「ユーザ」と呼び、ウォレットツールとマイニングツールとをインストールしたユーザを「マイナー」と呼ぶ。)は、送金トランザクションの正当性を検証し、正当な送金トランザクションを承認することができる。さらにマイナーは、承認済みの送金トランザクションから構成されるブロックを生成(以下、ブロックを生成することを「ブロックを発掘する」とも呼ぶ。)して、ブロックチェーンにつなぐことができる。   Data related to orb purchase and remittance (hereinafter, data related to orb purchase and remittance is also referred to as “remittance transaction”. In particular, data related to orb purchase is also referred to as “currency generation transaction”) is referred to as a block chain described later. Managed by a structure. The block chain is a series of data called blocks, and serves as a ledger that records the remittance of orbs. A user who has installed the mining tool on the client terminal in addition to the wallet tool (hereinafter, a user who has installed only the wallet tool is simply referred to as “user”, and a user who has installed the wallet tool and mining tool is referred to as “minor”) Can verify the validity of the remittance transaction and approve the valid remittance transaction. Further, the miner can generate a block composed of approved remittance transactions (hereinafter, generating the block is also referred to as “excavating the block”) and connecting it to the block chain.

なお、オーブは、購入時から時間の経過とともに、減価するように構成されている。そのため、オーブを購入したユーザは、オーブが減価によって消滅してしまう前に消費する必要がある。オーブが減価するように構成されることで、ユーザは投資の対象とせず、結果として、オーブの価値を安定させることが可能になる。   The orb is configured to depreciate as time passes from the time of purchase. Therefore, the user who purchased the orb needs to consume it before the orb disappears due to depreciation. By configuring the orb to depreciate, the user is not the target of the investment, and as a result, the value of the orb can be stabilized.

<3.機能構成>
次に、図2を用いて、本実施形態に係る仮想通貨管理プログラムをインストールした端末100及び200の機能構成について説明する。
<3−1.ウォレットツールの機能>
図2(A)は、ウォレットツールをインストールした、端末100の機能ブロック図の一例を示す図である。ウォレットツールをインストールした端末100には、送金トランザクションDB131と、ブロック情報DB132と、マッピング情報DB133と、口座情報DB134と、マップトランザクション情報DB135と、送金受付部101と、インプットデータ作成部102と、アウトプットデータ作成部103と、送金トランザクション配信部104と、マッピング部105とが構築されることが望ましい。
<3. Functional configuration>
Next, the functional configuration of the terminals 100 and 200 installed with the virtual currency management program according to the present embodiment will be described with reference to FIG.
<3-1. Wallet Tool Functions>
FIG. 2A is a diagram illustrating an example of a functional block diagram of the terminal 100 in which the wallet tool is installed. The terminal 100 in which the wallet tool is installed has a remittance transaction DB 131, a block information DB 132, a mapping information DB 133, an account information DB 134, a map transaction information DB 135, a remittance acceptance unit 101, an input data creation unit 102, and an output. It is desirable to construct a data creation unit 103, a remittance transaction delivery unit 104, and a mapping unit 105.

送金トランザクション情報DB131には、端末100又は200がネットワーク400にブロードキャストで配信した送金トランザクションの履歴が保存されている。1つの送金トランザクションには、通常、インプットデータ、アウトプットデータ、送金トランザクションが発生した時刻、送金トランザクションが後述するブロックチェーンに追加された時刻が含まれることが望ましい。なお、オーブの購入時に配信される通貨発生トランザクションには、インプットデータは含まれないとしてもよい。   The remittance transaction information DB 131 stores a history of remittance transactions distributed by the terminal 100 or 200 to the network 400 by broadcast. In general, it is desirable that one remittance transaction includes input data, output data, the time when the remittance transaction occurred, and the time when the remittance transaction was added to the block chain described later. Note that the currency generation transaction distributed at the time of purchasing the orb may not include input data.

送金トランザクションのアウトプットデータには、送金されるオーブの金額と、送金先のユーザIDとが含まれていることが望ましい。   The output data of the remittance transaction preferably includes the amount of the orb to be remittance and the user ID of the remittance destination.

送金トランザクションのインプットデータには、今回送金するオーブを送金元ユーザが受け取った送金トランザクションのアウトプットデータへのポインタと、後述する電子署名作成処理によって作成される送金元ユーザの電子署名と、送金元ユーザの公開鍵とが含まれていることが望ましい。   The input data of the remittance transaction includes a pointer to the output data of the remittance transaction that the remittance user received the orb to be retransmitted this time, the electronic signature of the remittance source user created by the electronic signature creation process described later, and the remittance source It is desirable to include the user's public key.

オーブを用いた取引では、過去に受け取った、又は購入したオーブを送金対象として指定し、別のユーザへと送金する。そのため、送金を行う際には、過去の送金トランザクションから、送金元ユーザが送金先ユーザとなったアウトプットデータを今回の送金対象として指定する必要がある。このように、オーブの送金トランザクションは、インプットデータが1つ前のアウトプットデータへのポインタを有する構造をしている。その結果、すべての送金トランザクションは、通貨発生トランザクションまでポインタを介して数珠つなぎとなるデータ構造となっている。   In a transaction using an orb, an orb received or purchased in the past is designated as a remittance target and remittance to another user. For this reason, when performing remittance, it is necessary to designate output data in which the remittance source user has become the remittance destination user from the past remittance transaction as the remittance target this time. As described above, the orb remittance transaction has a structure in which the input data has a pointer to the previous output data. As a result, all remittance transactions have a data structure that is linked to each other through a pointer to the currency generation transaction.

ブロック情報DB132には、生成されたブロックに関する情報が保存されている。ブロックには、マイナーが正当性を検証して承認した複数の送金トランザクションやマップトランザクションが格納されている。オーブの購入や送金、マッピング情報の生成や更新は、ブロックチェーンと呼ばれる構造体によって管理されている。ブロックチェーンは、ブロックと呼ばれるデータが時系列に並べられたものをいう。ブロックチェーンは仮想通貨システム10の全端末が共有するが、ユーザはブロックチェーンのうち自己が関心をもつ部分のみを所持していればよい。マイナーはブロックチェーンの全体を所持していることが望ましい。
ブロックには、1つ前のブロックのハッシュ値、及び複数の送金トランザクションが含まれている。
The block information DB 132 stores information about the generated block. The block stores a plurality of remittance transactions and map transactions that the miner has verified and approved. Orb purchase and remittance, and generation and update of mapping information are managed by a structure called a block chain. A block chain refers to data called blocks arranged in time series. The block chain is shared by all terminals of the virtual currency system 10, but the user only needs to have a portion of the block chain that he is interested in. It is desirable that the minor possesses the entire block chain.
The block includes a hash value of the previous block and a plurality of remittance transactions.

マッピング情報DB133には、ウォレットツールをインストールした全ユーザのマッピング情報が保存されている。図3は、マップトランザクションによって生成、更新されるマッピング情報の構造の一例を示す概念図である。図3に示すように、マッピング情報は、IDと、公開鍵と、公開鍵のスペア(以下、公開鍵のスペアを「スペアキー」とも呼ぶ。)と、複数の管理ユーザのIDが紐づけられた構造となっている。   The mapping information DB 133 stores mapping information of all users who have installed the wallet tool. FIG. 3 is a conceptual diagram showing an example of the structure of mapping information generated and updated by a map transaction. As shown in FIG. 3, the mapping information includes an ID, a public key, a public key spare (hereinafter, a public key spare is also referred to as a “spare key”), and IDs of a plurality of management users. It has a structure.

IDは、ウォレットツールをインストールした際に、ユーザが作成した、ネットワーク400において一意な識別子である。
管理ユーザは、そのIDに紐づけられた公開鍵の更新を許可されたユーザである。管理ユーザはたとえば、公開鍵の所有者と、自治体や企業等のオーブの発行元と、オーブの製造者との3人である。なお、管理ユーザは、公開鍵の所有者が任意に設定できるとしてもよい。また、管理ユーザは2人以上であることが望ましいがこれに限定されない。
図3の例ではスペアキーは1つしか登録されていないが、これに限定されず、複数のスペアキーが登録されていてもよい。さらに、スペアキーが登録されていない構成であってもよい。
なお、管理ユーザのマッピング情報も、マッピング情報DB133に記憶されている。
The ID is an identifier unique in the network 400 created by the user when the wallet tool is installed.
The administrative user is a user who is permitted to update the public key associated with the ID. For example, there are three administrative users: an owner of a public key, an orb issuer such as a local government or a company, and an orb manufacturer. The management user may be arbitrarily set by the owner of the public key. Moreover, although it is desirable that there are two or more management users, the present invention is not limited to this.
In the example of FIG. 3, only one spare key is registered. However, the present invention is not limited to this, and a plurality of spare keys may be registered. Furthermore, a configuration in which no spare key is registered may be used.
Note that the management user mapping information is also stored in the mapping information DB 133.

口座情報DB134には、端末100を利用するユーザの秘密鍵が保存されている。   The account information DB 134 stores the secret key of the user who uses the terminal 100.

マップトランザクション情報DB135には、端末100又は200がネットワーク400にブロードキャストで配信したマップトランザクションの履歴が保存されている。1つのマップトランザクションには、通常、インプットデータ、及びアウトプットデータが含まれることが望ましい。マップトランザクションは、ユーザがIDを作成する場合(以下、ユーザがIDを作成する場合に配信されるマップトランザクションを特に「ID発生トランザクション」とも呼ぶ。)や、ユーザが古い鍵ペア(以下、更新される古い鍵ペアを「旧鍵ペア」と呼び、このうち古い公開鍵を「旧鍵」とも呼ぶ。)から新しい鍵ペア(以下、新しい鍵ペアを「新鍵ペア」と呼び、このうち新しい公開鍵を「新鍵」とも呼ぶ。)へと鍵ペアの更新を行う場合に配信されるトランザクションである。   The map transaction information DB 135 stores a history of map transactions distributed by the terminal 100 or 200 to the network 400 by broadcast. In general, it is desirable that one map transaction includes input data and output data. The map transaction is performed when the user creates an ID (hereinafter, the map transaction delivered when the user creates an ID is also referred to as an “ID generation transaction”), or when the user uses an old key pair (hereinafter updated). The old key pair is called the "old key pair", the old public key is also called the "old key") and the new key pair (hereinafter the new key pair is called the "new key pair"). This is a transaction that is distributed when a key pair is updated to a new key.

マップトランザクションのアウトプットデータには、新鍵がユーザのIDに対応付けられた新たなマッピング情報(以下、新しいマッピング情報を「新マッピング」とも呼ぶ。また、更新される古いマッピング情報を「旧マッピング」とも呼ぶ。)が格納されていることが望ましい。   In the output data of the map transaction, new mapping information in which the new key is associated with the user ID (hereinafter, the new mapping information is also referred to as “new mapping”. The old mapping information to be updated is referred to as “old mapping”. Is also stored.

マップトランザクションのインプットデータには、ポインタと、所定の人数の管理ユーザの電子署名と公開鍵とが含まれていることが望ましい。ポインタは、今回更新される旧鍵を公開鍵に指定して、ユーザが過去にマッピング情報を更新または生成した、マップトランザクションのアウトプットデータを指し示すものである。
また、所定の人数の管理ユーザは、更新対象となるマッピング情報で指定されている複数の管理ユーザの少なくとも一部の人数の管理ユーザである。具体的には、旧マッピングでユーザがスペアキーとして登録した鍵を、新マッピングで公開鍵として指定する場合には、インプットデータには、管理ユーザの電子署名として、公開鍵の所有者の電子署名のみが含まれる。一方で、旧マッピングに登録されていない新たな鍵を新鍵として登録する場合には、たとえば3人の管理ユーザのうち、2人以上の電子署名が必要となる。
The input data of the map transaction preferably includes a pointer, a digital signature and a public key of a predetermined number of management users. The pointer indicates the output data of the map transaction in which the user has updated or generated mapping information in the past by designating the old key updated this time as the public key.
The predetermined number of management users is a management user of at least a part of the plurality of management users specified by the mapping information to be updated. Specifically, when the key registered by the user as the spare key in the old mapping is specified as the public key in the new mapping, only the electronic signature of the owner of the public key is included in the input data as the electronic signature of the management user. Is included. On the other hand, when a new key that is not registered in the old mapping is registered as a new key, for example, two or more electronic signatures of three management users are required.

マップトランザクションも送金トランザクションと同様に、インプットデータが1つ前のアウトプットデータへのポインタを有する構造をしている。その結果、すべてのマップトランザクションも、ID発生トランザクションまでポインタを介して数珠つなぎとなるデータ構造となっている。なお、ID発生トランザクションには、インプットデータは含まれないことが望ましい。   Similar to the remittance transaction, the map transaction has a structure in which the input data has a pointer to the previous output data. As a result, all the map transactions also have a data structure that is connected in a daisy chain through the pointer to the ID generation transaction. It is desirable that input data is not included in the ID generation transaction.

図1に戻り、ウォレットツールをインストールした端末100の各構成の続きを説明する。
送金受付部101は、ユーザから送金先のユーザと送金する金額との指定を受け付ける。送金受付部101は、送金受付画面を端末100のディスプレイに提示することが望ましい。また、送金受付部101は通貨購入画面をディスプレイに提示して、ユーザからオーブの購入を受け付けてもよい。
Returning to FIG. 1, the continuation of each component of the terminal 100 in which the wallet tool is installed will be described.
The remittance accepting unit 101 accepts designation of the remittance destination user and the amount of money to be remittance from the user. It is desirable that the remittance acceptance unit 101 presents a remittance acceptance screen on the display of the terminal 100. Further, the remittance accepting unit 101 may present the currency purchase screen on the display and accept the purchase of the orb from the user.

インプットデータ作成部102は、送金受付部101が受け付けた送金金額に応じて送金トランザクションのインプットデータを作成する。インプットデータ作成部102は、インプットデータを作成するために、以下の4つの処理を行う。
・送金対象検索処理
・減価額計算処理
・ポインタ指定処理
・電子署名作成処理
The input data creation unit 102 creates input data for a remittance transaction according to the remittance amount received by the remittance accepting unit 101. The input data creation unit 102 performs the following four processes in order to create input data.
・ Remittance object search processing ・ Price reduction calculation processing ・ Pointer designation processing ・ Digital signature creation processing

(送金対象検索処理)
インプットデータ作成部102は、送金対象検索処理として、まず、送金対象として用いることができるアウトプットデータを有する送金トランザクションを送金トランザクション情報DB131から検索することができる。たとえば、インプットデータ作成部102は、送金トランザクション情報DB131から、送金元ユーザのIDが、送金先IDとして指定されているアウトプットを有する送金トランザクションであって、他の送金トランザクションのインプットデータのポインタとして指定されていないアウトプットデータを有する送金トランザクションを抽出することが望ましい。
(Remittance target search process)
As the remittance target search process, the input data creation unit 102 can first search the remittance transaction information DB 131 for a remittance transaction having output data that can be used as a remittance target. For example, the input data creation unit 102 is a remittance transaction having an output in which the remittance source user ID is specified as the remittance destination ID from the remittance transaction information DB 131, and is used as a pointer for input data of another remittance transaction. It is desirable to extract remittance transactions that have unspecified output data.

(減価額計算処理)
次に、インプットデータ作成部102は、抽出した送金トランザクションのアウトプットデータに含まれる送金金額を参照し、現在までに減額した金額(減価額)を計算する。まず、インプットデータ作成部102は、抽出した送金トランザクションのインプットデータに含まれるポインタを順次参照していき、通貨発生トランザクションを抽出する。そして、インプットデータ作成部102は、通貨発生トランザクションのトランザクション発生時刻を参照し、現在時刻との差分に基づいて減価率を計算する。
(Depreciation calculation processing)
Next, the input data creation unit 102 refers to the remittance amount included in the output data of the extracted remittance transaction, and calculates the amount (reduced price) that has been reduced to date. First, the input data creation unit 102 sequentially refers to the pointers included in the input data of the extracted remittance transaction, and extracts a currency generation transaction. Then, the input data creation unit 102 refers to the transaction occurrence time of the currency generation transaction, and calculates the depreciation rate based on the difference from the current time.

図4は、時間の経過とオーブの残高率との対応関係の一例を示す図である。図4の例では、オーブが購入されてから10日経過するごとに現在の金額から10%減価する様子を示している。オーブの減価率が図4の表のように定義されている場合には、インプットデータ作成部102は、たとえば購入から22日経過したオーブに対しては、現在の残高は購入時の残高の81%であり、減価率は19%であると算出する。なお、オーブの減価の態様は図4の例に限定されず、たとえば、時間の経過ごとに一定金額が減額されるとしてもよいし、時間の経過につれて減価率が変化してもよい。
インプットデータ作成部102は、抽出した送金トランザクションのアウトプットデータの金額と計算した現在の減価率を用いて、当該金額の減価額を計算することができる。
FIG. 4 is a diagram illustrating an example of a correspondence relationship between the passage of time and the balance rate of the orb. In the example of FIG. 4, a state in which the current amount is deducted by 10% every 10 days after the orb is purchased is shown. When the depreciation rate of the orb is defined as shown in the table of FIG. 4, the input data creation unit 102, for example, for an orb that has passed 22 days from the purchase, the current balance is 81 of the balance at the time of purchase. % And the depreciation rate is calculated to be 19%. In addition, the aspect of the depreciation of the orb is not limited to the example of FIG. 4. For example, a certain amount of money may be reduced with the passage of time, or the depreciation rate may change with the passage of time.
The input data creation unit 102 can calculate a reduction amount of the amount using the amount of output data of the extracted remittance transaction and the calculated current depreciation rate.

(ポインタ指定処理)
次に、インプットデータ作成部102は、送金受付部101が受け付けた送金金額に基づいて、抽出した送金トランザクションの中から、ポインタを指定するのに適したアウトプットデータを選択する。具体的には、インプットデータ作成部102は、抽出したアウトプットデータの金額と、計算した減価率とに基づいて、各アウトプットデータの残高を計算する。そして、計算した残高が、送金受付部101が受け付けた送金金額を上回っているアウトプットデータへのポインタを、今回のインプットデータとして指定することができる。
なお、計算した残高が、送金受付部101が受け付けた送金金額を上回っているアウトプットデータが存在しない場合には、本実施形態では、インプットデータ作成部102は、送金金額をいくつかの金額へ分割したうえで、再度、計算した残高が分割した金額を上回っているアウトプットデータを検索することが望ましい。なお、これに限定されず、今回の送金金額よりも大きな金額のアウトプットデータを有する送金トランザクションが存在しない場合には、インプットデータ作成部102は、複数のアウトプットデータのポインタを指定するために複数のインプットデータを作成するとしてもよい。
(Pointer specification processing)
Next, the input data creation unit 102 selects output data suitable for designating a pointer from the extracted remittance transactions based on the remittance amount received by the remittance accepting unit 101. Specifically, the input data creation unit 102 calculates the balance of each output data based on the amount of the extracted output data and the calculated depreciation rate. Then, a pointer to output data in which the calculated balance exceeds the remittance amount accepted by the remittance accepting unit 101 can be designated as current input data.
When there is no output data in which the calculated balance exceeds the remittance amount accepted by the remittance acceptance unit 101, in this embodiment, the input data creation unit 102 changes the remittance amount to some amount. After dividing, it is desirable to search again for output data in which the calculated balance exceeds the divided amount. Note that the present invention is not limited to this, and when there is no remittance transaction having output data having an amount larger than the current remittance amount, the input data creation unit 102 designates a plurality of output data pointers. A plurality of input data may be created.

インプットデータ作成部102は、送金受付部101が複数のユーザへの送金を受け付けた場合には、受け付けた送金金額の合計金額に基づいてポインタを選択することが望ましい。   When the remittance accepting unit 101 accepts remittance to a plurality of users, the input data creating unit 102 desirably selects a pointer based on the total amount of accepted remittance amounts.

(電子署名作成処理)
さらに、インプットデータ作成部102は、送金元ユーザの電子署名を作成する。たとえば、インプットデータ作成部102は、電子署名を格納する部分を除く、作成中の送金トランザクションのデータ全体から、ハッシュ関数を使ってダイジェストを生成する。そして、インプットデータ作成部102は、生成したダイジェストを送金元ユーザの秘密鍵で暗号化することで電子署名を作成することができる。
(Digital signature creation process)
Further, the input data creation unit 102 creates an electronic signature of the remittance source user. For example, the input data creation unit 102 generates a digest using a hash function from the entire data of the remittance transaction being created, excluding the part that stores the electronic signature. The input data creation unit 102 can create an electronic signature by encrypting the generated digest with the private key of the remittance source user.

インプットデータ作成部102は、ポインタ指定処理において指定したポインタと、電子署名作成処理において作成した電子署名と、さらに送金元ユーザの公開鍵とを格納して、インプットデータを作成することができる。   The input data creation unit 102 can create input data by storing the pointer designated in the pointer designation process, the digital signature created in the digital signature creation process, and the remittance user public key.

図2(A)に戻り、各機能ブロックの機能の続きについて説明する。
アウトプットデータ作成部103は、送金受付部101が受け付けた、送金先のユーザと送金する金額とに基づいて、送金トランザクションのアウトプットデータを作成する。たとえば、アウトプットデータ作成部103は、マッピング情報DB133を参照して、送信先ユーザのIDをアウトプットデータに指定することができる。
また、アウトプットデータ作成部103は、インプットデータ作成部102がポインタを指定したアウトプットデータの残高から、今回の送金金額の合計金額を減算し、差額を、送金元ユーザ宛の送金としてアウトプットデータを作成することが望ましい。
Returning to FIG. 2A, the continuation of the function of each functional block will be described.
The output data creation unit 103 creates output data of a remittance transaction based on the remittance destination user and the amount to be remittance received by the remittance accepting unit 101. For example, the output data creation unit 103 can specify the ID of the transmission destination user in the output data with reference to the mapping information DB 133.
Further, the output data creation unit 103 subtracts the total amount of the current remittance amount from the balance of the output data designated by the input data creation unit 102, and outputs the difference as a remittance to the remittance source user. It is desirable to create data.

なお、アウトプットデータ作成部103は、送金受付部101が、ユーザからオーブの購入を受け付けた場合には、オーブの購入を入力したユーザを送金先ユーザとして、アウトプットデータを作成することが望ましい。   In addition, when the remittance accepting unit 101 accepts the purchase of the orb from the user, the output data creating unit 103 desirably creates the output data with the user who inputs the orb purchase as the remittance destination user. .

送金トランザクション配信部104は、今回の送金に関する送金トランザクションを作成し、ネットワーク400へと配信する。送金トランザクション配信部104は、以下の2種類の送金トランザクションを作成する処理を行う。
・通常トランザクション(以下、通常トランザクションのことを単に「送金トランザクション」とも呼ぶ。)
・通貨発生トランザクション
The remittance transaction distribution unit 104 creates a remittance transaction related to the current remittance and distributes it to the network 400. The remittance transaction distribution unit 104 performs processing for creating the following two types of remittance transactions.
-Normal transaction (hereinafter, the normal transaction is also simply referred to as “remittance transaction”)
-Currency generation transaction

(通常トランザクション)
通常トランザクションは、オーブの送金が行われた場合に、送金トランザクション配信部104が配信する送金トランザクションをいう。通常トランザクションには、インプットデータと、アウトプットデータと、送金トランザクションが発生した時刻と、送金トランザクションがブロックチェーンに追加された時刻とが含まれる。
送金トランザクション配信部104は、インプットデータ作成部102が作成したインプットデータと、アウトプットデータ作成部103が作成したアウトプットデータと、を通常トランザクションに格納し、さらに現在時刻をトランザクション発生時刻に指定して、通常トランザクションをネットワーク400へブロードキャストで配信することができる。
(Normal transaction)
The normal transaction refers to a remittance transaction distributed by the remittance transaction distribution unit 104 when orb remittance is performed. The normal transaction includes input data, output data, a time when the remittance transaction occurs, and a time when the remittance transaction is added to the block chain.
The remittance transaction delivery unit 104 stores the input data created by the input data creation unit 102 and the output data created by the output data creation unit 103 in a normal transaction, and specifies the current time as the transaction occurrence time. Thus, the normal transaction can be distributed to the network 400 by broadcast.

(通貨発生トランザクション)
通貨発生トランザクションは、オーブが購入された場合に送金トランザクション配信部104が配信する送金トランザクションをいう。すべての送金トランザクションは、インプットデータのポインタを参照していくと通貨発生トランザクションに収束する。
通貨発生トランザクションには、インプットデータは含まれないことが望ましい。送金トランザクション配信部104は、アウトプットデータ作成部103が作成した、オーブの購入を入力したユーザを送金先ユーザとするアウトプットデータを通貨発生トランザクションに格納し、さらに現在時刻をトランザクション発生時刻に指定して、通貨発生トランザクションをネットワーク400にブロードキャストで配信することができる。
(Currency transaction)
The currency generation transaction is a remittance transaction distributed by the remittance transaction distribution unit 104 when an orb is purchased. All remittance transactions converge to a currency generation transaction by referring to the input data pointer.
The currency generation transaction should not include input data. The remittance transaction distribution unit 104 stores the output data created by the output data creation unit 103 and used as the remittance user as the remittance destination user, and further specifies the current time as the transaction occurrence time. Thus, the currency generation transaction can be broadcast to the network 400.

マッピング部105は、マッピング情報の生成や更新をユーザから受け付け、マップトランザクションをブロードキャストでネットワーク400に配信する。マッピング部105は、以下の処理を行うように構成される。
・発行受付処理
・ポインタ指定処理
・管理ユーザ指定処理
・配信処理
The mapping unit 105 receives generation and update of mapping information from the user, and distributes the map transaction to the network 400 by broadcasting. The mapping unit 105 is configured to perform the following processing.
・ Issuance acceptance processing ・ Pointer designation processing ・ Management user designation processing ・ Distribution processing

(発行受付処理)
マッピング部105は、発行受付処理として、ID発行情報の入力を受け付ける。ID発行情報は、たとえば、ユーザが新たに利用する鍵ペアのうちの公開鍵と、当該公開鍵を利用するユーザとして紐づけるユーザのIDである。マッピング部105は、ユーザから直接IDの指定を受け付けてもよいし、メールアドレスや任意の文字列の入力を受け付けてもよい。マッピング部105は、メールアドレスや任意の文字列の入力を受け付けた場合には、受け付けたメールアドレスや任意の文字列からハッシュ値を生成しIDとすることができる。マッピング部105は、端末100のディスプレイに発行受付画面を提示して、公開鍵の登録を受け付けることができる。マッピング部105は、このとき、スペアキーの登録も合わせて受け付けることも可能である。
ID発生トランザクションにおいて、マッピング部105は、ID発行情報と合わせて、管理ユーザ情報を受け付けてもよい。管理ユーザ情報は、管理ユーザとして登録するユーザのIDである。なお、管理ユーザ情報は、システムの管理者によって決定され、ユーザが自由に決定できないものとしてもよい。
(Issuance acceptance process)
The mapping unit 105 accepts input of ID issue information as issue acceptance processing. The ID issue information is, for example, a public key of a key pair newly used by the user and a user ID associated with the user who uses the public key. The mapping unit 105 may accept an ID designation directly from the user, or may accept an e-mail address or input of an arbitrary character string. When the mapping unit 105 receives an input of an email address or an arbitrary character string, the mapping unit 105 can generate a hash value from the received email address or an arbitrary character string and use it as an ID. The mapping unit 105 can present the issuance acceptance screen on the display of the terminal 100 and accept registration of the public key. At this time, the mapping unit 105 can also accept registration of a spare key.
In the ID generation transaction, the mapping unit 105 may receive the management user information together with the ID issue information. The management user information is an ID of a user registered as a management user. The management user information may be determined by the system administrator and cannot be determined freely by the user.

(ポインタ指定処理)
マッピング部105は、ポインタ指定処理として、マップトランザクションのインプットデータに格納するポインタを指定する。マッピング部105は、まず、マッピング情報DB133を参照して、発行受付処理において受け付けたユーザのIDに対応する公開鍵(旧鍵)を特定する。次に、マッピング部105は、特定した旧鍵がアウトプットデータとして指定されているマップトランザクションを抽出する。マッピング部105は、抽出したマップトランザクションから、他のインプットデータからポインタとして参照されていないアウトプットデータを有するマップトランザクションを選択する。そして、マッピング部105は、選択したマップトランザクションのアウトプットデータへのポインタを、今回のインプットデータとして指定する。
(Pointer specification processing)
The mapping unit 105 designates a pointer to be stored in the input data of the map transaction as the pointer designation process. The mapping unit 105 first refers to the mapping information DB 133 and identifies the public key (old key) corresponding to the user ID received in the issue reception process. Next, the mapping unit 105 extracts a map transaction in which the identified old key is specified as output data. The mapping unit 105 selects a map transaction having output data that is not referenced as a pointer from other input data from the extracted map transaction. The mapping unit 105 then designates a pointer to the output data of the selected map transaction as the current input data.

(電子署名作成処理)
マッピング部105は、電子署名作成処理として、マッピング情報に登録された管理ユーザの電子署名を取得する。具体的には、電子署名を格納する部分を除く、作成中のマップトランザクションのデータ全体にハッシュ関数を用いてダイジェストを作成する。そして、作成したダイジェストに対して、管理ユーザの秘密鍵を用いて暗号化することで電子署名を作成する。
(Digital signature creation process)
The mapping unit 105 acquires the electronic signature of the management user registered in the mapping information as the electronic signature creation process. Specifically, a digest is created using a hash function for the entire data of the map transaction being created, excluding the part that stores the electronic signature. Then, an electronic signature is created by encrypting the created digest using the secret key of the management user.

(配信処理)
マッピング部105は、配信処理として、インプットデータとアウトプットデータとを格納したマップトランザクションを、ネットワーク400にブロードキャストで配信する。マッピング部105は、ID発生トランザクションの場合とそれ以外のマップトランザクションの場合とで、それぞれ以下の処理を行う。
(Delivery process)
The mapping unit 105 broadcasts a map transaction storing input data and output data to the network 400 as a distribution process. The mapping unit 105 performs the following processing in each case of an ID generation transaction and another map transaction.

・ID発生トランザクションの場合
マッピング部105は、発行受付処理を行った後に配信処理を行う。マッピング部105は、発行受付処理において受け付けたID発行情報と管理ユーザ情報とに基づいてマッピング情報を作成し、アウトプットデータに格納する。ID発生トランザクションにおいては、マップトランザクションはインプットデータを有していない。そのため、マッピング部105は、アウトプットデータのみを格納し、ID発生トランザクションをネットワーク400にブロードキャストで配信する。
In the case of an ID generation transaction The mapping unit 105 performs a distribution process after performing an issue acceptance process. The mapping unit 105 creates mapping information based on the ID issue information and the management user information received in the issue reception process, and stores the mapping information in the output data. In the ID generation transaction, the map transaction has no input data. Therefore, the mapping unit 105 stores only output data and distributes the ID generation transaction to the network 400 by broadcast.

・ID発生トランザクション以外のマップトランザクションの場合
マッピング部105は、発行受付処理とポインタ指定処理と電子署名作成処理を行った後に、配信処理を行う。まず、マッピング部105は、アウトプットデータを作成するために、マッピング情報DB133を参照して、発行受付処理において受け付けたIDに対応するマッピング情報を抽出する。マッピング部105は、抽出したマッピング情報の公開鍵(旧鍵)を新鍵に更新し、アウトプットデータに格納する。なお、この場合、マッピング部105は、アウトプットデータに格納する新マッピングから、旧鍵を除外することが望ましい。
次に、マッピング部105は、インプットデータに、ポインタ指定処理において指定したポインタと、電子署名作成処理において作成した電子署名と当該電子署名に対応する公開鍵とを、格納する。
マッピング部105は、作成したインプットデータとアウトプットデータとを格納したマップトランザクションを、ネットワーク400にブロードキャストで配信する。
In the case of a map transaction other than an ID generation transaction The mapping unit 105 performs a distribution process after performing an issue acceptance process, a pointer designation process, and an electronic signature creation process. First, the mapping unit 105 extracts mapping information corresponding to the ID received in the issue reception process with reference to the mapping information DB 133 in order to create output data. The mapping unit 105 updates the public key (old key) of the extracted mapping information to the new key and stores it in the output data. In this case, it is desirable that the mapping unit 105 excludes the old key from the new mapping stored in the output data.
Next, the mapping unit 105 stores, in the input data, the pointer designated in the pointer designation process, the electronic signature created in the electronic signature creation process, and the public key corresponding to the electronic signature.
The mapping unit 105 broadcasts a map transaction storing the created input data and output data to the network 400.

<3−2.オーブ送金処理フロー>
次に図5を用いて、ユーザAがユーザBへオーブを送金する際の処理フローについて説明する。図5は、ユーザAが端末100Aを用いて、購入したオーブをユーザBへ送金する場合の送金トランザクションを模式的に示した図である。
この例では、オーブの送金元ユーザであるユーザAが利用する端末を端末100A、オーブの送金先ユーザであるユーザBが利用する端末をそれぞれ端末100Bとして説明する。また、図5の例においても、経過時間とオーブの減価率とは図4に示した対応関係にあるとして説明する。
<3-2. Orb remittance processing flow>
Next, a processing flow when the user A remits the orb to the user B will be described with reference to FIG. FIG. 5 is a diagram schematically showing a remittance transaction when the user A remits the purchased orb to the user B using the terminal 100A.
In this example, the terminal used by the user A who is the orb remittance source user is described as the terminal 100A, and the terminal used by the user B who is the orb remittance destination user is described as the terminal 100B. Also, in the example of FIG. 5, the description will be made assuming that the elapsed time and the orb depreciation rate have the correspondence shown in FIG.

図5において、ブロックB02は、ブロックチェーンの末尾のブロックであり、ブロックB01はブロックB02の1つ前のブロックであるとする。また、送金トランザクションT11は通貨発生トランザクションであり、送金トランザクションT12は、ユーザAからユーザBへのオーブの送金に関する通常トランザクションである。さらに、O11〜O13はそれぞれアウトプットデータを表し、I11はインプットデータを表している。   In FIG. 5, block B02 is the last block in the block chain, and block B01 is the block immediately preceding block B02. The remittance transaction T11 is a currency generation transaction, and the remittance transaction T12 is a normal transaction related to the remittance of the orb from the user A to the user B. Further, O11 to O13 each represent output data, and I11 represents input data.

まず、ユーザAがオーブを10000Orb購入するとする。この場合、送金受付部101によって、通貨購入画面が端末100Aのディスプレイに提示される。ユーザAは提示された通貨購入画面から、購入するオーブの金額を10000Orbとして指定する。このとき、アウトプットデータ作成部103は、マッピング情報DB136を参照して、送金金額を10000Orb、送金先をユーザAとしてユーザAのIDを指定してアウトプットデータO11を作成する。   First, it is assumed that user A purchases 10,000 orbs. In this case, the remittance accepting unit 101 presents a currency purchase screen on the display of the terminal 100A. User A designates the amount of the orb to be purchased as 10,000 Orb from the presented currency purchase screen. At this time, the output data creation unit 103 refers to the mapping information DB 136 and creates the output data O11 by designating the remittance amount of 10,000 Orb and the remittance destination as the user A and specifying the ID of the user A.

次に、送金トランザクション配信部104が、アウトプットデータO11を送金トランザクションT11に格納し、現在時刻をトランザクション発生時刻に指定して、通貨発生トランザクションを作成し、ネットワーク400に配信する。配信した通貨発生トランザクションが、後述するマイナーの発掘処理によって、承認され、ブロックチェーンにつながれると、ユーザAは購入したオーブを取引に使えるようになる。   Next, the remittance transaction distribution unit 104 stores the output data O11 in the remittance transaction T11, specifies the current time as the transaction occurrence time, creates a currency generation transaction, and distributes it to the network 400. When the distributed currency generation transaction is approved by the mining excavation process described later and connected to the block chain, the user A can use the purchased orb for the transaction.

ユーザAは、たとえばオーブの購入から11日後に、購入したオーブの一部(7000Orb)をユーザBに対して送金するとする。この場合、インプットデータ作成部102が、まず送金対象検索処理を実行し、これまでにユーザAが送金先ユーザとして指定されているアウトプットデータを有する送金トランザクションを検索する。図5の例では、該当する送金トランザクションが送金トランザクションT11だけであるため、インプットデータ作成部102は送金トランザクションT11を抽出する。   For example, assume that the user A remits a part of the purchased orb (7000 Orb) to the user B 11 days after the purchase of the orb. In this case, the input data creation unit 102 first executes a remittance target search process and searches for a remittance transaction having output data for which user A has been designated as a remittance destination user. In the example of FIG. 5, since the corresponding remittance transaction is only the remittance transaction T11, the input data creation unit 102 extracts the remittance transaction T11.

次に、インプットデータ作成部102は、減価額計算処理を実行し、アウトプットデータO11の減価額を計算する。今回の送金は、オーブの購入から11日後に行われているため、減価率は10%である。そのため、インプットデータ作成部102は、アウトプットデータO11の減価額は、1000Orbであると算出する。インプットデータ作成部102は、算出した減価額(1000Orb)をアウトプットデータO11の送金金額(10000Orb)から減算し、アウトプットデータO11の残高を9000Orbであると算出する。これは、今回の送金金額である7000Orbを上回っているため、インプットデータ作成部102は、アウトプットデータO11のポインタを、今回のインプットデータI11に指定する。さらにインプットデータ作成部102は、電子署名作成処理を実行する。具体的には、電子署名を格納する部分を除く、作成中の送金トランザクションのデータ全体にハッシュ関数を用いてダイジェストを作成する。そして、口座情報DB134に保存されたユーザAの秘密鍵を用いてインプットデータ作成部102は、生成したダイジェストを暗号化して電子署名を作成する。インプットデータ作成部102は、指定したポインタと、作成した電子署名と、送金元ユーザの公開鍵とを格納してインプットデータI11を作成する。   Next, the input data creation unit 102 executes a depreciation calculation process, and calculates a depreciation of the output data O11. Since this remittance is made 11 days after the purchase of the orb, the depreciation rate is 10%. Therefore, the input data creation unit 102 calculates that the reduced price of the output data O11 is 1000 Orb. The input data creation unit 102 subtracts the calculated price reduction (1000 Orb) from the remittance amount (10000 Orb) of the output data O11, and calculates the balance of the output data O11 to be 9000 Orb. This exceeds the current remittance amount of 7000 Orb, so the input data creation unit 102 designates the pointer of the output data O11 as the current input data I11. Further, the input data creation unit 102 executes digital signature creation processing. Specifically, a digest is created using a hash function for the entire data of the remittance transaction being created, excluding the part that stores the electronic signature. Then, using the user A's private key stored in the account information DB 134, the input data creation unit 102 encrypts the generated digest and creates an electronic signature. The input data creation unit 102 creates the input data I11 by storing the designated pointer, the created electronic signature, and the public key of the remittance source user.

次に、アウトプットデータ作成部103は、送金金額を7000Orb、送金先をユーザBとして、マッピング情報DB136からユーザBのIDに対応するレコードを参照し、ユーザBのIDと公開鍵とを指定して、アウトプットデータO12を作成する。さらに、アウトプットデータ作成部103は、アウトプットデータO11の残高9000Orbから今回のアウトプットデータO12の送金金額である7000Orbを減算し、差分である2000Orbを、ユーザAのIDを送金先とするアウトプットデータO13を作成する。   Next, the output data creation unit 103 sets the remittance amount to 7000 Orb, the remittance destination to the user B, refers to the record corresponding to the ID of the user B from the mapping information DB 136, and specifies the ID and public key of the user B Output data O12. Further, the output data creation unit 103 subtracts 7000 Orb, which is the remittance amount of the current output data O 12, from the balance 9000 Orb of the output data O 11, and outputs 2000 Orb, which is the difference, with the ID of user A as the remittance destination. Data O13 is created.

送金トランザクション配信部104は、インプットデータI11と、アウトプットデータO12と、アウトプットデータO13とを送金トランザクションT12に格納し、現在時刻をトランザクション発生時刻に指定して、送金トランザクションT12を配信する。   The remittance transaction distribution unit 104 stores the input data I11, output data O12, and output data O13 in the remittance transaction T12, and distributes the remittance transaction T12 by designating the current time as the transaction occurrence time.

なお、上述の例で、送金金額がたとえば9500Orbである場合、送金金額がアウトプットデータO11の残高である9000Orbを上回っているため、インプットデータ作成部102は、アウトプットデータO11のポインタを指定することができない。この場合、インプットデータ作成部102は、送金金額をたとえば9000Orbと500Orbとの2つの金額に分割することができる。このとき、インプットデータ作成部102は、それぞれの送金金額に対応するインプットデータを作成し、ポインタで参照するアウトプットデータを検索することが望ましい。さらにこの場合、アウトプットデータ作成部103は、送金金額が9000Orbのアウトプットデータをと、500Orbのアウトプットデータとをそれぞれ作成するとしてもよい。   In the above example, when the remittance amount is 9500 Orb, for example, the remittance amount exceeds 9000 Orb, which is the balance of the output data O11, and therefore the input data creation unit 102 designates the pointer of the output data O11. I can't. In this case, the input data creation unit 102 can divide the remittance amount into two amounts, for example, 9000 Orb and 500 Orb. At this time, it is desirable that the input data creation unit 102 creates input data corresponding to each remittance amount and retrieves output data referred to by a pointer. Further, in this case, the output data creation unit 103 may create output data with a remittance amount of 9000 Orb and output data with 500 Orb.

このように本実施形態に係るウォレットツールが、オーブが時間の経過とともに減額するように、端末100を機能させることで、オーブは投資の対象とされにくくなり、通貨価値の変動を抑えることが可能となる。   As described above, the wallet tool according to the present embodiment makes the orb less likely to be an investment target by causing the terminal 100 to function so that the orb is reduced over time, and it is possible to suppress fluctuations in currency value. It becomes.

<マッピング情報更新処理フロー>
図6を用いて、ユーザAがマッピング情報を更新する場合の処理フローについて説明する。図6は、マッピング情報に登録している公開鍵を、新鍵に更新する場合のマップトランザクションを模式的に示した図である。この例では、マッピング情報DB133には、ユーザAの管理ユーザとして、ユーザA、ユーザB、ユーザCの3人のIDが登録されているとして説明する。また、ユーザAが使用する端末を端末100Aとし、ユーザBが使用する端末を端末100Bとする。
<Mapping information update processing flow>
A processing flow in the case where the user A updates the mapping information will be described with reference to FIG. FIG. 6 is a diagram schematically showing a map transaction when the public key registered in the mapping information is updated to a new key. In this example, it is assumed that IDs of three users, user A, user B, and user C, are registered in the mapping information DB 133 as the management user of user A. A terminal used by user A is terminal 100A, and a terminal used by user B is terminal 100B.

図6において、ブロックB22は、ブロックチェーンの末尾のブロックであり、ブロックB21はユーザAがIDを作成したID発生トランザクションが含まれるブロックであるとする。また、マップトランザクションT21はID発生トランザクションであり、マップトランザクションT22は、ユーザAが公開鍵を旧鍵から新鍵へとマッピング情報を更新するトランザクションである。さらに、O21とO22とはアウトプットデータを表し、I22はインプットデータを表している。   In FIG. 6, block B22 is the last block of the block chain, and block B21 is a block including an ID generation transaction in which user A has created an ID. The map transaction T21 is an ID generation transaction, and the map transaction T22 is a transaction in which the user A updates the mapping information from the old key to the new key. Further, O21 and O22 represent output data, and I22 represents input data.

まずユーザAは、IDを新規に作成する。この場合、マッピング部105によって、発行受付画面が、端末100Aのディスプレイに提示される。ユーザは提示された発行受付画面に、ID発行情報として、メールアドレスや電話番号など任意の文字列を入力し、公開鍵とスペアキーとを登録する。さらに、ユーザAは管理ユーザ情報として、登録するユーザのID(図6の例では、ユーザA、ユーザB、ユーザC)を指定する。マッピング部105は、入力された文字列のハッシュ値からIDを作成する。そして、マッピング部105は、作成したIDと受け付けたID発行情報と管理ユーザ情報とを紐づけてユーザAのマッピング情報を作成し、アウトプットデータO21に格納する。マッピング部105は、ID発生トランザクションT21に作成したアウトプットデータO21を格納し、ネットワーク400にブロードキャストで配信する。配信されたID発生トランザクションT21は、後述するマイナーの発掘処理によって、承認されると、ブロックチェーンにつながれる。ブロックチェーンにID発生トランザクションT21がつながれると、ユーザAのマッピング情報として、ネットワーク400で共有される。   First, user A creates a new ID. In this case, the mapping unit 105 presents an issue acceptance screen on the display of the terminal 100A. The user inputs an arbitrary character string such as an email address or a telephone number as ID issue information on the presented issue acceptance screen, and registers a public key and a spare key. Furthermore, the user A designates the ID of the user to be registered (user A, user B, user C in the example of FIG. 6) as management user information. The mapping unit 105 creates an ID from the hash value of the input character string. The mapping unit 105 creates mapping information for the user A by associating the created ID, the received ID issuance information, and the management user information, and stores the mapping information in the output data O21. The mapping unit 105 stores the output data O21 created in the ID generation transaction T21 and distributes it to the network 400 by broadcast. When the distributed ID generation transaction T21 is approved by a minor excavation process described later, it is connected to the block chain. When the ID generation transaction T21 is connected to the block chain, it is shared by the network 400 as mapping information of the user A.

ユーザAが、IDを新規に作成した後、登録した公開鍵とペアになる秘密鍵を紛失した等の理由により、マッピング情報を更新するとする。この場合、マッピング部105は、まず発行受付処理を行い、登録する新鍵と、ユーザAの登録済みのIDを受け付ける。
マッピング部105は、マッピング情報DB133を参照し、受け付けたIDに対応するマッピング情報(旧マッピング)を抽出する。マッピング部105は、抽出した旧マッピングの公開鍵(旧鍵)を新鍵に更新した新マッピングを作成し、アウトプットデータO22に格納する。
It is assumed that the mapping information is updated because the user A has created a new ID and lost the private key paired with the registered public key. In this case, the mapping unit 105 first performs issue acceptance processing, and accepts the new key to be registered and the registered ID of the user A.
The mapping unit 105 refers to the mapping information DB 133 and extracts mapping information (old mapping) corresponding to the received ID. The mapping unit 105 creates a new mapping in which the extracted public key (old key) of the old mapping is updated to a new key, and stores the new mapping in the output data O22.

次に、マッピング部105は、ポインタ指定処理を行う。具体的には、まずマッピング部105は、マッピング情報DB133に登録されているユーザAの旧マッピングから、ユーザAのIDと対応する公開鍵(旧鍵)を特定する。さらにマッピング部105は、特定した旧鍵を公開鍵とするマッピング情報がアウトプットデータとして指定されているマップトランザクションを抽出する。図6の例では、公開鍵の更新は今回初めて行われるので、マッピング部105は、ID発生トランザクションT21を抽出する。マッピング部105は、ID発生トランザクションT21のアウトプットデータO21を参照するポインタを今回のインプットデータI22に格納する。   Next, the mapping unit 105 performs pointer designation processing. Specifically, the mapping unit 105 first specifies a public key (old key) corresponding to the user A ID from the old mapping of the user A registered in the mapping information DB 133. Further, the mapping unit 105 extracts a map transaction in which mapping information using the identified old key as a public key is specified as output data. In the example of FIG. 6, since the public key is updated for the first time this time, the mapping unit 105 extracts the ID generation transaction T21. The mapping unit 105 stores a pointer referring to the output data O21 of the ID generation transaction T21 in the current input data I22.

次に、マッピング部105は、電子署名作成処理を実行する。この例では、マッピング部105は、ユーザBとユーザCとの電子署名を作成する。具体的には、電子署名を格納する部分を除く、作成中のマップションのデータ全体にハッシュ関数を用いてダイジェストを作成する。そして、ユーザBの秘密鍵を用いてダイジェストを暗号化し、ユーザBの電子署名を作成する。また、ユーザCの秘密鍵を用いてダイジェストを暗号化し、ユーザCの電子署名を作成する。   Next, the mapping unit 105 executes an electronic signature creation process. In this example, the mapping unit 105 creates electronic signatures for the user B and the user C. Specifically, a digest is created using a hash function for the entire mapping data being created, excluding the part for storing the electronic signature. Then, the digest is encrypted using the private key of user B, and an electronic signature of user B is created. In addition, the digest is encrypted using the secret key of the user C, and the electronic signature of the user C is created.

マッピング部105は、ユーザBおよびCの電子署名とユーザBおよびCの公開鍵、およびアウトプットデータO21へのポインタをインプットデータI22に格納する。   The mapping unit 105 stores the electronic signatures of the users B and C, the public keys of the users B and C, and a pointer to the output data O21 in the input data I22.

マッピング部105は、インプットデータI22と、アウトプットデータO22とをマップトランザクションT12に格納し、配信する。   The mapping unit 105 stores the input data I22 and the output data O22 in the map transaction T12 and distributes them.

なお、上述の例で、ユーザAがたとえば、秘密鍵を紛失しておらず、マッピング情報の公開鍵およびスペアキーを変更したい場合は、マッピング部105は、インプットデータI22にユーザAの電子署名と公開鍵とアウトプットデータO21へのポインタとを格納し、他の管理ユーザの電子署名は格納しないとしてもよい。この場合、アウトプットデータO21に格納されるマッピング情報(新マッピング)からは、旧鍵は削除されるとしてもよい。   In the above example, if the user A has not lost the private key and wants to change the public key and spare key of the mapping information, the mapping unit 105 displays the user A's electronic signature and the public signature in the input data I22. The key and the pointer to the output data O21 may be stored, and the electronic signatures of other management users may not be stored. In this case, the old key may be deleted from the mapping information (new mapping) stored in the output data O21.

図2に戻り、端末200の機能について説明する。
<3−4.マイニングツールの機能>
図2(B)は、ウォレットツールに加えて、マイニングツールをインストールした、端末200の機能ブロック図の一例を示す図である。マイニングツールをインストールした端末200には、上述したウォレットツールによって作成される機能ブロックに加えて、検証部201と、発掘部202と、報酬計算部203と、更新許可部204とが構築されることが望ましい。
Returning to FIG. 2, the function of the terminal 200 will be described.
<3-4. Mining Tool Functions>
FIG. 2B is a diagram illustrating an example of a functional block diagram of the terminal 200 in which a mining tool is installed in addition to the wallet tool. In the terminal 200 in which the mining tool is installed, a verification unit 201, an excavation unit 202, a reward calculation unit 203, and an update permission unit 204 are constructed in addition to the functional blocks created by the wallet tool described above. Is desirable.

検証部201は、受信した送金トランザクションの正当性を検証するために、以下の3つの処理を実行する。
・ID検証処理
・完全性検証処理
・整合性検証処理
検証部201は上記3つの検証処理の結果、IDと完全性と整合性とが認められた送金トランザクションを正当な送金トランザクションであると承認することができるとしてもよい。
The verification unit 201 executes the following three processes in order to verify the validity of the received remittance transaction.
ID verification process / integrity verification process / consistency verification process As a result of the above three verification processes, the verification unit 201 approves a remittance transaction with an ID, integrity, and consistency recognized as a valid remittance transaction It may be possible.

(ID検証処理)
検証部201は、ID検証処理として、今回送金を行った送金元ユーザが、送金したオーブの正当な所有者であったかを、IDを検証することによって確認する。たとえば、検証部201は、受信した送金トランザクションのインプットデータに含まれる電子署名と、ポインタが参照するアウトプットデータに含まれるIDとが、同一のユーザのものであるか否かを検証する。
図7は、ID検証処理の処理フローを示す図である。
まず、検証部201は、受信した送金トランザクションのインプットデータから送金元ユーザの電子署名と公開鍵とを取得する(S11)。また、検証部201は、受信した送金トランザクションのインプットデータに含まれるポインタが参照するアウトプットデータに格納されている、ID(ID1とする)を取得する(S12)。
次に、検証部201は、マッピング情報DB133を参照して、取得した公開鍵に紐づけられたユーザのID(ID2とする)を抽出し(S13)、ID1とID2とが一致するか検証する(S14)。一致した場合には、さらに、検証部201は、ID2に紐づけられている公開鍵で、送金トランザクションに含まれていた電子署名が復号できるか検証する(S15)。復号できた場合には、検証部201は、送金を行ったユーザが、送金したオーブの正しい所有者であったと認証する(S16)。なお、S15の電子署名の検証は、受信した送金トランザクションにインプットデータに格納されている公開鍵で行うものとしてもよい。
このように、本実施形態に係る仮想通貨管理プログラムによれば、送金元ユーザの認証をIDによって行う。これによって、ユーザが公開鍵を更新した場合でも、更新前と同じユーザであると識別することができる。
(ID verification processing)
As the ID verification process, the verification unit 201 verifies whether or not the remittance source user who performed the remittance this time is a valid owner of the remittance orb by verifying the ID. For example, the verification unit 201 verifies whether the electronic signature included in the input data of the received remittance transaction and the ID included in the output data referred to by the pointer belong to the same user.
FIG. 7 is a diagram illustrating a processing flow of the ID verification processing.
First, the verification unit 201 acquires the electronic signature and public key of the remittance source user from the input data of the received remittance transaction (S11). In addition, the verification unit 201 acquires an ID (ID1) stored in the output data referred to by the pointer included in the input data of the received remittance transaction (S12).
Next, the verification unit 201 refers to the mapping information DB 133, extracts the user ID (ID2) associated with the acquired public key (S13), and verifies whether ID1 and ID2 match. (S14). If they match, the verification unit 201 further verifies whether the electronic signature included in the remittance transaction can be decrypted with the public key linked to ID2 (S15). If the decryption is successful, the verification unit 201 authenticates that the user who sent the money was the correct owner of the sent orb (S16). The verification of the electronic signature in S15 may be performed with the public key stored in the input data in the received remittance transaction.
Thus, according to the virtual currency management program according to the present embodiment, the remittance source user is authenticated by the ID. Thereby, even when the user updates the public key, it can be identified that the user is the same as that before the update.

(完全性検証処理)
検証部201は、完全性検証処理として、受信した送金トランザクションに対して改ざんが行われていないかを検証する。具体的には、検証部201は、まずマッピング情報DB133を参照して、受信した送金トランザクションのインプットデータに含まれる電子署名を、もとの所有者の公開鍵で復号して、インプットデータ作成部102が作成したダイジェストを取り出す。さらに検証部201は受信した送金トランザクションのデータ全体のうち電子署名を格納する部分を除いたデータから、ハッシュ関数を用いてダイジェストを生成する。検証部201は、復号したダイジェストと生成したダイジェストとが一致するか否かを検証し、一致する場合には送金トランザクションデータの完全性を承認することができる。検証部201は、送金トランザクションに含まれるすべてのインプットデータの電子署名を検証できた場合に、当該送金トランザクションの完全性を承認することができるとしてもよい。
(Integrity verification process)
The verification unit 201 verifies whether the received remittance transaction has been tampered with as the integrity verification process. Specifically, the verification unit 201 first refers to the mapping information DB 133, decrypts the electronic signature included in the input data of the received remittance transaction with the public key of the original owner, and generates an input data creation unit The digest created by 102 is taken out. Further, the verification unit 201 generates a digest by using a hash function from data excluding a part for storing an electronic signature in the entire data of the received remittance transaction. The verification unit 201 verifies whether or not the decrypted digest and the generated digest match, and if they match, can confirm the completeness of the remittance transaction data. The verification unit 201 may be able to approve the completeness of the remittance transaction when the electronic signatures of all input data included in the remittance transaction can be verified.

(整合性検証処理)
検証部201は、整合性検証処理として、受信した送金トランザクションがブロックチェーン全体として整合性がとれた取引であるか否かを検証する。具体的には、検証部201は、上述した減価額計算処理と同様の処理を実行して、インプットデータの残高を計算して、計算した残高がアウトプットデータの金額より上回っているか検証する。
また、検証部201は、整合性検証処理として、検証対象の送金トランザクションのインプットデータと同じアウトプットデータを参照している送金トランザクションがすでに承認されていないかを確認して二重取引の検証を行うとしてもよい。具体的には、検証部201は、ブロック情報DB132を参照して、ブロックチェーンにつながれたブロックに含まれる送金トランザクションのインプットデータのポインタが参照するアウトプットデータを抽出する。さらに検証部201は、今回の検証対象の送金トランザクションのインプットデータとして指定されたポインタが参照するアウトプットデータが、すでに参照されているものか否かを検証する。今回の検証対象の送金トランザクションのインプットデータとして指定されたポインタが参照するアウトプットデータが、過去の送金トランザクションのインプットデータからポインタを指定されていない場合、検証部201は、今回の検証対象の送金トランザクションのインプットデータの整合性を承認することができる。
検証部201は、送金トランザクションに含まれるすべてのインプットデータの整合性が承認できた場合に、当該送金トランザクションの整合性を承認することができるとしてもよい。
(Consistency verification process)
As the consistency verification process, the verification unit 201 verifies whether the received remittance transaction is a transaction that is consistent with the entire block chain. Specifically, the verification unit 201 executes a process similar to the above-described price reduction calculation process, calculates the balance of input data, and verifies whether the calculated balance exceeds the amount of output data.
In addition, as the consistency verification process, the verification unit 201 confirms whether the remittance transaction referring to the same output data as the input data of the remittance transaction to be verified has already been approved, and verifies the double transaction. It may be done. Specifically, the verification unit 201 refers to the block information DB 132 and extracts the output data referred to by the pointer of the input data of the remittance transaction included in the block connected to the block chain. Further, the verification unit 201 verifies whether the output data referred to by the pointer designated as the input data of the current remittance transaction to be verified is already referred to. When the output data referred to by the pointer specified as the input data of the current remittance transaction is not designated by the pointer from the input data of the past remittance transaction, the verification unit 201 remits the current remittance target. The consistency of transaction input data can be approved.
The verification unit 201 may be able to approve the consistency of the remittance transaction when the consistency of all input data included in the remittance transaction has been approved.

発掘部202は、検証部201の処理によって送金元ユーザが認証され、完全性と整合性が認められた正当な送金トランザクションを格納するブロックを生成するために、マイニングの処理を行う。具体的には、発掘部202は、現在のブロックチェーンの末尾のハッシュ値を、ハッシュ関数を用いて計算する。計算したハッシュ値と、生成するブロックに所定の値とを合わせたデータに対して、発掘部202は、ハッシュ関数を用いてハッシュ値を計算する。このデータには、ブロックの生成時刻を含めてもよい。このハッシュ値が所定の値以下になる場合、本実施形態では「ブロックが発掘された」という。ブロックを発掘すると、発掘部202は、当該ブロックを、ブロックチェーンの末尾につなぐことができる。
発掘部202は、ブロックをブロックチェーンにつなぐ際に、現在時刻を、当該ブロックに格納されている送金トランザクションのブロックチェーン追加時刻として指定することが望ましい。
The excavation unit 202 performs mining processing in order to generate a block for storing a legitimate remittance transaction in which the remittance source user is authenticated by the processing of the verification unit 201 and integrity and consistency are recognized. Specifically, the excavation unit 202 calculates a hash value at the end of the current block chain using a hash function. For the data obtained by combining the calculated hash value and a predetermined value with the block to be generated, the excavation unit 202 calculates a hash value using a hash function. This data may include the generation time of the block. When the hash value is equal to or less than a predetermined value, it is said that “the block has been excavated” in the present embodiment. When the block is excavated, the excavation unit 202 can connect the block to the end of the block chain.
When the excavating unit 202 connects a block to the block chain, it is desirable to specify the current time as the block chain addition time of the remittance transaction stored in the block.

報酬計算部203は、ブロックに格納した正当な送金トランザクションの減価額に基づいて、マイナーの報酬を計算する。たとえば、報酬計算部203は、インプットデータのポインタとして指定されたアウトプットデータの金額の、減価額の合計をマイナーの報酬として計算してもよい。具体的には、報酬計算部203は、インプットデータに含まれるポインタを順次参照していき、通貨発生トランザクションを抽出する。そして、報酬計算部203は、通貨発生トランザクションのトランザクション発生時刻を参照し、現在時刻との差分に基づいて減価率を計算する。この処理は、インプットデータ作成部102の減価額計算処理と同様の処理であってもよい。報酬計算部203は、発掘部202が生成したブロックに格納される各送金トランザクションの減価額の合計をマイナーの報酬として計算することができる。
さらに報酬計算部203は、送金金額を計算した報酬の金額、送信先を端末200を利用するマイナーに指定して、アウトプットデータを作成して、当該アウトプットデータに基づいて通貨発生トランザクションを作成することが望ましい。報酬計算部203は作成した通貨発生トランザクションを、ネットワーク400にブロードキャストで配信する。この通貨発生トランザクションは生成するブロックに含めることでブロードキャストすることが望ましい。この通貨発生トランザクションがネットワーク400に接続しているいずれかのマイナーの端末によって承認されることで、端末200を利用するマイナーは、報酬を受け取ることができる。
The reward calculation unit 203 calculates a minor reward based on the reduced value of the legitimate remittance transaction stored in the block. For example, the remuneration calculation unit 203 may calculate the total reduction amount of the amount of the output data specified as the input data pointer as the minor remuneration. Specifically, the reward calculation unit 203 sequentially refers to the pointers included in the input data, and extracts a currency generation transaction. And the reward calculation part 203 calculates the depreciation rate based on the difference with the present time with reference to the transaction generation time of a currency generation transaction. This process may be the same process as the depreciation calculation process of the input data creation unit 102. The reward calculation unit 203 can calculate the total reduction amount of each remittance transaction stored in the block generated by the excavation unit 202 as a minor reward.
Further, the remuneration calculation unit 203 designates the amount of remuneration for which the remittance amount has been calculated, designates the transmission destination as a minor using the terminal 200, creates output data, and creates a currency generation transaction based on the output data It is desirable to do. The reward calculation unit 203 distributes the created currency generation transaction to the network 400 by broadcast. It is desirable to broadcast this currency generation transaction by including it in a block to be generated. When the currency generation transaction is approved by any of the minor terminals connected to the network 400, the minor using the terminal 200 can receive a reward.

更新許可部204は、マッピング情報の更新が、管理ユーザによって行われたものか否かに基づいて妥当性を検証し、妥当な場合には更新を許可する。たとえば、更新許可部204は、マップトランザクションに含まれる電子署名と公開鍵とを用いて、当該電子署名が更新対象となるマッピング情報に管理ユーザとして登録されたユーザのものであるか否かの検証を行う。
図8は、更新許可部204の更新許可処理フローの一例をチャートである。なお、図8では、更新許可部204が、図6のT22に示したマップトランザクションにおいて行われる、マッピング情報の更新を検証する場合を例に説明する。
The update permission unit 204 verifies the validity based on whether or not the mapping information has been updated by the management user, and permits the update if it is valid. For example, the update permission unit 204 uses the electronic signature and public key included in the map transaction to verify whether the electronic signature belongs to the user registered as the management user in the mapping information to be updated. I do.
FIG. 8 is a chart illustrating an example of an update permission process flow of the update permission unit 204. FIG. 8 illustrates an example in which the update permission unit 204 verifies the update of mapping information performed in the map transaction illustrated in T22 of FIG.

まず、マップトランザクションを受信すると更新許可部204は、アウトプットデータO22に格納されたマッピング情報からユーザAのIDを取得する(S21)。次に、マッピング情報DB133を参照し、取得したユーザAのIDがすでに登録済みのIDであるか否かを確認する(S22)。取得したユーザAのIDがマッピング情報DB133に登録されていないIDである場合(S22:NO)には、取得したマッピング情報を、マッピング情報DB133に登録する。   First, when receiving the map transaction, the update permission unit 204 acquires the ID of the user A from the mapping information stored in the output data O22 (S21). Next, with reference to the mapping information DB 133, it is confirmed whether or not the acquired ID of the user A is an already registered ID (S22). When the acquired ID of the user A is an ID not registered in the mapping information DB 133 (S22: NO), the acquired mapping information is registered in the mapping information DB 133.

一方で、取得したユーザAのIDがマッピング情報DB133に登録されているIDである場合(S22:YES)には、更新許可部204は、インプットデータI22を参照し、更新処理に必要な人数分の正しい電子署名が格納されているか検証する(S23)。更新処理に必要な人数は、たとえば3人中2人である。   On the other hand, when the acquired ID of the user A is an ID registered in the mapping information DB 133 (S22: YES), the update permission unit 204 refers to the input data I22 and corresponds to the number of persons necessary for the update process. It is verified whether the correct electronic signature is stored (S23). The number of people required for the update process is, for example, 2 out of 3 people.

更新許可部204は、インプットデータI22に電子署名とともに格納されているユーザBとユーザCとの公開鍵を取得する。マッピング情報DB133を参照して、更新許可部204は、取得した公開鍵に対応するユーザIDを確認し、当該ユーザIDが管理ユーザとして登録されていたIDと一致するか検証する。一致した場合には、更新許可部204はさらに、取得したユーザBとユーザCそれぞれの公開鍵でそれぞれの電子署名が復号できるか検証する。   The update permission unit 204 acquires the public keys of the users B and C stored in the input data I22 together with the electronic signature. With reference to the mapping information DB 133, the update permission unit 204 confirms the user ID corresponding to the acquired public key, and verifies whether the user ID matches the ID registered as the management user. If they match, the update permission unit 204 further verifies whether each electronic signature can be decrypted with the public keys of the acquired users B and C.

必要な人数分、正しい電子署名が格納されていた場合(S23:YES)には、更新許可部204は、新マッピングで、公開鍵に指定されている新鍵が、ネットワーク400においてユニークな鍵かを確認する(S24)。具体的には、更新許可部204は、マッピング情報DB133を参照して、他のユーザの公開鍵として登録されていないを確認する。新鍵として指定されている公開鍵がユニークな鍵であれば(S24:YES)、更新許可部204は、マッピング情報の更新を許可する。   If correct electronic signatures are stored for the required number of persons (S23: YES), the update permission unit 204 determines whether the new key specified as the public key in the new mapping is a unique key in the network 400. Is confirmed (S24). Specifically, the update permission unit 204 refers to the mapping information DB 133 and confirms that it is not registered as a public key of another user. If the public key designated as the new key is a unique key (S24: YES), the update permission unit 204 allows the mapping information to be updated.

このように、本実施形態に係る仮想通貨管理プログラムによれば、ユーザがマッピング情報を更新する際に、付与された電子署名が、管理ユーザとして登録されたユーザのものであるかを、マッピング情報を再帰的に参照する。これによって、更新後のユーザが更新前のユーザと同一視できるユーザであることを担保することができる。   As described above, according to the virtual currency management program according to the present embodiment, when the user updates the mapping information, the mapping information indicates whether the assigned electronic signature belongs to the user registered as the management user. Is referenced recursively. Thereby, it can be ensured that the updated user can be identified with the user before the update.

<3−5.マイニング処理フロー>
図9を用いて、マイニングツールをインストールした端末200のマイニング処理の処理フローについて、送金トランザクションをブロックに格納する場合を例に説明する。
まず、検証部201は、送金トランザクションDB131を参照して、受信した送金トランザクションのうち、検証が行われていない未検証送金トランザクションが残っているか否か確認する(S101)。未検証送金トランザクションが残っている場合(S101:YES)には、検証部201は、当該未検証送金トランザクションを、検証を行うために取得する(S102)。
<3-5. Mining process flow>
With reference to FIG. 9, the processing flow of the mining process of the terminal 200 in which the mining tool is installed will be described by taking an example in which a remittance transaction is stored in a block.
First, the verification unit 201 refers to the remittance transaction DB 131 and confirms whether there are unverified remittance transactions that have not been verified among the received remittance transactions (S101). When the unverified remittance transaction remains (S101: YES), the verification unit 201 acquires the unverified remittance transaction for verification (S102).

次に検証部201は、取得した検証対象の送金トランザクションに含まれるインプットデータのうち、未検証のインプットデータがある場合(S103:YES)、当該未検証のインプットを取得して(S104)、インプットデータの検証を行う。まず、検証部201は、取得したインプットデータのポインタから、当該インプットデータに用いられているオーブの通貨発生トランザクションを抽出する(S105)。さらに、検証部201は通貨発生トランザクションのトランザクション発生時刻と現在時刻との差分から、減価額とインプットデータの残高とを計算する(S106)。   Next, when there is unverified input data among the input data included in the acquired remittance transaction to be verified (S103: YES), the verification unit 201 acquires the unverified input (S104), Validate the data. First, the verification unit 201 extracts an orb currency generating transaction used for the input data from the pointer of the acquired input data (S105). Further, the verification unit 201 calculates a price reduction and a balance of input data from the difference between the transaction occurrence time and the current time of the currency generation transaction (S106).

次に、検証部201は、検証対象送金トランザクションに含まれるアウトプットデータの送金金額の合計金額が、計算した残高を上回っていないか確認して、当該インプットデータの正当性を検証する(S107)。送金金額の合計金額が、計算した残高を上回っている場合(S107:NO)には、検証部201は、検証対象の送金トランザクションは不正な送金トランザクションであるとして、ブロックには格納しない(S151)。一方で、検証対象送金トランザクションに含まれるアウトプットデータの送金金額の合計金額が、計算した残高を上回っていない場合(S107:YES)には、検証対象送金トランザクションは、正当なインプットデータであるとして、当該インプットデータを承認する。検証部201は、このS103〜107までの処理を送金トランザクションに含まれるすべてのインプットデータの検証が完了するまで繰り返し実行する。送金トランザクションに含まれるすべてのインプットデータが正当であると承認した場合には、検証は当該送金トランザクションを正当な送金トランザクションとしてブロックに格納する。   Next, the verification unit 201 verifies whether the total amount of remittance of output data included in the remittance transaction to be verified exceeds the calculated balance, and verifies the validity of the input data (S107). . If the total amount of remittance exceeds the calculated balance (S107: NO), the verification unit 201 assumes that the remittance transaction to be verified is an illegal remittance transaction and does not store it in the block (S151). . On the other hand, if the total amount of the remittance amount of the output data included in the verification target remittance transaction does not exceed the calculated balance (S107: YES), the verification remittance transaction is assumed to be valid input data. Approve the input data. The verification unit 201 repeatedly executes the processes from S103 to S107 until verification of all input data included in the remittance transaction is completed. If all input data included in the remittance transaction is approved as valid, verification stores the remittance transaction in the block as a valid remittance transaction.

検証部201は、S101〜S107までの処理を未検証送金トランザクションがなくなるまで繰り返し実行する。端末200が受信した送金トランザクションに未検証送金トランザクションがなくなると(S101:NO)、報酬計算部203は、ブロックに格納した送金トランザクションの減価額の合計金額に基づいて、マイナーの報酬を計算する。さらに報酬計算部203は、送金金額を計算した合計金額とし、送金先を当該マイナーに指定して、通貨発生トランザクションを作成し、ネットワーク400にブロードキャストで配信する(S108)。配信した通貨発生トランザクションが他のマイナーに承認されると、報酬金が、通貨発生トランザクションを配信したマイナーに与えられる(S109)。   The verification unit 201 repeatedly executes the processing from S101 to S107 until there is no unverified remittance transaction. When there is no unverified remittance transaction in the remittance transaction received by the terminal 200 (S101: NO), the remuneration calculation unit 203 calculates a minor remuneration based on the total amount of depreciation of the remittance transaction stored in the block. Further, the remuneration calculation unit 203 sets the remittance amount as a total amount, designates the remittance destination as the minor, creates a currency generation transaction, and distributes it to the network 400 by broadcast (S108). When the distributed currency generation transaction is approved by another miner, a reward is given to the miner who distributed the currency generation transaction (S109).

このように本実施形態に係るマイニングツールが、マイナーが獲得する報酬が承認したブロックに含まれる送金トランザクションの減価額に基づいて決定するように端末200を機能させることで、マイナーに対する報酬を枯渇させないようにすることが可能となる。   As described above, the mining tool according to the present embodiment does not deplete the reward for the miner by causing the terminal 200 to function based on the reduced price of the remittance transaction included in the approved block. It becomes possible to do so.

(4 ハードウェア構成)
以下、図10を参照しながら、上述してきた端末100及び端末200をコンピュータ800により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。
(4 hardware configuration)
Hereinafter, an example of a hardware configuration when the terminal 100 and the terminal 200 described above are realized by the computer 800 will be described with reference to FIG. The function of each device can be realized by dividing it into a plurality of devices.

図10に示すように、コンピュータ800は、プロセッサ801、メモリ803、記憶装置805、入力I/F部807、データI/F部809、通信I/F部811、及び表示装置813を含む。   As illustrated in FIG. 10, the computer 800 includes a processor 801, a memory 803, a storage device 805, an input I / F unit 807, a data I / F unit 809, a communication I / F unit 811, and a display device 813.

プロセッサ801は、メモリ803に記憶されているプログラムを実行することによりコンピュータ800における様々な処理を制御する。例えば、端末100の送金受付部101やインプットデータ作成部102、アウトプットデータ作成部103、送金トランザクション配信部104、マッピング部105、端末200の検証部201や発掘部202、報酬計算部203、更新許可部204などは、メモリ803に一時記憶された上で、主にプロセッサ801上で動作するプログラムとして実現可能である。   The processor 801 controls various processes in the computer 800 by executing a program stored in the memory 803. For example, the remittance accepting unit 101, the input data creating unit 102, the output data creating unit 103, the remittance transaction delivery unit 104, the mapping unit 105, the verification unit 201, the excavating unit 202, the reward calculating unit 203, and the update of the terminal 200 The permission unit 204 or the like can be realized as a program that mainly operates on the processor 801 after being temporarily stored in the memory 803.

メモリ803は、例えばRAM(Random Access Memory)等の記憶媒体である。メモリ803は、プロセッサ801によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。   The memory 803 is a storage medium such as a RAM (Random Access Memory). The memory 803 temporarily stores a program code of a program executed by the processor 801 and data necessary for executing the program.

記憶装置805は、例えばハードディスクドライブ(HDD)やフラッシュメモリ等の不揮発性の記憶媒体である。記憶装置805は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。この他、記憶装置805は、送金トランザクション情報DB131や、ブロック情報DB132、マッピング情報DB133、口座情報DB134、マッピングトランザクション情報DB135を記憶することも可能である。このようなプログラムやデータは、必要に応じてメモリ803にロードされることにより、プロセッサ801から参照される。   The storage device 805 is a non-volatile storage medium such as a hard disk drive (HDD) or a flash memory. The storage device 805 stores an operating system and various programs for realizing the above-described configurations. In addition, the storage device 805 can store a remittance transaction information DB 131, a block information DB 132, a mapping information DB 133, an account information DB 134, and a mapping transaction information DB 135. Such programs and data are referred to by the processor 801 by being loaded into the memory 803 as necessary.

入力I/F部807は、ユーザからの入力を受け付けるためのデバイスである。入力I/F部807の具体例としては、キーボードやマウス、タッチパネル、各種センサ、ウェアラブル・デバイス等が挙げられる。入力I/F部807は、例えばUSB(Universal Serial Bus)等のインタフェースを介してコンピュータ800に接続されても良い。   The input I / F unit 807 is a device for receiving input from the user. Specific examples of the input I / F unit 807 include a keyboard, a mouse, a touch panel, various sensors, and a wearable device. The input I / F unit 807 may be connected to the computer 800 via an interface such as a USB (Universal Serial Bus).

データI/F部809は、コンピュータ800の外部からデータを入力するためのデバイスである。データI/F部809の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置等がある。データI/F部809は、コンピュータ800の外部に設けられることも考えられる。その場合、データI/F部809は、例えばUSB等のインタフェースを介してコンピュータ800へと接続される。   A data I / F unit 809 is a device for inputting data from the outside of the computer 800. Specific examples of the data I / F unit 809 include a drive device for reading data stored in various storage media. The data I / F unit 809 may be provided outside the computer 800. In this case, the data I / F unit 809 is connected to the computer 800 via an interface such as a USB.

通信I/F部811は、コンピュータ800の外部の装置と有線又は無線により、インターネットNを介したデータ通信を行うためのデバイスである。通信I/F部811は、コンピュータ800の外部に設けられることも考えられる。その場合、通信I/F部811は、例えばUSB等のインタフェースを介してコンピュータ800に接続される。   The communication I / F unit 811 is a device for performing data communication with the external device of the computer 800 via the Internet N by wire or wireless. The communication I / F unit 811 may be provided outside the computer 800. In that case, the communication I / F unit 811 is connected to the computer 800 via an interface such as a USB.

表示装置813は、各種情報を表示するためのデバイスである。表示装置813の具体例としては、例えば液晶ディスプレイや有機EL(Electro−Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイ等が挙げられる。表示装置813は、コンピュータ800の外部に設けられても良い。その場合、表示装置813は、例えばディスプレイケーブル等を介してコンピュータ800に接続される。   The display device 813 is a device for displaying various information. Specific examples of the display device 813 include a liquid crystal display, an organic EL (Electro-Luminescence) display, and a wearable device display. The display device 813 may be provided outside the computer 800. In that case, the display device 813 is connected to the computer 800 via, for example, a display cable.

[その他の実施形態]
以上、本発明の実施形態について述べたが、本発明は既述の実施形態に限定されるものではなく、本発明の技術的思想に基づいて各種の変形及び変更が可能である。
[Other embodiments]
Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments, and various modifications and changes can be made based on the technical idea of the present invention.

例えば、既述の実施形態において、マイニングツールは、ウォレットツールと合わせてインストールされる構成として説明したが、これに限定されない。たとえば、端末200はマイニングツールだけをインストールする構成としてもよい。この場合、端末200には、検証部201、発掘部202、及び報酬計算部203とあわせて、送金トランザクション情報DB131、ブロック情報DB132、及び公開鍵情報DB133がインストールされることが望ましい。また、既述の実施形態において、仮想通貨は時間の経過とともに減価する構成を例に説明したが、これに限定されず、減価しないものであってもよい。さらに、仮想通貨は電子的に資産として管理や取引されるものであればよく、現実の通貨や株、債券、土地等に対応するものであってもよい。   For example, in the above-described embodiment, the mining tool has been described as being installed together with the wallet tool, but the present invention is not limited to this. For example, the terminal 200 may be configured to install only a mining tool. In this case, it is desirable that a remittance transaction information DB 131, a block information DB 132, and a public key information DB 133 are installed in the terminal 200 together with the verification unit 201, the excavation unit 202, and the reward calculation unit 203. Further, in the above-described embodiment, the virtual currency has been described by taking an example of a configuration in which the virtual currency is depreciated as time passes. Furthermore, the virtual currency only needs to be electronically managed or traded as an asset, and may correspond to an actual currency, stock, bond, land, or the like.

10 仮想通貨システム
100 端末
101 送金受付部
102 インプットデータ作成部
103 アウトプットデータ作成部
104 送金トランザクション配信部
105 マッピング部
131 送金トランザクション情報DB
132 ブロック情報DB
133 マッピング情報DB
134 口座情報DB
135 マッピングトランザクション情報DB
200 端末
201 検証部
202 発掘部
203 報酬計算部
204 更新許可部
400 ネットワーク
DESCRIPTION OF SYMBOLS 10 Virtual currency system 100 Terminal 101 Remittance reception part 102 Input data creation part 103 Output data creation part 104 Remittance transaction delivery part 105 Mapping part 131 Remittance transaction information DB
132 Block information DB
133 Mapping information DB
134 Account Information DB
135 Mapping transaction information DB
200 Terminal 201 Verification Unit 202 Excavation Unit 203 Reward Calculation Unit 204 Update Permission Unit 400 Network

Claims (3)

コンピュータを、
ユーザの識別子と、当該ユーザの公開鍵との対応関係を示し、前記公開鍵の更新を許可する管理ユーザの公開鍵を含むマッピング情報を記憶する記憶手段、
仮想通貨を第1のユーザに送金する第1の取引における、前記第1のユーザの識別子を含む第1の取引情報と、前記第1の取引により送金された金額の少なくとも一部を前記第1のユーザが送金する第2の取引における、前記第1のユーザの第1の公開鍵及び第1の電子署名を含む第2の取引情報とを記憶する記憶手段、及び
前記第2の取引情報に含まれる前記第1の公開鍵が、前記マッピング情報において、前記第1の取引情報に含まれる前記第1のユーザの識別子に対応付けられているか否か、及び、前記第2の取引情報に含まれる前記第1の公開鍵で前記第2の取引情報に含まれる前記第1の電子署名を検証できるか否かに基づいて、前記第2の取引の正当性を検証する検証手段、
第2のユーザの識別子、第2の公開鍵、及び第2の電子署名を含む更新情報を記憶する記憶手段、及び
前記マッピング情報において、前記更新情報に含まれる前記第2のユーザの識別子に対応付けられた前記管理ユーザの第3の公開鍵で、前記更新情報に含まれる前記第2の電子署名を検証可能な場合、前記マッピング情報において前記第2のユーザの識別子に対応付けられた前記第2のユーザの第4の公開鍵を、前記更新情報に含まれる前記第2の公開鍵に更新する更新手段、
として機能させる仮想通貨管理プログラム。
Computer
An identifier of the user, memory means shows the correspondence between the public key of the user, and stores the mapping information including the public key of the administrative user to allow updates of the public key,
The first transaction information including the identifier of the first user in the first transaction for transferring the virtual currency to the first user, and at least a part of the amount remitted by the first transaction Storage means for storing second transaction information including a first public key and a first electronic signature of the first user in a second transaction remittance by the user, and in the second transaction information Whether the first public key included is associated with the identifier of the first user included in the first transaction information in the mapping information, and included in the second transaction information Verifying means for verifying the validity of the second transaction based on whether the first electronic signature included in the second transaction information can be verified with the first public key.
Storage means for storing update information including an identifier of the second user, a second public key, and a second electronic signature; and
In the mapping information, the second electronic signature included in the update information can be verified with the third public key of the management user associated with the identifier of the second user included in the update information. Update means for updating the second public key of the second user associated with the identifier of the second user in the mapping information to the second public key included in the update information,
Virtual currency management program to function as.
前記マッピング情報は、前記第2のユーザの識別子に対応付けられた公開鍵として、第4及び第5の公開鍵を含み、
前記更新情報は、さらに、前記第5の公開鍵を含み、
前記更新手段は、
前記マッピング情報において、前記第2の電子署名を前記第3の公開鍵または前記第5の公開鍵で検証可能な場合、前記第2のユーザの識別子に対応付けられた公開鍵を、前記第4及び第5の公開鍵から、前記第2及び第5の公開鍵に更新する、請求項1に記載の仮想通貨管理プログラム。
The mapping information includes fourth and fifth public keys as public keys associated with the second user identifier,
The update information further includes the fifth public key,
The updating means includes
In the mapping information, when the second electronic signature can be verified with the third public key or the fifth public key, the public key associated with the identifier of the second user is set to the fourth public key. The virtual currency management program according to claim 1, wherein the second public key and the fifth public key are updated to the second public key and the fifth public key.
コンピュータが、
ユーザの識別子と、当該ユーザの公開鍵との対応関係を示し、前記公開鍵の更新を許可する管理ユーザの公開鍵を含むマッピング情報を記憶するステップと、
仮想通貨を第1のユーザに送金する第1の取引における、前記第1のユーザの識別子を含む第1の取引情報と、前記第1の取引により送金された金額の少なくとも一部を前記第1のユーザが送金する第2の取引における、前記第1のユーザの第1の公開鍵及び第1の電子署名を含む第2の取引情報とを記憶するステップと、
前記第2の取引情報に含まれる前記第1の公開鍵が、前記マッピング情報において、前記第1の取引情報に含まれる前記第1のユーザの識別子に対応付けられているか否か、及び、前記第2の取引情報に含まれる前記第1の公開鍵で前記第2の取引情報に含まれる前記第1の電子署名を検証できるか否かに基づいて、前記第2の取引の正当性を検証するステップと、
第2のユーザの識別子、第2の公開鍵、及び第2の電子署名を含む更新情報を記憶するステップ、及び
前記マッピング情報において、前記更新情報に含まれる前記第2のユーザの識別子に対応付けられた前記管理ユーザの第3の公開鍵で、前記更新情報に含まれる前記第2の電子署名を検証可能な場合、前記マッピング情報において前記第2のユーザの識別子に対応付けられた前記第2のユーザの第4の公開鍵を、前記更新情報に含まれる前記第2の公開鍵に更新するステップ、
を実行する仮想通貨管理方法。
Computer
And storing the identifier of the user, and shows the correspondence between public key of the user, the mapping information including the public key of the administrative user to allow updates of the public key,
The first transaction information including the identifier of the first user in the first transaction for transferring the virtual currency to the first user, and at least a part of the amount remitted by the first transaction Storing second transaction information including a first public key and a first electronic signature of the first user in a second transaction sent by the user of
Whether or not the first public key included in the second transaction information is associated with the identifier of the first user included in the first transaction information in the mapping information; and The validity of the second transaction is verified based on whether or not the first electronic signature included in the second transaction information can be verified with the first public key included in the second transaction information. And steps to
Storing update information including a second user identifier, a second public key, and a second electronic signature; and
In the mapping information, the second electronic signature included in the update information can be verified with the third public key of the management user associated with the identifier of the second user included in the update information. And updating the second public key of the second user associated with the identifier of the second user in the mapping information to the second public key included in the update information,
Virtual currency management method to execute.
JP2015080222A 2015-04-09 2015-04-09 Virtual currency management program and virtual currency management method Active JP5858506B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015080222A JP5858506B1 (en) 2015-04-09 2015-04-09 Virtual currency management program and virtual currency management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015080222A JP5858506B1 (en) 2015-04-09 2015-04-09 Virtual currency management program and virtual currency management method

Publications (2)

Publication Number Publication Date
JP5858506B1 true JP5858506B1 (en) 2016-02-10
JP2016200954A JP2016200954A (en) 2016-12-01

Family

ID=55301012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015080222A Active JP5858506B1 (en) 2015-04-09 2015-04-09 Virtual currency management program and virtual currency management method

Country Status (1)

Country Link
JP (1) JP5858506B1 (en)

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017170679A1 (en) * 2016-03-31 2017-10-05 株式会社bitFlyer Private node, processing method for private node, and program for same
JP2017188883A (en) * 2017-03-23 2017-10-12 株式会社bitFlyer Private node, processing method in private node, and program therefor
JP2017200196A (en) * 2017-06-01 2017-11-02 株式会社bitFlyer Private node, processing method in private node, and program therefor
JP2017224017A (en) * 2016-06-13 2017-12-21 日本電信電話株式会社 Processing system and processing method
JP2018014567A (en) * 2016-07-19 2018-01-25 ソフトバンク株式会社 Control method, information processing system, computer and control program
JP6274680B1 (en) * 2016-10-18 2018-02-07 株式会社大和総研ビジネス・イノベーション Transaction recording system and program
JP6340107B1 (en) * 2017-04-10 2018-06-06 アイビーシー株式会社 Electronic certification system
JP2018160828A (en) * 2017-03-23 2018-10-11 沖電気工業株式会社 Remittance source device, remittance destination device, remittance method, money receiving method, program, and remittance system
JP2018182710A (en) * 2017-08-10 2018-11-15 アイビーシー株式会社 Electronic certification system
JP2018196150A (en) * 2016-03-31 2018-12-06 株式会社bitFlyer Transaction processing device, transaction processing method, and program for the same
JP2019029933A (en) * 2017-08-02 2019-02-21 富士通株式会社 Content distribution device, content distribution system, content distribution program, and content distribution method
JP2019511151A (en) * 2016-02-23 2019-04-18 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Cryptographic method and system for secure extraction of data from blockchain
JP2019513312A (en) * 2016-02-23 2019-05-23 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Tokenizing method and system for implementing exchange on blockchain
WO2019163040A1 (en) * 2018-02-22 2019-08-29 株式会社ゼタント Access management system and program thereof
JP2019524016A (en) * 2016-06-03 2019-08-29 ジエマルト・エス・アー Methods for managing the status of connected devices
JP2019525326A (en) * 2016-07-15 2019-09-05 ビザ インターナショナル サービス アソシエーション Digital asset distribution with transaction devices
JP2019532603A (en) * 2016-10-20 2019-11-07 ソニー株式会社 Digital rights management based on blockchain
JP2019535076A (en) * 2016-09-30 2019-12-05 アマゾン・テクノロジーズ、インコーポレイテッド Immutable database supported by a cryptographically protected ledger
JP2019211563A (en) * 2018-06-01 2019-12-12 富士ゼロックス株式会社 Data processing device
JP2019537318A (en) * 2016-10-06 2019-12-19 マスターカード インターナシヨナル インコーポレーテツド Method and system for identity and certificate protection and verification via blockchain
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US11113161B2 (en) 2016-03-28 2021-09-07 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
US11120437B2 (en) 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US11194898B2 (en) 2016-02-23 2021-12-07 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
US11308486B2 (en) 2016-02-23 2022-04-19 nChain Holdings Limited Method and system for the secure transfer of entities on a blockchain
US11349645B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11356280B2 (en) 2016-02-23 2022-06-07 Nchain Holdings Ltd Personal device security using cryptocurrency wallets
US11373152B2 (en) 2016-02-23 2022-06-28 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097356B2 (en) 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
JP6825296B2 (en) 2016-10-11 2021-02-03 富士通株式会社 Edge server and its encrypted communication control method
JP6938920B2 (en) * 2017-01-19 2021-09-22 富士通株式会社 Information processing system, verification device, information processing method, verification method and program
WO2018158960A1 (en) * 2017-03-03 2018-09-07 A・Tコミュニケーションズ株式会社 Information processing device, information processing method, and program
KR102050007B1 (en) * 2017-03-07 2020-01-08 서강대학교산학협력단 System and method for supporting external interface based on block chain
US20200051056A1 (en) * 2017-03-08 2020-02-13 Sicpa Holding Sa Advanced methods, systems and devices for registering information in a database
US11157900B2 (en) 2017-03-24 2021-10-26 Mastercard International Incorporated Method and system for offline data transfer via machine-readable code
CN111756550A (en) * 2017-03-28 2020-10-09 创新先进技术有限公司 Block chain consensus method and device
CA3057161A1 (en) * 2017-05-18 2018-11-22 Codex Llc Decentralized digital content distribution system and process using block chains
AU2019315764A1 (en) * 2018-07-29 2021-02-18 Praveen Baratam A computer-implemented method, a computer system and a cryptocurrency depository for enabling secure escrow and safekeeping of a cryptocurrency
JP6532581B1 (en) * 2018-08-28 2019-06-19 株式会社リップル・マーク Virtual currency management system, virtual currency management method and virtual currency management program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260123A (en) * 2005-03-17 2006-09-28 Hitachi Ltd Credit management system, credit management method and program
US20130054471A1 (en) * 2007-04-19 2013-02-28 Gideon Samid Bit Currency: Transactional Trust Tools
US20130166455A1 (en) * 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006260123A (en) * 2005-03-17 2006-09-28 Hitachi Ltd Credit management system, credit management method and program
US20130054471A1 (en) * 2007-04-19 2013-02-28 Gideon Samid Bit Currency: Transactional Trust Tools
US20150006895A1 (en) * 2009-06-01 2015-01-01 Maidsafe Foundation Distributed network system
US20130166455A1 (en) * 2011-12-23 2013-06-27 Douglas Feigelson Creating and using digital currency

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015032130; 岡田 仁志: 'ビットコインの構造と制度的課題' 情報処理 2014年5月号 第55巻,第5号, 20140415, 第440-443頁, 一般社団法人情報処理学会 *

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977128B1 (en) 2015-06-16 2021-04-13 Amazon Technologies, Inc. Adaptive data loss mitigation for redundancy coding systems
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
US11308486B2 (en) 2016-02-23 2022-04-19 nChain Holdings Limited Method and system for the secure transfer of entities on a blockchain
US11356280B2 (en) 2016-02-23 2022-06-07 Nchain Holdings Ltd Personal device security using cryptocurrency wallets
US11347838B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Blockchain implemented counting system and method for use in secure voting and distribution
US11349645B2 (en) 2016-02-23 2022-05-31 Nchain Holdings Ltd. Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
US11373152B2 (en) 2016-02-23 2022-06-28 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
JP6995762B2 (en) 2016-02-23 2022-01-17 エヌチェーン ホールディングス リミテッド Cryptographic methods and systems for the secure extraction of data from the blockchain
US11194898B2 (en) 2016-02-23 2021-12-07 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
US11182782B2 (en) 2016-02-23 2021-11-23 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
US11120437B2 (en) 2016-02-23 2021-09-14 nChain Holdings Limited Registry and automated management method for blockchain-enforced smart contracts
JP2019511151A (en) * 2016-02-23 2019-04-18 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Cryptographic method and system for secure extraction of data from blockchain
JP2019513312A (en) * 2016-02-23 2019-05-23 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Tokenizing method and system for implementing exchange on blockchain
US11113161B2 (en) 2016-03-28 2021-09-07 Amazon Technologies, Inc. Local storage clustering for redundancy coded data storage system
JP2018196150A (en) * 2016-03-31 2018-12-06 株式会社bitFlyer Transaction processing device, transaction processing method, and program for the same
WO2017170679A1 (en) * 2016-03-31 2017-10-05 株式会社bitFlyer Private node, processing method for private node, and program for same
JP2019524016A (en) * 2016-06-03 2019-08-29 ジエマルト・エス・アー Methods for managing the status of connected devices
JP2017224017A (en) * 2016-06-13 2017-12-21 日本電信電話株式会社 Processing system and processing method
JP2019525326A (en) * 2016-07-15 2019-09-05 ビザ インターナショナル サービス アソシエーション Digital asset distribution with transaction devices
JP2018014567A (en) * 2016-07-19 2018-01-25 ソフトバンク株式会社 Control method, information processing system, computer and control program
US11137980B1 (en) 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
US10810157B1 (en) 2016-09-28 2020-10-20 Amazon Technologies, Inc. Command aggregation for data storage operations
US11204895B1 (en) 2016-09-28 2021-12-21 Amazon Technologies, Inc. Data payload clustering for data storage systems
US11281624B1 (en) 2016-09-28 2022-03-22 Amazon Technologies, Inc. Client-based batching of data payload
JP2019535076A (en) * 2016-09-30 2019-12-05 アマゾン・テクノロジーズ、インコーポレイテッド Immutable database supported by a cryptographically protected ledger
US10614239B2 (en) 2016-09-30 2020-04-07 Amazon Technologies, Inc. Immutable cryptographically secured ledger-backed databases
JP2020184774A (en) * 2016-10-06 2020-11-12 マスターカード インターナシヨナル インコーポレーテツド Method and system for protecting and verifying identity and credential via blockchain
US11062038B2 (en) 2016-10-06 2021-07-13 Mastercard International Incorporated Method and system for identity and credential protection and verification via blockchain
JP2019537318A (en) * 2016-10-06 2019-12-19 マスターカード インターナシヨナル インコーポレーテツド Method and system for identity and certificate protection and verification via blockchain
JP6274680B1 (en) * 2016-10-18 2018-02-07 株式会社大和総研ビジネス・イノベーション Transaction recording system and program
JP2019532603A (en) * 2016-10-20 2019-11-07 ソニー株式会社 Digital rights management based on blockchain
US11269888B1 (en) 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
JP2017188883A (en) * 2017-03-23 2017-10-12 株式会社bitFlyer Private node, processing method in private node, and program therefor
JP2018160828A (en) * 2017-03-23 2018-10-11 沖電気工業株式会社 Remittance source device, remittance destination device, remittance method, money receiving method, program, and remittance system
JP6340107B1 (en) * 2017-04-10 2018-06-06 アイビーシー株式会社 Electronic certification system
JP2018182487A (en) * 2017-04-10 2018-11-15 アイビーシー株式会社 Electronic certification system
JP2017200196A (en) * 2017-06-01 2017-11-02 株式会社bitFlyer Private node, processing method in private node, and program therefor
JP2019029933A (en) * 2017-08-02 2019-02-21 富士通株式会社 Content distribution device, content distribution system, content distribution program, and content distribution method
JP2018182710A (en) * 2017-08-10 2018-11-15 アイビーシー株式会社 Electronic certification system
WO2019163040A1 (en) * 2018-02-22 2019-08-29 株式会社ゼタント Access management system and program thereof
JPWO2019163040A1 (en) * 2018-02-22 2021-01-07 株式会社ゼタント Access control system and its programs
JP7077792B2 (en) 2018-06-01 2022-05-31 富士フイルムビジネスイノベーション株式会社 Data processing equipment
JP2019211563A (en) * 2018-06-01 2019-12-12 富士ゼロックス株式会社 Data processing device

Also Published As

Publication number Publication date
JP2016200954A (en) 2016-12-01

Similar Documents

Publication Publication Date Title
JP5858506B1 (en) Virtual currency management program and virtual currency management method
JP5858507B1 (en) Virtual currency management program and virtual currency management method
JP5871347B1 (en) Virtual currency management program and virtual currency management method
JP6841911B2 (en) Information protection systems and methods
EP3439231A1 (en) Private node, processing method for private node, and program for same
CN110520884A (en) Intelligent bond service outside chain based on credible performing environment
CN109937557A (en) System and method for information protection
KR20190034272A (en) Block Chain Implementation Method and System
US20140136418A1 (en) System and method for application security
CN104040933A (en) Differential client-side encryption of information originating from client
JP6377679B2 (en) Control method, information processing system, computer, and control program
US20200153628A1 (en) Information processing system, method for changing public key, program, and method for building information processing system
US11373216B2 (en) Method, server, and computer program for mediating advertisement based on block chain
JP6756041B2 (en) Information protection systems and methods
JP6296630B1 (en) Distributed ledger system and program
EP3531365A1 (en) Computer system, connection apparatus, and processing method using transaction
JP7090903B2 (en) Information processing system, data provision method, and manufacturing method of information processing system
WO2019163040A1 (en) Access management system and program thereof
WO2021117515A1 (en) Electronic asset management method, and electronic asset management device
US20210326942A1 (en) Method of Securing Online Merchant Reviews Using Block Chains
JP2020129284A (en) Program, information processing device, and information processing method
JP6925496B1 (en) Information processing equipment, programs and information processing methods
WO2020059410A1 (en) Information processing device, information processing method, and program
US20220101308A1 (en) Method and system for payment for central bank digital currency
JP6776396B2 (en) Trading system

Legal Events

Date Code Title Description
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: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151210

R150 Certificate of patent or registration of utility model

Ref document number: 5858506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250