WO2019156533A1 - 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 - Google Patents

블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 Download PDF

Info

Publication number
WO2019156533A1
WO2019156533A1 PCT/KR2019/001689 KR2019001689W WO2019156533A1 WO 2019156533 A1 WO2019156533 A1 WO 2019156533A1 KR 2019001689 W KR2019001689 W KR 2019001689W WO 2019156533 A1 WO2019156533 A1 WO 2019156533A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
binding
data block
key
block
Prior art date
Application number
PCT/KR2019/001689
Other languages
English (en)
French (fr)
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 US16/969,549 priority Critical patent/US11418349B2/en
Publication of WO2019156533A1 publication Critical patent/WO2019156533A1/ko

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

Definitions

  • the present invention relates to blockchain technology, and more particularly, to a node device, a method of operating a node device and a system including the node device based on the block chain.
  • a typical data management system stores and manages data or files in cloud storage using a centralized server, and users access cloud storage to request or retrieve data or files. This not only requires mass storage, but also requires a centralized server to manage them and can complicate system design and maintenance.
  • the data or file contains a user's personal information, such information is usually impossible to modify and update, so a large security incident may occur when the server is leaked or replicated, and the centralized server where the data is concentrated hacking may cause a problem that the stored data is forged or tampered with and distributed.
  • 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 the data, thereby solving the problem of forged or forged data being distributed by hacking. Can be.
  • data blocks that make up a blockchain encrypt and store data such as transaction history generated over time through a hash function, and data blocks connected to each other in a chain are exposed and shared to all nodes participating in an open network. Can be. Therefore, even if an arbitrary node wants to use only some data in the data block, since the entire data block needs to be decoded, the processing time for the data block increases, and hardware performance and network traffic for processing the data block may increase. Can be.
  • Each data block constituting the block chain stores a block hash value.
  • the block hash value is a value used for block verification.
  • the node can verify the data block by decoding all the data included in the data block, extracting the hash value of the decrypted data, and comparing the block hash value stored in the data block. have. As the amount of data stored in the data block increases, data decryption time may increase, resulting in excessive computer resource consumption.
  • the present invention provides a blockchain-based data block generation device that reduces network traffic requirements, reduces processing time for data blocks, reduces hardware resources, and improves verification time of data blocks. It is to provide.
  • Another object of the present invention is to provide a method for generating a data block having the aforementioned advantages.
  • a method of generating a data block includes: obtaining at least one binding data having a public or private property; 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 the encrypted binding data and at least a portion of the binding key.
  • the data block may include a header area including index information indicating a 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 block. And a binding area in which at least a portion of the binding data and the binding key are stored, and a private area in which encrypted private data is stored.
  • the header area is at least one of a hash value of the encrypted private area, at least a portion of a first public key restricting access of an unauthorized node to the data block, and the number of times of integrity verification of the data block. It may further include.
  • the public area includes a second public key including at least a portion of public data including type information about a type of information records included in the data block and an encryption key for decrypting the public data. It may include.
  • the second public key may be used to verify the first public key retrieved from at least a portion of the first public key.
  • the second public key may include at least part or all of the retrieved first public key.
  • the method may further include storing at least one extension data in the binding area of the data block.
  • the binding key may correspond to a decryption authority level
  • the at least one extension data may be encrypted according to the decryption authority level.
  • the storing of the extension data may further include storing index information indicating a type of the extension data in the header area;
  • the method may include storing the hash value of the extension data in the public area.
  • the method may further include generating a derived data block by reducing the data block.
  • the generating of the derived data block may include storing binding data selected from 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 the derived binding data area. step; Storing modification 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 the derived public region.
  • the index information may include at least one of finance, health, insurance, education, finance.
  • a method of processing a data block includes encrypted data including at least one binding data having a public or private property 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.
  • decrypting the binding data 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 by using the retrieved binding key.
  • 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 for restricting access of the unauthorized node to the data block.
  • the method may further include decrypting the public area including the second public key including at least a portion of the key.
  • the method further comprises 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.
  • the method of processing the data block may further include checking a type of the binding data through the index information.
  • the method of processing the data block may further include identifying a type of information record included in the data block.
  • the method of processing the data block may further include verifying the decoded binding data by comparing a hash value of the binding region with a hash value of the decoded binding data.
  • the method of processing the data block may further include storing at least one extension data in the binding area of the data block.
  • the binding key may correspond to a decryption authority level
  • the at least one extension data may be encrypted according to the decryption authority level.
  • the storing of the extension data may further include storing index information indicating a type of the extension data in the header area;
  • the method may include storing the hash value of the extension data in the public area.
  • the method of processing the data block may further include reducing the data block to generate a derived data block.
  • the generating of the derived data block may include storing binding data selected from 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 the derived binding data area. step; Storing modification 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 the derived public region.
  • the method of processing the data block may further include decoding and verifying at least one binding data among the binding data stored in the binding area of the data block.
  • a node device or a data processing system using a data block structure multiplexes decryption rights with respect to encrypted information in the data block structure
  • the data block structure includes a header area, a public area, and a binding.
  • An area and a private area wherein the header area includes at least a portion of index information indicating a type of the binding area, a hash value of the private area, a first public key restricting access of an unauthorized node to the data block, and At least one of public data including type information about a type of information records included in the data block, and at least one of 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 is configured to determine at least one binding data having a public or private property and a decryption authority level for the at least one binding data.
  • at least one binding key wherein the at least one binding data and the at least one binding key are paired, and the private area is a hash of the private data and the private data that can be decrypted by the node device. May contain a value.
  • a data block processing node includes a memory; And at least one processor.
  • the processor may receive an encrypted data block that includes at least one binding data having a public or private property and at least a portion of a binding key having a decryption permission level for each binding data, and the binding Identify the binding data accessible according to the decryption authority level for the 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; Can be.
  • the processor may retrieve the entire contents of the binding key from at least a portion of the extracted binding key, and use the retrieved binding key to decrypt the binding data.
  • the processor is further configured to include at least a portion of a first public key that restricts access of the non-authenticated node to index information indicating the type of the at least one binding data, a hash value of the encrypted private area, and 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 decoded header area information.
  • the public region including the hash value of the binding region may be decrypted, and the public region including the second public key including at least a portion of an encryption key for decrypting the public data.
  • 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 may be verified.
  • the processor may identify the type of the binding data through the index information.
  • the processor may determine the type of information record that the data block includes.
  • the processor may verify the decrypted binding data by comparing a hash value of the binding region with a hash value of the decoded binding data.
  • the processor may additionally store at least one extension data in the binding area of the data block.
  • the binding key may correspond to a decryption authority level, and the at least one extension data may be encrypted according to the decryption authority level.
  • the processor may store index information indicating the type of the extension data in the header area, and store a hash value of the extension data in the public area.
  • the processor reduces the data block to generate a derived data block, and the binding key corresponding to the selected binding data and the selected data among the at least one binding data stored in the binding area of the data block. May be stored in the derived binding data area, modified index information indicating the type of the selected binding data may be stored in the derived header area, and a modified hash value of the selected binding data may be stored in the derived public area.
  • the processor may verify by decoding at least one binding data of the binding data stored in the binding area of the data block.
  • a data processing system shared among a plurality of nodes obtains at least one binding data having a public or private property, and obtains 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 one binding data having the public or private property and at least a portion of a binding key having a decryption authority level for each binding data, the decryption authority level for the binding data being received.
  • a data block processing node for identifying the accessible 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. can do.
  • a node device by multiplexing decryption rights for encrypted information in a data block, it reduces network traffic requirements, reduces processing time for the data block, reduces hardware resources, and verifies time of the data block.
  • a node device can be provided that improves the efficiency.
  • the hardware resource for data decryption and verification and the network resource due to data block transmission are reduced. You can.
  • FIG. 1 illustrates a data processing system based on a blockchain according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a configuration of a blockchain according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a configuration of a data block according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating access authority for each node to a data block according to an embodiment of the present invention.
  • FIG. 5A is an exemplary diagram for describing an operation of adding binding data in a data block according to an embodiment of the present invention
  • FIG. 5B is an exemplary diagram for describing an operation of deleting binding data in a data block
  • FIG. 5C is an exemplary diagram for describing an operation of duplicating a data block
  • FIG. 5D is an exemplary diagram for explaining an integration operation of a data block.
  • FIG. 6 is a block diagram showing a configuration of a node according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating an operation of generating a data block according to an embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating an operation of decoding a data block according to an embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating an operation of providing a data block according to an embodiment of the present invention.
  • FIG. 10 is a flowchart illustrating an operation of verifying a data block according to an embodiment of the present invention.
  • 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. Thus, the first member, part, region, layer or portion, which will be discussed below, may refer to the second member, component, region, layer or portion without departing from the teachings of the present invention.
  • FIG. 1 illustrates a data processing system 10 based on a blockchain BC in accordance with an embodiment of the present invention.
  • 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 includes a first client node CN1.
  • the second client node CN2 and the server node SN may be connected to the network NW.
  • NW network
  • 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). NW).
  • the server node SN refers to a node including the entire data block DB in the block chain BC, and the client nodes CN1 and CN2 each store only a data block including information necessary for itself. It may refer to a node.
  • each node may have the same configuration or different configurations.
  • 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. 6, Tablet PC (Laptop), Laptop (Laptop), Personal Computer (PC), Portable Multimedia Player (PMP), Wireless Communication Terminal, Smart Phone and Mobile Communication Terminal It may be implemented in at least one of a (Mobile Communication Terminal).
  • the server node SN may store at least one block chain BC in which a plurality of data blocks DB are chained together like a chain.
  • one first data block DB includes three binding data BD-1, BD-2, and BD-3
  • 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.
  • the chain link between the first data block DB and the second data block DB, since the second data block DB includes information of the block hash value of the first data block DB. It can mean having a connection to.
  • each data block DB constituting the block chain BC includes at least one binding data BD-1, BD-2, BD-3, BD-4 having a privilege level.
  • the binding data BD-1, BD-2, BD-3, and BD-4 can only decrypt the node having the authority level.
  • the binding data may include at least one of at least one publicly available data designated to be public and at least one private data designated to not be public.
  • 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 block chain BC.
  • the server node SN may receive and store respective block chains BC generated by the client nodes CN1 and CN2.
  • the server node SN stores at least some data blocks DB constituting a stored block chain BC or block chain BC in response to a request of at least one client node CN1, CN2. It may transmit to the first client node CN1 and / or the second client node CN2.
  • each data block DB may include binding data BD granted a level of authority to enable decryption at a specific node, as described below with reference to FIG. 2.
  • the binding data BD granted to the permission level may be encrypted so that only nodes having a specified permission level among nodes included in the data processing system 10 can be read and written.
  • the decryption authority may be multiplexed on the binding data BDs in the data block, so that nodes having the authority level may decrypt the binding data BDs.
  • At least one of the first client node CN1 and the second client node CN2 may extract and store some data blocks DB of the block chain BC stored in the server node SN. have.
  • the first client node CN1 has binding data (e.g., BD-1 and BD- corresponding to its authority level from the entire data block DB in the block chain BC). 3) extract the data block DB1 or store the data block DB1, or request binding data (e.g., BD-1 and BD-3) corresponding to its authority level to the server node SN to obtain the binding data (e.g., For example, a data block DB1 including BD-1 and BD-3 may be stored.
  • the second client node CN2 may include a data block including binding data (eg, BD-2 and BD-4) corresponding to its authority level from the entire data block DB in the block chain BC. (DB2) or bind data (e.g., BD-2 and BD-4) corresponding to the authority level of the server to the server node (SN) to bind data (e.g., BD-4 and BD).
  • DB2 binding data
  • bind data e.g., BD-2 and BD-4
  • a data block DB2 including -4) can be stored.
  • a new data block BD may be added in the block chain BC stored in the server node SN of FIG. 1 or further added to the new binding data in the data block BD (FIG. 5A), and the server node
  • the existing data block BD in the block chain BC stored in the SN may be deleted or 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 may be copied from the data block BD in the BC to generate new block data (hereinafter referred to as reduced replication, FIG. 5C), and in the block chain BC stored in the server node SN Only some binding data may be extracted from the BD to generate new block data (hereinafter, referred to as partitioning, FIG. 5D).
  • two data blocks may be merged into one data block.
  • the first block chain BC of the plurality of block chains BC may be a block chain BC operated by a financial company
  • the second block chain BC is a block chain BC operated by an insurance company
  • the third block chain BC may be a block chain BC operated in a hospital
  • the fourth block chain BC may be a block chain BC operated in a public office.
  • Each of these block chains (BC) can be distinguished by the data transmission and reception protocol between each node, the first block chain (BC) of the financial company through the adjustment of the protocol is the second block chain (BC), the third block chain (BC), the fourth block chain (BC), or may be chained with at least one data block (BD) extracted from a combination thereof.
  • a node storing a specific data block DB decrypts only a part of the block chain when decrypting the data block DB to decrypt the entire existing block chain.
  • the processing can reduce the processing time of the data block and can improve the verification time of the data block. As a result, hardware resources for data decoding and verification and network resource requirements for data block transmission can be reduced.
  • FIG. 2 is a diagram illustrating a configuration of a block chain BC according to an embodiment of the present invention.
  • the block chain BC is formed by connecting a plurality of data blocks DB in a chain form, and each data block DB uniquely binds the binding data BD and the binding data BD.
  • Each data block can also store its own block hash value.
  • the block hash value thereof 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 the data block as an input.
  • this is merely exemplary, and the present invention is not limited thereto.
  • the data blocks that make up a typical blockchain also contain the hash values of the previous block, so that each data block in the blockchain can be connected together like a chain, and the hash value of the previous block is used to generate the block hash. Can be used.
  • the data block may further include a nonce value and a time stamp.
  • the block chain BC may be divided by node.
  • blocks (DBs) generated by a first client node are connected to a first block chain defined as a first client node, and a second client node (see CN2 in FIG. 1).
  • the blocks generated by may be connected to a second block chain defined as a second client node.
  • the blockchain may not distinguish nodes.
  • one block chain is defined in the data processing system 10, and blocks generated at each node may be sequentially connected to the block chain according to a generation time.
  • FIG. 3 is a diagram illustrating a configuration of a data block DB according to an embodiment of the present invention.
  • 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 used.
  • the private data P R D may be able to decrypt the private data P R D only by the first generation node of the data block DB.
  • the present invention is not limited thereto, and private data P R D is decodable by the owner of the block chain BC, that is, a node having authority of an insurance company, a financial company, a hospital, or owns a block chain.
  • the header area HA may include a block hash value BLH, a hash value P R DH of private data P R D, an index BDT of binding data BD, a first public key PK1, and It may include the integrity verification number (VN).
  • the block hash value BHL serves as an identifier of the data block DB, and is generated by applying a preset hash algorithm to a hash value of the binding data BD having the permission level stored in the data block. Can be.
  • a preset hash algorithm to generate a hash value of the binding data BD having the permission level stored in the data block.
  • 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. You can also apply a hash algorithm for.
  • 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 of the hash value of the first private data and the hash value of the second private data is generated, and the hash value is further summed with the third private data hash value. The final hash value can be used as a hash value for private data.
  • 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.
  • 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 business.
  • the index information may include information indicating an authority level granted to each binding data BD.
  • the first public key PK1 may be information used to calculate a decryption key for decrypting the binding region.
  • the first public key PK1 may be provided in at least a portion and a portion of the first public key PK1 is not disclosed.
  • an unauthenticated node included in the network NW may not know the decryption key, and thus decryption of the data block DB may be restricted.
  • the degree of disclosure of the first public key PK1 may be changed. For example, when the degree of disclosure of the first public key PK1 is large, the time and hardware requirements for calculating the decryption key may be reduced than otherwise.
  • the integrity verification number VN represents the number of error verifications performed on a data block or binding data.
  • the public region P B A may include a hash value BDH of the second public key PK2 and the binding data BD.
  • the second public key PK2 is information used to determine whether a decryption key obtained using the first public key PK1 is a normal key, and a decryption key calculated as the first public key PK1.
  • the second public key PK2 is compared and the two keys are identical to each other, it may be determined that a normal key is obtained.
  • at least a part of the second public key PK2 may be provided in an undisclosed form.
  • the second public key PK2 is decrypted using an encryption key calculated using the first public key PK1, and the first public key PK1 and the second public key PK2 are calculated to decrypt the binding region. It is possible to obtain an encryption key for. This may reduce the hardware resource requirements for data decryption by providing only a part of the public key instead of the entire public key in the open blockchain.
  • the binding area BA includes a plurality of binding keys BK1, BK2, ..., BKn and binding data BD1, BD2, which can be decrypted with the respective binding keys BK1, BK2, ..., BKn. ..., BDn).
  • the plurality of binding keys BK1, BK2,..., BKn may have different permission levels.
  • the binding data BD1, BD2, ..., BDn are information that can be disclosed to other nodes, and may include information records that are not personally identified, such as age, residence area, occupation, income level, asset status, and the like.
  • type information about the type of information records included in the binding area may be stored in the public area P B A.
  • the private region P R A may include private data P R D which can be decrypted only by the generation node that generated the data block DB.
  • the private data P R D may be decrypted only by a decryption key that the generation node has separately.
  • the private data P R D is information that should not be disclosed to other nodes, and may include information that can be personally specified, such as a social security number or a name.
  • FIG. 4 is a diagram illustrating node-specific access rights to a data block DB according to an embodiment of the present invention.
  • a plurality of binding data stored in a data block (DB) have respective permission levels, and nodes may access and decrypt only binding data corresponding to their permission level from the data block DB. have.
  • the nodes may 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 node. You can check the binding data corresponding to.
  • the header area HA and the public area P B A of the data block DB are areas used by the nodes to identify the decodable binding data, and all nodes included in the data processing system. ) Can be accessed.
  • level 1 to level n are defined, and level 1, level 2, and level 3 correspond to the first area BA1, the second area BA2, and the third area BA3 of the binding area BA, respectively.
  • level n is assumed to be a level accessible to the entire area of the binding area BA.
  • the node N LV1 having the 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 the possible binding data is included, and the binding data can be decrypted using the binding key stored in the first region.
  • each of the nodes N LV2 and N LV3 having the level 2 and level 3 rights can also decrypt only the binding data stored in the second region and the third region of the binding region.
  • the node N LVn having the authority of the level n can access all regions of the binding region so as to decrypt at least one binding data desired by the node N LVn .
  • the generation node N owner who originally created the data block DB may have the highest privilege level for the data block DB. Accordingly, the generation node N owner may decode some binding data or all binding data, and may also decrypt private data stored in the private region P R A. Although not shown, access to at least one binding data stored in the binding area may be restricted by all nodes.
  • FIG. 5A is an exemplary diagram for describing an operation of adding binding data BD into a data block DB according to an embodiment of the present invention
  • FIG. 5B illustrates deleting binding data BD in the data block DB
  • 5C is an exemplary diagram for describing an operation of duplicating a data block DB
  • FIG. 5D is an exemplary diagram for describing an integration operation of a data block DB.
  • 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.
  • 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.
  • the third data block DB3 comprises one binding data (data G)
  • the third data block DB3 may be connected to each other to form a block chain BC.
  • At least one node receiving the block chain BC may add new binding data in the data block.
  • the node may add binding data H to the first data block DB1 of the pre-generated block chain BC.
  • binding data may be added in consideration of the size of the first data block DB1.
  • the binding data H is divided or compressed to fit the predetermined size of the first data block DB1.
  • the 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.
  • 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.
  • 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 representing such a relationship may be added to each data block.
  • the 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.
  • the binding data stored in the data block may be deleted as opposed to adding the binding data in the data block.
  • the node stores a 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 generated block chain.
  • the index information indicating the type of the deleted binding data may be deleted from the header of the data block, and the hash of the deleted binding data may also be deleted from the public area of the data block.
  • At least one node receiving the block chain BC may duplicate the previously generated data block DB.
  • a node replicates a portion of data stored in a first data block DB1 of a pre-generated blockchain to reduce (or derive) a data block (reduced) from the first data block ( DBC) can be created and connected to the blockchain (BC).
  • a data block DBC derived by copying data C may be connected between the first data block and the second data block.
  • a data block DBC that duplicates data C may be generated, and a new chain NC may be formed with the first data block DB1.
  • the modification index information indicating the type of the cloned binding data and the modification hash of the cloned binding data may be stored in the header and the public area of the derived data block, respectively.
  • At least one node receiving the block chain may split one pre-generated data block DB into a plurality of data blocks.
  • the node includes the first data block DB1 of the previously generated block chain as the data block DB1-1 including data A and data B and the data block including data C.
  • FIG. You can split it into (DB1-2) and connect it sequentially to the blockchain (BC).
  • the divided data blocks may be designated as a parent data block and a child data block according to a predetermined rule.
  • the parent data block DB1-1 may maintain an existing chain configuration.
  • the child data block DB1-2 may form a new chain NC with the parent data block DB1-1.
  • 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 the hash of the binding data stored in the public area may be updated. .
  • a plurality of data blocks may be integrated into one data block as opposed to splitting the data blocks.
  • the node generates a data block DB12 in which the first data block DB1 and the second data block DB2 of the pre-generated block chain BC are integrated, and the node is generated. Can be connected to the block chain (BC).
  • the index information indicating the type of the binding data stored in the header of the integrated data block DB12 and the hash of the binding data stored in the public area may be updated.
  • FIG. 6 is a block diagram showing a configuration of a node 600 according to an embodiment of the present invention.
  • the node 600 may be a client node (see CN1 and CN2 in FIG. 1) that is a component of a data processing system (see 10 in FIG. 1) or a server node (see SN in FIG. 1).
  • the node 600 may include a block generator 602, a storage 604, and a communication unit 606.
  • the communication unit 606 may establish communication (NW) between at least one other node.
  • the communication unit 606 may form the communication through wireless communication or wired communication.
  • the wireless communication may include at least one of LTE, LTE Advance (LTE-A), 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.
  • the wireless communication may include short-range communication using at least one of wireless fidelity (WiFi), light fidelity (LiFi), Bluetooth, Bluetooth low power (BLE), Zigbee, and near field communication (NFC). Can be.
  • the wired communication is at least one of a universal serial bus (USB), a high definition multimedia interface (HDMI), a reduced standard-232 (RS-232), a power line communication, or a plain old telephone service (POTS) and a system bus. It may include one.
  • USB universal serial bus
  • HDMI high definition multimedia interface
  • RS-232 reduced standard-232
  • POTS plain old telephone service
  • Storage unit 604 is a variety of data used by at least one component (e.g., block generator 602 or communication unit 606), such as software and input data or output data for commands associated therewith. Can be stored.
  • the storage unit 604 may include a volatile memory or a nonvolatile memory.
  • the storage unit 606 may be at least one memory area in which the data block DB or the block chain BC to which the data blocks DB are connected are stored.
  • the block generator 602 drives at least one software stored in a node to at least one other component connected to the block generator 602 (eg, the storage unit 604, or the communication unit 606). ), And various data processing and operations can be performed.
  • the block generator 602 may be at least one processor that processes the overall operations of the node.
  • the block generator 602 may generate the first block that is the beginning of the block chain.
  • the first block stores private data accessible only to the generating node, and the hash value of the encrypted private data may be used as a hash value for identifying a block connected to the first block.
  • the block generator 602 may encrypt private data using a private key held by the node 600, and generate a hash value for each encrypted private data.
  • the block generator 602 may generate a data block DB that is a block chain BC.
  • the block generator 600 may generate a data block DB including at least one binding data (see BD-1, BD-2, BD-3, and BD-4 in FIG. 1) having a permission level. Can be generated.
  • the data block DB may be a data block including information of a user registered in a specific facility. In this case, the data block DB may be generated every time a new user is registered at the facility. However, this is merely exemplary, and the present invention is not limited thereto.
  • the data block DB may be generated periodically at regular time intervals (eg, 10 minutes).
  • the block generator 602 may request proof of work to other nodes in the network NW in order to connect the generated data block DB to the block chain BC.
  • Proof of work means agreeing with another node that the blockchain is updated with the data block generated by the producing node.
  • the block generator 602 may request a proof of work by transmitting the generated data block DB to other nodes, and the verification nodes that have received the proof of work request a hash value and a random value of the received data block.
  • a nonce value and a preset verification algorithm may be used to calculate a value that satisfies a specified condition.
  • the verification node may perform an operation operation while changing the nonce value until a value satisfying the specified condition is calculated, and the verification node which has calculated the value satisfying the specified condition may report the verification completion to the generating node. have.
  • the block generation unit 602 may update the block chain BC by connecting the generated data blocks in a chain.
  • the block generator 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, at least one of deleting at least one binding data BD included in the data block DB, reduced copying of the pre-generated data block DB, and integration of the pre-generated data block DB may be processed. It can also be seen as an action.
  • the block generator 602 may change header information of the processed data block DB. For example, the hash value of the changed binding data BD and the information indicating the type of the changed binding data BD according to the deletion or addition of the binding data BD are displayed in the public area of the data block (see the BDH field of FIG. 3). And the header area of the data block (see, for example, the BDT field of FIG. 3).
  • the block generator 602 may store the processed data block DB in the storage 604 or transmit it to another authorized node connected to the network NW.
  • another authenticated node may include a server node and another client node, and they may store the received data block in a storage unit.
  • at least one node eg, a server node
  • the block generator 602 may transmit at least some data blocks DB constituting the block chain BC to another node.
  • the block generation unit 602 analyzes the header of the data block DB stored in the storage unit 604 to correspond to the data block DB. ) Can be sent to the requesting node.
  • 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 a part of the block chain when decrypting the data block DB. have.
  • this is merely exemplary, and the present invention is not limited thereto.
  • some data blocks DB are formed of only one data block DB formed of binding data BD having a permission level that does not correspond to a node's authority among the binding data BD included in the block chain BC. Can be.
  • the node storing the above-described data block DB cannot decrypt the data block DB that does not have the authority level for decrypting the data block DB, but the above-described data block DB is decoded to another node that can be decrypted. It can save network resources compared to the existing full blockchain (BC).
  • the data block DB may be generated by the client node (see CN1, CN2 in FIG. 1) and the server node (see SN in FIG. 1) included in the data processing system 10, and the data block DB in the following description. ) Is referred to as a 'generating node' for convenience of description.
  • the generation node may determine binding data BD (or extended data) and decryption authority level to be added to the data block DB (S10).
  • the binding data BD may be data to which a certain level of authority is granted so that only a node having a specified authority level can be decrypted.
  • the generation node may encrypt the binding data BD using the encryption key BK corresponding to the permission level (S12).
  • the generation node may have a plurality of encryption keys having different authority levels, and may obtain a key corresponding to the authority level to be assigned to the binding data BD among the encryption keys.
  • the generation 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 generation node may add private data P R D, which can be decrypted only by the generation node itself, in addition to the binding data BD to the data block DB, and describes data added to the data block DB. Header information may also be generated that includes information (eg, hash values, data types, etc.).
  • the data block DB may be decrypted by a client node and a server node included in the data processing system 10.
  • a node that decrypts the data block DB is referred to as a 'receiving node' for convenience of description. .
  • the receiving node may receive the data block DB through the network NW (S20).
  • the receiving node may generate a transaction requesting the binding data BD, transmit it to nodes included in the network NW, and receive a data block DB corresponding to the transaction.
  • the transaction may include the authority level of the receiving node, the category information of the binding data BD required by the receiving node, and the like.
  • the receiving node may identify the binding data BD by decoding at least a part of the received data block DB (see the BDH field of FIG. 3).
  • the receiving node determines whether there is binding data BD corresponding to the authority level of the receiving node, for example, binding data BD that can be decrypted, among the binding data BD included in the data block DB. Can be determined (S24).
  • the receiving node may end the decryption operation of the data block DB.
  • the receiving node may decrypt only the binding data BD corresponding to the authority level in the data block DB (S26).
  • the data block DB may be provided to other nodes by the client node and the server node included in the data processing system 10, and in the following description, a node providing the data block DB is referred to as a 'providing node' for convenience of description. Refer to.
  • the providing node may receive a data block request through the network NW (S30). For example, a transaction including a privilege level of a request node, category information of binding data BD required by the request node, and the like may be received.
  • the providing node may retrieve the data block DB corresponding to the transaction by analyzing the header of the stored data block DB (S32).
  • the providing node may provide the retrieved data block DB to the requesting node (S34).
  • the providing node may request sharing of the data block DB to an upper node (eg, a server node) (S36). For example, the providing node generates a transaction including the authority level of the requesting node, the category information of the binding data (BD) required by the requesting node, and transmits the transaction to the upper node, and sends the data block (DB) from the upper node. Can be received and forwarded to the requesting node. As another example, the providing node may add the request node's address to the transaction and send it to the higher node. In this case, the higher node may retrieve the data block DB corresponding to the transaction and transmit it directly to the requesting node without passing through the providing node.
  • an upper node eg, a server node
  • 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 verifying the data block DB is referred to as a 'verification node' for convenience of description. .
  • the verification node may receive a data block verification request through the network NW.
  • a transaction may be received that includes information of a data block DB that needs verification (for example, a block hash), information of a binding data BD that requires verification (for example, a binding data hash), and the like. It may be (S40).
  • the verification node may analyze the transaction to obtain a data block DB requiring verification (S42). For example, the verification node may obtain a data block DB corresponding to a transaction by checking a hash value of the stored data block DB.
  • the verification node may verify by decoding the binding data BD that requires verification in the data block DB (S44). For example, the verification node may apply a hash algorithm by decoding 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 a hash value (see BDH in FIG. 3) of the binding data included in the data block DB. In this case, if the result of the hash algorithm and the hash value of the binding data match, the integrity of the data block DB is verified. In addition, the verification node may write information (see VN of FIG. 3) indicating that verification is completed in the corresponding data block DB after the verification is completed.
  • VN of FIG. 3 indicating that verification is completed in the corresponding data block DB after the verification is completed.
  • Some or all of the devices (or modules) or methods (e.g. steps) according to the present invention may be stored in computer-readable storage media (e.g. storage of nodes) in the form of program modules. It may be implemented in a set of storage 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 a function corresponding to the instructions.
  • computer-readable storage media e.g. storage of nodes
  • the instructions may be executed by hardware including one or more processors such as a microchip, and the one or more processors may perform a function corresponding to the instructions.

Abstract

본 발명은, 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법에 관한 것이다. 본 발명의 일 실시예에서는 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다.

Description

블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템
본 발명은 블록 체인 기술에 관한 것으로서, 더욱 상세하게는, 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 노드 장치를 포함하는 시스템에 관한 것이다.
일반적인 데이터 관리 시스템은 중앙 집중형 서버를 이용한 클라우드 스토리지에 데이터 또는 파일들을 저장 및 관리하며, 사용자들이 클라우드 스토리지에 접속하여 데이터 또는 파일을 요청하거나 검색하게 된다. 이 경우 대용량 저장 장치가 요구될 뿐만 아니라, 이들을 관리하기 위한 중앙 집중형 서버가 요구되며 시스템 설계 및 유지가 복잡해질 수 있다. 또한, 상기 데이터 또는 파일이 사용자의 개인 정보를 포함하는 경우, 통상적으로 이러한 정보는 수정 및 갱신이 불가능하여 상기 서버가 유출되거나 복제되는 경우 대형 보안 사고가 발생할 수 있으며, 데이터가 집중된 중앙 집중형 서버가 해킹되면 저장된 데이터가 위조 또는 변조되어 유통되는 문제점이 발생될 수 있다.
최근에는 중앙 집중형 서버와 같은 전통적 정보 유통 방식으로 인한 취약한 보안 상의 문제점을 해결하기 위하여 공공 거래 장부라고 불리는 블록 체인(block chain)이 개발되고 있다. 상기 블록 체인은 개방형 네트워크에 참여하는 복수의 노드에 의해 데이터가 분산 저장되는 기술로서, 인증 노드들이 공동으로 데이터를 저장하고 데이터를 검증함으로써, 해킹에 의해 위조 또는 변조된 데이터가 유통되는 문제점을 해결할 수 있다.
일반적으로 블록 체인을 구성하는 데이터 블록들은 시간 흐름에 따라 생성된 거래 내역과 같은 데이터를 해시 함수를 통해 암호화하여 저장하는 것으로 체인으로 서로 연결된 데이터 블록은 개방형 네트워크에 참여하는 모든 노드에게 노출되고 공유될 수 있다. 따라서, 임의의 노드가 데이터 블록 내에 일부 데이터만을 이용하려고 해도, 데이터 블록 전체에 대해 복호화 처리를 하여야 하므로 상기 데이터 블록에 대한 처리 시간이 증가하며, 이를 처리 하기 위한 하드웨어 요구 성능과 네트워크 트래픽이 증가할 수 있다.
상기 블록 체인을 구성하는 각각의 데이터 블록들은 블록 해시(Hash) 값을 저장하고 있다. 블록 해시 값은 블록 검증에 사용되는 값으로, 해당 노드는 데이터 블록에 포함된 모든 데이터를 복호화하고 복호화된 데이터의 해시 값을 추출하여 데이터 블록에 저장된 블록 해시 값과 비교함으로써 데이터 블록이 검증될 수 있다. 상기 데이터 블록에 저장된 데이터 량이 증가할수록 데이터 복호화 시간이 증가하여 컴퓨터의 리소스가 과도하게 소모되는 문제점이 발생할 수 있다.
본 발명이 이루고자 하는 기술적 과제는, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 블록 체인을 기반으로 한 데이터 블록의 생성 장치를 제공하기 위한 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적 과제는, 전술한 이점을 갖는 데이터 블록의 생성 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 데이터 블록의 생성 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계; 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계; 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록은, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함할 수 있다.
일 실시예에서, 상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함할 수 있다.
일 실시예에서, 상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함할 수 있다.
일 실시예에서, 상기 제 2 퍼블릭 키는 상기 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용될 수 있다. 예를 들어, 상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록의 처리 방법은, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하는 단계; 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계; 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계; 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다.
일 실시예에서, 상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함할 수 있다. 일 실시예에서, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함할 수 있다. 예를 들어, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 확장 데이터가 추가적으로 저장되는 단계는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계; 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함할 수 있다. 예를 들어, 상기 파생 데이터 블록을 생성하는 단계는, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계; 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 데이터 블록의 처리 방법은 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록의 구조를 이용하는 노드 장치 또는 데이터 처리 시스템은 상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며, 상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고, 상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고, 상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고, 상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고, 상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고, 상기 프라이빗 영역은 상기 노드 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터 블록 처리 노드는 메모리; 및 적어도 하나의 프로세서를 포함할 수 있다. 예를 들어, 상기 프로세서는, 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장할 수 있다. 또한, 상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화될 수 있다.
일 실시예에서, 상기 프로세서는, 상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장할 수 있다.
일 실시예에서, 상기 프로세서는, 상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증할 수 있다.
본 발명의 일 실시예에 따른 복수의 노드들 사이에서 공유되는 데이터 처리 시스템은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및 상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함할 수 있다.
본 발명의 실시예에 따르면, 데이터 블록 내의 암호화된 정보들에 대하여 복호화 권한을 다중화함으로써, 네트워크 트래픽 요구량을 축소하고, 데이터 블록에 대한 처리 시간이 감소시키고, 하드웨어 자원을 줄이며, 데이터 블록의 검증 시간을 개선시키는 노드 장치가 제공될 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 상기 이점을 갖는 데이터 블록을 용이하게 생성하기 위한 데이터 블록의 생성 방법이 제공될 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 다중화된 복호화 권한 레벨에 기초하여 데이터 블록의 분할 및 재조합을 가능하게 하여 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다.
도 1는 본 발명의 일 실시예에 따른 블록 체인을 기반으로 한 데이터 처리 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 블록 체인의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록의 구성을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록에 대한 노드별 접근 권한을 도시한 도면이다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록 내에 바인딩 데이터를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록 내의 바인딩 데이터를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록의 통합 동작을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 노드의 구성을 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록의 생성 동작을 도시한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록을 복호화하는 동작을 도시한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 블록을 제공하는 동작을 도시한 순서도이다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록을 검증하는 동작 도시한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 하기 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 하기 실시예에 한정되는 것은 아니다. 오히려, 이들 실시예는 본 발명을 더욱 충실하고 완전하게 하고, 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
또한, 이하의 도면에서 각 층의 두께나 크기는 설명의 편의 및 명확성을 위하여 과장된 것이며, 도면상에서 동일 부호는 동일한 요소를 지칭한다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는" 는 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다.
본 명세서에서 제 1, 제 2 등의 용어가 다양한 부재, 부품, 영역, 층들 및/또는 부분들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부분들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 하나의 부재, 부품, 영역, 층 또는 부분을 다른 영역, 층 또는 부분과 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제 1 부재, 부품, 영역, 층 또는 부분은 본 발명의 가르침으로부터 벗어나지 않고서도 제 2 부재, 부품, 영역, 층 또는 부분을 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명된다. 도면들에 있어서, 예를 들면, 부재들의 크기와 형상은 설명의 편의와 명확성을 위하여 과장될 수 있으며, 실제 구현시, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 부재 또는 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 된다. 이하에서는, 도면을 참조하여 본 발명의 다양한 실시예들에 대해 설명하기로 한다.
도 1는 본 발명의 일 실시예에 따른 블록 체인(BC)을 기반으로 한 데이터 처리 시스템(10)을 도시한다.
도 1을 참조하면, 데이터 처리 시스템(10)은, 제 1 클라이언트 노드(CN1), 제 2 클라이언트 노드(CN2) 및 서버 노드(SN)와 같은 복수의 노드를 포함하며, 제 1 클라이언트 노드(CN1), 제 2 클라이언트 노드(CN2) 및 서버 노드(SN)는 네트워크(NW)에 연결될 수 있다. 도 1에서 두 개의 클라이언트 노드(CN1, CN2) 그리고 하나의 서버 노드(SN)가 네트워크(NW)에 연결되는 것을 예를 들었지만, 두 개 이상의 클라이언트 노드들과 하나 이상의 서버 노드(SN)가 네트워크(NW)에 연결될 수 도 있다. 본 발명에서, 서버 노드(SN)는 블록 체인(BC) 내의 전체 데이터 블록(DB)을 포함하는 노드를 지칭하며, 클라이언트 노드(CN1, CN2)는 각각 자신이 필요한 정보를 포함하는 데이터 블록만 저장하는 노드를 지칭할 수 있다.
각각의 노드는 서로 동일한 구성을 가지거나 서로 다른 구성을 가질 수 있다. 일 실시예에서, 데이터 처리 시스템(10) 내의 각각의 노드는, 도 6를 참조하여 후술하는 것과 같이, 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있으며, 태블릿 PC(Tablet PC), 랩톱(Laptop), 개인용 컴퓨터(PC: Personal Computer), 휴대형 멀티미디어 플레이어(PMP: Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone) 및 이동 통신 단말기(Mobile Communication Terminal) 중 적어도 어느 하나로 구현될 수 있다.
일 실시예에서, 서버 노드(SN)는 다수의 데이터 블록(DB)들이 사슬처럼 서로 체인화된 적어도 하나의 블록 체인(BC)을 저장할 수 있다. 예컨대, 하나의 제 1 데이터 블록(DB)은 3 개의 바인딩 데이터(BD-1, BD-2, BD-3)를 포함하고, 다른 하나의 제 2 데이터 블록은 1 개의 바인딩 데이터(BD4)를 포함하며, 제 1 데이터 블록(DB)과 제 2 데이터 블록(DB)은 체인으로 연결될 수 있다. 일 실시예에서, 상기 체인 연결은 제 2 데이터 블록(DB)이 제 1 데이터 블록(DB)의 블록 해시 값의 정보를 포함함으로써, 제 1 데이터 블록(DB)과 제 2 데이터 블록(DB) 사이에 연결을 갖는 것을 의미할 수 있다.
일 실시예에서, 블록 체인(BC)의 구성이 되는 각각의 데이터 블록(DB)은 권한 레벨을 가지는 적어도 하나의 바인딩 데이터(BD-1, BD-2, BD-3, BD-4)를 포함하며, 바인딩 데이터(BD-1, BD-2, BD-3, BD-4)는 권한 레벨을 가지는 노드만 복호화할 수 있다. 예를 들어, 바인딩 데이터는 공개가 가능하도록 지정된 적어도 하나의 공개용 데이터와 공개가 불가하도록 지정된 적어도 하나의 비공개용 데이터 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 서버 노드(SN)는 클라이언트 노드(CN1, CN2)에 의해 생성된 데이터 블록들(DB)을 수신하고 이를 시간 흐름에 따라 연결하여 블록 체인(BC)을 생성하여 저장할 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 서버 노드(SN)는 클라이언트 노드(CN1, CN2)에 의해 생성된 각각의 블록 체인들(BC)을 수신하여 저장할 수도 있다.
일 실시예에서, 서버 노드(SN)는 적어도 하나의 클라이언트 노드(CN1, CN2)의 요청에 대응하여 저장된 블록 체인(BC) 또는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 제 1 클라이언트 노드(CN1) 및/또는 제 2 클라이언트 노드(CN2)로 전송할 수 있다.
일 실시예에서, 제 1 클라이언트 노드(CN1) 및 제 2 클라이언트 노드(CN2)는 블록 체인(BC)의 원소인 데이터 블록(DB)을 생성할 수 있다. 일 실시예에서, 각각의 데이터 블록(DB)은, 도 2를 참조하여 후술하는 바와 같이, 특정 노드에서 복호화가 가능하도록 권한 레벨이 부여된 바인딩 데이터(BD)를 포함할 수 있다. 권한 레벨이 부여된 바인딩 데이터(BD)는 데이터 처리 시스템(10)에 포함된 노드 중 지정된 권한 레벨을 갖는 노드만 읽고 쓰기가 가능하도록 암호화될 수 있다. 구체적으로, 데이터 블록 내의 바인딩 데이터(BD)들에 대하여 복호화 권한을 다중화하여, 해당 권한 레벨을 갖는 노드들이 해당 바인딩 데이터(BD)들에 대하여 복호화 할 수 있다.
일 실시예에서, 제 1 클라이언트 노드(CN1) 및 제 2 클라이언트 노드(CN2) 중 적어도 하나의 노드는 서버 노드(SN)에 저장된 블록 체인(BC)의 일부 데이터 블록(DB)을 추출하여 저장할 수 있다. 예를 들어, 도시된 바와 같이, 제 1 클라이언트 노드(CN1)는 블록 체인(BC)내의 전체 데이터 블록(DB)으로부터 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-1과 BD-3)를 추출하여 데이터 블록(DB1)을 저장하거나, 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-1과 BD-3)을 서버 노드(SN)에 요청하여 바인딩 데이터(예를 들어, BD-1과 BD-3)을 포함하는 데이터 블록(DB1)을 저장할 수 있다. 마찬가지로, 제 2 클라이언트 노드(CN2)는 블록 체인(BC)내의 전체 데이터 블록(DB)으로부터 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-2와 BD-4)를 포함하는 데이터 블록(DB2)을 저장하거나, 자신의 권한 레벨에 대응되는 바인딩 데이터(예를 들어, BD-2과 BD-4)을 서버 노드(SN)에 요청하여 바인딩 데이터(예를 들어, BD-4과 BD-4)을 포함하는 데이터 블록(DB2)을 저장할 수 있다.
더하여, 도 1의 서버 노드(SN)에 저장된 블록 체인(BC) 내에 새로운 데이터 블록(BD)가 추가되거나, 데이터 블록(BD) 내에 새로운 바인딩 데이터에 더 추가될 수 있고(도 5a), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 기존 데이터 블록(BD)가 삭제되거나, 데이터 블록(BD) 내에 기존 바인딩 데이터에 삭제될 수 있고(도 5b), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터가 복제되어 새로운 블록 데이터를 생성할 수 있으며(이하, 축소 복제라 지칭함, 도 5c), 서버 노드(SN)에 저장된 블록 체인(BC) 내에 데이터 블록(BD)으로부터 일부 바인딩 데이터만 추출되어 새로운 블록 데이터를 생성할 수 있다(이하, 분할이라 지칭함, 도 5d). 또 다른 실시예에서, 후술할 도 5e에서처럼, 두 개의 데이터 블록이 하나의 데이터 블록으로 병합될 수 있다.
구현에 있어서, 다수의 블록 체인(BC) 중 제 1 블록 체인(BC)은 금융사에서 운용되는 블록 체인(BC)일 수 있으며, 제 2 블록 체인(BC)은 보험사에서 운용되는 블록 체인(BC)일 수 있고, 제 3 블록 체인(BC)은 병원에서 운용되는 블록 체인(BC)일 수 있고, 제 4 블록 체인(BC)은 관공서에서 운용되는 블록 체인(BC)일 수 있다. 이러한 각각의 블록 체인(BC)은 각 노드간 데이터 송수신 프로토콜에 의해 구분될 수 있으며, 프로토콜의 조정을 통해 상기 금융사의 제 1 블록 체인(BC)은 제 2 블록 체인(BC), 제 3 블록 체인(BC), 제 4 블록 체인(BC), 또는 이들의 조합으로부터 추출된 적어도 하나의 데이터 블록(BD)들과 체인으로 연결될 수도 있다.
전술한 바와 같이, 공개용 데이터 또는 비공개용 데이터를 데이터 블록(DB) 내의 바인딩 데이터(BD)의 영역에 수용함으로써, 블록 체인 구조에서 공개되지 않아야 하는 중요 정보와 공개가 필요한 정보를 동시에 수용할 수 있다. 또한, 데이터 블록(DB) 내의 바인딩 데이터(BD)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 추가 또는 삭제, 블록 체인(BC) 내의 데이터 블록(DB)의 병합, 데이터 블록(DB)의 축소 복제 그리고 분할이 가능함으로써, 유연하게 데이터 블록을 활용할 수 있다. 또한, 오리지널 데이터 블록의 일부를 추출하여 목적에 맞게 축소 생성된 데이터 블록을 생성함으로써, 블록 전송에 따른 네트워크 트래픽 요구량을 축소시킬 수 있으며, 하드웨어 자원을 줄일 수 있다.
더불어, 데이터 블록 내의 암호화된 바인딩 데이터들에 대하여 복호화 권한을 다중화함으로써, 특정 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 경우와 비교하여 데이터 블록의 처리 시간을 감소시킬 수 있으며, 데이터 블록의 검증 시간을 개선시킬 수 있다. 이로 인해, 데이터 복호화 및 검증을 위한 하드웨어 자원 및 데이터 블록 전송에 따른 네트워크 자원의 요구량을 축소시킬 수 있다.
또한, 데이터 블록의 소유자(예컨대, 금융사, 보험사, 병원)를 구분함으로써, 블록 체인 내에서 부가적으로 데이터 거래 시스템을 구현할 수 있으며, 전체 공개가 아닌 일부만 공개된 퍼블릭 키 제공으로 데이터 마이닝을 위한 하드웨어 자원 요구량을 축소할 수 있다.
더불어, 체인 연결을 위한 데이터블록 내 암호화된 영역의 해시 값을 이용하여, 블록 복호화 이전에 원하는 데이터를 포함하는 블록을 찾아내거나 복호화된 데이터의 무결성을 간단한 프로세스로 구현할 수 있다.
도 2는 본 발명의 일 실시예에 따른 블록 체인(BC)의 구성을 도시한 도면이다.
도 2를 참조하면, 블록 체인(BC)은 다수 개의 데이터 블록들(DB)이 사슬 형태로 연결되어 이루어진 것으로서, 각각의 데이터 블록(DB)은 바인딩 데이터(BD) 및 바인딩 데이터(BD)를 고유한 값으로 표현한 해시 값(BDH)을 포함할 수 있다. 또한, 각각의 데이터 블록은 자신의 블록 해시 값을 저장할 수 있다. 예를 들어, 자신의 블록 해시 값은 이전 데이터 블록의 바인딩 데이터(BD)의 해시 값과 자신의 데이터 블록 내의 바인딩 데이터를 입력으로 한 해시 함수에 의해 결정될 수 있다. 그러나, 이는 예시적일 뿐, 본원발명은 이에 한정되는 것이 아니다. 예를 들어, 일반적인 블록 체인을 구성하는 데이터 블록은 이전 블록의 해시 값도 함께 포함하고 있으므로, 블록 체인의 각 데이터 블록은 사슬처럼 서로 연결되어 이어질 수 있으며, 이전 블록의 해시 값은 블록 해시 생성에 이용될 수 있다. 또한, 데이터 블록은 넌스(Nonce) 값, 타임 스탬프(Time Stamp)을 더 포함할 수도 있다.
일 실시예에서, 블록 체인(BC)은 노드 별로 구분될 수 있다. 예를 들어, 제 1 클라이언트 노드(도 1의 CN1 참조)에 의해 생성된 블록(DB)들은 제 1 클라이언트 노드로 정의되는 제 1 블록 체인에 연결되고, 제 2 클라이언트 노드(도 1의 CN2 참조)에 의해 생성된 블록들은 제 2 클라이언트 노드로 정의되는 제 2 블록 체인에 연결될 수 있다. 또한, 블록 체인은 노드를 구분하지 않을 수 있다. 예를 들어, 데이터 처리 시스템(10)에는 하나의 블록 체인이 정의되며 각각의 노드에서 생성되는 블록들은 생성 시간에 따라 순차적으로 블록 체인에 연결될 수도 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 구성을 나타내는 도면이다.
도 3을 참조하면, 데이터 블록(DB)은 헤더 영역(HA), 퍼블릭 영역(PBA), 바인딩 영역(BA) 및 프라이빗 영역(PRA)으로 구성될 수 있으며, 바인딩 데이터(BD)는 지정된 권한 레벨을 갖는 노드에 의해서 복호화 가능하며, 프라이빗 데이터(PRD)는 데이터 블록(DB)의 최초 생성 노드만 프라이빗 데이터(PRD)를 복호화 가능할 수 있다. 그러나, 본 발명은 이들에 제한되지 않으며, 프라이빗 데이터(PRD)는 블록 체인(BC)의 소유자, 즉, 보험사, 금융사, 병원의 권한을 갖는 노드에 의해 복호화 가능하거나, 블록 체인을 소유하는 보험사, 금융사, 또는 병원을 이용하는 고객의 노드 장치에 의해 복호화 가능할 수 있다. 또한, 헤더 영역(HA)은 블록 해시 값(BLH), 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT), 제 1 퍼블릭 키(PK1) 및 무결성 검증 횟수(VN)를 포함할 수 있다.
일 실시예에서, 블록 해시 값(BLH)은 데이터 블록(DB)의 식별자 역할을 하는 것으로 데이터 블록 내에 저장된 권한 레벨을 가지는 바인딩 데이터(BD)의 해시 값에 대하여 사전 설정된 해시 알고리즘을 적용하여 생성할 수 있다. 다른 예로, 블록 해시 값(BLH)을 생성하는데 있어서 프라이빗 데이터(PRD)의 해시 값(PRDH), 바인딩 데이터(BD)의 인덱스(BDT) 등과 같은 데이터 블록(BD)에 저장된 다른 정보에 대하여 해시 알고리즘을 적용할 수도 있다.
일 실시예에서, 프라이빗 데이터(PRD)의 해시 값(PRDH)은 프라이빗 데이터 영역(PRA)에 저장된 프라이빗 데이터(PRD)의 식별자 역할을 하는 것으로, 저장된 프라이빗 데이터(PRD)로부터 생성된 머클트리 루트에 대한 해시 값일 수 있다. 예를 들어, 제 1 프라이빗 데이터 내지 제 3 프라이빗 데이터가 저장된 경우, 제 1 프라이빗 데이터의 해시 값과 제 2 프라이빗 데이터의 해시 값을 합한 해시 값을 생성하고, 이를 제 3 프라이빗 데이터 해시 값과 다시 합한 최종 해시 값을 프라이빗 데이터의 해시 값으로 사용할 수 있다.
일 실시예에서, 바인딩 데이터의 인덱스(BDT)는 바인딩 데이터 영역(BA)에 저장된 바인딩 데이터(BD)의 타입을 나타내는 정보일 수 있다. 예를 들어, 인덱스 정보는, 금융업과 관련된 데이터, 의료업과 관련된 데이터, 보험업과 관련된 데이터 중 적어도 하나를 지시하는 정보를 포함할 수 있다. 또한, 인덱스 정보는 각각의 바인딩 데이터(BD)에 부여된 권한 레벨을 지시하는 정보를 포함할 수도 있다.
일 실시예에서, 제 1 퍼블릭 키(PK1)는 바인딩 영역을 복호화하기 위한 복호화 키를 연산하기 위해 사용되는 정보일 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)는 적어도 일부만 공개되고 나머지 일부는 공개되지 않은 형태로 제공될 수 있다. 이로 인하여, 네트워크(NW)에 포함된 인증되지 않은 노드는 복호화 키를 알 수 없어 데이터 블록(DB)의 복호화가 제한될 수 있다. 또한, 제 1 퍼블릭 키(PK1)의 공개 정도는 변경될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)의 공개 정도가 많은 경우, 그렇지 않은 경우보다 복호화 키를 연산하는데 소요되는 시간 및 하드웨어 요구량이 줄어들 수 있다.
일 실시예에서, 무결성 검증 횟수(VN)는 데이터 블록 또는 바인딩 데이터에 대하여 수행된 오류 검증 횟수를 나타낸다.
일 실시예에서, 퍼블릭 영역(PBA)은 제 2 퍼블릭 키(PK2) 및 바인딩 데이터(BD)의 해시 값(BDH)을 포함할 수 있다. 예를 들어, 제 2 퍼블릭 키(PK2)는 제 1 퍼블릭 키(PK1)를 이용하여 획득된 복호화 키가 정상적인 키인지 판단하는데 사용되는 정보로, 제 1 퍼블릭 키(PK1)로 연산된 복호화 키와 제 2 퍼블릭 키(PK2)를 비교하고 두 키가 서로 동일하면 정상적인 키가 획득된 것으로 판단할 수 있다. 또한, 제 2 퍼블릭 키(PK2)의 적어도 일부가 공개되지 않은 형태로 제공될 수 있다. 예를 들어, 제 1 퍼블릭 키(PK1)를 사용하여 연산된 암호화키로 제 2 퍼블릭 키(PK2)를 복호화하고 제 1 퍼블릭 키(PK1)와 제 2 퍼블릭 키(PK2)를 연산하여 바인딩 영역 복호화를 위한 암호화 키를 획득할 수 있다. 이는 개방형 블록 체인 내에서 전체 공개되는 퍼블릭 키가 아닌 일부만 공개된 퍼블릭 키 제공으로써, 데이터 복호화를 위한 하드웨어 자원 요구량을 축소할 수 있다.
일 실시예에서, 바인딩 영역(BA)은 복수의 바인딩 키(BK1, BK2, …, BKn) 및 각각의 바인딩 키(BK1, BK2, …, BKn)로 복호화할 수 있는 바인딩 데이터(BD1, BD2, …, BDn)를 포함할 수 있다. 예를 들어, 복수의 바인딩 키(BK1, BK2, …, BKn)는 서로 다른 권한 레벨을 가질 수 있다. 또한, 바인딩 데이터(BD1, BD2, …, BDn)는 다른 노드에 공개가 가능한 정보로, 나이, 거주지역, 직종, 소득수준, 자산 상태 등과 같이 개인 특정이 불가능한 정보 레코드를 포함할 수 있다. 또한, 바인딩 영역이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보는 퍼블릭 영역(PBA)에 저장될 수 있다.
일 실시예에서, 프라이빗 영역(PRA)은 데이터 블록(DB)을 생성한 생성 노드만 복호화할 수 있는 프라이빗 데이터(PRD)를 포함할 수 있다. 예를 들어, 프라이빗 데이터(PRD)는 생성 노드가 별도로 가지고 있는 복호화 키에 의해서만 복호화될 수 있다. 예컨대, 프라이빗 데이터(PRD)는 다른 노드에 공개되지 않아야 하는 정보로, 예를 들어, 주민 번호, 이름 등과 같이 개인 특정이 가능한 정보를 포함할 수 있다.
도 4는 본 발명의 일 실시예에 따른 데이터 블록(DB)에 대한 노드별 접근 권한을 도시한 도면이다.
도 4를 참조하면, 데이터 블록에(DB) 저장된 다수의 바인딩 데이터는 각각의 권한 레벨을 가지고 있으며, 노드들은 데이터 블록(DB)으로부터 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터만 접근하여 복호화할 수 있다. 예를 들어, 노드들은 데이터 블록(DB)의 헤더 영역(HA)에서 퍼블릭 키를 추출할 수 있으며, 추출된 퍼블릭 키를 이용하여 퍼블릭 영역(PBA)을 복호화함으로써, 상기 자신이 갖는 권한 레벨에 대응되는 바인딩 데이터를 확인할 수 있다.
일 실시예에서, 데이터 블록(DB)의 헤더 영역(HA)과 퍼블릭 영역(PBA)은 노드들이 복호화 가능한 바인딩 데이터를 확인하는데 사용되는 영역으로, 데이터 처리 시스템에 포함된 모든 노드(all node)가 접근할 수 있다.
일 실시예에서는 레벨 1부터 레벨 n까지의 권한을 정의하였으며 레벨 1, 레벨 2 및 레벨 3은 각각 바인딩 영역(BA)의 제 1 영역(BA1), 제 2 영역(BA2) 및 제 3 영역(BA3)에 접근이 가능한 레벨이고, 레벨 n은 바인딩 영역(BA)의 전체 영역에 접근이 가능한 레벨로 가정한다.
따라서, 레벨 1의 권한을 가지는 노드(NLV1)는 데이터 블록(DB)의 헤더 영역(HA) 및 퍼블릭 영역(PBA)을 분석하여 바인딩 영역(BA)의 제 1 영역(BA1)에 접근이 가능한 바인딩 데이터가 포함되어 있다고 판단하고 제 1 영역에 저장된 바인딩 키를 이용하여 바인딩 데이터를 복호화할 수 있다. 유사하게, 레벨 2 및 레벨 3의 권한을 가지는 각각의 노드(NLV2, NLV3)도 바인딩 영역의 제 2 영역 및 제 3 영역에 저장된 바인딩 데이터만 복호화할 수 있다. 또한, 레벨 n의 권한을 가지는 노드(NLVn)는 바인딩 영역의 모든 영역에 접근이 가능하여 자신이 원하는 적어도 하나의 바인딩 데이터를 복호화할 수 있다.
또한, 데이터 블록(DB)을 최초로 생성한 생성 노드(Nowner)는 데이터 블록(DB)에 대한 최상위 권한 레벨을 가질 수 있다. 이에 따라, 생성 노드(Nowner)는 일부 바인딩 데이터 또는 모든 바인딩 데이터를 복호화할 수 있으며, 추가적으로 프라이빗 영역(PRA)에 저장된 프라이빗 데이터도 복호화할 수 있다. 도시하지 않았지만, 바인딩 영역에 저장된 적어도 하나의 바인딩 데이터에 대하여도, 모든 노드에 의해 접근되는 것이 제한될 수도 있다.
도 5a는 본 발명의 일 실시예에 따른 데이터 블록(DB) 내에 바인딩 데이터(BD)를 추가하는 동작을 설명하기 위한 예시도이고, 도 5b는 데이터 블록(DB) 내의 바인딩 데이터(BD)를 삭제하는 동작을 설명하기 위한 예시도이고, 도 5c는 데이터 블록(DB)을 복제하는 동작을 설명하기 위한 예시도이고, 도 5d는 데이터 블록(DB)의 통합 동작을 설명하기 위한 예시도이다.
일 실시예에서, 블록 체인은 다수의 데이터 블록들이 서로 연결된 구조를 가지며, 각각의 데이터 블록은 권한 레벨을 가지는 적어도 하나의 바인딩 데이터를 포함할 수 있다. 예를 들어, 본 예시도에 도시된 바와 같이, 제 1 데이터 블록(DB1)은 3 개의 바인딩 데이터(데이터 A, 데이터 B 및 데이터 C)를 포함하고, 제 2 데이터 블록(DB2)도 3 개의 바인딩 데이터(데이터 D, 데이터 E 및 데이터 F)를 포함하고, 제 3 데이터 블록(DB3)은 1 개의 바인딩 데이터(데이터 G)를 포함하며, 제 1 데이터 블록(DB1), 제 2 데이터 블록(DB2) 및 제 3 데이터 블록(DB3)이 서로 연결되어 블록 체인(BC)을 형성할 수 있다.
도 5a를 참조하면, 블록 체인(BC)을 수신하는 적어도 하나의 노드는 데이터 블록 내에 새로운 바인딩 데이터를 추가할 수 있다. 예를 들어, 도 5a의 510과 같이, 노드가 기 생성된 블록 체인(BC)의 제 1 데이터 블록(DB1)에 바인딩 데이터 H를 추가할 수 있다. 이때, 제 1 데이터 블록(DB1)의 크기를 고려하여 바인딩 데이터를 추가할 수 있다. 예를 들어, 바인딩 데이터 H의 추가에 의해 제 1 데이터 블록(DB1)의 크기가 미리 정해진 크기를 벗어나는 경우, 바인딩 데이터 H는 제 1 데이터 블록(DB1)의 미리 정해진 크기에 맞게 분할 또는 압축된 상태로 추가될 수 있다. 또한, 추가된 바인딩 데이터의 타입을 나타내는 인덱스 정보는 데이터 블록의 헤더에 저장되고, 추가된 바인딩 데이터의 해시는 데이터 블록의 퍼블릭 영역에 저장될 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 도 5a의 520과 같이 데이터 H를 포함하는 새로운 데이터 블록(DB4)을 생성하고, 이를 제 1 데이터 블록(DB1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 제 1 데이터 블록(DB1)이 부모 데이터 블록이 되고 새로이 추가된(또는 파생된) 데이터 블록(DB4)은 자식 데이터 블록이 되며, 이러한 관계를 나타내는 정보는 각각의 데이터 블록에 추가될 수도 있다. 또한, 상기 바인딩 데이터의 타입을 나타내는 인덱스 정보와 상기 추가된 바인딩 데이터의 해시는 각각 새로이 추가된 데이터 블록(DB4)의 헤더 및 퍼블릭 영역에 저장될 수 있다.
일 실시예에서는 데이터 블록 내에 바인딩 데이터를 추가하는 것과 반대로 데이터 블록 내에 저장된 바인딩 데이터를 삭제할 수 있다. 예를 들어, 도 5b에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터 C를 삭제함으로써 노드는 데이터 A 및 데이터 B로 구성된 데이터 블록(DB1)을 저장할 수 있다. 또한, 삭제된 바인딩 데이터의 타입을 나타내는 인덱스 정보는 데이터 블록의 헤더에서 삭제되고, 삭제된 바인딩 데이터의 해시도 데이터 블록의 퍼블릭 영역에서 삭제될 수 있다.
일 실시예에서는 블록 체인(BC)을 수신하는 적어도 하나의 노드는 기 생성된 데이터 블록(DB)을 복제할 수 있다. 예를 들어, 도 5c에 도시된 바와 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)에 저장된 데이터의 일부를 복제하여 제 1 데이터 블록 대비 축소된(또는 파생된) 데이터 블록(DBC)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 예를 들어, 도 5c의 530과 같이 데이터 C가 복제되어 파생된 데이터 블록(DBC)가 제 1 데이터 블록과 제 2 데이터 블록 사이에 연결될 수 있다. 다른 예로, 도 5c의 540과 같이 데이터 C를 복제한 데이터 블록(DBC)을 생성하고, 이를 제 1 데이터 블록(DB1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 복제된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보와 복제된 바인딩 데이터의 수정 해시는 각각 파생된 데이터 블록의 헤더 및 퍼블릭 영역에 저장될 수 있다.
일 실시예에서는 블록 체인을 수신하는 적어도 하나의 노드가 기 생성된 하나의 데이터 블록(DB)을 복수의 데이터 블록으로 분할할 수 있다. 예를 들어, 도 5d의 550과 같이, 노드가 기 생성된 블록 체인의 제 1 데이터 블록(DB1)을 데이터 A 및 데이터 B를 포함하는 데이터 블록(DB1-1)과 데이터 C를 포함하는 데이터 블록(DB1-2)으로 분할하고 이를 순차적으로 블록 체인(BC)에 연결할 수 있다. 다른 예로, 도 5d의 560과 같이, 분할된 데이터 블록들은 정해진 규칙에 따라 부모 데이터 블록과 자식 데이터 블록으로 지정될 수 있으며, 일 예로, 부모 데이터 블록(DB1-1)은 기존 체인 구성을 유지하고 자식 데이터 블록(DB1-2)은 부모 데이터 블록(DB1-1)과 새로운 체인(NC)을 형성할 수 있다. 이때, 데이터 블록의 분할에 따라, 각각의 블록, 예를 들어, 부모 데이터 블록과 자식 데이터 블록의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다.
일 실시예에서는 데이터 블록을 분할하는 것과 반대로 복수의 데이터 블록을 하나의 데이터 블록으로 통합할 수도 있다. 예를 들어, 도 5e에 도시된 바와 같이, 노드가 기 생성된 블록 체인(BC)의 제 1 데이터 블록(DB1)과 제 2 데이터 블록(DB2)을 통합한 데이터 블록(DB12)을 생성하고 이를 블록 체인(BC)에 연결할 수 있다. 이때, 데이터 블록의 통합에, 통합 데이터 블록(DB12)의 헤더에 저장된 바인딩 데이터의 타입을 나타내는 인덱스 정보와 퍼블릭 영역에 저장된 바인딩 데이터의 해시가 갱신될 수 있다.
도 6은 본 발명의 일 실시예에 따른 노드(600)의 구성을 도시하는 블록도이다.
도 6을 참조하면, 노드(600) 데이터 처리 시스템(도 1의 10 참조)의 구성인 클라이언트 노드(도 1의 CN1, CN2 참조)이거나 서버 노드(도 1의 SN 참조)일 수 있다. 일 실시예에서, 노드(600)는 블록 생성부(602), 저장부(604) 및 통신부(606)를 포함할 수 있다.
일 실시예에서, 통신부(606)는 적어도 하나의 다른 노드 사이의 통신(NW)을 수립할 수 있다. 예를 들어, 통신부(606)는 무선 통신 또는 유선 통신을 통해서 상기 통신을 형성할 수 있다. 예컨대, 상기 무선 통신은 LTE, LTE-A(LTE Advance), CDMA(code division multipleaccess), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), 또는 GSM(Global System for Mobile Communications) 중 적어도 어느 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 또한, 상기 무선 통신은 WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), 및 NFC(near field communication) 중 적어도 어느 하나를 사용하는 근거리 통신을 포함할 수 있다. 다른 실시예에서, 상기 유선 통신은 USB(universal serial bus),HDMI(high definition multimediainterface), RS-232(recommended standard-232), 전력선 통신, 또는 POTS(plain old telephone service) 및 시스템 버스 중 적어도 어느 하나를 포함할 수 있다.
저장부(604)는 적어도 하나의 구성요소(예: 블록 생성부(602) 또는 통신부 (606))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 저장부(604)는, 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 일 실시예에서, 저장부(606)는 데이터 블록(DB) 또는 데이터 블록들(DB)이 서로 연결된 블록 체인(BC)이 저장되는 적어도 하나의 메모리 영역일 수 있다.
일 실시예에서, 블록 생성부(602)는 노드에 저장된 적어도 하나의 소프트웨어를 구동하여 블록 생성부(602)에 연결된 적어도 하나의 다른 구성요소(예: 저장부(604), 또는 통신부(606))을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 예를 들어, 블록 생성부(602)는 노드의 전반적인 동작을 처리하는 적어도 하나의 프로세서일 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인의 시초가 되는 최초 블록을 생성할 수 있다. 최초 블록은 생성 노드만 접근할 수 있는 프라이빗 데이터가 저장되며, 암호화된 프라이빗 데이터의 해시 값이 최초 블록과 연결된 블록을 식별하는 해시 값으로 이용될 수 있다. 예를 들어, 블록 생성부(602)는 노드(600)가 보유하고 있는 프라이빗 키를 이용하여 프라이빗 데이터를 암호화할 수 있으며, 각각의 암호화된 프라이빗 데이터에 대한 해시 값을 생성할 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인(BC)의 구성이 되는 데이터 블록(DB)을 생성할 수 있다. 예를 들어, 블록 생성부(600)는 권한 레벨을 가지는 적어도 하나의 바인딩 데이터(도 1의 BD-1, BD-2, BD-3, BD-4 참조)를 포함하는 데이터 블록(DB)을 생성할 수 있다. 데이터 블록(DB)은 특정 시설에 등록된 사용자의 정보를 포함하는 데이터 블록일 수 있으며, 이러한 경우 시설에 신규 사용자가 등록될 때마다 데이터 블록(DB)이 생성될 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 데이터 블록(DB)은 일정 시간(예를 들어, 10 분) 간격으로 주기적으로 생성될 수도 있다.
일 실시예에서, 블록 생성부(602)는 생성된 데이터 블록(DB)을 블록 체인(BC)에 연결하기 위해서 네트워크(NW) 내의 다른 노드들로 작업 증명을 요청할 수 있다. 작업 증명은 생성 노드에 의해 생성된 데이터 블록으로 블록 체인을 갱신한다는 것을 다른 노드와 합의하는 것을 의미한다. 예를 들어, 블록 생성부(602)는 생성된 데이터 블록(DB)을 다른 노드들로 전송함으로써 작업 증명을 요청할 수 있으며, 작업 증명을 요청받은 검증 노드들은 수신된 데이터 블록의 해시 값과 임의의 넌스 값 그리고 사전 설정된 검증 알고리즘을 이용하여 지정된 조건을 만족하는 값을 산출할 수 있다. 이때, 검증 노드는 지정된 조건을 만족하는 값이 산출될 때까지 넌스 값을 변경하면서 연산 동작을 수행할 수 있으며, 지정된 조건을 만족하는 값을 산출한 검증 노드는 생성 노드로 검증 완료를 보고할 수 있다. 또한, 블록 생성부(602)는 검증을 완료한 검증 노드의 수가 지정된 수를 만족하는 경우, 생성된 데이터 블록을 체인으로 연결함으로써 블록 체인(BC)을 갱신할 수 있다.
일 실시예에서, 블록 생성부(602)는 기 생성된 체인(BC)을 가공할 수 있다. 블록 체인(BC)을 가공하는 것은, 블록 체인(BC)의 원소인 적어도 하나의 데이터 블록(DB)에 적어도 하나의 바인딩 데이터(BD)를 추가하는 것을 포함할 수 있다. 뿐만 아니라, 데이터 블록(DB)에 포함된 적어도 하나의 바인딩 데이터(BD) 삭제, 기 생성된 데이터 블록(DB)의 축소 복제, 기 생성된 데이터 블록(DB)의 통합 중 적어도 하나를 가공의 한 동작으로 볼 수도 있다. 일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)의 헤더 정보를 변경할 수 있다. 예를 들어, 바인딩 데이터(BD)의 삭제 또는 추가에 따라 변경된 바인딩 데이터(BD)의 해시 값 및 변경된 바인딩 데이터(BD)의 타입을 나타내는 정보를 데이터 블록의 퍼블릭 영역(도 3의 BDH 필드 참조) 및 데이터 블록의 헤더 영역(예를 들어, 도 3의 BDT 필드 참조)에 각각 기입할 수 있다.
일 실시예에서, 블록 생성부(602)는 가공된 데이터 블록(DB)을 저장부(604)에 저장하거나 네트워크(NW)에 연결된 인증된 다른 노드로 전송할 수 있다. 이때, 인증된 다른 노드는 서버 노드와 다른 클라이언트 노드를 포함할 수 있으며, 이들은 수신된 데이터 블록을 저장부에 저장할 수 있다. 또한, 적어도 하나의 노드(예를 들어, 서버 노드)는 가공된 데이터 블록과 가공되기 전의 데이터 블록도 함께 저장할 수 있다. 이로 인하여, 최초의 데이터 블록에 저장된 바인딩 데이터의 일부가 가공 동작에 의해 영구적으로 삭제되는 것을 방지할 수 있다.
일 실시예에서, 블록 생성부(602)는 블록 체인(BC)을 구성하는 적어도 일부의 데이터 블록(DB)을 다른 노드로 전송할 수 있다. 이때, 블록 생성부(602)는 다른 노드로부터 요청 데이터에 대한 정보가 포함된 트랜잭션을 수신하면, 저장부(604)에 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 확인하여 이를 요청 노드로 전송할 수 있다.
전술한 바와 같이, 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화 시, 블록 체인의 일부만 복호화하여 기존의 블록 체인 전체를 복호화화는 방식 대비 복호화 시 요구되는 하드웨어 자원을 절약할 수 있다. 그러나, 이는 예시적일 뿐, 본 발명은 이에 한정되는 것이 아니다. 예를 들어, 일부 데이터 블록(DB)은 블록 체인(BC) 내에 포함된 바인딩 데이터(BD) 중 노드의 권한에 대응되지 않는 권한 레벨을 가지는 바인딩 데이터(BD)로만 형성된 하나의 데이터 블록(DB)일 수 있다. 상술한 데이터 블록(DB)을 저장한 노드는 데이터 블록(DB) 복호화를 위한 권한 레벨을 갖지 않는 데이터 블록(DB)을 복호화할 수 없으나, 상술한 데이터 블록(DB)을 복호화화 가능한 다른 노드로 제공하여 기존의 전체 블록 체인(BC)을 제공하는 방식 대비 네트워크 자원을 절약할 수 있다.
도 7은 본 발명의 일 실시예에 따른 데이터 블록(DB)의 생성 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드(도 1의 CN1, CN2 참조) 및 서버 노드(도 1의 SN 참조)에 의해 생성될 수 있으며, 이하 설명에서 데이터 블록(DB)을 생성하는 노드를 설명의 편의상 '생성 노드'로 지칭한다.
도 7을 참조하면, 생성 노드는 데이터 블록(DB)에 추가할 바인딩 데이터(BD)(또는 확장 데이터) 및 복호화 권한 레벨을 결정할 수 있다(S10). 바인딩 데이터(BD)는 지정된 권한 레벨을 가지는 노드에서만 복호화가 가능하도록 일정 수준의 권한 레벨이 부여되는 데이터일 수 있다.
이후, 생성 노드는 권한 레벨에 대응되는 암호화 키(BK)를 이용하여 바인딩 데이터(BD)를 암호화할 수 있다(S12). 상기 생성 노드는 서로 다른 권한 레벨을 가지는 다수의 암호화 키들을 가질 수 있으며 이러한 암호화 키들 중 바인딩 데이터(BD)에 부여할 권한 레벨에 대응하는 키를 획득할 수 있다.
이후, 생성 노드는 바인딩 데이터(BD) 및 암호화 키(BK)를 이용하여 데이터 블록(DB)을 생성할 수 있다(S14). 도 3을 참조하여 전술한 것과 같이 바인딩 데이터(BD)와 암호화 키(BK)는 데이터 블록(DB)의 바인딩 영역(BA)에 추가될 수 있다. 또한, 생성 노드는 바인딩 데이터(BD) 외에 생성 노드 자신만 복호화할 수 있는 프라이빗 데이터(PRD)를 데이터 블록(DB) 내에 추가할 수도 있으며, 데이터 블록(DB)에 추가된 데이터를 설명하는 정보(예를 들어, 해시 값, 데이터 타입 등)를 포함하는 헤더 정보를 생성할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 복호화하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 복호화될 수 있으며, 이하 설명에서 데이터 블록(DB)을 복호화하는 노드를 설명의 편의상 '수신 노드'로 지칭한다.
도 8을 참조하면, 수신 노드는 네트워크(NW)를 통해 데이터 블록(DB)을 수신할 수 있다(S20). 예를 들어, 수신 노드는 바인딩 데이터(BD)를 요청하는 트랜잭션을 생성하여 네트워크(NW)에 포함된 노드들로 전송하고 트랜잭션에 대응하는 데이터 블록(DB)을 수신할 수 있다. 예를 들어, 트랜잭션에는 수신 노드의 권한 레벨, 수신 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함될 수 있다.
이후, 수신 노드는 수신된 데이터 블록(DB)의 적어도 일부(도 3의 BDH 필드 참조)를 복호화하여 바인딩 데이터(BD)를 확인할 수 있다(S22).
이후, 수신 노드는 데이터 블록(DB)에 포함된 바인딩 데이터(BD) 중 수신 노드의 권한 레벨에 대응하는 바인딩 데이터(BD), 예를 들어, 복호화가 가능한 바인딩 데이터(BD)가 존재하는지 여부를 판단할 수 있다(S24).
데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하지 않으면, 수신 노드는 데이터 블록(DB)의 복호화 동작을 종료할 수 있다.
데이터 블록(DB)에 권한 레벨에 대응하는 바인딩 데이터(BD)가 존재하면, 수신 노드는 데이터 블록(DB)에서 권한 레벨에 대응하는 바인딩 데이터(BD)만을 복호화할 수 있다(S26).
도 9는 본 발명의 일 실시예에 따른 데이터 블록(DB)을 제공하는 동작을 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 다른 노드로 제공될 수 있으며, 이하 설명에서 데이터 블록(DB)을 제공하는 노드를 설명의 편의상 '제공 노드'로 지칭한다.
도 9를 참조하면, 제공 노드는 네트워크(NW)를 통해 데이터 블록 요청을 수신할 수 있다(S30). 예를 들어, 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 수신할 수 있다.
이후, 제공 노드는 저장된 데이터 블록(DB)의 헤더를 분석하여 트랜잭션에 대응하는 데이터 블록(DB)을 검색할 수 있다(S32).
트랜잭션에 대응되는 데이터 블록(DB)이 검색되면, 제공 노드는 검색된 데이터 블록(DB)을 요청 노드로 제공할 수 있다(S34).
트랜잭션에 대응되는 데이터 블록(DB)이 검색되지 않으면, 제공 노드는 상위 노드(예를 들어, 서버 노드)로 데이터 블록(DB)의 공유를 요청할 수 있다(S36). 예를 들어, 제공 노드는 요청 노드의 권한 레벨, 요청 노드가 필요로 하는 바인딩 데이터(BD)의 카테고리 정보 등을 포함하는 트랜잭션을 생성하여 상위 노드로 전송하고, 상위 노드로부터 데이터 블록(DB)을 수신하여 요청 노드로 전달할 수 있다. 다른 예로, 제공 노드는 요청 노드의 주소를 트랜잭션에 추가하여 상위 노드로 전송할 수 있다. 이러한 경우, 상위 노드는 트랜잭션에 대응하는 데이터 블록(DB)을 검색하여 제공 노드를 거치지 않고 직접 요청 노드로 전송할 수 있다.
도 10은 본 발명의 일 실시예에 따른 데이터 블록(DB)을 검증하는 동작 도시한 순서도이다. 데이터 블록(DB)은 데이터 처리 시스템(10)에 포함된 클라이언트 노드 및 서버 노드에 의해 검증될 수 있으며, 이하 설명에서 데이터 블록(DB)을 검증하는 노드를 설명의 편의상 '검증 노드'로 지칭한다.
도 10을 참조하면, 검증 노드는 네트워크(NW)를 통해 데이터 블록 검증 요청을 수신할 수 있다. 예를 들어, 검증이 필요한 데이터 블록(DB)의 정보(예를 들어, 블록 해시), 검증이 필요한 바인딩 데이터(BD)의 정보(예를 들어, 바인딩 데이터 해시) 등을 포함하는 트랜잭션을 수신할 수 있다(S40).
이후, 검증 노드는 트랜잭션을 분석하여 검증이 필요한 데이터 블록(DB)을 획득할 수 있다(S42). 예를 들어, 검증 노드는 저장된 데이터 블록(DB)의 해시 값을 확인하여 트랜잭션에 대응하는 데이터 블록(DB)을 획득할 수 있다.
이후, 검증 노드는 데이터 블록(DB)에서 검증이 필요한 바인딩 데이터(BD)를 복호화하여 검증할 수 있다(S44). 예를 들어, 검증 노드는 트랜잭션에 대응되는 바인딩 데이터(BD)를 복호화하여 해시 알고리즘을 적용할 수 있다. 또한, 검증 노드는 해시 알고리즘의 결과를 데이터 블록(DB)에 포함된 바인딩 데이터의 해시 값(도 3의 BDH 참조)과 비교함으로써 검증을 완료할 수 있다. 이때, 해시 알고리즘의 결과와 바인딩 데이터의 해시 값이 일치하면 데이터 블록(DB)에 대한 무결성이 입증되는 것이다. 또한, 검증 노드는 검증을 완료한 후 해당 데이터 블록(DB)에 검증이 완료됨을 나타내는 정보(도 3의 VN 참조)를 기입할 수 있다.
본 발명에 따른 장치(또는 모듈) 또는 방법(예: 단계)의 일부 또는 전부는, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)(예: 노드의 저장부)에 저장 가능한 명령어들의 집합, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 상기 명령어는, 마이크로칩과 같은 하나 이상의 프로세서를 포함하는 하드웨어에 의해 실행될 수 있으며, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.

Claims (33)

  1. 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 생성 방법으로서,
    공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하는 단계;
    각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하는 단계;
    상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하는 단계; 및
    상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 데이터 블록은,
    상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보를 포함하는 헤더 영역, 상기 데이터 블록에 저장된 상기 적어도 하나의 바인딩 데이터의 해시 값이 저장되는 퍼블릭 영역, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부가 저장되는 바인딩 영역 및 암호화된 프라이빗 데이터가 저장되는 프라이빗 영역을 포함하는 데이터 블록의 생성 방법.
  3. 제 2 항에 있어서,
    상기 헤더 영역은 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 더 포함하는 데이터 블록의 생성 방법.
  4. 제 2 항에 있어서,
    상기 퍼블릭 영역은, 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 데이터 블록의 생성 방법.
  5. 제 4 항에 있어서,
    상기 제 2 퍼블릭 키는 상기 제 1 퍼블릭 키의 적어도 일부로부터 검색된 상기 제 1 퍼블릭 키를 검증하기 위해 사용되며,
    상기 제 2 퍼블릭 키는 상기 검색된 상기 제 1 퍼블릭 키의 적어도 일부 또는 전체를 포함하는 데이터 블록의 생성 방법.
  6. 제 2 항에 있어서,
    상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
    상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 생성 방법.
  7. 제 6 항에 있어서,
    상기 확장 데이터가 추가적으로 저장되는 단계는,
    상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
    상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법.
  8. 제 2 항에 있어서,
    상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
    상기 파생 데이터 블록을 생성하는 단계는,
    상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
    상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
    상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 생성 방법.
  9. 제 1 항에 있어서,
    상기 인덱스 정보는 금융, 건강, 보험, 교육, 재무 중 적어도 하나를 포함하는 데이터 블록의 생성 방법.
  10. 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 블록의 처리 방법으로서,
    공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하는 단계;
    상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하는 단계;
    상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하는 단계;
    상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 단계를 포함하는 데이터 블록의 처리 방법.
  11. 제 10 항에 있어서,
    상기 추출된 바인딩 키의 적어도 일부를 이용하여, 상기 바인딩 데이터를 복호화하는 단계는,
    상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하는 단계; 및
    상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 단계를 포함하는 데이터 블록의 처리 방법.
  12. 제 6 항에 있어서,
    상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하는 단계; 및
    상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 단계를 더 포함하는 데이터 블록의 처리 방법.
  13. 제 12 항에 있어서,
    상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하는 단계를 더 포함하고,
    상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법.
  14. 제 12 항에 있어서,
    상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법.
  15. 제 12 항에 있어서,
    상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 단계를 더 포함하는 데이터 블록의 처리 방법.
  16. 제 12 항에 있어서,
    상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 단계를 더 포함하는 데이터 블록의 처리 방법.
  17. 제 12 항에 있어서,
    상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터가 추가적으로 저장되는 단계를 더 포함하며,
    상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록의 처리 방법.
  18. 제 17 항에 있어서,
    상기 확장 데이터가 추가적으로 저장되는 단계는,
    상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하는 단계;
    상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법.
  19. 제 10 항에 있어서,
    상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하는 단계를 더 포함하며,
    상기 파생 데이터 블록을 생성하는 단계는,
    상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하는 단계;
    상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하는 단계;
    상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 단계를 포함하는 데이터 블록의 처리 방법.
  20. 제 10 항에 있어서,
    상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 단계를 더 포함 하는 데이터 블록의 처리 방법.
  21. 블록 체인 구조에서, 데이터 블록의 구조를 이용하는 노드 장치 또는 데이터 처리 시스템에 있어서,
    상기 데이터 블록 구조 내의 암호화된 정보들에 대하여 복호화 권한을 다중화 하며,
    상기 데이터 블록 구조는 헤더 영역, 퍼블릭 영역, 바인딩 영역 및 프라이빗 영역을 포함하고,
    상기 헤더 영역은 상기 바인딩 영역의 타입을 나타내는 인덱스 정보, 상기 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나를 포함하고,
    상기 퍼블릭 영역은 상기 데이터 블록이 포함하고 있는 정보 레코드들의 타입에 관한 타입 정보를 포함하는 퍼블릭 데이터, 상기 퍼블릭 데이터를 복호화하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키 및 상기 타입 정보와 매칭되는 상기 바인딩 영역의 해시 값 중 적어도 하나를 포함하고,
    상기 바인딩 영역은 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 상기 적어도 하나의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 적어도 하나의 바인딩 키를 포함하고,
    상기 적어도 하나의 바인딩 데이터와 상기 적어도 하나의 바인딩 키는 쌍(pair)를 이루고,
    상기 프라이빗 영역은 상기 노드 장치에 의해 복호화 가능한 프라이빗 데이터 및 상기 프라이빗 데이터의 해시 값을 포함하는 노드 장치 또는 시스템.
  22. 메모리; 및
    적어도 하나의 프로세서를 포함하며,
    상기 프로세서는,
    공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록 처리 노드.
  23. 제 22 항에 있어서,
    상기 프로세서는,
    상기 추출된 바인딩 키의 적어도 일부로부터, 상기 바인딩 키의 전체 내용을 검색하고, 상기 검색된 바인딩 키를 이용하여, 상기 바인딩 데이터를 복호화하는 데이터 블록 처리 노드.
  24. 제 23 항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 바인딩 데이터의 타입을 나타내는 인덱스 정보, 상기 암호화된 프라이빗 영역의 해시 값, 상기 데이터 블록에 대한 비인증 노드의 액세스를 제한하는 제 1 퍼블릭 키의 적어도 일부, 및 상기 데이터 블록의 무결성 검증 횟수 중 적어도 하나 이상을 포함하는 헤더 영역을 복호화하고, 상기 복호화된 헤더 영역의 정보를 기초하여, 상기 데이터 블록이 포함하고 있는 정보의 종류 및 상기 정보의 종류와 매칭되는 상기 바인딩 영역의 해시 값을 포함하는 퍼블릭 데이터 및 상기 퍼블릭 데이터를 복호화 하기 위한 암호화키의 적어도 일부를 포함하는 제 2 퍼블릭 키를 포함하는 퍼블릭 영역을 복호화하는 데이터 블록 처리 노드.
  25. 제 24 항에 있어서,
    상기 프로세서는,
    상기 제 1 퍼블릭 키의 적어도 일부로부터 상기 제 1 퍼블릭 키의 전체 내용을 검색하고, 상기 검색된 제 1 퍼블릭 키의 적어도 일부와 상기 제 2 퍼블릭 키의 적어도 일부를 비교하여, 상기 검색된 제 1 퍼블릭 키를 검증하는 데이터 블록 처리 노드.
  26. 제 24 항에 있어서,
    상기 프로세서는,
    상기 인덱스 정보를 통해, 상기 바인딩 데이터의 타입을 확인하는 데이터 블록 처리 노드.
  27. 제 24 항에 있어서,
    상기 프로세서는, 상기 데이터 블록이 포함하고 있는 정보 레코드의 타입을 확인하는 데이터 블록 처리 노드.
  28. 제 24 항에 있어서,
    상기 프로세서는, 상기 바인딩 영역의 해시 값과 상기 복호화된 바인딩 데이터의 해시 값을 비교하여 상기 복호화된 바인딩 데이터를 검증하는 데이터 블록 처리 노드.
  29. 제 24 항에 있어서,
    상기 프로세서는, 상기 데이터 블록의 상기 바인딩 영역에 적어도 하나의 확장 데이터를 추가적으로 저장하고,
    상기 바인딩 키는 복호화 권한 레벨에 대응되며, 상기 적어도 하나의 확장 데이터는 상기 복호화 권한 레벨에 따라 암호화되는 데이터 블록 처리 노드.
  30. 제 29 항에 있어서,
    상기 프로세서는,
    상기 확장 데이터의 타입을 나타내는 인덱스 정보를 상기 헤더 영역에 저장하고, 상기 확장 데이터의 해시 값을 상기 퍼블릭 영역에 저장하는 데이터 블록 처리 노드.
  31. 제 22 항에 있어서,
    상기 프로세서는, 상기 데이터 블록을 축소하여 파생 데이터 블록을 생성하고, 상기 데이터 블록의 상기 바인딩 영역에 저장된 상기 적어도 하나의 바인딩 데이터 중에 선택된 바인딩 데이터 및 상기 선택된 데이터에 대응되는 바인딩 키를 파생 바인딩 데이터 영역에 저장하고, 상기 선택된 바인딩 데이터의 타입을 나타내는 수정 인덱스 정보를 파생 헤더 영역에 저장하고, 상기 선택된 바인딩 데이터의 수정 해시 값을 파생 퍼블릭 영역에 저장하는 데이터 블록 처리 노드.
  32. 제 22 항에 있어서,
    상기 프로세서는,
    상기 데이터 블록의 바인딩 영역에 저장된 바인딩 데이터 중 적어도 하나의 바인딩 데이터를 복호화하여 검증하는 데이터 블록 처리 노드.
  33. 블록 체인(Block chain)을 구성하며, 복수의 노드들 사이에서 공유되는 데이터 처리 시스템에 있어서,
    공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터를 획득하고, 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키를 결정하고, 상기 바인딩 키를 이용하여 상기 바인딩 데이터를 암호화하고, 상기 암호화된 바인딩 데이터 및 상기 바인딩 키의 적어도 일부를 포함하는 데이터 블록을 생성하는 데이터 블록 생성 노드; 및
    상기 공개용 또는 비공개용 특성을 갖는 적어도 하나의 바인딩 데이터 및 각각의 바인딩 데이터에 대한 복호화 권한 레벨을 갖는 바인딩 키의 적어도 일부를 포함하는 암호화된 데이터 블록을 수신하고, 상기 바인딩 데이터에 대한 복호화 권한 레벨에 따라 접근 가능한 상기 바인딩 데이터를 확인하고, 상기 확인된 바인딩 데이터에 대한 바인딩 키의 적어도 일부를 추출하고, 상기 추출된 바인딩 키의 적어도 일부를 이용하여 상기 바인딩 데이터를 복호화하는 데이터 블록처리 노드를 포함하는 데이터 처리 시스템.
PCT/KR2019/001689 2018-02-12 2019-02-12 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템 WO2019156533A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/969,549 US11418349B2 (en) 2018-02-12 2019-02-12 Block chain-based node device, method for operating node device, and data processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180017256A KR102093010B1 (ko) 2018-02-12 2018-02-12 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템
KR10-2018-0017256 2018-02-12

Publications (1)

Publication Number Publication Date
WO2019156533A1 true WO2019156533A1 (ko) 2019-08-15

Family

ID=67549724

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/001689 WO2019156533A1 (ko) 2018-02-12 2019-02-12 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템

Country Status (3)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110753028A (zh) * 2019-09-11 2020-02-04 复旦大学 一种控制分布式记账网络资源使用方法
CN111602166A (zh) * 2019-08-30 2020-08-28 阿里巴巴集团控股有限公司 在区块链上提供可遍历键值数据存储的方法和设备
CN112073182A (zh) * 2020-07-31 2020-12-11 成都信息工程大学 一种基于区块链的量子密钥管理方法及系统

Families Citing this family (7)

* 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
JP7234870B2 (ja) * 2019-09-12 2023-03-08 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
KR102150210B1 (ko) * 2019-09-16 2020-09-01 (주) 모로보기 블록체인 네트워크
KR102125042B1 (ko) * 2019-11-12 2020-06-19 주식회사 이노티움 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법
KR102274493B1 (ko) * 2019-11-15 2021-07-07 주식회사 이노티움 온라인 게시글에 대한 분쟁 해결을 위한 블록체인 네트워크를 구성하는 노드 장치 및 그 노드 장치의 동작 방법
KR102234542B1 (ko) 2019-12-30 2021-03-31 재단법인 경주스마트미디어센터 블록 체인 기반 영상 저작물 관리 방법
KR102294569B1 (ko) * 2019-12-31 2021-08-26 주식회사 포스코아이씨티 블록체인 네트워크를 구축할 수 있는 블록체인 관리시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080058887A (ko) * 2006-12-22 2008-06-26 삼성전자주식회사 권리객체 복호방법과 장치 및 이를 이용한 콘텐츠공유방법과 장치
KR20160011561A (ko) * 2014-06-26 2016-02-01 시아오미 아이엔씨. 계정과 토큰 키를 바인딩하는 방법, 장치, 프로그램 및 기록매체
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. 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
US20180032273A1 (en) * 2016-05-23 2018-02-01 Accenture Global Solutions Limited Hybrid blockchain

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080058887A (ko) * 2006-12-22 2008-06-26 삼성전자주식회사 권리객체 복호방법과 장치 및 이를 이용한 콘텐츠공유방법과 장치
KR20160011561A (ko) * 2014-06-26 2016-02-01 시아오미 아이엔씨. 계정과 토큰 키를 바인딩하는 방법, 장치, 프로그램 및 기록매체
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
US20180032273A1 (en) * 2016-05-23 2018-02-01 Accenture Global Solutions Limited Hybrid blockchain
US20180019867A1 (en) * 2016-07-15 2018-01-18 Mastercard International Incorporated Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111602166A (zh) * 2019-08-30 2020-08-28 阿里巴巴集团控股有限公司 在区块链上提供可遍历键值数据存储的方法和设备
CN111602166B (zh) * 2019-08-30 2023-08-22 创新先进技术有限公司 在区块链上提供可遍历键值数据存储的方法和设备
CN110753028A (zh) * 2019-09-11 2020-02-04 复旦大学 一种控制分布式记账网络资源使用方法
CN110753028B (zh) * 2019-09-11 2021-06-22 复旦大学 一种控制分布式记账网络资源使用方法
CN112073182A (zh) * 2020-07-31 2020-12-11 成都信息工程大学 一种基于区块链的量子密钥管理方法及系统
CN112073182B (zh) * 2020-07-31 2021-03-16 成都信息工程大学 一种基于区块链的量子密钥管理方法及系统

Also Published As

Publication number Publication date
KR20190097623A (ko) 2019-08-21
US20210006408A1 (en) 2021-01-07
US11418349B2 (en) 2022-08-16
KR102093010B1 (ko) 2020-03-24

Similar Documents

Publication Publication Date Title
WO2019156533A1 (ko) 블록 체인에 기반한 노드 장치, 노드 장치의 동작 방법 및 데이터 처리 시스템
TWI721691B (zh) 用於隔離儲存在由區塊鏈網路維護的區塊鏈上的資料的電腦實現的方法、裝置及系統
CN108076057B (zh) 一种基于区块链的数据保全系统及方法
CN111783075B (zh) 基于密钥的权限管理方法、装置、介质及电子设备
van Beek et al. Digital forensics as a service: Game on
US7827403B2 (en) Method and apparatus for encrypting and decrypting data in a database table
CN113591119B (zh) 跨域标识解析节点数据隐私保护与安全共享方法及系统
JP2006500657A (ja) セキュリティポリシーの維持及び配信をサポートするためのサーバー、コンピュータメモリ、及び方法
KR20000047643A (ko) 데이터 보관 시스템에 저장된 전자 데이터 파일을탐색하는 안전 시스템, 전자 데이터 보관소의 안전 전자데이터 탐색 시스템을 유지하는 방법 및 컴퓨터 판독 가능메모리
CN112686668A (zh) 联盟链跨链系统及方法
US11256662B2 (en) Distributed ledger system
CA3176858A1 (en) Data processing method and system
WO2020101087A1 (ko) 개인정보 처리를 위한 암호화 시스템 및 방법
CN112202713B (zh) 一种Kubernetes环境下用户数据安全保护方法
CN111008855A (zh) 一种基于改进代理重加密的追溯数据访问控制方法
CN116436682A (zh) 数据处理方法、装置及系统
CN110555783A (zh) 一种基于区块链的电力营销数据保护方法及系统
CN115865461B (zh) 一种高性能计算集群中分发数据的方法和系统
CN112347496A (zh) 一种细粒度数据安全访问控制方法及系统
US10929313B2 (en) Method for securely and efficiently accessing connection data
WO2019196866A1 (zh) 匿名化处理方法、装置、设备及存储介质
US20220086000A1 (en) Cryptographic systems
CN113326528A (zh) 一种基于大数据高安全性个人信息保护区块链应用方法
CN112016898A (zh) 基于区块链的协同办公方法及装置、系统
TWM591661U (zh) 數位身分管理系統

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19750792

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19750792

Country of ref document: EP

Kind code of ref document: A1