KR20210045326A - Key management mechanism for cryptocurrency wallet - Google Patents

Key management mechanism for cryptocurrency wallet Download PDF

Info

Publication number
KR20210045326A
KR20210045326A KR1020200133635A KR20200133635A KR20210045326A KR 20210045326 A KR20210045326 A KR 20210045326A KR 1020200133635 A KR1020200133635 A KR 1020200133635A KR 20200133635 A KR20200133635 A KR 20200133635A KR 20210045326 A KR20210045326 A KR 20210045326A
Authority
KR
South Korea
Prior art keywords
database
private key
key
transaction
cryptocurrency
Prior art date
Application number
KR1020200133635A
Other languages
Korean (ko)
Other versions
KR102446985B1 (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 KR20210045326A publication Critical patent/KR20210045326A/en
Application granted granted Critical
Publication of KR102446985B1 publication Critical patent/KR102446985B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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
    • 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/0822Key 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 key encryption 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Lighters Containing Fuel (AREA)
  • Purses, Travelling Bags, Baskets, Or Suitcases (AREA)
  • Supports Or Holders For Household Use (AREA)

Abstract

The present invention relates to a key management mechanism for a cryptocurrency wallet. According to an embodiment, a key management method of a cryptocurrency exchange server comprises the followings steps of: encrypting a private key generated in response to a cryptocurrency wallet of a user and storing it in a first database; storing a decryption key of the private key in a second database; and updating the encrypted private key stored in the first database and the decryption key stored in the second database based on a predetermined update condition.

Description

암호화폐 지갑을 위한 키 관리 메커니즘{KEY MANAGEMENT MECHANISM FOR CRYPTOCURRENCY WALLET}Key management mechanism for cryptocurrency wallet {KEY MANAGEMENT MECHANISM FOR CRYPTOCURRENCY WALLET}

암호화폐 지갑을 위한 키 관리 메커니즘에 관한 것이다.It relates to the key management mechanism for cryptocurrency wallets.

암호화폐의 유통 및 사용이 널리 보편화되고 있다. 이러한 암호화폐는 독립 거래의 대상으로 여러 시스템을 통해 거래가 이루어지고 있다. The distribution and use of cryptocurrencies are becoming widespread. These cryptocurrencies are subject to independent transactions and are traded through various systems.

암호화폐 지갑은 블록체인을 통해 암호화폐의 거래가 가능하도록 하는 본인 지갑의 개인키를 관리하는 소프트웨어 프로그램을 의미한다. 개인키를 알면 지갑의 소유권을 갖게 되고, 개인키가 외부에 노출될 경우 타인에 의한 암호화폐 거래가 가능하기 때문에 이를 관리하는 암호화폐 지갑은 해킹으로부터 안전하게 관리되어야 할 필요성이 있다. 기존의 보안을 위한 방안으로 네트워크를 외부와 분리시켜 접근을 차단하는 방법 등이 있으나 내부자에 의한 방어에는 취약한 단점이 있어 보안을 강화하기 위한 기술이 개발되고 있다.Cryptocurrency wallet refers to a software program that manages the private key of the user's wallet that enables cryptocurrency transactions through the blockchain. If you know the private key, you have ownership of the wallet, and if the private key is exposed to the outside, cryptocurrency transactions by others are possible, so there is a need for a cryptocurrency wallet that manages it to be safely managed from hacking. As a method for existing security, there is a method of blocking access by separating the network from the outside, but there is a weak disadvantage in defense by an insider, and a technology to strengthen security is being developed.

실시예는 암호화폐 거래소에서 암호화폐 거래와 관련된 키를 안전하게 관리하는 기술을 제공할 수 있다.The embodiment may provide a technology for securely managing keys related to cryptocurrency transactions in a cryptocurrency exchange.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem is not limited to the above-described technical problems, and other technical problems may exist.

일 측에 따른 암호화폐 거래소 서버의 키 관리 방법은, 상기 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하는 단계; 상기 거래가 없는 경우, 상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여 제1 데이터베이스에 저장된 암호화된 개인 키를 갱신하는 단계; 및 상기 임의의 사용자의 암호화폐 지갑에 대응하여 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하는 단계; 및 상기 거래가 있는 경우, 상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는 단계를 포함한다.The key management method of a cryptocurrency exchange server according to one side includes: checking whether there is an unsigned cryptocurrency transaction in connection with the server; Updating the encrypted private key stored in the first database in response to the cryptocurrency wallet of any user registered in the server when there is no transaction; And updating a decryption key of the encrypted private key stored in a second database corresponding to the cryptocurrency wallet of the user. And if there is the transaction, performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction.

상기 암호화된 개인 키를 갱신하는 단계는 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계; 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하는 단계; 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계; 상기 획득된 복호화 키를 변경하는 단계; 및 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계를 포함할 수 있다.The updating of the encrypted private key may include obtaining a corresponding encrypted private key from the first database, corresponding to each of the encrypted private keys stored in the first database; Obtaining a decryption key corresponding to the obtained encrypted private key from the second database; Decrypting the obtained encrypted private key with the obtained decryption key; Changing the obtained decryption key; And re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database.

상기 복호화 키를 갱신하는 단계는 상기 변경된 복호화 키를 상기 제2 데이터베이스에 저장하는 단계를 포함할 수 있다.Updating the decryption key may include storing the changed decryption key in the second database.

상기 거래를 수행하는 단계는 상기 제1 데이터베이스에서 상기 거래에 대응하는 암호화된 개인 키를 획득하는 단계; 상기 제2 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하는 단계; 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계; 상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하는 단계; 및 상기 수행된 거래의 내역을 저장하는 단계를 포함할 수 있다.The performing of the transaction may include obtaining an encrypted private key corresponding to the transaction from the first database; Obtaining a decryption key corresponding to the obtained encrypted private key from the second database; Decrypting the obtained encrypted private key with the obtained decryption key; Performing the transaction based on the decrypted private key; And storing the details of the performed transaction.

상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한될 수 있다.The second database may be restricted to an access target based on network security.

상기 암호화폐 거래소 서버의 키 관리 방법은 제1 사용자의 요청에 반응하여, 상기 제1 사용자의 제1 암호화폐 지갑 및 상기 제1 암호화폐 지갑에 대응하는 개인 키를 생성하는 단계; 상기 생성된 개인 키를 암호화하여 상기 제1 데이터베이스에 저장하는 단계; 및 상기 생성된 개인 키의 복호화 키를 상기 제2 데이터베이스에 저장하는 단계를 더 포함할 수 있다.The key management method of the cryptocurrency exchange server may include generating a first cryptocurrency wallet of the first user and a private key corresponding to the first cryptocurrency wallet in response to a request of a first user; Encrypting the generated private key and storing it in the first database; And storing the decryption key of the generated private key in the second database.

상기 개인 키를 생성하는 단계는 상기 제1 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계를 더 포함할 수 있다.Generating the private key may further include providing mnemonic words for recovery of the private key to the first user.

일 측에 따른 암호화폐 거래소 서버의 키 관리 방법은, 사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하는 단계; 상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하는 단계; 및 미리 정해진 갱신 조건에 기초하여, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 및 상기 제2 데이터베이스에 저장된 복호화 키를 갱신하는 단계를 포함한다.A key management method of a cryptocurrency exchange server according to one side includes the steps of encrypting a private key generated in response to a user's cryptocurrency wallet and storing it in a first database; Storing the decryption key of the private key in a second database; And updating the encrypted private key stored in the first database and the decryption key stored in the second database based on a predetermined update condition.

상기 갱신하는 단계는 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계; 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하는 단계; 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계; 상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하는 단계; 및 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계를 포함할 수 있다.The updating may include obtaining a corresponding encrypted private key from the first database, corresponding to each encrypted private key stored in the first database; Obtaining a decryption key corresponding to the obtained encrypted private key from the second database; Decrypting the obtained encrypted private key with the obtained decryption key; Changing the obtained decryption key and storing it in the second database; And re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database.

상기 제1 데이터베이스에 저장하는 단계는 상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하는 단계; 및 상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계를 더 포함할 수 있다.The storing in the first database may include generating the private key corresponding to the user's cryptocurrency wallet; And providing mnemonic words for recovery of the private key to the user.

상기 갱신 조건은 미체결된 암호화폐 거래의 유무와 관련된 제1 조건; 및 미리 정해진 갱신 주기와 관련된 제2 조건 중 적어도 하나를 포함할 수 있다.The update condition includes a first condition related to the presence or absence of an unsigned cryptocurrency transaction; And at least one of a second condition related to a predetermined update period.

상기 암호화폐 거래소 서버의 키 관리 방법은 갱신 주기와 관련된 제1 조건 및 거래 유무와 관련된 제2 조건이 만족됨에 따라 상기 갱신하는 단계가 수행되는 도중, 거래 요청을 수신하는 단계; 상기 거래 요청에 반응하여, 상기 갱신하는 단계의 진행을 중단하는 단계; 상기 거래 요청을 처리하는 단계; 및 상기 거래 요청의 처리로 인하여 상기 제2 조건이 다시 충족된 경우, 상기 갱신하는 단계의 진행을 재개하는 단계를 더 포함할 수 있다.The key management method of the cryptocurrency exchange server includes: receiving a transaction request while the updating step is performed as a first condition related to an update period and a second condition related to the presence or absence of a transaction are satisfied; In response to the transaction request, stopping progress of the updating step; Processing the transaction request; And when the second condition is satisfied again due to the processing of the transaction request, restarting the updating step.

상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한될 수 있다.The second database may be restricted to an access target based on network security.

일 측에 따른 암호화폐 거래소 서버는, 상기 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하고, 상기 거래가 없는 경우, 상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여, 제1 데이터베이스에 저장된 암호화된 개인 키 및 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하며, 상기 거래가 있는 경우, 상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는, 적어도 하나의 프로세서를 포함한다.The cryptocurrency exchange server according to one side checks whether there is an unsigned cryptocurrency transaction in relation to the server, and if there is no transaction, the first cryptocurrency wallet corresponds to a cryptocurrency wallet of a user registered in the server. Updating the encrypted private key stored in the database and the decryption key of the encrypted private key stored in the second database, and if there is the transaction, performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction, It includes at least one processor.

상기 프로세서는, 상기 갱신함에 있어서, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고, 상기 해당하는 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고, 상기 획득된 복호화 키로 상기 해당하는 암호화된 개인 키를 복호화하고, 상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하며, 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장할 수 있다.In the update, the processor obtains a corresponding encrypted private key from the first database, corresponding to each of the encrypted private keys stored in the first database, and decrypts the corresponding encrypted private key. A key is obtained from the second database, the corresponding encrypted private key is decrypted with the obtained decryption key, the obtained decryption key is changed and stored in the second database, and encryption corresponding to the changed decryption key The decrypted private key may be re-encrypted with a key and stored in the first database.

상기 프로세서는 상기 거래를 수행함에 있어서, 상기 제1 데이터베이스에서 상기 거래에 대응하는 암호화된 개인 키를 획득하고, 상기 제2 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하고, 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하고, 상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하며, 상기 수행된 거래의 내역을 저장할 수 있다.In performing the transaction, the processor obtains an encrypted private key corresponding to the transaction from the first database, obtains a decryption key corresponding to the obtained encrypted private key from the second database, and The obtained encrypted private key may be decrypted with the obtained decryption key, the transaction may be performed based on the decrypted private key, and details of the performed transaction may be stored.

상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한될 수 있다.The second database may be restricted to an access target based on network security.

일 측에 따른 암호화폐 거래소 서버는, 사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하고, 상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하며, 미리 정해진 갱신 조건에 기초하여, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 및 상기 제2 데이터베이스에 저장된 복호화 키를 갱신하는, 적어도 하나의 프로세서를 포함한다.The cryptocurrency exchange server according to one side encrypts the private key generated in response to the user's cryptocurrency wallet and stores it in a first database, stores the decryption key of the private key in a second database, and a predetermined update condition On the basis of, at least one processor for updating the encrypted private key stored in the first database and the decryption key stored in the second database.

상기 프로세서는, 상기 갱신함에 있어서, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고, 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고, 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하고, 상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하며, 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장할 수 있다.In the update, the processor obtains a corresponding encrypted private key from the first database, corresponding to each encrypted private key stored in the first database, and decrypts corresponding to the obtained encrypted private key Obtaining a key from the second database, decrypting the obtained encrypted private key with the obtained decryption key, changing the obtained decryption key and storing it in the second database, encryption corresponding to the changed decryption key The decrypted private key may be re-encrypted with a key and stored in the first database.

상기 프로세서는, 상기 제1 데이터베이스에 저장함에 있어서, 상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하며, 상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공할 수 있다.When storing in the first database, the processor may generate the private key corresponding to the user's cryptocurrency wallet, and may provide mnemonic words for recovery of the private key to the user. .

도 1은 일실시예에 따른 암호화폐 거래소 시스템을 설명하기 위한 도면.
도 2는 일실시예에 따른 키 갱신 알고리즘의 순서도.
도 3은 일실시예에 따른 암호화폐 거래소 서버의 동작을 설명하기 위한 순서도.
도 4는 일실시예에 따른 암호화폐 거래소 시스템의 구성을 도시한 도면.
도 5는 일실시예에 따른 장치의 구성의 예시도.
1 is a view for explaining a cryptocurrency exchange system according to an embodiment.
2 is a flowchart of a key update algorithm according to an embodiment.
3 is a flow chart for explaining the operation of the cryptocurrency exchange server according to an embodiment.
4 is a diagram showing the configuration of a cryptocurrency exchange system according to an embodiment.
5 is an exemplary diagram of a configuration of an apparatus according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Accordingly, the actual implemented form is not limited to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, these terms should be interpreted only for the purpose of distinguishing one component from other components. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being "connected" to another component, it is to be understood that it may be directly connected or connected to the other component, but other components may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, action, component, part, or combination thereof is present, but one or more other features or numbers, It is to be understood that the presence or addition of steps, actions, components, parts or combinations thereof does not preclude the possibility of preliminary exclusion.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the relevant technical field. Terms as defined in a commonly used dictionary should be construed as having a meaning consistent with the meaning of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present specification. Does not.

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted.

도 1은 일실시예에 따른 암호화폐 거래소 시스템을 설명하기 위한 도면이다.1 is a diagram illustrating a cryptocurrency exchange system according to an embodiment.

일실시예에 따른 암호화폐 거래소 시스템은 암호화폐 거래를 위한 키 관리 메커니즘이 수행되는 시스템으로, 암호화폐 거래소 서버(110) 및 암호화폐 거래소와 관련된 데이터가 저장되는 데이터베이스(120, 130)를 포함할 수 있다. 서버(110)를 구성하는 적어도 하나의 프로세서는 사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 관리하기 위한 키 관리 메커니즘의 동작을 수행할 수 있다.The cryptocurrency exchange system according to an embodiment is a system in which a key management mechanism for cryptocurrency transactions is performed, and includes a cryptocurrency exchange server 110 and databases 120 and 130 in which data related to cryptocurrency exchanges are stored. I can. At least one processor constituting the server 110 may perform an operation of a key management mechanism for managing a private key generated in response to a user's cryptocurrency wallet.

일실시예에 따른 키 관리 메커니즘에서 관리의 대상이 되는 ‘개인 키(private key)’는 암호화폐 거래 시 디지털 서명하는 데 사용되는 암호화 키에 해당할 수 있다. 개인 키는 사용자의 암호화폐 지갑이 생성될 때 암호화폐 지갑에 대응하여 생성될 수 있다.In the key management mechanism according to an embodiment, the'private key' to be managed may correspond to an encryption key used to digitally sign a cryptocurrency transaction. The private key can be generated corresponding to the cryptocurrency wallet when the user's cryptocurrency wallet is created.

일실시예에 따를 때, 서버(110)는 사용자(101)의 요청에 반응하여, 사용자(101)의 암호화폐 지갑을 생성할 수 있다. 서버(110)는 암호화폐 지갑 생성 시 암호화폐 지갑의 퍼블릭 주소(public address) 및 퍼블릭 주소에 대응하는 개인 키를 생성할 수 있다. 서버(110)는 사용자(101)의 암호화폐 지갑에 대응하는 개인 키 생성 시, 이를 복구할 수 있는 니모닉(Mnemonic) 코드를 사용자에게 제공할 수 있다. 니모닉 코드는 텍스트로 구성되며, 예를 들어 적어도 하나의 단어를 포함하는 단어열(니모닉 워드, 니모닉 워드 리스트, 니모닉 워드 시퀀스 등)로 구성될 수 있다.According to an embodiment, the server 110 may generate a cryptocurrency wallet for the user 101 in response to a request of the user 101. When generating a cryptocurrency wallet, the server 110 may generate a public address of the cryptocurrency wallet and a private key corresponding to the public address. When the server 110 generates a private key corresponding to the user's 101 cryptocurrency wallet, the server 110 may provide a mnemonic code capable of recovering it to the user. The mnemonic code is composed of text, and may be composed of, for example, a word string including at least one word (a mnemonic word, a mnemonic word list, a mnemonic word sequence, etc.).

일실시예에 따른 서버(110)는 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 데이터베이스(120)에 저장할 수 있다. 서버(110)에서 암호화 키로 개인 키를 암호화하여 생성된 암호문이 저장되므로, 개인 키가 본인 및/또는 타인에게 노출되지 않을 수 있다. 암호화된 개인 키는 암호화 키에 대응하는 복호화 키로 복호화될 수 있으며, 암호화 키 및 복호화 키는 암호화 알고리즘에 따라 생성될 수 있다. 개인 키를 암호화할 때 사용되는 암호화 알고리즘은 암호화 키와 복호화 키가 동일한 암호화 알고리즘(또는, 대칭 키 알고리즘)이 사용될 수 있으며, 실시예에 따라 암호화 키와 복호화 키가 상이한 비대칭키 알고리즘이 사용될 수도 있다. 사용자의 암호화폐 지갑에 대응하는 개인 키의 암호화는 사용자 별로 또는 암호화폐 지갑 별로 서로 다른 암호화 방법을 사용하거나, 사용자의 그룹별로 또는 암호화폐 지갑의 그룹 별로 서로 다른 암호화 방법을 사용하거나, 모두 동일한 암호화 방법을 사용하여 할 수 있다.The server 110 according to an embodiment may encrypt a private key generated corresponding to a cryptocurrency wallet and store it in the database 120. Since the encrypted text generated by encrypting the private key with the encryption key in the server 110 is stored, the private key may not be exposed to the user and/or others. The encrypted private key may be decrypted with a decryption key corresponding to the encryption key, and the encryption key and decryption key may be generated according to an encryption algorithm. As the encryption algorithm used when encrypting the private key, an encryption algorithm (or a symmetric key algorithm) in which the encryption key and the decryption key are the same may be used, and an asymmetric key algorithm in which the encryption key and the decryption key are different may be used according to embodiments. . Encryption of the private key corresponding to the user's cryptocurrency wallet uses different encryption methods for each user or for each cryptocurrency wallet, or for each user group or for each group of cryptocurrency wallets, or use the same encryption method. You can do it using the method.

일실시예에 따를 때, 암호화된 개인 키의 복호화 키는 데이터베이스(130)에 저장될 수 있다. 암호화된 개인 키가 저장되는 데이터베이스 및 암호화된 개인 키의 복호화 키가 저장되는 데이터베이스는 구분될 수 있으며, 이하에서, 암호화된 개인 키가 저장되는 데이터베이스(120)는 제1 데이터베이스로, 암호화된 개인 키의 복호화 키가 저장되는 데이터베이스(130)는 제2 데이터베이스로 지칭될 수 있다. 개인 키가 대칭 키로 암호화된 경우, 제2 데이터베이스(130)에 저장되는 복호화 키는 개인 키를 암호화하는 데 이용된 암호화 키와 동일한 키에 해당할 수 있다. 개인 키가 비대칭 키로 암호화된 경우, 제2 데이터베이스(130)에 저장되는 복호화 키는 개인 키를 암호화하는 데 이용된 암호화 키와 상이하며, 암호화 키에 대응되는 복호화 키에 해당할 수 있다. According to one embodiment, the decryption key of the encrypted private key may be stored in the database 130. The database in which the encrypted private key is stored and the database in which the decryption key of the encrypted private key is stored can be classified. Hereinafter, the database 120 in which the encrypted private key is stored is a first database, and the encrypted private key The database 130 in which the decryption key of is stored may be referred to as a second database. When the private key is encrypted with a symmetric key, the decryption key stored in the second database 130 may correspond to the same key as the encryption key used to encrypt the private key. When the private key is encrypted with an asymmetric key, the decryption key stored in the second database 130 is different from the encryption key used to encrypt the private key, and may correspond to a decryption key corresponding to the encryption key.

일실시예에 따를 때, 복호화 키 보관의 보안을 강화하기 위하여, 암호화된 개인키의 복호화 키가 저장된 데이터베이스(130)는 접근이 제한된 별도의 네트워크로 구성될 수 있다. 예를 들어, 복호화 키가 저장되는 데이터베이스(130)는 네트워크 보안 기술을 이용하여 구성된 보안된 네트워크를 통해 연결되는 데이터베이스에 해당할 수 있으며, 보안된 네트워크는 서버(110)의 액세스만을 허용하고, 이를 제외한 허가되지 않은 액세스를 제한할 수 있다. According to an embodiment, in order to strengthen the security of storage of the decryption key, the database 130 in which the decryption key of the encrypted private key is stored may be configured as a separate network with restricted access. For example, the database 130 in which the decryption key is stored may correspond to a database connected through a secure network configured using network security technology, and the secure network allows only access of the server 110, and Excluding unauthorized access can be restricted.

일실시예에 따를 때, 암호화된 개인키의 복호화 키는 별도의 복호화 키 관리 시스템에서 관리될 수 있다. 암호화된 개인키의 복호화 키는 사용자 별로 또는 암호화폐 지갑 별로 관리되거나, 사용자의 그룹별로 또는 암호화폐 지갑의 그룹 별로 관리될 수 있다. 실시예에 따라 모든 지갑의 개인 키가 동일한 키로 암호화된 경우, 단일 복호화 키로 관리될 수도 있다.According to an embodiment, the decryption key of the encrypted private key may be managed by a separate decryption key management system. The decryption key of the encrypted private key may be managed for each user or for each cryptocurrency wallet, or for each user group or for each group of cryptocurrency wallets. According to an embodiment, if the private keys of all wallets are encrypted with the same key, they may be managed with a single decryption key.

일실시예에 따를 때, 서버(110)는 서버와 관련된 블록체인을 탐색하면서, 서버와 관련된 암호화폐의 거래(transaction)를 수행할 수 있다. 서버와 관련된 블록체인은 서버(110)가 네트워크를 통해 관리할 수 있는 블록체인을 의미할 수 있다. 블록체인은 공유 범위에 따라 퍼블릭 블록체인(public blockchain), 프라이빗 블록체인(private blockchain), 컨소시엄 블록체인(consortium blockchain)의 종류로 구분될 수 있으며, 블록체인의 종류에 따라 블록체인 네트워크의 참여 가능 범위가 달라질 수 있다. 예를 들어, 퍼블릭 블록체인의 경우 별도의 승인없이 네트워크 참여 및 탈퇴가 가능하고, 프라이빗 블록체인의 경우 특정 주체에 의해 승인된 주체만 블록체인 네트워크에 참여 가능하다.According to an embodiment, the server 110 may perform a transaction of cryptocurrency related to the server while searching the block chain related to the server. The block chain related to the server may mean a block chain that the server 110 can manage through a network. Blockchain can be classified into types of public blockchain, private blockchain, and consortium blockchain according to the scope of sharing, and participation of the blockchain network is possible depending on the type of blockchain. Range may vary. For example, in the case of a public blockchain, network participation and withdrawal is possible without separate approval, and in the case of a private blockchain, only subjects approved by a specific subject can participate in the blockchain network.

네트워크 서버와 관련된 암호화폐 거래는 사용자의 암호화폐와 관련된 거래 또는 사용자가 발생시킨 거래에 해당할 수 있으며, 서버(110)에서 수행하는 거래에 해당할 수 있다. 여기서, 사용자는 서버(110)에서 생성된 암호화폐 지갑을 보유한 사용자로, 예를 들어, 암호화폐 거래소의 회원들에 해당할 수 있다. 서버(110)는 블록체인을 탐색하면서, 서버(110)와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인할 수 있으며, 미체결된 암호화폐 거래가 있는 경우 해당 거래를 수행할 수 있다.The cryptocurrency transaction related to the network server may correspond to a transaction related to the user's cryptocurrency or a transaction generated by the user, and may correspond to a transaction performed by the server 110. Here, the user is a user holding a cryptocurrency wallet generated by the server 110, and may correspond to, for example, members of a cryptocurrency exchange. The server 110 can check whether there is an unsigned cryptocurrency transaction in relation to the server 110 while searching the block chain, and if there is an unsigned cryptocurrency transaction, it can perform the corresponding transaction.

일실시예에 따른 서버(110)는 미체결된 암호화폐 거래에 대응하는 암호화된 개인 키를 대응하는 복호화 키로 복호화하여, 개인 키로 거래에 서명함으로써, 암호화폐 거래를 수행할 수 있다. 암호화폐 거래에 대응하는 암호화된 개인 키는 암호화폐 거래가 발생한 암호화폐 지갑에 대응하는 암호화된 개인 키에 해당할 수 있으며, 암호화된 개인 키는 제1 데이터베이스(120)에서 획득될 수 있다. 암호화된 개인 키에 대응하는 복호화 키는 복호화 키를 저장하는 제2 데이터베이스(130)에서 획득될 수 있다. The server 110 according to an embodiment may perform a cryptocurrency transaction by decrypting an encrypted private key corresponding to an unsigned cryptocurrency transaction with a corresponding decryption key and signing the transaction with the private key. The encrypted private key corresponding to the cryptocurrency transaction may correspond to an encrypted private key corresponding to the cryptocurrency wallet in which the cryptocurrency transaction has occurred, and the encrypted private key may be obtained from the first database 120. The decryption key corresponding to the encrypted private key may be obtained from the second database 130 storing the decryption key.

일실시예에 따를 때, 서버(110)는 암호화폐 거래를 수행하여, 해당 거래 내역을 서버(110)에서 접근 가능한 데이터베이스에 기록할 수 있다. 일실시예에 따른 암호화폐의 거래 내역은 상술한 제1 데이터베이스 및 제2 데이터베이스와 구분되는 제3 데이터베이스에 저장될 수 있다. 이하에서, 거래 내역이 저장되는 데이터베이스는 제3 데이터베이스로 지칭될 수 있다. 제3 데이터베이스는 버퍼 또는 큐처럼 활용될 수 있으며, 수행된 거래는 블록체인 네트워크에 기록되므로, 제3 데이터베이스에 저장된 수행된 거래의 내역은 로그 정보처럼 활용될 수 있다.According to an embodiment, the server 110 may perform cryptocurrency transactions and record the corresponding transaction details in a database accessible from the server 110. The transaction details of cryptocurrency according to an embodiment may be stored in a third database that is separate from the first database and the second database described above. Hereinafter, a database in which transaction details are stored may be referred to as a third database. The third database can be used as a buffer or queue, and since the executed transaction is recorded in the blockchain network, the details of the executed transaction stored in the third database can be used as log information.

일실시예에 따른 서버(110)는 미리 정해진 갱신 조건에 기초하여, 제1 데이터베이스(120)에 저장된 암호화된 개인 키 및 제2 데이터베이스(130)에 저장된 복호화 키를 갱신할 수 있다. 보다 구체적으로, 서버(110)는 갱신 조건에 따라 반복적으로 제2 데이터베이스(130)에 저장된 복호화 키를 변경하고, 제1 데이터베이스(120)에 저장된 암호화된 개인 키를 변경된 복호화 키에 대응하는 암호화 키로 재암호화한 암호문으로 변경할 수 있으며, 이러한 갱신 과정을 갱신 조건이 발생할 때마다 반복적으로 수행할 수 있다. 일실시예에 따를 때, 저장된 복호화 키 및 암호화된 개인 키가 반복적으로 변경되는 키 갱신 알고리즘을 통해 암호화폐 지갑의 보안을 강화할 수 있다. 일실시예에 따른 암호화된 개인 키 및 복호화 키는 서로 다른 데이터베이스에 저장되며, 반복적으로 변경되므로, 외부에서 개인 키를 알기 위해서는 키 갱신 알고리즘이 수행되기 전 제1 데이터베이스 및 제2 데이터베이스에 접근하여야 한다.The server 110 according to an embodiment may update an encrypted private key stored in the first database 120 and a decryption key stored in the second database 130 based on a predetermined update condition. More specifically, the server 110 repeatedly changes the decryption key stored in the second database 130 according to the update condition, and converts the encrypted private key stored in the first database 120 into an encryption key corresponding to the changed decryption key. It can be changed to a re-encrypted ciphertext, and this update process can be repeatedly performed whenever an update condition occurs. According to an embodiment, the security of the cryptocurrency wallet may be strengthened through a key update algorithm in which the stored decryption key and the encrypted private key are repeatedly changed. The encrypted private key and the decryption key according to an embodiment are stored in different databases and are repeatedly changed, so in order to know the private key from the outside, it is necessary to access the first database and the second database before the key update algorithm is performed. .

일실시예에 따른 키 갱신 알고리즘의 구체적인 단계는 이하의 도 2를 참조하여 상술한다.Detailed steps of the key update algorithm according to an embodiment will be described in detail with reference to FIG. 2 below.

도 2는 일실시예에 따른 키 갱신 알고리즘의 순서도이다.2 is a flowchart of a key update algorithm according to an embodiment.

도 2를 참조하면, 일실시예에 따른 키 갱신 알고리즘은 제1 데이터베이스에 저장된 암호화된 개인 키를 획득하는 단계(210), 획득된 암호화된 개인 키에 대응하는 복호화 키를 제2 데이터베이스에서 획득하는 단계(220), 획득된 복호화 키로 획득된 암호화된 개인 키를 복호화하는 단계(230), 획득된 복호화 키를 변경하여 제2 데이터베이스에 저장하는 단계(240) 및 변경된 복호화 키에 대응하는 암호화 키로 복호화된 개인 키를 재암호화하여 제1 데이터베이스에 저장하는 단계(250)를 포함할 수 있다. 일실시예에 따른 키 갱신은 저장된 키를 변경하여 변경된 키를 변경되기 이전의 키를 대신하여 저장하는 것으로, 데이터베이스에 저장된 기존 키에 변경된 키를 덮어쓰는 과정으로 이해할 수 있다.Referring to FIG. 2, in the key update algorithm according to an embodiment, obtaining an encrypted private key stored in a first database (210), obtaining a decryption key corresponding to the obtained encrypted private key from a second database. Step 220, decrypting the encrypted private key obtained with the obtained decryption key 230, changing the obtained decryption key and storing it in the second database 240, and decrypting with an encryption key corresponding to the changed decryption key It may include the step 250 of re-encrypting the generated private key and storing it in the first database. Key update according to an embodiment is to change a stored key and store the changed key instead of the key before the change, and can be understood as a process of overwriting the changed key to the existing key stored in the database.

일실시예에 따를 때, 키 갱신 알고리즘은 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여 수행될 수 있다. 예를 들어, 제1 데이터베이스에 제1 암호화폐 지갑에 대응하는 제1 개인 키 및 제2 암호화폐 지갑에 대응하는 제2 개인 키가 암호화되어 저장되어 있는 경우, 암호화된 제1 개인 키 및 암호화된 제1 개인 키의 복호화 키가 키 갱신 알고리즘에 따라 갱신되고, 암호화된 제2 개인 키 및 암호화된 제2 개인 키의 복호화 키가 키 갱신 알고리즘에 따라 갱신될 수 있다. 실시예에 따라, 암호화된 제1 개인 키 및 암호화된 제1 개인 키의 복호화 키의 갱신과 암호화된 제2 개인 키 및 암호화된 제2 개인 키의 복호화 키의 갱신은 병렬적으로 수행될 수도 있고, 순차적으로 수행될 수도 있다. 또한, 실시예에 따라 암호화된 제1 개인 키 및 암호화된 제1 개인 키의 복호화 키의 갱신과 암호화된 제2 개인 키 및 암호화된 제2 개인 키의 복호화 키의 갱신은 동일한 프로세서에 의해 수행될 수도 있고, 서로 다른 프로세서에 의해 수행될 수도 있다.According to an embodiment, the key update algorithm may be performed corresponding to each encrypted private key stored in the first database. For example, when the first private key corresponding to the first cryptocurrency wallet and the second private key corresponding to the second cryptocurrency wallet are encrypted and stored in the first database, the encrypted first private key and the encrypted The decryption key of the first private key may be updated according to the key update algorithm, and the decryption key of the encrypted second private key and the encrypted second private key may be updated according to the key update algorithm. Depending on the embodiment, the update of the decryption key of the encrypted first private key and the encrypted first private key and the update of the decryption key of the encrypted second private key and the encrypted second private key may be performed in parallel. , May be performed sequentially. In addition, according to the embodiment, the update of the decryption key of the encrypted first private key and the encrypted first private key and the update of the decryption key of the encrypted second private key and the encrypted second private key are performed by the same processor. Alternatively, it may be performed by different processors.

일실시예에 따른 키 갱신 알고리즘은 미리 정해진 갱신 조건이 만족되는 경우 수행될 수 있다. 갱신 조건의 예는 미체결된 암호화폐 거래의 유무와 관련된 조건, 미리 정해진 갱신 주기와 관련된 조건 등이 있으며, 이외에도 서버에서 인식 가능한 다양한 이벤트가 갱신 조건으로 설정될 수 있다. 갱신 조건은 복수의 조건들을 포함할 수 있으며, 복수의 조건들이 모두 만족된 경우 키 갱신 알고리즘이 수행될 수도 있고, 복수의 조건들 중 적어도 하나가 만족된 경우 키 갱신 알고리즘이 수행될 수도 있다. 예를 들어, 갱신 조건이 제1 조건 및 제2 조건을 포함하는 경우, 키 갱신 알고리즘은 제1 조건 및 제2 조건이 모두 만족됨에 따라 수행될 수도 있고, 제1 조건 또는 제2 조건이 만족됨에 따라 수행될 수도 있다.The key update algorithm according to an embodiment may be performed when a predetermined update condition is satisfied. Examples of the update conditions include conditions related to the presence or absence of an unsigned cryptocurrency transaction, conditions related to a predetermined update period, etc. In addition, various events recognizable in the server may be set as the update conditions. The update condition may include a plurality of conditions, and when all of the plurality of conditions are satisfied, a key update algorithm may be performed, or when at least one of the plurality of conditions is satisfied, a key update algorithm may be performed. For example, when the update condition includes the first condition and the second condition, the key update algorithm may be performed as both the first condition and the second condition are satisfied, or the first condition or the second condition is satisfied. It may be performed accordingly.

이하에서, 갱신 조건으로 제1 조건 및 제2 조건 중 적어도 하나를 포함하는 경우를 예로 들어 키 갱신 알고리즘에 따른 키 갱신 과정에 관한 시나리오를 설명한다.Hereinafter, a scenario for a key update process according to a key update algorithm will be described by taking at least one of the first condition and the second condition as an update condition.

일실시예에 따를 때, 키 갱신 과정이 제1 조건이 만족됨에 따라 수행되는 경우, 키 갱신의 수행 도중 제1 조건이 불만족되면 키 갱신 과정의 수행이 중단되고, 다시 제1 조건이 만족됨에 따라 중단된 키 갱신 과정이 다시 수행될 수 있다. 예를 들어, 제1 데이터베이스에 저장된 10개의 암호화된 개인 키 각각에 대해서 순차적으로 키 갱신 알고리즘이 수행되는 경우, 5번째 암호화된 개인 키 및 대응하는 복호화 키의 갱신 도중 제1 조건이 불만족되는 경우, 5번째 암호화된 개인 키 및 복호화 키의 갱신 과정이 중단되고, 제1 조건이 다시 만족됨에 따라 다시 5번째 암호화된 개인 키 및 복호화 키의 갱신 과정이 재개될 수 있다. 제1 조건이 만족된 상태가 계속 유지되는 경우, 10번째 암호화된 개인 키 및 대응하는 복호화 키의 갱신이 완료된 후 키 갱신 과정이 종료될 수 있다.According to an embodiment, when the key update process is performed as the first condition is satisfied, if the first condition is not satisfied while the key update is being performed, the key update process is stopped, and the first condition is satisfied again. The interrupted key update process may be performed again. For example, when the key update algorithm is sequentially performed for each of the 10 encrypted private keys stored in the first database, the first condition is not satisfied during the update of the fifth encrypted private key and the corresponding decryption key, The update process of the fifth encrypted private key and the decryption key is stopped, and as the first condition is satisfied again, the update process of the fifth encrypted private key and the decryption key may be resumed. When the state in which the first condition is satisfied is maintained, the key update process may be terminated after the update of the tenth encrypted private key and the corresponding decryption key is completed.

예를 들어, 제1 조건이 미체결된 거래가 없는 경우 만족되는 조건인 경우, 미체결된 거래가 없어 키 갱신 알고리즘이 수행되는 도중 미체결된 거래가 발생하면(다시 말해, 제1 조건이 불만족 되면), 갱신 과정이 중단되고, 미체결된 거래가 수행된 후 다시 미체결된 거래가 없는 제1 조건이 만족됨에 따라, 중단된 갱신 과정이 다시 수행될 수 있다.For example, if the first condition is a condition that is satisfied when there is no open transaction, and there is no open transaction and an open transaction occurs while the key update algorithm is being executed (that is, if the first condition is unsatisfied), As the update process is interrupted and the first condition in which there is no outstanding transaction is satisfied after the unsigned transaction is performed, the interrupted update process may be performed again.

일실시예에 따를 때, 키 갱신 과정이 제1 조건 및 제2 조건이 모두 만족됨에 따라 수행되는 경우, 키 갱신 과정의 수행 도중 제1 조건이 불만족되면, 키 갱신 과정이 중단되고, 제1 조건이 다시 만족됨에 따라 중단된 키 갱신 과정이 다시 수행될 수 있다.According to an embodiment, when the key update process is performed as both the first condition and the second condition are satisfied, if the first condition is not satisfied during the execution of the key update process, the key update process is stopped, and the first condition As this is satisfied again, the interrupted key update process may be performed again.

예를 들어, 제1 조건이 미체결된 거래가 없는 경우 만족되는 조건이고, 제2 조건이 갱신 주기에 해당하는 경우 만족되는 조건인 경우, 미체결된 거래가 없고, 갱신 주기에 해당하면, 키 갱신 과정이 수행될 수 있다. 키 갱신 알고리즘의 수행 도중, 서버에서 거래 요청이 수신된 경우 제1 조건이 불만족되므로 키 갱신 과정이 중단될 수 있다. 거래 요청의 처리로 인하여 제1 조건 및 제2 조건이 다시 만족됨에 따라, 키 갱신 과정이 다시 재개될 수 있다.For example, if the first condition is a condition that is satisfied when there are no outstanding transactions, and if the second condition is a condition that is satisfied when the renewal cycle, there are no outstanding transactions, and if it corresponds to the renewal cycle, the key renewal process This can be done. During the execution of the key update algorithm, when a transaction request is received from the server, the first condition is unsatisfied, and thus the key update process may be stopped. As the first condition and the second condition are satisfied again due to the processing of the transaction request, the key update process may be resumed.

일실시예에 따를 때, 키 갱신 과정이 제1 조건 및 제2 조건 중 적어도 하나가 만족됨에 따라 수행되는 경우, 키 갱신 과정의 수행 도중 어느 하나의 조건이 불만족되더라도, 다른 조건이 만족되면 키 갱신 과정이 중단되지 않고 계속 수행될 수 있다.According to an embodiment, when the key update process is performed when at least one of the first condition and the second condition is satisfied, even if one condition is unsatisfied during the execution of the key update process, the key is updated when another condition is satisfied. The process can be continued without interruption.

예를 들어, 제1 조건이 미체결된 거래가 없는 경우 만족되는 조건이고, 제2 조건이 갱신 주기에 해당하는 경우 만족되는 조건인 경우, 미체결된 거래가 발생하더라도, 미리 정해진 갱신 주기마다 미체결된 거래의 수행에 우선하여 키 갱신 과정이 수행될 수 있다.For example, if the first condition is a condition that is satisfied when there is no outstanding transaction, and if the second condition is a condition that is satisfied when the renewal period is applicable, even if an unsigned transaction occurs, the uncontracted transaction is performed every predetermined renewal period. The key update process may be performed prior to the execution of the transaction.

도 3은 일실시예에 따른 암호화폐 거래소 서버의 동작을 설명하기 위한 순서도이다.3 is a flowchart illustrating the operation of a cryptocurrency exchange server according to an embodiment.

도 3을 참조하면, 일실시예에 따른 암호화폐 거래소 서버의 동작 과정은 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하는 단계(310), 미체결된 암호화폐 거래가 없는 경우, 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여 제1 데이터베이스에 저장된 암호화된 개인 키를 갱신하는 단계(320) 및 임의의 사용자의 암호화폐 지갑에 대응하여 제2 데이터베이스에 저장된 암호화된 개인 키의 복호화 키를 갱신하는 단계(330)를 포함하고, 미체결된 암호화폐 거래가 있는 경우, 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 거래를 수행하는 단계(340)를 포함할 수 있다.3, the operation process of the cryptocurrency exchange server according to an embodiment is a step 310 of checking whether there is an unsigned cryptocurrency transaction in relation to the server, and if there is no unsigned cryptocurrency transaction, the server Step 320 of updating the encrypted private key stored in the first database in response to the cryptocurrency wallet of any registered user (320) and decryption of the encrypted private key stored in the second database in response to the cryptocurrency wallet of any user Including the step 330 of updating the key, and when there is an unsigned cryptocurrency transaction, it may include a step 340 of performing a transaction based on the private key of the cryptocurrency wallet corresponding to the transaction.

도 3에 도시된 암호화폐 거래소 서버의 동작 과정은 상술한 갱신 조건이 미체결된 거래가 없는 경우 만족되는 경우, 서버에 의해 키 갱신 알고리즘이 수행되는 동작으로 이해할 수 있다.The operation process of the cryptocurrency exchange server shown in FIG. 3 can be understood as an operation in which a key update algorithm is performed by the server when the above-described update condition is satisfied when there is no outstanding transaction.

일실시예에 따른 미체결된 암호화폐 거래가 있는지 여부를 확인하는 단계(310)는 블록체인을 탐색하면서, 서버에서 수행되는 미체결된 암호화폐 거래를 식별하는 단계를 포함할 수 있다.The step 310 of checking whether there is an unsigned cryptocurrency transaction according to an embodiment may include identifying an unsigned cryptocurrency transaction performed in the server while searching the block chain.

일실시예에 따른 단계(320) 및 단계(330)에서 임의의 사용자의 암호화폐 지갑은 서버에 등록된 사용자(들)의 암호화폐 지갑(들) 중 적어도 일부의 임의의 암호화폐 지갑을 의미할 수 있다.In steps 320 and 330 according to an embodiment, the cryptocurrency wallet of any user may mean at least some of the cryptocurrency wallet(s) of the user(s) registered in the server. I can.

일실시예에 따른 암호화된 개인 키를 갱신하는 단계(320)는 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 제1 데이터베이스에서 획득하는 단계, 획득된 암호화된 개인 키에 대응하는 복호화 키를 제2 데이터베이스에서 획득하는 단계, 획득된 복호화 키로 획득된 암호화된 개인 키를 복호화하는 단계, 획득된 복호화 키를 변경하는 단계, 및 변경된 복호화 키에 대응하는 암호화 키로 복호화된 개인 키를 재암호화하여 제1 데이터베이스에 저장하는 단계를 포함할 수 있고, 일실시예에 따른 복호화 키를 갱신하는 단계(330)는 변경된 복호화 키를 제2 데이터베이스에 저장하는 단계를 포함할 수 있다.In the step of updating the encrypted private key 320 according to an embodiment, the step of obtaining a corresponding encrypted private key from the first database corresponding to each encrypted private key stored in the first database, the obtained encrypted private key Obtaining a decryption key corresponding to the private key from the second database, decrypting the encrypted private key obtained with the obtained decryption key, changing the obtained decryption key, and decryption with the encryption key corresponding to the changed decryption key Re-encrypting the encrypted private key and storing it in the first database, and updating the decryption key according to an embodiment 330 may include storing the changed decryption key in the second database. have.

일실시예에 따른 거래를 수행하는 단계(340)는 제1 데이터베이스에서 거래에 대응하는 암호화된 개인 키를 획득하는 단계, 제2 데이터베이스에서 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하는 단계, 획득된 암호화된 개인 키를 획득된 복호화 키로 복호화하는 단계, 복호화된 개인 키에 기초하여, 거래를 수행하는 단계를 포함할 수 있다. 거래에 대응하는 암호화된 개인 키는 거래가 발생한 암화화폐 지갑에 대응하는 암호화된 개인 키를 의미할 수 있다.The step 340 of performing a transaction according to an embodiment includes obtaining an encrypted private key corresponding to the transaction from a first database, obtaining a decryption key corresponding to the encrypted private key obtained from a second database , Decrypting the obtained encrypted private key with the obtained decryption key, and performing a transaction based on the decrypted private key. The encrypted private key corresponding to the transaction may mean an encrypted private key corresponding to the cryptocurrency wallet in which the transaction occurred.

일실시예에 따를 때, 체결된 거래는 블록체인 네트워크에 기록되며, 서버는 수행된 거래의 내역을 제3 데이터베이스에 저장할 수 있다.According to one embodiment, the executed transaction is recorded in the blockchain network, and the server may store the details of the executed transaction in a third database.

도 4는 일실시예에 따른 암호화폐 거래소 시스템의 구성을 도시한 도면이다.4 is a diagram showing the configuration of a cryptocurrency exchange system according to an embodiment.

도 4를 참조하면, 일실시예에 따른 암호화폐 거래소 시스템(410)은 상술한 키 관리 메커니즘을 수행하는 '블록아이' 서버(411), 암호화된 개인 키를 저장하는 데이터베이스(413)를 포함할 수 있으며, 네트워크(420)를 통해 등록된 사용자(401)로부터 암호화폐 거래 요청을 수신하여, 블록체인(402)을 관리할 수 있다. 블록체인(402)의 종류에 따라 네트워크(420)의 구성이 달라질 수 있으나, 이하에서 설명의 편의를 위해 퍼블릭 블록체인의 경우를 예로 들어 설명한다.Referring to FIG. 4, a cryptocurrency exchange system 410 according to an embodiment includes a'block eye' server 411 that performs the above-described key management mechanism, and a database 413 that stores an encrypted private key. In addition, by receiving a cryptocurrency transaction request from the registered user 401 through the network 420, the block chain 402 may be managed. The configuration of the network 420 may vary depending on the type of the block chain 402, but for convenience of explanation, a public block chain will be described below as an example.

일실시예에 따를 때, 시스템(410)은 지갑 생성기(414)를 더 포함할 수 있다. '지갑 생성기'(414)는 사용자의 최초의 지갑 생성 시 지갑의 퍼블릭 주소(public address) 및 퍼블릭 주소에 대응하는 개인 키를 생성하는 구성에 해당할 수 있다. 사용자의 개인 키는 사용자가 직접 생성할 수 없으며 지갑 생성기(414)를 통해서 생성할 수 있다. 지갑 생성기(414)는 사용자의 개인키 생성 시, 이를 복구할 수 있는 니모닉 코드(혹은 니모닉 워드, 니모닉 워드 리스트, 니모닉 워드 시퀀스 등)를 사용자에게 제공할 수 있다. According to one embodiment, the system 410 may further include a wallet generator 414. The'wallet generator' 414 may correspond to a configuration for generating a public address of the wallet and a private key corresponding to the public address when the user's first wallet is created. The user's private key cannot be directly generated by the user and can be generated through the wallet generator 414. The wallet generator 414 may provide the user with a mnemonic code (or a mnemonic word, a mnemonic word list, a mnemonic word sequence, etc.) capable of recovering the user's private key when generating the user's private key.

'Grow Wallet DB'(413)는 사용자의 암호화된 개인 키가 저장되는 데이터베이스에 해당할 수 있다. 사용자의 암호화된 개인 키가 저장되는 데이터베이스(413)에는 다수 사용자의 다수 암호화된 개인 키가 저장될 수 있다. The'Grow Wallet DB' 413 may correspond to a database in which a user's encrypted private key is stored. In the database 413 in which the user's encrypted private key is stored, a plurality of encrypted private keys of a plurality of users may be stored.

일실시예에 따를 때, 시스템(410)은 거래 내역을 저장하는 데이터베이스를 더 포함할 수 있다. 'Transaction DB'(412)는 후술할 '블록아이'(411)가 블록체인(402) 네트워크로부터 탐색한 거래의 내역이 저장되는 데이터베이스에 해당할 수 있다.According to one embodiment, the system 410 may further include a database for storing transaction details. The'Transaction DB' 412 may correspond to a database in which details of transactions searched by the'Block Eye' 411 to be described later from the blockchain 402 network are stored.

일실시예에 따를 때, 암호화된 개인 키의 복호화 키를 저장하는 데이터베이스는 별도의 시스템에서 관리될 수 있다. ‘복호화 키 관리 시스템’(430)은 보안된 네트워크(440)를 이용하는 별도의 시스템에 해당할 수 있다. 복호화 키 관리 시스템(430)은 보안된 네트워크(440)를 사용함으로써 접속할 수 있는 대상을 제한하여 저장된 데이터의 보안을 강화할 수 있다. 예를 들어, 복호화 키 관리 시스템(430)은 후술할 '블록아이'(411)로 접근 대상이 제한될 수 있다.According to an embodiment, a database storing a decryption key of an encrypted private key may be managed in a separate system. The'decryption key management system' 430 may correspond to a separate system using the secured network 440. The decryption key management system 430 may enhance the security of stored data by limiting the targets that can be accessed by using the secured network 440. For example, the decryption key management system 430 may be restricted to an access target to a'block eye' 411 to be described later.

‘블록아이’(411)는 블록체인(402)을 탐색하면서, 암호화폐의 거래를 수행하는 구성에 해당할 수 있다. 블록아이(411)는 암호화폐 거래 내역을 저장하는 데이터베이스(412), 암호화된 개인키를 저장하는 데이터베이스(413), 및 복호화 키 관리 시스템(430) 내 암호화된 개인키의 복호화 키를 저장하는 데이터베이스 등에 접근하여 저장된 내용을 불러올 수도 있고 덮어쓸 수도 있다. 블록아이(411)가 중지된 경우 복호화 키를 저장하는 복호화 키 관리 시스템(430)의 서버를 차단(seal)하여 복호화 키의 노출을 방지할 수 있다. 또한, 블록아이(411) 구성의 코드가 변경되었는지를 확인하는 무결성 체크를 통하여 해킹 등에 의한 블록아이(411) 구성의 변경이 있는지 여부를 확인함으로써 보안을 강화할 수 있다.The'block eye' 411 may correspond to a configuration that performs cryptocurrency transactions while browsing the block chain 402. Block eye 411 is a database 412 storing cryptocurrency transaction details, a database 413 storing an encrypted private key, and a database storing a decryption key of an encrypted private key in the decryption key management system 430 You can access the back and load or overwrite the saved content. When the block eye 411 is stopped, the server of the decryption key management system 430 storing the decryption key may be sealed to prevent exposure of the decryption key. In addition, it is possible to enhance security by checking whether there is a change in the configuration of the block-eye 411 due to hacking or the like through an integrity check that checks whether the code of the configuration of the block-eye 411 has been changed.

일실시예에 따를 때, 갱신 조건이 수행해야할 암호화폐 거래가 없어야 하는 조건인 경우, 도 4에 도시된 시스템에서 상술한 키 갱신 알고리즘에 따라 저장된 암호화된 개인 키 및 복호화 키를 갱신하는 과정을 아래에서 상술한다.According to an embodiment, if the update condition is a condition in which there is no cryptocurrency transaction to be performed, the process of updating the encrypted private key and the decryption key stored according to the above-described key update algorithm in the system shown in FIG. 4 will be described below. In detail.

(1) 블록아이(411)는 블록체인(402)을 탐색하면서 수행해야할 암호화폐 거래가 있는지 확인한다. 수행해야할 암호화폐 거래는 사용자(예를 들어, 거래소의 회원들)의 암호화폐와 관련된 거래 또는 사용자(예를 들어, 거래소의 회원들)가 발생시킨 거래에 해당할 수 있다.(1) Blockeye 411 checks whether there is a cryptocurrency transaction to be performed while searching the block chain 402. The cryptocurrency transaction to be performed may correspond to a transaction related to the cryptocurrency of a user (eg, members of an exchange) or a transaction generated by a user (eg, members of an exchange).

(2) 수행해야할 거래가 있는 경우 블록아이(411)는 복호화 키 관리 시스템(430) 서버에 접속하여 사용자의 암호화된 개인 키의 복호화 키를 불러온다. 블록아이(411)는 불러온 복호화 키를 이용하여 암호화된 개인키가 저장된 데이터베이스(413)에 접근하여 사용자의 개인키를 복원한다. 블록아이(411)는 복원된 개인키로 수행해야할 거래에 서명하여 거래를 수행한다. 또한, 블록아이(411)는 해당 거래 내역을 데이터베이스(412)에 저장할 수 있다.(2) When there is a transaction to be performed, the block-eye 411 accesses the decryption key management system 430 server to retrieve the decryption key of the user's encrypted private key. The block-eye 411 accesses the database 413 in which the encrypted private key is stored using the fetched decryption key and restores the user's private key. Blockeye 411 performs the transaction by signing the transaction to be performed with the restored private key. In addition, the block eye 411 may store the corresponding transaction details in the database 412.

(3) 수행해야할 거래가 없는 경우 블록아이(411)는 복호화 키 관리 시스템(430) 서버에 접속하여 저장되어 있는 복호화 키 전체를 변경한다. 이 때 복호화 키는 블록아이(411)에 의해서도 변경될 수 있고, 복호화 키 관리 시스템(430) 자체에 의해 변경될 수도 있다. 예를 들어, 블록아이(411)는 복호화 키 관리 시스템(430)에 접속하여 현 시점의 복호화 키(들)을 획득하고, 현 시점의 복호화 키(들)을 이용하여 암호화된 개인 키들을 복호화할 수 있다. 블록아이(411) 또는 복호화 키 관리 시스템(430)은 현 시점의 복호화 키(들)을 변경하고, 블록아이(411)는 변경된 복호화 키(들)에 대응하는 새로운 암호화 키(들)로 개인 키들을 재 암호화하여 재 암호화된 개인 키들을 데이터베이스(413)에 저장할 수 있다. 이 때, 변경된 복호화 키(들)은 복호화 키 관리 시스템(430)에 저장된다. 재 암호화된 개인 키들은 재 암호화되기 이전의 암호화된 개인 키들을 대체하여 저장될 수 있으며, 변경된 복호화 키(들)은 변경되기 이전의 복호화 키(들)을 대체하여 저장될 수 있다.(3) When there is no transaction to be performed, the block eye 411 accesses the decryption key management system 430 server and changes the entire stored decryption key. At this time, the decryption key may be changed by the block eye 411 or may be changed by the decryption key management system 430 itself. For example, the block-eye 411 accesses the decryption key management system 430 to obtain the decryption key(s) at the current time, and decrypts private keys encrypted using the decryption key(s) at the current time. I can. The block-eye 411 or the decryption key management system 430 changes the decryption key(s) at the current time, and the block-eye 411 is a new encryption key(s) corresponding to the changed decryption key(s). The re-encrypted private keys may be stored in the database 413 by re-encrypting. At this time, the changed decryption key(s) is stored in the decryption key management system 430. The re-encrypted private keys may be stored by replacing the encrypted private keys before being re-encrypted, and the changed decryption key(s) may be stored by replacing the decryption key(s) before being changed.

미리 정해진 주기(예를 들어, 매초)마다 상술한 (1) 내지 (3)의 과정을 반복함으로써, 반복적으로 키 갱신 과정이 수행될 수 있다. By repeating the above-described processes (1) to (3) every predetermined period (eg, every second), the key update process may be repeatedly performed.

실시예에 따라, 수행해야할 거래의 존재 여부와 무관하게, 미리 정해진 주기에 키 갱신 알고리즘이 수행될 수도 있다. 예를 들어, 수행해야할 거래가 있음에도 불구하고, 미리 정해진 주기가 되면 해당 거래의 수행이 홀딩된 채로 키 갱신 알고리즘이 우선적으로 수행될 수 있다. 이 경우, 키 갱신 알고리즘의 수행이 완료된 후 홀딩된 해당 거래의 수행이 재개될 수 있다.Depending on the embodiment, regardless of whether or not there is a transaction to be performed, the key update algorithm may be performed at a predetermined period. For example, even though there is a transaction to be performed, when a predetermined period comes, the key update algorithm may be preferentially performed while the execution of the transaction is held. In this case, after the execution of the key update algorithm is completed, the execution of the held transaction may be resumed.

또는, 키 갱신 알고리즘의 수행 도중에 수행해야할 거래가 발생한 경우, 키 갱신 알고리즘의 수행이 홀딩된 채로 발생한 거래가 우선적으로 수행될 수 있다. 이 경우, 발생한 거래의 수행이 완료된 후 홀딩된 키 갱신 알고리즘의 수행이 재개될 수 있다.Alternatively, when a transaction to be performed occurs while the key update algorithm is being executed, the transaction that occurs while the key update algorithm is being executed may be preferentially performed. In this case, the execution of the held key update algorithm may be resumed after execution of the transaction that has occurred is completed.

또는, 키 갱신 알고리즘의 수행을 하기 위하여 미리 정해진 시간 슬롯을 초과하는 시간이 요구되는 경우, 블록아이(411) 혹은 복호화 키 관리 시스템(430)은 데이터베이스(413)에 저장된 암호화된 개인키들 중 일부에 해당하는 복호화 키(들)을 갱신한 뒤, 다음 시간 슬롯에서 나머지 일부의 암호화된 개인키들에 해당하는 복호화 키(들)을 갱신할 수 있다.Alternatively, when a time exceeding a predetermined time slot is required in order to perform the key update algorithm, the block eye 411 or the decryption key management system 430 may use some of the encrypted private keys stored in the database 413. After updating the corresponding decryption key(s), decryption key(s) corresponding to the remaining partial encrypted private keys may be updated in the next time slot.

이상에서 설명한 키 갱신 알고리즘은 블록아이(411)가 수행하여야 할 거래가 없는 경우 암호화된 개인키의 복호화 키를 미리 정해진 주기(예를 들어, 매초)마다 갱신하여 사용자의 개인 키를 재 암호화함으로써, 보안이 강화된 암호화폐 지갑의 키를 관리하는 시스템을 제공할 수 있다. 예를 들어, 외부에서 암호화된 사용자의 개인 키가 저장된 데이터베이스(413)에 접근하더라도 복호화 키를 보안된 네트워크(440)를 이용한 별도의 시스템에 저장함으로써 외부의 접근으로부터 복호화 키의 유출을 1차적으로 방어할 수 있다. 또한, 저장된 복호화 키를 매초마다 변경함으로써, 암호화된 사용자의 개인키가 저장된 데이터베이스(413) 및 복호화 키가 저장된 데이터베이스에 동시에 접근하는 경우를 제외하고는 사용자의 개인키를 복원할 수 없도록 하는 2차적인 방어를 통해 보안을 더욱 강화할 수 있다.The key update algorithm described above re-encrypts the user's private key by re-encrypting the user's private key by updating the decryption key of the encrypted private key every predetermined period (e.g., every second) when there is no transaction to be performed by the block eye 411. We can provide a system to manage the keys of this enhanced cryptocurrency wallet. For example, even if an externally encrypted user's private key is accessed, the decryption key is stored in a separate system using the secured network 440 to prevent leakage of the decryption key from external access. You can defend. In addition, by changing the stored decryption key every second, the user's private key cannot be restored except for simultaneous access to the database 413 in which the encrypted user's private key is stored and the database in which the decryption key is stored. Security can be further strengthened through effective defense.

도 4에 도시된 구성들은 일실시예에 따른 키 관리 메커니즘이 수행되는 암호화폐 거래소 시스템의 구성의 일 예시에 불과하며, 일실시예에 따른 키 관리 메커니즘을 수행하는 주체를 물리적으로 구분되는 각 구성으로 한정하는 것은 아니다. 상술한 바와 같이, 도 4에 도시된 구성들에 의해 수행되는 동작은 서버에 포함된 적어도 하나의 프로세서에 의해 수행될 수 있다.The configurations shown in FIG. 4 are only an example of the configuration of a cryptocurrency exchange system in which a key management mechanism according to an embodiment is performed, and each configuration physically distinguishes a subject performing a key management mechanism according to an embodiment. It is not limited to. As described above, the operation performed by the components illustrated in FIG. 4 may be performed by at least one processor included in the server.

도 5는 일실시예에 따른 장치의 구성의 예시도이다.5 is an exemplary diagram of a configuration of an apparatus according to an embodiment.

도 5를 참조하면, 장치(500)는 프로세서(501), 메모리(503) 및 입출력 장치(505)를 포함한다.Referring to FIG. 5, the device 500 includes a processor 501, a memory 503, and an input/output device 505.

일실시예에 따른 장치(500)는 상술한 키 관리 방법을 수행하는 장치로, 서버 및 사용자의 디바이스(예를 들어, 휴대폰, 컴퓨터 등)를 포함할 수 있다. 프로세서(501)는 도 1 내지 도 4를 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(503)는 키 관리 방법과 관련된 정보를 저장하거나 상술한 키 관리 방법이 구현된 프로그램을 저장할 수 있다. 메모리(503)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.The apparatus 500 according to an embodiment is an apparatus that performs the above-described key management method, and may include a server and a user's device (eg, a mobile phone, a computer, etc.). The processor 501 may perform at least one method described above with reference to FIGS. 1 to 4. The memory 503 may store information related to a key management method or a program in which the above-described key management method is implemented. The memory 503 may be a volatile memory or a nonvolatile memory.

프로세서(501)는 프로그램을 실행하고, 장치(500)를 제어할 수 있다. 프로 세서(501)에 의하여 실행되는 프로그램의 코드는 메모리(503)에 저장될 수 있다. 장치(500)는 입출력 장치(505)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.The processor 501 may execute a program and control the device 500. The code of a program executed by the processor 501 may be stored in the memory 503. The device 500 is connected to an external device (eg, a personal computer or a network) through the input/output device 505 and may exchange data.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices, methods, and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and a software application executed on the operating system. Further, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or, to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on a computer-readable recording medium.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc., alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or be known to and usable by those skilled in computer software. May be. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operation of the embodiment, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on this. For example, the described techniques are performed in a different order from the described method, and/or components such as systems, structures, devices, circuits, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and those equivalent to the claims also fall within the scope of the claims to be described later.

Claims (20)

암호화폐 거래소 서버의 키 관리 방법에 있어서,
상기 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하는 단계;
상기 거래가 없는 경우,
상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여 제1 데이터베이스에 저장된 암호화된 개인 키를 갱신하는 단계; 및
상기 임의의 사용자의 암호화폐 지갑에 대응하여 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하는 단계; 및
상기 거래가 있는 경우,
상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거 래를 수행하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
In the key management method of a cryptocurrency exchange server,
Checking whether there is an unsigned cryptocurrency transaction in connection with the server;
If there is no above transaction,
Updating an encrypted private key stored in a first database in response to a cryptocurrency wallet of a user registered in the server; And
Updating a decryption key of the encrypted private key stored in a second database corresponding to the cryptocurrency wallet of the user; And
If there is a transaction above,
Performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction
Containing,
How to manage keys on cryptocurrency exchange servers.
제1항에 있어서,
상기 암호화된 개인 키를 갱신하는 단계는
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계;
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데 이터베이스에서 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하 는 단계;
상기 획득된 복호화 키를 변경하는 단계; 및
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계
를 포함하고,
상기 복호화 키를 갱신하는 단계는
상기 변경된 복호화 키를 상기 제2 데이터베이스에 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 1,
The step of updating the encrypted private key
Corresponding to each of the encrypted private keys stored in the first database,
Obtaining a corresponding encrypted private key from the first database;
Obtaining a decryption key corresponding to the obtained encrypted private key from the second database;
Decrypting the obtained encrypted private key with the obtained decryption key;
Changing the obtained decryption key; And
Re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database
Including,
The step of updating the decryption key
Storing the changed decryption key in the second database
Containing,
How to manage keys on cryptocurrency exchange servers.
제1항에 있어서,
상기 거래를 수행하는 단계는
상기 제1 데이터베이스에서 상기 거래에 대응하는 암호화된 개인 키를 획득하는 단계;
상기 제2 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계;
상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하는 단계; 및
상기 수행된 거래의 내역을 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 1,
The step of performing the transaction is
Obtaining an encrypted private key corresponding to the transaction from the first database;
Obtaining a decryption key corresponding to the obtained encrypted private key from the second database;
Decrypting the obtained encrypted private key with the obtained decryption key;
Performing the transaction based on the decrypted private key; And
Storing the details of the executed transaction
Containing,
How to manage keys on cryptocurrency exchange servers.
제1항에 있어서,
상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 1,
In the second database, an access target is restricted based on network security,
How to manage keys on cryptocurrency exchange servers.
제1항에 있어서,
제1 사용자의 요청에 반응하여, 상기 제1 사용자의 제1 암호화폐 지갑 및 상기 제1 암호화폐 지갑에 대응하는 개인 키를 생성하는 단계;
상기 생성된 개인 키를 암호화하여 상기 제1 데이터베이스에 저장하는 단계; 및
상기 생성된 개인 키의 복호화 키를 상기 제2 데이터베이스에 저장하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 1,
Generating a private key corresponding to the first cryptocurrency wallet and the first cryptocurrency wallet of the first user in response to the request of the first user;
Encrypting the generated private key and storing it in the first database; And
Storing the decryption key of the generated private key in the second database
Further comprising,
How to manage keys on cryptocurrency exchange servers.
제5항에 있어서,
상기 개인 키를 생성하는 단계는
상기 제1 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 5,
Generating the private key comprises:
Providing mnemonic words for recovery of the private key to the first user
Further comprising,
How to manage keys on cryptocurrency exchange servers.
사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하는 단계;
상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하는 단계; 및
미리 정해진 갱신 조건에 기초하여, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 및 상기 제2 데이터베이스에 저장된 복호화 키를 갱신하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
Encrypting the private key generated in response to the user's cryptocurrency wallet and storing it in a first database;
Storing the decryption key of the private key in a second database; And
Updating an encrypted private key stored in the first database and a decryption key stored in the second database based on a predetermined update condition
Containing,
How to manage keys on cryptocurrency exchange servers.
제7항에 있어서,
상기 갱신하는 단계는
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계;
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데 이터베이스에서 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하 는 단계;
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하 는 단계; 및
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 7,
The updating step
Corresponding to each of the encrypted private keys stored in the first database,
Obtaining a corresponding encrypted private key from the first database;
Obtaining a decryption key corresponding to the obtained encrypted private key from the second database;
Decrypting the obtained encrypted private key with the obtained decryption key;
Changing the obtained decryption key and storing it in the second database; And
Re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database
Containing,
How to manage keys on cryptocurrency exchange servers.
제7항에 있어서,
상기 제1 데이터베이스에 저장하는 단계는
상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하는 단계; 및
상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 7,
The step of storing in the first database
Generating the private key corresponding to the user's cryptocurrency wallet; And
Providing mnemonic words for recovery of the private key to the user
Further comprising,
How to manage keys on cryptocurrency exchange servers.
제7항에 있어서,
상기 갱신 조건은
미체결된 암호화폐 거래의 유무와 관련된 제1 조건; 및
미리 정해진 갱신 주기와 관련된 제2 조건
중 적어도 하나를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 7,
The above update conditions are
A first condition related to the presence or absence of an open cryptocurrency transaction; And
Second condition related to the predetermined update period
Containing at least one of,
How to manage keys on cryptocurrency exchange servers.
제7항에 있어서,
갱신 주기와 관련된 제1 조건 및 거래 유무와 관련된 제2 조건이 만족됨에 따라 상기 갱신하는 단계가 수행되는 도중, 거래 요청을 수신하는 단계;
상기 거래 요청에 반응하여, 상기 갱신하는 단계의 진행을 중단하는 단계;
상기 거래 요청을 처리하는 단계; 및
상기 거래 요청의 처리로 인하여 상기 제2 조건이 다시 충족된 경우, 상기 갱신하는 단계의 진행을 재개하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 7,
Receiving a transaction request while the updating step is performed as the first condition related to the update period and the second condition related to the presence or absence of a transaction are satisfied;
In response to the transaction request, stopping progress of the updating step;
Processing the transaction request; And
When the second condition is satisfied again due to the processing of the transaction request, resuming the process of the updating step
Further comprising,
How to manage keys on cryptocurrency exchange servers.
제7항에 있어서,
상기 제2 데이터베이스는
네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버의 키 관리 방법.
The method of claim 7,
The second database is
The access target is restricted based on network security,
How to manage keys on cryptocurrency exchange servers.
하드웨어와 결합되어 제1항 내지 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium for executing the method of any one of claims 1 to 12 in combination with hardware.
암호화폐 거래소 서버에 있어서,
상기 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하고,
상기 거래가 없는 경우, 상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여, 제1 데이터베이스에 저장된 암호화된 개인 키 및 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하며,
상기 거래가 있는 경우, 상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는,
적어도 하나의 프로세서를 포함하는,
암호화폐 거래소 서버.
In the cryptocurrency exchange server,
Check whether there is an unsigned cryptocurrency transaction in relation to the server,
If there is no transaction, the encrypted private key stored in the first database and the decryption key of the encrypted private key stored in the second database are updated in correspondence with the cryptocurrency wallet of any user registered in the server,
If there is the transaction, performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction,
Including at least one processor,
Cryptocurrency exchange server.
제14항에 있어서,
상기 프로세서는,
상기 갱신함에 있어서,
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고,
상기 해당하는 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고,
상기 획득된 복호화 키로 상기 해당하는 암호화된 개인 키를 복호화 하고,
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하 며,
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는,
암호화폐 거래소 서버.
The method of claim 14,
The processor,
In the update,
Corresponding to each of the encrypted private keys stored in the first database,
Obtaining a corresponding encrypted private key from the first database,
Obtaining a decryption key corresponding to the corresponding encrypted private key from the second database,
Decrypt the corresponding encrypted private key with the obtained decryption key,
The obtained decryption key is changed and stored in the second database,
Re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database,
Cryptocurrency exchange server.
제14항에 있어서,
상기 프로세서는
상기 거래를 수행함에 있어서,
상기 제1 데이터베이스에서 상기 거래에 대응하는 암호화된 개인 키를 획득하고,
상기 제2 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하고,
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하고,
상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하며,
상기 수행된 거래의 내역을 저장하는,
암호화폐 거래소 서버.
The method of claim 14,
The processor is
In performing the transaction,
Obtaining an encrypted private key corresponding to the transaction from the first database,
Obtaining a decryption key corresponding to the obtained encrypted private key from the second database,
Decrypt the obtained encrypted private key with the obtained decryption key,
Performing the transaction based on the decrypted private key,
To store the details of the transaction performed,
Cryptocurrency exchange server.
제14항에 있어서,
상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버.
The method of claim 14,
In the second database, an access target is restricted based on network security,
Cryptocurrency exchange server.
사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하고,
상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하며,
미리 정해진 갱신 조건에 기초하여, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 및 상기 제2 데이터베이스에 저장된 복호화 키를 갱신하는,
적어도 하나의 프로세서를 포함하는,
암호화폐 거래소 서버.
The private key generated in response to the user's cryptocurrency wallet is encrypted and stored in the first database,
Storing the decryption key of the private key in a second database,
Updating the encrypted private key stored in the first database and the decryption key stored in the second database based on a predetermined update condition,
Including at least one processor,
Cryptocurrency exchange server.
제18항에 있어서,
상기 프로세서는,
상기 갱신함에 있어서,
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고,
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고,
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하 고,
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하 며,
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는,
암호화폐 거래소 서버.
The method of claim 18,
The processor,
In the update,
Corresponding to each of the encrypted private keys stored in the first database,
Obtaining a corresponding encrypted private key from the first database,
Obtaining a decryption key corresponding to the obtained encrypted private key from the second database,
Decrypt the obtained encrypted private key with the obtained decryption key,
The obtained decryption key is changed and stored in the second database,
Re-encrypting the decrypted private key with an encryption key corresponding to the changed decryption key and storing it in the first database,
Cryptocurrency exchange server.
제18항에 있어서,
상기 프로세서는,
상기 제1 데이터베이스에 저장함에 있어서,
상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하며,
상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는,
암호화폐 거래소 서버.
The method of claim 18,
The processor,
In storing in the first database,
Generating the private key corresponding to the user's cryptocurrency wallet,
Providing mnemonic words for recovery of the private key to the user,
Cryptocurrency exchange server.
KR1020200133635A 2019-10-16 2020-10-15 Key management mechanism for cryptocurrency wallet KR102446985B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190128526 2019-10-16
KR20190128526 2019-10-16

Publications (2)

Publication Number Publication Date
KR20210045326A true KR20210045326A (en) 2021-04-26
KR102446985B1 KR102446985B1 (en) 2022-09-26

Family

ID=75733684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200133635A KR102446985B1 (en) 2019-10-16 2020-10-15 Key management mechanism for cryptocurrency wallet

Country Status (1)

Country Link
KR (1) KR102446985B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114189388A (en) * 2021-12-17 2022-03-15 中国电子科技网络信息安全有限公司 Alliance link key management system and method
KR102432139B1 (en) * 2021-11-02 2022-08-16 최민호 Cryptocurrency wallet system
US12034839B2 (en) 2022-05-16 2024-07-09 The Industry & Academic Cooperation In Chungnam National University (Iac) Multi-party session key agreement method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222596A (en) * 1996-12-06 1998-08-21 N T T Data Tsushin Kk Electronic money system, transaction information generating method and recording medium
US20130145160A1 (en) * 2011-12-05 2013-06-06 Certicom Corp. System and method for mounting encrypted data based on availability of a key on a network
KR20180015986A (en) * 2016-08-04 2018-02-14 주식회사 한컴시큐어 Data encryption management apparatus for supporting life-cycle management of the encryption key and operating method thereof
KR20190018377A (en) * 2017-08-14 2019-02-22 김일영 Method and apparatus for storing mnemonic of hardware bitcoin wallet, and computer readable recording medium
KR101954863B1 (en) * 2018-07-09 2019-03-06 서울대학교산학협력단 Online wallet apparatus, and method for generating and verifying online wallet
KR20190095843A (en) * 2018-02-07 2019-08-16 남기원 Crypto-Currency Exchanges Managing System and Method of the same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222596A (en) * 1996-12-06 1998-08-21 N T T Data Tsushin Kk Electronic money system, transaction information generating method and recording medium
US20130145160A1 (en) * 2011-12-05 2013-06-06 Certicom Corp. System and method for mounting encrypted data based on availability of a key on a network
KR20180015986A (en) * 2016-08-04 2018-02-14 주식회사 한컴시큐어 Data encryption management apparatus for supporting life-cycle management of the encryption key and operating method thereof
KR20190018377A (en) * 2017-08-14 2019-02-22 김일영 Method and apparatus for storing mnemonic of hardware bitcoin wallet, and computer readable recording medium
KR20190095843A (en) * 2018-02-07 2019-08-16 남기원 Crypto-Currency Exchanges Managing System and Method of the same
KR101954863B1 (en) * 2018-07-09 2019-03-06 서울대학교산학협력단 Online wallet apparatus, and method for generating and verifying online wallet

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102432139B1 (en) * 2021-11-02 2022-08-16 최민호 Cryptocurrency wallet system
CN114189388A (en) * 2021-12-17 2022-03-15 中国电子科技网络信息安全有限公司 Alliance link key management system and method
US12034839B2 (en) 2022-05-16 2024-07-09 The Industry & Academic Cooperation In Chungnam National University (Iac) Multi-party session key agreement method

Also Published As

Publication number Publication date
KR102446985B1 (en) 2022-09-26

Similar Documents

Publication Publication Date Title
Tan et al. A survey on proof of retrievability for cloud data integrity and availability: Cloud storage state-of-the-art, issues, solutions and future trends
US7912223B2 (en) Method and apparatus for data protection
CN110214325B (en) Method and system for data shielding
Dwoskin et al. Hardware-rooted trust for secure key management and transient trust
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
JP4902207B2 (en) System and method for managing multiple keys for file encryption and decryption
KR100737628B1 (en) Attestation using both fixed token and portable token
US8826035B2 (en) Cumulative integrity check value (ICV) processor based memory content protection
US20160094347A1 (en) Method and system for secure management of computer applications
KR101613146B1 (en) Method for encrypting database
WO2017000648A1 (en) Authentication method and apparatus for reinforced software
TWI631462B (en) Computing system and computing device-implemented method to secure on-board bus transactions and non-transitory computer readable storage medium
US20170063544A1 (en) System and method for sharing data securely
US10970421B2 (en) Virus immune computer system and method
KR102446985B1 (en) Key management mechanism for cryptocurrency wallet
US20210382985A1 (en) Virus immune computer system and method
US10642984B2 (en) Secure drive and method for booting to known good-state
US20200242235A1 (en) Virus immune computer system and method
CA3028091C (en) Securing data at rest utilizing cloud provider service agnostic encrypted data transportability
US10261920B2 (en) Static image RAM drive
Pavan Kumar et al. Server security in cloud computing using block-chaining technique
US11921877B2 (en) Efficient random tokenization in the cloud
US11468188B2 (en) Smart deployai data pipeline digital signing and encryption
KR102199464B1 (en) Method of authentication among nodes participating in consortium blockchain
US20230261866A1 (en) System and method for providing a secure locally-based boot disk encryption key

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant