KR20220084401A - 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템 - Google Patents

블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템 Download PDF

Info

Publication number
KR20220084401A
KR20220084401A KR1020227017460A KR20227017460A KR20220084401A KR 20220084401 A KR20220084401 A KR 20220084401A KR 1020227017460 A KR1020227017460 A KR 1020227017460A KR 20227017460 A KR20227017460 A KR 20227017460A KR 20220084401 A KR20220084401 A KR 20220084401A
Authority
KR
South Korea
Prior art keywords
escrow
contract
token
remittance
sender
Prior art date
Application number
KR1020227017460A
Other languages
English (en)
Inventor
김재연
김현준
장호진
구건
유우식
Original Assignee
라인플러스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라인플러스 주식회사 filed Critical 라인플러스 주식회사
Publication of KR20220084401A publication Critical patent/KR20220084401A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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

Landscapes

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

Abstract

블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템을 개시한다. 일실시예에 따른 에스크로 거래 방법은 송신자로부터 수신자로의 에스크로 거래에 대해 상기 블록체인 시스템이 포함하는 에스크로 컨트랙트에 상기 송신자의 송금에 대응하는 통화를 예치하는 단계, 상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 수신자에게 송금하는 단계 및 상기 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 송신자에게 반환하는 단계를 포함할 수 있다.

Description

블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템
아래의 설명은 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템에 관한 것이다.
블록체인은 블록에 데이터를 담아 체인 형태로 연결하여 수많은 컴퓨터에 동시에 이를 복제 및 저장하는 분산형 데이터 저장 기술로서, 공공 거래 장부라고도 부른다. 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며, 거래 때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조함으로써, 데이터 위조나 변조를 할 수 없도록 구현될 수 있다. 예를 들어, 한국공개특허 제10-2019-0133573호는 스마트 컨트랙트를 통한 블록체인 거래 시스템 및 그 방법에 관한 것으로, 블록체인 고유의 특성을 활용하여 스마트 컨트랙트에 의하여 거래 및 서비스를 이용할 수 있도록 인터페이스를 제공하여 도움 요청자는 네트워크 생태계에서 도움요청 정보, 서비스 제공자는 거래 또는 계약을 게시하고, 도움을 제공하고자 하는자는 관련 정보에 대해 도움제공 또는 서비스 이용자가 거래 동의(서명) 등의 버튼(행위)을 선택함으로써 네트워크 생태계에서 하나의 모바일 앱으로 '참여와 공유' 활동이 지속적으로 활성화될 수 있도록 각자의 활동에 대하여 보상체계를 등급별로 구분하여 인센티브인 암호 화폐가 보상으로 지급되는 시스템 및 그 방법을 개시하고 있다.
이러한 종래의 블록체인상에서의 거래는 송신자와 수신자의 지갑 주소를 명시하고 거래를 요청하면, 해당 거래가 포함된 블록이 확정되는 순간 거래가 이루어진다. 그렇기 때문에 송신자와 수신자간의 신뢰관계가 명확하지 않거나, 거래가 완료되기 위해 특정 조건이 만족되어야 하는 경우에는 적합하지 않다.
스마트 컨트랙트에 거래가 성립되기 위한 조건을 명시함으로써 즉각적인 송금이 되지 않고, 돈을 예치해둔 후 특정 조건이 만족되었을 때 수신자에게 송금을 처리할 수 있는 에스크로 거래 방법 및 시스템을 제공한다.
블록체인 시스템의 에스크로 거래 방법에 있어서, 송신자로부터 수신자로의 에스크로 거래에 대해 상기 블록체인 시스템이 포함하는 에스크로 컨트랙트에 상기 송신자의 송금에 대응하는 통화를 예치하는 단계; 상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 수신자에게 송금하는 단계; 및 상기 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 송신자에게 반환하는 단계를 포함하는 에스크로 거래 방법을 제공한다.
일측에 따르면, 상기 통화를 예치하는 단계는, 상기 송신자로부터 승인을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로 상기 통화의 송금을 요청하는 단계; 및 상기 토큰 컨트랙트로부터 상기 토큰 컨트랙트에 종속되고 상기 송신자의 요청에 따라 승인된 토큰을 송금받아 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 단계를 포함하는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 통화를 예치하는 단계는, 상기 송신자로부터 에스크로 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 토큰 송금 요청을 수신하는 단계; 상기 에스크로 토큰 송금 요청에 응답하여 상기 토큰 컨트랙트로 송금을 요청하는 단계; 및 상기 토큰 컨트랙트로의 요청에 따라 송금된 토큰을 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 에스크로 거래 방법은 상기 에스크로 컨트랙트의 오너(owner)로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하는 단계; 상기 에스크로 컨트랙트 오너로부터의 요청에 따라 상기 토큰 컨트랙트에 상기 에스크로 컨트랙트를 설정하는 단계; 및 상기 토큰 컨트랙트의 제어에 따라 상기 에스크로 컨트랙트에 상기 토큰 컨트랙트를 설정하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 통화를 예치하는 단계는, 상기 송신자로부터 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 거래와 관련된 메타 정보가 포함된 토큰 폴백 요청을 수신하는 단계; 및 상기 메타 정보를 파싱하여 얻어지는 에스크로 거래에 대한 정보를 통해 상기 송신자로부터 상기 송신자의 송금에 대응하는 통화로서 상기 토큰 컨트랙트에 종속된 토큰을 송금받아 상기 에스크로 컨트랙트에 예치하는 단계를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 에스크로 거래 방법은 상기 에스크로 컨트랙트의 오너로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하는 단계; 및 상기 에스크로 컨트랙트 오너로부터의 요청이 포함하는 상기 토큰 컨트랙트의 주소에 따라 상기 에스크로 컨트랙트를 상기 토큰 컨트랙트와 연계시키는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 예치된 통화를 상기 수신자에게 송금하는 단계는, 상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 수신 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 수신자로의 송금을 요청하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 예치된 통화를 상기 송신자에게 반환하는 단계는, 상기 송신자의 송금에 대해 기 정의된 조건이 만족되지 않은 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 취소 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 송신자로의 송금을 요청하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 호출자는 상기 에스크로 컨트랙트의 오너 또는 상기 송신자인 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 송신자의 송금에 대응하는 통화는 상기 블록체인 시스템의 기준 통화를 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 통화는 상기 블록체인 시스템이 더 포함하는 토큰 컨트랙트에 종속된 토큰을 포함하는 것을 특징으로 할 수 있다.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 방법을 컴퓨터 장치에 실행시키기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.
컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 송신자로부터 수신자로의 에스크로 거래에 대해 상기 블록체인 시스템이 포함하는 에스크로 컨트랙트에 상기 송신자의 송금에 대응하는 통화를 예치하고, 상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 수신자에게 송금하고, 상기 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 송신자에게 반환하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
스마트 컨트랙트에 거래가 성립되기 위한 조건을 명시함으로써 즉각적인 송금이 되지 않고, 돈을 예치해둔 후 특정 조건이 만족되었을 때 수신자에게 송금을 처리할 수 있다.
특정 조건의 만족 여부에 따라 송금자가 송금을 취소할 수 있다.
스마트 컨트랙트는 소스코드가 블록체인 네트워크상에 투명하게 공개되기 때문에, 사용자들이 어떤 로직으로 에스크로 기능이 동작하는지 투명하게 알 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3 내지 도 5는 본 발명의 일실시예에 있어서, 기준 통화의 에스크로 거래의 예를 도시한 도면들이다.
도 6 내지 도 8은 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제1 예를 도시한 도면들이다.
도 9 내지 도 12는 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제2 예를 도시한 도면들이다.
도 13 내지 도 16은 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제3 예를 도시한 도면들이다.
도 17은 본 발명의 일실시예에 따른 에스크로 거래 방법의 예를 도시한 흐름도이다.
발명의 실시를 위한 최선의 형태
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 에스크로 거래 시스템은 적어도 하나의 컴퓨터 장치에 의해 구현되는 블록체인 시스템일 수 있으며, 본 발명의 실시예들에 따른 에스크로 거래 방법은 에스크로 거래 시스템에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 에스크로 거래 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 에스크로 거래 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(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), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 컨텐츠 제공 서비스, 그룹 통화 서비스(또는 음성 컨퍼런스 서비스), 메시징 서비스, 메일 서비스, 소셜 네트워크 서비스, 지도 서비스, 번역 서비스, 금융 서비스, 결제 서비스, 검색 서비스, 위치 기반 서비스 등)를 제공하는 시스템일 수 있다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(230)은 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
본 발명의 실시예들에 따른 블록체인 네트워크는 프로토콜에 정의된 기준 통화(base coin)와 스마트 컨트랙트를 통해 정의된 토큰(token)이 거래에 활용될 수 있다. 이때, 기준 통화는 특정 스마트 컨트랙트에 의존성을 갖지 않기 때문에 에스크로를 위한 스마트 컨트랙트(이하, '에스크로 컨트랙트')에 예치, 수신 및 취소의 세 가지 함수를 정의함으로써, 에스크로 거래가 가능해진다. 이후에서 설명되는 "송신자", "수신자" 및 "제3자" 등은 실질적으로 송신자나 수신자 또는 제3자가 송금의 처리를 위해 이용하는 전자 기기를 의미할 수 있다.
도 3 내지 도 5는 본 발명의 일실시예에 있어서, 기준 통화의 에스크로 거래의 예를 도시한 도면들이다. 블록체인 시스템(300)에는 에스크로를 위한 스마트 컨트랙트(310)가 설치되어 기준 통화로서의 돈에 대한 예치, 수신 및 취소의 세 가지 함수의 호출에 따라 에스크로 거래를 처리할 수 있다.
도 3은 송신자 A(320)가 에스크로 컨트랙트(310)에 정의된 에스크로 송금 함수("escrowTransfer()")를 호출함으로써 기준 통화로서의 돈을 에스크로 컨트랙트(310)에 예치하는 예를 나타내고 있다. 이때, 에스크로 송금 함수의 첫 번째 파라미터 "B"는 해당 송금의 수신자인 수신자 B(330)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 해당 송금의 금액을 나타낼 수 있다. "Coin Transfer"는 송신자 A(320)에서 에스크로 컨트랙트(310)로 기준 통화의 송금이 이루어지는 과정을 나타낼 수 있다.
도 4는 에스크로 컨트랙트(310)에 정의된 에스크로 수신 함수("escrowReceive()")가 호출됨에 따라 예치된 돈이 에스크로 컨트랙트(310)에 명시된 수신자 B(330)에게 송금되는 예를 나타내고 있다. 일례로, 에스크로 수신 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 에스크로 수신 함수를 호출할 수 있는 호출자는 에스크로 컨트랙트(310)에 명시되어 있을 수 있다. 이러한 호출자는 수신자 본인이 될 수도 있고, 믿을 수 있는 제3자가 될 수도 있다. 도 4의 실시예에서는 믿을 수 있는 제3자로서 에스크로 컨트랙트(310)의 소유주 또는 개발자인 에스크로 컨트랙트 오너(escrow contract owner, 410)가 호출자로 명시된 예를 나타내고 있다. 에스크로 컨트랙트 오너(410)는 해당 송금에 대해 기 정의된 조건이 만족된 경우, 에스크로 컨트랙트(310)로 에스크로 수신 함수를 호출할 수 있으며, 이에 따라 에스크로 컨트랙트(310)에 예치된 돈이 에스크로 컨트랙트(310)에 명시된 수신자 B(330)에게 송금될 수 있다. 도 4에 나타난 함수 "baseCoinTransfer(B, value)"는 기준 통화를 송금하기 위한 함수로서, 에스크로 컨트랙트(310)가 첫 번째 파라미터 "B"에 의해 식별되는 수신자 B(330)에게 두 번째 파라미터 "value"에 대응하는 기준 통화로서의 돈을 송금하는 함수를 의미할 수 있다.
도 5는 해당 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 에스크로 취소 함수("escrowCancel()")가 호출됨에 따라 송신자 A(320)가 에스크로 컨트랙트(310)에 예치된 금액을 다시 되돌려 받는 예를 나타내고 있다. 일례로, 에스크로 취소 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 에스크로 취소 함수를 호출할 수 있는 호출자는 에스크로 컨트랙트(310)에 명시되어 있을 수 있다. 이러한 호출자는 송신자 본인이 될 수도 있고, 믿을 수 있는 제3자가 될 수도 있다. 도 5의 실시예에서는 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(410)가 호출자로 명시된 예를 나타내고 있다. 에스크로 컨트랙트 오너(410)는 해당 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 에스크로 컨트랙트(310)로 에스크로 취소 함수를 호출할 수 있으며, 이에 따라 에스크로 컨트랙트(310)에 예치된 돈이 송신자 A(320)에게 송금될 수 있다. 도 5에 나타난 함수 "baseCoinTransfer(A, value)"는 기준 통화를 송금하기 위한 함수로서, 에스크로 컨트랙트(310)가 첫 번째 파라미터 "A"에 의해 식별되는 송신자 A(320)에게 두 번째 파라미터 "value"에 대응하는 기준 통화로서의 돈을 송금하는 함수를 의미할 수 있다.
토큰에 대한 에스크로 거래도 앞서 도 3 내지 도 5를 통해 설명한 기준 통화에 대한 에스크로 거래와 유사한 흐름을 갖는다. 다만, 토큰은 특정 스마트 컨트랙트에 종속되어 있기 때문에, 토큰의 송금을 위해서는 에스크로 컨트랙트의 함수들 이외에 토큰 컨트랙트의 함수도 호출되어야 한다. 이하에서는 토큰에 대한 에스크로 거래를 수행할 수 있는 세 가지 방법을 설명한다.
도 6 내지 도 8은 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제1 예를 도시한 도면들이다. 블록체인 시스템(300)에 설치 및 구동되는 디앱(Decentralized Application, DApp, 600)은 블록체인 기술을 활용하여 중앙 서버 없이 네트워크상에 정보를 분산, 저장 및 구동하는 어플리케이션일 수 있다. 디앱(600)에는 에스크로 컨트랙트(610)와 토큰이 종속되어 있는 특정 스마트 컨트랙트(이하, '토큰 컨트랙트(620)')가 포함될 수 있다.
도 6은 송신자 A(320)가 수신자 B(320)에게 토큰으로서의 돈을 송금하기 위해, 먼저 에스크로 컨트랙트(610)에 돈을 예치하는 과정의 예를 나타내고 있다. 이때, 송신자 A(320)는 토큰이 종속된 토큰 컨트랙트(620)로 승인 함수("approve()")를 이용하여 송금의 승인을 요청하고, 에스크로 컨트랙트(610)로도 에스크로 송금 함수("escrowTransfer()")를 통해 예치를 요청할 수 있다.
승인 함수의 첫 번째 파라미터는 송금 대상자를 의미할 수 있다. 이때, 에스크로 컨트랙트(610)에 돈이 예치가 되야 한다. 다시 말해, 송신자 A(320)가 호출하는 토큰 컨트랙트(620)의 승인 함수의 첫 번째 파라미터 "escrowContractAddress"는 토큰 컨트랙트(620)에서 에스크로 컨트랙트(610)로 돈을 송금할 수 있도록 토큰 컨트랙트(620)가 에스크로 컨트랙트(610)를 식별할 수 있는 주소를 의미할 수 있다. 승인 함수의 두 번째 파라미터 "value"는 송금의 금액을 나타낼 수 있으며, 세 번째 파라미터 "currentAllowance"는 현재까지 송금 가능하도록 승인된 돈의 양을 의미할 수 있다.
한편, 에스크로 송금 함수의 첫 번째 파라미터 "B"는 해당 송금의 실제 수신자인 수신자 B(320)를 나타낼 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 나타낼 수 있다. 에스크로 컨트랙트(610)는 에스크로 송금 함수의 호출에 응답하여 토큰 컨트랙트(620)로 송금을 요청할 수 있다. 함수 "transferFrom()"에서 첫 번째 파라미터 "A"는 송신자 A(320)를, 두 번째 파라미터 "escrowContractAddress"는 에스크로 컨트랙트(610)를, 세 번째 파라미터 "value"는 송금의 금액을 각각 의미할 수 있다. 다시 말해, 에스크로 컨트랙트(610)는 토큰 컨트랙트(620)로 송신자 A(320)의 돈을 에스크로 컨트랙트(610)로 송금할 것을 토큰 컨트랙트(620)로 요청할 수 있다. 이 경우, 토큰 컨트랙트(620)는 송신자 A(320)가 승인 함수를 통해 승인한 금액(에스크로 컨트랙트(610)가 송금 요청한 금액) 이내에서 함수 "transferFrom()"에 의해 요청된 금액을 에스크로 컨트랙트(610)로 송금(실질적으로는 대응하는 토큰의 소유주를 송신자 A(320)에서 에스크로 컨트랙트(610)로 변경)함으로써, 에스크로 컨트랙트(610)에 송신자 A(320)의 돈이 예치되도록 할 수 있다. 도 6에서 "Token Transfer"는 토큰 컨트랙트(620)가 토큰을 에스크로 컨트랙트(610)로 송금하는 과정을 나타낼 수 있다.
도 7은 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(620)가 해당 송금에 대해 기 정의된 조건이 만족됨에 따라 에스크로 컨트랙트(610)에 정의된 에스크로 수신 함수("escrowReceive()")를 호출하는 예를 나타내고 있다. 이때, 에스크로 수신 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 이 경우, 에스크로 컨트랙트(610)는 토큰 컨트랙트(620)로 송금 함수("transfer()")를 호출함으로써, 예치된 돈이 수신자 B(330)에게 송금되도록 할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "B"는 송금의 대상인 수신자 B(330)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 이때, 토큰 컨트랙트(620)는 에스크로 컨트랙트(610)가 예치하고 있는 토큰의 소유자를 수신자 B(330)로 변경함으로써, 에스크로 컨트랙트(610)에 예치된 돈을 수신자 B(330)에게로 송금시킬 수 있다. 도 7에서 "Token Transfer"는 에스크로 컨트랙트(610)가 수신자 B(330)에게 송신자 A(320)가 예치한 돈을 송금하는 과정을 나타낼 수 있다.
도 8은 해당 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 에스크로 취소 함수("escrowCancel()")가 호출됨에 따라 송신자 A(320)가 에스크로 컨트랙트(610)에 예치된 금액을 다시 되돌려 받는 예를 나타내고 있다. 일례로, 에스크로 취소 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 에스크로 취소 함수를 호출할 수 있는 호출자는 에스크로 컨트랙트(610)에 명시되어 있을 수 있다. 이러한 호출자는 송신자 본인이 될 수도 있고, 믿을 수 있는 제3자가 될 수도 있다. 도 8의 실시예에서는 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(620)가 호출자로 명시된 예를 나타내고 있다. 에스크로 컨트랙트 오너(620)가 해당 송금에 대한 에스크로 취소 함수를 호출하면, 에스크로 컨트랙트(610)는 토큰 컨트랙트(620)에 정의된 송금 함수("transfer()")를 호출할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "A"는 송금의 대상인 수신자 A(320)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 따라서, 토큰 컨트랙트(620)는 에스크로 컨트랙트(610)에 예치된 토큰을 송신자 A(320)의 소유로 변경함으로써, 에스크로 컨트랙트(610)에서 송신자 A(320)로의 송금을 처리할 수 있다. 도 8에서 "Token Transfer"는 에스크로 컨트랙트(610)가 송신자 A(320)에게 송신자 A(320)가 예치한 돈을 되돌려주는 과정을 나타낼 수 있다.
도 6 내지 도 8의 실시예에서 에스크로 컨트랙트(610)는 토큰 컨트랙트(620)의 토큰을 송금받고 송금하는 개별적인 주체로서 동작하기 때문에 에스크로 컨트랙트(610)와 토큰 컨트랙트(620)는 각각 별개의 인터페이스로서 유지될 수 있다.
도 9 내지 도 12는 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제2 예를 도시한 도면들이다. 본 실시예에 따른 디앱(900)은 블록체인 시스템(300)에 설치 및 구동될 수 있으며, 토큰 컨트랙트(910) 및 에스크로 컨트랙트(920)를 포함할 수 있다.
도 9의 실시예에서는 에스크로 컨트랙트 오너(930)가 디앱(900)에 토큰 컨트랙트(910) 및 에스크로 컨트랙트(920)를 설치하는 과정의 예를 나타내고 있다. 이때, 에스크로 컨트랙트 오너(930)는 에스크로 컨트랙트(920)를 디앱(900)에 직접 설치할 수 있으며, 디앱(900)에 이미 설치되어 있는 토큰 컨트랙트(910)에서 컨트랙트를 설치할 때 실행되도록 정의된 함수를 이용하여 토큰 컨트랙트(910)가 에스크로 컨트랙트(920)를 설정하도록 제어할 수 있다. 이 경우, 토큰 컨트랙트(910)는 에스크로 컨트랙트(920)를 설정하고, 토큰 컨트랙트(910)의 주소를 에스크로 컨트랙트(920)에 설정할 수 있다. 예를 들어, 토큰 컨트랙트(910)는 에스크로 컨트랙트 설정 함수("setEscrowContract(escrow_contract_addr=contractAddress1)")를 이용하여 에스크로 컨트랙트(920)를 설정할 수 있으며, 토큰 컨트랙트 주소 설정 함수("TokenContract(token_contract_addr=contractAddress2)")를 이용하여 에스크로 컨트랙트(920)에 토큰 컨트랙트의 주소를 설정할 수 있다. 여기서, 'contractAddress1'은 에스크로 컨트랙트(920)의 주소를, 'contractAddress2'는 토큰 컨트랙트(910)의 주소를 각각 의미할 수 있다.
도 10은 송신자 A(320)가 에스크로 거래를 요청함에 따라 에스크로 컨트랙트(920)에 토큰이 예치되는 과정의 예를 나타내고 있다. 먼저 송신자 A(320)가 토큰 컨트랙트(910)에 정의된 에스크로 송금 함수("escrowTransfer()")를 이용하여 토큰 컨트랙트(910)로 수신자 B(330)로의 송금을 요청하면, 토큰 컨트랙트(910)는 먼저 승인 함수("approve()")를 통해 송금을 승인한 후, 에스크로 컨트랙트(920)로 에스크로 토큰 송금 함수("escrowTokenTransfer()")를 이용하여 송신자 A(320)의 수신자 B(330)로의 송금에 대한 요청을 전달할 수 있다. 승인 함수는 에스크로 컨트랙트(920)로 송금의 금액을 송금하는 것을 승인하기 위해, 에스크로 컨트랙트(920)의 주소와 송금의 금액이 각각 파라미터로 이용될 수 있다. 이 경우, 에스크로 컨트랙트(920)는 함수 "transferFrom()"를 이용하여 토큰 컨트랙트(910)로 에스크로 컨트랙트(920)로의 송금을 요청할 수 있다. 함수 "transferFrom()"의 첫 번째 파라미터 "ES"는 에스크로 컨트랙트(920)의 주소를 나타낼 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 나타낼 수 있다. 도 10에서 "Token Transfer"는 송신자 A(320)가 수신자 B(330)로 송금하고자 하는 토큰이 에스크로 컨트랙트(920)로 송금(실질적으로는 토큰 컨트랙트(910)에서 해당 토큰의 소유주가 송신자 A(320)에서 에스크로 컨트랙트(920)로 변경)되어 에스크로 컨트랙트(920)에 예치됨을 의미할 수 있다.
도 11은 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(930)가 해당 송금에 대해 기 정의된 조건이 만족됨에 따라 에스크로 컨트랙트(920)에 정의된 에스크로 수신 함수("escrowReceive()")를 호출하는 예를 나타내고 있다. 이때, 에스크로 수신 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 이 경우, 에스크로 컨트랙트(920)는 토큰 컨트랙트(910)에 정의된 송금 함수("transfer()")를 호출할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "B"는 송금의 대상인 수신자 B(330)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 따라서, 토큰 컨트랙트(910)는 에스크로 컨트랙트(920)의 토큰의 소유주를 수신자 B(330)로 변경함으로써, 에스크로 컨트랙트(920)에서 수신자 B(330)로 예치된 돈이 송금될 수 있다. 도 11에서 "Token Transfer"는 에스크로 컨트랙트(920)가 수신자 B(330)에게 송신자 A(320)가 예치한 돈을 송금하는 과정을 나타낼 수 있다.
도 12는 해당 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 에스크로 취소 함수("escrowCancel()")가 호출됨에 따라 송신자 A(320)가 에스크로 컨트랙트(920)에 예치된 금액을 다시 되돌려 받는 예를 나타내고 있다. 일례로, 에스크로 취소 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 에스크로 취소 함수를 호출할 수 있는 호출자는 에스크로 컨트랙트(920)에 명시되어 있을 수 있다. 이러한 호출자는 송신자 본인이 될 수도 있고, 믿을 수 있는 제3자가 될 수도 있다. 도 12의 실시예에서는 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(930)가 호출자로 명시된 예를 나타내고 있다. 에스크로 컨트랙트 오너(930)가 해당 송금에 대한 에스크로 취소 함수를 호출하면, 에스크로 컨트랙트(920)는 토큰 컨트랙트(910)에 정의된 송금 함수("transfer()")를 호출할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "A"는 송금의 대상인 수신자 A(320)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 이 경우, 토큰 컨트랙트(910)는 에스크로 컨트랙트(920)의 토큰의 소유주를 송신자 A(320)로 변경함으로써, 예치된 금액이 반환되도록 할 수 있다. 도 12에서 "Token Transfer"는 에스크로 컨트랙트(920)가 송신자 A(320)에게 송신자 A(320)가 예치한 돈을 되돌려주는 과정을 나타낼 수 있다.
도 9 내지 도 12의 실시예에서 에스크로 컨트랙트(920)를 지원하는 토큰 컨트랙트(910)를 이용함으로써, 송신자 A(320)가 하나의 트랜잭션을 통해 송금할 돈의 예치를 위한 과정을 처리할 수 있게 된다.
도 13 내지 도 16은 본 발명의 일실시예에 있어서, 토큰에 대한 에스크로 거래의 제3 예를 도시한 도면들이다. 본 실시예에 따른 디앱(1300)은 블록체인 시스템(300)에 설치 및 구동될 수 있으며, 토큰 컨트랙트(1310) 및 에스크로 컨트랙트(1320)를 포함할 수 있다.
도 13의 실시예에서는 에스크로 컨트랙트 오너(930)가 디앱(1300)에 에스크로 컨트랙트(1320)를 설치하는 과정의 예를 나타내고 있다. 이때, 에스크로 컨트랙트 오너(1330)는 에스크로 컨트랙트(1320)에서 컨트랙트를 설치할 때 실행되도록 정의된 함수를 이용하여 에스크로 컨트랙트(1320)를 토큰 컨트랙트(1310)와 연계시킬 수 있다.
도 14는 송신자 A(320)가 에스크로 거래를 요청함에 따라 에스크로 컨트랙트(1320)에 토큰이 예치되는 과정의 예를 나타내고 있다. 먼저 송신자 A(320)는 토큰 컨트랙트(1310)에 정의된 송금 함수("transfer()")를 이용하여 토큰 컨트랙트(1310)로 에스크로 컨트랙트(1320)로의 송금을 요청할 수 있다. 여기서, 송금 함수의 첫 번째 파라미터는 "escrow_token_addr=contractAddress1"와 같이 에스크로 컨트랙트(1320)의 주소일 수 있다. 또한, 송금 함수의 두 번째 파라미터는 "value"와 같이 송금할 금액일 수 있다. 또한, 송금 함수의 세 번째 파라미터는 "0x+'transferid:toAddress:memo"와 같이 에스크로와 관련된 메타 정보(수신자, 메모)를 나타낼 수 있다. 토큰 컨트랙트(1310)는 수신자가 EOA(Externally Owned Wallet)이 아닌 CA(Contract Address)일 경우, 해당 CA에 대응하는 컨트랙트(본 실시예에서는 에스크로 컨트랙트(1320))에 정의되어 있는 토큰 폴백 함수("tokenFallback()")를 호출할 수 있으며, 이때 앞서 설명한 메타 정보가 토큰 폴백 함수의 데이터 필드에 바이트 형태로 들어갈 수 있다. 이 경우, 에스크로 컨트랙트(1320)는 메타 정보를 파싱하여 에스크로 로직을 수행함으로써, 송신자 A(320)로부터 송금되는 돈을 예치할 수 있다. 여기서, "Token Transfer"는 송신자 A(320)가 수신자 B(330)로 송금하고자 하는 토큰이 에스크로 컨트랙트(920)로 송금되어 예치됨을 의미할 수 있다. 함수 "escrow_token_transfer()"는 토큰 폴백 함수 내에서 호출되어 에스크로 컨트랙트(920)에 송금의 수신자를 기록하고 데이터 확인(data validation)을 처리하는 등의 후처리를 위한 함수일 수 있다.
도 15는 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(1330)가 해당 송금에 대해 기 정의된 조건이 만족됨에 따라 에스크로 컨트랙트(1320)에 정의된 에스크로 수신 함수("escrowReceive()")를 호출하는 예를 나타내고 있다. 이때, 에스크로 수신 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 이 경우, 에스크로 컨트랙트(1320)는 토큰 컨트랙트(1310)에 정의된 송금 함수("transfer()")를 호출할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "B"는 송금의 대상인 수신자 B(330)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 따라서, 토큰 컨트랙트(1310)는 에스크로 컨트랙트(920)의 토큰의 소유주를 수신자 B(330)로 변경함으로써, 에스크로 컨트랙트(920)에 예치된 돈이 수신자 B(330)로 송금되도록 처리할 수 있다. 도 15에서 "Token Transfer"는 에스크로 컨트랙트(1320)가 수신자 B(330)에게 송신자 A(320)가 예치한 돈을 송금하는 과정을 나타낼 수 있다.
도 16은 해당 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 에스크로 취소 함수("escrowCancel()")가 호출됨에 따라 송신자 A(320)가 에스크로 컨트랙트(920)에 예치된 금액을 다시 되돌려 받는 예를 나타내고 있다. 일례로, 에스크로 취소 함수에는 해당 송금을 식별하기 위한 파라미터가 포함될 수 있다. 에스크로 취소 함수를 호출할 수 있는 호출자는 에스크로 컨트랙트(1320)에 명시되어 있을 수 있다. 이러한 호출자는 송신자 본인이 될 수도 있고, 믿을 수 있는 제3자가 될 수도 있다. 도 16의 실시예에서는 믿을 수 있는 제3자로서 에스크로 컨트랙트 오너(1330)가 호출자로 명시된 예를 나타내고 있다. 에스크로 컨트랙트 오너(1330)가 해당 송금에 대한 에스크로 취소 함수를 호출하면, 에스크로 컨트랙트(1320)는 토큰 컨트랙트(1310)에 정의된 송금 함수("transfer()")를 호출할 수 있다. 이때, 송금 함수의 첫 번째 파라미터 "A"는 송금의 대상인 수신자 A(320)의 식별자일 수 있으며, 두 번째 파라미터 "value"는 송금의 금액을 의미할 수 있다. 따라서, 토큰 컨트랙트(1310)는 에스크로 컨트랙트(1320)의 토큰의 소유주를 송신자 A(320)로 변경함으로써, 에스크로 컨트랙트(1320)에 예치된 돈을 송신자 A(320)로 반환할 수 있다. 도 16에서 "Token Transfer"는 에스크로 컨트랙트(1320)가 송신자 A(320)에게 송신자 A(320)가 예치한 돈을 되돌려주는 과정을 나타낼 수 있다.
도 13 내지 도 16의 실시예에서는 토큰 컨트랙트(1310)의 스펙의 변경 없이 에스크로 컨트랙트(1320)의 추가만으로 에스크로 거래를 처리할 수 있게 된다. 예를 들어, 토큰 컨트랙트(1310)가 에스크로 컨트랙트(1320)를 별도로 인지하기 위한 과정이 필요하지 않게 된다. 또한, 송신자 A(320)가 하나의 트랜잭션을 통해 송금할 돈의 예치를 위한 과정을 처리할 수 있게 된다.
송금에 대한 조건은, 조건을 설정하는 사람과 경우에 따라 다양하게 정의될 수 있다. 일례로, 송신자가 송금의 진행을 요청하는 것이 조건을 만족하는 것으로 간주되거나 또는 송신자가 송금의 취소를 요청하는 것이 조건을 만족하지 않는 것으로 간주될 수 있다. 그 외에도, 일정한 시간이 지난 후에 송금이 진행되도록 하거나 또는 특정 날짜에 송금이 진행되도록 하는 등 조건은 다양하게 정의될 수 있다.
또한, 이상에서 사용된 approve(), transfer(), transferFrom(), fallback() 등의 함수들은 이더리움에서 기본이 되는 토큰 표준인 ERC-20(Ethereum Request for Comments-20) 인터페이스를 기본으로 할 수 있다.
도 17은 본 발명의 일실시예에 따른 에스크로 거래 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 에스크로 거래 방법은 블록체인 시스템(300)이 포함하는 에스크로 컨트랙트에 의해 수행될 수 있으며, 실질적으로는 이러한 에스크로 컨트랙트의 코드를 실행하는 컴퓨터 장치(200)의 프로세서(200)에 의해 수행될 수 있다. 이 경우, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드(일례로, 에스크로 컨트랙트의 코드)에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 17의 방법이 포함하는 단계들(1710 내지 1740)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(1710)에서 컴퓨터 장치(200)는 송신자로부터 수신자로의 에스크로 거래에 대해 블록체인 시스템이 포함하는 에스크로 컨트랙트에 송신자의 송금에 대응하는 통화를 예치할 수 있다.
이미 설명한 바와 같이, 블록체인 시스템에서 송신자의 송금에 대응하는 통화는 블록체인 시스템의 기준 통화 또는 블록체인 시스템이 더 포함하는 토큰 컨트랙트에 종속된 토큰을 포함할 수 있다. 이때, 송신자의 송금에 대응하는 통화가 블록체인 시스템의 기준 통화인 경우, 컴퓨터 장치(200)는 송신자의 송금에 대응하는 기준 통화를 직접 에스크로 컨트랙트에 예치시킬 수 있다. 반면, 송신자의 송금에 대응하는 통화가 특정 토큰 컨트랙트에 종속된 토큰인 경우에는 아래의 실시예들에서와 같이 토큰 컨트랙트를 통해 송신자의 송금에 대응하는 토큰을 에스크로 컨트랙트에 예치시킬 수 있다.
일실시예로, 컴퓨터 장치(200)는 단계(1710)에서 송신자로부터 승인을 요청받은 블록체인 시스템의 토큰 컨트랙트로 통화의 송금을 요청하고, 토큰 컨트랙트로부터 토큰 컨트랙트에 종속되고 송신자의 요청에 따라 승인된 토큰을 송금받아 송신자의 송금에 대응하는 통화로서 에스크로 컨트랙트에 예치할 수 있다. 앞서 도 6을 통해 본 실시예에 따른 예치 방법을 자세히 설명한 바 있다.
다른 실시예로, 컴퓨터 장치(200)는 단계(1710)에서 송신자로부터 에스크로 송금을 요청받은 블록체인 시스템의 토큰 컨트랙트로부터, 에스크로 토큰 송금 요청을 수신하고, 에스크로 토큰 송금 요청에 응답하여 토큰 컨트랙트로 송금을 요청하고, 토큰 컨트랙트로의 요청에 따라 송금된 토큰을 송신자의 송금에 대응하는 통화로서 에스크로 컨트랙트에 예치할 수 있다. 앞서 도 10을 통해 본 실시예에 따른 예치 방법을 자세히 설명한 바 있다. 한편, 본 실시예를 위한 에스크로 컨트랙트의 설치 과정에서, 컴퓨터 장치(200)는 에스크로 컨트랙트의 오너(owner)로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하고, 에스크로 컨트랙트 오너로부터의 요청에 따라 토큰 컨트랙트에 에스크로 컨트랙트를 설정할 수 있으며, 토큰 컨트랙트의 제어에 따라 에스크로 컨트랙트에 토큰 컨트랙트를 설정할 수 있다. 이 경우, 에스크로 컨트랙트와 토큰 컨트랙트는 서로 연계되어 토큰 컨트랙트가 에스크로 컨트랙트를 인지할 수 있게 된다.
또 다른 실시예로, 컴퓨터 장치(200)는 단계(1710)에서 송신자로부터 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 거래와 관련된 메타 정보가 포함된 토큰 폴백 요청을 수신하고, 메타 정보를 파싱하여 얻어지는 에스크로 거래에 대한 정보를 통해 송신자로부터 송신자의 송금에 대응하는 통화로서 토큰 컨트랙트에 종속된 토큰을 송금받아 에스크로 컨트랙트에 예치할 수 있다. 앞서 도 14를 통해 본 실시예에 따른 예치 방법을 자세히 설명한 바 있다. 이 경우, 본 실시예를 위한 에스크로 컨트랙트의 설치 과정에서, 컴퓨터 장치(200)는 에스크로 컨트랙트의 오너로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하고, 에스크로 컨트랙트 오너로부터의 요청이 포함하는 토큰 컨트랙트의 주소에 따라 에스크로 컨트랙트를 토큰 컨트랙트와 연계시킬 수 있다. 이 경우, 토큰 컨트랙트는 스펙에 변화가 없으며 에스크로 컨트랙트를 별도로 인지하는 과정을 거칠 필요가 없게 된다.
단계(1720)에서 컴퓨터 장치(200)는 송신자의 송금에 대해 기 정의된 조건이 만족되는지 여부를 결정할 수 있다. 이때, 기 정의된 조건이 만족된 경우, 컴퓨터 장치(200)는 단계(1730)를 수행할 수 있고, 기 정의된 조건이 만족되지 않은 경우, 컴퓨터 장치(200)는 단계(1740)를 수행할 수 있다. 실질적으로, 기 정의된 조건이 만족되는지 여부는 에스크로 컨트랙트에 명시된 호출자에 의해 이루어질 수 있으며, 호출자는 기 정의된 조건이 만족된 경우 에스크로 수신 함수를, 기 정의된 조건이 만족되지 않은 경우 에스크로 취소 함수를 각각 호출할 수 있다. 다시 말해, 컴퓨터 장치(200)는 에스크로 수신 함수가 호출되는 경우에는 기 정의된 조건이 만족된 것으로 결정할 수 있으며, 에스크로 취소 함수가 호출되는 경우에는 기 정의된 조건이 만족되지 않은 것으로 결정할 수 있다.
단계(1730)에서 컴퓨터 장치(200)는 에스크로 컨트랙트에 예치된 통화를 수신자에게 송금할 수 있다. 일례로, 컴퓨터 장치(200)는 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우에 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 수신 요청에 따라, 블록체인 시스템의 토큰 컨트랙트로 에스크로 컨트랙트로부터 수신자로의 송금을 요청할 수 있다. 앞서 도 7, 도 11 및 도 15를 통해 이러한 수신자로의 송금에 대해 자세히 설명한 바 있다.
단계(1740)에서 컴퓨터 장치(200)는 에스크로 컨트랙트에 예치된 통화를 송신자에게 반환할 수 있다. 일례로, 컴퓨터 장치(200)는 송신자의 송금에 대해 기 정의된 조건이 만족되지 않은 경우에 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 취소 요청에 따라, 블록체인 시스템의 토큰 컨트랙트로 에스크로 컨트랙트로부터 송신자로의 송금을 요청할 수 있다. 앞서 도 8, 도 12 및 도 16을 통해 예치된 통화의 송신자로의 반환을 자세히 설명한 바 있다.
한편, 단계(1730) 및 단계(1740)에서 호출자는 에스크로 컨트랙트의 오너 또는 송신자일 수 있다.
이와 같이, 본 발명의 실시예들에 따르면, 스마트 컨트랙트에 거래가 성립되기 위한 조건을 명시함으로써 즉각적인 송금이 되지 않고, 돈을 예치해둔 후 특정 조건이 만족되었을 때 수신자에게 송금을 처리할 수 있다. 또한, 특정 조건의 만족 여부에 따라 송금자가 송금을 취소할 수 있다. 또한, 스마트 컨트랙트는 소스코드가 블록체인 네트워크상에 투명하게 공개되기 때문에 사용자들이 어떤 로직으로 에스크로 기능이 동작하는지 투명하게 알 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
발명의 실시를 위한 형태
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (19)

  1. 블록체인 시스템의 에스크로 거래 방법에 있어서,
    송신자로부터 수신자로의 에스크로 거래에 대해 상기 블록체인 시스템이 포함하는 에스크로 컨트랙트에 상기 송신자의 송금에 대응하는 통화를 예치하는 단계;
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 수신자에게 송금하는 단계; 및
    상기 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 송신자에게 반환하는 단계
    를 포함하는 에스크로 거래 방법.
  2. 제1항에 있어서,
    상기 통화를 예치하는 단계는,
    상기 송신자로부터 승인을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로 상기 통화의 송금을 요청하는 단계; 및
    상기 토큰 컨트랙트로부터 상기 토큰 컨트랙트에 종속되고 상기 송신자의 요청에 따라 승인된 토큰을 송금받아 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 단계
    를 포함하는 것을 특징으로 하는 에스크로 거래 방법.
  3. 제1항에 있어서,
    상기 통화를 예치하는 단계는,
    상기 송신자로부터 에스크로 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 토큰 송금 요청을 수신하는 단계;
    상기 에스크로 토큰 송금 요청에 응답하여 상기 토큰 컨트랙트로 송금을 요청하는 단계; 및
    상기 토큰 컨트랙트로의 요청에 따라 송금된 토큰을 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 단계
    를 포함하는 것을 특징으로 하는 에스크로 거래 방법.
  4. 제3항에 있어서,
    상기 에스크로 컨트랙트의 오너(owner)로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하는 단계;
    상기 에스크로 컨트랙트 오너로부터의 요청에 따라 상기 토큰 컨트랙트에 상기 에스크로 컨트랙트를 설정하는 단계; 및
    상기 토큰 컨트랙트의 제어에 따라 상기 에스크로 컨트랙트에 상기 토큰 컨트랙트를 설정하는 단계
    를 더 포함하는 에스크로 거래 방법.
  5. 제1항에 있어서,
    상기 통화를 예치하는 단계는,
    상기 송신자로부터 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 거래와 관련된 메타 정보가 포함된 토큰 폴백 요청을 수신하는 단계; 및
    상기 메타 정보를 파싱하여 얻어지는 에스크로 거래에 대한 정보를 통해 상기 송신자로부터 상기 송신자의 송금에 대응하는 통화로서 상기 토큰 컨트랙트에 종속된 토큰을 송금받아 상기 에스크로 컨트랙트에 예치하는 단계
    를 포함하는 것을 특징으로 하는 에스크로 거래 방법.
  6. 제5항에 있어서,
    상기 에스크로 컨트랙트의 오너로부터의 요청에 따라 상기 에스크로 컨트랙트를 설치하는 단계; 및
    상기 에스크로 컨트랙트 오너로부터의 요청이 포함하는 상기 토큰 컨트랙트의 주소에 따라 상기 에스크로 컨트랙트를 상기 토큰 컨트랙트와 연계시키는 단계
    를 더 포함하는 에스크로 거래 방법.
  7. 제1항에 있어서,
    상기 예치된 통화를 상기 수신자에게 송금하는 단계는,
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 수신 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 수신자로의 송금을 요청하는 것을 특징으로 하는 에스크로 거래 방법.
  8. 제1항에 있어서,
    상기 예치된 통화를 상기 송신자에게 반환하는 단계는,
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되지 않은 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 취소 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 송신자로의 송금을 요청하는 것을 특징으로 하는 에스크로 거래 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 호출자는 상기 에스크로 컨트랙트의 오너 또는 상기 송신자인 것을 특징으로 하는 에스크로 거래 방법.
  10. 제1항에 있어서,
    상기 송신자의 송금에 대응하는 통화는 상기 블록체인 시스템의 기준 통화를 포함하는 것을 특징으로 하는 에스크로 거래 방법.
  11. 제1항에 있어서,
    상기 통화는 상기 블록체인 시스템이 더 포함하는 토큰 컨트랙트에 종속된 토큰을 포함하는 것을 특징으로 하는 에스크로 거래 방법.
  12. 컴퓨터 장치와 결합되어 제1항 내지 제8항, 제10항 또는 제11항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  13. 제1항 내지 제8항, 제10항 또는 제11항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체.
  14. 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    송신자로부터 수신자로의 에스크로 거래에 대해 상기 블록체인 시스템이 포함하는 에스크로 컨트랙트에 상기 송신자의 송금에 대응하는 통화를 예치하고,
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 수신자에게 송금하고,
    상기 송금에 대해 기 정의된 조건이 만족되지 않는 경우, 상기 에스크로 컨트랙트에 예치된 통화를 상기 송신자에게 반환하는 것
    을 특징으로 하는 컴퓨터 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 송신자로부터 승인을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로 상기 통화의 송금을 요청하고,
    상기 토큰 컨트랙트로부터 상기 토큰 컨트랙트에 종속되고 상기 송신자의 요청에 따라 승인된 토큰을 송금받아 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 것
    을 특징으로 하는 컴퓨터 장치.
  16. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 송신자로부터 에스크로 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 토큰 송금 요청을 수신하고,
    상기 에스크로 토큰 송금 요청에 응답하여 상기 토큰 컨트랙트로 송금을 요청하고,
    상기 토큰 컨트랙트로의 요청에 따라 송금된 토큰을 상기 송신자의 송금에 대응하는 통화로서 상기 에스크로 컨트랙트에 예치하는 것
    을 특징으로 하는 컴퓨터 장치.
  17. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 송신자로부터 송금을 요청받은 상기 블록체인 시스템의 토큰 컨트랙트로부터 에스크로 거래와 관련된 메타 정보가 포함된 토큰 폴백 요청을 수신하고,
    상기 메타 정보를 파싱하여 얻어지는 에스크로 거래에 대한 정보를 통해 상기 송신자로부터 상기 송신자의 송금에 대응하는 통화로서 상기 토큰 컨트랙트에 종속된 토큰을 송금받아 상기 에스크로 컨트랙트에 예치하는 것
    을 특징으로 하는 컴퓨터 장치.
  18. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되는 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 수신 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 수신자로의 송금을 요청하는 것
    을 특징으로 하는 컴퓨터 장치.
  19. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 송신자의 송금에 대해 기 정의된 조건이 만족되지 않은 경우에 상기 에스크로 컨트랙트에 명시된 호출자로부터 요청되는 에스크로 취소 요청에 따라, 상기 블록체인 시스템의 토큰 컨트랙트로 상기 에스크로 컨트랙트로부터 상기 송신자로의 송금을 요청하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020227017460A 2019-12-20 2019-12-20 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템 KR20220084401A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/018156 WO2021125399A1 (ko) 2019-12-20 2019-12-20 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20220084401A true KR20220084401A (ko) 2022-06-21

Family

ID=76478791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227017460A KR20220084401A (ko) 2019-12-20 2019-12-20 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템

Country Status (3)

Country Link
JP (1) JP7478240B2 (ko)
KR (1) KR20220084401A (ko)
WO (1) WO2021125399A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240014016A (ko) * 2022-07-21 2024-01-31 주식회사 인피닛블록 디지털 자산 수탁 및 출금 대납 시스템 및 이를 위한 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6971019B2 (ja) 2016-09-26 2021-11-24 Gmoインターネット株式会社 データ管理システム、情報処理装置、プログラム、及び、データ管理方法
KR102580915B1 (ko) * 2018-02-08 2023-09-19 주식회사 케이티 블록체인 기반 안전거래 플랫폼 및 방법
US10713722B2 (en) * 2018-02-14 2020-07-14 Equity Shift, Inc. Blockchain instrument for transferable equity
KR20190132159A (ko) * 2018-05-18 2019-11-27 주식회사 비즈모델라인 스마트 컨트랙트를 이용한 블록체인 기반 암호화폐 거래 플랫폼 제공 방법
CN108876606B (zh) * 2018-05-29 2021-02-09 创新先进技术有限公司 资产转移方法及装置、电子设备
KR20190136610A (ko) * 2018-05-31 2019-12-10 박덕용 블록체인 기반의 스마트 컨트랙트를 이용한 거래 처리 장치 및 방법
EP3803741A4 (en) 2018-06-08 2022-03-09 Rocket Lawyer Incorporated CRYPTOGRAPHIC CONTRACT PAYMENT AND DISPUTE RESOLUTION SYSTEM

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240014016A (ko) * 2022-07-21 2024-01-31 주식회사 인피닛블록 디지털 자산 수탁 및 출금 대납 시스템 및 이를 위한 방법

Also Published As

Publication number Publication date
JP7478240B2 (ja) 2024-05-02
JP2023514007A (ja) 2023-04-05
WO2021125399A1 (ko) 2021-06-24

Similar Documents

Publication Publication Date Title
JP7272844B2 (ja) 送金機能が搭載されたメッセンジャーでメッセージ内容を認識して送金機能を提供する方法およびシステム
US9524500B2 (en) Transferring assets
KR102357859B1 (ko) 공유 계좌의 거래에 대한 사전 승인을 위한 컴퓨터 프로그램, 방법, 및 장치
KR102118178B1 (ko) 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템
KR20160054033A (ko) 모바일 송금/결제
US10733018B2 (en) Systems and methods for providing services in a stateless application framework
JP6882924B2 (ja) 互いに異なるユーザ識別体系を利用して登録されたユーザを識別するサーバ間のサービス連動方法、システムおよびコンピュータプログラム
JP2021119544A (ja) トランザクション委任方法、及びトランザクション委任システム
JP7339335B2 (ja) DAppで要求する高いトランザクション処理量をブロックチェーンで効率的に処理するための方法およびシステム
KR20220084401A (ko) 블록체인에서의 스마트 컨트랙트를 이용한 에스크로 거래 방법 및 시스템
KR102204403B1 (ko) 블록체인의 확장을 가능하게 하는 트랜잭션 처리 시스템 및 방법
JP2020109643A (ja) メッセンジャー基盤の銀行口座取引履歴に関連するユーザが使いやすいインタフェースを提供する方法、システム、および非一時的なコンピュータ読み取り可能な記録媒体
KR20150096190A (ko) 애플리케이션 펀딩서비스를 제공하는 서버, 방법 및 시스템
US10732990B2 (en) Systems and methods for providing services in a stateless application framework
KR20210047719A (ko) 메신저를 이용하여 결제 수단의 연동 계좌를 변경하는 방법, 시스템, 및 비-일시적인 컴퓨터 판독가능한 기록 매체
KR102352546B1 (ko) 송금 기능이 탑재된 메신저에서 메시지 내용을 인식하여 송금 기능을 제공하는 방법 및 시스템
US20120303518A1 (en) Method and system for distributing and paying for content on social networks
KR20220098623A (ko) 가상화폐 즉시 송금을 위한 방법, 시스템, 및 컴퓨터 프로그램
KR102383017B1 (ko) 블록체인 기반의 모바일 무기명 비화폐 결제를 위한 방법 및 시스템
KR102102525B1 (ko) 게임서버 독립형 게임 아이템 거래소 구조 및 작동 방법
KR20230129651A (ko) 포인트에 기반하여 해외 송금을 처리하는 방법 및 시스템
KR20220093755A (ko) 컨펌 수 조정 방법 및 시스템
JP2021149974A (ja) 異種ペイを中継する方法、システム、およびコンピュータプログラム
KR20150096158A (ko) 애플리케이션 펀딩서비스를 제공하는 방법 및 시스템
KR20230151657A (ko) 프로필을 이용한 위치 기반 송금 서비스를 제공하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
E902 Notification of reason for refusal