KR20210146075A - System and method for managing data state based on blockchain - Google Patents
System and method for managing data state based on blockchain Download PDFInfo
- Publication number
- KR20210146075A KR20210146075A KR1020200063104A KR20200063104A KR20210146075A KR 20210146075 A KR20210146075 A KR 20210146075A KR 1020200063104 A KR1020200063104 A KR 1020200063104A KR 20200063104 A KR20200063104 A KR 20200063104A KR 20210146075 A KR20210146075 A KR 20210146075A
- Authority
- KR
- South Korea
- Prior art keywords
- snapshot
- blockchain
- hash value
- data state
- key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 블록체인 기반의 데이터 상태 관리 시스템 및 방법에 관한 것이다. 더욱 상세하게는, 블록체인 기반으로 데이터를 백업 및 복원하는 데이터 상태 관리 시스템 및 방법에 관한 것이다.The present invention relates to a blockchain-based data state management system and method. More specifically, it relates to a data state management system and method for backing up and restoring data based on blockchain.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 자료 구조 그 자체를 의미한다. 블록체인 기술은 네트워크에 속한 모든 블록체인 노드가 트랜잭션을 기록하고 검증하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.Blockchain records continuously increasing data in a specific unit of block, and each block chain node constituting a peer-to-peer (P2P) network manages the block as a chain-type data structure. It refers to the description or data structure itself. Blockchain technology can ensure the integrity and security of transactions through a consensus process in which all blockchain nodes in the network record and verify transactions.
블록체인에 기록되는 데이터는 온-체인(On-Chain) 데이터라 지칭되고, 블록체인 기술을 기반으로 관리되나 블록체인에 기록되지 못하는 데이터는 오프-체인(Off-Chain) 데이터라 지칭된다. 블록체인을 구성하는 각각의 블록은 그 사이즈가 제한적이기도 하고, 블록체인 자체가 비싼 자원이므로 모든 데이터를 블록체인 상에 기록할 수는 없어, 신뢰성이 특히 중요한 데이터는 온-체인 데이터로 기록하지만 대용량 데이터 등은 오프-체인 데이터로 기록하게 된다. Data recorded in the block chain is referred to as on-chain data, and data that is managed based on block chain technology but cannot be recorded in the block chain is referred to as off-chain data. Each block constituting the block chain is also limited in size, and since the block chain itself is an expensive resource, it is impossible to record all data on the block chain. Data, etc. are recorded as off-chain data.
일반적으로 블록체인에 한번 기록된 데이터는 삭제나 수정이 어렵다. 이러한 특징은 블록체인 데이터의 신뢰성을 높여주는 장점이 되기도 하지만, 기록된 데이터에 오류가 있거나 외부에 공개되면 안되는 비밀 정보가 포함된 경우 이를 바로잡기 어렵게 하기도 한다. In general, it is difficult to delete or modify data once recorded in the blockchain. This feature is an advantage of increasing the reliability of blockchain data, but it also makes it difficult to correct the recorded data if it contains errors or confidential information that should not be disclosed to the outside.
블록체인의 데이터에 오류 등이 발생한 경우, 종래 기술을 통해 이를 복원하려고 하면 블록체인 네트워크를 초기화하고 처음부터 다시 블록을 생성하여 오류가 발생하기 이전시점까지의 데이터를 다시 기록해야 한다. 그러나, 이러한 방법은 블록체인 네트워크를 다시 시작하는 데서 오는 비효율성이 너무 크고, 또 그렇게 한다고 하여도 해당 복원 작업 자체에 대한 기록은 남지 않아 어떤 시점에서 어떤 데이터에 대해 복원이 이루어졌는지 히스토리를 파악할 수 없는 문제가 있다. When an error occurs in the data of the block chain, if you try to restore it through the prior art, you need to initialize the block chain network and re-create the block from the beginning to re-record the data up to the time before the error occurred. However, this method has too much inefficiency from restarting the blockchain network, and even if it does, there is no record of the restoration operation itself, so it is impossible to determine the history of what data was restored at what point in time. There is no problem.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 기술적 과제는, 블록체인 네트워크를 초기화하지 않아도 블록체인을 과거의 특정 시점의 데이터 상태로 복원할 수 있는 블록체인 기반의 데이터 상태 관리 시스템 및 방법을 제공하는 것이다.The technical task to be achieved through some embodiments of the present invention is to provide a block chain-based data state management system and method that can restore the block chain to the data state of a specific time in the past without initializing the block chain network will be.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 다른 기술적 과제는, 블록체인의 데이터 상태를 복원했을 때 그에 대한 기록을 남겨 복원 작업에 대한 히스토리를 용이하게 파악할 수 있도록 하는 블록체인 기반의 데이터 상태 관리 시스템 및 방법을 제공하는 것이다.Another technical task to be achieved through some embodiments of the present invention is a blockchain-based data state management system that leaves a record when the data state of the block chain is restored so that the history of the restoration work can be easily understood. and to provide a method.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 또 다른 기술적 과제는, 블록체인의 데이터를 특정 시점에서 백업하고 이를 기반으로 이후 복원을 수행하되, 블록체인 네트워크의 총의(總意)에 기반하여 백업 또는 복원할 데이터의 무결성을 검증하는 블록체인 기반의 데이터 상태 관리 시스템 및 방법을 제공하는 것이다.Another technical task to be achieved through some embodiments of the present invention is to back up the data of the block chain at a specific point in time and perform subsequent restoration based on it, but back up based on the consensus of the block chain network Alternatively, it is to provide a blockchain-based data state management system and method that verifies the integrity of the data to be restored.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 블록체인 기반의 데이터 상태 관리 시스템은 데이터의 스냅샷(Snapshot)을 생성하고 상기 스냅샷의 해시(Hash) 값을 저장하는 블록체인 노드, 및 상기 블록체인 노드로부터 상기 스냅샷 및 상기 해시 값을 수신하고, 상기 해시 값을 다른 블록체인 노드의 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증하고, 상기 무결성이 검증되면 상기 스냅샷을 오프-체인 스토리지에 저장하고 상기 해시 값을 블록체인 네트워크에 기록하는 서비스 장치를 포함한다.In order to solve the above technical problem, a blockchain-based data state management system according to embodiments of the present invention is a blockchain node that creates a snapshot of data and stores a hash value of the snapshot , and receiving the snapshot and the hash value from the blockchain node, verifying the integrity of the snapshot by comparing the hash value with a first hash value of another blockchain node, and when the integrity is verified, the snapshot and a service device that stores the shot in off-chain storage and records the hash value in a blockchain network.
일 실시예로서, 상기 서비스 장치는 상기 스냅샷의 타임스탬프(Timestamp) 및 상기 해시 값을 상기 블록체인 네트워크에 기록하기 위한 트랜잭션을 발생시키고, 상기 블록체인 노드는 상기 트랜잭션에 응답하여 상기 해시 값 및 상기 타임스탬프를 상기 블록체인 노드의 원장(Ledger)에 기록할 수 있다.In one embodiment, the service device generates a transaction for recording the timestamp and the hash value of the snapshot in the blockchain network, and the blockchain node responds to the transaction with the hash value and The timestamp may be recorded in the ledger of the blockchain node.
일 실시예로서, 상기 서비스 장치는 상기 타임스탬프 및 상기 해시 값을 상기 오프-체인 스토리지에 더 저장할 수 있다.As an embodiment, the service device may further store the timestamp and the hash value in the off-chain storage.
일 실시예로서, 상기 서비스 장치는 상기 스냅샷의 생성 이전에, 상기 데이터를 동결(Freezing)하는 I/O 불능(Disable) 요청을 상기 블록체인 노드에 전송하고, 상기 제1 해시 값을 상기 블록체인 네트워크에 기록한 이후에, 상기 동결을 해제하는 I/O 가능(Enable) 요청을 상기 블록체인 노드에 전송할 수 있다.As an embodiment, the service device transmits an I/O disable request for freezing the data to the block chain node before generating the snapshot, and transmits the first hash value to the block After recording in the chain network, an I/O Enable request to release the freeze can be sent to the blockchain node.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예들에 따른 블록체인 기반의 데이터 상태 관리 시스템은 스냅샷, 상기 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 오프-체인 스토리지에 저장하는 서비스 장치, 및 상기 해시 값 및 상기 타임스탬프를 상기 서비스 장치로부터 수신하고, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 상기 서비스 장치에 회신하는 블록체인 노드를 포함하고, 상기 서비스 장치는 상기 블록체인 노드로부터의 상기 회신에 기초하여 상기 스냅샷의 무결성을 검증하고, 상기 무결성이 검증되면 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하고, 상기 제1 원장은 상기 블록체인 노드의 분산 원장이다.In order to solve the above technical problem, a blockchain-based data state management system according to other embodiments of the present invention is a snapshot, a hash value of the snapshot, and a timestamp of the snapshot. a service device storing the off-chain storage, and receiving the hash value and the timestamp from the service device, and a first hash value and a first recorded in the hash value and the timestamp and a first ledger and a blockchain node that returns whether the timestamp matches or not to the service device, wherein the service device verifies the integrity of the snapshot based on the reply from the blockchain node, and when the integrity is verified, the blockchain A restoration request for restoring the data state of the network to the data state of the snapshot is sent to the blockchain network, and the first ledger is a distributed ledger of the blockchain node.
일 실시예로서, 상기 블록체인 노드는 상기 해시 값 및 상기 타임스탬프가 상기 제1 해시 값 및 상기 제1 타임스탬프와 일치하면, 상기 블록체인 노드의 상태 데이터베이스의 키 리스트(Key List)를 상기 서비스 장치에 전송할 수 있다.In one embodiment, when the hash value and the timestamp match the first hash value and the first timestamp, the blockchain node provides the service with a key list of the state database of the blockchain node. can be sent to the device.
일 실시예로서, 상기 복원 요청은 상기 스냅샷, 및 상기 키 리스트를 포함할 수 있다.In one embodiment, the restore request may include the snapshot and the key list.
일 실시예로서, 상기 블록체인 노드는 상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷에 없는 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에서 삭제할 수 있다.In one embodiment, the blockchain node compares the snapshot with the key list in response to the restoration request, and for a key that is not in the snapshot among the key list, sets the key and the key value of the key to the state. It can be deleted from the database.
일 실시예로서, 상기 블록체인 노드는 상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트에 없는 상기 스냅샷의 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에 기록할 수 있다.In one embodiment, the blockchain node compares the snapshot and the key list in response to the restoration request, and for a key of the snapshot that is not in the key list, sets the key and the key value of the key to the state. can be written to the database.
일 실시예로서, 상기 블록체인 노드는 상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷과 키 값이 상이한 키에 대해서는 상기 상태 데이터베이스에 기록된 상기 키의 키 값을 상기 스냅샷 상에서의 상기 키의 키 값으로 수정할 수 있다.In one embodiment, the blockchain node compares the snapshot with the key list in response to the restoration request, and for a key having a different key value from the snapshot in the key list, the key recorded in the state database The key value of can be modified to the key value of the key on the snapshot.
일 실시예로서, 상기 블록체인 노드는 상기 스냅샷을 해싱(Hashing)하고, 상기 해싱한 결과를 상기 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증할 수 있다.As an embodiment, the blockchain node may hash the snapshot and compare the hashed result with the first hash value to verify the integrity of the snapshot.
일 실시예로서, 상기 서비스 장치는 상기 블록체인 노드가 상기 해시 값 및 상기 타임스탬프를 수신하기 이전에, 상기 데이터를 동결(Freezing)하는 I/O 불능(Disable) 요청을 상기 블록체인 노드에 전송하고, 상기 블록체인 네트워크의 데이터 상태가 상기 스냅샷의 데이터 상태로 복원된 이후에, 상기 동결을 해제하는 I/O 가능(Enable) 요청을 상기 블록체인 노드에 전송할 수 있다.As an embodiment, the service device transmits an I/O disable request for freezing the data to the blockchain node before the blockchain node receives the hash value and the timestamp. and, after the data state of the blockchain network is restored to the data state of the snapshot, an I/O Enable request to release the freeze may be transmitted to the blockchain node.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 상태 관리 방법은, 블록체인 노드로부터 데이터의 스냅샷 및 상기 스냅샷의 해시 값을 수신하는 단계, 상기 해시 값을 다른 블록체인 노드의 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증하는 단계, 및 상기 무결성이 검증되면 상기 스냅샷을 오프-체인 스토리지에 저장하고 상기 해시 값을 블록체인 네트워크에 기록하는 단계를 포함한다. In order to solve the above technical problem, a blockchain-based data state management method performed by a computing device according to embodiments of the present invention is a method for receiving a snapshot of data and a hash value of the snapshot from a blockchain node. step, verifying the integrity of the snapshot by comparing the hash value with a first hash value of another blockchain node, and if the integrity is verified, storing the snapshot in off-chain storage and blocking the hash value and writing to the chain network.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 상태 관리 방법은, 오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 단계, 상기 블록체인 노드로부터, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 단계, 상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 단계, 및 상기 무결성이 검증되면 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 단계를 포함하고, 상기 제1 원장은 상기 블록체인 노드의 분산 원장이다.In order to solve the above technical problem, a blockchain-based data state management method performed by a computing device according to other embodiments of the present invention is a hash value of a snapshot stored in off-chain storage, and the Transmitting a timestamp of the snapshot to a blockchain node, from the blockchain node, the hash value and the timestamp and the first hash value and the first timestamp recorded in the first ledger receiving a match, verifying the integrity of the snapshot based on the match, and when the integrity is verified, sending a restoration request to restore the data state of the blockchain network to the data state of the snapshot transmitting to a blockchain network, wherein the first ledger is a distributed ledger of the blockchain nodes.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 블록체인 기반의 데이터 상태 관리 방법을 실행하기 위해 컴퓨팅 장치와 결합되는 컴퓨터 프로그램은 오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 단계, 상기 블록체인 노드로부터, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 단계, 상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 단계, 및 상기 무결성이 검증되면, 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고, 상기 제1 원장은 상기 블록체인 노드의 분산 원장이다.In order to solve the above technical problem, a computer program combined with a computing device to execute a block chain-based data state management method according to embodiments of the present invention is a hash value of a snapshot stored in off-chain storage , and transmitting a timestamp of the snapshot to a blockchain node, from the blockchain node, the hash value and the timestamp, and a first hash value and a first recorded in a first ledger Receiving whether timestamps match, verifying the integrity of the snapshot based on the match, and when the integrity is verified, restoring the data state of the blockchain network to the data state of the snapshot stored in a computer-readable recording medium to execute the step of sending a restoration request to the blockchain network, wherein the first ledger is a distributed ledger of the blockchain node.
도 1은 본 발명의 실시예들에 따른 블록체인 기반의 데이터 상태 관리 시스템(1000)을 개략적으로 도시하는 도면이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른, 블록체인 기반의 데이터 상태 관리 시스템(1000)에서 블록체인 데이터의 백업(Backup)이 이루어지는 방법을 설명하는 도면들이다.
도 4는 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 백업을 수행하는 방법을 나타내는 순서도이다.
도 5는 도 4의 스냅샷의 무결성을 검증하는 단계(S130)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른, 블록체인 기반의 데이터 상태 관리 시스템(1000)에서 블록체인 데이터의 복원(Recovery)이 이루어지는 방법을 설명하는 도면들이다.
도 8은 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 복원을 수행하는 방법을 나타내는 순서도이다.
도 9는 본 발명의 일 실시예에 따른 블록체인 데이터의 복원에 있어서, 각 블록체인 노드가 자신의 상태 데이터베이스를 백업 시점의 상태로 되돌리기 위해 수행하는 구체적인 방법들을 설명하는 순서도이다.
도 10은 본 발명의 다양한 실시예들이 구현될 수 있는 컴퓨팅 장치(500)의 예시적인 하드웨어 구성을 나타내는 블록도이다.1 is a diagram schematically illustrating a blockchain-based data
2 and 3 are diagrams illustrating a method of backing up block chain data in the block chain-based data
4 is a flowchart illustrating a method for the
5 is a flowchart illustrating an embodiment in which the step ( S130 ) of verifying the integrity of the snapshot of FIG. 4 is further detailed.
6 and 7 are diagrams for explaining a method of recovering block chain data in the block chain-based data
8 is a flowchart illustrating a method for the
9 is a flowchart illustrating specific methods performed by each blockchain node to return its state database to the state of the backup point in the restoration of blockchain data according to an embodiment of the present invention.
10 is a block diagram illustrating an exemplary hardware configuration of a
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the technical spirit of the present invention is not limited to the following embodiments, but may be implemented in various different forms, and only the following embodiments complete the technical spirit of the present invention, and in the technical field to which the present invention belongs It is provided to fully inform those of ordinary skill in the art of the scope of the present invention, and the technical spirit of the present invention is only defined by the scope of the claims.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly specifically defined. The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is formed between each component. It should be understood that elements may also be “connected,” “coupled,” or “connected.”
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시예들에 따른 블록체인 기반의 데이터 상태 관리 시스템(1000)을 개략적으로 도시하는 도면이다. 도 1을 참조하면, 데이터 상태 관리 시스템(1000)은 서비스 장치(100), 오프-체인 스토리지(10) 및 블록체인 네트워크(30)를 포함한다. 블록체인 네트워크(30)는 복수의 블록체인 노드를 포함한다. 블록체인 네트워크(30)는 복수의 블록체인 노드가 참여하는 상호 합의(또는, 분산 합의)의 과정을 통해 블록체인 데이터를 기록, 저장한다. 따라서, 본 명세서에서 블록체인 네트워크(30)에 데이터를 기록한다는 것의 의미는 해당 데이터를 온-체인 데이터로 기록한다는 것으로, 각 블록체인 노드들이 해당 데이터를 자신의 원장(Ledger)에 기록할 수 있도록 관련 트랜잭션을 발생시키는 것을 의미할 수 있다. 유사하게, 본 명세서에서 블록체인 네트워크(30)에 데이터를 전송한다는 것의 의미는 각 블록체인 노드들에게 해당 데이터를 전송한다는 것으로, 각 블록체인 노드들에게 해당 데이터를 제공, 또는 전송하기 위한 트랜잭션을 발생시키는 것을 의미할 수 있다. 1 is a diagram schematically illustrating a blockchain-based data
서비스 장치(100)는 클라이언트(20)로부터 백업 요청을 수신하면, 블록체인 네트워크(30)의 데이터(또는, 데이터 상태)를 스냅샷(Snapshot) 형태로 백업하고 이를 오프-체인 데이터로 저장한다. 그리고, 서비스 장치(100)는 백업된 스냅샷과 관련된 정보, 예를 들어 스냅샷의 해시 값 또는 타임스탬프,를 온-체인 데이터로 블록체인 네트워크(30)에 기록한다. When the
그리고, 서비스 장치(100)는 클라이언트(20)로부터 복원 요청을 수신하면, 앞서 백업한 스냅샷을 이용하여 블록체인 네트워크(30)의 데이터(또는, 데이터 상태)를 스냅샷의 시점으로 복원한다. 이때, 서비스 장치(100)는 복원 요청과 관련된 정보, 예를 들어 복원을 위해 참조되는 스냅샷 또는 키 리스트(Key List),를 온-체인 데이터로 기록하여 복원 이력을 저장한다.And, when the
한편, 여기서는 서비스 장치(100)가 클라이언트(20)로부터 백업 요청 또는 복원 요청을 받는 것으로 예시하였지만, 본 발명의 범위는 이에 한정되지 않는다. 가령, 외부 장치로부터 백업 요청 또는 복원 요청을 받지 않고, 서비스 장치(100)가 직접 클라이언트(20)로서 기능할 수도 있다.Meanwhile, although the
이러한 본 발명의 데이터 상태 관리 시스템(1000)에 따르면, 블록체인 네트워크를 초기화하지 않아도 블록체인을 과거 스냅샷 시점의 데이터 상태로 복원할 수 있다. 또한, 블록체인의 데이터 상태를 스냅샷 시점으로 복원했을 때 그에 대한 기록을 온-체인 데이터로 남겨 이후에 복원 작업에 대한 히스토리를 용이하게 파악할 수 있도록 한다.According to the data
이하에서는, 본 발명의 다양한 실시예들을 구체적인 예시를 들어 상세히 설명하고자 한다.Hereinafter, various embodiments of the present invention will be described in detail with specific examples.
도 2 및 도 3은 본 발명의 일 실시예에 따른, 블록체인 기반의 데이터 상태 관리 시스템(1000)에서 블록체인 데이터의 백업(Backup)이 이루어지는 구체적인 방법을 설명하는 도면들이다. 도 2에서는 도면의 간명화를 위해 블록체인 네트워크(30) 내에 세 개의 블록체인 노드(이하, '노드'라 함, 200, 300, 400)만을 표시하였으나, 일반적으로 블록체인 네트워크(30)에는 이보다 많은 수의 블록체인 노드들이 포함될 수 있다.2 and 3 are diagrams for explaining a specific method of backing up block chain data in the block chain-based data
서비스 장치(100)는 데이터 백업을 요청하기에 앞서, 블록체인 네트워크(30)에 I/O 불능(I/O Disable)을 요청한다. 이는 데이터 백업을 진행하는 도중 블록체인 데이터가 새로 읽히거나 쓰여지는 것에 의해 데이터 백업이 영향받는 것을 미리 차단하기 위해, 블록체인 데이터를 동결(Freezing)하도록 하는 요청이다.The
일 실시예로서, I/O 불능 요청이 수신되면, 블록체인 네트워크(30)는 각 노드들(200, 300, 400)로부터 I/O 불능 요청에 대한 동의 여부를 수신하고 이를 취합한다. 그 결과, 정족수 이상의 동의가 있으면, 블록체인 네트워크(30)는 전체 노드들(200, 300, 400)의 총의(總意)가 I/O 불능 요청을 수락한 것으로 판단하고, 데이터 백업이 진행되는 동안 각 노드들(200, 300, 400)이 새로운 데이터를 읽거나 쓰는 것을 금지한다. 다만, 이 경우에도 각 노드(200, 300, 400)가 데이터 백업을 위한 스냅샷과 그 관련 정보(예를 들어, 해시 값)을 읽고 쓰는 것은 예외적으로 허용된다. As an embodiment, when an I/O disable request is received, the
한편, 이때, I/O 불능 요청에 대한 동의 여부를 수신하고, 이를 취합한 후 총의를 판단하고, 그에 따라 각 노드들(200, 300, 400)이 새로운 데이터를 읽거나 쓰지 못하도록 하는 일련의 동작들은 블록체인 네트워크(30)의 스마트 컨트랙트(Smart Contract)에 의해 수행될 수 있다.On the other hand, at this time, it receives the consent to the I/O impossibility request, collects them, determines the consensus, and accordingly each
그리고, 서비스 장치(100)는 각 노드(200, 300, 400)에게 현재 상태의 데이터를 백업하도록 하는 데이터 백업 요청을 전송한다. 이때, 데이터 백업 요청은 서비스 장치(100)로부터 각 노드(200, 300, 400)에게 직접 전송될 수도 있고, 서비스 장치(100)가 블록체인 네트워크(30)를 통해 데이터 백업을 요청하는 트랜잭션을 발생시키면 각 노드(200, 300, 300)가 상기 트랜잭션을 감지하여 관련 요청을 수신하는 방식으로 전송될 수도 있다.Then, the
각 노드(200, 300, 400)는 데이터 백업 요청에 응답하여, 현재 상태의 데이터를 기록한 스냅샷을 생성한 후 이를 해시 값과 함께 서비스 장치(100)에 회신한다.Each of the
구체적으로, 제1 노드(200)는 상기 데이터 백업 요청을 수신하고, 그에 응답하여 자신의 제1 상태DB(220)의 데이터 상태를 조회한 후 상기 데이터 상태를 기록한 스냅샷을 생성한다. 그리고, 제1 노드(200)는 생성한 스냅샷을 해싱하여 상기 스냅샷의 해시 값을 생성한 후, 생성한 스냅샷 및 해시 값을 서비스 장치(100)에 전송한다. 이때, 제1 노드(200)는 상기 생성한 해시 값을 임시 저장할 수 있다.Specifically, the
제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 자신의 상태DB(320, 420)를 조회한 후 각자의 스냅샷과 그것의 해시 값을 생성하고, 생성된 스냅샷 및 해시 값을 서비스 장치(100)에 전송한다.The
서비스 장치(100)는 각 노드들(200, 300, 400)이 전송한 스냅샷과 해시 값을 수신하고, 수신한 해시 값들을 서로 비교하여 수신한 스냅샷 또는 해시 값의 무결성(Integrity)를 검증한다. 만약, 각 노드들(200, 300, 400)로부터 수신한 해시 값들이 모두 동일하다면, 각 노드들(200, 300, 400)의 스냅샷 또한 동일할 것이므로, 해당 스냅샷과 해시 값이 위조 또는 변조되지 않은 진실한 값임(즉, 무결성)을 신뢰할 수 있다. 반면에, 각 노드들(200, 300, 400)로부터 수신한 해시 값들이 모두 상이하다면, 각 노드들(200, 300, 400)의 스냅샷 또한 서로 다르다는 의미이므로, 각 노드들(200, 300, 400)이 가지고 있는 스냅샷(또는, 데이터)가 위조 또는 변조된 것일 확률이 높다. The
서비스 장치(100)는 무결성을 검증하는 구체적인 방법으로, 수신한 해시 값들을 서로 비교하여 정족수 이상의 해시 값들이 서로 동일하면 해당 스냅샷 및 해시 값의 무결성이 검증된 것으로 판단하고, 반대로 동일한 해시 값들이 정족수 미만이면 해당 스냅샷 및 해시 값의 무결성이 검증되지 않은 것으로 판단한다. 이때, 정족수는 서비스 장치(100)에 미리 설정된 값으로, 가변 가능한 셋팅 값일 수 있다.As a specific method of verifying integrity, the
서비스 장치(100)는 스냅샷 및 해시 값의 무결성이 검증되면(즉, 정족수 이상의 해시 값들이 서로 동일하면), 해당 스냅샷 및 그것의 해시 값을 오프-체인 데이터로서 오프-체인 스토리지(10)에 저장한다. 이때, 서비스 장치(100)는 해당 스냅샷의 타임스탬프를 오프-체인 데이터로서 함께 저장할 수 있다. 상기 타임스탬프는 상기 스냅샷이 확보된 기준 시간을 의미하는 것으로, 노드(200, 300, 400)가 스냅샷을 생성한 시간 또는 서비스 장치(100)가 스냅샷을 수신한 시간과 반드시 일치할 필요는 없다. 데이터 백업의 과정에서 각 상태DB(220, 320, 420)들은 새로운 데이터를 읽거나 쓰지 않는 동결(Freezing) 상태에 있으므로, 데이터 백업이 진행되는 과정의 임의의 시간을 상기 타임스탬프로 정하여도 별다른 문제는 발생하지 않는다. When the integrity of the snapshot and the hash value is verified (that is, if the hash values greater than or equal to the quorum are the same), the
여기서는, 서비스 장치(100)가 스냅샷 및 해시 값의 검증을 완료하여 이를 오프-체인 데이터로서 저장하는 시점의, 서비스 장치(100)의 서버 시간을 상기 타임스탬프로 설정하는 것으로 예시한다.Here, it is exemplified that the server time of the
스냅샷, 상기 스냅샷의 해시 값, 및 상기 스냅샷의 타임스탬프가 오프-체인 스토리지(10)에 저장되면, 서비스 장치(100)는 데이터 백업 이력을 온-체인 데이터로 기록한다. 이에 대해 도 3을 참조하여 설명한다.When the snapshot, the hash value of the snapshot, and the timestamp of the snapshot are stored in the off-
서비스 장치(100)는 오프-체인 스토리지(10)에 저장한 해시 값 및 타임스탬프를 온-체인 데이터로 기록하기 위한 트랜잭션을 발생시킨다. 각 노드들(200, 300, 400)은 발생된 트랜잭션을 감지하여, 그로부터 서비스 장치(100)가 기록 요청한 해시 값 및 타임스탬프를 수신한다.The
구체적으로, 제1 노드(200)는 상기 해시 값 및 타임스탬프를 수신하고, 수신한 해시 값을 앞서 자신이 임시 저장한 해시 값과 비교한다. 그리고, 두 해시 값이 서로 일치하면, 서비스 장치(100)가 기록 요청한 해시 값 및 타임스탬프를 자신의 제1 원장(Ledger, 210)에 기록한다. Specifically, the
제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 수신한 해시 값과 자신이 임시 저장한 해시 값을 비교한 후, 해시 값들이 서로 일치하면 상기 수신한 해시 값 및 타임스탬프를 자신의 원장(310, 410)에 기록한다.The
서비스 장치(100)는 각 노드(200, 300, 400)로부터 해시 값 및 타임스탬프의 기록이 완료되었다는 회신을 수신하고, 블록체인 데이터의 동결을 해제하기 위해 I/O 가능(I/O Enable) 요청을 블록체인 네트워크(30)에 요청한다. The
일 실시예로서, I/O 가능 요청이 수신되면, 블록체인 네트워크(30)는 각 노드들(200, 300, 400)로부터 I/O 가능 요청에 대한 동의 여부를 수신하고 이를 취합한다. 그 결과, 정족수 이상의 동의가 있으면, 블록체인 네트워크(30)는 전체 노드들(200, 300, 400)의 총의(總意)가 I/O 가능 요청을 수락한 것으로 판단하고, 앞서 새로운 데이터를 읽거나 쓰는 것을 금지했던 것을 해제한다.As an embodiment, when an I/O enable request is received, the
이상에서 설명한 실시예에 따르면, 서비스 장치(100)는 각 노드(200, 300, 400)가 저장하고 있는 블록체인 데이터의 백업을 스냅샷의 형태로 오프-체인 데이터에 저장할 수 있으며, 그 과정에서 해당 스냅샷이 신뢰할 수 있는 데이터인지 각 노드(200, 300, 400)의 총의에 기반하여 무결성을 검증한 후, 무결성이 검증된 스냅샷만 백업 데이터로서 저장하게 된다.According to the embodiment described above, the
도 4는 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 백업을 수행하는 방법을 나타내는 순서도이다. 4 is a flowchart illustrating a method for the
앞서 도 2 및 도 3에서, 전체 데이터 상태 관리 시스템(1000)의 관점에서 데이터 백업 방법을 설명하였다면, 도 4의 실시예에서는 서비스 장치(100)의 관점에서 데이터 백업 방법을 서술한다. 본 실시예에서 앞서 설명된 것과 중복되는 내용에 대해서는 설명의 간명화를 위해 추가적인 설명을 생략하기로 한다. 이하, 도면을 참조하여 설명한다.2 and 3 , the data backup method has been described from the perspective of the overall data
S110 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)에 블록체인 데이터를 동결하기 위한 I/O 불능 요청을 전송한다. 블록체인 네트워크(30)는 각 노드(200, 300, 400)의 총의를 취합한 후, 그 결과에 따라 각 노드(200, 300, 400)가 새로운 데이터를 읽거나 쓰는 것을 금지한다.In step S110 , the
S120 단계에서, 서비스 장치(100)는 각 노드(200, 300, 400)로부터 현재 데이터의 스냅샷 및 상기 스냅샷의 해시 값을 수신한다. In step S120 , the
S130 단계에서, 서비스 장치(100)는 수신한 해시 값들을 비교하여 스냅샷의 무결성을 검증한다. In step S130, the
S140 단계에서, 서비스 장치(100)는 스냅샷의 무결성이 검증되면, 스냅샷, 상기 스냅샷의 해시 값, 및 상기 스냅샷의 타임스탬프를 오프-체인 스토리지(10)에 저장한다. 이때, 타임스탬프는 상기 스냅샷의 기준 시간으로, 예를 들어, 서비스 장치(100)가 스냅샷을 오프-체인 스토리지(10) 저장하는 시점의 서버 시간일 수 있다. In step S140 , when the integrity of the snapshot is verified, the
S150 단계에서, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장한 스냅샷의 해시 값 및 타임스탬프를 온-체인 데이터로 기록하기 위한 트랜잭션을 발생시킨다. 각 노드(200, 300, 400)는 발생한 트랜잭션을 감지하여 자신이 임시 저장하는 해시 값과 비교한 후, 두 해시 값이 일치하면 자신의 원장(210, 310, 410)에 기록하게 된다. In step S150 , the
S160 단계에서, 서비스 장치(100)는 각 노드(200, 300, 400)로부터 해시 값 및 타임스탬프의 기록이 완료되었다는 회신을 수신한 후, 블록체인 네트워크(30)에 블록체인 데이터의 동결을 해제하는 I/O 가능 요청을 전송한다. In step S160 , the
도 5는 도 4의 스냅샷의 무결성을 검증하는 단계(S130)를 더욱 구체화한 일 실시예를 나타내는 순서도이다.5 is a flowchart illustrating an embodiment in which the step ( S130 ) of verifying the integrity of the snapshot of FIG. 4 is further detailed.
S131 단계에서, 서비스 장치(100)는 수신한 해시 값들을 서로 비교하여 각 해시 값들이 서로 동일한지 판단한다.In step S131 , the
S132 단계에서, 서비스 장치(100)는 해시 값들이 정족수 이상 일치하는지 판단한다. 값이 일치하는 해시 값들의 수가 정족수 이상이면, 본 실시예는 S133 단계로 진행한다.In step S132 , the
S133 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)의 총의가 해당 스냅샷 및 해시 값을 승인한 것으로 보고, 수신한 스냅샷을 유효한 스냅샷으로 판단한다.In step S133, the
한편, S132 단계로 돌아가서, 값이 일치하는 해시 값들의 수가 정족수 이상이 아니면(즉, 정족수 미만이면), 수신한 스냅샷을 신뢰할 수 없으므로 해당 스냅샷을 저장하지 않고 그대로 종료한다.On the other hand, returning to step S132, if the number of hash values with matching values is not equal to or greater than a quorum (ie, less than a quorum), the received snapshot is not trusted, and thus the snapshot is not stored and is ended as it is.
도 6 및 도 7은 본 발명의 일 실시예에 따른, 블록체인 기반의 데이터 상태 관리 시스템(1000)에서 블록체인 데이터의 복원(Recovery)이 이루어지는 구체적인 방법을 설명하는 도면들이다. 도 6 및 도 7에 도시된, 서비스 장치(100), 오프-체인 스토리지(10), 블록체인 네트워크(30), 각 노드(200, 300, 400) 및 그것의 원장(210, 310, 410)과 상태DB(220, 320, 420)는 앞서 도 1 내지 도 3에서 설명한 것과 동일한 구성요소이다.6 and 7 are diagrams for explaining a specific method of recovering block chain data in the block chain-based data
서비스 장치(100)는 데이터 복원을 요청하기에 앞서, 블록체인 네트워크(30)에 I/O 불능(I/O Disable)을 요청한다. 이는 데이터 복원을 진행하는 도중 블록체인 데이터가 새로 읽히거나 쓰여지는 것에 의해 데이터 백업이 영향받는 것을 미리 차단하기 위해, 블록체인 데이터를 동결(Freezing)하도록 하는 요청이다. I/O 불능 요청에 대한 그 밖의 내용은 앞서 설명한 바와 동일하다.The
그리고, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장된 오프-체인 데이터, 예를 들어, 앞서 백업된 스냅샷, 상기 스냅샷의 해시 값, 또는 상기 스냅샷의 타임스탬프,를 읽어내고, 각 노드(200, 300, 400)에게 읽어낸 해시 값 및 타임스탬프를 전송한다. Then, the
각 노드(200, 300, 400)는 해시 값 및 타임스탬프를 수신하고, 자신이 저장하고 있는 해시 값 및 타임스탬프와 비교하여 그 일치 여부를 회신한다. Each
구체적으로, 제1 노드(200)는 상기 해시 값 및 타임스탬프를 수신하고, 자신의 제1 원장(210)에 기록된 상기 스냅샷의 해시 값 및 타임스탬프와 각각 일치하는지 확인한다. 그리고, 그 일치 여부(즉, 일치 또는 불일치)에 대한 회신을 서비스 장치(100)로 전송한다. 이때, 제1 노드(200)는 수신한 해시 값 및 타임스탬프가 제1 원장(210)에 기록된 해시 값 및 타임스탬프와 일치하면, 자신의 제1 상태DB(220)에 저장된 데이터들의 키 리스트를 서비스 장치(100)로 더 전송한다. Specifically, the
제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 자신의 원장(310, 410)에 기록된 해시 값 및 타임스탬프를 조회한 후 수신한 해시 값 및 타임스탬프와의 일치 여부를 서비스 장치(100)에 전송한다. 만약 양자가 일치하면, 제2 노드(300) 및 제3 노드(400) 또한 자신의 상태DB(320, 420)에 저장된 데이터들의 키 리스트를 서비스 장치(100)로 더 전송한다.The
서비스 장치(100)는 각 노드들(200, 300, 400)로부터 수신한 상기 일치 여부의 회신들을 취합하여, 상기 스냅샷 의 무결성을 검증한다. 구체적으로, 서비스 장치(100)는 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 이상이면 상기 스냅샷의 무결성이 검증된 것으로 판단하고, 그렇지 않으면(즉, 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 미만이면) 상기 스냅샷의 무결성이 검증되지 않은 것으로 판단한다. The
서비스 장치(100)는 스냅샷의 무결성이 검증되면, 블록체인 네트워크의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하기 위해 데이터 복원 요청을 블록체인 네트워크(30)에 전송한다. 이때, 서비스 장치(100)는 스냅샷 및 각 노드(200, 300, 400)로부터 수신한 키 리스트를 복원 요청과 함께 블록체인 네트워크(30)에 전송할 수 있다.When the integrity of the snapshot is verified, the
서비스 장치(100)로부터 데이터 복원 요청이 수신되면, 각 노드(200, 300, 400)들은 자신의 상태DB(220, 320, 420)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하게 된다. 이에 대해 도 7을 참조하여 설명한다.When a data restoration request is received from the
제1 노드(200)는 서비스 장치(100)가 제공한 스냅샷 및 키 리스트를 수신한 후, 수신한 스냅샷을 해싱하여 해시 값을 생성한다. 그리고, 생성한 해시 값을 자신의 제1 원장(210)에 기록된 상기 스냅샷의 해시 값과 비교한다. 양자가 일치하면, 제1 노드(200)는 수신한 스냅샷이 신뢰할 만한(또는, 진본인) 스냅샷으로 판단하고, 수신한 스냅샷의 데이터 상태와 일치하도록 제1 상태DB(220)의 데이터 상태를 변경한다. After receiving the snapshot and the key list provided by the
구체적으로, 제1 노드(200)는 수신한 키 리스트를 스냅샷과 비교하여, 키 리스트에는 있으나 스냅샷에는 없는 키는 스냅샷 시점 이후에 새롭게 추가된 키로 보고, 제1 상태DB(220)에서 해당 키 및 키 값을 삭제한다. 또는, 제1 노드는(200) 키 리스트에는 없고 스냅샷에만 있는 키는 스냅샷 시점 이후에 삭제된 키로 보고, 스냅샷에 기록된 키 및 키 값을 참조하여 제1 상태DB(220)에 해당 키 및 키 값을 새로 기록한다. 또는, 제1 노드는(200)는 키 리스트와 스냅샷에 공통적으로 존재하나 그 키 값이 상이한 키는 스냅샷 시점 이후에 키 값이 변경된 키로 보고, 스냅샷에 기록된 키 값으로 제1 상태DB(220)의 해당 키 값을 수정한다.Specifically, the
제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 수신한 스냅샷과 키 리스트를 이용하여, 자신의 상태DB(320, 420)의 데이터 상태가 스냅샷의 데이터 상태와 일치하도록 상태DB(320, 420)의 데이터 상태를 변경한다. The
각 노드(200, 300, 400)는 상태DB(220, 320, 420)의 데이터 상태 변경(또는, 복원)이 완료되면 그 결과를 서비스 장치(100)에 회신한다. 서비스 장치(100)는 각 노드(200, 300, 400)로부터 복원이 완료되었다는 회신을 수신하고, 블록체인 데이터의 동결을 해제하기 위해 I/O 가능(I/O Enable) 요청을 블록체인 네트워크(30)에 요청한다. When the data state change (or restoration) of the
이상에서 설명한 실시예에 따르면, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장된 스냅샷을 이용하여 블록체인 네트워크(30)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원할 수 있으며, 관련된 복원 기록을 온-체인 데이터로서 블록체인 네트워크(30)에 기록한다 또한, 그 과정에서 서비스 장치(100)는 해당 스냅샷이 신뢰할 수 있는 데이터인지 각 노드(200, 300, 400)의 총의에 기반하여 무결성을 검증한 후, 무결성이 검증된 스냅샷에 대해서만 복원을 진행하게 된다.According to the embodiment described above, the
도 8은 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 복원을 수행하는 방법을 나타내는 순서도이다.8 is a flowchart illustrating a method for the
앞서 도 6 및 도 7에서, 전체 데이터 상태 관리 시스템(1000)의 관점에서 데이터 복원 방법을 설명하였다면, 도 8의 실시예에서는 서비스 장치(100)의 관점에서 데이터 복원 방법을 서술한다. 본 실시예에서 앞서 설명된 것과 중복되는 내용에 대해서는 설명의 간명화를 위해 추가적인 설명을 생략하기로 한다. 이하, 도면을 참조하여 설명한다.6 and 7 , the data restoration method has been described from the perspective of the overall data
S210 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)에 블록체인 데이터를 동결하기 위한 I/O 불능 요청을 전송한다. 블록체인 네트워크(30)는 각 노드(200, 300, 400)의 총의를 취합한 후, 그 결과에 따라 각 노드(200, 300, 400)가 새로운 데이터를 읽거나 쓰는 것을 금지한다.In step S210 , the
S220 단계에서, 서비스 장치(100)는 오프-체인 스토리지(10)로부터 스냅샷, 상기 스냅샷의 해시 값, 또는 상기 스냅샷의 타임스탬프를 읽어내고, 읽어낸 해시 값 및 타임스탬프를 블록체인 네트워크(30)에 전송한다In step S220, the
S230 단계에서, 블록체인 네트워크(30)의 각 노드(200, 300, 400)들은 전송된 해시 값 및 타임스탬프가 자신의 원장(210, 310, 410)에 기록된 해시 값 및 타임스탬프와 일치하는지 비교하고, 그 일치 여부를 서비스 장치(100)로 회신한다. 서비스 장치(100)는 각 노드(200, 300, 400)로부터 상기 일치 여부를 수신한다. In step S230, each
S240 단계에서, 서비스 장치(100)는 상기 수신한 일치 여부에 기반하여 스냅샷의 무결성을 검증한다. 가령, 서비스 장치(100)는 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 이상이면 상기 스냅샷의 무결성이 검증된 것으로 판단하고, 그렇지 않으면(즉, 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 미만이면) 상기 스냅샷의 무결성이 검증되지 않은 것으로 판단한다. In step S240, the
S250 단계에서, 서비스 장치(100)는 스냅샷의 무결성이 검증되면, 스냅샷 및 키 리스트와 함께 데이터 복원 요청을 블록체인 네트워크(30)로 전송한다.
블록체인 네트워크(30)의 각 노드(200, 300, 400)들은 상기 데이터 복원 요청에 응답하여, 자신의 상태DB(220, 320, 420)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하게 된다. 그리고, 그 복원 결과를 서비스 장치(100)에 회신한다. In step S250 , when the integrity of the snapshot is verified, the
S120 단계에서, 서비스 장치(100)는 데이터 복원이 완료되었다는 회신을 각 노드(200, 300, 400)로부터 수신한 후, 블록체인 네트워크(30)에 블록체인 데이터의 동결을 해제하는 I/O 가능 요청을 전송한다. In step S120 , the
도 9는 본 발명의 일 실시예에 따른 블록체인 데이터의 복원에 있어서, 각 블록체인 노드가 자신의 상태 데이터베이스를 백업 시점의 상태로 되돌리기 위해 수행하는 구체적인 방법들을 설명하는 순서도이다. 따라서, 도 9의 각 단계들의 수행주체는 각 노드(200, 300, 400)가 된다.9 is a flowchart illustrating specific methods performed by each blockchain node to return its state database to the state of the backup point in the restoration of blockchain data according to an embodiment of the present invention. Accordingly, the performing subject of each step of FIG. 9 becomes each
S310 단계에서, 노드(200, 300, 400)는 서비스 장치(100)로부터 수신한 스냅샷과 키 리스트를 비교한다.In step S310 , the
S320 단계에서, 노드(200, 300, 400)는 해당 키가 키 리스트에는 있으나 스냅샷에는 없는 키 인지 판단한다. 스냅샷에 없는 키이면, 본 실시예는 S330 단계로 진행한다.In step S320, the
S330 단계에서, 노드(200, 300, 400)는 해당 키가 스냅샷 시점 이후에 새롭게 추가된 키로 보고, 상태DB(220, 320, 420)에서 해당 키 및 키 값을 삭제한다. 삭제가 완료되면 본 실시예는 S380 단계로 진행한다.In step S330, the
한편, S320 단계에서 해당 키가 스냅샷에 없는 키가 아니면, 본 실시예는 S340 단계로 진행하여 해당 키가 스냅샷에만 있는 키인지(즉, 키 리스트에 없는 키인지) 판단한다. 스냅샷에만 있는 키이면, 본 실시예는 S350 단계로 진행한다.Meanwhile, if the corresponding key is not in the snapshot in step S320, the present embodiment proceeds to step S340 to determine whether the corresponding key is only in the snapshot (ie, not in the key list). If the key exists only in the snapshot, the present embodiment proceeds to step S350.
S350 단계에서, 노드(200, 300, 400)는 해당 키가 스냅샷 시점 이후에 삭제된 키로 보고, 스냅샷에 기록된 키 및 키 값을 참조하여 상태DB(220, 320, 420)에 해당 키 및 키 값을 새로 기록한다. 기록이 완료되면 본 실시예는 S380 단계로 진행한다.In step S350, the
한편, S340 단계에서 해당 키가 스냅샷에만 있는 키가 아니면, 본 실시예는 S360 단계로 진행하여 해당 키의 상태DB(220, 320, 420)에 기록된 키 값이 스냅샷에 기록된 키 값과 상이한지 판단한다. 두 키 값이 서로 상이하면, 본 실시예는 S370 단계로 진행한다. 그렇지 않으면 본 실시예는 S380 단계로 바로 진행한다.On the other hand, if the corresponding key is not a key only in the snapshot in step S340, the present embodiment proceeds to step S360 and the key value recorded in the state DB (220, 320, 420) of the corresponding key is the key value recorded in the snapshot. to determine whether it is different from If the two key values are different from each other, the present embodiment proceeds to step S370. Otherwise, the present embodiment proceeds directly to step S380.
S370 단계에서, 노드(200, 300, 400)는 해당 키는 스냅샷 시점 이후에 키 값이 변경된 키로 보고, 스냅샷에 기록된 키 값으로 상태DB(220, 320, 420)의 해당 키 값을 수정한다. 수정이 완료되면 본 실시예는 S380 단계로 진행한다.In step S370, the
S380 단계에서, 노드(200, 300, 400)는 스냅샷 및 키 리스트의 모든 키를 비교, 확인하였는지 판단한다. 아직 비교, 확인되지 않은 키가 있으면 본 실시예는 S310 단계로 되돌아가 S320 단계 내지 S370 단계를 반복 수행한다. 반면에, 모든 키가 비교, 확인되었으면 이로써 본 실시예는 종료한다.In step S380 , the
이하에서는, 도 10을 참조하여 본 발명의 다양한 실시예에서 설명된 방법들이 구현되는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다. Hereinafter, an
도 10은 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다. 도 10에 도시된 컴퓨팅 장치(500)는 예를 들어, 도 2에 도시된 서비스 장치(100), 또는 각 블록체인 노드들(200, 300, 400)을 하드웨어적으로 구현한 장치일 수 있다.10 is an exemplary hardware configuration diagram illustrating the
도 10에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 10에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 10에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.As shown in FIG. 10 , the
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.The
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.The
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.The
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.The
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(591)은 오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 동작, 상기 블록체인 노드로부터 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 동작, 상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 동작, 및 상기 무결성이 검증되면 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 동작을 수행하기 위한 인스트럭션들(Instructions)을 포함할 수 있다. 이때 제1 원장은 상기 블록체인 노드의 분산 원장일 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.The
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical idea of the present invention described so far may be embodied as computer-readable codes on a computer-readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disk, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). can The computer program recorded on the computer-readable recording medium may be transmitted to another computing device through a network such as the Internet and installed in the other computing device, thereby being used in the other computing device.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can practice the present invention in other specific forms without changing the technical spirit or essential features. can understand that there is Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent range should be interpreted as being included in the scope of the technical ideas defined by the present invention.
Claims (15)
상기 블록체인 노드로부터 상기 스냅샷 및 상기 해시 값을 수신하고, 상기 해시 값을 다른 블록체인 노드의 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증하고, 상기 무결성이 검증되면 상기 스냅샷을 오프-체인 스토리지에 저장하고 상기 해시 값을 블록체인 네트워크에 기록하는 서비스 장치를 포함하는,
블록체인 기반의 데이터 상태 관리 시스템.a blockchain node that creates a snapshot of data and stores a hash value of the snapshot; and
Receives the snapshot and the hash value from the blockchain node, compares the hash value with a first hash value of another blockchain node to verify the integrity of the snapshot, and when the integrity is verified, the snapshot A service device that stores in off-chain storage and writes the hash value to a blockchain network.
Blockchain-based data state management system.
상기 서비스 장치는,
상기 스냅샷의 타임스탬프(Timestamp) 및 상기 해시 값을 상기 블록체인 네트워크에 기록하기 위한 트랜잭션을 발생시키고,
상기 블록체인 노드는,
상기 트랜잭션에 응답하여 상기 해시 값 및 상기 타임스탬프를 상기 블록체인 노드의 원장(Ledger)에 기록하는,
블록체인 기반의 데이터 상태 관리 시스템.According to claim 1,
The service device is
generating a transaction to record the timestamp of the snapshot and the hash value in the blockchain network;
The blockchain node is
recording the hash value and the timestamp in the ledger of the blockchain node in response to the transaction,
Blockchain-based data state management system.
상기 서비스 장치는,
상기 타임스탬프 및 상기 해시 값을 상기 오프-체인 스토리지에 더 저장하는,
블록체인 기반의 데이터 상태 관리 시스템.3. The method of claim 2,
The service device is
further storing the timestamp and the hash value in the off-chain storage;
Blockchain-based data state management system.
상기 서비스 장치는,
상기 스냅샷의 생성 이전에, 상기 데이터를 동결(Freezing)하는 I/O 불능(Disable) 요청을 상기 블록체인 노드에 전송하고,
상기 제1 해시 값을 상기 블록체인 네트워크에 기록한 이후에, 상기 동결을 해제하는 I/O 가능(Enable) 요청을 상기 블록체인 노드에 전송하는,
블록체인 기반의 데이터 상태 관리 시스템.According to claim 1,
The service device is
Before the creation of the snapshot, an I/O disable request for freezing the data is transmitted to the block chain node,
After recording the first hash value in the blockchain network, sending an I/O Enable request to release the freeze to the blockchain node,
Blockchain-based data state management system.
상기 해시 값 및 상기 타임스탬프를 상기 서비스 장치로부터 수신하고, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 상기 서비스 장치에 회신하는 블록체인 노드를 포함하고,
상기 서비스 장치는,
상기 블록체인 노드로부터의 상기 회신에 기초하여 상기 스냅샷의 무결성을 검증하고, 상기 무결성이 검증되면 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하고,
상기 제1 원장은 상기 블록체인 노드의 분산 원장인,
블록체인 기반의 데이터 상태 관리 시스템.a service device for storing a snapshot, a hash value of the snapshot, and a timestamp of the snapshot in off-chain storage; and
Receives the hash value and the timestamp from the service device, and returns to the service device whether the hash value and the timestamp match the first hash value and the first timestamp recorded in a first ledger including a blockchain node that
The service device is
Verifies the integrity of the snapshot based on the reply from the blockchain node, and when the integrity is verified, a restoration request to restore the data state of the blockchain network to the data state of the snapshot is sent to the blockchain network send,
The first ledger is a distributed ledger of the blockchain node,
Blockchain-based data state management system.
상기 블록체인 노드는,
상기 해시 값 및 상기 타임스탬프가 상기 제1 해시 값 및 상기 제1 타임스탬프와 일치하면, 상기 블록체인 노드의 상태 데이터베이스의 키 리스트(Key List)를 상기 서비스 장치에 전송하는,
블록체인 기반의 데이터 상태 관리 시스템.6. The method of claim 5,
The blockchain node is
When the hash value and the timestamp match the first hash value and the first timestamp, transmitting a key list of the state database of the blockchain node to the service device,
Blockchain-based data state management system.
상기 복원 요청은,
상기 스냅샷, 및 상기 키 리스트를 포함하는,
블록체인 기반의 데이터 상태 관리 시스템.7. The method of claim 6,
The restoration request is
comprising the snapshot and the key list;
Blockchain-based data state management system.
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷에 없는 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에서 삭제하는,
블록체인 기반의 데이터 상태 관리 시스템.8. The method of claim 7,
The blockchain node is
comparing the snapshot with the key list in response to the restoration request, and deleting the key and a key value of the key from the state database for a key in the key list that is not in the snapshot,
Blockchain-based data state management system.
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트에 없는 상기 스냅샷의 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에 기록하는,
블록체인 기반의 데이터 상태 관리 시스템.8. The method of claim 7,
The blockchain node is
comparing the snapshot with the key list in response to the restore request, and for a key of the snapshot that is not in the key list, recording the key and a key value of the key in the state database;
Blockchain-based data state management system.
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷과 키 값이 상이한 키에 대해서는 상기 상태 데이터베이스에 기록된 상기 키의 키 값을 상기 스냅샷 상에서의 상기 키의 키 값으로 수정하는,
블록체인 기반의 데이터 상태 관리 시스템.8. The method of claim 7,
The blockchain node is
In response to the restoration request, the snapshot and the key list are compared, and for a key having a different key value from the snapshot in the key list, the key value of the key recorded in the state database is stored in the snapshot. to be modified with the key value of the key,
Blockchain-based data state management system.
상기 블록체인 노드는,
상기 스냅샷을 해싱(Hashing)하고, 상기 해싱한 결과를 상기 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증하는,
블록체인 기반의 데이터 상태 관리 시스템.8. The method of claim 7,
The blockchain node is
Hashing the snapshot and verifying the integrity of the snapshot by comparing the hashing result with the first hash value,
Blockchain-based data state management system.
상기 서비스 장치는,
상기 블록체인 노드가 상기 해시 값 및 상기 타임스탬프를 수신하기 이전에, 상기 데이터를 동결(Freezing)하는 I/O 불능(Disable) 요청을 상기 블록체인 노드에 전송하고,
상기 블록체인 네트워크의 데이터 상태가 상기 스냅샷의 데이터 상태로 복원된 이후에, 상기 동결을 해제하는 I/O 가능(Enable) 요청을 상기 블록체인 노드에 전송하는,
블록체인 기반의 데이터 상태 관리 시스템.6. The method of claim 5,
The service device is
Before the blockchain node receives the hash value and the timestamp, sending an I/O disable request for freezing the data to the blockchain node,
After the data state of the blockchain network is restored to the data state of the snapshot, sending an I/O Enable request to release the freeze to the blockchain node,
Blockchain-based data state management system.
블록체인 노드로부터 데이터의 스냅샷 및 상기 스냅샷의 해시 값을 수신하는 단계;
상기 해시 값을 다른 블록체인 노드의 제1 해시 값과 비교하여 상기 스냅샷의 무결성을 검증하는 단계; 및
상기 무결성이 검증되면 상기 스냅샷을 오프-체인 스토리지에 저장하고 상기 해시 값을 블록체인 네트워크에 기록하는 단계를 포함하는,
블록체인 기반의 데이터 상태 관리 방법.A method performed by a computing device, comprising:
receiving a snapshot of data and a hash value of the snapshot from a blockchain node;
verifying the integrity of the snapshot by comparing the hash value with a first hash value of another blockchain node; and
When the integrity is verified, storing the snapshot in off-chain storage and writing the hash value to a blockchain network.
A blockchain-based data state management method.
오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 단계;
상기 블록체인 노드로부터, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 단계;
상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 단계; 및
상기 무결성이 검증되면, 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 단계를 포함하고,
상기 제1 원장은 상기 블록체인 노드의 분산 원장인,
블록체인 기반의 데이터 상태 관리 시스템.A method performed by a computing device, comprising:
transmitting a hash value of the snapshot stored in off-chain storage, and a timestamp of the snapshot to a blockchain node;
receiving, from the block chain node, whether the hash value and the timestamp match a first hash value recorded in a first ledger and a first timestamp;
verifying the integrity of the snapshot based on the match; and
When the integrity is verified, transmitting a restoration request to the blockchain network to restore the data state of the blockchain network to the data state of the snapshot;
The first ledger is a distributed ledger of the blockchain node,
Blockchain-based data state management system.
오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 단계;
상기 블록체인 노드로부터, 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 단계;
상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 단계; 및
상기 무결성이 검증되면, 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고,
상기 제1 원장은 상기 블록체인 노드의 분산 원장인,
컴퓨터 프로그램.
Combined with a computing device to execute a blockchain-based data state management method,
transmitting a hash value of the snapshot stored in off-chain storage, and a timestamp of the snapshot to a blockchain node;
receiving, from the block chain node, whether the hash value and the timestamp match a first hash value recorded in a first ledger and a first timestamp;
verifying the integrity of the snapshot based on the match; and
When the integrity is verified, it is stored in a computer-readable recording medium to execute the step of sending a restoration request to the blockchain network to restore the data state of the blockchain network to the data state of the snapshot,
The first ledger is a distributed ledger of the blockchain node,
computer program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200063104A KR20210146075A (en) | 2020-05-26 | 2020-05-26 | System and method for managing data state based on blockchain |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200063104A KR20210146075A (en) | 2020-05-26 | 2020-05-26 | System and method for managing data state based on blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210146075A true KR20210146075A (en) | 2021-12-03 |
Family
ID=78866498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200063104A KR20210146075A (en) | 2020-05-26 | 2020-05-26 | System and method for managing data state based on blockchain |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210146075A (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102051896B1 (en) | 2018-01-09 | 2019-12-06 | (주)한국윈텍 | Cordless blind apparatus |
-
2020
- 2020-05-26 KR KR1020200063104A patent/KR20210146075A/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102051896B1 (en) | 2018-01-09 | 2019-12-06 | (주)한국윈텍 | Cordless blind apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754989B2 (en) | Runtime self-correction for blockchain ledgers | |
CN108446407B (en) | Database auditing method and device based on block chain | |
US11074139B2 (en) | Dynamic block chain system using metadata for backing up data based on digest rules | |
CN106776130B (en) | Log recovery method, storage device and storage node | |
CN111880740B (en) | Data processing method, device, computer system and readable storage medium | |
US11385830B2 (en) | Data storage method, apparatus and system, and server, control node and medium | |
US11128440B2 (en) | Blockchain based file management system and method thereof | |
US20110099148A1 (en) | Verification Of Remote Copies Of Data | |
JP6097880B2 (en) | Byzantine fault tolerance data replication method and system | |
WO2021226905A1 (en) | Data storage method and system, and storage medium | |
CN108932249B (en) | Method and device for managing file system | |
US7809898B1 (en) | Detecting and repairing inconsistencies in storage mirrors | |
WO2019210844A1 (en) | Anomaly detection method and apparatus for storage device, and distributed storage system | |
GB2594879A (en) | Protecting against data loss | |
CN109254956B (en) | Data downloading method and device and electronic equipment | |
US11106811B2 (en) | Object storage for guaranteed content for backup and retention | |
US11314813B2 (en) | Apparatus for guaranteeing integrity of state database in blockchain-based environment and method thereof | |
US11625385B2 (en) | Method and apparatus for managing data based on blockchain | |
CN107329699B (en) | Erasure rewriting method and system | |
KR20210146075A (en) | System and method for managing data state based on blockchain | |
EP3980955A1 (en) | Subscription to edits of blockchain transaction | |
KR102447063B1 (en) | Managing method for blockchain based on enhanced practical byzantine fault tolerance, blockchain system and node apparatus | |
CN116010926A (en) | Login authentication method, login authentication device, computer equipment and storage medium | |
KR101797482B1 (en) | Method, apparatus, and computer program stored in computer readable medium for recoverying block in database system | |
CN111314393B (en) | Data processing method, device and equipment based on block chain |