KR20190132052A - 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 - Google Patents
암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 Download PDFInfo
- Publication number
- KR20190132052A KR20190132052A KR1020180057245A KR20180057245A KR20190132052A KR 20190132052 A KR20190132052 A KR 20190132052A KR 1020180057245 A KR1020180057245 A KR 1020180057245A KR 20180057245 A KR20180057245 A KR 20180057245A KR 20190132052 A KR20190132052 A KR 20190132052A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- cryptocurrency
- smart contract
- designated
- electronic wallet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 316
- 230000006870 function Effects 0.000 claims abstract description 186
- 238000012795 verification Methods 0.000 claims abstract description 34
- 238000000151 deposition Methods 0.000 claims abstract description 21
- 230000001360 synchronised effect Effects 0.000 claims description 22
- 238000012790 confirmation Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 13
- 238000005065 mining Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
본 발명은 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트에 관한 것으로, 본 발명에 따른 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트는, 스마트 컨트랙트(Smart Contract)를 지원하는 지정된 블록체인 네트워크 상에 구비된 M(M≥2)개의 노드장치를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 하나 이상의 지정된 기능(Function)을 구현하는 스마트 컨트랙트에 있어서, 상기 블록체인 네트워크 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트로 예치받는 기능을 구현하는 예치 기능부와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현하는 저장 기능부와, 스마트 컨트랙트에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 기능을 구현하는 확인 기능부와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 기능을 구현하는 인출 기능부를 포함한다.
Description
본 발명은 지정된 블록체인 네트워크 상에 구비된 M(M≥2)개의 노드장치를 통해 탈중앙화 형태로 실행되며 블록체인 네트워크 상의 유효한 전자지갑을 통해 암호화폐를 예치 가능하지만 미리 코딩된 규칙이나 기능에 의하지 아니하고는 암호화폐를 임의로 인출 불가한 블록체인 기반 스마트 컨트랙트(Smart Contract)를 통해 블록체인 상에서 수행되는 인증 절차를 통해 안전한 암호화폐 거래를 제공하는 것이다.
스마트 컨트랙트(Smart Contract)는 1994년 닉 재보(Nick Szabo)에 의해 제안된 개념으로, 지정된 프로그래밍 언어를 통해 계약 조건과 계약 내용을 프로그래밍해 놓은 후 프로그래밍된 계약 조건이 만족되면 그에 따른 계약 내용을 자동으로 실행하는 기술이다. 다만 스마트 컨트랙트와 같은 디지털 자료는 네트워크 환경에서 조작이나 위변조가 용이하기 때문에, 한동안 스마트 컨트랙트는 개념으로만 존재하고 구체적인 서비스에 이용될 수 없었으나, 디지털 자료에 대한 신뢰 환경을 구현하는 블록체인 기술에 적용되면서 구체적인 서비스에 이용되게 되었다.
최초(또는 원시적인 형태)의 블록체인 기반 스마트 컨트랙트는 비트코인(Bitcoin)에 적용된 비트코인 스크립트이다. 그러나 비트코인 스크립트는 반복문을 사용할 수 없는 문제점과 비트코인 잔고 외의 다른 정보를 관리 할 수 없는 한계를 지니고 있었다. 이에 2015년07월30일 비탈릭 부테린(Vitalik Buterin)에 의해 반복문을 사용 가능하며 다양한 정보와 상태를 관리 가능한 스마트 컨트랙트를 지원하는 블록체인 플랫폼인 이더리움(Ethereum)이 개발되었으며, 이더리움 이후에 개발되거나 개발 중인 모든 블록체인 플랫폼은 기본적으로 스마트 컨트랙트를 지원한다.
한편 블록체인을 통해 구현된 암호화폐를 획득하는 방식은, 블록체인 네트워크 상의 유효한 전자지갑 사이의 P2P 기반 암호화폐 거래를 이용하는 방식(예컨대, 블록체인 네트워크 상의 유효한 다른 전자지갑에 보관된 암호화폐를 상기 블록체인 네트워크 상의 유효한 전자지갑으로 이전받는 방식 등)과, 암호화폐 거래소의 지정된 암호화폐 거래 절차에 따라 암호화폐를 거래하는 거래소 기반 암호화폐 거래를 이용하는 방식(예컨대, 사용자가 암호화폐 거래소에 회원 가입하여 본인 명의의 거래소지갑을 생성한 후 사용자가 소유한 실물화폐를 이용하여 해당 암호화폐 거래소 내에서 거래되는 암호화폐를 사용자 명의의 거래소지갑으로 매입하는 방식 등)과, 블록체인 네트워크를 구현하는 노드장치(예컨대, 채굴기)를 구비하여 지정된 채굴 절차를 수행한 후 상기 채굴의 보상에 해당하는 암호화폐를 전자지갑으로 지급받는 채굴 방식 등이 존재하며, 암호화폐 거래소를 통해 거래된 암호화폐를 블록체인 네트워크 상의 유효한 전자지갑으로 이전받는 거래소 기반 P2P 암호화폐 거래 방식이 존재한다.
한편 블록체인을 통해 구현된 암호화폐를 획득하는 방식은, 블록체인 네트워크 상에 유효한 전자지갑을 생성한 후 해당 블록체인 네트워크 상의 유효한 다른 전자지갑에 보관된 암호화폐를 이전받는 P2P 기반 암호화폐 거래 방식과, 사용자가 암호화폐 거래소에 회원 가입하여 본인 명의의 거래소지갑을 생성한 후 실물화폐를 이용하여 사용자 명의의 거래소지갑으로 해당 암호화폐 거래소 내에서 거래되는 암호화폐를 매입하는 거래소 기반 암호화폐 거래 방식과, 블록체인 네트워크를 구현하는 노드장치(예컨대, 채굴기)를 구비하여 채굴 절차를 수행한 후 상기 채굴의 보상에 해당하는 암호화폐를 전자지갑으로 지급받는 채굴 방식 등이 존재하며, 암호화폐 거래소를 통해 거래된 암호화폐를 블록체인 네트워크 상의 유효한 전자지갑으로 이전받는 거래소 기반 P2P 암호화폐 거래 방식이 존재한다.
통상의 암호화폐 거래소는, 블록체인 네트워크 상의 유효한 전자지갑 사이의 P2P 기반 암호화폐를 제공하는 것이 아니라, 블록체인 네트워크 상에 하나 이상의 유효한 거래소 소유 전자지갑을 생성하고, 상기 P2P 기반 암호화폐 거래 방식을 통해 상기 거래소 소유 전자지갑에 지정된 단위의 암호화폐를 보관한 후, 상기 거래소 소유 전자지갑에 보관된 암호화폐 단위를 근거로 상기 암호화폐 거래소 내부의 거래소 원장을 이용하여 상기 암호화폐 거래소에 회원 가입한 각 회원 명의의 거래소지갑 사이에 실물화폐를 매개로 하는 매도/매입 기반의 거래소 기반 암호화폐 거래를 제공한다.
통상의 거래소 기반 암호화폐 거래는 실제 블록체인 네트워크를 통해 수행되는 실제 암호화폐 거래가 아니라, 상기 암호화폐 거래소 내부의 거래소 원장을 통해 가상으로 구현되는 암호화폐 거래로서, 상기 거래소 기반 암호화폐 거래의 거래내역은 블록체인 네트워크를 구현하는 노드장치의 분산 원장에 전혀 반영되지 않는다. 따라서 상기 암호화폐 거래소의 거래소 원장이나 각 회원의 거래소지갑이 해킹될 경우 상기 거래소 소유 전자지갑에 보관된 암호화폐가 도난되지는 않더라도 상기 거래소 소유 전자지갑에 보관된 암호화폐의 각 회원 별 소유권을 확인할 수 없는 문제점을 지니고 있다.
한편 사용자가 암호화폐 거래소에 생성된 본인 명의의 거래소지갑에서 블록체인 네트워크 상의 유효한 수신 측 전자지갑으로 암호화폐의 송금을 요청하는 경우, 상기 암호화폐 거래소는 상기 사용자 명의의 거래소지갑과 연계된 블록체인 네트워크 상의 거래소 소유 전자지갑을 확인하고 상기 블록체인 네트워크를 통해 상기 거래소 소유 전자지갑에서 상기 수신 측 전자지갑으로 암호화폐를 송금하는 거래소 기반 P2P 암호화폐 거래를 수행할 수 있다. 이러한 거래소 기반 P2P 암호화폐 거래의 거래내역은 상기 블록체인 네트워크 상의 분산 원장에 반영되기는 하지만, 상기 분산 원장에 반영되는 거래내역은 상기 암호화폐 거래소에 생성된 사용자 명의의 거래소지갑과 상기 블록체인 네트워크 상의 수신 측 전자지갑 사이의 거래내역이 아니라, 상기 블록체인 네트워크 상의 거래소 소유 전자지갑과 상기 수신 측 전자지갑 사이의 거래내역이다.
한편 통상적으로 P2P 기반 암호화폐 거래를 위해서는 상술한 바와 같이 블록체인 네트워크 상에 유효한 전자지갑을 생성하여야 하며, 상기 전자지갑을 생성하는 과정에서 공개키와 개인키의 키 쌍이 생성된다. 한편 블록체인 네트워크를 통해 상기 전자지갑으로 암호화폐를 이전받기 위해서는 상기 전자지갑의 공개키만 공개되어 있으면 되지만, 상기 전자지갑에 보관된 암호화폐를 다른 전자지갑으로 송금하는 경우 상기 상기 전자지갑의 개인키를 이용한 서명을 수행해야 한다. 즉 블록체인 네트워크 상에 생성된 전자지갑의 개인키만 있으면 언제든 블록체인 네트워크를 통해 해당 전자지갑에 보관된 암호화폐를 다른 전자지갑으로 송금할 수 있다.
한편 암호화폐 거래소의 거래소 기반 암호화폐 거래를 위한 거래소 소유 전자지갑도 블록체인 네트워크 상에 생성된 전자지갑이므로, 상기 거래소 소유 전자지갑의 개인키를 탈취하기만 하면 상기 거래소 소유 전자지갑에 보관된 암호화폐를 언제든 블록체인 네트워크를 통해 다른 전자지갑으로 송금할 수 있다. 설령 상기 거래소 소유 전자지갑의 개인키를 네트워크에 연결되지 않은 오프라인 상의 저장장치에 보관하더라도 개인키를 사용하는 과정까지 오프라인 상태로 진행하지 않을 경우 상기 거래소 소유 전자지갑의 개인키는 네트워크에 연결된 후에 언제든 탈취될 수 있으며, 이 경우 상기 암호화폐 거래소의 거래소 기반 암호화폐 거래를 위해 거래소 소유 전자지갑에 보관된 암호화폐가 모두 탈취되어 도난될 수 있는 치명적인 문제점을 지니고 있다.
실제로 2018년01월26일 일본의 주요 암호화폐 거래소인 코인체크(Coincheck)는 거래소 소유 전자지갑의 개인키를 네트워크에 연결한 상태에서 사용하여 약 26만명 회원의 약 5700억 원 상당의 암호화폐를 도난당하는 해킹 사건이 발생하였다. 이러한 개인키 해킹 문제를 해소하는 방법 중 한가지 방법은 전자지갑의 개인키를 오프라인 상의 저장장치에 보관하고 개인키를 사용하는 과정까지 오프라인 상태로 진행한 후 온라인으로 전환하여 블록체인 네트워크를 통해 개인키 사용 이후의 절차를 진행하는 것이다. 한편 이러한 방법은 거래 소요 시간이 제약되지 않는 단순 P2P 기반 암호화폐 거래에 유효하게 적용될 수 있기는 하지만, 각 블록 생성 주기 별로 수십 내지 수만 건의 거래소 기반 P2P 암호화폐 거래를 처리해야 하는 거래소 소유 전자지갑의 개인키에 적용하기에는 기술적으로 난해한 문제점을 지니고 있다.
상기와 같은 문제점을 해소하기 위한 본 발명의 목적은, 스마트 컨트랙트(Smart Contract)를 지원하는 지정된 블록체인 네트워크 상에 구비된 M(M≥2)개의 노드장치를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 하나 이상의 지정된 기능(Function)을 구현하는 스마트 컨트랙트에 있어서, 상기 블록체인 네트워크 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트로 예치받는 기능을 구현하는 예치 기능부와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현하는 저장 기능부와, 스마트 컨트랙트에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 기능을 구현하는 확인 기능부와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 기능을 구현하는 인출 기능부를 포함하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트을 제공함에 있다.
본 발명에 따른 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트는, 스마트 컨트랙트(Smart Contract)를 지원하는 지정된 블록체인 네트워크 상에 구비된 M(M≥2)개의 노드장치를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 하나 이상의 지정된 기능(Function)을 구현하는 스마트 컨트랙트에 있어서, 상기 블록체인 네트워크 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트로 예치받는 기능을 구현하는 예치 기능부와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현하는 저장 기능부와, 스마트 컨트랙트에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 기능을 구현하는 확인 기능부와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 기능을 구현하는 인출 기능부를 포함한다.
본 발명에 따르면, 상기 저장 기능부는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 저장하는 기능을 포함할 수 있다. 한편 상기 지정된 저장영역은 스마트 컨트랙트의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 예치와 관련된 정보를 저장하기 위해 설정된 저장영역을 포함할 수 있다. 한편 상기 지정된 저장영역은 암호화폐의 거래를 저장하는 저장영역을 포함할 수 있다.
본 발명에 따르면, 상기 암호화폐는 지정된 블록체인 네트워크를 통해 발행되는 암호코인 형태의 암호화폐, 지정된 암호코인을 발행하는 지정된 블록체인 네트워크를 기반으로 구현되는 암호토큰 형태의 암호화폐 중 적어도 하나를 포함할 수 있다.
본 발명에 따르면, 상기 사용자의 공개키는 상기 사용자의 전자지갑 생성 과정을 통해 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 이 경우 상기 사용자의 공개키는 상기 사용자의 전자지갑 주소로 이용될 수 있다. 한편 상기 저장 기능부는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 포함할 수 있다.
본 발명에 따르면, 상기 사용자의 공개키는 상기 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 이 경우 상기 사용자의 공개키는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계되어 지정된 저장영역에 저장될 수 있다. 한편 상기 사용자의 개인키는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 연계하여 지정된 저장영역에 저장함에 의해 상기 사용자의 전자지갑과 연계될 수 있다. 한편 상기 저장 기능부는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인하는 기능과, 상기 확인된 사용자의 공개키와 전자지갑 주소를 연계하여 지정된 저장영역에 저장하는 기능을 포함할 수 있다. 한편 상기 저장 기능부는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인한 경우 지정된 저장영역에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장되어 있는지 확인하는 기능을 더 포함할 수 있다.
본 발명에 따르면, 상기 확인 기능부는 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 블록체인 네트워크 상의 기 설정된 특정 노드장치를 통해 상기 블록체인 네트워크 상의 각 노드장치로 방송되는 지정된 구조의 메시지를 통해 상기 인출정보를 확인하는 기능을 포함할 수 있다.
본 발명에 따르면, 상기 스마트 컨트랙트 동작 절차는 상기 특정 노드장치의 개인키를 이용하여 상기 스마트 컨트랙트의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크 상의 각 노드장치로 방송하는 절차를 포함할 수 있다.
본 발명에 따르면, 상기 특정 노드장치는 상기 블록체인 네트워크 상의 노드장치 중 지정된 운영서버와 연동하는 노드장치, 또는 상기 블록체인 네트워크 상의 노드장치 중 지정된 운영서버가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치를 포함할 수 있다.
본 발명에 따르면, 상기 메시지는 상기 인출정보를 파라미터로 포함할 수 있다.
본 발명에 따르면, 상기 메시지는 상기 메시지를 다른 노드장치로 방송하는 특정 노드장치의 지정된 주소를 포함할 수 있다.
본 발명에 따르면, 상기 메시지는 상기 블록체인 네트워크 상의 노드장치에 등록된 상기 스마트 컨트랙트의 지정된 주소와 상기 스마트 컨트랙트 상의 확인 기능부에 대응하는 함수의 주소 중 적어도 하나의 주소를 포함할 수 있다.
본 발명에 따르면, 상기 인출정보는 암호화폐가 인출될 i(i≥1)개의 전자지갑 주소와 i개의 암호화폐 단위 및 i개의 인증정보를 포함하며, 상기 인출 기능부는 지정된 인증 절차의 인증 성공 시 상기 i개의 전자지갑 주소로 제각기 대응하는 i개의 암호화폐 단위를 인출하는 기능을 수행할 수 있다.
본 발명에 따르면, 상기 인증 기능부는 상기 인출정보에 포함된 사용자의 전자지갑 주소가 지정된 저장영역에 저장되어 있는지 인증하는 인증 절차를 수행하는 기능을 더 포함할 수 있다. 한편 상기 지정된 저장영역은 지정된 암호화폐를 예치한 사용자의 전자지갑 주소를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 공개키를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계된 사용자의 공개키를 저장하는 저장영역 중 적어도 하나의 저장영역을 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 지정된 운영서버와 상기 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 지정된 운영서버와 상기 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버와 스마트 컨트랙트 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하며, 상기 인출정보는 상기 운영서버와 스마트 컨트랙드 사이에 상기 암호화된 문자열이나 바이너리코드를 동기화하기 위한 인덱스를 더 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있다.
본 발명에 따르면, 상기 인증정보는 지정된 운영서버와 상기 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있다.
본 발명에 따르면, 상기 인증 기능부는 지정된 저장영역에 저장된 사용자의 공개키를 통해 상기 인증정보를 복호화하여 지정된 운영서버와 합의되거나 동기화된 데이터와 매칭되는지 인증하는 인증 절차를 수행하는 기능을 포함할 수 있다.
본 발명에 따르면, 상기 저장 기능부는 지정된 암화화폐를 인출받은 사용자의 전자지갑 주소와 상기 인출된 암호화폐 단위를 포함하는 암호화폐 인출정보를 지정된 저장영역에 저장하는 기능을 더 포함할 수 있다. 한편 상기 지정된 저장영역은 스마트 컨트랙트의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 인출과 관련된 정보를 저장하기 위해 설정된 저장영역을 포함할 수 있다.
본 발명에 따르면, 암호화폐를 예치 가능하지만 미리 코딩된 규칙이나 기능에 의하지 아니하고는 암호화폐를 임의로 인출하는 것이 불가하며 상기 코딩된 규칙이나 기능의 위변조가 불가한 블록체인 기반 스마트 컨트랙트를 지정된 암호화폐 거래를 구현하는 매개체로 이용하여 암호화폐 거래를 제공함으로써, 상기 스마트 컨트랙트를 매개체로 이용하여 거래되는 암호화폐의 탈취를 원천 차단하여 안전하고 신뢰성있는 암호화폐 거래 플랫폼을 제공하는 이점이 있다.
본 발명에 따르면, 블록체인 네트워크 상의 스마트 컨트랙트에 지정된 암호화폐를 예치한 사용자의 공개키를 상기 스마트 컨트랙트에 내에 미리 기록해 놓은 후에, 상기 블록체인 네트워크 상의 스마트 컨트랙트에 예치된 암호화폐를 사용자의 전자지갑으로 인출하기 위해 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위를 포함하는 인출정보를 기 설정된 동작 절차에 따라 상기 블록체인 네트워크 상의 스마트 컨트랙트로 전달 시, 지정된 본인 인증 절차를 통해 인증된 사용자의 개인키를 이용하여 생성된 인증정보를 상기 인출정보에 포함시켜 스마트 컨트랙트로 제공하면, 상기 스마트 컨트랙트가 지정된 저장영역에 기 저장된 상기 사용자의 공개키를 통해 상기 인증정보의 유효성을 인증한 후 상기 인출정보의 인출 절차를 수행함으로써, 상기 인출정보를 스마트 컨트랙트로 전달하기 위해 이용되는 특정 노드장치의 개인키가 탈취되더라도 상기 인증정보를 생성하는데 이용되는 각 사용자의 개인키까지 동시에 탈취되지 않는 한 상기 스마트 컨트랙트에 예치된 암호화폐를 부정 인출할 수 없도록 차단하는 이점이 있다.
도 1은 본 발명의 실시 방법에 따라 암호화폐 거래 플랫폼을 제공하는 블록체인 기반 스마트 컨트랙트의 기능 구성을 도시한 도면이다.
도 2는 본 발명의 실시 방법에 따라 블록체인 기반 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼을 제공하는 시스템의 구성을 도시한 도면이다.
도 3은 본 발명의 실시 방법에 따라 블록체인 네트워크의 노드장치에 스마트 컨트랙트를 등록하는 과정을 도시한 도면이다.
도 4는 본 발명의 실시 방법에 따른 암호화폐 거래를 위한 정보 등록 과정을 도시한 도면이다.
도 5는 본 발명의 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트에 기록하는 과정을 도시한 도면이다.
도 6은 본 발명의 다른 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트에 기록하는 과정을 도시한 도면이다.
도 7은 본 발명의 실시 방법에 따라 스마트 컨트랙트에 예치된 암호화폐를 인출하기 위한 정보를 구성하는 과정을 도시한 도면이다.
도 8은 본 발명의 실시 방법에 따라 스마트 컨트랙트에 예치된 암호화폐를 인출하는 과정을 도시한 도면이다.
도 2는 본 발명의 실시 방법에 따라 블록체인 기반 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼을 제공하는 시스템의 구성을 도시한 도면이다.
도 3은 본 발명의 실시 방법에 따라 블록체인 네트워크의 노드장치에 스마트 컨트랙트를 등록하는 과정을 도시한 도면이다.
도 4는 본 발명의 실시 방법에 따른 암호화폐 거래를 위한 정보 등록 과정을 도시한 도면이다.
도 5는 본 발명의 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트에 기록하는 과정을 도시한 도면이다.
도 6은 본 발명의 다른 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트에 기록하는 과정을 도시한 도면이다.
도 7은 본 발명의 실시 방법에 따라 스마트 컨트랙트에 예치된 암호화폐를 인출하기 위한 정보를 구성하는 과정을 도시한 도면이다.
도 8은 본 발명의 실시 방법에 따라 스마트 컨트랙트에 예치된 암호화폐를 인출하는 과정을 도시한 도면이다.
이하 첨부된 도면과 설명을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 다만, 하기에 도시되는 도면과 후술되는 설명은 본 발명의 특징을 효과적으로 설명하기 위한 여러 가지 방법 중에서 바람직한 실시 방법에 대한 것이며, 본 발명이 하기의 도면과 설명만으로 한정되는 것은 아니다.
즉, 하기의 실시예는 본 발명의 수 많은 실시예 중에 바람직한 합집합 형태의 실시예 예에 해당하며, 하기의 실시예에서 특정 구성(또는 단계)를 생략하는 실시예, 또는 특정 구성(또는 단계)에 구현된 기능을 특정 구성(또는 단계)로 분할하는 실시예, 또는 둘 이상의 구성(또는 단계)에 구현된 기능을 어느 하나의 구성(또는 단계)에 통합하는 실시예, 특정 구성(또는 단계)의 동작 순서를 교체하는 실시예 등은, 하기의 실시예에서 별도로 언급하지 않더라도 모두 본 발명의 권리범위에 속함을 명백하게 밝혀두는 바이다. 따라서 하기의 실시예를 기준으로 부분집합 또는 여집합에 해당하는 다양한 실시예들이 본 발명의 출원일을 소급받아 분할될 수 있음을 분명하게 명기하는 바이다.
또한, 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 발명에서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
결과적으로, 본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하 실시예는 진보적인 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도면1은 본 발명의 실시 방법에 따라 암호화폐 거래 플랫폼을 제공하는 블록체인 기반 스마트 컨트랙트(110)의 기능 구성을 도시한 도면이다.
보다 상세하게 본 도면1은 지정된 블록체인 네트워크(100) 상에 구비된 M(M≥2)개의 노드장치(105)를 통해 탈중앙화 형태로 실행되며 상기 블록체인 네트워크(100) 상의 유효한 전자지갑을 통해 암호화폐를 예치 가능하지만 미리 코딩된 규칙이나 기능에 의하지 아니하고는 상기 예치된 암호화폐를 임의로 인출하는 것이 불가한 스마트 컨트랙트(110)(Smart Contract)를 통해 수행되는 인증 절차를 통해 안전한 암호화폐 거래를 제공하는 스마트 컨트랙트(110)의 기능 구성을 도시한 것으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면1을 참조 및/또는 변형하여 상기 스마트 컨트랙트(110)의 기능 구성에 대한 다양한 실시 방법(예컨대, 일부 구성부가 생략되거나, 또는 세분화되거나, 또는 합쳐진 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면1에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
본 발명의 스마트 컨트랙트(110)(Smart Contract)는, 지정된 블록체인 네트워크(100) 상에 구비된 M(M≥2)개의 노드장치(105)를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 하나 이상의 지정된 기능(Function)을 구현한다. 블록체인 네트워크(100) 상의 노드장치(105)에 등록된 스마트 컨트랙트(110)는 해당 스마트 컨트랙트(110) 내에 코딩된 규칙에 의하지 아니하고는 수정되지 않으며, M개의 노드장치(105)를 이용한 분산 저장에 의해 위변조되지 않는다.
도면1을 참조하면, 상기 스마트 컨트랙트(110)는, 상기 블록체인 네트워크(100) 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트(110)로 예치받는 기능을 구현하는 예치 기능부(115)와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현하는 저장 기능부(120)와, 스마트 컨트랙트(110)에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 기능을 구현하는 확인 기능부(125)와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부(130)와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 기능을 구현하는 인출 기능부(135) 중 하나 이상의 기능부를 포함한다. 한편 상기 스마트 컨트랙트(110)의 기능부 중 적어도 일부는 상기 스마트 컨트랙트(110) 내에 코딩된 프로그램 코드를 통해 구현되며, 다른 일부 기능을 스마트 컨트랙트(110)를 동작하는 절차와 연동하여 구현되거나 상기 스마트 컨트랙트(110)를 운영하는 블록체인 알고리즘을 통해 구현될 수 있다.
상기 예치 기능부(115)는 블록체인 네트워크(100) 상의 유효한 복수의 전자지갑 중 적어도 하나의 전자지갑으로부터 지정된 암호화폐 단위를 예치받기 위한 컨트랙트 주소를 포함한다. 상기 스마트 컨트랙트(110)로 암호화폐를 예치하려는 단말은 상기 블록체인 네트워크(100) 상에 생성된 유효한 전자지갑의 개인키를 이용하여 상기 전자지갑에 보관된 암호화폐 중 지정된 암호화폐 단위를 상기 컨트랙트 주소로 예치하기 위한 암호화폐 거래의 거래내역을 생성하여 지정된 경로를 통해 상기 블록체인 네트워크(100)로 방송하고, 상기 블록체인 네트워크(100) 상의 각 노드장치(105)는 지정된 블록체인 알고리즘에 따라 상기 암호화폐 단위를 상기 컨트랙트 주소에 대응하는 스마트 컨트랙트(110)로 예치하는 절차를 수행할 수 있는데, 상기 스마트 컨트랙트(110)의 예치 기능부(115)는 상기 블록체인 네트워크(100) 상의 유효한 전자지갑으로부터 지정된 암호화폐 단위를 예치받는다.
본 발명의 실시 방법에 따르면, 상기 예치 기능부(115)는 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로부터 지정된 암호화폐 단위를 예치받을 수 있다. 사용자단말(260)은 사용자의 전자지갑을 생성하는 시점에 생성된 개인키를 이용하여 상기 사용자의 전자지갑에 보관된 암호화폐 중 지정된 암호화폐 단위를 상기 컨트랙트 주소로 예치하기 위한 암호화폐 거래의 거래내역을 생성하여 지정된 경로를 통해 상기 블록체인 네트워크(100)로 방송하며, 상기 블록체인 네트워크(100) 상의 각 노드장치(105)는 지정된 블록체인 알고리즘에 따라 상기 암호화폐 단위를 상기 컨트랙트 주소에 대응하는 스마트 컨트랙트(110)로 예치하는 절차를 수행할 수 있는데, 상기 스마트 컨트랙트(110)의 예치 기능부(115)는 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로부터 지정된 암호화폐 단위를 예치받는다.
본 발명의 실시 방법에 따르면, 상기 예치 기능부(115)는 상기 블록체인 네트워크(100) 상에 유효 생성된 전자지갑 중 지정된 블록체인 기반 서비스를 운영하는 운영사(예컨대, 운영서버(200)를 운영하는 운영사 등)의 전자지갑으로부터 지정된 블록체인 기반 서비스를 운영하기 위해 필요한 지정된 암호화폐 단위를 예치받을 수 있으며, 이에 의해 본 발명이 한정되지 아니한다. 이하 편의상 사용자의 전자지갑으로부터 지정된 암호화폐 단위를 예치받는 실시예를 위주로 본 발명의 특징을 설명할 것이나, 본 발명의 권리범위가 이에 의해 한정되는 것은 아니며, 본 발명을 실시하는 예에 따라 블록체인 네트워크(100) 상에 유효 생성된 어떠한 전자지갑으로부터 암호화폐 단위를 예치받더라도 본 발명의 권리범위에 속함을 명백하게 밝혀두는 바이다.
상기 예치 기능부(115)를 통해 상기 블록체인 네트워크(100) 상의 유효한 전자지갑으로부터 상기 스마트 컨트랙트(110)로 지정된 암호화폐 단위가 예치되면, 상기 저장 기능부(120)는 상기 암호화폐 단위를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 확인하여 지정된 저장영역에 보관하는 기능을 수행한다. 바람직하게, 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 예치와 관련된 정보를 저장하기 위해 설정된 저장영역에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다. 한편 실시 방법에 따라 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 암호화폐의 거래를 저장하는 저장영역(예컨대, 암호화폐의 거래블록을 저장하는 저장영역)에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다.
본 발명의 실시 방법에 따르면, 상기 스마트 컨트랙트(110)는 암호화폐를 예치하기 위한 컨트랙트 주소는 존재하지만, 블록체인 네트워크(100) 상의 전자지갑과 달리 암호화폐를 인출하는 거래를 개시하기 위한 개인키가 존재하지 않으므로, 개인키의 노출이나 해킹이 불가능한 특징으로 지닌다. 한편 상기 스마트 컨트랙트(110)에 예치된 암호화폐는 상기 스마트 컨트랙트(110)에 미리 코딩된 규칙이나 기능에 의해서만 인출될 수 있으며, 임의로 인출하는 것이 원천 차단된다.
본 발명의 실시 방법에 따르면, 상기 암호화폐는 지정된 블록체인 네트워크(100)를 통해 발행되는 암호코인 형태의 암호화폐, 지정된 암호코인을 발행하는 지정된 블록체인 네트워크(100)를 기반으로 구현되는 암호토큰 형태의 암호화폐 중 적어도 하나를 포함할 수 있으며, 상기 암호화폐의 종류나 구현 방식에 의해 본 발명이 한정되지 아니한다.
상기 저장 기능부(120)는 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현한다. 여기서, 상기 사용자의 공개키를 저장하는 지정된 저장영역은 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 사용자의 공개키를 저장하기 위해 설정된 저장영역을 포함할 수 있다.
본 발명의 제1 공개키 실시예에 따르면, 상기 사용자의 공개키는 블록체인 네트워크(100) 상에 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 바람직하게, 블록체인 네트워크(100) 상에 유효한 전자지갑을 생성하는 과정에서 지정된 절차에 따라 지정된 씨드를 이용하여 공개키와 개인키의 키 쌍이 생성될 수 있는데, 상기 사용자의 공개키는 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키를 포함할 수 있다. 한편 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키는 상기 사용자의 전자지갑 주소로 이용될 수 있는데, 이 경우 상기 사용자의 공개키는 상기 사용자의 전자지갑에 대응하는 공개키라고 할 수 있으며, 상기 저장 기능부(120)는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 포함할 수 있다.
한편 본 제1 공개키 실시예에서 상기 사용자의 공개키는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 보관함에 의해 상기 지정된 저장영역에 저장된 것으로 간주될 수 있다.
본 발명의 제2 공개키 실시예에 따르면, 상기 사용자의 공개키는 상기 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 예를들어, 상기 사용자의 공개키는 사용자에게 발급된 인증서의 공개키를 포함하거나, 또는 블록체인 네트워크(100) 상에 상기 사용자의 전자지갑을 생성하기 전이나 후에 상기 사용자의 전자지갑에 대응하는 공기키 이욍에 별도로 생성된 공개키와 개인키의 키 쌍 중 공개키를 포함하거나, 또는 상기 사용자의 회원 가입 과정과 연동하여 생성된 공개키와 개인키의 키 쌍 중 공개키를 포함할 수 있다.
한편 본 제2 공개키 실시예에서 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 공개키에 대응하는 사용자의 공개키는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계되어 지정된 저장영역에 저장될 수 있으며, 이 경우 상기 사용자의 개인키는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 연계하여 지정된 저장영역에 저장함에 의해 상기 사용자의 전자지갑과 연계되는 것으로 간주할 수 있다.
한편 본 제2 공개키 실시예에서 상기 별도 생성된 사용자의 공개키를 사용자의 전자지갑 주소와 연계 저장하기 위해, 지정된 운영서버(200)는 사용자단말(260)과 연동하여 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키에 대응하는 사용자의 공개키를 확인하고, 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 사용자의 공개키와 사용자의 전자지갑 주소를 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 제공하는 절차를 수행하며, 상기 저장 기능부(120)는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인하고, 상기 확인된 사용자의 공개키와 전자지갑 주소를 연계하여 지정된 저장영역에 저장할 수 있다. 한편 상기 저장 기능부(120)는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인한 경우 지정된 저장영역(예컨대, 암호화폐 예치정보를 저장하는 저장영역)에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장되어 있는지 확인할 수 있으며, 상기 지정된 저장영역에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장된 경우 상기 지정된 저장영역에 상기 확인된 사용자의 공개키와 전자지갑 주소를 연계 저장할 수 있다.
본 발명의 실시 방법에 따르면, 상기 제1 또는 제2 공개키 실시예에 따라 스마트 컨트랙트(110)에 사용자의 공개키가 기록된 후에 상기 사용자의 공개키를 이용하는 인증 절차를 거쳐 상기 스마트 컨트랙트(110)에 예치된 암호화폐 중 지정된 암호화폐 단위를 인출하는 절차를 수행할 수 있다.
상기 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로 인출 시, 지정된 운영서버(200)는 암호화폐 인출을 위한 본인 인증 절차를 수행하여 인증된 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 인증된 사용자의 개인키를 통해 생성된 인증정보를 확인하고, 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 생성된 인증정보를 포함하는 인출정보를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 전달하기 위한 절차를 수행하며, 상기 확인 기능부(125)는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인할 수 있다.
본 발명의 실시 방법에 따르면, 상기 운영서버(200)는 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 블록체인 네트워크(100) 상의 기 설정된 특정 노드장치(105)를 통해 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 상기 인출정보를 포함하는 지정된 구조의 메시지를 방송하도록 처리하는 절차를 수행할 수 있는데, 상기 확인 기능부(125)는 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 블록체인 네트워크(100) 상의 기 설정된 특정 노드장치(105)를 통해 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 방송되는 지정된 구조의 메시지를 통해 상기 인출정보를 확인할 수 있다.
본 발명의 실시 방법에 따르면, 상기 인출정보는 암호화폐가 인출될 하나의 전자지갑 주소와 하나의 암호화폐 단위 및 하나의 인증정보를 포함할 수 있으며, 실시 방법에 따라 상기 인출정보는 암호화폐가 인출될 i(i≥1)개의 전자지갑 주소와 i개의 암호화폐 단위 및 i개의 각 사용자의 개인키를 통해 각기 생성된 i개의 인증정보를 포함할 수 있다. 이 경우 상기 인출 기능부(135)는, 지정된 인증 절차의 인증 성공 시 상기 i개의 전자지갑 주소로 제각기 대응하는 i개의 암호화폐 단위를 인출하는 기능을 수행할 수 있다.
본 발명의 실시 방법에 따르면, 상기 스마트 컨트랙트 동작 절차는 상기 운영서버(200)가 특정 노드장치(105)의 개인키를 이용하여 상기 스마트 컨트랙트(110)의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 방송하도록 처리하는 절차를 포함할 수 있으며, 상기 특정 노드장치(105)는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 지정된 운영서버(200)와 연동하는 노드장치(105), 또는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 지정된 운영서버(200)가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치(105)를 포함할 수 있다.
본 발명의 실시 방법에 따르면, 상기 스마트 컨트랙트 동작 절차를 위한 메시지는 상기 인출정보(예컨대, 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보 등)를 지정된 구조에 포함되는 파라미터로 포함하며, 상기 메시지를 다른 노드장치(105)로 방송하는 특정 노드장치(105)의 지정된 주소를 포함할 수 있다. 한편 실시 방법에 따라 상기 메시지는 상기 블록체인 네트워크(100) 상의 노드장치(105)에 등록된 상기 스마트 컨트랙트(110)의 지정된 주소와 상기 스마트 컨트랙트(110) 상의 확인 기능부(125)에 대응하는 함수의 주소 중 적어도 하나의 주소를 포함할 수 있다.
상기 확인 기능부(125)를 통해 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인한 경우, 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행한다.
본 발명의 실시 방법에 따르면, 상기 확인 기능부(125)를 통해 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인한 경우, 상기 인증 기능부(130)는 상기 인출정보에 포함된 사용자의 전자지갑 주소가 지정된 저장영역에 저장되어 있는지 인증하는 인증 절차를 수행할 수 있다. 여기서, 상기 지정된 저장영역은 지정된 암호화폐를 예치한 사용자의 전자지갑 주소를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 공개키를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계된 사용자의 공개키를 저장하는 저장영역 중 적어도 하나의 저장영역을 포함할 수 있다.
한편 상기 인출정보에 포함된 사용자의 전자지갑 주소가 지정된 저장영역에 저장된 경우, 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제1 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있는데, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제2 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있으며, 이 경우 상기 인출정보는 상기 운영서버(200)와 스마트 컨트랙드 사이에 상기 암호화된 문자열이나 바이너리코드를 동기화하기 위한 인덱스를 더 포함할 수있다. 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 상기 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 상기 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제3 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제4 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제5 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제6 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록(예컨대, 현재 시점에 기 체인 연결되어 불변의 기록으로 남은 블록 중 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 블록) 내 특정 저장위치(예컨대, 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 저장위치)를 동기화하여 획득하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 블록연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제7 인증정보 실시예에 따르면, 상기 인증정보는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태의 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태로 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보의 유효성을 인증하는 인증 절차를 수행할 수 있으며, 이에 의해 본 발명이 한정되지 아니한다.
상기 인증 기능부(130)를 통해 수행된 지정된 인증 절차의 인증이 성공한 경우, 상기 저장 기능부(120)는 지정된 암화화폐를 인출받은 사용자의 전자지갑 주소와 상기 인출된 암호화폐 단위를 포함하는 암호화폐 인출정보를 지정된 저장영역에 저장할 수 있다. 여기서, 상기 암호화폐 인출정보를 저장하는 지정된 저장영역은 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 인출과 관련된 정보를 저장하기 위해 설정된 저장영역을 포함할 수 있다.
도면2는 본 발명의 실시 방법에 따라 블록체인 기반 스마트 컨트랙트(110)를 이용한 암호화폐 거래 플랫폼을 제공하는 시스템의 구성을 도시한 도면이다.
보다 상세하게 본 도면2는 지정된 블록체인 네트워크(100) 상에 구비된 M(M≥2)개의 노드장치(105)를 통해 탈중앙화 형태로 실행되며 상기 블록체인 네트워크(100) 상의 유효한 전자지갑을 통해 암호화폐를 예치 가능하지만 미리 코딩된 규칙이나 기능에 의하지 아니하고는 상기 예치된 암호화폐를 임의로 인출하는 것이 불가한 스마트 컨트랙트(110)(Smart Contract)를 통해 암호화폐 거래의 매개체로 이용하거나 전자지갑 간 암호화폐 거래의 에스크로우 매체로 이용하여 암호화폐 거래를 제공하는 시스템의 구성을 도시한 것으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면2를 참조 및/또는 변형하여 상기 시스템의 구성에 대한 다양한 실시 방법(예컨대, 일부 구성부가 생략되거나, 또는 세분화되거나, 또는 합쳐진 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면2에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
본 발명의 시스템은, 블록체인 기반의 암호화폐를 거래할 사용자가 이용하는 사용자단말(260)과, 스마트 컨트랙트(110)(Smart Contract)를 지원하는 B(B≥1)개의 블록체인 네트워크(100) 상에 각기 구비된 각 블록체인 네트워크(100) 별 M(M≥2)개의 노드장치(105)와, 상기 블록체인 네트워크(100) 상에 구비된 노드장치(105)를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 본 발명을 위한 하나 이상의 지정된 기능(Function)을 구현하는 스마트 컨트랙트(110)를 상기 블록체인 네트워크(100) 상의 M개의 노드장치(105)에 등록 또는 배포한 후 상기 스마트 컨트랙트(110)와 연동하는 기능 구성부를 구비한 운영서버(200)를 포함하며, 실시 방법에 따라 상기 스마트 컨트랙트(110)에 예치되는 암호화폐를 이용하여 지정된 블록체인 기반 서비스를 제공하는 서비스서버(250)를 더 포함할 수 있다. 한편 상기 운영서버(200)는 독립적으로 동작하는 별동의 서버 형태로 구현되거나, 지정된 블록체인 기반 서비스를 제공하는 서비스서버(250)와 연동하는 별도의 서버 형태로 구현되거나, 또는 지정된 블록체인 기반 서비스를 제공하는 서비스서버(250)의 내부 소프트웨어 형태로 구현되는 것이 모두 가능하며, 상기 운영서버(200)를 구현하는 실시예나 상기 운영서버(200)의 물리적 서버 구성 또는 명칭에 의해 본 발명이 한정되지 아니한다. 이하, 편의상 본 도면2는 상기 운영서버(200)를 상기 별도의 서버 형태로 도시하여 본 발명의 특징을 설명하기로 한다.
상기 사용자단말(260)은 블록체인 기반의 암호화폐를 거래할 사용자가 이용하는 단말기의 총칭으로서, 유성망에 연결된 컴퓨터, 노트북 등의 유선단말과, 무선망에 연결된 휴대폰, 스마트폰, 태블릿PC, 노트북 등의 무선단말을 중 적어도 하나를 포함한다. 바람직하게, 상기 사용자단말(260)은 하나 이상의 암호화폐 거래를 제공하거나 및/또는 하나 이상의 암호화폐를 이용하여 지정된 블록체인 기반 서비스를 제공하기 위한 앱(Application)이 설치될 수 있으며, 실시 방법에 따라 일부의 구성은 웹 방식으로 구현될 수도 있다. 이하, 별도의 언급이 없더라도 상기 사용자단말(260)을 주체로 하여 설명하는 기능은 상기 사용자단말(260)에 설치된 앱이나 웹 방식을 통해 구현되는 것임을 명백하게 밝혀두는 바이다.
상기 서비스서버(250)는 사용자단말(260)로 암호화폐 거래나 지정된 블록체인 기반 서비스를 제공하기 위해 구비되는 서버의 총칭으로서, 각각의 거래 대상 암호화폐를 구현하는 B(B≥1)개의 블록체인 네트워크(100) 상에 구비된 각각의 노트장치와 연동할 수 있다. 예를들어, 상기 서비스서버(250)는 사용자단말(260)로 매도/매입 기반의 암호화폐 거래를 제공하기 위한 암호화폐 거래소 서비스를 제공할 수 있다. 또는 상기 서비스서버(250)는 각 사용자의 전자지갑 간 암호화폐 거래를 위한 에스크로우 서비스를 제공할 수 있다. 또는 상기 서비스서버(250)는 암호화폐를 이용한 결제를 구현하는 암호화폐 결제 서비스를 제공할 수 있다.
상기 운영서버(200)는 지정된 블록체인 네트워크(100) 상의 M개의 노드장치(105)에 등록 또는 배포된 지정된 스마트 컨트랙트(110)와 연동하는 기능 구성부를 구비한 서버의 총칭으로서, 바람직하게 도면1에 도시된 스마트 컨트랙트(110)를 지정된 블록체인 네트워크(100) 상의 M개의 노드장치(105)에 등록 또는 배포하는 기능과, 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 사용자의 공개키를 기록하기 위한 절차를 수행하는 기능과, 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로 인출 시, 암호화폐 인출을 위한 본인 인증 절차를 수행하여 인증된 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 인증된 사용자의 개인키를 통해 생성된 인증정보를 확인하고, 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 생성된 인증정보를 포함하는 인출정보를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 전달하기 위한 절차를 수행할 수 있다.
본 발명의 실시 방법에 따르면, 상기 사용자단말(260)은 운영서버(200)나 서비스서버(250)의 회원으로 가입할 사용자정보를 입력하여 상기 운영서버(200)(또는 서비스서버(250))로 제공하며, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자정보의 적어도 일부 정보를 근거로 하나 이상의 사용자단말(260)을 통해 사용자에 대한 본인 인증 절차를 수행하여 인증된 사용자정보를 지정된 데이터베이스에 저장하여 관리한다.
한편 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자에 대한 본인 인증의 결과를 근거로 지정된 금융사서버(도시생략)와 연동하여 암호화폐 거래를 위한 사용자 명의의 거래계좌(예컨대, 암호화폐 거래를 위한 가상계좌 또는 실시 방법에 따라 실계좌 가능)를 개설하는 절차를 수행하며, 상기 사용자 명의의 거래계좌 개설 시 상기 사용자정보와 상기 개설된 사용자 명의의 거래계좌 정보를 연계하여 지정된 데이터베이스에 저장하여 관리한다.
본 발명의 실시 방법에 따르면, 지정된 블록체인 네트워크(100) 상에 상기 회원 가입한 사용자의 암호화폐 보관 내지 거래를 위한 사용자의 전자지갑이 생성되지 않은 경우, 상기 사용자단말(260)은 저정된 절차에 따라 상기 블록체인 네트워크(100) 상에 사용자의 전자지갑을 생성하는 과정을 수행할 수 있으며, 상기 사용자의 전자지갑을 생성하는 과정과 연동하여 상기 사용자의 전자지갑에 대응하는 공개키와 개인키의 키 쌍이 생성될 수 있다. 바람직하게, 상기 사용자단말(260)은 상기 블록체인 네트워크(100)나 상기 운영서버(200)(또는 서비스서버(250))를 통해 상기 생성된 공개키를 공개하되, 상기 개인키를 안전한 저장용 매체나 네트워크와 분리된 저장장치에 안전하게 보관하는 것이 바람직하다.
상기 사용자단말(260)을 통해 블록체인 네트워크(100) 상에 유효하게 동작하는 유효한 사용자의 전자지갑이 생성되거나 또는 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑이 확인되면, 상기 사용자단말(260)은 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑 주소를 운영서버(200)(또는 서비스서버(250))로 전송하며, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자단말(260)을 통해 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑 주소를 확인한다. 한편 실시 방법에 따라 상기 블록체인 네트워크(100) 상에 사용자의 전자지갑을 생성하는 과정은 상기 운영서버(200)(또는 서비스서버(250))의 개입을 통해 수행될 수 있으며, 이 경우 상기 운영서버(200)(또는 서비스서버(250))는 상기 개입을 통해 생성된 사용자의 전자지갑 주소를 확인할 수 있다.
본 발명의 실시 방법에 따르면, 상기 운영서버(200)(또는 서비스서버(250))는 상기 확인된 사용자의 전자지갑 주소에 대한 유효성을 검증하는 절차를 수행할 수 있다. 예를들어, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자단말(260)을 통해 확인된 사용자의 전자지갑 주소에 대응하는 사용자의 전자지갑에 예치된 소정의 암호화폐를 상기 스마트 컨트랙트(110)로 예치 처리를 요청 및/또는 상기 예치 처리를 위해 지정된 절차를 수행하거나, 또는 상기 확인된 사용자의 전자지갑 주소에 대응하는 사용자의 전자지갑으로 소정의 암호화폐를 지급한 후 이를 상기 스마트 컨트랙트(110)로 예치 처리를 요청 및/또는 상기 예치 처리를 위해 지정된 절차를 수행할 수 있으며, 상기 스마트 컨트랙트(110)로 소정의 암호화폐를 예치한 사용자의 전자지갑에 대응하는 전자지갑 주소를 상기 블록체인 네트워크(100) 상의 유효한 전자지갑으로 검증할 있다.
상기 운영서버(200)(또는 서비스서버(250))는 상기 검증된 사용자의 전자지갑 주소를 상기 사용자정보와 연계하여 데이터베이스에 저장할 수 있다. 한편 블록체인 네트워크(100) 상에 생성된 전자지갑은 소유자를 식별 불가한 상태이지만, 상기 전자지갑 주소를 상기 운영서버(200)(또는 서비스서버(250))의 사용자정보와 연계 저장함으로써, 상기 전자지갑 주소가 상기 사용자의 명의로 실명 확인된 것으로 간주할 수 있다.
도면2를 참조하면, 상기 운영서버(200)는, 스마트 컨트랙트(110)를 지원하며 지정된 블록체인 알고리즘에 따라 동작하는 B(B≥1)개의 블록체인 네트워크(100)와 연동하는 블록체인 연동부(205)를 구비한다.
상기 블록체인 연동부(205)는 스마트 컨트랙트(110)를 지원하며 지정된 블록체인 알고리즘에 따라 동작하는 B(B≥1)개의 블록체인 네트워크(100)와 연동하며, 각 블록체인 네트워크(100)는 분산형으로 해당 블록체인 네트워크(100)를 구현하는 M(M≥2)개의 노드장치(105)가 구비된다. 상기 블록체인 연동부(205)는 각 블록체인 네트워크(100)에 구비된 적어도 하나의 특정 노드장치(105)(예컨대, 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)와 연동하는 노드장치(105), 또는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치(105))를 통해 각 블록체인 네트워크(100) 상에 구비된 M개의 노드장치(105)와 연동할 수 있다.
도면2를 참조하면, 상기 운영서버(200)는, 지정된 블록체인 네트워크(100) 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트(110)로 예치받는 예치 기능부(115)와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 저장 기능부(120)와, 스마트 컨트랙트(110)에 예치된 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 확인 기능부(125)와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부(130)와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 인출 기능부(135)를 구현하는 프로그램 코드를 포함하는 스마트 컨트랙트(110)를 상기 블록체인 네트워크(100) 상에 구비된 M(M≥2)개의 노드장치(105)에 등록하는 절차를 수행하는 컨트랙트 등록부(210)를 구비한다.
지정된 등록단말(도시생략)에서 지정된 블록체인 네트워크(100) 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트(110)로 예치받는 예치 기능부(115)와, 지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 저장 기능부(120)와, 스마트 컨트랙트(110)에 예치된 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 확인 기능부(125)와, 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부(130)와, 상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 인출 기능부(135)를 구현하는 프로그램 코드를 포함하는 스마트 컨트랙트(110)를 생성하고 지정된 검증 절차를 거쳐 검증 후 등록 요청하면, 상기 컨트랙트 등록부(210)는 상기 등록단말로부터 상기 스마트 컨트랙트(110)를 수신하고, 상기 블록체인 연동부(205)와 연동하여 상기 블록체인 네트워크(100) 상에 구비된 M개의 노드장치(105)에 상기 확인된 스마트 컨트랙트(110)를 배포하여 분산 등록하는 절차를 수행한다. 상기 블록체인 네트워크(100) 상의 노드장치(105)에 등록된 스마트 컨트랙트(110)는 해당 스마트 컨트랙트(110) 내에 코딩된 규칙에 의하지 아니하고는 수정되지 않으며, M개의 노드장치(105)를 이용한 분산 저장에 의해 위변조되지 않는다.
도면2를 참조하면, 상기 운영서버(200)는, 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 사용자의 공개키를 기록하는 절차와 상기 스마트 컨트랙트(110)에 기록된 사용자의 공개키를 확인하는 절차 중 적어도 하나의 절차를 수행하는 공개키 처리부(215)를 구비하며, 사용자에 대한 지정된 본인 인증 절차를 수행하는 사용자 인증부(220)를 구비할 수 있다.
본 발명의 제1 공개키 실시예에 따르면, 상기 사용자의 공개키는 블록체인 네트워크(100) 상에 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 바람직하게, 블록체인 네트워크(100) 상에 유효한 전자지갑을 생성하는 과정에서 지정된 절차에 따라 지정된 씨드를 이용하여 공개키와 개인키의 키 쌍이 생성될 수 있는데, 상기 사용자의 공개키는 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키를 포함할 수 있다. 한편 상기 사용자의 전자지갑을 생성하는 과정을 통해 생성된 공개키는 상기 사용자의 전자지갑 주소로 이용될 수 있는데, 이 경우 상기 사용자의 공개키는 상기 사용자의 전자지갑에 대응하는 공개키라고 할 수 있으며, 상기 저장 기능부(120)는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 포함할 수 있다.
본 제1 공개키 실시예에서 사용자단말(260)을 통해 상기 블록체인 네트워크(100) 상의 사용자의 전자지갑에 보유된 지정된 암호화폐 단위가 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 경우, 상기 저장 기능부(120)는 상기 스마트 컨트랙트(110)에 상기 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 저장하는 기능을 포함하며, 이에 의해 상기 사용자의 전자지갑 주소에 대응하는 사용자의 공개키는 지정된 저장영역에 저장된다. 바람직하게, 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 예치와 관련된 정보를 저장하기 위해 설정된 저장영역에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다. 한편 실시 방법에 따라 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 암호화폐의 거래를 저장하는 저장영역(예컨대, 암호화폐의 거래블록을 저장하는 저장영역)에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다. 한편 상기 예치된 암호화폐 단위는 상기 인증된 사용자의 암호화폐 거래를 위해 사용자의 전자지갑으로부터 상기 스마트 컨트랙트(110)로 예치되는 암호화폐 단위, 또는 상기 스마트 컨트랙트(110)를 통해 상기 사용자의 전자지갑 주소를 저장 관리하기 위해 지정된 절차에 따라 상기 인증된 사용자의 전자지갑으로 지급된 후 상기 사용자의 전자지갑으로부터 상기 스마트 컨트랙트(110)로 예치되는 암호화폐 단위를 포함할 수 있다.
한편 본 제1 공개키 실시예에서 사용자단말(260)을 통해 상기 블록체인 네트워크(100) 상의 사용자의 전자지갑에 보유된 지정된 암호화폐 단위가 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 경우, 상기 공개키 처리부(215)는 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)의 지정된 저장영역을 참조하여 상기 스마트 컨트랙트(110)에 상기 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 확인하고, 상기 스마트 컨트랙트(110)에 상기 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 데이터베이스에 저장하여 관리할 수 있다.
본 발명의 실시 방법에 따르면, 상기 공개키 처리부(215)는 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 암호화폐 예치정보의 전자지갑 주소에 대응하는 사용자, 바람직하게 본 제1 공개키 실시예에서 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 사용자의 공개키에 대응하는 사용자를 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자로 설정하여 사용자정보에 저장할 수 있다. 한편 이 경우 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 사용자의 전자지갑으로 인출하기 위해 수행되는 본인 인증 절차는 상기 암호화폐를 인출할 사용자가 상기 스마트 컨트랙트(110)의 지정된 저장영역에 본인의 공개키가 저장되어 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자인지 인증하는 절차를 포함할 수 있다.
본 발명의 제2 공개키 실시예에 따르면, 상기 사용자의 공개키는 상기 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함할 수 있다. 예를들어, 상기 사용자의 공개키는 사용자에게 발급된 인증서의 공개키를 포함하거나, 또는 블록체인 네트워크(100) 상에 상기 사용자의 전자지갑을 생성하기 전이나 후에 상기 사용자의 전자지갑에 대응하는 공기키 이욍에 별도로 생성된 공개키와 개인키의 키 쌍 중 공개키를 포함하거나, 또는 상기 사용자의 회원 가입 과정과 연동하여 생성된 공개키와 개인키의 키 쌍 중 공개키를 포함할 수 있다.
한편 본 제2 공개키 실시예에서 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 공개키에 대응하는 사용자의 공개키는 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계되어 지정된 저장영역에 저장될 수 있으며, 이 경우 상기 사용자의 개인키는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 연계하여 지정된 저장영역에 저장함에 의해 상기 사용자의 전자지갑과 연계되는 것으로 간주할 수 있다.
본 제2 공개키 실시예에서 상기 사용자 인증부(220)는 사용자단말(260)을 통해 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키에 대응하는 사용자의 공개키를 등록하기 위해 접속한 사용자에 대하여 지정된 본인 인증 절차를 수행한다. 여기서, 상기 본인 인증 절차는 회원 가입 시 등록된 ID/PW를 인증하는 인증 절차, 공인인증서를 이용하는 인증 절차, OTP(One Time Password)를 이용하는 인증 절차, SMS/MMS 등의 무선메시지를 이용하는 인증 절차, 전화통화나 ARS를 이용하는 인증 절차, 사용자 무선단말에 설치된 앱을 이용하는 인증 절차, 금융사나 통신사 등의 지정된 기관을 이용하는 인증 절차, 지정된 실명인증기관을 인증 절차 중 지정된 적어도 하나 또는 둘 이상을 조합한 인증 절차를 포함할 수 있으며, 상기 본인 인증 절차의 종류나 방식에 의해 본 발명이 한정되지 아니한다.
한편 본 제2 공개키 실시예에서 사용자단말(260)을 통해 상기 블록체인 네트워크(100) 상의 사용자의 전자지갑에 보유된 지정된 암호화폐 단위가 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 경우, 상기 저장 기능부(120)는 상기 스마트 컨트랙트(110)에 상기 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 저장한다. 바람직하게, 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 예치와 관련된 정보를 저장하기 위해 설정된 저장영역에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다. 한편 실시 방법에 따라 상기 저장 기능부(120)는 각 노드장치(105)의 저장영역 중 암호화폐의 거래를 저장하는 저장영역(예컨대, 암호화폐의 거래블록을 저장하는 저장영역)에 상기 암호화폐 예치정보를 저장하여 관리할 수 있다. 한편 상기 예치된 암호화폐 단위는 상기 인증된 사용자의 암호화폐 거래를 위해 사용자의 전자지갑으로부터 상기 스마트 컨트랙트(110)로 예치되는 암호화폐 단위, 또는 상기 스마트 컨트랙트(110)를 통해 상기 사용자의 전자지갑 주소를 저장 관리하기 위해 지정된 절차에 따라 상기 인증된 사용자의 전자지갑으로 지급된 후 상기 사용자의 전자지갑으로부터 상기 스마트 컨트랙트(110)로 예치되는 암호화폐 단위를 포함할 수 있다.
한편 본 제2 공개키 실시예에서 사용자단말(260)을 통해 상기 블록체인 네트워크(100) 상의 사용자의 전자지갑에 보유된 지정된 암호화폐 단위가 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 경우, 상기 공개키 처리부(215)는 사용자단말(260)과 연동하여 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키에 대응하는 사용자의 공개키를 확인하고, 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 사용자의 공개키와 사용자의 전자지갑 주소를 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 제공하는 절차를 수행하며, 상기 저장 기능부(120)는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인하고, 상기 확인된 사용자의 공개키와 전자지갑 주소를 연계하여 지정된 저장영역에 저장할 수 있다. 한편 상기 저장 기능부(120)는 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인한 경우 지정된 저장영역(예컨대, 암호화폐 예치정보를 저장하는 저장영역)에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장되어 있는지 확인할 수 있으며, 상기 지정된 저장영역에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장된 경우 상기 지정된 저장영역에 상기 확인된 사용자의 공개키와 전자지갑 주소를 연계 저장할 수 있다.
본 발명의 실시 방법에 따르면, 상기 공개키 처리부(215)는 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 암호화폐 예치정보의 전자지갑 주소에 대응하거나 및/또는 상기 암호화폐 예치정보의 전자지갑 주소와 연계 저장된 공개키에 대응하는 사용자, 바람직하게 본 제2 공개키 실시예에서 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 사용자의 공개키에 대응하는 사용자를 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자로 설정하여 사용자정보에 저장할 수 있다. 한편 이 경우 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 사용자의 전자지갑으로 인출하기 위해 수행되는 본인 인증 절차는 상기 암호화폐를 인출할 사용자가 상기 스마트 컨트랙트(110)의 지정된 저장영역에 본인의 공개키가 저장되어 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자인지 인증하는 절차를 포함할 수 있다.
한편 본 발명의 실시 방법에 따르면, 상기 제1 또는 제2 공개키 실시예에 따라 스마트 컨트랙트(110)에 사용자의 공개키가 기록된 후에 상기 사용자의 공개키를 이용하는 인증 절차를 거쳐 상기 스마트 컨트랙트(110)에 예치된 암호화폐 중 지정된 암호화폐 단위를 인출하는 절차를 수행할 수 있다.
한편 스마트 컨트랙트(110)에 예치되거나 인출되는 암호화폐는 지정된 블록체인 네트워크(100)를 통해 발행되는 암호코인 형태의 암호화폐, 지정된 암호코인을 발행하는 지정된 블록체인 네트워크(100)를 기반으로 구현되는 암호토큰 형태의 암호화폐 중 적어도 하나를 포함할 수 있다.
도면2를 참조하면, 상기 운영서버(200)는, 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로 인출 시, 사용자단말(260)을 통해 접속한 사용자에 대하여 암호화폐의 인출을 위해 지정된 본인 인증 절차를 수행하는 사용자 인증부(220)와, 상기 사용자단말(260)을 통해 상기 암호화폐가 인출될 사용자의 전자지갑 주소와 암호화폐 단위를 수신하거나 확인하는 인출요청 확인부(225)와, 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 생성된 인증정보를 수신하거나 확인하는 인증정보 확인부(230)와, 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 생성된 인증정보를 포함하는 인출정보를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 전달하기 위한 절차를 수행하는 인출 절차부(235)를 포함한다.
상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 암호화폐를 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑으로 인출 시, 상기 사용자 인증부(220)는 사용자단말(260)을 통해 접속한 사용자에 대하여 암호화폐의 인출을 위해 지정된 본인 인증 절차를 수행한다. 여기서, 상기 본인 인증 절차는 회원 가입 시 등록된 ID/PW를 인증하는 인증 절차, 공인인증서를 이용하는 인증 절차, OTP(One Time Password)를 이용하는 인증 절차, SMS/MMS 등의 무선메시지를 이용하는 인증 절차, 전화통화나 ARS를 이용하는 인증 절차, 사용자 무선단말에 설치된 앱을 이용하는 인증 절차, 금융사나 통신사 등의 지정된 기관을 이용하는 인증 절차, 지정된 실명인증기관을 인증 절차 중 지정된 적어도 하나 또는 둘 이상을 조합한 인증 절차를 포함할 수 있으며, 상기 본인 인증 절차의 종류나 방식에 의해 본 발명이 한정되지 아니한다.
한편 상기 공개키 처리부(215)를 통해 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 사용자의 공개키에 대응하는 사용자를 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자로 설정하여 저장한 경우, 상기 사용자 인증부(220)는 상기 암호화폐를 인출할 사용자가 상기 스마트 컨트랙트(110)의 지정된 저장영역에 본인의 공개키가 저장되어 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출 가능한 사용자인지 인증하는 인증 절차를 더 수행할 수 있으며, 이 경우 상기 스마트 컨트랙트(110)에 예치된 지정도니 암호화폐를 인출 가능한 사용자는 상기 스마트 컨트랙트(110)에 사용자의 공개키를 저장한 이력이 있는 사용자로만 제한될 수 있다.
한편 상기 사용자 인증부(220)를 통한 사용자의 본인 인증 전 또는 중 또는 후의 지정된 일 시점에, 상기 인출요청 확인부(225)는 상기 사용자단말(260)을 통해 상기 암호화폐가 인출될 사용자의 전자지갑 주소와 암호화폐 단위를 수신하거나 또는 상기 사용자단말(260)을 통해 기 수신된 사용자의 전자지갑 주소와 암호화폐 단위를 확인한다.
한편 상기 사용자 인증부(220)를 통해 상기 사용자의 본인 인증이 확인된 경우, 상기 인증정보 확인부(230)는 상기 사용자단말(260)로부터 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 생성된 인증정보를 수신하거나 또는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 운영서버(200) 측에서 생성한 인증정보를 확인할 수 있다.
본 발명의 제1 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있는데, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다.
본 발명의 제2 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다. 한편 이 경우 상기 인출정보는 상기 운영서버(200)와 스마트 컨트랙드 사이에 상기 암호화된 문자열이나 바이너리코드를 동기화하기 위한 인덱스를 더 포함할 수있다.
본 발명의 제3 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다.
본 발명의 제4 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다.
본 발명의 제5 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다.
본 발명의 제6 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록(예컨대, 현재 시점에 기 체인 연결되어 불변의 기록으로 남은 블록 중 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 블록) 내 특정 저장위치(예컨대, 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 저장위치)를 동기화하여 획득하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 블록연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 상기 운영서버(200)와 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터를 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 수신하거나 확인할 수 있다.
본 발명의 제7 인증정보 실시예에 따르면, 상기 인증정보는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태의 인증정보를 포함할 수 있으며, 이 경우 상기 인증정보 확인부(230)는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태로 상기 본인 인증을 통해 인증된 사용자의 개인키를 통해 생성된 인증정보를 수신하거나 확인할 수 있다.
한편 발명의 실시 방법에 따르면, 상기 사용자 인증부(220)는 각 사용자단말(260)을 통해 접속한 복수의 사용자 중 암호화폐의 인출을 위해 접속한 적어도 i(i≥1)명의 사용자에 대하여 암호화폐의 인출을 위해 지정된 본인 인증 절차를 수행할 수 있다 이 경우 상기 i명의 사용자의 본인 인증 시, 상기 인출요청 확인부(225)는 상기 사용자단말(260)을 통해 상기 암호화폐가 인출될 i개의 사용자의 전자지갑 주소와 i개의 암호화폐 단위를 수신하거나 확인하고, 상기 인증정보 확인부(230)는 상기 본인 인증을 통해 인증된 i개의 사용자의 개인키를 통해 제각기 생성된 i개의 인증정보를 수신하거나 확인할 수 있다. 이 경우 상기 인증정보는 i(i≥1)개의 사용자의 개인키를 이용하여 상기 운영서버(200)와 상기 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터를 기 설정된 암호 방식으로 암호화하여 생성한 i개의 인증정보를 포함할 수 있다.
상기 인출 절차부(235)는 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 생성된 인증정보를 포함하는 인출정보를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 전달하기 위한 절차를 수행한다.
본 발명의 실시 방법에 따르면, 상기 인출 절차부(235)는 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 블록체인 네트워크(100) 상의 기 설정된 특정 노드장치(105)를 통해 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 상기 인출정보를 포함하는 지정된 구조의 메시지를 방송하도록 처리하는 절차를 수행할 수 있다. 여기서, 상기 스마트 컨트랙트 동작 절차는 상기 특정 노드장치(105)의 개인키를 이용하여 상기 스마트 컨트랙트(110)의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 방송하는 절차를 포함할 수 있으며, 상기 특정 노드장치(105)는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)와 연동하는 노드장치(105), 또는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치(105)를 포함할 수 있다.
본 발명의 실시 방법에 따르면, 상기 스마트 컨트랙트 동작 절차를 위한 메시지는 상기 인출정보(예컨대, 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보 등)를 지정된 구조에 포함되는 파라미터로 포함하며, 상기 메시지를 다른 노드장치(105)로 방송하는 특정 노드장치(105)의 지정된 주소를 포함할 수 있다. 한편 실시 방법에 따라 상기 메시지는 상기 블록체인 네트워크(100) 상의 노드장치(105)에 등록된 상기 스마트 컨트랙트(110)의 지정된 주소와 상기 스마트 컨트랙트(110) 상의 확인 기능부(125)에 대응하는 함수의 주소 중 적어도 하나의 주소를 포함할 수 있다.
한편 본 발명의 실시 방법에 따르면, 상기 인출정보는 암호화폐를 인출하기 위한 i(i≥1)개의 전자지갑 주소와 i개의 암호화폐 단위 및 i개의 인증정보를 포함할 수 있으며, 이 경우 상기 인출 기능부(135)는 지정된 인증 절차의 인증 성공 시 상기 i개의 전자지갑 주소로 제각기 대응하는 i개의 암호화폐 단위를 인출할 수 있다.
본 발명의 실시 방법에 따르면, 상기 인증 기능부(130)는 상기 인출정보에 포함된 사용자의 전자지갑 주소가 지정된 저장영역에 저장되어 있는지 인증하는 인증 절차를 수행할 수 있다. 여기서 상기 지정된 저장영역은 지정된 암호화폐를 예치한 사용자의 전자지갑 주소를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 공개키를 저장하는 저장영역, 지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계된 사용자의 공개키를 저장하는 저장영역 중 적어도 하나의 저장영역을 포함할 수 있다.
한편 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제1 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있는데, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제2 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함할 수 있으며, 이 경우 상기 인출정보는 상기 운영서버(200)와 스마트 컨트랙드 사이에 상기 암호화된 문자열이나 바이너리코드를 동기화하기 위한 인덱스를 더 포함할 수있다. 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 상기 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 상기 인덱스를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제3 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제4 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제5 인증정보 실시예에 따르면, 상기 인증정보는 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 거래연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제6 인증정보 실시예에 따르면, 상기 인증정보는 지정된 운영서버(200)와 상기 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록(예컨대, 현재 시점에 기 체인 연결되어 불변의 기록으로 남은 블록 중 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 블록) 내 특정 저장위치(예컨대, 운영서버(200)와 스마트 컨트랙트(110) 사이에 기 설정된 규칙에 따라 합의되는 저장위치)를 동기화하여 획득하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 블록연동 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보를 복호화하여 상기 데이터를 복원한 후 상기 복원된 데이터가 상기 운영서버(200)와 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터와 매칭되는지 인증하는 인증 절차를 수행할 수 있다. 한편 상기 인증정보가 복호화되지 않게 암호화(예컨대, 해시)되어 생성된 경우, 상기 인증 기능부(130)는 상기 사용자의 공개키를 통해 상기 운영서버(200)와 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터를 포함하는 데이터를 동일한 암호화 방식으로 암호화하여 검증정보를 생성한 후 상기 인증정보와 비교하여 매칭되는지 인증하는 인증 절차를 수행할 수 있다.
본 발명의 제7 인증정보 실시예에 따르면, 상기 인증정보는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태의 인증정보를 포함할 수 있으며, 이 경우 상기 인증 기능부(130)는 상기 제1 내지 제6 인증정보 실시예 중 적어도 둘 이상의 실시예를 적어도 부분적으로 조합한 형태로 지정된 저장영역에 저장된 상기 사용자의 공개키를 통해 상기 인증정보의 유효성을 인증하는 인증 절차를 수행할 수 있으며, 이에 의해 본 발명이 한정되지 아니한다.
한편 본 발명의 실시 방법에 따르면, 운영서버(200)가 상기 사용자 인증부(220)를 통한 사용자 본인 인증 절차를 통해 인증된 사용자의 개인키를 이용하여 생성된 인증정보를 스마트 컨트랙트(110)로 제공하면, 상기 스마트 컨트랙트(110)가 지정된 저장영역에 기 저장된 사용자의 공개키를 통해 상기 인증정보를 인증함으로써, 설령 어떤 해커가 상기 특정 노드장치(105)의 개인키를 탈취하더라도 각 사용자 별 개인키를 탈취함과 동시에 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터까지 실시간 편별하지 않는 이상 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 부정 인출할 수 없도록 한다.
상기 인증 기능부(130)를 통해 수행된 지정된 인증 절차의 인증이 성공한 경우, 상기 저장 기능부(120)는 지정된 암화화폐를 인출받은 사용자의 전자지갑 주소와 상기 인출된 암호화폐 단위를 포함하는 암호화폐 인출정보를 지정된 저장영역에 저장할 수 있다. 여기서, 상기 암호화폐 인출정보를 저장하는 지정된 저장영역은 스마트 컨트랙트(110)의 상태를 저장하는 저장영역, 또는 상기 암호화폐의 인출과 관련된 정보를 저장하기 위해 설정된 저장영역을 포함할 수 있다.
도면2를 참조하면, 상기 운영서버(200)는, 상기 블록체인 네트워크(100) 상에 구비된 노드장치(105)를 참조하여 상기 스마트 컨트랙트(110)를 통해 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위를 인출한 인출결과에 대응하는 암호화폐 인출정보를 확인하는 인출결과 확인부(240)와, 상기 암호화폐 인출정보를 확인한 경우, 상기 사용자의 전자지갑으로 상기 암호화폐 단위를 인출한 거래정보를 생성하여 지정된 데이터베이스에 동기화하여 저장하는 인출 관리부(245)를 더 포함한다.
상기 인출 기능부(135)를 통해 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위가 인출된 경우, 상기 인출결과 확인부(240)는 상기 블록체인 네트워크(100) 상에 구비된 노드장치(105)를 참조하여 상기 스마트 컨트랙트(110)를 통해 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위가 인출된 인출결과에 대응하는 암호화폐 인출정보를 확인하고, 상기 확인된 암호화폐 인출정보를 판독하여 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위가 인출된 인출결과를 확인할 수 있다.
만약 상기 인출결과 확인부(240)를 통해 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위가 인출된 인출결과를 확인한 경우, 상기 인출 관리부(245)는 상기 사용자의 전자지갑으로 상기 암호화폐 단위가 인출된 인출결과에 대응하는 거래정보를 생성하여 지정된 데이터베이스에 동기화하여 저장할 수 있다.
도면3은 본 발명의 실시 방법에 따라 블록체인 네트워크(100)의 노드장치(105)에 스마트 컨트랙트(110)를 등록하는 과정을 도시한 도면이다.
보다 상세하게 본 도면3은 지정된 블록체인 네트워크(100)의 노드장치(105)에 스마트 컨트랙트(110)를 등록하는 과정의 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면3을 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면3에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면3을 참조하면, 운영서버(200)는 지정된 블록체인 네트워크(100)의 노드장치(105)에 등록할 스마트 컨트랙트(110)를 확인하고(300), 상기 스마트 컨트랙트(110)를 지원하는 지정된 블록체인 네트워크(100) 상에 구비된 M개의 노드장치(105)에 상기 스마트 컨트랙트(110)를 등록하는 등록 절차를 수행하며(305), 상기 블록체인 네트워크(100) 상의 노드장치(105)는 상기 스마트 컨트랙트(110)를 제공받아 지정된 저장영역에 등록하는 절차를 수행한다(310).
도면4는 본 발명의 실시 방법에 따른 암호화폐 거래를 위한 정보 등록 과정을 도시한 도면이다.
보다 상세하게 본 도면4는 사용자단말(260)을 통해 운영서버(200)(또는 서비스서버(250))에 사용자정보와 사요자의 전자지갑 주소를 등록하는 과정의 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면4를 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면4에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면4를 참조하면, 사용자단말(260)은 운영서버(200)(또는 서비스서버(250))에 회원으로 가입할 사용자정보를 입력받고(400), 상기 운영서버(200)(또는 서비스서버(250))로 상기 사용자정보를 등록 요청한다(405).
상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자정보를 수신하고(410), 상기 사용자정보를 근거로 적어도 하나의 본인 인증 절차를 수행한다(415). 만약 상기 사용자의 본인 인증을 실패한 경우, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자단말(260)을 통해 사용자의 본인 인증 오류를 출력한다(420).
한편 상기 사용자의 본인 인증을 성공한 경우, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자정보를 지정된 데이터베이스에 저장하고(425), 상기 사용자정보의 등록 결과를 사용자단말(260)로 제공하며(ㅌ30), 상기 사용자단말(260)은 상기 사용자정보의 등록 결과를 수신/출력한다(435).
한편 상기 사용자단말(260)은 지정된 블록체인 네트워크(100) 상에서 유효 동작하는 유효한 사용자의 전자지갑을 생성하는 절차를 수행하거나(440), 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑 주소를 확인하고(440), 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑 주소를 등록 요청한다(445). 상기 운영서버(200)(또는 서비스서버(250))는 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑 주소를 수신하고(450), 상기 사용자의 전자지갑 주소에 대한 유효성을 검증하는 절차를 수행한다(455).
만약 상기 등록 요청된 사용자의 전자지갑 주소에 대한 유효성이 검증되면, 상기 운영서버(200)(또는 서비스서버(250))는 상기 사용자의 전자지갑 주소를 상기 사용자정보와 연계하여 저장하고(460), 상기 사용자의 전자지갑 주소의 등록 결과를 사용자단말(260)로 제공하며(465), 상기 사용자단말(260)은 상기 사용자의 전자지갑 주소의 등록 결과를 수신/출력한다(470).
도면5는 본 발명의 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트(110)에 기록하는 과정을 도시한 도면이다.
보다 상세하게 본 도면5는 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑에 보유된 암호화폐 단위를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치하는 과정을 통해 사용자의 공개키를 스마트 컨트랙트(110)에 기록하는 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면5를 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면5에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면5를 참조하면, 사용자단말(260)은 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 지정된 암호화폐 단위를 예치하기 위해 상기 스마트 컨트랙트(110)의 컨트랙트 주소를 확인하고(500), 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑에 대응하는 개인키를 이용하여 상기 사용자의 전자지갑에 예치된 지정된 암호화폐 단위를 상기 컨트랙트 주소에 대응하는 스마트 컨트랙트(110)로 예치하는 절차를 수행한다(505). 예를들어, 상기 사용자단말(260)은 상기 사용자의 전자지갑에 대응하는 개인키를 통해 상기 사용자의 전자지갑에 예치된 지정된 암호화폐 단위를 상기 컨트랙트 주소에 대응하는 스마트 컨트랙트(110)로 예치하는 거래내역을 생성하여 지정된 경로를 통해 상기 블록체인 네트워크(100) 상의 노드장치(105)로 방송할 수 있다.
상기 블록체인 네트워크(100) 상의 노드장치(105)는 상기 블록체인 네트워크(100) 상에 유효 생성된 사용자의 전자지갑에 보유된 암호화폐 단위를 상기 컨트랙트 주소에 대응하는 스마트 컨트랙트(110)로 예치하는 동작을 수행하고(510), 상기 스마트 컨트랙트(110)에 상기 암호화폐 단위를 예치하는 동작이 수행되어 각 노드장치(105) 사이에 합의/공유되는 경우 상기 스마트 컨트랙트(110)는 상기 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 저장하여 관리한다(515).
한편 상기 운영서버(200)는 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 상기 스마트 컨트랙트(110)의 지정된 저장영역에 저장된 암호화폐 예치정보를 확인하고(520), 상기 확인된 암호화폐 예치정보를 지정된 데이터베이스에 저장하여 관리한다(525). 한편 상기 운영서버(200)는 상기 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 확인된 상기 암호화폐 예치정보에 포함된 사용자의 전자지갑 주소와 상기 데이터베이스에 기 저장되어 있는 암호화폐 예치정보의 전자지갑 주소를 비교하여 상기 스마트 컨트랙트(110)의 지정된 저장영역에 신규 기록된 사용자의 전자지갑 주소에 대응하는 사용자의 공개키를 확인한다(530).
만약 상기 스마트 컨트랙트(110)의 지정된 저장영역에 신규 기록된 사용자의 공개키가 확인되면, 상기 운영서버(200)는 상기 확인된 공개키에 대응하는 사용자를 상기 스마트 컨트랙트(110)에 예치된 암호화폐의 인출 가능한 사용자로 설정하여 저장할 수 있다(535).
도면6은 본 발명의 다른 일 실시 방법에 따라 사용자의 공개키를 스마트 컨트랙트(110)에 기록하는 과정을 도시한 도면이다.
보다 상세하게 본 도면6은 사용자의 전자지갑 생성과 무관하게 별도 생성된 사용자의 공개키를 스마트 컨트랙트(110)에 기록하는 과정을 통해 사용자의 공개키를 스마트 컨트랙트(110)에 기록하는 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면6을 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면6에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면6을 참조하면, 사용자 전자지갑에 보유된 암호화폐 단위를 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치하여 상기 스마트 컨트랙트(110)의 지정된 저장영역에 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보가 저장되기 전 또는 중 또는 후의 일 시점에, 상기 사용자단말(260)은 사용자의 전자지갑 생성과 무관하게 별도 생성된 사용자의 공개키를 등록하기 위해 접속하며(600), 상기 운영서버(200)는 기 등록된 사용자정보를 근거로 상기 사용자에 대한 지정된 본인 인증 절차를 수행한다(605). 만약 상기 사용자의 본인 인증을 실패한 경우, 상기 운영서버(200)는 상기 사용자단말(260)을 통해 사용자의 본인 인증 오류를 출력한다(610).
한편 상기 사용자의 본인 인증을 성공한 경우, 상기 운영서버(200)는 사용자의 전자지갑 생성과 무관하게 별도 생성된 사용자의 공개키를 확인(예컨대, 사용자단말(260)을 통해 수신하거나 또는 본인 인증된 사용자정보를 근거로 상기 사용자의 공개키를 저장 관리하는 관리서버나 상기 사용자의 공개키를 발행한 발행서버나 상기 사용자의 공개키를 이용한 지정된 인증 절차를 수행하는 인증서버 등을 통해 확인)한다. 한편 상기 운영서버(200)는 상기 사용자의 전자지갑 주소를 확인하고(620), 기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 사용자의 공개키와 사용자의 전자지갑 주소를 상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 제공하는 절차를 수행한다(625). 바람직하게, 상기 스마트 컨트랙트 동작 절차는 상기 운영서버(200)가 지정된 특정 노드장치(105)(예컨대, 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)와 연동하는 노드장치(105), 또는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치(105))의 개인키를 이용하여 상기 스마트 컨트랙트(110)의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 방송하는 절차 내지 상기 블록체인 네트워크(100) 상의 각 노드장치(105)의 스마트 컨트랙트(110)가 상기 메시지를 수신하여 판독하는 절차를 포함할 수 있다.
상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 스마트 컨트랙트(110)로 제공된 사용자의 공개키와 사용자의 전자지갑 주소를 확인한다(630). 한편 상기 스마트 컨트랙트(110)는 상기 확인된 전자지갑 주소가 지정된 저장영역(예컨대, 암호화폐 예치정보를 저장하는 저장영역)에 저장되어 있는지 확인하는 절차를 수행할 수 있다(635). 예를들어, 상기 사용자의 전자지갑 주소는 상기 도면5의 암호화폐 예치 과정을 통해 스마트 컨트랙트(110)의 지정된 저장영역에 저장될 수 있다. 만약 상기 저장된 사용자의 전자지갑 주소가 확인되지 않는 경우, 상기 스마트 컨트랙트(110)는 동작을 중지할 수 있다(640). 상기 스마트 컨트랙트(110)는 상기 확인된 사용자의 공개키와 사용자의 전자지갑 주소를 지정된 저장영역에 연계 저장한다(645).
한편 상기 운영서버(200)는 상기 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 상기 스마트 컨트랙트(110)의 지정된 저장영역에 신규 기록된 사용자의 공개키를 확인한다(650). 만약 상기 스마트 컨트랙트(110)의 지정된 저장영역에 신규 기록된 사용자의 공개키가 확인되면, 상기 운영서버(200)는 상기 확인된 공개키에 대응하는 사용자를 상기 스마트 컨트랙트(110)에 예치된 암호화폐의 인출 가능 사용자로 설정하여 저장한다(655).
한편 상기 스마트 컨트랙트(110)의 지정된 저장영역에 기록된 사용자의 공개키가 확인되지 않으면, 상기 운영서버(200)는 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 상기 사용자의 공개키를 기록할 스마트 컨트랙트(110)의 중지를 확인할 수 있다(660). 만약 상기 스마트 컨트랙트(110)가 중지된 경우, 상기 운영서버(200)는 사용자의 공개키 등록 요청에 대한 오류정보를 생성하여 상기 사용자단말(260)로 제공하며(665), 상기 사용자단말(260)은 상기 사용자의 공개키 등록 요청에 대한 오류정보를 수신하여 출력할 수 있다(670).
도면7은 본 발명의 실시 방법에 따라 스마트 컨트랙트(110)에 예치된 암호화폐를 인출하기 위한 정보를 구성하는 과정을 도시한 도면이다.
보다 상세하게 본 도면7은 지정된 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 암호화폐 인출을 위한 본인 인증 절차를 수행하여 인증된 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 인증된 사용자의 개인키를 통해 생성된 인증정보를 확인하는 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면7을 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면7에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면7을 참조하면, 사용자단말(260)에서 지정된 블록체인 네트워크(100)의 스마트 컨트랙트(110)에 예치된 암호화폐의 인출을 요청하면(700), 운영서버(200)는 상기 스마트 컨트랙트(110)에 예치된 암호화폐의 인출 요청을 확인하고(705), 기 등록된 사용자정보를 근거로 상기 사용자에 대하여 암호화폐 인출을 위해 지정된 본인 인증 절차를 수행한다(710). 만약 상기 사용자의 본인 인증을 실패한 경우, 상기 운영서버(200)는 상기 사용자단말(260)을 통해 사용자의 본인 인증 오류를 출력한다(715).
한편 상기 사용자의 본인 인증을 성공한 경우, 상기 운영서버(200)는 상기 사용자의 본인 인증 결과를 상기 사용자단말(260)로 제공하며(720), 상기 사용자단말(260)은 상기 사용자의 본인 인증 결과를 확인하고(725), 지정된 암호화폐 인출 위한 사용자의 전자지갑 주소를 확인하거나 입력받고, 상기 사용자의 전자지갑으로 인출될 암호화폐 단위를 입력받으며(730), 상기 운영서버(200)와 상기 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터를 확인한다(735). 한편 실시 방법에 따라 상기 운영서버(200)는 상기 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터를 확인하여 상기 사용자단말(260)로 제공할 수 있다(735). 한편 본 발명의 다른 실시 방법에 따르면, 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터는 상기 운영서버(200)를 통해 암호화될 수 있으며, 이에 의해 본 발명이 한정되지 아니한다.
만약 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터가 확인되면, 상기 사용자단말(260)은 본인 인증된 사용자의 개인키를 이용하여 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터를 기 설정된 암호 방식으로 암호화하여 인증정보를 생성하며(740), 상기 암호화폐의 인출을 위한 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 상기 사용자의 개인키를 통해 생성된 인증정보를 상기 운영서버(200)로 제공하며(745), 상기 운영서버(200)는 상기 암호화폐의 인출을 위한 사용자의 전자지갑 주소와 암호화폐 단위 및 상기 사용자의 개인키를 통해 생성된 인증정보를 확인한다(750). 한편 본 발명의 다른 실시 방법에 따르면, 상기 운영서버(200)는 상기 사용자의 개인키를 통해 상기 운영서버(200)와 스마트 컨트랙트(110) 사이에 합의되거나 동기화되는 데이터를 암호화하여 인증정보를 생성할 수 있으며, 이에 의해 본 발명이 한정되지 아니한다.
도면8은 본 발명의 실시 방법에 따라 스마트 컨트랙트(110)에 예치된 암호화폐를 인출하는 과정을 도시한 도면이다.
보다 상세하게 본 도면8은 상기 도면7의 과정을 통해 확인된 사용자의 전자지갑 주소와 암호화폐 단위 및 상기 인증정보를 기 설정된 스마트 컨트랙트 동작 절차에 따라 지정된 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 제공하여 상기 스마트 컨트랙트(110)에 예치된 암호화폐를 인출하는 일 실시예를 도시한 도면으로서, 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 본 도면8을 참조 및/또는 변형하여 상기 과정에 대한 다양한 실시 방법(예컨대, 일부 단계가 생략되거나, 또는 순서가 변경된 실시 방법)을 유추할 수 있을 것이나, 본 발명은 상기 유추되는 모든 실시 방법을 포함하여 이루어지며, 본 도면8에 도시된 실시 방법만으로 그 기술적 특징이 한정되지 아니한다.
도면8을 참조하면, 운영서버(200)는 상기 도면7의 과정을 통해 스마트 컨트랙트(110)에 예치된 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 기 설정된 스마트 컨트랙트 동작 절차에 따라 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)로 전달하는 절차를 수행한다(800). 바람직하게, 상기 스마트 컨트랙트 동작 절차는 상기 운영서버(200)가 지정된 특정 노드장치(105)(예컨대, 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)와 연동하는 노드장치(105), 또는 상기 블록체인 네트워크(100) 상의 노드장치(105) 중 상기 운영서버(200)가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치(105))의 개인키를 이용하여 상기 스마트 컨트랙트(110)의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크(100) 상의 각 노드장치(105)로 방송하는 절차 내지 상기 블록체인 네트워크(100) 상의 각 노드장치(105)의 스마트 컨트랙트(110)가 상기 메시지를 수신하여 판독하는 절차를 포함할 수 있다.
상기 블록체인 네트워크(100) 상의 스마트 컨트랙트(110)는 기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 스마트 컨트랙트(110)로 제공된 상기 인출정보를 확인하고(805), 상기 스마트 컨트랙트(110)의 지정된 저장영역에 상기 인출정보의 전자지갑 주소가 저장되어 있는지 확인하거나 및/또는 상기 인출정보의 전자지갑 주소에 대응하거나 연계된 사용자의 공개키를 확인한다(810). 만약 지정된 저장영역에 상기 인출정보의 전자지갑 주소가 저장되어 있지 않거나 상기 사용자의 공개키가 확인되지 않는 경우, 상기 스마트 컨트랙트(110)는 동작을 중지할 수 있다(815).
한편 지정된 저장영역에 상기 인출정보의 전자지갑 주소가 저장되어 있지 않거나 상기 사용자의 공개키가 확인된 경우, 상기 스마트 컨트랙트(110)는 상기 사용자의 공개키를 통해 상기 인출정보에 포함된 인증정보의 유효성을 인증한다(820). 만약 상기 인증정보의 유효성이 인증되지 않으면, 상기 스마트 컨트랙트(110)는 동작을 중지할 수 있다(815).
한편 상기 인증정보의 유효성이 인증되면, 상기 스마트 컨트랙트(110)는 상기 인출정보에 포함된 사용자의 전자지갑 주소로 상기 인출정보에 포함된 암호화폐 단위를 인출하는 절차를 수행하며(825), 상기 암호화폐의 인출 시 상기 암호화폐를 인출받은 사용자의 전자지갑 주소와 상기 인출된 암호화폐 단위를 포함하는 암호화폐 인출정보를 지정된 저장영역에 저장한다(830).
한편 상기 운영서버(200)는 상기 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 상기 스마트 컨트랙트(110)를 통해 상기 인출정보에 포함된 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출한 암호화폐 인출정보를 확인한다(835). 만약 상기 암호화폐 인출정보가 확인되면, 상기 운영서버(200)는 상기 확인된 암호화폐 인출정보를 근거로 지정된 사용자의 전자지갑으로 지정된 암호화폐 단위를 인출한 거래정보를 지정된 데이터베이스에 동기화하여 저장한다(840).
한편 상기 암호화폐 인출정보가 확인되지 않으면, 상기 운영서버(200)는 블록체인 네트워크(100) 상의 노드장치(105)를 참조하여 상기 인출정보의 암호화폐를 인출할 스마트 컨트랙트(110)의 중지를 확인할 수 있다(845). 만약 상기 스마트 컨트랙트(110)가 중지된 경우, 상기 운영서버(200)는 상기 암호화폐의 인출에 대한 오류정보를 생성하여 상기 사용자단말(260)로 제공하며(850), 상기 사용자단말(260)은 상기 암호화폐의 인출에 대한 오류정보를 수신하여 출력할 수 있다(855).
100 : 블록체인 네트워크
105 : 노드장치
110 : 스마트 컨트랙트 115 : 예치 기능부
120 : 저장 기능부 125 : 확인 기능부
130 : 인증 기능부 135 : 인출 기능부
200 : 운영서버 205 : 블록체인 연동부
210 : 컨트랙트 등록부 215 : 공개키 처리부
220 : 사용자 인증부 225 : 인출 확인부
230 : 인증정보 확인부 235 : 인출 절차부
240 : 인출상태 확인부 245 : 인출 관리부
110 : 스마트 컨트랙트 115 : 예치 기능부
120 : 저장 기능부 125 : 확인 기능부
130 : 인증 기능부 135 : 인출 기능부
200 : 운영서버 205 : 블록체인 연동부
210 : 컨트랙트 등록부 215 : 공개키 처리부
220 : 사용자 인증부 225 : 인출 확인부
230 : 인증정보 확인부 235 : 인출 절차부
240 : 인출상태 확인부 245 : 인출 관리부
Claims (31)
- 스마트 컨트랙트(Smart Contract)를 지원하는 지정된 블록체인 네트워크 상에 구비된 M(M≥2)개의 노드장치를 통해 탈중앙화 실행 가능한 프로그램 코드를 포함하여 구성되며 하나 이상의 지정된 기능(Function)을 구현하는 스마트 컨트랙트에 있어서,
상기 블록체인 네트워크 상에 유효 생성된 하나 이상의 전자지갑으로부터 지정된 암호화폐 단위를 스마트 컨트랙트로 예치받는 기능을 구현하는 예치 기능부;
지정된 암호화폐를 예치한 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 구현하는 저장 기능부;
스마트 컨트랙트에 예치된 암호화폐를 사용자의 전자지갑으로 인출 시 상기 암호화폐를 인출받을 사용자의 전자지갑 주소와 상기 인출될 암호화폐 단위 및 사용자의 개인키를 통해 생성된 인증정보를 포함하는 인출정보를 확인하는 기능을 구현하는 확인 기능부;
상기 사용자의 공개키를 이용하여 상기 인증정보의 유효성을 인증하는 인증 절차를 포함하는 하나 이상의 지정된 인증 절차를 수행하는 인증 기능부; 및
상기 지정된 인증 절차의 인증 성공 시 상기 사용자의 전자지갑 주소로 상기 암호화폐 단위를 인출하는 기능을 구현하는 인출 기능부;를 포함하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 저장 기능부는,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 상기 예치된 암호화폐 단위를 포함하는 암호화폐 예치정보를 지정된 저장영역에 저장하는 기능을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항 또는 제 2항에 있어서, 상기 지정된 저장영역은,
스마트 컨트랙트의 상태를 저장하는 저장영역, 또는
상기 암호화폐의 예치와 관련된 정보를 저장하기 위해 설정된 저장영역을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항 또는 제 2항에 있어서, 상기 지정된 저장영역은,
암호화폐의 거래를 저장하는 저장영역을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 암호화폐는,
지정된 블록체인 네트워크를 통해 발행되는 암호코인 형태의 암호화폐,
지정된 암호코인을 발행하는 지정된 블록체인 네트워크를 기반으로 구현되는 암호토큰 형태의 암호화폐 중 적어도 하나를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 사용자의 공개키는,
상기 사용자의 전자지갑 생성 과정을 통해 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 6항에 있어서, 상기 사용자의 공개키는,
상기 사용자의 전자지갑 주소로 이용되는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 6항에 있어서, 상기 저장 기능부는,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 사용자의 공개키를 확인하여 지정된 저장영역에 저장하는 기능을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 사용자의 공개키는,
상기 사용자의 전자지갑 생성과 무관하게 별도 생성된 공개키와 개인키의 키 쌍 중 상기 공개키를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 9항에 있어서, 상기 사용자의 공개키는,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계되어 지정된 저장영역에 저장되는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 9항에 있어서, 상기 사용자의 개인키는,
상기 사용자의 공개키와 사용자의 전자지갑 주소를 연계하여 지정된 저장영역에 저장함에 의해 상기 사용자의 전자지갑과 연계되는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 9항에 있어서, 상기 저장 기능부는,
기 설정된 스마트 컨트랙트 동작 절차를 통해 상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인하는 기능과,
상기 확인된 사용자의 공개키와 전자지갑 주소를 연계하여 지정된 저장영역에 저장하는 기능을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 12항에 있어서, 상기 저장 기능부는,
상기 사용자의 공개키와 사용자의 전자지갑 주소를 확인한 경우 지정된 저장영역에 상기 확인된 전자지갑 주소와 매칭되는 전자지갑 주소가 저장되어 있는지 확인하는 기능을 더 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 확인 기능부는,
기 설정된 스마트 컨트랙트 동작 절차에 따라 상기 블록체인 네트워크 상의 기 설정된 특정 노드장치를 통해 상기 블록체인 네트워크 상의 각 노드장치로 방송되는 지정된 구조의 메시지를 통해 상기 인출정보를 확인하는 기능을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 14항에 있어서, 상기 스마트 컨트랙트 동작 절차는,
상기 특정 노드장치의 개인키를 이용하여 상기 스마트 컨트랙트의 동작을 위한 지정된 구조의 메시지를 상기 블록체인 네트워크 상의 각 노드장치로 방송하는 절차를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 15항에 있어서, 상기 특정 노드장치는,
상기 블록체인 네트워크 상의 노드장치 중 지정된 운영서버와 연동하는 노드장치, 또는
상기 블록체인 네트워크 상의 노드장치 중 지정된 운영서버가 상기 메시지의 방송을 위한 개인키를 관리하는 노드장치를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 14항에 있어서, 상기 메시지는,
상기 인출정보를 파라미터로 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 14항에 있어서, 상기 메시지는,
상기 메시지를 다른 노드장치로 방송하는 특정 노드장치의 지정된 주소를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 18항에 있어서, 상기 메시지는,
상기 블록체인 네트워크 상의 노드장치에 등록된 상기 스마트 컨트랙트의 지정된 주소와 상기 스마트 컨트랙트 상의 확인 기능부에 대응하는 함수의 주소 중 적어도 하나의 주소를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서,
상기 인출정보는, 암호화폐가 인출될 i(i≥1)개의 전자지갑 주소와 i개의 암호화폐 단위 및 i개의 인증정보를 포함하며,
상기 인출 기능부는, 지정된 인증 절차의 인증 성공 시 상기 i개의 전자지갑 주소로 제각기 대응하는 i개의 암호화폐 단위를 인출하는 기능을 수행하는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증 기능부는,
상기 인출정보에 포함된 사용자의 전자지갑 주소가 지정된 저장영역에 저장되어 있는지 인증하는 인증 절차를 수행하는 기능을 더 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 21항에 있어서, 상기 지정된 저장영역은,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소를 저장하는 저장영역,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소에 대응하는 공개키를 저장하는 저장영역,
지정된 암호화폐를 예치한 사용자의 전자지갑 주소와 연계된 사용자의 공개키를 저장하는 저장영역 중 적어도 하나의 저장영역을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
지정된 운영서버와 상기 스마트 컨트랙드 사이에 합의된 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
지정된 운영서버와 상기 스마트 컨트랙드 사이에 합의된 복수의 문자열이나 복수의 바이너리코드 중 지정된 인덱스를 통해 상기 운영서버와 스마트 컨트랙트 사이에 동기화되는 문자열이나 바이너리코드를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하며,
상기 인출정보는, 상기 운영서버와 스마트 컨트랙드 사이에 상기 암호화된 문자열이나 바이너리코드를 동기화하기 위한 인덱스를 더 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
상기 인출정보에 포함되는 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
상기 인출정보에 포함되는 전자지갑 주소(또는 전자지갑 주소의 적어도 일부 영역)과 암호화폐 단위(또는 암호화폐 단위의 적어도 일부 영역)를 포함하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증정보는,
지정된 운영서버와 상기 스마트 컨트랙드가 기 설정된 규칙에 따라 지정된 블록체인 상의 특정 블록 내 특정 저장위치를 동기화하여 획득하는 데이터를 상기 사용자의 개인키를 통해 지정된 암호화 방식으로 암호화하여 생성한 인증정보를 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 인증 기능부는,
지정된 저장영역에 저장된 사용자의 공개키를 통해 상기 인증정보를 복호화하여 지정된 운영서버와 합의되거나 동기화된 데이터와 매칭되는지 인증하는 인증 절차를 수행하는 기능을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 1항에 있어서, 상기 저장 기능부는,
지정된 암화화폐를 인출받은 사용자의 전자지갑 주소와 상기 인출된 암호화폐 단위를 포함하는 암호화폐 인출정보를 지정된 저장영역에 저장하는 기능을 더 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
- 제 30항에 있어서, 상기 지정된 저장영역은,
스마트 컨트랙트의 상태를 저장하는 저장영역, 또는
상기 암호화폐의 인출과 관련된 정보를 저장하기 위해 설정된 저장영역을 포함하여 이루어지는 것을 특징으로 하는 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180057245A KR20190132052A (ko) | 2018-05-18 | 2018-05-18 | 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180057245A KR20190132052A (ko) | 2018-05-18 | 2018-05-18 | 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190132052A true KR20190132052A (ko) | 2019-11-27 |
Family
ID=68730156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180057245A Withdrawn KR20190132052A (ko) | 2018-05-18 | 2018-05-18 | 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190132052A (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102245929B1 (ko) | 2020-01-29 | 2021-04-29 | (주)소셜인프라테크 | 가상자산 예치를 통한 디앱 사용자 수수료 거래방법 |
CN115150149A (zh) * | 2022-06-28 | 2022-10-04 | 北京送好运信息技术有限公司 | 一种基于区块链技术的电子邮箱管理多种数字通证的方法 |
WO2022244927A1 (ko) * | 2021-05-20 | 2022-11-24 | (주)소셜인프라테크 | 코인 교환 비율 설정을 통한 디앱 사용자 수수료 거래 시스템 |
WO2023009969A1 (en) * | 2021-07-27 | 2023-02-02 | American Express Travel Related Services Co., Inc. | Non-fungible token authentication |
KR102594497B1 (ko) * | 2023-02-08 | 2023-10-27 | 주식회사 커먼컴퓨터 | 오프라인 nft 매장에 방문한 사용자에게 nft 경험을 제공하기 위해 얼굴 인식 기반 사용자의 지갑 주소를 생성하는 방법 및 이를 수행하는 nft 시스템 |
-
2018
- 2018-05-18 KR KR1020180057245A patent/KR20190132052A/ko not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102245929B1 (ko) | 2020-01-29 | 2021-04-29 | (주)소셜인프라테크 | 가상자산 예치를 통한 디앱 사용자 수수료 거래방법 |
WO2022244927A1 (ko) * | 2021-05-20 | 2022-11-24 | (주)소셜인프라테크 | 코인 교환 비율 설정을 통한 디앱 사용자 수수료 거래 시스템 |
WO2023009969A1 (en) * | 2021-07-27 | 2023-02-02 | American Express Travel Related Services Co., Inc. | Non-fungible token authentication |
US11757640B2 (en) | 2021-07-27 | 2023-09-12 | American Express Travel Related Services Company, Inc | Non-fungible token authentication |
US12160515B2 (en) | 2021-07-27 | 2024-12-03 | American Express Travel Related Services Company, Inc. | Non-fungible token authentication |
CN115150149A (zh) * | 2022-06-28 | 2022-10-04 | 北京送好运信息技术有限公司 | 一种基于区块链技术的电子邮箱管理多种数字通证的方法 |
CN115150149B (zh) * | 2022-06-28 | 2024-01-30 | 北京送好运信息技术有限公司 | 一种基于区块链技术的电子邮箱管理多种数字通证的方法 |
KR102594497B1 (ko) * | 2023-02-08 | 2023-10-27 | 주식회사 커먼컴퓨터 | 오프라인 nft 매장에 방문한 사용자에게 nft 경험을 제공하기 위해 얼굴 인식 기반 사용자의 지갑 주소를 생성하는 방법 및 이를 수행하는 nft 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102044747B1 (ko) | 블록체인 기반 사용자 인증서비스 제공방법 | |
US11314891B2 (en) | Method and system for managing access to personal data by means of a smart contract | |
CN108418680B (zh) | 一种基于安全多方计算技术的区块链密钥恢复方法、介质 | |
KR102307574B1 (ko) | 블록체인을 기반으로 한 클라우드 데이터 저장 시스템 및 데이터 저장 방법 | |
JP2023535013A (ja) | 量子安全支払いシステム | |
CN109949019A (zh) | 一种基于医疗区块链的支付系统 | |
KR20190132159A (ko) | 스마트 컨트랙트를 이용한 블록체인 기반 암호화폐 거래 플랫폼 제공 방법 | |
KR20190132052A (ko) | 암호화폐 거래 플랫폼을 위한 블록체인 기반 스마트 컨트랙트 | |
KR20190132054A (ko) | 블록체인 기반 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼 제공 방법 | |
KR20190132047A (ko) | 스마트 컨트랙트를 이용한 블록체인 기반 서비스 플랫폼 제공 방법 | |
KR101923943B1 (ko) | 보안이 강화된 암호화폐 송금 시스템 및 방법 | |
JP7304963B2 (ja) | プログラム、データ認証方法、およびコンピュータ装置 | |
KR20190115553A (ko) | 블록체인 기반 스마트 컨트랙트를 이용한 정보 검증 기반 암호화폐 거래 제공 방법 | |
US20230412400A1 (en) | Method for suspending protection of an object achieved by a protection device | |
CN113841206A (zh) | 分布式计算系统中的事件管理 | |
KR102163274B1 (ko) | 블록체인을 활용한 개인정보 보호 시스템 | |
CN116982332A (zh) | 用于对通信网络中的第一参与者进行授权的方法、处理器设备、机动车和基础设施设备 | |
WO2020076234A1 (en) | Apparatus and method for controlling data access | |
KR20190132160A (ko) | 스마트 컨트랙트를 이용한 암호화폐 거래 플랫폼 제공 방법 | |
CN104160651A (zh) | 拜占庭式容错和阈值硬币投掷 | |
KR102376783B1 (ko) | 블록체인 기반의 거래내역 확인 시스템 | |
JP7254954B2 (ja) | ブロックチェーンで生成されたデータを認証する方法およびシステム | |
KR20190115551A (ko) | 블록체인 기반 스마트 컨트랙트를 이용한 암호화폐 거래 제공 방법 | |
CN110889793A (zh) | 基于区块链的数字彩票发行方法及区块链节点 | |
KR20190115557A (ko) | 블록체인 기반 스마트 컨트랙트를 이용한 다중 채널 인증 기반 암호화폐 거래 제공 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20180518 |
|
PG1501 | Laying open of application | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20201110 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
PC1203 | Withdrawal of no request for examination |