KR102446985B1 - Key management mechanism for cryptocurrency wallet - Google Patents

Key management mechanism for cryptocurrency wallet Download PDF

Info

Publication number
KR102446985B1
KR102446985B1 KR1020200133635A KR20200133635A KR102446985B1 KR 102446985 B1 KR102446985 B1 KR 102446985B1 KR 1020200133635 A KR1020200133635 A KR 1020200133635A KR 20200133635 A KR20200133635 A KR 20200133635A KR 102446985 B1 KR102446985 B1 KR 102446985B1
Authority
KR
South Korea
Prior art keywords
private key
database
key
transaction
cryptocurrency
Prior art date
Application number
KR1020200133635A
Other languages
Korean (ko)
Other versions
KR20210045326A (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

Abstract

본원 발명은 암호화폐 지갑을 위한 키 관리 메커니즘에 관한 것이다. 일실시예에 따른 암호화폐 거래소 서버의 키 관리 방법은 사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하는 단계, 개인 키의 복호화 키를 제2 데이터베이스에 저장하는 단계 및 미리 정해진 갱신 조건에 기초하여, 제1 데이터베이스에 저장된 암호화된 개인 키 및 제2 데이터베이스에 저장된 복호화 키를 갱신하는 단계를 포함한다.The present invention relates to a key management mechanism for a cryptocurrency wallet. A key management method of a cryptocurrency exchange server according to an embodiment includes 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 the predetermined update condition.

Description

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

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

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

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

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

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

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

상기 복호화 키를 갱신하는 단계는 상기 변경된 복호화 키를 상기 제2 데이터베이스에 저장하는 단계를 포함할 수 있다.The updating of 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 access target of the second database may be restricted based on network security.

상기 암호화폐 거래소 서버의 키 관리 방법은 제1 사용자의 요청에 반응하여, 상기 제1 사용자의 제1 암호화폐 지갑 및 상기 제1 암호화폐 지갑에 대응하는 개인 키를 생성하는 단계; 상기 생성된 개인 키를 암호화하여 상기 제1 데이터베이스에 저장하는 단계; 및 상기 생성된 개인 키의 복호화 키를 상기 제2 데이터베이스에 저장하는 단계를 더 포함할 수 있다.The key management method of the cryptocurrency exchange server includes the steps of: in response to a request of a first user, generating a first cryptocurrency wallet of the first user and a private key corresponding to the first cryptocurrency wallet; 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)를 제공하는 단계를 더 포함할 수 있다.The generating of 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: encrypting a private key generated in response to a user's cryptocurrency wallet 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.

상기 갱신하는 단계는 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계; 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하는 단계; 상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계; 상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하는 단계; 및 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계를 포함할 수 있다.The updating may include: 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 the decrypted private key 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 outstanding cryptocurrency transaction; and a second condition related to a predetermined update period.

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

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

일 측에 따른 암호화폐 거래소 서버는, 상기 서버와 관련하여 미체결된 암호화폐 거래가 있는지 여부를 확인하고, 상기 거래가 없는 경우, 상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여, 제1 데이터베이스에 저장된 암호화된 개인 키 및 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하며, 상기 거래가 있는 경우, 상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는, 적어도 하나의 프로세서를 포함한다.The cryptocurrency exchange server according to one side checks whether there is an outstanding cryptocurrency transaction in relation to the server, and if there is no transaction, in response to the cryptocurrency wallet of any user registered in the server, the first 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, at least one processor.

상기 프로세서는, 상기 갱신함에 있어서, 상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여, 해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고, 상기 해당하는 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고, 상기 획득된 복호화 키로 상기 해당하는 암호화된 개인 키를 복호화하고, 상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하며, 상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장할 수 있다.In the updating, in response to each encrypted private key stored in the first database, the processor acquires a corresponding encrypted private key from the first database, and decrypts the corresponding encrypted private key. obtaining a key from the second database, decrypting the corresponding encrypted private key with the obtained decryption key, changing the obtained decryption key and storing it in the second database, and encrypting corresponding to the changed decryption key The decrypted private key may be re-encrypted with the 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 It is possible to decrypt the obtained encrypted private key with the obtained decryption key, perform the transaction based on the decrypted private key, and store details of the performed transaction.

상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한될 수 있다.The access target of the second database may be restricted 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 the first database, stores the decryption key of the private key in the second database, and a predetermined update condition based on the 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 updating, in response to each of the encrypted private keys stored in the first database, the processor acquires a corresponding encrypted private key from the first database, and decrypts the encrypted private key corresponding to the obtained encrypted private key. obtain a key from the second database, decrypt the obtained encrypted private key with the obtained decryption key, change the obtained decryption key and store it in the second database, and encrypt corresponding to the changed decryption key The decrypted private key may be re-encrypted with the key and stored in the first database.

상기 프로세서는, 상기 제1 데이터베이스에 저장함에 있어서, 상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하며, 상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공할 수 있다.The processor, in storing in the first database, 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 diagram 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 flowchart for explaining the operation of a 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 purposes of illustration only, and may be changed and implemented in various forms. Accordingly, the actual implementation 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 spirit described in the embodiments.

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

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

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

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in 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 components are assigned the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted.

도 1은 일실시예에 따른 암호화폐 거래소 시스템을 설명하기 위한 도면이다.1 is a diagram for explaining 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 the cryptocurrency exchange are stored. 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)’는 암호화폐 거래 시 디지털 서명하는 데 사용되는 암호화 키에 해당할 수 있다. 개인 키는 사용자의 암호화폐 지갑이 생성될 때 암호화폐 지갑에 대응하여 생성될 수 있다.A 'private key' to be managed in the key management mechanism according to an embodiment may correspond to an encryption key used for digitally signing a cryptocurrency transaction. The private key may 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 of the user 101 in response to the request of the user 101 . The server 110 may generate a public address of the cryptocurrency wallet and a private key corresponding to the public address when generating the cryptocurrency wallet. The server 110 may provide the user with a mnemonic code capable of recovering the private key corresponding to the user 101's cryptocurrency wallet when it is generated. The mnemonic code is composed of text, for example, may be composed of a word sequence (mnemonic word, mnemonic word list, mnemonic word sequence, etc.) including at least one word.

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

일실시예에 따를 때, 암호화된 개인 키의 복호화 키는 데이터베이스(130)에 저장될 수 있다. 암호화된 개인 키가 저장되는 데이터베이스 및 암호화된 개인 키의 복호화 키가 저장되는 데이터베이스는 구분될 수 있으며, 이하에서, 암호화된 개인 키가 저장되는 데이터베이스(120)는 제1 데이터베이스로, 암호화된 개인 키의 복호화 키가 저장되는 데이터베이스(130)는 제2 데이터베이스로 지칭될 수 있다. 개인 키가 대칭 키로 암호화된 경우, 제2 데이터베이스(130)에 저장되는 복호화 키는 개인 키를 암호화하는 데 이용된 암호화 키와 동일한 키에 해당할 수 있다. 개인 키가 비대칭 키로 암호화된 경우, 제2 데이터베이스(130)에 저장되는 복호화 키는 개인 키를 암호화하는 데 이용된 암호화 키와 상이하며, 암호화 키에 대응되는 복호화 키에 해당할 수 있다. According to an embodiment, the decryption key of the encrypted private key may be stored in the database 130 . A database in which an encrypted private key is stored and a database in which a decryption key of the encrypted private key is stored may be distinguished. 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 is stored may be referred to as a second database. When the private key is encrypted with the 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 the 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 storing the decryption key of the encrypted private key may be configured as a separate network with limited access. For example, the database 130 in which the decryption key is stored may correspond to a database connected through a secured network configured using a network security technology, and the secured network allows only the server 110 access, and You can restrict unauthorized access except

일실시예에 따를 때, 암호화된 개인키의 복호화 키는 별도의 복호화 키 관리 시스템에서 관리될 수 있다. 암호화된 개인키의 복호화 키는 사용자 별로 또는 암호화폐 지갑 별로 관리되거나, 사용자의 그룹별로 또는 암호화폐 지갑의 그룹 별로 관리될 수 있다. 실시예에 따라 모든 지갑의 개인 키가 동일한 키로 암호화된 경우, 단일 복호화 키로 관리될 수도 있다.According to an embodiment, the decryption key of the encrypted private key may be managed in a separate decryption key management system. The decryption key of the encrypted private key may be managed for each user or each cryptocurrency wallet, or may be managed for each user group or cryptocurrency wallet group. According to an embodiment, when 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 server-related cryptocurrency transaction while searching for a server-related block chain. The server-related block chain may mean a block chain that the server 110 can manage through a network. The blockchain can be divided into public blockchain, private blockchain, and consortium blockchain according to the sharing scope. Depending on the type of blockchain, participation in the blockchain network is possible. The range may vary. For example, in the case of a public blockchain, it is possible to join and leave the network without separate approval, and in the case of a private blockchain, only subjects approved by a specific entity 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 who has a cryptocurrency wallet created by the server 110 , and may correspond to, for example, members of a cryptocurrency exchange. The server 110 may check whether there is an outstanding cryptocurrency transaction with respect to the server 110 while searching the block chain, and if there is an outstanding cryptocurrency transaction, the corresponding transaction may be performed.

일실시예에 따른 서버(110)는 미체결된 암호화폐 거래에 대응하는 암호화된 개인 키를 대응하는 복호화 키로 복호화하여, 개인 키로 거래에 서명함으로써, 암호화폐 거래를 수행할 수 있다. 암호화폐 거래에 대응하는 암호화된 개인 키는 암호화폐 거래가 발생한 암호화폐 지갑에 대응하는 암호화된 개인 키에 해당할 수 있으며, 암호화된 개인 키는 제1 데이터베이스(120)에서 획득될 수 있다. 암호화된 개인 키에 대응하는 복호화 키는 복호화 키를 저장하는 제2 데이터베이스(130)에서 획득될 수 있다. The server 110 according to an embodiment may perform a cryptocurrency transaction by decrypting the encrypted private key corresponding to the unconfirmed cryptocurrency transaction with the corresponding decryption key, and signing the transaction with the private key. The encrypted private key corresponding to the cryptocurrency transaction may correspond to the encrypted private key corresponding to the cryptocurrency wallet in which the cryptocurrency transaction 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 a cryptocurrency transaction and record the 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 separated from the above-described first database and second database. Hereinafter, a database in which transaction details are stored may be referred to as a third database. The third database can be used like a buffer or queue, and since the performed transactions are recorded in the blockchain network, the details of the performed transactions stored in the third database can be used like log information.

일실시예에 따른 서버(110)는 미리 정해진 갱신 조건에 기초하여, 제1 데이터베이스(120)에 저장된 암호화된 개인 키 및 제2 데이터베이스(130)에 저장된 복호화 키를 갱신할 수 있다. 보다 구체적으로, 서버(110)는 갱신 조건에 따라 반복적으로 제2 데이터베이스(130)에 저장된 복호화 키를 변경하고, 제1 데이터베이스(120)에 저장된 암호화된 개인 키를 변경된 복호화 키에 대응하는 암호화 키로 재암호화한 암호문으로 변경할 수 있으며, 이러한 갱신 과정을 갱신 조건이 발생할 때마다 반복적으로 수행할 수 있다. 일실시예에 따를 때, 저장된 복호화 키 및 암호화된 개인 키가 반복적으로 변경되는 키 갱신 알고리즘을 통해 암호화폐 지갑의 보안을 강화할 수 있다. 일실시예에 따른 암호화된 개인 키 및 복호화 키는 서로 다른 데이터베이스에 저장되며, 반복적으로 변경되므로, 외부에서 개인 키를 알기 위해서는 키 갱신 알고리즘이 수행되기 전 제1 데이터베이스 및 제2 데이터베이스에 접근하여야 한다.The server 110 according to an embodiment may update the encrypted private key stored in the first database 120 and the 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 the re-encrypted ciphertext, and this update process can be repeatedly performed whenever an update condition occurs. According to one embodiment, the security of the cryptocurrency wallet can 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를 참조하여 상술한다.Specific 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)를 포함할 수 있다. 일실시예에 따른 키 갱신은 저장된 키를 변경하여 변경된 키를 변경되기 이전의 키를 대신하여 저장하는 것으로, 데이터베이스에 저장된 기존 키에 변경된 키를 덮어쓰는 과정으로 이해할 수 있다.2, the key update algorithm according to an embodiment obtains an encrypted private key stored in a first database (210), and obtains a decryption key corresponding to the obtained encrypted private key from a second database Step 220, decrypting the obtained encrypted private key with the obtained decryption key (230), changing the obtained decryption key and storing it in a second database (240), and decrypting with an encryption key corresponding to the changed decryption key It may include re-encrypting the encrypted private key and storing it in the first database (250). Key update according to an embodiment of the present invention may be understood as a process of overwriting an existing key stored in a database by changing a stored key and storing the changed key in place of the previous key.

일실시예에 따를 때, 키 갱신 알고리즘은 제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 encrypted second private key and the decryption key of the encrypted second private key may be updated according to the key update algorithm. According to an 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, and , may be performed sequentially. Further, 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 may be performed by the same processor. It may also 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 condition include a condition related to the presence or absence of an unconcluded cryptocurrency transaction, a condition related to a predetermined update cycle, etc. In addition, various events recognizable by the server may be set as the update condition. The update condition may include a plurality of conditions. When all of the plurality of conditions are satisfied, the key update algorithm may be performed, or when at least one of the plurality of conditions is satisfied, the 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, and when the first condition or the second condition is satisfied may be performed accordingly.

이하에서, 갱신 조건으로 제1 조건 및 제2 조건 중 적어도 하나를 포함하는 경우를 예로 들어 키 갱신 알고리즘에 따른 키 갱신 과정에 관한 시나리오를 설명한다.Hereinafter, a scenario related to a key update process according to a key update algorithm will be described by taking as an example a case in which at least one of the first condition and the second condition is included as the 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 according to the satisfaction of the first condition, if the first condition is not satisfied during the key update, 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 a key update algorithm is sequentially performed for each of ten encrypted private keys stored in the first database, when the first condition is not satisfied during the update of the fifth encrypted private key and the corresponding decryption key, The renewal process of the fifth encrypted private key and the decryption key is stopped, and as the first condition is satisfied again, the renewal process of the fifth encrypted private key and the decryption key may be resumed. If the first condition is continuously 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 outstanding transaction, if there is no outstanding transaction and an outstanding transaction occurs while the key update algorithm is being executed (that is, if the first condition is not satisfied), The update process is interrupted, and the interrupted update process may be performed again as the first condition in which there is no outstanding transaction is satisfied after the outstanding transaction is performed.

일실시예에 따를 때, 키 갱신 과정이 제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 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 is no outstanding transaction, and if the second condition is a condition that is satisfied when there is no outstanding transaction, the key update process This can be done. When a transaction request is received from the server during execution of the key update algorithm, the first condition is not satisfied, 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 again.

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

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

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

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

도 3에 도시된 암호화폐 거래소 서버의 동작 과정은 상술한 갱신 조건이 미체결된 거래가 없는 경우 만족되는 경우, 서버에 의해 키 갱신 알고리즘이 수행되는 동작으로 이해할 수 있다.The operation process of the cryptocurrency exchange server shown in FIG. 3 can be understood as an operation in which the 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 outstanding cryptocurrency transaction according to an embodiment may include identifying an outstanding 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 any cryptocurrency wallet of at least some of the cryptocurrency wallet(s) of the user(s) registered in the server. can

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

일실시예에 따른 거래를 수행하는 단계(340)는 제1 데이터베이스에서 거래에 대응하는 암호화된 개인 키를 획득하는 단계, 제2 데이터베이스에서 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하는 단계, 획득된 암호화된 개인 키를 획득된 복호화 키로 복호화하는 단계, 복호화된 개인 키에 기초하여, 거래를 수행하는 단계를 포함할 수 있다. 거래에 대응하는 암호화된 개인 키는 거래가 발생한 암화화폐 지갑에 대응하는 암호화된 개인 키를 의미할 수 있다.Performing the transaction (340) according to an embodiment may include: 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 concluded transaction is recorded in the blockchain network, and the server may store the details of the performed transaction in a third database.

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

도 4를 참조하면, 일실시예에 따른 암호화폐 거래소 시스템(410)은 상술한 키 관리 메커니즘을 수행하는 '블록아이' 서버(411), 암호화된 개인 키를 저장하는 데이터베이스(413)를 포함할 수 있으며, 네트워크(420)를 통해 등록된 사용자(401)로부터 암호화폐 거래 요청을 수신하여, 블록체인(402)을 관리할 수 있다. 블록체인(402)의 종류에 따라 네트워크(420)의 구성이 달라질 수 있으나, 이하에서 설명의 편의를 위해 퍼블릭 블록체인의 경우를 예로 들어 설명한다.Referring to FIG. 4 , the cryptocurrency exchange system 410 according to an embodiment may include a 'blockeye' server 411 performing the above-described key management mechanism, and a database 413 storing 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 can be managed. Although the configuration of the network 420 may vary depending on the type of the block chain 402, a public block chain will be exemplified below for convenience of description.

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

'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. A plurality of encrypted private keys of a plurality of users may be stored in the database 413 in which a user's encrypted private key is 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 the details of a transaction discovered from the blockchain 402 network by a 'block eye' 411 to be described later are stored.

일실시예에 따를 때, 암호화된 개인 키의 복호화 키를 저장하는 데이터베이스는 별도의 시스템에서 관리될 수 있다. ‘복호화 키 관리 시스템’(430)은 보안된 네트워크(440)를 이용하는 별도의 시스템에 해당할 수 있다. 복호화 키 관리 시스템(430)은 보안된 네트워크(440)를 사용함으로써 접속할 수 있는 대상을 제한하여 저장된 데이터의 보안을 강화할 수 있다. 예를 들어, 복호화 키 관리 시스템(430)은 후술할 '블록아이'(411)로 접근 대상이 제한될 수 있다.According to an embodiment, the database storing the decryption key of the 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 strengthen the security of stored data by limiting a target that can be accessed by using the secured network 440 . For example, the decryption key management system 430 may limit the 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 for performing a cryptocurrency transaction while exploring the block chain 402 . The block eye 411 is a database 412 for storing cryptocurrency transaction details, a database 413 for storing an encrypted private key, and a database for storing the decryption key of the encrypted private key in the decryption key management system 430 . You can access and load or overwrite the saved contents. When the block eye 411 is stopped, the server of the decryption key management system 430 that stores the decryption key may be sealed to prevent exposure of the decryption key. In addition, security can be strengthened 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 confirms whether the code of the block eye 411 configuration has been changed.

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

(1) 블록아이(411)는 블록체인(402)을 탐색하면서 수행해야할 암호화폐 거래가 있는지 확인한다. 수행해야할 암호화폐 거래는 사용자(예를 들어, 거래소의 회원들)의 암호화폐와 관련된 거래 또는 사용자(예를 들어, 거래소의 회원들)가 발생시킨 거래에 해당할 수 있다.(1) The block eye 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 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 retrieved decryption key to restore the user's private key. The block eye 411 performs the transaction by signing the transaction to be performed with the restored private key. Also, 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 to change 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 current decryption key(s), and decrypts the encrypted private keys using the current decryption key(s). can The block eye 411 or the decryption key management system 430 changes the current decryption key(s), and the block eye 411 converts the private keys into a new encryption key(s) corresponding to the changed decryption key(s). may be re-encrypted to store the re-encrypted private keys in the database 413 . 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 in place of the encrypted private keys before being re-encrypted, and the changed decryption key(s) may be stored in place of the decrypted 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.

실시예에 따라, 수행해야할 거래의 존재 여부와 무관하게, 미리 정해진 주기에 키 갱신 알고리즘이 수행될 수도 있다. 예를 들어, 수행해야할 거래가 있음에도 불구하고, 미리 정해진 주기가 되면 해당 거래의 수행이 홀딩된 채로 키 갱신 알고리즘이 우선적으로 수행될 수 있다. 이 경우, 키 갱신 알고리즘의 수행이 완료된 후 홀딩된 해당 거래의 수행이 재개될 수 있다.According to an embodiment, the key update algorithm may be performed at a predetermined period regardless of whether a transaction to be performed exists. For example, even though there is a transaction to be performed, when a predetermined period occurs, 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 generated 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 the execution of the generated transaction is completed.

또는, 키 갱신 알고리즘의 수행을 하기 위하여 미리 정해진 시간 슬롯을 초과하는 시간이 요구되는 경우, 블록아이(411) 혹은 복호화 키 관리 시스템(430)은 데이터베이스(413)에 저장된 암호화된 개인키들 중 일부에 해당하는 복호화 키(들)을 갱신한 뒤, 다음 시간 슬롯에서 나머지 일부의 암호화된 개인키들에 해당하는 복호화 키(들)을 갱신할 수 있다.Alternatively, when a time exceeding a predetermined time slot is required to perform the key update algorithm, the block eye 411 or the decryption key management system 430 stores some of the encrypted private keys stored in the database 413. After updating the corresponding decryption key(s), it is possible to update the decryption key(s) corresponding to some of the remaining encrypted private keys 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 at a predetermined period (eg, every second) when there is no transaction to be performed by the block eye 411. It is possible to provide a system for managing the keys of this hardened cryptocurrency wallet. For example, even when accessing the database 413 in which the user's private key encrypted from the outside is accessed, the decryption key is stored in a separate system using the secured network 440 to primarily prevent leakage of the decryption key from external access. can defend In addition, by changing the stored decryption key every second, the user's private key cannot be restored except when simultaneously accessing 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 defensive defenses.

도 4에 도시된 구성들은 일실시예에 따른 키 관리 메커니즘이 수행되는 암호화폐 거래소 시스템의 구성의 일 예시에 불과하며, 일실시예에 따른 키 관리 메커니즘을 수행하는 주체를 물리적으로 구분되는 각 구성으로 한정하는 것은 아니다. 상술한 바와 같이, 도 4에 도시된 구성들에 의해 수행되는 동작은 서버에 포함된 적어도 하나의 프로세서에 의해 수행될 수 있다.The configurations shown in FIG. 4 are only an example of a configuration of a cryptocurrency exchange system in which a key management mechanism according to an embodiment is performed, and each configuration that physically separates a subject performing a key management mechanism according to an embodiment is not limited to As described above, operations 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 for performing 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 the 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 non-volatile memory.

프로세서(501)는 프로그램을 실행하고, 장치(500)를 제어할 수 있다. 프로 세서(501)에 의하여 실행되는 프로그램의 코드는 메모리(503)에 저장될 수 있다. 장치(500)는 입출력 장치(505)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.The processor 501 may execute a program and control the device 500 . The code of the program executed by the processor 501 may be stored in the memory 503 . The device 500 may be connected to an external device (eg, a personal computer or a network) through the input/output device 505 and 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 by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using a general purpose computer or special purpose computer. The processing device may execute an operating system (OS) and a software application running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody 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 in 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 the program instructions recorded on the medium are specially designed and configured for the embodiment or may be known and available to those skilled in the art of computer software. may be Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

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

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

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

Claims (20)

암호화폐 거래소 서버의 키 관리 방법에 있어서,
미리 정해진 주기로 상기 서버와 관련된 블록체인의 탐색에 기초하여, 미체결된 암호화폐 거래가 있는지 여부를 확인하는 단계;
상기 거래가 없는 경우,
상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여 제1 데이터베이스에 저장된 암호화된 개인 키를 갱신하는 단계;
상기 암호화된 개인 키의 갱신에 반응하여, 상기 임의의 사용자의 암호화폐 지갑에 대응하여 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하는 단계; 및
상기 미체결된 암호화폐 거래가 발생한 경우, 상기 암호화된 개인 키를 갱신하는 단계 및 상기 암호화된 개인 키의 복호화 키를 갱신하는 단계를 중단하는 단계; 및
상기 거래가 있는 경우,
상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는 단계
를 포함하고,
상기 제2 데이터베이스는 상기 제1 데이터베이스와 구분되는 네트워크를 통해 연결되고,
상기 수행된 거래는 상기 블록체인에 기록되는,
암호화폐 거래소 서버의 키 관리 방법.
In the key management method of the cryptocurrency exchange server,
checking whether there is an outstanding cryptocurrency transaction based on a search of a block chain related to the server at a predetermined period;
In the absence of the above transaction,
updating the encrypted private key stored in the first database in response to the cryptocurrency wallet of any user registered in the server;
in response to updating the encrypted private key, updating a decryption key of the encrypted private key stored in a second database corresponding to the cryptocurrency wallet of the arbitrary user; and
stopping the updating of the encrypted private key and the updating of the decryption key of the encrypted private key when the unconfirmed cryptocurrency transaction occurs; and
If the above transaction exists,
performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction
including,
The second database is connected through a network separated from the first database,
The performed transaction is recorded in the blockchain,
How to manage keys in cryptocurrency exchange servers.
제1항에 있어서,
상기 암호화된 개인 키를 갱신하는 단계는
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계;
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계;
상기 획득된 복호화 키를 변경하는 단계; 및
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계
를 포함하고,
상기 복호화 키를 갱신하는 단계는
상기 변경된 복호화 키를 상기 제2 데이터베이스에 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
According to claim 1,
The step of updating the encrypted private key is
Corresponding to each encrypted private key 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 is
Storing the changed decryption key in the second database
containing,
How to manage keys in cryptocurrency exchange servers.
제1항에 있어서,
상기 거래를 수행하는 단계는
상기 제1 데이터베이스에서 상기 거래에 대응하는 암호화된 개인 키를 획득하는 단계;
상기 제2 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계;
상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하는 단계; 및
상기 수행된 거래의 내역을 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
According to 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 performed transaction
containing,
How to manage keys in cryptocurrency exchange servers.
제1항에 있어서,
상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버의 키 관리 방법.
According to claim 1,
The second database is an access target is restricted based on network security,
How to manage keys in cryptocurrency exchange servers.
제1항에 있어서,
제1 사용자의 요청에 반응하여, 상기 제1 사용자의 제1 암호화폐 지갑 및 상기 제1 암호화폐 지갑에 대응하는 개인 키를 생성하는 단계;
상기 생성된 개인 키를 암호화하여 상기 제1 데이터베이스에 저장하는 단계; 및
상기 생성된 개인 키의 복호화 키를 상기 제2 데이터베이스에 저장하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
According to claim 1,
in response to a request of a first user, generating a first cryptocurrency wallet of the first user and a private key corresponding to the first cryptocurrency wallet;
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 in cryptocurrency exchange servers.
제5항에 있어서,
상기 개인 키를 생성하는 단계는
상기 제1 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
6. The method of claim 5,
The step of generating the private key is
providing the first user with mnemonic words for recovery of the private key;
further comprising,
How to manage keys in cryptocurrency exchange servers.
사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하는 단계;
상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하는 단계; 및
미리 정해진 갱신 조건에 기초하여, 상기 제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 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;
including,
The update condition includes a first condition related to the presence or absence of an outstanding cryptocurrency transaction and a second condition related to a predetermined update cycle,
The private key is used to perform the unconfirmed cryptocurrency transaction, and the cryptocurrency transaction performed using the private key is recorded in a blockchain related to a cryptocurrency exchange server,
How to manage keys in cryptocurrency exchange servers.
제7항에 있어서,
상기 갱신하는 단계는
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하는 단계;
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하는 단계;
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하는 단계;
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하는 단계; 및
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는 단계
를 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
8. The method of claim 7,
The updating step is
Corresponding to each encrypted private key 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 in cryptocurrency exchange servers.
제7항에 있어서,
상기 제1 데이터베이스에 저장하는 단계는
상기 사용자의 암호화폐 지갑에 대응하는 상기 개인 키를 생성하는 단계; 및
상기 사용자에게 상기 개인 키의 복구를 위한 니모닉 워드(Mnemonic words)를 제공하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
8. The method of claim 7,
The step of storing in the first database is
generating the private key corresponding to the user's cryptocurrency wallet; and
providing the user with mnemonic words for recovery of the private key;
further comprising,
How to manage keys in cryptocurrency exchange servers.
삭제delete 제7항에 있어서,
갱신 주기와 관련된 제1 조건 및 거래 유무와 관련된 제2 조건이 만족됨에 따라 상기 갱신하는 단계가 수행되는 도중, 거래 요청을 수신하는 단계;
상기 거래 요청에 반응하여, 상기 갱신하는 단계의 진행을 중단하는 단계;
상기 거래 요청을 처리하는 단계; 및
상기 거래 요청의 처리로 인하여 상기 제2 조건이 다시 충족된 경우, 상기 갱신하는 단계의 진행을 재개하는 단계
를 더 포함하는,
암호화폐 거래소 서버의 키 관리 방법.
8. The method of claim 7,
receiving a transaction request while the updating is performed as the first condition related to the update cycle and the second condition related to the existence of a transaction are satisfied;
stopping the progress of the updating step in response to the transaction request;
processing the transaction request; and
When the second condition is satisfied again due to the processing of the transaction request, resuming the progress of the updating step;
further comprising,
How to manage keys in cryptocurrency exchange servers.
제7항에 있어서,
상기 제2 데이터베이스는
네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버의 키 관리 방법.
8. The method of claim 7,
The second database is
Access is restricted based on network security,
How to manage keys in cryptocurrency exchange servers.
하드웨어와 결합되어 제1항 내지 제9항, 제11항 및 제12항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored on a medium in combination with hardware to execute the method of any one of claims 1 to 9, 11 and 12.
암호화폐 거래소 서버에 있어서,
미리 정해진 주기로 상기 서버와 관련된 블록체인의 탐색에 기초하여, 미체결된 암호화폐 거래가 있는지 여부를 확인하고,
상기 거래가 없는 경우, 상기 서버에 등록된 임의의 사용자의 암호화폐 지갑에 대응하여, 제1 데이터베이스에 저장된 암호화된 개인 키를 갱신하고, 상기 암호화된 개인 키의 갱신에 반응하여, 상기 임의의 사용자의 암호화폐 지갑에 대응하여 제2 데이터베이스에 저장된 상기 암호화된 개인 키의 복호화 키를 갱신하고, 상기 미체결된 암호화폐 거래가 발생한 경우, 상기 암호화된 개인 키를 갱신하는 단계 및 상기 암호화된 개인 키의 복호화 키를 갱신하는 단계를 중단하며,
상기 거래가 있는 경우, 상기 거래에 대응하는 암호화폐 지갑의 개인 키에 기초하여 상기 거래를 수행하는,
적어도 하나의 프로세서를 포함하고,
상기 제2 데이터베이스는 상기 제1 데이터베이스와 구분되는 네트워크를 통해 연결되고,
상기 수행된 거래는 상기 블록체인에 기록되는,
암호화폐 거래소 서버.
In the cryptocurrency exchange server,
Based on the search of the block chain related to the server at a predetermined period, it is checked whether there is an outstanding cryptocurrency transaction,
If there is no transaction, the encrypted private key stored in the first database is updated in response to the cryptocurrency wallet of any user registered in the server, and in response to the update of the encrypted private key, the user's Renewing the decryption key of the encrypted private key stored in the second database corresponding to the cryptocurrency wallet, and when the unconfirmed cryptocurrency transaction occurs, updating the encrypted private key and decrypting the encrypted private key aborts the step of renewing the key;
If there is the transaction, performing the transaction based on the private key of the cryptocurrency wallet corresponding to the transaction,
at least one processor;
The second database is connected through a network separated from the first database,
The performed transaction is recorded in the blockchain,
Cryptocurrency exchange server.
제14항에 있어서,
상기 프로세서는,
상기 갱신함에 있어서,
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고,
상기 해당하는 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고,
상기 획득된 복호화 키로 상기 해당하는 암호화된 개인 키를 복호화하고,
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하며,
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는,
암호화폐 거래소 서버.
15. The method of claim 14,
The processor is
In the update,
Corresponding to each encrypted private key 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,
Change the obtained decryption key and store it 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 데이터베이스에서 상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 획득하고,
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하고,
상기 복호화된 개인 키에 기초하여, 상기 거래를 수행하며,
상기 수행된 거래의 내역을 저장하는,
암호화폐 거래소 서버.
15. The method of claim 14,
the processor
In carrying out 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,
Based on the decrypted private key, performing the transaction,
storing the details of the performed transaction,
Cryptocurrency exchange server.
제14항에 있어서,
상기 제2 데이터베이스는 네트워크 보안에 기초하여 접근 대상이 제한되는,
암호화폐 거래소 서버.
15. The method of claim 14,
The second database is an access target is restricted based on network security,
Cryptocurrency exchange server.
사용자의 암호화폐 지갑에 대응하여 생성된 개인 키를 암호화하여 제1 데이터베이스에 저장하고,
상기 개인 키의 복호화 키를 제2 데이터베이스에 저장하며,
미리 정해진 갱신 조건에 기초하여, 상기 제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;
at least one processor;
The update condition includes a first condition related to the presence or absence of an outstanding cryptocurrency transaction and a second condition related to a predetermined update cycle,
The private key is used to perform the unconfirmed cryptocurrency transaction, and the cryptocurrency transaction performed using the private key is recorded in a blockchain related to a cryptocurrency exchange server,
Cryptocurrency exchange server.
제18항에 있어서,
상기 프로세서는,
상기 갱신함에 있어서,
상기 제1 데이터베이스에 저장된 암호화된 개인 키 각각에 대응하여,
해당하는 암호화된 개인 키를 상기 제1 데이터베이스에서 획득하고,
상기 획득된 암호화된 개인 키에 대응하는 복호화 키를 상기 제2 데이터베이스에서 획득하고,
상기 획득된 복호화 키로 상기 획득된 암호화된 개인 키를 복호화하고,
상기 획득된 복호화 키를 변경하여 상기 제2 데이터베이스에 저장하며,
상기 변경된 복호화 키에 대응하는 암호화 키로 상기 복호화된 개인 키를 재암호화하여 상기 제1 데이터베이스에 저장하는,
암호화폐 거래소 서버.
19. The method of claim 18,
The processor is
In the update,
Corresponding to each encrypted private key 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,
Change the obtained decryption key and store it 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)를 제공하는,
암호화폐 거래소 서버.
19. The method of claim 18,
The processor is
In storing in the first database,
generating the private key corresponding to the user's cryptocurrency wallet,
providing the user with mnemonic words for recovery of the private key,
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 KR20210045326A (en) 2021-04-26
KR102446985B1 true 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)

Families Citing this family (1)

* 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101954863B1 (en) * 2018-07-09 2019-03-06 서울대학교산학협력단 Online wallet apparatus, and method for generating and verifying online wallet

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3425738B2 (en) * 1996-12-06 2003-07-14 株式会社エヌ・ティ・ティ・データ Electronic money system, transaction information generation method, and recording medium
KR101936272B1 (en) * 2016-08-04 2019-01-08 주식회사 한컴시큐어 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR101954863B1 (en) * 2018-07-09 2019-03-06 서울대학교산학협력단 Online wallet apparatus, and method for generating and verifying online wallet

Also Published As

Publication number Publication date
KR20210045326A (en) 2021-04-26

Similar Documents

Publication Publication Date Title
US7912223B2 (en) Method and apparatus for data protection
JP4902207B2 (en) System and method for managing multiple keys for file encryption and decryption
US9158933B2 (en) Protection of encryption keys in a database
KR100737628B1 (en) Attestation using both fixed token and portable token
US20170024425A1 (en) Client computer for updating a database stored on a server via a network
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
US8181028B1 (en) Method for secure system shutdown
US20130124866A1 (en) Client-server system with security for untrusted server
EP3101645A1 (en) Secret calculation method, secret calculation system, secret calculation server, registrant terminal, user terminal and program
US10250387B1 (en) Quantum computer resistant algorithm cryptographic key generation, storage, and transfer device
CN107040520B (en) Cloud computing data sharing system and method
JP2022531497A (en) Transfer of digital asset ownership over a one-way connection
WO2022206453A1 (en) Method and apparatus for providing cross-chain private data
JP2023535040A (en) Master key escrow process
KR20180010482A (en) Method and apparatus for security of internet of things devices
CA3028091C (en) Securing data at rest utilizing cloud provider service agnostic encrypted data transportability
KR102446985B1 (en) Key management mechanism for cryptocurrency wallet
Pavan Kumar et al. Server security in cloud computing using block-chaining technique
US10261920B2 (en) Static image RAM drive
US9436849B2 (en) Systems and methods for trading of text based data representation
CN110914826A (en) System and method for distributed data mapping
JP6318305B2 (en) How to manage subscriptions on the provisioning server
US11921877B2 (en) Efficient random tokenization in the cloud
KR102496436B1 (en) Method of storing plurality of data pieces in storage in blockchain network and method of receiving plurality of data pieces
KR102199464B1 (en) Method of authentication among nodes participating in consortium blockchain

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