KR20210146075A - System and method for managing data state based on blockchain - Google Patents

System and method for managing data state based on blockchain Download PDF

Info

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
Application number
KR1020200063104A
Other languages
Korean (ko)
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 KR1020200063104A priority Critical patent/KR20210146075A/en
Publication of KR20210146075A publication Critical patent/KR20210146075A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

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

Provided are a system and method for managing a data state based on blockchain. The system for managing a data state based on blockchain according to embodiments of the present invention includes: a service device for storing a snapshot, a hash value of the snapshot, and a timestamp of the snapshot in off-chain storage; and a blockchain node for receiving the hash value and the timestamp from the service device to return to the service device whether the hash value and the timestamp match a first hash value and a first timestamp recorded in a first ledger, wherein the service device verifies the integrity of the snapshot based on the reply from the blockchain node, and transmits, upon verification of the integrity, a restoration request for restoring the data state of the blockchain network to the data state of the snapshot to the blockchain network, in which the first ledger is a distributed ledger of the blockchain node. Therefore, even without initialization, the blockchain is restored to the data state at a specific point in time.

Description

블록체인 기반의 데이터 상태 관리 시스템 및 방법 {SYSTEM AND METHOD FOR MANAGING DATA STATE BASED ON BLOCKCHAIN}Blockchain-based data state management system and method {SYSTEM AND METHOD FOR MANAGING DATA STATE BASED ON BLOCKCHAIN}

본 발명은 블록체인 기반의 데이터 상태 관리 시스템 및 방법에 관한 것이다. 더욱 상세하게는, 블록체인 기반으로 데이터를 백업 및 복원하는 데이터 상태 관리 시스템 및 방법에 관한 것이다.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.

대한민국 등록특허공보 제10-2051896호 (2019.12.06 공고)Republic of Korea Patent Publication No. 10-2051896 (Announcement on Dec. 06, 2019)

본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 기술적 과제는, 블록체인 네트워크를 초기화하지 않아도 블록체인을 과거의 특정 시점의 데이터 상태로 복원할 수 있는 블록체인 기반의 데이터 상태 관리 시스템 및 방법을 제공하는 것이다.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 state management system 1000 according to embodiments of the present invention.
2 and 3 are diagrams illustrating a method of backing up block chain data in the block chain-based data state management system 1000 according to an embodiment of the present invention.
4 is a flowchart illustrating a method for the service device 100 to back up block chain data as an embodiment for explaining a block chain-based data state management method according to the present invention.
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 state management system 1000 according to an embodiment of the present invention.
8 is a flowchart illustrating a method for the service device 100 to restore block chain data as an embodiment for explaining a block chain-based data state management method according to the present invention.
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 computing device 500 in which various embodiments of the present invention may be implemented.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.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 state management system 1000 according to embodiments of the present invention. Referring to FIG. 1 , the data state management system 1000 includes a service device 100 , an off-chain storage 10 , and a blockchain network 30 . The blockchain network 30 includes a plurality of blockchain nodes. The blockchain network 30 records and stores blockchain data through a process of mutual agreement (or distributed agreement) in which a plurality of blockchain nodes participate. Therefore, in this specification, the meaning of recording data in the blockchain network 30 is to record the data as on-chain data, so that each blockchain node can record the data in its own ledger. It may mean generating a related transaction. Similarly, in the present specification, transmitting data to the blockchain network 30 means transmitting the corresponding data to each blockchain node, providing or transmitting the corresponding data to each blockchain node. It may mean to cause

서비스 장치(100)는 클라이언트(20)로부터 백업 요청을 수신하면, 블록체인 네트워크(30)의 데이터(또는, 데이터 상태)를 스냅샷(Snapshot) 형태로 백업하고 이를 오프-체인 데이터로 저장한다. 그리고, 서비스 장치(100)는 백업된 스냅샷과 관련된 정보, 예를 들어 스냅샷의 해시 값 또는 타임스탬프,를 온-체인 데이터로 블록체인 네트워크(30)에 기록한다. When the service device 100 receives a backup request from the client 20, it backs up the data (or data state) of the blockchain network 30 in the form of a snapshot and stores it as off-chain data. Then, the service device 100 records information related to the backed-up snapshot, for example, a hash value or timestamp of the snapshot, in the blockchain network 30 as on-chain data.

그리고, 서비스 장치(100)는 클라이언트(20)로부터 복원 요청을 수신하면, 앞서 백업한 스냅샷을 이용하여 블록체인 네트워크(30)의 데이터(또는, 데이터 상태)를 스냅샷의 시점으로 복원한다. 이때, 서비스 장치(100)는 복원 요청과 관련된 정보, 예를 들어 복원을 위해 참조되는 스냅샷 또는 키 리스트(Key List),를 온-체인 데이터로 기록하여 복원 이력을 저장한다.And, when the service device 100 receives a restore request from the client 20, it restores the data (or data state) of the blockchain network 30 to the point of time of the snapshot by using the previously backed up snapshot. In this case, the service device 100 records information related to a restoration request, for example, a snapshot or a key list referenced for restoration, as on-chain data, and stores the restoration history.

한편, 여기서는 서비스 장치(100)가 클라이언트(20)로부터 백업 요청 또는 복원 요청을 받는 것으로 예시하였지만, 본 발명의 범위는 이에 한정되지 않는다. 가령, 외부 장치로부터 백업 요청 또는 복원 요청을 받지 않고, 서비스 장치(100)가 직접 클라이언트(20)로서 기능할 수도 있다.Meanwhile, although the service device 100 has been exemplified as receiving a backup request or a restore request from the client 20, the scope of the present invention is not limited thereto. For example, the service device 100 may directly function as the client 20 without receiving a backup request or a restoration request from an external device.

이러한 본 발명의 데이터 상태 관리 시스템(1000)에 따르면, 블록체인 네트워크를 초기화하지 않아도 블록체인을 과거 스냅샷 시점의 데이터 상태로 복원할 수 있다. 또한, 블록체인의 데이터 상태를 스냅샷 시점으로 복원했을 때 그에 대한 기록을 온-체인 데이터로 남겨 이후에 복원 작업에 대한 히스토리를 용이하게 파악할 수 있도록 한다.According to the data state management system 1000 of the present invention, the blockchain can be restored to the data state of the past snapshot time without initializing the blockchain network. In addition, when the data state of the block chain is restored to the snapshot point, a record of it is left as on-chain data so that the history of restoration work can be easily understood later.

이하에서는, 본 발명의 다양한 실시예들을 구체적인 예시를 들어 상세히 설명하고자 한다.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 state management system 1000 according to an embodiment of the present invention. In FIG. 2, only three blockchain nodes (hereinafter referred to as 'nodes', 200, 300, and 400) are shown in the blockchain network 30 for simplicity of the drawing, but in general, the blockchain network 30 has more A large number of blockchain nodes can be included.

서비스 장치(100)는 데이터 백업을 요청하기에 앞서, 블록체인 네트워크(30)에 I/O 불능(I/O Disable)을 요청한다. 이는 데이터 백업을 진행하는 도중 블록체인 데이터가 새로 읽히거나 쓰여지는 것에 의해 데이터 백업이 영향받는 것을 미리 차단하기 위해, 블록체인 데이터를 동결(Freezing)하도록 하는 요청이다.The service device 100 requests I/O Disable to the blockchain network 30 before requesting data backup. This is a request to freeze the block chain data in order to prevent the data backup from being affected by the new read or write of the block chain data during the data backup process.

일 실시예로서, 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 blockchain network 30 receives whether or not to agree to the I/O disable request from each of the nodes 200 , 300 , 400 and collects them. As a result, if there is a consent of more than a quorum, the blockchain network 30 determines that the consensus of all nodes 200, 300, 400 has accepted the I/O inability request, and data backup proceeds Each node (200, 300, 400) is prohibited from reading or writing new data while it is in progress. However, even in this case, it is exceptionally allowed that each node 200 , 300 , 400 reads and writes a snapshot for data backup and related information (eg, a hash value).

한편, 이때, 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 node 200, 300, 400 prevents reading or writing of new data. The operations may be performed by a smart contract of the blockchain network 30 .

그리고, 서비스 장치(100)는 각 노드(200, 300, 400)에게 현재 상태의 데이터를 백업하도록 하는 데이터 백업 요청을 전송한다. 이때, 데이터 백업 요청은 서비스 장치(100)로부터 각 노드(200, 300, 400)에게 직접 전송될 수도 있고, 서비스 장치(100)가 블록체인 네트워크(30)를 통해 데이터 백업을 요청하는 트랜잭션을 발생시키면 각 노드(200, 300, 300)가 상기 트랜잭션을 감지하여 관련 요청을 수신하는 방식으로 전송될 수도 있다.Then, the service device 100 transmits a data backup request for backing up data in the current state to each node 200 , 300 , and 400 . At this time, the data backup request may be directly transmitted from the service device 100 to each node 200 , 300 , 400 , and the service device 100 generates a transaction requesting data backup through the block chain network 30 . In this case, each node 200 , 300 , 300 may detect the transaction and transmit it in such a way that a related request is received.

각 노드(200, 300, 400)는 데이터 백업 요청에 응답하여, 현재 상태의 데이터를 기록한 스냅샷을 생성한 후 이를 해시 값과 함께 서비스 장치(100)에 회신한다.Each of the nodes 200 , 300 , and 400 responds to a data backup request, generates a snapshot in which data in a current state is recorded, and returns it to the service device 100 together with a hash value.

구체적으로, 제1 노드(200)는 상기 데이터 백업 요청을 수신하고, 그에 응답하여 자신의 제1 상태DB(220)의 데이터 상태를 조회한 후 상기 데이터 상태를 기록한 스냅샷을 생성한다. 그리고, 제1 노드(200)는 생성한 스냅샷을 해싱하여 상기 스냅샷의 해시 값을 생성한 후, 생성한 스냅샷 및 해시 값을 서비스 장치(100)에 전송한다. 이때, 제1 노드(200)는 상기 생성한 해시 값을 임시 저장할 수 있다.Specifically, the first node 200 receives the data backup request, inquires the data state of its first state DB 220 in response thereto, and then creates a snapshot in which the data state is recorded. Then, the first node 200 hashes the generated snapshot to generate a hash value of the snapshot, and then transmits the generated snapshot and hash value to the service device 100 . In this case, the first node 200 may temporarily store the generated hash value.

제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 자신의 상태DB(320, 420)를 조회한 후 각자의 스냅샷과 그것의 해시 값을 생성하고, 생성된 스냅샷 및 해시 값을 서비스 장치(100)에 전송한다.The second node 300 and the third node 400 also generate their respective snapshots and hash values after inquiring their state DBs 320 and 420 in the same way, and the generated snapshots and hashes The value is transmitted to the service device 100 .

서비스 장치(100)는 각 노드들(200, 300, 400)이 전송한 스냅샷과 해시 값을 수신하고, 수신한 해시 값들을 서로 비교하여 수신한 스냅샷 또는 해시 값의 무결성(Integrity)를 검증한다. 만약, 각 노드들(200, 300, 400)로부터 수신한 해시 값들이 모두 동일하다면, 각 노드들(200, 300, 400)의 스냅샷 또한 동일할 것이므로, 해당 스냅샷과 해시 값이 위조 또는 변조되지 않은 진실한 값임(즉, 무결성)을 신뢰할 수 있다. 반면에, 각 노드들(200, 300, 400)로부터 수신한 해시 값들이 모두 상이하다면, 각 노드들(200, 300, 400)의 스냅샷 또한 서로 다르다는 의미이므로, 각 노드들(200, 300, 400)이 가지고 있는 스냅샷(또는, 데이터)가 위조 또는 변조된 것일 확률이 높다. The service device 100 receives a snapshot and a hash value transmitted by each node 200 , 300 , and 400 , and verifies the integrity of the received snapshot or hash value by comparing the received hash values with each other. do. If the hash values received from each of the nodes 200, 300, and 400 are all the same, the snapshots of the respective nodes 200, 300, and 400 will also be the same, so that the corresponding snapshot and the hash value are forged or altered. It can be trusted that it is a true value (ie, integrity) that is not On the other hand, if the hash values received from each of the nodes 200, 300, and 400 are all different, it means that the snapshots of each of the nodes 200, 300, and 400 are also different, so that each of the nodes 200, 300, 400) has a high probability that the snapshot (or data) is forged or altered.

서비스 장치(100)는 무결성을 검증하는 구체적인 방법으로, 수신한 해시 값들을 서로 비교하여 정족수 이상의 해시 값들이 서로 동일하면 해당 스냅샷 및 해시 값의 무결성이 검증된 것으로 판단하고, 반대로 동일한 해시 값들이 정족수 미만이면 해당 스냅샷 및 해시 값의 무결성이 검증되지 않은 것으로 판단한다. 이때, 정족수는 서비스 장치(100)에 미리 설정된 값으로, 가변 가능한 셋팅 값일 수 있다.As a specific method of verifying integrity, the service device 100 compares received hash values with each other and determines that the integrity of the corresponding snapshot and hash value is verified if the hash values equal to or greater than a quorum are the same, and on the contrary, the same hash values are If it is less than the quorum, it is determined that the integrity of the corresponding snapshot and hash value has not been verified. In this case, the quorum is a value preset in the service device 100 and may be a variable setting value.

서비스 장치(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 service device 100 uses the snapshot and its hash value as off-chain data as off-chain storage 10 save to In this case, the service device 100 may store the timestamp of the corresponding snapshot as off-chain data together. The timestamp means the reference time at which the snapshot is secured, and must be identical to the time when the node 200, 300, or 400 creates the snapshot or the time when the service device 100 receives the snapshot. there is no In the process of data backup, each state DB (220, 320, 420) is in a freezing state in which new data is not read or written, so there is no problem even if an arbitrary time during the data backup process is set as the timestamp does not occur

여기서는, 서비스 장치(100)가 스냅샷 및 해시 값의 검증을 완료하여 이를 오프-체인 데이터로서 저장하는 시점의, 서비스 장치(100)의 서버 시간을 상기 타임스탬프로 설정하는 것으로 예시한다.Here, it is exemplified that the server time of the service device 100 is set as the timestamp when the service device 100 completes verification of the snapshot and hash value and stores it as off-chain data.

스냅샷, 상기 스냅샷의 해시 값, 및 상기 스냅샷의 타임스탬프가 오프-체인 스토리지(10)에 저장되면, 서비스 장치(100)는 데이터 백업 이력을 온-체인 데이터로 기록한다. 이에 대해 도 3을 참조하여 설명한다.When the snapshot, the hash value of the snapshot, and the timestamp of the snapshot are stored in the off-chain storage 10 , the service device 100 records the data backup history as on-chain data. This will be described with reference to FIG. 3 .

서비스 장치(100)는 오프-체인 스토리지(10)에 저장한 해시 값 및 타임스탬프를 온-체인 데이터로 기록하기 위한 트랜잭션을 발생시킨다. 각 노드들(200, 300, 400)은 발생된 트랜잭션을 감지하여, 그로부터 서비스 장치(100)가 기록 요청한 해시 값 및 타임스탬프를 수신한다.The service device 100 generates a transaction for recording the hash value and timestamp stored in the off-chain storage 10 as on-chain data. Each of the nodes 200 , 300 , and 400 detects the generated transaction and receives a hash value and a timestamp requested by the service device 100 to be recorded therefrom.

구체적으로, 제1 노드(200)는 상기 해시 값 및 타임스탬프를 수신하고, 수신한 해시 값을 앞서 자신이 임시 저장한 해시 값과 비교한다. 그리고, 두 해시 값이 서로 일치하면, 서비스 장치(100)가 기록 요청한 해시 값 및 타임스탬프를 자신의 제1 원장(Ledger, 210)에 기록한다. Specifically, the first node 200 receives the hash value and the timestamp, and compares the received hash value with the previously stored hash value. And, when the two hash values match each other, the service device 100 records the requested hash value and timestamp in its first ledger (Ledger, 210).

제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 수신한 해시 값과 자신이 임시 저장한 해시 값을 비교한 후, 해시 값들이 서로 일치하면 상기 수신한 해시 값 및 타임스탬프를 자신의 원장(310, 410)에 기록한다.The second node 300 and the third node 400 also compare the received hash value with the hash value stored temporarily in the same manner, and if the hash values match each other, the received hash value and timestamp It is recorded in its own ledger (310, 410).

서비스 장치(100)는 각 노드(200, 300, 400)로부터 해시 값 및 타임스탬프의 기록이 완료되었다는 회신을 수신하고, 블록체인 데이터의 동결을 해제하기 위해 I/O 가능(I/O Enable) 요청을 블록체인 네트워크(30)에 요청한다. The service device 100 receives a reply from each node 200, 300, 400 that the recording of the hash value and timestamp is completed, and enables I/O to release the freeze of the block chain data (I/O Enable) The request is made to the blockchain network 30 .

일 실시예로서, 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 blockchain network 30 receives whether to agree to the I/O enable request from each of the nodes 200 , 300 , 400 and collects them. As a result, if there is a quorum or more consent, the blockchain network 30 determines that the consensus of all nodes 200, 300, 400 has accepted the I/O possible request, and previously new data Unblocks reading or writing.

이상에서 설명한 실시예에 따르면, 서비스 장치(100)는 각 노드(200, 300, 400)가 저장하고 있는 블록체인 데이터의 백업을 스냅샷의 형태로 오프-체인 데이터에 저장할 수 있으며, 그 과정에서 해당 스냅샷이 신뢰할 수 있는 데이터인지 각 노드(200, 300, 400)의 총의에 기반하여 무결성을 검증한 후, 무결성이 검증된 스냅샷만 백업 데이터로서 저장하게 된다.According to the embodiment described above, the service device 100 may store the backup of the block chain data stored by each node 200 , 300 , 400 in the off-chain data in the form of a snapshot, and in the process After verifying the integrity based on the consensus of each node 200 , 300 , 400 whether the corresponding snapshot is reliable data, only the snapshot whose integrity has been verified is stored as backup data.

도 4는 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 백업을 수행하는 방법을 나타내는 순서도이다. 4 is a flowchart illustrating a method for the service device 100 to back up block chain data as an embodiment for explaining a block chain-based data state management method according to the present invention.

앞서 도 2 및 도 3에서, 전체 데이터 상태 관리 시스템(1000)의 관점에서 데이터 백업 방법을 설명하였다면, 도 4의 실시예에서는 서비스 장치(100)의 관점에서 데이터 백업 방법을 서술한다. 본 실시예에서 앞서 설명된 것과 중복되는 내용에 대해서는 설명의 간명화를 위해 추가적인 설명을 생략하기로 한다. 이하, 도면을 참조하여 설명한다.2 and 3 , the data backup method has been described from the perspective of the overall data state management system 1000 , the data backup method will be described from the perspective of the service device 100 in the embodiment of FIG. 4 . In the present embodiment, for the content overlapping with those described above, an additional description will be omitted for the sake of simplification of the description. Hereinafter, it will be described with reference to the drawings.

S110 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)에 블록체인 데이터를 동결하기 위한 I/O 불능 요청을 전송한다. 블록체인 네트워크(30)는 각 노드(200, 300, 400)의 총의를 취합한 후, 그 결과에 따라 각 노드(200, 300, 400)가 새로운 데이터를 읽거나 쓰는 것을 금지한다.In step S110 , the service device 100 transmits an I/O impossible request for freezing the block chain data to the block chain network 30 . The blockchain network 30 collects the consensus of each node 200, 300, and 400, and according to the result, it prohibits each node 200, 300, 400 from reading or writing new data.

S120 단계에서, 서비스 장치(100)는 각 노드(200, 300, 400)로부터 현재 데이터의 스냅샷 및 상기 스냅샷의 해시 값을 수신한다. In step S120 , the service device 100 receives a snapshot of current data and a hash value of the snapshot from each node 200 , 300 , and 400 .

S130 단계에서, 서비스 장치(100)는 수신한 해시 값들을 비교하여 스냅샷의 무결성을 검증한다. In step S130, the service device 100 verifies the integrity of the snapshot by comparing the received hash values.

S140 단계에서, 서비스 장치(100)는 스냅샷의 무결성이 검증되면, 스냅샷, 상기 스냅샷의 해시 값, 및 상기 스냅샷의 타임스탬프를 오프-체인 스토리지(10)에 저장한다. 이때, 타임스탬프는 상기 스냅샷의 기준 시간으로, 예를 들어, 서비스 장치(100)가 스냅샷을 오프-체인 스토리지(10) 저장하는 시점의 서버 시간일 수 있다. In step S140 , when the integrity of the snapshot is verified, the service device 100 stores the snapshot, a hash value of the snapshot, and a timestamp of the snapshot in the off-chain storage 10 . In this case, the timestamp is the reference time of the snapshot, for example, the service device 100 may be a server time at the time of storing the snapshot off-chain storage 10 .

S150 단계에서, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장한 스냅샷의 해시 값 및 타임스탬프를 온-체인 데이터로 기록하기 위한 트랜잭션을 발생시킨다. 각 노드(200, 300, 400)는 발생한 트랜잭션을 감지하여 자신이 임시 저장하는 해시 값과 비교한 후, 두 해시 값이 일치하면 자신의 원장(210, 310, 410)에 기록하게 된다. In step S150 , the service device 100 generates a transaction for recording the hash value and timestamp of the snapshot stored in the off-chain storage 10 as on-chain data. Each node 200 , 300 , 400 detects a transaction that has occurred, compares it with a hash value that it temporarily stores, and records it in its own ledger 210 , 310 , 410 if the two hash values match.

S160 단계에서, 서비스 장치(100)는 각 노드(200, 300, 400)로부터 해시 값 및 타임스탬프의 기록이 완료되었다는 회신을 수신한 후, 블록체인 네트워크(30)에 블록체인 데이터의 동결을 해제하는 I/O 가능 요청을 전송한다. In step S160 , the service device 100 receives a reply from each node 200 , 300 , and 400 indicating that the recording of the hash value and timestamp has been completed, and then releases the freeze of the block chain data in the block chain network 30 . Sends an I/O enable request.

도 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 service device 100 compares the received hash values with each other and determines whether the respective hash values are identical to each other.

S132 단계에서, 서비스 장치(100)는 해시 값들이 정족수 이상 일치하는지 판단한다. 값이 일치하는 해시 값들의 수가 정족수 이상이면, 본 실시예는 S133 단계로 진행한다.In step S132 , the service device 100 determines whether the hash values match more than a quorum. If the number of hash values with matching values is equal to or greater than the quorum, the present embodiment proceeds to step S133.

S133 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)의 총의가 해당 스냅샷 및 해시 값을 승인한 것으로 보고, 수신한 스냅샷을 유효한 스냅샷으로 판단한다.In step S133, the service device 100 sees that the consensus of the blockchain network 30 has approved the corresponding snapshot and hash value, and determines the received snapshot as a valid snapshot.

한편, 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 state management system 1000 according to an embodiment of the present invention. 6 and 7, the service device 100, the off-chain storage 10, the blockchain network 30, each node 200, 300, 400 and its ledger 210, 310, 410 and state DBs 220 , 320 , and 420 are the same components as those described above with reference to FIGS. 1 to 3 .

서비스 장치(100)는 데이터 복원을 요청하기에 앞서, 블록체인 네트워크(30)에 I/O 불능(I/O Disable)을 요청한다. 이는 데이터 복원을 진행하는 도중 블록체인 데이터가 새로 읽히거나 쓰여지는 것에 의해 데이터 백업이 영향받는 것을 미리 차단하기 위해, 블록체인 데이터를 동결(Freezing)하도록 하는 요청이다. I/O 불능 요청에 대한 그 밖의 내용은 앞서 설명한 바와 동일하다.The service device 100 requests I/O Disable to the blockchain network 30 before requesting data restoration. This is a request to freeze blockchain data to prevent data backup from being affected by new reading or writing of blockchain data during data restoration. Other contents of the I/O disable request are the same as described above.

그리고, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장된 오프-체인 데이터, 예를 들어, 앞서 백업된 스냅샷, 상기 스냅샷의 해시 값, 또는 상기 스냅샷의 타임스탬프,를 읽어내고, 각 노드(200, 300, 400)에게 읽어낸 해시 값 및 타임스탬프를 전송한다. Then, the service device 100 reads off-chain data stored in the off-chain storage 10, for example, a previously backed up snapshot, a hash value of the snapshot, or a timestamp of the snapshot, and , transmits the read hash value and timestamp to each node 200 , 300 , and 400 .

각 노드(200, 300, 400)는 해시 값 및 타임스탬프를 수신하고, 자신이 저장하고 있는 해시 값 및 타임스탬프와 비교하여 그 일치 여부를 회신한다. Each node 200 , 300 , 400 receives a hash value and a timestamp, compares it with the hash value and timestamp it stores, and returns whether the hash value and timestamp match.

구체적으로, 제1 노드(200)는 상기 해시 값 및 타임스탬프를 수신하고, 자신의 제1 원장(210)에 기록된 상기 스냅샷의 해시 값 및 타임스탬프와 각각 일치하는지 확인한다. 그리고, 그 일치 여부(즉, 일치 또는 불일치)에 대한 회신을 서비스 장치(100)로 전송한다. 이때, 제1 노드(200)는 수신한 해시 값 및 타임스탬프가 제1 원장(210)에 기록된 해시 값 및 타임스탬프와 일치하면, 자신의 제1 상태DB(220)에 저장된 데이터들의 키 리스트를 서비스 장치(100)로 더 전송한다. Specifically, the first node 200 receives the hash value and timestamp, and checks whether the hash value and timestamp of the snapshot recorded in its first ledger 210 match, respectively. Then, a reply on whether the match (ie, match or mismatch) is transmitted to the service device 100 . At this time, when the received hash value and timestamp match the hash value and timestamp recorded in the first ledger 210 , the first node 200 has a key list of data stored in its first state DB 220 . is further transmitted to the service device 100 .

제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 자신의 원장(310, 410)에 기록된 해시 값 및 타임스탬프를 조회한 후 수신한 해시 값 및 타임스탬프와의 일치 여부를 서비스 장치(100)에 전송한다. 만약 양자가 일치하면, 제2 노드(300) 및 제3 노드(400) 또한 자신의 상태DB(320, 420)에 저장된 데이터들의 키 리스트를 서비스 장치(100)로 더 전송한다.The second node 300 and the third node 400 also check whether the hash values and timestamps are matched with the received hash values and timestamps after inquiring the hash values and timestamps recorded in their ledgers 310 and 410 in the same way. It is transmitted to the service device 100 . If they match, the second node 300 and the third node 400 also transmit the key list of data stored in their own state DBs 320 and 420 to the service device 100 .

서비스 장치(100)는 각 노드들(200, 300, 400)로부터 수신한 상기 일치 여부의 회신들을 취합하여, 상기 스냅샷 의 무결성을 검증한다. 구체적으로, 서비스 장치(100)는 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 이상이면 상기 스냅샷의 무결성이 검증된 것으로 판단하고, 그렇지 않으면(즉, 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 미만이면) 상기 스냅샷의 무결성이 검증되지 않은 것으로 판단한다. The service device 100 verifies the integrity of the snapshot by aggregating the correspondences received from each of the nodes 200 , 300 , and 400 . Specifically, the service device 100 determines that the integrity of the snapshot is verified if the number of matching ones among the replies is greater than or equal to a preset quorum; If the number of replies is less than a preset quorum), it is determined that the integrity of the snapshot is not verified.

서비스 장치(100)는 스냅샷의 무결성이 검증되면, 블록체인 네트워크의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하기 위해 데이터 복원 요청을 블록체인 네트워크(30)에 전송한다. 이때, 서비스 장치(100)는 스냅샷 및 각 노드(200, 300, 400)로부터 수신한 키 리스트를 복원 요청과 함께 블록체인 네트워크(30)에 전송할 수 있다.When the integrity of the snapshot is verified, the service device 100 transmits a data restoration request to the blockchain network 30 to restore the data state of the blockchain network to the data state at the time of the snapshot. In this case, the service device 100 may transmit the snapshot and the key list received from each node 200 , 300 , 400 to the blockchain network 30 together with a restoration request.

서비스 장치(100)로부터 데이터 복원 요청이 수신되면, 각 노드(200, 300, 400)들은 자신의 상태DB(220, 320, 420)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하게 된다. 이에 대해 도 7을 참조하여 설명한다.When a data restoration request is received from the service device 100 , each node 200 , 300 , and 400 restores the data state of its state DB 220 , 320 , 420 to the data state at the time of the snapshot. This will be described with reference to FIG. 7 .

제1 노드(200)는 서비스 장치(100)가 제공한 스냅샷 및 키 리스트를 수신한 후, 수신한 스냅샷을 해싱하여 해시 값을 생성한다. 그리고, 생성한 해시 값을 자신의 제1 원장(210)에 기록된 상기 스냅샷의 해시 값과 비교한다. 양자가 일치하면, 제1 노드(200)는 수신한 스냅샷이 신뢰할 만한(또는, 진본인) 스냅샷으로 판단하고, 수신한 스냅샷의 데이터 상태와 일치하도록 제1 상태DB(220)의 데이터 상태를 변경한다. After receiving the snapshot and the key list provided by the service device 100 , the first node 200 generates a hash value by hashing the received snapshot. Then, the generated hash value is compared with the hash value of the snapshot recorded in its first ledger 210 . If both match, the first node 200 determines that the received snapshot is a reliable (or authentic) snapshot, and the data of the first state DB 220 to match the data state of the received snapshot. change the state

구체적으로, 제1 노드(200)는 수신한 키 리스트를 스냅샷과 비교하여, 키 리스트에는 있으나 스냅샷에는 없는 키는 스냅샷 시점 이후에 새롭게 추가된 키로 보고, 제1 상태DB(220)에서 해당 키 및 키 값을 삭제한다. 또는, 제1 노드는(200) 키 리스트에는 없고 스냅샷에만 있는 키는 스냅샷 시점 이후에 삭제된 키로 보고, 스냅샷에 기록된 키 및 키 값을 참조하여 제1 상태DB(220)에 해당 키 및 키 값을 새로 기록한다. 또는, 제1 노드는(200)는 키 리스트와 스냅샷에 공통적으로 존재하나 그 키 값이 상이한 키는 스냅샷 시점 이후에 키 값이 변경된 키로 보고, 스냅샷에 기록된 키 값으로 제1 상태DB(220)의 해당 키 값을 수정한다.Specifically, the first node 200 compares the received key list with the snapshot, and sees a key in the key list but not in the snapshot as a newly added key after the snapshot time, and in the first state DB 220 . Delete the corresponding key and key value. Alternatively, a key in the first node (200) that is not in the key list and exists only in the snapshot is regarded as a key deleted after the time of the snapshot, and corresponds to the first state DB 220 by referring to the key and key value recorded in the snapshot. Record a new key and key value. Alternatively, the first node 200 considers a key having a different key value in the key list and the snapshot, but having a different key value, as a key whose key value has been changed since the snapshot point, and in the first state as the key value recorded in the snapshot. The corresponding key value of the DB 220 is modified.

제2 노드(300) 및 제3 노드(400) 또한 이와 동일한 방식으로 수신한 스냅샷과 키 리스트를 이용하여, 자신의 상태DB(320, 420)의 데이터 상태가 스냅샷의 데이터 상태와 일치하도록 상태DB(320, 420)의 데이터 상태를 변경한다. The second node 300 and the third node 400 also use the snapshot and key list received in the same way so that the data state of their state DBs 320 and 420 matches the data state of the snapshot. Changes the data state of the state DB (320, 420).

각 노드(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 state DB 220 , 320 , and 420 is completed, each node 200 , 300 , and 400 returns the result to the service device 100 . The service device 100 receives a reply from each node 200, 300, and 400 that the restoration is complete, and sends an I/O Enable request to the blockchain network ( 30) is requested.

이상에서 설명한 실시예에 따르면, 서비스 장치(100)는 오프-체인 스토리지(10)에 저장된 스냅샷을 이용하여 블록체인 네트워크(30)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원할 수 있으며, 관련된 복원 기록을 온-체인 데이터로서 블록체인 네트워크(30)에 기록한다 또한, 그 과정에서 서비스 장치(100)는 해당 스냅샷이 신뢰할 수 있는 데이터인지 각 노드(200, 300, 400)의 총의에 기반하여 무결성을 검증한 후, 무결성이 검증된 스냅샷에 대해서만 복원을 진행하게 된다.According to the embodiment described above, the service device 100 may restore the data state of the blockchain network 30 to the data state at the time of the snapshot by using the snapshot stored in the off-chain storage 10, Records the related restoration record as on-chain data in the blockchain network 30. In addition, in the process, the service device 100 determines whether the snapshot is reliable data or not After verifying the integrity based on

도 8은 본 발명에 따른 블록체인 기반의 데이터 상태 관리 방법을 설명하는 일 실시예로서, 서비스 장치(100)가 블록체인 데이터의 복원을 수행하는 방법을 나타내는 순서도이다.8 is a flowchart illustrating a method for the service device 100 to restore block chain data as an embodiment for explaining a block chain-based data state management method according to the present invention.

앞서 도 6 및 도 7에서, 전체 데이터 상태 관리 시스템(1000)의 관점에서 데이터 복원 방법을 설명하였다면, 도 8의 실시예에서는 서비스 장치(100)의 관점에서 데이터 복원 방법을 서술한다. 본 실시예에서 앞서 설명된 것과 중복되는 내용에 대해서는 설명의 간명화를 위해 추가적인 설명을 생략하기로 한다. 이하, 도면을 참조하여 설명한다.6 and 7 , the data restoration method has been described from the perspective of the overall data state management system 1000 , the data restoration method will be described from the viewpoint of the service device 100 in the embodiment of FIG. 8 . In the present embodiment, for the content overlapping with those described above, an additional description will be omitted for the sake of simplification of the description. Hereinafter, it will be described with reference to the drawings.

S210 단계에서, 서비스 장치(100)는 블록체인 네트워크(30)에 블록체인 데이터를 동결하기 위한 I/O 불능 요청을 전송한다. 블록체인 네트워크(30)는 각 노드(200, 300, 400)의 총의를 취합한 후, 그 결과에 따라 각 노드(200, 300, 400)가 새로운 데이터를 읽거나 쓰는 것을 금지한다.In step S210 , the service device 100 transmits an I/O impossible request for freezing the block chain data to the block chain network 30 . The blockchain network 30 collects the consensus of each node 200, 300, and 400, and according to the result, it prohibits each node 200, 300, 400 from reading or writing new data.

S220 단계에서, 서비스 장치(100)는 오프-체인 스토리지(10)로부터 스냅샷, 상기 스냅샷의 해시 값, 또는 상기 스냅샷의 타임스탬프를 읽어내고, 읽어낸 해시 값 및 타임스탬프를 블록체인 네트워크(30)에 전송한다In step S220, the service device 100 reads the snapshot, the hash value of the snapshot, or the timestamp of the snapshot from the off-chain storage 10, and stores the read hash value and timestamp in the blockchain network to transmit to (30)

S230 단계에서, 블록체인 네트워크(30)의 각 노드(200, 300, 400)들은 전송된 해시 값 및 타임스탬프가 자신의 원장(210, 310, 410)에 기록된 해시 값 및 타임스탬프와 일치하는지 비교하고, 그 일치 여부를 서비스 장치(100)로 회신한다. 서비스 장치(100)는 각 노드(200, 300, 400)로부터 상기 일치 여부를 수신한다. In step S230, each node 200, 300, 400 of the blockchain network 30 checks whether the transmitted hash value and timestamp match the hash value and timestamp recorded in their ledgers 210, 310, 410 The comparison is performed, and whether the match is returned to the service device 100 . The service device 100 receives the match or not from each node 200 , 300 , 400 .

S240 단계에서, 서비스 장치(100)는 상기 수신한 일치 여부에 기반하여 스냅샷의 무결성을 검증한다. 가령, 서비스 장치(100)는 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 이상이면 상기 스냅샷의 무결성이 검증된 것으로 판단하고, 그렇지 않으면(즉, 상기 회신들 중 일치하는 것으로 회신된 것들의 수가 미리 설정된 정족수 미만이면) 상기 스냅샷의 무결성이 검증되지 않은 것으로 판단한다. In step S240, the service device 100 verifies the integrity of the snapshot based on the received match. For example, the service device 100 determines that the integrity of the snapshot is verified if the number of correspondence among the replies is equal to or greater than a preset quorum, otherwise (ie, replies as matching among the replies) If the number of the ones made is less than a preset quorum), it is determined that the integrity of the snapshot is not verified.

S250 단계에서, 서비스 장치(100)는 스냅샷의 무결성이 검증되면, 스냅샷 및 키 리스트와 함께 데이터 복원 요청을 블록체인 네트워크(30)로 전송한다. 블록체인 네트워크(30)의 각 노드(200, 300, 400)들은 상기 데이터 복원 요청에 응답하여, 자신의 상태DB(220, 320, 420)의 데이터 상태를 스냅샷 시점의 데이터 상태로 복원하게 된다. 그리고, 그 복원 결과를 서비스 장치(100)에 회신한다. In step S250 , when the integrity of the snapshot is verified, the service device 100 transmits a data restoration request together with the snapshot and the key list to the blockchain network 30 . Each node 200 , 300 , 400 of the blockchain network 30 restores the data state of its state DB 220 , 320 , 420 to the data state at the time of the snapshot in response to the data restoration request. . Then, the restoration result is returned to the service device 100 .

S120 단계에서, 서비스 장치(100)는 데이터 복원이 완료되었다는 회신을 각 노드(200, 300, 400)로부터 수신한 후, 블록체인 네트워크(30)에 블록체인 데이터의 동결을 해제하는 I/O 가능 요청을 전송한다. In step S120 , the service device 100 receives a reply from each node 200 , 300 , 400 indicating that data restoration is complete, and then enables I/O to release the freeze of the block chain data to the block chain network 30 . send the request

도 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 node 200 , 300 , and 400 .

S310 단계에서, 노드(200, 300, 400)는 서비스 장치(100)로부터 수신한 스냅샷과 키 리스트를 비교한다.In step S310 , the nodes 200 , 300 , and 400 compare the key list with the snapshot received from the service device 100 .

S320 단계에서, 노드(200, 300, 400)는 해당 키가 키 리스트에는 있으나 스냅샷에는 없는 키 인지 판단한다. 스냅샷에 없는 키이면, 본 실시예는 S330 단계로 진행한다.In step S320, the nodes 200, 300, and 400 determine whether the corresponding key is in the key list but not in the snapshot. If the key is not in the snapshot, the present embodiment proceeds to step S330.

S330 단계에서, 노드(200, 300, 400)는 해당 키가 스냅샷 시점 이후에 새롭게 추가된 키로 보고, 상태DB(220, 320, 420)에서 해당 키 및 키 값을 삭제한다. 삭제가 완료되면 본 실시예는 S380 단계로 진행한다.In step S330, the nodes 200, 300, and 400 view the corresponding key as a newly added key after the snapshot time, and delete the corresponding key and key value from the state DBs 220, 320, and 420. When the deletion is completed, the present embodiment proceeds to step S380.

한편, 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 nodes 200, 300, and 400 see the corresponding key as a key deleted after the time of the snapshot, and refer to the key and key value recorded in the snapshot, and the corresponding key in the state DBs 220, 320, 420. and a new key value. When the recording is completed, the present embodiment proceeds to step S380.

한편, 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 nodes 200, 300, and 400 view the corresponding key as a key whose key value has changed since the time of the snapshot, and use the corresponding key value in the state DB 220, 320, 420 as the key value recorded in the snapshot. make corrections When the modification is completed, the present embodiment proceeds to step S380.

S380 단계에서, 노드(200, 300, 400)는 스냅샷 및 키 리스트의 모든 키를 비교, 확인하였는지 판단한다. 아직 비교, 확인되지 않은 키가 있으면 본 실시예는 S310 단계로 되돌아가 S320 단계 내지 S370 단계를 반복 수행한다. 반면에, 모든 키가 비교, 확인되었으면 이로써 본 실시예는 종료한다.In step S380 , the nodes 200 , 300 , and 400 compare and verify all keys in the snapshot and the key list. If there is a key that has not yet been compared or confirmed, the present embodiment returns to step S310 and repeats steps S320 to S370. On the other hand, when all keys are compared and confirmed, this embodiment ends.

이하에서는, 도 10을 참조하여 본 발명의 다양한 실시예에서 설명된 방법들이 구현되는 예시적인 컴퓨팅 장치(500)에 대하여 설명하도록 한다. Hereinafter, an exemplary computing device 500 in which the methods described in various embodiments of the present invention are implemented will be described with reference to FIG. 10 .

도 10은 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다. 도 10에 도시된 컴퓨팅 장치(500)는 예를 들어, 도 2에 도시된 서비스 장치(100), 또는 각 블록체인 노드들(200, 300, 400)을 하드웨어적으로 구현한 장치일 수 있다.10 is an exemplary hardware configuration diagram illustrating the computing device 500 . The computing device 500 shown in FIG. 10 may be, for example, the service device 100 shown in FIG. 2 or a device that implements the respective block chain nodes 200, 300, and 400 in hardware.

도 10에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 10에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 10에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.As shown in FIG. 10 , the computing device 500 loads one or more processors 510 , a bus 550 , a communication interface 570 , and a computer program 591 executed by the processor 510 . It may include a memory 530 and a storage 590 for storing the computer program (591). However, only the components related to the embodiment of the present invention are illustrated in FIG. 10 . Accordingly, a person skilled in the art to which the present invention pertains can know that other general-purpose components other than the components shown in FIG. 10 may be further included.

프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.The processor 510 controls the overall operation of each component of the computing device 500 . The processor 510 includes at least one of a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphic processing unit (GPU), or any type of processor well known in the art. may be included. In addition, the processor 510 may perform an operation on at least one application or program for executing the method/operation according to various embodiments of the present disclosure. Computing device 500 may include one or more processors.

메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.The memory 530 stores various data, commands, and/or information. The memory 530 may load one or more programs 591 from the storage 590 to execute methods/operations according to various embodiments of the present disclosure. An example of the memory 530 may be a RAM, but is not limited thereto.

버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.The bus 550 provides a communication function between components of the computing device 500 . The bus 550 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.The communication interface 570 supports wired/wireless Internet communication of the computing device 500 . The communication interface 570 may support various communication methods other than Internet communication. To this end, the communication interface 570 may be configured to include a communication module well-known in the art.

스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The storage 590 may non-temporarily store one or more computer programs 591 . The storage 590 is a non-volatile memory such as a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, or well in the art to which the present invention pertains. It may be configured to include any known computer-readable recording medium.

컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(591)은 오프-체인 스토리지에 저장된 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 블록체인 노드에 전송하는 동작, 상기 블록체인 노드로부터 상기 해시 값 및 상기 타임스탬프와 제1 원장(Ledger)에 기록된 제1 해시 값 및 제1 타임스탬프의 일치 여부를 수신하는 동작, 상기 일치 여부에 기초하여 상기 스냅샷의 무결성을 검증하는 동작, 및 상기 무결성이 검증되면 블록체인 네트워크의 데이터 상태를 상기 스냅샷의 데이터 상태로 복원하기 위한 복원 요청을 상기 블록체인 네트워크에 전송하는 동작을 수행하기 위한 인스트럭션들(Instructions)을 포함할 수 있다. 이때 제1 원장은 상기 블록체인 노드의 분산 원장일 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.The computer program 591 may include one or more instructions in which methods/operations according to various embodiments of the present invention are implemented. For example, the computer program 591 transmits a hash value of a snapshot stored in off-chain storage, and a timestamp of the snapshot to a blockchain node, from the blockchain node Receiving whether the hash value and the timestamp match the first hash value and the first timestamp recorded in a first ledger, verifying the integrity of the snapshot based on the match, and When the integrity is verified, it may include instructions for performing an operation of transmitting a restoration request for restoring the data state of the block chain network to the data state of the snapshot to the block chain network. In this case, the first ledger may be a distributed ledger of the blockchain node. When the computer program 591 is loaded into the memory 530 , the processor 510 may execute the one or more instructions to perform methods/operations according to various embodiments of the present disclosure.

지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(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)

데이터의 스냅샷(Snapshot)을 생성하고 상기 스냅샷의 해시(Hash) 값을 저장하는 블록체인 노드; 및
상기 블록체인 노드로부터 상기 스냅샷 및 상기 해시 값을 수신하고, 상기 해시 값을 다른 블록체인 노드의 제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.
제1 항에 있어서,
상기 서비스 장치는,
상기 스냅샷의 타임스탬프(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.
제2 항에 있어서,
상기 서비스 장치는,
상기 타임스탬프 및 상기 해시 값을 상기 오프-체인 스토리지에 더 저장하는,
블록체인 기반의 데이터 상태 관리 시스템.
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.
제1 항에 있어서,
상기 서비스 장치는,
상기 스냅샷의 생성 이전에, 상기 데이터를 동결(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.
스냅샷, 상기 스냅샷의 해시(Hash) 값, 및 상기 스냅샷의 타임스탬프(Timestamp)를 오프-체인 스토리지에 저장하는 서비스 장치; 및
상기 해시 값 및 상기 타임스탬프를 상기 서비스 장치로부터 수신하고, 상기 해시 값 및 상기 타임스탬프와 제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.
제5 항에 있어서,
상기 블록체인 노드는,
상기 해시 값 및 상기 타임스탬프가 상기 제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.
제6 항에 있어서,
상기 복원 요청은,
상기 스냅샷, 및 상기 키 리스트를 포함하는,
블록체인 기반의 데이터 상태 관리 시스템.
7. The method of claim 6,
The restoration request is
comprising the snapshot and the key list;
Blockchain-based data state management system.
제7 항에 있어서,
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷에 없는 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에서 삭제하는,
블록체인 기반의 데이터 상태 관리 시스템.
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.
제7 항에 있어서,
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트에 없는 상기 스냅샷의 키에 대해서는 상기 키 및 상기 키의 키 값을 상기 상태 데이터베이스에 기록하는,
블록체인 기반의 데이터 상태 관리 시스템.
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.
제7 항에 있어서,
상기 블록체인 노드는,
상기 복원 요청에 응답하여 상기 스냅샷과 상기 키 리스트를 비교하고, 상기 키 리스트 중 상기 스냅샷과 키 값이 상이한 키에 대해서는 상기 상태 데이터베이스에 기록된 상기 키의 키 값을 상기 스냅샷 상에서의 상기 키의 키 값으로 수정하는,
블록체인 기반의 데이터 상태 관리 시스템.
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.
제7 항에 있어서,
상기 블록체인 노드는,
상기 스냅샷을 해싱(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.
제5 항에 있어서,
상기 서비스 장치는,
상기 블록체인 노드가 상기 해시 값 및 상기 타임스탬프를 수신하기 이전에, 상기 데이터를 동결(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.

KR1020200063104A 2020-05-26 2020-05-26 System and method for managing data state based on blockchain KR20210146075A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102051896B1 (en) 2018-01-09 2019-12-06 (주)한국윈텍 Cordless blind apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
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