[go: up one dir, main page]

KR102689322B1 - Method and system for certifying balance of digital asset - Google Patents

Method and system for certifying balance of digital asset Download PDF

Info

Publication number
KR102689322B1
KR102689322B1 KR1020210159873A KR20210159873A KR102689322B1 KR 102689322 B1 KR102689322 B1 KR 102689322B1 KR 1020210159873 A KR1020210159873 A KR 1020210159873A KR 20210159873 A KR20210159873 A KR 20210159873A KR 102689322 B1 KR102689322 B1 KR 102689322B1
Authority
KR
South Korea
Prior art keywords
user
key
balance
digital assets
issuing server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020210159873A
Other languages
Korean (ko)
Other versions
KR20230037419A (en
Inventor
이기용
Original Assignee
(주)리얼체크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)리얼체크 filed Critical (주)리얼체크
Publication of KR20230037419A publication Critical patent/KR20230037419A/en
Application granted granted Critical
Publication of KR102689322B1 publication Critical patent/KR102689322B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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 OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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 OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Storage Device Security (AREA)

Abstract

블록체인 네트워크에서 유통되는 디지털 자산을 소유한 사용자가 보유한 잔고를 증명하기 위한 잔고 증명 방법 및 시스템이 제공된다. 디지털 자산의 잔고 증명 방법은, 디지털 자산의 거래를 위한 암호화키를 발급하는 암호화키 발급 서버에서, 상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키의 분실시 분실된 개인키를 복원하는데 사용되는 시드키를 생성하는 단계; 시드키를 바탕으로 사용자에게 고유한 개인키 및 공개키를 생성하는 단계; 시드키에 암호화 알고리즘을 적용하여 비밀키를 생성하여 사용자에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키를 생성하여 저장하는 단계; 및 디지털 자산의 출금이 요청되면, 사용자를 인증하고, 상기 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 디지털 자산의 출금을 수행하는 단계를 포함한다. 특히, 이러한 방법은 사용자가 입력한 비밀키를 인증하고, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 사용자의 디지털 자산의 잔고를 확인하여 사용자에게 제공하는 잔고 증명 단계를 더 포함한다. 본 발명에 의하여, 개인키의 유출로 인한 피해를 근본적으로 방지할 수 있고, 디지털 자산이 담보로서 제공될 수 있게 할 수 있다.A balance verification method and system is provided to prove the balance held by users who own digital assets distributed in the blockchain network. The method of proving the balance of a digital asset is that the encryption key issuing server that issues the encryption key for the transaction of digital assets responds to the request of the user who has subscribed to the encryption key issuing server, and when the private key is lost, the lost private key is returned. Generating a seed key used for restoration; Generating a private key and public key unique to the user based on the seed key; Applying an encryption algorithm to the seed key to generate a secret key and providing it to the user, and applying a one-way encryption algorithm to the generated secret key to generate and store a hidden secret key; And when withdrawal of digital assets is requested, authenticating the user, inferring the seed key to restore the user's private key, and performing withdrawal of digital assets from the blockchain network using the public key and restored private key. Includes steps. In particular, this method further includes a balance proof step of authenticating the secret key entered by the user, confirming the balance of the user's digital assets in the blockchain network using the public key and restored private key, and providing the balance to the user. . By the present invention, damage caused by leakage of private keys can be fundamentally prevented, and digital assets can be provided as collateral.

Description

디지털 자산의 잔고 증명 방법 및 시스템{Method and system for certifying balance of digital asset}{Method and system for certifying balance of digital asset}

본 발명은 블록체인 기술에 관한 것으로서, 특히 블록체인 네트워크에서 유통되는 디지털 자산의 잔고를 증명하고, 증명된 디지털 자산을 담보로 제공할 수 있게 하는 디지털 자산의 잔고 증명 방법 및 시스템에 관한 것이다.The present invention relates to blockchain technology, and in particular, to a method and system for proving the balance of digital assets that enable users to prove the balance of digital assets distributed in a blockchain network and provide proven digital assets as collateral.

블록체인(blockchain)은 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들이 P2P 방식을 기반으로 생성된 체인 형태의 연결고리 기반 분산 데이터 저장환경에 저장되어, 누구라도 임의로 수정할 수 없는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술이다. 이는 근본적으로 분산 데이터 저장기술의 한 형태로, 지속적으로 변경되는 데이터를 모든 참여 노드에 기록한 변경 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가능하도록 고안되었다.Blockchain is a distributed computing technology-based system in which small-scale data called 'blocks' are stored in a distributed data storage environment based on chain-type links created based on the P2P method, and cannot be arbitrarily modified by anyone. It is a technology to prevent data forgery and falsification. This is fundamentally a form of distributed data storage technology. It is a change list in which continuously changing data is recorded in all participating nodes, and is designed to prevent arbitrary manipulation by operators of distributed nodes.

블록체인 기술은 비트코인을 비롯한 대부분의 암호화폐 거래에 사용되고 있으며, 암호화폐의 거래 과정은 탈중앙화된 전자장부에 쓰이기 때문에 블록체인 소프트웨어를 실행하는 많은 사용자들의 각 컴퓨터에서 서버가 운영되어 중앙 은행이 없이 개인 간의 자유로운 거래가 가능할 수 있다. 블록체인 기술을 이용하여 암호화폐를 기초로 상대방에게 송금할 수 있는 기술을 통해 블록체인 네트워크로의 참여를 유도할 수 있다.Blockchain technology is used in most cryptocurrency transactions, including Bitcoin, and since the cryptocurrency transaction process is used in a decentralized electronic ledger, a server is operated on each computer of many users running blockchain software, allowing the central bank to operate. Free trade between individuals may be possible without Using blockchain technology, you can encourage participation in the blockchain network through technology that allows you to send money to others based on cryptocurrency.

블록 체인 기술은 다음과 같은 장점을 가진다.Blockchain technology has the following advantages:

우선, 블록체인은 암호화를 통해서 혹시라도 조금의 사기성이 보이거나 알맞지 않은 정보로 돈을 받으려는 사람들을 막아 줄 수 있다는 장점이 있다. 또한, 블록체인 기술을 활용하면 정부의 관여가 없이 탈중앙화된 거래 생태계가 조성될 수 있다. 즉, 블록체인 기술을 사용하면 세금 추징이나 계좌 추적의 위험이 없이 정당한 금융 거래를 수행할 수 있어서 사용자들의 비밀이 보장될 수 있다.First of all, blockchain has the advantage of being able to prevent people who may be slightly fraudulent or try to receive money with incorrect information through encryption. Additionally, by utilizing blockchain technology, a decentralized transaction ecosystem can be created without government involvement. In other words, using blockchain technology, legitimate financial transactions can be performed without the risk of tax collection or account tracking, thereby ensuring user confidentiality.

대한민국 등록특허 제10-1673073(2016.10.31)호는 블록체인 구조를 사용하는 암호화화폐 거래방법에 관한 것으로, 비트코인 거래소 서버에 거래소 일반 지갑 외에 거래소 웹 지갑을 서버에 추가로 구축시키고 회원이 거래소 서버에 내장된 거래소 일반 지갑 주소에서 거래소 웹 지갑 주소로 비트코인을 저장 사용하여 보안성을 향상시키는 기술을 개시한다.Republic of Korea Patent No. 10-1673073 (October 31, 2016) relates to a cryptocurrency trading method using the blockchain structure. In addition to the exchange's general wallet, an exchange web wallet is additionally built on the Bitcoin exchange server and members can use the exchange. We are launching a technology to improve security by storing Bitcoin from the exchange's general wallet address built into the server to the exchange's web wallet address.

특히, 블록체인 기술의 다양한 활용예 중 하나인 암호 화폐는 2018년 4월 기준으로 이미 367조원의 시가총액과 900백만 명의 암호 화폐 거래자 수를 탄생시킬 만큼 시장으로서 자리매김되었고, 암호 화폐의 종류(발행사)역시 2018년 4월 기준으로 1,594개에 달했으며, 그 이후에도 그 규모가 지속적으로 증가하고 있다. 현재 암호화폐 거래소는 전 세계에 만 개가 넘는 것으로 파악되고 있으며 상위 10개의 대형 거래소에서 전체 거래총액의 40%가량이 거래되고 있는 것으로 파악된다.In particular, cryptocurrency, one of the various uses of blockchain technology, has already established itself as a market enough to create a market capitalization of 367 trillion won and the number of cryptocurrency traders of 900 million as of April 2018, and the types of cryptocurrency ( Issuers) also reached 1,594 as of April 2018, and the size has continued to increase since then. Currently, there are more than 10,000 cryptocurrency exchanges around the world, and it is understood that about 40% of the total trading volume is traded in the top 10 large exchanges.

그러나, 이와 같은 막대한 거래 총액과 거래량에 비해 거래소의 보안 수준은 미약하다. 이와 같이 거래소의 미약한 보안 수준은 여러 문제를 야기한다. 즉, 블록체인 기술 자체는 해킹이 불가능하여 안전하지만, 블록체인에서 유통되는 암호 화폐의 거래는 거래소를 통해서 이루어지는데, 이러한 거래소의 보안 수준이 문제가 되는 것이다. 예를 들어, 마운트곡스(2014년 2월 4,585억원), 코인체크(2018년 1월 5,800억원), 유빗(2017년 12월 170억원)등 충격적인 액수의 암호 화폐가 이용자의 계정(월렛)또는 거래소에서 편취된 사례가 있다. 이러한 피해에 대한 대책은 미흡한 편이며 이로 인해 해킹에 대한 피해는 계속될 것으로 예측되는 상황이다. 정부는 이 사태에 우려를 표명하고 거래소에 70%이상을 인터넷(또는 내부망)이 연결되지 않는 OFF-LINE 서버 또는 월렛(콜드 스토리지, 콜드월렛)에 저장하라는 권고를 한바 있으며 향후 이는 의무화될 것으로 예측된다. 그러나, 현재 상용화된 암호화폐 오프라인 저장소는 기기 자체의 승인으로만 P2P거래를 가능하도록 인증하며, 추가적인 인증 수단이 없어 기기 분실 시 기기를 수취한 타인이 거래를 진행할 수 있는 치명적인 단점이 존재한다. However, compared to this enormous transaction total and volume, the security level of the exchange is weak. As such, the weak security level of exchanges causes several problems. In other words, the blockchain technology itself is safe because it cannot be hacked, but transactions for cryptocurrency distributed on the blockchain are carried out through exchanges, and the security level of these exchanges is problematic. For example, a shocking amount of cryptocurrencies such as Mt. Gox (KRW 458.5 billion in February 2014), Coincheck (KRW 580 billion in January 2018), and Ubit (KRW 17 billion in December 2017) were stored in user accounts (wallets) or exchanges. There is a case of fraud from . Countermeasures against such damage are insufficient, and as a result, damage from hacking is expected to continue. The government has expressed concern over this situation and has recommended that exchanges store more than 70% of their assets in OFF-LINE servers or wallets (cold storage, cold wallet) that are not connected to the Internet (or internal network), and this is expected to become mandatory in the future. It is predicted. However, currently commercialized offline cryptocurrency storage authenticates P2P transactions only with the approval of the device itself, and as there is no additional authentication method, there is a fatal disadvantage that if the device is lost, a third party who received the device can proceed with the transaction.

또한, 암호 화폐를 거래하기 위해서 사용자는 개인키를 알고 있어야 하는데, 개인키를 분실하거나 잊어버릴 경우 디지털 자산에 접근할 수 없는 문제가 발생하기도 한다. 전일 1조 원어치 비트코인을 보유한 비트코인 억만장자가 코스타리카 해변에서 익사한 사건이 알려지면서 비트코인이 공중에 뜰 가능성이 커지자 비트코인 소유자가 돌연사할 경우, 비트코인의 행방이 어떻게 되느냐에 대한 관심이 고조되고 있다.Additionally, in order to trade cryptocurrency, users must know the private key, but if the private key is lost or forgotten, the problem of not being able to access digital assets may occur. As it became known that a Bitcoin billionaire holding 1 trillion won worth of Bitcoin drowned on the beach in Costa Rica the previous day, the possibility of Bitcoin floating in the air increased. As a result, there is interest in what will happen to Bitcoin if the Bitcoin owner suddenly dies. This is escalating.

예를 들어, 2019년 캐나다의 최대 암호 화폐 거래소를 설립한 제럴드 코튼의 돌연사 이후 개인키를 알 수 없어 약 1억3900만달러의 비트코인의 유통이 불가능하게 되었으며, 2013년 영국의 제임스 하웰스가 분실한 노트북 하드 드라이브에는 약 2억9900달러의 가치를 지닌 7900개의 비트코인이 들어 있었던 것으로 알려지고 있다. 최근에는, 2012년에 미국에서 'MP엑스'라는 암호화폐 거래소를 설립한 미르시아 포페스쿠(41)가 최근에 익사하면서, 그가 보유한 약 10억 달러의 비트코인이 거래 불가능 상태가 되기도 했다. 이렇게 거래될 수 없이 망실된 비트코인의 가치는 현재 34조원에 달하는 것으로 추정된다. 물론, 개인키가 다른 사람에게 노출된 경우의 피해도 많이 발생된다.For example, after the sudden death of Gerald Cotton, who founded Canada's largest cryptocurrency exchange, in 2019, the distribution of approximately $139 million in Bitcoin became impossible because his private key was unknown, and in 2013, James Howells of the UK It is reported that the lost laptop hard drive contained 7,900 bitcoins, worth approximately $299 million. Recently, Mircia Popescu (41), who founded a cryptocurrency exchange called 'MPX' in the United States in 2012, recently drowned, rendering about $1 billion worth of Bitcoin he owned untradable. The value of Bitcoin that has been lost because it cannot be traded is currently estimated to be worth 34 trillion won. Of course, a lot of damage occurs when the private key is exposed to others.

그러므로, 개인키가 다른 사람에게 노출되거나 해킹을 통해 절취되는 것을 근본적으로 방지하기 위한 기술이 절실히 요구된다.Therefore, there is an urgent need for technology to fundamentally prevent private keys from being exposed to others or stolen through hacking.

또한, 블록체인에 보관된 디지털 자산의 잔고를 증명함으로서, 디지털 자산이 담보로서 제공될 수 있도록 하고, 담보로 제공된 디지털 자산이 담보 기간 내에 출금되는 것을 방지함으로써 해당 담보 기능을 보장할 수 있는 기술이 절실히 요구된다.In addition, by proving the balance of digital assets stored in the blockchain, digital assets can be provided as collateral, and technology can guarantee the collateral function by preventing digital assets provided as collateral from being withdrawn within the collateral period. It is desperately needed.

대한민국 등록특허 제10-1673073(2016.10.31)호Republic of Korea Patent No. 10-1673073 (2016.10.31)

본 발명의 목적은 디지털 자산의 거래에 필요한 공개키와 개인키를 사용자에게 발급할 때, 개인키를 저장하지 않음으로써 개인키의 유출로 인한 피해를 근본적으로 방지할 수 있는 기술을 제공하는 것이다.The purpose of the present invention is to provide a technology that can fundamentally prevent damage caused by leakage of private keys by not storing private keys when issuing public and private keys required for digital asset transactions to users.

또한, 블록체인에 보관된 디지털 자산의 잔고를 제 3 자에게 증명함으로서, 디지털 자산이 담보로서 제공될 수 있도록 하고, 담보로 제공된 디지털 자산이 담보 기간 내에 출금되는 것을 방지함으로써 디지털 자산의 담보 기능을 보장할 수 있는 디지털 자산의 잔고 증명 방법을 제공하는 것이다.In addition, by proving the balance of digital assets stored in the blockchain to a third party, digital assets can be provided as collateral, and the collateral function of digital assets is implemented by preventing digital assets provided as collateral from being withdrawn within the collateral period. It provides a method of proving the balance of digital assets that can be guaranteed.

상기와 같은 목적들을 달성하기 위한 본 발명의 일면은 블록체인 네트워크에서 유통되는 디지털 자산을 소유한 사용자가 보유한 잔고를 증명하기 위한 잔고 증명 서비스를 제공하는 방법에 관한 것이다. 본 발명에 의한 디지털 자산의 잔고 증명 방법은, 디지털 자산의 거래를 위한 암호화키를 발급하는 암호화키 발급 서버에서, 상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키(private key)의 분실시 분실된 개인키를 복원하는데 사용되는 시드키(seed key)를 생성하는 단계; 상기 암호화키 발급 서버에서, 상기 시드키를 바탕으로 사용자에게 고유한 개인키 및 상기 블록체인 네트워크에서 상기 디지털 자산을 저장하기 위한 사용자의 계좌를 나타내는 공개키(public key)를 생성하는 단계; 상기 암호화키 발급 서버에서, 상기 시드키에 암호화 알고리즘을 적용하여 비밀키(secret key)를 생성하여 상기 공개키와 함께 사용자에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키(concealed secret key)를 생성하여 저장하는 단계; 및 디지털 자산의 출금이 요청되면, 상기 암호화키 발급 서버에서, 사용자가 입력한 비밀키를 암호화하여 상기 은닉 비밀키와 비교하여 인증하며, 입력된 비밀키가 인증되면 상기 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 디지털 자산의 출금을 수행하는 단계를 포함한다. 특히, 방법은 사용자가 상기 디지털 자산의 잔고 증명을 요청할 경우, 상기 암호화키 발급 서버에서, 사용자가 입력한 비밀키를 인증하고, 인증된 사용자의 공개키를 사용하여 상기 블록체인 네트워크에서 사용자의 디지털 자산의 잔고를 확인하여 사용자에게 제공하는 잔고 증명 단계를 더 포함한다. 또한, 방법은, 인증 기관에서 발급한 신원 증명서를 통해 상기 암호화키 발급 서버가 소유자의 신원 정보를 인증하는 KYC(know your customer) 인증 단계를 포함할 수 있고, 상기 잔고 증명 단계는 상기 사용자의 요청에 응답하여, 상기 암호화키 발급 서버가 신원 정보가 인증된 사용자의 디지털 자산의 잔고와 사용자의 신원 정보를 포함하는 디지털 잔고 증명서를 생성하여 사용자에게 제공하는 것을 포함한다. 특히, 상기 디지털 잔고 증명서는 제 3 자에게 사용자의 디지털 자산을 증명하는 담보로서 제공될 수 있고, 상기 방법은 상기 디지털 잔고 증명서가 제 3 자에게 담보로서 제공될 경우, 상기 암호화키 발급 서버가 담보로서 제공된 디지털 자산의 담보 가치 및 담보 조건에 기반하여 상기 디지털 자산이 상기 사용자의 계좌로부터 다른 계좌로 송금되는 것을 금지하여, 상기 담보 조건에 따라서 디지털 자산의 담보 가치를 보장하는 단계를 더 포함한다. 바람직하게는, 상기 시드키는 사용자의 IP 주소, 사용자가 상기 암호화키 발급 서버에 접속하는데 사용한 디바이스의 MAC 주소, 브라우저 버전, 접속 시간, 이메일 주소 중 적어도 하나를 사용하여 생성되고, 상기 신원 증명서는 사용자의 주민 번호, 사진, 생체 정보, 휴대 전화 정보 중 적어도 하나를 사용하여 발급된다. 더 나아가, 상기 KYC 인증 단계는 상기 디지털 자산의 거래 시에 원타임 패스워드(one time password; OTP)를 사용하여 보안 수준을 높이도록 구성되고, 상기 디지털 자산의 출금을 수행하는 단계는, 상기 사용자가 디지털 자산의 출금을 요청하면서 입력한 비밀키를 단방향 암호화하여 암호화된 비밀키를 생성하는 것, 생성된 암호화된 비밀키를 저장된 은닉 비밀키와 비교하고, 암호화된 비밀키가 은닉 비밀키와 일치하면 시드키를 유추하여 사용자의 개인키를 복원하는 것, 디지털 자산의 출금 목적지의 공개키를 포함하는 출금 스크립트를 생성하고, 생성된 출금 스크립트를 사용자의 복원된 개인키로 서명하며, 서명된 출금 스크립트를 암호화하여 블록체인 네트워크로 전송하는 것, 및 상기 블록체인 네트워크로부터 출금 결과를 수신하여 사용자에게 제공하는 것을 포함한다.One aspect of the present invention to achieve the above objectives relates to a method of providing a balance verification service to prove the balance held by a user who owns digital assets distributed in a blockchain network. The method for proving the balance of digital assets according to the present invention is to provide a private key in response to a request from a user who has subscribed to the encryption key issuing server at an encryption key issuing server that issues an encryption key for trading digital assets. Generating a seed key used to restore a lost private key when lost; Generating, at the encryption key issuing server, a private key unique to the user based on the seed key and a public key representing the user's account for storing the digital asset in the blockchain network; In the encryption key issuing server, an encryption algorithm is applied to the seed key to generate a secret key and provided to the user along with the public key, and a one-way encryption algorithm is applied to the generated secret key to create a hidden secret key ( Generating and storing a concealed secret key; And when withdrawal of digital assets is requested, the encryption key issuing server encrypts the secret key entered by the user and authenticates it by comparing it with the hidden secret key, and when the entered secret key is authenticated, the seed key is inferred and the user's It includes restoring the private key and performing withdrawal of digital assets from the blockchain network using the public key and the restored private key. In particular, when the user requests proof of the balance of the digital asset, the encryption key issuing server authenticates the secret key entered by the user, and uses the public key of the authenticated user to digitalize the user's digital assets in the blockchain network. It further includes a balance proof step in which the balance of the asset is checked and provided to the user. Additionally, the method may include a KYC (know your customer) authentication step in which the encryption key issuing server authenticates the owner's identity information through an identity certificate issued by a certification authority, and the balance verification step may include the user's request. In response, the encryption key issuing server generates and provides to the user a digital balance certificate containing the user's identity information and the balance of the digital assets of the user whose identity information has been authenticated. In particular, the digital balance certificate can be provided to a third party as collateral to prove the user's digital assets, and in the method, when the digital balance certificate is provided as collateral to a third party, the encryption key issuing server serves as collateral. It further includes the step of prohibiting the digital asset from being transferred from the user's account to another account based on the collateral value and collateral conditions of the digital asset provided as, thereby ensuring the collateral value of the digital asset according to the collateral condition. Preferably, the seed key is generated using at least one of the user's IP address, the MAC address of the device used by the user to access the encryption key issuing server, browser version, access time, and email address, and the identity certificate is It is issued using at least one of the user's resident registration number, photo, biometric information, and mobile phone information. Furthermore, the KYC authentication step is configured to increase the security level by using a one time password (OTP) when trading the digital asset, and the step of performing the withdrawal of the digital asset is where the user Generates an encrypted secret key by one-way encrypting the secret key entered when requesting withdrawal of assets. Compares the generated encrypted secret key with the stored hidden secret key, and if the encrypted secret key matches the hidden secret key, a seed is generated. Restoring the user's private key by inferring the key, generating a withdrawal script containing the public key of the digital asset's withdrawal destination, signing the generated withdrawal script with the user's restored private key, and encrypting the signed withdrawal script. This includes transmitting it to the blockchain network, and receiving the withdrawal result from the blockchain network and providing it to the user.

상기와 같은 목적들을 달성하기 위한 본 발명의 다른 면은 블록체인 네트워크에서 유통되는 디지털 자산을 소유한 사용자가 보유한 잔고를 증명하기 위한 잔고 증명 시스템에 관한 것이다. 본 발명에 의한 디지털 자산의 잔고 증명 시스템은 디지털 자산의 거래를 위한 암호화키를 발급하는 암호화키 발급 서버를 포함하고, 상기 암호화키 발급 서버는, 상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키(private key)의 분실시 분실된 개인키를 복원하는데 사용되는 시드키(seed key)를 생성하는 동작; 상기 시드키를 바탕으로 사용자에게 고유한 개인키 및 상기 블록체인 네트워크에서 상기 디지털 자산을 저장하기 위한 사용자의 계좌를 나타내는 공개키(public key)를 생성하는 동작; 상기 시드키에 암호화 알고리즘을 적용하여 비밀키(secret key)를 생성하여 상기 공개키와 함께 사용자에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키(concealed secret key)를 생성하여 저장하는 동작; 및 디지털 자산의 출금이 요청되면, 사용자가 입력한 비밀키를 암호화하여 상기 은닉 비밀키와 비교하여 인증하며, 입력된 비밀키가 인증되면 상기 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 디지털 자산의 출금을 수행하는 동작을 수행하도록 구성된다. 특히, 상기 암호화키 발급 서버는 사용자가 상기 디지털 자산의 잔고 증명을 요청할 경우, 사용자가 입력한 비밀키를 인증하고, 인증된 사용자의 공개키를 사용하여 상기 블록체인 네트워크에서 사용자의 디지털 자산의 잔고를 확인하여 사용자에게 제공하는 잔고 증명 동작을 더 수행하도록 구성된다. 또한, 상기 암호화키 발급 서버는, 인증 기관에서 발급한 신원 증명서를 통해 상기 암호화키 발급 서버가 소유자의 신원 정보를 인증하는 KYC(know your customer) 인증 동작을 더 수행하도록 구성되고, 상기 잔고 증명 동작은 상기 사용자의 요청에 응답하여, 상기 암호화키 발급 서버가 신원 정보가 인증된 사용자의 디지털 자산의 잔고와 사용자의 신원 정보를 포함하는 디지털 잔고 증명서를 생성하여 사용자에게 제공한다. 더 나아가, 상기 디지털 잔고 증명서는 제 3 자에게 사용자의 디지털 자산을 증명하는 담보로서 제공될 수 있고, 상기 암호화키 발급 서버는, 상기 디지털 잔고 증명서가 제 3 자에게 담보로서 제공될 경우, 담보로서 제공된 디지털 자산의 담보 가치 및 담보 조건에 기반하여 상기 디지털 자산이 상기 사용자의 계좌로부터 다른 계좌로 송금되는 것을 금지하여, 상기 담보 조건에 따라서 디지털 자산의 담보 가치를 보장하는 동작을 더 수행한다. 또한, 상기 시드키는 사용자의 IP 주소, 사용자가 상기 암호화키 발급 서버에 접속하는데 사용한 디바이스의 MAC 주소, 브라우저 버전, 접속 시간, 이메일 주소 중 적어도 하나를 사용하여 생성되고, 상기 신원 증명서는 사용자의 주민 번호, 사진, 생체 정보, 휴대 전화 정보 중 적어도 하나를 사용하여 발급될 수 있다. 뿐만 아니라, 상기 암호화키 발급 서버는, 상기 KYC 인증 동작을 수행할 때 상기 디지털 자산의 거래 시에 원타임 패스워드(one time password; OTP)를 사용하여 보안 수준을 높이도록 구성된다. 특히, 상기 디지털 자산의 출금을 수행하는 동작은, 상기 사용자가 디지털 자산의 출금을 요청하면서 입력한 비밀키를 단방향 암호화하여 암호화된 비밀키를 생성하는 것, 생성된 암호화된 비밀키를 저장된 은닉 비밀키와 비교하고, 암호화된 비밀키가 은닉 비밀키와 일치하면 시드키를 유추하여 사용자의 개인키를 복원하는 것, 디지털 자산의 출금 목적지의 공개키를 포함하는 출금 스크립트를 생성하고, 생성된 출금 스크립트를 사용자의 복원된 개인키로 서명하며, 서명된 출금 스크립트를 암호화하여 블록체인 네트워크로 전송하는 것, 및 상기 블록체인 네트워크로부터 출금 결과를 수신하여 사용자에게 제공하는 것을 포함한다.Another aspect of the present invention to achieve the above objectives relates to a balance verification system for proving the balance held by a user who owns digital assets distributed in a blockchain network. The digital asset balance verification system according to the present invention includes an encryption key issuing server that issues an encryption key for trading digital assets, and the encryption key issuing server responds to a request from a user who has subscribed to the encryption key issuing server. Thus, when the private key is lost, an operation of generating a seed key used to restore the lost private key; An operation of generating a private key unique to the user based on the seed key and a public key representing the user's account for storing the digital asset in the blockchain network; By applying an encryption algorithm to the seed key, a secret key is generated and provided to the user along with the public key, and a one-way encryption algorithm is applied to the generated secret key to generate a concealed secret key. The action of saving; And when withdrawal of digital assets is requested, the secret key entered by the user is encrypted and authenticated by comparing it with the hidden secret key. When the entered secret key is authenticated, the seed key is inferred to restore the user's private key and made public. It is configured to perform an operation to withdraw digital assets from the blockchain network using the key and the restored private key. In particular, when the user requests proof of the balance of the digital asset, the encryption key issuing server authenticates the secret key entered by the user and uses the public key of the authenticated user to determine the balance of the user's digital asset in the blockchain network. It is configured to further perform a balance proof operation provided to the user by confirming. In addition, the encryption key issuing server is configured to further perform a KYC (know your customer) authentication operation in which the encryption key issuing server authenticates the owner's identity information through an identity certificate issued by a certification authority, and the balance verification operation. In response to the user's request, the encryption key issuing server generates a digital balance certificate containing the user's identity information and the balance of the user's digital assets whose identity information has been authenticated and provides the user with the same. Furthermore, the digital balance certificate may be provided to a third party as collateral to prove the user's digital assets, and the encryption key issuing server may provide the digital balance certificate as collateral when the digital balance certificate is provided to a third party as collateral. Based on the collateral value and collateral conditions of the provided digital asset, the digital asset is prohibited from being transferred from the user's account to another account, and an operation is further performed to guarantee the collateral value of the digital asset according to the collateral condition. In addition, the seed key is generated using at least one of the user's IP address, the MAC address of the device used by the user to access the encryption key issuing server, browser version, access time, and email address, and the identity certificate is the user's It may be issued using at least one of resident registration number, photo, biometric information, and mobile phone information. In addition, the encryption key issuing server is configured to increase the level of security by using a one time password (OTP) when performing the KYC authentication operation and when trading the digital asset. In particular, the operation of performing the withdrawal of the digital asset involves generating an encrypted secret key by one-way encrypting the secret key entered by the user while requesting the withdrawal of the digital asset, and storing the generated encrypted secret key in the stored secret secret. Compare with the key, and if the encrypted secret key matches the hidden secret key, infer the seed key to restore the user's private key, generate a withdrawal script containing the public key of the digital asset withdrawal destination, and withdraw the generated This includes signing the script with the user's restored private key, encrypting the signed withdrawal script and sending it to the blockchain network, and receiving the withdrawal result from the blockchain network and providing it to the user.

본 발명에 의하여, 디지털 자산의 거래에 필요한 공개키와 개인키를 사용자에게 발급할 때, 개인키를 저장하지 않음으로써 개인키의 유출로 인한 피해를 근본적으로 방지할 수 있다.According to the present invention, when issuing public and private keys required for digital asset transactions to users, it is possible to fundamentally prevent damage caused by leakage of private keys by not storing the private keys.

또한, 블록체인에 보관된 디지털 자산의 잔고를 제 3 자에게 증명하고, 담보가 설정된 경우 담보 기간 동안에 디지털 자산의 처분을 금지함으로써 디지털 자산이 담보로서 제공될 수 있게 할 수 있다.In addition, the balance of digital assets stored in the blockchain can be proven to a third party, and if collateral is established, the disposal of digital assets is prohibited during the collateral period, allowing digital assets to be provided as collateral.

도 1은 본 발명의 일면에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법을 개략적으로 나타내는 흐름도이다.
도 2a는 종래 기술에 의해서 개인이 디지털 자산을 보관하는 과정을 설명하는 개략도이고, 도 2b는 본 발명에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법이 수행되는 시나리오를 개략적으로 나타내는 도면이다.
도 3은 본 발명에서 활용되는 암호화키 발급 서버에 사용자가 가입할 때 암호화키 발급 서버에서 이루어지는 동작들을 설명하는 동작 타이밍도이다.
도 4는 본 발명에서 활용되는 암호화키 발급 서버에 사용자가 가입하여 생성된 계좌에 디지털 자산이 입금되는 과정을 설명하는 동작 타이밍도이다.
도 5는 본 발명에서 활용되는 암호화키 발급 서버에 가입한 사용자의 계좌로부터 디지털 자산을 출금하는 과정을 설명하는 동작 타이밍도이다.
도 6은 본 발명에 따른 디지털 자산의 잔고 증명 방법에서 잔고를 증명하는 과정을 설명하는 동작 타이밍도이다.
도 7은 도 6에 의해 잔고가 증명된 자산이 담보로 제공될 경우의 담보 가치를 보장하기 거래 중지 과정을 설명하는 동작 타이밍도이다.
도 8은 본 발명에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법에서 암호화키 발급 서버에 계좌를 생성하고 인출하는 과정을 상세히 나타내는 흐름도이다.
도 9는 본 발명의 다른 면에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 시스템을 개략적으로 나타내는 블록도이다.
1 is a flowchart schematically showing a method for proving the balance of digital assets using an encryption key issuing server according to one aspect of the present invention.
Figure 2a is a schematic diagram explaining the process by which an individual stores digital assets according to the prior art, and Figure 2b is a diagram schematically showing a scenario in which a method for proving the balance of digital assets using an encryption key issuing server according to the present invention is performed. am.
Figure 3 is an operation timing diagram explaining the operations performed in the encryption key issuing server when a user signs up for the encryption key issuing server used in the present invention.
Figure 4 is an operation timing diagram explaining the process of depositing digital assets into an account created by a user signing up for an encryption key issuing server used in the present invention.
Figure 5 is an operation timing diagram explaining the process of withdrawing digital assets from the account of a user who has subscribed to the encryption key issuing server used in the present invention.
Figure 6 is an operation timing diagram explaining the process of proving the balance in the method for proving the balance of digital assets according to the present invention.
FIG. 7 is an operation timing diagram illustrating the transaction suspension process to guarantee the collateral value when the asset whose balance is proven in FIG. 6 is provided as collateral.
Figure 8 is a flowchart showing in detail the process of creating and withdrawing an account at the encryption key issuing server in the method of proving the balance of digital assets using the encryption key issuing server according to the present invention.
Figure 9 is a block diagram schematically showing a digital asset balance verification system using an encryption key issuing server according to another aspect of the present invention.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, its operational advantages, and the objectives achieved by practicing the present invention, reference should be made to the accompanying drawings illustrating preferred embodiments of the present invention and the contents described in the accompanying drawings.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다. Hereinafter, the present invention will be described in detail by explaining preferred embodiments of the present invention with reference to the accompanying drawings. However, the present invention may be implemented in many different forms and is not limited to the described embodiments. In order to clearly explain the present invention, parts not relevant to the description are omitted, and like reference numerals in the drawings indicate like members.

도 1은 본 발명의 일면에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법을 개략적으로 나타내는 흐름도이다.1 is a flowchart schematically showing a method for proving the balance of digital assets using an encryption key issuing server according to one aspect of the present invention.

도 1을 참조하면, 암호화키 발급 서버에서 제공하는 잔고 증명 서비스에 가입하려는 사용자의 요청에 응답하여, 사용자의 개인키(private key)의 분실시 분실된 개인키를 복원하는데 사용되는 시드키(seed key)를 생성한다(S110). 본 명세서에서 시드키란 연상 코드(Mnemonic code) 단어를 사용하여 생성될 수 있다. 연상 코드 단어란 순서대로 나열된 영어 단어에서 시드(Seed)를 만드는 방법으로서, 연상 코드를 사용하면 가상화폐 지갑을 쉽게 복원할 수 있다. 연상 코드로부터 시드 값과 패스 구문이 생성된다.Referring to FIG. 1, in response to a user's request to subscribe to the balance proof service provided by the encryption key issuing server, a seed key used to restore the lost private key when the user's private key is lost key) (S110). In this specification, a seed key may be generated using a mnemonic code word. Associative code words are a method of creating seeds from English words listed in order. By using associative codes, you can easily restore your virtual currency wallet. Seed values and pass statements are generated from the associative code.

그러면, 시드키를 바탕으로 사용자의 개인키와 공개키가 생성된다(S130). 공개키는 블록체인 네트워크에서 사용자의 계좌를 가리키는 고유한 주소로서 사용될 수 있고, 레거시 은행에서 활용되는 계좌번호와 유사한 개념이다. 반면에, 개인키는 사용자가 자신의 공개키에 저장된 디지털 자산을 인출하기 위하여 필요한 암호화키로서, 외부에 절대로 누출되어서는 안되는 고유한 정보이다.Then, the user's private key and public key are generated based on the seed key (S130). The public key can be used as a unique address pointing to the user's account in the blockchain network, and is similar to the account number used in legacy banks. On the other hand, the private key is an encryption key needed for the user to withdraw digital assets stored in his or her public key, and is unique information that should never be leaked to the outside.

그러면, 시드키에 암호화 알고리즘을 적용하여 비밀키(secret key)를 생성하여 상기 공개키와 함께 사용자에게 제공한다(S150). 본 발명에서 암호화키 발급 서버가 개인키가 아니라 비밀키를 사용자에게 제공하는 이유는 개인키가 어떠한 경우에도 외부에 누출되지 않게 하기 위한 것이다. 더 나아가, 본 발명에 의한 암호화키 발급 서버에서는 사용자에게 제공된 개인키도, 개인키를 암호화한 비밀키도 저장하지 않는다. 오히려, 암호화키 발급 서버에서는 암호화된 비밀키에 단방향 암호화 알고리즘을 다시 한 번 적용하여 생성된 은닉 비밀키(concealed secret key)를 저장한다(S150).Then, an encryption algorithm is applied to the seed key to generate a secret key and provided to the user along with the public key (S150). In the present invention, the reason why the encryption key issuing server provides a secret key rather than a private key to the user is to prevent the private key from being leaked to the outside under any circumstances. Furthermore, the encryption key issuing server according to the present invention neither stores the private key provided to the user nor the secret key encrypting the private key. Rather, the encryption key issuing server stores the concealed secret key generated by applying the one-way encryption algorithm to the encrypted secret key again (S150).

암호화키 발급 서버에서 사용자의 개인키도, 비밀키도 저장하지 않기 때문에 암호화키 발급 서버가 해킹되는 경우에도 사용자의 개인키는 유출되지 않고 안전하게 보호될 수 있다. 즉, 암호화키 발급 서버의 해킹에 성공한 해커가 얻을 수 있는 것은 개인키도 비밀키도 아닌 은닉 비밀키인데, 은닉 비밀키는 단방향 암호화 알고리즘에 의해 암호화된 것이므로 은닉 비밀키로부터 비밀키를 유추해내는 것은 불가능하다. 심지어, 암호화키 발급 서버의 운영자 자신도 저장된 은닉 비밀키로부터 사용자의 비밀키 또는 개인키를 유추해낼 수 없다. 그러므로, 사용자의 개인키를 보호하기 위한 최상의 보안 수준이 구현될 수 있다.Because the encryption key issuing server does not store the user's private key or secret key, the user's private key can be safely protected without being leaked even if the encryption key issuing server is hacked. In other words, what a hacker who succeeds in hacking the encryption key issuing server can obtain is neither a private key nor a secret key, but a hidden secret key. Since the hidden secret key is encrypted by a one-way encryption algorithm, the secret key can be inferred from the hidden secret key. It is impossible. Even the operator of the encryption key issuing server cannot infer the user's secret key or private key from the stored hidden secret key. Therefore, the highest level of security can be implemented to protect the user's private key.

가입된 사용자가 자신의 계좌에서 출금을 요청할 경우, 사용자는 자신의 비밀키를 입력하면서 출금을 요청하게 된다. 그러면, 암호화키 발급 서버는 사용자가 입력한 비밀키에 단방향 암호화 알고리즘을 적용하여 암호화된 비밀키를 생성한다. 그리고, 생성된 암호화된 비밀키를 저장되었던 은닉 비밀키와 비교하여 사용자가 유효한 비밀키를 입력하였는지를 확인하게 된다. 이렇게 비밀키가 인증되면 암호화키 발급 서버는 출금 스크립트를 생성하여 블록체인 네트워크로 전송함으로써 출금 동작을 수행한다(S170). 즉, 암호화키 발급 서버는 가입 과정에서 사용자에게 공개키와 개인키를 생성하여 제공하는 동작과 함께, 출금 과정에서 개인의 요청에 따라 출금 스크립트를 작성하여 블록체인 네트워크로 전송하는 동작을 수행한다.When a registered user requests a withdrawal from his or her account, the user requests the withdrawal while entering his or her private key. Then, the encryption key issuing server applies a one-way encryption algorithm to the secret key entered by the user to generate an encrypted secret key. Then, the generated encrypted secret key is compared with the stored hidden secret key to check whether the user has entered a valid secret key. Once the secret key is authenticated, the encryption key issuing server creates a withdrawal script and transmits it to the blockchain network to perform a withdrawal operation (S170). In other words, the encryption key issuing server generates and provides public and private keys to the user during the registration process, and creates a withdrawal script according to the individual's request during the withdrawal process and transmits it to the blockchain network.

사용자가 디지털 자산의 잔고 증명을 요청할 경우, 암호화키 발급 서버는 사용자가 입력한 비밀키를 암호화한 후 그 결과를 저장된 은닉 비밀키와 비교하여 인증한다. 그리고, 사용자가 입력한 비밀키를 바탕으로 사용자의 개인키를 복원하여, 복원된 개인키와 사용자가 입력한 공개키를 사용하여 블록체인 네트워크에서 해당 공개키에 남아 있는 디지털 자산 잔고를 확인한다. 블록체인 네트워크로부터 자산이 확인되면, 암호화키 발급 서버는 디지털 잔고 증명서를 생성하여 사용자에게 제공한다(S190).When a user requests proof of digital asset balance, the encryption key issuing server encrypts the secret key entered by the user and then authenticates the result by comparing it with the stored hidden secret key. Then, the user's private key is restored based on the private key entered by the user, and the digital asset balance remaining in the corresponding public key is confirmed in the blockchain network using the restored private key and the public key entered by the user. When the asset is confirmed from the blockchain network, the encryption key issuing server generates a digital balance certificate and provides it to the user (S190).

본 발명에서 암호화키가 생성되는 과정을 간략히 정리하면, 시드키를 바탕으로 개인키와 공개키가 생성된다. 또한, 시드키에 암호화 알고리즘을 적용하여 비밀키도 생성할 수 있으며, 이렇게 생성된 비밀키는 사용자에게 제공된다.To briefly summarize the process of generating an encryption key in the present invention, a private key and a public key are generated based on the seed key. In addition, a secret key can be generated by applying an encryption algorithm to the seed key, and the secret key generated in this way is provided to the user.

전술된 바와 같이, 암호화키 발급 서버에는 사용자의 개인키와 비밀키가 저장되지 않고, 비밀키에 단방향 암호화 알고리즘을 적용한 결과인 은닉 비밀키만이 저장된다. 은닉 비밀키로부터 비밀키를 유추하는 것은 불가능하기 때문에, 은닉 비밀키는 사용자가 입력한 비밀키가 유효한지 여부를 판단하기 위한 비교 동작에서만 활용될 수 있다. 즉, 사용자가 입력한 비밀키에 단방향 암호화 알고리즘을 적용하여 생성된 암호화된 비밀키가 저장된 은닉 비밀키와 동일한 경우에만 사용자가 인증된 것으로 판단할 수 있다.As described above, the user's private key and secret key are not stored in the encryption key issuing server, but only the hidden secret key, which is the result of applying a one-way encryption algorithm to the secret key. Since it is impossible to infer the secret key from the hidden secret key, the hidden secret key can only be used in a comparison operation to determine whether the secret key entered by the user is valid. In other words, the user can be determined to be authenticated only when the encrypted secret key generated by applying a one-way encryption algorithm to the secret key entered by the user is the same as the stored hidden secret key.

사용자가 입력한 비밀키가 유효할 경우(즉, 사용자가 입력한 비밀키에 단방향 암호화 알고리즘을 적용한 결과가 저장된 은닉 비밀키와 동일한 경우)에 해당 비밀키로부터 시드키를 얻어낼 수 있다. 그리고, 이렇게 얻어진 시드키로부터 사용자의 개인키가 복원될 수 있다.If the secret key entered by the user is valid (that is, if the result of applying the one-way encryption algorithm to the secret key entered by the user is the same as the stored hidden secret key), the seed key can be obtained from the secret key. And, the user's private key can be restored from the seed key obtained in this way.

이와 같이, 본 발명에 의한 암호화키 발급 서버는 개인키와 비밀키가 아닌 은닉 비밀키를 저장하기 때문에 사용자의 개인키를 안전하게 보호할 수 있다.In this way, the encryption key issuing server according to the present invention can safely protect the user's private key because it stores the hidden secret key rather than the private key and secret key.

본 발명에서 암호화키를 생성하기 위해 사용되는 암호화/복호화 기술은 종래에 당업계에 공지된 모든 암호화/복호화 기술을 포함한다. 예를 들어, 블록체인 네트워크는 UTXO(Unspent Transaction Output) 기반 블록체인과 어카운트 기반 블록체인(Account-based Blockchain)으로 크게 나눌 수 있다. 전자의 경우 UTXO들과 사용 자격 검증 방법을 기록하며, 이러한 네트워크에 활용되는 일반적인 자격 검증 방법은 UTXO의 정보와 일치하는 공개키로 검증가능한 전자 서명을 제출하는 것이다. 비트코인이 대표적인 UTXO 기반 블록체인의 하나이다. 또한, 어카운트 기반 블록체인의 경우, 어카운트가 블록체인을 구성하는 주체(entity)를 표현하며 상태를 기록하고 있으며, 사용자는 어카운트를 사용할 때마다 어카운트 공개키로 검증가능한 전자서명을 생성한다. 이러한 기술은 상태를 기록할 수 있기 때문에 스마트 컨트랙트를 구현하기에 용이하며, 이더리움이 대표적인 어카운트 기반 블록체인이라고 할 수 있다. UTXO 기반 블록체인의 경우 항상 공개키가 포함시켜서 트랜젝션을 기록하고, 따라서 256비트의 전자서명과 256비트의 공개키가 필요하다. 반면에, 어카운트 기반 블록체인의 경우에는 전자 서명 안에 공개키를 넣어서 함께 보내기 때문에, 256비트가 절약되는 효과가 있다.The encryption/decryption technology used to generate the encryption key in the present invention includes all encryption/decryption technologies conventionally known in the art. For example, blockchain networks can be broadly divided into UTXO (Unspent Transaction Output)-based blockchain and account-based blockchain. In the former case, UTXOs and usage qualification verification methods are recorded, and a common qualification verification method used in these networks is to submit a verifiable electronic signature with a public key that matches the UTXO information. Bitcoin is one of the representative UTXO-based blockchains. Additionally, in the case of an account-based blockchain, the account represents the entity that makes up the blockchain and records its state, and each time the user uses the account, he or she creates a verifiable electronic signature with the account public key. This technology is easy to implement smart contracts because it can record the state, and Ethereum can be said to be a representative account-based blockchain. In the case of UTXO-based blockchains, transactions are always recorded by including a public key, so a 256-bit electronic signature and a 256-bit public key are required. On the other hand, in the case of account-based blockchain, 256 bits are saved because the public key is included in the electronic signature and sent together.

도 2a는 종래 기술에 의해서 개인이 디지털 자산을 보관하는 과정을 설명하는 개략도이다.Figure 2a is a schematic diagram explaining the process by which an individual stores digital assets according to the prior art.

도 2a를 참조하면, 종래에는 개인이 거래소에 현금을 지급하면, 거래소는 수신된 현금의 가치에 대응하는 디지털 자산을 개인에게 제공하며, 이 과정에서 개인에게 디지털 자산 보관증서를 발행한다. 거래소에서 디지털 자산을 사용자의 계좌에 제공한 기록은 블록체인 네트워크에 기록되게 된다.Referring to Figure 2a, conventionally, when an individual pays cash to an exchange, the exchange provides the individual with digital assets corresponding to the value of the received cash, and in this process issues a digital asset storage certificate to the individual. The record of providing digital assets to the user's account at the exchange is recorded in the blockchain network.

하지만, 디지털 자산 보관 증서는 사실 관계와 무관하게 거래소가 악의적으로 임의로 발행한 것일 수도 있다. 따라서, 디지털 자산 보관 증서는 객관적으로 사용자의 잔고를 증명하는 증명서로서의 역할을 할 수 없다.However, the digital asset storage certificate may have been issued maliciously and arbitrarily by the exchange, regardless of the facts. Therefore, the digital asset storage certificate cannot serve as a certificate that objectively proves the user's balance.

또한, 전술된 바와 같이 거래소 자체의 보안 수준이 낮음으로 인해 개인의 소중한 디지털 자산이 해킹을 통해 도난당하는 일이 발생하며, 여러 거래소를 활용하여 여러 디지털 자산을 거래할 경우, 개인이 각 거래소와 디지털 자산별로 모든 계좌 정보를 파악하고 유지하고 있어야 한다.In addition, as mentioned above, due to the low security level of the exchange itself, an individual's valuable digital assets may be stolen through hacking, and when trading multiple digital assets using multiple exchanges, the individual must All account information for each asset must be identified and maintained.

도 2b는 본 발명에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법이 수행되는 시나리오를 개략적으로 나타내는 도면이다.Figure 2b is a diagram schematically showing a scenario in which the method for proving the balance of digital assets using an encryption key issuing server according to the present invention is performed.

도 2b에 도시된 바와 같이, 디지털 자산을 소유하고자 하는 개인은 암호화키 발급 서버에 자신의 개인키와 공개키의 발급을 요청하고, 발급받은 공개키에 디지털 자산을 보관한다. 이 경우 전술된 바와 같이 암호화키 발급 서버에서는 사용자에게 개인키가 아니라 개인키를 암호화한 비밀키를 제공한다. 거래소에서 사용자의 공개키로 송금된 기록은 블록체인 네트워크에 기록된다.As shown in Figure 2b, an individual who wants to own a digital asset requests the encryption key issuing server to issue his or her private key and public key, and stores the digital asset in the issued public key. In this case, as described above, the encryption key issuing server provides the user not with a private key but with a secret key that encrypts the private key. Records of money sent from the exchange to the user's public key are recorded in the blockchain network.

사용자가 암호화키 발급 서버에 잔고 증명을 요청할 경우, 암호화키 발급 서버는 후술되는 바와 같이 암호화키 발급 서버는 사용자가 입력한 비밀키를 사용하여 사용자를 인증한다. 사용자의 인증이 성공적이면, 암호화키 발급 서버는 사용자가 입력한 공개키를 사용하여 블록체인 네트워크에서 사용자의 잔고를 확인한다.When a user requests balance proof from the encryption key issuing server, the encryption key issuing server authenticates the user using the secret key entered by the user, as will be described later. If the user's authentication is successful, the encryption key issuing server uses the public key entered by the user to check the user's balance on the blockchain network.

블록체인 네트워크로부터 공개키에 저장된 잔고에 대한 기록을 조회하면, 암호화키 발급 서버는 디지털 잔고 증명서를 생성하여 사용자에게 제공한다. 이 때, 후술되는 바와 같이 사용자의 신원을 나타내는 증명과 함께 디지털 잔고 증명서를 발급하게 되며, 사용자는 제 3 자에게 해당 증명서를 제시함으로써 자신의 잔고를 증명할 수 있다.When the record of the balance stored in the public key is searched from the blockchain network, the encryption key issuing server generates a digital balance certificate and provides it to the user. At this time, as will be described later, a digital balance certificate is issued along with proof of the user's identity, and the user can prove his or her balance by presenting the certificate to a third party.

즉, 암호화키 발급 서버는 암호화키 발급 서버에 가입된 사용자의 디지털 자산을 언제든지 인증할 수 있고, 사용자는 이러한 인증을 통하여 자신이 디지털 자산을 얼마나 보유하고 있는지를 제 3 자에게 객관적으로 증명할 수 있다.In other words, the encryption key issuing server can authenticate the digital assets of users registered with the encryption key issuing server at any time, and through this authentication, users can objectively prove to third parties how much digital assets they own. .

도 3은 본 발명에서 활용되는 암호화키 발급 서버에 사용자가 가입할 때 암호화키 발급 서버에서 이루어지는 동작들을 설명하는 동작 타이밍도이다.Figure 3 is an operation timing diagram explaining the operations performed in the encryption key issuing server when a user signs up for the encryption key issuing server used in the present invention.

도 3에서 점선으로 표시된 부분은 개인이 종래의 방법에 따라 거래서에 현금을 지불하고 디지털 자산을 구입하는 과정을 나타낸다.The part indicated by the dotted line in Figure 3 represents the process by which an individual pays cash in a transaction and purchases digital assets according to a conventional method.

개인이 암호화키 발급 서버에 가입할 경우, 자신의 신원을 나타내는 정보를 제공할 수 있다. 하지만, 본 발명에 의한 암호화키 발급 서버에는 반드시 신원 정보를 입력해야만 가입할 수 있는 것은 아니다. 신원 정보는 개인이 디지털 잔고 증명서를 제 3 자에게 제공할 때 자신의 잔고임을 나타내기 위해서 사용될 뿐이다.When an individual signs up for an encryption key issuing server, he or she can provide information that identifies his or her identity. However, it is not necessary to enter identity information to sign up for the encryption key issuing server according to the present invention. Identity information is only used when an individual provides a digital balance certificate to a third party to indicate that the balance is his/her own.

공개키 발급이 요청되면, 암호화키 발급 서버는 개인키의 분실시 분실된 개인키를 복원하는데 사용되는 시드키를 생성하고, 이러한 시드키를 바탕으로 사용자에게 고유한 개인키 및 상기 블록체인 네트워크에서 상기 디지털 자산을 저장하기 위한 사용자의 계좌를 나타내는 공개키를 생성한다. 그런데, 본 발명에 의한 암호화키 발급 서버는 보안 수준을 향상시키기 위하여 개인키를 사용자에게 제공하지 않는다. 개인키가 사용자에게 전달될 경우 사용자가 분실하거나 유출될 수 있기 때문이다. 따라서, 암호화키 발급 서버는 개인키가 아니라, 시드키에 암호화 알고리즘을 적용하여 생성한 비밀키를 제공한다. 또한, 이러한 비밀키 역시 유출될 위험을 방지하기 위하여 암호화키 발급 서버는 비밀키에 다시 단방향 암호화 알고리즘을 적용하여 생성한 은닉 비밀키를 저장한다. 그리고, 은닉 비밀키만을 저장하고 개인키와 비밀키를 암호화키 발급 서버에서 삭제함으로써 유출을 차단한다.When a public key issuance is requested, the encryption key issuing server generates a seed key used to restore the lost private key when the private key is lost, and based on this seed key, the user's unique private key and the blockchain network A public key representing the user's account for storing the digital assets is generated. However, the encryption key issuing server according to the present invention does not provide the private key to the user in order to improve the security level. This is because if the private key is delivered to the user, it may be lost or leaked. Therefore, the encryption key issuing server does not provide a private key, but a secret key generated by applying an encryption algorithm to the seed key. Additionally, in order to prevent the risk of the secret key being leaked, the encryption key issuing server stores the hidden secret key generated by applying a one-way encryption algorithm to the secret key. In addition, leakage is prevented by storing only the hidden secret key and deleting the private key and secret key from the encryption key issuing server.

이와 같이, 사용자의 개인키는 애초에 사용자에게 제공되지 않았고, 비밀키 역시 암호화키 발급 서버에 저장되지 않으며, 암호화키 발급 서버에 저장된 은닉 비밀키로는 사용자의 비밀키를 유추할 수 없기 때문에, 사용자의 개인키가 안전하게 보호될 수 있다.In this way, the user's private key was not provided to the user in the first place, the secret key is also not stored in the encryption key issuing server, and the user's secret key cannot be inferred from the hidden secret key stored in the encryption key issuing server. Private keys can be safely protected.

도 4는 본 발명에서 활용되는 암호화키 발급 서버에 사용자가 가입하여 생성된 계좌에 디지털 자산이 입금되는 과정을 설명하는 동작 타이밍도이다.Figure 4 is an operation timing diagram explaining the process of depositing digital assets into an account created by a user signing up for an encryption key issuing server used in the present invention.

도 4를 참조하면, 사용자는 암호화키 발급 서버에서 발급받은 공개키로 디지털 자산을 입금할 것을 거래소에 요청한다. 그러면, 거래소는 사용자로부터 받은 공개키와 자신의 비밀키를 사용하여 디지털 자산을 입금하라는 입금 스크립트를 작성하여 블록체인 네트워크로 전송한다.Referring to Figure 4, the user requests the exchange to deposit digital assets with the public key issued by the encryption key issuing server. Then, the exchange creates a deposit script to deposit digital assets using the public key received from the user and the user's private key and transmits it to the blockchain network.

입금 스크립트를 수신하면, 블록체인 네트워크는 입금 스크립트에 따라서 개인의 공개키에 디지털 자산이 이체되었음을 기록한다. 그리고, 입금이 성공되었는지 여부를 개인에게 송부한다.Upon receiving the deposit script, the blockchain network records the transfer of digital assets to the individual's public key according to the deposit script. Then, a notification is sent to the individual whether the deposit was successful.

본 명세서에서 스크립트란 블록체인 네트워크에서 이루어지는 다양한 동작을 요청하는, 서로 합의된 프로토콜에 따른 일종의 명령문을 가리키는 것이다. A 계좌에서 B 계좌로 디지털 자산을 이체하라는 스크립트에는 A 계좌로부터의 출금과 B 계좌로의 입금의 두 가지 프로세스가 포함될 수 있다. 따라서, 본 명세서에서는 이체 스크립트, 출금 스크립트, 및 입금 스크립트라는 용어가 혼용되어 사용될 수 있다.In this specification, a script refers to a type of command according to a mutually agreed upon protocol that requests various operations performed in a blockchain network. A script to transfer digital assets from account A to account B may include two processes: a withdrawal from account A and a deposit to account B. Therefore, in this specification, the terms transfer script, withdrawal script, and deposit script may be used interchangeably.

도 5는 본 발명에서 활용되는 암호화키 발급 서버에 가입한 사용자의 계좌로부터 디지털 자산을 출금하는 과정을 설명하는 동작 타이밍도이다.Figure 5 is an operation timing diagram explaining the process of withdrawing digital assets from the account of a user who has subscribed to the encryption key issuing server used in the present invention.

우선, 사용자의 계좌(공개키)로부터 디지털 자산을 출금하려면 도 4에서 설명된 바와 같이 사용자의 계좌에 출금할 디지털 자산이 입금되어 있어야 한다.First, in order to withdraw digital assets from the user's account (public key), the digital assets to be withdrawn must be deposited in the user's account, as described in FIG. 4.

출금을 원하는 사용자는 자신의 비밀키를 암호화키 발급 서버로 전송하면서 출금을 요청한다.Users who wish to withdraw money send their secret key to the encryption key issuing server and request withdrawal.

그러면, 암호화키 발급 서버는 수신된 비밀키에 단방향 암호화 알고리즘을 적용하여 암호화된 비밀키를 생성하고, 생성된 비밀키를 저장된 은닉 비밀키와 비교하여 사용자를 인증한다. 두 비밀키가 일치하면 인증된 사용자로부터의 출금 요청임을 알 수 있다.Then, the encryption key issuing server applies a one-way encryption algorithm to the received secret key to generate an encrypted secret key, and compares the generated secret key with the stored hidden secret key to authenticate the user. If the two secret keys match, you can see that the withdrawal request is from an authenticated user.

사용자가 인증되면, 수신된 비밀키로부터 시드키를 유추하고, 이렇게 얻어진 시드키를 바탕으로 사용자의 개인키를 복원한다. 그리고, 사용자가 이비력한 공개키 및 복원된 개인키를 사용하여 출금 스크립트를 생성하여 블록체인 네트워크로 전송한다.When the user is authenticated, the seed key is inferred from the received secret key, and the user's private key is restored based on the seed key obtained in this way. Then, a withdrawal script is created using the public key provided by the user and the restored private key and transmitted to the blockchain network.

블록체인 네트워크는 수신된 출금 스크립트에 따라서 사용자의 계좌로부터 요청된 디지털 자산을 출금한다. 출금된 디지털 자산은 출금 스크립트에 기록된 목적지 계좌로 이체될 수도 있다.The blockchain network withdraws the requested digital assets from the user's account according to the received withdrawal script. Withdrawed digital assets can also be transferred to the destination account recorded in the withdrawal script.

출금이 이루어지면, 블록체인 네트워크는 출금이 성공되었음을 암호화키 발급 서버로 통보하고, 암호화키 발급 서버는 이러한 결과를 바탕으로 출금 성공을 사용자에게 통보한다.When a withdrawal is made, the blockchain network notifies the encryption key issuing server that the withdrawal was successful, and the encryption key issuing server notifies the user of the successful withdrawal based on these results.

전술된 바와 같이 사용자의 계좌로부터 출금을 하기 위해서 필요한 정보는 사용자의 개인키가 아니라 비밀키이기 때문에, 출금을 요청하는 과정에서 개인키가 노출될 위험이 없어진다.As described above, the information required to withdraw money from a user's account is a secret key, not the user's private key, so there is no risk of the private key being exposed in the process of requesting a withdrawal.

도 6은 본 발명에 따른 디지털 자산의 잔고 증명 방법에서 잔고를 증명하는 과정을 설명하는 동작 타이밍도이다.Figure 6 is an operation timing diagram explaining the process of proving the balance in the method for proving the balance of digital assets according to the present invention.

전술된 바와 같이, 제 3 자에게 누구의 계좌에 얼마의 잔고가 있는지를 증명하기 위해서는 암호화키 발급 서버에 가입된 사용자의 신원 정보가 필요할 수 있다. 따라서, 개인은 인증 기관에 의해 인증된 신원 정보를 암호화키 발급 서버에 입력하여 자신임을 증명하게 된다. 이러한 과정은 KYC(know your customer) 인증이라고 불릴 수 있다.As described above, in order to prove to a third party how much balance is in whose account, the identity information of the user registered with the encryption key issuing server may be required. Accordingly, the individual proves his or her identity by entering the identity information authenticated by the certification authority into the encryption key issuing server. This process can be called KYC (know your customer) authentication.

사용자의 KYC 인증이 완료되면, 사용자는 자신의 비밀키를 입력하면서 잔고 증명을 요청한다. 잔고 증명을 위해 필요한 정보 역시 사용자의 개인키가 아니라 비밀키이기 때문에 개인키의 보안이 향상된다.Once the user's KYC authentication is completed, the user enters his or her private key and requests proof of balance. The security of the private key is improved because the information needed to prove the balance is also a secret key, not the user's private key.

비밀키가 입력되면, 암호화키 발급 서버는 입력된 비밀키에 단방향 암호화 알고리즘을 적용한 결과를 저장된 은닉 비밀키와 비교한다.When the secret key is input, the encryption key issuing server compares the result of applying the one-way encryption algorithm to the input secret key with the stored hidden secret key.

두 가지 비밀키가 매칭되면, 암호화키 발급 서버는 전술된 바와 같이 사용자가 입력한 공개키를 사용하여 블록체인 네트워크에서 잔고를 조회한다.When the two secret keys match, the encryption key issuing server searches the balance on the blockchain network using the public key entered by the user as described above.

암호화키 발급 서버가 사용자가 입력한 공개키에 저장된 디지털 자산의 잔고를 확인하면, 인증된 신원 정보를 포함하여 디지털 잔고 증명서를 발급한다. 해당 디지털 잔고 증명서는 어느 누가 얼마의 디지털 자산을 보유하고 있다는 객관적인 증명서로서의 역할을 할 수 있다.When the encryption key issuing server confirms the balance of digital assets stored in the public key entered by the user, it issues a digital balance certificate including authenticated identity information. The digital balance certificate can serve as an objective proof that someone holds how much digital assets.

그러면, 개인은 수신한 디지털 잔고 증명서를 제 3 자에게 제공함으로써 자신의 잔고를 증명할 수 있다.The individual can then prove his or her balance by providing the received digital balance certificate to a third party.

이 과정에서, 암호화키 발급 서버와 블록체인 네트워크 사이의 통신이 SHA-256과 같은 암호화 알고리즘에 의해 암호화되어 진행될 수 있음은 물론이다.In this process, of course, communication between the encryption key issuing server and the blockchain network can be encrypted by an encryption algorithm such as SHA-256.

도 7은 도 6에 의해 잔고가 증명된 자산이 담보로 제공될 경우의 담보 가치를 보장하기 위한 거래 중지 과정을 설명하는 동작 타이밍도이다.FIG. 7 is an operation timing diagram illustrating the transaction suspension process to guarantee the collateral value when the asset whose balance is proven in FIG. 6 is provided as collateral.

디지털 잔고 증명서에 의해 잔고가 증명되면, 해당 자료는 타인에게 담보로서 제공될 수 있다. 담보를 설정할 경우, 담보로 제공되는 디지털 자산의 가치, 담보 기간, 그리고 그 외의 부관과 같은 담보 조건들이 공시될 필요가 있다. 담보 조건을 통하여 특정 사건을 정지 조건으로 하는 담보권의 설정이 가능하다. 예를 들어, 담보권을 설정한 담보권 설정일을 기준으로 디지털 자산의 가치가 변동하는 것을 반영하여 담보권으로 제공된 디지털 자산의 가치를 변경하는 등의 담보 조건을 설정할 수 있다. 즉, 담보 가치가 0.5배가 된다면, 담보권으로 제공된 디지털 자산의 가치를 두 배로 함으로써 담보권의 실질적인 가치를 보장할 수 있다. 이러한 담보 조건은 종래의 담보권에서는 부가할 수 없는 것이었으며, 모든 조건이 투명하게 기록되고 위조나 변조되지 않는 블록체인 네트워크이기 때문에 가능한 것이다.If the balance is proven by a digital balance certificate, the data can be provided as collateral to others. When establishing collateral, collateral conditions such as the value of digital assets provided as collateral, collateral period, and other collateral need to be disclosed. Through collateral conditions, it is possible to establish a security right with a specific event as a suspension condition. For example, collateral conditions can be set, such as changing the value of the digital asset provided as a security right to reflect changes in the value of the digital asset based on the date of establishment of the security right. In other words, if the collateral value increases by 0.5 times, the actual value of the collateral can be guaranteed by doubling the value of the digital asset provided as collateral. These security conditions cannot be added in conventional security rights, and this is possible because it is a blockchain network where all conditions are transparently recorded and cannot be forged or altered.

디지털 자산이 담보로 제공되면, 해당 자산의 출금이 금지되어야 담보권자를 보호할 수 있다. 그러므로, 암호화키 발급 서버는 우선 거래 중지 기간과 담보 조건을 저장하고, 거래 중지 기간에 대응하는 거래 요청은 거절한다. 또한, 암호화키 발급 서버는 거래 중지 확인서를 발급한다.When digital assets are provided as collateral, the withdrawal of those assets must be prohibited to protect secured creditors. Therefore, the encryption key issuing server first stores the transaction suspension period and collateral conditions, and rejects transaction requests corresponding to the transaction suspension period. Additionally, the encryption key issuing server issues a transaction suspension confirmation.

그러면, 사용자는 거래 중지 확인서를 제 3 자에게 제공함으로써 자신이 담보 기간 내에 임의로 자신의 계좌에서 디지털 자산을 출금할 수 없음을 증명하게 된다. 거래 중지 확인서는 암호화키 발급 서버에만 저장될 수도 있고, 블록체인 네트워크에 저장될 수도 있다. 거래 중지가 블록체인 네트워크에 기록될 경우 저당권의 효력이 더욱 보장될 수 있지만, 블록체인 네트워크의 프로토콜에서 저당권 설정과 거래 중지를 지원해야 한다.Then, the user proves that he or she cannot arbitrarily withdraw digital assets from his or her account within the collateral period by providing a transaction suspension confirmation to a third party. The transaction suspension confirmation can be stored only on the encryption key issuing server or on the blockchain network. The effectiveness of the mortgage can be further ensured if the transaction suspension is recorded in the blockchain network, but the protocol of the blockchain network must support the establishment of mortgage and transaction suspension.

필요할 경우, 제 3 자는 거래 중지 확인서의 검증을 암호화키 발급 서버에 요청한다. 이러한 요청에 응답하여, 암호화키 발급 서버는 거래 중지 확인서의 진위를 확인하여 제 3 자에게 통보할 수 있다. 거래 중지 확인서의 진위가 확인되면, 제 3 자는 개인에게 담보 가치를 인정할 수 있다.If necessary, the third party requests verification of the transaction suspension confirmation from the encryption key issuing server. In response to this request, the encryption key issuing server can confirm the authenticity of the transaction suspension confirmation and notify the third party. Once the authenticity of the transaction suspension confirmation is confirmed, the third party can acknowledge the collateral value to the individual.

도 8은 본 발명의 일면에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 방법에서 암호화키 발급 서버 계좌를 생성하고 인출하는 과정을 상세히 나타내는 흐름도이다. 도 8의 (a)는 암호화키를 발급하는 과정을 나타내고, 도 9의 (b)는 생성된 공개키로부터 디지털 자산을 인출하는 과정을 나타낸다.Figure 8 is a flowchart detailing the process of creating and withdrawing an encryption key issuing server account in the method of proving the balance of digital assets using an encryption key issuing server according to one aspect of the present invention. Figure 8(a) shows the process of issuing an encryption key, and Figure 9(b) shows the process of withdrawing digital assets from the generated public key.

우선, BIP-39에 따라서 연상 코드가 입력될 수 있다. BIP39 (Bitcoin Improvement Proposal 39)는 연상 코드(Mnomonic code) 단어에 대해 기술하는 산업 표준을 가리킨다. 연상 코드 단어란 순서대로 나열된 영어 단어에서 시드(Seed)를 만드는 방법으로서, 연상 코드를 사용하면 가상화폐 지갑을 쉽게 복원 할 수 있다.First, an association code can be entered according to BIP-39. BIP39 (Bitcoin Improvement Proposal 39) refers to an industry standard for describing mnomonic code words. Associative code words are a method of creating seeds from English words listed in order. Using associative codes, you can easily restore your virtual currency wallet.

연상 코드로부터 시드 값과 패스 구문이 생성된다. 이러한 단계가 통과되면, 디지털 자산의 가치와 인덱스를 인코딩하여 저장하게 된다. 저장되는 주소는 일반 대중에게 공통적으로 인식될 수 있는 주소이며, 체크섬을 통해서 정보의 오류를 판단한다.Seed values and pass statements are generated from the associative code. Once these steps are passed, the value and index of the digital asset are encoded and stored. The stored address is one that can be commonly recognized by the general public, and errors in information are determined through checksum.

가치와 인덱스가 인코딩되면, 단방향 암호화 알고리즘을 다시 한 번 적용하여 은닉 비밀키를 생성한다. 이와 같이, 본 발명에서는 개인키가 아니라 시드키를 암호화하여 생성된 비밀키에 단방향 암호화 알고리즘을 다시 한번 적용하여 은닉 비밀키를 생성하고 저장하기 때문에, 외부 공격으로부터 개인키를 안전하게 보호할 수 있고, 해킹이 불가능해진다.Once the value and index are encoded, the one-way encryption algorithm is applied once again to generate the hidden secret key. As such, in the present invention, a one-way encryption algorithm is once again applied to the secret key generated by encrypting the seed key rather than the private key to generate and store the hidden secret key, so the private key can be safely protected from external attacks. Hacking becomes impossible.

인코딩이 완료되면 생성된 비밀키와 개인의 신원 정보를 매핑하여 관리하며, 이 과정에서 OTP(one time password)가 활용될 수 있다.Once encoding is completed, the generated secret key and personal identity information are mapped and managed, and OTP (one time password) can be used in this process.

또한, 개인에게 제공된 공개키로부터 디지털 자산을 인출하는 과정이 도 9의 (b)에 예시된다.Additionally, the process of withdrawing digital assets from a public key provided to an individual is illustrated in (b) of FIG. 9.

인출이 요청되면, 공개키가 어느 소유자에게 속하는 것인지를 파악해야 한다. 이 과정에서 이메일과 문자 메시지를 사용한 KYC 인증이 수행된다. 가입자의 신원을 확인할 때 OTP가 활용되어 보안 수준을 높일 수 있는 것은 전술된 바와 같다.When a withdrawal is requested, it is necessary to determine which owner the public key belongs to. During this process, KYC authentication is performed using email and text message. As mentioned above, OTP can be used to increase the level of security when verifying the subscriber's identity.

사용자가 인증되면, 해당 거래를 위해 필요한 개인키를 복원해야 한다. 이를 위하여 사용자로부터 수신된 비밀키로부터 시드키를 유추하고, 유추된 시드키로부터 사용자의 개인키를 복원한다. 비밀키로부터 시드키를 유추하는 복호화 과정에서 사용되는 복호화 기술은 시드키로부터 비밀키를 생성하는 암호화 과정에서 사용된 기술에 대응하는 것이다.Once a user is authenticated, the private key needed for that transaction must be restored. For this purpose, the seed key is inferred from the secret key received from the user, and the user's private key is restored from the inferred seed key. The decryption technology used in the decryption process of inferring the seed key from the secret key corresponds to the technology used in the encryption process of generating the secret key from the seed key.

이러한 과정을 거쳐서 개인키가 얻어지면, 개인키를 활용하여 공개키로 표시되는 계좌로부터 디지털 자산을 인출한다. 전술된 바와 같이, 이렇게 인출된 디지털 자산은 다른 계좌로 송금될 수 있다.Once the private key is obtained through this process, the private key is used to withdraw digital assets from the account represented by the public key. As described above, digital assets thus withdrawn can be transferred to another account.

도 9는 본 발명의 다른 면에 의한 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 시스템을 개략적으로 나타내는 블록도이다.Figure 9 is a block diagram schematically showing a digital asset balance verification system using an encryption key issuing server according to another aspect of the present invention.

도 9를 참조하면, 암호화키 발급 서버를 활용한 디지털 자산의 잔고 증명 시스템(900)은, 거래 정보를 분산 저장하기 위한 블록들의 체인으로 이루어지는 블록체인 네트워크(990), 블록체인 네트워크에서 운용되며, 소유자의 적어도 하나의 거래소 계좌를 포함하고, 디지털 자산의 거래 및 유통을 관리하는 거래소(910), 및 거래소(910) 및 블록체인 네트워크(990)에 액세스하는 사용자(920, 930), 및 디지털 자산의 거래를 위한 암호화키를 사용자에게 발급하는 암호화키 발급 서버(950)를 포함한다.Referring to FIG. 9, the digital asset balance proof system 900 using an encryption key issuing server is operated in a blockchain network 990, a blockchain network consisting of a chain of blocks for distributed storage of transaction information. An exchange 910 that includes at least one exchange account of the owner and manages the trading and distribution of digital assets, and users 920, 930 accessing the exchange 910 and the blockchain network 990, and digital assets. It includes an encryption key issuing server 950 that issues encryption keys for transactions to users.

암호화키 발급 서버(950)는 상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키의 분실시 분실된 개인키를 복원하는데 사용되는 시드키를 생성하는 동작, 시드키를 바탕으로 사용자에게 고유한 개인키 및 블록체인 네트워크(990)에서 디지털 자산을 저장하기 위한 사용자(920, 930)의 계좌를 나타내는 공개키를 생성하는 동작, 시드키에 암호화 알고리즘을 적용하여 비밀키를 생성하여 사용자(920, 930)에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키를 생성하여 저장하는 동작, 및 디지털 자산의 출금이 요청되면, 사용자(920, 930)가 입력한 비밀키를 암호화하여 은닉 비밀키와 비교하여 인증하며, 입력된 비밀키가 인증되면 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 블록체인 네트워크(990)에서 디지털 자산의 출금을 수행하는 동작을 수행하도록 구성된다.The encryption key issuing server 950 responds to a request from a user who has subscribed to the encryption key issuing server, generates a seed key used to restore the lost private key when the private key is lost, and generates a seed key for the user based on the seed key. An operation of generating a private key unique to the user and a public key representing the account of the user (920, 930) for storing digital assets in the blockchain network (990), applying an encryption algorithm to the seed key to generate a secret key to the user An operation of generating and storing a hidden secret key by providing it to (920, 930) and applying a one-way encryption algorithm to the generated secret key, and when withdrawal of digital assets is requested, the secret key entered by the user (920, 930) It is encrypted and authenticated by comparing it with the hidden secret key. When the entered secret key is authenticated, the seed key is inferred to restore the user's private key, and the public key and restored private key are used to digitally register the key in the blockchain network (990). It is configured to perform an operation to perform a withdrawal of assets.

특히, 암호화키 발급 서버(950)는, 사용자가 디지털 자산의 잔고 증명을 요청할 경우, 사용자가 입력한 비밀키를 인증하고, 인증된 사용자(920, 930)의 공개키를 사용하여 블록체인 네트워크(990)에서 사용자의 디지털 자산의 잔고를 확인하여 제공하는 잔고 증명 동작도 수행할 수 있다.In particular, when the user requests proof of the balance of digital assets, the encryption key issuing server 950 authenticates the secret key entered by the user and uses the public key of the authenticated user 920, 930 to create a blockchain network ( 990), the balance proof operation provided by checking the balance of the user's digital assets can also be performed.

본 발명에서 인증 기관에서 발급한 증명서를 통해 소유자의 신원 정보를 인증하는 과정은 KYC(know your customer) 인증 단계라고 불릴 수 있으며, 이러한 고객 확인 절차는 고객의 신원을 식별하고 확인하는(verify) 업무 절차를 뜻한다. 이는 특히 은행, 보험, 수출 금융 등 금융 업무 절차나 자금 세탁 방지(AML; Anti-Money Laundering) 규제에서 자주 거론된다.In the present invention, the process of authenticating the owner's identity information through a certificate issued by a certification authority can be called the KYC (know your customer) authentication step, and this customer verification process involves the task of identifying and verifying the customer's identity. It means procedure. This is especially frequently discussed in financial business procedures such as banking, insurance, and export finance, and in anti-money laundering (AML) regulations.

고객 확인 절차의 목적은 주로 은행이 자금 세탁 행위 등의 범죄 요소로 악용되는 것을 예방하는 것이다. 또한, 고객 확인 절차를 통하여 블록체인 네트워크의 익명성을 악용하여 디지털 자산이 범죄에 활용되는 것을 방지할 수 있고, 종래에 제도권 밖에서 운용되어 온 디지털 자산을 제도권 내로 편입시켜서 안전하게 보호할 수 있는 장점이 생긴다.The purpose of the customer verification process is primarily to prevent banks from being misused as criminal elements, such as money laundering activities. In addition, through the customer verification process, it is possible to prevent digital assets from being used for crimes by abusing the anonymity of the blockchain network, and has the advantage of safely protecting digital assets that have been operated outside the institutional system by incorporating them into the institutional system. It happens.

고객 확인 절차를 위하여 다양한 신원 정보가 활용될 수 있다. 예를 들어, 이메일/휴대폰의 본인 인증, 계좌 인증, 증빙서류, 거주지 주소 및 연락처 등의 다양한 정보가 활용될 수 있으며, 여권 정보 등은 공인된 인증 기관의 인증을 거쳐서 활용될 수 있다. 이와 같이, KYC 인증 단계를 통하여 블록체인 기술의 장점과 거래의 실명화 양자 모두를 구현할 수 있다.A variety of identity information may be used for customer verification procedures. For example, various information such as email/mobile phone identity verification, account verification, supporting documents, residential address and contact information can be used, and passport information, etc. can be used after authentication by an accredited certification agency. In this way, both the advantages of blockchain technology and the realization of transactions can be realized through the KYC authentication step.

고객의 신원 정보가 인증되면, 암호화키 발급 서버(950)는 신원 정보가 인증된 소유자에게 공개키 및 개인키를 발급한다. 이 과정에서 시드키가 활용될 수 있으며, 시드키는 비밀키를 생성하는 데에 사용될 수도 있음은 전술된 바와 같다.When the customer's identity information is authenticated, the encryption key issuing server 950 issues a public key and a private key to the owner whose identity information has been authenticated. As described above, a seed key can be used in this process, and the seed key can also be used to generate a secret key.

또한, 본 발명에 의한 암호화키 발급 서버(950)는 개인키도 비밀키도 저장하지 않으며, 비밀키를 다시 한번 암호화한 은닉 비밀키만 저장함으로써 보안 수준을 향상시키는 것도 전술된 바와 같다. 전술된 바와 같이, 암호화키 발급 서버(950)는 사용자가 입력한 비밀키로부터 시드키를 복호화하고, 복호화된 시드키로부터 사용자의 개인키를 복원할 수 있다.In addition, as described above, the encryption key issuing server 950 according to the present invention stores neither the private key nor the secret key, and improves the security level by storing only the hidden secret key that encrypts the secret key again. As described above, the encryption key issuing server 950 can decrypt the seed key from the secret key entered by the user and restore the user's private key from the decrypted seed key.

사용자가 디지털 자산의 인출 또는 잔고 증명을 요청하면, 암호화키 발급 서버(950)는 사용자가 입력한 공개키 및 복원된 개인키를 사용하여 인출 스크립트를 작성하고, 작성된 스크립트를 블록체인 네트워크(990)로 전송한다.When a user requests withdrawal of digital assets or proof of balance, the encryption key issuing server (950) creates a withdrawal script using the public key and restored private key entered by the user, and sends the written script to the blockchain network (990). send to

본 발명에서 암호화키 발급 서버는 종래의 디지털 자산의 거래소와는 다음의 측면에서 다르다.In the present invention, the encryption key issuing server differs from the conventional digital asset exchange in the following aspects.

첫째, 암호화키 발급 서버는 KYC 인증을 거친 소유자의 계좌를 관리하기 때문에, 소유자의 실명을 통한 거래를 수행할 수 있다. 따라서, 디지털 자산의 거래가 투명해지는 장점이 생긴다.First, because the encryption key issuing server manages the KYC-verified owner's account, transactions can be performed using the owner's real name. Therefore, there is an advantage in that digital asset transactions become transparent.

둘째, 암호화키 발급 서버에 저장된 계좌는 소유자의 신원 정보를 통해서도 접근가능하다. 종래에는 디지털 자산의 거래를 위해서 거래소별로 계좌 정보와 개인키를 알고 있어야 하고, 둘 중 하나라도 분실되거나 잊어버리게 되면 해당 디지털 자산에는 영원히 접근할 수 없게 되어 소중한 디지털 자산이 망실되는 경우가 있었다. 하지만, 본 발명에 의한 암호화키 발급 서버를 활용하면, 소유자는 자신의 암호화키 발급 서버에 대한 계좌 정보만 기억하고 있으면 되고, 해당 계좌에는 복잡한 암호 뿐만 아니라 자신의 신원 정보를 활용해서도 접근할 수 있다. 이 경우 OTP와 같은 기술이 활용되어 보안을 강화할 수도 있다.Second, the account stored on the encryption key issuing server can also be accessed through the owner's identity information. Previously, in order to trade digital assets, you had to know the account information and private key for each exchange, and if either one was lost or forgotten, the corresponding digital asset could not be accessed forever, leading to the loss of valuable digital assets. However, by using the encryption key issuing server according to the present invention, the owner only needs to remember account information for his/her encryption key issuing server, and the account can be accessed using not only a complex password but also the user's own identity information. there is. In this case, technologies such as OTP can be used to enhance security.

셋째, 보안 센서는 비밀키를 암호화하여 은닉 비밀키를 생성하고 저장하기 때문에, 비밀키의 유출을 원천적으로 방지할 수 있다. 이것은 개인키를 이중 비밀키를 사용하여 대체하는 것으로 이해될 수도 있다.Third, because the security sensor encrypts the secret key and generates and stores the hidden secret key, it can fundamentally prevent the leakage of the secret key. This can also be understood as replacing the private key with a double secret key.

넷째, 본 발명에 의한 암호화키 발급 서버에서는 독자적인 보안 솔루션을 통해서 저장된 모든 정보를 관리하기 때문에 해킹이 불가능하고, 개인키의 분실, 탈취, 복사, 해킹이 불가능하다.Fourth, since the encryption key issuing server according to the present invention manages all stored information through its own security solution, hacking is impossible, and the loss, theft, copying, or hacking of the private key is impossible.

마지막으로, 본 발명에 의한 암호화키 발급 서버에서는 개인의 신원 정보와 함께 보유하고 있는 디지털 자산의 잔고를 증명할 수 있기 때문에 디지털 자산이 담보로 제공될 수 있게 할 수 있으며, 담보 조건에 따른 디지털 자산의 인출을 방지할 수 있으므로 담보물의 가치를 유지시킬 수 있다.Lastly, the encryption key issuing server according to the present invention can prove the balance of digital assets held along with personal identity information, so digital assets can be provided as collateral, and digital assets can be provided as collateral according to collateral conditions. Since withdrawals can be prevented, the value of the collateral can be maintained.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.The present invention has been described with reference to the embodiments shown in the drawings, but these are merely exemplary, and those skilled in the art will understand that various modifications and other equivalent embodiments are possible therefrom.

또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다. Additionally, the method according to the present invention can be implemented as computer-readable code on a computer-readable recording medium. Computer-readable recording media may include all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices, and can also be implemented in the form of a carrier wave (e.g., transmitted via the Internet). Includes. Additionally, the computer-readable recording medium may store computer-readable code that can be executed in a distributed manner by a distributed computer system connected to a network.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다. 그리고, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. In the terms used in this specification, singular expressions should be understood to include plural expressions, unless clearly interpreted differently from the context, and terms such as “including” refer to the described features, numbers, steps, operations, and components. , it means the existence of parts or a combination thereof, but should be understood as not excluding the possibility of the presence or addition of one or more other features, numbers, step operation components, parts, or combinations thereof. In addition, terms such as "... unit", "... unit", "module", and "block" used in the specification refer to a unit that processes at least one function or operation, which is hardware, software, or hardware. and software.

따라서, 본 실시예 및 본 명세서에 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시예는 모두 본 발명의 권리범위에 포함되는 것이 자명하다고 할 것이다.Accordingly, the present embodiment and the drawings attached to this specification only clearly show a part of the technical idea included in the present invention, and those skilled in the art can easily understand the technical idea included in the specification and drawings of the present invention. It will be obvious that all inferable modifications and specific embodiments are included in the scope of the present invention.

본 발명은 블록체인 기술에 적용될 수 있고, 특히 거래소의 보안 수준에도 불구하고 디지털 자산을 안전하게 보관하고 디지털 자산을 활용한 재산 증명을 가능하게 하는 디지털 자산 거래 분야에 적용될 수 있다.The present invention can be applied to blockchain technology, and especially to the field of digital asset trading, which safely stores digital assets despite the security level of the exchange and enables property verification using digital assets.

910 : 거래소 920, 930 : 사용자
950 : 암호화키 발급 서버 990 : 블록체인 네트워크
910: Exchange 920, 930: User
950: Encryption key issuing server 990: Blockchain network

Claims (14)

블록체인 네트워크에서 유통되는 디지털 자산을 소유한 사용자가 보유한 잔고를 증명하기 위한 잔고 증명 서비스를 제공하는 방법으로서,
디지털 자산의 거래를 위한 암호화키를 발급하는 암호화키 발급 서버에서, 상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키(private key)의 분실시 분실된 개인키를 복원하는데 사용되는 시드키(seed key)를 생성하는 단계;
상기 암호화키 발급 서버에서, 상기 시드키를 바탕으로 사용자에게 고유한 개인키 및 상기 블록체인 네트워크에서 상기 디지털 자산을 저장하기 위한 사용자의 계좌를 나타내는 공개키(public key)를 생성하는 단계;
상기 암호화키 발급 서버에서, 상기 시드키에 암호화 알고리즘을 적용하여 비밀키(secret key)를 생성하여 상기 공개키와 함께 사용자에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키(concealed secret key)를 생성하여 저장하는 단계; 및
디지털 자산의 출금이 요청되면, 상기 암호화키 발급 서버에서, 사용자가 입력한 비밀키를 암호화하여 상기 은닉 비밀키와 비교하여 인증하며, 입력된 비밀키가 인증되면 상기 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 디지털 자산의 출금을 수행하는 단계를 포함하고,
사용자가 상기 디지털 자산의 잔고 증명을 요청할 경우, 상기 암호화키 발급 서버에서, 사용자가 입력한 비밀키를 인증하고, 인증된 사용자의 공개키를 사용하여 상기 블록체인 네트워크에서 사용자의 디지털 자산의 잔고를 확인하여 사용자에게 제공하는 잔고 증명 단계를 더 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
As a method of providing a balance verification service to prove the balance held by a user who owns digital assets distributed in a blockchain network,
In the encryption key issuing server that issues encryption keys for trading digital assets, in response to a request from a user who has joined the encryption key issuing server, the device is used to restore the lost private key when the private key is lost. Generating a seed key;
Generating, at the encryption key issuing server, a private key unique to the user based on the seed key and a public key representing the user's account for storing the digital asset in the blockchain network;
In the encryption key issuing server, an encryption algorithm is applied to the seed key to generate a secret key and provided to the user along with the public key, and a one-way encryption algorithm is applied to the generated secret key to create a hidden secret key ( Generating and storing a concealed secret key; and
When withdrawal of digital assets is requested, the encryption key issuing server encrypts the secret key entered by the user and authenticates it by comparing it with the hidden secret key. When the entered secret key is authenticated, the seed key is inferred and the user's personal information is verified. Recovering the key and performing withdrawal of digital assets from the blockchain network using the public key and the restored private key,
When a user requests proof of the balance of the digital asset, the encryption key issuing server authenticates the secret key entered by the user, and uses the public key of the authenticated user to verify the balance of the user's digital asset in the blockchain network. A method of proving the balance of a digital asset, characterized in that it further includes a balance proof step of confirming and providing it to the user.
삭제delete 제1항에 있어서,
상기 방법은,
인증 기관에서 발급한 신원 증명서를 통해 상기 암호화키 발급 서버가 소유자의 신원 정보를 인증하는 KYC(know your customer) 인증 단계를 포함하고,
상기 잔고 증명 단계는,
상기 사용자의 요청에 응답하여, 상기 암호화키 발급 서버가 신원 정보가 인증된 사용자의 디지털 자산의 잔고와 사용자의 신원 정보를 포함하는 디지털 잔고 증명서를 생성하여 사용자에게 제공하는 것을 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
According to paragraph 1,
The method is:
It includes a KYC (know your customer) authentication step in which the encryption key issuing server authenticates the owner's identity information through an identity certificate issued by a certification authority,
The balance verification step is,
In response to the user's request, the encryption key issuing server generates a digital balance certificate containing the user's identity information and the balance of the user's digital assets whose identity information is authenticated, and provides the user to the user. , A method of proving the balance of digital assets.
제3항에 있어서,
상기 디지털 잔고 증명서는 제 3 자에게 사용자의 디지털 자산을 증명하는 담보로서 제공될 수 있고,
상기 방법은,
상기 디지털 잔고 증명서가 제 3 자에게 담보로서 제공될 경우, 상기 암호화키 발급 서버가 담보로서 제공된 디지털 자산의 담보 가치 및 담보 조건에 기반하여 상기 디지털 자산이 상기 사용자의 계좌로부터 다른 계좌로 송금되는 것을 금지하여, 상기 담보 조건에 따라서 디지털 자산의 담보 가치를 보장하는 단계를 더 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
According to paragraph 3,
The digital balance certificate can be provided to a third party as collateral to prove the user's digital assets,
The method is:
When the digital balance certificate is provided as collateral to a third party, the encryption key issuing server ensures that the digital assets are transferred from the user's account to another account based on the collateral value and collateral conditions of the digital assets provided as collateral. A method for proving the balance of a digital asset, further comprising the step of guaranteeing the collateral value of the digital asset according to the collateral conditions.
제3항에 있어서,
상기 시드키는 사용자의 IP 주소, 사용자가 상기 암호화키 발급 서버에 접속하는데 사용한 디바이스의 MAC 주소, 브라우저 버전, 접속 시간, 이메일 주소 중 적어도 하나를 사용하여 생성되고,
상기 신원 증명서는 사용자의 주민 번호, 사진, 생체 정보, 휴대 전화 정보 중 적어도 하나를 사용하여 발급되는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
According to paragraph 3,
The seed key is generated using at least one of the user's IP address, the MAC address of the device used by the user to access the encryption key issuing server, browser version, access time, and email address,
A method for proving the balance of digital assets, characterized in that the identity certificate is issued using at least one of the user's resident registration number, photo, biometric information, and mobile phone information.
제3항에 있어서,
상기 KYC 인증 단계는,
상기 디지털 자산의 거래 시에 원타임 패스워드(one time password; OTP)를 사용하여 보안 수준을 높이도록 구성되는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
According to paragraph 3,
The KYC authentication step is,
A method for proving the balance of digital assets, characterized in that it is configured to increase the level of security by using a one time password (OTP) when trading the digital assets.
제1항에 있어서,
상기 디지털 자산의 출금을 수행하는 단계는,
상기 사용자가 디지털 자산의 출금을 요청하면서 입력한 비밀키를 단방향 암호화하여 암호화된 비밀키를 생성하는 것,
생성된 암호화된 비밀키를 저장된 은닉 비밀키와 비교하고, 암호화된 비밀키가 은닉 비밀키와 일치하면 시드키를 유추하여 사용자의 개인키를 복원하는 것,
디지털 자산의 출금 목적지의 공개키를 포함하는 출금 스크립트를 생성하고, 생성된 출금 스크립트를 사용자의 복원된 개인키로 서명하며, 서명된 출금 스크립트를 암호화하여 블록체인 네트워크로 전송하는 것, 및
상기 블록체인 네트워크로부터 출금 결과를 수신하여 사용자에게 제공하는 것을 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 방법.
According to paragraph 1,
The step of performing the withdrawal of the digital asset is,
Generating an encrypted secret key by one-way encrypting the secret key entered by the user when requesting withdrawal of digital assets,
Comparing the generated encrypted secret key with the stored hidden secret key, and if the encrypted secret key matches the hidden secret key, inferring the seed key to restore the user's private key;
Generating a withdrawal script containing the public key of the digital asset withdrawal destination, signing the generated withdrawal script with the user's restored private key, encrypting the signed withdrawal script and transmitting it to the blockchain network, and
A method for proving the balance of digital assets, comprising receiving a withdrawal result from the blockchain network and providing it to the user.
블록체인 네트워크에서 유통되는 디지털 자산을 소유한 사용자가 보유한 잔고를 증명하기 위한 잔고 증명 시스템으로서,
디지털 자산의 거래를 위한 암호화키를 발급하는 암호화키 발급 서버를 포함하고,
상기 암호화키 발급 서버는,
상기 암호화키 발급 서버에 가입한 사용자의 요청에 응답하여, 개인키(private key)의 분실시 분실된 개인키를 복원하는데 사용되는 시드키(seed key)를 생성하는 동작;
상기 시드키를 바탕으로 사용자에게 고유한 개인키 및 상기 블록체인 네트워크에서 상기 디지털 자산을 저장하기 위한 사용자의 계좌를 나타내는 공개키(public key)를 생성하는 동작;
상기 시드키에 암호화 알고리즘을 적용하여 비밀키(secret key)를 생성하여 상기 공개키와 함께 사용자에게 제공하고, 생성된 비밀키에 단방향 암호화 알고리즘을 적용하여 은닉 비밀키(concealed secret key)를 생성하여 저장하는 동작; 및
디지털 자산의 출금이 요청되면, 사용자가 입력한 비밀키를 암호화하여 상기 은닉 비밀키와 비교하여 인증하며, 입력된 비밀키가 인증되면 상기 시드키를 유추하여 사용자의 개인키를 복원하며, 공개키 및 복원된 개인키를 사용하여 상기 블록체인 네트워크에서 디지털 자산의 출금을 수행하는 동작을 수행하도록 구성되고,
상기 암호화키 발급 서버는,
사용자가 상기 디지털 자산의 잔고 증명을 요청할 경우, 사용자가 입력한 비밀키를 인증하고, 인증된 사용자의 공개키를 사용하여 상기 블록체인 네트워크에서 사용자의 디지털 자산의 잔고를 확인하여 사용자에게 제공하는 잔고 증명 동작을 더 수행하도록 구성되는 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
It is a balance proof system to prove the balance held by users who own digital assets distributed in the blockchain network,
It includes an encryption key issuing server that issues encryption keys for trading digital assets,
The encryption key issuing server is,
In response to a request from a user who has subscribed to the encryption key issuing server, generating a seed key used to restore the lost private key when the private key is lost;
An operation of generating a private key unique to the user based on the seed key and a public key representing the user's account for storing the digital asset in the blockchain network;
By applying an encryption algorithm to the seed key, a secret key is generated and provided to the user along with the public key, and a one-way encryption algorithm is applied to the generated secret key to generate a concealed secret key. The action of saving; and
When withdrawal of digital assets is requested, the secret key entered by the user is encrypted and authenticated by comparing it with the hidden secret key. When the entered secret key is authenticated, the seed key is inferred to restore the user's private key, and the public key is And configured to perform an operation to withdraw digital assets from the blockchain network using the restored private key,
The encryption key issuing server is,
When a user requests proof of the balance of the digital asset, the private key entered by the user is authenticated, and the balance of the user's digital asset is confirmed in the blockchain network using the authenticated user's public key, and the balance is provided to the user. A balance verification system for digital assets, characterized in that it is configured to further perform verification operations.
삭제delete 제8항에 있어서,
상기 암호화키 발급 서버는,
인증 기관에서 발급한 신원 증명서를 통해 상기 암호화키 발급 서버가 소유자의 신원 정보를 인증하는 KYC(know your customer) 인증 동작을 더 수행하도록 구성되고,
상기 잔고 증명 동작은,
상기 사용자의 요청에 응답하여, 상기 암호화키 발급 서버가 신원 정보가 인증된 사용자의 디지털 자산의 잔고와 사용자의 신원 정보를 포함하는 디지털 잔고 증명서를 생성하여 사용자에게 제공하는 것을 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
According to clause 8,
The encryption key issuing server is,
The encryption key issuing server is configured to further perform a KYC (know your customer) authentication operation to authenticate the owner's identity information through an identity certificate issued by a certification authority,
The balance proof operation is,
In response to the user's request, the encryption key issuing server generates a digital balance certificate containing the user's identity information and the balance of the user's digital assets whose identity information is authenticated, and provides the user to the user. , a balance proof system for digital assets.
제10항에 있어서,
상기 디지털 잔고 증명서는 제 3 자에게 사용자의 디지털 자산을 증명하는 담보로서 제공될 수 있고,
상기 암호화키 발급 서버는,
상기 디지털 잔고 증명서가 제 3 자에게 담보로서 제공될 경우, 담보로서 제공된 디지털 자산의 담보 가치 및 담보 조건에 기반하여 상기 디지털 자산이 상기 사용자의 계좌로부터 다른 계좌로 송금되는 것을 금지하여, 상기 담보 조건에 따라서 디지털 자산의 담보 가치를 보장하는 동작을 더 수행하도록 구성되는 것을 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
According to clause 10,
The digital balance certificate can be provided to a third party as collateral to prove the user's digital assets,
The encryption key issuing server is,
When the digital balance certificate is provided as collateral to a third party, the digital assets are prohibited from being transferred from the user's account to another account based on the collateral value and collateral conditions of the digital assets provided as collateral, and the collateral conditions are Accordingly, a balance proof system for digital assets, characterized in that it is configured to further perform an operation to guarantee the collateral value of the digital assets.
제10항에 있어서,
상기 시드키는 사용자의 IP 주소, 사용자가 상기 암호화키 발급 서버에 접속하는데 사용한 디바이스의 MAC 주소, 브라우저 버전, 접속 시간, 이메일 주소 중 적어도 하나를 사용하여 생성되고,
상기 신원 증명서는 사용자의 주민 번호, 사진, 생체 정보, 휴대 전화 정보 중 적어도 하나를 사용하여 발급되는 것을 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
According to clause 10,
The seed key is generated using at least one of the user's IP address, the MAC address of the device used by the user to access the encryption key issuing server, browser version, access time, and email address,
A digital asset balance verification system, characterized in that the identity certificate is issued using at least one of the user's resident registration number, photo, biometric information, and mobile phone information.
제10항에 있어서,
상기 암호화키 발급 서버는,
상기 KYC 인증 동작을 수행할 때 상기 디지털 자산의 거래 시에 원타임 패스워드(one time password; OTP)를 사용하여 보안 수준을 높이도록 구성되는 것을 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
According to clause 10,
The encryption key issuing server is,
A balance verification system for digital assets, characterized in that it is configured to increase the level of security by using a one-time password (OTP) when performing the KYC authentication operation when trading the digital assets.
제8항에 있어서,
상기 디지털 자산의 출금을 수행하는 동작은,
상기 사용자가 디지털 자산의 출금을 요청하면서 입력한 비밀키를 단방향 암호화하여 암호화된 비밀키를 생성하는 것,
생성된 암호화된 비밀키를 저장된 은닉 비밀키와 비교하고, 암호화된 비밀키가 은닉 비밀키와 일치하면 시드키를 유추하여 사용자의 개인키를 복원하는 것,
디지털 자산의 출금 목적지의 공개키를 포함하는 출금 스크립트를 생성하고, 생성된 출금 스크립트를 사용자의 복원된 개인키로 서명하며, 서명된 출금 스크립트를 암호화하여 블록체인 네트워크로 전송하는 것, 및
상기 블록체인 네트워크로부터 출금 결과를 수신하여 사용자에게 제공하는 것을 포함하는 것을 특징으로 하는, 디지털 자산의 잔고 증명 시스템.
According to clause 8,
The operation of performing the withdrawal of the digital asset is,
Generating an encrypted secret key by one-way encrypting the secret key entered by the user when requesting withdrawal of digital assets,
Comparing the generated encrypted secret key with the stored hidden secret key, and if the encrypted secret key matches the hidden secret key, inferring the seed key to restore the user's private key;
Generating a withdrawal script containing the public key of the digital asset withdrawal destination, signing the generated withdrawal script with the user's restored private key, encrypting the signed withdrawal script and transmitting it to the blockchain network, and
A balance proof system for digital assets, comprising receiving a withdrawal result from the blockchain network and providing it to the user.
KR1020210159873A 2021-09-09 2021-11-19 Method and system for certifying balance of digital asset Active KR102689322B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210120452 2021-09-09
KR1020210120452 2021-09-09

Publications (2)

Publication Number Publication Date
KR20230037419A KR20230037419A (en) 2023-03-16
KR102689322B1 true KR102689322B1 (en) 2024-07-29

Family

ID=85985211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210159873A Active KR102689322B1 (en) 2021-09-09 2021-11-19 Method and system for certifying balance of digital asset

Country Status (1)

Country Link
KR (1) KR102689322B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050832A1 (en) * 2016-02-23 2019-02-14 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
KR102140332B1 (en) * 2020-04-07 2020-07-31 블랍스 주식회사 Method, apparatus and computer program for dealing cryptocurrency using dapp blockchain electronic wallet

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101673073B1 (en) 2015-02-25 2016-11-04 이진희 Dealing method of Crypto-currency base on Blockchain System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050832A1 (en) * 2016-02-23 2019-02-14 nChain Holdings Limited Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system based on smart contracts
KR102140332B1 (en) * 2020-04-07 2020-07-31 블랍스 주식회사 Method, apparatus and computer program for dealing cryptocurrency using dapp blockchain electronic wallet

Also Published As

Publication number Publication date
KR20230037419A (en) 2023-03-16

Similar Documents

Publication Publication Date Title
EP3073670B1 (en) A system and a method for personal identification and verification
Kim et al. Risk management to cryptocurrency exchange and investors guidelines to prevent potential threats
Fatima E-banking security issues-Is there a solution in biometrics?
US7717337B2 (en) Anti-crime online transaction system
US20060123465A1 (en) Method and system of authentication on an open network
US20110142234A1 (en) Multi-Factor Authentication Using a Mobile Phone
US20070110282A1 (en) Protecting social security numbers from identity theft
US20050055318A1 (en) Secure PIN management
JP2009048627A (en) Method and apparatus for performing delegated transactions
US20130024377A1 (en) Methods And Systems For Securing Transactions And Authenticating The Granting Of Permission To Perform Various Functions Over A Network
AU2021248569A1 (en) System and method of automated know-your-transaction checking in digital asset transactions
Ahmed et al. A self-sovereign identity architecture based on blockchain and the utilization of customer’s banking cards: The case of bank scam calls prevention
Vijayan et al. Digital payments: blockchain based security concerns and future
KR20200129799A (en) Banking service providing system and method using cryptocurrency
Kaman et al. Remote user authentication using a voice authentication system
Reno Multifactor authentication: Its time has come
US20220188836A1 (en) Anti-Money Laundering Blockchain Technology
Tressa et al. Blockchain Based UPI Technology for Secured Peer-to-Peer Cryptocurrency Transactions
KR102689322B1 (en) Method and system for certifying balance of digital asset
JP7540638B2 (en) Private key operation simplification system
Arnone Security and privacy in the digital currency space
N'Gumah Evaluating security in cryptocurrency wallets
Chauhan et al. Online Money Transaction Security
Rizvi et al. Protecting financial transactions through networks and point of sales
JP2017174005A (en) Transaction lock system and transaction lock method for financial institution

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20211119

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20231128

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240711

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20240724

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20240724

End annual number: 3

Start annual number: 1

PG1601 Publication of registration