JP2023514007A - 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
JP2023514007A
JP2023514007A JP2022537151A JP2022537151A JP2023514007A JP 2023514007 A JP2023514007 A JP 2023514007A JP 2022537151 A JP2022537151 A JP 2022537151A JP 2022537151 A JP2022537151 A JP 2022537151A JP 2023514007 A JP2023514007 A JP 2023514007A
Authority
JP
Japan
Prior art keywords
escrow
contract
sender
token
remittance
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.)
Pending
Application number
JP2022537151A
Other languages
Japanese (ja)
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
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/14Payment architectures specially adapted for billing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/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

Abstract

【課題】ブロックチェーンでスマートコントラクトを利用したエスクロー取引方法およびシステムを開示する。【解決手段】一実施形態に係るエスクロー取引方法は、送信者から受信者へのエスクロー取引に対し、前記ブロックチェーンシステムが含むエスクローコントラクトに前記送信者の送金に対応する通貨を預託する段階、前記送信者の送金に対して予め定義された条件が満たされる場合、前記エスクローコントラクトに預託された通貨を前記受信者に送金する段階、および前記送金に対して予め定義された条件が満たされない場合、前記エスクローコントラクトに預託された通貨を前記送信者に返還する段階を含んでよい。An escrow transaction method and system using smart contracts on a blockchain are disclosed. An escrow transaction method according to one embodiment, for an escrow transaction from a sender to a receiver, depositing a currency corresponding to the remittance of the sender in an escrow contract included in the blockchain system; transferring currency deposited in said escrow contract to said recipient if predefined conditions for a sender's transfer are met; and if predefined conditions for said transfer are not met, Returning currency deposited in the escrow contract to the sender may be included.

Description

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

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

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

スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、預託しておいた後、特定の条件が満たされたときに受信者に送金を処理することができる、エスクロー取引方法およびシステムを提供する。 By specifying the conditions for transaction completion in the smart contract, the remittance is not done immediately, and after depositing, the remittance can be processed to the recipient when specific conditions are met. Provide an escrow transaction method and system.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、預託しておいた後、特定の条件が満たされたときに受信者に送金を処理することができる。 By specifying the conditions for transaction completion in the smart contract, the remittance is not done immediately, but after depositing, it is possible to process the remittance to the recipient when specific conditions are met.

特定の条件が満たされるか否かにより、送金者が送金を取り消すことができる。 The transfer can be reversed by the sender depending on whether certain conditions are met.

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

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

以下、実施形態について、添付の図面を参照しながら詳しく説明する。 Embodiments will be described in detail below with reference to the accompanying drawings.

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

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

複数の電子機器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 plurality of electronic devices 110, 120, 130, 140 may be fixed terminals or mobile terminals implemented by computing devices. Examples of the plurality of electronic devices 110, 120, 130, and 140 include smartphones, mobile phones, navigation systems, PCs (personal computers), notebook PCs, digital broadcasting terminals, PDAs (Personal Digital Assistants), and PMPs (Portable Multimedia Players). ), and tablet PCs. As an example, FIG. 1 shows a smart phone as an example of the electronic device 110, but in embodiments of the present invention, the electronic device 110 substantially utilizes a wireless or wired communication scheme and communicates with other devices via the network 170. may refer to one of a wide variety of physical computing devices capable of communicating with the electronic devices 120, 130, 140 and/or the servers 150, 160.

通信方式が限定されることはなく、ネットワーク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 not only the communication method using the communication network that can be included in the network 170 (eg, mobile communication network, wired Internet, wireless Internet, broadcasting network), but also the short distance between devices. Wireless communication may be included. For example, the network 170 includes a PAN (Personal Area Network), a LAN (Local Area Network), a CAN (Campus Area Network), a MAN (Metropolitan Area Network), a WAN (Wide Area Network), a BBN (Broadband Network, etc.), and the Internet. Any one or more of the networks may be included. Additionally, network 170 may include any one or more of network topologies including, but not limited to, bus networks, star networks, ring networks, mesh networks, star-bus networks, tree or hierarchical networks, and the like. will not be

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

図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。 FIG. 2 is a block diagram illustrating an example computing device, in accordance with one embodiment of the present invention. Each of the plurality of 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 FIG.

このようなコンピュータ装置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 computing device 200 may include memory 210, processor 220, communication interface 230, and input/output interface 240, as shown in FIG. The memory 210 is a computer-readable storage medium and may include random access memory (RAM), read only memory (ROM), and permanent mass storage devices such as disk drives. Here, a permanent mass storage device such as a ROM or disk drive may be included in computer device 200 as a separate permanent storage device separate from memory 210 . Also stored in memory 210 may be an operating system and at least one program code. Such software components may be loaded into memory 210 from a computer-readable medium separate from memory 210 . Such other computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, and the like. In other embodiments, software components may be loaded into memory 210 through communication interface 230 rather than a computer-readable medium. For example, software components may be loaded into memory 210 of computing device 200 based on computer programs installed by files received over network 170 .

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

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

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

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

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

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

図3は、送信者A320がエスクローコントラクト310に定義されたエスクロー送金関数(「escrowTransfer()」)を呼び出すことにより、基準通貨である金銭をエスクローコントラクト310に預託する例を示している。このとき、エスクロー送金関数の1つ目のパラメータ「B」は、該当の送金の受信者である受信者B330の識別子であってよく、2つ目のパラメータ「value」は、該当の送金の金額を示してよい。「Coin Transfer」は、送信者A320からエスクローコントラクト310に基準通貨が送金される過程を示してよい。 FIG. 3 shows an example in which sender A 320 deposits money, which is the base currency, in escrow contract 310 by calling an escrow transfer function (“escrowTransfer( )”) defined in escrow contract 310 . At this time, the first parameter 'B' of the escrow remittance function may be the identifier of the recipient B 330 of the remittance, and the second parameter 'value' is the amount of the remittance. can be shown. “Coin Transfer” may indicate the process by which the base currency is transferred from Sender A 320 to 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」に対応する基準通貨である金銭を送金する関数を意味してよい。 FIG. 4 shows an example in which the 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. there is As an example, an escrow receive function may include a parameter to identify the transfer in question. The callers 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 FIG. 4 shows an example in which a trusted third party, escrow contract owner 410, who is the owner or developer of escrow contract 310, is specified as the caller. The escrow contract owner 410 may call an escrow receive function on the escrow contract 310 if the pre-defined conditions for that transfer are met, causing the money deposited in the escrow contract 310 to be transferred to the escrow contract 310. may be sent to Recipient B330 specified in . The function "baseCoinTransfer(B, value)" shown in FIG. 4 is a function for transferring the base currency, where the escrow contract 310 transfers two It may mean a function for transferring money, which is the base currency corresponding to the first parameter 'value'.

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

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

図6~8は、本発明の一実施形態における、トークンに対するエスクロー取引の第1例を示した図である。ブロックチェーンシステム300においてインストールされて実行されるDApp(Decentralized Application)600は、ブロックチェーン技術を活用して、中央サーバを経ずにネットワーク上に情報を分散、保存、および実行するアプリケーションである。DApp600には、エスクローコントラクト610と、トークンが属している特定のスマートコントラクト(以下、「トークンコントラクト620」)が含まれてよい。 6-8 are diagrams showing a first example of an escrow transaction for tokens in one embodiment of the present invention. A DApp (Decentralized Application) 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 particular smart contract to which the token belongs (hereinafter "token contract 620").

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

承認関数の1つ目のパラメータは、送金対象者を意味してよい。このとき、エスクローコントラクト610には、金銭が預託されていなければならない。言い換えれば、送信者A320が呼び出すトークンコントラクト620の承認関数の1つ目のパラメータ「escrowContractAddress」は、トークンコントラクト620からエスクローコントラクト610に金銭を送金することができるようにトークンコントラクト620がエスクローコントラクト610を識別するためのアドレスを意味してよい。承認関数の2つ目のパラメータ「value」は、送金の金額を示してよく、3つ目のパラメータ「currentAllowance」は、現在まで送金可能なように承認された金銭の量を意味してよい。 A 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 authorization function of token contract 620 called by Sender A 320 is specified by token contract 620 to escrow contract 610 so that money can be transferred from token contract 620 to escrow contract 610 . It may mean an address for identification. A second parameter of the authorization function, 'value', may indicate the amount of money to be transferred, and a third parameter, 'currentAllowance', may mean the amount of money authorized to be transferred to date.

一方、エスクロー送金関数の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 remittance function may indicate the actual recipient of the remittance in question, Recipient B 320, and the second parameter "value" indicates the amount of the remittance. good. Escrow contract 610 may request a transfer from token contract 620 in response to a call to an escrow transfer function. In the function "transferFrom( )", the first parameter "A" is the sender A 320, the second parameter "escrowContractAddress" is the escrow contract 610, the third parameter "value" is the amount of the transfer, each can mean In other words, escrow contract 610 may ask token contract 620 to transfer Sender A 320's money from token contract 620 to escrow contract 610 . In this case, the token contract 620 remits (substantially Specifically, by changing the owner of the corresponding token from sender A 320 to escrow contract 610 , sender A 320's money may be deposited in escrow contract 610 . In FIG. 6, “Token Transfer” may indicate the process by which token contract 620 transfers tokens to escrow contract 610 .

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

図8は、該当の送金に対して予め定義された条件が満たされない場合、エスクロー取消関数(「escrowCancel()」)が呼び出されることにより、送信者A320がエスクローコントラクト610に預託した金額の返還を受ける例を示している。一例として、エスクロー取消関数には、該当の送金を識別するためのパラメータが含まれてよい。エスクロー取消関数を呼び出すことのできる呼出し元は、エスクローコントラクト610に明示されていてよい。このような呼出し元は、送信者本人であってもよいし、信頼の置ける第三者であってもよい。図8の実施形態では、信頼の置ける第三者であるエスクローコントラクトオーナー620が呼出し元として明示された例を示している。エスクローコントラクトオーナー620が該当の送金に対するエスクロー取消関数を呼び出せば、エスクローコントラクト610は、トークンコントラクト620に定義された送金関数(「transfer()」)を呼び出してよい。このとき、送金関数の1つ目のパラメータ「A」は、送金の対象である受信者A320の識別子であってよく、2つ目のパラメータ「value」は、送金の金額を意味してよい。したがって、トークンコントラクト620は、エスクローコントラクト610に預託されたトークンを送信者A320の所有に変更することにより、エスクローコントラクト610から送信者A320への送金を処理してよい。図8において、「Token Transfer」は、エスクローコントラクト610により、送信者A320が預託した金銭を送信者A320に返還する過程を示している。 FIG. 8 shows that an escrow cancellation function (“escrowCancel( )”) is invoked to return the amount deposited by Sender A 320 in the escrow contract 610 if the pre-defined conditions for the remittance are not met. It shows an example of receiving. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 610 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 8 shows an example in which a trusted third party, escrow contract owner 620, is specified as the caller. Escrow contract 610 may call the transfer function (“transfer( )”) defined in token contract 620 if escrow contract owner 620 calls the escrow cancel function for that transfer. At this time, the first parameter "A" of the remittance function may be the identifier of the recipient A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Accordingly, token contract 620 may handle transfers from escrow contract 610 to sender A 320 by transferring tokens escrowed with escrow contract 610 into the possession of sender A 320 . In FIG. 8, “Token Transfer” indicates the process of returning money deposited by sender A320 to sender A320 by escrow contract 610 .

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

図9~12は、本発明の一実施形態における、トークンに対するエスクロー取引の第2例を示した図である。本実施形態に係るDApp900は、ブロックチェーンシステム300においてインストールされて実行されてよく、トークンコントラクト910およびエスクローコントラクト920を含んでよい。 9-12 are diagrams illustrating a second example of an escrow transaction for tokens in one embodiment of the present invention. A DApp 900 according to this embodiment may be installed and run on 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のアドレスを意味してよい。 The embodiment of FIG. 9 shows an example process of an escrow contract owner 930 installing a token contract 910 and an escrow contract 920 into a DApp 900 . At this time, the escrow contract owner 930 may install the escrow contract 920 directly into the DApp 900, utilizing the functions defined to be executed when installing the contract with the token contract 910 already installed in the DApp 900. may control the token contract 910 to set up the escrow contract 920. In this case, token contract 910 may install escrow contract 920 and install the address of token contract 910 into escrow contract 920 . For example, token contract 910 may install escrow contract 920 using a set escrow contract function (“setEscrowContract(escrow_contract_addr=contractAddress1)”) and a set token contract address function (“TokenContract(token_contract_addr=contractAddress2)”). may be used to set the escrow contract 920 to the address of the token contract. Here, “contractAddress1” may refer to the address of the escrow contract 920 and “contractAddress2” may refer to 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に預託されることを意味してよい。 FIG. 10 shows an example of a process in which a token is deposited in an escrow contract 920 by requesting an escrow transaction from sender A 320 . First, when the sender A320 requests the token contract 910 to transfer money to the recipient B330 using the escrow transfer function ("escrowTransfer()") defined in the token contract 910, the token contract 910 first: After approving the transfer using the approval function (“approve( )”), the escrow contract 920 requests sender A 320 to send the transfer to recipient B 330 using the escrow token transfer function (“escrowTokenTransfer( )”). may be transmitted. The authorization function may use the address of the escrow contract 920 and the amount of the transfer as parameters, respectively, to authorize the transfer of the transfer amount to the escrow contract 920 . In this case, escrow contract 920 may request token contract 910 to transfer money to escrow contract 920 using the function “transferFrom( )”. 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 money to transfer. In FIG. 10, "Token Transfer" indicates that the token that the sender A320 intends to transfer to the receiver B330 is transferred to the escrow contract 920 (substantially, in the token contract 910, the owner of the corresponding token 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に送金する過程を示してよい。 FIG. 11 shows that the escrow contract owner 930, a trusted third party, receives the escrow receive function defined in the escrow contract 920 ("escrowReceive() ”) is shown. At this time, the escrow receiving function may include a parameter for identifying the relevant remittance. In this case, escrow contract 920 may call the transfer function (“transfer( )”) defined in token contract 910 . At this time, the first parameter "B" of the remittance function may be the identifier of the recipient B330 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Thus, token contract 910 may transfer money deposited from escrow contract 920 to recipient B330 by changing the owner of the token in escrow contract 920 to recipient B330. In FIG. 11 , “Token Transfer” may indicate the process of transferring money deposited by sender A 320 to receiver B 330 by 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 shows that the escrow cancellation function (“escrowCancel( )”) is called so that Sender A 320 returns the amount deposited in the escrow contract 920 if the pre-defined conditions for the remittance are not met. example. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 920 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 12 shows an example in which the escrow contract owner 930, who is a trusted third party, is specified as the caller. Escrow contract 920 may call the transfer function (“transfer( )”) defined in token contract 910 if escrow contract owner 930 calls the escrow cancel function for that transfer. At this time, the first parameter "A" of the remittance function may be the identifier of the recipient A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. In this case, token contract 910 may change the owner of the token in escrow contract 920 to sender A 320 so that the deposited amount is returned. In FIG. 12 , “Token Transfer” may indicate the process of returning money deposited by sender A320 to sender A320 by means of escrow contract 920 .

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

図13~16は、本発明の一実施形態における、トークンに対するエスクロー取引の第3例を示した図である。本実施形態に係るDApp1300は、ブロックチェーンシステム300においてインストールされて実行されてよく、トークンコントラクト1310およびエスクローコントラクト1320を含んでよい。 13-16 illustrate a third example of an escrow transaction for tokens in one embodiment of the present invention. A DApp 1300 according to this embodiment may be installed and run on 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 shows an example of the process by which Escrow Contract Owner 930 installs Escrow Contract 1320 in DApp 1300 . Escrow contract owner 1330 may then link escrow contract 1320 and token contract 1310 using functions defined to be executed when the contract is installed in 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)を処理するなどの後処理のための関数であってよい。 FIG. 14 shows an example of a process in which a token is deposited in the escrow contract 1320 by requesting an escrow transaction from the sender A320. First, sender A 320 may request token contract 1310 to transfer money to escrow contract 1320 using a transfer function (“transfer( )”) defined in token contract 1310 . Here, the first parameter of the remittance function may be the address of the escrow contract 1320, such as "escrow_token_addr=contractAddress1". Also, the second parameter of the remittance function may be the amount to be remitted, such as "value". Also, the third parameter of the transfer function may indicate meta information (recipient, memo) associated with the escrow, such as "0x+'transferid:toAddress:memo". Token contract 1310 is a token fallback function defined in the contract (in this embodiment, escrow contract 1320) corresponding to the CA (Contract Address) that the recipient is not EOA (Externally Owned Wallet). ("tokenFallback( )") may be called, where the meta information described above 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 money sent from Sender A 320 by parsing the meta-information and executing escrow logic. Here, 'Token Transfer' may mean that the token that sender A 320 intends to transfer to recipient B 330 is transferred to escrow contract 920 and deposited. The function "escrow_token_transfer()" may be a function that is called in the token fallback function to record the transfer recipient in the escrow contract 920 and for post-processing such as handling 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に送金する過程を示してよい。 FIG. 15 shows that the escrow contract owner 1330, a trusted third party, receives the escrow receive function defined in the escrow contract 1320 (“escrowReceive() ”) is shown. At this time, the escrow receiving function may include a parameter for identifying the relevant remittance. In this case, escrow contract 1320 may call the transfer function (“transfer( )”) defined in token contract 1310 . At this time, the first parameter "B" of the remittance function may be the identifier of the recipient B330 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Accordingly, token contract 1310 may handle money deposited in escrow contract 920 to be transferred to Recipient B 330 by changing ownership of the tokens in Escrow Contract 920 to Recipient B 330 . In FIG. 15 , “Token Transfer” may indicate the process of transferring money deposited by sender A 320 to receiver B 330 by 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 shows that the escrow cancellation function (“escrowCancel( )”) is called so that Sender A 320 returns the amount deposited in the escrow contract 920 if the pre-defined conditions for the remittance are not met. example. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 1320 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 16 shows an example in which the escrow contract owner 1330, who is a trusted third party, is specified as the caller. The escrow contract 1320 may call the transfer function (“transfer( )”) defined in the token contract 1310 if the escrow contract owner 1330 calls the escrow cancel function for that transfer. At this time, the first parameter "A" of the remittance function may be the identifier of the recipient A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Accordingly, token contract 1310 may return the money deposited in escrow contract 1320 to sender A320 by changing ownership of the tokens in escrow contract 1320 to sender A320. In FIG. 16, “Token Transfer” may indicate the process of returning money deposited by sender A320 to sender A320 by escrow contract 1320 .

図13~16の実施形態では、トークンコントラクト1310の仕様は変更せず、エスクローコントラクト1320を追加するだけでエスクロー取引を処理することが可能となる。例えば、トークンコントラクト1310がエスクローコントラクト1320を個別に認知するための過程が必要なくなる。また、送信者A320が1つのトランザクションを利用して、送金する金銭を預託するための過程を処理することが可能となる。 In the embodiments of FIGS. 13-16, escrow transactions can be processed only by adding an escrow contract 1320 without changing the specifications of the token contract 1310 . For example, there is no need for the token contract 1310 to independently recognize the escrow contract 1320 . It is also possible for sender A 320 to use one transaction to process the process of depositing money to be transferred.

送金に対する条件は、条件を設定する人物と場合によって多様に定義されてよい。一例として、送信者が送金を要請することが条件を満たすものと見なされたり、送信者が送金の取消を要請することが条件を満たさないものと見なされたりしてよい。その他にも、一定の時間が経過した後に送金がなされるようにしたり特定の日付に送金がなされるようにしたりするなどの条件は、多様に定義されてよい。 Conditions for remittance may be defined variously depending on the person who sets the conditions and the case. As an example, a sender's request to transfer money may be considered acceptable, or a sender's request to cancel a transfer may be considered unsatisfactory. In addition, various conditions may be defined such as remittance after a certain period of time or remittance on a specific date.

なお、上述したapprove()、transfer()、transferFrom()、fallback()などの関数は、イーサリアムで基本となるトークン標準であるERC-20(Ethereum Request for Comments-20)インタフェースを基本としてよい。 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 of Ethereum.

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

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

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

一実施形態として、コンピュータ装置200は、段階1710で、送信者から承認要請を受けたブロックチェーンシステムのトークンコントラクトに通貨の送金を要請し、トークンコントラクトに属して送信者の要請にしたがって承認されたトークンの送金をトークンコントラクトから受け取り、送信者の送金に対応する通貨でエスクローコントラクトに預託してよい。実施形態に係る預託方法については、図6を参照しながら詳しく説明したとおりである。 As an embodiment, in step 1710, the computer device 200 requests a currency transfer to the token contract of the blockchain system that received the approval request from the sender, and belongs to the token contract and is approved according to the sender's request. Token transfers may be received from a token contract and deposited 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.

他の実施形態として、コンピュータ装置200は、段階1710で、送信者からエスクロー送金要請を受けたブロックチェーンシステムのトークンコントラクトからエスクロートークン送金要請を受信し、エスクロートークン送金要請に応答してトークンコントラクトに送金を要請し、トークンコントラクトへの要請にしたがい、送金されたトークンを送信者の送金に対応する通貨でエスクローコントラクトに預託してよい。本実施形態に係る預託方法については、図10を参照しながら詳しく説明したとおりである。一方、本実施形態のためのエスクローコントラクトのインストール過程において、コンピュータ装置200は、エスクローコントラクトのオーナー(owner)からの要請にしたがってエスクローコントラクトをインストールし、エスクローコントラクトオーナーからの要請にしたがってトークンコントラクトにエスクローコントラクトを設定してよく、トークンコントラクトの制御にしたがってエスクローコントラクトにトークンコントラクトを設定してよい。この場合、エスクローコントラクトとトークンコントラクトは互いに連係し、トークンコントラクトがエスクローコントラクトを認知することが可能となる。 As another embodiment, in step 1710, the computer device 200 receives an escrow token remittance request from the token contract of the blockchain system that received the escrow remittance request from the sender, and responds to the escrow token remittance request to the token contract. You may request a transfer and deposit the transferred tokens in an escrow contract in the currency corresponding to the sender's transfer as requested by the token contract. The deposit method according to this embodiment has been described in detail with reference to FIG. Meanwhile, in the escrow contract installation process for the present embodiment, the computer device 200 installs the escrow contract according to a request from the escrow contract owner, and escrows the token contract according to a request from the escrow contract owner. A contract may be established, and an escrow contract may be established with the token contract under 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, in step 1710, the computing device 200 receives a token fallback request including meta information related to an escrow transaction from the token contract of the blockchain system that received the remittance request from the sender. Then, based on the information on the escrow transaction obtained by analyzing the meta information, the remittance of tokens belonging to the token contract in the currency corresponding to the sender's remittance may be received from the sender and deposited in the escrow contract. The deposit method according to this embodiment has been described in detail with reference to FIG. In this case, in the escrow contract installation process for this embodiment, the computer device 200 installs the escrow contract according to the request from the escrow contract owner, and the token contract address included in the request from the escrow contract owner. You may link the escrow contract and the token contract by . In this case, since there is no change in the specification of the token contract, there is no need to go through the process of individually recognizing the escrow contract.

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

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

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

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

このように、本発明の実施形態によると、スマートコントラクトに取引成立のための条件を明示することにより、送金が即時的になされず、金銭を預託しておいた後に、特定の条件が満たされたときに受信者に送金を処理することができる。また、特定の条件が満たされたか否かにより、送金者が送金を取り消すことができる。さらに、スマートコントラクトは、ソースコードがブロックチェーンネットワーク上に公開されるため、どのようなロジックによってエスクロー機能が動作するのかについての透明性を確保することができる。 As described above, according to the embodiment of the present invention, by specifying the conditions for the transaction establishment in the smart contract, the remittance is not performed immediately, and the specific condition is satisfied after depositing the money. When the remittance can be processed to the recipient. Also, the remittance can be canceled by the remitter depending on whether or not certain conditions are met. Furthermore, since the source code of the smart contract is published on the blockchain network, it is possible to ensure the transparency of what kind of logic 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 systems or devices described above may be realized by hardware components or a combination of hardware and software components. For example, the devices and components described in the embodiments include, for example, processors, controllers, ALUs (Arithmetic Logic Units), digital signal processors, microcomputers, FPGAs (Field Programmable Gate Arrays), PLUs (Programmable Logic Units), micro It may be implemented using one or more general purpose or special purpose computers, such as a processor or various devices capable of executing instructions and responding to instructions. The processing unit may run an operating system (OS) and one or more software applications that run on the OS. The processor may also access, record, manipulate, process, and generate data in response to executing software. For convenience of understanding, one processing device may be described as being used, but those skilled in the art will appreciate that a processing device may include multiple processing elements and/or multiple types of processing elements. You can understand that. For example, a processing unit may include multiple processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

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

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

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

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

図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 shows that a trusted third party, escrow contract owner 630 , receives an escrow receive function defined in escrow contract 610 ("escrowReceive ()") is shown. At this time, the escrow receiving function may include a parameter for identifying the relevant remittance. In this case, the escrow contract 610 may cause the escrowed money to be transferred to the recipient B 330 by calling a transfer function (“transfer( )”) on the token contract 620 . At this time, the first parameter "B" of the remittance function may be the identifier of the recipient B330 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. At this time, the token contract 620 may transfer the money deposited in the escrow contract 610 to the recipient B330 by changing the owner of the token deposited in the escrow contract 610 to the recipient B330. In FIG. 7 , “Token Transfer” may indicate the process of transferring money deposited by sender A 320 to recipient B 330 by 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 shows that an escrow cancellation function (“escrowCancel( )”) is invoked to return the amount deposited by Sender A 320 in the escrow contract 610 if the pre-defined conditions for the remittance are not met. It shows an example of receiving. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 610 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 8 shows an example in which the escrow contract owner 630 , who is a trusted third party, is specified as the caller. The escrow contract 610 may call the transfer function (“transfer( )”) defined in the token contract 620 if the escrow contract owner 630 calls the escrow cancel function for the transfer in question. At this time, the first parameter "A" of the remittance function may be the identifier of the sender A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Accordingly, token contract 620 may handle transfers from escrow contract 610 to sender A 320 by transferring tokens escrowed with escrow contract 610 into the possession of sender A 320 . In FIG. 8, “Token Transfer” indicates the process of returning money deposited by sender A320 to sender A320 by escrow contract 610 .

図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 shows that the escrow cancellation function (“escrowCancel( )”) is called so that Sender A 320 returns the amount deposited in the escrow contract 920 if the pre-defined conditions for the remittance are not met. example. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 920 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 12 shows an example in which the escrow contract owner 930, who is a trusted third party, is specified as the caller. Escrow contract 920 may call the transfer function (“transfer( )”) defined in token contract 910 if escrow contract owner 930 calls the escrow cancel function for that transfer. At this time, the first parameter "A" of the remittance function may be the identifier of the sender A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. In this case, token contract 910 may change the owner of the token in escrow contract 920 to sender A 320 so that the deposited amount is returned. In FIG. 12 , “Token Transfer” may indicate the process of returning money deposited by sender A320 to sender A320 by means of escrow contract 920 .

図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 shows that the escrow cancellation function (“escrowCancel( )”) is called so that Sender A 320 returns the amount deposited in the escrow contract 920 if the pre-defined conditions for the remittance are not met. example. As an example, the escrow cancellation function may include a parameter to identify the transfer in question. The callers that can call the escrow undo function may be specified in the escrow contract 1320 . Such callers may be the original sender or a trusted third party. The embodiment of FIG. 16 shows an example in which the escrow contract owner 1330, who is a trusted third party, is specified as the caller. The escrow contract 1320 may call the transfer function (“transfer( )”) defined in the token contract 1310 if the escrow contract owner 1330 calls the escrow cancel function for that transfer. At this time, the first parameter "A" of the remittance function may be the identifier of the sender A320 who is the target of remittance, and the second parameter "value" may mean the amount of remittance. Accordingly, token contract 1310 may return the money deposited in escrow contract 1320 to sender A320 by changing ownership of the tokens in escrow contract 1320 to sender A320. In FIG. 16, “Token Transfer” may indicate the process of returning money deposited by sender A320 to sender A320 by escrow contract 1320 .

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

Claims (19)

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

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

Family

ID=76478791

Family Applications (1)

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

Country Status (3)

Country Link
JP (1) JP2023514007A (en)
KR (1) KR20220084401A (en)
WO (1) WO2021125399A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240013037A (en) * 2022-07-21 2024-01-30 주식회사 인피닛블록 System and control for token stock distribution and trading management based on custody

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
WO2021125399A1 (en) 2021-06-24
KR20220084401A (en) 2022-06-21

Similar Documents

Publication Publication Date Title
JP7385706B2 (en) Method of distributing digital assets registered on blockchain and autonomous computing agent
TWI705346B (en) Transaction method and system based on centralized settlement and blockchain deposit certificate
JP7108611B2 (en) Electronic bill management method, device and storage medium
JP7272844B2 (en) Method and system for recognizing message contents and providing remittance function in messenger equipped with remittance function
WO2020052372A1 (en) Blockchain-based method and system for preserving evidence of copyright-generating event
TW202008235A (en) Transaction method and system based on centralized settlement and block chain storage
WO2020052382A1 (en) Method and system for certifying block-chain-based copyright event proxy
CN110275891B (en) Artificial intelligence software market
TWI712974B (en) Methods and devices for processing certificates in blockchain system
US20200193541A1 (en) Computer system enabling flexible creation of and participation in blockchain-based smart contracts for transactions in tokenized digital assets
CN109003185B (en) Intelligent contract establishing method and device, computing equipment and storage medium
US20190114707A1 (en) Distribution of Blockchain Tokens
JP2014532935A (en) Marketplace for composite applications / data solutions
KR102118178B1 (en) Multiple transaction parallel processing method and system for blockchain
JP2021072108A (en) Computer program, method, and equipment for pre-approval of shared account transaction
US11580551B2 (en) Risk determination enabled crypto currency transaction system
US20160328766A1 (en) Sharing economy third party notification and negotiation
TW202029093A (en) Blockchain-based invoice voiding method and apparatus, and electronic device
JP2021119544A (en) Transaction commission method and transaction commission system
CN110163691A (en) Invoice creation method and device, electronic equipment based on block chain
JP7339335B2 (en) A method and system for efficient blockchain processing of high transaction processing volume required by DApps
JP2023514007A (en) Escrow transaction method and system using smart contract on blockchain
US20200175502A1 (en) Confidential transaction in a blockchain network
KR102204403B1 (en) Transaction processing system and method enabling extension of block chain
CN113032036B (en) Service data processing method, device, system, computer equipment and storage medium

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240416