KR102544899B1 - 외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템 - Google Patents
외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템 Download PDFInfo
- Publication number
- KR102544899B1 KR102544899B1 KR1020210078126A KR20210078126A KR102544899B1 KR 102544899 B1 KR102544899 B1 KR 102544899B1 KR 1020210078126 A KR1020210078126 A KR 1020210078126A KR 20210078126 A KR20210078126 A KR 20210078126A KR 102544899 B1 KR102544899 B1 KR 102544899B1
- Authority
- KR
- South Korea
- Prior art keywords
- block chain
- block
- data
- external storage
- storage medium
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템이 개시된다. 임베딩 블록 체인 방법은 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하는 단계; 상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하는 단계; 및 상기 주소를 제2 블록 체인 시스템으로 전송하는 단계를 포함하고, 상기 제2 블록 체인 시스템은, 사용자 단말로부터 상기 블록 체인 데이터를 요청받을 경우, 상기 주소를 전송하여 상기 사용자 단말이 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하도록 할 수 있다.
Description
본 발명은 임베딩 블록 체인 방법 및 장치에 관한 것으로, 보다 구체적으로는 외부 저장 매체를 이용하여 블록 체인 시스템에 저장되는 데이터의 크기를 감소시키는 방법 및 시스템에 관한 것이다.
블록 체인 시스템은 블록 체인으로 저장하는 데이터의 크기가 증가함에 따라 블록 체인 노드들 각각이 포함해야 하는 저장 공간의 크기도 증가하게 된다. 그러나, 저장 매체의 용량에는 비용, 성능상에 한계가 있으므로, 블록 체인 데이터의 경량화가 필요하다.
종래의 블록체인 경량화 기술은 블록체인 데이터들을 요약하여 하나의 블록으로 생성하고 나머지 블록체인을 삭제하였다. 그러나, 종래의 블록체인 경량화 기술은 데이터의 요약으로 인한 데이터 유실이 발생한다는 문제가 있었다.
따라서, 데이터 유실 없이 블록 체인의 용량을 경량화하는 방법이 요청되고 있다.
본 발명은 블록 체인 데이터가 기 설정된 크기 이상으로 증가한 경우, 외부 저장 매체에 블록 체인 데이터를 저장하고, 외부 저장 매체에서 블록 체인 데이터가 저장된 주소를 블록 체인으로 관리함으로써, 블록 체인의 용량을 경량화 하는 방법 및 시스템을 제공할 수 있다.
또한, 본 발명은 블록 체인 데이터를 외부 저장 매체에 저장하기 전에 검증하고, 블록 체인 데이터가 저장된 주소에서 블록 체인을 가져와 마지막 블록 해시를 검증함으로써, 외부 저장 매체에 저장된 데이터가 위 변조되지 않음을 보장하는 방법 및 시스템을 제공할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법은 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하는 단계; 상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하는 단계; 및 상기 주소를 제2 블록 체인 시스템으로 전송하는 단계를 포함하고, 상기 제2 블록 체인 시스템은, 사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하여 상기 사용자 단말이 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하도록 할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법의 상기 외부 저장 매체로 전송하는 단계는, 상기 블록 체인 데이터가 기 설정된 크기, 또는 길이를 초과하는 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법의 상기 외부 저장 매체로 전송하는 단계는, 현재 시간이 기 설정된 시간이거나, 현재 시간과 이전 블록 체인 데이터를 외부 저장 매체로 전송한 시간 간의 차이가 기 설정된 시간 간격인 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법의 상기 외부 저장 매체로 전송하는 단계는, 현재 블록 체인 데이터가 기 설정된 위치의 블록인 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법의 상기 외부 저장 매체로 전송하는 단계는, 상기 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 검증하고, 상기 블록 체인 데이터가 검증을 통과한 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법은 상기 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법은 상기 주소의 마지막 블록 해시값이 제네시스 블록으로 설정된 경우, 제1블록 체인 시스템에 포함된 블록 체인 노드들 각각이 보유하고 있는 해시값을 상기 마지막 블록 해시값과 동일한지 여부 및 서명의 유효성을 확인하여 검증하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법은 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 수신하는 단계; 제1 블록 체인 시스템의 공개키를 이용하여 상기 제1 블록 체인 서명을 검증하는 단계; 및 상기 제1 블록 체인 서명이 검증된 경우, 상기 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법은 사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하는 단계를 더 포함하고, 상기 사용자 단말은, 상기 주소에 따라 상기 외부 저장 매체에 접속하여 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 방법의 상기 제1 블록 체인 서명을 검증하는 단계는, 상기 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신하는 단계; 상기 인증서를 복호화하여 상기 제1 블록 체인 시스템의 공개키를 획득하는 단계; 상기 공개키로 상기 제1 블록 체인 서명을 검증하는 단계; 및 상기 제1 블록 체인 서명이 검증된 경우, 제네시스 블록을 저장하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 시스템은 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하고, 상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하며, 상기 주소를 제2 블록 체인 시스템으로 전송하는 제1 블록 체인 시스템; 및 상기 주소를 저장하고, 사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하여 상기 사용자 단말이 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하도록 하는 제2 블록 체인 시스템을 포함할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 상기 제1 블록 체인 시스템은, 상기 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 검증하고, 상기 블록 체인 데이터가 검증을 통과한 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 상기 제1 블록 체인 시스템은, 상기 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 상기 제2 블록 체인 시스템은, 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 수신하고, 제1 블록 체인 시스템의 공개키를 이용하여 상기 제1 블록 체인 서명을 검증하며, 상기 제1 블록 체인 서명이 검증된 경우, 상기 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다.
본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 상기 제2 블록 체인 시스템은, 상기 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신하고, 상기 인증서를 복호화하여 상기 제1 블록 체인 시스템의 공개키를 획득하며, 상기 공개키로 상기 제1 블록 체인 서명을 검증하고, 상기 제1 블록 체인 서명이 검증된 경우, 제네시스 블록을 저장할 수 있다.
본 발명의 일실시예에 의하면, 블록 체인 데이터가 기 설정된 크기 이상으로 증가한 경우, 외부 저장 매체에 블록 체인 데이터를 저장하고, 외부 저장 매체에서 블록 체인 데이터가 저장된 주소를 블록 체인으로 관리함으로써, 블록 체인의 용량을 경량화할 수 있다.
또한, 본 발명의 일실시예에 의하면, 블록 체인 데이터를 외부 저장 매체에 저장하기 전에 검증하고, 블록 체인 데이터가 저장된 주소에서 블록 체인을 가져와 마지막 블록 해시를 검증함으로써, 외부 저장 매체에 저장된 데이터가 위 변조되지 않음을 보장할 수 있다.
도 1은 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 동작 과정을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 인증서 및 서명 등록 과정을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 등록 과정을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 검증 및 재시작 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 블록 체인 클라이언트가 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
도 7은 본 발명의 일실시예에 따른 제2 블록 체인 시스템이 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
도 2는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 동작 과정을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 인증서 및 서명 등록 과정을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 등록 과정을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 검증 및 재시작 과정을 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 블록 체인 클라이언트가 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
도 7은 본 발명의 일실시예에 따른 제2 블록 체인 시스템이 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템을 도시한 도면이다.
임베딩 블록 체인 시스템은 도 1에 도시된 바와 같이 제1 블록 체인 시스템(110), 외부 저장 매체(120), 및 제2 블록 체인 시스템(130)을 포함할 수 있다.
제1 블록 체인 시스템(110)은 블록 체인 클라이언트(111) 및 복수의 블록 체인 노드들로 구성될 수 있다. 또한, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드 중 하나이며, 블록 체인 데이터를 외부 저장 매체(120)로 전송하고, 블록 체인 데이터가 저장된 주소를 제2 블록 체인 시스템(130)으로 전송하는 동작을 수행하는 블록 체인 노드일 수 있다.
즉, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드 중에서 임베딩 블록 체인 방법을 수행하는 노드일 수 있다. 실시예에 따라, 제1 블록 체인 시스템(110)에 포함된 모든 블록 체인 노드가 블록 체인 클라이언트(111)로 동작할 수도 있고, 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드 중 블록 체인 클라이언트(111)로 동작할 블록 체인 노드가 지정될 수도 있다.
또한, 외부 저장 매체(120)는 도 1에 도시된 바와 같이 제1 블록 체인 시스템(110), 및 제2 블록 체인 시스템(130)에 포함되지 않은 별도의 저장 매체일 수도 있고, 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드들 중 블록 체인 클라이언트(111)가 아닌 블록 체인 노드에서 블록 체인 시스템에 사용되지 않은 별도의 저장 매체일 수도 있다.
블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는지 여부를 확인할 수 있다. 예를 들어, 블록 체인 데이터가 기 설정된 크기, 또는 길이를 초과하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다. 또한, 현재 시간이 기 설정된 시간이거나, 현재 시간과 이전 블록 체인 데이터를 외부 저장 매체(120)로 전송한 시간 간의 차이가 기 설정된 시간 간격인 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수도 있다.
그리고, 현재 블록 체인 데이터가 기 설정된 위치의 블록인 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수도 있다. 예를 들어, 업로드 조건이 M 번째 블록이라 설정된 경우, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)이 관리하는 블록 체인 데이터들 중 첫번째 블록을 기준으로 M 번째 블록, 2M 번째 블록, 3M 번째 블록,??들을 업로드 조건을 만족하는 블록 체인 데이터로 판단할 수 있다.
그리고, 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터를 외부 저장 매체(120)로 전송할 수 있다. 이때, 블록 체인 클라이언트(111)는 블록 체인 데이터를 검증하고, 블록 체인 데이터가 검증을 통과한 경우, 블록 체인 데이터를 외부 저장 매체(120)로 전송할 수도 있다.
이때, 외부 저장 매체(120)는 수신한 블록 체인 데이터를 저장하고, 블록 체인 데이터가 저장된 주소를 블록 체인 클라이언트(111)로 전송할 수 있다.
블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소를 제2 블록 체인 시스템(130)으로 전송할 수 있다.
이때, 제2 블록 체인 시스템(130)은 수신한 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다. 그리고, 제2 블록 체인 시스템(130)은 사용자 단말로부터 외부 저장 매체(120)에 저장된 블록 체인 데이터를 요청받을 수 있다. 이때, 제2 블록 체인 시스템(130)은 블록 체인 클라이언트(111)로부터 수신하여 저장한 주소를 사용자 단말로 전송할 수 있다. 이때, 사용자 단말은, 수신한 주소에 따라 외부 저장 매체(120)에 접속하여 외부 저장 매체(120)로부터 블록 체인 데이터를 수신할 수 있다.
또한, 블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작할 수 있다. 이때, 블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소의 마지막 블록 해시값이 제네시스 블록으로 설정된 경우, 제1블록 체인 시스템(110)에 포함된 블록 체인 노드들 각각이 보유하고 있는 해시값을 마지막 블록 해시값과 동일한지 여부 및 서명의 유효성을 확인하여 검증할 수 있다.
또한, 블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소를 전송하기 전에 제2 블록 체인 시스템(130)으로 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 전송할 수 있다.
이때, 제2 블록 체인 시스템(130)은 제1 블록 체인 시스템의 공개키를 이용하여 제1 블록 체인 서명을 검증할 수 있다.
구체적으로, 제2 블록 체인 시스템(130)은 제1 블록 체인 시스템의 블록 체인 클라이언트(111)로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신할 수 있다. 이때, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템의 블록 체인 노드들 각각이 제네시스 블록 해시값을 자신의 개인키로 암호화하여 생성한 서명들을 수집하여 제1 블록 체인 서명을 생성할 수 있다. 이때, 제네시스 블록 해시값은 블록 체인 노드들 각각이 저장하고 있는 블록들 중 첫번째 블록의 해시값일 수 있다. 예를 들어, 재네시스 블록 해시값은 기존 블록 구조인 블록 번호, 블록 해시, 이전 블록 해시, 데이터(트랜잭션 목록)에서 (블록 번호: 0 , 이전 블록해시: 비어있음, 데이터:비어있음)을 해시화한 값일 수 있다.
그리고, 제2 블록 체인 시스템(130)은 제1 블록 체인 인증서를 복호화하여 제1 블록 체인 시스템(110)의 공개키를 획득할 수 있다. 다음으로, 제2 블록 체인 시스템(130)은 획득한 공개키로 제1 블록 체인 서명을 검증할 수 있다.
이때, 제2 블록 체인 시스템(130)은 공기케로 제1 블록 체인 서명에 포함된 서명들 각각으로부터 제네시스 블록 해시값을 복호화할 수 있다. 그리고, 복호화한 제네시스 블록 해시값들이 모두 동일한 경우, 제2 블록 체인 시스템(130)은 제1 블록 체인 서명이 검증된 것으로 판단할 수 있다.
제1 블록 체인 서명이 검증된 경우, 제2 블록 체인 시스템(130)은 제네시스 블록 해시값 및 제1 블록 체인 시스템(110)의 공개키를 저장할 수 있다. 반면, 제1 블록 체인 서명이 검증되지 않은 경우, 제2 블록 체인 시스템(130)은 제네시스 블록 해시값을 저장하지 않을 수 있다.
임베딩 블록 체인 시스템은 블록 체인 데이터가 기 설정된 크기 이상으로 증가한 경우, 외부 저장 매체에 블록 체인 데이터를 저장하고, 외부 저장 매체에서 블록 체인 데이터가 저장된 주소를 블록 체인으로 관리함으로써, 블록 체인의 용량을 경량화할 수 있다.
또한, 임베딩 블록 체인 시스템은 블록 체인 데이터를 외부 저장 매체에 저장하기 전에 검증하고, 블록 체인 데이터가 저장된 주소에서 블록 체인을 가져와 마지막 블록 해시를 검증함으로써, 외부 저장 매체에 저장된 데이터가 위 변조되지 않음을 보장할 수 있다.
도 2는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 동작 과정을 도시한 도면이다.
단계(210)에서 제1 블록 체인 시스템(110)의 블록 체인 클라이언트(111)는 블록 체인 데이터(211)가 업로드 조건을 만족하는지 여부를 확인할 수 있다.
블록 체인 데이터(211)가 기 설정된 크기, 또는 시간과 같은 업로드 조건을 만족하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터를 외부 저장 매체(120)로 전송할 수 있다.
단계(220)에서 외부 저장 매체(120)는 수신한 블록 체인 데이터를 저장하고, 블록 체인 데이터가 저장된 주소를 블록 체인 클라이언트(111)로 전송할 수 있다.
단계(230)에서 블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소를 제2 블록 체인 시스템(130)으로 전송할 수 있다. 이때, 제2 블록 체인 시스템(130)은 수신한 주소(231)를 제2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다. 구체적으로, 제2 블록 체인 시스템(130)은 수신한 주소(231)를 이용하여 외부 저장 매체(120)에 접속하여 블록 체인 데이터의 마지막 해시를 요청할 수 있다. 그리고, 제2 블록 체인 시스템(130)은 외부 저장 매체(120)로부터 수신한 블록 체인 데이터의 마지막 해시와 주소(231)를 포함하는 블록을 2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다.
단계(240)에서 제2 블록 체인 시스템(130)은 사용자 단말(200)로부터 외부 저장 매체(120)에 저장된 블록 체인 데이터를 요청받을 수 있다. 이때, 제2 블록 체인 시스템(130)은 블록 체인 클라이언트(111)로부터 수신하여 저장한 주소를 사용자 단말(200)로 전송할 수 있다. 또한, 제2 블록 체인 시스템(130)은 외부 저장 매체(120)로부터 수신한 블록 체인 데이터의 마지막 해시를 사용자 단말(200)로 전송할 수 있다.
단계(250)에서 사용자 단말(200)은 단계(250)에서 수신한 주소에 따라 외부 저장 매체(120)에 접속하여 블록 체인 데이터를 요청할 수 있다.
단계(260)에서 외부 저장 매체(120)는 사용자 단말(200)의 요청에 따라 블록 체인 데이터를 사용자 단말(200)로 전송할 수 있다. 이때, 사용자 단말(200)은 외부 저장 매체(120)로부터 수신한 블록 체인 데이터의 마지막 해시와 제2 블록 체인 시스템(130)으로부터 수신한 마지막 해시를 비교할 수 있다. 그리고, 외부 저장 매체(120)로부터 수신한 블록 체인 데이터의 마지막 해시와 제2 블록 체인 시스템(130)으로부터 수신한 마지막 해시가 동일한 경우, 사용자 단말(200)은 외부 저장 매체(120)로부터 수신한 블록 체인 데이터가 위 변조되지 않은 것으로 판단하고, 수신한 블록 체인 데이터를 사용자에게 제공할 수 있다.
또한, 외부 저장 매체(120)로부터 수신한 블록 체인 데이터의 마지막 해시와 제2 블록 체인 시스템(130)으로부터 수신한 마지막 해시가 서로 다른 경우, 사용자 단말(200)은 외부 저장 매체(120)로부터 수신한 블록 체인 데이터가 위 변조된 것으로 판단하고, 블록 체인 데이터가 위 변조된 것을 사용자에게 알릴 수 있다.
도 3은 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 인증서 및 서명 등록 과정을 도시한 도면이다.
블록 체인 클라이언트(111)는 제1 블록 체인 시스템의 제1 블록 체인 노드 1의 인증서인 제1 블록 체인 노드 1 인증서, 제1 블록 체인 노드 2의 인증서인 제1 블록 체인 노드 2 인증서, 및 제1 블록 체인 노드 3의 인증서인 제1 블록 체인 노드 3 인증서를 수집할 수 있다. 그리고, 블록 체인 클라이언트(111)는 제1 블록 체인 노드 1 인증서, 제1 블록 체인 노드 2 인증서, 및 제1 블록 체인 노드 3 인증서가 포함된 제1 블록 체인 인증서(310)를 제2 블록 체인 시스템(130)으로 전송할 수 있다.
또한, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템의 제1 블록 체인 노드 1이 제네시스 블록 해시값을 자신의 개인키로 암호화하여 생성한 제1 블록 체인 노드 1 서명, 제1 블록 체인 노드 2가 제네시스 블록 해시값을 자신의 개인키로 암호화하여 생성한 제1 블록 체인 노드 2 서명, 및 제1 블록 체인 노드 3이 제네시스 블록 해시값을 자신의 개인키로 암호화하여 생성한 제1 블록 체인 노드 3 서명을 수집할 수 있다.
그리고, 블록 체인 클라이언트(111)는 제1 블록 체인 노드 1 서명, 제1 블록 체인 노드 2 서명, 및 제1 블록 체인 노드 3 서명이 포함된 제1 블록 체인 서명(320)을 제2 블록 체인 시스템(130)으로 전송할 수 있다.
이때, 제2 블록 체인 시스템(130)은 제1 블록 체인 인증서를 복호화하여 제1 블록 체인 시스템(110)의 공개키를 획득할 수 있다. 다음으로, 제2 블록 체인 시스템(130)은 획득한 공개키로 제1 블록 체인 서명(420)을 검증할 수 있다.
예를 들어, 제1 블록 체인 서명(420)에 포함된 서명들을 공개키로 복호화한 결과가 동일한 경우, 제2 블록 체인 시스템(130)은 제1 블록 체인 서명이 검증된 것으로 판단할 수 있다. 또한, 제1 블록 체인 서명(420)에 포함된 서명들을 공개키로 복호화한 결과가 서로 다른 경우, 제2 블록 체인 시스템(130)은 제1 블록 체인 서명이 검증되지 않은 것으로 판단할 수 있다.
제1 블록 체인 서명이 검증된 경우, 제2 블록 체인 시스템(130)은 제네시스 블록을 저장할 수 있다. 반면, 제1 블록 체인 서명이 검증되지 않은 경우, 제2 블록 체인 시스템(130)은 제네시스 블록을 저장하지 않을 수 있다.
도 4는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 등록 과정을 도시한 도면이다.
블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는지 여부를 확인할 수 있다. 예를 들어, 블록 체인 데이터가 기 설정된 크기, 또는 길이를 초과하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다. 또한, 현재 시간이 기 설정된 시간이거나, 현재 시간과 이전 블록 체인 데이터를 외부 저장 매체(120)로 전송한 시간 간의 차이가 기 설정된 시간 간격인 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수도 있다.
제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터를 검증할 수 있다. 예를 들어, 블록 체인 클라이언트(111)는 제1 블록 체인 서명(320)에 포함된 서명들에 대하여 다중 서명 검증을 수행할 수 있다.
또한, 블록 체인 데이터는 첫 번째 블록부터 마지막 블록까지 블록 해시값을 연결하고 있으므로, 첫 번째 블록부터 마지막 블록 중 적어도 하나의 블록의 데이터가 변경된 경우 모든 블록의 해시값이 변경될 수 있다. 따라서, 마지막 블록 해시값을 확인하면, 블록 체인 데이터의 위변조 여부를 확인할 수 있다.
따라서, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드들에게 블록 체인 데이터의 마지막 블록 해시값을 전송하고, 블록 체인 노드들 각각이 관리하는 블록 체인 데이터의 마지막 블록 해시값과 동일한지 여부에 대한 확인을 요청할 수 있다. 그리고, 각각의 블록 체인 노드들은 수신한 마지막 블록 해시값과 자신이 보관하고 있는 마지막 블록 해시값이 동일한지 여부를 확인할 수 있다. 그리고, 수신한 마지막 블록 해시값과 자신이 보관하고 있는 마지막 블록 해시값이 동일한 경우, 블록 체인 노드들 각각은 서명을 블록 체인 클라이언트(111), 또는 다른 블록 체인 노드로 전송할 수 있다. 모든 노드에서 마지막 블록 해시 값이 동일한 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 검증을 통과한 것으로 판단할 수 있다.
예를 들어, 블록 체인 클라이언트(111)는 제1 블록 체인 노드 3에게 마지막 블록 해시값을 전송할 수 있다. 그리고, 제1 블록 체인 노드 3는 수신한 마지막 블록 해시값과 자신이 보관하고 있는 마지막 블록 해시값이 동일한 경우, 제1 블록 체인 노드 3 서명과 마지막 블록 해시값을 제1 블록 체인 노드 2로 전송할 수 있다.
제1 블록 체인 노드 2 및 제1 블록 체인 노드 1도 제1 블록 체인 노드 3과 동일하게 동작할 수 있다. 그리고, 제1 블록 체인 노드 1은 수신한 마지막 블록 해시값과 자신이 보관하고 있는 마지막 블록 해시값이 동일한 경우, 제1 블록 체인 노드 1 서명에 제1 블록 체인 노드 2로부터 수신한 제1 블록 체인 노드 2 서명, 제1 블록 체인 노드 3 서명과 마지막 블록 해시값을 블록 체인 클라이언트(111)로 전송할 수 있다.
또한, 블록 체인 클라이언트(111)는 제1 블록 체인 노드 3, 제1 블록 체인 노드 2, 및 제1 블록 체인 노드 1에게 병렬적으로 마지막 블록 해시값을 전송할 수 있다. 그리고, 블록 체인 클라이언트(111)는 제1 블록 체인 노드 3, 제1 블록 체인 노드 2, 및 제1 블록 체인 노드 1로부터 제1 블록 체인 노드 1 서명, 제1 블록 체인 노드 2 서명, 및 제1 블록 체인 노드 3 서명을 수신할 수 있다. 이때, 적어도 하나의 블록 체인 노드로부터 서명을 수신하지 못하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 검증을 통과하지 못한 것으로 판단할 수 있다.
블록 체인 데이터가 검증을 통과한 경우, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 포함된 블록 체인 노드들 중에서 마지막 블록 체인 노드로 마지막 블록 해시값과 제1 블록 체인 서명(320)을 전송할 수 있다. 이때, 마지막 블록 체인 노드는 블록 체인 클라이언트(111)에게 마지막으로 서명을 전송한 노드일 수 있다. 예를 들어, 도 4에서 마지막 블록 체인 노드는 제1 블록 체인 노드 1일 수 있다.
다음으로, 블록 체인 클라이언트(111)는 블록 체인 데이터를 외부 저장 매체(120)로 전송할 수도 있다. 이때, 외부 저장 매체(120)는 수신한 블록 체인 데이터를 저장하고, 블록 체인 데이터가 저장된 주소를 블록 체인 클라이언트(111)로 전송할 수 있다.
블록 체인 클라이언트(111)는 외부 저장 매체(120)로부터 수신한 주소(410) 및 제1 블록 체인 서명(320)을 제2 블록 체인 시스템(130)으로 전송할 수 있다. 이때, 제2 블록 체인 시스템(130)은 수신한 주소(231)를 제2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다.
도 5는 본 발명의 일실시예에 따른 임베딩 블록 체인 시스템의 주소 검증 및 재시작 과정을 도시한 도면이다.
제2 블록 체인 시스템(130)은 제1 블록 체인 시스템의 블록 체인 클라이언트(111)로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신할 수 있다. 이때, 제2 블록 체인 시스템(130)은 제1 블록 체인 인증서(310)를 복호화하여 제1 블록 체인 시스템(110)의 공개키를 획득할 수 있다. 다음으로, 제2 블록 체인 시스템(130)은 획득한 공개키로 제1 블록 체인 서명(320)을 검증할 수 있다. 제1 블록 체인 서명이 검증된 경우, 제2 블록 체인 시스템(130)은 블록 체인 데이터가 저장된 주소, 및 타임 스탬프(510)를 저장할 수 있다. 이때, 타임 스탬프는 제2 블록 체인 시스템(130)에서 블록 체인 데이터가 저장된 주소에 따라 블록을 생성한 시간을 나타내는 정보일 수 있다. 그리고, 타임 스탬프는 제2 블록 체인 시스템(130)이 블록 체인 데이터를 유지하는 과정에서 블록의 생성 시간을 확인하기 위하여 사용될 수 있다.
또한, 제1 블록 체인 시스템(110)의 블록 체인 클라이언트(111)는 블록 체인 데이터의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작할 수 있다. 이때, 블록 체인 클라이언트(111)는 블록 체인 데이터의 마지막 블록 해시값이 제네시스 블록으로 설정된 경우, 제1블록 체인 시스템(110)에 포함된 블록 체인 노드들 각각이 보유하고 있는 해시값을 마지막 블록 해시값과 동일한지 여부 및 서명의 유효성을 확인하여 검증할 수 있다.
도 6은 본 발명의 일실시예에 따른 블록 체인 클라이언트가 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
단계(610)에서 블록 체인 클라이언트(111)는 제2 블록 체인 시스템(130)으로 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 전송할 수 있다.
단계(620)에서 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는지 여부를 확인할 수 있다. 예를 들어, 블록 체인 데이터가 기 설정된 크기, 또는 길이를 초과하는 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수 있다. 또한, 현재 시간이 기 설정된 시간이거나, 현재 시간과 이전 블록 체인 데이터를 외부 저장 매체(120)로 전송한 시간 간의 차이가 기 설정된 시간 간격인 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수도 있다. 그리고, 현재 블록 체인 데이터가 기 설정된 위치의 블록인 경우, 블록 체인 클라이언트(111)는 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단할 수도 있다.
제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하는 경우, 블록 체인 클라이언트(111)는 단계(630)를 수행할 수 있다. 또한, 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족하지 않는 경우, 블록 체인 클라이언트(111)는 제1 블록 체인 시스템(110)에 저장된 블록 체인 데이터가 업로드 조건을 만족할 때까지 단계(620)를 반복 수행할 수 있다.
단계(630)에서 블록 체인 클라이언트(111)는 블록 체인 데이터를 검증할 수 있다.
단계(640)에서 블록 체인 클라이언트(111)는 단계(630)의 검증이 성공하였는지 여부를 확인할 수 있다. 검증이 성공한 경우, 블록 체인 클라이언트(111)는 단계(650)를 수행할 수 있다. 또한, 검증이 실패한 경우, 블록 체인 클라이언트(111)는 단계(620)를 수행할 수 있다.
단계(650)에서 블록 체인 클라이언트(111)는 블록 체인 데이터를 외부 저장 매체(120)로 전송할 수도 있다. 이때, 외부 저장 매체(120)는 수신한 블록 체인 데이터를 저장하고, 블록 체인 데이터가 저장된 주소를 블록 체인 클라이언트(111)로 전송할 수 있다.
단계(660)에서 블록 체인 클라이언트(111)는 외부 저장 매체(120)로부터 블록 체인 데이터가 저장된 주소를 수신할 수 있다.
단계(670)에서 블록 체인 클라이언트(111)는 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 주소를 제2 블록 체인 시스템(130)으로 전송할 수 있다.
단계(680)에서 블록 체인 클라이언트(111)는 블록 체인 데이터가 저장된 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작할 수 있다.
도 7은 본 발명의 일실시예에 따른 제2 블록 체인 시스템이 수행하는 임베딩 블록 체인 방법을 도시한 플로우차트이다.
단계(710)에서 제2 블록 체인 시스템(130)은 제1 블록 체인 시스템의 블록 체인 클라이언트(111)로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신할 수 있다.
단계(720)에서 제2 블록 체인 시스템(130)은 단계(720)에서 수신한 제1 블록 체인 인증서를 복호화하여 제1 블록 체인 시스템(110)의 공개키를 획득할 수 있다.
단계(730)에서 제2 블록 체인 시스템(130)은 단계(720)에서 획득한 공개키로 제1 블록 체인 서명을 검증할 수 있다.
단계(740)에서 제2 블록 체인 시스템(130)은 단계(730)의 검증이 성공하였는지 여부를 확인할 수 있다. 검증이 성공한 경우, 제2 블록 체인 시스템(130)은 단계(750)를 수행할 수 있다. 또한, 검증이 실패한 경우, 제2 블록 체인 시스템(130)은 단계(710)를 수행할 수 있다.
단계(750)에서 제2 블록 체인 시스템(130)은 제네시스 블록을 저장할 수 있다.
단계(760)에서 제2 블록 체인 시스템(130)은 블록 체인 클라이언트(111)로부터 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 주소를 수신할 수 있다.
단계(770)에서 제2 블록 체인 시스템(130)은 단계(720)에서 획득한 공개키로 단계(760)에서 수신한 제1 블록 체인 서명을 검증할 수 있다.
단계(780)에서 제2 블록 체인 시스템(130)은 단계(770)의 검증이 성공하였는지 여부를 확인할 수 있다. 검증이 성공한 경우, 제2 블록 체인 시스템(190)은 단계(750)를 수행할 수 있다. 또한, 검증이 실패한 경우, 제2 블록 체인 시스템(130)은 단계(760)를 수행할 수 있다.
단계(790)에서 제2 블록 체인 시스템(130)은 단계(770)에서 수신한 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장할 수 있다.
본 발명은 블록 체인 데이터가 기 설정된 크기 이상으로 증가한 경우, 외부 저장 매체에 블록 체인 데이터를 저장하고, 외부 저장 매체에서 블록 체인 데이터가 저장된 주소를 블록 체인으로 관리함으로써, 블록 체인의 용량을 경량화할 수 있다.
또한, 본 발명은 블록 체인 데이터를 외부 저장 매체에 저장하기 전에 검증하고, 블록 체인 데이터가 저장된 주소에서 블록 체인을 가져와 마지막 블록 해시를 검증함으로써, 외부 저장 매체에 저장된 데이터가 위 변조되지 않음을 보장할 수 있다.
한편, 본 발명에 따른 임베딩 블록 체인 시스템 또는 임베딩 블록 체인 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체)에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
110: 제1 블록 체인 시스템
120: 외부 저장 매체
130: 제2 블록 체인 시스템
120: 외부 저장 매체
130: 제2 블록 체인 시스템
Claims (17)
- 블록 체인 데이터가 업로드 조건을 만족하는 경우, 제1 블록 체인 시스템의 블록 체인 클라이언트가 상기 블록 체인 데이터를 외부 저장 매체로 전송하는 단계;
상기 블록 체인 클라이언트가 상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하는 단계; 및
상기 블록 체인 클라이언트가 상기 주소를 제2 블록 체인 시스템으로 전송하는 단계
를 포함하고,
상기 제2 블록 체인 시스템은,
사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하여 상기 사용자 단말이 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하도록 하며,
상기 외부 저장 매체로 전송하는 단계는,
상기 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터의 첫번째 블록부터 마지막 블록까지의 블록 해시값 중 마지막 블록 해시값을 이용하여 상기 블록 체인 데이터를 검증하는 단계; 및
상기 블록 체인 데이터가 검증을 통과한 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하는 단계
를 포함하고,
상기 블록 체인 데이터를 검증하는 단계는,
상기 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들에게 상기 마지막 블록 해시값을 전송하는 단계;
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각이 보관하고 있는 마지막 블록 해시값과 상기 블록 체인 클라이언트로부터 수신한 마지막 블록 해시값이 동일한 경우, 상기 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각의 서명을 수신하는 단계;
상기 제1 블록 체인 시스템에 포함된 모든 블록 체인 노드들로부터 서명을 수신한 경우, 상기 블록 체인 데이터가 검증을 통과한 것으로 판단하는 단계; 및
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 적어도 하나의 블록 체인 노드로부터 서명을 수신하지 못한 경우, 상기 블록 체인 데이터가 검증을 통과하지 못한 것으로 판단하는 단계
를 포함하는 임베딩 블록 체인 방법. - 제1항에 있어서,
상기 외부 저장 매체로 전송하는 단계는,
상기 블록 체인 데이터가 기 설정된 크기, 또는 길이를 초과하는 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단하는 임베딩 블록 체인 방법. - 제1항에 있어서,
상기 외부 저장 매체로 전송하는 단계는,
현재 시간이 기 설정된 시간이거나, 현재 시간과 이전 블록 체인 데이터를 외부 저장 매체로 전송한 시간 간의 차이가 기 설정된 시간 간격인 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단하는 임베딩 블록 체인 방법. - 제1항에 있어서,
상기 외부 저장 매체로 전송하는 단계는,
현재 블록 체인 데이터가 기 설정된 위치의 블록인 경우, 블록 체인 데이터가 업로드 조건을 만족하는 것으로 판단 하는 임베딩 블록 체인 방법. - 삭제
- 제1항에 있어서,
상기 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작하는 단계
를 더 포함하는 임베딩 블록 체인 방법. - 제6항에 있어서,
상기 주소의 마지막 블록 해시값이 제네시스 블록으로 설정된 경우, 제1블록 체인 시스템에 포함된 블록 체인 노드들 각각이 보유하고 있는 해시값을 상기 마지막 블록 해시값과 동일한지 여부 및 서명의 유효성을 확인하여 검증하는 단계
를 더 포함하는 임베딩 블록 체인 방법. - 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 수신하는 단계;
제1 블록 체인 시스템의 공개키를 이용하여 상기 제1 블록 체인 서명을 검증하는 단계; 및
상기 제1 블록 체인 서명이 검증된 경우, 상기 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장하는 단계
를 포함하고,
상기 제1 블록 체인 시스템은,
상기 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터의 첫번째 블록부터 마지막 블록까지의 블록 해시값 중 마지막 블록 해시값을 이용하여 상기 블록 체인 데이터를 검증하는 단계;,
상기 블록 체인 데이터가 검증을 통과한 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하는 단계; 및
상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하여 제2 블록 체인 시스템으로 전송하는 단계를 수행하고,
상기 블록 체인 데이터를 검증하는 단계는,
상기 제1 블록 체인 시스템의 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들에게 상기 마지막 블록 해시값을 전송하는 단계;
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각이 보관하고 있는 마지막 블록 해시값과 상기 블록 체인 클라이언트로부터 수신한 마지막 블록 해시값이 동일한 경우, 상기 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각의 서명을 수신하는 단계;
상기 제1 블록 체인 시스템에 포함된 모든 블록 체인 노드들로부터 서명을 수신한 경우, 상기 블록 체인 데이터가 검증을 통과한 것으로 판단하는 단계; 및
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 적어도 하나의 블록 체인 노드로부터 서명을 수신하지 못한 경우, 상기 블록 체인 데이터가 검증을 통과하지 못한 것으로 판단하는 단계
를 포함하는 임베딩 블록 체인 방법. - 제8항에 있어서,
상기 주소로 상기 외부 저장 매체에 접속하여 상기 블록 체인 데이터의 마지막 해시를 요청하는 단계;
를 더 포함하고,
상기 블록 체인 데이터로 저장하는 단계는,
상기 마지막 해시와 상기 주소를 포함하는 블록을 제2 블록 체인 시스템의 블록 체인 데이터로 저장하는 임베딩 블록 체인 방법. - 제8항에 있어서,
사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하는 단계
를 더 포함하고,
상기 사용자 단말은,
상기 주소에 따라 상기 외부 저장 매체에 접속하여 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하는 임베딩 블록 체인 방법. - 제10항에 있어서,
상기 사용자 단말은,
제2 블록 체인 시스템으로부터 상기 주소와 함께 상기 블록 체인 데이터의 마지막 해시를 수신하고,
상기 외부 저장 매체로부터 수신한 블록 체인 데이터의 마지막 해시와 상기 제2 블록 체인 시스템으로부터 수신한 마지막 해시를 비교하여 상기 외부 저장 매체에 저장된 상기 블록 체인 데이터의 위변조 여부를 확인하는 임베딩 블록 체인 방법. - 제8항에 있어서,
상기 제1 블록 체인 서명을 검증하는 단계는,
상기 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신하는 단계;
상기 인증서를 복호화하여 상기 제1 블록 체인 시스템의 공개키를 획득하는 단계;
상기 공개키로 상기 제1 블록 체인 서명을 검증하는 단계; 및
상기 제1 블록 체인 서명이 검증된 경우, 제네시스 블록을 저장하는 단계
를 포함하는 임베딩 블록 체인 방법. - 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하고, 상기 외부 저장 매체로부터 상기 블록 체인 데이터가 저장된 주소를 수신하며, 상기 주소를 제2 블록 체인 시스템으로 전송하는 제1 블록 체인 시스템; 및
상기 주소를 저장하고, 사용자 단말로부터 상기 블록 체인 데이터를 요청받은 경우, 상기 주소를 전송하여 상기 사용자 단말이 상기 외부 저장 매체로부터 상기 블록 체인 데이터를 수신하도록 하는 제2 블록 체인 시스템
을 포함하고,
상기 제1 블록 체인 시스템은,
상기 블록 체인 데이터가 업로드 조건을 만족하는 경우, 상기 블록 체인 데이터의 첫번째 블록부터 마지막 블록까지의 블록 해시값 중 마지막 블록 해시값을 이용하여 상기 블록 체인 데이터를 검증하고,
상기 블록 체인 데이터가 검증을 통과한 경우, 상기 블록 체인 데이터를 외부 저장 매체로 전송하며,
상기 블록 체인 데이터를 검증하는 과정은,
상기 제1 블록 체인 시스템의 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들에게 상기 마지막 블록 해시값을 전송하고,
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각이 보관하고 있는 마지막 블록 해시값과 상기 블록 체인 클라이언트로부터 수신한 마지막 블록 해시값이 동일한 경우, 상기 블록 체인 클라이언트가 상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 각각의 서명을 수신하며,
상기 제1 블록 체인 시스템에 포함된 모든 블록 체인 노드들로부터 서명을 수신한 경우, 상기 블록 체인 데이터가 검증을 통과한 것으로 판단하고,
상기 제1 블록 체인 시스템에 포함된 블록 체인 노드들 적어도 하나의 블록 체인 노드로부터 서명을 수신하지 못한 경우, 상기 블록 체인 데이터가 검증을 통과하지 못한 것으로 판단하는 임베딩 블록 체인 시스템. - 삭제
- 제13항에 있어서,
상기 제1 블록 체인 시스템은,
상기 주소의 마지막 블록 해시값을 제네시스 블록으로 설정하여 블록 체인을 재시작하는 임베딩 블록 체인 시스템. - 제13항에 있어서,
상기 제2 블록 체인 시스템은,
제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 블록 체인 데이터가 저장된 외부 저장 매체의 주소를 수신하고,
제1 블록 체인 시스템의 공개키를 이용하여 상기 제1 블록 체인 서명을 검증하며,
상기 제1 블록 체인 서명이 검증된 경우, 상기 주소를 제2 블록 체인 시스템의 블록 체인 데이터로 저장하는 임베딩 블록 체인 시스템. - 제16항에 있어서,
상기 제2 블록 체인 시스템은,
상기 제1 블록 체인 시스템으로부터 제1 블록 체인 서명 및 제1 블록 체인 인증서를 수신하고,
상기 인증서를 복호화하여 상기 제1 블록 체인 시스템의 공개키를 획득하며,
상기 공개키로 상기 제1 블록 체인 서명을 검증하고,
상기 제1 블록 체인 서명이 검증된 경우, 제네시스 블록을 저장하는 임베딩 블록 체인 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210078126A KR102544899B1 (ko) | 2021-06-16 | 2021-06-16 | 외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210078126A KR102544899B1 (ko) | 2021-06-16 | 2021-06-16 | 외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220168415A KR20220168415A (ko) | 2022-12-23 |
KR102544899B1 true KR102544899B1 (ko) | 2023-06-16 |
Family
ID=84536245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210078126A KR102544899B1 (ko) | 2021-06-16 | 2021-06-16 | 외부 저장 매체를 이용한 임베딩 블록 체인 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102544899B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101934958B1 (ko) * | 2017-11-22 | 2019-01-03 | 주식회사 코스콤 | 블록체인을 이용한 연계 인증 방법 및 그 장치 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130125201A (ko) * | 2012-05-08 | 2013-11-18 | (주)아이티네이드 | 공개키 기반의 인증 장치 및 방법 |
KR102382127B1 (ko) * | 2017-04-05 | 2022-04-04 | 삼성에스디에스 주식회사 | 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법 |
KR20190019004A (ko) * | 2017-08-16 | 2019-02-26 | 김용태 | 블록체인 기반의 거래 시스템 및 그 방법 |
KR20210032577A (ko) * | 2019-09-16 | 2021-03-25 | 한성대학교 산학협력단 | 블록체인을 이용한 논문 저장 장치 및 이를 이용한 논문 저장 방법 |
-
2021
- 2021-06-16 KR KR1020210078126A patent/KR102544899B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101934958B1 (ko) * | 2017-11-22 | 2019-01-03 | 주식회사 코스콤 | 블록체인을 이용한 연계 인증 방법 및 그 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20220168415A (ko) | 2022-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
KR101781583B1 (ko) | 블록체인을 기반으로 한 파일 관리/검색 시스템 및 파일 관리/검색 방법 | |
US20190057214A1 (en) | Update control device, terminal, and method of controlling | |
US10574438B2 (en) | Security apparatus, method thereof, and program | |
US11271755B2 (en) | Verifying vehicular identity | |
KR102159540B1 (ko) | 정보처리장치, 정보처리 시스템, 정보처리방법, 및 컴퓨터 프로그램 | |
US7904957B2 (en) | Computer-readable recording medium recording a security management program, computer-readable recording medium recording a job submission management program, and security management method | |
US20130054611A1 (en) | Apparatus and method for processing partitioned data for securing content | |
CN109710695B (zh) | 事务请求有效性识别和发起方法、装置、设备和介质 | |
US9420070B2 (en) | Streaming zip | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
US11343072B2 (en) | Method and apparatus for providing service using kiosk | |
US11171776B2 (en) | Encryption key distribution system, key distribution ECU and key reception ECU | |
JP2022527067A (ja) | セキュア更新のためのローカル台帳ブロックチェーン | |
US20200301944A1 (en) | Method and apparatus for storing off-chain data | |
KR102542631B1 (ko) | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 | |
Giri et al. | A survey on data integrity techniques in cloud computing | |
CN114127724A (zh) | 针对多副本存储的完整性审计 | |
JP2022528072A (ja) | 安全な電子制御装置更新のためのローカル台帳ブロックチェーン | |
US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
KR20210130825A (ko) | 분산 원장 시스템으로의 데이터 기록의 카피의 잘못된 전송 방지 | |
CN111291399A (zh) | 数据加密方法、系统、计算机系统和计算机可读存储介质 | |
CN112088376A (zh) | 一种文件存储方法、装置及存储介质 | |
CN116192395A (zh) | 用于分散式数据存储的可信系统 | |
US11852664B2 (en) | Power metering apparatus, power metering server, and power metering method based on blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |