[go: up one dir, main page]

JP7478240B2 - Escrow transaction method and system using smart contract on blockchain - Google Patents

Escrow transaction method and system using smart contract on blockchain Download PDF

Info

Publication number
JP7478240B2
JP7478240B2 JP2022537151A JP2022537151A JP7478240B2 JP 7478240 B2 JP7478240 B2 JP 7478240B2 JP 2022537151 A JP2022537151 A JP 2022537151A JP 2022537151 A JP2022537151 A JP 2022537151A JP 7478240 B2 JP7478240 B2 JP 7478240B2
Authority
JP
Japan
Prior art keywords
contract
escrow
token
sender
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022537151A
Other languages
Japanese (ja)
Other versions
JP2023514007A (en
Inventor
ジェヨン キム
ヒュンジュン キム
ホジン ジャン
ケウン ク
ウシク ヨ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Line Plus Corp
Original Assignee
Line Plus Corp
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 Line Plus Corp filed Critical Line Plus Corp
Publication of JP2023514007A publication Critical patent/JP2023514007A/en
Application granted granted Critical
Publication of JP7478240B2 publication Critical patent/JP7478240B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/407Cancellation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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

Landscapes

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

Description

以下の説明は、ブロックチェーンでスマートコントラクトを利用したエスクロー取引方法およびシステムに関する。 The following description relates to an escrow transaction method and system that uses smart contracts on a blockchain.

ブロックチェーンとは、ブロックでデータを管理して鎖(チェーン)のように連結し、これを多数のコンピュータで同時にコピーしたり保管したりする分散型データ記憶技術であり、分散型台帳とも呼ばれる。中央集中型サーバで取引記録を保管するのではなく、取引に参加するすべてのユーザに取引内訳を送り、取引のたびにすべての取引参加者が情報を共有してこれを対照することによってデータの偽造や変造を防ぐように実現されている。例えば、韓国公開特許第10-2019-0133573号公報は、スマートコントラクトを利用したブロックチェーン取引システムおよびその方法に関するものであって、ブロックチェーン固有の特性を活用しながらスマートコントラクトによって取引およびサービスを利用できるようにインタフェースを提供することで、支援要請者はネットワーク生態系で支援要請情報を、サービス提供者は取引または契約を掲示し、支援を提供しようとする者は、関連情報に対して支援提供またはサービス利用者が取引同意(署名)などのボタン(行為)を選択することにより、ネットワーク生態系で1つのモバイルアプリによって「参加と共有」活動が持続して活性化するように、各自の活動に対して報酬体系を等級別に区分してインセンティブである暗号通貨が報酬として支給されるシステムおよびその方法を開示している。 Blockchain is a distributed data storage technology that manages data in blocks, links them like a chain, and copies and stores them simultaneously on multiple computers. It is also called a distributed ledger. Instead of storing transaction records on a centralized server, transaction details are sent to all users participating in the transaction, and all transaction participants share and compare information each time a transaction is made, thereby preventing data forgery and alteration. For example, Korean Patent Publication No. 10-2019-0133573 relates to a blockchain transaction system and method using a smart contract, and provides an interface to enable transactions and services to be used through smart contracts while utilizing the unique characteristics of blockchain. In this system, a support requester posts support request information in a network ecosystem, a service provider posts a transaction or contract, and a person who wishes to provide support selects a button (action) such as providing support on related information or a service user agrees to a transaction (signature), and the reward system for each activity is divided into grades so that the ``participation and sharing'' activity is continuously activated through one mobile app in the network ecosystem, and a method thereof is disclosed.

このような従来のブロックチェーン上の取引は、送信者と受信者のウォレットアドレスを明示して取引を要請すれば、取引が含まれたブロックが確定となった瞬間に取引が成立する。このため、送信者と受信者の信頼関係が明確でない場合や、取引を完了するために特定の条件を満たさなければならない場合には相応しくない。 In such traditional blockchain transactions, if the sender and receiver's wallet addresses are specified and a transaction is requested, the transaction is completed the moment the block containing the transaction is confirmed. For this reason, it is not suitable when the trust relationship between the sender and receiver is unclear or when certain conditions must be met to complete the transaction.

スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、預託しておいた後、特定の条件が満たされたときに受信者に送金を処理することができる、エスクロー取引方法およびシステムを提供する。 By clearly indicating the conditions for a transaction to be concluded in a smart contract, we provide an escrow transaction method and system that allows for the transfer of funds to the recipient when certain conditions are met after depositing the funds, rather than the immediate transfer.

ブロックチェーンシステムのエスクロー取引方法であって、送信者から受信者へのエスクロー取引に対し、前記ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託する段階、前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託された通貨を前記受信者に送金する段階、および前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに預託された通貨を前記送信者に返還する段階を含む、エスクロー取引方法を提供する。 The present invention provides an escrow transaction method for a blockchain system, the method including the steps of depositing a currency corresponding to a remittance of the sender in an escrow contract included in the blockchain system for an escrow transaction from a sender to a receiver, transferring the currency deposited in the escrow contract to the receiver if a predefined condition for the remittance of the sender is satisfied, and returning the currency deposited in the escrow contract to the sender if the predefined condition for the remittance is not satisfied.

一側面によると、前記通貨を預託する段階は、前記送信者から承認要請を受けた前記ブロックチェーンシステムのトークンコントラクトに前記通貨の送金を要請する段階、および前記トークンコントラクトに属して前記送信者の要請にしたがって承認されたトークンの送金を前記トークンコントラクトから受け取り、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託する段階を含むことを特徴としてよい。 According to one aspect, the step of depositing the currency may include a step of requesting a token contract of the blockchain system that has received an approval request from the sender to transfer the currency, and a step of receiving from the token contract a transfer of tokens that belong to the token contract and have been approved in accordance with the sender's request, and depositing the tokens in the escrow contract in the currency corresponding to the sender's transfer.

他の側面によると、前記通貨を預託する段階は、前記送信者からエスクロー送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトからエスクロートークン送金要請を受信する段階、前記エスクロートークン送金要請に応答して前記トークンコントラクトに送金を要請する段階、および前記トークンコントラクトへの要請にしたがって送金されたトークンを、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託する段階を含むことを特徴としてよい。 In another aspect, the depositing of the currency may include receiving an escrow token transfer request from a token contract of the blockchain system that has received an escrow transfer request from the sender, requesting a transfer from the token contract in response to the escrow token transfer request, and depositing the tokens transferred in accordance with the request to the token contract in the escrow contract in a currency corresponding to the sender's transfer.

また他の側面によると、前記エスクロー取引方法は、前記エスクローコントラクトのオーナー(owner)からの要請にしたがって前記エスクローコントラクトをインストールする段階、前記エスクローコントラクトオーナーからの要請にしたがって前記トークンコントラクトに前記エスクローコントラクトを設定する段階、および前記トークンコントラクトの制御にしたがって前記エスクローコントラクトに前記トークンコントラクトを設定する段階をさらに含んでよい。 In another aspect, the escrow transaction method may further include a step of installing the escrow contract according to a request from an owner of the escrow contract, a step of setting the escrow contract in the token contract according to a request from the escrow contract owner, and a step of setting the token contract in the escrow contract according to control of the token contract.

また他の側面によると、前記通貨を預託する段階は、前記送信者から送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトからエスクロー取引と関連するメタ情報が含まれたトークンフォールバック要請を受信する段階、および前記メタ情報を解析して得られるエスクロー取引に関する情報に基づいて、前記送信者から前記送信者の送金に対応する通貨で前記トークンコントラクトに属したトークンの送金を受け取って前記エスクローコントラクトに預託する段階を含むことを特徴としてよい。 In another aspect, the depositing of the currency may include receiving a token fallback request including meta-information related to an escrow transaction from a token contract of the blockchain system that has received a remittance request from the sender, and receiving a remittance of tokens belonging to the token contract from the sender in a currency corresponding to the remittance of the sender based on information regarding the escrow transaction obtained by analyzing the meta-information, and depositing the tokens in the escrow contract.

また他の側面によると、前記エスクロー取引方法は、前記エスクローコントラクトのオーナーからの要請にしたがって前記エスクローコントラクトをインストールする段階、および前記エスクローコントラクトオーナーからの要請に含まれる前記トークンコントラクトのアドレスを利用して前記エスクローコントラクトと前記トークンコントラクトを連係する段階をさらに含んでよい。 In another aspect, the escrow transaction method may further include installing the escrow contract in accordance with a request from an owner of the escrow contract, and linking the escrow contract with the token contract using an address of the token contract included in the request from the escrow contract owner.

また他の側面によると、前記預託した通貨を前記受信者に送金する段階は、前記送信者の送金に対して予め定義された条件が満たされる場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー受信要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記受信者への送金を要請することを特徴としてよい。 In another aspect, the step of transferring the deposited currency to the recipient may be characterized by requesting a token contract of the blockchain system to transfer the currency from the escrow contract to the recipient in accordance with an escrow receipt request made by a caller specified in the escrow contract when a predefined condition for the sender's transfer is met.

また他の側面によると、前記預託した通貨を前記送信者に返還する段階は、前記送信者の送金に対して予め定義された条件が満たされない場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー取消要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記送信者への送金を要請することを特徴としてよい。 In another aspect, the step of returning the deposited currency to the sender may be characterized by requesting a token contract of the blockchain system to transfer the currency from the escrow contract to the sender in accordance with an escrow cancellation request made by a caller specified in the escrow contract if a predefined condition for the sender's remittance is not met.

また他の側面によると、前記呼出し元は、前記エスクローコントラクトのオーナーまたは前記送信者であることを特徴としてよい。 In another aspect, the caller may be the owner of the escrow contract or the sender.

また他の側面によると、前記送信者の送金に対応する通貨は、前記ブロックチェーンシステムの基準通貨を含むことを特徴としてよい。 In another aspect, the currency corresponding to the sender's remittance may include the base currency of the blockchain system.

さらに他の側面によると、前記通貨は、前記ブロックチェーンシステムがさらに含むトークンコントラクトに属したトークンを含むことを特徴としてよい。 According to yet another aspect, the currency may be characterized as including a token belonging to a token contract further included in the blockchain system.

コンピュータ装置と結合して前記方法をコンピュータ装置に実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムを提供する。 A computer program recorded on a computer-readable recording medium is provided for combining with a computer device to cause the computer device to execute the method.

前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。 A computer-readable recording medium is provided on which a program for causing a computer device to execute the method is recorded.

コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、送信者から受信者へのエスクロー取引に対し、前記ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託し、前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託した通貨を前記受信者に送金し、前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに預託した通貨を前記送信者に返還することを特徴とする、コンピュータ装置を提供する。 A computer device is provided that includes at least one processor that is implemented to execute computer-readable instructions, and is characterized in that, for an escrow transaction from a sender to a receiver, the at least one processor deposits currency corresponding to the sender's remittance in an escrow contract included in the blockchain system, transfers the currency deposited in the escrow contract to the receiver if predefined conditions for the sender's remittance are met, and returns the currency deposited in the escrow contract to the sender if predefined conditions for the remittance are not met.

スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、預託しておいた後、特定の条件が満たされたときに受信者に送金を処理することができる。 By clearly stating the conditions for a transaction to be completed in a smart contract, the transfer will not be instantaneous, but rather the money can be held in escrow and then transferred to the recipient when certain conditions are met.

特定の条件が満たされるか否かにより、送金者が送金を取り消すことができる。 The sender can cancel a transfer if certain conditions are met.

スマートコントラクトは、ソースコードがブロックチェーンネットワーク上に公開されるため、どのようなロジックによってエスクロー機能が動作するのかについての透明性を確保することができる。 Since the source code of smart contracts is published on the blockchain network, it is possible to ensure transparency about the logic by which the escrow function operates.

本発明の一実施形態における、ネットワーク環境の例を示した図である。FIG. 1 illustrates an example of a network environment in accordance with an embodiment of the present invention. 本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。FIG. 2 is a block diagram illustrating an example computing device according to an embodiment of the present invention. 本発明の一実施形態における、基準通貨のエスクロー取引の例を示した図である。FIG. 2 illustrates an example of a base currency escrow transaction in accordance with one embodiment of the present invention. 本発明の一実施形態における、基準通貨のエスクロー取引の例を示した図である。FIG. 2 illustrates an example of a base currency escrow transaction in accordance with one embodiment of the present invention. 本発明の一実施形態における、基準通貨のエスクロー取引の例を示した図である。FIG. 2 illustrates an example of a base currency escrow transaction in accordance with one embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第1例を示した図である。FIG. 1 illustrates a first example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第1例を示した図である。FIG. 1 illustrates a first example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第1例を示した図である。FIG. 1 illustrates a first example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。FIG. 13 illustrates a second example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。FIG. 13 illustrates a second example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。FIG. 13 illustrates a second example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。FIG. 13 illustrates a second example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。FIG. 13 illustrates a third example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。FIG. 13 illustrates a third example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。FIG. 13 illustrates a third example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。FIG. 13 illustrates a third example escrow transaction for a token in accordance with an embodiment of the present invention. 本発明の一実施形態における、エスクロー取引方法の例を示したフローチャートである。4 is a flow chart illustrating an example method for an escrow transaction in accordance with one embodiment of the present invention.

以下、実施形態について、添付の図面を参照しながら詳しく説明する。 The following describes the embodiments in detail with reference to the attached drawings.

本発明の実施形態に係るエスクロー取引システムは、少なくとも1つのコンピュータ装置によって実現されるブロックチェーンシステムであってよく、本発明の実施形態に係るエスクロー取引方法は、エスクロー取引システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御にしたがって本発明の実施形態に係るエスクロー取引方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してエスクロー取引方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。 The escrow transaction system according to an embodiment of the present invention may be a blockchain system realized by at least one computer device, and the escrow transaction method according to an embodiment of the present invention may be executed by at least one computer device included in the escrow transaction system. In the computer device, a computer program according to an embodiment of the present invention may be installed and executed, and the computer device may execute the escrow transaction method according to an embodiment of the present invention according to the control of the executed computer program. The above-mentioned computer program may be recorded on a computer-readable recording medium in combination with the computer device to cause the computer to execute the escrow transaction method.

図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。また、図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が図1のネットワーク環境に限定されることはない。 Figure 1 is a diagram showing an example of a network environment in one embodiment of the present invention. The network environment in Figure 1 shows an example including multiple electronic devices 110, 120, 130, 140, multiple servers 150, 160, and a network 170. Figure 1 is merely an example for explaining the invention, and the number of electronic devices and the number of servers are not limited to those shown in Figure 1. Furthermore, the network environment in Figure 1 is merely an example of an environment applicable to this embodiment, and the environment applicable to this embodiment is not limited to the network environment in Figure 1.

複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットPCなどがある。一例として、図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。 The electronic devices 110, 120, 130, and 140 may be fixed terminals or mobile terminals realized by computer devices. Examples of the electronic devices 110, 120, 130, and 140 include smartphones, mobile phones, navigation systems, personal computers (PCs), notebook PCs, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), and tablet PCs. As an example, FIG. 1 shows a smartphone as an example of the electronic device 110, but in an embodiment of the present invention, the electronic device 110 may refer to one of various physical computer devices that can communicate with other electronic devices 120, 130, and 140 and/or servers 150 and 160 via a network 170 using a substantially wireless or wired communication method.

通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、BBN(BroadBand Network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。 The communication method is not limited, and may include not only a communication method using a communication network that the network 170 can include (for example, a mobile communication network, a wired Internet, a wireless Internet, or a broadcasting network), but also short-range wireless communication between devices. For example, the network 170 may include any one or more of the following networks: a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), and the Internet. Furthermore, the network 170 may include any one or more of the following network topologies, including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or hierarchical network, and the like.

サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、コンテンツ提供サービス、グループ通話サービス(または音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービス、位置基盤サービスなど)を提供するシステムであってよい。 Each of the servers 150, 160 may be implemented by one or more computing devices that communicate with the multiple electronic devices 110, 120, 130, 140 via the network 170 to provide instructions, code, files, content, services, etc. For example, the server 150 may be a system that provides services (e.g., content provision services, group calling services (or audio conferencing services), messaging services, email services, social networking services, map services, translation services, financial services, payment services, search services, location-based services, etc.) to the multiple electronic devices 110, 120, 130, 140 connected via the network 170.

図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。 Figure 2 is a block diagram showing an example of a computer device in one embodiment of the present invention. Each of the multiple electronic devices 110, 120, 130, and 140 and each of the servers 150 and 160 described above may be realized by the computer device 200 shown in Figure 2.

このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(Random Access Memory)、ROM(Read Only Memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではなく通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。 Such a computer device 200 may include a memory 210, a processor 220, a communication interface 230, and an input/output interface 240, as shown in FIG. 2. The memory 210 is a computer-readable recording medium and may include a RAM (Random Access Memory), a ROM (Read Only Memory), and a permanent mass storage device such as a disk drive. Here, a permanent mass storage device such as a ROM or a disk drive may be included in the computer device 200 as a separate permanent storage device separate from the memory 210. In addition, the memory 210 may store an operating system and at least one program code. Such software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210. Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD/CD-ROM drive, or a memory card. In other embodiments, the software components may be loaded into the memory 210 through the communication interface 230 rather than through a computer-readable recording medium. For example, the software components may be loaded into the memory 210 of the computer device 200 based on a computer program that is installed by a file received via the network 170.

プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。 The processor 220 may be configured to process computer program instructions by performing basic arithmetic, logic, and input/output operations. The instructions may be provided to the processor 220 by the memory 210 or the communication interface 230. For example, the processor 220 may be configured to execute instructions received according to program code recorded in a recording device such as the memory 210.

通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。 The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (for example, the above-mentioned recording device) via the network 170. As an example, requests, commands, data, files, etc. generated by the processor 220 of the computer device 200 according to program code recorded in a recording device such as the memory 210 may be transmitted to other devices via the network 170 under the control of the communication interface 230. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170. The signals, commands, data, etc. received through the communication interface 230 may be transmitted to the processor 220 or the memory 210, and the files, etc. may be recorded on a recording medium (the above-mentioned permanent recording device) that the computer device 200 may further include.

入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。 The input/output interface 240 may be a means for interfacing with the input/output device 250. For example, the input device may include devices such as a microphone, keyboard, or mouse, and the output device may include devices such as a display and a speaker. As another example, the input/output interface 240 may be a means for interfacing with a device in which functions for input and output are integrated into one, such as a touch screen. The input/output device 250 may be configured as a single device together with the computer device 200.

また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。 Also, in other embodiments, computer device 200 may include fewer or more components than those of FIG. 2. However, most prior art components need not be explicitly shown in the figures. For example, computer device 200 may be implemented to include at least some of the input/output devices 250 described above, and may further include other components such as a transceiver, a database, etc.

本発明の実施形態に係るブロックチェーンネットワークは、プロトコルに定義された基準通貨(base coin)とスマートコントラクトによって定義されたトークン(token)が取引に活用されてよい。このとき、基準通貨は、特定のスマートコントラクトに依存性を持たないため、エスクローのためのスマートコントラクト(以下、「エスクローコントラクト」)に預託、受信、および取消の3つの関数を定義することにより、エスクロー取引が可能となる。以下で説明する「送信者」、「受信者」、および「第三者」などは、実質的に送信者や受信者または第三者が送金処理のために利用する電子機器を意味してよい。 In a blockchain network according to an embodiment of the present invention, a base coin defined in a protocol and a token defined by a smart contract may be used for transactions. In this case, since the base currency does not depend on a specific smart contract, escrow transactions are possible by defining three functions, deposit, receive, and cancel, in a smart contract for escrow (hereinafter, "escrow contract"). The terms "sender," "receiver," and "third party" described below may essentially refer to electronic devices used by the sender, receiver, or third party for remittance processing.

図3~5は、本発明の一実施形態における、基準通貨のエスクロー取引の例を示した図である。ブロックチェーンシステム300にはエスクローのためのスマートコントラクト310がインストールされ、基準通貨である金銭の預託、受信、および取消の3つの関数の呼び出しによってエスクロー取引を処理してよい。 Figures 3 to 5 show an example of an escrow transaction of a base currency in one embodiment of the present invention. A smart contract 310 for escrow is installed in the blockchain system 300, and the escrow transaction may be processed by calling three functions for depositing, receiving, and canceling money, which is the base currency.

図3は、送信者A320がエスクローコントラクト310に定義されたエスクロー送金関数(「escrowTransfer()」)を呼び出すことにより、基準通貨である金銭をエスクローコントラクト310に預託する例を示している。このとき、エスクロー送金関数の1つ目のパラメータ「B」は、該当の送金の受信者である受信者B330の識別子であってよく、2つ目のパラメータ「value」は、該当の送金の金額を示してよい。「Coin Transfer」は、送信者A320からエスクローコントラクト310に基準通貨が送金される過程を示してよい。 Figure 3 shows an example in which sender A 320 deposits money, which is a base currency, in the escrow contract 310 by calling an escrow transfer function ("escrowTransfer()") defined in the escrow contract 310. In this case, the first parameter "B" of the escrow transfer function may be an identifier of receiver B 330, who is the recipient of the corresponding transfer, and the second parameter "value" may indicate the amount of the corresponding transfer. "Coin Transfer" may indicate the process of transferring the base currency from sender A 320 to the escrow contract 310.

図4は、エスクローコントラクト310に定義されたエスクロー受信関数(「escrowReceive()」)が呼び出されることにより、預託された金銭がエスクローコントラクト310に明示された受信者B330に送金される例を示している。一例として、エスクロー受信関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー受信関数を呼び出すことのできる呼出し元は、エスクローコントラクト310に明示されていてよい。このような呼出し元は、受信者本人であってもよく、信頼の置ける第三者であってもよい。図4の実施形態では、信頼の置ける第三者であるエスクローコントラクト310の所有主または開発者であるエスクローコントラクトオーナー(escrow contract owner)410が呼出し元として明示された例を示している。エスクローコントラクトオーナー410は、該当の送金に対して予め定義された条件が満たされた場合、エスクローコントラクト310にエスクロー受信関数を呼び出してよく、これにより、エスクローコントラクト310に預託された金銭がエスクローコントラクト310に明示された受信者B330に送金されてよい。図4に示した関数「baseCoinTransfer(B、value)」は、基準通貨を送金するための関数であって、エスクローコントラクト310が、1つ目のパラメータ「B」から識別される受信者B330に2つ目のパラメータ「value」に対応する基準通貨である金銭を送金する関数を意味してよい。 Figure 4 shows an example in which an escrow receive function ("escrowReceive()") defined in the escrow contract 310 is called to transfer the deposited money to the recipient B 330 specified in the escrow contract 310. As an example, the escrow receive function may include a parameter for identifying the relevant transfer. A caller that can call the escrow receive function may be specified in the escrow contract 310. Such a caller may be the recipient himself or a trusted third party. The embodiment of Figure 4 shows an example in which the caller is specified as the escrow contract owner 410, who is the owner or developer of the escrow contract 310, which is a trusted third party. The escrow contract owner 410 may call an escrow receive function in the escrow contract 310 when predefined conditions for the transfer are met, which may result in the money deposited in the escrow contract 310 being transferred to the recipient B 330 specified in the escrow contract 310. The function "baseCoinTransfer(B, value)" shown in FIG. 4 is a function for transferring base currency, and may refer to a function in which the escrow contract 310 transfers money, which is the base currency corresponding to the second parameter "value", to the recipient B 330 identified from the first parameter "B".

図5は、該当の送金に対して予め定義された条件が満たされない場合、エスクロー取消関数(「escrowCancel()」)が呼び出されることにより、送信者A320がエスクローコントラクト310に預託した金額が返還される例を示している。一例として、エスクロー取消関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー取消関数を呼び出すことのできる呼出し元は、エスクローコントラクト310に明示されていてよい。このような呼出し元は、送信者本人であってもよいし、信頼の置ける第三者であってもよい。図5の実施形態では、信頼の置ける第三者であるエスクローコントラクトオーナー410が呼出し元として明示された例を示している。エスクローコントラクトオーナー410は、該当の送金に対して予め定義された条件が満たされない場合、エスクローコントラクト310にエスクロー取消関数を呼び出してよく、これにより、エスクローコントラクト310に預託された金銭が送信者A320に送金されてよい。図5に示した関数「baseCoinTransfer(A、value)」は、基準通貨を送金するための関数として、エスクローコントラクト310が、1つ目のパラメータ「A」から識別される送信者A320に2つ目のパラメータ「value」に対応する基準通貨である金銭を送金する関数を意味してよい。 5 shows an example in which an escrow cancel function ("escrowCancel()") is called to return the amount deposited by sender A320 in the escrow contract 310 if predefined conditions are not met for the corresponding transfer. As an example, the escrow cancel function may include a parameter for identifying the corresponding transfer. A caller that can call the escrow cancel function may be specified in the escrow contract 310. Such a caller may be the sender himself or a trusted third party. The embodiment of FIG. 5 shows an example in which the escrow contract owner 410, who is a trusted third party, is specified as the caller. The escrow contract owner 410 may call an escrow cancel function in the escrow contract 310 if predefined conditions are not met for the corresponding transfer, thereby allowing the money deposited in the escrow contract 310 to be transferred to sender A320. The function "baseCoinTransfer(A, value)" shown in FIG. 5 may refer to a function for transferring a base currency, in which the escrow contract 310 transfers money, which is the base currency corresponding to the second parameter "value", to the sender A 320 identified from the first parameter "A".

トークンに対するエスクロー取引も、上述した図3~5を参照しながら説明した基準通貨に対するエスクロー取引と類似の流れで進められる。ただし、トークンは特定のスマートコントラクトに属しているため、トークンの送金のためには、エスクローコントラクトの関数の他にトークンコントラクトの関数も呼び出さなければならない。以下では、トークンに対するエスクロー取引を実行するための3つ方法について説明する。 Escrow transactions for tokens are conducted in a similar manner to the escrow transactions for base currencies described above with reference to Figures 3-5. However, because tokens belong to a specific smart contract, functions in the token contract must be called in addition to functions in the escrow contract to transfer tokens. Below, we explain three methods for performing escrow transactions for tokens.

図6~8は、本発明の一実施形態における、トークンに対するエスクロー取引の第1例を示した図である。ブロックチェーンシステム300においてインストールされて実行されるDApp(Decentralized Application)600は、ブロックチェーン技術を活用して、中央サーバを経ずにネットワーク上に情報を分散、保存、および実行するアプリケーションである。DApp600には、エスクローコントラクト610と、トークンが属している特定のスマートコントラクト(以下、「トークンコントラクト620」)が含まれてよい。 Figures 6-8 show a first example of an escrow transaction for a token in one embodiment of the present invention. A Decentralized Application (DApp) 600 installed and executed in the blockchain system 300 is an application that utilizes blockchain technology to distribute, store, and execute information on a network without going through a central server. The DApp 600 may include an escrow contract 610 and a specific smart contract to which the token belongs (hereinafter, "token contract 620").

図6は、送信者A320が受信者B320にトークンである金銭を送金するために、先ずは、エスクローコントラクト610に金銭を預託する過程の例を示している。このとき、送信者A320は、トークンが属するトークンコントラクト620に承認関数(「approve()」)を利用して送金の承認を要請し、エスクローコントラクト610にもエスクロー送金関数(「escrowTransfer()」)によって預託を要請してよい。 Figure 6 shows an example of a process in which sender A 320 first deposits money in an escrow contract 610 in order to transfer money, which is a token, to receiver B 320. At this time, sender A 320 may request approval of the transfer from the token contract 620 to which the token belongs using an approval function ("approve()"), and may also request the transfer from the escrow contract 610 using an escrow transfer function ("escrowTransfer()").

承認関数の1つ目のパラメータは、送金対象者を意味してよい。このとき、エスクローコントラクト610には、金銭が預託されていなければならない。言い換えれば、送信者A320が呼び出すトークンコントラクト620の承認関数の1つ目のパラメータ「escrowContractAddress」は、トークンコントラクト620からエスクローコントラクト610に金銭を送金することができるようにトークンコントラクト620がエスクローコントラクト610を識別するためのアドレスを意味してよい。承認関数の2つ目のパラメータ「value」は、送金の金額を示してよく、3つ目のパラメータ「currentAllowance」は、現在まで送金可能なように承認された金銭の量を意味してよい。 The first parameter of the approval function may represent the recipient of the remittance. At this time, money must be deposited in the escrow contract 610. In other words, the first parameter "escrowContractAddress" of the approval function of the token contract 620 called by the sender A320 may represent an address by which the token contract 620 identifies the escrow contract 610 so that money can be transferred from the token contract 620 to the escrow contract 610. The second parameter "value" of the approval function may indicate the amount of the remittance, and the third parameter "currentAllowance" may represent the amount of money currently approved for remittance.

一方、エスクロー送金関数の1つ目のパラメータ「B」は、該当の送金の実際の受信者である受信者B320を示してよく、2つ目のパラメータ「value」は、送金の金額を示してよい。エスクローコントラクト610は、エスクロー送金関数の呼び出しに応答して、トークンコントラクト620に送金を要請してよい。関数「transferFrom()」において、1つ目のパラメータ「A」は送信者A320を、2つ目のパラメータ「escrowContractAddress」はエスクローコントラクト610を、3つ目のパラメータ「value」は送金の金額を、それぞれ意味してよい。言い換えれば、エスクローコントラクト610は、トークンコントラクト620から送信者A320の金銭をエスクローコントラクト610に送金することをトークンコントラクト620に要請してよい。この場合、トークンコントラクト620は、送信者A320が承認関数によって承認した金額(エスクローコントラクト610が送金要請した金額)以内で、関数「transferFrom()」によって要請された金額をエスクローコントラクト610に送金(実質的には、対応するトークンの所有主を送信者A320からエスクローコントラクト610に変更)することにより、エスクローコントラクト610に送信者A320の金銭が預託されるようにしてよい。図6において、「Token Transfer」は、トークンコントラクト620がエスクローコントラクト610にトークンを送金する過程を示してよい。 On the other hand, the first parameter "B" of the escrow transfer function may indicate the recipient B320 who is the actual recipient of the transfer, and the second parameter "value" may indicate the amount of the transfer. In response to the invocation of the escrow transfer function, the escrow contract 610 may request the token contract 620 to transfer the money. In the function "transferFrom()", the first parameter "A" may represent the sender A320, the second parameter "escrowContractAddress" may represent the escrow contract 610, and the third parameter "value" may represent the amount of the transfer. In other words, the escrow contract 610 may request the token contract 620 to transfer the money of the sender A320 from the token contract 620 to the escrow contract 610. In this case, the token contract 620 may transfer the amount requested by the function "transferFrom()" to the escrow contract 610 within the amount approved by the sender A320 using the approval function (the amount requested by the escrow contract 610 to transfer) (effectively changing the owner of the corresponding token from the sender A320 to the escrow contract 610), thereby depositing the money of the sender A320 in the escrow contract 610. In FIG. 6, "Token Transfer" may indicate the process in which the token contract 620 transfers the token to the escrow contract 610.

図7は、信頼の置ける第三者であるエスクローコントラクトオーナー60が、該当の送金に対して予め定義された条件が満たされることにより、エスクローコントラクト610に定義されたエスクロー受信関数(「escrowReceive()」)を呼び出す例を示している。このとき、エスクロー受信関数には、該当の送金を識別するためのパラメータが含まれてよい。この場合、エスクローコントラクト610は、トークンコントラクト620に送金関数(「transfer()」)を呼び出すことにより、預託された金銭が受信者B330に送金されるようにしてよい。このとき、送金関数の1つ目のパラメータ「B」は、送金の対象である受信者B330の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。このとき、トークンコントラクト620は、エスクローコントラクト610に預託されているトークンの所有主を受信者B330に変更することにより、エスクローコントラクト610に預託された金銭を受信者B330に送金してよい。図7において、「Token Transfer」は、エスクローコントラクト610により、送信者A320が預託した金銭を受信者B330に送金する過程を示してよい。 FIG. 7 illustrates an example in which the escrow contract owner 630 , a trusted third party, calls an escrow receive function ("escrowReceive()") defined in the escrow contract 610 when a predefined condition for the corresponding remittance is satisfied. In this case, the escrow receive function may include a parameter for identifying the corresponding remittance. In this case, the escrow contract 610 may call a transfer function ("transfer()") in the token contract 620 to transfer the deposited money to the recipient B 330. In this case, the first parameter "B" of the transfer function may be an identifier of the recipient B 330 to which the remittance is to be made, and the second parameter "value" may mean the amount of the remittance. In this case, the token contract 620 may transfer the money deposited in the escrow contract 610 to the recipient B 330 by changing the owner of the token deposited in the escrow contract 610 to the recipient B 330. In FIG. 7, “Token Transfer” may indicate the process in which sender A 320 transfers the deposited money to receiver B 330 through an escrow contract 610 .

図8は、該当の送金に対して予め定義された条件が満たされない場合、エスクロー取消関数(「escrowCancel()」)が呼び出されることにより、送信者A320がエスクローコントラクト610に預託した金額の返還を受ける例を示している。一例として、エスクロー取消関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー取消関数を呼び出すことのできる呼出し元は、エスクローコントラクト610に明示されていてよい。このような呼出し元は、送信者本人であってもよいし、信頼の置ける第三者であってもよい。図8の実施形態では、信頼の置ける第三者であるエスクローコントラクトオーナー60が呼出し元として明示された例を示している。エスクローコントラクトオーナー60が該当の送金に対するエスクロー取消関数を呼び出せば、エスクローコントラクト610は、トークンコントラクト620に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「A」は、送金の対象である信者A320の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。したがって、トークンコントラクト620は、エスクローコントラクト610に預託されたトークンを送信者A320の所有に変更することにより、エスクローコントラクト610から送信者A320への送金を処理してよい。図8において、「Token Transfer」は、エスクローコントラクト610により、送信者A320が預託した金銭を送信者A320に返還する過程を示している。 FIG. 8 illustrates an example in which, if a predefined condition for the corresponding transfer is not met, an escrow cancel function ("escrowCancel()") is called, and the sender A 320 receives a refund of the amount deposited in the escrow contract 610. As an example, the escrow cancel function may include a parameter for identifying the corresponding transfer. A caller that can call the escrow cancel function may be specified in the escrow contract 610. Such a caller may be the sender himself or a trusted third party. In the embodiment of FIG. 8, an example is illustrated in which the escrow contract owner 6 3 0, which is a trusted third party, is specified as the caller. If the escrow contract owner 6 3 0 calls the escrow cancel function for the corresponding transfer, the escrow contract 610 may call a transfer function ("transfer()") defined in the token contract 620. In this case, the first parameter "A" of the remittance function may be an identifier of the sender A 320 to be remitted, and the second parameter "value" may mean the amount of the remittance. Thus, the token contract 620 may process the remittance from the escrow contract 610 to the sender A 320 by changing the token deposited in the escrow contract 610 to the ownership of the sender A 320. In FIG. 8, "Token Transfer" indicates the process in which the escrow contract 610 returns the money deposited by the sender A 320 to the sender A 320.

図6~8の実施形態において、エスクローコントラクト610は、トークンコントラクト620のトークンの送金を受け取って送金する個別的な主体として動作するため、エスクローコントラクト610とトークンコントラクト620はそれぞれ個別のインタフェースとして維持されてよい。 In the embodiment of Figures 6-8, the escrow contract 610 and the token contract 620 may be maintained as separate interfaces because the escrow contract 610 acts as a separate entity that receives and transmits token transfers from the token contract 620.

図9~12は、本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。本実施形態に係るDApp900は、ブロックチェーンシステム300においてインストールされて実行されてよく、トークンコントラクト910およびエスクローコントラクト920を含んでよい。 Figures 9-12 show a second example of an escrow transaction for a token in one embodiment of the present invention. The DApp 900 according to this embodiment may be installed and executed in the blockchain system 300 and may include a token contract 910 and an escrow contract 920.

図9の実施形態では、エスクローコントラクトオーナー930がDApp900にトークンコントラクト910およびエスクローコントラクト920をインストールする過程の例を示している。このとき、エスクローコントラクトオーナー930は、エスクローコントラクト920をDApp900に直接インストールしてよく、DApp900に既にインストールされているトークンコントラクト910でコントラクトをインストールするときに実行されるように定義された関数を利用してトークンコントラクト910がエスクローコントラクト920を設定するように制御してよい。この場合、トークンコントラクト910は、エスクローコントラクト920をインストールし、トークンコントラクト910のアドレスをエスクローコントラクト920にインストールしてよい。例えば、トークンコントラクト910は、エスクローコントラクト設定関数(「setEscrowContract(escrow_contract_addr=contractAddress1)」)を利用してエスクローコントラクト920をインストールしてよく、トークンコントラクトアドレス設定関数(「TokenContract(token_contract_addr=contractAddress2)」)を利用してエスクローコントラクト920にトークンコントラクトのアドレスを設定してよい。ここで、「contractAddress1」はエスクローコントラクト920のアドレスを意味してよく、「contractAddress2」はトークンコントラクト910のアドレスを意味してよい。 9 illustrates an example of a process in which the escrow contract owner 930 installs the token contract 910 and the escrow contract 920 in the DApp 900. At this time, the escrow contract owner 930 may directly install the escrow contract 920 in the DApp 900, or may control the token contract 910 to set the escrow contract 920 using a function defined to be executed when installing a contract in the token contract 910 already installed in the DApp 900. In this case, the token contract 910 may install the escrow contract 920 and install the address of the token contract 910 in the escrow contract 920. For example, the token contract 910 may install the escrow contract 920 using an escrow contract setting function ("setEscrowContract(escrow_contract_address=contractAddress1)"), and may set the address of the token contract in the escrow contract 920 using a token contract address setting function ("TokenContract(token_contract_address=contractAddress2)"). Here, "contractAddress1" may mean the address of the escrow contract 920, and "contractAddress2" may mean the address of the token contract 910.

図10は、送信者A320がエスクロー取引を要請することにより、エスクローコントラクト920にトークンが預託される過程の例を示している。先ず、送信者A320がトークンコントラクト910に定義されたエスクロー送金関数(「escrowTransfer()」)を利用してトークンコントラクト910に受信者B330への送金を要請すれば、トークンコントラクト910は、先ずは、承認関数(「approve()」)を利用して送金を承認した後、エスクローコントラクト920にエスクロートークン送金関数(「escrowTokenTransfer()」)を利用して送信者A320の受信者B330への送金に対する要請を伝達してよい。承認関数は、エスクローコントラクト920に送金の金額を送金することを承認するために、エスクローコントラクト920のアドレスと送金の金額がそれぞれパラメータとして利用されてよい。この場合、エスクローコントラクト920は、関数「transferFrom()」を利用して、トークンコントラクト910にエスクローコントラクト920への送金を要請してよい。関数「transferFrom()」の1つ目のパラメータ「ES」は、エスクローコントラクト920のアドレスを示してよく、2つ目のパラメータ「value」は、送金の金額を示してよい。図10において、「Token Transfer」は、送信者A320が受信者B330に送金しようとするトークンがエスクローコントラクト920に送金(実質的には、トークンコントラクト910において、該当のトークンの所有主が送信者A320からエスクローコントラクト920に変更)されてエスクローコントラクト920に預託されることを意味してよい。 Figure 10 shows an example of a process in which a sender A 320 requests an escrow transaction and deposits a token in an escrow contract 920. First, when the sender A 320 requests the token contract 910 to transfer to the receiver B 330 using an escrow transfer function ("escrowTransfer()") defined in the token contract 910, the token contract 910 may first approve the transfer using an approval function ("approve()"), and then transmit the sender A 320's request for transfer to the receiver B 330 to the escrow contract 920 using an escrow token transfer function ("escrowTokenTransfer()"). The approval function may use the address of the escrow contract 920 and the amount of the transfer as parameters to approve the transfer of the amount of the transfer to the escrow contract 920. In this case, the escrow contract 920 may use the function "transferFrom()" to request the token contract 910 to transfer to the escrow contract 920. The first parameter "ES" of the function "transferFrom()" may indicate the address of the escrow contract 920, and the second parameter "value" may indicate the amount of transfer. In FIG. 10, "Token Transfer" may mean that the token that the sender A320 intends to transfer to the receiver B330 is transferred to the escrow contract 920 (effectively, the owner of the token in the token contract 910 is changed from the sender A320 to the escrow contract 920) and deposited in the escrow contract 920.

図11は、信頼の置ける第三者であるエスクローコントラクトオーナー930が、該当の送金に対して予め定義された条件が満たされることにより、エスクローコントラクト920に定義されたエスクロー受信関数(「escrowReceive()」)を呼び出す例を示している。このとき、エスクロー受信関数には、該当の送金を識別するためのパラメータが含まれてよい。この場合、エスクローコントラクト920は、トークンコントラクト910に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「B」は、送金の対象である受信者B330の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。したがって、トークンコントラクト910は、エスクローコントラクト920のトークンの所有主を受信者B330に変更することにより、エスクローコントラクト920から受信者B330に預託された金銭が送金されてよい。図11において、「Token Transfer」は、エスクローコントラクト920により、送信者A320が預託した金銭を受信者B330に送金する過程を示してよい。 Figure 11 shows an example in which the escrow contract owner 930, a trusted third party, calls the escrow receive function ("escrowReceive()") defined in the escrow contract 920 when predefined conditions for the relevant remittance are met. At this time, the escrow receive function may include a parameter for identifying the relevant remittance. In this case, the escrow contract 920 may call the transfer function ("transfer()") defined in the token contract 910. At this time, the first parameter "B" of the transfer function may be an identifier of the recipient B330 who is the target of the remittance, and the second parameter "value" may mean the amount of the remittance. Therefore, the token contract 910 may transfer the money deposited from the escrow contract 920 to the recipient B330 by changing the owner of the token of the escrow contract 920 to the recipient B330. In FIG. 11, "Token Transfer" may indicate the process in which sender A320 transfers the deposited money to receiver B330 through escrow contract 920.

図12は、該当の送金に対して予め定義された条件が満たされない場合、エスクロー取消関数(「escrowCancel()」)が呼び出されることにより、送信者A320がエスクローコントラクト920に預託された金額を返還する例を示している。一例として、エスクロー取消関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー取消関数を呼び出すことのできる呼出し元は、エスクローコントラクト920に明示されていてよい。このような呼出し元は、送信者本人であってもよく、信頼の置ける第三者であってもよい。図12の実施形態では、信頼の置ける第三者であるエスクローコントラクトオーナー930が呼出し元として明示された例を示している。エスクローコントラクトオーナー930が該当の送金に対するエスクロー取消関数を呼び出せば、エスクローコントラクト920は、トークンコントラクト910に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「A」は、送金の対象である信者A320の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。この場合、トークンコントラクト910は、エスクローコントラクト920のトークンの所有主を送信者A320に変更することにより、預託された金額が返還されるようにしてよい。図12において、「Token Transfer」は、エスクローコントラクト920により、送信者A320が預託した金銭を送信者A320に返還する過程を示してよい。 FIG. 12 illustrates an example in which the sender A 320 returns the amount deposited in the escrow contract 920 by calling the escrow cancel function ("escrowCancel()") when a predefined condition is not met for the corresponding transfer. As an example, the escrow cancel function may include a parameter for identifying the corresponding transfer. A caller that can call the escrow cancel function may be specified in the escrow contract 920. Such a caller may be the sender himself or a trusted third party. In the embodiment of FIG. 12, an example is illustrated in which the escrow contract owner 930, who is a trusted third party, is specified as the caller. If the escrow contract owner 930 calls the escrow cancel function for the corresponding transfer, the escrow contract 920 may call the transfer function ("transfer()") defined in the token contract 910. In this case, the first parameter "A" of the remittance function may be an identifier of the sender A320 to be remitted, and the second parameter "value" may indicate the amount of the remittance. In this case, the token contract 910 may return the deposited amount by changing the owner of the token of the escrow contract 920 to the sender A320. In FIG. 12, "Token Transfer" may indicate a process in which the escrow contract 920 returns the money deposited by the sender A320 to the sender A320.

図9~12の実施形態において、エスクローコントラクト920を支援するトークンコントラクト910を利用することにより、送信者A320が1つのトランザクションを利用して送金する金銭を預託するための過程を処理することができるようになる。 In the embodiment of Figures 9-12, a token contract 910 supporting an escrow contract 920 is used to process the process for sender A320 to deposit the money to be sent using a single transaction.

図13~16は、本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。本実施形態に係るDApp1300は、ブロックチェーンシステム300においてインストールされて実行されてよく、トークンコントラクト1310およびエスクローコントラクト1320を含んでよい。 Figures 13-16 show a third example of an escrow transaction for a token in one embodiment of the present invention. The DApp 1300 according to this embodiment may be installed and executed in the blockchain system 300 and may include a token contract 1310 and an escrow contract 1320.

図13の実施形態では、エスクローコントラクトオーナー930がDApp1300にエスクローコントラクト1320をインストールする過程の例を示している。このとき、エスクローコントラクトオーナー1330は、エスクローコントラクト1320にコントラクトをインストールするときに実行されるように定義された関数を利用して、エスクローコントラクト1320とトークンコントラクト1310を連係してよい。 The embodiment of FIG. 13 illustrates an example of a process in which the escrow contract owner 930 installs the escrow contract 1320 in the DApp 1300. At this time, the escrow contract owner 1330 may link the escrow contract 1320 and the token contract 1310 using a function defined to be executed when installing the contract in the escrow contract 1320.

図14は、送信者A320がエスクロー取引を要請することにより、エスクローコントラクト1320にトークンが預託される過程の例を示している。先ず、送信者A320は、トークンコントラクト1310に定義された送金関数(「transfer()」)を利用してエスクローコントラクト1320への送金をトークンコントラクト1310に要請してよい。ここで、送金関数の1つ目のパラメータは、「escrow_token_addr=contractAddress1」のようにエスクローコントラクト1320のアドレスであってよい。また、送金関数の2つ目のパラメータは、「value」のように送金する金額であってよい。また、送金関数の3つ目のパラメータは、「0x+’transferid:toAddress:memo」のようにエスクローと関連するメタ情報(受信者、メモ)を示してよい。トークンコントラクト1310は、受信者がEOA(Externally Owned Wallet)ではないCA(Contract Address)の場合、該当のCAに対応するコントラクト(本実施形態では、エスクローコントラクト1320)に定義されているトークンフォールバック関数(「tokenFallback()」)を呼び出してよく、このとき、上述したメタ情報がトークンフォールバック関数のデータフィールドにバイト形態で含まれてよい。この場合、エスクローコントラクト1320は、メタ情報を解析してエスクローロジックを実行することにより、送信者A320から送金される金銭を預託してよい。ここで、「Token Transfer」は、送信者A320が受信者B330に送金しようとするトークンがエスクローコントラクト920に送金されて預託されることを意味してよい。関数「escrow_token_transfer()」は、トークンフォールバック関数内で呼び出されてエスクローコントラクト920に送金の受信者を記録し、データ確認(data validation)を処理するなどの後処理のための関数であってよい。 Figure 14 shows an example of a process in which a sender A320 requests an escrow transaction and deposits a token in the escrow contract 1320. First, the sender A320 may request the token contract 1310 to transfer money to the escrow contract 1320 using a transfer function ('transfer()') defined in the token contract 1310. Here, the first parameter of the transfer function may be the address of the escrow contract 1320, such as 'escrow_token_addr = contractAddress1'. The second parameter of the transfer function may be the amount to be transferred, such as 'value'. The third parameter of the transfer function may indicate meta information (recipient, memo) related to the escrow, such as '0x+'transferid:toAddress:memo'. If the recipient is a Contract Address (CA) that is not an Externally Owned Wallet (EOA), the token contract 1310 may call a token fallback function ("tokenFallback()") defined in a contract (the escrow contract 1320 in this embodiment) corresponding to the CA, and the above-mentioned meta-information may be included in the data field of the token fallback function in the form of bytes. In this case, the escrow contract 1320 may deposit the money transferred from the sender A 320 by analyzing the meta-information and executing the escrow logic. Here, "Token Transfer" may mean that the token that the sender A 320 intends to transfer to the recipient B 330 is transferred to the escrow contract 920 and deposited. The function "escrow_token_transfer()" may be a function that is called within the token fallback function to record the recipient of the transfer in the escrow contract 920 and to handle post-processing such as data validation.

図15は、信頼の置ける第三者であるエスクローコントラクトオーナー1330が、該当の送金に対して予め定義された条件が満たされることにより、エスクローコントラクト1320に定義されたエスクロー受信関数(「escrowReceive()」)を呼び出す例を示している。このとき、エスクロー受信関数には、該当の送金を識別するためのパラメータが含まれてよい。この場合、エスクローコントラクト1320は、トークンコントラクト1310に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「B」は、送金の対象である受信者B330の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。したがって、トークンコントラクト1310は、エスクローコントラクト920のトークンの所有主を受信者B330に変更することにより、エスクローコントラクト920に預託された金銭が受信者B330に送金されるように処理してよい。図15において、「Token Transfer」は、エスクローコントラクト1320により、送信者A320が預託した金銭を受信者B330に送金する過程を示してよい。 Figure 15 shows an example in which the escrow contract owner 1330, a trusted third party, calls the escrow receive function ("escrowReceive()") defined in the escrow contract 1320 when predefined conditions for the relevant transfer are met. At this time, the escrow receive function may include a parameter for identifying the relevant transfer. In this case, the escrow contract 1320 may call the transfer function ("transfer()") defined in the token contract 1310. At this time, the first parameter "B" of the transfer function may be an identifier of the recipient B330 to whom the transfer is to be made, and the second parameter "value" may mean the amount of the transfer. Therefore, the token contract 1310 may process the money deposited in the escrow contract 920 to be transferred to the recipient B330 by changing the owner of the token of the escrow contract 920 to the recipient B330. In FIG. 15, "Token Transfer" may indicate the process in which sender A320 transfers the deposited money to receiver B330 through escrow contract 1320.

図16は、該当の送金に対して予め定義された条件が満たされない場合、エスクロー取消関数(「escrowCancel()」)が呼び出されることにより、送信者A320がエスクローコントラクト920に預託された金額を返還する例を示している。一例として、エスクロー取消関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー取消関数を呼び出すことのできる呼出し元は、エスクローコントラクト1320に明示されていてよい。このような呼出し元は、送信者本人であってもよいし、信頼の置ける第三者であってもよい。図16の実施形態では、信頼の置ける第三者であるエスクローコントラクトオーナー1330が呼出し元として明示された例を示している。エスクローコントラクトオーナー1330が該当の送金に対するエスクロー取消関数を呼び出せば、エスクローコントラクト1320は、トークンコントラクト1310に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「A」は、送金の対象である信者A320の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。したがって、トークンコントラクト1310は、エスクローコントラクト1320のトークンの所有主を送信者A320に変更することにより、エスクローコントラクト1320に預託された金銭を送信者A320に返還してよい。図16において、「Token Transfer」は、エスクローコントラクト1320により、送信者A320が預託した金銭を送信者A320に返還する過程を示してよい。 FIG. 16 illustrates an example in which the sender A 320 returns the amount deposited in the escrow contract 920 by invoking the escrow cancel function ("escrowCancel()") when a predefined condition for the corresponding transfer is not met. As an example, the escrow cancel function may include a parameter for identifying the corresponding transfer. A caller that can call the escrow cancel function may be specified in the escrow contract 1320. Such a caller may be the sender himself or a trusted third party. In the embodiment of FIG. 16, an example is illustrated in which the escrow contract owner 1330, who is a trusted third party, is specified as the caller. If the escrow contract owner 1330 invokes the escrow cancel function for the corresponding transfer, the escrow contract 1320 may invoke the transfer function ("transfer()") defined in the token contract 1310. In this case, the first parameter "A" of the remittance function may be an identifier of the sender A320 to be remitted, and the second parameter "value" may mean the amount of the remittance. Therefore, the token contract 1310 may return the money deposited in the escrow contract 1320 to the sender A320 by changing the owner of the token of the escrow contract 1320 to the sender A320. In FIG. 16, "Token Transfer" may indicate a process in which the escrow contract 1320 returns the money deposited by the sender A320 to the sender A320.

図13~16の実施形態では、トークンコントラクト1310の仕様は変更せず、エスクローコントラクト1320を追加するだけでエスクロー取引を処理することが可能となる。例えば、トークンコントラクト1310がエスクローコントラクト1320を個別に認知するための過程が必要なくなる。また、送信者A320が1つのトランザクションを利用して、送金する金銭を預託するための過程を処理することが可能となる。 In the embodiment of Figures 13 to 16, the specifications of the token contract 1310 are not changed, and escrow transactions can be processed simply by adding the escrow contract 1320. For example, there is no need for the token contract 1310 to individually recognize the escrow contract 1320. In addition, it becomes possible for sender A320 to process the process of depositing the money to be remitted using a single transaction.

送金に対する条件は、条件を設定する人物と場合によって多様に定義されてよい。一例として、送信者が送金を要請することが条件を満たすものと見なされたり、送信者が送金の取消を要請することが条件を満たさないものと見なされたりしてよい。その他にも、一定の時間が経過した後に送金がなされるようにしたり特定の日付に送金がなされるようにしたりするなどの条件は、多様に定義されてよい。 Conditions for remittance may be defined in various ways depending on the person setting the condition and the circumstances. For example, the sender's request to remit may be considered to satisfy the condition, and the sender's request to cancel the remittance may be considered to not satisfy the condition. In addition, conditions may be defined in various ways, such as making the remittance after a certain amount of time has passed or on a specific date.

なお、上述したapprove()、transfer()、transferFrom()、fallback()などの関数は、イーサリアムで基本となるトークン標準であるERC-20(Ethereum Request for Comments-20)インタフェースを基本としてよい。 The functions such as approve(), transfer(), transferFrom(), and fallback() described above may be based on the ERC-20 (Ethereum Request for Comments-20) interface, which is the basic token standard for Ethereum.

図17は、本発明の一実施形態における、エスクロー取引方法の例を示したフローチャートである。本実施形態に係るエスクロー取引方法は、ブロックチェーンシステム300が含むエスクローコントラクトによって実行されてよく、実質的には、このようなエスクローコントラクトのコードを実行するコンピュータ装置200のプロセッサ20によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのコンピュータプログラムのコード(一例として、エスクローコントラクトのコード)とによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図17の方法に含まれる段階1710~1740を実行するようにコンピュータ装置200を制御してよい。 FIG. 17 is a flowchart showing an example of an escrow transaction method according to an embodiment of the present invention. The escrow transaction method according to this embodiment may be executed by an escrow contract included in the blockchain system 300, and may be substantially executed by the processor 220 of the computer device 200 executing the code of such an escrow contract. In this case, the processor 220 of the computer device 200 may be realized to execute control instructions from the operating system code and at least one computer program code (for example, the code of the escrow contract) included in the memory 210. Here, the processor 220 may control the computer device 200 so that the computer device 200 executes steps 1710 to 1740 included in the method of FIG. 17 according to the control instructions provided by the code recorded in the computer device 200.

段階1710で、コンピュータ装置200は、送信者から受信者へのエスクロー取引に対して、ブロックチェーンシステムが含むエスクローコントラクトに送信者の送金に対応する通貨を預託してよい。 At step 1710, the computing device 200 may deposit currency corresponding to the sender's transfer in an escrow contract included in the blockchain system for an escrow transaction from the sender to the receiver.

上述したように、ブロックチェーンシステムにおいて、送信者の送金に対応する通貨は、ブロックチェーンシステムの基準通貨またはブロックチェーンシステムがさらに含むトークンコントラクトに属するトークンを含んでよい。このとき、送信者の送金に対応する通貨がブロックチェーンシステムの基準通貨である場合、コンピュータ装置200は、送信者の送金に対応する基準通貨をエスクローコントラクトに直接預託してよい。一方、送信者の送金に対応する通貨が特定のトークンコントラクトに属するトークンの場合には、以下の実施形態のように、トークンコントラクトを利用して送信者の送金に対応するトークンをエスクローコントラクトに預託してよい。 As described above, in a blockchain system, the currency corresponding to the sender's remittance may include the base currency of the blockchain system or a token belonging to a token contract further included in the blockchain system. In this case, if the currency corresponding to the sender's remittance is the base currency of the blockchain system, the computer device 200 may directly deposit the base currency corresponding to the sender's remittance in an escrow contract. On the other hand, if the currency corresponding to the sender's remittance is a token belonging to a specific token contract, the token corresponding to the sender's remittance may be deposited in an escrow contract using the token contract, as in the following embodiment.

一実施形態として、コンピュータ装置200は、段階1710で、送信者から承認要請を受けたブロックチェーンシステムのトークンコントラクトに通貨の送金を要請し、トークンコントラクトに属して送信者の要請にしたがって承認されたトークンの送金をトークンコントラクトから受け取り、送信者の送金に対応する通貨でエスクローコントラクトに預託してよい。実施形態に係る預託方法については、図6を参照しながら詳しく説明したとおりである。 In one embodiment, in step 1710, the computer device 200 may request a currency transfer to a token contract of a blockchain system that has received an approval request from the sender, receive a transfer of tokens that belong to the token contract and have been approved according to the sender's request from the token contract, and deposit the tokens in an escrow contract in the currency corresponding to the sender's transfer. The deposit method according to the embodiment has been described in detail with reference to FIG. 6.

他の実施形態として、コンピュータ装置200は、段階1710で、送信者からエスクロー送金要請を受けたブロックチェーンシステムのトークンコントラクトからエスクロートークン送金要請を受信し、エスクロートークン送金要請に応答してトークンコントラクトに送金を要請し、トークンコントラクトへの要請にしたがい、送金されたトークンを送信者の送金に対応する通貨でエスクローコントラクトに預託してよい。本実施形態に係る預託方法については、図10を参照しながら詳しく説明したとおりである。一方、本実施形態のためのエスクローコントラクトのインストール過程において、コンピュータ装置200は、エスクローコントラクトのオーナー(owner)からの要請にしたがってエスクローコントラクトをインストールし、エスクローコントラクトオーナーからの要請にしたがってトークンコントラクトにエスクローコントラクトを設定してよく、トークンコントラクトの制御にしたがってエスクローコントラクトにトークンコントラクトを設定してよい。この場合、エスクローコントラクトとトークンコントラクトは互いに連係し、トークンコントラクトがエスクローコントラクトを認知することが可能となる。 In another embodiment, the computer device 200 may receive an escrow token remittance request from a token contract of a blockchain system that has received an escrow remittance request from a sender in step 1710, request a remittance to the token contract in response to the escrow token remittance request, and deposit the remitted token in the escrow contract in a currency corresponding to the remittance of the sender according to the request to the token contract. The depositing method according to this embodiment has been described in detail with reference to FIG. 10. Meanwhile, in the installation process of the escrow contract for this embodiment, the computer device 200 may install the escrow contract according to a request from the owner of the escrow contract, set the escrow contract in the token contract according to a request from the escrow contract owner, and set the token contract in the escrow contract according to the control of the token contract. In this case, the escrow contract and the token contract are linked to each other, and the token contract can recognize the escrow contract.

また他の実施形態として、コンピュータ装置200は、段階1710で、送信者からの送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトからエスクロー取引と関連するメタ情報が含まれたトークンフォールバック要請を受信し、メタ情報を解析して得られるエスクロー取引に関する情報に基づき、送信者の送金に対応する通貨でトークンコントラクトに属するトークンの送金を送信者から受け取ってエスクローコントラクトに預託してよい。本実施形態に係る預託方法については、図14を参照しながら詳しく説明したとおりである。この場合、本実施形態のためのエスクローコントラクトのインストール過程において、コンピュータ装置200は、エスクローコントラクトのオーナーからの要請にしたがって前記エスクローコントラクトをインストールし、エスクローコントラクトオーナーからの要請に含まれるトークンコントラクトのアドレスによってエスクローコントラクトとトークンコントラクトを連係してよい。この場合、トークンコントラクトは、仕様に変化がないため、エスクローコントラクトを個別に認知する過程を経る必要がなくなる。 In another embodiment, the computer device 200 may receive a token fallback request including meta information related to an escrow transaction from a token contract of the blockchain system that has received a remittance request from a sender in step 1710, and may receive a remittance of tokens belonging to the token contract in a currency corresponding to the remittance of the sender from the sender based on information about the escrow transaction obtained by analyzing the meta information, and deposit the tokens in the escrow contract. The deposit method according to this embodiment has been described in detail with reference to FIG. 14. In this case, in the process of installing the escrow contract for this embodiment, the computer device 200 may install the escrow contract according to a request from the owner of the escrow contract, and may link the escrow contract and the token contract according to the address of the token contract included in the request from the escrow contract owner. In this case, since the specifications of the token contract are not changed, it is not necessary to go through a process of individually recognizing the escrow contract.

段階1720で、コンピュータ装置200は、送信者の送金に対し、予め定義された条件を満たすか否かを決定してよい。このとき、予め定義された条件が満たされる場合、コンピュータ装置200は段階1730を実行してよく、予め定義された条件が満たされない場合、コンピュータ装置200は段階1740を実行してよい。実質的に、予め定義された条件が満たされるか否かは、エスクローコントラクトに明示された呼出し元によってなされてよく、呼出し元は、予め定義された条件が満たされた場合はエスクロー受信関数を、予め定義された条件が満たされない場合はエスクロー取消関数をそれぞれ呼び出してよい。言い換えれば、コンピュータ装置200は、エスクロー受信関数が呼び出される場合には予め定義された条件が満たされたものと決定してよく、エスクロー取消関数が呼び出される場合には予め定義された条件が満たされないものと決定してよい。 In step 1720, the computer device 200 may determine whether a predefined condition is met for the sender's remittance. If the predefined condition is met, the computer device 200 may execute step 1730, and if the predefined condition is not met, the computer device 200 may execute step 1740. In effect, whether the predefined condition is met may be determined by a caller specified in the escrow contract, and the caller may call an escrow receive function if the predefined condition is met, and an escrow cancel function if the predefined condition is not met. In other words, the computer device 200 may determine that the predefined condition is met if the escrow receive function is called, and may determine that the predefined condition is not met if the escrow cancel function is called.

段階1730で、コンピュータ装置200は、エスクローコントラクトに預託された通貨を受信者に送金してよい。一例として、コンピュータ装置200は、送信者の送金に対して予め定義された条件が満たされる場合に、エスクローコントラクトに明示された呼出し元から要請されるエスクロー受信要請にしたがい、ブロックチェーンシステムのトークンコントラクトに、エスクローコントラクトから受信者への送金を要請してよい。このような受信者への送金については、図7、図11、および図15を参照しながら詳しく説明したとおりである。 At step 1730, the computer device 200 may transfer the currency deposited in the escrow contract to the recipient. As an example, when a predefined condition for the sender's transfer is met, the computer device 200 may request a token contract of the blockchain system to transfer the currency from the escrow contract to the recipient in accordance with an escrow receipt request made by a caller specified in the escrow contract. Such transfers to the recipient have been described in detail with reference to Figures 7, 11, and 15.

段階1740で、コンピュータ装置200は、エスクローコントラクトに預託された通貨を送信者に返還してよい。一例として、コンピュータ装置200は、送信者の送金に対して予め定義された条件が満たされない場合に、エスクローコントラクトに明示された呼出し元から要請されるエスクロー取消要請にしたがい、ブロックチェーンシステムのトークンコントラクトに、エスクローコントラクトから送信者への送金を要請してよい。預託された通貨の送信者への返還については、図8、図12、および図16を参照しながら詳しく説明したとおりである。 At step 1740, the computer device 200 may return the currency deposited in the escrow contract to the sender. As an example, if a predefined condition for the sender's remittance is not met, the computer device 200 may request a token contract in the blockchain system to transfer the currency from the escrow contract to the sender in accordance with an escrow cancellation request made by a caller specified in the escrow contract. The return of the deposited currency to the sender has been described in detail with reference to Figures 8, 12, and 16.

一方、段階1730および段階1740において、呼出し元は、エスクローコントラクトのオーナーまたは送信者であってよい。 On the other hand, in steps 1730 and 1740, the caller may be the owner or sender of the escrow contract.

このように、本発明の実施形態によると、スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、金銭を預託しておいた後に、特定の条件が満たされたときに受信者に送金を処理することができる。また、特定の条件が満たされたか否かにより、送金者が送金を取り消すことができる。さらに、スマートコントラクトは、ソースコードがブロックチェーンネットワーク上に公開されるため、どのようなロジックによってエスクロー機能が動作するのかについての透明性を確保することができる。 In this way, according to an embodiment of the present invention, by clearly indicating the conditions for a transaction to be concluded in a smart contract, the remittance is not made immediately, but rather the money can be deposited and then processed for remittance to the recipient when certain conditions are met. Also, the remitter can cancel the remittance depending on whether or not certain conditions are met. Furthermore, since the source code of the smart contract is published on the blockchain network, transparency can be ensured as to the logic by which the escrow function operates.

上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(Arithmetic Logic Unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(Field Programmable Gate Array)、PLU(Programmable Logic Unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。 The above-described systems or devices may be realized by hardware components or a combination of hardware and software components. For example, the devices and components described in the embodiments may be realized using one or more general-purpose or special-purpose computers, such as, for example, a processor, a controller, an ALU (arithmetic logic unit), a digital signal processor, a microcomputer, an FPGA (field programmable gate array), a PLU (programmable logic unit), a microprocessor, or various devices capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications that run on the OS. The processing device may also respond to the execution of the software and access, record, manipulate, process, and generate data. For ease of understanding, the description may be given as if one processing device is used, but one skilled in the art will understand that the processing device may include multiple processing elements and/or multiple types of processing elements. For example, a processing unit may include multiple processors or one processor and one controller. Other processing configurations, such as parallel processors, are also possible.

ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、望む動作をするように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。 The software may include computer programs, codes, instructions, or a combination of one or more of these, and may configure or instruct a processing device to perform a desired operation, either individually or collectively. The software and/or data may be embodied in any type of machine, component, physical device, virtual device, computer storage medium, or device to be interpreted based on the processing device or to provide instructions or data to the processing device. The software may be distributed and stored or executed in a distributed manner on computer systems connected by a network. The software and data may be stored on one or more computer-readable storage media.

実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。 The method according to the embodiment may be realized in the form of program instructions executable by various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., alone or in combination. The medium may be one that continuously records a computer-executable program, or one that temporarily records it for execution or download. The medium may be one that is a recording or storage means in the form of a single or multiple hardware devices, and is not limited to a medium that is directly connected to a certain computer system, but may be one that is distributed over a network. Examples of the medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROMs, RAMs, flash memories, etc., configured to record program instructions. Other examples of the medium include recording media or storage media managed by application stores that distribute applications, or sites, servers, etc. that supply or distribute various other software. Examples of program instructions include not only machine code, such as that produced by a compiler, but also high-level language code that is executed by a computer using an interpreter or the like.

以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。 Although the embodiments have been described above based on limited embodiments and drawings, those skilled in the art will appreciate that various modifications and variations may be made from the above description. For example, the described techniques may be performed in an order different from that described, and/or the components of the described systems, structures, devices, circuits, etc. may be combined or combined in a manner different from that described, or may be replaced or substituted by other components or equivalents, and still achieve suitable results.

したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。 Therefore, different embodiments that are equivalent to the scope of the claims are within the scope of the attached claims.

Claims (19)

送信者から受信者へのエスクロー取引に対し、ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託する段階、
前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託された通貨を前記受信者に送金する段階、および
前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに明示された呼び出し元である信頼の置ける第三者による要請にしたがい、前記エスクローコントラクトに預託された通貨を前記送信者に返還する段階
をコンピュータ装置に実行させる、コンピュータプログラム。
For an escrow transaction from a sender to a receiver, depositing currency corresponding to the sender's remittance in an escrow contract included in the blockchain system;
A computer program product that causes a computer device to execute the steps of: transferring the currency deposited in the escrow contract to the recipient if a predefined condition for the sender's transfer is met; and returning the currency deposited in the escrow contract to the sender upon request by a trusted third party that is a caller specified in the escrow contract if the predefined condition for the transfer is not met.
前記通貨を預託する段階は、
前記送信者から承認要請を受けた前記ブロックチェーンシステムのトークンコントラクトに前記通貨の送金を要請する段階、および
前記トークンコントラクトに属して前記送信者の要請にしたがって承認されたトークンの送金を前記トークンコントラクトから受け取り、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託する段階
を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
The step of depositing the currency includes:
2. The computer program of claim 1, further comprising: a step of requesting a token contract of the blockchain system that has received an approval request from the sender to remit the currency; and a step of receiving, from the token contract, a remittance of the token that belongs to the token contract and has been approved according to the request of the sender, and depositing the token in the escrow contract in the currency corresponding to the remittance of the sender.
前記通貨を預託する段階は、
前記送信者からエスクロー送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトからエスクロートークン送金要請を受信する段階、
前記エスクロートークン送金要請に応答して前記トークンコントラクトに送金を要請する段階、および
前記トークンコントラクトへの要請にしたがって送金されたトークンを、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託する段階
を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
The step of depositing the currency includes:
receiving an escrow token remittance request from a token contract of the blockchain system that has received an escrow token remittance request from the sender;
2. The computer program product of claim 1, further comprising: requesting the token contract to remit in response to the escrow token remittance request; and depositing the tokens remitted in accordance with the request to the token contract in the escrow contract in a currency corresponding to the remittance of the sender.
前記エスクローコントラクトのオーナーからの要請にしたがって前記エスクローコントラクトをインストールする段階、
前記エスクローコントラクトのオーナーからの要請にしたがって前記トークンコントラクトに前記エスクローコントラクトを設定する段階、および
前記トークンコントラクトの制御にしたがって前記エスクローコントラクトに前記トークンコントラクトを設定する段階
をコンピュータ装置に実行させる、請求項3に記載のコンピュータプログラム。
installing the escrow contract pursuant to a request from an owner of the escrow contract;
4. The computer program product of claim 3, configured to cause a computer device to execute the steps of: setting the escrow contract in the token contract according to a request from an owner of the escrow contract; and setting the token contract in the escrow contract according to control of the token contract.
前記通貨を預託する段階は、
前記送信者から送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトから、エスクロー取引と関連するメタ情報が含まれたトークンフォールバック要請を受信する段階、および
前記メタ情報を解析して得られるエスクロー取引に関する情報に基づいて、前記送信者の送金に対応する通貨で前記トークンコントラクトに属したトークンの送金を前記送信者から受け取って前記エスクローコントラクトに預託する段階
を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
The step of depositing the currency includes:
2. The computer program product of claim 1, further comprising: receiving a token fallback request including meta information related to an escrow transaction from a token contract of the blockchain system that has received a remittance request from the sender; and receiving a remittance of tokens belonging to the token contract from the sender in a currency corresponding to the remittance of the sender based on information regarding the escrow transaction obtained by analyzing the meta information, and depositing the tokens in the escrow contract.
前記エスクローコントラクトのオーナーからの要請にしたがって前記エスクローコントラクトをインストールする段階、および
前記エスクローコントラクトのオーナーからの要請が含む前記トークンコントラクトのアドレスによって前記エスクローコントラクトと前記トークンコントラクトを連係する段階
をコンピュータ装置に実行させる、請求項5に記載のコンピュータプログラム。
6. The computer program product of claim 5, configured to cause a computer device to execute the steps of: installing the escrow contract in accordance with a request from an owner of the escrow contract; and linking the escrow contract and the token contract using an address of the token contract included in the request from the owner of the escrow contract.
前記預託された通貨を前記受信者に送金する段階は、
前記送信者の送金に対して予め定義された条件が満たされる場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー受信要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記受信者への送金を要請することを特徴とする、請求項1に記載のコンピュータプログラム。
The step of transferring the deposited currency to the recipient includes:
2. The computer program of claim 1, further comprising: a computer program for requesting a token contract of the blockchain system to transfer money from the escrow contract to the receiver in accordance with an escrow receipt request made by a caller specified in the escrow contract when a predefined condition for the sender's remittance is met.
前記預託された通貨を前記送信者に返還する段階は、
前記送信者の送金に対して予め定義された条件が満たされない場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー取消要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記送信者への送金を要請することを特徴とする、請求項1に記載のコンピュータプログラム。
The step of returning the deposited currency to the sender includes:
2. The computer program of claim 1, further comprising: a computer program for requesting a token contract of the blockchain system to transfer money from the escrow contract to the sender in accordance with an escrow cancellation request made by a caller specified in the escrow contract when a predefined condition for the sender's remittance is not met.
前記呼出し元は、前記エスクローコントラクトのオーナーまたは前記送信者であることを特徴とする、請求項7または8に記載のコンピュータプログラム。 The computer program of claim 7 or 8, wherein the caller is the owner of the escrow contract or the sender. 前記送信者の送金に対応する通貨は、前記ブロックチェーンシステムの基準通貨を含むことを特徴とする、請求項1に記載のコンピュータプログラム。 The computer program of claim 1, characterized in that the currency corresponding to the sender's remittance includes the base currency of the blockchain system. 前記通貨は、前記ブロックチェーンシステムがさらに含むトークンコントラクトに属するトークンを含むことを特徴とする、請求項1に記載のコンピュータプログラム。 The computer program of claim 1, wherein the currency includes a token belonging to a token contract further included in the blockchain system. 送信者から受信者へのエスクロー取引に対し、ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託する段階、
前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託された通貨を前記受信者に送金する段階、および
前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに明示された呼び出し元である信頼の置ける第三者による要請にしたがい、前記エスクローコントラクトに預託された通貨を前記送信者に返還する段階
をコンピュータ装置に実行させる、エスクロー取引方法。
For an escrow transaction from a sender to a receiver, depositing currency corresponding to the sender's remittance in an escrow contract included in the blockchain system;
transferring the currency deposited in the escrow contract to the receiver if a predefined condition for the sender's transfer is met; and
and returning the currency deposited in the escrow contract to the sender upon request by a trusted third party that is a caller as specified in the escrow contract if a predefined condition for the transfer is not met.
The escrow transaction method includes causing a computer device to execute the steps described above.
請求項1から11のうちのいずれか一項に記載のコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。 A computer-readable recording medium on which the computer program according to any one of claims 1 to 11 is recorded. コンピュータで読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサにより、
送信者から受信者へのエスクロー取引に対し、ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託し、
前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託された通貨を前記受信者に送金し、
前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに明示された呼び出し元である信頼の置ける第三者による要請にしたがい、前記エスクローコントラクトに預託された通貨を前記送信者に返還すること
を特徴とする、コンピュータ装置。
at least one processor implemented to execute computer readable instructions;
by said at least one processor,
For an escrow transaction from a sender to a receiver, depositing currency corresponding to the sender's remittance in an escrow contract included in the blockchain system;
If a predefined condition for the sender's transfer is met, then transfer the currency deposited in the escrow contract to the receiver;
and returning the currency deposited in the escrow contract to the sender upon request by a trusted third party that is a caller specified in the escrow contract if a predefined condition for the transfer is not met.
前記少なくとも1つのプロセッサにより、
前記送信者から承認要請を受けた前記ブロックチェーンシステムのトークンコントラクトに前記通貨の送金を要請し、
前記トークンコントラクトに属して前記送信者の要請にしたがって承認されたトークンの送金を前記トークンコントラクトから受け取り、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託すること
を特徴とする、請求項14に記載のコンピュータ装置。
by said at least one processor,
Requesting a token contract of the blockchain system that has received an approval request from the sender to remit the currency;
The computer device of claim 14, further comprising: receiving from the token contract a transfer of tokens that belong to the token contract and are approved according to the request of the sender, and depositing the tokens in the escrow contract in a currency corresponding to the transfer of the sender.
前記少なくとも1つのプロセッサにより、
前記送信者からエスクロー送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトからエスクロートークン送金要請を受信し、
前記エスクロートークン送金要請に応答して前記トークンコントラクトに送金を要請し、
前記トークンコントラクトへの要請にしたがって送金されたトークンを、前記送信者の送金に対応する通貨で前記エスクローコントラクトに預託すること
を特徴とする、請求項14に記載のコンピュータ装置。
by said at least one processor,
receiving an escrow token remittance request from a token contract of the blockchain system that has received an escrow remittance request from the sender;
In response to the escrow token transfer request, request the token contract to transfer the escrow token;
15. The computer device of claim 14, further comprising: depositing tokens transferred in accordance with a request to the token contract in the escrow contract in a currency corresponding to the sender's transfer.
前記少なくとも1つのプロセッサにより、
前記送信者から送金要請を受けた前記ブロックチェーンシステムのトークンコントラクトから、エスクロー取引と関連するメタ情報が含まれたトークンフォールバック要請を受信し、
前記メタ情報を解析して得られるエスクロー取引に関する情報に基づいて、前記送信者の送金に対応する通貨で前記トークンコントラクトに属するトークンの送金を前記送信者から受け取って前記エスクローコントラクトに預託すること
を特徴とする、請求項14に記載のコンピュータ装置。
by said at least one processor,
receiving a token fallback request including meta information related to an escrow transaction from a token contract of the blockchain system that has received a remittance request from the sender;
The computer device according to claim 14, further comprising: receiving a remittance of tokens belonging to the token contract in a currency corresponding to the remittance of the sender from the sender based on information regarding an escrow transaction obtained by analyzing the meta-information, and depositing the tokens in the escrow contract.
前記少なくとも1つのプロセッサにより、
前記送信者の送金に対して予め定義された条件が満たされる場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー受信要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記受信者への送金を要請すること
を特徴とする、請求項14に記載のコンピュータ装置。
by said at least one processor,
The computer device of claim 14, further comprising: a computer device that requests a token contract of the blockchain system to transfer money from the escrow contract to the receiver in accordance with an escrow receipt request made by a caller specified in the escrow contract when a predefined condition for the sender's transfer is met.
前記少なくとも1つのプロセッサにより、
前記送信者の送金に対して予め定義された条件が満たされない場合に、前記エスクローコントラクトに明示された呼出し元から要請されるエスクロー取消要請にしたがい、前記ブロックチェーンシステムのトークンコントラクトに前記エスクローコントラクトから前記送信者への送金を要請すること
を特徴とする、請求項14に記載のコンピュータ装置。
by said at least one processor,
The computer device of claim 14, further comprising: a computer device that requests a token contract of the blockchain system to transfer funds from the escrow contract to the sender in accordance with an escrow cancellation request made by a caller specified in the escrow contract when a predefined condition for the sender's transfer is not met.
JP2022537151A 2019-12-20 2019-12-20 Escrow transaction method and system using smart contract on blockchain Active JP7478240B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/018156 WO2021125399A1 (en) 2019-12-20 2019-12-20 Escrow transaction method and system using smart contract in blockchain

Publications (2)

Publication Number Publication Date
JP2023514007A JP2023514007A (en) 2023-04-05
JP7478240B2 true JP7478240B2 (en) 2024-05-02

Family

ID=76478791

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537151A Active JP7478240B2 (en) 2019-12-20 2019-12-20 Escrow transaction method and system using smart contract on blockchain

Country Status (3)

Country Link
JP (1) JP7478240B2 (en)
KR (1) KR102727649B1 (en)
WO (1) WO2021125399A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595736B (en) * 2021-07-21 2022-06-14 深圳市信安数字科技有限公司 Block chain based information transmission method, system, device and storage medium
CN113850573A (en) * 2021-08-19 2021-12-28 中国人民银行数字货币研究所 Smart contract execution method and device
KR102670805B1 (en) * 2022-07-21 2024-05-31 주식회사 인피닛블록 System and control for digital token stock issuance management based on custody
US20250200572A1 (en) * 2023-12-18 2025-06-19 The Pnc Financial Services Group, Inc. Digital asset payment rail
KR102690179B1 (en) 2024-03-15 2024-07-31 주식회사 블로믹스 Escrow System And Its Method That Guarantees Payment And Refund Based On blockchain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055203A (en) 2016-09-26 2018-04-05 Gmoインターネット株式会社 Data management system, information processing apparatus, program, data management method, data structure
US20190378128A1 (en) 2018-06-08 2019-12-12 Rocket Lawyer Incorporated Cryptographic Contract Payment and Dispute Resolution System

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180054972A (en) * 2016-11-14 2018-05-25 주식회사 비즈모델라인 Method for Operating Mobile Safety Remittance based on Verification of the Remittee
KR20190019004A (en) * 2017-08-16 2019-02-26 김용태 The trading system and the method based on a blockchain
KR101857223B1 (en) * 2017-11-13 2018-05-11 주식회사 온더 Method and system for user identification based block chain token
KR102580915B1 (en) * 2018-02-08 2023-09-19 주식회사 케이티 Platform and Method for Safety Transaction based on Block Chain
US10713722B2 (en) * 2018-02-14 2020-07-14 Equity Shift, Inc. Blockchain instrument for transferable equity
KR20190132159A (en) * 2018-05-18 2019-11-27 주식회사 비즈모델라인 Method for Providing Cryptocurrency Trading Platform based on Blockchain by using Smart Contract
CN108876606B (en) * 2018-05-29 2021-02-09 创新先进技术有限公司 Asset transfer method and device and electronic equipment
KR20190136610A (en) * 2018-05-31 2019-12-10 박덕용 Apparatus and method for transaction processing using smart contract based on blockchain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055203A (en) 2016-09-26 2018-04-05 Gmoインターネット株式会社 Data management system, information processing apparatus, program, data management method, data structure
US20190378128A1 (en) 2018-06-08 2019-12-12 Rocket Lawyer Incorporated Cryptographic Contract Payment and Dispute Resolution System

Also Published As

Publication number Publication date
WO2021125399A1 (en) 2021-06-24
KR102727649B1 (en) 2024-11-07
JP2023514007A (en) 2023-04-05
KR20220084401A (en) 2022-06-21

Similar Documents

Publication Publication Date Title
JP7478240B2 (en) Escrow transaction method and system using smart contract on blockchain
JP7385706B2 (en) Method of distributing digital assets registered on blockchain and autonomous computing agent
JP7272844B2 (en) Method and system for recognizing message contents and providing remittance function in messenger equipped with remittance function
US11062294B2 (en) Cognitive blockchain for customized interchange determination
TWI712974B (en) Methods and devices for processing certificates in blockchain system
JP2021520010A (en) Blockchain loan transaction system and method
TW202008196A (en) Transaction method and system based on centralized settlement and block chain deposit certification
US10043174B1 (en) Bitcoin transaction using text message
US11972432B2 (en) Risk determination enabled crypto currency transaction system
TW202008235A (en) Transaction method and system based on centralized settlement and block chain storage
US20220156725A1 (en) Cross-chain settlement mechanism
CN113506111A (en) Entity article ownership registration method and device based on block chain
JP7615581B2 (en) Installment payment method and system
JP2025061606A (en) Transaction delegation method and transaction delegation system
TW202029093A (en) Blockchain-based invoice voiding method and apparatus, and electronic device
US20160232620A1 (en) Method and system for venture capital raising for startup via award and reality television show
CN114146415A (en) Game element transaction method and device based on block chain
CN115461775A (en) Loan management method and system based on block chain
CN108876339B (en) Token-based electronic pet transaction method and device
US20250013998A1 (en) Methods and systems for transaction processing using a blockchain
CN113032036B (en) Service data processing method, device, system, computer equipment and storage medium
JP2022105477A (en) Methods, systems, and computer programs for instant transfer of cryptocurrencies
KR20090089745A (en) Methods, systems, and computer readable recording media for providing real estate transaction information of authentic agents
US11468081B2 (en) System and method for enhanced transaction utility
WO2025006624A1 (en) Non-fungible token-based blockchain transactions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240403

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150