WO2023002640A1 - 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム - Google Patents

違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム Download PDF

Info

Publication number
WO2023002640A1
WO2023002640A1 PCT/JP2021/041510 JP2021041510W WO2023002640A1 WO 2023002640 A1 WO2023002640 A1 WO 2023002640A1 JP 2021041510 W JP2021041510 W JP 2021041510W WO 2023002640 A1 WO2023002640 A1 WO 2023002640A1
Authority
WO
WIPO (PCT)
Prior art keywords
blockchain
block
user
algorithm
item
Prior art date
Application number
PCT/JP2021/041510
Other languages
English (en)
French (fr)
Inventor
直樹 柴田
映仁 伊東
泰範 渡邊
Original Assignee
プルーフオブサーチ株式会社
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 プルーフオブサーチ株式会社 filed Critical プルーフオブサーチ株式会社
Priority to EP21943311.7A priority Critical patent/EP4148602A4/en
Publication of WO2023002640A1 publication Critical patent/WO2023002640A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • the present invention registers the user's identity information with a digital certificate authority, and can be performed on the blockchain depending on whether the user is a registered user or not. It relates to a blockchain system with a function to limit operations and a crypto asset realized by it.
  • Non-Patent Document 1 Since the advent of Bitcoin (Non-Patent Document 1), many crypto assets using blockchain have been developed. Transactions using crypto-assets are increasing year by year, and the market capitalization of crypto-assets will exceed $1 trillion in early 2021.
  • a blockchain is a list-structured data, and it is designed so that new data can be added one after another, making it difficult to modify previously registered data.
  • the history of all transactions in crypto assets is stored on this blockchain.
  • Blockchains are usually configured as decentralized systems and can be broadly categorized as either centralized or fully decentralized.
  • authority is given to a specific node in the network, and this node controls the entire network.
  • a node refers to a computer connected to a network.
  • the design is based on trusting a specific node with authority, which is easy to control, but has the disadvantage that the node becomes a single point of failure.
  • each node is equally empowered, and the entire network functions by accumulating decisions made by each node.
  • it is necessary to configure the system so that it can cope with the failure of some nodes. It has the disadvantage of being bulky.
  • it is necessary to prepare for node spoofing and the like.
  • Bitcoin is a fully decentralized crypto-asset that can be exchanged between users without the need for a specific node such as a central bank.
  • a user indicates a user of the system.
  • Transaction history is recorded on a distributed ledger.
  • a mechanism called Proof of Work (PoW) determines the correct results of transactions recorded in the ledger, preventing double spending of coins. It is easy to secure a large number of IP addresses in a network, and a majority rule that gives voting rights to each IP address does not work well. PoW is used in such an environment to implement a majority vote in which voting power is given according to the amount of computation.
  • Bitcoin's distributed ledger stores a large number of blocks as a linked list. This linked list is called a blockchain.
  • Each block contains multiple data items and a hash value of the previous block.
  • the hash value of the new block is calculated and broadcast over the network.
  • this hash value finds numbers that start with a fixed number of zero bits.
  • Each block has an entry that stores an integer value called a nonce, and only blocks with nonces where the hash value of the entire block starts with a fixed number of zero bits are accepted as valid blocks.
  • new coins are awarded as an incentive to nodes that successfully add new blocks.
  • a node that tries to add a block is called a miner, and the calculation to add a block is called mining.
  • a bona fide miner will attempt to add blocks to the longest chain known to that node.
  • users participating in the blockchain for realizing crypto assets are limited to users who have disclosed their identity information. can be considered. In this way, it is easier to arrest illegal activities, but since it is necessary for a specific organization to confirm identity information, it is necessary to configure the blockchain as a centralized control type. Also, users who do not want to disclose their identity will not participate in this blockchain, so there is a concern that not many users will participate.
  • a blockchain is basically a mechanism that allows the recorded data to be made public to the world. Therefore, if all the user's identity information is recorded on the blockchain, the identity information of all participants will be made public. It may not always be desirable for participants who want to legally trade with crypto assets to disclose all of their identity information (Non-Patent Document 4). On the other hand, there is a need for the government authorities to grasp the identity information of the participants for arresting illegal activities.
  • the data When transmitting data using a network, the data is encrypted to prevent the content of the data from being intercepted by a third party.
  • data called a common key is used for encryption and decryption, and data encrypted using a certain key can only be decrypted using the same key.
  • public key cryptography the keys used for encryption and decryption are different, and data encrypted using one can only be decrypted using the paired key. In many cases, one of these keys is called a private key and is kept by each user without disclosing it to other users. A key paired with this private key is called a public key and is widely disclosed.
  • hash function which generates fixed-length data called a digest for arbitrary data. While the computation time required to generate a digest from arbitrary data using a hash function is negligible, finding the corresponding data from the digest is practically impossible due to the extremely high computation time required. is.
  • Data obtained by encrypting a digest of arbitrary data with a user's private key is called an electronic signature.
  • an electronic signature By decrypting the electronic signature using the public key and checking that it matches the digest of the corresponding data, it can be verified that this electronic signature was created by a user who has the private key corresponding to the public key.
  • the key for obtaining an electronic signature is called a signature key, or verification of an electronic signature. is called a verification key.
  • a digital certificate and a digital certificate authority are used to confirm that a certain verification key is not a verification key for spoofing, but is the verification key of the person you really want to communicate with.
  • Each user goes to a certificate authority and proves his/her identity by conventional means (such as photo matching).
  • the certificate authority verifies that the user's identity is correct, the user's verification key and identity pair is signed by the certificate authority.
  • a combination of the user's verification key, identification information, and signature by the certification authority is called an electronic certificate, and is published together with the verification key.
  • the personal authentication and verification system and method described in US Pat. No. 6,200,004 is a invention relating to a personal/client authentication and verification process, pseudonymity system that monitors and regulates transactions involving encrypted electronic money.
  • the device is similar to the present invention in that it aims to make it possible to identify all senders and receivers of crypto-assets.
  • communication between the monitoring system and the client wallet is required to generate the approved currency address, but in the present invention, the address can be generated by the client wallet alone, just like existing blockchain systems such as Bitcoin.
  • the difference is that The invention rejects account creation for registrants whose legal identity has not been verified.
  • the present invention allows users who do not disclose their identity information to create an account. In the present invention, more participants can be expected to gather by actively encouraging participation in the network.
  • the electronic currency utilization information system and the electronic currency utilization method described in Patent Document 2 are inventions related to an electronic currency utilization information system capable of making electronic currency transactions including crypto assets safer transactions, and the object of the present invention. is similar to the present invention.
  • a server is installed and a user account is registered independently of the blockchain, and notes regarding transactions are displayed within the scope of information managed by this server.
  • a problem with this invention is that the scope that the system can monitor remains within the scope of information managed by a server that is installed independently of the blockchain.
  • the present invention relates to a blockchain system, and it is possible to restrict operations according to conditions for all user accounts of the blockchain system.
  • the invention of the system and method for tax collection, analysis, and legal compliance described in Patent Document 3 is a system that collects and analyzes transaction information linked to IDs such as My Numbers and tax payment numbers of related natural persons and corporations.
  • a problem with the invention is that it is not constructed as a completely distributed system.
  • the present invention is a patent for a fully distributed system, which has the advantages of a fully distributed system and can be operated robustly.
  • the present invention prevents illegal transactions themselves on the peer-to-peer network, and is different in that the information necessary for tax payment is recorded on the blockchain together with the verification key of the account that conducts the transaction.
  • the problem to be solved by the present invention is to make illegal acts and tax evasion using crypto assets impossible, such as illegal goods trading, Ponzi schemes, money laundering, and receipt of ransomware ransom money. , to provide a fully decentralized blockchain system.
  • Crypto assets are property values that can be exchanged on the Internet.
  • a blockchain such as Bitcoin
  • crypto assets can be exchanged without going through a third party such as a bank.
  • a wallet is software for trading crypto assets such as Bitcoin, and stores and manages the user's private key.
  • a blockchain system is a computer system that realizes a blockchain, consisting of all computers that run software such as miners and wallets.
  • a user is a person who uses the blockchain system.
  • a user account is equivalent to a bank account, and is data recorded on the blockchain for managing the cryptographic assets owned by each user on the blockchain. Contains the verification key for the user.
  • a peer-to-peer network is a distributed computer system architecture characterized by a plurality of networked computers communicating in a peer-to-peer relationship.
  • a node is a computer connected to a network. Broadcasting is to transmit information so that it reaches all computers connected to the network.
  • a gossip protocol is a technique for repeatedly and probabilistically exchanging information between computers connected to a network. Topology indicates which computer each computer connected to the network directly connects to and exchanges information with.
  • a thread represents a sequence of instructions that are continuously executed on a computer capable of parallel processing.
  • the system is a fully decentralized blockchain for cryptocurrency transactions and utilizes a certificate authority independent of the system.
  • Each user voluntarily registers his identity with this certificate authority.
  • Examples of user-registered identification information include a user's facial photograph, handwritten signature, nationality, real name, date of birth, and address.
  • the certificate authority records the user's electronic certificate in an arbitrary position on the block chain and notifies the user of the position of the electronic certificate on the block chain.
  • This electronic certificate contains only the address of the user's account and the minimum amount of information necessary to calculate the tax amount for transactions performed on this blockchain, and the registered user's identity information is the electronic certificate not included in the book.
  • the electronic certificate may describe a verification key to which a hash function is applied.
  • Registering a digital certificate on the blockchain means that the user's identity is registered with a certificate authority, but the identity is not registered on the blockchain and is not publicly available. Since the certificate authority needs to record the electronic certificate on the blockchain, the certificate authority itself must also be one of the users of the blockchain.
  • the types of transactions that can be made are limited depending on whether or not the user's electronic certificate is registered in the blockchain.
  • a user whose electronic certificate is registered presents its location on the blockchain when performing an operation, and the blockchain system confirms this electronic certificate to confirm that the operation that the user is about to perform is performed by the user. Determine if it is allowed. For example, if the electronic certificate is registered, all operations are permitted, but if it is not registered, the receipt of crypto assets is prohibited. In this case, mining is the only method by which a user whose electronic certificate is not registered, that is, whose identity information is not registered, can obtain cryptographic assets.
  • the above function that limits the types of transactions that users can perform on the blockchain may be provided in the blockchain, or may be implemented in the wallet. It is also envisioned that the smart contract will have that function.
  • the user's electronic certificate includes the user's attribute information necessary for tax payment calculation, such as the user's nationality and the distinction between natural persons and corporations.
  • the certificate authority verifies that this information is correct.
  • users will be required to enter the remaining information necessary to calculate the tax amount, such as the amount of legal currency paid when the user acquired the cryptocurrency and the time the transaction was completed.
  • the tax amount of a user whose identity is registered only from the information registered on the blockchain.
  • Government authorities can obtain the identity information of each user by querying the certificate authority, and by comparing the tax amount calculated from the information registered on the blockchain with the amount actually paid by each user, It is possible to know whether the taxpayer has properly paid the tax. It also facilitates prosecution when illegal acts are committed.
  • this system does not monitor the payment of taxes on profits obtained by mining by users whose identity information has not been registered.
  • the present invention does not judge the accuracy of the information required to calculate the tax amount. Even if inaccurate information is input, it is easy to identify which user is responsible for inputting inaccurate information, and it is assumed that governmental authorities will take action.
  • a digital certificate may include a digital signature of the user's identity by a certificate authority. By using this electronic signature, anyone can verify that the user's own identity information disclosed by the user is genuine.
  • the certification authority In order for this system to be fully distributed, the certification authority must not be a single point of failure.
  • This system is equipped with a mechanism for registering verification keys of certificate authorities in the blockchain and a mechanism for revoking them.
  • the certificate authority that issued the electronic certificate In order to verify a registered user's electronic certificate, the certificate authority that issued the electronic certificate must be valid. not a certificate authority. Since the certification authority's verification key may expire, in order to determine whether a user's operation on the blockchain is permitted, the user's electronic certificate and its electronic It is necessary to check whether both CAs that issued the certificate were valid, which can be achieved by examining past blocks included in the blockchain.
  • PoW is used to newly add the verification key of the certification authority to the blockchain and to revoke it.
  • the simplest implementation method is to use the PoW mechanism as it is, and the miner that adds the block decides the verification key of the certificate authority to be added or revoked.
  • each miner decides whether the operation of adding or revoking a certificate authority is correct, and the correct chain grows the fastest. Whether or not the operation of adding or revoking a certificate authority is correct can be determined by the user running each miner's software, or the miner's software has built-in criteria for making decisions, The miner's software may automatically judge according to the criteria. Making decisions automatically by the miner's software is equivalent to the user delegating the decision to the creators of the miner's software.
  • opposing nodes can also avoid forks by considering the passed chain as the correct chain.
  • a proposal may be passed even if only a small number of nodes participating in the network agree.
  • hypothesis testing may be performed over multiple blocks until it is known that a majority of the nodes in favor are certain.
  • Agree or disagree information can be regarded as random sampling per CPU power. Calculate the P-value from the number of approvals in multiple consecutive blocks, and vote if the probability that more than a certain percentage of nodes agree is greater than a predetermined value.
  • a user To indicate that a user's digital certificate is registered on the blockchain, a user must indicate the location on the blockchain where his digital certificate is registered, his address and the certificate issued to him. This is done by presenting it together with the certification authority's verification key.
  • the present invention has a mechanism for registering and deleting the verification key of the certificate authority in the blockchain.
  • the update information of the verification key is recorded in a linked list that can be referred to sequentially from the new block toward the past.
  • the newly added block records the position information of the verification key to be added or revoked and the previous update information on the block chain as update information.
  • position information of the latest update information is recorded at a predetermined position of each block. To check whether a certain key is valid at a certain point in time, refer to the latest update information from the position information of the update information recorded in the latest block, and check the position of the previous update information in the past. , and confirm that the key was registered during the relevant period and was not deleted.
  • Figure 1 shows an example of a blockchain data structure for using the functions of this system.
  • each block in addition to the time when each block was added, hash value, nonce, etc., which are common to Bitcoin blocks, the position of the latest proposal and the miner who added that block approve each proposal or against.
  • Each proposal contains the position of the previous proposal.
  • N blocks after each proposal is registered it is determined that the proposal will be passed or rejected.
  • a blockchain system is a blockchain system operated by nodes participating in a peer-to-peer network, comprising means for registering an electronic certificate of a verification key for each user account on the blockchain; Having a means to determine whether or not the electronic certificate of the verification key of the account is registered in the blockchain, and depending on whether or not the electronic certificate of the verification key of the user account of each user is registered in the blockchain, It is characterized by having means for limiting the types of operations that the user can perform on the blockchain.
  • a block chain system according to a second invention is the block chain system according to the first invention, comprising: means for registering/deleting a verification key of an electronic certificate authority on the block chain; It is characterized by having means for verifying the authenticity of said electronic certificate for each user account using a verification key.
  • a block chain system according to a third invention is the block chain system according to the second invention, wherein the verification key of the above-mentioned electronic certificate authority registered on the block chain by voting by the nodes participating in the system is registered and It is characterized by having means for determining whether or not to permit deletion.
  • a blockchain system is the blockchain system according to the third aspect of the invention, and includes information necessary to determine the amount of tax payable by each user due to an operation to be performed on the blockchain from now on. and means for permitting execution of the operation only when all of the information has been entered into the system.
  • a fifth invention is a computer program for realizing the blockchain system according to any one of the first to fourth inventions.
  • a computer program according to the present invention implements the above-described blockchain system.
  • the present invention limits cryptocurrency transactions on blockchains to legal ones, expands the use of blockchains as a means of transactions, promotes global distribution, and contributes to the global economy. It promotes growth.
  • the blockchain system of this embodiment is an embodiment of the first invention, and in addition to the configuration of a fully distributed blockchain system using PoW, algorithms 1-1, 1-2, 1-3, 1- Has 4, 1-5, 1-6.
  • a PoW blockchain is structured as a peer-to-peer network. The whole network is loosely coupled with no fixed topology. In order for a node to join the network, it must know one already joined node. Each node is connected to some randomly selected nodes. Messages are broadcast by the gossip protocol. Each node holds a copy of all information on the blockchain.
  • Two threads are running in parallel in the miner, executing algorithms 1-1 and 1-2 respectively.
  • the two threads executing algorithms 1-1 and 1-2 share a list L of newly received items.
  • To add items to the blockchain broadcast the items to be added to the network. This item is received by Algorithm 1-1 executed by each miner.
  • Algorithm 1-1 executed by each miner.
  • To register the user account's digital certificate on the blockchain call algorithm 1-3.
  • Algorithms 1-4 are called to determine whether the digital certificate of the data on the blockchain is registered on the blockchain. If the operation of a given item in algorithms 1-6 requires authentication, then verify the digital certificate associated with the item and verify the item as an authenticated operation. For items that require authentication, verification of the item cannot succeed unless both the digital certificate verification and the verification as an authenticated operation succeed.
  • Algorithm 1-1 Receive item and create block begin while true do while do until new block is added receive item t add item t to list L of newly received items end while end while end Algorithm 1-1 appends newly received items to the end of the item list.
  • Algorithm 1-2 Mining begin Wait until new blocks are added by other nodes. After that, the chain to which a new block is added is processed. while true do Validate each element in the list L of newly received items using algorithms 1-6 and create block b from all that validate successfully. Empty L repeat repeat Calculate the hash value of a block with a different nonce until receive a new block or find a nonce that starts with a specified number of zero bits If you find a nonce that starts with a specified number of zero bits, send the block containing that nonce to the network. Broadcast and then process the chain to which the block was added. When a new block is received, Algorithm 1-5 is called with that block as an argument and the chain is verified.
  • Algorithm 1-3 User account digital certificate registration input: User account digital certificate c begin Send the operation to simply add the digital certificate c to the block as an item to the network end
  • Algorithm 1-4 Checking whether the digital certificate of the user account is registered in the blockchain Input: latest block b in the blockchain, position on the blockchain p, user account u begin Returns false if user account u is not registered in a chain that includes block b as the latest block Digital certificate registered at position p on the chain that includes block b as the latest block with the default certificate authority return true if verifiable return false end
  • Algorithm 1-5 Validate chain and return true only if correct Input: block b
  • Output Validate a chain containing block b as the latest block and return true only if it is correct begin do for all blocks k in the chain containing for b as the latest block in chronological order // validate all items in block k and return false on failure for for all items t in block k do Verify item t using algorithm 1-6 if fail verification of item t then return false end for end for return true end
  • Item Validation Input Item t
  • Output Boolean value indicating whether validation was successful begin if authentication required to operate on item t then if the digital certificate associated with item t can be verified with the public key of the default certificate authority then validate item t as an authorized operation and return false on failure else return false endif else validates item t as an unauthenticated operation, returning false on failure endif return true end
  • the blockchain system of this embodiment is an embodiment of the second invention, and in addition to the configuration of a fully distributed blockchain system using PoW, algorithms 2-1, 2-2, 2-3, 2- Has 4, 2-5, 2-6, 2-7, 2-8.
  • Example 1 two threads are running in parallel in the miner, executing algorithms 2-1 and 2-2, respectively.
  • the two threads executing algorithms 2-1 and 2-2 share a list L of newly received items.
  • To add items to the blockchain broadcast the items to be added to the network. This item is received by Algorithm 2-1 which each miner runs.
  • Invoke Algorithm 2-3 to register the digital certificate of the user account on the blockchain.
  • Algorithm 2-4 is called to determine whether the digital certificate of the data on the blockchain is registered on the blockchain.
  • algorithm 2-7 is called to register or delete the verification key of the public key digital certificate authority.
  • Algorithm 2-8 is used to obtain a list of public key digital certificate authority verification keys that have been registered and not deleted at some time in the past or at present. Using the public key thus obtained, in algorithm 2-6 as in embodiment 1, if authentication is required to operate a given item, the electronic certificate associated with the item is verified. , if the digital certificate is genuine, then proceed to verify the item as an authorized operation.
  • Algorithm 2-1 is the same as Algorithm 1-1.
  • Algorithm 2-2 Mining. begin Wait until new blocks are added by other nodes. After that, the chain to which a new block is added is processed. while true do Assign an empty block to block b for each item in list L e do Call algorithm 2-6 with (item e, current time) as argument if verification by algorithm 2-6 is successful then add item e to block b end if end for empty the list L repeat repeat Calculate the hash value of a block with a different nonce until receive a new block or find a nonce that starts with a specified number of zero bits If you find a nonce that starts with a specified number of zero bits, send the block containing that nonce to the network. Broadcast and then process the chain to which the block was added.
  • Algorithm 2-3 is the same as Algorithm 1-3
  • Algorithm 2-4 Check if the digital certificate of the user account is registered in the blockchain. Input: Blockchain latest block b, Blockchain location p, User account u begin Returns false if user account u is not registered in a chain that includes block b as the latest block. Call algorithm 2-8 with (block b, current time) as an get the list. Assign the result to the list cs. Returns true if the digital certificate registered at position p on the chain that includes block b as the latest block can be verified with the public key of one of the certificate authorities in list cs return false end
  • Algorithm 2-5 Validate chain and return true only if correct Input: block b
  • Output Validate a chain containing block b as the latest block and return true only if it is correct begin for chronologically do for all blocks k in the chain containing block b as the latest block // validate all items in block k and return false on failure for for all items t in block k do
  • Algorithm 2-6 Item Validation Input: item t, time m Output: Boolean value indicating whether validation was successful begin Call algorithm 2-8 with (currently processing block, time m) as an argument to obtain a list of CA public keys valid at time m. Substitute the result into cs. if authentication required to operate on item t then if the digital certificate associated with item t can be verified with the public key of one of the certificate authorities in list cs then validate item t as an authorized operation and return false on failure else return false endif else validates item t as an unauthenticated operation, returning false on failure endif return true end
  • Algorithm 2-7 Register or delete the verification key of the public key digital certificate authority
  • Input Operation to register or delete the verification key of the public key digital certificate authority o begin send the operation o as an item to the network end
  • Algorithm 2-8 Obtain a list of verification keys of certificate authorities registered in the blockchain at a certain point in time Input : last block b of the blockchain, time m Output : list of CA verification keys valid at time m in the chain starting with block b begin Empty the list cs, obtained by tracing from the for block b, do if operation o is an operation to add a certificate authority then Add the certificate authority added by operation o to list cs end if if operation o is the operation to revoke the certificate authority then Delete a certificate authority to be enforced by operation o from list cs end if end for return cs end
  • the blockchain system of this embodiment is an embodiment of the third invention, and in addition to the configuration of a fully distributed blockchain system using PoW, algorithms 3-1, 3-2, 3-3, 3- Has 4, 3-5, 3-6, 3-7, 3-8.
  • Example 2 two threads are running in parallel in the miner, executing Algorithm 3-1 and Algorithm 3-2, respectively.
  • the two threads executing algorithms 3-1 and 3-2 share a list L of newly received items.
  • To add items to the blockchain broadcast the items to be added to the network. This item is received by algorithm 3-1, which each miner runs.
  • Invoke algorithm 3-3 to register the digital certificate of the user account on the blockchain.
  • Algorithm 3-4 is called to determine whether the digital certificate of the data on the blockchain is registered on the blockchain.
  • Algorithm 3-7 is called to register a proposal to register or delete a public key digital certificate authority verification key.
  • whether or not to register/delete the verification key of the electronic certificate authority registered on the blockchain is determined by voting by the nodes participating in the system. To do this, broadcast a proposal to add or revoke the CA's verification key to the network, and pass the proposal only if the node that added the new block agrees with this proposal.
  • the miner adds information indicating whether the miner agrees with the bill to the newly added block (algorithm 3-2).
  • the information on whether or not you agree with each proposal added to each block can be regarded as random sampling per CPU power. Calculate the P-value from the number of approvals in multiple consecutive blocks, and vote if the probability that more than a certain percentage of nodes agree is greater than a predetermined value.
  • Algorithm 3-1 is the same as Algorithm 1-1.
  • Algorithm 3-2 Mining begin Wait until new blocks are added by other nodes. After that, the chain to which a new block is added is processed. while true do Empty block b for each item in list L e do Call algorithm 3-6 with (item e, current time) as arguments and verify item e if verification of item e succeeds then add item e to block b end if end for Append to block b the pros and cons information for the proposal to register or delete the public key of the public key electronic certificate authority registered in the block chain within the past N block time Empty the list L repeat repeat Calculate the hash value of a block with a different nonce until receive a new block or find a nonce that starts with a specified number of zero bits If you find a nonce that starts with a specified number of zero bits, send the block containing that nonce to the network.
  • Algorithm 3-5 is called with that block as an argument to verify the chain. if the chain containing the new block successfully validates and the corresponding chain is longer then Thereafter, processing is performed for the chain corresponding to that block. Move items not included in the modified chain to list L. end if until until a new block is added end while end
  • Algorithm 3-3 is the same as Algorithm 1-3
  • Algorithm 3-4 Checking whether the digital certificate of the user account is registered in the blockchain Input: latest block b in the blockchain, position on the blockchain p, user account u begin Returns false if user account u is not registered in the chain that includes block b as the latest block.
  • Algorithm 3-5 Validate chain and return true only if correct Input: block b
  • Algorithm 3-6 Item Validation Input: item t, time m Output: Boolean value indicating whether validation was successful begin
  • Algorithm 3-8 is called with (the latest block of the chain currently being processed, time m) as an argument to obtain a list of valid certificate authority public keys at time m of the chain currently being processed. Assign the result to the list cs. if authentication required to operate on item t then if the digital certificate associated with item t can be verified with the public key of one of the certificate authorities in list cs then validate item t as an authorized operation and return false on failure else return false endif else validates item t as an unauthenticated operation, returning false on failure endif return true end
  • Algorithm 3-7 Input to register a proposal to register or delete the verification key of the public key electronic certificate authority: Registration operation of the proposal to register or delete the verification key of the public key electronic certificate authority o begin send the operation o as an item to the network end
  • Algorithm 3-8 Obtain a list of verification keys of certificate authorities registered in the blockchain at a certain point in time Inputs: last block b of the blockchain, time m Output: list of certificate authority verification keys begin Empty the list cs, obtained by tracing from the for block b, do in chronological order for each proposal o of adding or revoking the certificate authority before the time m registered in the blockchain if o is an agenda to add CA c, then a block of N passed agenda o then add to list cs the certificate authorities added by agenda o end if if list o is an agenda to revoke CA c, then a block of N passed agenda o then Remove from list cs a CA that enforces resolution o end if end for return list cs end
  • the blockchain system of this embodiment is an embodiment of the fourth invention, and in addition to the configuration of a fully distributed blockchain system using PoW, algorithms 4-1, 4-2, 4-3, 4- Has 4, 4-5, 4-6, 4-7, 4-8.
  • the miner has two threads running in parallel, executing Algorithms 4-1 and 4-2, respectively.
  • the two threads executing algorithms 4-1 and 4-2 share a list L of newly received items.
  • To add items to the blockchain broadcast the items to be added to the network. This item is received by Algorithm 4-1 executed by each miner.
  • To register the user account's digital certificate on the blockchain call algorithm 4-3.
  • Algorithm 4-4 is called to determine whether the digital certificate of the data on the blockchain is registered on the blockchain.
  • Algorithm 4-7 is called to register a proposal to register or delete a verification key of a public key digital certificate authority.
  • each proposal to register or delete a verification key of a public key digital certificate authority is accepted for votes by miners for N block times.
  • Algorithms 4-8 check if each resolution has been voted for N block times thereafter. For this purpose, for example, among the blocks added within the N blocks, it is checked whether or not a predetermined number of blocks or more have added data indicating approval of the proposal.
  • Algorithms 4-6 identify the information necessary to determine the amount of tax each user must pay when performing each item operation, determine if this information is available, By changing the verification result of the execution result of each item according to the result, execution of the operation is permitted or prohibited. For example, in order to determine the tax amount, country A needs the exact time of each operation, and country B additionally needs the price of the cryptocurrency paid in fiat currency. , this information is specified as the information necessary to determine the amount of tax payment, depending on whether the nationality of each user is country A or country B. It then checks whether each operation contains this information, and prohibits operations that do not contain all of this information by making its inclusion a requirement for successful verification.
  • Algorithm 4-1 is the same as Algorithm 1-1.
  • Algorithm 4-2 Mining begin Wait until new blocks are added by other nodes. After that, the chain to which a new block is added is processed. while true do Empty block b for each item in list L e do Call algorithm 4-6 with (item e, current time) as an argument to validate item e if successful validation of item e then add item e to block b end if end for Append to block b the pros and cons information for the proposal to register or delete the public key of the public key electronic certificate authority registered in the block chain within the past N block time Empty the list L repeat repeat Calculate the hash value of a block with a different nonce until receive a new block or find a nonce that starts with a specified number of zero bits If you find a nonce that starts with a specified number of zero bits, send the block containing that nonce to the network.
  • Algorithm 4-3 is the same as Algorithm 1-3
  • Algorithm 4-4 is the same as Algorithm 3-4
  • Algorithm 4-5 Validate chain and return true only if correct Input: block b
  • Algorithm 4-6 Item Validation Input: item t, time m Output: Boolean value indicating whether validation was successful begin Algorithm 4-8 is called with (the last block of the chain currently being processed, time m) as an argument to obtain a list of valid CA public keys at time m in the chain currently being processed. Assign the result to the list cs.
  • Algorithm 4-7 is the same as Algorithm 3-7
  • Algorithm 4-8 is the same as Algorithm 3-8
  • the blockchain system according to the present invention can also be applied to various existing blockchain systems that trade cryptographic assets, and it is possible to limit cryptographic asset transactions in them to legal transactions. do.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

暗号資産を用いた違法行為や脱税行為を不可能とする完全分散型ブロックチェーンシステムを提供する。 参加者が身元情報を登録することを選択でき、身元情報を登録して取引を行う場合でも登録された参加者の身元情報全てが一般に公表されることはなく、納税額の計算に必要な情報のみが公開され、身元情報を登録しない場合はマイニングと送金などの基本的な操作はできるが、他のユーザからの暗号資産の受け取りはできないブロックチェーンシステムとする。

Description

違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム
 本発明は、暗号資産を利用した資金洗浄やその他の違法行為を防止するために、ユーザの身元情報を電子証明書認証局に登録し、登録ユーザか否かによってブロックチェーン上で行うことの出来る操作を限定する機能を有するブロックチェーンシステムおよびそれによって実現される暗号資産に関する。
 ビットコイン(非特許文献1)の登場以来、ブロックチェーンを利用した暗号資産が多数開発されてきた。暗号資産を用いた取引は年々増加しており、暗号資産の時価総額は2021年初頭に1兆ドルを突破した。
 ブロックチェーンとはリスト構造のデータであり、データを次々と新たに追加することができ、過去に登録されたデータの修正が困難となるように設計されている。暗号資産における全ての取引の履歴はこのブロックチェーンに保存される。ブロックチェーンは通常分散システムとして構成され、おおまかに集中制御型と完全分散型に分類される。集中制御型では、ネットワーク中の特定のノードに権限が与えられており、このノードがネットワーク全体を制御する。ここで、ノードとは、ネットワークに接続されたコンピュータを指す。権限の与えられた特定のノードを信頼することを前提とした設計であるため、制御が容易である一方、そのノードが単一故障点となる欠点がある。一方、完全分散型では、各ノードに等しく権限が与えられており、各ノードがそれぞれ下した判断の集積によりネットワーク全体が機能する。完全分散型のシステムにおいて単一故障点をなくすためには、一部のノードの故障に対応できるようにシステムを構成する必要があり、ネットワークを機能させるためにノード間でコンセンサスを取るための計算量が大きくなる欠点がある。また、ノードのなりすまし等に備える必要がある。
 ビットコインは、完全分散型の暗号資産であり、中央銀行など特定のノードを必要とせず、ユーザ間でコインの受け渡しを行うことができる。ここで、ユーザとはシステムの利用者を指す。取引の履歴は、分散型台帳に記録される。プルーフオブワーク(PoW)と呼ばれる仕組みにより、台帳に記録される取引の正しい結果を決めており、コインの二重使用等を防いでいる。ネットワークにおいては多数のIPアドレスを確保するのが容易であり、各IPアドレスに対して投票権の与えられる多数決はうまく機能しない。PoWは、このような環境において計算量の多寡に応じて投票権の与えられる多数決を実現するのに使用される。ビットコインの分散型台帳は、多数のブロックをリンクトリストとして保存する。このリンクトリストをブロックチェーンと呼ぶ。各ブロックは、複数のデータアイテムと、一つ前のブロックのハッシュ値を含む。新しいブロックがチェーンに追加される毎に、新しいブロックのハッシュ値が計算され、ネットワーク上にブロードキャストされる。PoWでは、このハッシュ値が決められた数のゼロビットで始まる数値を見つける。各ブロックには、ナンスと呼ばれる整数値を格納するエントリが用意されており、ブロック全体のハッシュ値が決められた数のゼロビットで始まるナンスを持つブロックのみが、有効なブロックとして受理される。ネットワークを維持するために、新しいブロックを追加することに成功したノードにインセンティブとして新しいコインが授与される。ブロックを追加しようとするノードのことをマイナーと呼び、ブロックを追加するために計算を行うことをマイニングと呼ぶ。善意のマイナーは、そのノードの知る限り最も長いチェーンにブロックを追加しようとする。大半のCPU資源が善意のマイナーによりブロックの追加に使用される限り、正しい取引を記録したチェーンが最も速く伸びる。計算量に応じて投票権の与えられる多数決はこのようにして実現される。このような仕組みにより、分散型台帳に記録された情報の偽造や改ざんは困難であり、偽造などの攻撃を行おうとする悪意のあるノードのCPU資源が善良なノードの持つCPU資源を上回らない限り、攻撃は成功しない。ビットコインのような完全分散型の暗号資産においては、コインの価値を裏付ける実体はなく、ネットワーク上のデータそのものに価値がある。この価値はブロックチェーンに参加するユーザによって裏付けられており、より強い裏付けを得るためには多数のユーザの参加を得る必要がある。
ビットコイン等の完全分散型のブロックチェーンにおいては、暗号資産の取引の際にシステムにユーザの身元情報を確認するための仕組みを備えておらず、身元情報を開示せずに送金することが可能である。そのため、暗号資産を用いた様々な違法行為が横行してきた。暗号資産を用いた違法行為の例として、違法な物品の売買、ポンジスキーム(ネズミ講)、資金洗浄、ランサムウェアの身代金の受け取りが挙げられる(非特許文献2、3)。また、代金の支払いが政府当局から確認しづらいことを利用した脱税行為も事実上野放しになっている実情がある。違法な取引を野放しにしないために、各ユーザは合法な相手とのみ取引することが望ましい。また、各ユーザの取引に課税される額は、取引相手の国籍などの属性により変わってくるため、納税額を計算する上で、そのための信頼できる情報を得る方法が必要になる。
 上記のような、暗号資産を用いて行われた取引が適法であることを確認するため、暗号資産を実現するためのブロックチェーンに参加するユーザを、身元情報を開示したユーザのみに限定するということが考えられる。このようにすれば、違法行為の検挙は行いやすくなるが、身元情報の確認を特定の組織が行う必要があるため、ブロックチェーンを集中制御型として構成する必要がある。また、身元情報を開示したくないユーザはこのブロックチェーンに参加しないため、あまり多くのユーザが参加しない懸念がある。
 ブロックチェーンは基本的に記録されたデータが全世界に公開されるような仕組みである。従って、ブロックチェーンにユーザの身元情報を全て記録する仕組みにすると、全参加者の身元情報が公表されてしまう。合法的に暗号資産による取引を行いたい参加者もその身元情報が全て公開されるのは必ずしも望ましくない場合がある(非特許文献4)。一方で、政府当局は、違法行為検挙のために参加者の身元情報を把握したいというニーズがある。
 以下、電子署名と電子証明書認証局について述べる。ネットワークを利用してデータを送信する際に、データの内容が第三者に盗み見られることを防止するためにデータが暗号化される。対称鍵暗号では、暗号化と復号化に共通の鍵と呼ばれるデータを用い、ある鍵を使用して暗号化したデータは同じ鍵を用いた場合にのみ復号化できる。一方、公開鍵暗号では、暗号化と復号化に用いる鍵が異なり、一方を使用して暗号化したデータは、対になる鍵を利用することでしか復号化できない。多くの場合、この鍵のうちの一方を秘密鍵と呼び、各ユーザが他のユーザに開示せずに保管しておく。この秘密鍵と対をなす鍵を公開鍵と呼び、広く公開する。あるユーザに対してデータを送りたい場合には、このユーザの公開鍵を用いて暗号化することで、このユーザだけがデータを復号化できることが保証される。一方、あるユーザが自分の秘密鍵を用いて暗号化したデータを公開することで、このデータの受信者は、暗号化したデータを復号化できる公開鍵に対応する秘密鍵を保持するユーザがこのデータを暗号化したことを検証できる。
ハッシュ関数という仕組みがあり、これは任意のデータに対し、ダイジェストと呼ばれる固定長のデータを生成する。ハッシュ関数を使用して任意のデータからダイジェストを生成するために必要な計算時間はわずかである一方、ダイジェストから対応するデータを探し出すことは、極めて大きい計算時間が必要であるため実際上は不可能である。
任意のデータのダイジェストをあるユーザの持つ秘密鍵で暗号化することで得られるデータは電子署名と呼ばれる。電子署名を公開鍵を使用して復号化し対応するデータのダイジェストと一致することを確認することで、この電子署名が公開鍵に対応する秘密鍵を持つユーザにより作成されたことを検証できる。公開鍵暗号を利用せずに同等の目的を達成するための手法があり、このような方式を考慮したより一般的な呼び方として、電子署名を得るための鍵を署名鍵、電子署名の検証のための鍵を検証鍵と呼ぶ。
ある検証鍵がなりすましの検証鍵ではなく、本当に通信したい相手の検証鍵であることを確認するために電子証明書と、電子証明書認証局(以下認証局)が使われる。各ユーザは認証局に出向いて、自分の身元情報を従来的な方法(写真照合など)により証明する。認証局がそのユーザの身元情報が正しいことを確認すると、そのユーザの検証鍵と身元情報の組に対して認証局による署名を行う。このユーザの検証鍵と身元情報、認証局による署名の組を電子証明書と呼び、検証鍵とともに公開する。通信相手の電子証明書を認証局の検証鍵を使用して検証することで、通信相手がなりすましでないことを検証することができる。これにより、認証局が信用でき、かつユーザの署名鍵が流出していない限り、通信相手の身元情報が電子証明書に記された通りであることを確認することができる。
特許文献1に記載の個人認証及び確認システム及び方法は、暗号型電子マネーを伴うトランザクションを監視及び規制する個人/クライアント認証及び検証処理、偽名性システムに関する考案である。該考案は、暗号資産の送り主及び受取先を全て特定可能にすることを目的としている点で本願発明と類似する。該考案では、承認済み通貨アドレスの生成のために監視システムとクライアントウォレットの通信を必要としているが、本願発明ではビットコインなどの既存のブロックチェーンシステムと同様にクライアントウォレット単体でアドレスの生成が可能である点が異なる。該考案では法的身分が認証されなかった登録者のアカウント作成を拒否する。しかし、法的身分が認証されなかったユーザの参加を認めないと、ネットワークに参加するユーザ数が少なくなる懸念があり、これは暗号資産の信頼性を低下させる要因になりうる。本願発明では身元情報を開示しないユーザもアカウント作成が可能になる。本願発明では、むしろ積極的にネットワークへの参加を促すことでより多くの参加者が集まることが期待できる。
特許文献2に記載の電子通貨利用情報システム及び電子通貨利用方法は、暗号資産を含む電子通貨の取引をより安全な取引とすることができる電子通貨利用情報システムに関する発明であり、この発明の目的は本願発明と類似する。該発明では、ブロックチェーンと独立してサーバの設置およびユーザアカウントの登録を行い、このサーバが管理する情報の範囲内で取引に関する注意の表示などを行う。該発明の問題点として、システムが監視できる範囲が、ブロックチェーンと独立して設置されるサーバによって管理される情報の範囲内に留まると言うことがある。本願発明はブロックチェーンシステムに関する発明であり、ブロックチェーンシステムの全てのユーザアカウントに対し、条件に応じた操作の制限等を行うことができる。
特許文献3に記載の徴税、分析及び法令遵守のためのシステム及び方法の発明は、関係する自然人や法人のマイナンバー・納税番号などのIDに紐付いた取引情報を収集し分析するシステムである。該発明の問題点として、完全分散システムとして構築されてない点が挙げられる。本願発明は完全分散型のシステムに関する特許であり、完全分散型システムの利点を備え、頑健に動作させることが可能である。また、本願発明は、ピアツーピアネットワーク上での違法な取引自体を防止するものであり、納税に関して必要となる情報は取引を行うアカウントの検証鍵とともにブロックチェーン上に記録する点が異なる。
実登3228339 特許6799837 特許6808743
Nakamoto, S.: Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Elliptic. Financial Crime Typologies In Cryptoassets: The Concise Guide for Compliance Leaders. Accessed: Feb. 1, 2021. [Online]. Available: https://www.elliptic.co/resources/typologies-concise-guide-crypto-leaders FATF 40 Recommendations, Available: https://www.fatf-gafi.org/media/fatf/documents/FATF%20Standards%20-%2040%20Recommendations%20rc.pdf Seunghyeon Lee (KAIST, S2W LAB Inc.), Changhoon Yoon (S2W LAB Inc.), Heedo Kang (KAIST), Yeonkeun Kim (KAIST), Yongdae Kim (KAIST), Dongsu Han (KAIST), Sooel Son (KAIST), Seungwon Shin (KAIST, S2W LAB Inc.) Cybercriminal Minds: An investigative study of cryptocurrency abuses in the Dark Web. Accessed: Feb. 1, 2021 [Online]. Available: https://www.ndss-symposium.org/ndss-paper/cybercriminal-minds-an-investigative-study-of-cryptocurrency-abuses-in-the-dark-web/
 本願発明が解決しようとする課題は、違法な物品の売買、ポンジスキーム(ネズミ講)、資金洗浄、ランサムウェアの身代金の受け取りなどの、暗号資産を用いた違法行為や脱税行為を不可能とする、完全分散型ブロックチェーンシステムを提供することである。
 最初に本明細書において用いる用語の定義を記述する。
暗号資産とは、インターネット上でやりとりできる財産的価値である。ビットコインなどのブロックチェーンを用いることにより、銀行等の第三者を介することなく暗号資産をやりとりすることができる。
ウォレットとは、ビットコインなどの暗号資産の取引を行うためのソフトウェアで、ユーザの秘密鍵を保管・管理するものである。
ブロックチェーンシステムとは、マイナーやウォレットなどのソフトウェアを走らせる全てのコンピュータにより構成される、ブロックチェーンを実現するためのコンピュータシステムである。
ユーザとは、ブロックチェーンシステムを利用する人である。
ユーザアカウントとは、銀行口座に相当するもので、各ユーザがブロックチェーン上で所有する暗号資産を管理するための、ブロックチェーン上に記録されたデータである。該当ユーザの検証鍵が含まれる。
ピアツーピアネットワークとは、ネットワークで接続された複数のコンピュータが、対等な関係で通信をすることを特徴とするような、分散型コンピュータシステムのアーキテクチャである。
ノードとは、ネットワークに接続されたコンピュータを指す。
ブロードキャストとは、ネットワークに接続された全てのコンピュータに情報が行き渡るように情報を伝えることである。
ゴシッププロトコルとは、ネットワークに接続されたコンピュータ間で、繰り返し確率的に情報を交換する手法である。
トポロジーとは、ネットワークに接続された各コンピュータが、どのコンピュータと直接接続して情報を交換するかを表す。
スレッドとは、並列に複数の処理が可能なコンピュータの上で、連続して実行される一本の命令の並びを表す。
本システムは、暗号資産の取引のための完全分散型ブロックチェーンであり、本システムと独立した認証局を利用する。各ユーザは、自らの判断で、自らの身元情報をこの認証局に登録する。ユーザの登録する身元情報の例として、ユーザの顔写真、筆記による署名、国籍、本名、生年月日、住所などが挙げられる。認証局は、ユーザの身元情報の登録に際して、ブロックチェーンの任意の位置にそのユーザの電子証明書を記録し、電子証明書のブロックチェーン上の位置をユーザに通知する。この電子証明書には、ユーザのアカウントのアドレスと、このブロックチェーン上で行われる取引に対する納税額の計算に必要な最小限の情報のみが記述されており、登録したユーザの身元情報は電子証明書に含まれない。電子証明書には、検証鍵の代わりに検証鍵に対してハッシュ関数を適用したものが記述されていても良い。ブロックチェーンに電子証明書が登録されていることは、そのユーザの身元情報が認証局に登録されていることを意味するが、身元情報はブロックチェーンには登録されず、また一般には公開されない。認証局はブロックチェーンに電子証明書を記録する必要があるため、認証局自身もブロックチェーンの一ユーザである必要がある。
 本システムを用いてあるユーザが取引を行う際に、このユーザの電子証明書がブロックチェーンに登録されているか否かに応じて、行うことのできる取引の種類を限定する。電子証明書が登録されているユーザは、操作を行う際にそのブロックチェーン上の位置を提示し、ブロックチェーンシステムはこの電子証明書を確認することでユーザの行おうとしている操作がそのユーザに許可されているか判定する。例えば、電子証明書が登録されている場合には全ての操作が許可されるが、登録されていない場合には、暗号資産の受け取りができないようにする。この場合、電子証明書の登録されていない、すなわち身元情報が未登録のユーザが暗号資産を得ることのできる方法は、マイニングのみである。このように身元情報が未登録のユーザの取引を制限することにより、身元情報が未登録のユーザによる違法な物品の販売や身代金の受け取り等を排除することができる。一方、身元情報が未登録のユーザであっても、マイニングによって得た暗号資産を、身元情報を明らかにしているユーザに支払うことはできるため、マイニングを行う動機は失われない。身元情報を明らかにしているユーザにとっても、身元情報が未登録のユーザから受け取ったコインが、犯罪行為により得られた資金ではないと確信が持てる。ただしここでは、マイニングによって得たコインは全て合法的に得られたものであると仮定している。コンピュータウイルスなどが計算機の持ち主の意向に反してマイニングを行い、採掘されたコインをウイルスの作成者が得るようなケースに関しては、本発明で対応できる範囲外である。また、プールマイニングを行う上では、参加者は全員身元情報を明らかにする必要がある。
 上記の、ユーザがブロックチェーン上で行うことのできる取引の種類を限定する機能は、ブロックチェーンにその機能を持たせてもよく、ウォレットにその機能を実装してもよい。また、スマートコントラクトにその機能を持たせることも想定される。
 ユーザの電子証明書には、ユーザの国籍や自然人・法人の区別といった、納税額の計算に必要なユーザの属性情報を含める。この情報が正しいことは、認証局が確認する。また各取引において、ユーザが暗号資産を入手した際に支払った法定通貨の額や取引成立時刻などの、納税額の計算に必要な残りの情報の入力を義務化する。これにより、ブロックチェーンに登録された情報のみから、身元が登録されたユーザの納税額を計算することができるようになる。政府当局は、各ユーザの身元情報を認証局に問い合わせることにより得ることができ、ブロックチェーンに登録された情報から計算した納税額と各ユーザが実際に納税した金額を比較することで、そのユーザが納税を適正に行ったかどうかが分かる。また、違法行為が行われた場合には検挙が容易になる。尚、身元情報が未登録のユーザがマイニングによって得た利益に対してかかる税金の納税に関しては、本システムによる監視の対象外である。また、本発明においては、納税額の計算に必要な情報の正確性は判断しない。仮に不正確な情報が入力されたとしても、不正確な情報を入力した責任がどのユーザにあるかの特定は容易であり、その対応は政府当局などが行うことを想定している。
 場合によっては、ユーザが積極的に自分の身元情報を他のユーザに開示したいケースも考えられる。このようなケースに対応するため、電子証明書にそのユーザの身元情報の認証局による電子署名を含めても良い。この電子署名を利用すれば、あるユーザの開示したそのユーザ自身の身元情報が真正であることを誰でも検証できる。
 本システムを完全分散型とするためには、認証局が単一故障点であってはならない。本システムには、認証局の検証鍵をブロックチェーンに登録する仕組みおよびこれを失効させる仕組みを備える。登録ユーザの電子証明書を検証するためにはその電子証明書を発行した認証局が有効である必要があり、有効な認証局とはその検証鍵がブロックチェーンに登録されており、かつ失効していない認証局である。認証局の検証鍵は失効することがあるため、あるユーザによるブロックチェーン上の操作が許可されているか判定するためにはその操作が行われた時刻に遡ってそのユーザの電子証明書とその電子証明書を発行した認証局の両方が有効であったか調べる必要があり、これはブロックチェーンに含まれる過去のブロックを調べることで実現できる。
 本システムでは、認証局の検証鍵をブロックチェーンに新たに追加し、また失効させるためにPoWを利用する。最も単純な実現方法は、PoWの仕組みをそのまま利用することで、追加または失効させる認証局の検証鍵を、ブロックを追加するマイナーが決める方法である。この場合、認証局を追加または失効させるという操作が正しいかどうかを各マイナーが判断することで、正しいチェーンが最も速く伸びる。認証局を追加または失効させるという操作が正しいかどうかの判断は、各マイナーのソフトウェアを動作させているユーザが判断しても良いし、マイナーのソフトウェアに判断を行う基準を内蔵しておき、その基準によってマイナーのソフトウェアが自動的に判断しても良い。マイナーのソフトウェアが自動的に判断することは、ユーザがマイナーのソフトウェアの作成者に判断を委任することに相当する。
 認証局を追加または失効させるという操作が正しいかどうかを各マイナーが判断するためには、その根拠となる情報をマイナーが保持している必要があり、この情報はマイナーの計算機の所有者が入力することが考えられる。このような方式がとられた場合、ブロックチェーンに参加するノード間で認証局を追加または失効させるかの判断が分かれる可能性があり、判断が分かれた場合にはチェーンのフォークが発生する。このフォークの発生を防止するためには以下のようにすればよい。認証局の検証鍵を追加または失効するという議案をネットワークにブロードキャストし、新たにブロックを追加したノードがこの議案に賛成した場合にのみ議案を可決する。一旦議案が可決されれば、反対のノードも、議案の可決したチェーンを正しいチェーンとみなすことで、フォークを避けることができる。ただし、PoWの性質上、確率上はネットワークに参加するノードのうち少数のノードのみが賛成する場合にでも議案が可決される場合がある。少数のノードの賛成によって議案が可決されることを防ぐために、確実に過半数のノードの賛成を得たことが分かるまで、複数のブロックに渡って仮説検定を行ってもよい。このためには、マイナーが新しく追加するブロックに、そのマイナーが議案に賛同するかを示す情報を新しく追加するブロックに追加する。賛同するか否かの情報は、CPUパワーあたりのランダムサンプリングとみなすことができる。複数の連続するブロック中の賛成の数からP値を計算し、一定割合以上のノードが賛成している可能性があらかじめ決められた値より大きい場合に議決する。
上記のようにプロトコルを構成することで、認証局の検証鍵が全て失われた場合には、身元情報が登録されたユーザのみが許可される操作ができなくなるが、それでもマイニングは可能であるため、新しい認証局の検証鍵を追加する操作が可能であり、したがってブロックチェーンの機能を復旧させることが可能である。
認証局がユーザの身元を確認した後にブロックチェーンにユーザの電子証明書を登録するには、ブロックチェーン上の任意の位置にユーザの電子証明書を記録し、このブロックチェーン上の位置をそのユーザに知らせることで行う。このユーザの電子証明書には、ユーザのアカウントのアドレスと、このブロックチェーン上で行われる取引に対する納税額の計算に必要な最小限の情報、および認証局が保管するユーザの住所等の非公開身元情報の電子署名が記録される。あるユーザが、自分の電子証明書がブロックチェーンに登録されていることを示すには、自分の電子証明書が登録されているブロックチェーン上の位置を、自分のアドレスおよび電子証明書を発行した認証局の検証鍵とともに示すことで行う。
本発明に於いては、認証局の検証鍵をブロックチェーンに登録および削除する仕組みを備える。このために検証鍵の更新情報を、新しいブロックから過去に向かって順に遡って参照できるリンクトリストに記録する。認証局の検証鍵が追加または失効する毎に、新しく追加されるブロックに、更新情報として追加または失効する検証鍵と一つ前の更新情報のブロックチェーン上の位置情報を記録する。また、各ブロックの決まった位置に最新の更新情報の位置情報を記録する。ある鍵が、ある時点において有効な鍵か確かめるには、最新のブロックに記録された更新情報の位置情報から、最新の更新情報を参照し、この中の一つ前の更新情報の位置を過去に向かって順に遡って、該当期間にその鍵が登録され、削除されていないことを確認する。
図1に、本システムの機能を利用するためのブロックチェーンのデータ構造の例を示す。各ブロックには、各ブロックの追加された時刻、ハッシュ値、ナンス等のビットコインのブロックと共通のデータに加えて、最新の議案の位置および、そのブロックを追加したマイナーが各議案に賛成するか反対するかを示すデータが追加される。また、ブロックの任意の箇所に、ユーザの電子証明書や、認証局追加または失効の議案を追加できる。各議案には、一つ前の議案の位置が含まれる。実施例3および4で示されるとおり、各議案が登録されてからNブロック後にその議案が可決または否決されることが決定する。
 第1の発明に係るブロックチェーンシステムは、ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであって、ブロックチェーン上に各ユーザアカウントの検証鍵の電子証明書を登録する手段と、各ユーザアカウントの検証鍵の電子証明書の該ブロックチェーンへの登録の有無を判別する手段を有し、各ユーザのユーザアカウントの検証鍵の電子証明書の該ブロックチェーンへの登録の有無に応じて、該ブロックチェーン上で該ユーザが実行できる操作の種類を限定する手段を有することを特徴とするものである。
第2の発明に係るブロックチェーンシステムは、第1の発明に係るブロックチェーンシステムであって、ブロックチェーン上に電子証明書認証局の検証鍵を登録・削除する手段と、この仕組みによって登録された検証鍵を使用して、各ユーザアカウントの前記電子証明書の真正性を確認する手段を有することを特徴とするものである。
 第3の発明に係るブロックチェーンシステムは、第2の発明に係るブロックチェーンシステムであって、システムに参加するノードによる投票によりブロックチェーン上に登録した上記電子証明書認証局の検証鍵の登録・削除の可否を決定する手段を有することを特徴とするものである。
第4の発明に係るブロックチェーンシステムは、第3の発明に係るブロックチェーンシステムであって、ブロックチェーン上でこれから行われる操作によって各ユーザが支払う必要のある納税額を決定するために必要な情報を特定する手段と、前記情報が全て前記システムに入力されている場合のみ前記操作の実行を許可する手段を有することを特徴とするものである。
第5の発明は第1ないし第4のいずれかの1の発明に係るブロックチェーンシステムを実現するためのコンピュータープログラムである。
 本願発明に係るブロックチェーンシステムでは以下のことが実現される。1) 完全分散型暗号資産において、一部の参加者が身元情報を登録し、政府当局が登録された身元情報を閲覧することができる。2) 身元情報を登録するか否かを各参加者が選択することができる。3) 身元情報を登録して参加し、取引を行う場合も、登録された参加者の身元情報全てが一般に公表されることはなく、納税額の計算に必要な情報のみが公開される。4) 身元情報を登録せずに参加しても、マイニングと送金などの基本的な操作ができる。5) 身元情報を登録しないユーザによる違法行為を防止することができる。6)さらに、本システム上での取引により発生する納税額を決定する情報の入力を、取引をしようとするユーザに義務付けることにより、取引の合法性が証明できる。また、本願発明に係るコンピュータープログラムは上記のブロックチェーンシステムを実現する。これらの結果、本願発明は暗号資産のブロックチェーン上での取引を合法的なものに限定するものであり、取引の手段としてのブロックチェーンの利用を拡大し、グローバルな流通を促進し世界の経済成長を促進するものである。
本システムの機能を利用するためのブロックチェーンのデータ構造の概念図である。
 つぎに、本発明の実施形態を説明するが、本発明の技術的範囲を逸脱しない範囲において様々な変更や修正が可能であることは言うまでもない。
 本実施例のブロックチェーンシステムは、第1の発明の一実施例であり、PoWを利用する完全分散型ブロックチェーンシステム構成の他に、アルゴリズム1-1、 1-2、 1-3、 1-4、 1-5、 1-6を有する。
 本システムはPoWを強化したものでありPoWと同じ技術を用いている。PoWブロックチェーンはピアツーピアネットワークとして構成される。ネットワーク全体は固定トポロジー無しに緩やかに結合している。あるノードがネットワークに参加するためにはすでに参加しているノードを一つは知っている必要がある。各ノードは無作為に選ばれたいくつかのノードと繋がっている。メッセージはゴシッププロトコルによってブロードキャストされる。各ノードはブロックチェーンの全情報のコピーを保持している。
 マイナーでは2つのスレッドが並列して走っており、それぞれアルゴリズム1-1とアルゴリズム1-2を実行する。アルゴリズム1-1と1-2を実行する2つのスレッドは新しく受信されたアイテムのリストLを共有する。ブロックチェーンにアイテムを追加するには、ネットワークに追加するアイテムをブロードキャストする。このアイテムは、各マイナーが実行するアルゴリズム1-1により受信される。ブロックチェーンにユーザアカウントの電子証明書を登録するには、アルゴリズム1-3を呼び出す。ブロックチェーン上のデータの電子証明書のブロックチェーンへの登録の有無を判別するには、アルゴリズム1-4を呼び出す。アルゴリズム1-6において与えられたアイテムの操作に認証が必要であれば、そのアイテムに関連付けられた電子証明書を検証し、またそのアイテムを認証された操作として検証する。認証が必要なアイテムに関しては、電子証明書の検証と認証された操作としての検証の両方に成功しなければ、アイテムの検証は成功しない。一方、認証が必要でないアイテムの操作は、認証されていない操作として検証する。チェーン全体の検証を行うアルゴリズム1-5からアルゴリズム1-6を呼び出すことで、電子証明書の有無に応じて、実行できる操作の種類を変える。
アルゴリズム1-1: アイテムの受信とブロックの作成
begin
  while true do
    while 新しいブロックが追加されるまで do
      アイテムtを受信する
      アイテムtを新しく受信されたアイテムのリストLに追加する
    end while
  end while
end
アルゴリズム1-1は、新しく受信されたアイテムをアイテムリストの最後尾に付加する。
アルゴリズム1-2 : マイニング
begin
  他のノードによって新たなブロックが追加されるまで待つ。
  以降新たなブロックが追加されたチェーンについて処理を行う。
  while true do
    新しく受信されたアイテムのリストL内の各要素をアルゴリズム1-6を用いて検証し、検証に成功したもの全てからブロックbを作成する。
    L を空にする
    repeat
      repeat
        異なったナンスでブロックのハッシュ値を計算する
        until 新しいブロックを受信する、もしくは規定数のゼロビットで始まるナンスを見つける
        規定数のゼロビットで始まるナンスを見つけた場合には、そのナンスを含むブロックをネットワークにブロードキャストし、以降そのブロックを追加したチェーンに対して処理を行う
        新しいブロックを受信した場合には、そのブロックを引数としてアルゴリズム1-5を呼び出し、チェーンを検証する。
        if 新しいブロックを含むチェーンの検証に成功し、それに対応するチェーンがより長い場合 then
          以降そのブロックに対応するチェーンに対して処理を行う。
          変更後のチェーンに含まれないアイテムをリストLに移動する。
        end if
    until 新しいブロックが追加されるまで
  end while
end
アルゴリズム1-2が始まると、マイナーはまず作業するチェーンを選ぶ。有効なチェーンが複数存在し得る。それらは、みな同じブロックから始まっている。ある特定のブロックの並び、あるいはチェーンは、末尾のブロックにより特定される。マイナーは最初に受信されたブロックに対応するチェーンについて作業を始める。
アルゴリズム1-3: ユーザアカウントの電子証明書の登録
入力:ユーザアカウントの電子証明書 c
begin
  電子証明書c を単純にブロックに追加する操作をアイテムとしてネットワークに送信する
end
アルゴリズム1-4: ユーザアカウントの電子証明書がブロックチェーンに登録されているか調べる
入力:ブロックチェーンの最新ブロックb、 ブロックチェーン上の位置p、 ユーザアカウントu
begin
  ユーザアカウントuが、ブロックbを最新ブロックとして含むチェーンに登録されてなければfalseを返す
  ブロックbを最新ブロックとして含むチェーン上の位置pに登録された電子証明書を既定の認証局の公開鍵で検証可能であればtrueを返す
  return false
end
アルゴリズム1-5: チェーンを検証し、正しい場合にのみtrueを返す
入力:ブロックb
出力:ブロックbを最新のブロックとして含むチェーンを検証し、正しい場合にのみtrueを返す
begin
  for bを最新ブロックとして含むチェーン内の全てのブロックkについて時間順に do
    // ブロックk内の全てのアイテムを検証し、失敗した場合にはfalseを返す
    for ブロックk内のすべてのアイテムtについて do
      アルゴリズム1-6を用いてアイテムtを検証する
      if アイテムtの検証に失敗 then return false
    end for
  end for
  return true
end
アルゴリズム1-6 : アイテムの検証
入力:アイテムt
出力:検証に成功かを示すブール値
begin
  if アイテムtの操作に認証が必要 then
    if アイテムtに関連付けられた電子証明書を既定の認証局の公開鍵で検証可能 then
      アイテムtを認証された操作として検証し、失敗すればfalseを返す
    else
      return false
    endif
  else
    アイテムtを認証されてない操作として検証し、失敗すればfalseを返す
  endif
  return true
end
本実施例のブロックチェーンシステムは、第2の発明の一実施例であり、PoWを利用する完全分散型ブロックチェーンシステム構成の他に、アルゴリズム2-1、 2-2、 2-3、 2-4、 2-5、 2-6、 2-7、 2-8を有する。
実施例1と同様に、マイナーでは2つのスレッドが並列して走っており、それぞれアルゴリズム2-1とアルゴリズム2-2を実行する。アルゴリズム2-1と2-2を実行する2つのスレッドは新しく受信されたアイテムのリストLを共有する。ブロックチェーンにアイテムを追加するには、ネットワークに追加するアイテムをブロードキャストする。このアイテムは、各マイナーが実行するアルゴリズム2-1により受信される。ブロックチェーンにユーザアカウントの電子証明書を登録するには、アルゴリズム2-3を呼び出す。ブロックチェーン上のデータの電子証明書のブロックチェーンへの登録の有無を判別するには、アルゴリズム2-4を呼び出す。
本実施例では、公開鍵電子証明書認証局の検証鍵を登録または削除するには、アルゴリズム2-7を呼び出す。アルゴリズム2-8を利用して、過去のある時刻または現在において、登録されており削除されていない公開鍵電子証明書認証局の検証鍵のリストを得る。これにより得られた公開鍵を利用して、実施例1と同様にアルゴリズム2-6において、与えられたアイテムの操作に認証が必要であれば、そのアイテムに関連付けられた電子証明書を検証し、もしその電子証明書が真正であれば、続けてそのアイテムを認証された操作として検証する。
アルゴリズム2-1はアルゴリズム1-1と同じである。
アルゴリズム2-2 : マイニング。
begin
  他のノードによって新たなブロックが追加されるまで待つ。
  以降新たなブロックが追加されたチェーンについて処理を行う。
  while true do
    ブロックbに空ブロックを代入
    for リストL内の各アイテムe do
      (アイテムe、 現在時刻)を引数としてアルゴリズム2-6を呼び出す
      if アルゴリズム2-6による検証に成功 then
        ブロックbにアイテムeを追加
      end if
    end for
    リストLを空にする
    repeat
      repeat
        異なったナンスでブロックのハッシュ値を計算する
        until 新しいブロックを受信する、もしくは規定数のゼロビットで始まるナンスを見つける
        規定数のゼロビットで始まるナンスを見つけた場合には、そのナンスを含むブロックをネットワークにブロードキャストし、以降そのブロックを追加したチェーンに対して処理を行う
        新しいブロックを受信した場合には、そのブロックを引数としてアルゴリズム2-5を呼び出し、チェーンを検証する。
        if 新しいブロックを含むチェーンの検証に成功し、それに対応するチェーンがより長い場合 then
          以降そのブロックに対応するチェーンに対して処理を行う。
          変更後のチェーンに含まれないアイテムをリストLに移動する。
        end if
    until 新しいブロックが追加されるまで
  end while
end
アルゴリズム2-3はアルゴリズム1-3と同じ
アルゴリズム2-4: ユーザアカウントの電子証明書がブロックチェーンに登録されているか調べる。
入力:ブロックチェーンの最新ブロックb、 ブロックチェーン上の位置p、 ユーザアカウントu
begin
  ユーザアカウントuが、ブロックbを最新ブロックとして含むチェーンに登録されてなければfalseを返す
  アルゴリズム2-8を(ブロックb、 現在時刻)を引数にして呼び出して、現在有効な認証局の公開鍵のリストを得る。結果をリストcsに代入する。
  ブロックbを最新ブロックとして含むチェーン上の位置pに登録された電子証明書をリストcs内のいずれかの認証局の公開鍵で検証可能であればtrueを返す
  return false
end
アルゴリズム2-5: チェーンを検証し、正しい場合にのみtrueを返す
入力:ブロックb
出力:ブロックbを最新のブロックとして含むチェーンを検証し、正しい場合にのみtrueを返す
begin
  for ブロックbを最新ブロックとして含むチェーン内の全てのブロックkについて時間順に do
    // ブロックk内の全てのアイテムを検証し、失敗した場合にはfalseを返す
    for ブロックk内のすべてのアイテムtについて do
      (アイテムt、 ブロックkの時刻)を引数にしてアルゴリズム2-6を用いてアイテムtを検証する
      if アイテムtの検証に失敗 then return false
    end for
  end for
  return true
end
アルゴリズム2-6 : アイテムの検証
入力:アイテムt、 時刻m
出力:検証に成功かを示すブール値
begin
  アルゴリズム2-8を(現在処理しているブロック、 時刻m)を引数にして呼び出して、時刻mの時点で有効な認証局の公開鍵のリストを得る。結果をcsに代入する。
  if アイテムtの操作に認証が必要 then
    if アイテムtに関連付けられた電子証明書をリストcs内のいずれかの認証局の公開鍵で検証可能 then
      アイテムtを認証された操作として検証し、失敗すればfalseを返す
    else
      return false
    endif
  else
    アイテムtを認証されてない操作として検証し、失敗すればfalseを返す
  endif
  return true
end
アルゴリズム2-7 : 公開鍵電子証明書認証局の検証鍵を登録または削除する
入力:公開鍵電子証明書認証局の検証鍵を登録または削除する操作 o
begin
  操作o をアイテムとしてネットワークに送信する
end
アルゴリズム2-8 : ある時点においてブロックチェーンに登録されている認証局の検証鍵のリストを得る
入力 : ブロックチェーンの最後のブロック b、 時刻 m
出力 : ブロックbを最後とするチェーンにおいて、時刻 mにおいて有効な認証局の検証鍵のリスト
begin
  リストcsを空にする
  for ブロックbから辿って得られる、ブロックチェーンに登録された時刻m以前の認証局追加または失効の各操作oについて時間順に do
    if 操作oが認証局を追加する操作である then
      リストcsに、操作oにより追加される認証局を追加
    end if
    if 操作oが認証局失効する操作である then
      リストcsから操作oにより執行する認証局を削除
    end if
  end for
  return cs
end
本実施例のブロックチェーンシステムは、第3の発明の一実施例であり、PoWを利用する完全分散型ブロックチェーンシステム構成の他に、アルゴリズム3-1、 3-2、 3-3、 3-4、 3-5、 3-6、 3-7、 3-8を有する。
実施例2と同様に、マイナーでは2つのスレッドが並列して走っており、それぞれアルゴリズム3-1とアルゴリズム3-2を実行する。アルゴリズム3-1と3-2を実行する2つのスレッドは新しく受信されたアイテムのリストLを共有する。ブロックチェーンにアイテムを追加するには、ネットワークに追加するアイテムをブロードキャストする。このアイテムは、各マイナーが実行するアルゴリズム3-1により受信される。ブロックチェーンにユーザアカウントの電子証明書を登録するには、アルゴリズム3-3を呼び出す。ブロックチェーン上のデータの電子証明書のブロックチェーンへの登録の有無を判別するには、アルゴリズム3-4を呼び出す。公開鍵電子証明書認証局の検証鍵を登録または削除する議案を登録するには、アルゴリズム3-7を呼び出す。
実施例3では、システムに参加するノードによる投票によりブロックチェーン上に登録した上記電子証明書認証局の検証鍵の登録・削除の可否を決定する。このためには、認証局の検証鍵を追加または失効するという議案をネットワークにブロードキャストし、新たにブロックを追加したノードがこの議案に賛成した場合にのみ議案を可決する。マイナーは、新しく追加するブロックに、そのマイナーが議案に賛同するかを示す情報を新しく追加するブロックに追加する(アルゴリズム3-2)。各ブロックに追加された、各議案に賛同するか否かの情報は、CPUパワーあたりのランダムサンプリングとみなすことができる。複数の連続するブロック中の賛成の数からP値を計算し、一定割合以上のノードが賛成している可能性があらかじめ決められた値より大きい場合に議決する。この実施例では、公開鍵電子証明書認証局の検証鍵を登録または削除する各議案に対し、N ブロック時間の間マイナーによる投票を受け付け、アルゴリズム3-8において、このNブロック内で追加されたブロックのうち、あらかじめP値とNから計算して決めたある数以上のブロックに、議案に賛成することを示すデータが付加されているか調べることで、各議案がその後Nブロック時間の間に議決されたか調べる。
 アルゴリズム3-1はアルゴリズム1-1と同じ。
アルゴリズム3-2 : マイニング
begin
  他のノードによって新たなブロックが追加されるまで待つ。
  以降新たなブロックが追加されたチェーンについて処理を行う。
  while true do
    ブロックbを空にする
    for リストL内の各アイテムe do
      (アイテムe、 現在時刻)を引数としてアルゴリズム3-6を呼び出し、アイテムeを検証する
      if アイテムeの検証に成功 then
        ブロックbにアイテムeを追加
      end if
    end for
    ブロックbにブロックチェーンに過去Nブロック時間内に登録された公開鍵電子証明書認証局の公開鍵を登録または削除する議案に対する賛否情報を付加する
    リストL を空にする
    repeat
      repeat
        異なったナンスでブロックのハッシュ値を計算する
        until 新しいブロックを受信する、もしくは規定数のゼロビットで始まるナンスを見つける
        規定数のゼロビットで始まるナンスを見つけた場合には、そのナンスを含むブロックをネットワークにブロードキャストし、以降そのブロックを追加したチェーンに対して処理を行う
        新しいブロックを受信した場合には、そのブロックを引数としてアルゴリズム3-5を呼び出し、チェーンを検証する。
        if 新しいブロックを含むチェーンの検証に成功し、それに対応するチェーンがより長い場合 then
          以降そのブロックに対応するチェーンに対して処理を行う。
          変更後のチェーンに含まれないアイテムをリストLに移動する。
        end if
    until 新しいブロックが追加されるまで
  end while
end
アルゴリズム3-3はアルゴリズム1-3と同じ
アルゴリズム3-4: ユーザアカウントの電子証明書がブロックチェーンに登録されているか調べる
入力:ブロックチェーンの最新ブロックb、 ブロックチェーン上の位置p、 ユーザアカウントu
begin
  ユーザアカウントuが、ブロックbを最新ブロックとして含むチェーンに登録されてなければfalseを返す
  アルゴリズム3-8を(ブロックb、 現在時刻)を引数にして呼び出して、現在有効な認証局の公開鍵のリストを得る。結果をリストcsに代入する。
  ブロックbを最新ブロックとして含むチェーン上の位置pに登録された電子証明書をリストcs内のいずれかの認証局の公開鍵で検証可能であればtrueを返す
  return false
end
アルゴリズム3-5: チェーンを検証し、正しい場合にのみtrueを返す
入力:ブロックb
出力:ブロックbを最新のブロックとして含むチェーンを検証し、正しい場合にのみtrueを返す
begin
  for ブロックbを最新ブロックとして含むチェーン内の全てのブロックkについて時間順に do
    // ブロックk内の全てのアイテムを検証し、失敗した場合にはfalseを返す
    for ブロックk内のすべてのアイテムtについて do
      (アイテムt、 ブロックkの時刻)を引数にしてアルゴリズム3-6を用いてアイテムtを検証する
      if  アイテムtの検証に失敗 then return false
    end for
  end for
  return true
end
アルゴリズム3-6 : アイテムの検証
入力:アイテムt、 時刻m
出力:検証に成功かを示すブール値
begin
  アルゴリズム3-8を(現在処理しているチェーンの最新ブロック、 時刻m)を引数にして呼び出し、現在処理しているチェーンの時刻mにおいて有効な認証局の公開鍵のリストを得る。結果をリストcsに代入する。
 
  if アイテムtの操作に認証が必要 then
    if アイテムtに関連付けられた電子証明書をリストcs内のいずれかの認証局の公開鍵で検証可能 then
      アイテムtを認証された操作として検証し、失敗すればfalseを返す
    else
      return false
    endif
  else
    アイテムtを認証されてない操作として検証し、失敗すればfalseを返す
  endif
  return true
end
アルゴリズム3-7 : 公開鍵電子証明書認証局の検証鍵を登録または削除する議案の登録する
入力:公開鍵電子証明書認証局の検証鍵を登録または削除する議案の登録操作 o
begin
  操作o をアイテムとしてネットワークに送信する
end
アルゴリズム3-8 : ある時点においてブロックチェーンに登録されている認証局の検証鍵のリストを得る
入力 : ブロックチェーンの最後のブロック b、 時刻 m
出力 : 認証局の検証鍵のリスト
begin
  リストcsを空にする
  for ブロックbから辿って得られる、ブロックチェーンに登録された時刻 m以前の認証局追加または失効の各議案oについて時間順に do
    if oが認証局cを追加する議案であり、その後Nのブロックで議案oが可決された then
      リストcsに、議案oにより追加される認証局を追加
    end if
    if リストoが認証局cを失効する議案であり、その後Nのブロックで議案oが可決された then
      リストcsから、議案oにより執行する認証局を削除
    end if
  end for
  return リストcs
end
本実施例のブロックチェーンシステムは、第4の発明の一実施例であり、PoWを利用する完全分散型ブロックチェーンシステム構成の他に、アルゴリズム4-1、 4-2、 4-3、 4-4、 4-5、 4-6、 4-7、 4-8を有する。
実施例3と同様に、マイナーでは2つのスレッドが並列して走っており、それぞれアルゴリズム4-1とアルゴリズム4-2を実行する。アルゴリズム4-1と4-2を実行する2つのスレッドは新しく受信されたアイテムのリストLを共有する。ブロックチェーンにアイテムを追加するには、ネットワークに追加するアイテムをブロードキャストする。このアイテムは、各マイナーが実行するアルゴリズム4-1により受信される。ブロックチェーンにユーザアカウントの電子証明書を登録するには、アルゴリズム4-3を呼び出す。ブロックチェーン上のデータの電子証明書のブロックチェーンへの登録の有無を判別するには、アルゴリズム4-4を呼び出す。公開鍵電子証明書認証局の検証鍵を登録または削除する議案を登録するには、アルゴリズム4-7を呼び出す。この実施例では、公開鍵電子証明書認証局の検証鍵を登録または削除する各議案に対し、N ブロック時間の間マイナーによる投票を受け付ける。アルゴリズム4-8において、各議案がその後Nブロック時間の間に議決されたか調べる。このためには、例えばこのNブロック内で追加されたブロックのうち、ある決められた数以上のブロックに、議案に賛成することを示すデータが付加されているか調べる。
実施例4では、アルゴリズム4-6において、各アイテムの操作を実行する際に各ユーザが支払う必要のある納税額を決定するために必要な情報を特定し、これらの情報が揃っているか調べ、その結果に応じて各アイテムの実行結果の検証結果を変えることで、該操作の実行を許可または禁止する。例えば、納税額を決定のために、A国においては各操作が行われた正確な時刻情報が必要であり、B国においてはそれに加えて、支払われた暗号資産の法定通貨建ての価格が必要である場合には、各ユーザの国籍がA国かB国かに応じて、これらの情報を、納税額を決定するために必要な情報として特定する。次いで、各操作にこれらの情報が含まれているか調べ、含まれていることを検証が成功する必要条件とすることにより、これらの情報全てが含まれていない操作を禁止する。
アルゴリズム4-1はアルゴリズム1-1と同じ。
アルゴリズム4-2 : マイニング
begin
  他のノードによって新たなブロックが追加されるまで待つ。
  以降新たなブロックが追加されたチェーンについて処理を行う。
  while true do
    ブロックb を空にする
    for リストL内の各アイテムe do
      (アイテムe、 現在時刻)を引数としてアルゴリズム4-6を呼び出し、アイテムeを検証する
      if アイテムeの検証に成功 then
       ブロック bにアイテムeを追加
      end if
    end for
    ブロックbにブロックチェーンに過去Nブロック時間内に登録された公開鍵電子証明書認証局の公開鍵を登録または削除する議案に対する賛否情報を付加する
    リストL を空にする
    repeat
      repeat
        異なったナンスでブロックのハッシュ値を計算する
      until 新しいブロックを受信する、もしくは規定数のゼロビットで始まるナンスを見つける
      規定数のゼロビットで始まるナンスを見つけた場合には、そのナンスを含むブロックをネットワークにブロードキャストし、以降そのブロックを追加したチェーンに対して処理を行う
      新しいブロックを受信した場合には、そのブロックを引数としてアルゴリズム4-5を呼び出し、チェーンを検証する。
      if 新しいブロックを含むチェーンの検証に成功し、それに対応するチェーンがより長い場合 then
        以降そのブロックに対応するチェーンに対して処理を行う。
        変更後のチェーンに含まれないアイテムをリストLに移動する。
      end if
    until 新しいブロックが追加されるまで
  end while
end
アルゴリズム4-3はアルゴリズム1-3と同じ
アルゴリズム4-4はアルゴリズム3-4と同じ
アルゴリズム4-5: チェーンを検証し、正しい場合にのみtrueを返す
入力:ブロックb
出力:ブロックbを最新のブロックとして含むチェーンを検証し、正しい場合にのみtrueを返す
begin
  for bを最新ブロックとして含むチェーン内の全てのブロックkについて時間順に do
    // ブロックk内の全てのアイテムを検証し、失敗した場合にはfalseを返す
    for k内のすべてのアイテムtについて do
      (アイテムt、 ブロックkの時刻)を引数にしてアルゴリズム4-6を用いてアイテムtを検証する
      if アイテムtの検証に失敗 then return false
    end for
  end for
  return true
end
アルゴリズム4-6 : アイテムの検証
入力:アイテムt、 時刻m
出力:検証に成功かを示すブール値
begin
  アルゴリズム4-8を(現在処理しているチェーンの最終ブロック、 時刻m)を引数にして呼び出し、現在処理しているチェーンで時刻mにおいて有効な認証局の公開鍵のリストを得る。結果をリストcsに代入する。
  アイテムtの操作を実行する際に各ユーザが支払う必要のある納税額を決定するために必要な情報を特定し、これらの情報が揃っているか調べる
  if 情報が全て揃っていない then
    return false
  end if
  if アイテムtの操作に認証が必要 then
    if アイテムtに関連付けられた電子証明書をリストcs内のいずれかの認証局の公開鍵で検証可能 then
      アイテムtを認証された操作として検証し、失敗すればfalseを返す
    else
      return false
    endif
  else
    アイテムtを認証されてない操作として検証し、失敗すればfalseを返す
  endif
  return true
end
アルゴリズム4-7はアルゴリズム3-7と同じ
アルゴリズム4-8はアルゴリズム3-8と同じ
 本願発明に係るブロックチェーンシステムは、既存の様々な暗号資産を取引するブロックチェ―ンシステムにも適用可能なものであり、それらにおける暗号資産の取引を合法的なものに限定することを可能とする。

Claims (5)

  1. ピアツーピアネットワークに参加するノードにより運営されるブロックチェーンシステムであって、ブロックチェーン上に各ユーザアカウントの検証鍵の電子証明書を登録する手段と、各ユーザアカウントの検証鍵の電子証明書の該ブロックチェーンへの登録の有無を判別する手段を有し、各ユーザのユーザアカウントの検証鍵の電子証明書の該ブロックチェーンへの登録の有無に応じて、該ブロックチェーン上で該ユーザが実行できる操作の種類を限定する手段を有することを特徴とするブロックチェーンシステム。
  2. 請求項1に記載のブロックチェーンシステムであって、ブロックチェーン上に電子証明書認証局の検証鍵を登録・削除する手段と、この仕組みによって登録された検証鍵を使用して各ユーザアカウントの前記電子証明書の真正性を確認する手段を有することを特徴とするブロックチェーンシステム。
  3. 請求項2に記載のブロックチェーンシステムであって、システムに参加するノードによる投票によりブロックチェーン上に登録した上記電子証明書認証局の検証鍵の登録・削除の可否を決定する手段を有することを特徴とするブロックチェーンシステム。
  4. 請求項3に記載のブロックチェーンシステムであって、ブロックチェーン上でユーザがこれから行おうとしている操作によって発生する該ユーザが支払う必要のある納税額を決定するために必要な情報を特定する手段と、該情報が全て該システムに入力されている場合のみ該操作の実行を許可する手段を有することを特徴とするブロックチェーンシステム。
  5. 請求項1ないし4のいずれか1項に記載のブロックチェーンシステムを実現するためのコンピュータープログラム。
PCT/JP2021/041510 2021-07-22 2021-11-11 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム WO2023002640A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP21943311.7A EP4148602A4 (en) 2021-07-22 2021-11-11 FULLY DISTRIBUTED BLOCKCHAIN SYSTEM AND COMPUTER PROGRAM FOR CRYPTOASSET TRANSACTIONS WITH PARTICIPATION OF ANONYMOUS USERS WHILE PREVENTING ILLEGAL TRANSACTIONS

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021121101A JP6967211B1 (ja) 2021-07-22 2021-07-22 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム
JP2021-121101 2021-07-22

Publications (1)

Publication Number Publication Date
WO2023002640A1 true WO2023002640A1 (ja) 2023-01-26

Family

ID=78509587

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/041510 WO2023002640A1 (ja) 2021-07-22 2021-11-11 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム

Country Status (3)

Country Link
EP (1) EP4148602A4 (ja)
JP (1) JP6967211B1 (ja)
WO (1) WO2023002640A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102382851B1 (ko) * 2017-07-04 2022-04-05 삼성전자 주식회사 eSIM 단말과 서버가 디지털 인증서를 협의하는 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH058743B2 (ja) 1984-12-27 1993-02-03 Nippon Oil Co Ltd
JP2018093434A (ja) * 2016-12-06 2018-06-14 富士通株式会社 トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置
JP3228339U (ja) * 2018-04-04 2020-10-22 ブラック ゴールド コイン インコーポレイテッドBlack Gold Coin, Inc. 個人認証及び確認システム及び方法
JP2020177372A (ja) * 2019-04-16 2020-10-29 株式会社IndieSquare ブロック・チェーン間でデジタル資産を転送するシステム
JP6799837B1 (ja) 2020-01-24 2020-12-16 株式会社Genesis 電子通貨利用情報システム及び電子通貨利用方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11951400B2 (en) * 2018-03-14 2024-04-09 Sony Interactive Entertainment LLC Secure decentralized video game transaction platform
CN108667618B (zh) * 2018-05-10 2020-07-03 阿里巴巴集团控股有限公司 区块链成员管理的数据处理方法、装置、服务器及系统
CN109246179B (zh) * 2018-06-30 2021-06-01 华为技术有限公司 维护区块链的方法和装置、服务器和计算机可读存储介质
KR102322646B1 (ko) * 2019-03-01 2021-11-10 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 블록체인 내의 스마트 계약에 기초하여 거래 활동의 민감한 데이터를 보호하기 위한 방법 및 디바이스
US11763383B2 (en) * 2019-05-30 2023-09-19 Nec Corporation Cryptocurrency system, terminal, server, trading method of cryptocurrency, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH058743B2 (ja) 1984-12-27 1993-02-03 Nippon Oil Co Ltd
JP2018093434A (ja) * 2016-12-06 2018-06-14 富士通株式会社 トランザクション管理方法、トランザクション管理プログラム及びトランザクション管理装置
JP3228339U (ja) * 2018-04-04 2020-10-22 ブラック ゴールド コイン インコーポレイテッドBlack Gold Coin, Inc. 個人認証及び確認システム及び方法
JP2020177372A (ja) * 2019-04-16 2020-10-29 株式会社IndieSquare ブロック・チェーン間でデジタル資産を転送するシステム
JP6799837B1 (ja) 2020-01-24 2020-12-16 株式会社Genesis 電子通貨利用情報システム及び電子通貨利用方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ELLIPTIC, FINANCIAL CRIME TYPOLOGIES IN CRYPTOASSETS: THE CONCISE GUIDE FOR COMPLIANCE LEADERS. ACCESSED, 1 February 2021 (2021-02-01), Retrieved from the Internet <URL:https://www.elliptic.co/resources/typologies-concise-guide-crypto-leaders>
FATF 40 RECOMMENDATIONS, Retrieved from the Internet <URL:https://www.fatf-gafi.org/media/fatf/documents/FATF%20Standards%20-%2040%20Recommendations%20rc.pdf>
NAKAMOTO, S, BITCOIN: A PEER-TO-PEER ELECTRONIC CASH SYSTEM, 2008
See also references of EP4148602A4
SEUNGHYEON LEECHANGHOON YOONHEEDO KANGYEONKEUN KIMYONGDAE KIMDONGSU HANSOOEL SONSEUNGWON SHIN: "Cybercriminal Minds: An investigative study of cryptocurrency abuses in the Dark Web", 1 February 2021

Also Published As

Publication number Publication date
EP4148602A4 (en) 2024-04-17
EP4148602A1 (en) 2023-03-15
JP2023016626A (ja) 2023-02-02
JP6967211B1 (ja) 2021-11-17

Similar Documents

Publication Publication Date Title
JP7350030B2 (ja) 複数のトランザクションをブロックチェーンに記録する方法及びシステム
Zhang et al. Security and privacy on blockchain
US10949511B2 (en) Multicomputer processing for data authentication using a blockchain approach
KR102332034B1 (ko) 정보 보호를 위한 시스템 및 방법
CN109691008B (zh) 网络拓扑
JP7296596B2 (ja) ブロックの迅速な生成用の分散コンセンサスのアルゴリズム、デバイス及びコンピュータ可読記憶媒体
EP3419210A1 (en) Method for generating a transaction of a blockchain and method for validating a block of a blockchain
CN114915421A (zh) 用于操纵数字货币的方法、电子设备和存储介质
JP3228339U (ja) 個人認証及び確認システム及び方法
Zhu et al. Hybrid blockchain design for privacy preserving crowdsourcing platform
WO2018088475A1 (ja) 電子認証方法及びプログラム
US20230259899A1 (en) Method, participant unit, transaction register and payment system for managing transaction data sets
WO2023002640A1 (ja) 違法な取引を防止しつつ匿名ユーザの参加も許容する暗号資産の取引のための完全分散型ブロックチェーンシステム及びコンピュータープログラム
WO2019168104A1 (ja) 正当性管理システム、正当性管理方法及びプログラム
JP2023502057A (ja) ブロックチェーントランザクションを使用したアイデンティティ検証プロトコル
Kurbatov et al. Global Digital Identity and Public Key Infrastructure
US20230162176A1 (en) Method for implementing a digital coin system using a blockchain
CN116745794A (zh) 区块链相关验证方法和系统
Zhu et al. A proposal for account recovery in decentralized applications
Akbar et al. E-Voucher System Development for Social Assistance with Blockchain Technology
CN111402037A (zh) 一种用户数据处理方法及装置
Chen et al. Preventing SNS Impersonation: A Blockchain-Based Approach
Chen et al. PACDAM: Privacy-Preserving and Adaptive Cross-Chain Digital Asset Marketplace
JP7324941B2 (ja) 金融取引システムおよびその方法
US20230267426A1 (en) Payment system, coin register, participant unit, transaction register, monitoring register and method for payment with electronic coin data sets

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 17802829

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2021943311

Country of ref document: EP

Effective date: 20221205

NENP Non-entry into the national phase

Ref country code: DE