KR20190097623A - 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 - Google Patents
블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 Download PDFInfo
- Publication number
- KR20190097623A KR20190097623A KR1020180017256A KR20180017256A KR20190097623A KR 20190097623 A KR20190097623 A KR 20190097623A KR 1020180017256 A KR1020180017256 A KR 1020180017256A KR 20180017256 A KR20180017256 A KR 20180017256A KR 20190097623 A KR20190097623 A KR 20190097623A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- binding
- data block
- key
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 title claims description 44
- 230000027455 binding Effects 0.000 claims abstract description 348
- 238000009739 binding Methods 0.000 claims abstract description 348
- 238000012795 verification Methods 0.000 claims description 38
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000036541 health Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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/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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은, 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법에 관한 것이다. 본 발명의 일 실시예에서는 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다.
Description
본 발명은 블록 체인 기술에 관한 것으로서, 더욱 상세하게는, 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 노드 장치를 포함하는 시스템에 관한 것이다.
일반적인 데이터 관리 시스템은 중앙 집중형 서버를 이용한 클라우드 스토리지에 데이터 또는 파일들을 저장 및 관리하며, 사용자들이 클라우드 스토리지에 접속하여 데이터 또는 파일을 요청하거나 검색하게 된다. 이 경우 대용량 저장 장치가 요구될 뿐만 아니라, 이들을 관리하기 위한 중앙 집중형 서버가 요구되며 시스템 설계 및 유지가 복잡해질 수 있다. 또한, 상기 데이터 또는 파일이 사용자의 개인 정보를 포함하는 경우, 통상적으로 이러한 정보는 수정 및 갱신이 불가능하여 상기 서버가 유출되거나 복제되는 경우 대형 보안 사고가 발생할 수 있으며, 데이터가 집중된 중앙 집중형 서버가 해킹되면 저장된 데이터가 위조 또는 변조되어 유통되는 문제점이 발생될 수 있다.
최근에는 중앙 집중형 서버와 같은 전통적 정보 유통 방식으로 인한 취약한 보안 상의 문제점을 해결하기 위하여 공공 거래 장부라고 불리는 블록 체인(block chain)이 개발되고 있다. 상기 블록 체인은 개방형 네트워크에 참여하는 복수의 노드에 의해 데이터가 분산 저장되는 기술로서, 인증 노드들이 공동으로 데이터를 저장하고 데이터를 검증함으로써, 해킹에 의해 위조 또는 변조된 데이터가 유통되는 문제점을 해결할 수 있다.
일반적으로 블록 체인을 구성하는 데이터 블록들은 시간 흐름에 따라 생성된 거래 내역과 같은 데이터를 해시 함수를 통해 암호화하여 저장하는 것으로 체인으로 서로 연결된 데이터 블록은 개방형 네트워크에 참여하는 모든 노드에게 노출되고 공유될 수 있다. 따라서, 임의의 노드가 데이터 블록 내에 일부 데이터만을 이용하려고 해도, 데이터 블록 전체에 대해 복호화 처리를 하여야 하므로 상기 데이터 블록에 대한 처리 시간이 증가하며, 이를 처리 하기 위한 하드웨어 요구 성능과 네트워크 트래픽이 증가할 수 있다.
상기 블록 체인을 구성하는 각각의 데이터 블록들은 블록 해시(Hash) 값을 저장하고 있다. 블록 해시 값은 블록 검증에 사용되는 값으로, 해당 노드는 데이터 블록에 포함된 모든 데이터를 복호화하고 복호화된 데이터의 해시 값을 추출하여 데이터 블록에 저장된 블록 해시 값과 비교함으로써 데이터 블록이 검증될 수 있다. 상기 데이터 블록에 저장된 데이터 량이 증가할수록 데이터 복호화 시간이 증가하여 컴퓨터의 리소스가 과도하게 소모되는 문제점이 발생할 수 있다.
본 발명이 이루고자 하는 기술적 과제는, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 블록 체인을 기반으로 한 데이터 블록의 생성 장치를 제공하기 위한 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 전술한 이점을 갖는 데이터 블록의 생성 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 데이터 블록의 생성 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록은, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함할 수 있다.
일 실시예에서, 상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함할 수 있다.
일 실시예에서, 상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함할 수 있다.
일 실시예에서, 상기 제 2 퍼블릭 키는 상기 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용될 수 있다. 예를 들어, 상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록의 처리 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하는 단계; 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계; 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계; 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다.
일 실시예에서, 상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함할 수 있다. 일 실시예에서, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록의 구조를 이용하는 노드 장치 또는 데이터 처리 시스템은 상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며, 상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고, 상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고, 상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고, 상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고, 상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고, 상기 프라이빗 영역은 상기 노드 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록 처리 노드는 메모리; 및 적어도 하나의 프로세서를 포함할 수 있다. 예를 들어, 상기 프로세서는, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장할 수 있다. 또한, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 프로세서는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증할 수 있다.
본 발명의 일 실시예에 따른 복수의 노드들 사이에서 공유되는 데이터 처리 시스템은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및 상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함할 수 있다.
본 발명의 실시예에 따르면, 데이터 블록 내의 암호화된 정보들에 대하여 복호화 권한을 다중화함으로써, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 노드 장치가 제공될 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 상기 이점을 갖는 데이터 블록을 용이하게 생성하기 위한 데이터 블록의 생성 방법이 제공될 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 다중화된 복호화 권한 레벨에 기초하여 데이터 블록의 분할 및 재조합을 가능하게 하여 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다.
도 1는 본 발명의 일 실시예에 따른 블록 체인을 기반으로 한 데이터 처리 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 블록 체인의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록에 대한 노드별 접근 권한을 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록 내에 바인딩 데이터를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록 내의 바인딩 데이터를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록의 통합 동작을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 노드의 구성을 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록의 생성 동작을 도시한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록을 복호화하는 동작을 도시한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 블록을 제공하는 동작을 도시한 순서도이다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록을 검증하는 동작 도시한 순서도이다.
도 2는 본 발명의 일 실시예에 따른 블록 체인의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록에 대한 노드별 접근 권한을 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록 내에 바인딩 데이터를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록 내의 바인딩 데이터를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록의 통합 동작을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 노드의 구성을 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록의 생성 동작을 도시한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록을 복호화하는 동작을 도시한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 블록을 제공하는 동작을 도시한 순서도이다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록을 검증하는 동작 도시한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 발명을 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
또한, 이하의 도면에서 각 층의 두께나 크기는 설명의 편의 및 명확성을 위하여 과장된 것이며, 도면상에서 동일 부호는 동일한 요소를 지칭한다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는" 는 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.
본 명세서에서 제 1, 제 2 등의 용어가 다양한 부재, 부품, 영역, 층들 및/또는 부분들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부분들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 하나의 부재, 부품, 영역, 층 또는 부분을 다른 영역, 층 또는 부분과 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제 1 부재, 부품, 영역, 층 또는 부분은 본 발명의 가르침으로부터 벗어나지 않고서도 제 2 부재, 부품, 영역, 층 또는 부분을 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명된다. 도면들에 있어서, 예를 들면, 부재들의 크기와 형상은 설명의 편의와 명확성을 위하여 과장될 수 있으며, 실제 구현시, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 부재 또는 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 된다. 이하에서는, 도면을 참조하여 본 발명의 다양한 실시예들에 대해 설명하기로 한다.
도 1는 본 발명의 일 실시예에 따른 블록 체인(BC)을 기반으로 한 데이터 처리 시스템(10)을 도시한다.
도 1을 참조하면, 데이터 처리 시스템(10)은, 제 1 클라이언트 노드(CN1), 제 2 클라이언트 노드(CN2) 및 서버 노드(SN)와 같은 복수의 노드를 포함하며, 제 1 클라이언트 노드(CN1), 제 2 클라이언트 노드(CN2) 및 서버 노드(SN)는 네트워크(NW)에 연결될 수 있다. 도 1에서 두 개의 클라이언트 노드(CN1, CN2) 그리고 하나의 서버 노드(SN)가 네트워크(NW)에 연결되는 것을 예를 들었지만, 두 개 이상의 클라이언트 노드들과 하나 이상의 서버 노드(SN)가 네트워크(NW)에 연결될 수 도 있다. 본 발명에서, 서버 노드(SN)는 블록 체인(BC) 내의 전체 데이터 블록(DB)을 포함하는 노드를 지칭하며, 클라이언트 노드(CN1, CN2)는 각각 자신이 필요한 정보를 포함하는 데이터 블록만 저장하는 노드를 지칭할 수 있다.
각각의 노드는 서로 동일한 구성을 가지거나 서로 다른 구성을 가질 수 있다. 일 실시예에서, 데이터 처리 시스템(10) 내의 각각의 노드는, 도 6를 참조하여 후술하는 것과 같이, 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있으며, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 휴대형 멀티미디어 플레이어(PMP: Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone) 및 이동 통신 단말기(Mobile Communication Terminal) 중 적어도 어느 하나로 구현될 수 있다.
일 실시예에서, 서버 노드(SN)는 다수의 데이터 블록(DB)들이 사슬처럼 서로 체인화된 적어도 하나의 블록 체인(BC)을 저장할 수 있다. 예컨대, 하나의 제 1 데이터 블록(DB)은 3 개의 바인딩 데이터(BD-1, BD-2, BD-3)를 포함하고, 다른 하나의 제 2 데이터 블록은 1 개의 바인딩 데이터(BD4)를 포함하며, 제 1 데이터 블록(DB)과 제 2 데이터 블록(DB)은 체인으로 연결될 수 있다. 일 실시예에서, 상기 체인 연결은 제 2 데이터 블록(DB)이 제 1 데이터 블록(DB)의 블록 해시 값의 정보를 포함함으로써, 제 1 데이터 블록(DB)과 제 2 데이터 블록(DB) 사이에 연결을 갖는 것을 의미할 수 있다.
일 실시예에서, 블록 체인(BC)의 구성이 되는 각각의 데이터 블록(DB)은 권한 레벨을 가지는 적어도 하나의 바인딩 데이터(BD-1, BD-2, BD-3, BD-4)를 포함하며, 바인딩 데이터(BD-1, BD-2, BD-3, BD-4)는 권한 레벨을 가지는 노드만 복호화할 수 있다. 예를 들어, 바인딩 데이터는 공개가 가능하도록 지정된 적어도 하나의 공개용 데이터와 공개가 불가하도록 지정된 적어도 하나의 비공개용 데이터 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 서버 노드(SN)는 클라이언트 노드(CN1, CN2)에 의해 생성된 데이터 블록들(DB)을 수신하고 이를 시간 흐름에 따라 연결하여 블록 체인(BC)을 생성하여 저장할 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 서버 노드(SN)는 클라이언트 노드(CN1, CN2)에 의해 생성된 각각의 블록 체인들(BC)을 수신하여 저장할 수도 있다.
일 실시예에서, 서버 노드(SN)는 적어도 하나의 클라이언트 노드(CN1, CN2)의 요청에 대응하여 저장된 블록 체인(BC) 또는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 제 1 클라이언트 노드(CN1) 및/또는 제 2 클라이언트 노드(CN2)로 전송할 수 있다.
일 실시예에서, 제 1 클라이언트 노드(CN1) 및 제 2 클라이언트 노드(CN2)는 블록 체인(BC)의 원소인 데이터 블록(DB)을 생성할 수 있다. 일 실시예에서, 각각의 데이터 블록(DB)은, 도 2를 참조하여 후술하는 바와 같이, 특정 노드에서 복호화가 가능하도록 권한 레벨이 부여된 바인딩 데이터(BD)를 포함할 수 있다. 권한 레벨이 부여된 바인딩 데이터(BD)는 데이터 처리 시스템(10)에 포함된 노드 중 지정된 권한 레벨을 갖는 노드만 읽고 쓰기가 가능하도록 암호화될 수 있다. 구체적으로, 데이터 블록 내의 바인딩 데이터(BD)들에 대하여 복호화 권한을 다중화하여, 해당 권한 레벨을 갖는 노드들이 해당 바인딩 데이터(BD)들에 대하여 복호화 할 수 있다.
일 실시예에서, 제 1 클라이언트 노드(CN1) 및 제 2 클라이언트 노드(CN2) 중 적어도 하나의 노드는 서버 노드(SN)에 저장된 블록 체인(BC)의 일부 데이터 블록(DB)을 추출하여 저장할 수 있다. 예를 들어, 도시된 바와 같이, 제 1 클라이언트 노드(CN1)는 블록 체인(BC)내의 전체 데이터 블록(DB)으로부터 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-1과 BD-3)를 추출하여 데이터 블록(DB1)을 저장하거나, 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-1과 BD-3)을 서버 노드(SN)에 요청하여 바인딩 데이터(예를 들어, BD-1과 BD-3)을 포함하는 데이터 블록(DB1)을 저장할 수 있다. 마찬가지로, 제 2 클라이언트 노드(CN2)는 블록 체인(BC)내의 전체 데이터 블록(DB)으로부터 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-2와 BD-4)를 포함하는 데이터 블록(DB2)을 저장하거나, 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-2과 BD-4)을 서버 노드(SN)에 요청하여 바인딩 데이터(예를 들어, BD-4과 BD-4)을 포함하는 데이터 블록(DB2)을 저장할 수 있다.
더하여, 도 1의 서버 노드(SN)에 저장된 블록 체인(BC) 내에 새로운 데이터 블록(BD)가 추가되거나, 데이터 블록(BD) 내에 새로운 바인딩 데이터에 더 추가될 수 있고(도 5a), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 기존 데이터 블록(BD)가 삭제되거나, 데이터 블록(BD) 내에 기존 바인딩 데이터에 삭제될 수 있고(도 5b), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터가 복제되어 새로운 블록 데이터를 생성할 수 있으며(이하, 축소 복제라 지칭함, 도 5c), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터만 추출되어 새로운 블록 데이터를 생성할 수 있다(이하, 분할이라 지칭함, 도 5d). 또 다른 실시예에서, 후술할 도 5e에서처럼, 두 개의 데이터 블록이 하나의 데이터 블록으로 병합될 수 있다.
구현에 있어서, 다수의 블록 체인(BC) 중 제 1 블록 체인(BC)은 금융사에서 운용되는 블록 체인(BC)일 수 있으며, 제 2 블록 체인(BC)은 보험사에서 운용되는 블록 체인(BC)일 수 있고, 제 3 블록 체인(BC)은 병원에서 운용되는 블록 체인(BC)일 수 있고, 제 4 블록 체인(BC)은 관공서에서 운용되는 블록 체인(BC)일 수 있다. 이러한 각각의 블록 체인(BC)은 각 노드간 데이터 송수신 프로토콜에 의해 구분될 수 있으며, 프로토콜의 조정을 통해 상기 금융사의 제 1 블록 체인(BC)은 제 2 블록 체인(BC), 제 3 블록 체인(BC), 제 4 블록 체인(BC), 또는 이들의 조합으로부터 추출된 적어도 하나의 데이터 블록(BD)들과 체인으로 연결될 수도 있다.
전술한 바와 같이, 공개용 데이터 또는 비공개용 데이터를 데이터 블록(DB) 내의 바인딩 데이터(BD)의 영역에 수용함으로써, 블록 체인 구조에서 공개되지 않아야 하는 중요 정보와 공개가 필요한 정보를 동시에 수용할 수 있다. 또한, 데이터 블록(DB) 내의 바인딩 데이터(BD)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 병합, 데이터 블록(DB)의 축소 복제 그리고 분할이 가능함으로써, 유연하게 데이터 블록을 활용할 수 있다. 또한, 오리지널 데이터 블록의 일부를 추출하여 목적에 맞게 축소 생성된 데이터 블록을 생성함으로써, 블록 전송에 따른 네트워크 트래픽 요구량을 축소시킬 수 있으며, 하드웨어 자원을 줄일 수 있다.
더불어, 데이터 블록 내의 암호화된 바인딩 데이터들에 대하여 복호화 권한을 다중화함으로써, 특정 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 경우와 비교하여 데이터 블록의 처리 시간을 감소시킬 수 있으며, 데이터 블록의 검증 시간을 개선시킬 수 있다. 이로 인해, 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다.
또한, 데이터 블록의 소유자(예컨대, 금융사, 보험사, 병원)를 구분함으로써, 블록 체인 내에서 부가적으로 데이터 거래 시스템을 구현할 수 있으며, 전체 공개가 아닌 일부만 공개된 퍼블릭 키 제공으로 데이터 마이닝을 위한 하드웨어 자원 요구량을 축소할 수 있다.
더불어, 체인 연결을 위한 데이터블록 내 암호화된 영역의 해시 값을 이용하여, 블록 복호화 이전에 원하는 데이터를 포함하는 블록을 찾아내거나 복호화된 데이터의 무결성을 간단한 프로세스로 구현할 수 있다.
도 2는 본 발명의 일 실시예에 따른 블록 체인(BC)의 구성을 도시한 도면이다.
도 2를 참조하면, 블록 체인(BC)은 다수 개의 데이터 블록들(DB)이 사슬 형태로 연결되어 이루어진 것으로서, 각각의 데이터 블록(DB)은 바인딩 데이터(BD) 및 바인딩 데이터(BD)를 고유한 값으로 표현한 해시 값(BDH)을 포함할 수 있다. 또한, 각각의 데이터 블록은 자신의 블록 해시 값을 저장할 수 있다. 예를 들어, 자신의 블록 해시 값은 이전 데이터 블록의 바인딩 데이터(BD)의 해시 값과 자신의 데이터 블록 내의 바인딩 데이터를 입력으로 한 해시 함수에 의해 결정될 수 있다. 그러나, 이는 예시적일 뿐, 본원발명은 이에 한정되는 것이 아니다. 예를 들어, 일반적인 블록 체인을 구성하는 데이터 블록은 이전 블록의 해시 값도 함께 포함하고 있으므로, 블록 체인의 각 데이터 블록은 사슬처럼 서로 연결되어 이어질 수 있으며, 이전 블록의 해시 값은 블록 해시 생성에 이용될 수 있다. 또한, 데이터 블록은 넌스(Nonce) 값, 타임 스탬프(Time Stamp)을 더 포함할 수도 있다.
일 실시예에서, 블록 체인(BC)은 노드 별로 구분될 수 있다. 예를 들어, 제 1 클라이언트 노드(도 1의 CN1 참조)에 의해 생성된 블록(DB)들은 제 1 클라이언트 노드로 정의되는 제 1 블록 체인에 연결되고, 제 2 클라이언트 노드(도 1의 CN2 참조)에 의해 생성된 블록들은 제 2 클라이언트 노드로 정의되는 제 2 블록 체인에 연결될 수 있다. 또한, 블록 체인은 노드를 구분하지 않을 수 있다. 예를 들어, 데이터 처리 시스템(10)에는 하나의 블록 체인이 정의되며 각각의 노드에서 생성되는 블록들은 생성 시간에 따라 순차적으로 블록 체인에 연결될 수도 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 구성을 나타내는 도면이다.
도 3을 참조하면, 데이터 블록(DB)은 헤더 영역(HA), 퍼블릭 영역(PBA), 바인딩 영역(BA) 및 프라이빗 영역(PRA)으로 구성될 수 있으며, 바인딩 데이터(BD)는 지정된 권한 레벨을 갖는 노드에 의해서 복호화 가능하며, 프라이빗 데이터(PRD)는 데이터 블록(DB)의 최초 생성 노드만 프라이빗 데이터(PRD)를 복호화 가능할 수 있다. 그러나, 본 발명은 이들에 제한되지 않으며, 프라이빗 데이터(PRD)는 블록 체인(BC)의 소유자, 즉, 보험사, 금융사, 병원의 권한을 갖는 노드에 의해 복호화 가능하거나, 블록 체인을 소유하는 보험사, 금융사, 또는 병원을 이용하는 고객의 노드 장치에 의해 복호화 가능할 수 있다. 또한, 헤더 영역(HA)은 블록 해시 값(BLH), 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT), 제 1 퍼블릭 키(PK1) 및 무결성 검증 횟수(VN)를 포함할 수 있다.
일 실시예에서, 블록 해시 값(BLH)은 데이터 블록(DB)의 식별자 역할을 하는 것으로 데이터 블록 내에 저장된 권한 레벨을 가지는 바인딩 데이터(BD)의 해시 값에 대하여 사전 설정된 해시 알고리즘을 적용하여 생성할 수 있다. 다른 예로, 블록 해시 값(BLH)을 생성하는데 있어서 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT) 등과 같은 데이터 블록(BD)에 저장된 다른 정보에 대하여 해시 알고리즘을 적용할 수도 있다.
일 실시예에서, 프라이빗 데이터(PRD)의 해시 값(PRDH)은 프라이빗 데이터 영역(PRA)에 저장된 프라이빗 데이터(PRD)의 식별자 역할을 하는 것으로, 저장된 프라이빗 데이터(PRD)로부터 생성된 머클트리 루트에 대한 해시 값일 수 있다. 예를 들어, 제 1 프라이빗 데이터 내지 제 3 프라이빗 데이터가 저장된 경우, 제 1 프라이빗 데이터의 해시 값과 제 2 프라이빗 데이터의 해시 값을 합한 해시 값을 생성하고, 이를 제 3 프라이빗 데이터 해시 값과 다시 합한 최종 해시 값을 프라이빗 데이터의 해시 값으로 사용할 수 있다.
일 실시예에서, 바인딩 데이터의 인덱스(BDT)는 바인딩 데이터 영역(BA)에 저장된 바인딩 데이터(BD)의 타입을 나타내는 정보일 수 있다. 예를 들어, 인덱스 정보는, 금융업과 관련된 데이터, 의료업과 관련된 데이터, 보험업과 관련된 데이터 중 적어도 하나를 지시하는 정보를 포함할 수 있다. 또한, 인덱스 정보는 각각의 바인딩 데이터(BD)에 부여된 권한 레벨을 지시하는 정보를 포함할 수도 있다.
일 실시예에서, 제 1 퍼블릭 키(PK1)는 바인딩 영역을 복호화하기 위한 복호화 키를 연산하기 위해 사용되는 정보일 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)는 적어도 일부만 공개되고 나머지 일부는 공개되지 않은 형태로 제공될 수 있다. 이로 인하여, 네트워크(NW)에 포함된 인증되지 않은 노드는 복호화 키를 알 수 없어 데이터 블록(DB)의 복호화가 제한될 수 있다. 또한, 제 1 퍼블릭 키(PK1)의 공개 정도는 변경될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)의 공개 정도가 많은 경우, 그렇지 않은 경우보다 복호화 키를 연산하는데 소요되는 시간 및 하드웨어 요구량이 줄어들 수 있다.
일 실시예에서, 무결성 검증 횟수(VN)는 데이터 블록 또는 바인딩 데이터에 대하여 수행된 오류 검증 횟수를 나타낸다.
일 실시예에서, 퍼블릭 영역(PBA)은 제 2 퍼블릭 키(PK2) 및 바인딩 데이터(BD)의 해시 값(BDH)을 포함할 수 있다. 예를 들어, 제 2 퍼블릭 키(PK2)는 제 1 퍼블릭 키(PK1)를 이용하여 획득된 복호화 키가 정상적인 키인지 판단하는데 사용되는 정보로, 제 1 퍼블릭 키(PK1)로 연산된 복호화 키와 제 2 퍼블릭 키(PK2)를 비교하고 두 키가 서로 동일하면 정상적인 키가 획득된 것으로 판단할 수 있다. 또한, 제 2 퍼블릭 키(PK2)의 적어도 일부가 공개되지 않은 형태로 제공될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)를 사용하여 연산된 암호화키로 제 2 퍼블릭 키(PK2)를 복호화하고 제 1 퍼블릭 키(PK1)와 제 2 퍼블릭 키(PK2)를 연산하여 바인딩 영역 복호화를 위한 암호화 키를 획득할 수 있다. 이는 개방형 블록 체인 내에서 전체 공개되는 퍼블릭 키가 아닌 일부만 공개된 퍼블릭 키 제공으로써, 데이터 복호화를 위한 하드웨어 자원 요구량을 축소할 수 있다.
일 실시예에서, 바인딩 영역(BA)은 복수의 바인딩 키(BK1, BK2, …, BKn) 및 각각의 바인딩 키(BK1, BK2, …, BKn)로 복호화할 수 있는 바인딩 데이터(BD1, BD2, …, BDn)를 포함할 수 있다. 예를 들어, 복수의 바인딩 키(BK1, BK2, …, BKn)는 서로 다른 권한 레벨을 가질 수 있다. 또한, 바인딩 데이터(BD1, BD2, …, BDn)는 다른 노드에 공개가 가능한 정보로, 나이, 거주지역, 직종, 소득수준, 자산 상태 등과 같이 개인 특정이 불가능한 정보 레코드를 포함할 수 있다. 또한, 바인딩 영역이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보는 퍼블릭 영역(PBA)에 저장될 수 있다.
일 실시예에서, 프라이빗 영역(PRA)은 데이터 블록(DB)을 생성한 생성 노드만 복호화할 수 있는 프라이빗 데이터(PRD)를 포함할 수 있다. 예를 들어, 프라이빗 데이터(PRD)는 생성 노드가 별도로 가지고 있는 복호화 키에 의해서만 복호화될 수 있다. 예컨대, 프라이빗 데이터(PRD)는 다른 노드에 공개되지 않아야 하는 정보로, 예를 들어, 주민 번호, 이름 등과 같이 개인 특정이 가능한 정보를 포함할 수 있다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록(DB)에 대한 노드별 접근 권한을 도시한 도면이다.
도 4를 참조하면, 데이터 블록에(DB) 저장된 다수의 바인딩 데이터는 각각의 권한 레벨을 가지고 있으며, 노드들은 데이터 블록(DB)으로부터 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터만 접근하여 복호화할 수 있다. 예를 들어, 노드들은 데이터 블록(DB)의 헤더 영역(HA)에서 퍼블릭 키를 추출할 수 있으며, 추출된 퍼블릭 키를 이용하여 퍼블릭 영역(PBA)을 복호화함으로써, 상기 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터를 확인할 수 있다.
일 실시예에서, 데이터 블록(DB)의 헤더 영역(HA)과 퍼블릭 영역(PBA)은 노드들이 복호화 가능한 바인딩 데이터를 확인하는데 사용되는 영역으로, 데이터 처리 시스템에 포함된 모든 노드(all node)가 접근할 수 있다.
일 실시예에서는 레벨 1부터 레벨 n까지의 권한을 정의하였으며 레벨 1, 레벨 2 및 레벨 3은 각각 바인딩 영역(BA)의 제 1 영역(BA1), 제 2 영역(BA2) 및 제 3 영역(BA3)에 접근이 가능한 레벨이고, 레벨 n은 바인딩 영역(BA)의 전체 영역에 접근이 가능한 레벨로 가정한다.
따라서, 레벨 1의 권한을 가지는 노드(NLV1)는 데이터 블록(DB)의 헤더 영역(HA) 및 퍼블릭 영역(PBA)을 분석하여 바인딩 영역(BA)의 제 1 영역(BA1)에 접근이 가능한 바인딩 데이터가 포함되어 있다고 판단하고 제 1 영역에 저장된 바인딩 키를 이용하여 바인딩 데이터를 복호화할 수 있다. 유사하게, 레벨 2 및 레벨 3의 권한을 가지는 각각의 노드(NLV2, NLV3)도 바인딩 영역의 제 2 영역 및 제 3 영역에 저장된 바인딩 데이터만 복호화할 수 있다. 또한, 레벨 n의 권한을 가지는 노드(NLVn)는 바인딩 영역의 모든 영역에 접근이 가능하여 자신이 원하는 적어도 하나의 바인딩 데이터를 복호화할 수 있다.
또한, 데이터 블록(DB)을 최초로 생성한 생성 노드(Nowner)는 데이터 블록(DB)에 대한 최상위 권한 레벨을 가질 수 있다. 이에 따라, 생성 노드(Nowner)는 일부 바인딩 데이터 또는 모든 바인딩 데이터를 복호화할 수 있으며, 추가적으로 프라이빗 영역(PRA)에 저장된 프라이빗 데이터도 복호화할 수 있다. 도시하지 않았지만, 바인딩 영역에 저장된 적어도 하나의 바인딩 데이터에 대하여도, 모든 노드에 의해 접근되는 것이 제한될 수도 있다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록(DB) 내에 바인딩 데이터(BD)를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록(DB) 내의 바인딩 데이터(BD)를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록(DB)을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록(DB)의 통합 동작을 설명하기 위한 예시도이다.
일 실시예에서, 블록 체인은 다수의 데이터 블록들이 서로 연결된 구조를 가지며, 각각의 데이터 블록은 권한 레벨을 가지는 적어도 하나의 바인딩 데이터를 포함할 수 있다. 예를 들어, 본 예시도에 도시된 바와 같이, 제 1 데이터 블록(DB1)은 3 개의 바인딩 데이터(데이터 A, 데이터 B 및 데이터 C)를 포함하고, 제 2 데이터 블록(DB2)도 3 개의 바인딩 데이터(데이터 D, 데이터 E 및 데이터 F)를 포함하고, 제 3 데이터 블록(DB3)은 1 개의 바인딩 데이터(데이터 G)를 포함하며, 제 1 데이터 블록(DB1), 제 2 데이터 블록(DB2) 및 제 3 데이터 블록(DB3)이 서로 연결되어 블록 체인(BC)을 형성할 수 있다.
도 5a를 참조하면, 블록 체인(BC)을 수신하는 적어도 하나의 노드는 데이터 블록 내에 새로운 바인딩 데이터를 추가할 수 있다. 예를 들어, 도 5a의 510과 같이, 노드가 기 생성된 블록 체인(BC)의 제 1 데이터 블록(DB1)에 바인딩 데이터 H를 추가할 수 있다. 이때, 제 1 데이터 블록(DB1)의 크기를 고려하여 바인딩 데이터를 추가할 수 있다. 예를 들어, 바인딩 데이터 H의 추가에 의해 제 1 데이터 블록(DB1)의 크기가 미리 정해진 크기를 벗어나는 경우, 바인딩 데이터 H는 제 1 데이터 블록(DB1)의 미리 정해진 크기에 맞게 분할 또는 압축된 상태로 추가될 수 있다. 또한, 추가된 바인딩 데이터의 타입을 나타내는 인덱스 정보는 데이터 블록의 헤더에 저장되고, 추가된 바인딩 데이터의 해시는 데이터 블록의 퍼블릭 영역에 저장될 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 도 5a의 520과 같이 데이터 H를 포함하는 새로운 데이터 블록(DB4)을 생성하고, 이를 제 1 데이터 블록(DB1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 제 1 데이터 블록(DB1)이 부모 데이터 블록이 되고 새로이 추가된(또는 파생된) 데이터 블록(DB4)은 자식 데이터 블록이 되며, 이러한 관계를 나타내는 정보는 각각의 데이터 블록에 추가될 수도 있다. 또한, 상기 바인딩 데이터의 타입을 나타내는 인덱스 정보와 상기 추가된 바인딩 데이터의 해시는 각각 새로이 추가된 데이터 블록(DB4)의 헤더 및 퍼블릭 영역에 저장될 수 있다.
일 실시예에서는 데이터 블록 내에 바인딩 데이터를 추가하는 것과 반대로 데이터 블록 내에 저장된 바인딩 데이터를 삭제할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터 C를 삭제함으로써 노드는 데이터 A 및 데이터 B로 구성된 데이터 블록(DB1)을 저장할 수 있다. 또한, 삭제된 바인딩 데이터의 타입을 나타내는 인덱스 정보는 데이터 블록의 헤더에서 삭제되고, 삭제된 바인딩 데이터의 해시도 데이터 블록의 퍼블릭 영역에서 삭제될 수 있다.
일 실시예에서는 블록 체인(BC)을 수신하는 적어도 하나의 노드는 기 생성된 데이터 블록(DB)을 복제할 수 있다. 예를 들어, 도 5c에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터의 일부를 복제하여 제 1 데이터 블록 대비 축소된(또는 파생된) 데이터 블록(DBC)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 예를 들어, 도 5c의 530과 같이 데이터 C가 복제되어 파생된 데이터 블록(DBC)가 제 1 데이터 블록과 제 2 데이터 블록 사이에 연결될 수 있다. 다른 예로, 도 5c의 540과 같이 데이터 C를 복제한 데이터 블록(DBC)을 생성하고, 이를 제 1 데이터 블록(DB1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 복제된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보와 복제된 바인딩 데이터의 수정 해시는 각각 파생된 데이터 블록의 헤더 및 퍼블릭 영역에 저장될 수 있다.
일 실시예에서는 블록 체인을 수신하는 적어도 하나의 노드가 기 생성된 하나의 데이터 블록(DB)을 복수의 데이터 블록으로 분할할 수 있다. 예를 들어, 도 5d의 550과 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)을 데이터 A 및 데이터 B를 포함하는 데이터 블록(DB1-1)과 데이터 C를 포함하는 데이터 블록(DB1-2)으로 분할하고 이를 순차적으로 블록 체인(BC)에 연결할 수 있다. 다른 예로, 도 5d의 560과 같이, 분할된 데이터 블록들은 정해진 규칙에 따라 부모 데이터 블록과 자식 데이터 블록으로 지정될 수 있으며, 일 예로, 부모 데이터 블록(DB1-1)은 기존 체인 구성을 유지하고 자식 데이터 블록(DB1-2)은 부모 데이터 블록(DB1-1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 데이터 블록의 분할에 따라, 각각의 블록, 예를 들어, 부모 데이터 블록과 자식 데이터 블록의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다.
일 실시예에서는 데이터 블록을 분할하는 것과 반대로 복수의 데이터 블록을 하나의 데이터 블록으로 통합할 수도 있다. 예를 들어, 도 5e에 도시된 바와 같이, 노드가 기 생성된 블록 체인(BC)의 제 1 데이터 블록(DB1)과 제 2 데이터 블록(DB2)을 통합한 데이터 블록(DB12)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 이때, 데이터 블록의 통합에, 통합 데이터 블록(DB12)의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다.
도 6은 본 발명의 일 실시예에 따른 노드(600)의 구성을 도시하는 블록도이다.
도 6을 참조하면, 노드(600) 데이터 처리 시스템(도 1의 10 참조)의 구성인 클라이언트 노드(도 1의 CN1, CN2 참조)이거나 서버 노드(도 1의 SN 참조)일 수 있다. 일 실시예에서, 노드(600)는 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있다.
일 실시예에서, 통신부(606)는 적어도 하나의 다른 노드 사이의 통신(NW)을 수립할 수 있다. 예를 들어, 통신부(606)는 무선 통신 또는 유선 통신을 통해서 상기 통신을 형성할 수 있다. 예컨대, 상기 무선 통신은 LTE, LTE-A(LTE Advance), CDMA(code division multipleaccess), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), 또는 GSM(Global System for Mobile Communications) 중 적어도 어느 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 또한, 상기 무선 통신은 WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), 및 NFC(near field communication) 중 적어도 어느 하나를 사용하는 근거리 통신을 포함할 수 있다. 다른 실시예에서, 상기 유선 통신은 USB(universal serial bus),HDMI(high definition multimediainterface), RS-232(recommended standard-232), 전력선 통신, 또는 POTS(plain old telephone service) 및 시스템 버스 중 적어도 어느 하나를 포함할 수 있다.
저장부(604)는 적어도 하나의 구성요소(예: 블록 생성부(602) 또는 통신부 (606))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 저장부(604)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 일 실시예에서, 저장부(606)는 데이터 블록(DB) 또는 데이터 블록들(DB)이 서로 연결된 블록 체인(BC)이 저장되는 적어도 하나의 메모리 영역일 수 있다.
일 실시예에서, 블록 생성부(602)는 노드에 저장된 적어도 하나의 소프트웨어를 구동하여 블록 생성부(602)에 연결된 적어도 하나의 다른 구성요소(예: 저장부(604), 또는 통신부(606))을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 예를 들어, 블록 생성부(602)는 노드의 전반적인 동작을 처리하는 적어도 하나의 프로세서일 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인의 시초가 되는 최초 블록을 생성할 수 있다. 최초 블록은 생성 노드만 접근할 수 있는 프라이빗 데이터가 저장되며, 암호화된 프라이빗 데이터의 해시 값이 최초 블록과 연결된 블록을 식별하는 해시 값으로 이용될 수 있다. 예를 들어, 블록 생성부(602)는 노드(600)가 보유하고 있는 프라이빗 키를 이용하여 프라이빗 데이터를 암호화할 수 있으며, 각각의 암호화된 프라이빗 데이터에 대한 해시 값을 생성할 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인(BC)의 구성이 되는 데이터 블록(DB)을 생성할 수 있다. 예를 들어, 블록 생성부(600)는 권한 레벨을 가지는 적어도 하나의 바인딩 데이터(도 1의 BD-1, BD-2, BD-3, BD-4 참조)를 포함하는 데이터 블록(DB)을 생성할 수 있다. 데이터 블록(DB)은 특정 시설에 등록된 사용자의 정보를 포함하는 데이터 블록일 수 있으며, 이러한 경우 시설에 신규 사용자가 등록될 때마다 데이터 블록(DB)이 생성될 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 데이터 블록(DB)은 일정 시간(예를 들어, 10 분) 간격으로 주기적으로 생성될 수도 있다.
일 실시예에서, 블록 생성부(602)는 생성된 데이터 블록(DB)을 블록 체인(BC)에 연결하기 위해서 네트워크(NW) 내의 다른 노드들로 작업 증명을 요청할 수 있다. 작업 증명은 생성 노드에 의해 생성된 데이터 블록으로 블록 체인을 갱신한다는 것을 다른 노드와 합의하는 것을 의미한다. 예를 들어, 블록 생성부(602)는 생성된 데이터 블록(DB)을 다른 노드들로 전송함으로써 작업 증명을 요청할 수 있으며, 작업 증명을 요청받은 검증 노드들은 수신된 데이터 블록의 해시 값과 임의의 넌스 값 그리고 사전 설정된 검증 알고리즘을 이용하여 지정된 조건을 만족하는 값을 산출할 수 있다. 이때, 검증 노드는 지정된 조건을 만족하는 값이 산출될 때까지 넌스 값을 변경하면서 연산 동작을 수행할 수 있으며, 지정된 조건을 만족하는 값을 산출한 검증 노드는 생성 노드로 검증 완료를 보고할 수 있다. 또한, 블록 생성부(602)는 검증을 완료한 검증 노드의 수가 지정된 수를 만족하는 경우, 생성된 데이터 블록을 체인으로 연결함으로써 블록 체인(BC)을 갱신할 수 있다.
일 실시예에서, 블록 생성부(602)는 기 생성된 체인(BC)을 가공할 수 있다. 블록 체인(BC)을 가공하는 것은, 블록 체인(BC)의 원소인 적어도 하나의 데이터 블록(DB)에 적어도 하나의 바인딩 데이터(BD)를 추가하는 것을 포함할 수 있다. 뿐만 아니라, 데이터 블록(DB)에 포함된 적어도 하나의 바인딩 데이터(BD) 삭제, 기 생성된 데이터 블록(DB)의 축소 복제, 기 생성된 데이터 블록(DB)의 통합 중 적어도 하나를 가공의 한 동작으로 볼 수도 있다. 일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)의 헤더 정보를 변경할 수 있다. 예를 들어, 바인딩 데이터(BD)의 삭제 또는 추가에 따라 변경된 바인딩 데이터(BD)의 해시 값 및 변경된 바인딩 데이터(BD)의 타입을 나타내는 정보를 데이터 블록의 퍼블릭 영역(도 3의 BDH 필드 참조) 및 데이터 블록의 헤더 영역(예를 들어, 도 3의 BDT 필드 참조)에 각각 기입할 수 있다.
일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)을 저장부(604)에 저장하거나 네트워크(NW)에 연결된 인증된 다른 노드로 전송할 수 있다. 이때, 인증된 다른 노드는 서버 노드와 다른 클라이언트 노드를 포함할 수 있으며, 이들은 수신된 데이터 블록을 저장부에 저장할 수 있다. 또한, 적어도 하나의 노드(예를 들어, 서버 노드)는 가공된 데이터 블록과 가공되기 전의 데이터 블록도 함께 저장할 수 있다. 이로 인하여, 최초의 데이터 블록에 저장된 바인딩 데이터의 일부가 가공 동작에 의해 영구적으로 삭제되는 것을 방지할 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 다른 노드로 전송할 수 있다. 이때, 블록 생성부(602)는 다른 노드로부터 요청 데이터에 대한 정보가 포함된 트랜잭션을 수신하면, 저장부(604)에 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 확인하여 이를 요청 노드로 전송할 수 있다.
전술한 바와 같이, 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 방식 대비 복호화 시 요구되는 하드웨어 자원을 절약할 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 일부 데이터 블록(DB)은 블록 체인(BC) 내에 포함된 바인딩 데이터(BD) 중 노드의 권한에 대응되지 않는 권한 레벨을 가지는 바인딩 데이터(BD)로만 형성된 하나의 데이터 블록(DB)일 수 있다. 상술한 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화를 위한 권한 레벨을 갖지 않는 데이터 블록(DB)을 복호화할 수 없으나, 상술한 데이터 블록(DB)을 복호화화 가능한 다른 노드로 제공하여 기존의 전체 블록 체인(BC)을 제공하는 방식 대비 네트워크 자원을 절약할 수 있다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 생성 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드(도 1의 CN1, CN2 참조) 및 서버 노드(도 1의 SN 참조)에 의해 생성될 수 있으며, 이하 설명에서 데이터 블록(DB)을 생성하는 노드를 설명의 편의상 '생성 노드'로 지칭한다.
도 7을 참조하면, 생성 노드는 데이터 블록(DB)에 추가할 바인딩 데이터(BD)(또는 확장 데이터) 및 복호화 권한 레벨을 결정할 수 있다(S10). 바인딩 데이터(BD)는 지정된 권한 레벨을 가지는 노드에서만 복호화가 가능하도록 일정 수준의 권한 레벨이 부여되는 데이터일 수 있다.
이후, 생성 노드는 권한 레벨에 대응되는 암호화 키(BK)를 이용하여 바인딩 데이터(BD)를 암호화할 수 있다(S12). 상기 생성 노드는 서로 다른 권한 레벨을 가지는 다수의 암호화 키들을 가질 수 있으며 이러한 암호화 키들 중 바인딩 데이터(BD)에 부여할 권한 레벨에 대응하는 키를 획득할 수 있다.
이후, 생성 노드는 바인딩 데이터(BD) 및 암호화 키(BK)를 이용하여 데이터 블록(DB)을 생성할 수 있다(S14). 도 3을 참조하여 전술한 것과 같이 바인딩 데이터(BD)와 암호화 키(BK)는 데이터 블록(DB)의 바인딩 영역(BA)에 추가될 수 있다. 또한, 생성 노드는 바인딩 데이터(BD) 외에 생성 노드 자신만 복호화할 수 있는 프라이빗 데이터(PRD)를 데이터 블록(DB) 내에 추가할 수도 있으며, 데이터 블록(DB)에 추가된 데이터를 설명하는 정보(예를 들어, 해시 값, 데이터 타입 등)를 포함하는 헤더 정보를 생성할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 복호화하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 복호화될 수 있으며, 이하 설명에서 데이터 블록(DB)을 복호화하는 노드를 설명의 편의상 '수신 노드'로 지칭한다.
도 8을 참조하면, 수신 노드는 네트워크(NW)를 통해 데이터 블록(DB)을 수신할 수 있다(S20). 예를 들어, 수신 노드는 바인딩 데이터(BD)를 요청하는 트랜잭션을 생성하여 네트워크(NW)에 포함된 노드들로 전송하고 트랜잭션에 대응하는 데이터 블록(DB)을 수신할 수 있다. 예를 들어, 트랜잭션에는 수신 노드의 권한 레벨, 수신 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함될 수 있다.
이후, 수신 노드는 수신된 데이터 블록(DB)의 적어도 일부(도 3의 BDH 필드 참조)를 복호화하여 바인딩 데이터(BD)를 확인할 수 있다(S22).
이후, 수신 노드는 데이터 블록(DB)에 포함된 바인딩 데이터(BD) 중 수신 노드의 권한 레벨에 대응하는 바인딩 데이터(BD), 예를 들어, 복호화가 가능한 바인딩 데이터(BD)가 존재하는지 여부를 판단할 수 있다(S24).
데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하지 않으면, 수신 노드는 데이터 블록(DB)의 복호화 동작을 종료할 수 있다.
데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하면, 수신 노드는 데이터 블록(DB)에서 권한 레벨에 대응하는 바인딩 데이터(BD)만을 복호화할 수 있다(S26).
도 9는 본 발명의 일 실시예에 따른 데이터 블록(DB)을 제공하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 다른 노드로 제공될 수 있으며, 이하 설명에서 데이터 블록(DB)을 제공하는 노드를 설명의 편의상 '제공 노드'로 지칭한다.
도 9를 참조하면, 제공 노드는 네트워크(NW)를 통해 데이터 블록 요청을 수신할 수 있다(S30). 예를 들어, 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 수신할 수 있다.
이후, 제공 노드는 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 검색할 수 있다(S32).
트랜잭션에 대응되는 데이터 블록(DB)이 검색되면, 제공 노드는 검색된 데이터 블록(DB)을 요청 노드로 제공할 수 있다(S34).
트랜잭션에 대응되는 데이터 블록(DB)이 검색되지 않으면, 제공 노드는 상위 노드(예를 들어, 서버 노드)로 데이터 블록(DB)의 공유를 요청할 수 있다(S36). 예를 들어, 제공 노드는 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 생성하여 상위 노드로 전송하고, 상위 노드로부터 데이터 블록(DB)을 수신하여 요청 노드로 전달할 수 있다. 다른 예로, 제공 노드는 요청 노드의 주소를 트랜잭션에 추가하여 상위 노드로 전송할 수 있다. 이러한 경우, 상위 노드는 트랜잭션에 대응하는 데이터 블록(DB)을 검색하여 제공 노드를 거치지 않고 직접 요청 노드로 전송할 수 있다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 검증하는 동작 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 검증될 수 있으며, 이하 설명에서 데이터 블록(DB)을 검증하는 노드를 설명의 편의상 '검증 노드'로 지칭한다.
도 10을 참조하면, 검증 노드는 네트워크(NW)를 통해 데이터 블록 검증 요청을 수신할 수 있다. 예를 들어, 검증이 필요한 데이터 블록(DB)의 정보(예를 들어, 블록 해시), 검증이 필요한 바인딩 데이터(BD)의 정보(예를 들어, 바인딩 데이터 해시) 등을 포함하는 트랜잭션을 수신할 수 있다(S40).
이후, 검증 노드는 트랜잭션을 분석하여 검증이 필요한 데이터 블록(DB)을 획득할 수 있다(S42). 예를 들어, 검증 노드는 저장된 데이터 블록(DB)의 해시 값을 확인하여 트랜잭션에 대응하는 데이터 블록(DB)을 획득할 수 있다.
이후, 검증 노드는 데이터 블록(DB)에서 검증이 필요한 바인딩 데이터(BD)를 복호화하여 검증할 수 있다(S44). 예를 들어, 검증 노드는 트랜잭션에 대응되는 바인딩 데이터(BD)를 복호화하여 해시 알고리즘을 적용할 수 있다. 또한, 검증 노드는 해시 알고리즘의 결과를 데이터 블록(DB)에 포함된 바인딩 데이터의 해시 값(도 3의 BDH 참조)과 비교함으로써 검증을 완료할 수 있다. 이때, 해시 알고리즘의 결과와 바인딩 데이터의 해시 값이 일치하면 데이터 블록(DB)에 대한 무결성이 입증되는 것이다. 또한, 검증 노드는 검증을 완료한 후 해당 데이터 블록(DB)에 검증이 완료됨을 나타내는 정보(도 3의 VN 참조)를 기입할 수 있다.
본 발명에 따른 장치(또는 모듈) 또는 방법(예: 단계)의 일부 또는 전부는, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)(예: 노드의 저장부)에 저장 가능한 명령어들의 집합, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 상기 명령어는, 마이크로칩과 같은 하나 이상의 프로세서를 포함하는 하드웨어에 의해 실행될 수 있으며, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
Claims (33)
- 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법으로서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계;
각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계;
상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및
상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함하는 방법. - 제 1 항에 있어서,
상기 데이터 블록은,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함하는 데이터 블록의 생성 방법. - 제 2 항에 있어서,
상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함하는 데이터 블록의 생성 방법. - 제 2 항에 있어서,
상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 데이터 블록의 생성 방법. - 제 4 항에 있어서,
상기 제 2 퍼블릭 키는 상기 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용되며,
상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함하는 데이터 블록의 생성 방법. - 제 2 항에 있어서,
상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 생성 방법. - 제 6 항에 있어서,
상기 확장 데이터가 추가적으로 저장되는 단계는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법. - 제 2 항에 있어서,
상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
상기 파생 데이터 블록을 생성하는 단계는,
상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법. - 제 1 항에 있어서,
상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함하는 데이터 블록의 생성 방법. - 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 처리 방법으로서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하는 단계;
상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계;
상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계;
상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함하는 데이터 블록의 처리 방법. - 제 10 항에 있어서,
상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는,
상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및
상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함하는 데이터 블록의 처리 방법. - 제 6 항에 있어서,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및
상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함하는 데이터 블록의 처리 방법. - 제 12 항에 있어서,
상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고,
상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법. - 제 12 항에 있어서,
상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법. - 제 12 항에 있어서,
상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법. - 제 12 항에 있어서,
상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법. - 제 12 항에 있어서,
상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 처리 방법. - 제 17 항에 있어서,
상기 확장 데이터가 추가적으로 저장되는 단계는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법. - 제 10 항에 있어서,
상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
상기 파생 데이터 블록을 생성하는 단계는,
상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법. - 제 10 항에 있어서,
상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함 하는 데이터 블록의 처리 방법. - 블록 체인 구조에서, 데이터 블록의 구조를 이용하는 노드 장치 또는 데이터 처리 시스템에 있어서,
상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며,
상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고,
상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고,
상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고,
상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고,
상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고,
상기 프라이빗 영역은 상기 노드 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함하는 노드 장치 또는 시스템. - 메모리; 및
적어도 하나의 프로세서를 포함하며,
상기 프로세서는,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록 처리 노드. - 제 22 항에 있어서,
상기 프로세서는,
상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 데이터 블록 처리 노드. - 제 23 항에 있어서,
상기 프로세서는,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 데이터 블록 처리 노드. - 제 24 항에 있어서,
상기 프로세서는,
상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 데이터 블록 처리 노드. - 제 24 항에 있어서,
상기 프로세서는,
상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 데이터 블록 처리 노드. - 제 24 항에 있어서,
상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 데이터 블록 처리 노드. - 제 24 항에 있어서,
상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 데이터 블록 처리 노드. - 제 24 항에 있어서,
상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장하고,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록 처리 노드. - 제 29 항에 있어서,
상기 프로세서는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 데이터 블록 처리 노드. - 제 22 항에 있어서,
상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 데이터 블록 처리 노드. - 제 22 항에 있어서,
상기 프로세서는,
상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 데이터 블록 처리 노드. - 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 처리 시스템에 있어서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및
상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함하는 데이터 처리 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017256A KR102093010B1 (ko) | 2018-02-12 | 2018-02-12 | 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 |
PCT/KR2019/001689 WO2019156533A1 (ko) | 2018-02-12 | 2019-02-12 | 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 |
US16/969,549 US11418349B2 (en) | 2018-02-12 | 2019-02-12 | Block chain-based node device, method for operating node device, and data processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017256A KR102093010B1 (ko) | 2018-02-12 | 2018-02-12 | 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190097623A true KR20190097623A (ko) | 2019-08-21 |
KR102093010B1 KR102093010B1 (ko) | 2020-03-24 |
Family
ID=67549724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180017256A KR102093010B1 (ko) | 2018-02-12 | 2018-02-12 | 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11418349B2 (ko) |
KR (1) | KR102093010B1 (ko) |
WO (1) | WO2019156533A1 (ko) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102125042B1 (ko) * | 2019-11-12 | 2020-06-19 | 주식회사 이노티움 | 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법 |
KR102150210B1 (ko) * | 2019-09-16 | 2020-09-01 | (주) 모로보기 | 블록체인 네트워크 |
KR102234542B1 (ko) | 2019-12-30 | 2021-03-31 | 재단법인 경주스마트미디어센터 | 블록 체인 기반 영상 저작물 관리 방법 |
KR20210059182A (ko) * | 2019-11-15 | 2021-05-25 | 주식회사 이노티움 | 온라인 게시글에 대한 분쟁 해결을 위한 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법 |
KR20210086074A (ko) * | 2019-12-31 | 2021-07-08 | 주식회사 포스코아이씨티 | 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144657B2 (en) * | 2018-10-23 | 2021-10-12 | Motion Matters Inc. | System and method of providing a secure inter-domain data management using blockchain technology |
EP3676787B1 (en) * | 2019-08-30 | 2022-10-12 | Advanced New Technologies Co., Ltd. | Methods and devices for providing traversable key-value data storage on blockchain |
CN110753028B (zh) * | 2019-09-11 | 2021-06-22 | 复旦大学 | 一种控制分布式记账网络资源使用方法 |
JP7234870B2 (ja) * | 2019-09-12 | 2023-03-08 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
CN112073182B (zh) * | 2020-07-31 | 2021-03-16 | 成都信息工程大学 | 一种基于区块链的量子密钥管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080058887A (ko) * | 2006-12-22 | 2008-06-26 | 삼성전자주식회사 | 권리객체 복호방법과 장치 및 이를 이용한 콘텐츠공유방법과 장치 |
US20180019867A1 (en) * | 2016-07-15 | 2018-01-18 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
US20180032273A1 (en) * | 2016-05-23 | 2018-02-01 | Accenture Global Solutions Limited | Hybrid blockchain |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125067B (zh) * | 2014-06-26 | 2017-05-24 | 小米科技有限责任公司 | 绑定账号与令牌密钥的方法、装置 |
US20170011460A1 (en) * | 2015-07-09 | 2017-01-12 | Ouisa, LLC | Systems and methods for trading, clearing and settling securities transactions using blockchain technology |
US20170243193A1 (en) * | 2016-02-18 | 2017-08-24 | Skuchain, Inc. | Hybrid blockchain |
US10839379B2 (en) * | 2017-07-20 | 2020-11-17 | Chicago Mercantile Exchange Inc. | Blockchain including linked digital assets |
US20190080402A1 (en) * | 2017-09-11 | 2019-03-14 | Templum, Llc | System and method for providing a regulatory-compliant token |
US10713290B2 (en) * | 2017-12-08 | 2020-07-14 | American Express Travel Related Services Company, Inc. | Rapid account registration with autofill and facial recognition |
US11488433B2 (en) * | 2018-01-11 | 2022-11-01 | Mastercard International Incorporated | Method and system for public elections on a moderated blockchain |
-
2018
- 2018-02-12 KR KR1020180017256A patent/KR102093010B1/ko active IP Right Grant
-
2019
- 2019-02-12 WO PCT/KR2019/001689 patent/WO2019156533A1/ko active Application Filing
- 2019-02-12 US US16/969,549 patent/US11418349B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080058887A (ko) * | 2006-12-22 | 2008-06-26 | 삼성전자주식회사 | 권리객체 복호방법과 장치 및 이를 이용한 콘텐츠공유방법과 장치 |
US20180032273A1 (en) * | 2016-05-23 | 2018-02-01 | Accenture Global Solutions Limited | Hybrid blockchain |
US20180019867A1 (en) * | 2016-07-15 | 2018-01-18 | Mastercard International Incorporated | Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102150210B1 (ko) * | 2019-09-16 | 2020-09-01 | (주) 모로보기 | 블록체인 네트워크 |
KR102125042B1 (ko) * | 2019-11-12 | 2020-06-19 | 주식회사 이노티움 | 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법 |
KR20210059182A (ko) * | 2019-11-15 | 2021-05-25 | 주식회사 이노티움 | 온라인 게시글에 대한 분쟁 해결을 위한 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법 |
KR102234542B1 (ko) | 2019-12-30 | 2021-03-31 | 재단법인 경주스마트미디어센터 | 블록 체인 기반 영상 저작물 관리 방법 |
KR20210086074A (ko) * | 2019-12-31 | 2021-07-08 | 주식회사 포스코아이씨티 | 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20210006408A1 (en) | 2021-01-07 |
KR102093010B1 (ko) | 2020-03-24 |
WO2019156533A1 (ko) | 2019-08-15 |
US11418349B2 (en) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102093010B1 (ko) | 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 | |
US11146541B2 (en) | Hierarchical data access techniques using derived cryptographic material | |
US11019040B2 (en) | Cloud key escrow system | |
US10425223B2 (en) | Multiple authority key derivation | |
US9872067B2 (en) | Source identification for unauthorized copies of content | |
US20170163418A1 (en) | Resilient secret sharing cloud based architecture for data vault | |
US20210234702A1 (en) | Multi-decentralized private blockchains network | |
CN106055993A (zh) | 一种用于区块链的加密存储系统及其使用方法 | |
EP3791538B1 (en) | Shared blockchain data storage based on error correction code | |
KR101285281B1 (ko) | 자가조직 저장매체의 보안 시스템 및 그 방법 | |
US11347885B2 (en) | Verified templates | |
CN117396869A (zh) | 用于使用分布式账本技术进行安全密钥管理的系统和方法 | |
CN115567312B (zh) | 一种可满足多种场景的联盟链数据权限管理系统和方法 | |
US20220191034A1 (en) | Technologies for trust protocol with immutable chain storage and invocation tracking | |
CN113127927B (zh) | 一种许可链数据共享及监管的属性重构加密方法及系统 | |
CN114239044A (zh) | 一种去中心化的可追溯共享访问系统 | |
CN115048672A (zh) | 基于区块链的数据审计方法和装置、处理器及电子设备 | |
Shu et al. | Secure storage system and key technologies | |
CN112016898A (zh) | 基于区块链的协同办公方法及装置、系统 | |
Vishnoi | MedFabric4Me: Blockchain based patient centric electronic health records system | |
Lakshminarasamma et al. | A Study on Cloud Storage Architecture and Related Technical Issues | |
CN118656830A (zh) | 一种基于区块链的协同设计系统及方法 | |
Walker | Provable data possession (PDP) and proofs of retrievability (POR) of current big user data: Cryptographic schemes in cloud storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |