KR20190093011A - 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 - Google Patents
보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 Download PDFInfo
- Publication number
- KR20190093011A KR20190093011A KR1020180012429A KR20180012429A KR20190093011A KR 20190093011 A KR20190093011 A KR 20190093011A KR 1020180012429 A KR1020180012429 A KR 1020180012429A KR 20180012429 A KR20180012429 A KR 20180012429A KR 20190093011 A KR20190093011 A KR 20190093011A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- hash value
- data
- main
- main block
- Prior art date
Links
Images
Classifications
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- 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
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법이 제공된다. 상기 보안성이 강화된 블록 체인 시스템은 블록 체인 시스템에서 전송되는 데이터 블록들로서, 트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록, 상기 제1 메인 블록의 해시(hash) 값에 기초하여 상기 제1 메인 블록과 연결된 제2 메인 블록, 상기 제1 메인 블록의 해시 값과 제1 데이터를 포함하고, 상기 제1 메인 블록과 연결된 제1 서브 블록, 및 상기 제2 메인 블록의 해시 값과 제2 데이터를 포함하고, 상기 제2 메인 블록 및 상기 제1 서브 블록과 연결된 제2 서브 블록을 포함하고, 상기 제2 데이터는 상기 제1 데이터와 상기 제2 메인 블록에 포함된 데이터에 기초하여 생성된다.
Description
본 발명은 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법에 관한 것이다.
블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록 체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록 체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.
본 발명이 해결하고자 하는 기술적 과제는, 기존의 블록 체인과 이를 보완하는 서브 블록 체인이 연결된 이중 블록 체인 구조를 구현하여, 전체 블록 체인에 대해서 어떤 위치에 배치된 블록이라도 일정 수준의 보안성을 유지할 수 있도록 하는 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 기술적 과제들은 상기 과제로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 보안성이 강화된 블록 체인 시스템은 블록 체인 시스템에서 전송되는 데이터 블록들로서, 트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록, 상기 제1 메인 블록의 블록 해시(hash) 값에 기초하여 상기 제1 메인 블록과 연결된 제2 메인 블록, 상기 제1 메인 블록의 해시 값과 제1 데이터를 포함하고, 상기 제1 메인 블록과 연결된 제1 서브 블록, 및 상기 제2 메인 블록의 해시 값과 제2 데이터를 포함하고, 상기 제2 메인 블록과 상기 제1 서브 블록과 연결된 제2 서브 블록을 포함하고, 상기 제2 데이터는 상기 제1 데이터와 상기 제2 메인 블록에 포함된 데이터에 기초하여 생성된다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 메인 블록과 상기 제2 메인 블록은 제1 블록 체인을 구성하고, 상기 제1 서브 블록과 상기 제2 서브 블록은 상기 제1 블록 체인과 다른 제2 블록 체인을 구성할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 데이터는 암호화된 제1 누적 해시 값을 포함하고, 상기 제2 데이터는 암호화된 제2 누적 해시 값을 포함할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제2 누적 해시 값은 상기 제1 누적 해시 값과 상기 제2 메인 블록의 해시 값에 기초하여 생성될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제2 누적 해시 값의 생성 난이도를 조절가능할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 데이터는 노드별 고유번호에 관한 정보를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 보안성이 강화된 블록 체인 시스템은, 후단에 위치한 블록일수록 위/변조 난이도가 쉬운 블록들의 연결관계가 정의된 메인 블록 체인, 및 후단에 위치한 블록일수록 위/변조 난이도가 어려운 블록들의 연결관계가 정의된 서브 블록 체인을 포함하고, 상기 메인 블록 체인과 상기 서브 블록 체인은 상응하는 블록들끼리 서로 연결된다.
본 발명에 따른 몇몇 실시예에서, 상기 서브 블록 체인에 포함된 블록들은 각각 바로 앞 블록의 누적 해시 값을 기초로 하여 생성되는 정보를 포함할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 서브 블록 체인 내의 최초의 블록은 노드별 고유번호 정보를 포함할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 서브 블록 체인 내의 블록들은 각각 상기 메인 블록 체인 내의 상응하는 블록에 대한 해시 값 정보를 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 이중 블록 체인 구조를 이용한 데이터 블록 생성방법은, 트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록을 생성하는 단계, 노드별 고유번호 정보와 상기 제1 메인 블록의 블록 해시 값에 기초하여 생성된 제1 데이터를 포함하고, 상기 제1 메인 블록과 연결된 제1 서브 블록을 생성하는 단계, 상기 제1 메인 블록의 블록 해시 값에 기초하여 상기 제1 메인 블록과 연결된 제2 메인 블록을 생성하는 단계, 및 상기 제1 서브 블록의 제1 데이터와 상기 제2 메인 블록의 블록 해시 값에 기초하여 생성된 제2 데이터를 포함하고, 상기 제2 메인 블록과 상기 제1 서브 블록에 연결된 제2 서브 블록을 생성하는 단계를 포함한다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 메인 블록과 상기 제2 메인 블록은 제1 블록 체인을 구성하도록 연결되고, 상기 제1 서브 블록과 상기 제2 서브 블록은 상기 제1 블록 체인과 다른 제2 블록 체인을 구성하도록 연결될 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 데이터는 암호화된 제1 누적 해시 값을 포함하고, 상기 제2 데이터는 암호화된 제2 누적 해시 값을 포함할 수 있다.
본 발명에 따른 몇몇 실시예에서, 상기 제1 누적 해시 값 또는 상기 제2 누적 해시 값의 생성 난이도를 조절 가능할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면 기존의 블록 체인과 이를 보완하는 서브 블록 체인을 서로 연결하여 이중 블록 체인 구조를 형성하며, 전체 블록 체인에 대하여 어떠한 위치에 배치된 블록이라도 일정 수준의 보안성을 유지할 수 있다.
본 발명에 따르면 이중 블록 체인 구조에서 새로 생성되는 서브 블록 체인내의 서브 블록은 기존의 블록 체인 내의 블록 해시 값과 바로 앞 서브 블록의 누적 해시 값을 기초로 하여 생성된 누적 해시 값을 포함하므로 블록 체인 생성 속도에는 영향을 거의 미치지 않는다.
본 발명에 따르면 해당 노드 내에서의 블록 체인 검증을 위해 서브 블록 체인을 생성하므로 블록 체인에서 사용하는 합의 알고리즘에 포함되지 않아 이와 관련된 속도에는 영향을 거의 미치지 않는다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4 및 도 5는 기존의 블록 체인 시스템에서의 블록 체인의 취약점을 설명하기 위한 도면들이다.
도 6은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에 관하여 도시한 도면이다.
도 7은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서 블록의 위/변조 과정을 설명하기 위한 도면이다.
도 8은 본 발명이 적용된 경우에 블록 체인 시스템의 보안성에 관한 정도를 도시한 그래프이다.
도 9는 본 발명의 실시예에 따른 이중 블록 체인 구조를 이용하여 데이터 블록을 생성하는 방법을 순차적으로 나타낸 흐름도이다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 4 및 도 5는 기존의 블록 체인 시스템에서의 블록 체인의 취약점을 설명하기 위한 도면들이다.
도 6은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에 관하여 도시한 도면이다.
도 7은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서 블록의 위/변조 과정을 설명하기 위한 도면이다.
도 8은 본 발명이 적용된 경우에 블록 체인 시스템의 보안성에 관한 정도를 도시한 그래프이다.
도 9는 본 발명의 실시예에 따른 이중 블록 체인 구조를 이용하여 데이터 블록을 생성하는 방법을 순차적으로 나타낸 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 기술적 사상이 적용될 수 있는 블록 체인을 이용한 분산 처리 시스템을 도시한 도면이다.
도 1을 참조하면 블록 체인을 이용한 분산 처리 시스템(100)은 복수의 노드들(110-170)로 이루어진 분산형 네트워크(distributed network) 시스템이다. 상기 분산형 네트워크(100)를 구성하는 노드들(110-170)은 컴퓨터, 이동 단말기, 전용 전자 장치 등 연산 능력이 있는 전자 장치일 수 있다.
일반적으로 분산형 네트워크(100)는 블록 체인(block chain)이라 불리는 블록(block)의 연결 묶음 내에 모든 참여 노드에 공통으로 알려진 정보를 저장하고 참조할 수 있다. 상기 노드들(110-170)은 상호간 통신이 가능하며 블록 체인을 저장, 관리 및 전파를 담당하는 완전 노드(full node)와 단순하게 트랜잭션에만 참여할 수 있는 간이 노드(light node)로 구분될 수 있다. 본 명세서에서 별다른 설명 없이 노드에 대하여 언급되는 경우, 이는 분산형 네트워크에 참여하며 블록 체인을 생성, 저장 또는 검증하는 동작을 수행하는 완전 노드를 지칭하는 경우가 많으나, 이에 한정되는 것은 아니다.
상기 블록 체인에 연결되어 있는 각 블록(block)들은 일정 기간 내의 거래 내역, 즉 트랜잭션(transaction)들을 포함한다. 상기 노드들은 각각 역할에 따라 블록 체인을 생성, 저장 또는 검증함으로써 트랜잭션들을 관리할 수 있다.
실시 형태에 따라 상기 트랜잭션은 다양한 형태의 거래를 나타낼 수 있다. 일 실시예에서 상기 트랜잭션은 가상 화폐의 소유 상태 및 그 변동을 나타내기 위한 금융 거래에 해당할 수 있다. 다른 실시예에서 상기 트랜잭션은 물건의 소유 상태 및 그 변동을 나타내기 위한 실물 거래에 해당할 수 있다. 상기 분산형 네트워크(100)에서 거래를 수행하는 노드들은 각각의 암호학적 연관관계가 있는 개인키(private key) 및 공개키(public key) 쌍을 가질 수 있다.
도 2 및 도 3은 블록 체인 시스템에서 이용되는 블록의 연결을 도시한 블록도이다.
도 2를 참조하면 블록 체인(200)은 순차적으로 연결된 하나 이상의 블록들(210, 220, 230)의 분산 데이터베이스의 일종이다. 상기 블록 체인(200)은 블록 체인 시스템 내 사용자의 거래 내역을 저장하고 관리하기 위해 사용되며, 상기 블록 체인 시스템의 네트워크에 참여하는 각 노드가 블록을 생성하여 상기 블록 체인(200)에 연결한다. 도 2에는 제한된 수의 블록들(210, 220, 230)이 도시되어 있으나 블록 체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.
상기 블록 체인(200)에 포함된 각 블록은 블록 헤더(211)와 블록 바디(213)를 포함하도록 구성될 수 있다. 상기 블록 헤더(211)는 각 블록들간의 연결 관계를 나타내기 위하여 이전 블록(220)의 해시 값을 포함할 수 있다. 상기 블록 체인(200)이 유효한지 검증하는 과정에서 상기 블록 헤더(211) 내의 연결 관계가 사용된다. 상기 블록 바디(213)는 상기 블록(210)에 저장되고 관리되는 데이터, 예를 들어 트랜잭션 리스트 또는 트랜잭션 체인을 포함할 수 있다.
도 3을 참조하면, 상기 블록 헤더(211)는 이전 블록의 해시(2112), 넌스(Nonce)(2114)를 포함할 수 있다. 또한, 상기 블록 헤더(211)는 블록 내의 트랜잭션 리스트의 헤더를 나타내는 루트(2115)를 포함할 수 있다.
전술된 바와 같이, 상기 블록 체인(200)은 연결된 하나 이상의 블록들을 포함할 수 있다. 상기 하나 이상의 블록들은 상기 블록 해시 값에 기초하여 연결된다. 상기 블록 헤더(211)에 포함된 이전 블록의 해시 값(2112)은 직전 블록(220)에 대한 해시 값으로서 직전 블록(220)에 포함된 현재 해시(2213)와 동일한 값이다. 상기 하나 이상의 블록들은 각 블록 헤더 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 상기 분산형 네트워크에 참여하는 노드들은 상기 하나 이상의 블록들에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.
상기 블록 바디(213)는 트랜잭션 리스트(2131)를 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 블록 체인 기반의 거래의 목록이다. 예를 들면, 상기 트랜잭션 리스트(2131)는 상기 블록 체인 기반의 금융 시스템에서 이루어진 금융 거래에 대한 기록을 포함할 수 있다. 상기 트랜잭션 리스트(2131)는 트리(tree) 형태로 표현될 수 있으며, 예를 들어, 사용자 A가 사용자 B에게 전송한 금액을 목록 형태로 기록하며, 블록 내의 저장 길이는 현재 블록에 포함된 트랜잭션의 수에 기초하여 증감될 수 있다.
그리고, 블록(210)은 블록 헤더(211)와 블록 바디(213)에 포함된 정보 이외의 기타 정보(2116)를 포함할 수 있다.
분산형 네트워크에 참여하는 노드들은 동일한 블록 체인을 가지며, 블록에는 동일한 트랜잭션이 저장된다. 트랜잭션 목록이 포함된 블록이 네트워크에 공유되므로 모든 참여자가 검증할 수 있다.
도 4 및 도 5는 기존의 블록 체인 시스템에서의 블록 체인의 취약점을 설명하기 위한 도면들이다.
블록 체인 기술은 높은 보안성을 가진 기술이며, 해킹에 의한 공격이 사실상 불가능한 기술이다. 이러한 블록 체인 기술의 보안성은 각 블록 안에 이전 블록에 관한 해시(hash) 값을 가지고 있기 때문에 가능하다. 해시 값은 해당 내역의 일부분만 변경되어도 블록 해시 전체 값이 변경되기 때문에 해당 블록 내용이 변경되었는지의 여부는 해당 블록의 해시 값과 다음 블록에 있는 이전 블록의 해시 값을 비교하면 된다.
만약 위/변조를 하고 싶은 블록이 있다면 그 내용만 변경하면 되는 것이 아니라, 이로 인해 변경된 해당 블록의 해시 값을 다음 블록에 있는 이전 블록 해시 값 장소에 변경해 놓아야 한다. 문제는 이렇게 다음 블록에 해당 내역을 저장할 경우 다음 블록 내용이 변경되고 이에 따라 변경된 다음 블록 해시 값을 또다시 그 다음 블록에 있는 이전 블록 해시 값에 변경해 놓아야 하고 이 같은 작업을 마지막 블록까지 이어서 해야 하는데, 이 작업이 적어도 51% 이상의 노드들에서 동시에 새로운 블록이 생성되기 전에 완료되어야 하기 때문에 사실상 해킹에 의한 공격이 불가능한 것이다.
하지만 모든 블록의 보안성이 같은 수준을 유지하고 있는 것이 아니다. 블록 체인의 기술 특성상 최초로 만들어진 블록을 포함하여 체인 앞쪽에 위치한 블록들은 보안성을 보장해주는 블록들이 뒤쪽에 많이 존재하기 때문에 매우 높은 보안성을 유지하고 있지만, 뒤쪽 블록으로 갈수록 보안성을 보장해주는 블록의 개수가 적어지며, 특히나 마지막 블록의 경우 어떤 블록도 그 보안성을 보장해주지 못하고 있기 때문에 다른 블록에 비해 상대적으로 보안성이 취약하다.
따라서, 블록의 위치면에서 볼 때 최초 블록의 보안 수준과 마지막 블록의 보안 수준은 상당한 차이가 있다.
현재 사용되는 블록 체인 기술은 보안성 자체가 가장 중요한 요소이기 때문에 작은 보안상의 취약성이라도 매우 심각한 문제를 야기시킬 수 있다. 따라서, 본 발명에 따른 기술적 사상은 상기의 문제점을 보완할 수 있는 블록 체인 구조를 구현하여 보다 강력한 블록 체인의 보안성을 제공하고자 한다.
도 6은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에 관하여 도시한 도면이다.
도 6을 참조하면, 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조는 메인 블록 체인(1000)과 서브 블록 체인(2000)을 포함한다. 메인 블록 체인(1000) 내의 하나의 메인 블록(1001)은 서브 블록 체인(2000) 내의 대응되는 서브 블록(2001)을 갖는다. 도 6에 도시된 이중 블록 체인 구조에서는 상술한 블록 체인의 보안상의 문제점을 해소할 수 있다. 앞서 언급한 것과 같이 기존의 블록 체인 구조는 뒤쪽으로 갈수록 상대적으로 보안성이 취약하다. 이는 위/변조를 위해 변경해야 할 블록수가 상대적으로 적어지기 때문이다.
물론 기존에 많은 노드들을 보유하고 있는 블록 체인의 경우라면 뒤쪽이라도 노드수만큼 블록의 수 자체가 많기 때문에 뒤쪽 블록이라도 위/변조가 어렵겠지만, 그렇지 않은 블록 체인의 경우 상대적으로 취약한 뒤쪽 블록의 보안이 문제가 될 수 있다. 그렇기 때문에 뒤쪽 블록으로 갈수록 보안을 유지시켜주는 블록수가 상대적으로 적어지는 기존의 블록 체인 구조를 보완할 새로운 블록 체인 구조가 필요하다. 기존의 블록 체인 구조는 설계 자체가 뒤쪽 블록에서 앞쪽 블록의 보안성을 보장하도록 구성되어 있기 때문에 기존 블록 체인 구조로는 이 문제를 해결할 수가 없다. 따라서, 본 발명에 따른 기술적 사상에서 적용된 이중 블록 체인 구조는 기존의 블록 체인 구조를 보완할 새로운 서브 블록 체인 구조를 제안한다.
본 발명에서 제안하는 블록 체인 구조는 기존의 블록 체인 구조에 위에서 제시된 문제를 해결할 수 있는 새로운 블록 체인 구조를 추가하는 이중 블록 체인 구조이다. 이때 새로 추가된 블록 체인 구조는 기존의 블록 체인과는 달리 뒤쪽 블록으로 갈수록 보안성을 높이는 방안을 채택한다.
도 6에서는 기존의 블록 체인 구조가 메인 블록 체인(1000)으로 도시되고, 새롭게 추가된 블록 체인 구조는 서브 블록 체인(2000)으로 도시된다.
기존의 블록 체인 구조가 뒤쪽 블록으로 갈수록 위/변조 해야 할 블록수가 적어져서 보안상에 문제가 될 수 있기 때문에, 본 발명에 따른 이중 블록 체인 구조에서는 이를 보완하여 뒤쪽 블록으로 갈수록 해당 블록의 위/변조를 위해 해야 할 일(계산해야 할 양)이 더 많아지는 구조를 채택한다.
도 6을 참조하면, 메인 블록 체인(1000)에는 제1 메인 블록(1001)과 제2 메인 블록(1002)을 포함하는 복수 개의 메인 블록들을 포함하며, 서브 블록 체인(2000)에는 제1 서브 블록(2001)과 제2 서브 블록(2002)을 포함하는 복수 개의 서브 블록들을 포함한다.
우선, 제1 메인 블록(1001), 제2 메인 블록(1002)과 제1 서브 블록(2001), 제2 서브 블록(2002) 사이의 연결관계에 대하여 설명한다.
제1 메인 블록(1001), 제2 메인 블록(1002) 등 메인 블록들은 트랜잭션(transaction) 데이터를 포함한다. 여기에서, 제2 메인 블록(1002)은 임의의 제1 메인 블록(1001)의 다음 블록으로 정의한다.
제2 메인 블록(1002)은 제1 메인 블록(1001)의 블록 해시(hash) 값에 기초하여 제1 메인 블록(1001)과 연결된다. 마찬가지로 다음 블록들은 이전 블록의 해시 값에 기초하여 이전 블록과 연결되어 체인 구조를 형성한다.
제1 서브 블록(2001)은 제1 메인 블록(1001)의 해시 값과 제1 데이터(D1)를 포함하고, 제1 메인 블록(1001)과 연결된다. 제1 서브 블록(2001)은 제1 메인 블록(1001)의 해시 값에 기초하여 제1 메인 블록(1001)과 연결될 수 있다. 예를 들어, 제1 서브 블록(2001)에는 제1 데이터(D1)를 포함할 수 있으며, 제1 데이터(D1)에는 제1 메인 블록(1001)의 해시 값과 제1 누적 해시(D12) 값을 포함할 수 있다.
제2 서브 블록(2002)은 제2 메인 블록(1002)의 해시 값과 제2 데이터(D2)를 포함하고, 제2 메인 블록(1002)과 연결된다. 제2 서브 블록(2002)은 제2 메인 블록(1002)의 해시 값에 기초하여 제2 메인 블록(1002)과 연결될 수 있다. 예를 들어, 제2 서브 블록(2002)에는 제2 데이터(D2)를 포함할 수 있으며, 제2 데이터(D2)에는 제2 메인 블록(1002)의 해시 값과 제2 누적 해시(D22) 값을 포함할 수 있다.
예를 들어, 제2 서브 블록(2002)의 블록 바디에는 제2 데이터(D2)를 포함할 수 있는데, 제2 데이터(D2)는 제1 서브 블록(2001)의 블록 바디에 포함된 제1 데이터(D1)와 제2 메인 블록(1002)에 포함된 데이터(예를 들어, 제2 메인 블록(1002)의 해시 값)에 기초하여 생성될 수 있다. 여기에서, 제1 데이터(D1)는 암호화된 제1 누적 해시 값을 포함하고, 제2 데이터(D2)는 암호화된 제2 누적 해시 값을 포함할 수 있다. 상기 제2 누적 해시 값은 상기 제1 누적 해시 값과 상기 제2 메인 블록(1002)의 해시 값에 기초하여 생성될 수 있다. 즉, 누적 해시 값은 구해진 해시 값을 다시 암호화된 상태로 저장하여 일반 사용자가 확인할 수 없도록 한다.
또한, 제1 데이터(D1)는 노드별 고유번호에 관한 정보를 포함할 수 있다. 이는 노드에 연결된 최초의 서브 블록인 경우에 포함되는 정보이다.
본 발명에 따른 실시예에서, 제2 누적 해시 값의 생성 난이도는 조절 가능하다.
도 7은 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서 블록의 위/변조 과정을 설명하기 위한 도면이다.
도 6 및 도 7을 참조하면, 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서는, 서브 블록 체인(2000)은 메인 블록 체인(1000)에서 가져온 블록 해시 값과 해당 블록의 누적 해시 값으로 생성된 서브 블록들이 연결된 체인이다. 누적 해시 값은 앞 블록의 누적 해시 값과 해당 메인 블록의 해시 값으로 생성될 수 있다. 여기에서 누적 해시 값은 그 값 자체를 다시 암호화하여 저장하며, 이를 외부에서 일반 사용자가 확인할 수 없도록 한다.
서브 블록 체인(2000)은 최초로 생성될 때 각 노드에게 할당된 고유의 일련번호에 의해 최초의 서브 블록이 생성되기 때문에 서로 다른 노드에 연결된 서브 블록들의 누적 해시 값은 서로 다르게 생성된다.
이렇게 생성된 누적 해시 값은 노드 자체에서 메인 블록 체인(1000)을 검증하는데 사용되는데, 메인 블록의 해시 값과 이전 누적 해시 값에 의해 계산된 값이 서브 블록에 저장된 누적 해시 값과 같은지 여부로 메인 블록의 내용이 위/변조되었는지를 검증할 수 있다.
도 7을 참조하면, 만약 마지막 메인 블록의 내용이 변경되었다면 해당 메인 블록의 해시 값이 바뀌게 되고, 이 경우 변경된 메인 블록의 해시 값과 이전 블록의 누적 해시 값의 계산 값이 서브 블록에 저장된 누적 해시 값과 다르게 된다. 따라서, 해당 메인 블록의 위/변조를 위해서는 연결된 서브 블록에 저장된 누적 해시 값도 변경해야 한다.
이를 위해서는 해당 서브 블록의 이전 누적 해시 값을 알아야 하는데 이 이전 누적 해시 값은 이미 암호화되어 저장되어있기 때문에 이를 알기 위해서는 바로 앞 서브 블록의 누적 해시 값을 알아야 하고, 이 역시도 암호화되어 있기 때문에 다시 그 바로 앞 블록의 누적 해시 값 순으로 알아야 할 필요가 있다. 결국에는, 최초 노드별 고유번호로부터 다시 재계산해서 알아내야 한다. 이는 결국 뒤쪽에 있는 서브 블록일수록 해당 누적 해시 값을 알기 위해서는 더 많은 반복 계산 작업을 해야 한다는 의미이다.
그런데 위의 작업은 하나의 노드에서 수행되어야 하는 작업을 보여준 것이고, 앞서 언급한 것과 같이 누적 해시 값은 모든 노드에 대해 각각의 고유번호로 시작하기 때문에 모든 노드들에 대해서 해당 노드에 맞게 따로 따로 누적 해시 값을 구하는 작업을 수행해야 한다.
상술한 바에 따르면, 누적 해시 값을 생성하는 방법을 단순히 해당 메인 블록의 해시 값과 앞쪽 서브 블록의 누적 해시 값에 기초하여 생성되는 것으로 예를 들었는데, 누적 해시 값의 생성 난이도(누적 해시 생성 시간)를 높임으로써 위/변조 작업시간에 더 많은 시간이 소요되도록 할 수 있다. 다만, 누적 해시 값의 생성 난이도를 너무 높이면 블록 생성작업 시간에 영향을 미칠 수 있기 때문에 적절한 수준으로 난이도 조절이 필요하다.
도 8은 본 발명이 적용된 경우에 블록 체인 시스템의 보안성에 관한 정도를 도시한 그래프이다.
도 8을 참조하면, 본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서는 메인 블록 체인의 보안성과 서브 블록 체인의 보안성이 결합되어 적용되기 때문에, 뒤쪽에 위치한 블록에 대해서도 위/변조에 대한 보안성이 일정 수준을 유지할 수 있게 된다.
본 발명에 따른 기술적 사상이 적용된 이중 블록 체인 구조에서, 서브 블록 체인에 포함되는 서브 블록들의 누적 해시 값을 앞쪽 서브 블록의 누적 해시 값을 기초로 생성하는 이유는 누적 해시 값의 보호 때문이다. 해당 서브 블록의 누적 해시 값을 보장해주는 것이 앞쪽 서브 블록의 누적 해시 값인데, 해당 서브 블록의 누적 해시 값을 위/변조하기 위해 이전 누적 해시 값을 위/변조할 경우 앞쪽 서브 블록의 누적 해시 값과의 검증 과정에서 값이 서로 위배되기 때문에 해당 서브 블록의 이전 누적 해시 값뿐만 아니라 앞쪽의 모든 서브 블록들의 누적 해시 값을 변경해야 한다. 따라서, 기존의 블록 체인과 이를 보완하는 서브 블록 체인의 이중 블록 체인 구조는 전체 블록 체인에 대해서 어떤 위치의 블록이라도 일정 수준의 보안성을 유지할 수 있도록 한다.
이러한 이중 블록 체인 구조에서 새로 만들어지는 누적 해시 값은 기존의 메인 블록의 해시 값과 바로 앞 서브 블록의 누적 해시 값으로 생성되기 때문에 블록 체인 생성 속도에는 영향을 거의 주지 않으며, 해당 블록이 속한 노드내에서의 블록 체인 검증을 위해서 생성하는 것이기 때문에 블록 체인에서 사용하는 합의 알고리즘에 포함되지 않아서 이와 관련된 속도에도 영향을 거의 미치지 않는다.
도 9는 본 발명의 실시예에 따른 이중 블록 체인 구조를 이용하여 데이터 블록을 생성하는 방법을 순차적으로 나타낸 흐름도이다.
도 9를 참조하면, 본 발명의 실시예에 따른 데이터 블록 생성방법은 우선, 트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록(1001)을 생성하고(S100), 상기 제1 메인 블록(1001)과 연결되는 제1 서브 블록(2001)을 생성한다(S110). 이때, 제1 서브 블록(2001)은 노드별 고유번호 정보와 상기 제1 메인 블록(1001)의 해시 값에 기초하여 생성된 제1 데이터(D1)를 포함한다.
그리고, 제2 메인 블록(1002)을 생성하며(S120), 상기 제2 메인 블록(1002)은 상기 제1 메인 블록(1001)의 해시 값에 기초하여 상기 제1 메인 블록(1001)과 연결된다.
상기 제2 메인 블록(1002)과 연결된 제2 서브 블록(2002)을 생성하며(S130), 상기 제2 서브 블록(2002)은 상기 제1 데이터(D1)와 상기 제2 메인 블록(1002)의 해시 값에 기초하여 생성된 제2 데이터(D2)를 포함한다.
여기에서, 메인 블록 체인(1000)은 제1 메인 블록(1001)과 제2 메인 블록(1002)을 포함하는 복수 개의 메인 블록들을 포함하며, 서브 블록 체인(2000)은 제1 서브 블록(2001)과 제2 서브 블록(2002)을 포함하는 복수 개의 서브 블록들을 포함한다.
상기 제1 데이터(D1)는 암호화된 제1 누적 해시 값을 포함하고, 상기 제2 데이터(D2)는 암호화된 제2 누적 해시 값을 포함하며, 필요에 따라 상기 제1 누적 해시 값 또는 상기 제2 누적 해시 값의 생성 난이도를 적절하게 조절할 수 있다.
전술된 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 특허청구범위에 의해 나타내어질 것이다. 그리고 이 특허청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변경 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 메인 블록 체인
1001: 제1 메인 블록
1002: 제2 메인 블록
2000: 서브 블록 체인
2001: 제1 서브 블록
2002: 제2 서브 블록
1001: 제1 메인 블록
1002: 제2 메인 블록
2000: 서브 블록 체인
2001: 제1 서브 블록
2002: 제2 서브 블록
Claims (14)
- 블록 체인 시스템에서 전송되는 데이터 블록들로서,
트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록;
상기 제1 메인 블록의 해시(hash) 값에 기초하여 상기 제1 메인 블록과 연결된 제2 메인 블록;
상기 제1 메인 블록의 해시 값과 제1 데이터를 포함하고, 상기 제1 메인 블록과 연결된 제1 서브 블록; 및
상기 제2 메인 블록의 해시 값과 제2 데이터를 포함하고, 상기 제2 메인 블록 및 상기 제1 서브 블록과 연결된 제2 서브 블록;을 포함하고,
상기 제2 데이터는 상기 제1 데이터와 상기 제2 메인 블록에 포함된 데이터에 기초하여 생성된, 보안성이 강화된 블록 체인 시스템. - 제 1항에 있어서,
상기 제1 메인 블록과 상기 제2 메인 블록은 제1 블록 체인을 구성하고, 상기 제1 서브 블록과 상기 제2 서브 블록은 상기 제1 블록 체인과 다른 제2 블록 체인을 구성하는, 보안성이 강화된 블록 체인 시스템. - 제 1항에 있어서,
상기 제1 데이터는 암호화된 제1 누적 해시 값을 포함하고, 상기 제2 데이터는 암호화된 제2 누적 해시 값을 포함하는, 보안성이 강화된 블록 체인 시스템. - 제 3항에 있어서,
상기 제2 누적 해시 값은 상기 제1 누적 해시 값과 상기 제2 메인 블록의 해시 값에 기초하여 생성된, 보안성이 강화된 블록 체인 시스템. - 제 4항에 있어서,
상기 제2 누적 해시 값의 생성 난이도를 조절가능한, 보안성이 강화된 블록 체인 시스템. - 제 1항에 있어서,
상기 제1 데이터는 노드별 고유번호에 관한 정보를 포함하는, 보안성이 강화된 블록 체인 시스템. - 후단에 위치한 블록일수록 위/변조 난이도가 쉬운 블록들의 연결관계가 정의된 메인 블록 체인; 및
후단에 위치한 블록일수록 위/변조 난이도가 어려운 블록들의 연결관계가 정의된 서브 블록 체인;을 포함하고,
상기 메인 블록 체인과 상기 서브 블록 체인은 상응하는 블록들끼리 서로 연결된, 보안성이 강화된 블록 체인 시스템. - 제 7항에 있어서,
상기 서브 블록 체인에 포함된 블록들은 각각 바로 앞 블록의 누적 해시 값을 기초로 하여 생성되는 정보를 포함하는, 보안성이 강화된 블록 체인 시스템. - 제 7항에 있어서,
상기 서브 블록 체인 내의 최초의 블록은 노드별 고유번호 정보를 포함하는, 보안성이 강화된 블록 체인 시스템. - 제 7항에 있어서,
상기 서브 블록 체인 내의 블록들은 각각 상기 메인 블록 체인 내의 상응하는 블록에 대한 해시 값 정보를 포함하는, 보안성이 강화된 블록 체인 시스템. - 트랜잭션(transaction) 데이터를 포함하는 제1 메인 블록을 생성하는 단계;
노드별 고유번호 정보와 상기 제1 메인 블록의 해시 값에 기초하여 생성된 제1 데이터를 포함하고, 상기 제1 메인 블록과 연결된 제1 서브 블록을 생성하는 단계;
상기 제1 메인 블록의 해시 값에 기초하여 상기 제1 메인 블록과 연결된 제2 메인 블록을 생성하는 단계; 및
상기 제1 데이터와 상기 제2 메인 블록의 해시 값에 기초하여 생성된 제2 데이터를 포함하고, 상기 제2 메인 블록 및 상기 제1 서브 블록과 연결된 제2 서브 블록을 생성하는 단계;를 포함하는, 이중 블록 체인 구조를 이용한 데이터 블록 생성방법. - 제 11항에 있어서,
상기 제1 메인 블록과 상기 제2 메인 블록은 제1 블록 체인을 구성하도록 연결되고,
상기 제1 서브 블록과 상기 제2 서브 블록은 상기 제1 블록 체인과 다른 제2 블록 체인을 구성하도록 연결된, 이중 블록 체인 구조를 이용한 데이터 블록 생성방법. - 제 11항에 있어서,
상기 제1 데이터는 암호화된 제1 누적 해시 값을 포함하고, 상기 제2 데이터는 암호화된 제2 누적 해시 값을 포함하는, 이중 블록 체인 구조를 이용한 데이터 블록 생성방법. - 제 13항에 있어서,
상기 제1 누적 해시 값 또는 상기 제2 누적 해시 값의 생성 난이도를 조절가능한, 이중 블록 체인 구조를 이용한 데이터 블록 생성방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180012429A KR20190093011A (ko) | 2018-01-31 | 2018-01-31 | 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180012429A KR20190093011A (ko) | 2018-01-31 | 2018-01-31 | 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190093011A true KR20190093011A (ko) | 2019-08-08 |
Family
ID=67613523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180012429A KR20190093011A (ko) | 2018-01-31 | 2018-01-31 | 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190093011A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102147083B1 (ko) * | 2019-09-30 | 2020-08-24 | 주식회사 디지털존 | 블록체인 기술을 이용한 전자문서 유효성 검증 시스템 및 그것의 제어 방법 |
KR20210047666A (ko) * | 2019-10-22 | 2021-04-30 | 한국전자기술연구원 | 연속데이터 기반 무결성 부여 해쉬체인 생성장치 및 해쉬체인 생성방법 |
KR20210110056A (ko) * | 2020-02-28 | 2021-09-07 | 주식회사 시큐어링크 | 대용량 정보 공유를 위한 계층 블록체인 시스템 |
WO2023200279A1 (ko) * | 2022-04-15 | 2023-10-19 | 주식회사 아티프렌즈 | 블록체인에서 이중 체인 구조를 통한 블록 데이터 생성속도 증진 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170137388A (ko) | 2016-06-03 | 2017-12-13 | (주) 블록체인오에스 | 블록체인 기술을 이용한 무결성 보장 방법 |
-
2018
- 2018-01-31 KR KR1020180012429A patent/KR20190093011A/ko unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170137388A (ko) | 2016-06-03 | 2017-12-13 | (주) 블록체인오에스 | 블록체인 기술을 이용한 무결성 보장 방법 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102147083B1 (ko) * | 2019-09-30 | 2020-08-24 | 주식회사 디지털존 | 블록체인 기술을 이용한 전자문서 유효성 검증 시스템 및 그것의 제어 방법 |
WO2021066323A1 (ko) * | 2019-09-30 | 2021-04-08 | 주식회사 디지털존 | 블록체인 기술을 이용한 전자문서 유효성 검증 시스템 및 그것의 제어 방법 |
KR20210047666A (ko) * | 2019-10-22 | 2021-04-30 | 한국전자기술연구원 | 연속데이터 기반 무결성 부여 해쉬체인 생성장치 및 해쉬체인 생성방법 |
KR20210110056A (ko) * | 2020-02-28 | 2021-09-07 | 주식회사 시큐어링크 | 대용량 정보 공유를 위한 계층 블록체인 시스템 |
WO2023200279A1 (ko) * | 2022-04-15 | 2023-10-19 | 주식회사 아티프렌즈 | 블록체인에서 이중 체인 구조를 통한 블록 데이터 생성속도 증진 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110089069B (zh) | 用于信息保护的系统和方法 | |
CN110337665B (zh) | 用于信息保护的系统和方法 | |
TWI706275B (zh) | 用於資訊保護的系統和方法 | |
US11080694B2 (en) | System and method for information protection | |
CN110941673B (zh) | 区块链数据结构及任务处理方法和装置 | |
US10892888B2 (en) | System and method for information protection | |
EP3552158B1 (en) | INFORMATION PROTECTION SYSTEM AND PROCEDURE | |
KR20190093012A (ko) | 블록 체인 시스템에서의 블록 생성 및 검증 방법 | |
KR102050087B1 (ko) | 하드웨어 및 지분증명 합의 알고리즘을 포함하는 블록 체인 시스템과 그 블록 체인 시스템에서의 블록 생성 방법 | |
KR20190093011A (ko) | 보안성이 강화된 블록 체인 시스템 및 이중 블록 체인 구조를 이용한 데이터 블록 생성방법 | |
AU2019101581A4 (en) | System and method for information protection | |
AU2019101590A4 (en) | System and method for information protection |