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

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

Info

Publication number
KR102599873B1
KR102599873B1 KR1020180043464A KR20180043464A KR102599873B1 KR 102599873 B1 KR102599873 B1 KR 102599873B1 KR 1020180043464 A KR1020180043464 A KR 1020180043464A KR 20180043464 A KR20180043464 A KR 20180043464A KR 102599873 B1 KR102599873 B1 KR 102599873B1
Authority
KR
South Korea
Prior art keywords
transaction information
user
cryptocurrency
information
blockchain
Prior art date
Application number
KR1020180043464A
Other languages
English (en)
Other versions
KR20190119920A (ko
Inventor
윤석주
Original Assignee
주식회사 넥슨코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 넥슨코리아 filed Critical 주식회사 넥슨코리아
Priority to KR1020180043464A priority Critical patent/KR102599873B1/ko
Priority to US17/045,419 priority patent/US11887107B2/en
Priority to PCT/KR2018/005252 priority patent/WO2019198866A1/ko
Publication of KR20190119920A publication Critical patent/KR20190119920A/ko
Application granted granted Critical
Publication of KR102599873B1 publication Critical patent/KR102599873B1/ko

Links

Images

Classifications

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

Landscapes

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

Abstract

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

Description

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

Claims (20)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180043464A KR102599873B1 (ko) 2018-04-13 2018-04-13 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
US17/045,419 US11887107B2 (en) 2018-04-13 2018-05-08 Method and device for providing transaction service for cryptocurrencies based on different blockchains
PCT/KR2018/005252 WO2019198866A1 (ko) 2018-04-13 2018-05-08 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20190119920A KR20190119920A (ko) 2019-10-23
KR102599873B1 true KR102599873B1 (ko) 2023-11-07

Family

ID=68164341

Family Applications (1)

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

Country Status (3)

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

Families Citing this family (9)

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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018060951A1 (en) * 2016-09-30 2018-04-05 KALLA, Abdool Gani Anver A system for trading in a contract-free manner

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110037666A (ko) * 2009-10-07 2011-04-13 주식회사 다날 휴대용 단말기를 이용한 복수 단계 인증 전자 결제 방법
US20150363769A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Real-Time Conversion System
KR101591244B1 (ko) * 2014-11-06 2016-02-05 주식회사 코인플러그 멤버십 포인트 또는 사이버머니를 블록체인을 갖는 디지털 가상통화로 전환하여 주는 장치
KR101660627B1 (ko) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101628007B1 (ko) * 2015-04-07 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
JP5858507B1 (ja) * 2015-05-18 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US9870562B2 (en) * 2015-05-21 2018-01-16 Mastercard International Incorporated Method and system for integration of market exchange and issuer processing for blockchain-based transactions
KR102209781B1 (ko) * 2016-07-21 2021-01-28 주식회사 케이티 가상화폐 관리 방법 및 이를 위한 장치
CN107742210A (zh) * 2017-10-13 2018-02-27 布比(北京)网络技术有限公司 一种不同区块链间的跨链转账系统和方法
US11244309B2 (en) * 2017-11-22 2022-02-08 Cornell University Real-time cryptocurrency exchange using trusted hardware
US20190034936A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Approving Transactions from Electronic Wallet Shares
KR101920015B1 (ko) * 2018-03-13 2018-11-19 주식회사 웨이투빗 이종 블록체인 기반의 토큰 관리 방법 및 이를 이용한 토큰 관리 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018060951A1 (en) * 2016-09-30 2018-04-05 KALLA, Abdool Gani Anver A system for trading in a contract-free manner

Also Published As

Publication number Publication date
US20210150512A1 (en) 2021-05-20
KR20190119920A (ko) 2019-10-23
US11887107B2 (en) 2024-01-30
WO2019198866A1 (ko) 2019-10-17

Similar Documents

Publication Publication Date Title
KR102599873B1 (ko) 서로 다른 블록체인에 기반하는 암호화폐의 거래 서비스를 제공하는 방법 및 장치
Kabra et al. MudraChain: Blockchain-based framework for automated cheque clearance in financial institutions
US11637709B2 (en) Split-key wallet access between blockchains
JP6841911B2 (ja) 情報保護用のシステム及び方法
KR102215773B1 (ko) 영-지식 증명을 갖는 계정 노트 모델에 기초한 블록체인 데이터 보호
US20210314397A1 (en) Fund conversion between blockchains
US20220129888A1 (en) Computer-implemented systems and methods for implementing transfers over a blockchain network
KR102610127B1 (ko) 전자 지갑을 이용한 암호화폐의 거래 서비스를 제공하는 장치 및 방법
US20190295049A1 (en) System and method for secure transaction verification in a distributed ledger system
KR20200066259A (ko) 정보 보호를 위한 시스템 및 방법
US10938549B2 (en) System and method for information protection
AU2019378253B2 (en) Distributed ledger systems, methods and devices
US11729000B2 (en) Methods and systems for introducing self-contained intent functionality into decentralized computer networks
CN114747172A (zh) 加密链接身份
CN109831312A (zh) 可连接环签名方法、装置、设备以及存储介质
US10972349B1 (en) Cryptographic verification of data inputs for executables on a network
WO2020211073A1 (zh) 基于区块链和多方安全计算的交易方法、装置及存储介质
US20230153788A1 (en) Performing card lifecycle actions for card accounts utilizing encryption and double signature validation
US20230334470A1 (en) Blockchain interoperability system for native asset creation
CN112926086A (zh) 基于区块链的隐私计算方法、装置、终端设备和介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant