Source: https://patents.google.com/patent/JP5858507B1/en
Timestamp: 2020-01-27 22:20:32
Document Index: 181659281

Matched Legal Cases: ['art 202', 'art 203', 'art 102', 'art 103', 'art 104', 'art 131']

JP5858507B1 - Virtual currency management program and virtual currency management method - Google Patents
Virtual currency management program and virtual currency management method Download PDF
JP5858507B1
JP5858507B1 JP2015101225A JP2015101225A JP5858507B1 JP 5858507 B1 JP5858507 B1 JP 5858507B1 JP 2015101225 A JP2015101225 A JP 2015101225A JP 2015101225 A JP2015101225 A JP 2015101225A JP 5858507 B1 JP5858507 B1 JP 5858507B1
JP2015101225A
JP2016218633A (en
賢爾 斉藤
2015-05-18 Application filed by 株式会社Ｏｒｂ filed Critical 株式会社Ｏｒｂ
2015-05-18 Priority to JP2015101225A priority Critical patent/JP5858507B1/en
2016-02-10 Publication of JP5858507B1 publication Critical patent/JP5858507B1/en
2016-12-22 Publication of JP2016218633A publication Critical patent/JP2016218633A/en
A virtual currency management program and a virtual currency management method capable of reducing the processing capacity and storage capacity of a terminal necessary for mining are provided. Included in the first transaction information is verification request means for requesting a terminal device connected to a computer via a network and capable of verifying the validity of transaction information to verify the validity of second transaction information. Verification means for verifying whether the second user is the first user based on the identifier of the first user and the electronic signature of the second user included in the second transaction information, The search means for searching for a time stamp in which the excavation information generated based on the transaction information and the time stamp of 1 satisfies a predetermined condition, the verification result in the terminal device and the verification means is valid, and the search means sets the predetermined condition. When a time stamp to be satisfied is searched for, it is made to function as distribution means for distributing approval information indicating that the second transaction information has been approved to the network. [Selection] Figure 1
The present invention relates to a virtual currency management program, a virtual currency management method, and the like.
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 cryptographic techniques (hereinafter, bitcoin transactions are also referred to as “transactions”) are distributed by broadcast to all terminals using bitcoins. The delivered transactions are verified for validity by terminal software called a miner (digger), and when approved, they are collected into excavated blocks and recorded in a ledger called a block chain.
Non-Patent Document 1 discloses a method of preventing transaction tampering by causing a minor to perform a process called mining when a block is added to a block chain. In the method described in Non-Patent Document 1, in mining, the miner stores a plurality of transactions each collected in a block being created, a hash value of the current last block in the block chain, and an arbitrary value. . Then, an arbitrary value to be stored is sequentially increased until a hash value when a hash function is applied to a block being created is a value equal to or lower than a target agreed in advance in the network.
By Kengo Saito, "Bitcoin I understand now [Conditions for Surviving Currency]", first edition, Taro Jiro Editors, May 5, 2014, p. 87-89
In the method described in Non-Patent Document 1, it is necessary for a minor to use a terminal with high processing capability in order to perform mining. Also, the terminal used for mining needs to store all transaction history in its own terminal. Therefore, a terminal with low processing capability such as a portable terminal or a terminal with a small storage capacity cannot participate in mining.
Therefore, in view of the above circumstances, the present invention aims to provide a virtual currency management program and a virtual currency management method capable of reducing the processing capacity and storage capacity of a terminal necessary for mining. is there.
The virtual currency management program according to the present invention includes a first transaction information including an identifier of a first virtual currency and a first user of a remittance destination in a transaction for remittance of a first virtual currency; The second virtual currency, the electronic signature of the second user of the remittance source, and the identifier of the third user of the remittance destination in the second transaction for transferring the second virtual currency that is at least part of the virtual currency A storage means for storing the second transaction information, and a verification that requests the terminal device connected to the computer via the network and verifies the validity of the transaction information to verify the validity of the second transaction information. Based on the requesting means, the identifier of the first user included in the first transaction information, and the electronic signature of the second user included in the second transaction information, the second user is the first user. Verification to verify whether The search means for searching for a time stamp in which excavation information generated based on the first transaction information and the time stamp satisfies a predetermined condition, the verification result in the terminal device and the verification means is valid, and predetermined by the search means In the case where a time stamp satisfying the above condition is searched for, a distribution means for distributing approval information indicating that the second transaction information has been approved to the network is included.
The virtual currency management method according to the present invention includes a first transaction information including a first virtual currency and a first user identifier of a remittance destination in a transaction in which the computer remits the first virtual currency; The second virtual currency, the electronic signature of the second user of the remittance source, and the third user of the remittance destination in the second transaction for transferring the second virtual currency that is at least a part of the first virtual currency A storage step for storing the second transaction information including the identifier, and a terminal device connected to the computer via the network and capable of verifying the validity of the transaction information, to verify the validity of the second transaction information. Based on the verification requesting step to request, the identifier of the first user included in the first transaction information, and the electronic signature of the second user included in the second transaction information, the second user Verify that you are a user A verification step, a search step in which excavation information generated based on the first transaction information and the time stamp satisfies a predetermined condition, a verification result in the terminal device and the verification step is valid, and a search A distribution step of distributing approval information indicating that the second transaction information has been approved to a network when a time stamp satisfying a predetermined condition is searched for by the step.
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.
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.
ADVANTAGE OF THE INVENTION According to this invention, the virtual currency management program and virtual currency management method which can reduce the processing capacity and storage capacity of a terminal required for mining can be provided.
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 client terminal in embodiment of this invention. It is a figure which shows typically an example of the structure of the block 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 transaction in embodiment of this invention. It is a figure which shows an example of the functional block of the client terminal in embodiment of this invention. It is a figure which shows an example of the flow of a verification process of the portable terminal in embodiment of this invention. It is a figure which shows an example of the flow of the excavation process of the portable terminal 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.
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. 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 terminals 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 users who verify and approve transactions. These client terminals will be described as a mobile terminal 200, a node 300, and a management node 400. In the present embodiment, the mobile terminal 200 is a terminal that has a smaller storage capacity and a lower processing capacity than the node 300 and the management node 400.
The terminal 100, the mobile terminal 200, the node 300, and the management node 400 are computers connected to a network N such as the Internet or a dedicated line. Specifically, examples of the terminal 100 include a mobile phone, a smartphone, a PC (Personal Computer), a PDA (Personal Digital Assistants), a tablet, and a wearable terminal. Examples of the mobile terminal 200 include a mobile phone, a smartphone, a PDA, a tablet, and a wearable terminal. Furthermore, examples of the node 300 or the management node 400 include a PC and a server device. The terminal 100, the portable terminal 200, the node 300, and the management node 400 that are connected to the network N by wire or wirelessly are configured to be communicable with each other, thereby configuring the virtual currency system 10. 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. 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 for purchasing orbs and conducting transactions using the orbs. On the other hand, a mining tool is a tool necessary for verifying the completeness and consistency of transactions using orbs and approving transactions.
A user who has installed the wallet tool on the client terminal needs to acquire an ID (identifier) unique to the network N. 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 managed in association with a public key used for orb purchase and remittance. The user who acquired the ID 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 “transaction”. In particular, data related to orb purchase is also referred to as “currency-generating transaction”) Managed by the body. 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 legitimacy of a transaction and approve a legitimate transaction. Further, a minor can generate a block composed of approved transactions (hereinafter, generating a block is also referred to as “excavating a block”) and connecting it to a 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. Functional configuration>
Next, functional configurations of the terminal 100, the mobile terminal 200, the node 300, and the management node 400 in which the virtual currency management program according to the present embodiment is installed will be described with reference to FIG.
<3-1. Wallet Tool Functions>
FIG. 2 is a diagram illustrating an example of a functional block diagram of the terminal 100 in which the wallet tool is installed. In the terminal 100 in which the wallet tool is installed, a transaction DB 131, a block information DB 132, a public key information DB 133, an account information DB 134, a remittance accepting unit 101, an input data creating unit 102, an output data creating unit 103, The transaction delivery unit 104 is preferably constructed.
The transaction information DB 131 stores a history of transactions distributed by the terminal 100, the mobile terminal 200, the node 300, or the management node 400 to the network N by broadcast. In general, it is desirable that one transaction includes input data, output data, time when the transaction occurs, and time when the transaction is added to a block chain described later. Note that the currency generation transaction distributed at the time of purchasing the orb may not include input data.
The output data preferably includes the amount of the orb to be remittance and the ID of the user to whom the remittance is made. The output data may include information that can specify the user of the remittance destination instead of the ID of the user of the remittance destination, and may include, for example, the public key of the remittance destination user.
The input data includes at least a pointer and an electronic signature. The pointer is a pointer to output data of a transaction in which the remittance source user has received the orb to be remitted this time. The electronic signature is an electronic signature of a remittance source user created by an electronic signature creation process described later.
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 transaction as the current remittance target. Thus, the orb transaction has a structure in which input data has a pointer to the previous output data. As a result, all transactions have a data structure that is linked in a daisy chain through pointers to currency generation transactions.
The block information DB 132 stores information about the generated block. The block stores a plurality of transactions that the minor has verified and approved. Orb purchases and remittances are managed by a structure called a blockchain. A block chain is data in which blocks called blocks are 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.
FIG. 3 is a diagram schematically illustrating an example of a data structure of a block.
In the example of FIG. 3, the block B01 includes a block header BH01 and a plurality of transactions T11 and T12. Further, the block header BH01 includes a digest of a plurality of transactions T01 and T02 included in the subheader SH01 and the block B01. A digest is a summary of electronic data. For example, a hash value obtained by substituting electronic data into a predetermined hash function (for example, SHA-256 or the like), or a digest of electronic data can be used.
The subheader SH01 is a header of the block header BH01. The subheader SH01 includes the digest of the block header of the block immediately before the block B01, the ID of the user who found the block B01, and a time stamp.
The block information DB 132 may store checkpoints to be described later. A checkpoint is a type of block. The checkpoint determines a block connected to the block chain between the checkpoint inserted last time and the checkpoint inserted this time, and prevents the transaction in the block from being tampered with. Checkpoints include approved transactions, for example, as well as blocks. The checkpoint may be an empty block that does not include a transaction.
In the public key information DB 133, IDs of all users included in the virtual currency system 10 and public keys are stored in association with each other. A plurality of public keys may be associated with one ID.
The account information DB 134 stores the secret key of the user who uses the terminal 100.
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.
The input data creation unit 102 creates input data 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
(Remittance target search process)
As the remittance target search process, the input data creation unit 102 can first search the transaction information DB 131 for a transaction having output data that can be used as a remittance target. For example, the input data creation unit 102 is a transaction having an output in which the ID of the remittance source user is specified as the remittance destination ID from the transaction information DB 131, and is specified as a pointer of input data of another transaction. It is desirable to extract transactions that have no output data.
(Depreciation calculation processing)
Next, the input data creation unit 102 refers to the remittance amount included in the output data of the extracted 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 transaction, and extracts a currency generating 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.
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 the balance of the balance at the time of purchase. It is calculated to be 81% and the depreciation rate is 19%. In addition, the aspect of the depreciation of the orb is not limited to the example of FIG. 4. For example, a fixed amount 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 the depreciation of the amount using the amount of the output data of the extracted transaction and the calculated current depreciation rate.
(Pointer specification processing)
Next, the input data creation unit 102 selects output data suitable for designating a pointer from the extracted transactions based on the remittance amount received by the remittance reception 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 transaction having output data with an amount larger than the current remittance amount, the input data creation unit 102 specifies a plurality of output data pointers. The input data may be created.
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.
(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 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.
Returning to FIG. 2, the continuation of the function of each functional block will be described.
The output data creation unit 103 creates output data 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 corresponding to the transmission destination user in the output data with reference to the public key 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.
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. .
The transaction distribution unit 104 creates a transaction related to the current remittance and distributes it to the network N. The transaction delivery unit 104 performs processing for creating the following two types of transactions.
Normal transaction (hereinafter, the normal transaction is also simply referred to as “transaction”)
-Currency generation transaction
(Normal transaction)
A normal transaction is a transaction distributed by the transaction distribution unit 104 when orb remittance is performed. A normal transaction includes input data, output data, the time when the transaction occurred, and the time when the transaction was added to the block chain.
The transaction distribution 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 further specifies the current time as the transaction occurrence time. The normal transaction can be distributed to the network N by broadcast.
(Currency transaction)
A currency generation transaction is a transaction distributed by the transaction distribution unit 104 when an orb is purchased. All transactions converge to a currency generation transaction by referring to the input data pointer.
The currency generation transaction should not include input data. The 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 user, and designates the current time as the transaction occurrence time. Thus, the currency generation transaction can be broadcast to the network N.
<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 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. 4.
In FIG. 5, block B02 is the last block in the block chain, and block B01 is the block immediately preceding block B02. Transaction T11 is a currency generation transaction, and transaction T12 is a normal transaction related to remittance of orbs from user A to user B. Further, O11 to O13 each represent output data, and I11 represents input data.
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 creates output data O11 by designating the remittance amount of 10,000 Orb and the remittance destination as the user A ID.
Next, the transaction distribution unit 104 stores the output data O11 in the transaction T11, specifies the current time as the transaction generation time, creates a currency generation transaction, and distributes it to the network N. 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.
For example, it is assumed that the user A remits 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 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 transaction is only the transaction T11, the input data creation unit 102 extracts the transaction T11.
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 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.
Next, the output data creation unit 103 creates the output data O12 by specifying the remittance amount of 7000 Orb and the user B ID as the remittance destination. 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.
The transaction distribution unit 104 stores the input data I11, the output data O12, and the output data O13 in the transaction T12, and specifies the current time as the transaction occurrence time, and distributes the transaction T12.
In the above example, when the remittance amount is, for example, 9500 Orb, the remittance amount exceeds 9000 Orb, which is the balance of the output data O11, so 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.
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.
<3-3. Mining Tool Functions>
In the present embodiment, as an example, the mining tool will be described as having a mobile version, a normal version, and a management node version. Note that the present invention is not limited to this, and only one type of mining tool may be used, and appropriate functions may be properly used according to the type and authority of the terminal after installation.
(A) Mobile Version FIG. 6A is a diagram illustrating an example of a functional block diagram of the mobile terminal 200 in which a mobile version mining tool is installed in addition to the wallet tool. In addition to the functional blocks created by the wallet tool described above, the verification unit 201, the excavation unit 202, and the reward calculation unit 203 are constructed in the mobile terminal 200 in which the mining tool (mobile version) is installed. Is desirable.
In addition, when the mobile version of the mining tool is installed, it is desirable that the transaction information DB 131 and the block information DB 132 do not store all data related to transactions. For example, only data related to a transaction to be verified by the verification unit 201 described later may be stored in the mobile terminal 200. Further, only the data related to the latest several blocks may be stored in the block information DB 132 of the mobile terminal 200. Furthermore, when the mobile version of the mining tool is installed, the IDs and public keys of all users in the network N do not have to be stored in the public key information DB 133. For example, when an enormous number of users are connected in the network N, the mobile terminal 200 only needs to store some user IDs and public keys.
The verification unit 201 executes the following three processes in order to verify and approve the validity of the received transaction.
ID verification process / integrity verification process / consistency inquiry process The verification unit 201 can approve a transaction for which integrity and consistency are recognized as a result of the above two processes as a legitimate transaction.
(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.
Specifically, the verification unit 201 first acquires the electronic signature of the remittance source user from the input data of the received remittance transaction. Further, the verification unit 201 acquires an ID stored in the output data referred to by the pointer included in the input data of the received remittance transaction.
Next, the verification unit 201 makes an inquiry to the node 300 and acquires a public key corresponding to the acquired ID. Further, the verification unit 201 verifies whether the electronic signature included in the remittance transaction can be decrypted with the acquired public key. 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.
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.
(Integrity verification process)
The verification unit 201 verifies whether the received transaction has been tampered with as the integrity verification process. Specifically, the verification unit 201 first refers to the public key information DB 133, decrypts the electronic signature included in the input data of the received transaction with the original owner's public key, 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 the part that stores the electronic signature in the entire data of the received transaction. The verification unit 201 verifies whether or not the decrypted digest and the generated digest match, and if they match, can confirm the integrity of the transaction data. When the verification unit 201 can verify the electronic signatures of all input data included in the transaction, the verification unit 201 can approve the integrity of the transaction.
(Consistency query processing)
As the consistency inquiry process, the verification unit 201 inquires of the node 300 whether or not the input data included in the received transaction is consistent with the entire block chain. For example, the verification unit 201 inquires of the node 300 whether the balance of the input data exceeds the amount of the output data.
Further, the verification unit 201 can inquire the node 300 as to whether or not a transaction referring to the same output data as the input data of the verification target transaction has already been approved as the consistency inquiry process.
The verification unit 201 can approve the consistency of the transaction when the consistency of all the input data included in the transaction can be approved as a result of the inquiry to the node 300.
FIG. 7 is a flowchart showing the flow of verification processing of the verification unit 201.
First, the verification unit 201 refers to the transaction information DB 131 and searches for transactions having unverified input data from transactions received by the mobile terminal 200 by broadcast (S01). When a transaction having unverified input data is found (S01: YES), all input data included in the unverified transaction is set as input data to be inquired to the node 300 (S11).
If there is no other transaction having unverified input data (S01: NO), the verification unit 201 requests the node 300 to verify the input data to be queried (S02). When inappropriate input data is found by the verification processing of the node 300 described later (S03: YES), the verification unit 201 generates a transaction including the inappropriate input data by the excavating unit 202 described later. Exclude from the block (S12).
Next, the verification unit 201 performs ID verification processing and integrity verification processing on the transaction whose consistency has been verified by the node 300 (S04, S05). As a result of the ID verification process and the integrity verification process, the verification unit 201 excludes the transaction that could not be verified as appropriate (S05: NO) from the blocks generated by the excavation unit 202 (S06). The verification unit 201 repeatedly executes the processes of S04 to S06 until the ID verification process and the integrity verification process are completed for all transactions.
The excavation unit 202 performs block excavation processing in order to generate a block that stores a legitimate transaction. Specifically, when generating a block, the excavating unit 202 creates a subheader by storing the previous block header digest, its own identifier, and a time stamp.
The excavation unit 202 calculates the digest of the created subheader using a hash function. The excavating unit 202 repeatedly performs calculation by changing the time stamp until the digest value becomes a predetermined value (hereinafter also referred to as “target value”) or less. When the appropriate time stamp value is found and the time stamp is stored in the block, the excavation unit 202 can connect the block to the end of the block chain.
The target value is set based on the distribution amount of orbs in the entire system and the amount of orbs held by the user of the mobile terminal 200.
In order to obtain the target value, the excavation unit 202 refers to the block information DB 132 and acquires the distribution amount of the orb in the entire system and the amount of the orb held by the user of the mobile terminal 200. When the portable terminal 200 stores only a part of transaction information in the block information DB 132, the excavation unit 202 may inquire the management node 400 or the node 300 about the distribution amount of the orb, for example. The excavation unit 202 calculates a target value in the mining process based on the obtained circulation amount of the orb and the own user's possession amount. For example, the excavation unit 202 can set the target value based on the following Equation 1.
The target value obtained by the above equation 1 is a relatively large value. Therefore, even a terminal with low processing capability such as the portable terminal 200 can excavate blocks relatively easily.
FIG. 8 is a flowchart showing a flow of excavation processing of the excavation unit 202.
The excavation unit 202 stores the digest of the previous block header and the identifier of the user itself in the sub-header of the block to be generated (S21). Next, the excavation part 202 sets a target value based on the circulation amount of the orb in the entire system and the possession amount of its own orb (S22). The excavation unit 202 repeatedly changes the time stamp stored in the subheader, and searches for a time stamp where the digest of the subheader is equal to or less than the target value (S23, S24). When a time stamp in which the digest of the subheader is less than or equal to the target value is found (S24: YES), the excavation unit 202 stores the found time stamp in the subheader and generates a block.
The reward calculation unit 203 calculates a minor reward based on the reduced price of the legitimate 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 a 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 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 and the transmission destination as the minor using the mobile terminal 200, creates output data, and executes the currency generation transaction based on the output data. It is desirable to create. The reward calculation unit 203 broadcasts the created currency generation transaction to the network N. 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 miner terminals connected to the network N, the miner using the mobile terminal 200 can receive a reward.
(B) Normal Version FIG. 6B is a diagram illustrating an example of a functional block diagram of the node 300 in which a normal version mining tool is installed in addition to the wallet tool. In the node 300 in which the mining tool is installed, in addition to the functional blocks created by the above-described wallet tool, it is desirable to construct a verification unit 301, the above-described excavation unit 202, and the reward calculation unit 203.
The verification unit 301 executes the following three processes in order to verify the validity of the received transaction.
ID verification process / integrity verification process / consistency verification process The verification unit 301 can approve a transaction that is recognized as complete and consistent as a result of the two verification processes as a legitimate transaction.
The ID verification process performed by the verification unit 301 is the same as the ID verification process of the verification unit 201.
The integrity verification process performed by the verification unit 301 is the same as the integrity verification process of the verification unit 201.
(Consistency verification process)
As the consistency verification process, the verification unit 301 verifies whether the received transaction is a transaction that is consistent with the entire block chain. Specifically, the verification unit 301 performs processing similar to the above-described reduction calculation process, calculates the balance of input data, and verifies whether the calculated balance exceeds the amount of output data.
Further, the verification unit 301 verifies the double transaction by confirming whether or not a transaction referring to the same output data as the input data of the transaction to be verified has already been approved as the consistency verification process. Also good. Specifically, the verification unit 301 refers to the block information DB 132 and extracts the output data referred to by the input data pointer of the transaction included in the block connected to the block chain. Further, the verification unit 301 verifies whether or not the output data referred to by the pointer designated as the input data of the transaction to be verified this time has already been referenced. When the output data referred to by the pointer specified as the input data of the transaction to be verified this time is not specified by the pointer from the input data of the past transaction, the verification unit 301 inputs the transaction to be verified this time. Data integrity can be approved.
The verification unit 301 can approve the consistency of the transaction when the consistency of all the input data included in the transaction can be approved.
The verification unit 301 may perform the consistency verification process in response to an inquiry from another node or the mobile terminal 200. Furthermore, the verification unit 301 can extract the public key corresponding to the specified ID from the public key information DB 133 of the node 300 in response to an inquiry from the mobile terminal 200. The verification unit 301 can transmit the extracted public key to the mobile terminal 200.
(C) Management Node Version FIG. 6C is a diagram illustrating an example of a functional block diagram of the management node 400 in which a management node version mining tool is installed in addition to the wallet tool. In addition to the functional blocks created by the wallet tool described above, the management node 400 in which the management node version of the mining tool is installed has a checkpoint generation unit 401, the verification unit 301 described above, the excavation unit 202, a reward It is desirable that the calculation unit 203 is constructed.
The checkpoint generation unit 401 generates a checkpoint and inserts it into the block chain.
The checkpoint generation unit 401 can verify transactions included in all blocks connected between the checkpoint inserted last time and the checkpoint inserted this time. For example, the checkpoint generation unit 401 can perform the ID verification process, the integrity verification process, and the consistency verification process of the verification unit 301 described above for these transactions.
When there is a branched block chain, the check point generation unit 401 inserts a check point at the end of the block chain determined to be appropriate as a result of the verification. As a result, an inappropriate block chain is broken.
The checkpoint generation unit 401 can forcibly insert a checkpoint when, for example, a block is not generated even after 60 seconds have elapsed since the last block of the blockchain was generated. Further, the checkpoint generation unit 401 forcibly inserts a checkpoint even when one hour has elapsed since the last checkpoint insertion. This makes it possible to prevent a situation where a transaction is never approved.
<3-4. Mining process flow>
With reference to FIG. 9, a processing flow of the virtual currency system when the mobile terminal 200 in which the mobile version of the mining tool is installed excavates a block will be described.
First, the excavation unit 202 of the mobile terminal 200 sets a target value. Specifically, the target value can be set based on the distribution amount of the orb in the system and the possession amount of the orb of the owner of the mobile terminal 200. When the target value is set, the excavation unit 202 of the mobile terminal 200 searches for a time stamp that is equal to or less than the target value (S501).
If an appropriate time stamp is found, the verification unit 201 of the mobile terminal 200 inquires the node 300 about the validity of the input data of the received transaction (S502). The verification unit 301 of the node 300 verifies the validity of the input data in response to the inquiry (S503).
The mobile terminal 200 receives the verification result from the node 300 (S504). At this time, the transaction having the input data determined to be inappropriate as a result of the verification is excluded from the generated block. The portable terminal 200 approves that the transaction for which the ID and integrity have been verified among the remaining transactions is valid (S505), and stores it in the block. The portable terminal 200 distributes the generated block to the network N by broadcasting (S506).
The node 300 and the management node 400 store the received block in each block information DB 132 (S507, S508).
When the next block is not generated for 60 seconds after the block is generated, or when one hour has elapsed since the last checkpoint was generated, the checkpoint generation unit 401 of the management node 400 generates the checkpoint. And distributed (S511).
The distributed checkpoint is stored in the block information DB 132 of the mobile terminal 200 and the node 300 (S512, S513).
As described above, according to the virtual currency system according to the present embodiment, the mobile terminal 200 can have the node 300 perform part of the transaction verification. As a result, even a terminal having a small processing capacity and storage capacity can participate in excavation of blocks. Furthermore, according to the virtual currency system according to the present embodiment, the management node 400 periodically generates checkpoints. As a result, the transaction data can be prevented from being falsified, and the safety of the transaction can be ensured.
<4 Hardware configuration>
Hereinafter, an example of a hardware configuration when the above-described terminal 100, portable terminal 200, node 300, and management node 400 are realized by a 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.
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.
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 creation unit 102, the output data creation unit 103, the transaction delivery unit 104, the mobile terminal 200, the node 300, the verification unit 201, 301 or the excavation unit 202 of the management node 400, the reward, of the terminal 100 The calculation unit 203 and the like can be realized as a program mainly operating on the processor 801 after being temporarily stored in the memory 803.
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.
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 transaction information DB 131, a block information DB 132, a public key information DB 133, and an account information DB 134. Such programs and data are referred to by the processor 801 by being loaded into the memory 803 as necessary.
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).
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.
The communication I / F unit 811 is a device for performing data communication with a device external to the computer 800 via the network 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.
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.
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.
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 mobile terminal 200 may have a configuration in which a mining tool is installed without installing a wallet tool. In this case, it is desirable that the transaction information DB 131, the block information DB 132, and the public key information DB 133 are installed in the portable 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.
DESCRIPTION OF SYMBOLS 10 Virtual currency system 100 Terminal 101 Remittance reception part 102 Input data creation part 103 Output data creation part 104 Transaction delivery part 131 Transaction information DB
132 Block information DB
133 Public key information DB
134 Account Information DB
200 mobile terminal 201 verification unit 202 excavation unit 203 reward calculation unit 300 node 301 verification unit 400 management node 401 checkpoint generation unit N network
First transaction information including an identifier of the first virtual currency and the first user of the remittance destination in a transaction for transferring the first virtual currency, and a second that is at least a part of the first virtual currency Second transaction information including the second virtual currency, the electronic signature of the second user of the remittance source, and the identifier of the third user of the remittance destination in the second transaction for transferring the virtual currency of Storage means for storing,
Verification request means for requesting verification of the validity of the second transaction information to a terminal device connected to the computer via a network and capable of verifying the validity of the transaction information;
Based on the identifier of the first user included in the first transaction information and the electronic signature of the second user included in the second transaction information, the second user A verification means for verifying whether the user is a user;
Search means for searching for the time stamp for which excavation information generated based on the first transaction information and the time stamp satisfies a predetermined condition;
Approval indicating that the second transaction information has been approved when the verification result of the terminal device and the verification unit is valid and the search unit searches for the time stamp satisfying the predetermined condition. Distribution means for distributing information to the network;
Virtual currency management program to function as.
The predetermined condition is:
The hash value calculated using a predetermined hash function for the excavation information is equal to or less than a value based on a virtual currency possessed by a user using the computer. Virtual currency management program.
A computer that stores the virtual currency management program according to claim 1 or 2 and that executes the program ;
A management device connected to the computer via the network;
When the approval information is not distributed from the distribution unit for a first period, the confirmation unit includes a confirmation unit that distributes confirmation information indicating that the transaction information generated in the first period is confirmed to the network.
Virtual currency management system.
The confirmation means further distributes the confirmation information indicating that the transaction information generated in the second period is confirmed to the network when the confirmation information is not distributed for the second period. The virtual currency management system according to claim 3, wherein:
First transaction information including an identifier of the first virtual currency and the first user of the remittance destination in a transaction for transferring the first virtual currency, and a second that is at least a part of the first virtual currency Second transaction information including the second virtual currency, the electronic signature of the second user of the remittance source, and the identifier of the third user of the remittance destination in the second transaction for transferring the virtual currency of A storage step for storing;
A verification requesting step for requesting verification of the validity of the second transaction information to a terminal device connected to the computer via a network and capable of verifying the validity of the transaction information;
Based on the identifier of the first user included in the first transaction information and the electronic signature of the second user included in the second transaction information, the second user A verification step for verifying whether the user is a user;
A search step for searching for the time stamp for which excavation information generated based on the first transaction information and the time stamp satisfies a predetermined condition;
Approval indicating that the second transaction information is approved when the verification result in the terminal device and the verification step is valid, and the time stamp that satisfies the predetermined condition is searched in the search step. A distribution step of distributing information to the network;
Virtual currency management method to execute.
JP2015101225A 2015-05-18 2015-05-18 Virtual currency management program and virtual currency management method Active JP5858507B1 (en)
JP2015101225A JP5858507B1 (en) 2015-05-18 2015-05-18 Virtual currency management program and virtual currency management method
JP5858507B1 true JP5858507B1 (en) 2016-02-10
JP2016218633A JP2016218633A (en) 2016-12-22
ID=55301013
JP2015101225A Active JP5858507B1 (en) 2015-05-18 2015-05-18 Virtual currency management program and virtual currency management method
JP (1) JP5858507B1 (en)
WO2017170997A1 (en) * 2016-03-31 2017-10-05 株式会社ｂｉｔＦｌｙｅｒ Hierarchical network system, and node and program used in same
JP2018081426A (en) * 2016-11-15 2018-05-24 株式会社三菱総合研究所 Virtual currency system
JP2018088294A (en) * 2018-03-09 2018-06-07 株式会社三菱総合研究所 Virtual currency system
WO2018211834A1 (en) * 2017-05-16 2018-11-22 ソニー株式会社 Information processing apparatus and information processing method
WO2019198866A1 (en) * 2018-04-13 2019-10-17 (주)넥슨코리아 Method and device for providing transaction service for cryptocurrencies based on different blockchains
JP6283719B1 (en) * 2016-08-22 2018-02-21 株式会社 みずほ銀行 Custody support system and custody support method
JPWO2018124297A1 (en) 2016-12-28 2019-11-14 株式会社Ｏｋｅｉｏｓ Data utilization method, system and program using BCN (block chain network)
JP6495346B2 (en) * 2017-01-10 2019-04-03 日本電信電話株式会社 Information processing system
WO2018158960A1 (en) * 2017-03-03 2018-09-07 Ａ・Ｔコミュニケーションズ株式会社 Information processing device, information processing method, and program
JP6445211B1 (en) * 2018-08-23 2018-12-26 寛 鳥居 Remittance instruction device, remittance instruction method, remittance instruction program, and remittance instruction system
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
2015-05-18 JP JP2015101225A patent/JP5858507B1/en active Active
JPWO2017170997A1 (en) * 2016-03-31 2018-04-05 株式会社ｂｉｔＦｌｙｅｒ Hierarchical network system, node and program used therefor
JP2016218633A (en) 2016-12-22
KR101467130B1 (en) 2014-11-28 Searchable encryption processing system
US9002749B1 (en) 2015-04-07 Virtual check
ES2635121T3 (en) 2017-10-02 Flexible licensing architecture in content rights management systems
JP2005521281A (en) 2005-07-14 Authenticable location data
Li et al. 2018 Crowdbc: A blockchain-based decentralized framework for crowdsourcing
JP4639676B2 (en) 2011-02-23 Rental server system
CN102834831B (en) 2015-07-29 Content presentation-type authentication system
CN105849757B (en) 2019-09-03 System and method for monitoring access of the third party to restricted article
Watanabe et al. 2015 Blockchain contract: A complete consensus using blockchain
US10395223B2 (en) 2019-08-27 System and method for transferring funds
Ref document number: 5858507
2017-02-09 S531 Written request for registration of change of domicile