WO2019035573A1 - 블록체인 기반의 거래 시스템 및 그 방법 - Google Patents

블록체인 기반의 거래 시스템 및 그 방법 Download PDF

Info

Publication number
WO2019035573A1
WO2019035573A1 PCT/KR2018/008503 KR2018008503W WO2019035573A1 WO 2019035573 A1 WO2019035573 A1 WO 2019035573A1 KR 2018008503 W KR2018008503 W KR 2018008503W WO 2019035573 A1 WO2019035573 A1 WO 2019035573A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
block
token
chain network
exchange
Prior art date
Application number
PCT/KR2018/008503
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
Priority claimed from KR1020180069643A external-priority patent/KR20190019004A/ko
Application filed by 김용태, 임병완 filed Critical 김용태
Publication of WO2019035573A1 publication Critical patent/WO2019035573A1/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/38Payment protocols; Details thereof

Definitions

  • the embodiments disclosed herein relate to techniques for providing asset trading services based on block chains.
  • the widely used trading system is a centralized trading system. Transactions generated in the trading system can be processed by the central server, and processed transactions can be stored in the central database. Only the operator of the transaction system can have access rights to read and write transaction details. Accordingly, transaction details are not transparently displayed to the user, and manipulation of the transaction details exists. That is, the centralized transaction system does not guarantee transparency and immutability of transaction details.
  • the transaction system can be implemented through block chain technology.
  • a decentralized trading system can be implemented through a block chain (eg, Etherium) that provides smart contract technology. All transaction details can be recorded in a block chain. The block chain can guarantee consistency and transparency to the data recorded in the block chain. Everyone is able to monitor all transactions (auditable) and it becomes impossible to manipulate transaction details.
  • transaction services may be provided through a block-chain network.
  • many transaction fees may be imposed when transactions are performed.
  • a transaction that creates an order e.g., a buy order, a sell order
  • Transaction fees may also be imposed on previously occurring transactions.
  • the provider or user of the transaction service may have to bear excessive transaction fees.
  • the transaction fee must be paid in the native currency of the block chain.
  • the user must purchase the native currency directly to use the transaction system and pay the transaction fee through the purchased native currency. This can be a serious inconvenience to the user.
  • the transaction processing speed can be affected by the block generation cycle of the block chain.
  • the block creation time in a typical block chain eg, Ether: 14 seconds, bit coin: 10 minutes
  • Ether 14 seconds
  • bit coin 10 minutes
  • the transaction processing speed of the block chain network is slow, the transaction system based on the block chain is hardly commercialized.
  • Various embodiments disclosed in this document are intended to provide a transaction system capable of solving the above-mentioned problems, while providing the invariance and transparency of transactions details on a block-chain basis.
  • a system may provide an asset transaction service for processing a plurality of transactions for an asset transaction.
  • the system comprises a block-chain network comprising a plurality of computing devices, the block-chain network comprising at least one first processor included in the plurality of computing devices via a first network interface,
  • a server including a second network interface coupled to the at least one second memory and configured to communicate with the block chain network and at least one second processor, and a distributed storage, wherein the block chain can be stored in the at least one first memory,
  • the at least one first processor receives a deposit transaction or a withdrawal confirmation transaction encrypted and signed by an account registered in the block chain network through the asset transaction service and processes the deposit request transaction or the withdrawal confirmation transaction , And writes to the block chain
  • the at least one second processor is cryptographically signed by the account and receives or generates a transaction transaction that is not the deposit transaction and the withdrawal confirmation transaction among the plurality of transactions through the asset transaction service , And is configured to process the received or generated transaction transaction, and the distributed repository can be configured to store
  • the transaction system can process some transactions outside the block chain, thereby reducing the transaction fee and increasing the processing speed of the transaction. At the same time, the transaction system can ensure consistency and transparency of the transaction data processed outside the block chain.
  • the transaction system can provide convenience of the user by issuing its own call token.
  • the user can purchase the currency token as the currency of each country, such as Korean won, dollar, etc., and use the transaction system.
  • the user does not need to purchase a native call.
  • FIG. 1A illustrates a block chain-based trading system in accordance with one embodiment.
  • 1B is a diagram for explaining a block chain-based transaction system according to various embodiments.
  • 1C is a diagram for explaining the structure of a block-chain network according to various embodiments.
  • 1D is a block diagram of an exchange server according to one embodiment.
  • FIG. 2 is a diagram illustrating an example of a sequence of transaction transactions occurring in the transaction system according to an embodiment and a settlement procedure performed according to occurrence of a withdrawal request.
  • FIG. 3 is a view for explaining a transaction history storing method for ensuring invariance and transparency of a transaction history stored in the distributed storage according to an exemplary embodiment of the present invention.
  • FIG. 4 is a sequence diagram of a deposit method to a transaction system according to various embodiments.
  • 5 is a sequence diagram of an asset transaction method according to various embodiments.
  • FIG. 6 is a sequence diagram of a withdrawal method from a transaction system in accordance with various embodiments.
  • FIG. 7 is a diagram illustrating a method for initially distributing an asset equity token in various embodiments.
  • Figure 8 is a diagram illustrating an asset acquisition and shareholder voting system in various embodiments.
  • Figure 1A illustrates a block chain based trading system in accordance with one embodiment.
  • 1B is a diagram for explaining a block chain-based transaction system according to various embodiments.
  • 1C is a diagram for explaining the structure of a block-chain network according to various embodiments.
  • 1D is a block diagram of an exchange server according to one embodiment.
  • FIGS. 1A to 1D a transaction system according to an embodiment of the present invention will be described with reference to FIGS. 1A to 1D.
  • a transaction system 10 for providing an asset transaction service may include a block chain network 100, a transaction server 200, and a distributed storage 300 .
  • the transaction system 10 may provide an asset transaction service to a user via a Dapp (decentralized application)
  • the user may, for example, execute the DEA 70 of the user's terminal (e.g., an electronic device such as a PC, smart phone, etc.) and use the asset transaction service.
  • the DEA 70 of the user's terminal e.g., an electronic device such as a PC, smart phone, etc.
  • Asset trading services can be referred to as services providing exchange transactions for assets such as real estate and artwork.
  • the trading system 10 may provide an exchange trading service for an asset by tokenizing the asset and issuing and managing the token.
  • the transaction services provided by the transaction system 10 may be extended to exchange transactions between different types of tokens.
  • exchange trading services between different tokens issued through different smart contracts may be provided by the transaction system 10 according to the present invention.
  • the transaction system 10 disclosed herein may be extended to an exchange service for goods other than assets by an ordinary technician.
  • trading system 10 may provide interchange trading services between different cryptographic currencies themselves.
  • the exchange transactions between different tokens can be similarly applied to exchange transactions between different encrypted currencies.
  • the trading system 10 may provide exchange trading services for the rights by tokenizing the bond rights of bonds, securities, patents, trademarks, and the like, issuing and managing the tokens.
  • transaction system 10 may issue a token corresponding to an asset.
  • Assets such as real estate and artwork can be tokenized and traded by the trading system 10.
  • the tokenized asset may be referred to as an asset share token.
  • a user may register an asset to sell and receive asset equity tokens corresponding to the asset.
  • the transaction system 10 may issue a token corresponding to the currency used in the transaction service.
  • the token may be referred to as a currency token.
  • the user can deposit the currency in the transaction system 10 and receive the currency token corresponding to the deposited currency amount.
  • the user can purchase the asset equity token using the currency token.
  • the transaction system 10 may support asset exchange transactions. For example, a user may purchase some or all of the assets corresponding to an asset equity token by purchasing an asset equity token using a currency token. The user can sell some or all of the assets he owns by purchasing the tokens using the asset equity tokens
  • the trading system 10 may use the account of the block-chain network 100 itself as a user account of the transaction system 10.
  • the user account of the transaction system 10 can be independently generated on the client side without intervention of the transaction server 200.
  • users sign up and sign-in, and store relevant information in a centralized database. Accordingly, related information including the account of the user is controlled and managed by the centralized server.
  • the user's account can be fully controlled by the user.
  • the transaction system 10 may provide at least one smart contract in which a transaction service is implemented through the block-chain network 100.
  • the smart contract may be implemented to provide a transaction service, and the implemented smart contract may be distributed to the block-chain network 100.
  • the trading system 10 may provide an asset equity smart contract 1 that creates a shared asset, a token smart contract 2 that manages a token token, and an exchange smart contract 3 for asset trading .
  • asset equity smart contract 1 that creates a shared asset
  • token smart contract 2 that manages a token token
  • exchange smart contract 3 for asset trading .
  • the smart contract can be implemented to be compatible with ERC 20 tokens and ERC 223 tokens.
  • Asset Stake The Smart Contract (1) is a system for transferring the balance sheet and asset tokens of the asset equity token account of the asset equity smart contract (1) (for example, depositing the asset equity token and withdrawing to the exchange smart contract (3) And may provide functions for issuing equity tokens.
  • the token smartcontract (2) is used to transfer the balance book of the call token account of the call token smart contract (2), the transfer of the token token (e.g., deposit of the token token and withdrawal to the exchange smart contract (3) It can provide a function for redeeming.
  • the token issued by the token smart contract 2 may be implemented to correspond to the currency of the country in which the trading system 10 is operating.
  • a dKRW token corresponding to a Korean currency issued may be issued in proportion to the balance of the bank account of the bank operating in Korea.
  • a separate server e. G., The dKRW server in FIG. 1D
  • the exchange smart contract 3 can transfer the asset equity token from the equity equity smart contract 1 for the transaction and transfer the currency token from the currency token smart contract 2.
  • the Exchange Smart Contract (3) can also provide the withdrawal function of asset equity tokens and currency tokens.
  • a user of an asset trading service may deposit an asset equity token or currency token and perform an asset exchange transaction within the limits of the deposited token.
  • the asset stake tokens and currency tokens can be deposited into the Exchange Smart Contract (3), and the deposit details are recorded in the block chain network (100).
  • the deposit details for the exchange smart contract 3 can be provided to the exchange server 200.
  • the exchange smart contract 3 can generate the log data for the deposit and record it in the block chain 55.
  • the exchange server 200 can refer to the recorded log data.
  • the exchange server 200 can process the user's transaction related request based on the balance of the tokens deposited in the exchange account.
  • the exchange server 200 can withdraw the amount of tokens in which the withdrawal request has occurred from the exchange account. Details of the withdrawal process will be described later with reference to FIG.
  • All transactions taking place in the trading system 10 can be cryptographically signed by the private key of the trading party's block chain network 100 account (e.g., the Etherium account).
  • the private key of the trading party's block chain network 100 account e.g., the Etherium account.
  • the account of the block-chain network 100 may be referred to as a public key and a public key generated by an already-disclosed encryption algorithm (e.g., the secp256k elliptic curve encryption algorithm).
  • transactions signed by a particular account may be referred to as transactions mapped to the particular account.
  • a transaction encrypted by the user's private key and corresponding to the requested transaction may be generated.
  • the transaction system 10 can process and record the transaction.
  • some of the transactions occurring in the transaction system 10 may be processed on a block-chain basis through the block-chain network 100, Can be processed in an off block chain. If all transactions are processed on a block chain, excessive transaction fees may occur and processing delays may occur. Therefore, the transaction system 10 disclosed in this document can reduce fees and perform fast processing by processing some transactions outside the block chain.
  • the block-chained network 100 may be referred to as a peer-to-peer network comprising a plurality of computing devices 50 (peers or nodes) interconnected via a network.
  • the plurality of computing devices 50 may have one public ledger.
  • the block chain network 100 may be referred to as a distributed network in that one public ledger is generated by each of the plurality of computing devices 50.
  • the one public ledger can be referred to as a block chain 55.
  • the block-chain network 100 may process the transaction and write it to the block chain 55.
  • the block-chain network 100 processes transactions defined in an asset equity smart contract 1, a token smart contract 2, and an exchange smart contract 3 and sends them to the block chain 55 Can be recorded.
  • an exchange server 200 may include a processor 210, a memory 220, and a communication interface 230.
  • the processor 210 may control the overall operation of the exchange server 200.
  • the processor 210 may include a transaction processing module 215.
  • processor 210 may execute instructions stored in memory 140 to drive transaction processing module 215.
  • the operations performed by the transaction processing module 215 may be understood as operations performed by the processor 210.
  • the exchange server 200 can communicate with the block-chain network 100 and the distributed storage 300 via the communication interface 230.
  • the processor 210 of the exchange server 200 processes the generated transaction and can transmit the transaction or the processing result of the transaction to the distributed storage 300 through the communication interface 230.
  • the distributed storage 300 may store the received transaction.
  • transactions processed by the block-chain network 100 can be stored in the block chain 55 and transactions processed by the exchange server 200 can be stored in the distributed storage 300.
  • Transactions stored in the block-chain network 100 or the distributed repository 300 may have invariance and transparency.
  • the distributed storage 300 can ensure consistency and transparency of the stored data.
  • the distributed storage 300 may be referred to, for example, as InterPlanetary File System (IPFS).
  • IPFS InterPlanetary File System
  • DAG merkle directed acyclic graph
  • Anyone can access the stored data through an address value (e.g., a hash address value) of stored data. Users can view and monitor all transactions stored in the distributed repository 300. Specific details related thereto will be described later with reference to Fig.
  • the transaction system 10 can store transparency and invariance of transactions processed by the exchange server 200 by storing all transaction details in the distributed repository 300.
  • FIG. 2 is a diagram illustrating an example of a sequence of transaction transactions occurring in the transaction system according to an embodiment and a settlement procedure performed according to occurrence of a withdrawal request.
  • the transaction system 10 may provide various transactions.
  • transactions can be classified as buy order, sell order, trade buy, trade sell, cancel buy order, cancel sell order, A deposit, a withdrawal request, a cancel withdrawal request, and a withdrawal confirm.
  • the transactions described above are exemplary, and some of the transactions may be integrated and implemented as a single transaction, or a single transaction may be implemented as separate transactions.
  • All transactions can occur sequentially. All sequentially generated transactions may be processed by the block chain network 100 or the exchange server 200 and stored in the block chain 55 and / or distributed storage 300.
  • an asset equity token transfer transaction of user A for example, an asset equity token transfer transaction of user A, a deposit transaction of user B's call token, a purchase order transaction of user B, a sales order transaction of user A, Transaction A, transaction A, transaction A, transaction A, and transaction A, respectively.
  • the transaction system 10 can process the transactions sequentially.
  • purchase orders and sales orders can be created by the user.
  • the encrypted signed purchase order transaction and the sales order transaction can be processed by the exchange server 200 and published in the distributed repository 300.
  • the exchange server 200 may collect and match users' purchase orders and sales orders. Matching purchase orders and sales orders can generate valid transaction transactions. The exchange server 200 can encrypt-sign the transaction transaction and transmit it to the distributed repository 300.
  • the exchange server 200 generates a trade transaction for matching the sales order transaction of the user A with the purchase order transaction of the user B to move the asset token and the currency token .
  • the exchange server 200 can store the transaction transaction in the distributed repository 300 by encrypting the transaction transaction data with the private key of the exchange server 200. Since these transactions are made outside the block chain, neither user A nor user B needs to bear the block chain transaction fee.
  • the user can cancel the open purchase order and sales order by canceling the purchase order and canceling the sales order.
  • the encrypted signed purchase order cancel transaction or the sales order cancel transaction can be processed by the exchange server 200 and displayed in the distributed repository 300.
  • a user may deposit a user's currency token or asset equity token for an asset transaction. For example, if a user requests a deposit of a token or asset token via the D-Application 70, the trading system 10 may receive a message containing a deposit transaction.
  • a user may deposit an asset equity token issued through an equity equity smart contract (1) into an exchange smart contract (3).
  • the user can deposit the communication token issued through the token smart contract 2 to the exchange smart contract 3.
  • the Exchange Smart Contract (3) can generate a deposit event log.
  • the exchange server 200 can monitor all depositing transactions. Deposit transactions can be performed through a smart contract.
  • the deposit transaction can be performed through the block chain network 100 and recorded in the block chain 55. [ At this time, transaction fees are incurred. The contents related to the deposit transaction will be described later with reference to Fig.
  • the exchange server 200 may have a native currency for a transaction fee.
  • the exchange server 200 can pay the transaction fee with the native currency held.
  • the exchange server 200 may be compensated for the commission paid from the call token of the user.
  • the user can perform the deposit transaction made through the block chain network 100 even if the user does not own the native currency of the block chain network 100.
  • the user may request withdrawal for the currency token or asset equity token of the exchange account. For example, if a user requests withdrawal of a token or asset token via the D-Application 70, transaction system 100 may receive a message containing a withdrawal request transaction. Once the withdrawal request is received, the exchange account can be locked.
  • a user may request withdrawal for tokens on the exchange smart contract (3).
  • the user can specify the amount of the currency token, the amount of the asset equity token, and the transaction fee required for the withdrawal and may request withdrawal.
  • an account balance settlement procedure may be executed.
  • the withdrawal request transaction may be cryptographically signed and stored in the distributed repository 300.
  • FIG. 2 (1) when the withdrawal request transaction of the user A occurs, the account balance settlement procedure between the user A and the exchange server 200 can be started.
  • the account balance settlement procedure may be performed between the exchange server 200 and the user for agreement and confirmation of the current token balance of the user's exchange account.
  • the exchange server 200 may perform settlement and generate a withdrawal confirmation transaction for the current balance calculated as a result of the settlement.
  • the withdrawal confirmation transaction can be handled by the block-chain network 100.
  • the exchange server 200 may perform the settlement procedure and generate the settlement data file.
  • the generated settlement data file can be stored in the distributed repository 300.
  • the exchange server 200 may write the address value of the settlement data file on the distributed storage 300 to the block chain 55.
  • the exchange server 200 can perform the settlement procedure.
  • the settlement data file 33 generated according to the withdrawal request transaction 25 can be stored in the distributed repository 300.
  • the settlement data file 31 of the distributed repository 300 may be referred to as being generated in response to the occurrence of the withdrawal request transaction 21.
  • the exchange server 200 refers to the settlement data file 31 (refer to the settlement data file 31), the transactions generated after the withdrawal request transaction 21, the balance of the exchange account at the time of the withdrawal confirmation transaction 23 33 and store them in the distributed repository 300.
  • the address value in which the settlement data file 33 is stored may be recorded in the block chain 55.
  • the settlement data file 31, 33 may include withdrawal request data including a token type and number of withdrawals, a transaction fee, and a withdrawal request ID.
  • the settlement data files 31 and 33 also include the balance of the currency token or asset equity token of the current exchange account, the current open purchase / sales order of the user, all transactions after the recent account balance settlement procedure, the latest account balance settlement An address in the distributed repository 300 of the recent account balance adjustment data, and a cryptographic signature of the exchange server 200.
  • the exchange server 200 may perform an account balance settlement procedure and request confirmation and consent from the user for the final account balance.
  • the exchange server 200 may display the balance of the settlement result exchange account through the display 70 and receive a confirmation input from the user in response to the display.
  • a cryptographically signed withdrawal confirmation transaction may be generated.
  • the block chain network 100 may process the withdrawal confirmation transaction and write it to the block chain 55.
  • the user may directly validate the mental result with reference to the block-chained network 100 and the distributed repository 300.
  • the procedure for checking the adjustment data can be provided by a third party (3 rd party).
  • the exchange server 200 may pay a fee for the withdrawal confirmation transaction to the held native currency.
  • the exchange server 200 may be compensated for the commission paid from the call token of the user.
  • the user can perform the withdrawal confirmation transaction made through the block-chain network 100 even if the user does not own the native currency of the block-chain network 100.
  • the user may cancel the withdrawal request before execution of the account balance settlement procedure is completed.
  • the exchange server 200 can process the withdrawal withdrawal request transaction and store it in the distributed repository 300.
  • FIG. 3 is a view for explaining a transaction history storing method for ensuring invariance and transparency of a transaction history stored in the distributed storage according to an exemplary embodiment of the present invention.
  • transactions generated in the transaction system 10 may be stored in the distributed storage 300, and various transactions stored in the distributed storage 300 may be grouped in predetermined cycles and stored in the distributed storage 300 .
  • the group files 301 and 303 may include a plurality of transactions occurring for a predetermined time.
  • the group files 301 and 303 may store address value lists (e.g., hash value lists) of a plurality of transactions included in the respective group files 301 and 303.
  • the group files 301 and 303 stored in the distributed storage 300 may have a unique hash value calculated by a certain hash algorithm (e.g., SHA-1).
  • the hash values of the group files 301 and 303 can be referred to as unique values corresponding to the data included in the group files 301 and 303. [ Therefore, if some of the data included in the group files 301 and 303 are modulated, the hash values for the group files 301 and 303 may also be different.
  • the invariance of transaction details stored in the distributed repository 300 can be achieved by chaining each group file 301, 303 using the hash values of the respective group files 301, 303.
  • an address in the distributed storage 300 where each of the group files 301 and 303 is stored may be represented by a hash value.
  • the group files 301 and 303 may each have a hash value of the preceding group file. Accordingly, the group files 301 and 303 can be chained through a hash link.
  • the group file 303 has a hash value of the group file 301, thereby indicating the group file 301, and can form a chain with the group file 301.
  • the group files 301 and 303 of the distributed storage 200 may form a structure similar to the blocks of the block chain 55.
  • the hash value of the subsequent group file of the particular modulated group file can no longer represent a valid address value. Therefore, the above-mentioned, modulated group file and its subsequent group file can no longer form a chain.
  • the group files 301 and 303 stored in the distributed storage 300 do not constitute a chain, the user can recognize that the data in the distributed storage 300 has been falsified or tampered.
  • the invariance of the transaction history stored in the distributed repository 300 can be achieved by storing the hash values of the group files 301, 303 in the block chain 55 of the block chain network 100.
  • the hash values of the group files 301 and 303 may be stored in the block chain 55.
  • anyone can access the block-chained network 100 and check the hash value.
  • the user can verify whether the group files 301 and 303 are manipulated by comparing the hash values stored in the block chain 55 with the hash values of the group files 301 and 303 stored in the distributed storage 300 have. If the data contained in the group files 301 and 303 are manipulated, the hash value stored in the block chain 55 can no longer represent a valid address value.
  • the distributed storage 300 can guarantee the invariance of the data stored in the distributed storage 300 through the hash value recorded in the block chain 55.
  • a user or a third party can ascertain all transactions occurring in the distributed transaction system 10 by accessing the specific address of the distributed repository 300 indicated by the hash value recorded in the block chain 55. Thereby providing transparency to transaction details stored in the distributed repository 300.
  • a user or a third party may access the distributed repository 300 using the hash value recorded in the block chain 55 and reconstruct the history of all previously generated transactions. Accordingly, even if the exchange server 200 is damaged by the hacking, the transaction details can be reconfigured, so that the transaction system 10 can have higher safety than the existing centralized transaction system.
  • FIGS. 4 is a sequence diagram of a deposit method to a transaction system according to various embodiments.
  • 5 is a sequence diagram of an asset transaction method according to various embodiments.
  • 6 is a sequence diagram of a withdrawal method from a transaction system in accordance with various embodiments.
  • the transfer procedure, the transaction procedure, and the withdrawal procedure performed in the transaction system 10 will be described with reference to FIGS. 4 to 6.
  • a user installs a DEAW 70 that provides an asset transaction service to a client terminal 75 (e.g., an electronic device including a PC, smartphone, tablet PC, etc.) Asset exchange transactions can be performed.
  • a client terminal 75 e.g., an electronic device including a PC, smartphone, tablet PC, etc.
  • Asset exchange transactions can be performed.
  • the client terminal 75 transmits an asset equity token deposit transaction, which is encrypted and signed by the user's private key, to the asset equity smart transaction (403).
  • an asset equity token deposit transaction which is encrypted and signed by the user's private key
  • the client terminal 75 transmits an asset equity token deposit transaction, which is encrypted and signed by the user's private key, to the asset equity smart transaction (403).
  • a user may request to deposit an asset equity token via the D-Application 70.
  • the asset equity token may be issued by the equity equity smart contract (1) of the block-chain network (100) according to the user's asset registration.
  • Asset Stake Smart contract (1) may move asset share token to transaction smart contract (3) (405) in response to an asset stake token deposit transaction.
  • the transaction smart contract 3 may generate a deposit event log and store it in the block chain 55 (407).
  • the client terminal 75 may send a token deposit transaction encrypted and signed by the user's private key to the token smart contract 2 of the block chain network 100 when a token deposit request is made 409 (411).
  • a token deposit request is made 409 (411).
  • a user may request to deposit a token via the D-Application 70.
  • the call token may be issued by the call token smart contract (2) according to the user's original deposit.
  • the token smart token 2 may move the token of the token to the transaction smart contract 3 (413) in response to the token deposit transaction.
  • the transaction smart contract 3 may generate a deposit event log and store it in the block chain 55 (415).
  • the balance information of the currency token and the balance information of the asset equity token deposited in the transaction smart contract 3 may be synchronized 417 between the block chain network 100 and the exchange server 200.
  • the exchange server 200 can refer to the deposit event log recorded in the block chain 55 every predetermined period or whenever a deposit transaction occurs.
  • the exchange server 200 can update the balance of the exchange account according to the deposit event log and process the transactions based on the updated balance.
  • the exchange server 200 may include exchange account data including information on the balance of the exchange account.
  • the exchange server 200 can update the exchange account data in accordance with the deposit event log.
  • the client terminal 75 may transmit the transaction request encrypted and signed by the user's private key to the exchange server 200 and the distributed repository 300 (501, 503).
  • a transaction request may be referenced in a message that includes a purchase order transaction, a sales order transaction, a withdrawal request transaction, or a withdrawal request cancel transaction.
  • the exchange server 200 may process the transaction corresponding to the transaction request (506).
  • the distributed repository 300 may store a cryptographically signed transaction corresponding to the transaction request (507).
  • the exchange server 200 can generate a trade transaction as matching of the purchase order and the sales order of the user. This process has been described above with reference to FIG. At this time, the exchange server 200 can encrypt and sign the generated transaction transaction with the private key of the exchange server 200 and transmit it to the distributed repository 300.
  • the distributed repository 300 may store the received transaction transaction.
  • the distributed storage 300 may generate a group file containing a plurality of transactions per predetermined period (509).
  • the distributed storage 300 may transmit the address value of the group file to the block-chain network 100 (511).
  • the block-chain network 100 may write the address value of the received group file to the block chain 55 (517).
  • the distributed storage 300 may send the address value of the group file to the exchange server 200 (513).
  • the exchange server 200 may transmit the address value of the received group file to the block-chain network 100 (517). Operation 511 and operations 513 to 515 may alternatively be performed.
  • the operations (501) to (511) described above can be repeatedly performed.
  • Asset transactions can be made in the transaction system 10 in accordance with operations 501 to 511 performed repeatedly.
  • the client terminal 75 may transmit an encryption-signed withdrawal request by the private key to the exchange server 200 (601).
  • the exchange server 200 receives the withdrawal request of the specific user corresponding to the private key.
  • the exchange server 200 may perform the settlement procedure for the specific user (603 to 613)
  • the exchange server 200 can acquire transaction details of the specific user from the distributed repository 300 (603).
  • the transaction history may be referenced as a list of transactions that occurred after a particular user's previous withdrawal request.
  • the exchange server 200 obtains the previous settlement data file of the specific user from the distributed repository 300, data on transactions generated after the previous withdrawal request transaction , And the settlement data file (e.g., the settlement data file 31, 33 in Fig. 2) can be generated (605).
  • the exchange server 200 can transmit the generated settlement data file to the distributed repository 300 (607), and the distributed repository 300 can store the settled data file (609).
  • the exchange server 200 may transmit the settlement result to the client terminal 75 (611).
  • the settlement result may include information contained in the settlement data file.
  • the client terminal 75 may transmit the confirmation of the received settlement result to the exchange server 200 (613).
  • the exchange server 200 may transmit the encrypted confirmation transaction to the block-chain network 100 with the private key of the specific user (615).
  • the block chain network 100 may process the withdrawal confirmation transaction and write it to the block chain 55 (617).
  • transactions other than the deposit request transaction and the withdrawal confirmation transaction can be processed by the exchange server 200 to reduce the fee to be paid to the block chain network 100.
  • Transactions processed by the exchange server 200 are stored in the distributed storage 300 and address values in the distributed storage 300 where transactions are stored can be recorded in the block chain network 100. [ Therefore, all transaction details can be reconfigured through the block chain 55 and the distributed repository 300 and monitored by the user.
  • FIG. 7 is a diagram illustrating a method for initially distributing an asset equity token in various embodiments.
  • trading system 10 may initially allocate asset equity tokens to users who have sent a share subscription request message.
  • the equity subscription request message may include information about the amount of the asset equity token the user wants to purchase and may escrow the amount of the token for initial provisioning. If the user does not have enough call tokens in the user's exchange account, the user needs to deposit the appropriate token into the transaction smart contract (3) (703).
  • the stake subscription request message may be encrypted and signed by the account of the user's block-chain network (100).
  • the encrypted signed equity subscription request message may be sent 703 to the distributed repository 300 and the exchange server 200.
  • the exchange server 200 may perform transactions 709 to finally request and record the initial distribution on the equity equity smart contract 1.
  • the transactions may include proof of the signature of the user and the current balance of the token stored in the spreadsheet 300. Accumulated tokens can be withdrawn from the Asset Inventory account. Users do not have to bear the transaction fee to participate in the initial distribution.
  • the exchange server 200 fetches a seed random number from the block-chain network 100 (705).
  • the seed random number may be referred to as the block hash value of the block chain 55 at the end of the join.
  • the seed random number can be used to generate a sequence of random numbers to determine the winning account and the amount of equity allocated.
  • the exchange server 200 may generate and store 707 the final result of determining the allocated shares among the user accounts and in the distributed exchange 300.
  • the address value (hash value) of the data associated with the end result on the distributed exchange 300 may be written 709 to the equity equity smart contract 1.
  • the initial distribution can be verified and monitored by an external third party.
  • Figure 8 is a diagram illustrating an asset acquisition and shareholder voting system in various embodiments.
  • all of the specific assets registered in the trading system 10 can be purchased and then delisted in the trading system 10.
  • a purchaser who desires to purchase for a particular asset can deposit a token as an escrow to the equity stake smart contract (1) and propose an argument for that particular asset (801).
  • the proposed price (bid price) should be greater than the current market cap of the assets traded on the exchange.
  • the exchange server 200 perceives a valid offer of an offer from the block-chain network 100, the offering proposal may be announced to all equity holders. All shareholder accounts can vote to accept or reject.
  • Each stakeholder can encrypt sign the account of the block-chain network 100 and send a poll message to the exchange server 200 and the distributed repository 300 (803).
  • the exchange server 200 may compute the voting results (tallies up) and store the data related to the voting results in the distributed repository 300 (805).
  • the address value on the distributed repository 300 may be stored in the asset equity contract 1 (807).
  • first component is "(functionally or communicatively) connected” or “connected” to another (second) component, May be connected directly to the component, or may be connected through another component (e.g., a third component).
  • a device configured to may mean that the device can " do " with other devices or components.
  • a processor configured (or configured) to perform the phrases " A, B, and C " may be implemented by executing one or more programs stored in a memory device, And may refer to a general purpose processor (e.g., CPU or AP) capable of performing the corresponding operations.
  • module includes a unit of hardware, software or firmware and may be used interchangeably with terms such as, for example, logic, logic blocks, components, .
  • a " module " may be an integrally constructed component or a minimum unit or part thereof that performs one or more functions. &Quot; Module " may be implemented either mechanically or electronically, for example, by application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs) And may include programmable logic devices.
  • ASIC application-specific integrated circuit
  • FPGAs field-programmable gate arrays
  • At least some of the devices (e.g., modules or functions thereof) or methods (e.g., operations) according to various embodiments may be implemented with instructions stored in a computer-readable storage medium in the form of program modules.
  • the processor may perform a function corresponding to the instruction.
  • the computer-readable recording medium may be a hard disk, a floppy disk, a magnetic medium such as a magnetic tape, an optical recording medium such as a CD-ROM, a DVD, a magnetic-optical medium such as a floppy disk,
  • the instructions may include code generated by the compiler or code that may be executed by the interpreter.
  • Each of the components may be comprised of a single entity or a plurality of entities, and some subcomponents of the previously mentioned subcomponents may be omitted, or other subcomponents .
  • some components e.g., modules or program modules

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

자산 거래를 위한 복수의 트랜잭션들을 처리하는 자산 거래 서비스를 제공하는 시스템이 개시된다. 일 실시 예에 따른 시스템은 복수의 컴퓨팅 장치를 포함하는 블록체인 네트워크, 상기 블록체인 네트워크는 제1 네트워크 인터페이스를 통하여 상기 복수의 컴퓨팅 장치에 포함되는 적어도 하나의 제1 프로세서, 및 적어도 하나의 제1 메모리와 동작 가능하도록 연결되고, 상기 적어도 하나의 제1 메모리에 블록체인이 저장될 수 있고, 상기 블록체인 네트워크와 통신하도록 설정된 제2 네트워크 인터페이스, 및 적어도 하나의 제2 프로세서를 포함하는 서버, 및 분산 저장소를 포함하고, 상기 적어도 하나의 제1 프로세서는, 상기 자산 거래 서비스를 통하여 상기 블록체인 네트워크에 등록된 계좌에 의하여 암호화 서명된 입금 트랜잭션 또는 출금 확인 트랜잭션을 수신하고, 상기 입금 요청 트랜잭션 또는 상기 출금확인 트랜잭션을 처리하고, 상기 블록체인에 기록하도록 설정되고, 상기 적어도 하나의 제2 프로세서는, 상기 계좌에 의하여 암호화 서명되고, 상기 복수의 트랜잭션들 중 상기 입금 트랜잭션 및 상기 출금 확인 트랜잭션이 아닌 거래 트랜잭션을 상기 자산 거래 서비스를 통하여 수신하거나, 생성하고, 상기 수신되거나 생성된 거래 트랜잭션을 처리하도록 설정되고, 상기 분산 저장소는, 상기 수신되거나 생성된 거래 트랜잭션을 저장하도록 설정될 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

블록체인 기반의 거래 시스템 및 그 방법
본 문서에서 개시되는 실시 예들은, 블록체인에 기초하여 자산 거래 서비스를 제공하는 기술과 관련된다.
현재 널리 사용되는 거래 시스템(trading system)은 중앙화된 거래 시스템(centralized trading system)이다. 거래 시스템에서 발생되는 거래들은 중앙 서버에 의하여 처리되고, 처리된 거래 내역들은 중앙 데이터베이스에 저장될 수 있다. 거래 시스템의 운영자만이 거래 내역에 대한 읽기, 쓰기 등의 억세스 권한을 가질 수 있다. 이에 따라 거래 내역이 사용자에게 투명하게 공개되지 않고, 거래 내역에 대한 조작 가능성이 존재하게 된다. 즉, 중앙화된 거래 시스템은 거래 내역에 대한 투명성(transparency) 및 불변성(immutability)을 보장하지 않는다.
거래 내역의 불변성 및 투명성을 제공하기 위하여 거래 시스템은 블록체인 기술을 통하여 구현될 수 있다. 예를 들어, 스마트컨트랙트 기술을 제공하는 블록체인(예: 이더리움)을 통하여 분산화된 거래 시스템(decentralized trading system)이 구현될 수 있다. 모든 거래 내역은 블록체인에 기록될 수 있다. 블록체인은 블록체인에 기록된 데이터에 대한 불변성 및 투명성을 보증할 수 있다. 누구나 모든 거래 내역을 감시할 수 있고(auditable), 거래 내역에 대한 조작이 불가능해진다.
거래 내역에 대한 투명성 및 불변성을 보장하기 위하여, 거래 서비스는 블록체인 네트워크를 통하여 제공될 수 있다. 그러나 블록체인의 종류에 따라 거래가 수행될 때 많은 트랜잭션 수수료(transaction fee)가 부과될 수 있다.
트랜잭션 수수료를 부과하는 블록체인 기반의 거래 시스템에서, 예를 들어 주문(예: 구매 주문(buy order), 판매 주문(sell order))을 생성하는 트랜잭션, 주문을 취소하는 트랜잭션과 같이 거래가 아직 성사되기 전에 발생하는 트랜잭션들에도 트랜잭션 수수료가 부과될 수 있다. 따라서 모든 트랜잭션이 블록체인 네트워크를 통해 처리된다면, 거래 서비스의 제공자 또는 사용자는 과도한 트랜잭션 수수료를 부담해야 할 수 있다.
트랜잭션 수수료는 그 블록체인의 네이티브 통화(native currency)로 지불 되어야 한다. 사용자는 거래 시스템을 이용하기 위하여 네이티브 통화를 직접 구매하고, 구매한 네이티브 통화를 통하여 트랜잭션 수수료를 지불해야 한다. 이는 사용자에게 큰 불편을 줄 수 있다.
트랜잭션 처리 속도는 블록체인의 블록 생성 주기에 영향을 받을 수 있다. 일반적인 블록체인에서의 블록 생성 시간(예: 이더리움: 14초, 비트코인: 10분)은 중앙 서버에서 거래가 이루어지는 중앙화 거래소에 비해 매우 길다. 이처럼 블록체인 네트워크의 트랜잭션 처리 속도가 느린 경우, 그 블록체인 기반의 거래 시스템은 상용화되기 어렵다.
본 문서에서 개시되는 다양한 실시 예들은, 블록체인 기반으로 거래 내역의 불변성 및 투명성을 제공하면서도, 상술한 문제점을 해결할 수 있는 거래 시스템을 제공하고자 한다.
본 문서에 개시되는 일 실시 예에 따른 시스템은 자산 거래를 위한 복수의 트랜잭션들을 처리하는 자산 거래 서비스를 제공할 수 있다. 시스템은 복수의 컴퓨팅 장치를 포함하는 블록체인 네트워크, 상기 블록체인 네트워크는 제1 네트워크 인터페이스를 통하여 상기 복수의 컴퓨팅 장치에 포함되는 적어도 하나의 제1 프로세서, 및 적어도 하나의 제1 메모리와 동작 가능하도록 연결되고, 상기 적어도 하나의 제1 메모리에 블록체인이 저장될 수 있고, 상기 블록체인 네트워크와 통신하도록 설정된 제2 네트워크 인터페이스, 및 적어도 하나의 제2 프로세서를 포함하는 서버, 및 분산 저장소를 포함하고, 상기 적어도 하나의 제1 프로세서는, 상기 자산 거래 서비스를 통하여 상기 블록체인 네트워크에 등록된 계좌에 의하여 암호화 서명된 입금 트랜잭션 또는 출금 확인 트랜잭션을 수신하고, 상기 입금 요청 트랜잭션 또는 상기 출금확인 트랜잭션을 처리하고, 상기 블록체인에 기록하도록 설정되고, 상기 적어도 하나의 제2 프로세서는, 상기 계좌에 의하여 암호화 서명되고, 상기 복수의 트랜잭션들 중 상기 입금 트랜잭션 및 상기 출금 확인 트랜잭션이 아닌 거래 트랜잭션을 상기 자산 거래 서비스를 통하여 수신하거나, 생성하고, 상기 수신되거나 생성된 거래 트랜잭션을 처리하도록 설정되고, 상기 분산 저장소는 상기 수신되거나 생성된 거래 트랜잭션을 저장하도록 설정될 수 있다.
본 문서에 개시되는 실시 예들에 따른 거래 시스템은 일부 트랜잭션을 블록체인 밖에서 처리함으로써, 트랜잭션 수수료를 줄이고 트랜잭션의 처리 속도를 증가시킬 수 있다. 동시에 거래 시스템은 블록체인 밖에서 처리되는 트랜잭션의 데이터에 대하여 불변성 및 투명성을 보장할 수 있다.
본 문서에 개시되는 실시 예들에 따른 거래 시스템은 그 자체의 통화 토큰을 발행함으로써 사용자의 편의를 제공할 수 있다. 사용자는 원화, 달러 등의 각 나라의 화폐로서 통화 토큰을 구매하고 거래 시스템을 이용할 수 있다. 사용자는 네이티브 통화를 구매할 필요가 없다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1a는 일 실시 예에 따른 블록체인 기반의 거래 시스템을 나타낸다.
도 1b는 다양한 실시 예에 따른 블록체인 기반의 거래 시스템을 설명하기 위한 도면이다.
도 1c는 다양한 실시 예에 따른 블록체인 네트워크의 구조를 설명하기 위한 도면이다.
도 1d는 일 실시 예에 따른 거래소 서버의 블록도이다.
도 2는 일 실시 예에 따른 거래 시스템에서 발생하는 거래 트랜잭션의 시퀀스의 일 예시와, 출금 요청 발생에 따라 수행되는 정산 절차를 설명하기 위한 도면이다.
도 3은 일 실시 예에 따라 분산 저장소에 저장되는 거래 내역에 대한 불변성과 투명성을 보장하는 거래 내역 저장 방법을 설명하기 위한 도면이다.
도 4는 다양한 실시 예에 따른 거래 시스템으로의 입금 방법의 시퀀스도이다.
도 5는 다양한 실시 예에 따른 자산 거래 방법의 시퀀스도이다.
도 6은 다양한 실시 예에 따른 거래 시스템으로부터의 출금 방법의 시퀀스도이다.
도 7은 다양한 실시 예에서 초기에 자산 지분 토큰을 분배하는 방법을 설명하기 위한 도면이다.
도 8은 다양한 실시 예에서 자산 인수(acquisition) 및 지분홀더(shareholder)의 투표 시스템을 설명하기 위한 도면이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
도 1a은 일 실시 예에 따른 블록체인 기반의 거래 시스템을 나타낸다. 도 1b는 다양한 실시 예에 따른 블록체인 기반의 거래 시스템을 설명하기 위한 도면이다. 도 1c는 다양한 실시 예에 따른 블록체인 네트워크의 구조를 설명하기 위한 도면이다. 도 1d는 일 실시 예에 따른 거래소 서버의 블록도이다.
이하, 도 1a 내지 도 1d를 참조하여 본 발명의 일 실시 예에 따른 거래 시스템이 설명된다.
도 1a를 참조하면, 일 실시 예에 따른 자산 거래 서비스를 제공하는 거래 시스템(10)은 블록체인 네트워크(100), 거래 서버(200), 분산 저장소(distributed storage)(300)를 포함할 수 있다.
거래 시스템(10)은 디앱(Dapp, decentralized application)(70)을 통하여 사용자에게 자산 거래 서비스를 제공할 수 있다. 사용자는 예를 들어, 사용자의 단말(예: PC, 스마트폰 등의 전자 장치)의 디앱(70)을 실행하고 자산 거래 서비스를 이용할 수 있다.
자산 거래 서비스란, 부동산, 미술 작품과 같은 자산에 대한 교환 거래를 제공하는 서비스로 참조될 수 있다. 예를 들어, 거래 시스템(10)은 자산을 토큰화하고, 그 토큰을 발행하고 관리함으로써 자산에 대한 교환 거래 서비스를 제공할 수 있다.
다양한 실시 예에서, 거래 시스템(10)에 의하여 제공되는 거래 서비스는 서로 다른 종류의 토큰 간의 교환 거래로 확장될 수 있다. 예를 들어, 서로 다른 스마트컨트랙트를 통하여 발행되는 서로 다른 토큰 간의 교환 거래 서비스는 본 발명에 따른 거래 시스템(10)에 의하여 제공될 수 있다.
다양한 실시 예에서, 본 문서에서 개시되는 거래 시스템(10)은 통상의 기술자에 의하여 자산 외의 다른 재화에 대한 교환 서비스에도 확장되어 적용될 수 있다. 예를 들어, 거래 시스템(10)은 서로 다른 암호화 통화 자체 사이의 상호 교환 거래 서비스를 제공할 수 있다. 서로 다른 토큰간의 교환 거래는 서로 다른 암호화 통화간의 교환 거래에 마찬가지로 적용될 수 있다. 다른 예에서, 거래 시스템(10)은 채권, 증권, 특허권, 상표권 등의 채권적 권리를 토큰화하고, 그 토큰을 발행하고 관리함으로써 상기 권리들에 대한 교환 거래 서비스를 제공할 수 있다.
일 실시 예에서, 거래 시스템(10)은 자산에 대응되는 토큰을 발행할 수 있다. 부동산, 미술 작품과 같은 자산은 토큰화 되어 거래 시스템(10)에 의하여 거래될 수 있다. 이하, 토큰화된 자산은 자산 지분 토큰(asset share token)으로 참조될 수 있다. 예를 들어, 사용자는 팔고자 하는 자산을 등록하고, 상기 자산에 대응되는 자산 지분 토큰들을 받을 수 있다.
거래 시스템(10)은 거래 서비스에서 이용되는 통화에 대응되는 토큰을 발행할 수 있다. 이하, 상기 토큰은 통화 토큰(currency token)으로 참조될 수 있다. 사용자는 거래 시스템(10)에 원화를 입금하고, 입금된 원화 양에 대응되는 통화 토큰을 받을 수 있다. 사용자는 통화 토큰을 이용하여 자산 지분 토큰을 구매할 수 있다.
거래 시스템(10)은 자산 교환 거래를 지원할 수 있다. 예를 들어, 사용자는 통화 토큰을 이용하여 자산 지분 토큰을 구매함으로써, 자산 지분 토큰에 대응되는 자산의 일부 또는 전부를 구매할 수 있다. 사용자는 자산 지분 토큰을 이용하여 통화 토큰을 구매함으로써, 소유한 자산의 일부 또는 전부를 판매할 수 있다
일 실시 예에서, 거래 시스템(10)은 블록체인 네트워크(100)의 계좌 자체를 거래 시스템(10)의 사용자 계좌로 사용할 수 있다. 따라서 거래 시스템(10)의 사용자 계좌는 클라이언트 측에서 거래서 서버(200)의 간섭(intervention) 없이 독립적으로 생성할 수 있다. 기존의 중앙화된 거래 시스템에서는 사용자가 가입하고 로그인 (sign-up/ sign-in)하고, 중앙화된 데이터베이스에 관련 정보를 저장한다. 이에 따라 사용자의 계좌를 포함한 관련 정보는 중앙화된 서버에 의하여 제어 및 관리되게 된다. 그러나 분산화된 거래 시스템에서 사용자의 계좌는 사용자에 의하여 완전히 제어될 수 있다.
도 1b를 참조하면, 일 실시 예에 따른 거래 시스템(10)은 블록체인 네트워크(100)를 통하여 거래 서비스가 구현된 적어도 하나의 스마트컨트랙트를 제공할 수 있다. 상기 스마트컨트랙트는 거래 서비스를 제공할 수 있도록 구현될 수 있고, 구현된 스마트컨트랙트는 블록체인 네트워크(100)에 배포될 수 있다.
예를 들어, 거래 시스템(10)은 공유 자산을 생성하는 자산 지분 스마트컨트랙트(1), 통화 토큰을 관리하는 통화 토큰 스마트컨트랙트(2), 및 자산 거래를 위한 거래소 스마트컨트랙트(3)를 제공할 수 있다. 예를 들어, 거래 시스템(10)이 이더리움 네트워크를 기반으로 구현된 경우, 스마트컨트랙트는 ERC 20 토큰 및 ERC 223 토큰에 호환 가능하도록 구현될 수 있다.
자산 지분 스마트컨트랙트(1)는 자산 지분 스마트컨트랙트(1)의 자산 지분 토큰 계정의 잔액 장부, 자산 지분 토큰의 이동(예: 자산 지분 토큰 입금 및 거래소 스마트컨트랙트(3)로의 출금), 초기의 자산 지분 토큰 발행을 위한 기능을 제공할 수 있다.
통화 토큰 스마트컨트랙트(2)는 통화 토큰 스마트컨트랙트(2)의 통화 토큰 계정의 잔액 장부, 통화 토큰의 이동(예: 통화 토큰의 입금 및 거래소 스마트컨트랙트(3)로의 출금), 통화 토큰의 발행 및 교환(redeeming)을 위한 기능을 제공할 수 있다.
다양한 실시 예에서, 통화 토큰 스마트컨트랙트(2)에 의하여 발행되는 통화 토큰은 거래 시스템(10)이 운영되는 나라의 화폐에 대응되도록 구현될 수 있다. 예를 들어, 한국에서 발행되는 원화에 대응되는 dKRW 토큰은 한국에서 운영되는 은행의 은행 계좌의 잔고에 비례하여 발행될 수 있다. 별도의 서버(예: 도 1d의 dKRW 서버)는 은행과 블록체인 네트워크(100)사이에서 중개 동작, 예를 들면 은행으로부터 원화 입금 여부 확인, 은행 계좌의 잔고 확인, 통화 토튼 스마트컨트랙트(2)로의 입금 트랜잭션 전달 등의 동작을 수행할 수 있다.
거래소 스마트컨트랙트(3)는 거래를 위하여 자산 지분 스마트컨트랙트(1)로부터 자산 지분 토큰을 이전(transfer) 받을 수 있고, 통화 토큰 스마트컨트랙트(2)로부터 통화 토큰을 이전(transfer) 받을 수 있다. 또한 거래소 스마트컨트랙트(3)는 자산 지분 토큰 및 통화 토큰의 출금 기능을 제공할 수 있다.
다양한 실시 예에서, 자산 거래 서비스의 사용자는 자산 지분 토큰 또는 통화 토큰을 입금(deposit)하고, 입금된 토큰의 한도 내에서 자산 교환 거래를 수행할 수 있다. 자산 지분 토큰과 통화 토큰은 거래소 스마트컨트랙트(3)로 입금될 수 있고, 입금 내역은 블록체인 네트워크(100)에 기록된다. 거래소 스마트컨트랙트(3)에 대한 입금 내역은 거래소 서버(200)에게 제공될 수 있다. 예를 들어 거래소 스마트컨트랙트(3)는 입금에 대한 로그 데이터를 생성하고, 블록체인(55)에 기록할 수 있다. 거래소 서버(200)는 기록된 로그 데이터를 참조할 수 있다. 이로서, 거래소 스마트컨트랙트(3) 상의 토큰의 잔액과 거래소 서버(200) 상의 거래소 계좌 사이의 동기화가 이루어질 수 있다. 거래소 서버(200)는 거래소 계좌에 입금된 토큰들의 잔고를 기준으로 사용자의 거래 관련 요청을 처리할 수 있다. 거래소 서버(200)는 출금 요청이 발생되면, 출금 요청이 발생된 양의 토큰을 거래소 계좌에서 출금할 수 있다. 출금 과정에 대한 구체적 내용은 도 2를 통화여 후술된다.
거래 시스템(10)에서 이루어지는 모든 거래들은 거래 당사자의 블록체인 네트워크(100) 계정(예: 이더리움 계정)의 개인 키(private key)에 의하여 암호화 서명될 수 있다(cryptographically signed). 암호화 서명을 통해, 특정 블록체인 네트워크(100) 계좌의 소유자에 의하여 발생된 거래들이 식별될 수 있다. 예를 들어 블록체인 네트워크(100)의 계정은 이미 공개된 암호화 알고리즘(예: secp256k 타원 곡선 암호화 알고리즘)에 의하여 생성된 공개키 및 일반 키로 참조될 수 있다. 이하, 특정 계좌에 의하여 서명된 트랜잭션들은 상기 특정 계좌에 맵핑된 트랜잭션들로 참조될 수 있다.
사용자가 특정 거래를 요청하면, 상기 사용자의 개인 키에 의하여 암호되고 상기 요청된 거래에 대응되는 트랜잭션이 발생될 수 있다. 거래 시스템(10)은 상기 트랜잭션을 처리하고, 기록할 수 있다.
일 실시 예에서, 거래 시스템(10)에서 발생하는 트랜잭션들의 일부는 블록체인 네트워크(100)를 통하여 블록체인 상(on blockchain)에서 처리될 수 있고, 나머지 일부는 거래소 서버(200)를 통하여 블록체인 밖(off block chain)에서 처리될 수 있다. 모든 트랜잭션이 블록체인 상에서 처리되면 과도한 트랜잭션 수수료가 발생할 수 있고, 처리 지연이 발생할 수 있다. 따라서 본 문서에서 개시되는 거래 시스템(10)은 일부 트랜잭션을 블록체인 밖에서 처리함으로써 수수료를 감소시키고, 빠른 처리를 수행할 수 있다.
도 1c를 참조하면, 블록체인 네트워크(100)는 네트워크를 통하여 서로 연결된 복수 개의 컴퓨팅 장치들(50)(피어 또는 노드)을 포함하는 피어 투 피어 네트워크로 참조될 수 있다. 상기 복수 개의 컴퓨팅 장치들(50)은 하나의 공공 원장(public ledger)을 가질 수 있다. 블록체인 네트워크(100)는 하나의 공공 원장(public ledger)이 복수 개의 컴퓨팅 장치들(50) 각각에 의하여 생성되는 점에서 분산 네트워크로 참조될 수 있다. 상기 하나의 공공 원장은 블록체인(55)으로 참조될 수 있다. 블록체인 네트워크(100)는 트랜잭션을 처리하고 블록체인(55)에 기록할 수 있다. 예를 들어, 블록체인 네트워크(100)는 자산 지분 스마트컨트랙트(1), 통화 토큰 스마트컨트랙트(2), 및 교환(exchange) 스마트컨트랙트(3)에서 정의된 트랜잭션들을 처리하고 블록체인(55)에 기록할 수 있다.
도 1d를 참조하면, 일 실시 예에 따른 거래소 서버(200)는 프로세서(210), 메모리(220), 및 통신 인터페이스(230)를 포함할 수 있다. 프로세서(210)는 거래소 서버(200)의 전반적인 동작을 제어할 수 있다. 프로세서(210)는 트랜잭션 처리 모듈(215)을 포함할 수 있다. 예를 들어, 프로세서(210)는 메모리(140)에 저장된 명령어들을 실행하여 트랜잭션 처리 모듈(215)을 구동시킬 수 있다. 트랜잭션 처리 모듈(215)에 의하여 수행되는 동작은 프로세서(210)에 의하여 수행되는 동작으로 이해될 수 있다. 거래소 서버(200)는 통신 인터페이스(230)를 통하여 블록체인 네트워크(100) 및 분산 저장소(300)와 통신을 수행할 수 있다. 거래소 서버(200)의 프로세서(210)는 발생된 트랜잭션을 처리하고, 상기 트랜잭션 또는 상기 트랜잭션의 처리 결과를 통신 인터페이스(230)를 통하여 분산 저장소(300)로 송신할 수 있다. 분산 저장소(300)는 수신한 트랜잭션을 저장할 수 있다.
상술한 바와 같이, 블록체인 네트워크(100)에 의하여 처리된 트랜잭션은 블록체인(55)에 저장될 수 있고, 거래소 서버(200)에 의하여 처리된 트랜잭션은 분산 저장소(300)에 저장될 수 있다. 블록체인 네트워크(100) 또는 분산 저장소(300)에 저장된 트랜잭션들은 불변성과 투명성을 가질 수 있다.
분산 저장소(300)는 저장된 데이터들에 대한 불변성 및 투명성을 보장할 수 있다. 분산 저장소(300)는 예를 들어, IPFS(InterPlanetary File System)으로 참조될 수 있다. IPFS에 게재된(published) 데이터에 대한 불변성은 merkle directed acyclic graph (DAG) 구조에 의하여 보장될 수 있다. 누구나 저장된 데이터들의 주소 값(예: 해시 주소 값)을 통하여 상기 저장된 데이터들에 접근할 수 있다. 사용자들은 분산 저장소(300)에 저장된 모든 거래 내역을 확인하고 감시할 수 있다. 이와 관련된 구체적 내용은 도 4를 참조하여 후술된다.
거래 시스템(10)은 분산 저장소(300)에 모든 거래 내역을 저장함으로써, 거래소 서버(200)에 의하여 처리되는 트랜잭션들에 대하여도 투명성과 불변성을 보장할 수 있다.
도 2는 일 실시 예에 따른 거래 시스템에서 발생하는 거래 트랜잭션의 시퀀스의 일 예시와, 출금 요청 발생에 따라 수행되는 정산 절차를 설명하기 위한 도면이다.
일 실시 예에 따른 거래 시스템(10)은 다양한 트랜잭션들을 제공할 수 있다. 예를 들어, 트랜잭션들은 구매 주문(buy order), 판매 주문(sell order), 교환 구매(trade buy), 교환 판매(trade sell), 구매 주문 취소(cancel buy order), 판매 주문 취소(cancel sell order), 입금(deposit), 출금 요청(withdrawal request), 출금 요청 취소(cancel withdrawal request), 출금 확인(withdrawal confirm)을 포함할 수 있다. 그러나 상술된 트랜잭션들은 예시적이며, 상기 트랜잭션들의 일부는 통합되어 하나의 트랜잭션으로 구현되거나, 하나의 트랜잭션이 여러 트랜잭션으로 분리되어 구현될 수 있다.
모든 트랜잭션들은 순차적으로 발생될 수 있다. 순차적으로 발생된 모든 트랜잭션들은 블록체인 네트워크(100) 또는 거래소 서버(200)에 의하여 처리될 수 있고, 블록체인(55) 및/또는 분산 저장소(300)에 저장될 수 있다.
도 2의 (1)을 참조하면, 예를 들어 사용자 A의 자산 지분 토큰 입금 트랜잭션, 사용자 B의 통화 토큰의 입금 트랜잭션, 사용자 B의 구매 주문 트랜잭션, 사용자 A의 판매 주문 트랜잭션, 사용자 A와 사용자 B의 교환 트랜잭션, 사용자 C의 취소 요청 트랜잭션, 사용자 A의 출금 요청 트랜잭션, 사용자 A의 출금 확인 트랜잭션이 순차적으로 발생되었다. 거래 시스템(10)은 상기 트랜잭션들을 순차적으로 처리할 수 있다.
구매 주문 및 판매 주문 트랜잭션
일 실시 예에서, 구매 주문 및 판매 주문은 사용자에 의하여 만들어질 수 있다. 암호화 서명된 구매 주문 트랜잭션 및 판매 주문 트랜잭션은 거래소 서버(200)에 의하여 처리될 수 있고, 분산 저장소(300)에 게재될 수 있다(published).
거래 트랜잭션
일 실시 예에서, 거래소 서버(200)는 사용자들의 구매 주문 및 판매 주문을 수집하고 매칭할 수 있다. 매칭된 구매 주문 및 판매 주문은 유효한 거래 트랜잭션을 발생시킬 수 있다. 거래소 서버(200)는 거래 트랜잭션에 암호화 서명하고, 분산 저장소(300)로 송신할 수 있다.
예를 들어 도 2의 (1)에서, 거래소 서버(200)는 사용자 A의 판매 주문 트랜잭션과 사용자 B의 구매 주문 트랜잭션을 매칭하여 자산 지분 토큰과 통화 토큰을 이동하도록 하는 거래(Trade) 트랜잭션을 발생시킬 수 있다. 거래소 서버(200)는 거래 트랜잭션 데이터를 거래소 서버(200)의 개인 키로 암호화 서명하여 분산 저장소(300)에 거래 트랜잭션을 저장할 수 있다. 이러한 거래는 블록체인 밖에서 이루어지므로, 사용자 A와 사용자 B 모두 블록체인 트랜잭션 수수료를 부담할 필요가 없다.
구매 주문 취소 및 판매 주문 취소 트랜잭션
일 실시 예에서, 사용자는 구매 주문 취소 및 판매 주문 취소를 통하여 오픈된 구매 주문 및 판매 주문을 취소할 수 있다. 암호화 서명된 구매 주문 취소 트랜잭션 또는 판매 주문 취소 트랜잭션은 거래소 서버(200)에 의하여 처리되고, 분산 저장소(300)에 게재될 수 있다.
입금 트랜잭션
일 실시 예에서, 사용자는 사용자의 통화 토큰 또는 자산 지분 토큰을 자산 거래를 위하여 입금할 수 있다. 예를 들어, 사용자가 디앱(70)을 통하여 통화 토큰 또는 자산 지분 토큰의 입금을 요청하면, 거래 시스템(10)은 입금 트랜잭션을 포함하는 메시지를 수신할 수 있다.
예를 들어, 사용자는 자산 지분 스마트컨트랙트(1)를 통하여 발행된 자산 지분 토큰을 거래소 스마트컨트랙트(3)로 입금할 수 있다. 또는 사용자는 통화 토큰 스마트컨트랙트(2)를 통하여 발행된 통화 토큰을 거래소 스마트컨트랙트(3)로 입금할 수 있다. 토큰이 이전될 때마다, 거래소 스마트컨트랙트(3)는 입금 이벤트 로그를 생성할 수 있다. 거래소 서버(200)는 모든 입금 트랜잭션을 모니터링 할 수 있다. 입금 트랜잭션은 스마트컨트랙트를 통하여 수행될 수 있다. 따라서 입금 트랜잭션은 블록체인 네트워크(100)를 통하여 수행되고, 블록체인(55)에 기록될 수 있다. 이때, 트랜잭션 수수료가 발생된다. 입금 트랜잭션과 관련된 내용은 도 4를 참조하여 후술된다.
다양한 실시 예에서, 거래소 서버(200)는 트랜잭션 수수료를 위한 네이티브 통화를 보유할 수 있다. 거래소 서버(200)는 보유한 네이티브 통화로 트랜잭션 수수료를 지불할 수 있다. 거래소 서버(200)는 사용자가 가진 통화 토큰으로부터 지불한 수수료를 보상받을 수 있다. 사용자는 블록체인 네트워크(100)의 네이티브 통화를 소유하지 않더라도 블록체인 네트워크(100)를 통해 이루어지는 입금 트랜잭션을 수행할 수 있다.
출금 요청 트랜잭션
일 실시 예에서, 사용자는 거래소 계좌의 통화 토큰 또는 자산 지분 토큰에 대한 출금을 요청할 수 있다. 예를 들어, 사용자가 디앱(70)을 통하여 통화 토큰 또는 자산 지분 토큰의 출금을 요청하면, 거래 시스템(100)은 출금 요청 트랜잭션을 포함하는 메시지를 수신할 수 있다. 출금 요청이 수신되면, 거래소 계좌는 잠길 수 있다(locked).
예를 들어, 사용자는 거래소 스마트컨트랙트(3)상의 토큰들에 대하여 출금을 요청할 수 있다. 사용자는 통화 토큰의 양, 또는 자산 지분 토큰의 양, 그리고 출금을 위하여 필요한 트랜잭션 수수료를 명시하고, 출금을 요청할 수 있다.
출금 요청 트랜잭션이 발생되면, 계좌 잔고 정산 절차(account balance settlement procedure)가 실행될 수 있다. 출금 요청 트랜잭션은 암호화 서명되고 분산 저장소(300)에 저장될 수 있다. 도 2의 (1)을 참조하면 사용자 A의 출금 요청 트랜잭션이 발생되었을 때, 사용자 A와 거래소 서버(200)사이의 계좌 잔액 정산 절차가 개시될 수 있다.
출금 확인 트랜잭션
계좌 잔고 정산 절차는 사용자의 거래소 계좌의 현재 토큰 잔고에 대한 동의와 확인을 위하여 거래소 서버(200)와 사용자 사이에서 수행될 수 있다. 거래소 서버(200)는 정산을 수행하고, 정산 결과 계산된 현재 잔액에 대하여 출금 확인 트랜잭션을 발생시킬 수 있다. 출금 확인 트랜잭션은 블록체인 네트워크(100)에 의하여 처리될 수 있다.
일 실시 예에서, 거래소 서버(200)는 정산 절차를 수행하고 정산 데이터 파일을 생성할 수 있다. 생성된 정산 데이터 파일은 분산 저장소(300)에 저장될 수 있다. 거래소 서버(200)는 분산 저장소(300) 상의 정산 데이터 파일의 주소 값을 블록체인(55)에 기록할 수 있다.
도 2의 (2)를 참조하면, 출금 요청 트랜잭션(25)이 발생하면, 거래소 서버(200)는 정산 절차를 수행할 수 있다. 출금 요청 트랜잭션(25)에 따라 생성되는 정산 데이터 파일(33)은 분산 저장소(300)에 저장될 수 있다.
예를 들어, 분산 저장소(300)의 정산 데이터 파일(31)은 출금 요청 트랜잭션(21)의 발생에 응답하여 생성된 것으로 참조될 수 있다. 거래소 서버(200)는 이전의 정산 데이터 파일(31), 출금 요청 트랜잭션(21) 이후에 발생된 트랜잭션들, 출금 확인 트랜잭션(23)의 발생시의 거래소 계좌의 잔액 등을 참조하여, 정산 데이터 파일(33)을 생성하고 분산 저장소(300)에 저장할 수 있다. 정산 데이터 파일(33)이 저장된 주소 값은 블록체인(55)에 기록될 수 있다.
예를 들어, 정산 데이터 파일(31, 33)은 출금이 요청된 토큰 타입과 개수, 트랜잭션 수수료, 출금 요청 아이디를 포함하는 출금 요청 데이터를 포함할 수 있다. 또한 정산 데이터 파일(31, 33)은 현재 거래소 계좌의 통화 토큰 또는 자산 지분 토큰의 잔고, 사용자의 현재 오픈된 구매/판매 주문, 최근의 계좌 잔고 정산 절차 이후의 모든 트랜잭션들, 최근의 계좌 잔고 정산시의 잔고, 최근의 계좌 잔고 정산 데이터의 분산 저장소(300) 내의 어드레스, 거래소 서버(200)의 암호화 서명을 포함할 수 있다.
일 실시 예에서, 거래소 서버(200)는 계좌 잔고 정산 절차를 수행하고, 최종 계좌 잔고에 대하여 사용자로부터 확인 및 동의를 요구할 수 있다. 거래소 서버(200)는 정산 결과 거래소 계좌의 잔액을 디앱(70)을 통하여 표시하고, 상기 표시에 응답하여 사용자로부터 확인 입력을 수신할 수 있다. 이때, 암호화 서명된 출금 확인 트랜잭션이 발생될 수 있다. 블록체인 네트워크(100)는 출금 확인 트랜잭션을 처리하고, 블록체인(55)에 기록할 수 있다.
다양한 실시 예에서, 사용자는 직접 블록체인 네트워크(100) 및 분산 저장소(300)를 참조하여 정신 결과를 인증할 수도 있다(validate). 또는, 정산 데이터를 확인하는 절차는 제3 자(3rd party)에 의하여 제공될 수 있다.
다양한 실시 예에서, 거래소 서버(200)는 보유한 네이티브 통화로 출금 확인 트랜잭션에 대한 수수료를 지불할 수 있다. 거래소 서버(200)는 사용자가 가진 통화 토큰으로부터 지불한 수수료를 보상받을 수 있다. 사용자는 블록체인 네트워크(100)의 네이티브 통화를 소유하지 않더라도 블록체인 네트워크(100)를 통해 이루어지는 출금 확인 트랜잭션을 수행할 수 있다.
출금 요청 취소 트랜잭션
다양한 실시 예에서, 사용자는 계좌 잔고 정산 절차의 실행이 완료되기 전에 출금 요청을 취소할 수 있다. 출금 요청이 취소되면, 거래소 서버(200)는 출금 취소 요청 트랜잭션을 처리하고, 분산 저장소(300)에 저장할 수 있다.
도 3은 일 실시 예에 따라 분산 저장소에 저장되는 거래 내역에 대한 불변성과 투명성을 보장하는 거래 내역 저장 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 거래 시스템(10)에서 발생되는 트랜잭션들은 분산 저장소(300)에 저장될 수 있고, 분산 저장소(300)에 저장된 여러 트랜잭션들은 미리 정해진 주기마다 그룹화되어 분산 저장소(300)에 저장될 수 있다. 그룹 파일(301, 303)은 일정 시간 동안 발생한 복수의 트랜잭션들을 포함할 수 있다. 그룹 파일(301, 303)은 각각의 그룹 파일(301, 303)에 포함된 복수의 트랜잭션들의 주소 값 리스트(예: 해시 값 리스트)를 저장할 수 있다.
분산 저장소(300)에 저장되는 그룹 파일(301, 303)은 일정한 해시 알고리즘(예: SHA-1)에 의해 산출되는 고유의 해시 값을 가질 수 있다. 그룹 파일(301, 303)의 해시 값은 그룹 파일(301, 303)에 포함되는 데이터들에 대응되는 고유한 값으로 참조될 수 있다. 따라서 그룹 파일(301, 303)에 포함되는 데이터들의 일부가 변조되면, 그룹 파일(301, 303)에 대한 해시 값도 상이해질 수 있다.
일 실시 예에서, 분산 저장소(300)에 저장된 거래 내역의 불변성은, 각 그룹 파일(301, 303)의 해시 값을 이용하여 각 그룹 파일(301, 303)을 체인화함으로써 달성될 수 있다.
예를 들어, 각각의 그룹 파일들(301, 303)이 저장된 분산 저장소(300)내의 주소는 해시 값으로 표현될 수 있다. 그룹 파일들(301, 303)은 각각 선행하는 그룹 파일의 해시 값을 가질 수 있다. 이에 따라, 그룹 파일들(301, 303)은 해시 링크를 통하여 체인화될 수 있다. 예를 들어, 그룹 파일(303)는 그룹 파일(301)의 해시 값을 가짐으로써 그룹 파일(301)을 가리키게 되고, 그룹 파일(301)과 체인을 형성할 수 있다. 이에 따라 분산 저장소(200)의 그룹 파일들(301, 303)은 블록체인(55)의 블록들과 유사한 구조를 형성할 수 있다.
만약 특정 그룹 파일이 위, 변조되어 다른 해시 값을 가지게 되면, 위, 변조된 특정 그룹 파일의 후속 그룹 파일이 가지는 해시 값은 더 이상 유효한 주소 값을 나타낼 수 없다. 따라서 위, 변조된 그룹 파일과 그 후속 그룹 파일은 더 이상 체인을 구성할 수 없게 된다. 분산 저장소(300)에 저장된 그룹 파일들(301, 303)이 체인을 구성하지 않게 되면, 사용자는 분산 저장소(300)의 데이터에 위조, 변조가 일어났음을 인식할 수 있다.
일 실시 예에서, 분산 저장소(300)에 저장된 거래 내역의 불변성은, 그룹 파일(301, 303)의 해시 값을 블록체인 네트워크(100)의 블록체인(55)에 저장함으로써 달성될 수 있다.
예를 들어, 그룹 파일(301, 303)의 해시 값은 블록체인(55)에 저장될 수 있다. 그룹 파일(301, 303)의 해시 값이 블록체인 네트워크(100)에 저장되면, 누구나 블록체인 네트워크(100)에 접근하고, 해시 값을 확인할 수 있다. 예를 들어 사용자는 블록체인(55)에 저장된 해시 값과 분산 저장소(300)에 저장된 그룹 파일(301, 303)의 해시 값을 비교함으로써, 그룹 파일(301, 303)의 조작 여부를 검증할 수 있다. 만약 그룹 파일(301, 303)에 포함된 데이터가 조작된 경우라면, 블록체인(55)에 저장된 해시 값은 더 이상 유효한 주소 값을 나타낼 수 없다. 분산 저장소(300)는 블록체인(55)에 기록된 해시 값을 통하여 분산 저장소(300)에 저장된 데이터들의 불변성을 보장할 수 있다.
다양한 실시 예에서, 사용자 또는 제3 자는 블록체인(55)에 기록된 해시 값이 나타내는 분산 저장소(300)의 특정 주소에 액세스함으로써, 분산 거래 시스템(10)에서 발생하는 모든 트랜잭션들의 확인할 수 있다. 이에 따라 분산 저장소(300)에 저장된 거래 내역들에 대하여 투명성을 제공할 수 있다.
다양한 실시 예에서, 사용자나 제3 자는 블록체인(55)에 기록된 해시 값을 이용하여 분산 저장소(300)에 액세스하고, 기 발생된 모든 트랜잭션들의 히스토리를 재구성할 수 있다. 이에 따라 거래소 서버(200)가 해킹에 의하여 손상되더라도 거래 내역 전부가 재구성될 수 있어 거래 시스템(10)은 기존의 중앙화된 거래 시스템에 비하여 높은 안전성을 가질 수 있다.
도 4는 다양한 실시 예에 따른 거래 시스템으로의 입금 방법의 시퀀스도이다. 도 5는 다양한 실시 예에 따른 자산 거래 방법의 시퀀스도이다. 도 6은 다양한 실시 예에 따른 거래 시스템으로부터의 출금 방법의 시퀀스도이다. 이하, 도 4 내지 도 6을 참조하여 거래 시스템(10)에서 수행되는 입금 절차, 거래 절차, 및 출금 절차를 시퀀스 도로서 설명한다.
다양한 실시 예에서, 사용자는 클라이언트 단말(75)(예: PC, 스마트폰, 태블릿 PC 등을 포함하는 전자 장치)에 자산 거래 서비스를 제공하는 디앱(70)을 설치하고, 상기 자산 거래 서비스를 통해 자산 교환 거래를 수행할 수 있다.
입금 절차
도 4를 참조하면, 클라이언트 단말(75)은 자산 지분 토큰 입금 요청이 발생하면(401), 사용자의 개인 키에 의하여 암호화 서명된 자산 지분 토큰 입금 트랜잭션을 블록체인 네트워크(100)의 자산 지분 스마트컨트랙트(1)에 송신할 수 있다(403). 예를 들어, 사용자가 디앱(70)을 통하여 자산 지분 토큰 입금을 요청할 수 있다. 자산 지분 토큰은 사용자의 자산 등록에 따라 블록체인 네트워크(100)의 자산 지분 스마트컨트랙트(1)에 의하여 발행될 수 있다. 자산 지분 스마트컨트랙트(1)는 자산 지분 토큰 입금 트랙잭션에 응답하여 자산 지분 토큰을 거래 스마트컨트랙트(3)로 이동시킬 수 있다(405). 거래 스마트컨트랙트(3)는 입금 이벤트 로그를 생성하고, 블록체인(55)에 저장할 수 있다(407).
클라이언트 단말(75)은 통화 토큰 입금 요청이 발생하면(409), 사용자의 개인 키에 의하여 암호화 서명된 통화 토큰 입금 트랜잭션을 블록체인 네트워크(100)의 통화 토큰 스마트컨트랙트(2)에 송신할 수 있다(411). 예를 들어 사용자가 디앱(70)을 통하여 통화 토큰 입금을 요청할 수 있다. 통화 토큰은 사용자의 원화 입금에 따라 통화 토큰 스마트컨트랙트(2)에 의하여 발행될 수 있다. 통화 토큰 스마트컨트랙트(2)는 통화 토큰 입금 트랜잭션에 응답하여 통화 토큰을 거래 스마트컨트랙트(3)로 이동시킬 수 있다(413). 거래 스마트컨트랙트(3)는 입금 이벤트 로그를 생성하고, 블록체인(55)에 저장할 수 있다(415).
거래 스마트컨트랙트(3)에 입금된 통화 토큰의 잔고 정보 및 자산 지분 토큰의 잔고 정보는 블록체인 네트워크(100)와 거래소 서버(200) 사이에서 동기화될 수 있다(417). 예를 들어, 거래소 서버(200)는 미리 정해진 주기마다, 또는 입금 트랜잭션이 발생될 때마다 블록체인(55)에 기록된 입금 이벤트 로그를 참조할 수 있다. 거래소 서버(200)는 거래소 계좌의 잔고를 입금 이벤트 로그에 따라 업데이트하고, 업데이트된 잔고를 기준으로 트랜잭션들을 처리할 수 있다. 예를 들어, 거래소 서버(200)는 거래소 계좌의 잔고에 대한 정보를 포함하는 거래소 계좌 데이터를 포함할 수 있다. 거래소 서버(200)는 입금 이벤트 로그에 따라서 상기 거래소 계좌 데이터를 갱신할 수 있다.
거래 절차
도 5를 참조하면, 클라이언트 단말(75)은 사용자의 개인 키에 의하여 암호화 서명된 거래 요청을 거래소 서버(200) 및 분산 저장소(300)로 송신할 수 있다(501, 503). 예를 들어 거래 요청은 구매 주문 트랜잭션, 판매 주문 트랜잭션, 출금 요청 트랜잭션, 또는 출금 요청 취소 트랜잭션을 포함하는 메시지로 참조될 수 있다. 거래소 서버(200)는 거래 요청에 대응되는 트랜잭션을 처리할 수 있다(506). 분산 저장소(300)는 거래 요청에 대응되는 암호화 서명된 트랜잭션을 저장할 수 있다(507).
거래소 서버(200)는 사용자의 구매 주문 및 판매 주문이 매칭됨에 따라 거래(trade) 트랜잭션을 발생시킬 수 있다. 이 과정은 도 2를 통하여 전술되었다. 이때 거래소 서버(200)는 발생된 거래 트랜잭션을 거래소 서버(200)의 개인 키로 암호화 서명하고 분산 저장소(300)로 송신할 수 있다. 분산 저장소(300)는 수신된 거래 트랜잭션을 저장할 수 있다.
분산 저장소(300)는 미리 정해진 주기마다 복수의 트랜잭션들을 포함하는 그룹 파일을 생성할 수 있다(509). 분산 저장소(300)는 그룹 파일의 주소 값을 블록체인 네트워크(100)로 송신할 수 있다(511). 블록체인 네트워크(100)는 블록체인(55)에 수신된 그룹 파일의 주소 값을 기록할 수 있다(517). 또는 분산 저장소(300)는 그룹 파일의 주소 값을 거래소 서버(200)로 송신할 수 있다(513). 거래소 서버(200)는 수신된 그룹 파일의 주소 값을 블록체인 네트워크(100)로 송신할 수 있다(517). 동작 511과 동작 513 내지 동작 515는 택일적으로 수행될 수 있다.
상술된 동작(501) 내지 동작(511)은 반복하여 수행될 수 있다. 반복되어 수행되는 동작(501) 내지 동작(511)에 따라 거래 시스템(10)에서 자산 거래가 이루어질 수 있다.
출금 절차
도 6을 참조하면, 클라이언트 단말(75)은 통화 토큰 또는 자산 지분 토큰에 대한 출금 요청이 발생하면, 개인 키에 의하여 암호화 서명된 출금 요청을 거래소 서버(200)로 송신할 수 있다(601). 거래소 서버(200)는 상기 개인 키에 대응되는 특정 사용자의 출금 요청을 수신하게 된다. 거래소 서버(200)는 출금 요청의 수신에 응답하여, 상기 특정 사용자에 대한 정산 절차를 수행할 수 있다(603 내지 613)
거래소 서버(200)는 분산 저장소(300)로부터 상기 특정 사용자의 트랜잭션 내역을 획득할 수 있다(603). 예를 들어, 상기 트랜잭션 내역은 특정 사용자의 이전 출금 요청 이후에 발생한 트랜잭션들의 목록으로 참조될 수 있다. 도 2의 (2)를 통하여 전술된 바와 같이, 거래소 서버(200)는 분산 저장소(300)로부터 특정 사용자의 이전의 정산 데이터 파일, 이전 출금 요청 트랜잭션 이후에 발생된 트랜잭션들에 대한 데이터 등을 획득하고, 정산 데이터 파일(예: 도 2의 정산 데이터 파일(31, 33))을 생성할 수 있다(605). 거래소 서버(200)는 생성된 정산 데이터 파일을 분산 저장소(300)로 송신할 수 있고(607), 분산 저장소(300)는 정산 데이터 파일을 저장할 수 있다(609).
정산 절차가 완료되면, 거래소 서버(200)는 정산 결과를 클라이언트 단말(75)로 송신할 수 있다(611). 정산 결과는 정산 데이터 파일에 포함된 정보를 포함할 수 있다. 클라이언트 단말(75)은 수신된 정산 결과에 대한 확인을 거래소 서버(200)로 송신할 수 있다(613). 거래소 서버(200)는 정산 결과에 대한 확인을 수신하면, 블록체인 네트워크(100)로 상기 특정 사용자의 개인 키로 암호화 서명된 출금 확인 트랜잭션을 송신할 수 있다(615). 블록체인 네트워크(100)는 출금 확인 트랜잭션을 처리하고, 블록체인(55)에 기록할 수 있다(617).
거래 시스템(10)에서, 입금 요청 트랜잭션 및 출금 확인 트랜잭션을 제외한 나머지 트랜잭션들을 거래소 서버(200)에 의하여 처리하여, 블록체인 네트워크(100)에 지불하는 수수료를 줄일 수 있다. 거래소 서버(200)에 의하여 처리되는 트랜잭션들은 분산 저장소(300)에 저장되고, 트랜잭션들이 저장된 분산 저장소(300)내의 주소 값은 블록체인 네트워크(100)에 기록될 수 있다. 따라서 모든 거래 내역은 블록체인(55) 및 분산 저장소(300)를 통하여 재구성 될 수 있고, 사용자에 의하여 감시될 수 있다.
도 7은 다양한 실시 예에서 초기에 자산 지분 토큰을 분배하는 방법을 설명하기 위한 도면이다.
다양한 실시 예에서, 초기에 거래 시스템(10)은 자산 지분 토큰들은 지분 가입 요청 메시지(share subscription request message)를 보낸 사용자들에게 분배할 수 있다. 지분 가입 요청 메시는 사용자가 구입하고자 하는 자산 지분 토큰의 양에 대한 정보를 포함할 수 있고, 초기 제공을 위한 통화 토큰의 양을 에스크로잉(escrowing)할 수 있다. 만약에 사용자의 거래소 계좌에 충분한 통화 토큰을 가지고 있지 않으면, 사용자는 거래 스마트컨트랙트(3)로 적절한 통화 토큰을 입금할 필요가 있다(703).
지분 가입 요청 메시지는 사용자의 블록체인 네트워크(100)의 계좌에 의하여 암호화 서명될 수 있다. 암호화 서명된 지분 가입 요청 메시지는 분산 저장소(300) 및 거래소 서버(200)로 송신될 수 있다(703).
초기의 지분 가입 기간이 끝나면, 거래소 서버(200)는 자산 지분 스마트컨트랙트(1)상에서 최종적으로 초기 분배를 요청 및 기록하기 위한 트랜잭션들을 수행할 수 있다(709). 상기 트랜잭션들은 사용자의 서명과 분산 거래소(300)에 저장된 통화 토큰의 현재 잔고를 증명하는 데이터(proof data)포함할 수 있다. 누적된 통화 토큰은 자산 목록 계좌에 의하여 출금이 가능하다. 사용자들은 초기 분배에 참여하기 위한 트랜잭션 수수료를 부담할 필요가 없다.
초과 가입(oversubscription)의 경우에는, 공정하고 투명하게 자산 지분 토큰이 임의 분배될 수 있다. 거래소 서버(200)는 블록체인 네트워크(100)로부터 시드 난수를 가져올 수 있다(fetch)(705). 예를 들어 시드 난수는 가입 종료 시점의 블록체인(55)의 블록 해시 값으로 참조될 수 있다. 시드 난수는 우승한 계정(winning account)과 할당된 지분의 양을 결정하기 위한 난수의 시퀀스를 생성하는데 이용될 수 있다.
거래소 서버(200)는 사용자 계정들 사이의 할당된 지분을 결정한 최종 결과를 생성하고 분산 거래소(300)에 저장할 수 있다(707). 분산 거래소(300)상의 최종 결과와 연관된 데이터의 주소 값(해시 값)은 자산 지분 스마트컨트랙트(1)에 기록될 수 있다(709). 초기 분배는 외부의 제3 자에 의하여 확인가능하고 감시될 수 있다.
도 8은 다양한 실시 예에서 자산 인수(acquisition) 및 지분홀더(shareholder)의 투표 시스템을 설명하기 위한 도면이다.
다양한 실시 예에서, 거래 시스템(10)에 등록된 특정 자산은 전부 구매될 수 있고, 그 후에 거래 시스템(10)에서 등록 해제(delisted)될 수 있다. 특정 자산에 대한 구매를 원하는 구매자는 자산 지분 스마트컨트랙트(1)에 에스크로(escrow)로서 통화 토큰을 입금시키고 그 특정 자산에 대한 인수를 제안할 수 있다(801). 제안된 가격(호가, bid price)은 거래소에서 거래되는 자산의 현재 시가 총액보다 커야 한다. 거래소 서버(200)가 유효한 인수 제안을 블록체인 네트워크(100)으로부터 인지하면(perceive), 상기 인수 제안은 모든 지분홀더들에게 공표될 수 있다. 모든 지분홀더 계좌는 수락(accept) 또는 거절(reject)하기 위한 투표를 할 수 있다. 각각의 지분홀더는 블록체인 네트워크(100)의 계좌로 암호화 서명하여 투표 메시지를 거래소 서버(200) 및 분산 저장소(300)에 송신할 수 있다(803).
투표 기간이 끝나기 전에 잠재적인 다른 구매자는 현재 제안된 가격을 초과하는 가격으로 인수를 제안할 수 있다. 추가 인수 제안이 발생하면, 이전의 투표는 취소되고 새로운 투표 기간이 시작될 수 있다. 최종 투표 기간이 끝나면, 거래소 서버(200)는 투표 결과를 집계하고(tallies up) 투표 결과와 관련된 데이터를 분산 저장소(300)에 저장할 수 있다(805). 분산 저장소(300)상의 주소 값은 자산 지분 컨트랙트(1)에 저장될 수 있다(807).
제안된 인수가 수락되면 모든 토큰홀더들은 제안된 가격 중 자신의 지분에 해당하는 자산 지분 토큰을 자산 지분 컨트랙트(1)로부터 인출할 수 있고(809), 판매된 자산은 거래 시스템(100)의 목록에서 등록 해제될 수 있다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 설정된(adapted to or configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 설정된 (또는 구성된) 프로세서"는 해당 동작들을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 AP)를 의미할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어(firmware)로 구성된 유닛(unit)을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다.
다양한 실시 예들에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체(예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램 모듈) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소를 더 포함할 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램 모듈)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른 모듈, 프로그램 모듈 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (20)

  1. 자산 거래를 위한 복수의 트랜잭션들을 처리하는 자산 거래 서비스를 제공하는 시스템에 있어서,
    복수의 컴퓨팅 장치를 포함하는 블록체인 네트워크, 상기 블록체인 네트워크는 제1 네트워크 인터페이스를 통하여 상기 복수의 컴퓨팅 장치에 포함되는 적어도 하나의 제1 프로세서, 및 적어도 하나의 제1 메모리와 동작 가능하도록 연결되고, 상기 적어도 하나의 제1 메모리에 블록체인이 저장됨; 및
    상기 블록체인 네트워크와 통신하도록 설정된 제2 네트워크 인터페이스; 및 적어도 하나의 제2 프로세서를 포함하는 서버; 및
    분산 저장소;를 포함하고,
    상기 적어도 하나의 제1 프로세서는,
    상기 자산 거래 서비스를 통하여 상기 블록체인 네트워크에 등록된 계좌에 의하여 암호화 서명된 입금 트랜잭션 또는 출금 확인 트랜잭션을 수신하고, 상기 입금 요청 트랜잭션 또는 상기 출금확인 트랜잭션을 처리하고, 상기 블록체인에 기록하도록 설정되고,
    상기 적어도 하나의 제2 프로세서는,
    상기 계좌에 의하여 암호화 서명되고, 상기 복수의 트랜잭션들 중 상기 입금 트랜잭션 및 상기 출금 확인 트랜잭션이 아닌 거래 트랜잭션을 상기 자산 거래 서비스를 통하여 수신하거나 생성하고, 상기 수신되거나 생성된 거래 트랜잭션을 처리하도록 설정되고,
    상기 분산 저장소는,
    상기 수신되거나 생성된 거래 트랜잭션을 저장하도록 설정된, 시스템.
  2. 청구항 1에 있어서,
    상기 적어도 하나의 제1 프로세서는,
    상기 블록체인 네트워크 상에 배포된 적어도 하나의 스마트컨트랙트를 통하여, 상기 자산 거래 서비스에서 거래 가능한 자산 지분 토큰 및 통화 토큰을 발행하도록 설정된, 시스템.
  3. 청구항 2에 있어서,
    상기 적어도 하나의 제2 프로세서는,
    상기 수신한 거래 트랜잭션에 기초하여, 상기 자산 지분 토큰 및 상기 통화 토큰 사이의 교환 트랜잭션을 생성하고,
    상기 계좌를 이용하여 상기 교환 트랜잭션에 암호화 서명하도록 설정된, 시스템.
  4. 청구항 2에 있어서,
    상기 적어도 하나의 제2 프로세서는,
    상기 입금 트랜잭션 및 상기 출금 트랜잭션의 처리에 따른 트랜잭션 수수료를 상기 서버에서 보유하는 네이티브 통화로서 지불하고,
    상기 지불된 네이티브 통화에 대응되는 상기 통화 토큰을 획득하도록 설정된, 시스템.
  5. 청구항 1에 있어서,
    상기 적어도 하나의 제1 프로세서는,
    상기 분산 저장소에 저장된 상기 거래 트랜잭션들이 저장된 주소 값을 획득하고,
    상기 획득한 주소 값을 상기 블록체인에 저장하도록 설정된, 시스템.
  6. 블록체인 네트워크와 동작 가능하도록 연결된 서버에 있어서,
    적어도 하나의 메모리;
    상기 블록체인 네트워크 및 분산 저장소와 통신하도록 설정된 네트워크 인터페이스; 및
    상기 블록체인 네트워크에 의하여 발행되는 토큰 간의 교환 거래 서비스를 제공하도록 설정된 적어도 하나의 프로세서;를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 교환 거래 서비스를 통하여 복수의 거래 트랜잭션들의 시퀀스가 수신되면, 상기 복수의 거래 트랜잭션들을 순차적으로 처리하고;
    상기 복수의 트랜잭션들이 저장된 상기 분산 저장소의 어드레스 값을 상기 네트워크 인터페이스를 통하여 상기 분산 저장소로부터 수신하고;
    상기 어드레스 값을 상기 블록체인 네트워크에 송신하도록 설정된, 서버.
  7. 청구항 6에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 교환 거래 서비스를 통하여 상기 블록체인 네트워크에 등록된 제1 계좌에 맵핑된 출금 요청 트랜잭션이 수신되면,
    상기 출금 요청 트랜잭션의 수신에 응답하여 상기 분산 저장소에 저장된 상기 제1 계좌에 맵핑된 상기 복수의 트랜잭션들을 기초로 정산 데이터 파일을 생성하고, 상기 생성된 정산 데이터 파일을 상기 분산 저장소에 송신하도록 설정된, 서버.
  8. 청구항 7에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 정산 데이터 파일의 적어도 일부를 상기 교환 거래 서비스를 통하여 상기 제1 계좌에 대응되는 클라이언트 단말로 송신하고,
    상기 클라이언트 단말로부터 확인 응답을 수신하면, 출금 확인 트랜잭션을 상기 블록체인 네트워크로 송신하도록 설정된, 서버.
  9. 청구항 8에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 출금 확인 트랜잭션을 상기 제1 계좌에 맵핑되도록 생성하도록 설정된, 서버.
  10. 청구항 6에 있어서,
    상기 적어도 하나의 프로세서는,
    미리 정해진 주기마다 상기 분산 저장소로부터 상기 미리 정해진 주기 동안 저장된 상기 복수의 트랜잭션들을 포함하는 그룹 파일의 상기 어드레스 값을 수신하도록 설정된, 서버.
  11. 청구항 6에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 블록체인 네트워크에 의하여 발행된 제1 토큰 및 제2 토큰 사이의 교환 거래를 위한 상기 복수의 거래 트랜잭션들을, 상기 블록체인에 기록된 상기 제1 토큰 및 상기 제2 토큰의 입금 내역 데이터를 기초로 처리하도록 설정된, 서버.
  12. 블록체인 네트워크와 동작 가능하도록 연결된 서버에 있어서,
    적어도 하나의 메모리;
    상기 블록체인 네트워크 및 분산 저장소와 통신하도록 설정된 네트워크 인터페이스; 및
    상기 블록체인 네트워크에 의하여 발행되는 제1 토큰 및 제2 토큰 사이의 교환 거래 서비스를 제공하도록 설정된 적어도 하나의 프로세서;를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 블록체인 네트워크에 등록된 제1 계좌에 맵핑된 출금 요청 트랜잭션을 수신하고,
    상기 출금 요청 트랜잭션의 수신에 응답하여 상기 분산 저장소에 상기 제1 계좌에 맵핑되어 저장되고 상기 교환 거래 서비스를 통하여 발생된 거래 트랜잭션들을 획득하고,
    상기 획득된 거래 트랜잭션들에 기초하여 결정된 상기 제1 토큰 개수 정보 또는 상기 제2 토큰의 개수 정보를 포함하는 출금 확인 트랜잭션을 상기 블록체인 네트워크로 송신하도록 설정된, 서버.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 획득한 거래 트랜잭션들을 기초로 정산 데이터 파일을 생성하고, 상기 정산 데이터 파일을 상기 제1 계좌에 대응되는 클라이언트 단말로 송신하고,
    상기 틀라이언트 단말로부터 확인 응답이 수신되면 상기 출금 확인 트랜잭션을 상기 블록체인 네트워크로 송신하도록 설정된, 서버.
  14. 청구항 13에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 확인 응답이 수신되면, 상기 출금 확인 트랜잭션을 상기 제1 계좌에 맵핑되도록 생성하도록 설정된, 서버.
  15. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는, 상기 정산 데이터 파일을 상기 제1 계좌와 맵핑되도록 생성하고, 상기 생성한 정산 데이터 파일을 상기 분산 저장소로 송신하도록 설정된, 서버.
  16. 교환 거래 서비스를 제공하는 시스템에 있어서,
    복수의 컴퓨팅 장치를 포함하는 블록체인 네트워크; 상기 블록체인 네트워크는 제1 네트워크 인터페이스를 통하여 상기 복수의 컴퓨팅 장치에 포함되는 적어도 하나의 제1 프로세서, 상기 적어도 하나의 제1 프로세서는 상기 교환 거래 서비스를 위한 적어도 하나의 스마트컨트랙트를 제공함; 및 적어도 하나의 제1 메모리와 동작 가능하도록 연결되고, 상기 적어도 하나의 제1 메모리에 블록체인이 저장됨; 및
    상기 블록체인 네트워크와 통신하도록 설정된 제2 네트워크 인터페이스; 및 적어도 하나의 제2 프로세서를 포함하는 서버; 를 포함하고,
    상기 적어도 하나의 제1 프로세서는,
    상기 적어도 하나의 스마트컨트랙트를 통하여 상기 적어도 하나의 스마트컨트랙트에 의하여 발행된 토큰에 대한 입금 요청 트랜잭션을 수신하고,
    상기 입금 요청 트랜잭션에 응답하여, 입금 로그 기록을 생성하고, 상기 입금 로그 기록을 블록체인에 기록하도록 설정되고,
    상기 적어도 하나의 제2 프로세서는,
    상기 제2 네트워크 인터페이스를 통하여 상기 블록체인에 액세스하고 상기 입금 로그 기록을 획득하도록 설정된, 시스템.
  17. 청구항 16에 있어서,
    상기 적어도 하나의 제2 프로세서는,
    상기 입금 로그 기록에 기초하여 상기 교환 거래 서비스 상의 거래소 계좌 데이터를 갱신하도록 설정된, 시스템.
  18. 청구항 17에 있어서,
    상기 블록체인 네트워크 및 상기 서버와 통신하도록 설정된 분산 저장소를 더 포함하고,
    상기 적어도 하나의 제2 프로세서는,
    교환 거래를 위한 적어도 하나의 거래 트랜잭션을 수신하고, 상기 갱신된 거래소 계좌 데이터를 기초로 상기 적어도 하나의 거래 트랜잭션을 처리하고, 상기 적어도 하나의 거래 트랜잭션을 상기 분산 저장소에 저장하도록 설정되고,
    상기 적어도 하나의 제1 프로세서는,
    상기 적어도 하나의 거래 트랜잭션이 저장된 상기 분산 저장소 상의 주소 값을 상기 블록체인에 저장하도록 설정된, 시스템.
  19. 청구항 18에 있어서,
    상기 적어도 하나의 제2 프로세서는,
    상기 교환 거래 서비스를 통하여 수신되고, 상기 블록체인 네트워크에 등록된 계좌에 맵핑된, 상기 토큰에 대한 출금 요청 트랜잭션을 수신하고,
    상기 분산 저장소에 저장되고 상기 계좌에 맵핑된 상기 적어도 하나의 거래 트랜잭션에 기초하여, 출금될 상기 토큰의 개수 정보를 포함하는 출금 확인 트랜잭션을 상기 제2 네트워크 인터페이스를 통하여 상기 블록체인 네트워크로 송신하도록 설정된, 시스템.
  20. 청구항 19에 있어서,
    상기 적어도 하나의 제1 프로세서는,
    상기 적어도 하나의 제2 프로세서로부터 수신된 상기 출금 확인 트랜잭션을 처리하고, 상기 블록체인에 기록하도록 설정되는, 시스템.
PCT/KR2018/008503 2017-08-16 2018-07-27 블록체인 기반의 거래 시스템 및 그 방법 WO2019035573A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762546289P 2017-08-16 2017-08-16
US62/546,289 2017-08-16
KR1020180069643A KR20190019004A (ko) 2017-08-16 2018-06-18 블록체인 기반의 거래 시스템 및 그 방법
KR10-2018-0069643 2018-06-18

Publications (1)

Publication Number Publication Date
WO2019035573A1 true WO2019035573A1 (ko) 2019-02-21

Family

ID=65362586

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/008503 WO2019035573A1 (ko) 2017-08-16 2018-07-27 블록체인 기반의 거래 시스템 및 그 방법

Country Status (1)

Country Link
WO (1) WO2019035573A1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134668A (zh) * 2019-04-28 2019-08-16 阿里巴巴集团控股有限公司 应用于区块链的数据迁移方法、装置和设备
CN110555684A (zh) * 2019-08-26 2019-12-10 北京米弘科技有限公司 基于区块链系统的账户及系统
CN110610367A (zh) * 2019-08-29 2019-12-24 深圳市元征科技股份有限公司 一种交易数据支付方法及装置、电子设备和服务器
CN110852748A (zh) * 2019-11-06 2020-02-28 杭州复杂美科技有限公司 群组交易方法、设备和存储介质
CN111325625A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种交易方法、设备和存储介质
CN111612453A (zh) * 2019-02-22 2020-09-01 北京趣块远扬科技有限公司 基于区块链的去中心化交易方法、装置及电子设备
CN111612612A (zh) * 2019-02-22 2020-09-01 北京趣块远扬科技有限公司 基于区块链的去中心化交易方法、装置及电子设备
CN112600664A (zh) * 2020-12-09 2021-04-02 杭州复杂美科技有限公司 延时交易生成方法、延时交易执行方法、设备和存储介质
CN114638604A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 基于区块链的金融业务计费、收费方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628009B1 (ko) * 2015-04-20 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170103385A1 (en) * 2015-04-05 2017-04-13 Digital Asset Holdings Digital asset intermediary electronic settlement platform
KR101751025B1 (ko) * 2017-01-03 2017-06-26 주식회사 온더 블록체인 기반의 스마트 증권업무 처리 시스템
US20170213289A1 (en) * 2016-01-27 2017-07-27 George Daniel Doney Dividend Yielding Digital Currency through Elastic Securitization, High Frequency Cross Exchange Trading, and Smart Contracts

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103385A1 (en) * 2015-04-05 2017-04-13 Digital Asset Holdings Digital asset intermediary electronic settlement platform
KR101628009B1 (ko) * 2015-04-20 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170213289A1 (en) * 2016-01-27 2017-07-27 George Daniel Doney Dividend Yielding Digital Currency through Elastic Securitization, High Frequency Cross Exchange Trading, and Smart Contracts
KR101751025B1 (ko) * 2017-01-03 2017-06-26 주식회사 온더 블록체인 기반의 스마트 증권업무 처리 시스템

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111612453A (zh) * 2019-02-22 2020-09-01 北京趣块远扬科技有限公司 基于区块链的去中心化交易方法、装置及电子设备
CN111612612A (zh) * 2019-02-22 2020-09-01 北京趣块远扬科技有限公司 基于区块链的去中心化交易方法、装置及电子设备
CN111612612B (zh) * 2019-02-22 2023-09-08 海南趣块飞扬科技有限公司 基于区块链的去中心化交易方法、装置及电子设备
CN110134668A (zh) * 2019-04-28 2019-08-16 阿里巴巴集团控股有限公司 应用于区块链的数据迁移方法、装置和设备
CN110555684A (zh) * 2019-08-26 2019-12-10 北京米弘科技有限公司 基于区块链系统的账户及系统
CN110610367A (zh) * 2019-08-29 2019-12-24 深圳市元征科技股份有限公司 一种交易数据支付方法及装置、电子设备和服务器
CN110610367B (zh) * 2019-08-29 2023-09-05 深圳市元征科技股份有限公司 一种交易数据支付方法及装置、电子设备和服务器
CN110852748A (zh) * 2019-11-06 2020-02-28 杭州复杂美科技有限公司 群组交易方法、设备和存储介质
CN111325625A (zh) * 2020-02-18 2020-06-23 杭州复杂美科技有限公司 一种交易方法、设备和存储介质
CN112600664A (zh) * 2020-12-09 2021-04-02 杭州复杂美科技有限公司 延时交易生成方法、延时交易执行方法、设备和存储介质
CN114638604A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 基于区块链的金融业务计费、收费方法及装置

Similar Documents

Publication Publication Date Title
WO2019035573A1 (ko) 블록체인 기반의 거래 시스템 및 그 방법
KR102309819B1 (ko) 블록체인 기반의 거래 시스템 및 그 방법
WO2023033298A1 (ko) 블록체인 기반의 nft를 이용한 음원 플랫폼의 서버에서 수행되는 서비스 제공 방법
US11468046B2 (en) Blockchain methods, nodes, systems and products
US10931457B2 (en) Systems and methods for blockchain-based digital lottery ticket generation and distribution
WO2016204461A1 (ko) 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
KR101637868B1 (ko) 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
EP1209874B1 (en) A home server including proxy, for authentication and encryption instead of a user terminal, in an electronic commercial transaction
RU2145439C1 (ru) Доверенные агенты для открытого распределения электронных денег
WO2021206424A1 (ko) 소유권자 불특정 공동자산에 대한 블록체인기반 지분 실거래 시스템 및 그 방법
US20020087481A1 (en) System, method and program for enabling an electronic commerce heterogeneous network
US20020087483A1 (en) System, method and program for creating and distributing processes in a heterogeneous network
US20020087881A1 (en) System, method and program for identifying and binding a process in a heterogeneous network
CN101206696A (zh) 用于保护个人信息的设备、方法和系统
WO2023163286A1 (ko) 블록체인 기반의 nft를 이용하는 플랫폼의 서버에서 수행되는 nft에 대한 위변조를 감지하는 위변조 감지 방법
JP7304963B2 (ja) プログラム、データ認証方法、およびコンピュータ装置
WO2021040134A1 (ko) 블록체인을 이용한 기부 물품거래 시스템
CN113283957B (zh) 一种基于区块链的实体产品交易方法
CN112001713A (zh) 区块链系统以及请求处理方法和装置
WO2020138595A1 (ko) 블록체인 기반 인수 합병 서비스 제공 시스템 및 이의 동작 방법
WO2020197247A1 (ko) 가상자산에 의한 제1 결제수단에 기반하여 사용자에게 서비스를 제공하는 서비스제공시스템과 연동하여 비-가상자산에 의한 제2 결제수단에 기반하여 상기 서비스를 제공해 줄 수 있도록 지원하는 결제대행시스템 및 이를 이용한 결제 대행 방법
WO2018212580A1 (ko) 에스크로 서비스 보증 시스템 및 방법
US20020087473A1 (en) System, method and program for creating an authenticatable, non-repudiatable transactional identity in a heterogeneous network
JP7254954B2 (ja) ブロックチェーンで生成されたデータを認証する方法およびシステム
WO2022245069A1 (ko) 기축 코인 예치를 통한 가상화폐 수수료 거래 시스템

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

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

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 21.01.2021.)

122 Ep: pct application non-entry in european phase

Ref document number: 18845678

Country of ref document: EP

Kind code of ref document: A1