[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102093010B1 - Node device, operation method baed on block chain and system for processing data - Google Patents

Node device, operation method baed on block chain and system for processing data Download PDF

Info

Publication number
KR102093010B1
KR102093010B1 KR1020180017256A KR20180017256A KR102093010B1 KR 102093010 B1 KR102093010 B1 KR 102093010B1 KR 1020180017256 A KR1020180017256 A KR 1020180017256A KR 20180017256 A KR20180017256 A KR 20180017256A KR 102093010 B1 KR102093010 B1 KR 102093010B1
Authority
KR
South Korea
Prior art keywords
data
binding
data block
key
area
Prior art date
Application number
KR1020180017256A
Other languages
Korean (ko)
Other versions
KR20190097623A (en
Inventor
박성배
Original Assignee
박성배
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 박성배 filed Critical 박성배
Priority to KR1020180017256A priority Critical patent/KR102093010B1/en
Priority to US16/969,549 priority patent/US11418349B2/en
Priority to PCT/KR2019/001689 priority patent/WO2019156533A1/en
Publication of KR20190097623A publication Critical patent/KR20190097623A/en
Application granted granted Critical
Publication of KR102093010B1 publication Critical patent/KR102093010B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3297Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding 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)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법에 관한 것이다. 본 발명의 일 실시예에서는 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다.The present invention relates to a method of generating a block of data that constitutes a block chain and is shared among a plurality of nodes. In one embodiment of the present invention, obtaining at least one binding data having public or private properties; Determining a binding key having a decryption authority level for each binding data; Encrypting the binding data using the binding key; And generating a data block including at least a portion of the encrypted binding data and the binding key.

Description

블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템{NODE DEVICE, OPERATION METHOD BAED ON BLOCK CHAIN AND SYSTEM FOR PROCESSING DATA}Node device based on blockchain, operation method of node device and data processing system {NODE DEVICE, OPERATION METHOD BAED ON BLOCK CHAIN AND SYSTEM FOR PROCESSING DATA}

본 발명은 블록 체인 기술에 관한 것으로서, 더욱 상세하게는, 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 노드 장치를 포함하는 시스템에 관한 것이다.The present invention relates to a blockchain technology, and more particularly, to a node device based on a blockchain, a method of operating the node device, and a system including the node device.

일반적인 데이터 관리 시스템은 중앙 집중형 서버를 이용한 클라우드 스토리지에 데이터 또는 파일들을 저장 및 관리하며, 사용자들이 클라우드 스토리지에 접속하여 데이터 또는 파일을 요청하거나 검색하게 된다. 이 경우 대용량 저장 장치가 요구될 뿐만 아니라, 이들을 관리하기 위한 중앙 집중형 서버가 요구되며 시스템 설계 및 유지가 복잡해질 수 있다. 또한, 상기 데이터 또는 파일이 사용자의 개인 정보를 포함하는 경우, 통상적으로 이러한 정보는 수정 및 갱신이 불가능하여 상기 서버가 유출되거나 복제되는 경우 대형 보안 사고가 발생할 수 있으며, 데이터가 집중된 중앙 집중형 서버가 해킹되면 저장된 데이터가 위조 또는 변조되어 유통되는 문제점이 발생될 수 있다.A general data management system stores and manages data or files in a cloud storage using a centralized server, and users access or request data or files from the cloud storage. In this case, not only mass storage devices are required, but a centralized server for managing them is required, and system design and maintenance can be complicated. In addition, when the data or file contains personal information of a user, such information cannot be modified and updated, so a large security incident may occur when the server is leaked or copied, and a centralized server in which data is concentrated If is hacked, the stored data may be forged or falsified and distributed.

최근에는 중앙 집중형 서버와 같은 전통적 정보 유통 방식으로 인한 취약한 보안 상의 문제점을 해결하기 위하여 공공 거래 장부라고 불리는 블록 체인(block chain)이 개발되고 있다. 상기 블록 체인은 개방형 네트워크에 참여하는 복수의 노드에 의해 데이터가 분산 저장되는 기술로서, 인증 노드들이 공동으로 데이터를 저장하고 데이터를 검증함으로써, 해킹에 의해 위조 또는 변조된 데이터가 유통되는 문제점을 해결할 수 있다. Recently, a block chain called a public transaction ledger has been developed to solve the weak security problems caused by traditional information distribution methods such as a centralized server. The blockchain is a technology in which data is distributed and stored by a plurality of nodes participating in an open network, and authentication nodes jointly store data and verify data to solve the problem of forged or falsified data distributed by hacking. You can.

일반적으로 블록 체인을 구성하는 데이터 블록들은 시간 흐름에 따라 생성된 거래 내역과 같은 데이터를 해시 함수를 통해 암호화하여 저장하는 것으로 체인으로 서로 연결된 데이터 블록은 개방형 네트워크에 참여하는 모든 노드에게 노출되고 공유될 수 있다. 따라서, 임의의 노드가 데이터 블록 내에 일부 데이터만을 이용하려고 해도, 데이터 블록 전체에 대해 복호화 처리를 하여야 하므로 상기 데이터 블록에 대한 처리 시간이 증가하며, 이를 처리 하기 위한 하드웨어 요구 성능과 네트워크 트래픽이 증가할 수 있다. In general, the data blocks that make up the blockchain store data, such as transaction history generated over time, through encryption using a hash function, and data blocks connected to each other in chains are exposed and shared by all nodes participating in the open network. You can. Therefore, even if an arbitrary node tries to use only some data in a data block, since the entire data block needs to be decoded, processing time for the data block increases, and hardware demand performance and network traffic for processing the data block increase. You can.

상기 블록 체인을 구성하는 각각의 데이터 블록들은 블록 해시(Hash) 값을 저장하고 있다. 블록 해시 값은 블록 검증에 사용되는 값으로, 해당 노드는 데이터 블록에 포함된 모든 데이터를 복호화하고 복호화된 데이터의 해시 값을 추출하여 데이터 블록에 저장된 블록 해시 값과 비교함으로써 데이터 블록이 검증될 수 있다. 상기 데이터 블록에 저장된 데이터 량이 증가할수록 데이터 복호화 시간이 증가하여 컴퓨터의 리소스가 과도하게 소모되는 문제점이 발생할 수 있다.Each block of data constituting the block chain stores a block hash value. The block hash value is a value used for block verification, and the corresponding node can verify the data block by decrypting all data contained in the data block and extracting the hash value of the decrypted data and comparing it with the block hash value stored in the data block. have. As the amount of data stored in the data block increases, the data decoding time increases, which may cause a problem that the computer resource is excessively consumed.

본 발명이 이루고자 하는 기술적 과제는, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 블록 체인을 기반으로 한 데이터 블록의 생성 장치를 제공하기 위한 것이다.The technical problem to be achieved by the present invention is to reduce network traffic demand, reduce processing time for data blocks, reduce hardware resources, and improve the verification time of data blocks. It is intended to provide.

또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 전술한 이점을 갖는 데이터 블록의 생성 방법을 제공하는 것이다.In addition, another technical problem to be achieved by the present invention is to provide a method for generating a data block having the above-described advantages.

본 발명의 일 실시예에 따른 데이터 블록의 생성 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다. A method of generating a data block according to an embodiment of the present invention includes: obtaining at least one binding data having public or private characteristics; Determining a binding key having a decryption authority level for each binding data; Encrypting the binding data using the binding key; And generating a data block including at least a portion of the encrypted binding data and the binding key.

일 실시예에서, 상기 데이터 블록은, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함할 수 있다. In one embodiment, the data block includes a header area including index information indicating the type of the at least one binding data, a public area in which a hash value of the at least one binding data stored in the data block is stored, and the encryption It may include a binding area in which at least a portion of the binding data and the binding key is stored, and a private area in which encrypted private data is stored.

일 실시예에서, 상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함할 수 있다.In one embodiment, the header area includes at least one of a hash value of the encrypted private area, at least a portion of a first public key that restricts access of an unauthorized node to the data block, and an integrity verification number of the data block It may further include.

일 실시예에서, 상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함할 수 있다. In one embodiment, the public area includes a second public key including public data including type information regarding a type of information records included in the data block and at least a part of an encryption key for decrypting the public data. It may include.

일 실시예에서, 상기 제 2 퍼블릭 키는 상기 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용될 수 있다. 예를 들어, 상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함할 수 있다.In one embodiment, the second public key can be used to verify the first public key retrieved from at least a portion of the first public key. For example, the second public key may include at least a part or all of the searched first public key.

일 실시예에서, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.In an embodiment, the method may further include storing at least one extension data in the binding area of the data block. For example, the binding key corresponds to a decryption authorization level, and the at least one extended data may be encrypted according to the decryption authorization level.

일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.In one embodiment, the step of additionally storing the extended data includes: storing index information indicating the type of the extended data in the header area; And storing the hash value of the extended data in the public area.

일 실시예에서, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.In one embodiment, the step of reducing the data block may further include generating a derived data block. For example, in the generating of the derived data block, the selected binding data among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected data are stored in the derived binding data area. step; Storing modified index information indicating the type of the selected binding data in a derived header area; The method may include storing the modified hash value of the selected binding data in a derived public area.

일 실시예에서, 상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함할 수 있다.In one embodiment, the index information may include at least one of finance, health, insurance, education, and finance.

본 발명의 일 실시예에 따른 데이터 블록의 처리 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하는 단계; 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계; 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계; 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다. A method for processing a data block according to an embodiment of the present invention includes: encrypted data including at least one binding data having public or private characteristics and at least a portion of a binding key having a decryption authority level for each binding data Receiving a block; Checking the binding data accessible according to a decryption authority level for the binding data; Extracting at least a portion of a binding key for the identified binding data; And decrypting the binding data using at least a portion of the extracted binding key.

일 실시예에서, 상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다.In one embodiment, decrypting the binding data using at least a portion of the extracted binding key may include: retrieving the entire contents of the binding key from at least a portion of the extracted binding key; And decrypting the binding data using the retrieved binding key.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함할 수 있다. 일 실시예에서, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함할 수 있다.In one embodiment, the method of processing the data block includes index information indicating the type of the at least one binding data, a hash value of the encrypted private area, and a first public key that restricts access of the unauthorized node to the data block Decoding a header area including at least a portion of at least a portion of the data block and the number of verifying integrity of the data block; And public data including a hash value of the binding area matching the type of information included in the data block and the type of information based on the information of the decoded header area, and encryption for decoding the public data. The method may further include decrypting the public area including the second public key including at least a portion of the key. In one embodiment, the method further includes retrieving the entire contents of the first public key from at least a portion of the first public key, wherein at least a portion of the retrieved first public key and at least a portion of the second public key are retrieved. In comparison, the method may further include verifying the retrieved first public key.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함할 수 있다.In one embodiment, the method of processing the data block may further include determining the type of the binding data through the index information.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함할 수 있다.In one embodiment, the method of processing the data block may further include identifying a type of the information record included in the data block.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함할 수 있다.In one embodiment, the method of processing the data block may further include verifying the decrypted binding data by comparing the hash value of the binding region with the hash value of the decrypted binding data.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다. In one embodiment, the method of processing the data block may further include the step of additionally storing at least one extended data in the binding area of the data block. For example, the binding key corresponds to a decryption authorization level, and the at least one extended data may be encrypted according to the decryption authorization level.

일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.In one embodiment, the step of additionally storing the extended data includes: storing index information indicating the type of the extended data in the header area; And storing the hash value of the extended data in the public area.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.In one embodiment, the method of processing the data block may further include generating a derived data block by reducing the data block. For example, in the generating of the derived data block, the selected binding data among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected data are stored in the derived binding data area. step; Storing modified index information indicating the type of the selected binding data in a derived header area; The method may include storing the modified hash value of the selected binding data in a derived public area.

일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함할 수 있다.In one embodiment, the method of processing the data block may further include decoding and verifying at least one binding data among binding data stored in the binding area of the data block.

본 발명의 일 실시예에 따른 데이터 블록의 구조를 이용하는 노드 장치 또는 데이터 처리 시스템은 상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며, 상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고, 상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고, 상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고, 상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고, 상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고, 상기 프라이빗 영역은 상기 노드 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함할 수 있다.A node device or data processing system using a structure of a data block according to an embodiment of the present invention multiplexes decryption rights for encrypted information in the data block structure, and the data block structure includes a header area, a public area, and a binding Includes an area and a private area, the header area includes at least a portion of an index information indicating the type of the binding area, a hash value of the private area, and a first public key that restricts access of an unauthorized node to the data block, and Public data including at least one of the number of times of verifying the integrity of the data block, and the public area including public information including type information on the type of information records included in the data block, and at least an encryption key for decrypting the public data Second public containing some And at least one of a hash value of the binding region matching the key and the type information, wherein the binding region sets at least one binding data having public or private characteristics and a decryption authority level for the at least one binding data. And at least one binding key, the at least one binding data and the at least one binding key are paired, and the private region is a private data decryptable by the node device and a hash of the private data. It can contain values.

본 발명의 일 실시예에 따른 데이터 블록 처리 노드는 메모리; 및 적어도 하나의 프로세서를 포함할 수 있다. 예를 들어, 상기 프로세서는, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화할 수 있다.A data block processing node according to an embodiment of the present invention includes a memory; And at least one processor. For example, the processor receives an encrypted data block including at least one binding data having public or private characteristics and at least a portion of a binding key having a decryption authority level for each binding data, and the binding Check the accessible binding data according to the decryption authority level for data, extract at least a portion of the binding key for the identified binding data, and decrypt the binding data using at least a portion of the extracted binding key You can.

일 실시예에서, 상기 프로세서는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화할 수 있다.In one embodiment, the processor may retrieve the entire contents of the binding key from at least a portion of the extracted binding key, and decrypt the binding data using the retrieved binding key.

일 실시예에서, 상기 프로세서는, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화할 수 있다.In one embodiment, the processor includes at least a portion of index information indicating the type of the at least one binding data, a hash value of the encrypted private area, and a first public key that restricts access of the unauthorized node to the data block. , And decoding a header area including at least one of the number of times of integrity verification of the data block, and matching the type of information and the type of information included in the data block based on the information of the decoded header area. A public area including a second public key including at least a part of an encryption key for decrypting the public data and public data including a hash value of the binding area.

일 실시예에서, 상기 프로세서는, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증할 수 있다.In one embodiment, the processor retrieves the entire contents of the first public key from at least a portion of the first public key, and compares at least a portion of the retrieved first public key with at least a portion of the second public key Thus, the retrieved first public key can be verified.

일 실시예에서, 상기 프로세서는, 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인할 수 있다.In one embodiment, the processor may check the type of the binding data through the index information.

일 실시예에서, 상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인할 수 있다.In one embodiment, the processor may check the type of information record included in the data block.

일 실시예에서, 상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증할 수 있다.In one embodiment, the processor may verify the decrypted binding data by comparing the hash value of the binding region with the hash value of the decrypted binding data.

일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장할 수 있다. 또한, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.In one embodiment, the processor may additionally store at least one extended data in the binding area of the data block. Further, the binding key corresponds to a decryption authorization level, and the at least one extension data can be encrypted according to the decryption authorization level.

일 실시예에서, 상기 프로세서는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장할 수 있다.In one embodiment, the processor may store index information indicating the type of the extended data in the header area and a hash value of the extended data in the public area.

일 실시예에서, 상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장할 수 있다.In one embodiment, the processor shrinks the data block to generate a derived data block, and the selected binding data among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected data May be stored in the derived binding data area, modified index information indicating the selected binding data type in the derived header area, and a modified hash value of the selected binding data may be stored in the derived public area.

일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증할 수 있다.In one embodiment, the processor may decrypt and verify at least one of the binding data stored in the binding area of the data block.

본 발명의 일 실시예에 따른 복수의 노드들 사이에서 공유되는 데이터 처리 시스템은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및 상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함할 수 있다.A data processing system shared among a plurality of nodes according to an embodiment of the present invention acquires at least one binding data having public or private characteristics, and a binding key having a decryption authority level for each binding data. A data block generation node for determining, encrypting the binding data using the binding key, and generating a data block including the encrypted binding data and at least a portion of the binding key; And at least a portion of a binding key having at least one binding data having the public or private property and a decryption authorization level for each binding data, and a decryption authorization level for the binding data. And a data block processing node that checks the binding data accessible according to, extracts at least a portion of the binding key for the identified binding data, and decrypts the binding data using at least a portion of the extracted binding key. can do.

본 발명의 실시예에 따르면, 데이터 블록 내의 암호화된 정보들에 대하여 복호화 권한을 다중화함으로써, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 노드 장치가 제공될 수 있다.According to an embodiment of the present invention, by multiplexing the decryption authority for the encrypted information in the data block, the network traffic demand is reduced, the processing time for the data block is reduced, the hardware resource is reduced, and the verification time of the data block A node device may be provided that improves.

또한, 본 발명의 다른 실시예에 따르면, 상기 이점을 갖는 데이터 블록을 용이하게 생성하기 위한 데이터 블록의 생성 방법이 제공될 수 있다. In addition, according to another embodiment of the present invention, a method for generating a data block for easily generating a data block having the above advantages can be provided.

또한, 본 발명의 또 다른 실시예에 따르면, 다중화된 복호화 권한 레벨에 기초하여 데이터 블록의 분할 및 재조합을 가능하게 하여 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다. In addition, according to another embodiment of the present invention, it is possible to divide and recombine data blocks based on the multiplexed decryption authority level, thereby reducing the amount of hardware resources required for data decryption and verification and network resources due to data block transmission. I can do it.

도 1는 본 발명의 일 실시예에 따른 블록 체인을 기반으로 한 데이터 처리 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 블록 체인의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록에 대한 노드별 접근 권한을 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록 내에 바인딩 데이터를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록 내의 바인딩 데이터를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록의 통합 동작을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 노드의 구성을 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록의 생성 동작을 도시한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록을 복호화하는 동작을 도시한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 블록을 제공하는 동작을 도시한 순서도이다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록을 검증하는 동작 도시한 순서도이다.
1 shows a data processing system based on a blockchain according to an embodiment of the present invention.
2 is a diagram showing the configuration of a blockchain according to an embodiment of the present invention.
3 is a diagram showing the configuration of a data block according to an embodiment of the present invention.
4 is a diagram illustrating access authority for each node of a data block according to an embodiment of the present invention.
5A is an exemplary diagram for explaining an operation of adding binding data in a data block according to an embodiment of the present invention, and FIG. 5B is an exemplary diagram for explaining an operation for deleting binding data in a data block, and FIG. 5C Is an exemplary diagram for explaining an operation of replicating a data block, and FIG. 5D is an exemplary diagram for explaining an integrated operation of a data block.
6 is a block diagram showing the configuration of a node according to an embodiment of the present invention.
7 is a flowchart illustrating an operation of generating a data block according to an embodiment of the present invention.
8 is a flowchart illustrating an operation of decoding a data block according to an embodiment of the present invention.
9 is a flowchart illustrating an operation of providing a data block according to an embodiment of the present invention.
10 is a flowchart illustrating an operation of verifying a data block according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 발명을 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.The embodiments of the present invention are provided to more fully describe the present invention to those of ordinary skill in the art, and the following embodiments can be modified in various other forms, and the scope of the present invention is as follows. It is not limited to the Examples. Rather, these examples are provided to make the present invention more faithful and complete, and to fully convey the spirit of the present invention to those skilled in the art.

또한, 이하의 도면에서 각 층의 두께나 크기는 설명의 편의 및 명확성을 위하여 과장된 것이며, 도면상에서 동일 부호는 동일한 요소를 지칭한다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는" 는 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.In addition, in the following drawings, the thickness or size of each layer is exaggerated for convenience and clarity of description, and the same reference numerals in the drawings refer to the same elements. As used herein, the term “and / or” includes any and all combinations of one or more of the listed items.

본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.The terminology used herein is used to describe a specific embodiment and is not intended to limit the present invention. As used herein, singular forms may include plural forms unless the context clearly indicates otherwise. Also, as used herein, “comprise” and / or “comprising” specifies the shapes, numbers, steps, actions, elements, elements and / or the presence of these groups. And does not exclude the presence or addition of one or more other shapes, numbers, actions, elements, elements and / or groups.

본 명세서에서 제 1, 제 2 등의 용어가 다양한 부재, 부품, 영역, 층들 및/또는 부분들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부분들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 하나의 부재, 부품, 영역, 층 또는 부분을 다른 영역, 층 또는 부분과 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제 1 부재, 부품, 영역, 층 또는 부분은 본 발명의 가르침으로부터 벗어나지 않고서도 제 2 부재, 부품, 영역, 층 또는 부분을 지칭할 수 있다.Although the terms first, second, etc. are used herein to describe various members, parts, regions, layers and / or parts, these members, parts, regions, layers and / or parts are defined by these terms It is obvious that not. These terms are only used to distinguish one member, part, region, layer or portion from another region, layer or portion. Accordingly, the first member, component, region, layer or portion described below may refer to the second member, component, region, layer or portion without departing from the teachings of the present invention.

이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명된다. 도면들에 있어서, 예를 들면, 부재들의 크기와 형상은 설명의 편의와 명확성을 위하여 과장될 수 있으며, 실제 구현시, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 부재 또는 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 된다. 이하에서는, 도면을 참조하여 본 발명의 다양한 실시예들에 대해 설명하기로 한다.Hereinafter, embodiments of the present invention will be described with reference to the drawings schematically showing ideal embodiments of the present invention. In the drawings, for example, the size and shape of members may be exaggerated for convenience and clarity of description, and in actual implementation, deformations of the illustrated shape can be expected. Accordingly, embodiments of the present invention should not be construed as limited to the specific shapes of the members or regions shown herein. Hereinafter, various embodiments of the present invention will be described with reference to the drawings.

도 1는 본 발명의 일 실시예에 따른 블록 체인(BC)을 기반으로 한 데이터 처리 시스템(10)을 도시한다.1 shows a data processing system 10 based on a blockchain (BC) according to an embodiment of the present invention.

도 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)는 각각 자신이 필요한 정보를 포함하는 데이터 블록만 저장하는 노드를 지칭할 수 있다. Referring to FIG. 1, the data processing system 10 includes a plurality of nodes, such as a first client node CN1, a second client node CN2, and a server node SN, and the first client node CN1 ), The second client node CN2 and the server node SN may be connected to the network NW. In FIG. 1, it has been exemplified that two client nodes CN1 and CN2 and one server node SN are connected to the network NW, but two or more client nodes and one or more server nodes SN are connected to the network ( NW). In the present invention, the server node SN refers to a node that includes the entire data block DB in the blockchain BC, and the client nodes CN1 and CN2 each store only data blocks that contain information necessary for them. Node.

각각의 노드는 서로 동일한 구성을 가지거나 서로 다른 구성을 가질 수 있다. 일 실시예에서, 데이터 처리 시스템(10) 내의 각각의 노드는, 도 6를 참조하여 후술하는 것과 같이, 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있으며, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 휴대형 멀티미디어 플레이어(PMP: Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone) 및 이동 통신 단말기(Mobile Communication Terminal) 중 적어도 어느 하나로 구현될 수 있다.Each node may have the same configuration or different configurations. In one embodiment, each node in the data processing system 10 may include a block generation unit 602, a storage unit 604, and a communication unit 606, as described below with reference to FIG. Tablet PCs, Laptops, Personal Computers (PCs), Portable Multimedia Players (PMPs), Wireless Communication Terminals, Smartphones, and Mobile Communication Terminals (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) 사이에 연결을 갖는 것을 의미할 수 있다. In one embodiment, the server node SN may store at least one blockchain BC in which a plurality of data blocks DB are chained to each other like a chain. For example, one first data block DB includes three binding data BD-1, BD-2, and BD-3, and the other second data block includes one binding data BD4. The first data block DB and the second data block DB may be connected in a chain. In one embodiment, the chain connection is performed between the first data block DB and the second data block DB by allowing the second data block DB to include information on the block hash value of the first data block DB. It can mean having a connection to.

일 실시예에서, 블록 체인(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)을 수신하여 저장할 수도 있다.In one embodiment, each data block DB constituting the block chain BC includes at least one binding data (BD-1, BD-2, BD-3, BD-4) having an authorization level. In addition, the binding data (BD-1, BD-2, BD-3, BD-4) can be decrypted only by nodes having an authorization level. For example, the binding data may include at least one of at least one public data designated to be publicly available and at least one private data designated to be non-publical. In one embodiment, the server node SN may receive the data blocks DB generated by the client nodes CN1 and CN2 and connect them over time to generate and store the blockchain BC. However, this is only an example, and the present invention is not limited thereto. For example, the server node SN may receive and store the respective blockchains BC generated by the client nodes CN1 and CN2.

일 실시예에서, 서버 노드(SN)는 적어도 하나의 클라이언트 노드(CN1, CN2)의 요청에 대응하여 저장된 블록 체인(BC) 또는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 제 1 클라이언트 노드(CN1) 및/또는 제 2 클라이언트 노드(CN2)로 전송할 수 있다.In one embodiment, the server node SN is configured to store a stored block chain BC or at least some data blocks DB constituting the block chain BC in response to requests from at least one client node CN1, CN2. It may be transmitted to the first client node CN1 and / or the second client node CN2.

일 실시예에서, 제 1 클라이언트 노드(CN1) 및 제 2 클라이언트 노드(CN2)는 블록 체인(BC)의 원소인 데이터 블록(DB)을 생성할 수 있다. 일 실시예에서, 각각의 데이터 블록(DB)은, 도 2를 참조하여 후술하는 바와 같이, 특정 노드에서 복호화가 가능하도록 권한 레벨이 부여된 바인딩 데이터(BD)를 포함할 수 있다. 권한 레벨이 부여된 바인딩 데이터(BD)는 데이터 처리 시스템(10)에 포함된 노드 중 지정된 권한 레벨을 갖는 노드만 읽고 쓰기가 가능하도록 암호화될 수 있다. 구체적으로, 데이터 블록 내의 바인딩 데이터(BD)들에 대하여 복호화 권한을 다중화하여, 해당 권한 레벨을 갖는 노드들이 해당 바인딩 데이터(BD)들에 대하여 복호화 할 수 있다. In one embodiment, the first client node CN1 and the second client node CN2 may generate a data block DB that is an element of the blockchain BC. In one embodiment, each data block DB, as described below with reference to FIG. 2, may include binding data BD to which an authorization level has been granted to enable decoding at a specific node. The binding data BD to which the authority level has been granted may be encrypted such that only nodes having a specified authority level among nodes included in the data processing system 10 can read and write. Specifically, by multiplexing the decryption rights for the binding data (BD) in the data block, nodes having the corresponding permission level can decrypt the corresponding binding data (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)을 저장할 수 있다. In one embodiment, at least one node of the first client node CN1 and the second client node CN2 may extract and store some data blocks DB of the blockchain BC stored in the server node SN. have. For example, as shown, the first client node CN1 has binding data (eg, BD-1 and BD-) corresponding to its authorization level from the entire data block DB in the blockchain BC. 3) extract and store the data block (DB1), or request binding data (for example, BD-1 and BD-3) corresponding to their authority level to the server node SN, for example, binding data (for example For example, a data block DB1 including BD-1 and BD-3) may be stored. Similarly, the second client node CN2 is a data block including binding data (for example, BD-2 and BD-4) corresponding to its authorization level from the entire data block DB in the blockchain BC. (DB2), or request binding data (e.g., BD-2 and BD-4) corresponding to their authority level to the server node SN and bind data (e.g., BD-4 and BD) A data block DB2 including -4) may be stored.

더하여, 도 1의 서버 노드(SN)에 저장된 블록 체인(BC) 내에 새로운 데이터 블록(BD)가 추가되거나, 데이터 블록(BD) 내에 새로운 바인딩 데이터에 더 추가될 수 있고(도 5a), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 기존 데이터 블록(BD)가 삭제되거나, 데이터 블록(BD) 내에 기존 바인딩 데이터에 삭제될 수 있고(도 5b), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터가 복제되어 새로운 블록 데이터를 생성할 수 있으며(이하, 축소 복제라 지칭함, 도 5c), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터만 추출되어 새로운 블록 데이터를 생성할 수 있다(이하, 분할이라 지칭함, 도 5d). 또 다른 실시예에서, 후술할 도 5e에서처럼, 두 개의 데이터 블록이 하나의 데이터 블록으로 병합될 수 있다. In addition, a new data block BD may be added in the block chain BC stored in the server node SN of FIG. 1, or may be further added to new binding data in the data block BD (FIG. 5A), and the server node The existing data block BD may be deleted in the block chain BC stored in the SN, or may be deleted in the existing binding data in the data block BD (FIG. 5B), and the block chain stored in the server node SN ( Some binding data is copied from the data block BD in BC) to generate new block data (hereinafter referred to as reduced replication, FIG. 5C), and a data block in the block chain BC stored in the server node SN. Only partial binding data can be extracted from (BD) to generate new block data (hereinafter referred to as partitioning, FIG. 5D). In another embodiment, as shown in FIG. 5E to be described later, two data blocks may be merged into one data block.

구현에 있어서, 다수의 블록 체인(BC) 중 제 1 블록 체인(BC)은 금융사에서 운용되는 블록 체인(BC)일 수 있으며, 제 2 블록 체인(BC)은 보험사에서 운용되는 블록 체인(BC)일 수 있고, 제 3 블록 체인(BC)은 병원에서 운용되는 블록 체인(BC)일 수 있고, 제 4 블록 체인(BC)은 관공서에서 운용되는 블록 체인(BC)일 수 있다. 이러한 각각의 블록 체인(BC)은 각 노드간 데이터 송수신 프로토콜에 의해 구분될 수 있으며, 프로토콜의 조정을 통해 상기 금융사의 제 1 블록 체인(BC)은 제 2 블록 체인(BC), 제 3 블록 체인(BC), 제 4 블록 체인(BC), 또는 이들의 조합으로부터 추출된 적어도 하나의 데이터 블록(BD)들과 체인으로 연결될 수도 있다. In the implementation, the first blockchain BC among the plurality of blockchains BC may be a blockchain (BC) operated by a financial company, and the second blockchain (BC) is a blockchain (BC) operated by an insurance company It may be, the third blockchain (BC) may be a blockchain (BC) operating in a hospital, the fourth blockchain (BC) may be a blockchain (BC) operating in a government office. Each of these block chains (BC) can be divided by a data transmission / reception protocol between each node, and through adjustment of the protocol, the first block chain (BC) of the financial company is the second block chain (BC) and the third block chain. It may be chained with at least one data block (BD) extracted from the (BC), the fourth block chain (BC), or a combination thereof.

전술한 바와 같이, 공개용 데이터 또는 비공개용 데이터를 데이터 블록(DB) 내의 바인딩 데이터(BD)의 영역에 수용함으로써, 블록 체인 구조에서 공개되지 않아야 하는 중요 정보와 공개가 필요한 정보를 동시에 수용할 수 있다. 또한, 데이터 블록(DB) 내의 바인딩 데이터(BD)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 병합, 데이터 블록(DB)의 축소 복제 그리고 분할이 가능함으로써, 유연하게 데이터 블록을 활용할 수 있다. 또한, 오리지널 데이터 블록의 일부를 추출하여 목적에 맞게 축소 생성된 데이터 블록을 생성함으로써, 블록 전송에 따른 네트워크 트래픽 요구량을 축소시킬 수 있으며, 하드웨어 자원을 줄일 수 있다. As described above, by accommodating public data or non-public data in the area of the binding data BD in the data block DB, it is possible to simultaneously accommodate important information that should not be disclosed in the blockchain structure and information that needs to be disclosed. . In addition, the addition or deletion of the binding data BD in the data block DB, the addition or deletion of the data block DB in the block chain BC, the merging of the data block DB in the block chain BC, the data block By reducing and replicating (DB) and partitioning, data blocks can be flexibly used. In addition, by extracting a portion of the original data block and generating a data block that is reduced and generated according to the purpose, it is possible to reduce the network traffic demand according to the block transmission and reduce hardware resources.

더불어, 데이터 블록 내의 암호화된 바인딩 데이터들에 대하여 복호화 권한을 다중화함으로써, 특정 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 경우와 비교하여 데이터 블록의 처리 시간을 감소시킬 수 있으며, 데이터 블록의 검증 시간을 개선시킬 수 있다. 이로 인해, 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다. In addition, by multiplexing the decryption authority for the encrypted binding data in the data block, the node storing the specific data block (DB) decrypts only the part of the blockchain when decrypting the data block (DB), thereby decrypting the entire existing blockchain. In comparison with the case, the processing time of the data block can be reduced and the verification time of the data block can be improved. Due to this, it is possible to reduce the required amount of hardware resources for data decoding and verification and network resources according to data block transmission.

또한, 데이터 블록의 소유자(예컨대, 금융사, 보험사, 병원)를 구분함으로써, 블록 체인 내에서 부가적으로 데이터 거래 시스템을 구현할 수 있으며, 전체 공개가 아닌 일부만 공개된 퍼블릭 키 제공으로 데이터 마이닝을 위한 하드웨어 자원 요구량을 축소할 수 있다. In addition, by distinguishing the owners of data blocks (e.g., financial companies, insurance companies, hospitals), it is possible to additionally implement a data transaction system within the blockchain, and hardware for data mining by providing a public key that is only partially public rather than fully public Reduce resource requirements.

더불어, 체인 연결을 위한 데이터블록 내 암호화된 영역의 해시 값을 이용하여, 블록 복호화 이전에 원하는 데이터를 포함하는 블록을 찾아내거나 복호화된 데이터의 무결성을 간단한 프로세스로 구현할 수 있다. In addition, by using the hash value of the encrypted area in the data block for chain connection, it is possible to find a block containing the desired data before decrypting the block or to implement the integrity of the decrypted data in a simple process.

도 2는 본 발명의 일 실시예에 따른 블록 체인(BC)의 구성을 도시한 도면이다.2 is a block diagram of a block chain (BC) according to an embodiment of the present invention.

도 2를 참조하면, 블록 체인(BC)은 다수 개의 데이터 블록들(DB)이 사슬 형태로 연결되어 이루어진 것으로서, 각각의 데이터 블록(DB)은 바인딩 데이터(BD) 및 바인딩 데이터(BD)를 고유한 값으로 표현한 해시 값(BDH)을 포함할 수 있다. 또한, 각각의 데이터 블록은 자신의 블록 해시 값을 저장할 수 있다. 예를 들어, 자신의 블록 해시 값은 이전 데이터 블록의 바인딩 데이터(BD)의 해시 값과 자신의 데이터 블록 내의 바인딩 데이터를 입력으로 한 해시 함수에 의해 결정될 수 있다. 그러나, 이는 예시적일 뿐, 본원발명은 이에 한정되는 것이 아니다. 예를 들어, 일반적인 블록 체인을 구성하는 데이터 블록은 이전 블록의 해시 값도 함께 포함하고 있으므로, 블록 체인의 각 데이터 블록은 사슬처럼 서로 연결되어 이어질 수 있으며, 이전 블록의 해시 값은 블록 해시 생성에 이용될 수 있다. 또한, 데이터 블록은 넌스(Nonce) 값, 타임 스탬프(Time Stamp)을 더 포함할 수도 있다. Referring to FIG. 2, the block chain BC is formed by connecting a plurality of data blocks DB in a chain form, and each data block DB uniquely identifies the binding data BD and the binding data BD. It may include a hash value (BDH) expressed as a value. Also, each data block can store its own block hash value. For example, its block hash value may be determined by a hash function using the hash value of the binding data BD of the previous data block and the binding data in its data block as inputs. However, this is only exemplary, and the present invention is not limited thereto. For example, since the data blocks that make up a typical blockchain also contain the hash value of the previous block, each data block in the blockchain can be connected to each other like a chain, and the hash value of the previous block is used to generate the block hash. Can be used. Also, the data block may further include a nonce value and a time stamp.

일 실시예에서, 블록 체인(BC)은 노드 별로 구분될 수 있다. 예를 들어, 제 1 클라이언트 노드(도 1의 CN1 참조)에 의해 생성된 블록(DB)들은 제 1 클라이언트 노드로 정의되는 제 1 블록 체인에 연결되고, 제 2 클라이언트 노드(도 1의 CN2 참조)에 의해 생성된 블록들은 제 2 클라이언트 노드로 정의되는 제 2 블록 체인에 연결될 수 있다. 또한, 블록 체인은 노드를 구분하지 않을 수 있다. 예를 들어, 데이터 처리 시스템(10)에는 하나의 블록 체인이 정의되며 각각의 노드에서 생성되는 블록들은 생성 시간에 따라 순차적으로 블록 체인에 연결될 수도 있다.In one embodiment, the block chain (BC) can be divided for each node. For example, blocks DB generated by a first client node (see CN1 in FIG. 1) are connected to a first blockchain defined as a first client node, and a second client node (see CN2 in FIG. 1). Blocks generated by may be connected to a second blockchain defined as a second client node. Also, the blockchain may not distinguish nodes. For example, one blockchain is defined in the data processing system 10, and blocks generated at each node may be sequentially connected to the blockchain according to the creation time.

도 3은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 구성을 나타내는 도면이다.3 is a diagram showing the configuration of a data block DB according to an embodiment of the present invention.

도 3을 참조하면, 데이터 블록(DB)은 헤더 영역(HA), 퍼블릭 영역(PBA), 바인딩 영역(BA) 및 프라이빗 영역(PRA)으로 구성될 수 있으며, 바인딩 데이터(BD)는 지정된 권한 레벨을 갖는 노드에 의해서 복호화 가능하며, 프라이빗 데이터(PRD)는 데이터 블록(DB)의 최초 생성 노드만 프라이빗 데이터(PRD)를 복호화 가능할 수 있다. 그러나, 본 발명은 이들에 제한되지 않으며, 프라이빗 데이터(PRD)는 블록 체인(BC)의 소유자, 즉, 보험사, 금융사, 병원의 권한을 갖는 노드에 의해 복호화 가능하거나, 블록 체인을 소유하는 보험사, 금융사, 또는 병원을 이용하는 고객의 노드 장치에 의해 복호화 가능할 수 있다. 또한, 헤더 영역(HA)은 블록 해시 값(BLH), 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT), 제 1 퍼블릭 키(PK1) 및 무결성 검증 횟수(VN)를 포함할 수 있다.Referring to FIG. 3, the data block DB may be composed of a header area HA, a public area P B A, a binding area BA, and a private area P R A, and the binding data BD may be able to be decrypted by the node that has the specified permission level, and private data (P R D) is private data (P R D), only the first node of the generated data block (DB) decoding. However, the present invention is not limited to these, and the private data (P R D) can be decrypted by the owner of the blockchain (BC), that is, the node having the authority of the insurance company, the financial company, and the hospital, or own the blockchain. It may be decryptable by a node device of a customer using an insurance company, a financial company, or a hospital. In addition, the header area (HA) is a block hash value (BLH), the private data hash value index (BDT), the first public key (PK1) of the (P R DH), the binding data (BD) of (P R D) and It may include the number of integrity verification (VN).

일 실시예에서, 블록 해시 값(BLH)은 데이터 블록(DB)의 식별자 역할을 하는 것으로 데이터 블록 내에 저장된 권한 레벨을 가지는 바인딩 데이터(BD)의 해시 값에 대하여 사전 설정된 해시 알고리즘을 적용하여 생성할 수 있다. 다른 예로, 블록 해시 값(BLH)을 생성하는데 있어서 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT) 등과 같은 데이터 블록(BD)에 저장된 다른 정보에 대하여 해시 알고리즘을 적용할 수도 있다.In one embodiment, the block hash value (BLH) acts as an identifier of the data block (DB) and is generated by applying a preset hash algorithm to the hash value of the binding data (BD) having a permission level stored in the data block. You can. As another example, in generating the block hash value BLH, other information stored in the data block BD, such as the hash value (P R DH) of the private data (P R D), the index (BDT) of the binding data (BD), and the like. A hash algorithm can also be applied to.

일 실시예에서, 프라이빗 데이터(PRD)의 해시 값(PRDH)은 프라이빗 데이터 영역(PRA)에 저장된 프라이빗 데이터(PRD)의 식별자 역할을 하는 것으로, 저장된 프라이빗 데이터(PRD)로부터 생성된 머클트리 루트에 대한 해시 값일 수 있다. 예를 들어, 제 1 프라이빗 데이터 내지 제 3 프라이빗 데이터가 저장된 경우, 제 1 프라이빗 데이터의 해시 값과 제 2 프라이빗 데이터의 해시 값을 합한 해시 값을 생성하고, 이를 제 3 프라이빗 데이터 해시 값과 다시 합한 최종 해시 값을 프라이빗 데이터의 해시 값으로 사용할 수 있다. In one embodiment, the hash value of the private data (P R D) (P R DH) is to be identifiers of the private data (P R D) stored in the private data area (P R A), stored in the private data (P It may be a hash value for the Merkle tree root generated from R D). For example, when the first private data to the third private data are stored, a hash value that sums the hash values of the first private data and the hash values of the second private data is generated, and the sum of the hash values of the third private data is added again. The final hash value can be used as the hash value of the private data.

일 실시예에서, 바인딩 데이터의 인덱스(BDT)는 바인딩 데이터 영역(BA)에 저장된 바인딩 데이터(BD)의 타입을 나타내는 정보일 수 있다. 예를 들어, 인덱스 정보는, 금융업과 관련된 데이터, 의료업과 관련된 데이터, 보험업과 관련된 데이터 중 적어도 하나를 지시하는 정보를 포함할 수 있다. 또한, 인덱스 정보는 각각의 바인딩 데이터(BD)에 부여된 권한 레벨을 지시하는 정보를 포함할 수도 있다.In one embodiment, the index BDT of the binding data may be information indicating the type of the binding data BD stored in the binding data area BA. For example, the index information may include information indicating at least one of data related to the financial industry, data related to the medical industry, and data related to the insurance industry. Further, the index information may include information indicating the level of authority granted to each binding data BD.

일 실시예에서, 제 1 퍼블릭 키(PK1)는 바인딩 영역을 복호화하기 위한 복호화 키를 연산하기 위해 사용되는 정보일 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)는 적어도 일부만 공개되고 나머지 일부는 공개되지 않은 형태로 제공될 수 있다. 이로 인하여, 네트워크(NW)에 포함된 인증되지 않은 노드는 복호화 키를 알 수 없어 데이터 블록(DB)의 복호화가 제한될 수 있다. 또한, 제 1 퍼블릭 키(PK1)의 공개 정도는 변경될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)의 공개 정도가 많은 경우, 그렇지 않은 경우보다 복호화 키를 연산하는데 소요되는 시간 및 하드웨어 요구량이 줄어들 수 있다.In one embodiment, the first public key PK1 may be information used to calculate a decryption key for decrypting the binding region. For example, the first public key PK1 may be provided in a form in which at least a part is disclosed and the other part is not disclosed. Due to this, the unauthenticated node included in the network NW may not know the decryption key, so decryption of the data block DB may be restricted. Also, the degree of disclosure of the first public key PK1 may be changed. For example, when the first public key PK1 has a high degree of disclosure, time and hardware requirements for calculating the decryption key may be reduced compared to the case where the first public key PK1 is disclosed.

일 실시예에서, 무결성 검증 횟수(VN)는 데이터 블록 또는 바인딩 데이터에 대하여 수행된 오류 검증 횟수를 나타낸다.In one embodiment, the number of integrity verifications (VN) represents the number of error verifications performed on data blocks or binding data.

일 실시예에서, 퍼블릭 영역(PBA)은 제 2 퍼블릭 키(PK2) 및 바인딩 데이터(BD)의 해시 값(BDH)을 포함할 수 있다. 예를 들어, 제 2 퍼블릭 키(PK2)는 제 1 퍼블릭 키(PK1)를 이용하여 획득된 복호화 키가 정상적인 키인지 판단하는데 사용되는 정보로, 제 1 퍼블릭 키(PK1)로 연산된 복호화 키와 제 2 퍼블릭 키(PK2)를 비교하고 두 키가 서로 동일하면 정상적인 키가 획득된 것으로 판단할 수 있다. 또한, 제 2 퍼블릭 키(PK2)의 적어도 일부가 공개되지 않은 형태로 제공될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)를 사용하여 연산된 암호화키로 제 2 퍼블릭 키(PK2)를 복호화하고 제 1 퍼블릭 키(PK1)와 제 2 퍼블릭 키(PK2)를 연산하여 바인딩 영역 복호화를 위한 암호화 키를 획득할 수 있다. 이는 개방형 블록 체인 내에서 전체 공개되는 퍼블릭 키가 아닌 일부만 공개된 퍼블릭 키 제공으로써, 데이터 복호화를 위한 하드웨어 자원 요구량을 축소할 수 있다. In one embodiment, the public area P B A may include a hash value BDH of the second public key PK2 and binding data BD. For example, the second public key PK2 is information used to determine whether the decryption key obtained using the first public key PK1 is a normal key, and the decryption key calculated with the first public key PK1. If the second public key PK2 is compared and the two keys are the same, it can be determined that a normal key has been obtained. Also, at least a portion of the second public key PK2 may be provided in an unpublished form. For example, decrypting the second public key (PK2) with the encryption key calculated using the first public key (PK1) and decrypting the binding area by calculating the first public key (PK1) and the second public key (PK2) For obtaining an encryption key. This provides a public key that is only partially public rather than the public key that is publicly disclosed in the open blockchain, thereby reducing the hardware resource requirement for data decryption.

일 실시예에서, 바인딩 영역(BA)은 복수의 바인딩 키(BK1, BK2, …, BKn) 및 각각의 바인딩 키(BK1, BK2, …, BKn)로 복호화할 수 있는 바인딩 데이터(BD1, BD2, …, BDn)를 포함할 수 있다. 예를 들어, 복수의 바인딩 키(BK1, BK2, …, BKn)는 서로 다른 권한 레벨을 가질 수 있다. 또한, 바인딩 데이터(BD1, BD2, …, BDn)는 다른 노드에 공개가 가능한 정보로, 나이, 거주지역, 직종, 소득수준, 자산 상태 등과 같이 개인 특정이 불가능한 정보 레코드를 포함할 수 있다. 또한, 바인딩 영역이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보는 퍼블릭 영역(PBA)에 저장될 수 있다.In one embodiment, the binding area BA is a plurality of binding keys (BK1, BK2, ..., BKn) and binding data (BK1, BK2, ..., BKn) that can be decrypted with the binding data (BD1, BD2, …, BDn). For example, the plurality of binding keys BK1, BK2, ..., BKn may have different permission levels. In addition, the binding data (BD1, BD2, ..., BDn) is information that can be disclosed to other nodes, and may include information records that cannot be personally identified, such as age, residence, occupation, income level, and asset status. In addition, type information regarding the type of information records included in the binding area may be stored in the public area P B A.

일 실시예에서, 프라이빗 영역(PRA)은 데이터 블록(DB)을 생성한 생성 노드만 복호화할 수 있는 프라이빗 데이터(PRD)를 포함할 수 있다. 예를 들어, 프라이빗 데이터(PRD)는 생성 노드가 별도로 가지고 있는 복호화 키에 의해서만 복호화될 수 있다. 예컨대, 프라이빗 데이터(PRD)는 다른 노드에 공개되지 않아야 하는 정보로, 예를 들어, 주민 번호, 이름 등과 같이 개인 특정이 가능한 정보를 포함할 수 있다.In one embodiment, the private area (P R A) may include private data (P R D) that can only decrypt the generating node that generated the data block (DB). For example, the private data (P R D) may be decrypted only by a decryption key separately owned by the generating node. For example, the private data (P R D) is information that should not be disclosed to other nodes, and may include personally identifiable information such as, for example, social security numbers and names.

도 4는 본 발명의 일 실시예에 따른 데이터 블록(DB)에 대한 노드별 접근 권한을 도시한 도면이다.4 is a diagram illustrating access authority for each node for a data block DB according to an embodiment of the present invention.

도 4를 참조하면, 데이터 블록에(DB) 저장된 다수의 바인딩 데이터는 각각의 권한 레벨을 가지고 있으며, 노드들은 데이터 블록(DB)으로부터 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터만 접근하여 복호화할 수 있다. 예를 들어, 노드들은 데이터 블록(DB)의 헤더 영역(HA)에서 퍼블릭 키를 추출할 수 있으며, 추출된 퍼블릭 키를 이용하여 퍼블릭 영역(PBA)을 복호화함으로써, 상기 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터를 확인할 수 있다. Referring to FIG. 4, a plurality of binding data stored in a data block (DB) has respective permission levels, and nodes can access and decrypt only binding data corresponding to their own permission level from the data block (DB). have. For example, the nodes can extract the public key from the header area (HA) of the data block (DB), and decrypt the public area (P B A) using the extracted public key, thereby having the authority level of the user. You can check the binding data corresponding to.

일 실시예에서, 데이터 블록(DB)의 헤더 영역(HA)과 퍼블릭 영역(PBA)은 노드들이 복호화 가능한 바인딩 데이터를 확인하는데 사용되는 영역으로, 데이터 처리 시스템에 포함된 모든 노드(all node)가 접근할 수 있다.In one embodiment, the header area (HA) and the public area (P B A) of the data block (DB) are areas used to identify binding data that nodes can decrypt, and all nodes included in the data processing system (all nodes) ) Is accessible.

일 실시예에서는 레벨 1부터 레벨 n까지의 권한을 정의하였으며 레벨 1, 레벨 2 및 레벨 3은 각각 바인딩 영역(BA)의 제 1 영역(BA1), 제 2 영역(BA2) 및 제 3 영역(BA3)에 접근이 가능한 레벨이고, 레벨 n은 바인딩 영역(BA)의 전체 영역에 접근이 가능한 레벨로 가정한다.In one embodiment, rights from level 1 to level n are defined, and level 1, level 2, and level 3 are respectively the first area BA1, the second area BA2, and the third area BA3 of the binding area BA. ), And level n is assumed to be a level accessible to the entire area of the binding area BA.

따라서, 레벨 1의 권한을 가지는 노드(NLV1)는 데이터 블록(DB)의 헤더 영역(HA) 및 퍼블릭 영역(PBA)을 분석하여 바인딩 영역(BA)의 제 1 영역(BA1)에 접근이 가능한 바인딩 데이터가 포함되어 있다고 판단하고 제 1 영역에 저장된 바인딩 키를 이용하여 바인딩 데이터를 복호화할 수 있다. 유사하게, 레벨 2 및 레벨 3의 권한을 가지는 각각의 노드(NLV2, NLV3)도 바인딩 영역의 제 2 영역 및 제 3 영역에 저장된 바인딩 데이터만 복호화할 수 있다. 또한, 레벨 n의 권한을 가지는 노드(NLVn)는 바인딩 영역의 모든 영역에 접근이 가능하여 자신이 원하는 적어도 하나의 바인딩 데이터를 복호화할 수 있다. Accordingly, the node N LV1 having level 1 authority accesses the first area BA1 of the binding area BA by analyzing the header area HA and the public area P B A of the data block DB. It is determined that this possible binding data is included, and the binding data can be decrypted using the binding key stored in the first area. Similarly, each node (N LV2, N LV3 ) having the authority of level 2 and level 3 can only decode binding data stored in the second area and the third area of the binding area. In addition, the node (N LVn ) having the authority of level n can access all regions of the binding region and can decode at least one binding data desired by the node.

또한, 데이터 블록(DB)을 최초로 생성한 생성 노드(Nowner)는 데이터 블록(DB)에 대한 최상위 권한 레벨을 가질 수 있다. 이에 따라, 생성 노드(Nowner)는 일부 바인딩 데이터 또는 모든 바인딩 데이터를 복호화할 수 있으며, 추가적으로 프라이빗 영역(PRA)에 저장된 프라이빗 데이터도 복호화할 수 있다. 도시하지 않았지만, 바인딩 영역에 저장된 적어도 하나의 바인딩 데이터에 대하여도, 모든 노드에 의해 접근되는 것이 제한될 수도 있다.In addition, the generation node N owner who first generated the data block DB may have the highest level of authority for the data block DB. Accordingly, the generation node N owner may decrypt some binding data or all binding data, and additionally may also decrypt private data stored in the private area P R A. Although not shown, access to all nodes may be restricted even for at least one binding data stored in the binding area.

도 5a는 본 발명의 일 실시예에 따른 데이터 블록(DB) 내에 바인딩 데이터(BD)를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록(DB) 내의 바인딩 데이터(BD)를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록(DB)을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록(DB)의 통합 동작을 설명하기 위한 예시도이다.5A is an exemplary view for explaining an operation of adding binding data BD in a data block DB according to an embodiment of the present invention, and FIG. 5B deletes binding data BD in the data block DB 5C is an exemplary diagram for explaining the operation of replicating the data block DB, and FIG. 5D is an exemplary diagram for explaining the integrated operation of the data block DB.

일 실시예에서, 블록 체인은 다수의 데이터 블록들이 서로 연결된 구조를 가지며, 각각의 데이터 블록은 권한 레벨을 가지는 적어도 하나의 바인딩 데이터를 포함할 수 있다. 예를 들어, 본 예시도에 도시된 바와 같이, 제 1 데이터 블록(DB1)은 3 개의 바인딩 데이터(데이터 A, 데이터 B 및 데이터 C)를 포함하고, 제 2 데이터 블록(DB2)도 3 개의 바인딩 데이터(데이터 D, 데이터 E 및 데이터 F)를 포함하고, 제 3 데이터 블록(DB3)은 1 개의 바인딩 데이터(데이터 G)를 포함하며, 제 1 데이터 블록(DB1), 제 2 데이터 블록(DB2) 및 제 3 데이터 블록(DB3)이 서로 연결되어 블록 체인(BC)을 형성할 수 있다.In one embodiment, the blockchain has a structure in which a plurality of data blocks are connected to each other, and each data block may include at least one binding data having a permission level. For example, as shown in this exemplary diagram, the first data block DB1 includes three binding data (data A, data B and data C), and the second data block DB2 also has three bindings. Data (data D, data E and data F), the third data block (DB3) includes one binding data (data G), the first data block (DB1), the second data block (DB2) And the third data block DB3 is connected to each other to form a block chain 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)의 헤더 및 퍼블릭 영역에 저장될 수 있다. Referring to FIG. 5A, at least one node that receives a block chain (BC) may add new binding data in a data block. For example, as shown in 510 of FIG. 5A, the node may add binding data H to the first data block DB1 of the previously created blockchain BC. At this time, binding data may be added in consideration of the size of the first data block DB1. For example, when the size of the first data block DB1 exceeds the predetermined size by the addition of the binding data H, the binding data H is divided or compressed according to the predetermined size of the first data block DB1 Can be added as Further, index information indicating the type of the added binding data may be stored in the header of the data block, and the hash of the added binding data may be stored in the public area of the data block. However, this is only an example, and the present invention is not limited thereto. For example, as shown in 520 of FIG. 5A, a new data block DB4 including data H may be generated, and a new chain NC may be formed with the first data block DB1. At this time, the first data block DB1 becomes a parent data block, and the newly added (or derived) data block DB4 becomes a child data block, and information indicating this relationship may be added to each data block. . In addition, index information indicating the type of the binding data and the hash of the added binding data may be stored in the header and the public area of the newly added data block DB4, respectively.

일 실시예에서는 데이터 블록 내에 바인딩 데이터를 추가하는 것과 반대로 데이터 블록 내에 저장된 바인딩 데이터를 삭제할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터 C를 삭제함으로써 노드는 데이터 A 및 데이터 B로 구성된 데이터 블록(DB1)을 저장할 수 있다. 또한, 삭제된 바인딩 데이터의 타입을 나타내는 인덱스 정보는 데이터 블록의 헤더에서 삭제되고, 삭제된 바인딩 데이터의 해시도 데이터 블록의 퍼블릭 영역에서 삭제될 수 있다.In one embodiment, as opposed to adding binding data in a data block, binding data stored in the data block may be deleted. For example, as illustrated in FIG. 5B, the node stores the data block DB1 composed of data A and data B by deleting the data C stored in the first data block DB1 of the previously created blockchain. You can. In addition, index information indicating the type of the deleted binding data is deleted from the header of the data block, and the hash of the deleted binding data can also be deleted from the public area of the data block.

일 실시예에서는 블록 체인(BC)을 수신하는 적어도 하나의 노드는 기 생성된 데이터 블록(DB)을 복제할 수 있다. 예를 들어, 도 5c에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터의 일부를 복제하여 제 1 데이터 블록 대비 축소된(또는 파생된) 데이터 블록(DBC)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 예를 들어, 도 5c의 530과 같이 데이터 C가 복제되어 파생된 데이터 블록(DBC)가 제 1 데이터 블록과 제 2 데이터 블록 사이에 연결될 수 있다. 다른 예로, 도 5c의 540과 같이 데이터 C를 복제한 데이터 블록(DBC)을 생성하고, 이를 제 1 데이터 블록(DB1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 복제된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보와 복제된 바인딩 데이터의 수정 해시는 각각 파생된 데이터 블록의 헤더 및 퍼블릭 영역에 저장될 수 있다.In one embodiment, at least one node receiving the block chain BC may replicate the previously generated data block DB. For example, as shown in FIG. 5C, a node may copy a portion of data stored in the first data block DB1 of the previously created blockchain to reduce (or derive) the data block compared to the first data block ( DBC) and connect it to the blockchain (BC). For example, as illustrated in 530 of FIG. 5C, a data block (DBC) derived by replicating data C may be connected between the first data block and the second data block. As another example, as shown in 540 of FIG. 5C, a data block (DBC) replicating data C may be generated, and a new chain (NC) may be formed with the first data block (DB1). At this time, the modification index information indicating the type of the duplicated binding data and the modification hash of the duplicated binding data may be stored in the header and the public area of the derived data block, respectively.

일 실시예에서는 블록 체인을 수신하는 적어도 하나의 노드가 기 생성된 하나의 데이터 블록(DB)을 복수의 데이터 블록으로 분할할 수 있다. 예를 들어, 도 5d의 550과 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)을 데이터 A 및 데이터 B를 포함하는 데이터 블록(DB1-1)과 데이터 C를 포함하는 데이터 블록(DB1-2)으로 분할하고 이를 순차적으로 블록 체인(BC)에 연결할 수 있다. 다른 예로, 도 5d의 560과 같이, 분할된 데이터 블록들은 정해진 규칙에 따라 부모 데이터 블록과 자식 데이터 블록으로 지정될 수 있으며, 일 예로, 부모 데이터 블록(DB1-1)은 기존 체인 구성을 유지하고 자식 데이터 블록(DB1-2)은 부모 데이터 블록(DB1-1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 데이터 블록의 분할에 따라, 각각의 블록, 예를 들어, 부모 데이터 블록과 자식 데이터 블록의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다. In one embodiment, at least one node receiving the blockchain may divide one data block DB previously generated into a plurality of data blocks. For example, as illustrated in 550 of FIG. 5D, the first data block DB1 of the blockchain in which the node is previously generated is a data block DB1-1 including data A and data B and a data block including data C. It can be divided into (DB1-2) and connected to the blockchain (BC) sequentially. As another example, as illustrated in 560 of FIG. 5D, the divided data blocks may be designated as a parent data block and a child data block according to a predetermined rule. For example, the parent data block DB1-1 maintains the existing chain configuration. The child data block DB1-2 may form a new chain NC with the parent data block DB1-1. In this case, according to the division of the data block, index information indicating the type of binding data stored in the header of each block, for example, the parent data block and the child data block, and a hash of the binding data stored in the public area may be updated. .

일 실시예에서는 데이터 블록을 분할하는 것과 반대로 복수의 데이터 블록을 하나의 데이터 블록으로 통합할 수도 있다. 예를 들어, 도 5e에 도시된 바와 같이, 노드가 기 생성된 블록 체인(BC)의 제 1 데이터 블록(DB1)과 제 2 데이터 블록(DB2)을 통합한 데이터 블록(DB12)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 이때, 데이터 블록의 통합에, 통합 데이터 블록(DB12)의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다.In one embodiment, as opposed to dividing a data block, a plurality of data blocks may be integrated into one data block. For example, as illustrated in FIG. 5E, the node generates a data block DB12 incorporating the first data block DB1 and the second data block DB2 of the previously created blockchain BC, and the node generates the data block DB12. Can connect to Blockchain (BC). At this time, in the integration of the data block, index information indicating the type of binding data stored in the header of the integrated data block DB12 and a hash of the binding data stored in the public area may be updated.

도 6은 본 발명의 일 실시예에 따른 노드(600)의 구성을 도시하는 블록도이다.6 is a block diagram showing the configuration of a node 600 according to an embodiment of the present invention.

도 6을 참조하면, 노드(600) 데이터 처리 시스템(도 1의 10 참조)의 구성인 클라이언트 노드(도 1의 CN1, CN2 참조)이거나 서버 노드(도 1의 SN 참조)일 수 있다. 일 실시예에서, 노드(600)는 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있다.Referring to FIG. 6, it may be a client node (see CN1 and CN2 in FIG. 1) or a server node (see SN in FIG. 1) which is a configuration of the node 600 data processing system (see 10 in FIG. 1). In one embodiment, the node 600 may include a block generation unit 602, a storage unit 604 and a communication unit 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) 및 시스템 버스 중 적어도 어느 하나를 포함할 수 있다.In one embodiment, the communication unit 606 may establish communication (NW) between at least one other node. For example, the communication unit 606 may form the communication through wireless communication or wired communication. For example, the wireless communication is at least one of LTE, LTE-A (LTE Advance), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), or Global System for Mobile Communications (GSM). It may include cellular communication using. Further, the wireless communication may include short-range communication using at least one of WiFi (wireless fidelity), LiFi (light fidelity), Bluetooth, Bluetooth low power (BLE), Zigbee, and near field communication (NFC). You can. In another embodiment, the wired communication is at least any one of a universal serial bus (USB), high definition multimedia interface (HDMI), recommended standard-232 (RS-232), power line communication, or plain old telephone service (POTS) and a system bus. It can contain one.

저장부(604)는 적어도 하나의 구성요소(예: 블록 생성부(602) 또는 통신부 (606))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 저장부(604)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 일 실시예에서, 저장부(606)는 데이터 블록(DB) 또는 데이터 블록들(DB)이 서로 연결된 블록 체인(BC)이 저장되는 적어도 하나의 메모리 영역일 수 있다.The storage unit 604 may include various data used by at least one component (eg, the block generation unit 602 or the communication unit 606), for example, input data or output data for software and commands related thereto. Can be saved. The storage unit 604 may include volatile memory or nonvolatile memory. In one embodiment, the storage unit 606 may be a data block DB or at least one memory area in which the block chains BC in which the data blocks DB are connected are stored.

일 실시예에서, 블록 생성부(602)는 노드에 저장된 적어도 하나의 소프트웨어를 구동하여 블록 생성부(602)에 연결된 적어도 하나의 다른 구성요소(예: 저장부(604), 또는 통신부(606))을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 예를 들어, 블록 생성부(602)는 노드의 전반적인 동작을 처리하는 적어도 하나의 프로세서일 수 있다. In one embodiment, the block generation unit 602 drives at least one software stored in the node to at least one other component connected to the block generation unit 602 (eg, the storage unit 604, or the communication unit 606) ) Can be controlled, and various data processing and operations can be performed. For example, the block generator 602 may be at least one processor that processes the overall operation of the node.

일 실시예에서, 블록 생성부(602)는 블록 체인의 시초가 되는 최초 블록을 생성할 수 있다. 최초 블록은 생성 노드만 접근할 수 있는 프라이빗 데이터가 저장되며, 암호화된 프라이빗 데이터의 해시 값이 최초 블록과 연결된 블록을 식별하는 해시 값으로 이용될 수 있다. 예를 들어, 블록 생성부(602)는 노드(600)가 보유하고 있는 프라이빗 키를 이용하여 프라이빗 데이터를 암호화할 수 있으며, 각각의 암호화된 프라이빗 데이터에 대한 해시 값을 생성할 수 있다.In one embodiment, the block generator 602 may generate an initial block that is the beginning of the blockchain. The first block stores private data accessible only to the generating node, and a hash value of the encrypted private data may be used as a hash value identifying a block associated with the first block. For example, the block generator 602 may encrypt the private data using the private key held by the node 600, and generate a hash value for each encrypted private data.

일 실시예에서, 블록 생성부(602)는 블록 체인(BC)의 구성이 되는 데이터 블록(DB)을 생성할 수 있다. 예를 들어, 블록 생성부(600)는 권한 레벨을 가지는 적어도 하나의 바인딩 데이터(도 1의 BD-1, BD-2, BD-3, BD-4 참조)를 포함하는 데이터 블록(DB)을 생성할 수 있다. 데이터 블록(DB)은 특정 시설에 등록된 사용자의 정보를 포함하는 데이터 블록일 수 있으며, 이러한 경우 시설에 신규 사용자가 등록될 때마다 데이터 블록(DB)이 생성될 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 데이터 블록(DB)은 일정 시간(예를 들어, 10 분) 간격으로 주기적으로 생성될 수도 있다.In one embodiment, the block generator 602 may generate a data block DB that is a component of the block chain BC. For example, the block generator 600 may include a data block DB including at least one binding data (see BD-1, BD-2, BD-3, BD-4 in FIG. 1) having an authorization level. Can be created. The data block DB may be a data block including information of a user registered in a specific facility, and in this case, a data block DB may be generated whenever a new user is registered in the facility. However, this is only an example, and the present invention is not limited thereto. For example, the data block DB may be periodically generated at regular time intervals (eg, 10 minutes).

일 실시예에서, 블록 생성부(602)는 생성된 데이터 블록(DB)을 블록 체인(BC)에 연결하기 위해서 네트워크(NW) 내의 다른 노드들로 작업 증명을 요청할 수 있다. 작업 증명은 생성 노드에 의해 생성된 데이터 블록으로 블록 체인을 갱신한다는 것을 다른 노드와 합의하는 것을 의미한다. 예를 들어, 블록 생성부(602)는 생성된 데이터 블록(DB)을 다른 노드들로 전송함으로써 작업 증명을 요청할 수 있으며, 작업 증명을 요청받은 검증 노드들은 수신된 데이터 블록의 해시 값과 임의의 넌스 값 그리고 사전 설정된 검증 알고리즘을 이용하여 지정된 조건을 만족하는 값을 산출할 수 있다. 이때, 검증 노드는 지정된 조건을 만족하는 값이 산출될 때까지 넌스 값을 변경하면서 연산 동작을 수행할 수 있으며, 지정된 조건을 만족하는 값을 산출한 검증 노드는 생성 노드로 검증 완료를 보고할 수 있다. 또한, 블록 생성부(602)는 검증을 완료한 검증 노드의 수가 지정된 수를 만족하는 경우, 생성된 데이터 블록을 체인으로 연결함으로써 블록 체인(BC)을 갱신할 수 있다.In one embodiment, the block generator 602 may request proof of work to other nodes in the network NW to connect the generated data block DB to the blockchain BC. Proof of work means agreeing with another node to update the blockchain with a block of data generated by the generating node. For example, the block generator 602 may request proof of work by transmitting the generated data block DB to other nodes, and verification nodes requested for proof of work are randomly selected from the hash value of the received data block. Nonce values and pre-set verification algorithms can be used to calculate values that satisfy specified conditions. At this time, the verification node may perform arithmetic operations while changing the nonce value until a value satisfying the specified condition is calculated, and the verification node calculating the value satisfying the specified condition may report verification completion to the generating node. have. Also, when the number of verification nodes that have completed verification satisfies the specified number, the block generation unit 602 may update the block chain BC by linking the generated data blocks with a chain.

일 실시예에서, 블록 생성부(602)는 기 생성된 체인(BC)을 가공할 수 있다. 블록 체인(BC)을 가공하는 것은, 블록 체인(BC)의 원소인 적어도 하나의 데이터 블록(DB)에 적어도 하나의 바인딩 데이터(BD)를 추가하는 것을 포함할 수 있다. 뿐만 아니라, 데이터 블록(DB)에 포함된 적어도 하나의 바인딩 데이터(BD) 삭제, 기 생성된 데이터 블록(DB)의 축소 복제, 기 생성된 데이터 블록(DB)의 통합 중 적어도 하나를 가공의 한 동작으로 볼 수도 있다. 일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)의 헤더 정보를 변경할 수 있다. 예를 들어, 바인딩 데이터(BD)의 삭제 또는 추가에 따라 변경된 바인딩 데이터(BD)의 해시 값 및 변경된 바인딩 데이터(BD)의 타입을 나타내는 정보를 데이터 블록의 퍼블릭 영역(도 3의 BDH 필드 참조) 및 데이터 블록의 헤더 영역(예를 들어, 도 3의 BDT 필드 참조)에 각각 기입할 수 있다.In one embodiment, the block generation unit 602 may process the pre-generated chain BC. Processing the block chain BC may include adding at least one binding data BD to at least one data block DB that is an element of the block chain BC. In addition, processing of at least one of deletion of at least one binding data (BD) included in the data block (DB), reduction replication of the previously generated data block (DB), and integration of the previously generated data block (DB) You can also see it as action. In one embodiment, the block generator 602 may change header information of the processed data block DB. For example, the information indicating the hash value of the changed binding data BD and the type of the changed binding data BD according to deletion or addition of the binding data BD is a public area of the data block (refer to the BDH field in FIG. 3). And a header area of a data block (for example, see the BDT field in FIG. 3).

일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)을 저장부(604)에 저장하거나 네트워크(NW)에 연결된 인증된 다른 노드로 전송할 수 있다. 이때, 인증된 다른 노드는 서버 노드와 다른 클라이언트 노드를 포함할 수 있으며, 이들은 수신된 데이터 블록을 저장부에 저장할 수 있다. 또한, 적어도 하나의 노드(예를 들어, 서버 노드)는 가공된 데이터 블록과 가공되기 전의 데이터 블록도 함께 저장할 수 있다. 이로 인하여, 최초의 데이터 블록에 저장된 바인딩 데이터의 일부가 가공 동작에 의해 영구적으로 삭제되는 것을 방지할 수 있다.In one embodiment, the block generation unit 602 may store the processed data block DB in the storage unit 604 or transmit it to another authenticated node connected to the network NW. At this time, another authenticated node may include a server node and a different client node, and they may store the received data block in the storage unit. Also, at least one node (for example, a server node) may store a processed data block and a data block before processing. Due to this, it is possible to prevent a part of the binding data stored in the first data block from being permanently deleted by the machining operation.

일 실시예에서, 블록 생성부(602)는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 다른 노드로 전송할 수 있다. 이때, 블록 생성부(602)는 다른 노드로부터 요청 데이터에 대한 정보가 포함된 트랜잭션을 수신하면, 저장부(604)에 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 확인하여 이를 요청 노드로 전송할 수 있다.In one embodiment, the block generator 602 may transmit at least some data blocks DB constituting the block chain BC to other nodes. At this time, when the block generation unit 602 receives a transaction including information about the requested data from another node, the block generation unit 602 analyzes the header of the data block DB stored in the storage unit 604 to analyze the data block corresponding to the transaction (DB ) To send it to the requesting node.

전술한 바와 같이, 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 방식 대비 복호화 시 요구되는 하드웨어 자원을 절약할 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 일부 데이터 블록(DB)은 블록 체인(BC) 내에 포함된 바인딩 데이터(BD) 중 노드의 권한에 대응되지 않는 권한 레벨을 가지는 바인딩 데이터(BD)로만 형성된 하나의 데이터 블록(DB)일 수 있다. 상술한 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화를 위한 권한 레벨을 갖지 않는 데이터 블록(DB)을 복호화할 수 없으나, 상술한 데이터 블록(DB)을 복호화화 가능한 다른 노드로 제공하여 기존의 전체 블록 체인(BC)을 제공하는 방식 대비 네트워크 자원을 절약할 수 있다.As described above, the node storing the data block (DB) can save hardware resources required for decryption compared to the method of decrypting the entire block chain by decrypting only part of the block chain when decrypting the data block (DB). have. However, this is only exemplary, and the present invention is not limited thereto. For example, some data blocks DB are one data block DB formed only of binding data BD having a permission level that does not correspond to the authority of a node among the binding data BD included in the blockchain BC Can be The node storing the above-described data block DB cannot decrypt the data block DB having no authority level for decrypting the data block DB, but the above-described data block DB is another node capable of decryption. By providing, it can save network resources compared to the existing method of providing the entire blockchain (BC).

도 7은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 생성 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드(도 1의 CN1, CN2 참조) 및 서버 노드(도 1의 SN 참조)에 의해 생성될 수 있으며, 이하 설명에서 데이터 블록(DB)을 생성하는 노드를 설명의 편의상 '생성 노드'로 지칭한다.7 is a flowchart illustrating an operation of generating a data block DB according to an embodiment of the present invention. The data block DB may be generated by a client node (see CN1 and CN2 in FIG. 1) and a server node (see SN in FIG. 1) included in the data processing system 10, and the data block (DB ) Is referred to as a 'creation node' for convenience of description.

도 7을 참조하면, 생성 노드는 데이터 블록(DB)에 추가할 바인딩 데이터(BD)(또는 확장 데이터) 및 복호화 권한 레벨을 결정할 수 있다(S10). 바인딩 데이터(BD)는 지정된 권한 레벨을 가지는 노드에서만 복호화가 가능하도록 일정 수준의 권한 레벨이 부여되는 데이터일 수 있다.Referring to FIG. 7, the generation node may determine binding data BD (or extended data) and decryption permission level to be added to the data block DB (S10). The binding data BD may be data to which a certain level of authority level is granted so that decryption is possible only at a node having a specified authority level.

이후, 생성 노드는 권한 레벨에 대응되는 암호화 키(BK)를 이용하여 바인딩 데이터(BD)를 암호화할 수 있다(S12). 상기 생성 노드는 서로 다른 권한 레벨을 가지는 다수의 암호화 키들을 가질 수 있으며 이러한 암호화 키들 중 바인딩 데이터(BD)에 부여할 권한 레벨에 대응하는 키를 획득할 수 있다.Thereafter, the generating node may encrypt the binding data BD using the encryption key BK corresponding to the permission level (S12). The generating node may have a plurality of encryption keys having different authority levels, and among these encryption keys, a key corresponding to the authority level to be granted to the binding data BD may be obtained.

이후, 생성 노드는 바인딩 데이터(BD) 및 암호화 키(BK)를 이용하여 데이터 블록(DB)을 생성할 수 있다(S14). 도 3을 참조하여 전술한 것과 같이 바인딩 데이터(BD)와 암호화 키(BK)는 데이터 블록(DB)의 바인딩 영역(BA)에 추가될 수 있다. 또한, 생성 노드는 바인딩 데이터(BD) 외에 생성 노드 자신만 복호화할 수 있는 프라이빗 데이터(PRD)를 데이터 블록(DB) 내에 추가할 수도 있으며, 데이터 블록(DB)에 추가된 데이터를 설명하는 정보(예를 들어, 해시 값, 데이터 타입 등)를 포함하는 헤더 정보를 생성할 수도 있다.Thereafter, the generating node may generate the data block DB using the binding data BD and the encryption key BK (S14). As described above with reference to FIG. 3, the binding data BD and the encryption key BK may be added to the binding area BA of the data block DB. In addition, the generating node may add private data (P R D) that only the generating node itself can decrypt in addition to the binding data BD in the data block DB, and describe the data added to the data block DB. Header information including information (eg, hash value, data type, etc.) may be generated.

도 8은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 복호화하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 복호화될 수 있으며, 이하 설명에서 데이터 블록(DB)을 복호화하는 노드를 설명의 편의상 '수신 노드'로 지칭한다.8 is a flowchart illustrating an operation of decoding a data block DB according to an embodiment of the present invention. The data block DB may be decrypted by a client node and a server node included in the data processing system 10, and in the following description, a node for decrypting the data block DB will be referred to as a 'receiving node' for convenience of description. .

도 8을 참조하면, 수신 노드는 네트워크(NW)를 통해 데이터 블록(DB)을 수신할 수 있다(S20). 예를 들어, 수신 노드는 바인딩 데이터(BD)를 요청하는 트랜잭션을 생성하여 네트워크(NW)에 포함된 노드들로 전송하고 트랜잭션에 대응하는 데이터 블록(DB)을 수신할 수 있다. 예를 들어, 트랜잭션에는 수신 노드의 권한 레벨, 수신 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함될 수 있다.Referring to FIG. 8, the receiving node may receive the data block DB through the network NW (S20). For example, the receiving node may generate a transaction requesting the binding data BD, transmit it to the nodes included in the network NW, and receive a data block DB corresponding to the transaction. For example, the transaction may include the authority level of the receiving node, category information of the binding data BD required by the receiving node, and the like.

이후, 수신 노드는 수신된 데이터 블록(DB)의 적어도 일부(도 3의 BDH 필드 참조)를 복호화하여 바인딩 데이터(BD)를 확인할 수 있다(S22).Thereafter, the receiving node may check the binding data BD by decoding at least a part of the received data block DB (see BDH field in FIG. 3) (S22).

이후, 수신 노드는 데이터 블록(DB)에 포함된 바인딩 데이터(BD) 중 수신 노드의 권한 레벨에 대응하는 바인딩 데이터(BD), 예를 들어, 복호화가 가능한 바인딩 데이터(BD)가 존재하는지 여부를 판단할 수 있다(S24).Thereafter, the receiving node determines whether binding data BD corresponding to the authority level of the receiving node among binding data BD included in the data block DB, for example, decryptable binding data BD exists. It can be judged (S24).

데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하지 않으면, 수신 노드는 데이터 블록(DB)의 복호화 동작을 종료할 수 있다.If the binding data BD corresponding to the authority level does not exist in the data block DB, the receiving node may end the decoding operation of the data block DB.

데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하면, 수신 노드는 데이터 블록(DB)에서 권한 레벨에 대응하는 바인딩 데이터(BD)만을 복호화할 수 있다(S26).When the binding data BD corresponding to the authority level exists in the data block DB, the receiving node can decrypt only the binding data BD corresponding to the authority level in the data block DB (S26).

도 9는 본 발명의 일 실시예에 따른 데이터 블록(DB)을 제공하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 다른 노드로 제공될 수 있으며, 이하 설명에서 데이터 블록(DB)을 제공하는 노드를 설명의 편의상 '제공 노드'로 지칭한다.9 is a flowchart illustrating an operation of providing a data block DB according to an embodiment of the present invention. The data block DB may be provided to other nodes by a client node and a server node included in the data processing system 10, and the node providing the data block DB in the following description is provided as a 'providing node' for convenience of description. It is referred to as.

도 9를 참조하면, 제공 노드는 네트워크(NW)를 통해 데이터 블록 요청을 수신할 수 있다(S30). 예를 들어, 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 수신할 수 있다.Referring to FIG. 9, the providing node may receive a data block request through a network (NW) (S30). For example, a transaction including the authorization level of the requesting node and category information of binding data BD required by the requesting node may be received.

이후, 제공 노드는 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 검색할 수 있다(S32).Thereafter, the providing node may analyze the header of the stored data block DB to search for a data block DB corresponding to the transaction (S32).

트랜잭션에 대응되는 데이터 블록(DB)이 검색되면, 제공 노드는 검색된 데이터 블록(DB)을 요청 노드로 제공할 수 있다(S34).When the data block DB corresponding to the transaction is searched, the providing node may provide the searched data block DB as the requesting node (S34).

트랜잭션에 대응되는 데이터 블록(DB)이 검색되지 않으면, 제공 노드는 상위 노드(예를 들어, 서버 노드)로 데이터 블록(DB)의 공유를 요청할 수 있다(S36). 예를 들어, 제공 노드는 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 생성하여 상위 노드로 전송하고, 상위 노드로부터 데이터 블록(DB)을 수신하여 요청 노드로 전달할 수 있다. 다른 예로, 제공 노드는 요청 노드의 주소를 트랜잭션에 추가하여 상위 노드로 전송할 수 있다. 이러한 경우, 상위 노드는 트랜잭션에 대응하는 데이터 블록(DB)을 검색하여 제공 노드를 거치지 않고 직접 요청 노드로 전송할 수 있다.If the data block DB corresponding to the transaction is not searched, the providing node may request sharing of the data block DB with the upper node (eg, a server node) (S36). For example, the providing node generates a transaction including the authorization level of the requesting node, category information of the binding data (BD) required by the requesting node, and transmits the transaction to the parent node, and transmits the data block (DB) from the parent node. It can be received and forwarded to the requesting node. As another example, the providing node may add the address of the requesting node to the transaction and transmit it to the parent node. In this case, the upper node may search the data block DB corresponding to the transaction and directly transmit it to the requesting node without going through the providing node.

도 10은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 검증하는 동작 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 검증될 수 있으며, 이하 설명에서 데이터 블록(DB)을 검증하는 노드를 설명의 편의상 '검증 노드'로 지칭한다.10 is a flowchart illustrating an operation of verifying a data block DB according to an embodiment of the present invention. The data block DB may be verified by a client node and a server node included in the data processing system 10, and in the following description, a node for verifying the data block DB will be referred to as a 'verification node' for convenience of description. .

도 10을 참조하면, 검증 노드는 네트워크(NW)를 통해 데이터 블록 검증 요청을 수신할 수 있다. 예를 들어, 검증이 필요한 데이터 블록(DB)의 정보(예를 들어, 블록 해시), 검증이 필요한 바인딩 데이터(BD)의 정보(예를 들어, 바인딩 데이터 해시) 등을 포함하는 트랜잭션을 수신할 수 있다(S40).Referring to FIG. 10, the verification node may receive a data block verification request through a network (NW). For example, to receive a transaction that includes information of a data block (DB) that requires verification (eg, block hash), information of binding data (BD), which needs verification, (eg, hash of binding data), and the like. It can be (S40).

이후, 검증 노드는 트랜잭션을 분석하여 검증이 필요한 데이터 블록(DB)을 획득할 수 있다(S42). 예를 들어, 검증 노드는 저장된 데이터 블록(DB)의 해시 값을 확인하여 트랜잭션에 대응하는 데이터 블록(DB)을 획득할 수 있다.Thereafter, the verification node may obtain a data block DB requiring verification by analyzing the transaction (S42). For example, the verification node may obtain the data block DB corresponding to the transaction by checking the hash value of the stored data block DB.

이후, 검증 노드는 데이터 블록(DB)에서 검증이 필요한 바인딩 데이터(BD)를 복호화하여 검증할 수 있다(S44). 예를 들어, 검증 노드는 트랜잭션에 대응되는 바인딩 데이터(BD)를 복호화하여 해시 알고리즘을 적용할 수 있다. 또한, 검증 노드는 해시 알고리즘의 결과를 데이터 블록(DB)에 포함된 바인딩 데이터의 해시 값(도 3의 BDH 참조)과 비교함으로써 검증을 완료할 수 있다. 이때, 해시 알고리즘의 결과와 바인딩 데이터의 해시 값이 일치하면 데이터 블록(DB)에 대한 무결성이 입증되는 것이다. 또한, 검증 노드는 검증을 완료한 후 해당 데이터 블록(DB)에 검증이 완료됨을 나타내는 정보(도 3의 VN 참조)를 기입할 수 있다.Thereafter, the verification node may decrypt and verify the binding data BD that needs to be verified in the data block DB (S44). For example, the verification node may apply the hash algorithm by decrypting the binding data BD corresponding to the transaction. In addition, the verification node may complete verification by comparing the result of the hash algorithm with the hash value (see BDH of FIG. 3) of the binding data included in the data block DB. At this time, if the result of the hash algorithm matches the hash value of the binding data, the integrity of the data block DB is verified. In addition, the verification node may write information (see VN in FIG. 3) indicating that verification is completed in the corresponding data block DB after completing verification.

본 발명에 따른 장치(또는 모듈) 또는 방법(예: 단계)의 일부 또는 전부는, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)(예: 노드의 저장부)에 저장 가능한 명령어들의 집합, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 상기 명령어는, 마이크로칩과 같은 하나 이상의 프로세서를 포함하는 하드웨어에 의해 실행될 수 있으며, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.Part or all of a device (or module) or method (eg, step) according to the present invention is stored in a computer-readable storage media (eg, a storage unit of a node) in the form of a program module. It can be implemented with a set of storable instructions, hardware, or a combination thereof. The instructions may be executed by hardware including one or more processors, such as a microchip, and the one or more processors may perform functions corresponding to the instructions.

이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible within the scope of the technical spirit of the present invention. It will be clear to those who have the knowledge of

Claims (33)

블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법으로서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계;
각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계;
상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및
상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함하고,
상기 데이터 블록은 상기 데이터 블록에 포함되는 각각의 바인딩 데이터에 부여된 복호화 권한 레벨을 지시하는 권한 레벨 지시 정보를 포함하고,
상기 노드는 상기 권한 레벨 지시 정보에 기초하여 상기 데이터 블록으로부터 상기 노드가 갖는 복호화 권한 레벨에 대응하는 바인딩 데이터를 추출하고, 추출된 바인딩 데이터를 복호화하는 데이터 블록의 생성 방법.
As a method of generating a block of data that constitutes a block chain and is shared between a plurality of nodes,
Obtaining at least one binding data having public or private properties;
Determining a binding key having a decryption authority level for each binding data;
Encrypting the binding data using the binding key; And
Generating a data block including at least a portion of the encrypted binding data and the binding key,
The data block includes authorization level indication information indicating a decryption authorization level assigned to each binding data included in the data block,
The node extracts binding data corresponding to the decryption authorization level of the node from the data block based on the authorization level indication information, and generates a data block for decrypting the extracted binding data.
제 1 항에 있어서,
상기 데이터 블록은,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함하는 데이터 블록의 생성 방법.
According to claim 1,
The data block,
A header area including index information indicating the type of the at least one binding data, a public area in which a hash value of the at least one binding data stored in the data block is stored, at least a part of the encrypted binding data and the binding key A method of generating a data block including a binding area in which storage is stored and a private area in which encrypted private data is stored.
제 2 항에 있어서,
상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함하는 데이터 블록의 생성 방법.
According to claim 2,
The header area further includes at least one of a hash value of the encrypted private area, at least a portion of a first public key that restricts access of an unauthorized node to the data block, and an integrity verification count of the data block How to create blocks.
제 2 항에 있어서,
상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 데이터 블록의 생성 방법.
According to claim 2,
The public area includes a data block including a public data including type information about a type of information records included in the data block and a second public key including at least a part of an encryption key for decrypting the public data. How to create.
제 4 항에 있어서,
상기 제 2 퍼블릭 키는 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용되며,
상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함하는 데이터 블록의 생성 방법.
The method of claim 4,
The second public key is used to verify the first public key retrieved from at least a portion of the first public key,
The second public key is a method of generating a data block including at least a part or all of the searched first public key.
제 2 항에 있어서,
상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 생성 방법.
According to claim 2,
Further comprising the step of additionally storing at least one extended data in the binding area of the data block,
The binding key corresponds to a decryption authorization level, and the at least one extension data is encrypted according to the decryption authorization level.
제 6 항에 있어서,
상기 확장 데이터가 추가적으로 저장되는 단계는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법.
The method of claim 6,
The step of additionally storing the extended data,
Storing index information indicating the type of the extended data in the header area;
And storing a hash value of the extended data in the public area.
제 2 항에 있어서,
상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
상기 파생 데이터 블록을 생성하는 단계는,
상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 바인딩 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법.
According to claim 2,
Further comprising the step of reducing the data block to generate a derived data block,
The step of generating the derived data block,
Storing selected binding data among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected binding data in a derived binding data area;
Storing modified index information indicating the type of the selected binding data in a derived header area;
And storing the modified hash value of the selected binding data in a derived public area.
제 2 항에 있어서,
상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함하는 데이터 블록의 생성 방법.
According to claim 2,
The index information is a method of generating a data block including at least one of finance, health, insurance, education and finance.
블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 처리 방법으로서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 바인딩 영역을 갖는 암호화된 데이터 블록을 수신하는 단계;
상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계;
상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계;
상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함하고,
상기 데이터 블록은 상기 데이터 블록에 포함되는 각각의 바인딩 데이터에 부여된 복호화 권한 레벨을 지시하는 권한 레벨 지시 정보를 포함하고,
상기 노드는 상기 권한 레벨 지시 정보에 기초하여 상기 데이터 블록으로부터 상기 노드가 갖는 복호화 권한 레벨에 대응하는 바인딩 데이터를 추출하고, 추출된 바인딩 데이터를 복호화하는 데이터 블록의 처리 방법.
As a method of processing a block of data constituting a block chain and shared among a plurality of nodes,
Receiving an encrypted data block having a binding area comprising at least one binding data having public or private characteristics and at least a portion of a binding key having a decryption authority level for each binding data;
Checking the binding data accessible according to a decryption authority level for the binding data;
Extracting at least a portion of a binding key for the identified binding data;
Decrypting the binding data using at least a portion of the extracted binding key,
The data block includes authorization level indication information indicating a decryption authorization level assigned to each binding data included in the data block,
The node extracts binding data corresponding to the decoding authority level of the node from the data block based on the authority level indication information, and processes the data block to decode the extracted binding data.
제 10 항에 있어서,
상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는,
상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및
상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함하는 데이터 블록의 처리 방법.
The method of claim 10,
Decoding the binding data, using at least a portion of the extracted binding key,
Retrieving the entire contents of the binding key from at least a portion of the extracted binding key; And
And decrypting the binding data using the retrieved binding key.
제 10 항에 있어서,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 데이터 블록의 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및
상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함하는 데이터 블록의 처리 방법.
The method of claim 10,
Index information indicating the type of the at least one binding data, a hash value of the private area of the data block, at least a portion of a first public key that restricts access of an unauthorized node to the data block, and integrity verification of the data block Decoding a header area including at least one of the number of times; And
Based on the information of the decrypted header area, public data including a hash value of the binding area matching the type of information included in the data block and the information type, and an encryption key for decrypting the public data And decoding a public area including a second public key including at least a portion of the data block.
제 12 항에 있어서,
상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고,
상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법.
The method of claim 12,
And retrieving the entire contents of the first public key from at least a portion of the first public key,
And comparing the retrieved first public key with at least a portion of the retrieved first public key, and verifying the retrieved first public key.
제 12 항에 있어서,
상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법.
The method of claim 12,
And confirming the type of the binding data through the index information.
제 12 항에 있어서,
상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법.
The method of claim 12,
And confirming the type of the information record included in the data block.
제 12 항에 있어서,
상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법.
The method of claim 12,
And comparing the hash value of the binding region with the hash value of the decrypted binding data to verify the decrypted binding data.
제 12 항에 있어서,
상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 처리 방법.
The method of claim 12,
Further comprising the step of additionally storing at least one extended data in the binding area of the data block,
The binding key corresponds to a decryption authorization level, and the at least one extended data is encrypted according to the decryption authorization level.
제 17 항에 있어서,
상기 확장 데이터가 추가적으로 저장되는 단계는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법.
The method of claim 17,
The step of additionally storing the extended data,
Storing index information indicating the type of the extended data in the header area;
And storing a hash value of the extended data in the public area.
제 10 항에 있어서,
상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
상기 파생 데이터 블록을 생성하는 단계는,
상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법.
The method of claim 10,
Further comprising the step of reducing the data block to generate a derived data block,
The step of generating the derived data block,
Storing selected binding data among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected data in a derived binding data area;
Storing modified index information indicating the type of the selected binding data in a derived header area;
And storing the modified hash value of the selected binding data in a derived public area.
제 10 항에 있어서,
상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함 하는 데이터 블록의 처리 방법.
The method of claim 10,
And decrypting and verifying at least one binding data among the binding data stored in the binding area of the data block.
블록 체인 구조에서, 데이터 블록의 구조를 이용하는 장치에 있어서,
상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며,
상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고,
상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고,
상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고,
상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고,
상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고,
상기 프라이빗 영역은 상기 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함하고,
상기 헤더 영역의 인덱스 정보는 상기 데이터 블록에 포함되는 각각의 바인딩 데이터에 부여된 복호화 권한 레벨을 지시하는 권한 레벨 지시 정보를 포함하고,
상기 장치는 상기 권한 레벨 지시 정보에 기초하여 생성된 상기 데이터 블록으로부터 상기 장치가 갖는 복호화 권한 레벨에 대응하는 바인딩 데이터를 추출하고, 추출된 바인딩 데이터를 복호화하는 데이터 블록의 구조를 이용하는 장치.
In the block chain structure, in the device using the structure of the data block,
Multiplex decryption authority for the encrypted information in the data block structure,
The data block structure includes a header area, a public area, a binding area, and a private area,
The header area includes index information indicating the type of the binding area, a hash value of the private area, at least a portion of a first public key that restricts access of an unauthorized node to the data block, and the number of times of integrity verification of the data block. At least one,
The public area matches public data including type information regarding a type of information records included in the data block, a second public key including at least a part of an encryption key for decrypting the public data, and the type information It includes at least one of the hash value of the binding region,
The binding area includes at least one binding data having public or private characteristics and at least one binding key having a decryption authority level for the at least one binding data,
The at least one binding data and the at least one binding key form a pair,
The private area includes private data that can be decrypted by the device and a hash value of the private data,
The index information of the header area includes permission level indication information indicating a decryption permission level given to each binding data included in the data block,
The device extracts binding data corresponding to the decryption permission level of the device from the data block generated based on the permission level indication information, and uses a structure of a data block that decrypts the extracted binding data.
메모리; 및 적어도 하나의 프로세서를 포함하는 데이터 블록 처리 노드로서,
상기 프로세서는,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 바인딩 영역을 갖는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하고,
상기 데이터 블록은 상기 데이터 블록에 포함되는 각각의 바인딩 데이터에 부여된 복호화 권한 레벨을 지시하는 권한 레벨 지시 정보를 포함하고,
상기 데이터 블록 처리 노드는 상기 권한 레벨 지시 정보에 기초하여 상기 데이터 블록으로부터 상기 데이터 블록 처리 노드가 갖는 복호화 권한 레벨에 대응하는 바인딩 데이터를 추출하고, 추출된 바인딩 데이터를 복호화하는 데이터 블록 처리 노드.
Memory; And a data block processing node comprising at least one processor,
The processor,
Receiving an encrypted data block having a binding area comprising at least one binding data having public or private characteristics and at least a portion of a binding key having a decryption authority level for each binding data, and decrypting the binding data Check the binding data accessible according to the permission level, extract at least a portion of the binding key for the identified binding data, decrypt the binding data using at least a portion of the extracted binding key,
The data block includes authorization level indication information indicating a decryption authorization level assigned to each binding data included in the data block,
The data block processing node extracts binding data corresponding to the decryption permission level of the data block processing node from the data block based on the permission level indication information, and decodes the extracted binding data.
제 22 항에 있어서,
상기 프로세서는,
상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 데이터 블록 처리 노드.
The method of claim 22,
The processor,
A data block processing node that retrieves the entire contents of the binding key from at least a portion of the extracted binding key, and decrypts the binding data using the retrieved binding key.
제 23 항에 있어서,
상기 프로세서는,
상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보,상기 데이터 블록의 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 데이터 블록 처리 노드.
The method of claim 23,
The processor,
Index information indicating the type of the at least one binding data, a hash value of the private area of the data block, at least a portion of a first public key that restricts access of an unauthorized node to the data block, and integrity verification of the data block A header area including at least one of the number of times is decoded, and based on the decoded header area information, a hash value of the binding area matching the type of information included in the data block and the type of information is determined. A data block processing node for decrypting a public area including a second public key including at least a part of an encryption key for decrypting the public data and the public data.
제 24 항에 있어서,
상기 프로세서는,
상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 데이터 블록 처리 노드.
The method of claim 24,
The processor,
Search the entire contents of the first public key from at least a portion of the first public key, compare at least a portion of the searched first public key with at least a portion of the second public key, and search the searched first public key. Data block processing node to verify.
제 24 항에 있어서,
상기 프로세서는,
상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 데이터 블록 처리 노드.
The method of claim 24,
The processor,
A data block processing node that identifies the type of the binding data through the index information.
제 24 항에 있어서,
상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 데이터 블록 처리 노드.
The method of claim 24,
The processor is a data block processing node that identifies a type of information record included in the data block.
제 24 항에 있어서,
상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 데이터 블록 처리 노드.
The method of claim 24,
The processor is a data block processing node that verifies the decrypted binding data by comparing a hash value of the binding region with a hash value of the decrypted binding data.
제 24 항에 있어서,
상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장하고,
상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록 처리 노드.
The method of claim 24,
The processor further stores at least one extension data in the binding area of the data block,
The binding key corresponds to a decryption authorization level, and the at least one extended data is encrypted according to the decryption authorization level.
제 29 항에 있어서,
상기 프로세서는,
상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 데이터 블록 처리 노드.
The method of claim 29,
The processor,
A data block processing node that stores index information indicating the type of the extended data in the header area, and stores a hash value of the extended data in the public area.
제 22 항에 있어서,
상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 데이터 블록 처리 노드.
The method of claim 22,
The processor generates a derived data block by shrinking the data block, and derives a binding key selected from among the at least one binding data stored in the binding area of the data block and a binding key corresponding to the selected data. A data block processing node that stores the modified index information indicating the type of the selected binding data in the derived header area, and stores the modified hash value of the selected binding data in the derived public area.
제 22 항에 있어서,
상기 프로세서는,
상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 데이터 블록 처리 노드.
The method of claim 22,
The processor,
A data block processing node for decoding and verifying at least one binding data among binding data stored in the binding area of the data block.
블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 처리 시스템에 있어서,
공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및
상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함하고,
상기 데이터 블록은 상기 데이터 블록에 포함되는 각각의 바인딩 데이터에 부여된 복호화 권한 레벨을 지시하는 권한 레벨 지시 정보를 포함하고,
상기 데이터 블록 처리 노드는 상기 권한 레벨 지시 정보에 기초하여 상기 데이터 블록으로부터 상기 데이터 블록 처리 노드가 갖는 복호화 권한 레벨에 대응하는 바인딩 데이터를 추출하고, 추출된 바인딩 데이터를 복호화하는 데이터 처리 시스템.
In a data processing system that configures a block chain and is shared among a plurality of nodes,
Acquiring at least one binding data having public or private properties, determining a binding key having a decryption authority level for each binding data, using the binding key to encrypt the binding data, and the encrypted binding A data block generation node generating a data block including at least a portion of data and the binding key; And
An encrypted data block including at least one binding data having the public or private property and at least a portion of a binding key having a decryption authorization level for each binding data, and receiving a decryption authorization level for the binding data. And a data block processing node that checks the accessible binding data, extracts at least a portion of the binding key for the identified binding data, and decrypts the binding data using at least a portion of the extracted binding key. ,
The data block includes authorization level indication information indicating a decryption authorization level assigned to each binding data included in the data block,
The data block processing node extracts binding data corresponding to the decryption permission level of the data block processing node from the data block based on the permission level indication information, and decodes the extracted binding data.
KR1020180017256A 2018-02-12 2018-02-12 Node device, operation method baed on block chain and system for processing data KR102093010B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180017256A KR102093010B1 (en) 2018-02-12 2018-02-12 Node device, operation method baed on block chain and system for processing data
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
PCT/KR2019/001689 WO2019156533A1 (en) 2018-02-12 2019-02-12 Blockchain-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 (en) 2018-02-12 2018-02-12 Node device, operation method baed on block chain and system for processing data

Publications (2)

Publication Number Publication Date
KR20190097623A KR20190097623A (en) 2019-08-21
KR102093010B1 true KR102093010B1 (en) 2020-03-24

Family

ID=67549724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180017256A KR102093010B1 (en) 2018-02-12 2018-02-12 Node device, operation method baed on block chain and system for processing data

Country Status (3)

Country Link
US (1) US11418349B2 (en)
KR (1) KR102093010B1 (en)
WO (1) WO2019156533A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
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
SG11202002165RA (en) * 2019-08-30 2020-04-29 Alibaba Group Holding Ltd Methods and devices for providing traversable key-value data storage on blockchain
CN110753028B (en) * 2019-09-11 2021-06-22 复旦大学 Method for controlling distributed accounting network resource use
JP7234870B2 (en) * 2019-09-12 2023-03-08 富士フイルムビジネスイノベーション株式会社 Information processing device and information processing program
KR102150210B1 (en) * 2019-09-16 2020-09-01 (주) 모로보기 Blockchain network
KR102125042B1 (en) * 2019-11-12 2020-06-19 주식회사 이노티움 Node device constituting a block-chain network and an operation method of the node device
KR102274493B1 (en) * 2019-11-15 2021-07-07 주식회사 이노티움 Node device constituting a block-chain network and an operation method of the node device
KR102234542B1 (en) 2019-12-30 2021-03-31 재단법인 경주스마트미디어센터 Blockchain-based video asset management method
KR102294569B1 (en) * 2019-12-31 2021-08-26 주식회사 포스코아이씨티 Block Chain Management System To Build Block Chain Network
CN112073182B (en) * 2020-07-31 2021-03-16 成都信息工程大学 Quantum key management method and system based on block chain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101086420B1 (en) * 2006-12-22 2011-11-23 삼성전자주식회사 Method and apparatus for decoding right-object and method and apparatus for sharing contents using it
CN104125067B (en) * 2014-06-26 2017-05-24 小米科技有限责任公司 Account and token secret key binding method and device
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
WO2019156533A1 (en) 2019-08-15
US11418349B2 (en) 2022-08-16
US20210006408A1 (en) 2021-01-07
KR20190097623A (en) 2019-08-21

Similar Documents

Publication Publication Date Title
KR102093010B1 (en) Node device, operation method baed on block chain and system for processing data
US11019040B2 (en) Cloud key escrow system
US11146541B2 (en) Hierarchical data access techniques using derived cryptographic material
US11899817B2 (en) Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information
US10044503B1 (en) Multiple authority key derivation
US9305177B2 (en) Source identification for unauthorized copies of content
US20200019714A1 (en) Distributed data storage by means of authorisation token
US20180287800A1 (en) Systems and methods for digital identity management and permission controls within distributed network nodes
CN106055993A (en) Encryption storage system for block chains and method for applying encryption storage system
KR101285281B1 (en) Security system and its security method for self-organization storage
KR102399667B1 (en) Security system for data trading and data storage based on block chain and method therefor
US11256662B2 (en) Distributed ledger system
US11347885B2 (en) Verified templates
CN117396869A (en) System and method for secure key management using distributed ledger techniques
CN111340483A (en) Data management method based on block chain and related equipment
CN115129785A (en) Method and device for maintaining block chain data, electronic equipment and storage medium
US20220191034A1 (en) Technologies for trust protocol with immutable chain storage and invocation tracking
CN114239044A (en) Decentralized traceable shared access system
CN117395264A (en) Block chain-based data processing method, equipment and readable storage medium
Shu et al. Secure storage system and key technologies
Vishnoi MedFabric4Me: Blockchain based patient centric electronic health records system
CN117034370B (en) Data processing method based on block chain network and related equipment
JP2020127109A (en) Program and method of manufacturing terminal
US20240241939A1 (en) Auditing secure enclaves
US20220318438A1 (en) Systems and methods for data security on a mobile device

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