KR20210020699A - Method for performing backup and recovery private key in consortium blockchain network, and device using them - Google Patents

Method for performing backup and recovery private key in consortium blockchain network, and device using them Download PDF

Info

Publication number
KR20210020699A
KR20210020699A KR1020190100582A KR20190100582A KR20210020699A KR 20210020699 A KR20210020699 A KR 20210020699A KR 1020190100582 A KR1020190100582 A KR 1020190100582A KR 20190100582 A KR20190100582 A KR 20190100582A KR 20210020699 A KR20210020699 A KR 20210020699A
Authority
KR
South Korea
Prior art keywords
private key
block chain
divided
chain node
user
Prior art date
Application number
KR1020190100582A
Other languages
Korean (ko)
Other versions
KR102269753B1 (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 주식회사 코인플러그
Priority to KR1020190100582A priority Critical patent/KR102269753B1/en
Publication of KR20210020699A publication Critical patent/KR20210020699A/en
Application granted granted Critical
Publication of KR102269753B1 publication Critical patent/KR102269753B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a method for allowing blockchain network users to split their private key to create private keyshares, and storing each of the generated private keyshares in block generation nodes of the consortium blockchain network.

Description

컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치{METHOD FOR PERFORMING BACKUP AND RECOVERY PRIVATE KEY IN CONSORTIUM BLOCKCHAIN NETWORK, AND DEVICE USING THEM}Method and device for backing up and restoring private keys in the consortium blockchain network {METHOD FOR PERFORMING BACKUP AND RECOVERY PRIVATE KEY IN CONSORTIUM BLOCKCHAIN NETWORK, AND DEVICE USING THEM}

본 발명은 사용자의 프라이빗 키를 백업 및 복원하는 방법 및 장치에 관한 것으로, 보다 상세하게는, 컨소시엄 블록체인 네트워크에서 사용자의 프라이빗 키를 백업 및 복원하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for backing up and restoring a user's private key, and more particularly, to a method and apparatus for backing up and restoring a user's private key in a consortium blockchain network.

일반적으로 PKI(public key infrastructure) 시스템에서 사용되는 비대칭 키는 프라이빗 키와 퍼블릭 키로 구성되어 있다.In general, an asymmetric key used in a public key infrastructure (PKI) system consists of a private key and a public key.

이중, 프라이빗 키는 사용자가 생성하여 관리하는 것으로, 외부에 절대적으로 노출되어서는 안 되는 정보이다.Among them, the private key is created and managed by the user, and is information that must not be exposed to the outside.

특히, 블록체인 네트워크의 사용자는 프라이빗 키와 퍼블릭 키를 스스로 생성하며, 프라이빗 키의 분실에 대비하여 생성된 프라이빗 키를 백업하여 관리하고 있다.In particular, users of the blockchain network generate private keys and public keys themselves, and backup and manage the generated private keys in case the private key is lost.

일 예로, 블록체인 네트워크 사용자는 프라이빗 키를 프린트하거나 다른 문서에 기재하여 관리하고 있다.For example, users of the blockchain network print their private keys or write them in other documents to manage them.

이는 사용자들이 블록체인 어플리케이션을 부담 없이 사용하게 하는 데 있어 가장 큰 허들(hurdle)이며, 재발급이 가능한 공인인증서와는 다르게, 프라이빗 키를 분실할 경우에는 프라이빗 키의 해당 주소와 연결된 블록체인 네트워크 상의 자산을 영원히 복구할 수 없게 되는 문제점이 있다.This is the biggest hurdle in allowing users to use blockchain applications without burden, and unlike public certificates that can be reissued, if the private key is lost, the asset on the blockchain network connected to the corresponding address of the private key. There is a problem that it cannot be recovered forever.

또한, 다른 문서를 이용하여 프라이빗 키를 관리하는 경우에는 프라이빗 키의 도난 등의 문제가 발생할 수 있으며, 프라이빗 키가 제3자에 의해 도용될 경우에는 블록체인 네트워크 상의 사용자 자산에 대한 권한을 상실하게 되는 문제점이 발생할 수 있다.In addition, if the private key is managed using other documents, problems such as theft of the private key may occur. If the private key is stolen by a third party, the authority to the user's assets on the blockchain network is lost. Problems may occur.

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.An object of the present invention is to solve all the above-described problems.

또한, 본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 효과적으로 관리할 수 있도록 하는 것을 다른 목적으로 한다.In addition, another object of the present invention is to enable users of a blockchain network to effectively manage their private keys.

또한, 본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 용이하게 백업할 수 있도록 하며, 백업된 프라이빗 키를 용이하게 복원할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another object of the present invention is to enable users of a blockchain network to easily back up their own private key and to easily restore the backed up private key.

또한, 본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 블록체인 네트워크에 백업하여 제3자에 의한 도용을 방지할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another object of the present invention is to enable blockchain network users to back up their private keys to the blockchain network to prevent theft by a third party.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.A typical configuration of the present invention for achieving the above object is as follows.

본 발명의 일 실시예에 따르면, 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 분할하여 프라이빗 키 셔어들을 생성하며, 생성된 프라이빗 키 셔어들 각각을 컨소시엄 블록체인 네트워크의 블록 생성 노드들에 저장하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method for blockchain network users to divide their private keys to generate private keyshires, and to store each of the generated private keyshires in block generation nodes of a consortium blockchain network. Is provided.

또한, 본 발명의 일 실시예에 따르면, 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 분할하여 프라이빗 키 셔어들을 생성하며, 생성된 프라이빗 키 세어들 각각을 컨소시엄 블록체인 네트워크의 블록 생성 노드들에 분산 저장하는 시스템, 사용자 단말, 및 블록 생성 노드가 제공된다.In addition, according to an embodiment of the present invention, blockchain network users divide their private keys to generate private key statements, and each of the generated private key statements is distributed and stored in block generation nodes of the consortium blockchain network. A system, a user terminal, and a block generation node are provided.

이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition to this, a computer-readable recording medium for recording a computer program for executing the method of the present invention is further provided.

본 발명에 의하면, 다음과 같은 효과가 있다.According to the present invention, the following effects are obtained.

본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 분할하여 컨소시엄 블록체인 네트워크의 블록 생성 노드들에 분산 저장함으로써 자신의 프라이빗 키를 효과적으로 관리할 수 있게 된다.In the present invention, users of a blockchain network can effectively manage their private keys by dividing their private keys and storing them distributedly in block generation nodes of a consortium blockchain network.

본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 분할하여 컨소시엄 블록체인 네트워크의 블록 생성 노드들에 분산 저장함으로써 자신의 프라이빗 키를 용이하게 백업할 수 있게 되며, 백업된 프라이빗 키를 용이하게 복원할 수 있게 된다.The present invention enables users of the blockchain network to easily back up their private keys by dividing their private keys and storing them distributedly in the block generation nodes of the consortium blockchain network, and to easily restore the backed up private keys. You will be able to.

본 발명은 블록체인 네트워크 사용자들이 자신의 프라이빗 키를 분할하여 컨소시엄 블록체인 네트워크의 블록 생성 노드들에 분산 저장함으로써 제3자에 의한 도용을 방지할 수 있게 된다.The present invention enables users of a blockchain network to divide their private keys and store them distributedly in block generation nodes of a consortium blockchain network to prevent theft by a third party.

도 1은 본 발명의 일 실시예에 따른 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하기 위한 시스템을 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법을 개략적으로 도시한 것이다.
1 schematically shows a system for backing up and restoring a private key in a consortium blockchain network according to an embodiment of the present invention,
2 schematically illustrates a method of backing up and restoring a private key in a consortium blockchain network according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE INVENTION The detailed description of the present invention to be described later refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It is to be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of the present invention, if appropriately described, is limited only by the appended claims, along with all scopes equivalent to those claimed by the claims. Like reference numerals in the drawings refer to the same or similar functions over several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하기 위한 시스템을 개략적으로 도시한 것으로, 시스템(100)은 사용자 단말(10)과 컨소시엄 블록체인 네트워크(20)를 포함할 수 있다.1 schematically shows a system for backing up and restoring a private key in a consortium blockchain network according to an embodiment of the present invention. The system 100 includes a user terminal 10 and a consortium blockchain network 20. ) Can be included.

먼저, 사용자 단말(10)은 사용자가 PKI 기반의 프라이빗 키와 퍼블릭 키를 생성할 수 있도록 하며, 사용자에 의한 프라이빗 키의 백업과 복원을 수행하는 주체로, PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, IoT 기기, 서버 등을 포함할 수 있다. 하지만, 사용자 단말(10)은 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 일회성 아이디를 생성하기 위한 컴퓨팅 연산을 수행할 수 있는 모든 장치를 포함할 수 있다.First, the user terminal 10 allows a user to generate a PKI-based private key and a public key, and is a subject that performs backup and restoration of the private key by the user, and includes a personal computer (PC), a mobile computer, and a PDA. /EDA, mobile phones, smart phones, tablets, IoT devices, servers, etc. can be included. However, the user terminal 10 is not limited thereto, and may include any device capable of performing a computing operation for generating a one-time ID, such as a portable game machine having a wired/wireless communication function, a digital camera, and a personal navigation system.

또한, 사용자 단말(10)은 프라이빗 키의 백업과 복원을 위한 인스트럭션들을 저장하는 메모리와 메모리에 저장된 인스트럭션들에 대응하여 프라이빗 키의 백업과 복원을 위한 동작을 수행하는 프로세서를 포함할 수 있다.In addition, the user terminal 10 may include a memory for storing instructions for backing up and restoring the private key, and a processor for performing an operation for backing up and restoring the private key in response to the instructions stored in the memory.

구체적으로, 사용자 단말(10)은 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세스, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, the user terminal 10 is typically a computing device (e.g., a device that may include components of a computer process, memory, storage, input and output devices, and other existing computing devices; electronic devices such as routers, switches, etc.) Communication device; desired system using a combination of electronic information storage systems such as network attached storage (NAS) and storage area networks (SAN)) and computer software (i.e., instructions that make the computing device function in a specific way) It may be to achieve performance.

또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 컴퓨팅 장치는 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.In addition, the processor of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. In addition, the computing device may further include an operating system and a software configuration of an application that performs a specific purpose.

다음으로, 컨소시엄 블록체인 네트워크(20)는 사용자의 프라이빗 키를 분산 저장하는 것으로, 다수의 블록 생성 노드(BP)들로 블록체인 네트워크를 구성한다.Next, the consortium blockchain network 20 distributes and stores the user's private key, and constitutes a blockchain network with a plurality of block generation nodes (BPs).

이때, 컨소시엄 블록체인 네트워크(20)는 퍼블릭 블록체인 네트워크와 프라이빗 블록체인 네트워크의 중간 형태로, 관리자에 의해 승인받은 블록 생성 노드들만이 블록 생성에 참여할 수 있는 있으며, 같은 목적을 가지고 있는 여러 기관이 하나의 컨소시엄을 구성하여 공정성과 확장성을 보완한 블록체인 네트워크일 수 있다.At this time, the consortium blockchain network 20 is an intermediate form between a public blockchain network and a private blockchain network, and only block generation nodes approved by the administrator can participate in block generation, and several institutions with the same purpose It can be a blockchain network that complements fairness and scalability by forming a consortium.

한편, 컨소시엄 블록체인 네트워크(20)를 구성하는 각각의 블록 생성 노드(BP)들 각각은, PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, 서버 등을 포함할 수 있으나, 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 컴퓨팅 연산을 수행하는 모든 컴퓨팅 장치를 포함할 수 있다.On the other hand, each of the block generation nodes (BP) constituting the consortium blockchain network 20 may include a personal computer (PC), a mobile computer, a PDA/EDA, a mobile phone, a smartphone, a tablet, a server, etc. However, the present invention is not limited thereto, and may include all computing devices that perform computing operations, such as a portable game machine having a wired/wireless communication function, a digital camera, and personal navigation.

구체적으로, 블록 생성 노드(BP)들 각각은 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, each of the block generation nodes (BPs) is typically a computing device (e.g., a device that may include components of a computer processor, memory, storage, input device and output device, and other existing computing devices; routers, switches). Electronic communication devices such as; using a combination of electronic information storage systems such as network attached storage (NAS) and storage area networks (SAN)) and computer software (i.e., instructions that make the computing device function in a specific way) To achieve the desired system performance.

이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit of such a computing device is capable of transmitting and receiving requests and responses to and from other computing devices that are interlocked. As an example, such requests and responses may be made by the same TCP session, but are not limited thereto. For example, UDP data It could also be sent and received as grams.

또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.In addition, the processor of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. In addition, it may further include an operating system and a software configuration of an application that performs a specific purpose.

이와 같이 구성된 본 발명의 일 실시예에 따른 시스템을 참조하여 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법을 도 2를 참조하여 설명하면 다음과 같다.A method of backing up and restoring a private key in a consortium blockchain network with reference to the system according to an embodiment of the present invention configured as described above will be described with reference to FIG. 2.

사용자는 사용자 단말(10)을 통해 컨소시엄 블록체인 네트워크(20)에서 사용하기 위한 PKI 기반의 프라이빗 키와 퍼블릭 키를 생성할 수 있다.A user can generate a PKI-based private key and a public key for use in the consortium blockchain network 20 through the user terminal 10.

이후, 프라이빗 키를 백업하기 위하여 사용자는 사용자 단말(10)을 통해 프라이빗 키를 m개로 분할(S1)할 수 있다.Thereafter, in order to back up the private key, the user may divide the private key into m through the user terminal 10 (S1).

이때, 사용자 단말(10)은 Shamir의 비밀 분산 기법인 (m, n) 비밀 분산 기법에 의해 Q(0)=프라이빗 키이고 차수가 m-1인 임의의 다항식 Q(x)를 선택하고, Q(i)(1≤i≤n)의 값을 갖는 n개의 분할된 프라이빗 키를 생성한다.At this time, the user terminal 10 selects an arbitrary polynomial Q(x) whose Q(0)=private key and the degree m-1 by Shamir's secret distribution technique (m, n) secret distribution technique, and Q (i) Generate n partitioned private keys having a value of (1≤i≤n).

그리고, 사용자는 사용자 단말(10)을 통해 컨소시엄 블록체인 네트워크(20)로 n개의 분할된 프라이빗 키에 대한 백업을 요청(S2)함으로써 컨소시엄 블록체인 네트워크(20)로 하여금 n개의 분할된 프라이빗 키를 백업하도록 할 수 있다. 즉, 컨소시엄 블록체인 네트워크(20)를 구성하는 블록 생성 노드(BP)들 중 n개의 블록 생성 노드(BP)들이 각각의 분할된 프라이빗 키를 분산 저장(S6)할 수 있도록 한다.In addition, the user requests (S2) a backup of n divided private keys to the consortium blockchain network 20 through the user terminal 10, thereby causing the consortium blockchain network 20 to receive the n divided private keys. You can have it back up. That is, among the block generation nodes BPs constituting the consortium block chain network 20, n block generation nodes BPs can distribute and store each divided private key (S6).

일 예로, 사용자 단말(10)은 n개로 분할된 프라이빗 키 각각에 대하여, n개의 블록 생성 노드(BP)들의 퍼블릭 키를 이용한 n개의 블록 생성 노드(BP)들의 블록체인 어드레스들을 확인하고, 확인된 어드레스들을 참조하여 각각의 블록 생성 노드(BP)들로 n개로 분할된 프라이빗 키 각각을 전송한다.For example, the user terminal 10 checks the block chain addresses of n block generation nodes (BP) using the public keys of n block generation nodes (BP) for each private key divided into n, and Each private key divided into n is transmitted to each block generation node BP with reference to the addresses.

이때, 각각의 블록 생성 노드(BP)들로 전송하는 각각의 분할된 프라이빗 키는 각각의 블록 생성 노드(B))들의 퍼블릭 키를 이용하여 암호화하여 전송하거나 암호화없이 각각의 분할된 프라이빗 키를 전송할 수 있다.At this time, each divided private key transmitted to each block generating node (BP) is encrypted and transmitted using the public key of each block generating node (B)), or each divided private key is transmitted without encryption. I can.

그러면, 각각의 블록 생성 노드(B)들은 등록 요청된 각각의 분할된 프라이빗 키를 저장하여, 등록 결과를 사용자 단말(10)로 전송하여 줌으로써 사용자가 사용자 단말(10)을 통해 각각의 분할된 프라이빗 키가 컨소시엄 블록체인 네트워크(20)에 등록된 것을 확인할 수 있도록 할 수 있다.Then, each block generation node (B) stores each divided private key requested for registration, and transmits the registration result to the user terminal 10, thereby allowing the user to access each divided private key through the user terminal 10. It is possible to confirm that the key is registered in the consortium blockchain network 20.

또한, 분할된 프라이빗 키의 백업 요청시, 사용자 단말(10)은 사용자의 DID(decentralized identifier)를 이용함으로써 백업 요청된 프라이빗 키에 대한 사용자를 식별할 수 있도록 할 수 있다.In addition, when requesting backup of the divided private key, the user terminal 10 may identify a user for the private key requested for backup by using the user's decentralized identifier (DID).

일 예로, 사용자가 DID를 이용하여 분할된 프라이빗 키들에 대한 백업 요청을 하면, 각각의 블록 생성 노드(BP)들은 사용자 단말(10)로 사용자 인증 정보를 요청(S3)한다.For example, when a user makes a backup request for partitioned private keys using a DID, each block generation node BP requests user authentication information to the user terminal 10 (S3).

그러면, 사용자 단말(10)은 사용자의 입증 정보인 VC(verifiable credential)을 각각의 블록 생성 노드(BP)들로 전송하거나 VC가 저장된 데이터 허브(15)와의 인터랙션을 통해 데이터 허브(15)로부터 각각의 블록 생성 노드(BP)들이 사용자의 DID에 대응되는 VC를 획득(S4)하도록 할 수 있다.Then, the user terminal 10 transmits VC (verifiable credential), which is the user's verification information, to each block generating node BP, or from the data hub 15 through an interaction with the data hub 15 in which the VC is stored. The block generation nodes BPs of may obtain (S4) the VC corresponding to the user's DID.

그리고, 각각의 블록 생성 노드(BP)들은 사용자 단말(10) 또는 데이터 허브(15)로부터 사용자의 VC가 획득되면, 사용자의 VC가 유효한지를 확인하여 사용자가 유효한 사용자인지를 인증(S5)할 수 있다.And, each block generation node (BP), when the user's VC is acquired from the user terminal 10 or the data hub 15, can verify whether the user is a valid user by checking whether the user's VC is valid (S5). have.

이와 같은 방법에 의해 사용자가 프라이빗 키를 백업한 상태에서, 백업된 프라이빗 키를 이용하여 자신의 프라이빗 키를 복원하기 위하여, 사용자 단말(10)을 통해 컨소시엄 블록체인 네트워크(20)의 각각의 블록 생성 노드(BP)들로 분할된 프라이빗 키들의 전송을 요청(S11)한다.In the state in which the user has backed up the private key by this method, each block of the consortium blockchain network 20 is created through the user terminal 10 in order to restore his or her own private key using the backed up private key. A request for transmission of the private keys divided to the nodes BP is requested (S11).

그러면, 컨소시엄 블록체인 네트워크(20)의 각각의 블록 생성 노드(BP)들은 저장하고 있는 각각의 분할된 프라이빗 키들을 확인하고(S15), 확인된 각각의 분할된 프라이빗 키들을 사용자 단말(10)로 전송(S15)하여 준다.Then, each block generation node (BP) of the consortium blockchain network 20 checks each of the divided private keys stored (S15), and transfers each of the confirmed divided private keys to the user terminal 10. It transmits (S15).

이때, 블록 생성 노드(BP)들 각각은, 저장하고 하는 분할된 프라이빗 키로 각각의 블록 생성 노드(BP)들의 퍼블릭 키로 암호화된 상태일 경우에는, 블록 생성 노드(BP)들 각각의 프라이빗 키를 이용하여 복호화하고, 복호화된 각각의 분할된 프라이빗 키들을 사용자 단말(10)로 전송하여 줄 수 있다.At this time, each of the block generation nodes (BP) uses a private key of each of the block generation nodes (BP) in the case of being encrypted with the public key of each block generation node (BP) with a divided private key that is stored and stored. The decryption may be performed and each of the decrypted divided private keys may be transmitted to the user terminal 10.

또한, 분할된 프라이빗 키들의 전송 요청시, 사용자 단말(10)은 사용자의 DID(decentralized identifier)를 이용함으로써 분할된 프라이빗 키들의 전송 요청에 대한 사용자를 식별할 수 있도록 할 수 있다.In addition, when requesting the transmission of the divided private keys, the user terminal 10 may identify the user for the request for transmission of the divided private keys by using the user's decentralized identifier (DID).

일 예로, 사용자가 DID를 이용하여 분할된 프라이빗 키들에 대한 전송 요청을 하면, 각각의 블록 생성 노드(BP)들은 사용자 단말(10)로 사용자 인증 정보를 요청(S12)한다.For example, when a user requests transmission of divided private keys using a DID, each block generation node BP requests user authentication information to the user terminal 10 (S12).

그러면, 사용자 단말(10)은 사용자의 입증 정보인 VC를 각각의 블록 생성 노드(BP)들로 전송하거나 VC가 저장된 데이터 허브(15)와의 인터랙션을 통해 데이터 허브(15)로부터 각각의 블록 생성 노드(BP)들이 사용자의 DID에 대응되는 VC를 획득(S13)하도록 할 수 있다.Then, the user terminal 10 transmits VC, which is the user's authentication information, to each block generation node (BP) or through an interaction with the data hub 15 in which the VC is stored, each block generation node from the data hub 15 The (BPs) may obtain a VC corresponding to the user's DID (S13).

그리고, 각각의 블록 생성 노드(BP)들은 사용자 단말(10) 또는 데이터 허브(15)로부터 사용자의 VC가 획득되면, 사용자의 VC가 유효한지를 확인하여 사용자가 유효한 사용자인지를 인증(S14)할 수 있다.And, each block generation node (BP), when the user's VC is obtained from the user terminal 10 or the data hub 15, can verify whether the user is a valid user by checking whether the user's VC is valid (S14). have.

이후, 컨소시엄 블록체인 네트워크(20)의 각각의 블록 생성 노드(BP)들로부터 분할된 프라이빗 키를 수신한 사용자 단말(10)은 수신된 분할된 프라이빗 키를 이용하여 사용자의 프라이빗 키를 복원(S17)할 수 있다.Thereafter, the user terminal 10 receiving the divided private key from each block generation node (BP) of the consortium blockchain network 20 restores the user's private key using the received divided private key (S17). )can do.

일 예로, 사용자 단말(10)은 컨소시엄 블록체인 네트워크(20)로부터 획득한 분할된 프라이빗 키의 개수가 m 이상이 되면, 라그랑제 보간법을 이용하여 사용자의 프라이빗 키를 복원할 수 있다.For example, when the number of divided private keys obtained from the consortium blockchain network 20 is m or more, the user terminal 10 may restore the user's private key by using a Lagrange interpolation method.

즉, 사용자 단말(10)은 n개의 분할된 프라이빗 키들 중 m개 이상의 분할된 프라이빗 키들이 획득되면, 라그랑제 보간법을 수행하여 다항식 Q(x)와 프라이빗 키=Q(0) 값을 계산할 수 있다. 이때, 만약 수신되는 분할된 프라이빗 키들의 개수가 m 미만일 경우에는 Q(0), 즉, 프라이빗 키를 복원할 수 없다. 이는 m 미만의 블록 생성 노드(BP)들에 의한 공모를 방지하도록 하여 프라이빗 키를 보호할 수 있도록 한다.That is, the user terminal 10 may calculate the polynomial Q(x) and the private key = Q(0) value by performing the Lagrange interpolation when m or more of the divided private keys are obtained among n divided private keys. . At this time, if the number of received divided private keys is less than m, Q(0), that is, the private key cannot be restored. This prevents collusion by block generation nodes (BPs) of less than m and thus protects the private key.

상기에서는 컨소시엄 블록체인 네트워크를 이용하여 분할된 프라이빗 키들을 백업 및 복원하는 것으로 설명하였으나, 컨소시엄 블록체인 네트워크와 같이 블록 생성을 위한 특정 블록체인 노드들이 설정된 프라이빗 블록체인 네트워크에서도 본 발명이 동일하게 적용될 수 있다.In the above, it has been described that the divided private keys are backed up and restored using a consortium blockchain network, but the present invention can be applied equally to a private blockchain network in which specific blockchain nodes for block generation are set, such as a consortium blockchain network. have.

또한, 퍼블릭 블록체인 네트워크에서도 본 발명의 일 실시예에 따라 블록을 생성하는 블록체인 노드, 즉, miner 노드들을 이용하여 본 발명의 일 실시예에 따라 분할된 프라이빗 키들을 백업 및 복원할 수도 있다.In addition, in a public blockchain network, it is also possible to back up and restore private keys divided according to an embodiment of the present invention by using a block chain node that generates a block according to an embodiment of the present invention, that is, miner nodes.

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Further, the embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of the 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 may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described by specific matters such as specific elements and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Anyone with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the above-described embodiments and should not be defined, and all modifications that are equally or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. I would say.

100: 프라이빗 키 백업 및 복원 시스템,
10: 사용자 단말,
20: 컨소시엄 블록체인 네트워크
BP: 블록 생성 노드
100: private key backup and restore system,
10: user terminal,
20: Consortium Blockchain Network
BP: Block Generation Node

Claims (18)

블록체인 네트워크를 이용하여 프라이빗 키를 백업하는 방법에 있어서,
(a) 사용자에 의한 프라이빗 키 백업 요청이 획득되면, 사용자 단말이, 상기 프라이빗 키를 분할하여 제1 분할된 프라이빗 키 내지 제n - 상기 n은 1 이상의 정수임 - 분할된 프라이빗 키를 생성하며, 상기 블록체인 네트워크를 구성하는 제1 블록체인 노드 내지 제n 블록체인 노드 각각의 제1 블록체인 어드레스 내지 제n 블록체인 어드레스, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키, 및 상기 사용자의 DID를 포함하는 제1 프라이빗 키 백업 요청 트랜잭션 내지 제n 프라이빗 키 백업 요청 트랜잭션을 생성하는 단계; 및
(b) 상기 사용자 단말이, 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션을 상기 블록체인 네트워크로 브로드캐스팅하여 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션이 상기 제1 블록체인 어드레스 내지 상기 제n 블록체인 어드레스에 대응되는 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송되도록 하며, 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션 각각을 수신한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 사용자의 DID와 연계하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 저장하도록 하도록 하는 단계;
를 포함하는 방법.
In the method of backing up the private key using a blockchain network,
(a) When the private key backup request by the user is obtained, the user terminal divides the private key to generate a first divided private key to n-th-n is an integer greater than or equal to 1-and generates a divided private key, the The first block chain address to the n-th block chain address of each of the first block chain node to the n-th block chain node constituting the blockchain network, the first divided private key to the n-th divided private key, and the user Generating a first private key backup request transaction to an nth private key backup request transaction including the DID of; And
(b) the user terminal broadcasts the first private key backup request transaction to the n-th private key backup request transaction to the blockchain network, and the first private key backup request transaction to the n-th private key backup request A transaction is transmitted to each of the first block chain node to the n-th block chain node corresponding to the first block chain address to the n-th block chain address, and the first private key backup request transaction to the n-th private To store each of the first divided private key to the n-th divided private key in association with the user's DID by each of the first block chain node to the n-th block chain node receiving each key backup request transaction. A step to do;
How to include.
제1항에 있어서,
상기 (b) 단계에서,
상기 사용자 단말은, 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션에 대응하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 사용자 인증 정보 요청이 획득되면, (i) 상기 사용자의 DID에 대응되는 상기 사용자의 입증 정보인 자격 증명을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 자격 증명을 획득하도록 하거나, 상기 자격 증명이 저장된 데이터 허브의 정보를 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 데이터 허브와의 인터랙션을 통해 상기 자격 증명을 획득하도록 하며, (ii) 상기 자격 증명을 획득한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 자격 증명이 유효한지를 확인하여 상기 사용자를 인증하도록 하는 방법.
The method of claim 1,
In step (b),
The user terminal, when a user authentication information request is obtained from each of the first block chain node to the n-th block chain node in response to the first private key backup request transaction to the n-th private key backup request transaction, (i ) Each of the first block chain node to the n-th block chain node transmits the credential, which is the user's authentication information corresponding to the user's DID, to each of the first block chain node to the n-th block chain node. To obtain a credential, or by transmitting the information of the data hub in which the credential is stored to each of the first blockchain node to the n-th blockchain node, each of the first to the n-th blockchain node The user is asked to obtain the credentials through interaction with a data hub, and (ii) each of the first block chain node to the n-th block chain node that has obtained the credentials checks whether the credentials are valid, and the user How to make it authenticate.
제1항에 있어서,
상기 (a) 단계에서,
상기 사용자 단말은, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각의 퍼블릭 키들을 이용하여 암호화하여 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키를 생성하며, 상기 암호화된 제1 분할된 프라이빗 키 내지 상기 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션 각각에 포함되도록 하며,
상기 (b) 단계에서,
상기 사용자 단말은, 상기 암호화된 제1 분할된 프라이빗 키 내지 상기 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각에 저장되도록 하는 방법.
The method of claim 1,
In step (a),
The user terminal encrypts each of the first divided private key to the n-th divided private key using public keys of each of the first block chain node to the n-th block chain node, and the encrypted first divided Generate a private key or an encrypted n-th partitioned private key, and each of the encrypted first partitioned private key to the encrypted n-th partitioned private key is the first private key backup request transaction to the n-th private key To be included in each backup request transaction,
In step (b),
The user terminal, a method for storing each of the encrypted first divided private key to the encrypted n-th divided private key in each of the first block chain node to the n-th block chain node.
제1항에 있어서,
상기 (a) 단계에서,
상기 사용자 단말은, 상기 프라이빗 키를 shamir의 비밀 분산 기법으로 분할하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키를 생성하는 방법.
The method of claim 1,
In step (a),
The user terminal divides the private key by shamir's secret distribution scheme to generate the first divided private key to the n-th divided private key.
제1항에 있어서,
상기 블록체인 네트워크는, 컨소시엄 블록체인 네트워크, 프라이빗 블록체인 네트워크, 및 퍼블릭 블록체인 네트워크 중 어느 하나를 포함하는 방법.
The method of claim 1,
The blockchain network includes any one of a consortium blockchain network, a private blockchain network, and a public blockchain network.
블록체인 네트워크를 이용하여 프라이빗 키를 복원하는 방법에 있어서,
(a) 프라이빗 키를 분할한 제1 분할된 프라이빗 키 내지 제n - 상기 n은 1 이상의 정수임 - 분할된 프라이빗 키 각각이 블록체인 네트워크를 구성하는 제1 블록체인 노드 내지 제n 블록체인 노드 각각에 사용자의 DID와 연계되어 저장된 상태이거나, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키를 상기 제1 블록체인 노드 내지 상기 재n 블록체인 노드의 퍼블릭키를 이용하여 암호화한 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 블록체인 노드 내지 상기 재n 블록체인 노드 각각에 상기 사용자의 DID와 연계되어 저장된 상태에서, 사용자에 의해 프라이빗 키 복원 요청이 획득되면, 사용자 단말이, 적어도 상기 사용자의 DID를 포함하는 분할된 프라이빗 키 전송 요청 트랜잭션을 상기 블록체인 네트워크로 브로드캐스팅하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 사용자의 DID와 연계되어 저장된 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 사용자 단말로 전송하도록 하거나, 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키 각각을 각각의 프라이빗 키로 복호화하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 생성하도록 하며, 복호화된 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 사용자 단말로 전송하도록 하는 단계; 및
(b) 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각이 획득되면, 상기 사용자 단말이, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키을 이용하여 상기 프라이빗 키를 복원하는 단계;
를 포함하는 방법.
In the method of restoring a private key using a blockchain network,
(a) The first to n-th partitioned private key by dividing the private key-Where n is an integer greater than or equal to 1-Each of the divided private keys is assigned to each of the first to nth blockchain nodes constituting the blockchain network. It is stored in association with the user's DID, or the first divided private key to the n-th divided private key are encrypted using the public key of the first block chain node to the n block chain node. 1 When each of the divided private key or the encrypted n-th divided private key is stored in association with the user's DID in each of the first block chain node to the second block chain node, a request to restore the private key is made by the user. When obtained, the user terminal broadcasts a segmented private key transmission request transaction including at least the user's DID to the blockchain network to cause each of the first to the n-th blockchain node to Transmit each of the first divided private key to the n-th divided private key stored in connection with the DID to the user terminal, or the first to the n-th blockchain node to each of the encrypted first Each of the divided private key or the encrypted n-th divided private key is decrypted with each private key to generate each of the first divided private key to the n-th divided private key, and the decrypted first divided private key Transmitting each of the key to the n-th divided private key to the user terminal; And
(b) When each of the first divided private key to the n-th divided private key is obtained from each of the first block chain node to the n-th block chain node, the user terminal, the first divided private key To restoring the private key using the n-th divided private key;
How to include.
제6항에 있어서,
상기 (a) 단계에서,
상기 사용자 단말은, 상기 분할된 프라이빗 키 전송 요청 트랜잭션에 대응하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 사용자 인증 정보 요청이 획득되면, (i) 상기 사용자의 DID에 대응되는 상기 사용자의 입증 정보인 자격 증명을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 자격 증명을 획득하도록 하거나, 상기 자격 증명이 저장된 데이터 허브의 정보를 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 데이터 허브와의 인터랙션을 통해 상기 자격 증명을 획득하도록 하며, (ii) 상기 자격 증명을 획득한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 자격 증명이 유효한지를 확인하여 상기 사용자를 인증하도록 하는 방법.
The method of claim 6,
In step (a),
The user terminal, when a user authentication information request is obtained from each of the first block chain node to the n-th block chain node in response to the divided private key transmission request transaction, (i) the user's DID corresponding to the The credential, which is the user's authentication information, is transmitted to each of the first blockchain node to the n-th blockchain node so that each of the first blockchain node to the n-th blockchain node obtains the credential, or the credential By transmitting the information of the data hub in which the proof is stored to each of the first block chain node to the n-th block chain node, each of the first block chain node to the n-th block chain node receives the qualification through an interaction with the data hub. And (ii) each of the first block chain node to the n-th block chain node that has obtained the credentials to authenticate the user by verifying whether the credentials are valid.
제6항에 있어서,
상기 (b) 단계에서,
상기 사용자 단말은, 라그랑제 보간법을 이용하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키로부터 상기 프라이빗 키를 복원하는 방법.
The method of claim 6,
In step (b),
The user terminal, a method of restoring the private key from the first divided private key to the n-th divided private key using a Lagrange interpolation method.
제8항에 있어서,
상기 (b) 단계에서,
상기 사용자 단말은, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 중 적어도 m - 상기 m은 1 이상이며 n 이하인 정수임 - 개의 분할된 프라이빗 키가 획득되면, 상기 라그랑제 보간법을 이용하여 상기 프라이빗 키를 복원하는 방법.
The method of claim 8,
In step (b),
The user terminal, at least m of the first partitioned private key to the nth partitioned private key-the m is an integer greater than or equal to 1 and less than or equal to n-When the divided private keys are obtained, using the Lagrange interpolation method How to restore the private key.
블록체인 네트워크를 이용하여 프라이빗 키를 백업하는 사용자 단말에 있어서,
블록체인 네트워크를 이용하여 프라이빗 키를 백업하기 위한 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 인스트럭션들에 따라 블록체인 네트워크를 이용하여 프라이빗 키를 백업하기 위한 동작을 수행하는 프로세서;
를 포함하되,
상기 프로세서는,
(i) 사용자에 의한 프라이빗 키 백업 요청이 획득되면, 상기 프라이빗 키를 분할하여 제1 분할된 프라이빗 키 내지 제n - 상기 n은 1 이상의 정수임 - 분할된 프라이빗 키를 생성하며, 상기 블록체인 네트워크를 구성하는 제1 블록체인 노드 내지 제n 블록체인 노드 각각의 제1 블록체인 어드레스 내지 제n 블록체인 어드레스, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키, 및 상기 사용자의 DID를 포함하는 제1 프라이빗 키 백업 요청 트랜잭션 내지 제n 프라이빗 키 백업 요청 트랜잭션을 생성하는 프로세스, 및 (ii) 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션을 상기 블록체인 네트워크로 브로드캐스팅하여 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션이 상기 제1 블록체인 어드레스 내지 상기 제n 블록체인 어드레스에 대응되는 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송되도록 하며, 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션 각각을 수신한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 사용자의 DID와 연계하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 저장하도록 하도록 하는 프로세스를 수행하는 사용자 단말.
In a user terminal that backs up the private key using a blockchain network,
A memory for storing instructions for backing up a private key using a blockchain network; And
A processor performing an operation for backing up a private key using a blockchain network according to the instructions stored in the memory;
Including,
The processor,
(i) When a private key backup request by the user is obtained, the private key is divided into a first divided private key to n-th-n is an integer greater than or equal to 1-a divided private key is generated, and the blockchain network is Including a first block chain address to an nth block chain address of each of the constituting first to nth blockchain nodes, the first divided private key to the nth divided private key, and the user's DID A process of generating a first private key backup request transaction to an n-th private key backup request transaction, and (ii) broadcasting the first private key backup request transaction to the n-th private key backup request transaction to the blockchain network. And the first private key backup request transaction to the n-th private key backup request transaction to each of the first block chain node to the n-th block chain node corresponding to the first block chain address to the n-th block chain address. And the first to the n-th blockchain node, which has received each of the first private key backup request transaction to the n-th private key backup request transaction, in association with the user's DID. A user terminal that performs a process of storing each of the divided private key to the n-th divided private key.
제10항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서, 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션에 대응하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 사용자 인증 정보 요청이 획득되면, (ii-1) 상기 사용자의 DID에 대응되는 상기 사용자의 입증 정보인 자격 증명을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 자격 증명을 획득하도록 하거나, 상기 자격 증명이 저장된 데이터 허브의 정보를 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 데이터 허브와의 인터랙션을 통해 상기 자격 증명을 획득하도록 하며, (ii-2) 상기 자격 증명을 획득한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 자격 증명이 유효한지를 확인하여 상기 사용자를 인증하도록 하는 사용자 단말.
The method of claim 10,
The processor,
In the (ii) process, when a request for user authentication information is obtained from each of the first blockchain node to the n-th blockchain node in response to the first private key backup request transaction to the n-th private key backup request transaction, (ii-1) The first block chain node to the n-th block chain by transmitting the credential, which is the user's authentication information corresponding to the user's DID, to each of the first block chain node to the n-th block chain node Each node obtains the credentials, or transmits information of the data hub in which the credentials are stored to each of the first block chain node to the n-th block chain node, and the first block chain node to the n-th block chain Each node obtains the credential through interaction with the data hub, and (ii-2) each of the first blockchain node to the n-th blockchain node that has acquired the credential A user terminal that authenticates the user by checking whether it is valid.
제10항에 있어서,
상기 프로세서는,
상기 (i) 프로세스에서, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각의 퍼블릭 키들을 이용하여 암호화하여 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키를 생성하며, 상기 암호화된 제1 분할된 프라이빗 키 내지 상기 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 프라이빗 키 백업 요청 트랜잭션 내지 상기 제n 프라이빗 키 백업 요청 트랜잭션 각각에 포함되도록 하며,
상기 (ii) 프로세스에서, 상기 암호화된 제1 분할된 프라이빗 키 내지 상기 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각에 저장되도록 하는 사용자 단말.
The method of claim 10,
The processor,
In the (i) process, a first encrypted by encrypting each of the first divided private key to the n-th divided private key using public keys of each of the first blockchain node to the n-th blockchain node A divided private key or an encrypted n-th divided private key is generated, and each of the encrypted first divided private key to the encrypted n-th divided private key is the first private key backup request transaction to the n-th To be included in each private key backup request transaction,
In the (ii) process, a user terminal configured to store each of the encrypted first divided private key through the encrypted n-th divided private key in each of the first block chain node to the n-th block chain node.
제10항에 있어서,
상기 프로세서는,
상기 (i) 프로세스에서, 상기 프라이빗 키를 shamir의 비밀 분산 기법으로 분할하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키를 생성하는 사용자 단말.
The method of claim 10,
The processor,
In the process (i), the user terminal generates the first divided private key to the n-th divided private key by dividing the private key by shamir's secret distribution scheme.
제10항에 있어서,
상기 블록체인 네트워크는, 컨소시엄 블록체인 네트워크, 프라이빗 블록체인 네트워크, 및 퍼블릭 블록체인 네트워크 중 어느 하나를 포함하는 사용자 단말.
The method of claim 10,
The block chain network, a user terminal including any one of a consortium block chain network, a private block chain network, and a public block chain network.
블록체인 네트워크를 이용하여 프라이빗 키를 복원하는 사용자 단말에서 있어서,
블록체인 네트워크를 이용하여 프라이빗 키를 복원하기 위한 인스트럭션들이 저장된 메모리; 및
상기 메모리에 저장된 상기 인스트럭션들에 따라 블록체인 네트워크를 이용하여 프라이빗 키를 복원하기 위한 동작을 수행하는 프로세서;
를 포함하되,
상기 프로세서는,
(i) 프라이빗 키를 분할한 제1 분할된 프라이빗 키 내지 제n - 상기 n은 1 이상의 정수임 - 분할된 프라이빗 키 각각이 블록체인 네트워크를 구성하는 제1 블록체인 노드 내지 제n 블록체인 노드 각각에 사용자의 DID와 연계되어 저장된 상태이거나, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키를 상기 제1 블록체인 노드 내지 상기 재n 블록체인 노드의 퍼블릭키를 이용하여 암호화한 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키 각각이 상기 제1 블록체인 노드 내지 상기 재n 블록체인 노드 각각에 상기 사용자의 DID와 연계되어 저장된 상태에서, 사용자에 의해 프라이빗 키 복원 요청이 획득되면, 적어도 상기 사용자의 DID를 포함하는 분할된 프라이빗 키 전송 요청 트랜잭션을 상기 블록체인 네트워크로 브로드캐스팅하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 사용자의 DID와 연계되어 저장된 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 사용자 단말로 전송하도록 하거나, 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 암호화된 제1 분할된 프라이빗 키 내지 암호화된 제n 분할된 프라이빗 키 각각을 각각의 프라이빗 키로 복호화하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 생성하도록 하며, 복호화된 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각을 상기 사용자 단말로 전송하도록 하는 프로세스, 및 (ii) 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 각각이 획득되면, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키을 이용하여 상기 프라이빗 키를 복원하는 프로세스를 수행하는 사용자 단말.
In a user terminal that restores the private key using a blockchain network,
A memory storing instructions for restoring a private key using a blockchain network; And
A processor that performs an operation of restoring a private key using a blockchain network according to the instructions stored in the memory;
Including,
The processor,
(i) The first to nth divided private key by dividing the private key-Where n is an integer greater than or equal to 1-Each of the divided private keys is assigned to each of the first to nth blockchain nodes constituting the blockchain network. It is stored in association with the user's DID, or the first divided private key to the n-th divided private key are encrypted using the public key of the first block chain node to the n block chain node. 1 When each of the divided private key or the encrypted n-th divided private key is stored in association with the user's DID in each of the first block chain node to the second block chain node, a request to restore the private key is made by the user. When obtained, the first block chain node to each of the n-th block chain nodes are associated with the user's DID by broadcasting a divided private key transmission request transaction including at least the user's DID to the blockchain network. Each of the stored first divided private key to the n-th divided private key is transmitted to the user terminal, or the first divided private key encrypted by each of the first blockchain node to the n-th blockchain node To generate each of the first divided private key to the n-th divided private key by decrypting each of the encrypted n-th divided private keys with each private key, and the decrypted first divided private key to the first divided private key a process of transmitting each of the n-divided private keys to the user terminal, and (ii) the first to the n-th divided private keys from the first to the n-th blockchain nodes respectively When each is obtained, the user terminal performs a process of restoring the private key using the first divided private key to the n-th divided private key.
제15항에 있어서,
상기 프로세서는,
상기 (i) 프로세스에서, 상기 분할된 프라이빗 키 전송 요청 트랜잭션에 대응하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로부터 사용자 인증 정보 요청이 획득되면, (i-1) 상기 사용자의 DID에 대응되는 상기 사용자의 입증 정보인 자격 증명을 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 자격 증명을 획득하도록 하거나, 상기 자격 증명이 저장된 데이터 허브의 정보를 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 전송하여 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각이 상기 데이터 허브와의 인터랙션을 통해 상기 자격 증명을 획득하도록 하며, (i-2) 상기 자격 증명을 획득한 상기 제1 블록체인 노드 내지 상기 제n 블록체인 노드 각각으로 하여금 상기 자격 증명이 유효한지를 확인하여 상기 사용자를 인증하도록 하는 사용자 단말.
The method of claim 15,
The processor,
In the (i) process, when a request for user authentication information is obtained from each of the first block chain node to the n-th block chain node in response to the divided private key transmission request transaction, (i-1) the user's DID Transmit the credentials corresponding to the user's authentication information to each of the first block chain node to the n-th block chain node so that each of the first block chain node to the n-th block chain node obtains the credentials. Or, by transmitting the information of the data hub in which the credentials are stored to each of the first block chain node to the n-th block chain node, each of the first block chain node to the n-th block chain node interacts with the data hub. And (i-2) each of the first block chain node to the n-th block chain node that has obtained the credentials to verify whether the credentials are valid to authenticate the user User terminal.
제15항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서, 라그랑제 보간법을 이용하여 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키로부터 상기 프라이빗 키를 복원하는 사용자 단말.
The method of claim 15,
The processor,
In the process (ii), the user terminal recovers the private key from the first divided private key to the n-th divided private key using a Lagrange interpolation method.
제17항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서, 상기 제1 분할된 프라이빗 키 내지 상기 제n 분할된 프라이빗 키 중 적어도 m - 상기 m은 1 이상이며 n 이하인 정수임 - 개의 분할된 프라이빗 키가 획득되면, 상기 라그랑제 보간법을 이용하여 상기 프라이빗 키를 복원하는 사용자 단말.
The method of claim 17,
The processor,
In the (ii) process, at least m of the first partitioned private key to the nth partitioned private key-the m is an integer greater than or equal to 1 and less than or equal to n-When two partitioned private keys are obtained, the Lagrange interpolation method is performed. User terminal to restore the private key by using.
KR1020190100582A 2019-08-16 2019-08-16 Method for performing backup and recovery private key in consortium blockchain network, and device using them KR102269753B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190100582A KR102269753B1 (en) 2019-08-16 2019-08-16 Method for performing backup and recovery private key in consortium blockchain network, and device using them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190100582A KR102269753B1 (en) 2019-08-16 2019-08-16 Method for performing backup and recovery private key in consortium blockchain network, and device using them

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139786A Division KR20210020851A (en) 2020-10-26 2020-10-26 Method for performing backup and recovery private key in consortium blockchain network, and device using them

Publications (2)

Publication Number Publication Date
KR20210020699A true KR20210020699A (en) 2021-02-24
KR102269753B1 KR102269753B1 (en) 2021-06-28

Family

ID=74689301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190100582A KR102269753B1 (en) 2019-08-16 2019-08-16 Method for performing backup and recovery private key in consortium blockchain network, and device using them

Country Status (1)

Country Link
KR (1) KR102269753B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230020735A (en) 2021-08-04 2023-02-13 주식회사 아이오트러스트 Decentralized identity key recovery system and method based on smart contract wallet

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500458B1 (en) 2022-03-18 2023-02-16 주식회사 빅스터 Method for providing digital asset market service using NFT technology based on consortium blockchain network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018109010A1 (en) * 2016-12-15 2018-06-21 Luxembourg Institute Of Science And Technology (List) P2p network data distribution and retrieval using blockchain log
WO2019058240A1 (en) * 2017-09-22 2019-03-28 nChain Holdings Limited Smart contract execution using distributed coordination
KR20190069759A (en) * 2017-12-12 2019-06-20 주식회사 디지캡 Method for managing and distributing content cryptographic keys in blockchain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018109010A1 (en) * 2016-12-15 2018-06-21 Luxembourg Institute Of Science And Technology (List) P2p network data distribution and retrieval using blockchain log
WO2019058240A1 (en) * 2017-09-22 2019-03-28 nChain Holdings Limited Smart contract execution using distributed coordination
KR20190069759A (en) * 2017-12-12 2019-06-20 주식회사 디지캡 Method for managing and distributing content cryptographic keys in blockchain

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230020735A (en) 2021-08-04 2023-02-13 주식회사 아이오트러스트 Decentralized identity key recovery system and method based on smart contract wallet

Also Published As

Publication number Publication date
KR102269753B1 (en) 2021-06-28

Similar Documents

Publication Publication Date Title
Yan et al. Deduplication on encrypted big data in cloud
CN108352015B (en) Secure multi-party loss-resistant storage and encryption key transfer for blockchain based systems in conjunction with wallet management systems
US20200084027A1 (en) Systems and methods for encryption of data on a blockchain
Yan et al. Heterogeneous data storage management with deduplication in cloud computing
Zhu et al. A secure anti-collusion data sharing scheme for dynamic groups in the cloud
CN110022217B (en) Advertisement media service data credible storage system based on block chain
CN108768633B (en) Method and device for realizing information sharing in block chain
KR101985179B1 (en) Blockchain based id as a service
KR102307574B1 (en) Cloud data storage system based on blockchain and method for storing in cloud
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US20140112470A1 (en) Method and system for key generation, backup, and migration based on trusted computing
CN110519046B (en) Quantum communication service station key negotiation method and system based on one-time asymmetric key pair and QKD
CN106487506B (en) Multi-mechanism KP-ABE method supporting pre-encryption and outsourcing decryption
JP6040313B2 (en) Multi-party secure authentication system, authentication server, multi-party secure authentication method and program
JP6882705B2 (en) Key exchange system and key exchange method
CN102427442A (en) Combining request-dependent metadata with media content
CA3107237A1 (en) Key generation for use in secured communication
KR102269753B1 (en) Method for performing backup and recovery private key in consortium blockchain network, and device using them
JP2013090199A (en) Key sharing system, key creation apparatus, and program
KR20210020851A (en) Method for performing backup and recovery private key in consortium blockchain network, and device using them
Chatterjee et al. An efficient dynamic fine grained access control scheme for secure data access in cloud networks
KR100681005B1 (en) Key roaming method, and method for the same
Fatima et al. Secure authentication and key management protocol in cloud computing
JP2013179473A (en) Account generation management system, account generation management server, account generation management method, account generation management program
EP3800825B1 (en) Method and device for configuring alias credential

Legal Events

Date Code Title Description
GRNT Written decision to grant