KR102598227B1 - Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain - Google Patents

Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain Download PDF

Info

Publication number
KR102598227B1
KR102598227B1 KR1020210126102A KR20210126102A KR102598227B1 KR 102598227 B1 KR102598227 B1 KR 102598227B1 KR 1020210126102 A KR1020210126102 A KR 1020210126102A KR 20210126102 A KR20210126102 A KR 20210126102A KR 102598227 B1 KR102598227 B1 KR 102598227B1
Authority
KR
South Korea
Prior art keywords
transaction
file
management method
blockchain
data management
Prior art date
Application number
KR1020210126102A
Other languages
Korean (ko)
Other versions
KR20230043339A (en
Inventor
임장식
조봉철
Original Assignee
주식회사 올리브텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 올리브텍 filed Critical 주식회사 올리브텍
Priority to KR1020210126102A priority Critical patent/KR102598227B1/en
Publication of KR20230043339A publication Critical patent/KR20230043339A/en
Application granted granted Critical
Publication of KR102598227B1 publication Critical patent/KR102598227B1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 대용량 데이터의 무결성을 보장할 수 있는 데이터 관리 방법에 관한 것이다. 본 데이터 관리 방법은, 클라이언트가 블록체인 트랜잭션을 송수신할 수 있도록 미리 설정된 블록체인 시스템과 연결하는 과정, 클라이언트가 제1 파일의 저장을 위한 제1 트랜잭션 생성하는 과정, 제1 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족된 경우, 제1 트랜잭션을 포함하는 블록을 생성하는 과정, 생성한 블록을 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 과정, 제1 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 제1 파일을 데이터 변경 불가 가능을 제공하는 스토리지 장치에 저장하는 과정, 및 제1 파일에 대한 메타데이터를 추출하여, 추출한 메타데이터를 블록체인 시스템의 원장에 저장하는 과정을 포함한다. 본 발명에 따르면, 블록체인 기술과 분산 스토리지 기술을 활용하여 대용량 데이터의 무결성을 보장하면서 처리 속도로 향상시킬 수 있다.The present invention relates to a data management method that can ensure the integrity of large amounts of data. This data management method is a process of connecting a client to a preset blockchain system to enable sending and receiving blockchain transactions, a process of the client creating a first transaction for storing the first file, and the first transaction satisfying the guarantee policy. And, when predetermined block creation conditions are met, the process of generating a block containing the first transaction, the process of propagating the created block to each peer node constituting the blockchain system and checking its validity, the first transaction If this is valid, the process of storing the first file in a storage device that provides data immutability by the called smart contract, extracting metadata for the first file, and storing the extracted metadata in the ledger of the blockchain system. Includes a saving process. According to the present invention, the processing speed can be improved while ensuring the integrity of large amounts of data by utilizing blockchain technology and distributed storage technology.

Figure R1020210126102
Figure R1020210126102

Description

변경 불가 기능을 제공하는 분산 스토리지와 블록체인을 이용하여 대용량 콘텐츠의 무결성을 보장하는 데이터 관리 방법{Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain}Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain}

본 발명은 데이터 변경 불가 기능을 제공하는 분산 스토리지 기술과 블록체인 기술을 이용하여 영상 콘텐츠와 같은 대용량 데이터의 무결성을 보장할 수 있는 데이터 관리 방법에 관한 것이다. The present invention relates to a data management method that can guarantee the integrity of large amounts of data such as video content using distributed storage technology and blockchain technology that provides an immutable data function.

블록체인은 블록에 데이터를 담아 체인 형태로 연결한 구조를 가지고 있고, 블록체인 네트워크를 형성하는 다수의 노드가 각각 동시에 분산 원장에 데이터를 복제하여 저장하고 있는 분산형 데이터 저장 기술로서, 거래 때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조해 데이터 위변조를 방지할 수 있다.Blockchain is a distributed data storage technology that contains data in blocks and connects them in the form of a chain, and multiple nodes forming a blockchain network each replicate and store data in a distributed ledger at the same time for each transaction. All transaction participants can share information and compare it to prevent data forgery and falsification.

이와 같이 블록체인 기술은 본질적으로 데이터 무결성 보장 기능을 제공할 수 있으며, 중앙화된 데이터 저장의 보안성 한계도 극복할 수 있다. In this way, blockchain technology can inherently provide a data integrity guarantee function and can also overcome the security limitations of centralized data storage.

그러나, 영상 콘텐츠와 같은 대용량 데이터의 무결성 보장을 블록체인 기술로 처리할 경우, 각 노드가 필요한 저장 용량이 방대해지고, 트랜잭션 처리 시간도 상대적으로 많이 필요하게 되며, 노드 장애 발생시 교체된 노드의 원장을 복구하는 과정에서 대용량 데이터를 네트워크를 통해 다른 노드로부터 복구해 오는 과정도 용이하지 않다. However, when ensuring the integrity of large amounts of data, such as video content, is processed using blockchain technology, the storage capacity required for each node becomes enormous, transaction processing time is also relatively long, and in the event of a node failure, the ledger of the replaced node is stored. During the recovery process, it is not easy to recover large amounts of data from other nodes through the network.

따라, 대용량 데이터의 무결성 관리가 필요한 분야에서, 분산 스토리지 기술과 블록체인 기술을 동시에 활용하여, 처리 속도도 높으면서 완벽한 데이터 보전성도 제공할 수 있는 방안을 고려해 볼 필요가 있다. Accordingly, in areas where integrity management of large amounts of data is required, it is necessary to consider ways to simultaneously utilize distributed storage technology and blockchain technology to provide high processing speed and perfect data integrity.

따라서, 본 발명의 목적은, 블록체인 기술과 분산 스토리지 기술을 활용하여 대용량 데이터의 무결성을 보장하면서 처리 속도로 향상시킬 수 있는 데이터 관리 방법을 제공함에 있다. Therefore, the purpose of the present invention is to provide a data management method that can improve processing speed while ensuring the integrity of large data by utilizing blockchain technology and distributed storage technology.

상기 목적을 달성하기 위한 본 발명에 따른 데이터 관리 방법은, 클라이언트가 블록체인 트랜잭션을 송수신할 수 있도록 미리 설정된 블록체인 시스템과 연결하는 단계, 상기 클라이언트가 제1 파일의 저장을 위한 제1 트랜잭션 생성하는 단계, 상기 제1 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족된 경우, 상기 제1 트랜잭션을 포함하는 블록을 생성하는 단계, 상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계, 상기 제1 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 상기 제1 파일을 데이터 변경 불가 가능을 제공하는 스토리지 장치에 저장하는 단계, 및 상기 제1 파일에 대한 메타데이터를 추출하여, 추출한 메타데이터를 상기 블록체인 시스템의 원장에 저장하는 단계를 포함한다.The data management method according to the present invention for achieving the above purpose includes connecting a client to a preset blockchain system so that it can transmit and receive blockchain transactions, and generating a first transaction for the client to store the first file. Step, if the first transaction satisfies the guarantee policy and predetermined block creation conditions are met, generating a block including the first transaction, each peer constituting the blockchain system Propagating to a node and validating the first transaction; if the first transaction is valid, storing the first file by a called smart contract on a storage device that provides data immutability; and It includes extracting metadata about the file and storing the extracted metadata in the ledger of the blockchain system.

상기 스토리지 장치는, 스케일아웃(Scale-out) 방식에 의해 동적으로 확장가능한 분산 스토리지인일 수 있으며, 상기 원장은 상기 분산 스토리지에 저장할 수있다. The storage device may be a distributed storage device that is dynamically expandable by a scale-out method, and the ledger may be stored in the distributed storage.

또한, 상기 제1 파일의 저장을 위한 트랜잭션은, 상기 클라이언트에서 실행되는 탈중앙화된 클라이언트 애플리케이션에서 생성할 수 있다.Additionally, a transaction for storing the first file can be created in a decentralized client application running on the client.

또한, 상기 제1 트랜잭션이 상기 보증 정책을 만족하는지 여부는, 상기 클라이언트 애플리케이션에서 상기 제1 트랜잭션에 대한 트랜잭션 제안 메시지를 엔도싱 피어 노드에 전달하고, 상기 엔도싱 피어 노드에서 상기 트랜잭션을 시뮬레이션하여 제안 응답 메시지를 상기 클라이언트 애플리케이션으로 전송하면, 상기 제안 응답 메시지에 기초하여, 상기 보증 정책 만족 여부를 검사할 수 있다.Additionally, whether the first transaction satisfies the guarantee policy can be determined by sending a transaction proposal message for the first transaction from the client application to the endorsing peer node, and simulating the transaction at the endoring peer node. When a response message is transmitted to the client application, it can be checked whether the guarantee policy is satisfied based on the proposal response message.

유효성을 검사하는 단계는, 커미팅 피어 노드가 오더링 서비스 노드로부터 상기 블록을 전송받는 단계, 및 상기 커미팅 피어 노드에서 상기 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효로 표기하고, 유효성이 검증되지 않은 트랜잭션은 유효하지 않은 것으로 표시하는 단계를 포함할 수 있다.The validation step includes a committing peer node receiving the block from an ordering service node, and the committing peer node checking whether the transactions included in the block satisfy the guarantee policy, then validating each transaction. It may include checking and marking validated transactions as valid, and marking unvalidated transactions as invalid.

또한, 상기 클라이언트가 상기 제1 파일의 인출을 위한 제2 트랜잭션 생성하는 단계, 상기 제2 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족되면, 상기 제2 트랜잭션을 포함하는 블록을 생성하는 단계, 상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계, 및 상기 제2 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 원장에 저장된 메타데이터를 참조하여 상기 제1 파일의 저장 위치를 검색하고, 상기 검색된 저장 위치에서 상기 제1 파일을 인출하는 단계를 더 포함할 수 있다.In addition, the client generates a second transaction for withdrawing the first file, and when the second transaction satisfies a guarantee policy and a predetermined block creation condition is met, a block containing the second transaction is generated. A step of propagating the generated block to each peer node constituting the blockchain system and checking its validity, and if the second transaction is valid, metadata stored in the ledger by the called smart contract The method may further include searching for a storage location of the first file with reference to and retrieving the first file from the searched storage location.

그리고, 상기 목적을 달성하기 위하여 본 발명에서는, 상기 데이터 관리 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 프로세서로 읽을 수 있는 기록매체를 제공할 수 있다.In order to achieve the above object, the present invention can provide a processor-readable recording medium on which a program for executing the data management method on the processor is recorded.

본 발명에 따르면, 전체 파일을 블록체인 원장에 저장하는 대신 크기가 작은 메타데이터만을 원장에 저장하고, 전체 파일은 데이터 변경 불가 기능을 제공하는 스토리지 장치에 저장함으로써, 이중으로 데이터 위변조를 방지할 수 있을 뿐만 아니라, 블록체인 원장에 저장할 용량을 감소시켜 블록체인 트랜잭션의 처리 속도를 향상시킬 수 있다. 또한, 스토리지 장치는 스케일아웃 방식으로 확장성을 구비하여, 지속적으로 크기가 커질 수 있는 저장 데이터에 대해서도 효과적으로 대응할 수 있다. 또한, 블록체인 시스템을 구성하는 노드에 장애가 발생한 경우에도 신속하게 복구과정을 수행할 수 있다. According to the present invention, instead of storing the entire file in the blockchain ledger, only small-sized metadata is stored in the ledger, and the entire file is stored in a storage device that provides an immutable data function, thereby doubly preventing data forgery and falsification. In addition, the processing speed of blockchain transactions can be improved by reducing the storage capacity in the blockchain ledger. In addition, the storage device has scalability in a scale-out manner and can effectively respond to stored data whose size can continuously increase. Additionally, even if a failure occurs in the nodes that make up the blockchain system, the recovery process can be performed quickly.

도 1은 일반적인 블록체인 구조를 설명하기 위한 도면,
도 2는 하이퍼레저 패브릭의 블록 구조를 나타낸 도면,
도 3은 본 발명에 따른 데이터 관리 방법이 적용되는 시스템의 일 예를 설명하기 위해 참조되는 도면,
도 4 및 도 5는 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 저장 과정에 대한 설명에 제공되는 흐름도,
도 6 및 도 7은 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 인출 과정에 대한 설명에 제공되는 흐름도, 그리고
도 8은 본 발명의 일실시예에 따른 데이터 관리 방법에서 피어 노드의 장애 복구 과정에 대한 설명에 제공되는 흐름도이다.
Figure 1 is a diagram to explain a general blockchain structure,
Figure 2 is a diagram showing the block structure of Hyperledger Fabric;
3 is a diagram referenced to explain an example of a system to which the data management method according to the present invention is applied;
4 and 5 are flowcharts provided to explain the file storage process in the data management method according to an embodiment of the present invention;
6 and 7 are flowcharts provided to explain the file retrieval process in the data management method according to an embodiment of the present invention, and
Figure 8 is a flowchart provided to explain the failure recovery process of a peer node in the data management method according to an embodiment of the present invention.

본 명세서에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 어떤 구성요소에 다른 구성요소에 직접적으로 연결되어 있거나 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 또한, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에" 또는 "~에 이웃하는" 등과, 어떤 구성요소가 다른 구성요소로 신호를 "전송한다" 와 같은 표현도 마찬가지로 해석되어야 한다.In this specification, when a component is referred to as being “connected” or “connected” to another component, the component may be directly connected or connected to the other component, but may be connected to another component in the middle. It should be understood that elements may exist. In addition, other expressions that describe the relationship between components, such as “between” or “neighboring to,” and expressions such as “one component transmits” a signal to another component, should be interpreted similarly. do.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.

도 1은 일반적인 블록체인 구조를 설명하기 위한 도면이다.Figure 1 is a diagram to explain a general blockchain structure.

도 1을 참조하면, 블록체인의 블록은 헤더(header)와 바디(body)로 구성된다. 헤더는 단일 블록에 링크드 리스트(linked list)를 만들기 위한 정보를 포함하고, 바디는 블록에 담기는 거래의 내용들을 포함한다. 비트코인의 경우, 헤더는 소프트웨어 버전, 난이도, 이전 블록의 해시값, 블록 생성시간, 머클루트, 및 난스(nonce)라는 정보를 포함할 수 있고, 바디는 적어도 하나의 트랜잭션(transaction)을 포함할 수 있다. Referring to Figure 1, a blockchain block consists of a header and a body. The header contains information to create a linked list in a single block, and the body contains the contents of the transactions contained in the block. In the case of Bitcoin, the header may include information such as software version, difficulty, hash value of the previous block, block creation time, Merkle root, and nonce, and the body may contain at least one transaction. You can.

블록을 생성하기 위해서는 난스의 값을 찾는 과정이 필요한데, 이전 블록에 대한 해시값이 새로운 블록의 난스값을 계산하는데 사용된다. 이러한 난스의 값을 찾는 과정을 비트코인에서는 채굴이라고 표현하여, 동시에 '합의 알고리즘'이라고도 불린다. 이는 블록체인 네트워크상에 참여자들이 실시간으로 동일한 장부를 보유하게 하는 분산 원장의 기능을 가능하게 하며, 블록을 서로 연결시켜준다.In order to create a block, a process of finding the nonce value is required, and the hash value for the previous block is used to calculate the nonce value of the new block. The process of finding the value of this nonce is expressed as mining in Bitcoin, and is also called a ‘consensus algorithm’. This enables the function of a distributed ledger that allows participants on a blockchain network to hold the same ledger in real time and connects blocks to each other.

블록체인의 안정성은 링크드 리스트를 통한 체인 길이의 확대와 블록체인 네트워크 참여자들이 보유한 동일한 장부를 통해 생겨난다. 체인의 길이가 길어질수록 이전에 존재하는 하나의 블록을 해킹하는 것은 불가능에 가까워지고, 새롭게 생겨난 블록의 거래 데이터를 분산 원장을 통해 모든 노드가 보유하고 있기 때문에 과반수 이상을 수정할 수 있는 연산력을 보유하지 않는 이상 블록체인의 데이터 조작은 불가능하다.The stability of the blockchain is created through the expansion of the chain length through linked lists and the identical ledger held by blockchain network participants. As the length of the chain increases, hacking a previously existing block becomes closer to impossible, and since all nodes hold the transaction data of newly created blocks through a distributed ledger, they do not have the computing power to modify more than half of them. Otherwise, manipulation of blockchain data is impossible.

블록체인은 그 활용도 측면에서 퍼블릭 블록체인(public blockchain), 프라이빗 블록체인(private blockchain), 컨소시움 블록체인(consortium blockchain) 등의 형태를 이루고 있다. 퍼블릭 블록체인의 경우 누구나 참여가능하고 누구나 정보를 열람할 수 있다. 프라이빗 블록체인은 참여자의 제한과 열람의 범위의 제한 등 목적에 따라 제한된 기능을 적용할 수 있다. 그리고, 컨소시움 블록체인은, 프라이빗 블록체인의 확장으로써 서로 다른 프라이빗 블록체인의 결합으로 각기 다른 블록체인에서 생성한 이질적인 블록을 오더링이라는 프로세스로 연결하여 신뢰성 확보 및 확장성을 제공할 수 있다.In terms of its usability, blockchain comes in the form of public blockchain, private blockchain, and consortium blockchain. In the case of a public blockchain, anyone can participate and anyone can view information. Private blockchains can apply limited functions depending on the purpose, such as restrictions on participants and scope of viewing. In addition, the consortium blockchain is an extension of the private blockchain and can provide reliability and scalability by connecting heterogeneous blocks created in different blockchains through a process called ordering by combining different private blockchains.

도 2는 하이퍼레저 패브릭(Hyperledger Fabric) 블록 구조를 나타낸 것이다.Figure 2 shows the Hyperledger Fabric block structure.

하이퍼레저 패브릭은 블록체인 솔루션과 응용 프로그램을 개발하기 위한 모듈형 아키텍쳐 플랫폼이다. 하이퍼래저 패브릭은 하이퍼레저(Hyperledger)의 프로젝트의 하나로 개발되었으며, 하이퍼레저는 리눅스 재단의 주도 하에 산업간 블록체인 기술 발전을 위해 조직된 전세계적인 오픈 소스 협업 활동으로, 다양한 기술 운영위원회와 여러 조직의 유지 관리자에 의해 관리된다. Hyperledger Fabric is a modular architecture platform for developing blockchain solutions and applications. Hyperledger Fabric was developed as one of Hyperledger's projects, and Hyperledger is a global open source collaborative activity organized for the development of cross-industry blockchain technology under the leadership of the Linux Foundation, with various technical steering committees and organizations. Managed by maintainers.

도 2를 참조하면, 하이퍼레저 패브릭의 블록 구조는 암호화된 해시 함수를 사용하여 블럭 구조를 저장함으로써 과거의 트랜잭션 정보가 훼손되지 않도록 보호한다. 또한, 하이퍼레저 패블릭의 블록 구조는 비트코인의 경우와 거의 동일하지만, KVS(Key-Value Store) 해시값도 기록되는 점에 특징이 있다.Referring to Figure 2, the block structure of Hyperledger Fabric protects past transaction information from being damaged by storing the block structure using an encrypted hash function. In addition, the block structure of Hyperledger Fabric is almost the same as that of Bitcoin, but it is unique in that the KVS (Key-Value Store) hash value is also recorded.

이전블록의 해시 값은 512bit(64bytes)에서 SHA3 SHAKE256 을 사용하여 계산되며, 블록의 메타데이터는 각 노드에서 자유로운 값을 넣을 수 있으며, 해시 계산에서 제외된다.The hash value of the previous block is calculated using SHA3 SHAKE256 at 512 bits (64 bytes), and the metadata of the block can be freely entered at each node and is excluded from the hash calculation.

일반적으로 스마트 컨트랙트(smart contract)는 블록체인 플랫폼에서 참여자 사이에 일정 조건이 만족될 때 거래가 자동으로 체결되는 기술을 말하는데, 하이퍼레저 패브릭에서 체인코드(chain code)는 스마트 컨트랙트 정책을 코드로 명세하는 목적의 구성요소이며, 스마트 컨트랙트와 거의 같은 의미로 사용한다. In general, a smart contract refers to a technology in which transactions are automatically concluded when certain conditions are met between participants on a blockchain platform. In Hyperledger Fabric, chain code is a technology that specifies smart contract policies as code. It is a component of purpose and is used in almost the same sense as a smart contract.

본 발명에서 데이터 무결성의 보장은 기본적으로 하이퍼레저 패브릭을 기반으로 하는 블록체인 시스템이 활용된다. In the present invention, a blockchain system based on Hyperledger Fabric is basically used to guarantee data integrity.

도 3은 본 발명에 따른 데이터 관리 방법이 적용되는 시스템의 일 예를 설명하기 위해 참조되는 도면이다. Figure 3 is a diagram referenced to explain an example of a system to which the data management method according to the present invention is applied.

도 3을 참조하면, 본 시스템은, 클라이언트(100), 블록체인 시스템(200) 및 스토리지 장치(300)를 포함할 수 있다.Referring to FIG. 3, the system may include a client 100, a blockchain system 200, and a storage device 300.

클라이언트(100)는 블록체인 시스템(200)에 연결되어, 클라이언트 트랜잭션을 작성하고, 이를 통하여 트랜잭션을 호출할 수 있다. 클라이언트(100)는 제1 내지 제n 피어 노드(210a ~ 210n) 중에서 원하는 피어 노드에 연결할 수 있다.The client 100 can be connected to the blockchain system 200, create a client transaction, and call the transaction through it. The client 100 can connect to a desired peer node among the first to nth peer nodes 210a to 210n.

블록체인 시스템(200)은 기본적으로 하이퍼레저 패브릭을 기반으로 하는 시스템이지만, 반드시 이에 국한되지 않는다.The blockchain system 200 is basically a system based on Hyperledger Fabric, but is not necessarily limited thereto.

블록체인 시스템(200)에서, 제1 내지 제n 피어 노드(210a ~ 210n)은 블록체인 시스템(200)을 유지하며, 트랜잭션을 처리하고, 원장(ledger)과 체인코드(chain code)를 관리하고 저장한다.In the blockchain system 200, the first to nth peer nodes 210a to 210n maintain the blockchain system 200, process transactions, manage the ledger and chain code, and Save.

하이퍼레저 패브릭의 경우, 원장은 불변의 순서화된 레코드를 블록으로 저장하는 블록 체인과 현재 스테이트(state)를 유지하는 스테이트 데이터베이스 등으로 구성되며, 월드 스테이트(world state)라는 저장소에 원장을 저장한다. In the case of Hyperledger Fabric, the ledger consists of a blockchain that stores immutable ordered records in blocks and a state database that maintains the current state, and the ledger is stored in a storage called world state.

제1 내지 제n 피어 노드(210a ~ 210n) 중에서 엔도싱 피어 노드(endorsing peer node)는 보증 정책에 따라 요청된 트랜잭션을 먼저 수행해 검토를 하고 보증 사인을 첨부한다. 즉, 엔도싱 피어 노드는 트랜잭션을 검증하는 할역을 수행하며, 스마트 컨트랙트에 의해 수행될 트랜잭션을 시뮬레이션해보고 그 결과를 클라이언트 애플리케이션에 리턴해주는 피어 노드이다. Among the first to nth peer nodes 210a to 210n, the endorsing peer node first performs and reviews the requested transaction according to the endorsement policy and attaches an endorsement signature. In other words, the endorsing peer node is a peer node that performs the role of verifying transactions, simulates transactions to be performed by smart contracts, and returns the results to the client application.

제1 내지 제n 피어 노드(210a ~ 210n) 중에서 커미팅 피어 노드(committing peer node)는 엔도싱 피어 노드가 실행한 트랜잭션 결과에 검증 문제가 없다면, 트랜잭션을 확정하고 내용을 블록체인에 업데이트 한다.Among the first to nth peer nodes (210a to 210n), the committing peer node confirms the transaction and updates the contents to the blockchain if there is no verification problem in the transaction result executed by the endorsing peer node.

그밖에 앵커 피어 노드(anchor peer node)는 채널 내에서 대표 할역을 수행하고, 리더 피어 노드(leader peer node)는 조직에서 대표 할역을 수행한다. In addition, the anchor peer node performs a representative role within the channel, and the leader peer node performs a representative role within the organization.

오더링 서비스 노드(220)는 채널(C)(250)에 대한 구성 정보를 소유하고, 이를 기반으로 전체 시스템의 관리자 할역을 수행한다. 오더링 서비스 노드(220)는 트랜잭션을 피어 노드(210)에 전달하고, 네트워크에 참여하고 있는 모드 피어 노드(210)의 분기 및 정렬 할역을 수행한다.The ordering service node 220 owns configuration information for the channel (C) 250 and performs the role of manager of the entire system based on this. The ordering service node 220 delivers the transaction to the peer node 210 and performs branching and sorting duties for the mode peer nodes 210 participating in the network.

채널(250)은 서로 다른 노드들을 묶는 할역을 수행한다. 하나의 채널(250)은 한개의 원장을 가지며, 채널 안의 모든 피어 노드(210)는 동일한 원장의 복사본을 가진다.The channel 250 performs the role of binding different nodes. One channel 250 has one ledger, and all peer nodes 210 within the channel have a copy of the same ledger.

스토리지 장치(300)는 데이터를 저장하며, 저장된 데이터를 무단으로 삭제하거나 변조할 수 없도록 하는 기능을 제공한다. The storage device 300 stores data and provides a function to prevent unauthorized deletion or alteration of the stored data.

또한, 스토리지 장치(300)는 스케일아웃(Scale-out) 분산 방식으로 확장성을 구비한다. 스케일아웃(Scale-out) 방식은 장비를 추가해서 확장하는 방식을 말한다. 즉, 기존 장치만으로 용량이나 성능의 한계가 있으면, 비슷한 사양의 장치를 연결해 추가된 분만큼 용량이 증가할 뿐만 아니라 워크로드를 분담해 성능을 높일 수 있다. 사용자는 분산 파일 시스템이나 글로벌 네임스페이스(global namespace)를 통해 스토리지 클러스터를 하나의 시스템으로써 인식한다. 이와 같은, 스토리지 장치(300)의 확장성에 의해, 블록체인 시스템(200)을 통해 관리하는 데이터가 증가하더라도 이를 동적으로 수용 가능하게 할 수 있다.Additionally, the storage device 300 has scalability through a scale-out distribution method. The scale-out method refers to a method of expansion by adding equipment. In other words, if there is a limit to capacity or performance with the existing device, you can connect a device with similar specifications to not only increase capacity by the additional amount, but also increase performance by sharing the workload. Users recognize the storage cluster as one system through a distributed file system or global namespace. Due to the scalability of the storage device 300, even if the data managed through the blockchain system 200 increases, it can be dynamically accommodated.

도 4 및 도 5는 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 저장 과정에 대한 설명에 제공되는 흐름도이다. 4 and 5 are flowcharts provided to explain the file storage process in the data management method according to an embodiment of the present invention.

도 4를 참조하면, 클라이언트(100)에서 실행되는 탈중앙 애플리케이션(DApp; Decentralized Application)인 클라이언트 애플리케이션은 블록체인 시스템(200)에 연결되어, 파일 저장을 위한 트랜잭션(transaction) 생성하여, 제1 내지 제n 피어 노드(210a ~ 210n) 중 하나 이상의 엔도싱 피어 노드에 트랜잭션 제안 메시지를 전송한다(S400). 트랜잭션 제안 메시지에는 클라이언트 ID, 트랜잭션이 속하거나 발생시키는 체인코드 ID, 트랜잭션을 포함하는 페이로드, 클라이언트 서명 등이 포함된다.Referring to FIG. 4, the client application, which is a decentralized application (DApp) running on the client 100, is connected to the blockchain system 200 and generates a transaction for file storage, A transaction proposal message is transmitted to one or more endorsing peer nodes among the n-th peer nodes (210a to 210n) (S400). The transaction proposal message includes the client ID, the chaincode ID to which the transaction belongs or originates, the payload containing the transaction, and the client signature.

트랜잭션 제안 메시지를 수신한 엔도싱 피어 노드는, 클라이언트 서명이 유효한지 검사하고, 제출자가 해당 채널에서 제안된 작업을 수행할 수 있도록 권한을 받았는지 여부에 대한 클라이언트 권한 등을 검사한 후, 트랜잭션을 시뮬레이션하여, 트랜잭션의 유효성을 검사한 후, 그 결과를 제안 응답 메시지로 클라이언트 애플리케이션에 전송한다(S405). The endorsing peer node that receives the transaction proposal message checks whether the client signature is valid, checks the client's authority to determine whether the submitter is authorized to perform the proposed action on the channel, and then executes the transaction. After simulating and checking the validity of the transaction, the result is sent to the client application as a proposal response message (S405).

클라이언트 애플리케이션은 수신한 제안 응답 메시지를 확인하여 미리 설정된 보증 정책을 만족하는지 여부를 검사하여(S410), 보증 정책을 만족하는 경우, 오더링 서비스 노드(220)에 생성한 트랜잭션을 전송한다(S415, S420). 보증 정책은 트랜잭션을 보증하는 조건을 의미한다. 만일, S415 단계의 판단 결과, 보증 정책을 만족하지 못하는 경우에는 생성한 트랜잭션을 포기 처리한다(S425). 트랜잭션의 포기 처리시에는, 나중에 재시도할 수 있는 옵션을 사용할 수도 있다.The client application checks the received proposal response message to check whether it satisfies the preset guarantee policy (S410), and if it satisfies the guarantee policy, transmits the generated transaction to the ordering service node 220 (S415, S420) ). Guarantee policy refers to the conditions that guarantee a transaction. If, as a result of the judgment in step S415, the guarantee policy is not satisfied, the created transaction is abandoned (S425). When a transaction is abandoned, an option to retry later can be used.

오더링 서비스 노드(220)는 클라이언트 애플리케이션으로부터 전송받은 트랜잭션을 순서대로 취합하여, 일정 시간이나 일정 개수의 트랜잭션 등과 같이 미리 설정된 블록 생성 조건을 만족하는지 여부를 검사하여(S430), 블록 생성 조건을 만족하는 경우(S425), 도 5에 도시한 과정이 수행된다. 만일, S435 단계에서 설정된 블록 설정 조건을 만족하는 못하는 경우에는, 클라이언트 애플리케이션으로 트랜잭션 처리 실패를 통보한다(S440).The ordering service node 220 collects transactions received from the client application in order, checks whether they satisfy preset block creation conditions, such as a certain time or a certain number of transactions (S430), and determines whether the block generation conditions are satisfied. In case (S425), the process shown in FIG. 5 is performed. If the block setting conditions set in step S435 are not satisfied, the transaction processing failure is notified to the client application (S440).

도 5를 참조하면, 블록생성 조건의 만족이 확인되면, 오더링 서비스 노드(220)는 전송받은 트랜잭션을 포함하는 블록을 생성하여, 같은 채널에 속한 모든 커미팅 피어 노드 및 엔도싱 피어 노드에 블록을 전송한다(S445).Referring to FIG. 5, when the block creation conditions are confirmed to be satisfied, the ordering service node 220 creates a block containing the received transaction and sends the block to all committing peer nodes and endorsing peer nodes belonging to the same channel. Transmit (S445).

커미팅 피어 노드는 전송받은 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 블록에 포함된 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효(valid)로 기록하고, 유효성 검증이 실패하면 해당 트랜잭션은 유효하지 않은 것(invalid)으로 기록한다(S450). 트랜잭션 유효성 검사는, 체인코드 실행 중에 읽은 데이터가 실행 또는 승인 이후 변경되지 않은 경우 유효로 표시하며, 원장 스테이트 데이터베이스에 적용될 수 있다. 그러나, 체인코드 실행 중에 읽은 데이터가 다른 트랜잭션에 의해 변경된 경우, 해당 트랜잭션은 유효하지 않은 것으로 표시되며, 원장 스테이트 데이터베이스에 적용되지 않는다. The committing peer node checks whether the transactions included in the received block satisfy the guarantee policy, then checks the validity of each transaction included in the block, records the validated transactions as valid, and validates them. If it fails, the transaction is recorded as invalid (S450). Transaction validation marks data read during chaincode execution as valid if it has not changed since execution or approval, and can be applied to the ledger state database. However, if the data read during chaincode execution is changed by another transaction, that transaction is marked as invalid and is not applied to the ledger state database.

파일 저장을 위해 생성한 트랜잭션의 유효성이 검증된 경우(S455), 호출된 스마트 컨트랙트(smart contract)의 실행에 의해(S460), 저장 대상 파일을 스토리지 장치(300)에 저장하고, 저장된 파일에 대한 메타데이터(metadata)를 추출한다(S465). 그리고, 추출한 메타데이터는 원장에 저장한다(S470). 만일, S455 단계에서 트랜잭션 유효성이 검증되지 않은 경우에는, 클라이언트 애플리케이션으로 트랜잭션 처리 실패를 통보한다(S440).When the validity of the transaction created to save the file is verified (S455), the storage target file is stored in the storage device 300 by execution of the called smart contract (S460), and the stored file is stored in the storage device 300. Extract metadata (S465). Then, the extracted metadata is stored in the ledger (S470). If the transaction validity is not verified in step S455, the transaction processing failure is notified to the client application (S440).

원장이 갱신되면, 클라이언트 애플리케이션으로 트랜잭션 처리 성공을 통보하고(S475), 파일 저장을 위한 트랜잭션 처리 과정은 종료한다.When the ledger is updated, the client application is notified of successful transaction processing (S475), and the transaction processing process for file storage ends.

이와 같은 과정에 의해, 파일은 데이터 변경이 불가한 스토리지 장치(300)에 저장하고, 저장된 파일에 대한 메타데이터는 블록체인 시스템(200)의 원장에 기록함으로써 메타데이터의 위변조도 방지하여, 저장된 파일에 대해 이중으로 보호가 가능하다. 또한, 전체 파일을 원장에 저장하는 대신 크기가 작은 메타데이터만을 원장에 저장함으로써, 블록체인 분산 원장에 저장할 용량을 감소시켜 블록체인 트랜잭션의 처리 속도를 향상시킬 수 있다. Through this process, files are stored in the storage device 300 where data cannot be changed, and metadata for the stored files are recorded in the ledger of the blockchain system 200 to prevent forgery and alteration of the metadata, thereby preventing the stored files from being altered. Double protection is possible. Additionally, by storing only small-sized metadata in the ledger instead of storing the entire file in the ledger, the processing speed of blockchain transactions can be improved by reducing the storage capacity in the blockchain distributed ledger.

또한, 일반적으로 블록체인 원장은 각 피어 노드에 저장되지만, 원장을 데이터 변경이 불가한 스토리지 장치(300)도 저장하도록 구성할 수 있으며, 이 경우 원장에 저장된 데이터의 무결성을 보장하고 무단 삭제를 방지할 수 있다. In addition, the blockchain ledger is generally stored in each peer node, but the ledger can also be configured to store a storage device 300 in which data cannot be changed, in which case the integrity of the data stored in the ledger is guaranteed and unauthorized deletion is prevented. can do.

도 6 및 도 7은 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 인출 과정에 대한 설명에 제공되는 흐름도이다. Figures 6 and 7 are flowcharts provided to explain the file retrieval process in the data management method according to an embodiment of the present invention.

도 6을 참조하면, 클라이언트(100)에서 실행되는 탈중앙 애플리케이션(DApp; Decentralized Application)인 클라이언트 애플리케이션은 블록체인 시스템(200)에 연결되어, 파일 인출을 위한 트랜잭션을 생성하여, 제1 내지 제n 피어 노드(210a ~ 210n) 중 하나 이상의 엔도싱 피어 노드에 트랜잭션 제안 메시지를 전송한다(S500). Referring to FIG. 6, the client application, which is a decentralized application (DApp; Decentralized Application) running on the client 100, is connected to the blockchain system 200 and generates a transaction for file withdrawal, A transaction proposal message is transmitted to one or more endorsing peer nodes among the peer nodes 210a to 210n (S500).

트랜잭션 제안 메시지를 수신한 엔도싱 피어 노드는, 클라이언트 서명이 유효한지 검사하고, 제출자가 해당 채널에서 제안된 작업을 수행할 수 있도록 권한을 받았는지 여부에 대한 클라이언트 권한 등을 검사한 후, 트랜잭션을 시뮬레이션하여, 트랜잭션의 유효성을 검사한 후, 제안 응답 메시지를 클라이언트 애플리케이션에 전송한다(S505). The endorsing peer node that receives the transaction proposal message checks whether the client signature is valid, checks the client's authority to determine whether the submitter is authorized to perform the proposed action on the channel, and then executes the transaction. After simulating and checking the validity of the transaction, a proposal response message is transmitted to the client application (S505).

클라이언트 애플리케이션은 엔도싱 피어 노드로부터 수신한 제안 응답 메시지를 확인하여 미리 설정된 보증 정책을 만족하는지 여부를 검사하여(S510), 보증 정책을 만족하는 경우, 오더링 서비스 노드(220)에 생성한 트랜잭션을 전송한다(S520). 만일, 보증 정책을 만족하지 못하는 경우에는 생성한 트랜잭션을 포기 처리한다(S525). The client application checks the proposal response message received from the endoring peer node to check whether it satisfies the preset guarantee policy (S510), and if it satisfies the guarantee policy, transmits the generated transaction to the ordering service node 220. Do it (S520). If the guarantee policy is not satisfied, the created transaction is abandoned (S525).

오더링 서비스 노드(220)는 클라이언트 애플리케이션으로부터 전송받은 트랜잭션을 순서대로 취합하여, 일정 시간이나 일정 개수의 트랜잭션 등과 같이 미리 설정된 블록 생성 조건을 만족하는지 여부를 검사하여(S530), 블록 생성 조건을 만족하는 경우(S535), 도 7에 도시한 과정이 수행된다. 만일, S535 단계에서 설정된 블록 설정 조건을 만족하는 못하는 경우에는, 클라이언트 애플리케이션으로 트랜잭션 처리 실패를 통보한다(S540).The ordering service node 220 collects transactions received from the client application in order, checks whether they satisfy preset block creation conditions, such as a certain time or a certain number of transactions (S530), and determines whether the block generation conditions are satisfied. In case (S535), the process shown in FIG. 7 is performed. If the block setting conditions set in step S535 are not satisfied, the transaction processing failure is notified to the client application (S540).

도 7을 참조하면, 블록생성 조건의 만족이 확인되면, 오더링 서비스 노드(220)는 전송받은 트랜잭션을 포함하는 블록을 생성하여, 같은 채널에 속한 모든 커미팅 피어 노드 및 엔도싱 피어 노드에 블록을 전송한다(S545).Referring to FIG. 7, when the block creation conditions are confirmed to be satisfied, the ordering service node 220 creates a block containing the received transaction and sends the block to all committing peer nodes and endorsing peer nodes belonging to the same channel. Transmit (S545).

커미팅 피어 노드는 전송받은 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 블록에 포함된 각 트랜잭션마다 유효성을 검사하여, 유효성인 검증된 트랜잭션은 유효(valid)로 기록하고, 유효성 검증이 실패하면 해당 트랜잭션은 유효하지 않은 것(invalid)으로 표시한다(S550). The committing peer node checks whether the transactions included in the transmitted block satisfy the guarantee policy, then checks the validity of each transaction included in the block, records the verified transactions as valid, and confirms the validity. If it fails, the transaction is marked as invalid (S550).

파일 인출을 위해 생성한 트랜잭션의 유효성이 검증된 경우(S555), 호출된 스마트 컨트랙트의 실행에 의해(S560), 원장에 저장된 메타데이터를 참조하여 인출을 요청한 파일의 저장 위치를 검색하여(S565), 스토리지 장치(300)의 검색된 위치에서 파일을 인출한다(S570). When the validity of the transaction created to withdraw a file is verified (S555), the storage location of the file requested to be withdrawn is searched by referring to the metadata stored in the ledger (S560) by executing the called smart contract (S565) , the file is retrieved from the searched location of the storage device 300 (S570).

파일이 인출되면, 클라이언트 애플리케이션으로 트랜잭션 처리 성공을 통보하고(S575), 인출한 파일을 클라이언트 애플리케이션으로 송부할 수 있다,When the file is retrieved, the successful transaction processing is notified to the client application (S575), and the retrieved file can be sent to the client application.

이와 같은 과정에 의해, 데이터 변경이 불가한 스토리지 장치(300)에 저장된 파일을 블록체인 시스템(200)을 통해 인출할 수 있다. 또한, 데이터 변경이 불가한 스토리지 장치(300)에 저장된 파일과 원장에 저장된 메타데이터는, 검색이나 조회 요청 등이 있는 경우, 검색이나 조회 조건에 부합하는 파일과 메타데이터가 검색되어 출력할 수도 있다.Through this process, files stored in the storage device 300, where data cannot be changed, can be retrieved through the blockchain system 200. In addition, when there is a search or inquiry request for files stored in the storage device 300, where data cannot be changed, and metadata stored in the ledger, files and metadata that meet the search or inquiry conditions may be searched and output. .

도 8은 본 발명의 일실시예에 따른 데이터 관리 방법에서 피어 노드의 장애 복구 과정에 대한 설명에 제공되는 흐름도이다. Figure 8 is a flowchart provided to explain the failure recovery process of a peer node in the data management method according to an embodiment of the present invention.

도 8을 참조하면, 불록체인 시스템을 구성하는 피어 노드 중에서 장애가 감지되면(S600), 장애가 감지된 장애 피어 노드가 등록된 모든 채널에서 장애 피어 노드를 제외시킨다(S605). Referring to Figure 8, when a failure is detected among the peer nodes constituting the blockchain system (S600), the failed peer node is excluded from all channels in which the failed peer node is registered (S605).

다음으로, 장애 피어 노드의 원장을 삭거한 후(S610), 장애 피어 노드의 컨테이너(container)를 중지하고 소속 그룹 멤버에서 제외한다(S615). 하이퍼레저 패브릭은 컨테이너 기술을 활용하여 시스템 로직 구성을 위한 체인코드 서비스를 제공한다.Next, after deleting the ledger of the failed peer node (S610), the container of the failed peer node is stopped and excluded from the group membership (S615). Hyperledger Fabric utilizes container technology to provide chaincode services for configuring system logic.

장애 피어 노드를 대체하는 대체 피어 노드가 신규 노드일 경우, 대체 피어 노드의 MSP(Membership Service Provider)를 생성한다(S620, S625). MSP를 통해 노드의 할역을 부여할 수 있다.If the replacement peer node replacing the failed peer node is a new node, an MSP (Membership Service Provider) of the replacement peer node is created (S620, S625). Node roles can be assigned through MSP.

그 다음 대체 피어 노드의 컨테이너(container) 생성후 소속 그룹에 할당되며(S630), 대체 피어 노드에 원장을 생성하고, 대체 피어 노드를 원장을 공유할 채널에 등록하여 원장 내용을 복사할 수 있도록 한다(S635).Next, a container for the replacement peer node is created and assigned to the group (S630), a ledger is created in the replacement peer node, and the replacement peer node is registered in the channel to share the ledger so that the contents of the ledger can be copied. (S635).

다음으로 대체 피어 노드에 체인코드를 설치하고(S640), 필요에 따라 instancite 명령어를 실행한다. 체인코드가 어떤 피어 노드에 설치되었다고 바로 사용할 수 있는 것은 아니며, 체인코드를 사용하려면 해당 체인코드의 인터페이스를 다른 피어 노드에게 알리는 인스턴트화(instantiated)가 필요한데, 인스턴트화는 instantiate 명령어를 이용하여 이루어질 수 있다. Next, install the chaincode on the alternate peer node (S640) and run the instancite command as needed. Just because a chaincode is installed on a certain peer node does not mean it can be used immediately. To use a chaincode, it needs to be instantiated by informing other peer nodes of the chaincode's interface. Instantization can be done using the instantiate command. there is.

다음으로 대체 피어 노드에 같은 채널의 다른 피어 노드의 원장 내용을 복사 한다(S645). 이 경우, 원장이 관리하는 대용량 데이터나, 혹은 원장과 원장이 관리하는 대용량 데이터를 모두 스토리지 장치(300)에 저장하도록 구성하여, 원장 내용의 복사를 신속하게 할 수 있다. 또한, 원장 내용의 직접 적인 복사 없이, 해당 원장에 대한 엑세스 권한만을 변경시켜 대체 노드가 관리하도록 구성할 수도 있다.Next, the ledger contents of other peer nodes of the same channel are copied to the replacement peer node (S645). In this case, the large-capacity data managed by the ledger, or both the ledger and the large-capacity data managed by the ledger, are configured to be stored in the storage device 300, so that the ledger contents can be quickly copied. In addition, it can be configured to be managed by an alternative node by only changing the access rights to the ledger without directly copying the ledger contents.

이와 같은 과정에 의해 블록체인 시스템을 구성하는 피어 노드에 대한 장애가 발생한 경우 다른 노드로 대체하여 복구가 이루어진다.Through this process, if a failure occurs in a peer node that makes up the blockchain system, recovery is achieved by replacing it with another node.

한편, 스토리지 장치(300)는 데이터 변경이 불가능하도록 WORM(Write Once Read Many) 기능이 부가된 저장 장치로, 하드디스크나 SSD(Solid State Disk) 등으로 구성할 수 있다. Meanwhile, the storage device 300 is a storage device with a WORM (Write Once Read Many) function added so that data cannot be changed, and can be configured as a hard disk or solid state disk (SSD).

CD-R, DVD-R 등과 같은 WORM 저장 장치는 레이저를 통해 물리적으로 미디어의 표면에 패턴을 형성함으로써 데이터를 기록하므로, 데이터가 기록되는 순간부터 물리적으로 변조가 불가능한 상태가 된다. 그러나, 대용량, 고성능, 검색 활용성을 지원하기 위해 구현되는 하드디스크 및 SSD를 기반으로 하는 WORM 스토리지는 물리적인 속성으로 데이터를 보호하는 장치가 없기 때문에 데이터를 보호하는 기능을 소프트웨어적인 방법을 통해 구현하게 된다. 이때, 소프트웨어는 저장장치에 파일시스템 서비스를 제공하는 운영체제 안에 고정된 코드로 구현이 되거나 펌웨어로 구현되어 외부에서 이를 변경할 방법을 원천적으로 차단하여, 어떤 권한으로도 데이터를 변조하거나 삭제하는 것을 방지할 수 있다. WORM storage devices such as CD-R, DVD-R, etc. record data by physically forming patterns on the surface of the media using a laser, so data cannot be physically tampered with from the moment it is recorded. However, WORM storage based on hard disks and SSDs, which are implemented to support large capacity, high performance, and search usability, do not have a device to protect data with physical properties, so the data protection function is implemented through software methods. I do it. At this time, the software is implemented as fixed code or firmware within the operating system that provides file system services to the storage device, fundamentally blocking any way to change it from outside, preventing data from being altered or deleted by any authority. You can.

한편, 본 발명에 따른 데이터 관리 방법은 상기한 바와 같이 설명된 실시예들의 구성에 한정되게 적용될 수 있는 것이 아니라, 상기한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.Meanwhile, the data management method according to the present invention cannot be applied limited to the configuration of the embodiments described above, but all or part of each embodiment can be selectively selected so that various modifications can be made. It may also be composed in combination.

또한, 본 발명은 프로그램 가능한 컴퓨터상에서 컴퓨터 프로그램으로 구현 가능하다. 이러한 컴퓨터는 프로세서, 저장장치, 입력장치, 출력 장치를 포함할 수 있다. 본 발명에서 설명한 내용을 구현하기 위해 프로그램 코드는 마우스 또는 키보드 입력장치로 입력될 수 있다. 이러한 프로그램들은 고차원적인 언어나, 객체지향적인 언어로 구현될 수 있다. 또한 어셈블리나 기계어 코드로 구현된 컴퓨터 시스템으로도 구현될 수 있다. Additionally, the present invention can be implemented as a computer program on a programmable computer. These computers may include processors, storage devices, input devices, and output devices. To implement the content described in the present invention, program code can be input with a mouse or keyboard input device. These programs can be implemented in a high-level language or an object-oriented language. It can also be implemented as a computer system implemented in assembly or machine code.

또한, 본 발명의 내용은 하드웨어나 소프트웨어 사용에만 국한되지는 않으며, 다른 어떤 컴퓨팅 또는 처리 환경에 대해서도 적용 가능하다. 본 발명에서 설명하는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명은 회로를 사용하여 구현될 수 있다. 즉, 한 개 이상의 프로그램 가능한 논리회로, 즉 ASIC(application specific integrated circuit) 또는 논리회로(AND, OR NAND gates) 또는 프로세싱 장치(예컨대, 마이크로 프로세서, 콘트롤러)로 구현가능하다. Additionally, the subject matter of the present invention is not limited to the use of hardware or software, and is applicable to any other computing or processing environment. It can be implemented with hardware, software, or a combination of hardware and software described in the present invention. The invention may be implemented using circuitry. That is, it can be implemented with one or more programmable logic circuits, that is, application specific integrated circuits (ASICs) or logic circuits (AND, OR NAND gates), or processing devices (eg, microprocessors, controllers).

본 발명은 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것도 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 광 데이터 저장장치 등이 있다. 또한 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be implemented as processor-readable code on a processor-readable recording medium. Processor-readable recording media includes all types of recording devices that store data that can be read by a processor. Examples of recording media that can be read by a processor include ROM, RAM, CD-ROM, and optical data storage devices. In addition, the processor-readable recording medium is distributed in a computer system connected to a network, so that the processor-readable code can be stored and executed in a distributed manner.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the invention pertains without departing from the gist of the present invention as claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be understood individually from the technical idea or perspective of the present invention.

100 : 클라이언트 200 : 블록체인 시스템
300 : 스토리지 장치
100: Client 200: Blockchain system
300: storage device

Claims (10)

클라이언트가 블록체인 트랜잭션을 송수신할 수 있도록 미리 설정된 블록체인 시스템과 연결되는 단계;
상기 클라이언트가 제1 파일의 저장을 위한 제1 트랜잭션을 생성하는 단계;
상기 제1 트랜잭션이 보증 정책을 만족하는 경우, 기설정된 시간 동안 다른 트랜잭션의 취합 및 기설정된 개수의 다른 트랜잭션의 취합 중 적어도 하나의 블록 생성 조건이 충족된 경우, 상기 제1 트랜잭션을 포함하는 블록을 생성하는 단계;
상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계;
상기 제1 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 제1 파일을 데이터 변경 불가 가능을 제공하며, 스케일아웃(Scale-out) 방식에 의해 동적으로 확장가능한 분산 스토리지인 스토리지 장치에 저장하는 단계; 및
상기 제1 파일에 대한 메타데이터를 추출하고, 상기 추출한 메타데이터를 상기 블록체인 시스템의 원장에 저장하는 단계를 포함하는 데이터 관리 방법.
A step of connecting with a preset blockchain system so that the client can send and receive blockchain transactions;
the client generating a first transaction for storing a first file;
If the first transaction satisfies the guarantee policy, and if at least one block creation condition is met among the collection of other transactions during a preset time and the collection of a preset number of other transactions, a block containing the first transaction is created. generating step;
Propagating the generated block to each peer node constituting the blockchain system and checking its validity;
If the first transaction is valid, the first file is stored in a storage device that provides data immutability and is dynamically expandable distributed storage by a scale-out method by the called smart contract. step; and
A data management method comprising extracting metadata for the first file and storing the extracted metadata in a ledger of the blockchain system.
삭제delete 제1항에 있어서,
상기 원장은 상기 스토리지 장치에 저장되는 것을 특징으로 하는 데이터 관리 방법.
According to paragraph 1,
A data management method, characterized in that the ledger is stored in the storage device.
제1항에 있어서,
상기 블록체인 시스템을 구성하는 피어 노드 중에서 어느 한 노드에 장애가 감지되면, 장애가 감지된 장애 피어 노드를 다른 노드로 대체하고, 상기 다른 노드가 상기 장애 피어 노드의 원장을 이관받아 동기화하는 단계를 더 포함하는 데이터 관리 방법.
According to paragraph 1,
When a failure is detected in any one of the peer nodes constituting the blockchain system, the step of replacing the failed peer node for which the failure was detected with another node, and the other node transferring the ledger of the failed peer node and synchronizing it How to manage data.
제1항에 있어서,
상기 블록체인 시스템은, 하이퍼레저 패블릭 블록체인 시스템인 것을 특징으로 하는 데이터 관리 방법.
According to paragraph 1,
A data management method wherein the blockchain system is a Hyperledger Fabric blockchain system.
제1항에 있어서,
상기 제1 파일의 저장을 위한 트랜잭션은, 탈중앙화된 클라이언트 애플리케이션에서 생성하는 것을 특징으로 하는 데이터 관리 방법.
According to paragraph 1,
A data management method, characterized in that the transaction for storing the first file is created in a decentralized client application.
제6항에 있어서,
상기 제1 트랜잭션이 상기 보증 정책을 만족하는지 여부는,
상기 클라이언트 애플리케이션에서 상기 제1 트랜잭션에 대한 트랜잭션 제안 메시지를 엔도싱 피어 노드에 전달하고,
상기 엔도싱 피어 노드에서 상기 트랜잭션을 시뮬레이션하여, 그 결과를 제안 응답 메시지로 상기 클라이언트 애플리케이션으로 전송하면,
상기 제안 응답 메시지에 기초하여, 상기 보증 정책 만족 여부를 검사하는 것을 특징으로 하는 데이터 관리 방법.
According to clause 6,
Whether the first transaction satisfies the guarantee policy,
The client application transmits a transaction proposal message for the first transaction to the endorsing peer node,
When the endowing peer node simulates the transaction and transmits the result as a proposal response message to the client application,
A data management method characterized by checking whether the guarantee policy is satisfied based on the proposal response message.
제7항에 있어서,
유효성을 검사하는 단계는,
커미팅 피어 노드가 오더링 서비스 노드로부터 상기 블록을 전송받는 단계; 및
상기 커미팅 피어 노드에서 상기 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효로 기록하고, 유효성이 검증되지 않은 트랜잭션은 유효하지 않은 것으로 기록하는 단계를 포함하는 데이터 관리 방법.
In clause 7,
The validation steps are:
A committing peer node receiving the block from an ordering service node; and
After the committing peer node checks whether the transactions included in the block satisfy the guarantee policy, the validity of each transaction is checked, and the validated transaction is recorded as valid, and the unvalidated transaction is invalid. A data management method that includes recording steps.
제1항에 있어서,
상기 클라이언트가 상기 제1 파일의 인출을 위한 제2 트랜잭션 생성하는 단계;
상기 제2 트랜잭션이 보증 정책을 만족하고, 상기 블록 생성 조건이 충족된 경우, 상기 제2 트랜잭션을 포함하는 블록을 생성하는 단계;
상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계; 및
상기 제2 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 원장에 저장된 메타데이터를 참조하여 상기 제1 파일의 저장 위치를 검색하고, 상기 스토리지 장치의 상기 검색된 저장 위치에서 상기 제1 파일을 인출하는 단계를 더 포함하는 데이터 관리 방법.
According to paragraph 1,
generating, by the client, a second transaction to withdraw the first file;
If the second transaction satisfies an endorsement policy and the block creation condition is met, generating a block including the second transaction;
Propagating the generated block to each peer node constituting the blockchain system and checking its validity; and
If the second transaction is valid, the storage location of the first file is searched by referring to the metadata stored in the ledger by the called smart contract, and the first file is retrieved from the searched storage location of the storage device. A data management method further comprising the steps of:
제1항 및 제3항 내지 제9항 중 어느 한 항의 데이터 관리 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 프로세서가 읽을 수 있는 기록매체.

A processor-readable recording medium recording a program for executing the data management method of any one of claims 1 and 3 to 9 on a processor.

KR1020210126102A 2021-09-24 2021-09-24 Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain KR102598227B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210126102A KR102598227B1 (en) 2021-09-24 2021-09-24 Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210126102A KR102598227B1 (en) 2021-09-24 2021-09-24 Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain

Publications (2)

Publication Number Publication Date
KR20230043339A KR20230043339A (en) 2023-03-31
KR102598227B1 true KR102598227B1 (en) 2023-11-06

Family

ID=86005570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210126102A KR102598227B1 (en) 2021-09-24 2021-09-24 Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain

Country Status (1)

Country Link
KR (1) KR102598227B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954421B1 (en) * 2016-10-11 2019-03-06 임장식 Method for preventing real-time alteration of the data in WORM storage device based on hard disk or SSD
US20200021602A1 (en) 2018-07-11 2020-01-16 International Business Machines Corporation Trace-based transaction validation and commitment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102628057B1 (en) * 2019-10-29 2024-01-22 삼성에스디에스 주식회사 Blockchain based file management system and method thereof
KR20210027332A (en) * 2021-03-02 2021-03-10 부산대학교 산학협력단 Blockchain system for providing anonymity of privacy information and method for providing anonymity of privacy information in a blockchain

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101954421B1 (en) * 2016-10-11 2019-03-06 임장식 Method for preventing real-time alteration of the data in WORM storage device based on hard disk or SSD
US20200021602A1 (en) 2018-07-11 2020-01-16 International Business Machines Corporation Trace-based transaction validation and commitment

Also Published As

Publication number Publication date
KR20230043339A (en) 2023-03-31

Similar Documents

Publication Publication Date Title
US11500897B2 (en) Allocation and reassignment of unique identifiers for synchronization of content items
CN107391758B (en) Database switching method, device and equipment
US20110072059A1 (en) Method and System for Synchronizing a Virtual File System at a Computing Device with a Storage Device
US7155464B2 (en) Recovering and checking large file systems in an object-based data storage system
CN105393243A (en) Transaction ordering
CN102323930B (en) Mirroring data changes in a database system
US20190236062A1 (en) System and method for using policy to achieve data segmentation
CN115114305B (en) Lock management method, device, equipment and storage medium for distributed database
CN113901005A (en) Portable file storage method, system and medium based on block chain
US11822806B2 (en) Using a secondary storage system to implement a hierarchical storage management plan
Wang et al. Data Security Storage Model of the Internet of Things Based on Blockchain.
KR102598227B1 (en) Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain
CN110598467A (en) Memory data block integrity checking method
CN113094754B (en) Big data platform data modification system and modification, response, cache and verification method
CN113407626A (en) Planning control method based on block chain, storage medium and terminal equipment
Batista et al. ArchContract: using smart contracts for disposition
KR102412979B1 (en) Data managent method for preventing alteration of the data in real-time video data storage system
US20210382868A1 (en) Data management system
JP6895149B1 (en) Data management system
Hammoud et al. An Architecture for Distributed Electronic Documents Storage in Decentralized Blockchain B2B Applications. Computers 2021, 10, 142
CA3169976A1 (en) System, method, and device for uploading data from premises to remote computing environments
Dada et al. A COMPARATIVE STUDY OF THE ARCHITECTURES AND APPLICATIONS OF SCALABLE HIGH-PERFORMANCE DISTRIBUTED FILE SYSTEMS
Mohammed Muddasir et al. Load Balancing Using Distributed Cluster

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant