WO2019198866A1 - 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치 - Google Patents

서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치 Download PDF

Info

Publication number
WO2019198866A1
WO2019198866A1 PCT/KR2018/005252 KR2018005252W WO2019198866A1 WO 2019198866 A1 WO2019198866 A1 WO 2019198866A1 KR 2018005252 W KR2018005252 W KR 2018005252W WO 2019198866 A1 WO2019198866 A1 WO 2019198866A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
user
cryptocurrency
information
transaction information
Prior art date
Application number
PCT/KR2018/005252
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 US17/045,419 priority Critical patent/US11887107B2/en
Publication of WO2019198866A1 publication Critical patent/WO2019198866A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3223Realising banking transactions through M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/381Currency conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates to a method and apparatus for providing a transaction service of a cryptocurrency based on blockchain.
  • Bitcoin is not a currency used in real life, but a cryptocurrency used in online trading. Bitcoin is known to have been created in 2008 by an unidentified person named Satoshi Nakamoto as a backlash against central banks monopolizing the issuance of money and advocating arbitrary monetary policy. It's a bitcoin-paying operation that solves the computer's tricky math problems, and it's open source under the MIT license. Like Linux, a computer operating system (OS), Bitcoin also has a programming blueprint, so any developer can participate in a programming upgrade.
  • OS computer operating system
  • a method of trading between a first cryptocurrency traded based on a first blockchain and a second cryptocurrency traded based on a second blockchain is provided.
  • the transaction method may include: first transaction information for a first transaction in which a first user transmits the first cryptocurrency to a second user, and the first user is accompanied by the first transaction from the second user. Acquiring second transaction information for a second transaction that receives the second cryptocurrency; If the first transaction information satisfies an agreement condition between the first user and the second user, the first condition information for activating the first transaction of the first cryptocurrency depends on the validity of the second transaction information. Adding to the first transaction information; And digitally signing the first transaction information to which the first condition information is added and proving the agreement condition, and transmitting the digital signature to a node on a network of the first blockchain.
  • 1 is a conceptual diagram illustrating a method of trading cryptocurrency based on heterogeneous blockchain between terminals according to an embodiment.
  • FIG. 2 is a flowchart illustrating a method of trading cryptocurrency based on heterogeneous blockchain in a terminal according to an embodiment.
  • 3 is a diagram for describing a process of digitally signing transaction information added with condition information in each terminal and transmitting the digitally signed transaction information to a blockchain network.
  • FIG. 4 is a diagram for describing a process of transmitting digitally signed transaction information from a terminal to a node on a network of a blockchain, according to an exemplary embodiment.
  • 5 is a diagram for describing a process of correcting a transfer amount of a predetermined cryptocurrency according to an exchange rate between cryptocurrencies according to an embodiment.
  • FIG. 6 is a flowchart illustrating a method of operating a node on a network of a blockchain to trade cryptocurrencies based on heterogeneous blockchains between terminals, according to an embodiment.
  • FIG. 7 is a diagram illustrating a process of propagating a transaction of a valid cryptocurrency on a blockchain network to nodes on a blockchain network and recording the blockchain in a blockchain according to an embodiment.
  • FIG. 8 is a diagram for describing a process of verifying validity of transaction information including condition information at a node on a network of a blockchain, according to an exemplary embodiment.
  • FIG. 9 is a diagram for describing a process of activating a transaction by determining whether condition information is satisfied in each heterogeneous blockchain, according to an exemplary embodiment.
  • FIG. 10 is a block diagram illustrating a structure of a block and a block chain according to an embodiment.
  • FIG. 11 is a diagram for describing a method of obtaining a proof of work and a nonce of a block at a node on a network of a blockchain, according to an exemplary embodiment.
  • FIG. 12 is a block diagram illustrating a configuration of a terminal according to an embodiment.
  • FIG. 13 is a block diagram illustrating a configuration of a node on a network of a blockchain according to an embodiment.
  • a method of trading between a first cryptocurrency traded based on a first blockchain and a second cryptocurrency traded based on a second blockchain wherein a first user sends a second user the first cryptocurrency.
  • First transaction information for a first transaction that transmits a second transaction information for a second transaction in which the first user receives the second cryptocurrency from the second user, accompanied by the first transaction.
  • first transaction information for a first transaction in which a first user transmits the first cryptocurrency to a second user, and a second Receiving first condition information from the terminal of the first user that activates the first transaction depending on the validity of the second transaction information for the second cryptocurrency based on the blockchain; If the first transaction information is valid according to the validity of the first transaction information, the first transaction information is transmitted to a second node on the network of the first blockchain, and the first transaction information is added to a candidate block. Making; Performing proof of work on the candidate block to add the candidate block as a valid first block to the first blockchain; If the first condition information is satisfied, activating the first transaction.
  • a communication device A processor; User interface devices; And a memory that stores instructions executable by the processor, wherein the processor executes the instructions such that a first transaction for a first transaction in which a first user sends the first cryptocurrency to a second user Information and second transaction information associated with the first transaction, the second user receiving a second cryptocurrency from the second user, the second transaction information being acquired, wherein the first transaction information is derived from the first transaction.
  • the first condition information which is dependent on the validity of the second transaction information and activates the first transaction of the first cryptocurrency, is added to the first transaction information.
  • a "blockchain” refers to a distributed P2P (ledger) of a ledger (learner) that utilizes a software component composed of algorithms in which blocks connected in order negotiate transaction information using encryption and security techniques to secure and maintain integrity. Peer to Peer) system.
  • the distributed P2P system may be a special type of distributed system.
  • a P2P system allows all nodes of a network to provide resources (processing capacity, storage space, data or network bandwidth, etc.) to each other without coordination of a central node.
  • “blockchain” may refer to a distributed ledger technology in which the ledger recording the transaction information is distributed to the P2P network, not the central server of a specific institution, to jointly record and manage the nodes in the network.
  • cryptocurrency may mean a digital currency designed to be possible as an exchange means using an encryption method.
  • Cryptocurrency can use cryptographic methods to secure transactions, control the creation of additional units, and authorize the transfer of assets.
  • the term "hash function” may refer to a function that converts any type of data into a fixed length number regardless of the length of the input data.
  • the hash function may calculate a hash value using bits and bytes constituting the input data.
  • the “terminal” may be, but is not limited to, a smartphone, a tablet PC, a PC, a TV, a smart TV, a mobile phone, a personal digital assistant, a laptop, a non-mobile computing device, and the like.
  • node may mean a component within a network of a blockchain.
  • the node may be a special-purpose computer, a general-purpose computer, a supercomputer, a mainframe computer, a personal computer, a smartphone, a tablet PC. Etc., but is not limited thereto.
  • the term "electronic wallet” may refer to a means of storing a value in an electronic device in an electronic manner to enable a transaction online or offline without exchanging physical currency.
  • e-wallet is a kind of electronic payment system used in electronic commerce, it may mean a software that can store money value in the memory or virtual account of the electronic device and use it as a wallet while paying for e-commerce. have.
  • 1 is a conceptual diagram illustrating a method of trading cryptocurrency based on heterogeneous blockchain between terminals according to an embodiment.
  • the terminal 10 of the first user may execute the electronic wallet of the first user who manages the cryptocurrency according to the input of the first user.
  • the terminal 10 of the first user may perform a transaction of the cryptocurrency based on the transaction information used by the first user to transfer a predetermined cryptocurrency to the second user.
  • the first cryptocurrency may be traded based on the first blockchain.
  • the first blockchain transaction information of users' first cryptocurrencies is recorded and stored.
  • the second cryptocurrency can be traded based on the second blockchain.
  • transaction information of users' second cryptocurrencies is recorded and stored.
  • different cryptocurrencies can be traded based on different blockchains.
  • the first user may perform a transaction for exchanging the first cryptocurrency and the second cryptocurrency with the second user. That is, the first user and the second user may be a first transaction in which the first user transfers the predetermined first cryptocurrency to the second user, and the second user corresponds to the first user in the predetermined first cryptocurrency.
  • a second transaction can be agreed to transfer any second cryptocurrency.
  • the terminal 10 of the first user transfers the first cryptocurrency from the electronic wallet of the first user to the electronic wallet of the second user, and the nodes 20 on the network of the first blockchain to record the transfer history.
  • 20-2, 20-3, 20-4, and 20-5 may transmit the first transaction information to the first node 20.
  • the terminal 10 of the first user may add first condition information to the first transaction information to activate the transaction of the first cryptocurrency depending on the validity of the second transaction information in order to ensure the second transaction. Can be.
  • the terminal 10-2 of the second user transfers the second cryptocurrency from the electronic wallet of the second user to the electronic wallet of the first user, and the node on the network of the second blockchain to record the transfer history.
  • the second transaction information may be transmitted to the second node 21 among the fields 21, 21-2, 21-3, 21-4, and 21-5.
  • the terminal 10-2 of the second user receives second condition information, which is dependent on the validity of the first transaction information and activates the transaction of the second cryptocurrency, in order to secure the first transaction. You can add
  • FIGS. 2 and 13 illustrate a method of trading between a first cryptocurrency traded based on a first blockchain and a second cryptocurrency traded based on a second blockchain.
  • the terminal 10 may mean a terminal of the first user.
  • the terminal 10 may acquire first transaction information regarding a first transaction in which the first user transmits the first cryptocurrency to the second user. For example, the terminal 10 may receive the first transaction information from the terminal 10-2 of the second user. In addition, the terminal 10 may obtain second transaction information for a second transaction accompanying the first transaction.
  • the second transaction information may be information about a second transaction in which the first user receives a second cryptocurrency from the second user.
  • each of the first transaction information and the second transaction information includes the address of the electronic wallet of the receiver who will receive the predetermined cryptocurrency, the address of the sender's electronic wallet that transmits the predetermined cryptocurrency, the transfer amount of the predetermined cryptocurrency, the predetermined cryptocurrency It may include at least one piece of information due to the transfer of, but is not limited thereto.
  • the terminal 10 may determine whether the first transaction of the first cryptocurrency and the second transaction of the second cryptocurrency are suitable based on a predetermined exchange ratio between the first cryptocurrency and the second cryptocurrency. If the first transaction and the second transaction are not suitable, the terminal 10 determines the transfer amount of the first cryptocurrency or the transfer amount of the second cryptocurrency based on the predetermined exchange rate of the first cryptocurrency and the second cryptocurrency. It can be corrected automatically. In addition, the terminal 10 may correct the transfer amount of the first cryptocurrency or the transfer amount of the second cryptocurrency based on the user's input.
  • the terminal 10 may transmit the second transaction information for the second transaction accompanying the first transaction to the terminal 10-2 of the second user.
  • step S220 if the first transaction information satisfies an agreement condition between the first user and the second user, the terminal 10 depends on the validity of the second transaction information to activate the first transaction of the first cryptocurrency.
  • Condition information may be added to the first transaction information.
  • the first condition information is a condition for activating the first transaction according to the first transaction information recorded in the block connected to the first blockchain when the block in which the second transaction information is recorded is added to the second blockchain as a valid block. Information.
  • the first condition information if the block that transmits the second transaction information to the terminal 10-2 of the second user and records the second transaction information after a predetermined time elapses is not a valid block added to the second blockchain. This may be condition information for invalidating the first transaction.
  • the first condition information may be condition information for deactivating the first transaction until the block in which the second transaction information is recorded is added to the second blockchain as a valid block.
  • step S230 the terminal 10 may digitally sign the agreement condition on the first transaction information to which the first condition information is added and transmit the digital signature to a node on the network of the first blockchain.
  • the terminal 10 may calculate a first hash value by applying a hash function to the first transaction information to which the first condition information is added.
  • the terminal 10 may generate a first cipher text indicating a digital signature of the first transaction information by encrypting the first hash value using the private key of the first user and the private key of the second user.
  • the terminal 10 may transmit the first transaction information added with the first cipher text and the first condition information to a node on the network of the first blockchain.
  • the terminal 10 may transmit the first cryptocurrency from the electronic wallet of the first user to the electronic wallet of the second user according to the first transaction information.
  • the terminal 10 may transmit the public key of the first user required when the second user requests the payment of the first cryptocurrency to the terminal 10-2 of the second user.
  • the terminal 10 may receive the public key of the second user required when the first user requests the payment of the second cryptocurrency according to the second transaction information from the terminal 10-2 of the second user.
  • the terminal 10 When the terminal 10 receives a message indicating that verification of the first transaction is completed in the network of the first blockchain and verification of the second transaction in the network of the second blockchain, the terminal 10 receives the second message using the public key of the second user. Cryptocurrency can be paid.
  • FIG. 2 illustrates the exchange of different cryptocurrencies between two users
  • the contents of the present disclosure may also be applied when exchanging different cryptocurrencies between at least three users.
  • 3 is a diagram for describing a process of digitally signing transaction information added with condition information in each terminal and transmitting the digitally signed transaction information to a blockchain network.
  • the terminal 10-2 of the second user may transmit first transaction information requesting the transmission of the first cryptocurrency to the terminal 10 of the first user.
  • the first transaction information may be information about the “first transaction in which the first user transmits the first cryptocurrency 10 cache to the second user”.
  • the terminal 10-2 of the second user may digitally sign the first transaction information with the private key of the second user and transmit the first transaction information.
  • step S320 the terminal 10 of the first user confirms the first transaction information, encrypts the confirmed first transaction information, and then nodes 20, 20-2, 20-3, of the network of the first blockchain. 20-4, 20-5).
  • the terminal 10 of the first user may check whether the first transaction information satisfies the agreement condition between the first user and the second user.
  • the agreement condition may include a condition of a transaction for exchanging cryptocurrencies based on different blockchains between the first user and the second user.
  • the agreement condition may be a condition in which one cache of the first cryptocurrency is exchanged between the first cryptocurrency and the second cryptocurrency at a ratio of two caches of the second cryptocurrency.
  • the terminal 10 of the first user is dependent on the validity of the second transaction information to activate the first transaction of the first cryptocurrency.
  • Condition information may be added to the first transaction information.
  • the second transaction information is transaction information for a second transaction accompanying the first transaction, and may be information for the first user to receive a second cryptocurrency based on the second blockchain from the second user.
  • the first condition information is a block in which the second transaction information for the “second transaction in which the second user transmits the second cryptocurrency 20 cache to the first user” is a valid block, and is displayed in the second block chain.
  • the first information may include condition information for activating the "first transaction in which the first user transmits the first cryptocurrency 10 cache to the second user" recorded in the block connected to the first blockchain.
  • condition information the second transaction information for the "second transaction in which the second user transmits the second cryptocurrency 20 cache to the first user" is transmitted to the terminal 10-2 of the second user; If a block in which the second transaction information is recorded is not added to the second blockchain as a valid block even after a predetermined time has elapsed, condition information for invalidating the first transaction may be included.
  • the first condition information is when the block in which the second transaction information for the "second transaction in which the second user sends the second cryptocurrency 20 cache to the first user" is added to the second blockchain as a valid block. Until, it may include condition information for deactivating the first transaction.
  • the terminal 10 of the first user may calculate a first hash value by applying a hash function to the first transaction information to which the first condition information is added.
  • the first user terminal 10 may generate a first cipher text indicating a digital signature of the first transaction information by encrypting the first hash value using the private key of the first user and the private key of the second user. have.
  • the terminal 10 of the first user may transmit first transaction information including the first cipher text and the first condition information to a node on the network of the first blockchain.
  • the terminal 10 of the first user transmits second transaction information regarding “a second transaction in which the second user transmits the second cryptocurrency 20 cache to the first user”. 2) can be sent.
  • the first user terminal 10 performs the operation of step S330 after the operation of step S320, the operation of step S320 may be performed after the operation of step S330.
  • step S340 the terminal 10-2 of the second user checks the second transaction information, encrypts the confirmed second transaction information, and nodes 21, 21-2, 21-of the network of the second blockchain. 3, 21-4, 21-5).
  • the terminal 10-2 of the second user may determine whether the second transaction information satisfies an agreement condition between the first user and the second user.
  • the terminal 10-2 of the second user is dependent on the validity of the first transaction information to activate the second transaction of the second cryptocurrency.
  • the second condition information may be added to the second transaction information.
  • the first transaction information is transaction information for the first transaction accompanying the second transaction, and may be information for the second user to receive a first cryptocurrency based on the first blockchain from the first user.
  • the second condition information may be added to the first blockchain if a block that records information about the “first transaction in which the first user sends the first cryptocurrency 10 cache to the second user” is added to the first blockchain as a valid block. It may include condition information for activating the "second transaction in which the second user transmits the second cryptocurrency 20 cache to the first user" recorded in the block connected to the two blockchains.
  • the second condition information is that the first transaction information for the "first transaction in which the first user transmits the first cryptocurrency 10 cache to the second user" is transmitted to the terminal 10 of the first user, and for a predetermined time. After the elapsed time, if the block in which the first transaction information is recorded is not added to the second blockchain as a valid block, it may include condition information for invalidating the second transaction.
  • the second condition information is when the block in which the first transaction information for the “first transaction in which the first user sends the first cryptocurrency 10 cache to the second user” is added to the first blockchain as a valid block. Until, may include condition information for deactivating the second transaction.
  • the terminal 10-2 of the second user may calculate a second hash value by applying a hash function to the second transaction information to which the second condition information is added.
  • the terminal 10-2 of the second user encrypts the second hash value by using the private key of the first user and the private key of the second user, thereby generating a second ciphertext indicating the digital signature of the second transaction information. can do.
  • the terminal 10-2 of the second user may transmit second transaction information including the second cipher text and the second condition information to a node on the network of the second blockchain.
  • FIG. 4 is a diagram for describing a process of transmitting digitally signed transaction information from a terminal to a node on a network of a blockchain, according to an exemplary embodiment.
  • the terminal 10 of the first user may have the transaction information "the first user transfers the 3,500,000 cache of the first cryptocurrency to the second user" and "the second user transfers the second cryptocurrency 7,000,000 cache to the first user".
  • the first transaction information 410 including the first condition information may be encrypted, and the encrypted transaction information 440 may be transmitted to the first node 20 on the network of the blockchain.
  • the terminal 10 of the first user includes information about transactions in which the first user transfers 3,500,000 cash of the first cryptocurrency to the second user, and the second user sends the second cryptocurrency 7,000,000 cache to the first user.
  • the terminal 10 of the first user sequentially encrypts the hash value “8F23V230” 420 with the private key 425 of the first user and the private key 426 of the second user, so that the first transaction information 410 may be encrypted.
  • a first cipher text “%! ## (YSEDK $ # 9 $ KPXL &%”) 430 representing the digital signature may be generated.
  • the terminal 10 of the first user may generate a first cipher text “%! ## (YSEDK $).
  • Transaction information 440 obtained by adding # 9 $ KPXL &% "430 to the first transaction information 410 may be transmitted to the first node 20.
  • 5 is a diagram for describing a process of correcting a transfer amount of a predetermined cryptocurrency according to an exchange rate between cryptocurrencies according to an embodiment.
  • the terminal of the first user may display a user interface for managing the cryptographic currency and account information of the first user according to the execution of the electronic wallet.
  • the terminal 10 of the first user may perform a transaction for exchanging a first cryptocurrency traded based on the first blockchain and a second cryptocurrency traded based on the second blockchain.
  • the first user terminal 10 may display the information 511 according to the transaction of the first cryptocurrency and the information 512 according to the transaction of the second cryptocurrency.
  • the terminal 10 of the first user may display a second item in the electronic wallet of the first user.
  • Information used to transfer the first cryptocurrency to the user's electronic wallet and the balance information of the first cryptocurrency to be changed by transferring the first cryptocurrency can be displayed.
  • the terminal 10 of the first user may display information about a 3,500,000 cache for the transfer amount of the first cryptocurrency and a 1,999,990 cache for the balance of the first cryptocurrency after the transfer.
  • the terminal 10 of the first user provides history information of a recent transaction of the cryptocurrency, contact information stored in the terminal 10 of the first user, and information of the electronic wallet stored in the terminal 10 of the first user. Icon can be displayed.
  • the terminal 10 of the first user may receive information from the electronic wallet of the second user.
  • Information of cryptocurrency can be displayed.
  • the terminal 10 of the first user may display the amount of the second cryptocurrency based on the second transaction information received from the terminal 10-2 of the second user.
  • the terminal 10 of the first user may determine whether the first transaction of the first cryptocurrency and the second transaction of the second cryptocurrency are suitable based on a predetermined exchange ratio of the first cryptocurrency and the second cryptocurrency.
  • the predetermined exchange ratio of the first cryptocurrency and the second cryptocurrency may be a ratio exchanged at 1: 2.
  • the terminal 10 of the first user is the first cryptocurrency of the first cryptocurrency. It may be determined that the transaction and the second transaction of the second cryptocurrency are inappropriate.
  • the terminal 10 of the first user exchanges a transfer amount or a second cryptocurrency of the first cryptocurrency according to an exchange ratio between the first cryptocurrency and the second cryptocurrency exchanged 1: 2.
  • the amount of the transfer can be automatically corrected.
  • the terminal 10 of the first user may correct the exchange amount of the second cryptocurrency to 7,000,000 cache.
  • the terminal 10 of the first user may correct the exchange amount of the second cryptocurrency to 7,000,000 cache based on the input of the first user.
  • FIG. 6 is a flowchart illustrating a method of operating a node on a network of a blockchain to trade cryptocurrencies based on heterogeneous blockchains between terminals, according to an embodiment.
  • step S610 the first node 20 determines the first transaction information for the first transaction in which the first user transmits the first cryptocurrency to the second user, and for the second cryptocurrency based on the second blockchain.
  • the first condition information for activating the first transaction may be received from the terminal 10 of the first user depending on the validity of the second transaction information.
  • the first node 20 includes a first ciphertext and a first conditional text in which a digital signature is proved to prove agreement terms with the first transaction information to which the first condition information is added from the terminal 10 of the first user.
  • the added first transaction information may be received.
  • the agreement condition may include a condition of a transaction for exchanging cryptocurrencies based on different blockchains between the first user and the second user.
  • the first node 20 may perform validation of the first transaction information. If the first transaction information is valid, the first node 20 may transmit the first transaction information to a second node on the network of the first blockchain. The first node 20 may add the first transaction information to the candidate block.
  • the first node 20 may perform proof of work on the candidate block to add the candidate block to the first blockchain as a valid first block.
  • the first node 20 may activate the first transaction.
  • the first condition information is a condition for activating the first transaction according to the first transaction information recorded in the block connected to the first blockchain when the block in which the second transaction information is recorded is added to the second blockchain as a valid block. Information.
  • the first node 20 refers to the hash value of the second transaction information based on the second blockchain within the first transaction information recorded in the first block of the first blockchain, so that the first condition information is satisfied. Can be determined. As a result of referring to the hash value of the second transaction information, if the second transaction information is not recorded in the second blockchain, the first node 20 may deactivate the first transaction.
  • FIG. 7 is a diagram illustrating a process of propagating a transaction of a valid cryptocurrency on a blockchain network to nodes on a blockchain network and recording the blockchain in a blockchain according to an embodiment.
  • the terminal 10 of the first user may execute the electronic wallet of the first user.
  • the terminal 10 of the first user includes transaction information in which the first user transfers the 3,500,000 cache of the first cryptocurrency to the second user, and first condition information in which the second user transfers the second cryptocurrency 7,000,000 cache to the first user. Based on the first transaction information including a, the cryptocurrency 3,500,000 cache can be transferred to the electronic wallet of the second user.
  • the terminal 10 of the first user may encrypt first transaction information including the first condition information, and transmit the encrypted first transaction information to the first node 20 on the network of the blockchain. An operation of the first user terminal 10 encrypting the first transaction information and transmitting the first transaction information to the first node 20 has been described with reference to FIG. 4.
  • the first node 20 may decrypt the encrypted first transaction information, and verify 710 whether the first transaction information is valid based on the decrypted result. An operation of verifying the validity of the first transaction information by the first node 20 will be described in detail with reference to FIG. 8.
  • the first node 20 may discard the first transaction information.
  • the first node 20 may transmit the first transaction information to the second node 20-2 on the network of the blockchain.
  • the first node 20 transfers the transaction information in which the first user transfers the cryptocurrency 3,500,000 cache to the second user and the second user transfers the second cryptocurrency 7,000,000 cache to the candidate block 720.
  • First transaction information 721 including the first condition information may be recorded.
  • the first node 20 may generate a valid block by performing proof of work on the candidate block 720.
  • the second node 20-2 adds the first transaction information to the candidate block and performs proof of work on the candidate block.
  • a valid first block can be generated.
  • the generated first block includes transaction information in which the first user transfers a cryptocurrency 3,500,000 cache to the second user and first condition information in which the second user transfers the second cryptocurrency 7,000,000 cache to the first user.
  • Transaction information 721 may be included.
  • the third node 20-3 and the fourth node 20-4 may operate similarly to the second node 20-2.
  • the first node 20 may calculate the root of the Merkle tree for predetermined transaction information.
  • the first node 20 may generate a hash reference that points to the previous block header in view of the block to be added to the blockchain.
  • the first node 20 may acquire a difficulty level required for proof of work or constraint of a block to be added to the blockchain.
  • the first node 20 may check whether the value of the block hash generated by applying the hash function to the root of the Merkle tree, a hash reference indicating the previous block header, the difficulty, the data and the nonce of the timestamp satisfies the constraint. .
  • the first node 20 may perform a proof of operation on the candidate block 720 by obtaining a nonce value that satisfies the constraint while increasing the nonce by 0 to 1.
  • the first node 20 may add the candidate block 720 to the blockchain as a valid block.
  • the first node 20 may transmit a valid block to other nodes 20-2, 20-3, 20-4, etc. on the network of the blockchain.
  • Each node (20-2, 20-3, 20-4, etc.) on the network of the blockchain performs verification on a valid block received by the first node 20, so that each node 20-2, 20 -3, 20-4, etc.) can add a valid block to the blockchain.
  • FIG. 8 is a diagram for describing a process of verifying validity of transaction information including condition information at a node on a network of a blockchain, according to an exemplary embodiment.
  • the first node 20 may receive the first transaction information 810 from the terminal 10 of the first user.
  • the first transaction information 810 includes "transaction information in which the first user transfers the first cryptocurrency 3,500,000 cache to the second user" and "the second user transfers the second cryptocurrency 7,000,000 cache to the first user".
  • 1 may include transaction information 811 including the condition information and the first cipher text “%! ## (YSEDK $ # 9 $ KPXL &%”) 812.
  • the first node 20 may include transaction information 811.
  • the hash function may be applied to generate a hash value “8F23V230” 821 corresponding to the transaction information 811.
  • the first node 20 may disclose the public key 825 of the first user and the public of the second user.
  • the key 826 may be used to decrypt the first cipher text "%! ## (YSEDK $ # 9 $ KPXL &%" 1412) to generate the hash value "8F23V230" 822.
  • the hash value "8F23V230" Since 821 and the hash value "8F23V230" 822 are the same, the first node 20 may determine that the transaction information 810 received from the terminal 10 of the first user is valid.
  • the first node 20 may receive the transaction information 830 from the terminal 10 of the first user.
  • Transaction information 830 includes the transaction information "the first user transfers the first cryptocurrency 2,500,000 cache to the second user" and the first condition "the second user transfers the second cryptocurrency 7,000,000 cache to the first user".
  • Transaction information 830 including the information and the first cipher text "%!## (YSEDK $ # 9 $ KPXL &% ") 812.
  • the first node 20 hashes the transaction information 831.
  • the function may be applied to generate a hash value "6F49X298" 841 corresponding to the transaction information 831.
  • the first node 20 may generate the public key 825 of the first user and the public key (2) of the second user.
  • the first node 20 may determine that the transaction information 830 received from the terminal 10 of the first user is not valid.
  • FIG. 9 is a diagram for describing a process of activating a transaction by determining whether condition information is satisfied in each heterogeneous blockchain, according to an exemplary embodiment.
  • Each of the nodes 20, 20-2, 20-3, 20-4, and 20-5 in the network of the first blockchain may verify transaction information received from each of the plurality of terminals.
  • the first node 20 may use the digital signatures and proof of work to receive the transaction information "the first user transferred the first cryptocurrency 3,500,000 cache to the second user" and "the second user
  • the first transaction information may be validated based on a hash value included in the first transaction information including the first condition information for transferring the second cryptocurrency 7,000,000 cache to the first user.
  • the first node 20 may perform a proof of work to generate a first block 910 that records first transaction information validated.
  • the first node 20 adds the first block 910 to the first blockchain, and the first block 910 is valid with information validating the transaction information recorded in the first block 910.
  • each of the nodes 20-2, 20-3, 20-4, and 20-5 in the network of the first blockchain may verify the validity of the first block 910 added to the first blockchain. . If the first block 910 is valid, the nodes 20-2, 20-3, 20-4, and 20-5 are valid. -5) A first block 910 can be added to each first blockchain. On the other hand, if the first block 910 is not valid, each of the nodes 20-2, 20-3, 20-4, and 20-5 may discard the first block 910.
  • the first node 20 may determine whether the first condition information in the first transaction information recorded in the first block 910 added to the first blockchain is satisfied.
  • the first node 20 may refer to a hash value of the second transaction information based on the second blockchain included in the first condition information.
  • the first node 20 may activate the first transaction according to the first transaction information.
  • the first node 20 may deactivate the first transaction according to the first transaction information.
  • Each of the nodes 21, 21-2, 21-3, 21-4, and 21-5 in the network of the second blockchain may verify transaction information received from each of the plurality of terminals.
  • the second node 21 may receive the transaction information received using digital signatures and proof of work, "the second user transferred the second cryptocurrency 7,000,000 cache to the first user," and the "first user
  • the second transaction information may be validated based on the hash value included in the second transaction information including the second condition information for transferring the first cryptocurrency 3,500,000 cache to the second user.
  • the second node 21 may perform a proof of work to generate a second block 920 that records valid second transaction information.
  • the second node 21 adds the second block 920 to the second blockchain, and the second block 920 is valid along with information verifying the validity of the transaction information recorded in the second block 920. Can be disclosed by sending it to the network of the second blockchain. Then, each of the nodes 21-2, 21-3, 21-4, and 21-5 in the network of the second blockchain may verify the validity of the second block 920 added to the second blockchain. . As a result of the verification, if the second block 920 is valid, each of the nodes 21, 21-2, 21-3, 21-4, and 21-5 may represent the nodes 21, 21-2, 21-3, and 21. -4, 21-5) A second block 920 can be added to each second blockchain. On the other hand, if the second block 920 is not valid, each of the nodes 21, 21-2, 21-3, 21-4, and 21-5 may discard the second block 920.
  • the second node 21 may determine whether the second condition information in the second transaction information recorded in the second block 920 added to the second blockchain is satisfied.
  • the second node 21 may refer to a hash value of the first transaction information based on the first blockchain included in the second condition information.
  • the second node 21 may activate the second transaction according to the second transaction information.
  • the second node 21 may deactivate the second transaction according to the second transaction information.
  • FIG. 10 is a block diagram illustrating a structure of a block and a block chain according to an embodiment.
  • a blockchain may be constructed by connecting blocks in which valid transaction information is recorded. That is, the data structure of the blockchain may be a predetermined data structure composed of units in which blocks in which transaction information is recorded are arranged in order.
  • the data structure of the blockchain is a data structure in which each block header is linked in a chain form with reference to the previous block header, and a data structure of the Merkle tree in which a hash reference indicating data of the transaction information and data of the transaction information are connected in a tree form. Can be configured.
  • the block may include a block hash, block header, transaction information, and the like.
  • the block header may include the version of the current program, the hash value of the previous block header, the root of the Merkle tree, the timestamp, the difficulty, and the nonce.
  • the block hash may be a hash value of a hash function applied by using information of a version of a current program, a hash value of a previous block header, a root of a Merkle tree, a time stamp, a difficulty level, and a nonce. That is, the value of the block hash may be a value that hashes the block header, not a value that hashes the entire block.
  • the hash value of the previous block header may uniquely identify each block header and may be used to refer to the previous block header. If each block header refers to the previous block header, the order of the individual block headers and blocks may be maintained. Referring to FIG. 15, since the first block 1010 is the first block and there is no previous block, there is no reference to the previous block header. Thus, the hash value of the previous block header of the first block 1010 is zero. In addition, since the second block 1020 includes the first block 1010 that is the previous block, the second block header has a hash value indicating the first block header. Similarly, since the third block 1030 has the second block 1020 which is the previous block, the third block header has a hash value indicating the second block header.
  • the Merkle tree may mean a structure in which a hash reference and data of transaction information are connected in a tree form.
  • the hash reference may refer to data of transaction information using an encrypted hash value.
  • the encrypted hash value is a unique value of the data, different data do not have the same hash value.
  • the process of generating the Merkle tree includes a hash reference (for example, each of the data of the transaction information (for example, first transaction information, second transaction information, third transaction information, and fourth transaction information)).
  • a hash reference for example, each of the data of the transaction information (for example, first transaction information, second transaction information, third transaction information, and fourth transaction information)
  • a first hash reference, a second hash reference, a third hash reference, and a fourth hash reference may be generated.
  • a hash reference that points to a pair of hash references e.g., a 12th hash reference pointing to a first hash reference and a second hash reference, a 34th hash reference pointing to a third hash reference, and a fourth hash reference).
  • the operation of generating a hash reference that points to the pair of hash references may be repeated to generate a single hash reference (eg, a twelfth hash reference and a 1234 hash reference to the thirty-fourth hash reference).
  • a single hash reference eg, a twelfth hash reference and a 1234 hash reference to the thirty-fourth hash reference.
  • the Merkle tree may be a tree-type structure starting from a single hash reference and linked to data of each transaction information.
  • the root of the Merkle tree may mean a single generated hash reference.
  • the time staff may mean the time when the work started to prove the work.
  • the difficulty may refer to constraints in proof of work or hash puzzles.
  • the nonce may refer to a value in which the value of the block hash is adjusted to satisfy the constraint for proof of work.
  • FIG. 11 is a diagram for describing a method of obtaining a proof of work and a nonce of a block at a node on a network of a blockchain, according to an exemplary embodiment.
  • Nodes on the network of the blockchain can verify the validity of the transaction information and the block header, so that a valid block composed of only the valid transaction information data and the block header can be connected to the blockchain.
  • Each node may perform proof of work on the block to generate a valid block.
  • the proof of work may mean that the unique hash puzzle of the block is solved.
  • the element 1110 for proof of work may include given data that should not be changed, freely changeable data, a hash function to apply, and constraints given to hash values.
  • the given data that should not be changed may include data for version information 1111, hash value 1112 of the previous block header, root 1113 of the Merkle tree, timestamps 1114, and difficulty 1115. Can be.
  • the freely changeable data may be nonce 1116.
  • the constraint given to the hash value may be difficulty 1115.
  • proof-of-work includes data for version information 1111, hash value 1112 of the previous block header, root 1113 of the Merkle tree, timestamp 1114, and difficulty 1115.
  • the block hash 1120 generated by applying the hash function to the nonce 1116 may be performed by satisfying the constraint.
  • the node infers the nonce 1116 to prove the work on the block, and uses the estimated nonce 1116 as version information 1111, the hash value 1112 of the previous block header, and the root 1113 of the Merkle tree. ) May be combined with the data for timestamp 1114 and difficulty 1115 to generate a value of block hash 1120 by applying a hash function.
  • the node may check whether the value of the generated block hash 1120 satisfies the constraint. If the value of the block hash 1120 satisfies the constraint, the proof of work is completed. However, if the value of the block hash 1120 does not satisfy the constraint, the node may repeat the same process after guessing another nonce. .
  • Table 1130 of FIG. 11 illustrates a hash value generated by applying a nonce, data to hash, and a nonce and data to hash to a hash function.
  • the constraint may be a condition in which the first three digits of the hash value are zero.
  • the node may perform a process for proof of work while increasing the nonce by 0 to 1.
  • the hash value (000EIXOKXP19) generated using the nonce 53 satisfies the constraint.
  • the node can complete Proof of Work with 54 trials and errors from nonce 0 to nonce 53.
  • the difficulty may refer to constraints in proof of work or hash puzzles.
  • the degree of difficulty may be expressed as a natural number, and the number of degrees of difficulty may indicate the number of digits to be filled with zeros from the beginning of the hash value. Therefore, as the difficulty increases, the first digit to be filled with zeros increases.
  • the proof-of-work or hash puzzle is more complex, and more computational resources and time may be required to find the nonce that meets the constraints.
  • the proof-of-work may mean calculating a nonce value to obtain a block hash value and generating a valid block having the obtained block hash as an identifier.
  • a node that has generated a valid block may be rewarded. Rewards can be determined under the agreement of the nodes on the network of the blockchain.
  • FIG. 12 is a block diagram illustrating a configuration of a terminal according to an embodiment.
  • the terminal 1200 illustrated in FIG. 12 may include a communication device 1210, a user interface device 1220, a memory 1230, and a processor 1240. However, not all illustrated components are essential components. The terminal 1200 may be implemented by more components than the illustrated components, and the terminal 1200 may be implemented by fewer components. Hereinafter, the components will be described. The terminal 1200 illustrated in FIG. 12 may correspond to the terminal 10 described with reference to FIGS. 1 to 11.
  • the communication device 1210 may communicate with an external device.
  • the communication devices 1210 and 2110 may be connected to a network by wire or wirelessly to communicate with an external device.
  • the external device may be a server, a smartphone, a tablet, a PC, a computing device, or the like.
  • the communication device 1210 may include a communication module supporting one of various wired and wireless communication methods.
  • the communication module may be in the form of a chipset, or may be a sticker / barcode (e.g. a sticker including an NFC tag) including information necessary for communication.
  • the communication module may be a short range communication module or a wired communication module.
  • the communication device 1210 may include a wireless LAN, a wireless fidelity (Wi-Fi), a Wi-Fi Direct (WFD), a Bluetooth, a Bluetooth Low Energy (BLE), a wired Lan, and an NFC ( It may support at least one of Near Field Communication, Zigbee Infrared Data Association (IrDA), 3G, 4G, and 5G.
  • Wi-Fi wireless fidelity
  • Wi-Fi Direct Wi-Fi Direct
  • BLE Bluetooth Low Energy
  • NFC It may support at least one of Near Field Communication, Zigbee Infrared Data Association (IrDA), 3G, 4G, and 5G.
  • IrDA Zigbee Infrared Data Association
  • 3G, 4G, and 5G 3G, 4G, and 5G.
  • the communication device 1210 may receive first transaction information for a first transaction in which a first user transmits a first cryptocurrency to a second user.
  • the communication device 1210 may transmit second transaction information about the second transaction accompanying the first transaction to the terminal of the second user.
  • the second transaction information may be information about a second transaction in which the first user receives a second cryptocurrency from the second user.
  • each of the first transaction information and the second transaction information includes the address of the electronic wallet of the receiver who will receive the predetermined cryptocurrency, the address of the sender's electronic wallet that transmits the predetermined cryptocurrency, the transfer amount of the predetermined cryptocurrency, the predetermined cryptocurrency It may include at least one piece of information due to the transfer of, but is not limited thereto.
  • the user interface device 1220 may refer to a device that receives data from a user to control the terminal.
  • the processor 1240 may control the UI device 1220 to generate and output a UI screen for receiving a predetermined command or data from the user.
  • the user interface device 1220 may include an input unit for receiving an input for controlling the operation of the terminal and an output unit for displaying information such as a result according to the operation of the terminal or the state of the terminal.
  • the user interface device 1220 may include an operation panel for receiving a user input, a display panel for displaying a screen, and the like.
  • the input unit may include, for example, devices capable of receiving various types of user input such as a keyboard, a physical button, a touch screen, a camera or a microphone.
  • the output unit may include, for example, a display panel or a speaker.
  • the present invention is not limited thereto and the user interface device 1220 may include a device supporting various input / output.
  • the user interface device 1220 may display an execution screen of the electronic wallet of the first user.
  • the user interface device 1220 may display information of cryptocurrency held in the electronic wallet of the first user.
  • the user interface device 1220 may display a screen executed when the first user trades a cryptocurrency with another user.
  • the memory 1230 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.). Random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM), It may include a storage medium of at least one type of magnetic disk, optical disk.
  • the memory 1230 may store at least one program for executing in the computer a method of controlling an operation of the electronic wallet executed in the terminal. At least one program stored in the memory 1230 may be classified into a plurality of modules according to a function.
  • the processor 1240 controls the overall operation of the terminal, and may include at least one processor such as a CPU.
  • the processor 1240 may control other components included in the terminal to perform an operation corresponding to the user input received through the user interface device 1220.
  • the processor 1240 may include at least one specialized processor corresponding to each function or may be a processor integrated into one.
  • the processor 1240 may execute a program stored in the memory 1230, read data or a file stored in the memory 1230, or store a new file in the memory 1230. In addition, the processor 1240 may execute instructions stored in the memory 1230.
  • the processor 1240 if the first transaction information satisfies an agreement condition between the first user and the second user, the processor 1240 is dependent on the validity of the second transaction information to activate the first transaction of the first cryptocurrency.
  • the first condition information may be added to the first transaction information.
  • the first condition information is a condition for activating the first transaction according to the first transaction information recorded in the block connected to the first blockchain when the block in which the second transaction information is recorded is added to the second blockchain as a valid block. Information.
  • the first condition information if the block which transmits the second transaction information to the terminal of the second user and records the second transaction information after a predetermined time has not been added to the second blockchain as a valid block, the first transaction is executed. It may be condition information to invalidate.
  • the first condition information may be condition information for deactivating the first transaction until the block in which the second transaction information is recorded is added to the second blockchain as a valid block.
  • the processor 1240 may digitally sign the first transaction information to which the first transaction information is added and verify the agreement condition, and transmit the same to the node on the network of the first blockchain through the communication device 1210. have.
  • the processor 1240 may calculate a first hash value by applying a hash function to the first transaction information to which the first condition information is added.
  • the processor 1240 may generate a first cipher text indicating a digital signature of the first transaction information by encrypting the first hash value using the private key of the first user and the private key of the second user.
  • the processor 1240 may transmit the first transaction information including the first cipher text and the first condition information to the node on the network of the first blockchain through the communication device 1210.
  • the processor 1240 may control the first cryptocurrency to be transmitted from the electronic wallet of the first user to the electronic wallet of the second user according to the first transaction information.
  • the processor 1240 may transmit the public key of the first user required when the second user requests the payment of the first cryptocurrency to the terminal of the second user through the communication device 1210.
  • the processor 1240 may receive from the terminal of the second user through the communication device 1210 the public key of the second user required when the first user requests the payment of the second cryptocurrency according to the second transaction information. have.
  • the second cryptocurrency can be paid using the public key.
  • FIG. 13 is a block diagram illustrating a configuration of a node on a network of a blockchain according to an embodiment.
  • the node 1300 illustrated in FIG. 13 may include a communication device 1310, a memory 1320, and a processor 1330. However, not all illustrated components are essential components. The node 1300 may be implemented by more components than the illustrated component, and the node 1300 may be implemented by fewer components. Hereinafter, the components will be described. The node 1300 illustrated in FIG. 13 may correspond to the node 20 described with reference to FIGS. 1 to 11.
  • the communication device 1310 may communicate with an external device.
  • the communication device 1310 may be connected to a network by wire or wirelessly to communicate with an external device.
  • the external device may be a server, a smartphone, a tablet, a PC, a computing device, or the like.
  • the communication device 1310 may include a communication module supporting one of various wired and wireless communication methods.
  • the communication module may be in the form of a chipset, or may be a sticker / barcode (e.g. a sticker including an NFC tag) including information necessary for communication.
  • the communication module may be a short range communication module or a wired communication module.
  • the communication device 1310 may include first transaction information for a first transaction in which a first user transmits a first cryptocurrency to a second user, and second transaction information for a second cryptocurrency based on a second blockchain.
  • the first condition information for activating the first transaction may be received from the terminal of the first user depending on the validity.
  • the communication device 1310 may include a first cryptogram in which a digital signature is performed to prove agreement terms with first transaction information to which first condition information is added, and first transaction information to which first condition information is added. Can be received.
  • the memory 1320 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.). Random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM), It may include a storage medium of at least one type of magnetic disk, optical disk.
  • the memory 1320 may store at least one program for executing, in a computer, a method of operating a node on a network of a first blockchain that distributes and manages a ledger that records a transaction for a first cryptocurrency. At least one program stored in the memory 1320 may be classified into a plurality of modules according to a function.
  • the processor 1330 controls the overall operation of the electronic device and may include at least one processor such as a CPU.
  • the processor 1330 may include at least one specialized processor corresponding to each function or may be a processor integrated into one.
  • the processor 1330 may execute a program stored in the memory 1320, read data or a file stored in the memory 1320, or store a new file in the memory 1320. In addition, the processor 1330 may execute instructions stored in the memory 1320.
  • the processor 1330 may perform validation of the first transaction information. If the first transaction information is valid, the processor 1330 may transmit the first transaction information to the second node on the network of the first blockchain through the communication device 1310. The processor 1330 may add the first transaction information to the candidate block.
  • the processor 1330 may perform proof of work on the candidate block to add the candidate block to the first blockchain as a valid first block.
  • the processor 1330 may activate the first transaction.
  • the first condition information is a condition for activating the first transaction according to the first transaction information recorded in the block connected to the first blockchain when the block in which the second transaction information is recorded is added to the second blockchain as a valid block. Information.
  • the processor 1330 may refer to the hash value of the second transaction information based on the second blockchain within the first transaction information recorded in the first block of the first blockchain, and thus may include the first transaction information. It may be determined whether the condition information is satisfied. As a result of referring to the hash value of the second transaction information, if the second transaction information is recorded in the second blockchain, the processor 1330 may activate the first transaction. If the second transaction information is not recorded in the second blockchain, the processor 1330 may deactivate the first transaction.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
  • ALUs arithmetic logic units
  • FPGAs field programmable gate arrays
  • PLU programmable logic unit
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • a processing device may be described as one being used, but a person skilled in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as parallel processors.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process independently or collectively. You can command the device.
  • Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
  • the software may be distributed over networked computer systems so that they are stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable recording media.
  • the method according to the embodiment can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable recording medium.
  • the computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Landscapes

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

Abstract

제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐 간의 거래 방법에 있어서, 제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하는 단계; 상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건을 만족하면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하는 단계; 및 상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함할 수 있다.

Description

서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
블록체인에 기반한 암호화폐의 거래 서비스를 제공하는 방법 및 장치에 관한 것이다.
최근 다양한 형태의 암호체계를 이용한 암호화폐가 속속 등장하면서 관심을 끌고 있다. 2009년 가장 먼저 생기고 규모도 최대인 비트 코인(bit coin) 외에도 라이트 코인(lite coin), 피어 코인(peer coin), 네임 코인(name coin) 등이 있다. 2009년 1월 사토시 나카모토라는 필명의 프로그래머가 개발한 비트 코인은 실제 생활에서 쓰이는 화폐가 아니라, 온라인 거래상에서 쓰이는 가상화폐이다. 비트 코인은 2008년 사토시 나카모토라는 정체불명의 인물이 각국의 중앙은행이 화폐 발행을 독점하고 자의적인 통화정책을 펴는 것에 대한 반발로 고안해 낸 것으로 알려져 있다. 컴퓨터가 제시하는 매우 난해한 수학 문제를 풀면 그 대가로 비트 코인을 지급하는 작동방식으로, MIT 라이선스를 적용해 오픈 소스로 공개했다. 컴퓨터 운영체제(OS)인 리눅스처럼 비트 코인 역시 프로그래밍 설계도가 공개되어 있어서 개발자라면 누구나 프로그래밍 업그레이드에 참여할 수 있다.
다양한 암호화폐가 등장하면서, 서로 다른 종류의 암호화폐를 효율적으로 거래하기 위해 필요한 기술들이 요구되고 있다.
당사자들 간의 서로 다른 종류의 암호화폐들을 교환하는 거래시에, 거래의 안정성 및 효율성을 높이고자 한다.
제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐 간의 거래 방법을 제공한다. 상기 거래 방법은, 제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하는 단계; 상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건을 만족하면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하는 단계; 및 상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함할 수 있다.
암호화폐를 거래하는 당사자들 사이에 제3자(예를 들면, 거래소 등)가 없어도, 당사자들 간의 암호화폐의 거래가 효율적으로 수행될 수 있다.
또한, 서로 다른 종류의 암호화폐들을 교환하는 거래시, 제3자의 중계없이 거래가 이루짐으로써, 거래의 안정성 및 효율성을 높일 수 있다.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일실시예에 따라, 단말들 간에 이종 블록체인에 기반하는 암호화폐 를 거래 방법을 설명하기 위한 개념도이다.
도 2는 일실시예에 따라, 단말에서 이종 블록체인에 기반하는 암호화폐 를 거래 방법을 설명하기 위한 흐름도이다.
도 3은 일실시예에 따라, 각 단말에서 조건 정보가 추가된 거래 정보를 디지털 서명하여 블록체인의 네트워크로 전송하는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라, 단말에서 디지털 서명된 거래 정보를 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.
도 5는 일실시예에 따라, 암호화폐들 간의 교환 비율에 따라, 소정의 암호화폐의 이체 금액을 보정하는 과정을 설명하기 위한 도면이다.
도 6은 일실시예에 따라, 단말들 간에 이종 블록체인에 기반하는 암호화폐들을 거래하기 위해, 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.
도 7은 일실시예에 따라, 블록체인의 네트워크 상에서 유효한 암호화폐의 거래를 블록체인의 네트워크 상의 노드들로 전파하고, 블록체인에 기록하는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 조건 정보를 포함하는 거래 정보의 유효성을 검증하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따라, 이종 블록체인 각각에서 조건 정보가 만족되었는지를 판단하여 거래를 활성화 시키는 과정을 설명하기 위한 도면이다.
도 10은 일실시예에 따라, 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.
도 11은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 블록의 작업 증명 및 난스를 구하는 방법을 설명하기 위한 도면이다.
도 12는 일실시예에 따른 단말의 구성을 도시한 블록도이다.
도 13은 일실시예에 따른 블록체인의 네트워크 상의 노드의 구성을 도시한 블록도이다.
일측에 따르면, 제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐 간의 거래 방법에 있어서, 제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하는 단계; 상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건을 만족하면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하는 단계; 및 상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함하는, 방법이 제공된다.
다른 일측에 따르면, 제1 블록체인의 네트워크 상의 제1 노드의 동작 방법에 있어서, 제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 제2 블록체인에 기반하는 제2 암호화폐에 대한 제2 거래 정보의 유효성에 종속하여 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 사용자의 단말로부터 수신하는 단계; 상기 제1 거래 정보의 유효성 검증에 따라 상기 제1 거래 정보가 유효하면, 상기 제1 거래 정보를 상기 제1 블록체인의 네트워크 상의 제2 노드로 전송하고, 상기 제1 거래 정보를 후보 블록에 추가하는 단계; 및 상기 후보 블록에 대한 작업 증명을 수행하여, 상기 제1 블록체인에 상기 후보 블록을 유효한 제1 블록으로 추가하는 단계; 상기 제1 조건 정보가 만족되면, 상기 제1 거래를 활성화시키는 단계를 포함하는, 방법이 제공된다.
또 다른 일측에 따르면, 통신 장치; 프로세서; 사용자 인터페이스 장치; 및 상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써, 제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하고, 상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건에 만족되면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하고, 상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 상기 통신 장치를 통해 전송하는, 단말이 제공된다.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서, "블록체인"은 무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들이 거래 정보를 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장(ledger)의 분산 P2P (Peer to Peer)시스템을 의미할 수 있다. 여기서, 분산 P2P 시스템은 분산 시스템의 특수한 형태일 수 있다. 또한, P2P 시스템은 중앙 노드의 조정 없이 네크워크의 모든 노드들이 서로에게 자원(처리 능력, 저장 공간, 데이터 또는 네트워크 대역폭 등)을 제공할 수 있다. 또한, "블록체인"은 거래 정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 네트워크 내의 노드들이 공동으로 기록하고 관리하는 분산원장(distributed ledger) 기술을 의미할 수 있다.
본 명세서에서, "암호화폐"는 암호화 방법을 사용하여 교환수단으로 가능하도록 고안된 디지털 화폐를 의미할 수 있다. 또한, "암호화폐"는 암호화 방법을 사용하여 거래의 안전을 확보하고, 추가적 단위의 생성을 통제하며, 자산의 이전을 인증할 수 있다.
본 명세서에서, "해시 함수"는 어떤 형태의 데이터든 입력 데이터의 길이와 상관없이 고정된 길이의 숫자로 변환하는 함수를 의미할 수 있다. 해시 함수는 입력 데이터를 구성하는 비트와 바이트를 이용하여 해시값을 산출할 수 있다.
본 명세서에서, "단말"은 스마트폰, 태블릿 PC, PC, TV, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 또는 비모바일 컴퓨팅 장치 등일 수 있으나, 이에 제한되지 않는다.
본 명세서에서, "노드"는 블록체인의 네트워크 내에서 구성요소를 의미할 수 있다. 예를 들면, 노드는 특수 목적 컴퓨터(Special-purpose Computer), 범용 컴퓨터(General-purpose Computer), 슈퍼 컴퓨터(Supercomputer), 대형 컴퓨터(Mainframe Computer), 개인용 컴퓨터(Personal Computer), 스마트폰, 태블릿 PC 등일 수 있으나, 이에 제한되지 않는다.
본 명세서에서, "전자 지갑"은 전자 장치에 전자적인 방법으로 가치를 저장하여 실물 화폐의 교환없이 온라인 또는 오프라인에서 거래를 가능하게 하는 수단을 의미할 수 있다. 또한, "전자 지갑"은 전자상거래에서 사용되는 전자지불시스템의 일종으로, 전자 장치의 메모리나 가상 계좌에 화폐 가치를 저장하여 지갑처럼 사용하면서 전자상거래 시 대금을 결제할 수 있는 소프트웨어를 의미할 수 있다.
도 1은 일실시예에 따라, 단말들 간에 이종 블록체인에 기반하는 암호화폐를 거래 방법을 설명하기 위한 개념도이다.
제1 사용자의 단말(10)은 제1 사용자의 입력에 따라 암호화폐를 관리하는 제1 사용자의 전자지갑을 실행할 수 있다. 제1 사용자의 단말(10)은 제1 사용자가 제2 사용자에게 소정의 암호화폐를 이체하는 데에 이용되는 거래 정보에 기초하여, 암호화폐의 거래를 수행할 수 있다.
한편, 제1 암호화폐는 제1 블록체인에 기반하여 거래될 수 있다. 제1 블록체인에는 사용자들의 제1 암호화폐의 거래 정보가 기록되어 보관된다. 반면에 제2 암호화폐는 제2 블록체인에 기반하여 거래될 수 있다. 제2 블록체인에는 사용자들의 제2 암호화폐의 거래 정보가 기록되어 보관된다. 즉, 서로 다른 암호화폐는 서로 다른 블록체인에 기반하여 거래될 수 있다.
제1 사용자는 제2 사용자와 제1 암호화폐와 제2 암호화폐를 교환하는 거래를 수행할 수 있다. 즉, 제1 사용자와 제2 사용자는, 제1 사용자가 제2 사용자에게 소정의 제1 암호화폐를 이체하는 제1 거래, 및 제2 사용자가 제1 사용자에게 소정의 제1 암호화폐에 대응되는 소정의 제2 암호화폐를 이체하는 제2 거래를 합의할 수 있다.
제1 사용자의 단말(10)은 제1 사용자의 전자 지갑에서 제2 사용자의 전자 지갑으로 제1 암호화폐를 이체하고, 이체한 내역을 기록하기 위해 제1 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5) 중 제1 노드(20)로 제1 거래 정보를 전송할 수 있다. 이 경우, 제1 사용자의 단말(10)은 제2 거래를 보장받기 위해, 제2 거래 정보의 유효성에 종속되어 제1 암호화폐의 거래를 활성화 시키는 제1 조건 정보를 제1 거래 정보에 추가할 수 있다.
마찬가지로, 제2 사용자의 단말(10-2)은 제2 사용자의 전자 지갑에서 제1 사용자의 전자 지갑으로 제2 암호화폐를 이체하고, 이체한 내역을 기록하기 위해 제2 블록체인의 네트워크 상의 노드들(21, 21-2, 21-3, 21-4, 21-5) 중 제2 노드(21)로 제2 거래 정보를 전송할 수 있다. 이 경우, 제2 사용자의 단말(10-2)은 제1 거래를 보장받기 위해, 제1 거래 정보의 유효성에 종속되어 제2 암호화폐의 거래를 활성화 시키는 제2 조건 정보를 제2 거래 정보에 추가할 수 있다.
도 2 및 도 13에서는 제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐 간의 거래 방법을 설명한다.
도 2는 일실시예에 따라, 단말에서 이종 블록체인에 기반하는 암호화폐를 거래 방법을 설명하기 위한 흐름도이다. 이하, 단말(10)은 제1 사용자의 단말을 의미할 수도 있다.
단계 S210에서, 단말(10)은 제1 사용자가 제2 사용자에게 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보를 획득할 수 있다. 예를 들면, 단말(10)은 제1 거래 정보를 제2 사용자의 단말(10-2)로부터 수신할 수 있다. 또한, 단말(10)은 제1 거래에 수반되는 제2 거래에 대한 제2 거래 정보를 획득할 수 있다. 여기서, 제2 거래 정보는 제1 사용자가 제2 사용자로부터 제2 암호화폐를 수신하는 제2 거래에 대한 정보일 수 있다.
여기서, 제1 거래 정보 및 제2 거래 정보 각각은 소정 암호화폐를 수신할 수신자의 전자 지갑의 주소, 소정의 암호화폐를 전송하는 송신자의 전자 지갑의 주소, 소정 암호화폐의 이체금액, 소정 암호화폐의 이체에 따른 수수료 중 적어도 하나의 정보를 포함할 수 있고, 이에 제한되지 않는다.
또한, 단말(10)은 제1 암호화폐와 제2 암호화폐의 소정의 교환 비율에 기초하여, 제1 암호화폐의 제1 거래 및 제2 암호화폐의 제2 거래가 적합한지를 판단할 수 있다. 제1 거래와 제2 거래가 적합하지 않으면, 단말(10)은 제1 암호화폐와 제2 암호화폐의 소정의 교환 비율에 기초하여, 제1 암호화폐의 이체금액 또는 제2 암호화폐의 이체금액을 자동으로 보정할 수 있다. 또한, 단말(10)은 사용자의 입력에 기초하여, 제1 암호화폐의 이체금액 또는 제2 암호화폐의 이체금액을 보정할 수도 있다.
또한, 단말(10)은 제1 거래에 수반되는 제2 거래에 대한 제2 거래 정보를 제2 사용자의 단말(10-2)로 전송할 수 있다.
단계 S220에서, 단말(10)은 제1 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하면, 제2 거래 정보의 유효성에 종속되어 제1 암호화폐의 제1 거래를 활성화 시키는 제1 조건 정보를 제1 거래정보에 추가할 수 있다.
여기서, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되면, 제1 블록체인에 연결된 블록 내에 기록된 제1 거래 정보에 따른 제1 거래를 활성화 시키는 조건 정보일 수 있다.
또한, 제1 조건 정보는, 제2 거래 정보를 제2 사용자의 단말(10-2)로 전송하고, 소정 시간 경과 후에 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되지 않으면, 제1 거래를 무효화 시키는 조건 정보일 수 있다.
또한, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가될 때까지 제1 거래를 비활성화 시키는 조건 정보일 수 있다.
단계 S230에서, 단말(10)은 제1 조건 정보가 추가된 제1 거래 정보에 합의 조건을 증명하는 디지털 서명하여, 제1 블록체인의 네트워크 상의 노드로 전송할 수 있다.
예를 들면, 단말(10)은 제1 조건 정보가 추가된 제1 거래 정보에 해시 함수를 적용하여 제1 해시값을 산출할 수 있다. 단말(10)은 제1 사용자의 개인키 및 제2 사용자의 개인키를 이용하여, 제1 해시값을 암호화함으로써, 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성할 수 있다. 단말(10)은 제1 암호문 및 제1 조건 정보가 추가된 제1 거래 정보를 제1 블록체인의 네트워크 상의 노드로 전송할 수 있다.
한편, 단말(10)은 제1 거래 정보에 따라 제1 사용자의 전자 지갑에서 제1 암호화폐를 제2 사용자의 전자 지갑으로 전송할 수 있다. 또한, 단말(10)은 제2 사용자가 제1 암호화폐의 지급을 요청할 때 필요한 제1 사용자의 공개키를 제2 사용자의 단말(10-2)로 전송할 수 있다.
또한, 단말(10)은 제1 사용자가 제2 거래 정보에 따른 제2 암호화폐의 지급을 요청할 때 필요한 제2 사용자의 공개키를 제2 사용자의 단말(10-2)로부터 수신할 수 있다.
단말(10)은 제1 블록체인의 네트워크에서 제1 거래의 검증 및 제2 블록체인의 네트워크에서 제2 거래의 검증이 완료되었음을 알리는 메시지를 수신하면, 제2 사용자의 공개키를 이용하여 제2 암호화폐를 지급받을 수 있다.
한편, 도 2에서는 제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐에 한정하여 설명하였으나, 서로 다른 3 종류 이상의 블록체인에 기반하여 서로 다른 3종류 이상의 블록체인 각각에서 거래되는 암호화폐들 간에 거래도 수행될 수 있음은 본 개시에 따른 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
또한, 도 2에서는 2명의 사용자들 간의 서로 다른 암호화폐의 교환을 설명하였으나, 적어도 3명 이상의 사용자들 간에 서로 다른 암호화폐를 교환할 시에도 본 개시의 내용이 적용될 수 있다.
도 3은 일실시예에 따라, 각 단말에서 조건 정보가 추가된 거래 정보를 디지털 서명하여 블록체인의 네트워크로 전송하는 과정을 설명하기 위한 도면이다.
단계 S310에서, 제2 사용자의 단말(10-2)은 제1 암호화폐의 전송을 요청하는 제1 거래 정보를 제1 사용자의 단말(10)로 전송할 수 있다. 예를 들면, 제1 거래 정보는 "제1 사용자가 제2 사용자에게 제1 암호화폐 10 캐시를 전송하는 제1 거래"에 대한 정보일 수 있다. 또한, 제2 사용자의 단말(10-2)은 제1 거래 정보를 제2 사용자의 개인키로 디지털 서명하여 전송할 수도 있다.
단계 S320에서, 제1 사용자의 단말(10)은 제1 거래 정보를 확인하고, 확인된 제1 거래 정보를 암호화하여 제1 블록체인의 네트워크의 노드들(20, 20-2, 20-3, 20-4, 20-5)로 전송할 수 있다.
구체적으로, 제1 사용자의 단말(10)은 제1 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하는지를 확인할 수 있다. 여기서, 합의 조건은 제1 사용자와 제2 사용자 간에 서로 다른 블록체인에 기반하는 암호화폐를 교환하는 거래의 조건을 포함할 수 있다. 예를 들면, 합의 조건은 제1 암호화폐의 1캐시는 제2 암호화폐의 2캐시 비율로 제1 암호화폐와 제2 암호화폐가 교환되는 조건일 수 있다.
제1 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하면, 제1 사용자의 단말(10)은 제2 거래 정보의 유효성에 종속되어 제1 암호화폐의 제1 거래를 활성화 시키는 제1 조건 정보를 제1 거래 정보에 추가할 수 있다. 여기서, 제2 거래 정보는 제1 거래에 수반되는 제2 거래에 대한 거래 정보로서, 제1 사용자가 제2 사용자로부터 제2 블록체인에 기반하는 제2 암호화폐를 수신하는 정보일 수 있다.
예를 들면, 제1 조건 정보는, "제2 사용자가 제1 사용자에게 제2 암호화폐 20 캐시를 전송하는 제2 거래"에 대한 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되면, 제1 블록체인에 연결된 블록 내에 기록된 "제1 사용자가 제2 사용자에게 제1 암호화폐 10 캐시를 전송하는 제1 거래"를 활성화 시키는 조건 정보를 포함할 수 있다.
또한, 제1 조건 정보는, "제2 사용자가 제1 사용자에게 제2 암호화폐 20 캐시를 전송하는 제2 거래"에 대한 제2 거래 정보가 제2 사용자의 단말(10-2)로 전송되고 소정 시간이 경과된 후에도 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인으로 추가되지 않으면, 제1 거래를 무효화 시키는 조건 정보를 포함할 수 있다.
또한, 제1 조건 정보는 "제2 사용자가 제1 사용자에게 제2 암호화폐 20 캐시를 전송하는 제2 거래"에 대한 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가될 때까지, 제1 거래를 비활성화 시키는 조건 정보를 포함할 수 있다.
제1 사용자의 단말(10)은 제1 조건 정보가 추가된 제1 거래 정보에 해시 함수를 적용하여 제1 해시값을 산출할 수 있다. 제1 사용자의 단말(10)은 제1 사용자의 개인키 및 제2 사용자의 개인키를 이용하여, 제1 해시값을 암호화 함으로써, 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성할 수 있다. 제1 사용자의 단말(10)은 제1 암호문 및 제1 조건 정보가 추가된 제1 거래 정보를 제1 블록체인의 네트워크 상의 노드로 전송할 수 있다.
단계 S330에서, 제1 사용자의 단말(10)은 "제2 사용자가 제1 사용자에게 제2 암호화폐 20 캐시를 전송하는 제2 거래"에 대한 제2 거래 정보를 제2 사용자의 단말(10-2)로 전송할 수 있다. 도 3에서 제1 사용자의 단말(10)이 단계 S320 동작 이후에 단계 S330의 동작을 수행하는 것으로 도시되었으나, 단계 S330의 동작 이후에 단계 S320 동작을 수행할 수도 있다.
단계 S340에서, 제2 사용자의 단말(10-2)은 제2 거래 정보를 확인하고, 확인된 제2 거래 정보를 암호화하여 제2 블록체인의 네트워크의 노드들(21, 21-2, 21-3, 21-4, 21-5)로 전송할 수 있다.
구체적으로, 제2 사용자의 단말(10-2)은 제2 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하는지를 확인할 수 있다.
제2 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하면, 제2 사용자의 단말(10-2)은 제1 거래 정보의 유효성에 종속되어 제2 암호화폐의 제2 거래를 활성화 시키는 제2 조건 정보를 제2 거래 정보에 추가할 수 있다. 여기서, 제1 거래 정보는, 제2 거래에 수반되는 제1 거래에 대한 거래 정보로서, 제2 사용자가 제1 사용자로부터 제1 블록체인에 기반하는 제1 암호화폐를 수신하는 정보일 수 있다.
예를 들면, 제2 조건 정보는 "제1 사용자가 제2 사용자에게 제1 암호화폐 10 캐시를 전송하는 제1 거래"에 대한 정보를 기록한 블록이 유효한 블록으로 제1 블록체인에 추가되면, 제2 블록체인에 연결된 블록 내에 기록된 "제2 사용자가 제1 사용자에게 제2 암호화폐 20 캐시를 전송하는 제2 거래"를 활성화 시키는 조건 정보를 포함할 수 있다.
또한, 제2 조건 정보는 "제1 사용자가 제2 사용자에게 제1 암호화폐 10 캐시를 전송하는 제1 거래"에 대한 제1 거래 정보가 제1 사용자의 단말(10)로 전송되고, 소정 시간이 경과된 후에도 제1 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인으로 추가되지 않으면, 제2 거래를 무효화 시키는 조건 정보를 포함할 수 있다.
또한, 제2 조건 정보는 "제1 사용자가 제2 사용자에게 제1 암호화폐 10 캐시를 전송하는 제1 거래"에 대한 제1 거래 정보를 기록한 블록이 유효한 블록으로 제1 블록체인에 추가될 때까지, 제2 거래를 비활성화 시키는 조건 정보를 포함할 수 있다.
제2 사용자의 단말(10-2)은 제2 조건 정보가 추가된 제2 거래 정보에 해시 함수를 적용하여 제2 해시값을 산출할 수 있다. 제2 사용자의 단말(10-2)은 제1 사용자의 개인키 및 제2 사용자의 개인키를 이용하여, 제2 해시값을 암호화함으로써, 제2 거래 정보의 디지털 서명을 나타내는 제2 암호문을 생성할 수 있다. 제2 사용자의 단말(10-2)은 제2 암호문 및 제2 조건 정보가 추가된 제2 거래 정보를 제2 블록체인의 네트워크 상의 노드로 전송할 수 있다.
도 4는 일실시예에 따라, 단말에서 디지털 서명된 거래 정보를 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.
제1 사용자의 단말(10)은 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보 및 "제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"하는 제1 조건 정보를 포함하는 제1 거래 정보(410)를 암호화하고, 암호화된 거래 정보(440)를 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다.
구체적으로, 제1 사용자의 단말(10)은 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보 및 "제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"하는 제1 조건 정보를 포함하는 제1 거래 정보(410)를 거래 정보에 대한 고유의 데이터를 생성하는 해시함수에 적용하여, 거래 정보(410)에 대응되는 해시값 "8F23V230"(420)을 생성할 수 있다.
제1 사용자의 단말(10)은 제1 사용자의 개인키(425) 및 제2 사용자의 개인키(426)로 해시값 "8F23V230"(420)을 순차적으로 암호화하여 제1 거래 정보(410)의 디지털 서명을 나타내는 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(430)을 생성할 수 있다. 제1 사용자의 단말(10)은 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(430)을 제1 거래 정보(410)와 합한 거래 정보(440)를 제1 노드(20)로 전송할 수 있다.
도 5는 일실시예에 따라, 암호화폐들 간의 교환 비율에 따라, 소정의 암호화폐의 이체 금액을 보정하는 과정을 설명하기 위한 도면이다.
도 5의 510을 참고하면, 제1 사용자의 단말은 전자 지갑의 실행에 따라, 암호화폐에 대한 제1 사용자의 계정 정보 및 암호화폐를 관리하는 사용자 인터페이스(User Interface)를 표시할 수 있다.
제1 사용자의 단말(10)은 제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐를 교환하는 거래를 수행할 수 있다. 제1 사용자의 단말(10)은 제1 암호화폐의 거래에 따른 정보(511) 및 제2 암호화폐의 거래에 따른 정보(512)를 표시할 수 있다.
구체적으로, 제1 사용자의 단말(10)이 제1 암호화폐의 거래에 따른 정보(511)를 표시하는 동작과 관련하여, 제1 사용자의 단말(10)은 제1 사용자의 전자 지갑에서 제2 사용자의 전자 지갑으로 제1 암호화폐를 이체하는 데에 사용되는 정보, 및 제1 암호화폐를 이체함으로써 변경될 제1 암호화폐의 잔고 정보를 표시할 수 있다. 예를 들면, 제1 사용자의 단말(10)은 제1 암호화폐의 이체금액은 3,500,000 캐시, 이체 후 제1 암호화폐의 잔고는 1,999,990 캐시에 대한 정보를 표시할 수 있다.
또한, 제1 사용자의 단말(10)은 암호화폐의 최근 거래의 이력 정보, 제1 사용자의 단말(10)에 저장된 연락처 정보, 및 제1 사용자의 단말(10)에 저장된 전자 지갑의 정보를 제공하는 아이콘들을 표시할 수 있다.
또한, 제1 사용자의 단말(10)이 제2 암호화폐의 거래에 따른 정보(512)를 표시하는 동작과 관련하여, 제1 사용자의 단말(10)은 제2 사용자의 전자 지갑으로부터 수신할 제2 암호화폐의 정보를 표시할 수 있다. 예를 들면, 제1 사용자의 단말(10)은 제2 사용자의 단말(10-2)로부터 수신한 제2 거래 정보에 기초하여, 제2 암호화폐의 금액을 표시할 수 있다.
여기서, 제1 사용자의 단말(10)은 제1 암호화폐와 제2 암호화폐의 소정의 교환 비율에 기초하여, 제1 암호화폐의 제1 거래 및 제2 암호화폐의 제2 거래가 적합한지를 판단할 수 있다. 예를 들면, 제1 암호화폐와 제2 암호화폐의 소정의 교환 비율은 1:2로 교환되는 비율일 수 있다. 도 5의 510에 도시된 바와 같이, 제1 암호화폐의 이체금액은 3,500,000 캐시이고, 제2 암호화폐의 교환금액은 3,500,000캐시이므로, 제1 사용자의 단말(10)은 제1 암호화폐의 제1 거래 및 제2 암호화폐의 제2 거래가 부적합하다고 판단할 수 있다.
도 5의 520을 참고하면, 제1 사용자의 단말(10)은 1:2로 교환되는 제1 암호화폐와 제2 암호화폐의 교환 비율에 따라, 제1 암호화폐의 이체금액 또는 제2 암호화폐의 이체금액을 자동으로 보정할 수 있다. 제1 사용자의 단말(10)은 제2 암호화폐의 교환금액을 7,000,000 캐시로 보정할 수 있다. 또한, 제1 사용자의 단말(10)은 제1 사용자의 입력에 기초하여, 제2 암호화폐의 교환금액을 7,000,000 캐시로 보정할 수 있다.
도 6은 일실시예에 따라, 단말들 간에 이종 블록체인에 기반하는 암호화폐들을 거래하기 위해, 블록체인의 네트워크 상의 노드의 동작 방법을 설명하기 위한 흐름도이다.
단계 S610에서, 제1 노드(20)는 제1 사용자가 제2 사용자에게 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 제2 블록체인에 기반하는 제2 암호화폐에 대한 제2 거래 정보의 유효성에 종속하여 제1 거래를 활성화 시키는 제1 조건 정보를 제1 사용자의 단말(10)로부터 수신할 수 있다.
여기서, 제1 노드(20)는 제1 사용자의 단말(10)로부터 제1 조건 정보가 추가된 제1 거래 정보에 합의 조건을 증명하는 디지털 서명이 수행된 제1 암호문, 및 제1 조건 정보가 추가된 제1 거래 정보를 수신할 수 있다. 여기서, 합의 조건은 제1 사용자와 제2 사용자 간에 서로 다른 블록체인에 기반하는 암호화폐를 교환하는 거래의 조건을 포함할 수 있다.
단계 S620에서, 제1 노드(20)는 제1 거래 정보의 유효성 검증을 수행할 수 있다. 제1 거래 정보가 유효하면, 제1 노드(20)는 제1 거래 정보를 제1 블록체인의 네트워크 상의 제2 노드로 전송할 수 있다. 제1 노드(20)는 제1 거래 정보를 후보 블록에 추가할 수 있다.
단계 S630에서, 제1 노드(20)는 후보 블록에 대한 작업 증명을 수행하여, 제1 블록체인에 후보 블록을 유효한 제1 블록으로 추가할 수 있다.
단계 S640에서, 제1 조건 정보가 만족되면, 제1 노드(20)는 제1 거래를 활성화 시킬 수 있다.
여기서, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되면, 제1 블록체인에 연결된 블록 내에 기록된 제1 거래 정보에 따른 제1 거래를 활성화 시키는 조건 정보일 수 있다.
제1 노드(20)는 제1 블록체인의 제1 블록 내에 기록된 제1 거래 정보 내에서, 제2 블록체인을 기반으로 하는 제2 거래 정보의 해시값을 참조하여, 제1 조건 정보가 만족되었는지를 판단할 수 있다. 제2 거래 정보의 해시값을 참조한 결과, 제2 거래 정보가 제2 블록체인에 기록되지 않았으면, 제1 노드(20)는 제1 거래를 비활성화 시킬 수 있다.
도 7은 일실시예에 따라, 블록체인의 네트워크 상에서 유효한 암호화폐의 거래를 블록체인의 네트워크 상의 노드들로 전파하고, 블록체인에 기록하는 과정을 설명하기 위한 도면이다.
도 7을 참고하면, 제1 사용자의 단말(10)은 제1 사용자의 전자 지갑을 실행할 수 있다. 제1 사용자의 단말(10)은 제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체한 거래 정보 및 제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체하는 제1 조건 정보를 포함하는 제1 거래 정보에 기초하여, 제2 사용자의 전자 지갑으로 암호화폐 3,500,000 캐시를 이체할 수 있다. 제1 사용자의 단말(10)은 제1 조건 정보를 포함하는 제1 거래 정보를 암호화하고, 암호화된 제1 거래 정보를 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다. 제1 사용자 단말(10)이 제1 거래 정보를 암호화하여 제1 노드(20)로 전송하는 동작은 도 4에서 설명하였다.
제1 노드(20)는 암호화된 제1 거래 정보를 복호화하고, 복호화된 결과에 기초하여 제1 거래 정보가 유효한지를 검증(710)할 수 있다. 제1 노드(20)가 제1 거래 정보의 유효성을 검증하는 동작은 도 8에서 상세하게 설명한다.
제1 거래 정보의 유효성을 검증한 결과, 제1 거래 정보가 유효하지 않으면, 제1 노드(20)는 제1 거래 정보를 폐기할 수 있다.
제1 거래 정보의 유효성을 검증한 결과, 제1 거래 정보가 유효하면, 제1 노드(20)는 제1 거래 정보를 블록체인의 네트워크 상의 제2 노드(20-2)로 전송할 수 있다. 또한, 제1 노드(20)는 후보 블록(720)에 제1 사용자가 제2 사용자에게 암호화폐 3,500,000 캐시를 이체한 거래 정보 및 제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체하는 제1 조건 정보를 포함하는 제1 거래 정보(721)를 기록할 수 있다. 후보 블록(720)에 소정의 거래 정보들이 기록되면, 제1 노드(20)는 후보 블록(720)에 대한 작업 증명을 수행하여 유효한 블록을 생성할 수 있다. 또한, 제2 노드(20-2)에서도 제1 거래 정보의 유효성이 검증되면, 제2 노드(20-2)는 제1 거래 정보를 후보 블록에 추가하고, 후보 블록에 대한 작업 증명을 수행하여 유효한 제1 블록을 생성할 수 있다. 생성된 제1 블록에는 제1 사용자가 제2 사용자에게 암호화폐 3,500,000 캐시를 이체한 거래 정보 및 제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체하는 제1 조건 정보를 포함하는 제1 거래 정보(721)가 포함될 수 있다. 제3 노드(20-3) 및 제4 노드(20-4)도 제2 노드(20-2)와 마찬가지로 동작할 수 있다.
제1 노드(20)에서 유효한 블록을 생성하여 블록체인에 추가하는 과정을 설명하면, 제1 노드(20)는 소정의 거래 정보들에 대한 머클 트리의 루트를 계산할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 입장에서 이전 블록 헤더를 가리키는 해시 참조를 생성할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 작업 증명 또는 제약 조건에서 필요한 난이도를 획득할 수 있다. 제1 노드(20)는 머클 트리의 루트, 이전 블록 헤더를 가리키는 해시 참조, 난이도, 타임스태프의 데이터와 난스에 해시 함수를 적용하여 생성된 블록해시의 값이 제약 조건을 만족하는지 확인할 수 있다. 제1 노드(20)는 난스를 0부터 1씩 증가시키면서 제약 조건을 만족시키는 난스의 값을 획득하여 후보 블록(720)에 대한 작업 증명을 수행할 수 있다. 제1 노드(20)는 블록체인에 후보 블록(720)을 유효한 블록으로 추가할 수 있다. 또한, 제1 노드(20)는 유효한 블록을 블록체인의 네트워크 상의 다른 노드들(20-2, 20-3, 20-4 등)로 전송할 수 있다.
블록체인의 네트워크 상의 각 노드들(20-2, 20-3, 20-4 등)은 제1 노드(20)에서 수신한 유효한 블록에 대한 검증을 수행하여, 각 노드들(20-2, 20-3, 20-4 등)에서 보유하는 블록체인에 유효한 블록을 추가할 수 있다.
도 8은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 조건 정보를 포함하는 거래 정보의 유효성을 검증하는 과정을 설명하기 위한 도면이다.
예를 들면, 제1 노드(20)는 제1 사용자의 단말(10)로부터 제1 거래 정보(810)를 수신할 수 있다. 제1 거래 정보(810)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보 및 "제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"하는 제1 조건 정보를 포함하는 거래 정보(811) 및 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(812)를 포함할 수 있다. 제1 노드(20)는 거래 정보(811)에 해시함수를 적용하여 거래 정보(811)에 대응되는 해시값 "8F23V230"(821)을 생성할 수 있다. 제1 노드(20)는 제1 사용자의 공개키(825) 및 제2 사용자의 공개키(826)를 이용하여 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1412)을 복호화하여 해시값 "8F23V230"(822)을 생성할 수 있다. 해시값 "8F23V230"(821)과 해시값 "8F23V230"(822)이 동일하므로, 제1 노드(20)는 제1 사용자의 단말(10)로부터 수신된 거래 정보(810)는 유효하다고 판단할 수 있다.
다른 예를 들면, 제1 노드(20)는 제1 사용자의 단말(10)로부터 거래 정보(830)를 수신할 수 있다. 거래 정보(830)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 2,500,000 캐시를 이체"한 거래 정보 및 "제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"하는 제1 조건 정보를 포함하는 거래 정보(830) 및 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(812)을 포함할 수 있다. 제1 노드(20)는 거래 정보(831)에 해시함수를 적용하여 거래 정보(831)에 대응되는 해시값 "6F49X298"(841)을 생성할 수 있다. 제1 노드(20)는 제1 사용자의 공개키(825) 및 제2 사용자의 공개키(826)를 이용하여 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(812)을 복호화하여 해시값 "8F23V230"(822)을 생성할 수 있다. 해시값 "6F49X298"(841)과 해시값 "8F23V230"(822)이 동일하지 않으므로, 제1 노드(20)는 제1 사용자의 단말(10)로부터 수신된 거래 정보(830)는 유효하지 않다고 판단할 수 있다.
도 9는 일실시예에 따라, 이종 블록체인 각각에서 조건 정보가 만족되었는지를 판단하여 거래를 활성화 시키는 과정을 설명하기 위한 도면이다.
제1 블록체인의 네트워크 내의 노드들(20, 20-2, 20-3, 20-4, 20-5) 각각은 복수의 단말들 각각으로부터 수신된 거래 정보 검증할 수 있다. 예를 들면, 제1 노드(20)는 디지털 서명들 및 작업 증명을 이용하여 수신된, "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보 및 "제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"하는 제1 조건 정보를 포함하는 제1 거래 정보에 포함된 해시값에 기초하여 제1 거래 정보의 유효성을 검증할 수 있다. 제1 노드(20)는 작업 증명을 수행하여, 유효성이 검증된 제1 거래 정보를 기록한 제1 블록(910)을 생성할 수 있다. 제1 노드(20)는 제1 블록(910)을 제1 블록체인에 추가하고, 제1 블록(910) 내에 기록된 거래 정보의 유효성을 입증하는 정보와 함께 제1 블록(910)이 유효함을 제1 블록체인의 네트워크에 전송하여 공개할 수 있다. 그러면, 제1 블록체인의 네트워크 내의 노드들(20-2, 20-3, 20-4, 20-5) 각각은 제1 블록체인에 추가된 제1 블록(910)의 유효성을 검증할 수 있다. 검증 결과, 제1 블록(910)이 유효하면, 노드들(20-2, 20-3, 20-4, 20-5) 각각은 노드들 (20-2, 20-3, 20-4, 20-5) 각각의 제1 블록체인에 제1 블록(910)을 추가할 수 있다. 반면에, 제1 블록(910)이 유효하지 않으면, 노드들(20-2, 20-3, 20-4, 20-5) 각각은 제1 블록(910)을 폐기할 수 있다.
한편, 제1 노드(20)는 제1 블록체인에 추가된 제1 블록(910)에 기록된 제1 거래 정보 내의 제1 조건 정보가 만족되었는지를 판단할 수 있다. 제1 노드(20)는 제1 조건 정보에 포함된 제2 블록체인을 기반으로 하는 제2 거래 정보의 해시값을 참조할 수 있다. 참조 결과, 제2 거래 정보를 기록한 제2 블록(920)이 제2 블록체인에 연결되어 있으면, 제1 노드(20)는 제1 거래 정보에 따른 제1 거래를 활성화 시킬 수 있다. 반면에, 제2 거래 정보를 기록한 제2 블록(920)이 제2 블록체인에 연결되어 있지 않으면, 제1 노드(20)는 제1 거래 정보에 따른 제1 거래를 비활성화 시킬 수 있다.
제2 블록체인의 네트워크 내의 노드들(21, 21-2, 21-3, 21-4, 21-5) 각각은 복수의 단말들 각각으로부터 수신된 거래 정보 검증할 수 있다. 예를 들면, 제2 노드(21)는 디지털 서명들 및 작업 증명을 이용하여 수신된, " 제2 사용자가 제1 사용자에게 제2 암호화폐 7,000,000 캐시를 이체"한 거래 정보 및 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"하는 제2 조건 정보를 포함하는 제2 거래 정보에 포함된 해시값에 기초하여 제2 거래 정보의 유효성을 검증할 수 있다. 제2 노드(21)는 작업 증명을 수행하여, 유효성이 검증된 제2 거래 정보를 기록한 제2 블록(920)을 생성할 수 있다. 제2 노드(21)는 제2 블록(920)을 제2 블록체인에 추가하고, 제2 블록(920) 내에 기록된 거래 정보의 유효성을 입증하는 정보와 함께 제2 블록(920)이 유효함을 제2 블록체인의 네트워크에 전송하여 공개할 수 있다. 그러면, 제2 블록체인의 네트워크 내의 노드들(21-2, 21-3, 21-4, 21-5) 각각은 제2 블록체인에 추가된 제2 블록(920)의 유효성을 검증할 수 있다. 검증 결과, 제2 블록(920)이 유효하면, 노드들(21, 21-2, 21-3, 21-4, 21-5) 각각은 노드들(21, 21-2, 21-3, 21-4, 21-5) 각각의 제2 블록체인에 제2 블록(920)을 추가할 수 있다. 반면에, 제2 블록(920)이 유효하지 않으면, 노드들(21, 21-2, 21-3, 21-4, 21-5) 각각은 제2 블록(920)을 폐기할 수 있다.
한편, 제2 노드(21)는 제2 블록체인에 추가된 제2 블록(920)에 기록된 제2 거래 정보 내의 제2 조건 정보가 만족되었는지를 판단할 수 있다. 제2 노드(21)는 제2 조건 정보에 포함된 제1 블록체인을 기반으로 하는 제1 거래 정보의 해시값을 참조할 수 있다. 참조 결과, 제1 거래 정보를 기록한 제1 블록(910)이 제1 블록체인에 연결되어 있으면, 제2 노드(21)는 제2 거래 정보에 따른 제2 거래를 활성화 시킬 수 있다. 반면에, 제1 거래 정보를 기록한 제1 블록(910)이 제1 블록체인에 연결되어 있지 않으면, 제2 노드(21)는 제2 거래 정보에 따른 제2 거래를 비활성화 시킬 수 있다.
도 10은 일실시예에 따라, 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.
도 10에 도시된 바와 같이, 블록체인은 유효한 거래 정보들을 기록한 블록들이 연결되어 구성될 수 있다. 즉, 블록체인의 데이터 구조는 거래 정보를 기록한 블록들이 순서대로 정렬된 단위로 구성된 소정의 데이터 구조일 수 있다. 또한, 블록체인의 데이터 구조는 각 블록 헤더가 이전 블록 헤더를 참조하여 체인 형식으로 연결된 데이터 구조, 및 거래 정보의 데이터를 가리키는 해시 참조와 거래 정보의 데이터가 트리 형태로 연결된 머클 트리의 데이터 구조로 구성될 수 있다.
블록은 블록 해시, 블록 헤더, 거래 정보 등을 포함할 수 있다. 블록 헤더는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 포함할 수 있다.
블록 해시는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 입력값으로 하여 적용된 해시 함수의 해시값일 수 있다. 즉, 블록 해시의 값은 블록 전체를 해시한 값이 아니라, 블록 헤더를 해시한 값일 수 있다.
이전 블록 헤더의 해시값은 각 블록 헤더를 고유하게 식별하고, 이전 블록 헤더를 참조하기 위해 사용될 수 있다. 각 블록 헤더가 이전 블록 헤더를 참조하면, 개별 블록 헤더와 블록의 순서는 유지될 수 있다. 도 15를 참고하면, 제1 블록(1010)은 최초 블록이어서 이전 블록이 없으므로, 이전 블록 헤더를 가리키는 어떠한 참조도 없다. 따라서, 제1 블록(1010)의 이전 블록 헤더의 해시값은 0이다. 또한, 제2 블록(1020)은 이전 블록인 제1 블록(1010)이 있으므로, 제2 블록 헤더는 제1 블록 헤더를 가리키는 해시값을 갖는다. 마찬가지로, 제3 블록(1030)은 이전 블록인 제2 블록(1020)이 있으므로, 제3 블록 헤더는 제2 블록 헤더를 가리키는 해시값을 갖는다.
머클 트리는 해시 참조와 거래 정보의 데이터가 트리 형태로 연결되어 있는 구조를 의미할 수 있다. 해시 참조는 암호화 해시값을 이용하여 거래 정보의 데이터를 가리키는 것을 의미할 수 있다. 한편, 암호화 해시값은 데이터의 고유값이므로, 서로 다른 데이터들은 동일한 해시값을 갖지 않는다.
머클 트리가 생성되는 과정을 구체적으로 설명하면, 거래 정보(예를 들면, 제1 거래 정보, 제2 거래 정보, 제3 거래 정보, 제4 거래 정보)의 데이터 각각을 가리키는 해시 참조(예를 들면, 제1 해시 참조, 제2 해시 참조, 제3 해시 참조, 제4 해시 참조)가 생성될 수 있다. 해시 참조가 생성되면, 해시 참조의 쌍을 가리키는 해시 참조(예를 들면, 제1 해시 참조와 제2 해시 참조를 가리키는 제12 해시 참조, 제3 해시 참조와 제4 해시 참조를 가리키는 제34 해시 참조)가 생성될 수 있다. 그리고 나서, 해시 참조의 쌍을 가리키는 해시 참조를 생성하는 작업이 반복 수행되어 단일 해시 참조(예를 들면, 제12 해시 참조와 제34 해시 참조를 가리키는 제1234 해시 참조)가 생성될 수 있다. 즉, 머클 트리는 단일 해시 참조에서 시작되어 각 거래 정보의 데이터까지 연결된 트리 형태의 구조일 수 있다. 머클 트리의 루트는 최종적으로 생성된 단일 해시 참조를 의미할 수 있다.
타임스태프는 작업 증명을 위해 작업을 시작한 시각을 의미할 수 있다. 난이도는 작업 증명 또는 해시 퍼즐에서의 제약 조건을 의미할 수 있다. 난스는 작업 증명을 위해 블록해시의 값이 제약 조건을 만족하도록 조절되는 값을 의미할 수 있다.
도 11은 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 블록의 작업 증명 및 난스를 구하는 방법을 설명하기 위한 도면이다.
블록체인의 네트워크 상의 노드들은 거래 정보의 유효성 및 블록헤더의 유효성을 검증하여, 유효한 거래 정보의 데이터와 블록 헤더만으로 구성된 유효한 블록이 블록체인에 연결될 수 있도록 할 수 있다.
각 노드들은 블록에 대한 작업 증명을 수행하여, 유효한 블록을 생성할 수 있다. 여기서, 작업 증명은 블록의 고유 해시 퍼즐을 해결한 것을 의미할 수 있다.
작업 증명을 위한 요소(1110)는 변경되면 안 되는 주어진 데이터, 자유롭게 변경 가능한 데이터, 적용할 해시 함수, 해시값에 주어진 제약 조건을 포함할 수 있다. 여기서, 변경되면 안 되는 주어진 데이터는 버전 정보(1111), 이전 블록 헤더의 해시값(1112), 머클 트리의 루트(1113), 타임스태프(1114), 및 난이도(1115)에 대한 데이터를 포함할 수 있다. 또한, 자유롭게 변경 가능한 데이터는 난스(1116)일 수 있다. 또한, 해시값에 주어진 제약 조건은 난이도(1115)일 수 있다.
도 11에 도시된 바와 같이, 작업 증명은 버전 정보(1111), 이전 블록 헤더의 해시값(1112), 머클 트리의 루트(1113), 타임스태프(1114), 및 난이도(1115)에 대한 데이터와 난스(1116)에 해시 함수를 적용하여 생성된 블록해시(1120)의 값이 제약 조건에 만족됨으로써 수행될 수 있다.
구체적으로, 노드는 블록에 대한 작업 증명을 위해, 난스(1116)를 추측하고, 추측된 난스(1116)를 버전 정보(1111), 이전 블록 헤더의 해시값(1112), 머클 트리의 루트(1113), 타임스태프(1114), 및 난이도(1115)에 대한 데이터와 결합해 해시 함수를 적용하여 블록해시(1120)의 값을 생성할 수 있다. 노드는 생성된 블록해시(1120)의 값이 제약 조건을 만족하였는지를 확인할 수 있다. 블록해시(1120)의 값이 제약 조건을 만족하면 작업 증명은 완료되지만, 블록해시(1120)의 값이 제약 조건을 만족하지 못하면 노드는 다른 난스를 추측한 후 동일한 과정을 반복할 수 있다.
도 11의 표(1130)는 난스, 해시할 데이터, 난스와 해시할 데이터를 결합하여 해시 함수에 적용하여 생성된 해시값을 도시한다. 예를 들어, 제약 조건은 해시값의 첫 세자리 숫자가 0인 조건일 수 있다. 노드는 난스를 0부터 1씩 증가시키면서 작업 증명을 위한 과정을 수행할 수 있다. 도 11의 표(1130)를 참고하면, 난스 53을 이용하여 생성된 해시값(000EIXOKXP19)이 제약 조건을 만족한다. 노드는 난스 0부터 난스 53까지 54번의 시행착오로 작업 증명을 완료할 수 있다.
난이도는 작업 증명 또는 해시 퍼즐에서의 제약 조건을 의미할 수 있다. 난이도는 자연수로 표시될 수 있고, 난이도의 숫자는 해시값의 맨 앞자리부터 0으로 채워질 자릿수를 의미할 수 있다. 따라서, 난이도가 올라갈수록 0으로 채워져야 하는 맨 앞자리수가 늘어나게 된다. 난이도가 올라갈수록 작업 증명 또는 해시 퍼즐은 복잡하고, 제약 조건을 만족하는 난스를 찾는 데에 더 많은 계산 자원과 시간이 필요할 수 있다.
즉, 작업 증명은 난스 값을 계산하여 블록 해시의 값을 획득하고, 획득된 블록 해시의 값을 식별자로 갖는 유효한 블록을 생성하는 것을 의미할 수 있다. 한편, 유효한 블록을 생성한 노드는 보상을 받을 수 있다. 보상은 블록체인의 네트워크 상의 노드들의 합의하에 결정될 수 있다.
도 12는 일실시예에 따른 단말의 구성을 도시한 블록도이다.
도 12에 도시된 단말(1200)은 통신 장치(1210), 사용자 인터페이스 장치(1220), 메모리(1230) 및 프로세서(1240)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 단말(1200)이 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 단말(1200)이 구현될 수 있다. 이하 상기 구성 요소들에 대해 살펴본다. 도 12에 도시된 단말(1200)은 도 1 내지 도 11에서 설명한 단말(10)과 동일하게 대응될 수 있다.
일부 실시예에 따르면, 통신 장치(1210)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1210)(2110)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 서버, 스마트폰, 태블릿, PC, 컴퓨팅 장치 등일 수 있다. 통신 장치(1210)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들면, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다. 또한, 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.
예를 들면, 통신 장치(1210)는 무선 랜(Wireless LAN), Wi-Fi(Wireless Fidelity), WFD(Wi-Fi Direct), 블루투스(Bluetooth), BLE(Bluetooth Low Energy), Wired Lan, NFC(Near Field Communication), 지그비(Zigbee) 적외선(IrDA, infrared Data Association), 3G, 4G, 및 5G 중 적어도 하나를 지원할 수 있다.
일부 실시예에 따르면, 통신 장치(1210)는 제1 사용자가 제2 사용자에게 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보를 수신할 수 있다. 또한, 통신 장치(1210)는 제1 거래에 수반되는 제2 거래에 대한 제2 거래 정보를 제2 사용자의 단말로 전송할 수 있다. 여기서, 제2 거래 정보는 제1 사용자가 제2 사용자로부터 제2 암호화폐를 수신하는 제2 거래에 대한 정보일 수 있다.
여기서, 제1 거래 정보 및 제2 거래 정보 각각은 소정 암호화폐를 수신할 수신자의 전자 지갑의 주소, 소정의 암호화폐를 전송하는 송신자의 전자 지갑의 주소, 소정 암호화폐의 이체금액, 소정 암호화폐의 이체에 따른 수수료 중 적어도 하나의 정보를 포함할 수 있고, 이에 제한되지 않는다.
일부 실시예에 따르면, 사용자 인터페이스 장치(1220)는 사용자로부터 단말을 제어하기 위해 데이터를 입력 받는 장치를 의미할 수 있다. 프로세서(1240)는 사용자로부터 소정 명령 또는 데이터를 입력 받기 위한 사용자 인터페이스 화면을 생성 및 출력하도록 사용자 인터페이스 장치(1220)를 제어할 수 있다. 사용자 인터페이스 장치(1220)는 단말의 동작을 제어하는 입력 등을 수신하기 위한 입력부와 단말의 동작에 따른 결과 또는 단말의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들면, 사용자 인터페이스 장치(1220)는 사용자 입력을 수신하는 조작 패널, 화면을 표시하는 디스플레이 패널 등을 포함할 수 있다.
구체적으로, 입력부는, 예를 들어, 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는, 예를 들어, 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 사용자 인터페이스 장치(1220)는 다양한 입출력을 지원하는 장치를 포함할 수 있다.
일부 실시예에 따르면, 사용자 인터페이스 장치(1220)는 제1 사용자의 전자 지갑의 실행 화면을 표시할 수 있다. 예를 들면, 사용자 인터페이스 장치(1220)는 제1 사용자의 전자 지갑에서 보유하는 암호화폐의 정보를 표시할 수 있다. 또한, 사용자 인터페이스 장치(1220)는 제1 사용자가 다른 사용자와 암호화폐를 거래하는 데에 실행되는 화면을 표시할 수 있다.
일부 실시예에 따르면, 메모리(1230)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(1230)는 단말에서 실행된 전자 지갑의 동작을 제어하는 방법을 컴퓨터에서 실행시키기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1230)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
프로세서(1240)는 단말의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1240)는 사용자 인터페이스 장치(1220)를 통해 수신된 사용자 입력에 대응되는 동작을 수행하도록 단말에 포함된 다른 구성들을 제어할 수 있다. 또한, 프로세서(1240)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.
프로세서(1240)는 메모리(1230)에 저장된 프로그램을 실행시키거나, 메모리(1230)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1230)에 저장할 수도 있다. 또한, 프로세서(1240)는 메모리(1230)에 저장된 명령어들을 실행할 수 있다.
일부 실시예에 따르면, 프로세서(1240)는 제1 거래 정보가 제1 사용자와 제2 사용자 간의 합의 조건을 만족하면, 제2 거래 정보의 유효성에 종속되어 제1 암호화폐의 제1 거래를 활성화 시키는 제1 조건 정보를 제1 거래정보에 추가할 수 있다.
여기서, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되면, 제1 블록체인에 연결된 블록 내에 기록된 제1 거래 정보에 따른 제1 거래를 활성화 시키는 조건 정보일 수 있다.
또한, 제1 조건 정보는, 제2 거래 정보를 제2 사용자의 단말로 전송하고, 소정 시간 경과 후에 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되지 않으면, 제1 거래를 무효화 시키는 조건 정보일 수 있다.
또한, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가될 때까지 제1 거래를 비활성화 시키는 조건 정보일 수 있다.
일부 실시예에 따르면, 프로세서(1240)는 제1 조건 정보가 추가된 제1 거래 정보에 합의 조건을 증명하는 디지털 서명하여, 통신 장치(1210)를 통해 제1 블록체인의 네트워크 상의 노드로 전송할 수 있다.
일부 실시예에 따르면, 프로세서(1240)는 제1 조건 정보가 추가된 제1 거래 정보에 해시 함수를 적용하여 제1 해시값을 산출할 수 있다. 프로세서(1240)는 제1 사용자의 개인키 및 제2 사용자의 개인키를 이용하여, 제1 해시값을 암호화함으로써, 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성할 수 있다. 프로세서(1240)는 제1 암호문 및 제1 조건 정보가 추가된 제1 거래 정보를 통신 장치(1210)를 통해 제1 블록체인의 네트워크 상의 노드로 전송할 수 있다.
한편, 프로세서(1240)는 제1 거래 정보에 따라 제1 사용자의 전자 지갑에서 제1 암호화폐가 제2 사용자의 전자 지갑으로 전송되도록 제어할 수 있다. 또한, 프로세서(1240)는 제2 사용자가 제1 암호화폐의 지급을 요청할 때 필요한 제1 사용자의 공개키를 통신 장치(1210)를 통해 제2 사용자의 단말로 전송할 수 있다.
또한, 프로세서(1240)는 제1 사용자가 제2 거래 정보에 따른 제2 암호화폐의 지급을 요청할 때 필요한 제2 사용자의 공개키를 통신 장치(1210)를 통해 제2 사용자의 단말로부터 수신할 수 있다.
프로세서(1240)는 제1 블록체인의 네트워크에서 제1 거래의 검증 및 제2 블록체인의 네트워크에서 제2 거래의 검증이 완료되었음을 알리는 메시지를 통신 장치(1210)를 통해 수신하면, 제2 사용자의 공개키를 이용하여 제2 암호화폐를 지급받을 수 있다.
도 13은 일실시예에 따른 블록체인의 네트워크 상의 노드의 구성을 도시한 블록도이다.
도 13에 도시된 노드(1300)는 통신 장치(1310), 메모리(1320) 및 프로세서(1330)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 노드(1300)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 노드(1300)가 구현될 수 있다. 이하 상기 구성 요소들에 대해 살펴본다. 도 13에 도시된 노드(1300)는 도 1 내지 도 11에서 설명한 노드(20)와 동일하게 대응될 수 있다.
일부 실시예에 따르면, 통신 장치(1310)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(1310)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 서버, 스마트폰, 태블릿, PC, 컴퓨팅 장치 등일 수 있다. 통신 장치(1310)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들면, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다. 또한, 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.
통신 장치(1310)는 제1 사용자가 제2 사용자에게 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 제2 블록체인에 기반하는 제2 암호화폐에 대한 제2 거래 정보의 유효성에 종속하여 제1 거래를 활성화 시키는 제1 조건 정보를 제1 사용자의 단말로부터 수신할 수 있다.
통신 장치(1310)는 제1 사용자의 단말로부터 제1 조건 정보가 추가된 제1 거래 정보에 합의 조건을 증명하는 디지털 서명이 수행된 제1 암호문, 및 제1 조건 정보가 추가된 제1 거래 정보를 수신할 수 있다.
일부 실시예에 따르면, 메모리(1320)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(1320)는 제1 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 제1 블록체인의 네트워크 상의 노드의 동작 방법을 컴퓨터에서 실행시키기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1320)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
일부 실시예에 따르면, 프로세서(1330)는 전자 장치의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1330)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.
일부 실시예에 따르면, 프로세서(1330)는 메모리(1320)에 저장된 프로그램을 실행시키거나, 메모리(1320)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1320)에 저장할 수도 있다. 또한, 프로세서(1330)는 메모리(1320)에 저장된 명령어들을 실행할 수 있다.
일부 실시예에 따르면, 프로세서(1330)는 제1 거래 정보의 유효성 검증을 수행할 수 있다. 제1 거래 정보가 유효하면, 프로세서(1330)는 제1 거래 정보를 통신 장치(1310)를 통해 제1 블록체인의 네트워크 상의 제2 노드로 전송할 수 있다. 프로세서(1330)는 제1 거래 정보를 후보 블록에 추가할 수 있다.
일부 실시예에 따르면, 프로세서(1330)는 후보 블록에 대한 작업 증명을 수행하여, 제1 블록체인에 후보 블록을 유효한 제1 블록으로 추가할 수 있다.
제1 조건 정보가 만족되면, 프로세서(1330)는 제1 거래를 활성화 시킬 수 있다. 여기서, 제1 조건 정보는, 제2 거래 정보를 기록한 블록이 유효한 블록으로 제2 블록체인에 추가되면, 제1 블록체인에 연결된 블록 내에 기록된 제1 거래 정보에 따른 제1 거래를 활성화 시키는 조건 정보일 수 있다.
일부 실시예에 따르면, 프로세서(1330)는 제1 블록체인의 제1 블록 내에 기록된 제1 거래 정보 내에서, 제2 블록체인을 기반으로 하는 제2 거래 정보의 해시값을 참조하여, 제1 조건 정보가 만족되었는지를 판단할 수 있다. 제2 거래 정보의 해시값을 참조한 결과, 제2 거래 정보가 제2 블록체인에 기록되었으면, 프로세서(1330)는 제1 거래를 활성화 시킬 수 있다. 제2 거래 정보가 제2 블록체인에 기록되지 않았으면, 프로세서(1330)는 제1 거래를 비활성화 시킬 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록 매체에 기록될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 제1 블록체인에 기반하여 거래되는 제1 암호화폐와 제2 블록체인에 기반하여 거래되는 제2 암호화폐 간의 거래 방법에 있어서,
    제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하는 단계;
    상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건을 만족하면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하는 단계; 및
    상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 조건 정보는,
    상기 제2 거래 정보를 기록한 블록이 유효한 블록으로 상기 제2 블록체인에 추가되면, 상기 제1 블록체인에 연결된 블록 내에 기록된 상기 제1 거래 정보에 따른 상기 제1 거래를 활성화 시키는 조건 정보인, 방법.
  3. 제1항에 있어서,
    상기 제1 조건 정보는,
    상기 제2 거래 정보를 제2 사용자의 단말로 전송하고, 소정 시간이 경과 된 후에도 상기 제2 거래 정보를 기록한 블록이 유효한 블록으로 상기 제2 블록체인에 추가되지 않으면, 상기 제1 거래를 무효화 시키는 조건 정보; 및
    상기 제2 거래 정보를 기록한 블록이 유효한 블록으로 상기 제2 블록체인에 추가될 때까지, 상기 제1 거래를 비활성화 시키는 조건 정보 중 적어도 하나를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 전송하는 단계는,
    상기 제1 조건 정보가 추가된 제1 거래 정보에 해시 함수를 적용하여 제1 해시값을 산출하는 단계;
    상기 제1 사용자의 개인키 및 상기 제2 사용자의 개인키를 이용하여, 상기 제1 해시값을 암호화 함으로써, 상기 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성하는 단계; 및
    상기 제1 암호문 및 상기 제1 조건 정보가 추가된 제1 거래 정보를 제1 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 제1 거래 정보에 따라, 상기 제1 사용자의 전자 지갑에서 상기 제1 암호화폐를 상기 제2 사용자의 전자 지갑으로 전송하는 단계; 및
    상기 제2 사용자가 상기 제1 암호화폐의 지급을 요청할 때 필요한 상기 제1 사용자의 공개키를 상기 제2 사용자의 단말로 전송하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 제1 사용자가 상기 제2 거래 정보에 따른 상기 제2 암호화폐의 지급을 요청할 때 필요한 상기 제2 사용자의 공개키를 상기 제2 사용자의 단말로부터 수신하는 단계; 및
    상기 제1 블록체인의 네트워크에서 상기 제1 거래의 검증 및 상기 제2 블록체인의 네트워크에서 상기 제2 거래의 검증이 완료되면, 상기 제2 사용자의 공개키를 이용하여 상기 제2 암호화폐를 지급받는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 제1 거래 정보 및 상기 제2 거래 정보 각각은,
    소정 암호화폐를 수신할 수신자의 전자 지갑의 주소, 상기 소정 암호화폐를 전송하는 송신자의 전자 지갑의 주소, 상기 소정 암호화폐의 이체금액, 상기 소정 암호화폐의 이체에 따른 수수료 중 적어도 하나의 정보를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제1 암호화폐와 상기 제2 암호화폐의 소정의 교환 비율에 기초하여, 상기 제1 암호화폐의 제1 거래 및 상기 제2 암호화폐의 제2 거래가 적합한지를 판단하는 단계;
    상기 제1 거래와 제2 거래가 적합하지 않으면, 상기 제1 암호화폐와 상기 제2 암호화폐의 소정의 교환 비율에 기초하여, 상기 제1 암호화폐의 이체금액 또는 제2 암호화폐의 이체금액을 보정하는 단계를 더 포함하는, 방법.
  9. 제1항에 있어서,
    상기 제1 거래에 수반되는 제2 거래에 대한 제2 거래 정보를 상기 제2 사용자의 단말로 전송하는 단계를 더 포함하는 방법.
  10. 제1항 내지 제9항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 제1 블록체인의 네트워크 상의 제1 노드의 동작 방법에 있어서,
    제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 제2 블록체인에 기반하는 제2 암호화폐에 대한 제2 거래 정보의 유효성에 종속하여 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 사용자의 단말로부터 수신하는 단계;
    상기 제1 거래 정보의 유효성 검증에 따라 상기 제1 거래 정보가 유효하면, 상기 제1 거래 정보를 상기 제1 블록체인의 네트워크 상의 제2 노드로 전송하고, 상기 제1 거래 정보를 후보 블록에 추가하는 단계; 및
    상기 후보 블록에 대한 작업 증명을 수행하여, 상기 제1 블록체인에 상기 후보 블록을 유효한 제1 블록으로 추가하는 단계;
    상기 제1 조건 정보가 만족되면, 상기 제1 거래를 활성화시키는 단계를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 제2 거래 정보는, 상기 제1 거래에 수반되는 제2 거래에 대한 거래 정보로서, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 정보를 포함하는, 방법.
  13. 제11항에 있어서,
    제1 조건 정보는,
    상기 제2 거래 정보를 기록한 블록이 유효한 블록으로 상기 제2 블록체인에 추가되면, 상기 제1 블록체인에 연결된 제1 블록 내에 기록된 상기 제1 거래 정보에 따른 상기 제1 거래를 활성화 시키는 조건 정보인, 방법.
  14. 제13항에 있어서,
    상기 제1 블록 내에 기록된 상기 제1 거래정보 내에서, 상기 제2 블록체인을 기반으로 하는 상기 제2 거래 정보의 해시값을 참조하여, 상기 제1 조건 정보가 만족되었는지를 판단하는 단계를 더 포함하는, 방법.
  15. 제14항에 있어서,
    상기 제2 거래 정보의 해시값을 참조한 결과, 상기 제2 거래 정보가 상기 제2 블록체인에 기록되지 않았으면, 상기 제1 거래를 비활성화시키는 단계를 더 포함하는, 방법.
  16. 제11항에 있어서,
    상기 제1 거래 정보 및 상기 제1 조건 정보를 수신하는 단계는,
    상기 제1 사용자의 단말로부터 상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명이 수행된 제1 암호문, 및 상기 제1 조건 정보가 추가된 제1 거래 정보를 수신하는 단계인, 방법.
  17. 통신 장치;
    프로세서;
    사용자 인터페이스 장치; 및
    상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    제1 사용자가 제2 사용자에게 상기 제1 암호화폐를 전송하는 제1 거래에 대한 제1 거래 정보, 및 상기 제1 거래에 수반되는, 상기 제1 사용자가 상기 제2 사용자로부터 상기 제2 암호화폐를 수신하는 제2 거래에 대한 제2 거래 정보를 획득하고,
    상기 제1 거래 정보가 상기 제1 사용자와 상기 제2 사용자 간의 합의 조건에 만족되면, 상기 제2 거래 정보의 유효성에 종속되어 상기 제1 암호화폐의 상기 제1 거래를 활성화 시키는 제1 조건 정보를 상기 제1 거래 정보에 추가하고,
    상기 제1 조건 정보가 추가된 제1 거래 정보에 상기 합의 조건을 증명하는 디지털 서명하여, 상기 제1 블록체인의 네트워크 상의 노드로 상기 통신 장치를 통해 전송하는, 단말.
  18. 제17항에 있어서,
    상기 제1 조건 정보는,
    상기 제2 거래 정보를 기록한 블록이 유효한 블록으로 상기 제2 블록체인에 추가되면, 상기 제1 블록체인에 연결된 블록 내에 기록된 상기 제1 거래 정보에 따른 상기 제1 거래를 활성화 시키는 조건 정보인, 단말.
  19. 제17항에 있어서,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    상기 제1 사용자가 상기 제2 거래 정보에 따른 상기 제2 암호화폐의 지급을 요청할 때 필요한 상기 제2 사용자의 공개키를 상기 통신 장치를 통해 상기 제2 사용자의 단말로부터 수신하고,
    상기 제1 블록체인의 네트워크에서 상기 제1 거래의 검증 및 상기 제2 블록체인의 네트워크에서 상기 제2 거래의 검증이 완료되면, 상기 제2 사용자의 공개키를 이용하여 상기 제2 암호화폐를 지급받는, 단말.
  20. 제17항에 있어서,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    상기 제1 암호화폐와 상기 제2 암호화폐의 소정의 교환 비율에 기초하여, 상기 제1 암호화폐의 제1 거래 및 상기 제2 암호화폐의 제2 거래가 적합한지를 판단하고, 상기 판단 결과를 상기 사용자 인터페이스 장치를 통해 표시하고,
    상기 제1 거래와 제2 거래가 적합하지 않으면, 상기 제1 암호화폐와 상기 제2 암호화폐의 소정의 교환 비율에 기초하여, 상기 제1 암호화폐의 이체금액 또는 제2 암호화폐의 이체금액을 보정하여, 상기 보정 결과를 상기 사용자 인터페이스 장치를 통해 표시하는 단말.
PCT/KR2018/005252 2018-04-13 2018-05-08 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치 WO2019198866A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/045,419 US11887107B2 (en) 2018-04-13 2018-05-08 Method and device for providing transaction service for cryptocurrencies based on different blockchains

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180043464A KR102599873B1 (ko) 2018-04-13 2018-04-13 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
KR10-2018-0043464 2018-04-13

Publications (1)

Publication Number Publication Date
WO2019198866A1 true WO2019198866A1 (ko) 2019-10-17

Family

ID=68164341

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/005252 WO2019198866A1 (ko) 2018-04-13 2018-05-08 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치

Country Status (3)

Country Link
US (1) US11887107B2 (ko)
KR (1) KR102599873B1 (ko)
WO (1) WO2019198866A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409783B1 (en) * 2018-06-06 2019-09-10 Capital One Services, Llc Distributed work data management
CN109472696B (zh) * 2018-09-29 2021-07-23 腾讯科技(深圳)有限公司 资产交易方法、装置、存储介质及计算机设备
KR102422739B1 (ko) * 2019-11-12 2022-08-22 주식회사 알투브이 이용자가 각 판매업체에서 발행된 다양한 마일리지를 통합하여 이용할 수 있게 지원하는 방법 및 시스템
KR102281385B1 (ko) * 2019-12-20 2021-07-23 (주)유미테크 대표노드를 통한 블록체인 계층적 구조화 방법
KR102364009B1 (ko) * 2020-03-24 2022-02-17 주식회사 소버린월렛 전자 지갑과 상기 전자 지갑을 이용하여 두개의 서로 다른 블록체인 토큰들의 원자성 교환 방법
KR102442127B1 (ko) * 2020-06-03 2022-09-08 주식회사 소버린월렛 전자 지갑, 이를 실행하는 서버, 및 상기 서버를 이용한 블록체인 토큰들의 원자성 교환 방법
US20230237476A1 (en) * 2020-06-03 2023-07-27 Sovereign Wallet Co., Ltd. Electronic wallet, server for executing the same, and method for atomic exchange of blockchain tokens using the server
KR102385982B1 (ko) * 2020-06-03 2022-04-13 주식회사 소버린월렛 전자 지갑, 이를 실행하는 서버, 및 상기 서버를 이용한 블록체인 토큰들의 원자성 교환 방법
KR102397513B1 (ko) * 2020-06-03 2022-05-13 주식회사 소버린월렛 전자 지갑, 이를 실행하는 서버, 및 상기 서버를 이용한 블록체인 토큰들의 원자성 교환 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101591244B1 (ko) * 2014-11-06 2016-02-05 주식회사 코인플러그 멤버십 포인트 또는 사이버머니를 블록체인을 갖는 디지털 가상통화로 전환하여 주는 장치
JP5858507B1 (ja) * 2015-05-18 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
KR101628007B1 (ko) * 2015-04-07 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
KR20180010467A (ko) * 2016-07-21 2018-01-31 주식회사 케이티 가상화폐 관리 방법 및 이를 위한 장치
WO2018060951A1 (en) * 2016-09-30 2018-04-05 KALLA, Abdool Gani Anver A system for trading in a contract-free manner

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110037666A (ko) * 2009-10-07 2011-04-13 주식회사 다날 휴대용 단말기를 이용한 복수 단계 인증 전자 결제 방법
US20150363769A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Real-Time Conversion System
KR101660627B1 (ko) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
US9870562B2 (en) * 2015-05-21 2018-01-16 Mastercard International Incorporated Method and system for integration of market exchange and issuer processing for blockchain-based transactions
CN107742210A (zh) * 2017-10-13 2018-02-27 布比(北京)网络技术有限公司 一种不同区块链间的跨链转账系统和方法
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US20190034936A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Approving Transactions from Electronic Wallet Shares
KR101920015B1 (ko) * 2018-03-13 2018-11-19 주식회사 웨이투빗 이종 블록체인 기반의 토큰 관리 방법 및 이를 이용한 토큰 관리 서버

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101591244B1 (ko) * 2014-11-06 2016-02-05 주식회사 코인플러그 멤버십 포인트 또는 사이버머니를 블록체인을 갖는 디지털 가상통화로 전환하여 주는 장치
KR101628007B1 (ko) * 2015-04-07 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
JP5858507B1 (ja) * 2015-05-18 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
KR20180010467A (ko) * 2016-07-21 2018-01-31 주식회사 케이티 가상화폐 관리 방법 및 이를 위한 장치
WO2018060951A1 (en) * 2016-09-30 2018-04-05 KALLA, Abdool Gani Anver A system for trading in a contract-free manner

Also Published As

Publication number Publication date
KR20190119920A (ko) 2019-10-23
US20210150512A1 (en) 2021-05-20
US11887107B2 (en) 2024-01-30
KR102599873B1 (ko) 2023-11-07

Similar Documents

Publication Publication Date Title
WO2019198866A1 (ko) 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
WO2019208861A1 (ko) 전자 지갑을 이용한 암호화폐의 거래 서비스를 제공하는 장치 및 방법
WO2021010766A1 (ko) 블록 체인을 이용한 전자 인증 장치 및 그 방법
WO2018030707A1 (ko) 인증 시스템 및 방법과 이를 수행하기 위한 사용자 단말, 인증 서버 및 서비스 서버
KR102151894B1 (ko) 계좌 모델 하에서 퍼블릭 및 프라이빗 트랜잭션을 지원하는 블록체인 시스템
WO2018131886A1 (ko) Utxo 기반 프로토콜을 사용하여 페이먼트 게이트웨이 서비스를 제공하는 방법 및 이를 이용한 서버
WO2016137307A1 (en) Attestation by proxy
WO2019027093A1 (ko) 전자 화폐 거래 시스템 및 방법
WO2018124857A1 (ko) 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
WO2017192007A2 (ko) 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
WO2017104899A1 (ko) 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
WO2019074326A1 (en) SECURE OFFLINE PAYMENT METHOD AND APPARATUS
WO2016204461A1 (ko) 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
TW202019121A (zh) 使用同態加密的區塊鏈資料保護
WO2020004859A1 (ko) 전화번호를 이용한 에스크로 비대면 암호화폐 거래 장치 및 방법
WO2018124718A1 (ko) 블록체인 내의 블록별로 밸런스 데이터베이스를 관리하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버
EP4027577A1 (en) Method and apparatus for processing data request
JP2019029933A (ja) コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法
WO2018124716A1 (ko) Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버
WO2021162341A1 (ko) 블록체인 송금 서비스 시스템의 동작 방법과 송금을 위한 전자 지갑
WO2020032351A1 (ko) 익명 디지털 아이덴티티 수립 방법
WO2023013861A1 (ko) 디지털 컨텐츠에 대한 대체불가능 토큰을 관리하는 방법 및 장치
US20080172339A1 (en) Method and system for authenticating transactions
JP6939313B2 (ja) 分散認証システム
WO2018131885A1 (ko) Utxo 기반 프로토콜을 사용하여 페이먼트 게이트웨이 서비스를 제공하는 방법 및 이를 이용한 서버

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18914303

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18914303

Country of ref document: EP

Kind code of ref document: A1