KR20230043339A - 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 PDFInfo
- Publication number
- KR20230043339A KR20230043339A KR1020210126102A KR20210126102A KR20230043339A KR 20230043339 A KR20230043339 A KR 20230043339A KR 1020210126102 A KR1020210126102 A KR 1020210126102A KR 20210126102 A KR20210126102 A KR 20210126102A KR 20230043339 A KR20230043339 A KR 20230043339A
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- file
- management method
- data management
- blockchain
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000013523 data management Methods 0.000 title claims abstract description 24
- 230000001902 propagating effect Effects 0.000 claims abstract description 5
- 239000004744 fabric Substances 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 14
- 238000012545 processing Methods 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
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
Description
본 발명은 데이터 변경 불가 기능을 제공하는 분산 스토리지 기술과 블록체인 기술을 이용하여 영상 콘텐츠와 같은 대용량 데이터의 무결성을 보장할 수 있는 데이터 관리 방법에 관한 것이다. The present invention relates to a data management method capable of guaranteeing the integrity of large-capacity data such as video content by using a distributed storage technology that provides a data immutability function and a blockchain technology.
블록체인은 블록에 데이터를 담아 체인 형태로 연결한 구조를 가지고 있고, 블록체인 네트워크를 형성하는 다수의 노드가 각각 동시에 분산 원장에 데이터를 복제하여 저장하고 있는 분산형 데이터 저장 기술로서, 거래 때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조해 데이터 위변조를 방지할 수 있다.Blockchain is a distributed data storage technology that has a structure that contains data in blocks and connects them in the form of a chain, and multiple nodes forming a blockchain network simultaneously replicate and store data in a distributed ledger. All transaction participants can share information and compare it to prevent data forgery.
이와 같이 블록체인 기술은 본질적으로 데이터 무결성 보장 기능을 제공할 수 있으며, 중앙화된 데이터 저장의 보안성 한계도 극복할 수 있다. As such, blockchain technology can inherently provide data integrity assurance functions and overcome the security limitations of centralized data storage.
그러나, 영상 콘텐츠와 같은 대용량 데이터의 무결성 보장을 블록체인 기술로 처리할 경우, 각 노드가 필요한 저장 용량이 방대해지고, 트랜잭션 처리 시간도 상대적으로 많이 필요하게 되며, 노드 장애 발생시 교체된 노드의 원장을 복구하는 과정에서 대용량 데이터를 네트워크를 통해 다른 노드로부터 복구해 오는 과정도 용이하지 않다. However, when guaranteeing the integrity of large-capacity data such as video content is handled by blockchain technology, the storage capacity required for each node becomes enormous, the transaction processing time is relatively long, and the ledger of the replaced node in the event of a node failure In the process of recovery, it is not easy to recover large amounts of data from other nodes through the network.
따라, 대용량 데이터의 무결성 관리가 필요한 분야에서, 분산 스토리지 기술과 블록체인 기술을 동시에 활용하여, 처리 속도도 높으면서 완벽한 데이터 보전성도 제공할 수 있는 방안을 고려해 볼 필요가 있다. Therefore, in areas where integrity management of large amounts of data is required, it is necessary to consider a method that can simultaneously utilize distributed storage technology and blockchain technology to provide high processing speed and perfect data integrity.
따라서, 본 발명의 목적은, 블록체인 기술과 분산 스토리지 기술을 활용하여 대용량 데이터의 무결성을 보장하면서 처리 속도로 향상시킬 수 있는 데이터 관리 방법을 제공함에 있다. Accordingly, an object of the present invention is to provide a data management method capable of improving processing speed while guaranteeing the integrity of large amounts of data by utilizing blockchain technology and distributed storage technology.
상기 목적을 달성하기 위한 본 발명에 따른 데이터 관리 방법은, 클라이언트가 블록체인 트랜잭션을 송수신할 수 있도록 미리 설정된 블록체인 시스템과 연결하는 단계, 상기 클라이언트가 제1 파일의 저장을 위한 제1 트랜잭션 생성하는 단계, 상기 제1 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족된 경우, 상기 제1 트랜잭션을 포함하는 블록을 생성하는 단계, 상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계, 상기 제1 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 상기 제1 파일을 데이터 변경 불가 가능을 제공하는 스토리지 장치에 저장하는 단계, 및 상기 제1 파일에 대한 메타데이터를 추출하여, 추출한 메타데이터를 상기 블록체인 시스템의 원장에 저장하는 단계를 포함한다.A data management method according to the present invention for achieving the above object is a step of connecting with a previously set blockchain system so that a client can transmit and receive a blockchain transaction, the client generating a first transaction for storage of a first file Step, if the first transaction satisfies the guarantee policy and a predetermined block generation condition is satisfied, generating a block including the first transaction, each peer constituting the blockchain system propagating to a node to check validity, if the first transaction is valid, storing the first file in a storage device that provides data immutability by a called smart contract, and the first Extracting metadata about a file and storing the extracted metadata in a ledger of the blockchain system.
상기 스토리지 장치는, 스케일아웃(Scale-out) 방식에 의해 동적으로 확장가능한 분산 스토리지인일 수 있으며, 상기 원장은 상기 분산 스토리지에 저장할 수있다. The storage device may be a distributed storage that is dynamically expandable by a scale-out method, and the ledger may be stored in the distributed storage.
또한, 상기 제1 파일의 저장을 위한 트랜잭션은, 상기 클라이언트에서 실행되는 탈중앙화된 클라이언트 애플리케이션에서 생성할 수 있다.Also, a transaction for storing the first file may be generated by a decentralized client application running on the client.
또한, 상기 제1 트랜잭션이 상기 보증 정책을 만족하는지 여부는, 상기 클라이언트 애플리케이션에서 상기 제1 트랜잭션에 대한 트랜잭션 제안 메시지를 엔도싱 피어 노드에 전달하고, 상기 엔도싱 피어 노드에서 상기 트랜잭션을 시뮬레이션하여 제안 응답 메시지를 상기 클라이언트 애플리케이션으로 전송하면, 상기 제안 응답 메시지에 기초하여, 상기 보증 정책 만족 여부를 검사할 수 있다.In addition, whether the first transaction satisfies the guarantee policy is determined by transmitting a transaction proposal message for the first transaction to the endorsing peer node in the client application and simulating the transaction at the endorsing peer node. When a response message is transmitted to the client application, whether the guarantee policy is satisfied may be checked based on the proposal response message.
유효성을 검사하는 단계는, 커미팅 피어 노드가 오더링 서비스 노드로부터 상기 블록을 전송받는 단계, 및 상기 커미팅 피어 노드에서 상기 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효로 표기하고, 유효성이 검증되지 않은 트랜잭션은 유효하지 않은 것으로 표시하는 단계를 포함할 수 있다.The step of checking validity may include receiving the block from an ordering service node by a committing peer node, and verifying whether transactions included in the block satisfy a guarantee policy at the committing peer node, and then checking validity for each transaction. Inspection may include marking a transaction that has been validated as valid, and marking a transaction that has not been validated as invalid.
또한, 상기 클라이언트가 상기 제1 파일의 인출을 위한 제2 트랜잭션 생성하는 단계, 상기 제2 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족되면, 상기 제2 트랜잭션을 포함하는 블록을 생성하는 단계, 상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계, 및 상기 제2 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 원장에 저장된 메타데이터를 참조하여 상기 제1 파일의 저장 위치를 검색하고, 상기 검색된 저장 위치에서 상기 제1 파일을 인출하는 단계를 더 포함할 수 있다.In addition, the client generating a second transaction for fetching the first file, generating a block including the second transaction when the second transaction satisfies a guarantee policy and a predetermined block generation condition is met. Step of propagating the generated block to each peer node constituting the blockchain system to check validity, and if the second transaction is valid, the 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 fetching the first file from the searched storage location.
그리고, 상기 목적을 달성하기 위하여 본 발명에서는, 상기 데이터 관리 방법을 프로세서에서 실행시키기 위한 프로그램을 기록한 프로세서로 읽을 수 있는 기록매체를 제공할 수 있다.And, in order to achieve the above object, the present invention can provide a processor-readable recording medium in which a program for executing the data management method in a processor is recorded.
본 발명에 따르면, 전체 파일을 블록체인 원장에 저장하는 대신 크기가 작은 메타데이터만을 원장에 저장하고, 전체 파일은 데이터 변경 불가 기능을 제공하는 스토리지 장치에 저장함으로써, 이중으로 데이터 위변조를 방지할 수 있을 뿐만 아니라, 블록체인 원장에 저장할 용량을 감소시켜 블록체인 트랜잭션의 처리 속도를 향상시킬 수 있다. 또한, 스토리지 장치는 스케일아웃 방식으로 확장성을 구비하여, 지속적으로 크기가 커질 수 있는 저장 데이터에 대해서도 효과적으로 대응할 수 있다. 또한, 블록체인 시스템을 구성하는 노드에 장애가 발생한 경우에도 신속하게 복구과정을 수행할 수 있다. According to the present invention, instead of storing all files in a blockchain ledger, only small-sized metadata is stored in the ledger, and all files are stored in a storage device that provides a data immutability function, thereby preventing data forgery and falsification. In addition, it can improve the processing speed of blockchain transactions by reducing the storage capacity in the blockchain ledger. In addition, the storage device has scalability in a scale-out method, so that it can effectively respond to stored data that can continuously increase in size. In addition, even when a failure occurs in a node constituting the blockchain system, a recovery process can be quickly performed.
도 1은 일반적인 블록체인 구조를 설명하기 위한 도면,
도 2는 하이퍼레저 패브릭의 블록 구조를 나타낸 도면,
도 3은 본 발명에 따른 데이터 관리 방법이 적용되는 시스템의 일 예를 설명하기 위해 참조되는 도면,
도 4 및 도 5는 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 저장 과정에 대한 설명에 제공되는 흐름도,
도 6 및 도 7은 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 인출 과정에 대한 설명에 제공되는 흐름도, 그리고
도 8은 본 발명의 일실시예에 따른 데이터 관리 방법에서 피어 노드의 장애 복구 과정에 대한 설명에 제공되는 흐름도이다.1 is a diagram for explaining a general blockchain structure;
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 a data management method according to the present invention is applied;
4 and 5 are flowcharts provided to explain a file storage process in a data management method according to an embodiment of the present invention;
6 and 7 are flowcharts provided to explain a file retrieval process in a data management method according to an embodiment of the present invention, and
8 is a flowchart provided to explain a process of recovering from a failure of a peer node in a data management method according to an embodiment of the present invention.
본 명세서에서, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 경우, 어떤 구성요소에 다른 구성요소에 직접적으로 연결되어 있거나 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 또한, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에" 또는 "~에 이웃하는" 등과, 어떤 구성요소가 다른 구성요소로 신호를 "전송한다" 와 같은 표현도 마찬가지로 해석되어야 한다.In this specification, when a component is referred to as "connected" or "connected" to another component, a component may be directly connected or connected to another component, but other components in the middle It should be understood that elements may be present. In addition, other expressions describing the relationship between components, such as "between" or "adjacent to", and expressions such as "transmitting" a signal from one component to another, should be interpreted similarly. do.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.
도 1은 일반적인 블록체인 구조를 설명하기 위한 도면이다.1 is a diagram for explaining a general blockchain structure.
도 1을 참조하면, 블록체인의 블록은 헤더(header)와 바디(body)로 구성된다. 헤더는 단일 블록에 링크드 리스트(linked list)를 만들기 위한 정보를 포함하고, 바디는 블록에 담기는 거래의 내용들을 포함한다. 비트코인의 경우, 헤더는 소프트웨어 버전, 난이도, 이전 블록의 해시값, 블록 생성시간, 머클루트, 및 난스(nonce)라는 정보를 포함할 수 있고, 바디는 적어도 하나의 트랜잭션(transaction)을 포함할 수 있다. Referring to FIG. 1, a block of a blockchain is composed of a header and a body. The header includes information for creating a linked list in a single block, and the body includes the contents of transactions included 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 generation time, merkle root, and nonce, and the body may include at least one transaction. can
블록을 생성하기 위해서는 난스의 값을 찾는 과정이 필요한데, 이전 블록에 대한 해시값이 새로운 블록의 난스값을 계산하는데 사용된다. 이러한 난스의 값을 찾는 과정을 비트코인에서는 채굴이라고 표현하여, 동시에 '합의 알고리즘'이라고도 불린다. 이는 블록체인 네트워크상에 참여자들이 실시간으로 동일한 장부를 보유하게 하는 분산 원장의 기능을 가능하게 하며, 블록을 서로 연결시켜준다.To create a block, a process of finding the nonce value is required, and the hash value of 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 the blockchain network to hold the same ledger in real time, and connects blocks to each other.
블록체인의 안정성은 링크드 리스트를 통한 체인 길이의 확대와 블록체인 네트워크 참여자들이 보유한 동일한 장부를 통해 생겨난다. 체인의 길이가 길어질수록 이전에 존재하는 하나의 블록을 해킹하는 것은 불가능에 가까워지고, 새롭게 생겨난 블록의 거래 데이터를 분산 원장을 통해 모든 노드가 보유하고 있기 때문에 과반수 이상을 수정할 수 있는 연산력을 보유하지 않는 이상 블록체인의 데이터 조작은 불가능하다.The stability of blockchain comes from the expansion of chain length through linked lists and the same ledger held by blockchain network participants. As the length of the chain increases, it becomes almost impossible to hack a previously existing block, 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. It is impossible to manipulate the data of the blockchain unless it is.
블록체인은 그 활용도 측면에서 퍼블릭 블록체인(public blockchain), 프라이빗 블록체인(private blockchain), 컨소시움 블록체인(consortium blockchain) 등의 형태를 이루고 있다. 퍼블릭 블록체인의 경우 누구나 참여가능하고 누구나 정보를 열람할 수 있다. 프라이빗 블록체인은 참여자의 제한과 열람의 범위의 제한 등 목적에 따라 제한된 기능을 적용할 수 있다. 그리고, 컨소시움 블록체인은, 프라이빗 블록체인의 확장으로써 서로 다른 프라이빗 블록체인의 결합으로 각기 다른 블록체인에서 생성한 이질적인 블록을 오더링이라는 프로세스로 연결하여 신뢰성 확보 및 확장성을 제공할 수 있다.Blockchain has forms such as public blockchain, private blockchain, and consortium blockchain in terms of its utilization. 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 limiting participants and limiting the scope of viewing. In addition, the consortium blockchain, as an extension of the private blockchain, 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) 블록 구조를 나타낸 것이다.2 shows a block structure of Hyperledger Fabric.
하이퍼레저 패브릭은 블록체인 솔루션과 응용 프로그램을 개발하기 위한 모듈형 아키텍쳐 플랫폼이다. 하이퍼래저 패브릭은 하이퍼레저(Hyperledger)의 프로젝트의 하나로 개발되었으며, 하이퍼레저는 리눅스 재단의 주도 하에 산업간 블록체인 기술 발전을 위해 조직된 전세계적인 오픈 소스 협업 활동으로, 다양한 기술 운영위원회와 여러 조직의 유지 관리자에 의해 관리된다. Hyperledger Fabric is a modular architecture platform for developing blockchain solutions and applications. Hyperledger Fabric was developed as one of the projects of Hyperledger, which is a worldwide open-source collaborative activity organized under the leadership of the Linux Foundation to advance cross-industry blockchain technology. Managed by maintainers.
도 2를 참조하면, 하이퍼레저 패브릭의 블록 구조는 암호화된 해시 함수를 사용하여 블럭 구조를 저장함으로써 과거의 트랜잭션 정보가 훼손되지 않도록 보호한다. 또한, 하이퍼레저 패블릭의 블록 구조는 비트코인의 경우와 거의 동일하지만, KVS(Key-Value Store) 해시값도 기록되는 점에 특징이 있다.Referring to FIG. 2, the block structure of Hyperledger Fabric uses an encrypted hash function to store the block structure, thereby protecting past transaction information from being damaged. In addition, the block structure of Hyperledger Fabric is almost the same as that of Bitcoin, but it is characterized by the fact 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 512bit (64bytes), and the metadata of the block can be freely entered in each node, and is excluded from hash calculation.
일반적으로 스마트 컨트랙트(smart contract)는 블록체인 플랫폼에서 참여자 사이에 일정 조건이 만족될 때 거래가 자동으로 체결되는 기술을 말하는데, 하이퍼레저 패브릭에서 체인코드(chain code)는 스마트 컨트랙트 정책을 코드로 명세하는 목적의 구성요소이며, 스마트 컨트랙트와 거의 같은 의미로 사용한다. In general, 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 codes specify smart contract policies as codes. It is a component of the purpose, and is used in almost the same sense as a smart contract.
본 발명에서 데이터 무결성의 보장은 기본적으로 하이퍼레저 패브릭을 기반으로 하는 블록체인 시스템이 활용된다. In the present invention, the guarantee of data integrity basically utilizes a blockchain system based on Hyperledger Fabric.
도 3은 본 발명에 따른 데이터 관리 방법이 적용되는 시스템의 일 예를 설명하기 위해 참조되는 도면이다. 3 is a diagram referenced to explain an example of a system to which a data management method according to the present invention is applied.
도 3을 참조하면, 본 시스템은, 클라이언트(100), 블록체인 시스템(200) 및 스토리지 장치(300)를 포함할 수 있다.Referring to FIG. 3 , the system may include a
클라이언트(100)는 블록체인 시스템(200)에 연결되어, 클라이언트 트랜잭션을 작성하고, 이를 통하여 트랜잭션을 호출할 수 있다. 클라이언트(100)는 제1 내지 제n 피어 노드(210a ~ 210n) 중에서 원하는 피어 노드에 연결할 수 있다.The
블록체인 시스템(200)은 기본적으로 하이퍼레저 패브릭을 기반으로 하는 시스템이지만, 반드시 이에 국한되지 않는다.The
블록체인 시스템(200)에서, 제1 내지 제n 피어 노드(210a ~ 210n)은 블록체인 시스템(200)을 유지하며, 트랜잭션을 처리하고, 원장(ledger)과 체인코드(chain code)를 관리하고 저장한다.In the
하이퍼레저 패브릭의 경우, 원장은 불변의 순서화된 레코드를 블록으로 저장하는 블록 체인과 현재 스테이트(state)를 유지하는 스테이트 데이터베이스 등으로 구성되며, 월드 스테이트(world state)라는 저장소에 원장을 저장한다. In the case of Hyperledger Fabric, the ledger consists of a block chain that stores immutable ordered records in blocks and a state database that maintains the current state, and stores the ledger in a storage called world state.
제1 내지 제n 피어 노드(210a ~ 210n) 중에서 엔도싱 피어 노드(endorsing peer node)는 보증 정책에 따라 요청된 트랜잭션을 먼저 수행해 검토를 하고 보증 사인을 첨부한다. 즉, 엔도싱 피어 노드는 트랜잭션을 검증하는 할역을 수행하며, 스마트 컨트랙트에 의해 수행될 트랜잭션을 시뮬레이션해보고 그 결과를 클라이언트 애플리케이션에 리턴해주는 피어 노드이다. Among the first to nth peer nodes 210a to 210n, an endorsing peer node first performs a transaction requested according to an endorsement policy, reviews it, and attaches an endorsement signature. That is, the endorsing peer node is a peer node that performs the role of verifying the transaction, simulates the transaction to be performed by the smart contract, and returns the result to the client application.
제1 내지 제n 피어 노드(210a ~ 210n) 중에서 커미팅 피어 노드(committing peer node)는 엔도싱 피어 노드가 실행한 트랜잭션 결과에 검증 문제가 없다면, 트랜잭션을 확정하고 내용을 블록체인에 업데이트 한다.Among the first to nth peer nodes 210a to 210n, a 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, an anchor peer node performs a representative role within a channel, and a leader peer node performs a representative role in an organization.
오더링 서비스 노드(220)는 채널(C)(250)에 대한 구성 정보를 소유하고, 이를 기반으로 전체 시스템의 관리자 할역을 수행한다. 오더링 서비스 노드(220)는 트랜잭션을 피어 노드(210)에 전달하고, 네트워크에 참여하고 있는 모드 피어 노드(210)의 분기 및 정렬 할역을 수행한다.The
채널(250)은 서로 다른 노드들을 묶는 할역을 수행한다. 하나의 채널(250)은 한개의 원장을 가지며, 채널 안의 모든 피어 노드(210)는 동일한 원장의 복사본을 가진다.The
스토리지 장치(300)는 데이터를 저장하며, 저장된 데이터를 무단으로 삭제하거나 변조할 수 없도록 하는 기능을 제공한다. The
또한, 스토리지 장치(300)는 스케일아웃(Scale-out) 분산 방식으로 확장성을 구비한다. 스케일아웃(Scale-out) 방식은 장비를 추가해서 확장하는 방식을 말한다. 즉, 기존 장치만으로 용량이나 성능의 한계가 있으면, 비슷한 사양의 장치를 연결해 추가된 분만큼 용량이 증가할 뿐만 아니라 워크로드를 분담해 성능을 높일 수 있다. 사용자는 분산 파일 시스템이나 글로벌 네임스페이스(global namespace)를 통해 스토리지 클러스터를 하나의 시스템으로써 인식한다. 이와 같은, 스토리지 장치(300)의 확장성에 의해, 블록체인 시스템(200)을 통해 관리하는 데이터가 증가하더라도 이를 동적으로 수용 가능하게 할 수 있다.In addition, the
도 4 및 도 5는 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 저장 과정에 대한 설명에 제공되는 흐름도이다. 4 and 5 are flowcharts provided to explain a file storage process in a 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, a client application that is a decentralized application (DApp) running on the
트랜잭션 제안 메시지를 수신한 엔도싱 피어 노드는, 클라이언트 서명이 유효한지 검사하고, 제출자가 해당 채널에서 제안된 작업을 수행할 수 있도록 권한을 받았는지 여부에 대한 클라이언트 권한 등을 검사한 후, 트랜잭션을 시뮬레이션하여, 트랜잭션의 유효성을 검사한 후, 그 결과를 제안 응답 메시지로 클라이언트 애플리케이션에 전송한다(S405). Upon receiving the transaction proposal message, the endorsing peer node checks whether the client signature is valid, checks whether the submitter is authorized to perform the proposed operation in the corresponding channel, etc. After checking the validity of the transaction by simulation, the result is transmitted 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 and checks whether it satisfies the preset guarantee policy (S410), and transmits the generated transaction to the
오더링 서비스 노드(220)는 클라이언트 애플리케이션으로부터 전송받은 트랜잭션을 순서대로 취합하여, 일정 시간이나 일정 개수의 트랜잭션 등과 같이 미리 설정된 블록 생성 조건을 만족하는지 여부를 검사하여(S430), 블록 생성 조건을 만족하는 경우(S425), 도 5에 도시한 과정이 수행된다. 만일, S435 단계에서 설정된 블록 설정 조건을 만족하는 못하는 경우에는, 클라이언트 애플리케이션으로 트랜잭션 처리 실패를 통보한다(S440).The
도 5를 참조하면, 블록생성 조건의 만족이 확인되면, 오더링 서비스 노드(220)는 전송받은 트랜잭션을 포함하는 블록을 생성하여, 같은 채널에 속한 모든 커미팅 피어 노드 및 엔도싱 피어 노드에 블록을 전송한다(S445).Referring to FIG. 5, if the block generation condition is satisfied, the
커미팅 피어 노드는 전송받은 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 블록에 포함된 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효(valid)로 기록하고, 유효성 검증이 실패하면 해당 트랜잭션은 유효하지 않은 것(invalid)으로 기록한다(S450). 트랜잭션 유효성 검사는, 체인코드 실행 중에 읽은 데이터가 실행 또는 승인 이후 변경되지 않은 경우 유효로 표시하며, 원장 스테이트 데이터베이스에 적용될 수 있다. 그러나, 체인코드 실행 중에 읽은 데이터가 다른 트랜잭션에 의해 변경된 경우, 해당 트랜잭션은 유효하지 않은 것으로 표시되며, 원장 스테이트 데이터베이스에 적용되지 않는다. The committing peer node verifies that the transactions included in the received block satisfy the guarantee policy, and then validates each transaction included in the block, records the validated transaction as valid, and confirms that the validation is successful. If it fails, the corresponding transaction is recorded as invalid (S450). Transaction validation, which marks data read during chaincode execution as valid if it has not changed since execution or approval, can be applied to ledger state databases. 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 generated for file storage is verified (S455), by executing the called smart contract (S460), the storage target file is stored in the
원장이 갱신되면, 클라이언트 애플리케이션으로 트랜잭션 처리 성공을 통보하고(S475), 파일 저장을 위한 트랜잭션 처리 과정은 종료한다.When the ledger is updated, the transaction processing success is notified to the client application (S475), and the transaction processing process for file storage ends.
이와 같은 과정에 의해, 파일은 데이터 변경이 불가한 스토리지 장치(300)에 저장하고, 저장된 파일에 대한 메타데이터는 블록체인 시스템(200)의 원장에 기록함으로써 메타데이터의 위변조도 방지하여, 저장된 파일에 대해 이중으로 보호가 가능하다. 또한, 전체 파일을 원장에 저장하는 대신 크기가 작은 메타데이터만을 원장에 저장함으로써, 블록체인 분산 원장에 저장할 용량을 감소시켜 블록체인 트랜잭션의 처리 속도를 향상시킬 수 있다. By this process, the file is stored in the
또한, 일반적으로 블록체인 원장은 각 피어 노드에 저장되지만, 원장을 데이터 변경이 불가한 스토리지 장치(300)도 저장하도록 구성할 수 있으며, 이 경우 원장에 저장된 데이터의 무결성을 보장하고 무단 삭제를 방지할 수 있다. In addition, although the blockchain ledger is generally stored in each peer node, the ledger can also be configured to store the
도 6 및 도 7은 본 발명의 일실시예에 따른 데이터 관리 방법에서 파일 인출 과정에 대한 설명에 제공되는 흐름도이다. 6 and 7 are flowcharts provided to explain a file retrieval process in a 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) running on the
트랜잭션 제안 메시지를 수신한 엔도싱 피어 노드는, 클라이언트 서명이 유효한지 검사하고, 제출자가 해당 채널에서 제안된 작업을 수행할 수 있도록 권한을 받았는지 여부에 대한 클라이언트 권한 등을 검사한 후, 트랜잭션을 시뮬레이션하여, 트랜잭션의 유효성을 검사한 후, 제안 응답 메시지를 클라이언트 애플리케이션에 전송한다(S505). Upon receiving the transaction proposal message, the endorsing peer node checks whether the client signature is valid, checks whether the submitter is authorized to perform the proposed operation in the corresponding channel, etc. After simulating and validating 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 endorsing peer node, checks whether or not the preset guarantee policy is satisfied (S510), and transmits the generated transaction to the
오더링 서비스 노드(220)는 클라이언트 애플리케이션으로부터 전송받은 트랜잭션을 순서대로 취합하여, 일정 시간이나 일정 개수의 트랜잭션 등과 같이 미리 설정된 블록 생성 조건을 만족하는지 여부를 검사하여(S530), 블록 생성 조건을 만족하는 경우(S535), 도 7에 도시한 과정이 수행된다. 만일, S535 단계에서 설정된 블록 설정 조건을 만족하는 못하는 경우에는, 클라이언트 애플리케이션으로 트랜잭션 처리 실패를 통보한다(S540).The
도 7을 참조하면, 블록생성 조건의 만족이 확인되면, 오더링 서비스 노드(220)는 전송받은 트랜잭션을 포함하는 블록을 생성하여, 같은 채널에 속한 모든 커미팅 피어 노드 및 엔도싱 피어 노드에 블록을 전송한다(S545).Referring to FIG. 7, when the block generation condition is satisfied, the
커미팅 피어 노드는 전송받은 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 블록에 포함된 각 트랜잭션마다 유효성을 검사하여, 유효성인 검증된 트랜잭션은 유효(valid)로 기록하고, 유효성 검증이 실패하면 해당 트랜잭션은 유효하지 않은 것(invalid)으로 표시한다(S550). The committing peer node verifies that the transactions included in the received block satisfy the guarantee policy, and then validates each transaction included in the block, records the verified transaction as valid, and If it fails, the corresponding transaction is marked as invalid (S550).
파일 인출을 위해 생성한 트랜잭션의 유효성이 검증된 경우(S555), 호출된 스마트 컨트랙트의 실행에 의해(S560), 원장에 저장된 메타데이터를 참조하여 인출을 요청한 파일의 저장 위치를 검색하여(S565), 스토리지 장치(300)의 검색된 위치에서 파일을 인출한다(S570). When the validity of the transaction created for file withdrawal is verified (S555), by the execution of the called smart contract (S560), the storage location of the file requested for withdrawal is searched by referring to the metadata stored in the ledger (S565) , The file is fetched from the searched location of the storage device 300 (S570).
파일이 인출되면, 클라이언트 애플리케이션으로 트랜잭션 처리 성공을 통보하고(S575), 인출한 파일을 클라이언트 애플리케이션으로 송부할 수 있다,When the file is fetched, the transaction processing success is notified to the client application (S575), and the fetched file can be sent to the client application.
이와 같은 과정에 의해, 데이터 변경이 불가한 스토리지 장치(300)에 저장된 파일을 블록체인 시스템(200)을 통해 인출할 수 있다. 또한, 데이터 변경이 불가한 스토리지 장치(300)에 저장된 파일과 원장에 저장된 메타데이터는, 검색이나 조회 요청 등이 있는 경우, 검색이나 조회 조건에 부합하는 파일과 메타데이터가 검색되어 출력할 수도 있다.Through this process, a file stored in the
도 8은 본 발명의 일실시예에 따른 데이터 관리 방법에서 피어 노드의 장애 복구 과정에 대한 설명에 제공되는 흐름도이다. 8 is a flowchart provided to explain a process of recovering from a failure of a peer node in a data management method according to an embodiment of the present invention.
도 8을 참조하면, 불록체인 시스템을 구성하는 피어 노드 중에서 장애가 감지되면(S600), 장애가 감지된 장애 피어 노드가 등록된 모든 채널에서 장애 피어 노드를 제외시킨다(S605). Referring to FIG. 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 failure is detected (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 group membership (S615). Hyperledger Fabric leverages container technology to provide chaincode services for configuring system logic.
장애 피어 노드를 대체하는 대체 피어 노드가 신규 노드일 경우, 대체 피어 노드의 MSP(Membership Service Provider)를 생성한다(S620, S625). MSP를 통해 노드의 할역을 부여할 수 있다.When the replacement peer node replacing the failed peer node is a new node, a Membership Service Provider (MSP) of the replacement peer node is created (S620 and S625). The role of the node can be assigned through the MSP.
그 다음 대체 피어 노드의 컨테이너(container) 생성후 소속 그룹에 할당되며(S630), 대체 피어 노드에 원장을 생성하고, 대체 피어 노드를 원장을 공유할 채널에 등록하여 원장 내용을 복사할 수 있도록 한다(S635).Then, after creating a container of the alternative peer node, it is assigned to the group to which it belongs (S630), a ledger is created in the alternative peer node, and the alternative peer node is registered in a channel to share the ledger so that the contents of the ledger can be copied. (S635).
다음으로 대체 피어 노드에 체인코드를 설치하고(S640), 필요에 따라 instancite 명령어를 실행한다. 체인코드가 어떤 피어 노드에 설치되었다고 바로 사용할 수 있는 것은 아니며, 체인코드를 사용하려면 해당 체인코드의 인터페이스를 다른 피어 노드에게 알리는 인스턴트화(instantiated)가 필요한데, 인스턴트화는 instantiate 명령어를 이용하여 이루어질 수 있다. Next, the chaincode is installed on the alternative peer node (S640), and the instantite command is executed as needed. Chaincode is not immediately usable just because it is installed on a certain peer node. To use a chaincode, it needs to be instantiated to notify other peer nodes of the chaincode interface. Instantiation can be done using the instantiate command. there is.
다음으로 대체 피어 노드에 같은 채널의 다른 피어 노드의 원장 내용을 복사 한다(S645). 이 경우, 원장이 관리하는 대용량 데이터나, 혹은 원장과 원장이 관리하는 대용량 데이터를 모두 스토리지 장치(300)에 저장하도록 구성하여, 원장 내용의 복사를 신속하게 할 수 있다. 또한, 원장 내용의 직접 적인 복사 없이, 해당 원장에 대한 엑세스 권한만을 변경시켜 대체 노드가 관리하도록 구성할 수도 있다.Next, the contents of the ledger of another peer node of the same channel are copied to the alternative peer node (S645). In this case, by configuring the
이와 같은 과정에 의해 블록체인 시스템을 구성하는 피어 노드에 대한 장애가 발생한 경우 다른 노드로 대체하여 복구가 이루어진다.In the event of a failure of a peer node constituting the blockchain system through this process, recovery is performed by replacing it with another node.
한편, 스토리지 장치(300)는 데이터 변경이 불가능하도록 WORM(Write Once Read Many) 기능이 부가된 저장 장치로, 하드디스크나 SSD(Solid State Disk) 등으로 구성할 수 있다. Meanwhile, the
CD-R, DVD-R 등과 같은 WORM 저장 장치는 레이저를 통해 물리적으로 미디어의 표면에 패턴을 형성함으로써 데이터를 기록하므로, 데이터가 기록되는 순간부터 물리적으로 변조가 불가능한 상태가 된다. 그러나, 대용량, 고성능, 검색 활용성을 지원하기 위해 구현되는 하드디스크 및 SSD를 기반으로 하는 WORM 스토리지는 물리적인 속성으로 데이터를 보호하는 장치가 없기 때문에 데이터를 보호하는 기능을 소프트웨어적인 방법을 통해 구현하게 된다. 이때, 소프트웨어는 저장장치에 파일시스템 서비스를 제공하는 운영체제 안에 고정된 코드로 구현이 되거나 펌웨어로 구현되어 외부에서 이를 변경할 방법을 원천적으로 차단하여, 어떤 권한으로도 데이터를 변조하거나 삭제하는 것을 방지할 수 있다. WORM storage devices such as CD-R and DVD-R record data by physically forming a pattern on the surface of the media using a laser, so that data cannot be physically tampered with from the moment it is recorded. However, since WORM storage based on hard disks and SSDs implemented to support large capacity, high performance, and search usability does not have a device to protect data with physical properties, the function to protect data is implemented through a software method. will do At this time, the software is implemented as fixed code in the operating system that provides file system service to the storage device or implemented as firmware to fundamentally block the way to change it from the outside, preventing data from being tampered with or deleted with any authority. can
한편, 본 발명에 따른 데이터 관리 방법은 상기한 바와 같이 설명된 실시예들의 구성에 한정되게 적용될 수 있는 것이 아니라, 상기한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.On the other hand, the data management method according to the present invention can not be applied limitedly to the configuration of the embodiments described above, but all or part of each of the embodiments can be selectively modified so that various modifications can be made. They may be configured in combination.
또한, 본 발명은 프로그램 가능한 컴퓨터상에서 컴퓨터 프로그램으로 구현 가능하다. 이러한 컴퓨터는 프로세서, 저장장치, 입력장치, 출력 장치를 포함할 수 있다. 본 발명에서 설명한 내용을 구현하기 위해 프로그램 코드는 마우스 또는 키보드 입력장치로 입력될 수 있다. 이러한 프로그램들은 고차원적인 언어나, 객체지향적인 언어로 구현될 수 있다. 또한 어셈블리나 기계어 코드로 구현된 컴퓨터 시스템으로도 구현될 수 있다. In addition, the present invention can be implemented as a computer program on a programmable computer. Such computers may include processors, storage devices, input devices, and output devices. In order to implement the contents described in the present invention, the program code may be input with a mouse or keyboard input device. These programs can be implemented in high-level languages or object-oriented languages. It can also be implemented as a computer system implemented in assembly or machine code.
또한, 본 발명의 내용은 하드웨어나 소프트웨어 사용에만 국한되지는 않으며, 다른 어떤 컴퓨팅 또는 처리 환경에 대해서도 적용 가능하다. 본 발명에서 설명하는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명은 회로를 사용하여 구현될 수 있다. 즉, 한 개 이상의 프로그램 가능한 논리회로, 즉 ASIC(application specific integrated circuit) 또는 논리회로(AND, OR NAND gates) 또는 프로세싱 장치(예컨대, 마이크로 프로세서, 콘트롤러)로 구현가능하다. Further, the subject matter of the present invention is not limited to hardware or software use, but is applicable to any other computing or processing environment. It may be implemented by 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 codes on a processor-readable recording medium. The processor-readable recording medium includes all types of recording devices in which data readable by the processor is stored. Examples of the processor-readable recording medium include ROM, RAM, CD-ROM, and an optical data storage device. In addition, the processor-readable recording medium is distributed in computer systems connected through a network, so that processor-readable codes can be stored and executed in a distributed manner.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although the 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 present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, various modifications are possible by those skilled in the art, and these modifications should not be individually understood from the technical spirit 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 파일을 데이터 변경 불가 가능을 제공하는 스토리지 장치에 저장하는 단계; 및
상기 제1 파일에 대한 메타데이터를 추출하고, 상기 추출한 메타데이터를 상기 블록체인 시스템의 원장에 저장하는 단계를 포함하는 데이터 관리 방법.Connecting with a preset blockchain system so that the client can send and receive blockchain transactions;
generating, by the client, a first transaction for storing a first file;
generating a block including the first transaction when the first transaction satisfies a guarantee policy and a predetermined block generation condition is met;
propagating the generated block to each peer node constituting the blockchain system to check validity;
If the first transaction is valid, storing the first file in a storage device that provides unalterable data by a called smart contract; and
A data management method comprising extracting metadata for the first file and storing the extracted metadata in a ledger of the blockchain system.
상기 스토리지 장치는, 스케일아웃(Scale-out) 방식에 의해 동적으로 확장가능한 분산 스토리지인것을 특징으로 하는 데이터 관리 방법.According to claim 1,
The storage device is a data management method, characterized in that the distributed storage dynamically expandable by a scale-out method.
상기 원장은 상기 분산 스토리지에 저장되는 것을 특징으로 하는 데이터 관리 방법. According to claim 2,
The data management method, characterized in that the ledger is stored in the distributed storage.
상기 블록체인 시스템을 구성하는 피어 노드 중에서 어느 한 노드에 장애가 감지되면, 장애가 감지된 장애 피어 노드를 다른 노드로 대체하고, 상기 다른 노드가 상기 장애 피어 노드의 원장을 이관받아 동기화하는 단계를 더 포함하는 데이터 관리 방법. According to claim 1,
When a failure is detected in any one of the peer nodes constituting the blockchain system, replacing the failed peer node where the failure is detected with another node, and the other node receiving and synchronizing the ledger of the failed peer node How to manage your data.
상기 블록체인 시스템은, 하이퍼레저 패블릭 블록체인 시스템인 것을 특징으로 하는 데이터 관리 방법.According to claim 1,
The blockchain system is a data management method, characterized in that the hyperledger fabric blockchain system.
상기 제1 파일의 저장을 위한 트랜잭션은, 탈중앙화된 클라이언트 애플리케이션에서 생성하는 것을 특징으로 하는 데이터 관리 방법. According to claim 1,
The data management method, characterized in that the transaction for the storage of the first file is generated in a decentralized client application.
상기 제1 트랜잭션이 상기 보증 정책을 만족하는지 여부는,
상기 클라이언트 애플리케이션에서 상기 제1 트랜잭션에 대한 트랜잭션 제안 메시지를 엔도싱 피어 노드에 전달하고,
상기 엔도싱 피어 노드에서 상기 트랜잭션을 시뮬레이션하여, 그 결과를 제안 응답 메시지로 상기 클라이언트 애플리케이션으로 전송하면,
상기 제안 응답 메시지에 기초하여, 상기 보증 정책 만족 여부를 검사하는 것을 특징으로 하는 데이터 관리 방법.According to claim 6,
Whether the first transaction satisfies the guarantee policy,
The client application forwards a transaction proposal message for the first transaction to an endorsing peer node;
When the endorsing peer node simulates the transaction and transmits the result as a proposal response message to the client application,
and checking whether the guarantee policy is satisfied based on the proposal response message.
유효성을 검사하는 단계는,
커미팅 피어 노드가 오더링 서비스 노드로부터 상기 블록을 전송받는 단계; 및
상기 커미팅 피어 노드에서 상기 블록에 포함된 트랜잭션들이 보증 정책을 만족하는지 확인한 후, 각 트랜잭션마다 유효성을 검사하여, 유효성이 검증된 트랜잭션은 유효로 기록하고, 유효성이 검증되지 않은 트랜잭션은 유효하지 않은 것으로 기록하는 단계를 포함하는 데이터 관리 방법.According to claim 7,
Steps to validate are:
receiving, by a committing peer node, the block from an ordering service node; and
After checking whether the transactions included in the block satisfy the guarantee policy at the committing peer node, the validity of each transaction is checked, and the validated transaction is recorded as valid, and the unvalidated transaction is invalid. Data management method comprising the step of recording as.
상기 클라이언트가 상기 제1 파일의 인출을 위한 제2 트랜잭션 생성하는 단계;
상기 제2 트랜잭션이 보증 정책을 만족하고, 소정의 블록 생성 조건이 충족된 경우, 상기 제2 트랜잭션을 포함하는 블록을 생성하는 단계;
상기 생성한 블록을 상기 블록체인 시스템을 구성하는 각 피어 노드로 전파하여, 유효성을 검사하는 단계; 및
상기 제2 트랜잭션이 유효한 경우, 호출된 스마트 컨트랙트에 의해, 상기 원장에 저장된 메타데이터를 참조하여 상기 제1 파일의 저장 위치를 검색하고, 상기 스토리지 장치의 상기 검색된 저장 위치에서 상기 제1 파일을 인출하는 단계를 더 포함하는 데이터 관리 방법.According to claim 1,
generating, by the client, a second transaction for fetching the first file;
generating a block including the second transaction when the second transaction satisfies a guarantee policy and a predetermined block generation condition is satisfied;
propagating the generated block to each peer node constituting the blockchain system to check validity; and
When 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. Data management method further comprising the step of doing.
A processor-readable recording medium on which a program for executing the data management method according to any one of claims 1 to 9 in a processor is recorded.
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 true KR20230043339A (en) | 2023-03-31 |
KR102598227B1 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 (4)
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 |
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 |
KR20210050959A (en) * | 2019-10-29 | 2021-05-10 | 삼성에스디에스 주식회사 | Blockchain based file management system and method thereof |
-
2021
- 2021-09-24 KR KR1020210126102A patent/KR102598227B1/en active IP Right Grant
Patent Citations (4)
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 |
KR20210050959A (en) * | 2019-10-29 | 2021-05-10 | 삼성에스디에스 주식회사 | 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 |
Also Published As
Publication number | Publication date |
---|---|
KR102598227B1 (en) | 2023-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110400142B (en) | Data processing method, device and storage medium | |
US11669544B2 (en) | Allocation and reassignment of unique identifiers for synchronization of content items | |
CN111951004B (en) | Method and system for world state integrity verification | |
CN107391758B (en) | Database switching method, device and equipment | |
US11599431B2 (en) | Database optimized disaster recovery orchestrator | |
US9558194B1 (en) | Scalable object store | |
US8694564B2 (en) | Method and system for providing on-demand services through a virtual file system at a computing device | |
US20200050386A1 (en) | Private and fault-tolerant storage of segmented data | |
US11354198B2 (en) | Snapshot for world state recovery | |
CN102253869A (en) | Scaleable fault-tolerant metadata service | |
US11003523B2 (en) | Database optimized disaster recovery testing | |
CN102323930B (en) | Mirroring data changes in a database system | |
CN112035291B (en) | Snapshot recovery | |
WO2020235512A1 (en) | Document management system | |
CN113901005A (en) | Portable file storage method, system and medium based on block chain | |
Zhang et al. | LedgerGuard: improving blockchain ledger dependability | |
AU2017296038A1 (en) | Digital asset architecture | |
KR102598227B1 (en) | Data management method for guaranteeing the integrity of large capacity content using distributed storage with immutability and blockchain | |
JP6895149B1 (en) | Data management system | |
Shapiro et al. | Access and Integrity Control in a {Public-Access},{High-Assurance} Configuration Management System | |
US20210382868A1 (en) | Data management system | |
Hafiz et al. | Preventing Data Loss using Raft Consensus Algorithm in a Decentralized Database System | |
Hammoud et al. | An Architecture for Distributed Electronic Documents Storage in Decentralized Blockchain B2B Applications. Computers 2021, 10, 142 | |
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 |