KR102416336B1 - 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 - Google Patents
블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 Download PDFInfo
- Publication number
- KR102416336B1 KR102416336B1 KR1020200055609A KR20200055609A KR102416336B1 KR 102416336 B1 KR102416336 B1 KR 102416336B1 KR 1020200055609 A KR1020200055609 A KR 1020200055609A KR 20200055609 A KR20200055609 A KR 20200055609A KR 102416336 B1 KR102416336 B1 KR 102416336B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- genesis
- blocks
- hash value
- blockchain
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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]
-
- 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/3236—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 using cryptographic hash functions
-
- 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)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 분석하여, 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정하는 단계 및 제네시스 블록을 제2 블록의 이전 블록으로서 식별하는 단계를 포함한다. 여기서, 하나 이상의 블록 각각의 블록 헤더는 이전 블록의 블록 해시 값인 이전 블록 해시 값 및 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함한다. 제2 블록의 이전 블록의 식별은 블록 헤더 내 제네시스 해시 값에 의해 수행된다.
Description
본 개시는 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
여기에서 달리 언급하지 않으면 본 섹션에서 기술되는 내용은 본 출원에서의 청구범위의 선행 기술이 아니며, 본 섹션에 기재하였다는 이유로 선행 기술로 인정되어서는 안 된다.
통신 기능을 가지는 컴퓨팅 장치의 사용이 일반화 됨에 따라, 컴퓨팅 장치에 저장된 데이터에 대한 해킹을 방지하기 위한 보안 기술에 대한 관심이 높아지고 있다. 다양한 국가와 다양한 기업에서 관심을 가지는 보안 기술 중 하나는 블록체인(Block Chain)이다. 블록체인은 분산형 데이터 저장 기법을 이용하며, 이는 데이터를 단일의 컴퓨팅 장치에 저장하지 않고 네트워크에 참여하는 복수의 컴퓨팅 장치에 데이터를 저장하는 방식을 이용한다.
블록체인은 복수의 컴퓨팅 장치에 의해 저장되어 유지되므로, 보안의 관점에서 이점을 가짐과 동시에, 데이터를 필요에 의해 변경하는 것도 불가능하다는 점은 블록체인 기술의 활용의 범위에 영향을 준다. 한국 공개특허공보 제2019-0036948는 블록체인에서 데이터를 관리하는 방법에 관하여 개시한다. 이러한 선행특허문헌은 블록체인으로 연결된 데이터의 일부를 삭제하는 기법을 개시하고 있다. 그러나, 선행특허문헌은 삭제에 의해 제외되는 데이터만을 이용하여 다시 블록체인을 구성하고 있으며, 이는 다양한 연산을 수행하는 노드와 같은 컴퓨팅 장치에 상당한 부담이 될 수 있다.
본 개시는 위와 같은 문제점들을 해결하기 위한 것으로서, 블록체인, 보다 구체적으로는 블록체인의 데이터를 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체를 제시한다.
본 개시의 일부 실시예에서, 블록체인 관리 방법이 설명된다. 예시적인 블록체인 관리 방법은 제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 분석하여, 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정하는 단계 - 여기서, 하나 이상의 블록 각각의 블록 헤더는 이전 블록의 블록(previous block)의 블록 해시 값인 이전 블록 해시 값 및 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함함 -; 및 제2 블록의 제네시스 해시 값에 의해 식별되는 제네시스 블록을 결정된 제2 블록의 이전 블록으로서 식별하는 단계를 포함할 수 있다.
일부 예시에서, 블록체인 관리 방법은 제2 블록을 결정하는 단계 이전에, 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하는 단계; 및 결정하는 단계에 응답하여, 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제하는 단계를 더 포함할 수 있다. 이러한 예시에서, 제2 블록을 결정하는 단계는 삭제하는 단계에 응답하여, 삭제된 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제2 블록을 결정하여 블록체인을 갱신하는 단계를 포함할 수 있다.
일부 다른 실시예에서, 블록체인 관리 장치가 설명된다. 예시적인 블록체인 관리 장치는 블록 생성부, 블록체인 관리부, 제2 블록 결정부 및 블록체인 네트워크부를 포함할 수 있다. 블록 생성부는 블록 헤더에 이전 블록(previous block)의 블록 해시 값인 이전 블록 해시 값 및 제네시스 블록(genesis block)의 블록 해시 값인 제네시스 해시 값을 포함하는 블록을 생성할 수 있다. 블록체인 관리부는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 관리할 수 있다. 제2 블록 결정부는 블록체인에 관한 데이터를 분석하여, 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정할 수 있다. 블록체인 네트워크부는 블록 생성부에 의해 생성된 블록을 블록 체인 네트워크에 전송할 수 있다. 블록체인 관리부는 제2 블록 결정부에 의해 결정된 제2 블록에 대하여, 제2 블록에 포함된 제네시스 해시 값에 의해 식별되는 제네시스 블록을, 결정된 제2 블록의 이전 블록으로서 식별할 수 있다.
일부 또 다른 실시예에서, 블록체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체가 설명된다. 블록체인 관리 프로그램은 컴퓨팅 장치에 의하여 실행되는 경우, 제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하는 동작 - 여기서, 하나 이상의 블록 각각의 블록 헤더는 이전 블록 해시 값 및 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함함 -; 결정하는 동작에 응답하여, 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제하는 동작; 블록체인에 관한 데이터를 분석하여, 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제네시스 블록에 후속하는 제2 블록을 결정하는 동작; 및 제2 블록의 제네시스 해시 값에 의해 식별되는 제네시스 블록을 제2 블록의 이전 블록으로서 식별하는 동작을 수행하도록 하는 하나 이상의 명령어를 포함할 수 있다.
이상의 간단한 요약 및 효과에 관한 설명은 단순히 예시적인 것으로서 본 개시에서 의도한 기술적 사항을 제한하기 위한 것이 아니다. 이하의 상세한 설명과 첨부된 도면을 참조함으로써, 전술한 예시적인 실시예들과 기술적 특징들에 더하여, 추가적인 실시예와 기술적 특징들이 이해될 수 있을 것이다.
본 개시의 전술한 특징들 및 기타 특징들은, 첨부 도면을 참조하여 이하의 설명으로부터 충분히 분명해질 것이다. 이러한 도면들은 본 개시에 따르는 단지 몇 가지의 실시예만을 도시한 것이고, 따라서 그 범위를 제한하는 것으로 간주되어서는 안되는 것을 이해하면서, 본 개시는 첨부된 도면의 사용을 통하여, 더 구체적이고 상세하게 기술될 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 블록체인의 일 예시를 도시한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템의 개략도를 도시한다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치를 도시하는 블록도이다.
도 4는 본 개시의 적어도 일부 실시예에 따라 블록의 일부가 삭제되는 예시를 도시한다.
도 5은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스를 도시한다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 블록체인의 일 예시를 도시한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템의 개략도를 도시한다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치를 도시하는 블록도이다.
도 4는 본 개시의 적어도 일부 실시예에 따라 블록의 일부가 삭제되는 예시를 도시한다.
도 5은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스를 도시한다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품을 도시한다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치의 예시적인 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 구현예 및 실시예를 상세히 설명한다. 그러나, 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 구현예 및 실시예에 한정되지 않는다.
본 개시는 일반적으로, 온라인으로 등록된 데이터의 접근 권한을 관리하기 위한 방법, 장치, 시스템, 컴퓨터 판독가능 저장 매체 및 이에 저장된 프로그램에 관한 것이다.
도 1은 본 개시의 적어도 일부 실시예에 따른 블록체인(100)의 일 예시를 도시한다. 블록체인은 하나 이상의 블록을 포함하며, 각각의 블록은 요구되는 바에 따라 다양한 형태로 구현될 수 있다. 이러한 블록체인은 블록체인 네트워크 내 복수의 노드 각각에서 저장되며, 새로운 블록이 생성될 때마다, 생성된 해당 블록이 블록체인 네트워크 전반에 걸쳐 전파된다.
도 1에 도시된 바와 같이, 블록(110)은 블록 해시부(120), 블록 헤더부(130) 및 블록 바디부(140)를 포함할 수 있다. 블록 해시부(120)는 블록 해시 값을 포함하며, 이는 블록(110)을 식별하는 고유 값에 해당한다. 블록 해시 값은 아래 설명되는 바와 같이, 블록(110) 내의 블록 헤더부(130) 및 블록 바디부(140)에 포함된 데이터에 기초하여 연산된다. 블록 헤더부(130)는 블록체인 기법의 유형에 따라 다양한 값을 포함한다. 본 개시에 따르면, 블록 헤더부(130)는 적어도, 이전 블록 해시 값, 제네시스 해시 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록의 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 블록(110)의 경우, 블록 #n-1의 블록 해시 값(즉, 0xy0…72)이다. 제네시스 해시 값은 블록체인(100)의 최초 블록인 제네시스 블록(genesis block)의 블록 해시 값이다. 데이터 해시 값은 블록 바디부(140)에 저장되는 하나 이상의 트랜잭션의 데이터에 기초하여 결정된다. 일부 선택적인 예시에서, 블록 헤더부(130)는 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 중 적어도 하나를 더 포함할 수 있다. 블록 헤더부(130)에 포함되는 값은 위 설명된 예시에 제한되지 않으며, 난이도 설정 값(nonce)과 같은 값을 더 포함할 수 있다.
블록 바디부(140)는 예컨대, "트랜잭션 n.1", "트랜잭션 n.2" 등과 같은 하나 이상의 트랜잭션을 포함할 수 있다. 트랜잭션의 수 또는 사이즈는 구현예에 따라 미리 정해질 수 있다. 각각의 트랜잭션에는 블록체인의 구현예에 따라 요구되는 데이터가 포함될 수 있다. 블록 바디부(140)에 저장되는 트랜잭션이 미리 정해진 기간, 미리 정해진 트랜잭션의 수 등과 같은 미리 정해진 조건에 만족하는 경우, 블록 바디부(140)에 포함된 하나 이상의 트랜잭션과 연관된 값으로부터 데이터 해시 값이 연산된다. 일부 예시에서, 데이터 해시 값은 머클 트리(Merkle tree) 구조를 이용하여 머클 루트(Merkle root)를 연산함으로써 획득할 수 있다. 이후, 이러한 데이터 해시 값을 포함하는 블록 헤더부(130) 내 다양한 값에 기초하여, 블록 해시 값이 연산되어, 결과적으로 블록(110)이 생성된다.
이와 같이 생성된 블록(110)은 블록체인 네트워크 내의 노드로 전송된다. 한편, 블록체인 네트워크 내 노드는 블록(110)의 수신 전에는 블록(110) 이전 블록(즉, 도 1에서 블록#n-1)까지의 블록체인에 대한 데이터를 저장한다. 노드는 블록(110)을 수신한 이후, 수신된 블록(110)의 유효성을 검증하고, 블록(110)이 유효하면, 블록체인에 블록(110)을 추가하는 한편, 블록체인 내 다른 노드로 블록(110)을 전송한다.
도 2는 본 개시의 적어도 일부 실시예에 따라 블록체인을 관리하기 위한 시스템(200)의 개략도를 도시한다. 본 개시에 따른 예시적인 시스템(200)은 블록체인 네트워크(210)를 포함할 수 있다. 블록체인 네트워크(210)는 미리 정해진 컴퓨팅 장치가 노드로서 동작하는 프라이빗 블록체인(private blockchain)으로 구현되는 경우, 시스템(200)은 블록체인 데이터를 액세스하는 블록체인 네트워크(210) 외부의 단말 장치를 더 포함하며, 이러한 블록체인 네트워크(120)는 시스템(200)의 운영 비용, 이용 용이성, 속도, 안정성 등의 측면에서 이점을 가지지만, 본 개시는 이에 제한되지 않는다. 다른 구현예에서, 블록체인 네트워크(210)는 퍼블릭 블록체인(public blockchain)의 구조로 구현되는 것도 가능하다.
일부 실시예에서, 블록체인 네트워크(210)는 복수의 노드(220-1, 220-2, 220-3, 220-4, ...)를 포함한다. 복수의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다. 예컨대, 둘 이상의 노드가 단일 컴퓨팅 장치에서 가상 노드의 형태로 구현되는 것 또한 가능하다. 블록체인 네트워크(210) 내 복수의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행한다. 또한, 본 개시에 따르면, 블록체인 네트워크(210) 내 복수의 노드(220-1, 220-2, 220-3, 220-4, ...) 각각은 블록체인을 형성하는 하나 이상의 블록 중 일부를 삭제하고, 나머지 블록을 유효하게 다시 연결하는 기능을 수행한다. 이하에서는, 본 개시에 따른 일부 실시예로서, 노드(220-1)의 동작에 관하여 설명하며, 노드(220-1)에 대하여 설명된 동작은 다른 노드(220-2, 220-3, 220-4, …에도 적용될 수 있다는 점이 이해될 것이다.
일부 실시예에서, 노드(220-1)는 블록 체인의 개별 블록을 생성할 수 있다. 블록 체인은 제네시스 블록 및 하나 이상의 블록을 포함할 수 있다. 각 블록은 하나 이상의 트랜잭션을 포함할 수 있으며, 각 트랜잭션은 요구되는 구현예에 따른 데이터, 예컨대, 로그 데이터가 포함될 수 있다. 노드(220-1)에 의한 블록의 구성과 생성에 대한 상세한 설명은 도 1에서의 블록의 생성에 관한 설명과 중복되므로, 명료함을 위하여 생략한다.
일부 실시예에서, 노드(220-1)는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하고, 이러한 결정에 응답하여, 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제할 수 있다. 적어도 하나의 블록은 제네시스 블록에 후속하는 블록(제2 블록) 또는 제2 블록과 제2 블록으로부터 연속한 블록일 수 있다. 일부 예시에서, 노드(220-1)는 블록체인의 데이터가 소정의 사이즈를 초과할 때, 블록체인의 데이터를 소정의 사이즈 이하로 유지되도록 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제할 수 있다. 일부 다른 예시에서, 노드(220-1)는 블록체인 내 블록이 생성된 시각으로부터 소정의 시간이 경과한 경우, 해당 블록을 삭제할 수 있다. 일부 다른 예시에서, 노드(220-1)는 미리 정해진 기간 마다, 제네시스 블록 외의 하나 이상의 블록 중 적어도 하나의 블록을 삭제할 수 있다. 블록체인 내 블록의 삭제는 위 예시에 제한되지 않으며, 다른 예시도 가능하다.
일부 실시예에서, 블록체인 내 블록의 삭제는 다양한 방식으로 블록체인 네트워크(210) 전반에 걸쳐 전파될 수 있다. 일부 예시에서, 블록체인 네트워크(210) 내 노드(220-1, 220-2, 220-3, 220-4, …에서 동기화되어 수행될 수 있다. 일부 다른 예시에서, 블록체인 내 블록의 삭제는 현재 생성되고 있는 블록의 트랜잭션에 기록될 수 있다. 이러한 예시에서, 노드(220-1)가 블록을 생성하고 다른 노드(220-2, 220-4)로 전송하면, 노드(220-2, 220-4)는 수신된 블록 내 트랜잭션에 기록된 블록의 삭제에 대한 데이터에 기초하여, 노드(220-1)와 같이 적어도 하나의 블록을 삭제할 수 있다. 일부 다른 실시예에서, 블록체인 내 블록의 삭제는 블록체인 네트워크(210)에 전파되지 않을 수 있으며, 블록체인 네트워크(210) 내 각 노드(220-1, 220-2, 220-3, 220-4, …는 개별적으로 블록체인에 대한 데이터를 관리하는 것도 가능하다.
일부 실시예에서, 노드(220-1)는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록 체인에 관한 데이터를 분석하여, 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정할 수 있다. 일부 예시에서, 노드(220-1)는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별할 수 있다. 예컨대, 노드(220-1)는 블록체인 내 제네시스 블록 및 하나 이상의 블록의 개수 및 하나 이상의 블록 각각의 이전 블록 해시 값을 식별할 수 있다. 이러한 예시에서, 노드(220-1)는 식별된 블록 중 임의의 블록에 대하여, 해당 블록의 이전 블록 해시 값에 기초하여, 해당 블록의 이전 블록을 식별할 수 있다. 이러한 방식으로, 노드(220-1)는 블록체인 내 블록을 연결시킬 수 있다. 블록체인 내 블록이 삭제되지 않은 경우, 식별된 모든 블록은 연결될 수 있다. 블록체인 내 적어도 하나의 블록이 삭제되는 경우, 식별된 모든 블록이 연결되지 않을 수 있다. 블록체인 내 블록의 삭제가 제2 블록으로부터 수행되므로, 제네시스 블록 외에 하나의 블록 만이 이전 블록을 식별하지 못할 수 있다. 즉, 소정의 블록에서, 소정의 블록의 이전 해시 값에 의해 상기 소정의 블록의 이전 블록이 식별되지 않고, 연결되지 않은 상기 블록체인 내 블록이 상기 제네시스 블록만 남는 경우, 노드(220-1)는 해당 하나의 블록을 새로운 제2 블록으로 결정할 수 있다. 이와 같이, 하나 이상의 블록 중 적어도 하나가 삭제되는 예시에서, 노드(220-1)는 상기 적어도 하나의 블록의 삭제에 응답하여, 삭제된 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제2 블록을 결정할 수 있다.
일부 다른 예시에서, 블록의 블록 헤더는 블록 깊이 값을 더 포함할 수 있다. 이러한 예시에서, 노드(220-1)는 블록 헤더 내 블록 깊이 값에 기초하여 제2 블록을 결정할 수 있다. 예컨대, 노드(220-1)는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별하고, 제네시스 블록 및 하나 이상의 블록의 블록 깊이 값을 식별할 수 있다. 노드(220-1)는 식별된 블록 깊이 중 제네시스 블록의 블록 깊이(0)를 제외하고 가장 낮은 블록 깊이를 가지는 블록을 식별하고 식별된 블록을 제2 블록으로서 결정할 수 있다.
일부 실시예에서, 노드(220-1)는 결정된 제2 블록에 대해서는 제2 블록 내 제네시스 해시 값에 의해 식별되는 제네시스 블록을 제2 블록의 이전 블록으로서 식별할 수 있다.
이와 같이, 본 개시에 따르면, 블록체인을 활용하여 데이터를 신뢰 가능하게 저장하면서도 시간에 따라 증가하는 블록체인에 대한 데이터의 사이즈를 제어하거나 유지 기간을 관리하는 것이 가능해진다.
도 3은 본 개시의 적어도 일부 실시예에 따른 블록체인 관리 장치(300)를 도시하는 블록도이다. 도 3에 도시된 블록체인 관리 장치(300)는 예컨대, 도 2의 노드(220-1, 220-2, 220-3, 220-4, ...)와 같이, 블록을 생성하고, 생성된 블록을 연결된 다른 노드로 전파하고, 수신된 블록을 검증하고, 블록을 추가하는 기능을 수행하고, 블록체인을 형성하는 하나 이상의 블록 중 일부를 삭제하고, 나머지 블록을 유효하게 다시 연결하는 기능을 수행한다. 이러한 점에서, 블록체인 관리 장치(300)는 예컨대, 데스크 탑 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 휴대 전화기, 개인 휴대용 단말기(PDA), 특정 용도 장치 또는 상기 기능 중 임의의 것을 포함하는 융합 장치와 같은 단일 컴퓨팅 장치; 또는 서버 팜(server farm), 분산형 네트워크, 클라우드 컴퓨팅 구성과 같이 복수의 컴퓨팅 장치를 포함하는 복수 컴퓨팅 구성일 수 있으나, 이에 제한되지 않는다.
일부 실시예에서, 블록체인 관리 장치(300)는 도 3에 도시된 바와 같이, 블록 생성부(310), 블록체인 관리부(320), 제2 블록 결정부(330) 및 블록체인 네트워크부(340)를 포함할 수 있다. 블록 생성부(310)는 트랜잭션 처리부(312), 데이터 해시 연산부(314) 및 블록해시 연산부(316)를 포함할 수 있다.
블록체인 관리 장치(300)는 본 개시에 따른 하나 이상의 프로그램을 내부 메모리에 저장할 수 있으며, 이러한 하나 이상의 프로그램은 프로세서의 실행에 의해, 이하에서 설명되는 블록 생성부(310), 블록체인 관리부(320), 제2 블록 결정부(330) 및 블록체인 네트워크부(340)의 동작 중 적어도 일부를 수행할 수 있다. 이러한 컴포넌트들(310, 320, 330 및 340) 및 그 서브 컴포넌트들(312, 314 및 316)은 개별적인 컴포넌트로 도시되었으나, 개시된 대상의 범위를 벗어나지 않으면서, 추가적인 컴포넌트로 분리될 수 있거나 더 적은 컴포넌트로 조합되거나 제거될 수 있다. 또한, 도 3에서는 컴포넌트가 소프트웨어에 의해 구현되는 것으로 도시되지만, 당업자라면 컴포넌트의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어 또는 그들의 임의의 조합을 통하여 개별적으로 및/또는 종합적으로 구현될 수 있음을 이해할 것이다.
블록 생성부(310)는 블록 체인 기법에 따라 개별 블록을 생성할 수 있다. 블록 생성부(310)에 의해 생성되는 블록의 블록 헤더는 적어도, 이전 블록 해시 값, 제네시스 해시 값 및 데이터 해시 값을 포함할 수 있다. 이전 블록 해시 값은 블록체인 내에서 해당 블록의 직전의 블록인 이전 블록(previous block)의 블록 해시 값이다. 제네시스 해시 값은 블록체인의 최초 블록인 제네시스 블록(genesis block)의 블록 해시 값이다. 일부 선택적인 예시에서, 블록헤더는 현재 블록의 깊이 값, 블록 생성 시각 값, 프로토콜 버전 값, 난이도 설정 값(nonce) 중 적어도 하나를 더 포함할 수 있다. 블록 헤더에 포함되는 값은 위 설명된 예시에 제한되지 않으며, 난이도 설정 값(nonce)과 같은 값을 더 포함할 수 있다.
트랜잭션 처리부(312)는 블록체인 내 트랜잭션을 검증하고 생성하고 있는 블록에 해당 트랜잭션을 추가하도록 구성된다. 그러한 트랜잭션은 블록체인 관리 장치(310) 또는 블록체인 관리 장치(310)와 연관된 장치에 의해 생성되거나 블록체인 네트워크부(340)에 의해 다른 블록체인 관리 장치로부터 수신될 수 있다. 생성하고 있는 블록이 미리 정해진 조건, 예컨대, 미리 정해진 기간, 누적된 트랜잭션의 미리 정해진 수를 만족하는 경우, 트랜잭션 처리부(312)는 트랜잭션의 추가를 중단할 수 있으며, 데이터 해시 연산부(314)는 데이터 해시 값을 연산할 수 있다. 트랜잭션 처리부(312)에 의해 추가되는 트랜잭션은 요구되는 구현예에 따른 데이터, 예컨대, 로그 데이터를 포함할 수 있다.
이와 같이, 데이터 해시 연산부(314)는 트랜잭션의 추가가 중단된 블록에 대하여, 데이터 해시 값을 연산할 수 있다. 일부 예시에서, 데이터 해시 연산부(314)는 해당 블록에 포함된 하나 이상의 트랜잭션과 연관된 값을 이용하여 데이터 해시 값을 연산할 수 있다. 예컨대, 데이터 해시 연산부(314)는 머클 트리(Merkle tree) 구조를 이용하여 머클 루트(Merkle root)를 연산할 수 있다.
블록해시 연산부(316)는 데이터 해시 연산부(314)의 연산에 기초하여, 블록의 블록 해시 값을 연산할 수 있다. 블록해시 연산부(316)는 적어도 데이터 해시 연산부(314)에 의해 연산된 데이터 해시 값, 제네시스 해시 값 및 이전 블록 해시 값을 이용하여 해당 블록의 블록 해시 값을 연산할 수 있다. 일부 추가적인 예시에서, 블록해시 연산부(316)는 현재 블록의 블록 깊이 값에 더 기초하여 블록 해시 값을 연산할 수 있다.
블록체인 관리부(320)는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 관리할 수 있다. 제2 블록 결정부(330)는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록 체인에 관한 데이터를 분석하여, 상기 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정할 수 있다. 블록체인 관리부(320)는 제2 블록 결정부(330)에 의해 결정된 제2 블록에 대하여, 제2 블록에 포함된 제네시스 해시 값에 의해 식별되는 제네시스 블록을 해당 제2 블록의 이전 블록으로서 식별할 수 있다.
일부 실시예에서, 블록체인 관리부(320)는 블록체인에 관한 데이터가 소정의 조건을 만족하는 경우, 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제할 수 있다. 적어도 하나의 블록은 제네시스 블록에 후속하는 블록(제2 블록) 또는 제2 블록과 제2 블록으로부터 연속한 블록일 수 있다. 일부 예시에서, 블록체인 관리부(320)는 블록체인의 데이터가 소정의 사이즈를 초과할 때, 블록체인의 데이터를 소정의 사이즈 이하로 유지되도록 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제할 수 있다. 일부 다른 예시에서, 블록체인 관리부(320)는 블록체인 내 블록이 생성된 시각으로부터 소정의 시간이 경과한 경우, 해당 블록을 삭제할 수 있다. 일부 다른 예시에서, 블록체인 관리부(320)는 미리 정해진 기간 마다, 제네시스 블록 외의 하나 이상의 블록 중 적어도 하나의 블록을 삭제할 수 있다. 블록체인 내 블록의 삭제는 위 예시에 제한되지 않으며, 다른 예시도 가능하다.
블록체인 내 블록의 삭제는 다양한 방식으로 블록체인 네트워크 전반에 걸쳐 전파되거나 전파되지 않을 수 있다. 일부 예시에서, 블록체인 관리부(320)는 미리 정해진 블록체인의 프로토콜에 따라 예컨대, 동일한 조건으로 블록을 삭제할 수 있다. 일부 다른 예시에서, 블록체인 네트워크부(340)는 블록의 삭제에 관한 정보를 블록체인 네트워크에 전송할 수 있다. 예컨대, 블록체인 네트워크부(340)는 트랜잭션으로서 블록체인 네트워크 내 노드 및/또는 다른 블록체인 관리 장치로 전송할 수 있다. 이러한 예시에서, 트랜잭션 처리부(312)는 블록의 삭제를 트랜잭션으로서 추가할 수 있다. 일부 또 다른 예시에서, 블록체인 내 블록의 삭제는 블록체인 네트워크에 전파되지 않을 수 있으며, 각 노드 및/또는 블록체인 관리 장치가 개별적으로 블록체인에 대한 데이터를 관리하는 것도 가능하다.
일부 실시예에서, 제2 블록 결정부(330)는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별할 수 있다. 예컨대, 제2 블록 결정부(330)는 블록체인 내 제네시스 블록 및 하나 이상의 블록의 개수 및 하나 이상의 블록 각각의 이전 블록 해시 값을 식별할 수 있다. 이러한 예시에서, 제2 블록 결정부(330)는 식별된 블록 중 임의의 블록에 대하여, 해당 블록의 이전 블록 해시 값에 기초하여, 해당 블록의 이전 블록을 식별할 수 있다. 이러한 방식으로, 제2 블록 결정부(330)는 블록체인 내 블록을 연결시킬 수 있다. 블록체인 내 블록이 삭제되지 않은 경우, 식별된 모든 블록은 연결될 수 있다. 블록체인 내 적어도 하나의 블록이 삭제되는 경우, 식별된 모든 블록이 연결되지 않을 수 있다. 블록체인 내 블록의 삭제가 제2 블록으로부터 수행되므로, 제네시스 블록 외에 하나의 블록 만이 이전 블록을 식별하지 못할 수 있다. 즉, 소정의 블록에서, 소정의 블록의 이전 해시 값에 의해 상기 소정의 블록의 이전 블록이 식별되지 않고, 연결되지 않은 상기 블록체인 내 블록이 상기 제네시스 블록만 남는 경우, 제2 블록 결정부(330)는 해당 하나의 블록을 새로운 제2 블록으로 결정할 수 있다. 이와 같이, 하나 이상의 블록 중 적어도 하나가 삭제되는 예시에서, 제2 블록 결정부(330)는 상기 적어도 하나의 블록의 삭제에 응답하여, 삭제된 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제2 블록을 결정할 수 있다.
일부 다른 실시예에서, 블록의 블록 헤더는 블록 깊이 값을 더 포함할 수 있다. 이러한 예시에서, 제2 블록 결정부(330)는 블록 헤더 내 블록 깊이 값에 기초하여 제2 블록을 결정할 수 있다. 예컨대, 제2 블록 결정부(330)는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별하고, 제네시스 블록 및 하나 이상의 블록의 블록 깊이 값을 식별할 수 있다. 제2 블록 결정부(330)는 식별된 블록 깊이 중 제네시스 블록의 블록 깊이(0)를 제외하고 가장 낮은 블록 깊이를 가지는 블록을 식별하고 식별된 블록을 제2 블록으로서 결정할 수 있다.
이와 같이, 제2 블록 결정부(330)는 블록체인에서 제2 블록을 결정할 수 있으며, 블록체인 관리부(320)는 결정된 제2 블록의 제네시스 해시 값을 이용하여 제네시스 블록을 제2 블록의 이전 블록으로 식별함으로써, 블록체인을 갱신할 수 있다.
도 4는 본 개시의 적어도 일부 실시예에 따라 블록의 일부가 삭제되는 예시를 도시한다. 일 예시에 따른 블록체인은 도 4의 (a)와 같이, 제네시스 블록(410), 블록(420), 블록(430), 블록(440) 등을 포함한다. 제네시스 블록(410)가 블록체인 내 최초의 블록이므로, 제네시스 블록(410)의 블록 헤더는 데이터 해시 값을 포함하지만 이전 블록 해시 값과 제네시스 해시 값을 포함하지 않거나 유의미한 값을 가지지 않는다. 다른 한편으로, 블록(420), 블록(430), 블록(440) 등의 블록 헤더는 데이터 해시 값뿐만 아니라 이전 블록 해시 값 및 제네시스 해시 값을 더 포함한다. 블록(430), 블록(440) 등은 블록 헤더 내 이전 블록 해시 값에 기초하여 각각 블록(420), 블록(430) 등을 식별할 수 있다. 도 4의 (a)에서 제네시스 블록(410)에 후속하는 제2 블록은 블록(420)이며, 본 개시에 따르면, 블록(420)에 대해서는 이전 블록 해시 대신 제네시스 해시 값에 기초하여 이전 블록인 제네시스 블록(410)을 식별할 수 있다. 이와 같은 방식으로, 제네시스 블록(410), 블록(420), 블록(430), 블록(440) 등에 대한 블록체인을 형성할 수 있다.
본 개시에 따르면, 블록체인 내 데이터가 본 개시에 따른 소정의 조건을 만족하는 경우, 도 4의 (b)에 도시된 바와 같이, 블록체인 내 일부 블록, 예컨대, 블록(420) 및 블록(430)은 삭제될 수 있다. 이후, 본 개시에 따라, 블록(440)이 제네시스 블록(410)에 후속하는 제2 블록으로서 결정될 수 있으며, 블록(440)의 블록 헤더 내 제네시스 해시 값을 이용하여 블록(440)의 이전 블록으로서, 제네시스 블록(410)을 식별할 수 있다.
도 5은 본 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 예시적인 프로세스(500)를 도시한다. 예컨대, 프로세스(500)는 도 2의 노드(220-1, 220-2, 220-3, 220-4, …및 블록체인 관리장치(300)와 같은 컴퓨팅 장치의 제어 하에서 수행될 수 있다. 이러한 컴퓨팅 장치는 블록체인 내 개별 블록을 생성할 수 있으며, 여기서 블록은 블록 헤더에 이전 블록 해시 값, 데이터 해시 값 및 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 적어도 포함할 수 있다. 도 5에 도시된 프로세스(500)는 블록(510, 520, 530 및/또는 540)에 의해 예시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 도 5에 예시된 개략적인 동작들은 예시로서만 제공되고, 개시된 실시에의 본질에서 벗어나지 않으면서, 동작들 중 일부가 선택적일 수 있거나, 더 적은 동작으로 조합될 수 있거나, 추가적인 동작으로 확장될 수 있다. 프로세스(500)는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하는 블록(510)에서 시작할 수 있다.
블록(510)에서, 컴퓨팅 장치는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정할 수 있다. 컴퓨팅 장치는 예컨대, 블록체인의 데이터가 소정의 사이즈를 초과하는 경우, 블록체인 내 블록이 생성된 시각으로부터 소정의 시간이 경과한 경우 또는 미리 정해진 기간 마다 등과 같은 조건이 만족된다고 결정할 수 있다. 프로세스(500)는 블록(510)으로부터 하나 이상의 블록 중 적어도 하나의 블록을 삭제하는 블록(520)으로 이어질 수 있다.
블록(520)에서, 컴퓨팅 장치는 제네시스 블록이 아닌 하나 이상의 블록 중 적어도 하나를 삭제할 수 있다. 삭제되는 적어도 하나의 블록은 제네시스 블록에 후속하는 블록(제2 블록) 또는 제2 블록과 제2 블록으로부터 연속한 블록일 수 있다. 이러한 블록체인 내 블록의 삭제는 다양한 방식으로 블록체인 네트워크 전반에 걸쳐 전파되거나 전파되지 않을 수 있다. 프로세스(500)는 블록(520)으로부터 블록체인 내 제2 블록을 결정하는 블록(530)으로 이어질 수 있다.
블록(530)에서, 컴퓨팅 장치는 제네시스 블록 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 분석하여, 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정할 수 있다. 일부 예시에서, 컴퓨팅 장치는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별할 수 있다. 이러한 예시에서, 컴퓨팅 장치는 식별된 블록 중 임의의 블록에 대하여, 해당 블록의 이전 블록 해시 값에 기초하여, 해당 블록의 이전 블록을 식별할 수 있다. 이러한 방식으로, 제2 블록 결정부(330)는 블록체인 내 블록을 연결시킬 수 있다. 블록체인 내 블록이 삭제되지 않은 경우, 식별된 모든 블록은 연결될 수 있다. 블록체인 내 적어도 하나의 블록이 삭제되는 경우, 식별된 모든 블록이 연결되지 않을 수 있다. 블록체인 내 블록의 삭제가 제2 블록으로부터 수행되므로, 제네시스 블록 외에 하나의 블록 만이 이전 블록을 식별하지 못할 수 있다. 즉, 소정의 블록에서, 소정의 블록의 이전 해시 값에 의해 상기 소정의 블록의 이전 블록이 식별되지 않고, 연결되지 않은 상기 블록체인 내 블록이 상기 제네시스 블록만 남는 경우, 컴퓨팅 장치는 해당 하나의 블록을 새로운 제2 블록으로 결정할 수 있다. 이와 같이, 하나 이상의 블록 중 적어도 하나가 삭제되는 예시에서, 컴퓨팅 장치는 상기 적어도 하나의 블록의 삭제에 응답하여, 삭제된 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제2 블록을 결정할 수 있다.
다른 예시에서, 블록의 블록 헤더는 블록 깊이 값을 더 포함할 수 있다. 이러한 예시에서, 컴퓨팅 장치는 블록 헤더 내 블록 깊이 값에 기초하여 제2 블록을 결정할 수 있다. 예컨대, 컴퓨팅 장치는 블록체인 내 제네시스 블록 및 하나 이상의 블록을 식별하고, 제네시스 블록 및 하나 이상의 블록의 블록 깊이 값을 식별할 수 있다. 컴퓨팅 장치는 식별된 블록 깊이 중 제네시스 블록의 블록 깊이(0)를 제외하고 가장 낮은 블록 깊이를 가지는 블록을 식별하고 식별된 블록을 제2 블록으로서 결정할 수 있다. 프로세스(500)는 블록(530)으로부터 제2 블록의 제네시스 해시 값에 기초하여, 제네시스 블록을 제2 블록의 이전 블록으로서 식별하는 블록(540)으로 이어질 수 있다.
블록(540)에서, 컴퓨팅 장치는 블록(530)에서 결정된 제2 블록에 대해서는 제2 블록 내 제네시스 해시 값에 의해 식별되는 제네시스 블록을 제2 블록의 이전 블록으로서 식별할 수 있다. 즉, 컴퓨팅 장치는 식별된 제2 블록에 대해서는 이전 블록 해시 값 대신 제네시스 해시 값을 이용하여 이전 블록을 식별한다.
도 6은 본 개시의 적어도 일부 실시예에 따라, 개시의 적어도 일부 실시예에 따라, 블록체인을 관리하는 데 이용될 수 있는 컴퓨터 프로그램 제품(600)을 도시한다. 예시적인 컴퓨터 프로그램 제품의 예시적인 실시예는 신호 베어링 매체(610)를 이용하여 제공된다. 일부 실시예에서, 하나 이상의 컴퓨터 프로그램 제품(600)의 신호 베어링 매체(610)는 컴퓨터 판독가능 매체(630) 및/또는 기록 가능 매체(640)를 포함할 수 있다.
신호 베어링 매체(610)에 포함된 명령어(620)는 노드(220-1, 220-2, 220-3, 220-4, …및 블록체인 관리 장치(300)와 같은 컴퓨팅 장치에 의해 실행될 수 있다. 명령어(620)가 실행되면, 컴퓨팅 장치로 하여금 제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하기 위한 하나 이상의 명령어 - 여기서, 하나 이상의 블록 각각의 블록 헤더는 이전 블록 해시 값 및 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함함 -; 결정에 응답하여, 하나 이상의 블록 중 적어도 하나의 블록을 블록체인으로부터 삭제하기 위한 하나 이상의 명령어; 블록체인에 관한 데이터를 분석하여, 적어도 하나의 블록을 제외한 하나 이상의 블록으로부터 제네시스 블록에 후속하는 제2 블록을 결정하기 위한 하나 이상의 명령어; 또는 제2 블록의 제네시스 해시 값에 의해 식별되는 상기 제네시스 블록을 제2 블록의 이전 블록으로서 식별하기 위한 하나 이상의 명령어 중 적어도 하나를 포함한다.
도 7은 본 개시의 적어도 일부 실시예에 따라 배열되는 컴퓨팅 장치(700)의 예시적인 실시예의 블록도이다. 일 예시적인 기본적인 구성(702)에서, 컴퓨팅 장치(700)는 하나 이상의 프로세서(704) 및 시스템 메모리(706)를 포함할 수 있다. 메모리 버스(708)는 프로세서(704) 및 시스템 메모리(706) 사이에서 통신하기 위하여 이용될 수 있다.
요구되는 구성에 따라, 프로세서(704)는 마이크로 프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 프로세서(704)는 레벨 1 캐시(710), 레벨 2 캐시(712)와 같은 하나 이상의 레벨(level)의 캐시(cache), 프로세서 코어(714), 및 레지스터(716)를 포함할 수 있다. 프로세서 코어(714)는 산술 논리 연산장치(arithmetic logic unit; ALU), 부동 소수점 장치(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 그들의 임의의 조합을 포함할 수 있다. 메모리 컨트롤러(718)는 또한 프로세서(704)와 함께 사용될 수 있거나, 또는 일부 구현예에서 메모리 컨트롤러(718)는 프로세서(704)의 내적인 일부일 수 있다.
요구되는 구성에 따라, 시스템 메모리(706)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그들의 임의의 조합을 포함하는 임의의 유형일 수 있으나, 이에 제한되지는 않는다. 시스템 메모리(706)는 운영 체제(720), 하나 이상의 어플리케이션(application)(722), 및 프로그램 데이터(724)를 포함할 수 있다. 어플리케이션(722)은 도 2의 노드(220-1, 220-2, 220-3, 220-4, …및/또는 도 3의 블록체인 관리 장치(300) 및/또는 도 5의 프로세스(500)에 관하여 기술된 기능 블록 및/또는 작용을 포함하여 여기에서 기술된 바와 같은 기능을 수행하도록 배열된 알고리즘(726)을 포함할 수 있다. 프로그램 데이터(724)는, 알고리즘 (726)과 함께 이용하기 위한 데이터(728), 예컨대, 정적 네트워크 환경 등에 해당하는 데이터를 포함할 수 있다. 일부 실시예에서, 어플리케이션(722)은 최적의 전송 환경을 결정하기 위한 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 운영 체제(720) 상에서 프로그램 데이터(724)로 동작하도록 배열될 수 있다. 예컨대, 시스템(200)은 컴퓨팅 장치(700)의 전부 또는 일부를 포함할 수 있으며 최적의 전송 환경을 결정하는 구현이 여기에서 설명된 바와 같이 제공될 수 있도록 어플리케이션(722)의 전부 또는 일부를 수행하는 것이 가능할 수 있다. 이러한 기술된 기본적인 구성은 도 7에서 파선(702) 내의 그 구성요소들에 의해 도시된다.
컴퓨팅 장치(700)는 기본적인 구성(702) 및 임의의 요구되는 장치 및 인터페이스(interface) 사이의 통신을 용이하게 하도록 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(730)는 저장부 인터페이스 버스(734)를 통한 기본적인 구성(702) 및 하나 이상의 데이터 저장 장치(732) 사이의 통신을 용이하게 하도록 사용될 수 있다. 데이터 저장 장치(732)는 이동식 저장 장치(736), 고정식 저장 장치(738), 또는 그 조합일 수 있다. 이동식 저장 장치 및 고정식 저장 장치의 예를 몇 가지 들자면, 플렉서블 디스크 드라이브(flexible disk drive) 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다목적 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(SSD), 및 테이프 드라이브 등을 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈(program module), 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성의 이동식 및 고정식 매체를 포함할 수 있다.
시스템 메모리(706), 이동식 저장 장치(736) 및 고정식 저장 장치(738)는 모두 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 요구되는 정보를 저장하도록 사용될 수 있고, 컴퓨팅 장치(700)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하나, 이에 제한되지는 않는다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(700)의 일부일 수 있다.
컴퓨팅 장치(700)는 또한 버스/인터페이스 컨트롤러(742)를 통한 다양한 인터페이스 장치(예컨대, 출력 인터페이스, 주변 인터페이스, 및 통신 인터페이스)로부터 기본적인 구성(702)으로의 통신을 용이하게 하기 위한 인터페이스 버스(742)를 포함할 수 있다. 예시적인 출력 장치(742)는 그래픽 처리 유닛(748) 및 오디오 처리 유닛(750)을 포함할 수 있으며, 이는 하나 이상의 A/V 포트(752)를 통하여 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(744)는 직렬 인터페이스 컨트롤러(754) 또는 병렬 인터페이스 컨트롤러(756)를 포함할 수 있으며, 이는 하나 이상의 I/O 포트(658)를 통하여 입력 장치(예컨대, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 기타 주변 장치(예컨대, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(746)는 네트워크 컨트롤러(760)를 포함하며, 이는 하나 이상의 통신 포트(764)를 통한 네트워크 통신 상에서의 하나 이상의 다른 컴퓨팅 장치(762)와의 통신을 용이하게 하도록 배열될 수 있다.
컴퓨팅 장치(700)는 또한 랩탑 컴퓨터나 랩탑이 아닌 컴퓨터 구성 둘 다를 포함하는 개인 컴퓨터로 구현될 수 있다. 또한, 컴퓨팅 장치(700)는 무선 기지국 또는 기타 무선 시스템 또는 장치의 일부로서 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수도 있다.
이상, 본 개시에서 청구하고자 하는 대상에 대해 구체적으로 살펴 보았다. 본 개시에서 청구된 대상은 앞서 기술한 특정 구현예로 그 범위가 제한되지 않는다. 예컨대, 어떤 구현예에서는 장치 또는 장치의 조합 상에서 동작 가능하게 사용되는 하드웨어의 형태일 수 있으며, 다른 구현예에서는 소프트웨어 및/또는 펌웨어의 형태로 구현될 수 있고, 또 다른 구현예에서는 신호 베어링 매체, 저장 매체와 같은 하나 이상의 물품을 포함할 수 있다. 여기서, CD-ROM, 컴퓨터 디스크, 플래시 메모리 등과 같은 저장 매체는, 예컨대 컴퓨팅 시스템, 컴퓨팅 플랫폼 또는 기타 시스템과 같은 컴퓨팅 장치에 의하여 실행될 때 앞서 설명한 구현예에 따라 해당 프로세서의 실행을 야기시킬 수 있는 명령을 저장할 수 있다. 이러한 컴퓨팅 장치는 하나 이상의 처리 유닛 또는 프로세서, 디스플레이, 키보드 및/또는 마우스와 같은 하나 이상의 입/출력 장치, 및 정적 랜덤 액세스 메모리, 동적 랜덤 액세스 메모리, 플래시 메모리 및/또는 하드 드라이브와 같은 하나 이상의 메모리를 포함할 수 있다.
전술한 상세한 설명에서는 블록도, 흐름도 및/또는 기타 예시를 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 기타 예시는 하나 이상의 기능 및/또는 동작을 포함하게 되며, 당업자라면 블록도, 흐름도 및/또는 기타 예시 내의 각각의 기능 및/또는 동작이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 개별적으로 혹은 집합적으로 구현될 수 있다는 점을 이해할 수 있을 것이다. 일 실시예에서, 본 개시에 기재된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 이와 달리, 본 개시의 실시예의 일부 양상은 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 이들의 실질적으로 임의의 조합으로써 전체적으로 또는 부분적으로 균등하게 집적 회로에서 구현될 수도 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자의 기술 범위 내에 속하는 것이다. 또한, 당업자라면, 본 개시의 대상의 매커니즘들이 다양한 형태의 프로그램 제품으로 분배될 수 있음을 이해할 것이며, 본 개시의 대상의 예시는 분배를 실제로 수행하는데 사용되는 신호 베어링 매체의 특정 유형과 무관하게 적용됨을 이해할 것이다.
특정 예시적 기법이 다양한 방법 및 시스템을 이용하여 여기에서 기술되고 도시되었으나, 당업자라면, 청구된 대상에서 벗어남이 없이, 다양한 기타의 수정 또는 등가물로의 치환 가능성을 이해할 수 있다. 추가적으로, 여기에 기술된 중심 개념으로부터 벗어남이 없이 특정 상황을 청구된 대상의 교시로 적응시키도록 많은 수정이 이루어질 수 있다. 따라서, 청구된 대상이 개시된 특정 예시로 제한되지 않으나, 그러한 청구된 대상은 또한 첨부된 청구범위 및 그 균등의 범위 내에 들어가는 모든 구현예를 포함할 수 있음이 의도된다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위, 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
Claims (10)
- 컴퓨팅 장치의 제어 하에서 수행되는, 블록체인 관리 방법으로서,
제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하는 단계- 상기 하나 이상의 블록 각각의 블록 헤더는 이전 블록의 블록(previous block)의 블록 해시 값인 이전 블록 해시 값 및 상기 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함함 -;
상기 결정하는 단계에 응답하여, 상기 하나 이상의 블록 중 적어도 하나의 블록을 상기 블록체인으로부터 삭제하는 단계 - 상기 적어도 하나의 블록은 상기 제네시스 블록에 후속하는 후속 블록, 또는 상기 후속 블록과 상기 후속 블록으로부터 연속한 블록을 포함하는 복수의 블록임 -;
상기 블록체인에 관한 데이터를 분석하여, 상기 삭제된 적어도 하나의 블록을 제외한 상기 하나 이상의 블록으로부터 제네시스 블록에 후속하는 제2 블록을 결정하는 단계; 및
상기 제2 블록의 제네시스 해시 값에 의해 식별되는 상기 제네시스 블록을 상기 결정된 제2 블록의 이전 블록으로서 식별하는 단계
를 포함하는 블록체인 관리 방법. - 삭제
- 제1항에 있어서,
상기 제2 블록을 결정하는 단계는
상기 블록체인 내 상기 제네시스 블록 및 상기 삭제된 적어도 하나의 블록을 제외한 상기 하나 이상의 블록을 식별하는 단계;
상기 삭제된 적어도 하나의 블록을 제외한 상기 하나 이상의 블록 각각의 이전 블록 해시 값에 기초하여, 해당 블록의 이전 블록을 식별함으로써 상기 하나 이상의 블록을 연결시키는 단계; 및
소정의 블록에서, 상기 소정의 블록의 이전 해시 값에 의해 상기 소정의 블록의 이전 블록이 식별되지 않고, 연결되지 않은 상기 블록체인 내 블록이 상기 제네시스 블록만 남는 경우, 상기 소정의 블록을 제2 블록으로서 결정하는 단계를 포함하는, 블록체인 관리 방법. - 제1항에 있어서,
상기 하나 이상의 블록 각각의 블록 헤더는 블록 깊이 값을 더 포함하고,
상기 제2 블록을 결정하는 단계는 상기 블록 깊이 값에 기초하는 것인, 블록체인 관리 방법. - 블록체인 관리 장치로서,
블록 헤더에 이전 블록(previous block)의 블록 해시 값인 이전 블록 해시 값 및 제네시스 블록(genesis block)의 블록 해시 값인 제네시스 해시 값을 포함하는 블록을 생성하는 블록 생성부;
상기 제네시스 블록 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터를 관리하는 블록체인 관리부;
상기 블록체인에 관한 데이터를 분석하여, 상기 하나 이상의 블록 중에서 제네시스 블록에 후속하는 제2 블록을 결정하는 제2 블록 결정부; 및
상기 블록 생성부에 의해 생성된 블록을 블록 체인 네트워크에 전송하는 블록체인 네트워크부
를 포함하고,
상기 블록체인 관리부는 상기 제2 블록 결정부에 의해 결정된 상기 제2 블록에 대하여, 상기 제2 블록에 포함된 제네시스 해시 값에 의해 식별되는 상기 제네시스 블록을, 상기 결정된 제2 블록의 이전 블록으로서 식별하고,
상기 블록체인 관리부는 상기 블록체인에 관한 데이터가 소정의 조건을 만족하는 경우, 상기 하나 이상의 블록 중 적어도 하나의 블록을 상기 블록체인으로부터 삭제하고,
상기 적어도 하나의 블록은 상기 제네시스 블록에 후속하는 후속 블록, 또는 상기 후속 블록과 상기 후속 블록으로부터 연속한 블록을 포함하는 복수의 블록이고,
상기 제2 블록 결정부는 상기 블록체인 관리부에 의해 상기 적어도 하나의 블록이 삭제되는 경우, 상기 적어도 하나의 블록을 제외한 상기 하나 이상의 블록으로부터 상기 제2 블록을 결정하고,
상기 블록체인 관리부는 상기 제2 블록 결정부에 의해 의한 상기 제2 블록의 결정에 응답하여, 블록체인을 갱신하는 것인, 블록체인 관리 장치. - 삭제
- 제5항에 있어서,
상기 블록체인 네트워크부는 상기 블록체인 관리부에 의한 적어도 하나의 블록의 삭제에 관한 정보를 상기 블록체인 네트워크에 전송하는 것인 블록체인 관리 장치. - 제5항에 있어서,
상기 제2 블록 결정부는
상기 블록체인 내 상기 제네시스 블록 및 상기 삭제된 적어도 하나의 블록을 제외한 상기 하나 이상의 블록을 식별하고;
상기 삭제된 적어도 하나의 블록을 제외한 상기 하나 이상의 블록 각각의 이전 블록 해시 값에 기초하여, 해당 블록의 이전 블록을 식별함으로써 상기 하나 이상의 블록을 연결시키며; 그리고
소정의 블록의 이전 해시 값에 의해 상기 소정의 블록의 이전 블록이 식별되지 않고, 연결되지 않은 상기 블록체인 내 블록이 상기 제네시스 블록만 남는 경우, 상기 소정의 블록을 제2 블록으로서 결정하는 것인, 블록체인 관리 장치. - 제5항에 있어서,
상기 블록 생성부에 의해 생성되는 블록의 블록 헤더는 블록 깊이 값을 더 포함하고,
상기 제2 블록 결정부는 상기 블록 깊이 값에 기초하여 상기 제2 블록을 결정하는 것인, 블록체인 관리 장치. - 블록체인 관리 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 블록체인 관리 프로그램은 컴퓨팅 장치에 의하여 실행되는 경우,
제네시스 블록(genesis block) 및 하나 이상의 블록을 포함하는 블록체인에 관한 데이터가 소정의 조건을 만족한다고 결정하는 동작- 상기 하나 이상의 블록 각각의 블록 헤더는 이전 블록 해시 값 및 상기 제네시스 블록의 블록 해시 값인 제네시스 해시 값을 포함함 -;
상기 결정하는 동작에 응답하여, 상기 하나 이상의 블록 중 적어도 하나의 블록을 상기 블록체인으로부터 삭제하는 동작 - 상기 적어도 하나의 블록은 상기 제네시스 블록에 후속하는 후속 블록, 또는 상기 후속 블록과 상기 후속 블록으로부터 연속한 블록을 포함하는 복수의 블록임 -;
상기 블록체인에 관한 데이터를 분석하여, 상기 적어도 하나의 블록을 제외한 상기 하나 이상의 블록으로부터 제네시스 블록에 후속하는 제2 블록을 결정하는 동작; 및
상기 제2 블록의 제네시스 해시 값에 의해 식별되는 상기 제네시스 블록을 상기 제2 블록의 이전 블록으로서 식별하는 동작
을 수행하도록 하는 하나 이상의 명령어를 포함하는 것인, 컴퓨터 판독가능 저장 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200055609A KR102416336B1 (ko) | 2020-05-11 | 2020-05-11 | 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200055609A KR102416336B1 (ko) | 2020-05-11 | 2020-05-11 | 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210137612A KR20210137612A (ko) | 2021-11-18 |
KR102416336B1 true KR102416336B1 (ko) | 2022-07-08 |
Family
ID=78717299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200055609A KR102416336B1 (ko) | 2020-05-11 | 2020-05-11 | 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102416336B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102569470B1 (ko) * | 2021-12-13 | 2023-08-23 | 주식회사 컴퍼니위 | 마이크로 블록체인 기반 센서 네트워크의 정보관리시스템 |
-
2020
- 2020-05-11 KR KR1020200055609A patent/KR102416336B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
Shrestha, Rakesh, et al. "A new type of blockchain for secure message exchange in VANET." 數字通信和網絡 6.2 177-186. (2019.04.26. 공개)* |
Also Published As
Publication number | Publication date |
---|---|
KR20210137612A (ko) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
O'Donoghue et al. | Design choices and trade-offs in health care blockchain implementations: systematic review | |
US10698885B2 (en) | Method and device for writing service data in block chain system | |
JP6955026B2 (ja) | 並列処理ブロックチェーントランザクションのためのシステムおよび方法 | |
CN107577427B (zh) | 用于区块链系统的数据迁移方法、设备和存储介质 | |
US10592873B2 (en) | Edit transactions for blockchains | |
CN111344706B (zh) | 管理区块链上的交易的方法和系统 | |
US10331497B2 (en) | Software bot conflict-resolution service agent | |
US20180121909A1 (en) | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing | |
US11115804B2 (en) | Subscription to dependencies in smart contracts | |
US10983913B2 (en) | Securing exclusive access to a copy of a metadata track via a process while the metadata track is held in a shared mode by another process | |
CN106415586A (zh) | 已配置的结构数据的快速访问权利检查 | |
JP2020531949A (ja) | ブロックチェーン内のデータベース・ハッシュコードの遅延更新 | |
WO2021164194A1 (zh) | 一种基于区块链的积分管理方法及相关装置 | |
WO2023051308A1 (zh) | 数据校验方法、装置、设备及存储介质 | |
KR102416336B1 (ko) | 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US11290397B2 (en) | Systems and methods for efficiently storing a distributed ledger of records | |
US11314649B2 (en) | Using a machine learning module to perform destages of tracks with holes in a storage system | |
US11606442B2 (en) | Subscription to edits of blockchain transaction | |
CN111857883B (zh) | 页面数据校验方法、装置、电子设备及存储介质 | |
JP2016045594A (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
KR102416337B1 (ko) | 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US9268960B2 (en) | Moderation of shared data objects | |
US11170000B2 (en) | Parallel map and reduce on hash chains | |
Liao et al. | BCDP: a blockchain-based credible data publishing system | |
KR102675958B1 (ko) | 암호화폐 전송과 스마트 계약의 병렬 계산을 위한 계층적 다중 블록체인 방법과 그 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |