KR20210019771A - 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법 - Google Patents

블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법 Download PDF

Info

Publication number
KR20210019771A
KR20210019771A KR1020190098812A KR20190098812A KR20210019771A KR 20210019771 A KR20210019771 A KR 20210019771A KR 1020190098812 A KR1020190098812 A KR 1020190098812A KR 20190098812 A KR20190098812 A KR 20190098812A KR 20210019771 A KR20210019771 A KR 20210019771A
Authority
KR
South Korea
Prior art keywords
data
log file
block chain
blockchain
block
Prior art date
Application number
KR1020190098812A
Other languages
English (en)
Other versions
KR102281901B1 (ko
Inventor
민덕기
예쉬화
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020190098812A priority Critical patent/KR102281901B1/ko
Publication of KR20210019771A publication Critical patent/KR20210019771A/ko
Application granted granted Critical
Publication of KR102281901B1 publication Critical patent/KR102281901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법이 제공된다. 본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 장치는, 컴퓨팅 장치 및 블록체인 노드와 통신하도록 구성된 통신부; 상기 데이터를 분산 저장하도록 구성된 저장부; 상기 통신부 및 상기 저장부와 동작 가능하게 연결되도록 구성된 프로세서를 포함하고, 상기 프로세서는, 상기 컴퓨팅 장치로부터 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 수신하고, 상기 요청에 따라 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하고, 상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하고, 상기 블록체인 노드가 상기 생성된 로그파일을 블록에 포함시켜 블록체인을 생성하도록 상기 생성된 로그파일을 상기 블록체인 노드에 전달하도록 구성된다.

Description

블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법{APPARATUS AND METHOD FOR MANAGING DATA USING BLOCKCHAIN}
본 발명은 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법을 제공한다.
최근 스마트 홈, 스마트 오피스 및 IoT(Internet of Things) 인프라 등이 포함된 환경에서의 급증하는 데이터 수요로 인해 거대한 저장 환경에 대한 요구가 증가하고 있다. 종래에는 디지털 장치에 내장되거나 유선으로 연결된 저장 장치가 주로 사용되었으나, 최근에는 네트워크 통신을 통해 외부에서도 자유롭게 접속이 가능한 네트워크 연결 저장 장치가 각광을 받고 있다.
하지만, 네트워크 연결 저장 장치의 경우, 데이터 공유를 위해 설계된 경우가 많으므로, 사용자에 의한 무분별한 데이터 위조 및 변조로 인한 데이터 무결성의 침해 요소가 있다. 또한, 네트워크 연결 저장 장치는 ID와 비밀번호를 이용하여 사용자 인증을 수행하므로, 최소한의 보안을 제공할 뿐, 데이터를 수정 및 제출하거나 위조 및 변조한 사용자가 실제 사용자와 일치하는지 여부를 확인하기 어렵다.
따라서, 데이터의 무결성, 기밀성 및 가용성 등의 침해를 방지하고, 나아가 침해가 발생된 경우 데이터를 복구하기 위한 방법이 요구된다.
본 발명이 해결하고자 하는 과제는 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법을 제공하는 것이다.
구체적으로, 본 발명이 해결하고자 하는 과제는 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 증거(예: 로그파일)를 저장하여 데이터 복구를 위한 데이터 버전 관리를 지원하기 위해 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법이 제공된다. 본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 장치는, 컴퓨팅 장치 및 블록체인 노드와 통신하도록 구성된 통신부; 상기 데이터를 분산 저장하도록 구성된 저장부; 상기 통신부 및 상기 저장부와 동작 가능하게 연결되도록 구성된 프로세서를 포함하고, 상기 프로세서는, 상기 컴퓨팅 장치로부터 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 수신하고, 상기 요청에 따라 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하고, 상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하고, 상기 블록체인 노드가 상기 생성된 로그파일을 블록에 포함시켜 블록체인을 생성하도록 상기 생성된 로그파일을 상기 블록체인 노드에 전달하도록 구성된다. 본 발명의 실시예에 따른 블록에 포함되는 로그파일은, 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이거나, 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일일 수 있다.
본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 장치의 프로세서에 의해서 수행되는 블록체인을 이용한 데이터 관리 방법은, 컴퓨팅 장치로부터 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 수신하는 단계; 상기 요청에 따라 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하는 단계; 상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하는 단계; 및 상기 블록체인 노드가 상기 생성된 로그파일을 블록에 포함시켜 블록체인을 생성하도록 상기 생성된 로그파일을 상기 블록체인 노드에 전달하는 단계를 포함한다. 본 발명의 실시예에 따른 블록에 포함되는 로그파일은, 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이거나, 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일일 수 있다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나가 수행되면 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 로그파일을 블록체인을 이용하여 저장함으로써, 데이터에 대한 신뢰성, 무결성, 기밀성 및 가용성 등을 보장할 수 있고, 데이터 복구를 위한 데이터 버전 관리를 할 수 있다.
또한, 본 발명은 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등에 의해 변경된 데이터에 대한 증거를 블록체인에 저장함으로써, 데이터에 대한 보안성을 향상시키고, 데이터 복구를 위해 소요되는 시간 및 자원을 최소화할 수 있다.
또한, 본 발명은 특정 시간 범위에 대응하여 생성된 로그파일, 특정 데이터에 대응하여 생성된 로그파일 및 특정 시간 범위에 따른 특정 데이터에 대응하여 생성된 로그파일 각각을 싱글 블록체인 또는 멀티 블록체인에 저장함으로써, 블록체인에 저장된 증거를 검색하기 위해 소요되는 시간 또한 최소화할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 발명 내에 포함되어 있다.
도 1은 본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 시스템의 개략도이다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 개략적인 블록도이다.
도 3은 본 발명의 실시예에 따른 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하여 로그파일을 생성하고, 생성된 로그파일을 블록체인에 저장하기 위한 방법을 설명하기 위한 블록도이다.
도 4는 본 발명의 실시예에 따른 증거 질의 동작에 대하여 설명하기 위한 블록도이다. 제시된 실시예에서 각 파트 및 각 컴포넌트의 동작은 도 3에서 상술한 내용과 일치할 수 있다.
도 5는 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다.
도 6은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다.
도 7은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다.
도 8은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다.
도 9는 본 발명의 실시예에 따른 제1 타입의 싱글 블록체인을 설명하기 위한 예시도이다.
도 10은 본 발명의 실시예에 따른 제2 타입의 싱글 블록체인을 설명하기 위한 예시도이다.
도 11은 본 발명의 실시예에 따른 멀티 블록체인을 설명하기 위한 예시도이다.
도 12는 본 발명의 실시예에 따른 블록체인 노드에 전송되는 데이터의 수정과 연관된 증거를 설명하기 위한 개략도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 블록체인을 이용한 데이터 관리 시스템의 개략도이다.
도 1을 참조하면, 블록체인을 이용한 데이터 관리 시스템(100)은 데이터의 읽기/쓰기/삭제 등과 같은 액션(action)이 수행된 경우 이에 대한 증거(proof)에 해당하는 로그파일(logfile)을 블록체인을 이용하여 저장 및 관리하기 위한 시스템으로서, 게이트웨이(110), 네트워크 연결 저장 시스템(120) 및 블록체인 노드 시스템(130)을 포함할 수 있다.
먼저, 게이트웨이(110)는 네트워크 연결 저장 시스템(120)과 무선 또는 유선으로 연결되며, 네트워크 연결 저장 시스템(120)을 인터넷(internet) 또는 인트라넷(intranet)과 같은 컴퓨터 네트워크에 연결할 수 있다. 이 경우, 사용자는 인터넷 또는 인트라넷에 접속 가능한 휴대용 단말기, 스마트 TV, PC(Personal Computer), 노트북 등과 같은 컴퓨팅 장치(140)를 통해 네트워크 연결 저장 시스템(120)에 저장된 데이터에 접근할 수 있다. 예를 들어, 사용자는 네트워크 연결 저장 시스템(120)에 저장된 영상, 음악 또는 문서와 같은 컨텐츠를 컴퓨팅 장치(140)를 통해 시청할 수 있다. 제시된 실시예에서는 게이트웨이를 설명하였으나, 이에 한정되지 않으며, 게이트웨이(110)와 유사한 기능을 제공하는 라우터, 브릿지 등이 사용될 수 있다.
다양한 실시예에서 게이트웨이(110)는 컴퓨팅 장치(140)에 제공되는 컨텐츠를 데이터화하여 네트워크 연결 저장 시스템(120)에 전송할 수 있다. 예를 들어, 게이트웨이(110)는 컴퓨팅 장치(140)에 전송되는 동영상 또는 음악 컨텐츠 데이터를 패킷(packet) 단위로 분리하여 네트워크 연결 저장 시스템(120)에 전송할 수 있다.
이어서, 네트워크 연결 저장 시스템(120)은 데이터를 저장하기 위한 저장 매체가 인터넷 또는 인트라넷과 같은 컴퓨터 네트워크에 연결되어 장소에 구속되지 않고 데이터 접근이 가능하도록 구성된 시스템으로서, 네트워크 연결 저장 장치(122) 및 확장 네트워크 연결 저장 장치(124)를 포함할 수 있다.
네트워크 연결 저장 장치(122)는 데이터 저장 서버로서, 확장 네트워크 연결 저장 장치(124)와 데이터를 분산 저장할 수 있다. 이러한 동작은 네트워크 연결 저장 장치(122)의 프로세서에 의해서 수행될 수 있다. 예를 들어, 네트워크 연결 저장 장치(122)는 확장 네트워크 연결 저장 장치(124)의 연결을 감지하여 확장 네트워크 연결 저장 장치(124)와 데이터를 분산 저장하도록 설정을 변경할 수 있다.
다양한 실시예에서 네트워크 연결 저장 장치(122)는 적어도 하나의 가상 머신(virtual machine) 또는 컨테이너가 구축되고, 구축된 가상 머신 또는 컨테이너를 통해 확장 네트워크 연결 저장 장치(124)와 데이터를 분산 저장하도록 제어할 수도 있다. 이러한 경우 네트워크 연결 저장 장치(122)는 적어도 하나의 가상 머신 또는 컨테이너를 통해 확장 네트워크 연결 저장 장치(124)의 연결을 감지하여 확장 네트워크 연결 저장 장치(124)와 데이터를 분산 저장하도록 설정을 원격으로 변경할 수 있다. 여기서, 컨테이너는 LXD, LXC, 도커(Docker) 하이퍼바이저(hypervisor) 등에 의해 구현될 수 있으나, 이에 한정되지 않는다.
네트워크 연결 저장 장치(122)는 컴퓨팅 장치(140)의 요청에 따라 데이터의 읽기/쓰기/삭제 등과 같은 액션을 수행하고, 수행된 액션에 대한 로그파일을 블록체인 노드 시스템(130)에 전달하여 블록체인 노드 시스템(130)에 위치한 블록체인에 로그파일이 저장되도록 할 수 있다. 이러한 데이터는 네트워크 연결 저장 장치(122) 및 확장 네트워크 연결 저장 장치(124)에 분산 저장된 데이터일 수 있다. 상술한 동작은 데이터가 저장된 위치에 따라 네트워크 연결 저장 장치(122) 또는 확장 네트워크 연결 저장 장치(124)에 의해서 수행될 수 있다.
블록체인 노드 시스템(130)은 블록체인 노드(132, 134)를 포함하고, 네트워크 연결 저장 시스템(120)과 상호간의 통신이 가능하며, 데이터 읽기/쓰기/삭제 등에 관한 로그파일이 기록된 블록들의 연결 묶음에 해당하는 블록체인을 생성, 저장 또는 검증하는 동작을 수행할 수 있다. 예를 들어, 블록체인 노드(132, 134)는 데이터 읽기/쓰기/삭제 등에 관한 로그파일을 블록에 포함시켜 이미 존재하는 블록체인에 연결하고, 그 사본을 모든 노드에 분산시켜 저장할 수 있다. 이러한 블록체인 노드(132, 134)는 퍼블릭(public) 또는 프라이빗(private) 블록체인 노드일 수 있다.
다양한 실시예에서 블록체인 노드(132)는 블록체인 노드 시스템(130)을 구성하는 요소로서, 네트워크 연결 저장 시스템(120)과 전용 사설망에 위치할 수 있다. 구체적으로, 블록체인 노드(132)는 동일한 전용 사설망에 존재하는 네트워크 연결 저장 장치(122) 또는 확장 네트워크 연결 저장 장치(124)로부터 데이터 읽기/쓰기/삭제 등에 관한 로그파일을 수신할 수 있다. 블록체인 노드(132)는 수신된 로그파일을 블록에 담아 블록체인에 연결하고 그 사본을 주변의 블록체인 노드(134)에 전달할 수 있다. 이로써, 블록체인 노드 시스템(130)은 블록체인을 이용한 분산 저장된 원장로서의 기능을 할 수 있고, 블록체인으로 저장된 로그 파일은 악의적인 목적에 의한 위조 및 변조가 불가능하다.
하기에서는 본 발명의 실시예에 따른 네트워크 연결 저장 장치(122)에 대해서 도 2를 참조하여 구체적으로 설명하도록 한다.
도 2는 본 발명의 실시예에 따른 네트워크 연결 저장 장치를 설명하기 위한 개략적인 블록도이다. 제시된 실시예에서 네트워크 연결 저장 장치(200)는 도 1의 네트워크 연결 장치(122)일 수 있다.
도 2를 참조하면, 네트워크 연결 저장 장치(200)는 통신부(210), 저장부(220) 및 프로세서(230)를 포함할 수 있다.
통신부(210)는 네트워크 연결 저장 장치(200)가 외부 장치와 통신 가능하도록 연결한다. 통신부(210)는 유선 또는 무선 통신을 이용하여 확장 네트워크 연결 저장 장치(124), 블록체인 노드(132, 134) 또는 컴퓨팅 장치(140)와 연결될 수 있다. 구체적으로, 통신부(210)는 컴퓨팅 장치(140)로부터 데이터의 읽기/쓰기/삭제 등의 요청을 수신하고, 데이터의 읽기/쓰기/삭제 등에 관한 로그파일을 블록체인에 저장할 수 있도록 블록체인 노드(132, 134)에 로그파일을 전달할 수 있다. 또한 통신부(210)는 확장 네트워크 연결 저장 장치(124)로부터 장치 정보, 성능 정보 또는 네트워크 정보 등을 수신할 수 있다.
저장부(220)는 데이터와 프로그램 등을 읽기/쓰기 위한 매체로서, DRAM(Dynamic Random-Access Memory) 또는 SRAM(Static RAM) 등으로 구성될 수 있는 메모리 및 바로 처리가 필요하지 않는 데이터와 프로그램을 저장할 수 있는 보조기억장치로 구성될 수 있다. 구체적으로 보조기억장치는 하드 디스크 드라이브(Hard Disk Drive; HDD), SSD(Solid State Drive), SD(Secure Digital) 카드, CD(Compact Disk), DVD(Digital Video Disc), 블루레이 디스크(Blu-ray Disk), USB 메모리 등과 같은 다양한 저장 매체로 구성될 수 있다. 상기 저장부(220)는 다이렉트 커넥션(direct connection)을 통해 네트워크 연결 저장 장치(200)의 호스트에 직접 연결될 수 있다.
다양한 실시예에서 저장부(220)는 네트워크 연결 저장 장치(200) 내에 구축된 가상 머신 중 적어도 하나에 의해 생성된 데이터 읽기/쓰기/삭제 등에 관한 로그파일을 저장할 수 있다. 또한 저장부(220)는 확장 네트워크 연결 저장 장치(124)로부터 수신된 장치 정보, 성능 정보 또는 네트워크 정보를 저장할 수 있다.
프로세서(230)는 통신부(210) 및 저장부(220)와 동작 가능하게 연결되며, 적어도 하나의 가상 머신을 통해 네트워크 연결 저장 장치(200)의 동작을 제어할 수 있다. 프로세서(230)는 적어도 하나의 가상 머신을 통해 네트워크 연결 저장 장치(200) 및 확장 네트워크 연결 저장 장치(124)를 하나의 저장 장치로 사용될 수 있도록 데이터 분산 저장을 제어할 수 있다.
프로세서(230)는 컴퓨터 장치(140)로부터 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 요청을 수신하고, 요청에 따라 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나를 수행할 수 있다. 프로세서(230)는 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관한 로그파일을 생성하고, 생성된 로그파일을 블록체인 노드(132)에 전달하여 블록체인 노드(132)가 로그파일을 블록에 포함시켜 블록체인을 생성하도록 할 수 있다. 이러한 로그파일은 트랜잭션(transaction)으로서 블록에 포함될 수 있다.
블록에 포함되는 로그파일은 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일일 수 있다. 예를 들어, 특정 시간 범위는 나노 초 단위(ns)일 수 있으나, 이에 한정되지 않는다. 이러한 경우 각 블록에 따라 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나의 관하여 생성된 로그파일이 포함되는 싱글 블록체인(single blockchain)이 생성될 수 있다. 예를 들어, 생성된 싱글 블록체인의 제1 블록은 제1 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일 또는 제3 파일의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그파일 등이 포함되고, 제2 블록은 제1 시간 범위와 다른 제2 시간 범위에 수행된 제3 파일의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제2 파일의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그 파일 또는 제2 파일의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제3 로그파일 등이 포함될 수 있다.
다양한 실시예에서 블록에 포함되는 로그파일은 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일일 수 있다. 이러한 경우 각 블록에 따라 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 해당하는 로그파일이 포함된 싱글 블록체인이 생성될 수 있다. 예를 들어, 생성된 싱글 블록체인의 제1 블록은 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그파일 및 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제3 로그파일 등을 포함하고, 제2 블록은 제1 데이터와 다른 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그파일 및 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제3 로그파일 등을 포함할 수 있다.
다양한 실시예에서 블록에 포함되는 로그파일은 특정 시간 범위에 수행된, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나의 관하여 생성된 로그파일일 수 있다. 이러한 경우 각 블록에 따라 특정 시간 범위에 해당하는 특정 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일이 포함되는 멀티 블록체인(multi-blockchain)이 생성될 수 있다. 예를 들어, 생성된 멀티 블록체인의 제1 블록체인에 포함된 제1 블록은 제1 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제1 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그파일 및 제1 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제3 로그 파일 등이 포함될 수 있다. 제1 블록체인에 포함된 제2 블록은 제1 시간 범위와 다른 제2 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제n+1 로그파일, 제2 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제n+2 로그파일 및 제2 시간 범위에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제n+3 로그 파일 등이 포함될 수 있다(n>0). 생성된 멀티 블록체인의 제2 블록체인에 포함된 제1 블록은 제1 시간 범위에 수행된, 제1 데이터와 다른 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제1 로그파일, 제2 시간 범위에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제2 로그파일 및 제1 시간 범위에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제3 로그 파일 등이 포함될 수 있다. 제2 블록체인에 포함된 제2 블록은 제2 시간 범위에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제m+1 로그파일, 제2 시간 범위에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제m+2 로그파일 및 제2 시간 범위에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 어느 하나에 관하여 생성된 제m+3 로그 파일 등이 포함될 수 있다(m>0).
구체적으로, 프로세서(230)는 생성된 로그파일 중 특정 시간 범위에 수행된 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 통신부(210)를 통해 블록체인 노드(132)로 전달할 수 있다. 이를 통해 블록체인 노드(132)는 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시켜 각 시각 범위에 해당하는 로그파일을 블록별로 저장한 싱글 블록체인을 생성할 수 있다. 이와 같이 각 시간 범위에 따라 수행된 읽기, 쓰기, 삭제 등에 관하여 생성된 로그파일을 싱글 블록체인으로 관리함으로써,
다양한 실시예에서 프로세서(230)는 생성된 로그파일 중 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 통신부(210)를 통해 블록체인 노드(132)로 전달할 수 있다. 이를 통해 블록체인 노드(132)는 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시켜 각 데이터에 대한 로그파일을 블록별로 저장한 싱글 블록체인을 생성할 수 있다. 이와 같이 각 데이터에 대한 읽기, 쓰기, 삭제 등에 관하여 생성된 로그 파일을 싱글 블록체인으로 관리함으로써, 데이터에 대한 보안성을 향상시키고, 데이터 복구를 위해 소요되는 시간 및 자원을 최소화할 수 있으며, 각 데이터에 따른 블록체인에 저장된 증거를 검색하기 위해 소요되는 시간 또한 최소화할 수 있다.
다양한 실시예에서 프로세서(230)는 생성된 로그파일 중 특정 시간 범위에 수행된, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나의 관하여 생성된 로그파일을 통신부(210)를 통해 블록체인 노드(132)로 전달할 수 있다. 이를 통해 블록체인 노드(132)는 특정 시간 범위에 수행된, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나의 관하여 생성된 로그파일을 복수의 블록 각각에 포함시켜 멀티 블록체인을 생성할 수 있다. 이와 같이 각 시간 범위에 따라 수행된, 각 데이터에 대한 읽기, 쓰기, 삭제 등에 관하여 생성된 로그 파일을 멀티 블록체인으로 관리함으로써, 데이터에 대한 보안성을 향상시키고, 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 로그파일을 빠르고 편리하게 검색 및 확인할 수 있으며, 특정 시간 범위에 변경된 데이터를 복구하기 위해 소요되는 시간 및 자원을 최소화할 수 있다.
하기에서는 프로세서 상에 적어도 하나의 가상 머신이 구축된 경우 적어도 하나의 가상 머신을 통해 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하여 로그파일을 생성하고, 생성된 로그파일을 블록체인에 저장하기 위한 방법을 도 3을 참조하여 상세하게 설명하도록 한다.
도 3은 본 발명의 실시예에 따른 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하여 로그파일을 생성하고, 생성된 로그파일을 블록체인에 저장하기 위한 방법을 설명하기 위한 블록도이다. 제시된 실시예에서는 네트워크 연결 저장 장치(122, 200)가 적어도 하나의 가상 머신 중 CnS(Control and Storage) 노드와 같은 가상 머신으로 구현되는 경우를 설명하도록 한다.
도 3을 참조하면, CnS 노드(300)는 라우팅 파트(302), 서비스 파트(304), RPC 파트(324), 코어 파트(326), 메시지 큐 파트(340), 모니터링 파트(342), 분산 파일 시스템 파트(352) 및 제어 O/S 파트(360)가 배치되도록 구성될 수 있다. CnS 노드(300)는 시스템 및 클러스터 구성을 유지하고, 올바른 서비스로 사용자 요청을 전달하기 위한 관리 장치로서 동작할 수 있다. CnS 노드(300)는 제어 및 저장 노드로서 정의되므로, 데이터 서비스뿐만 아니라 분산 파일 시스템 서비스를 함께 제공할 수 있다.
이를 위해 라우팅 파트(302)는 사용자에 의해 컴퓨팅 장치(140)가 네트워크 연결 저장 장치(122)에 연결될 경우 컴퓨팅 장치(140)와 직접적으로 연결될 수 있다. 라우팅 파트(302)는 사용자 요청을 핸들링(handling) 할 수 있다.
서비스 파트(304)는 네트워크 연결 저장 장치(122)에 대한 파일 공유 서비스(file sharing services) 및 시스템 관리 서비스(system management services)를 제공할 수 있다. 이러한 서비스 파트(304)는 System Administration 서비스(306), DFS(Distributed File System) 서비스(308), FDT(Fast Data Transferring Protocol) 서비스(310), SSH(Secure Shell) 서비스(312), FTP(File Transfer Protocol) 서비스(314), TFTP(Trivial File Transfer Protocol) 서비스(316), NFS(Network File System) 서비스(318), SMB(Server Message Block)/CIFS(Common Internet File System) 서비스(320) 및 RSync(remote synchronization) 서비스(322)를 포함하고, 이러한 파일 공유 서비스를 지원할 수 있다. 서비스 파트(304)는 System Administration 서비스(306)에 의해 관리 서비스를 지원하고, RPC 파트(324)를 통해 코어 파트(326)와 협력할 수 있다. 특히, System Administration 서비스(306)는 증거 질의 서비스(evidence query service)를 지원할 수 있다.
RPC 파트(324)는 서비스 파트(304)와 코어 파트(326) 간의 통신을 처리할 수 있다. RPC 파트(324)는 System Administration 서비스(306)를 위해 동작하고, 다른 서비스들에 의해 코어 파트(326)로부터 최신 서비스 정보를 획득할 수 있다.
코어 파트(326)는 네트워크 연결 저장 장치(122)의 시스템 관리를 수행할 수 있다. 코어 파트(326)는 모든 물리적 가상 머신의 전체 시스템 구성 및 상태를 유지할 수 있다. 이러한 코어 파트(326)는 확장성 관리 컴포넌트(328), 시스템 신뢰성 관리 컴포넌트(330), 데이터 부인 봉쇄 관리 컴포넌트(332), 패키지 관리 컴포넌트(334), 사용자 관리 컴포넌트(336) 및 네트워크 관리 컴포넌트(338)가 포함될 수 있다.
확장성 관리 컴포넌트(328)는 스케일 업(scale-up), 스케일 아웃(scale-out), 스케일 다운(scale-down) 및 스케일 인(scale-in)과 같은 물리적 장치 확장성 동작을 처리할 수 있다. 시스템 신뢰성 관리 컴포넌트(330)는 최종 사용자가 네트워크 연결 저장 장치(122)를 계속적으로 사용할 수 있도록 유지하기 위해 동작할 수 있다. 패키지 관리 컴포넌트(334), 사용자 관리 컴포넌트(336) 및 네트워크 관리 컴포넌트(338)는 결함 허용(fault tolerant)을 지원하기 위해 시스템 신뢰성 관리 컴포넌트(330)와 동작하도록 최적화될 수 있다. 시스템 신뢰성 관리 컴포넌트(330)는 확장성 관리 컴포넌트(328)와 함께 물리적 장치 정보, 가상 머신 상태 및 소프트웨어 런타임 정보를 획득하기 위해 모니터링 파트(342)와 협동할 수 있다. 데이터 부인 봉쇄 관리 컴포넌트(332)는 사용자의 데이터 읽기, 쓰기, 삭제 등에 관한 증거(즉, 로그파일)를 저장 및 제공하도록 지원할 수 있다. 패키지 관리 컴포넌트(330)는 시스템 패키지 설치 및 비설치 기능을 제공할 수 있다. 사용자 관리 컴포넌트(336)는 사용자 계정 관리 및 제어 리스트 접근을 지원할 수 있다. 네트워크 관리 컴포넌트(338)는 물리적 가상 머신의 네트워크 구성을 관리하기 위해 사용될 수 있다.
메시지 큐 파트(340)는 코어 파트(326)에서 필요한 메시지 큐 통신을 지원할 수 있다.
모니터링 파트(342)는 프로세스 모니터링 컴포넌트(344), 디스크 모니터링 컴포넌트(346), 네트워크 모니터링 컴포넌트(348) 및 분산 파일 시스템 모니터링 컴포넌트(350)를 포함할 수 있다. 프로세스 모니터링 컴포넌트(344)는 네트워크 연결 저장 장치(122)의 런타임 프로세스 정보를 수집할 수 있다. 디스크 모니터링 컴포넌트(346)는 디스크 헬스(health)(또는 상태) 정보를 수집할 수 있다. 네트워크 모니터링 컴포넌트(348)는 네트워크 인터페이스를 통해 데이터를 수집할 수 있다. 분산 파일 시스템 모니터링 컴포넌트(350)는 분산 파일 시스템(352)의 상태 정보를 수집할 수 있다.
분산 파일 시스템 파트(352)는 네트워크 연결 저장 장치(122) 및 확장 네트워크 연결 저장 장치(124)에 데이터를 분산 저장하기 위한 기능을 제공할 수 있다. 이러한 분산 파일 시스템 파트(352)는 분산 파일 시스템 메타 데이터 관리 컴포넌트(354), 분산 파일 시스템 객체 데이터 관리 컴포넌트(356) 및 분산 파일 시스템 헬스 관리 컴포넌트(358)를 포함할 수 있다.
분산 파일 시스템 메타 데이터 관리 컴포넌트(354)는 메타 데이터를 관리하고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)는 데이터를 객체 수준으로 저장하고 관리하며, 분산 파일 시스템 헬스 관리 컴포넌트(358)는 전체 시스템 상태를 제어할 수 있다. 구체적으로, 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)는 파일 이름 및 폴더 트리와 같은 파일 시스템 메타 데이터를 관리하고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)는 물리적 저장 장치의 모든 실제 데이터를 관리하며, 분산 파일 시스템 헬스 관리 컴포넌트(358)는 모든 노드 상태를 관리하고 전체 파일 작업을 처리할 수 있다.
제어 O/S 파트(360)는 적어도 하나의 가상 머신에 하드웨어의 물리적인 자원을 할당할 수 있다. 이에 따라, 적어도 하나의 가상 머신이 하나의 하드웨어에 탑재되어 가상화되더라도, 주어진 자원에 기초한 예측된 시간 내에 작업이 완료될 수 있어, 실시간성이 구현될 수 있다.
이와 같이 구축된 CnS 노드(300)에서 컴퓨팅 장치(140)를 통해 사용자(362)로부터 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 요청을 수신할 수 있다. 이러한 경우 운영체제 로그인 시스템을 통해 사용자 인증이 이루어질 수 있으며, 사용자에 대한 인증이 완료되면 사용자로부터의 요청이 시작될 수 있다.
다음으로, 요청에 따라 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나가 수행될 수 있다. 사용자에 의한 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 요청은 CnS 노드(300)의 라우팅 파트(302)에 의해서 처리될 수 있다.
라우팅 파트(302)는 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 서비스 파트(304)에서 지원하는 파일 공유 서비스 중 NFS 컴포넌트(318)로 전달하고, NFS 컴포넌트(318)는 이러한 요청을 분산 파일 시스템(352)의 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)로 전달할 수 있다.
이러한 요청을 수신한 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)는 요청에 따라 데이터 읽기, 쓰기, 삭제 등 중 적어도 하나를 수행할 수 있다. 이러한 경우 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관한 로그파일이 생성될 수 있다. 생성된 로그파일은 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)에 의해 수집될 수 있다. 로그파일은 사용자 정보, 사용자 IP, 타임스탬프, 데이터 이름, 데이터 경로, 아이노드(inode)의 ID 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함할 수 있다. 여기서, 아이노드는 데이터를 기술하는 디스크 상의 데이터 구조로서, 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 종류, 아이노드 숫자 등과 같이 데이터에 관한 정보를 포함할 수 있다.
분산 파일 시스템 메타 데이터 관리 컴포넌트(354) 및/또는 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)는 데이터 부인 봉쇄 관리 컴포넌트(332)의 명령에 대응하여 읽기, 쓰기, 삭제 등에 의해 변경된 데이터에 관한 스냅샷(snapshot)을 수집하거나, 변경되기 전의 데이터에 관한 스냅샷을 수집할 수 있다. 이와 같이 스냅샷을 수집하는 동작은 각 컴포넌트의 설정에 따라 수행될 수 있으며, 이에 한정되지 않는다. 예를 들어, 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)가 변경되기 전의 데이터에 관한 스냅샷을 수집하고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)가 변경된 데이터에 관한 스냅샷을 수집할 수 있다. 또는 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)가 변경된 데이터에 관한 스냅샷을 수집하고, 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)가 변경되기 전의 데이터에 관한 스냅샷을 수집할 수도 있다.
이와 같이 수집된 스냅샷은 로그파일과 함께 블록체인 노드(132)로 전달되어 블록체인에 저장될 수 있다. 블록체인 내에 저장 공간이 부족할 경우 스냅샷은 분산 파일 시스템(352)의 저장소에 저장될 수도 있다. 다양한 실시예에서 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)는 스냅샷의 암호화된 ID 또는 스냅샷의 해시 스트링(hash string)을 수집하고, 수집된 ID 또는 해시 스트링이 블록체인 내에 저장될 수 있다. 이를 통해서 블록체인 내의 저장 공간을 절약할 수 있다.
이러한 스냅샷을 이용하여 데이터의 위조 및 변조 발생 시 데이터를 변경 전 상태로 복구할 수 있다. 이와 같은 스냅샷이 로그파일과 함께 증거로서 전달되는 상세한 동작에 대해서는 도 12를 참조하여 하기에서 구체적으로 설명하도록 한다.
다음으로, 수집된 로그파일은 블록체인 노드(132)로 전달되고, 블록체인 노드(132)가 로그파일을 블록에 포함시켜 블록체인을 생성할 수 있다. 구체적으로, 분산 파일 시스템 메타 데이터 관리 컴포넌트(354)는 수집된 로그파일 중 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그 파일, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일 또는 특정 시간 범위에 수행된, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 코어 파트(326)의 데이터 부인 봉쇄 관리 컴포넌트(332)로 전달할 수 있다. 이때, 로그파일뿐만 아니라 스냅샷 또는 스냅샷 관련 정보(예: 암호화된 ID 또는 해시 스트링)가 함께 전달될 수 있다.
다양한 실시예에서 수집된 로그파일 중 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그 파일, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일 또는 특정 시간 범위에 수행된, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일은 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)를 통해서 데이터 부인 봉쇄 관리 컴포넌트(332)로 전달될 수도 있다.
이를 수신한 데이터 부인 봉쇄 관리 컴포넌트(332)는 로그파일을 트랜잭션으로서 블록체인 노드(132)로 전달할 수 있다. 이때, 로그파일뿐만 아니라 스냅샷 또는 스냅샷 관련 정보가 함께 전달될 수 있다. 또한, 데이터 부인 봉쇄 관리 컴포넌트(332)는 전술한 바와 같이 분산 파일 시스템 메타 데이터 관리 컴포넌트(354) 및/또는 분산 파일 시스템 객체 데이터 관리 컴포넌트(356)를 통해서 스냅샷 및/또는 스냅샷 관련 정보를 수집할 수 있다. 여기서, 트랜잭션은 블록체인 상에 존재하는 데이터 읽기, 쓰기, 삭제 등을 위한 스마트 컨트랙트(smart contract)의 상태를 변경시키 위한 데이터 구조체로서 전자 서명에 의해 암호화될 수 있다. 스마트 컨트랙트는 solidity 언어로 작성된 응용프로그램으로서, 컴파일된 코드 형태로 각 블록체인 노드로 배포될 수 있다. 배포된 스마트 컨트랙트는 각 블록체인 노드의 EVM(Ethereum Virtual Machine)에서 실행되어 블록 내의 상태 변화 또는 데이터 저장 등의 기능을 수행할 수 있다.
로그파일을 수신한 블록체인 노드(132)는 스마트 컨트랙트를 실행시켜 로그파일을 블록체인에 저장할 수 있다. 스마트 컨트랙트의 코드 내 함수의 실행에 의해 데이터 읽기, 쓰기, 삭제 등에 관한 로그파일이 블록체인에 저장될 수 있다. 이때, 로그파일뿐만 아니라 스냅샷 또는 스냅샷 관련 정보도 함께 저장될 수 있다.
구체적으로, 블록체인 노드(132)는 스마트 컨트랙트 실행에 의해 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시키고, 이러한 블록을 연결하여 싱글 블록체인을 생성하거나, 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시키고, 이러한 블록을 연결하여 싱글 블록체인을 생성할 수 있다.
다양한 실시예에서 블록체인 노드(132)는 스마트 컨트랙트 실행에 의해 제1 시간 범위에 수행된 제1 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시키고, 제2 시간 범위에 수행된 제1 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시켜 이러한 블록을 연결하여 제1 싱글 블록체인을 생성하고, 제1 시간 범위에 수행된 제2 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시키고, 제2 시간 범위에 수행된 제2 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 하나의 블록에 포함시켜 제2 싱글 블록 체인을 생성한 후 생성된 제1 싱글 블록체인 및 제2 싱글 블록체인을 연결한 멀티 블록체인을 생성할 수 있다. 제시된 실시예에서는 2개의 싱글 블록체인을 연결하여 멀티 블록체인을 생성하는 것으로 설명하였으나, 이에 한정되지 않으며, 다수의 싱글 블록체인이 연결된 멀티 블록체인을 생성하는 등의 다양한 방법으로 생성될 수 있다.
이를 통해서 본 발명은 데이터에 대한 신뢰성, 무결성, 기밀성 및 가용성 등을 보장할 수 있고, 데이터 복구를 위한 데이터 버전 관리를 할 수 있다. 또한, 본 발명은 데이터에 대한 보안성을 향상시키고, 데이터 복구를 위해 소요되는 시간 및 자원을 최소화할 수 있다.
하기에서는 프로세서 상에 구축된 적어도 하나의 가상 머신을 증거 질의 동작에 대해서 도 4를 참조하여 상세하게 설명하도록 한다.
도 4는 본 발명의 실시예에 따른 증거 질의 동작에 대하여 설명하기 위한 블록도이다. 제시된 실시예에서 각 파트 및 각 컴포넌트의 동작은 도 3에서 상술한 내용과 일치할 수 있다.
도 4를 참조하면, 증거 질의 동작은 System Administration 컴포넌트(306)에 의해서 수행되며, 블록체인 노드(132)에 저장된 로그파일을 검색하기 위한 동작을 의미할 수 있다.
System Administration 컴포넌트(306)는 컴퓨팅 장치(140)를 통해 사용자(362)로부터 특정 시간 범위에 해당하거나, 특정 데이터에 대하여 저장된 로그파일을 검색하기 위한 질의(query)를 수신한다. 이러한 질의는 검색하고자 하는 데이터 이름 또는 타임스탬프가 포함될 수 있다. 이때, 타임스탬프는 최근 수정된 타임스탬프일 수 있다. System Administration 컴포넌트(306)는 이러한 질의를 데이터 부인 봉쇄 관리 컴포넌트(332)로 전달하고, 질의를 수신한 데이터 부인 봉쇄 관리 컴포넌트(332)는 질의에 포함된 데이터 이름 및/또는 타임스탬프에 해당하는 로그파일을 검색하기 위한 스마트 컨트랙트를 각 블록체인 노드로 배포할 수 있다.
블록체인 노드(132)는 스마트 컨트랙트를 실행시켜 질의에 포함된 데이터 이름 또는 타임스탬프에 해당하는 로그파일을 데이터 부인 봉쇄 관리 컴포넌트(332)로 전달할 수 있다. 이때, 로그파일과 함께 로그파일이 저장된 블록 넘버(block number) 및/또는 이전 블록을 나타내는 해시 포인터(hash pointer)가 전달될 수 있다.
데이터 부인 봉쇄 관리 컴포넌트(332)는 획득된 로그파일을 System Administration 컴포넌트(306)로 전달하고, System Administration 컴포넌트(306)는 획득된 로그파일을 컴퓨터 장치(140)로 전달함으로써, 사용자는 블록체인에 저장된 로그파일 중 원하는 로그파일을 검색할 수 있다.
이를 통해서 본 발명은 블록체인에 저장된 증거를 검색하기 위해 소요되는 시간을 최소화할 수 있다.
도 5는 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다. 제시된 실시예에서 하기의 동작들은 네트워크 연결 저장 장치(122, 200)의 프로세서(230) 또는 프로세서(230) 상에 구축된 적어도 하나의 가상 머신 또는 컨테이너에 의해서 수행될 수 있다.
도 1 및 도 5를 참조하면, 네트워크 연결 저장 장치(122)는 컴퓨팅 장치(140)로부터 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나의 대한 요청을 수신하고(S500), 요청에 따라 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행한다(S510). 네트워크 연결 저장 장치(122)는 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하고(S520), 블록체인 노드(132)가 로그파일을 블록에 포함시켜 블록체인을 생성하도록 로그파일을 블록체인 노드(132)로 전달한다(S530).
도 6은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다. 제시된 실시예에서는 시간 범위별 싱글 블록체인을 생성하는 과정에 대해서 설명하도록 한다.
도 1 및 도 6을 참조하면, S600 단계 내지 S620 단계는 도 5의 상술한 S500 단계 내지 S520 단계와 일치할 수 있다.
S620 단계 이후 네트워크 연결 저장 장치(122)는 생성된 로그파일 중 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 블록체인 노드(132)로 전달한다(S630). 이를 수신한 블록체인 노드(132)는 로그파일을 블록에 포함시켜 싱글 블록체인을 생성하거나, 블록체인이 이미 존재하는 경우 해당 싱글 블록체인에 블록을 연결할 수 있다. 블록체인의 각 블록은 서로 다른 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이 포함될 수 있다. 이와 같이 블록체인 노드(132)는 시간 범위별 로그파일이 포함된 블록을 연결하여 싱글 블록체인을 생성할 수 있다.
도 7은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다. 제시된 실시예에서는 데이터별 싱글 블록체인을 생성하는 과정에 대해서 설명하도록 한다.
도 1 및 도 7을 참조하면, S700 단계 내지 S720 단계는 도 5 및 도 6에서 상술한 S500 단계 내지 S520 단계 및/또는 S600 단계 내지 S620 단계와 일치할 수 있다.
S720 단계 이후 네트워크 연결 저장 장치(122)는 생성된 로그파일 중 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 블록체인 노드(132)로 전달한다(S730). 이를 수신한 블록체인 노드(132)는 로그파일을 블록에 포함시켜 싱글 블록체인을 생성하거나, 블록체인이 이미 존재하는 경우 해당 싱글 블록체인에 연결할 수 있다. 블록체인의 각 블록은 서로 다른 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이 포함될 수 있다. 이와 같이 블록체인 노드(132)는 데이터별 로그파일이 포함된 블록을 연결하여 싱글 블록체인을 생성할 수 있다.
도 8은 본 발명의 실시예에 따른 네트워크 연결 저장 장치에서 블록체인을 이용하여 데이터 읽기, 쓰기, 삭제 중 적어도 하나에 따른 로그파일을 관리하는 방법을 나타내는 개략적인 흐름도이다. 시간 범위 및 데이터에 따른 멀티 블록체인을 생성하는 과정에 대해서 설명하도록 한다.
도 1 및 도 8을 참조하면, S800 단계 내지 S820 단계는 도 5, 도 6 및 도 7에서 상술한 S500 단계 내지 S520 단계, S600 단계 내지 S620 단계 및/또는 S700 단계 내지 S720 단계와 일치할 수 있다.
S820 단계 이후 네트워크 연결 저장 장치(122)는 생성된 로그파일 중 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 블록체인 노드(132)로 전달한다(S830). 이를 수신한 블록체인 노드(132)는 특정 데이터에 대한 로그파일 중 특정 시간 범위에 해당하는 로그파일을 블록에 포함시켜 멀티 블록체인을 생성하거나, 이미 존재하는 멀티 블록체인에 연결할 수 있다. 멀티 블록체인은 동일 데이터에 대한 시간 범위별 블록이 연결된 싱글 블록체인의 집합을 의미할 수 있다. 예를 들어, 블록체인 노드(132)는 제1 데이터, 제2 데이터, 제3 데이터, … 제n 데이터 각각에 대응하는 싱글 블록체인을 생성하고, 생성된 싱글 블록체인을 연결하여 멀티 블록체인을 생성할 수 있다. 이러한 복수의 싱글 블록체인은 제네시스 블록(genesis block)에 의해서 서로 연결될 수 있다. 제1 데이터, 제2 데이터, 제3 데이터, …제n 데이터 각각에 대응하는 싱글 블록체인에 포함된 블록은 시간 범위별로 각 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이 포함될 수 있다. 이와 같이 블록체인 노드(132)는 시간 범위별 및 데이터별 로그파일이 포함된 블록을 연결하여 멀티 블록체인을 생성할 수 있다.
하기에서는 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 저장한 제1 타입의 싱글 블록체인에 대해서 도 9를 참조하여 설명하도록 한다.
도 9는 본 발명의 실시예에 따른 제1 타입의 싱글 블록체인을 설명하기 위한 예시도이다. 제시된 실시예에서는 블록체인 노드(132)에서 제1 타입의 싱글 블록체인을 생성하는 경우를 설명하도록 한다.
도 9를 참조하면, 블록체인 노드(132)는 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 블록에 포함시켜 제1 타입의 싱글 블록체인(900)을 생성할 수 있다.
제1 타입의 싱글 블록체인(900)은 제1 블록(910), 제2 블록(920), …제n 블록(930)이 연결될 수 있다(n>0). 예를 들어, 제1 블록(910)은 제1 타임스탬프(912)에 해당하는 제1 데이터의 제1 로그파일(914), 제2 데이터의 제1 로그파일(916), …제N 데이터의 제n 로그파일(918)을 포함할 수 있고, 제2 블록(920)은 제1 타임스탬프(912)와 다른 제2 타임스탬프(922)에 해당하는 제3 데이터의 제1 로그파일(924), 제2 데이터의 제2 로그파일(926), …제M 데이터의 제m 로그파일(928)을 포함할 수 있다(N>0, M>0, m>0).
구체적으로, 블록체인 노드(132)는 제1 타임스탬프(912)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(914), 제1 타임스탬프(912)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(916), …제1 타임스탬프(912)에 수행된 제M 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n 로그파일(918)을 제1 블록(910)에 포함시켜 제1 타입의 싱글 블록체인(900)에 연결할 수 있다.
블록체인 노드(132)는 제2 타임스탬프(922)에 수행된 제3 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(924), 제2 타임스탬프(922)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제2 로그파일(926), …제2 타임스탬프(922)에 수행된 제M 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m 로그파일(928)을 제2 블록(920)에 포함시켜 제1 타입의 싱글 블록체인(900)에 연결할 수 있다.
하기에서는 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 저장한 제2 타입의 싱글 블록체인에 대해서 도 10를 참조하여 설명하도록 한다.
도 10은 본 발명의 실시예에 따른 제2 타입의 싱글 블록체인을 설명하기 위한 예시도이다. 제시된 실시예에서는 블록체인 노드(132)에서 제2 타입의 싱글 블록체인을 생성하는 경우를 설명하도록 한다.
도 10을 참조하면, 블록체인 노드(132)는 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 블록에 포함시켜 제2 타입의 싱글 블록체인(1000)을 생성할 수 있다.
제2 타입의 싱글 블록체인(1000)은 제1 블록(1010), 제2 블록(1020), …제n 블록(1030)이 연결될 수 있다. 예를 들어, 제1 블록(1010)은 제1 데이터의 제1 로그파일(1012), 제1 데이터의 제2 로그파일(1014), …제1 데이터의 제n 로그파일(1016)을 포함하고, 제2 블록(1020)은 제3 데이터의 제1 로그파일(1022), 제3 데이터의 제2 로그파일(1024), …제3 데이터의 제m 로그파일(1026)을 포함할 수 있다.
구체적으로, 블록체인 노드(132)는 제1 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제1 로그파일(1012), 제1 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제2 로그파일(1014), …제1 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제n 로그파일(1016)을 제1 블록(1010)에 포함시켜 제2 타입의 싱글 블록체인(1000)에 연결할 수 있다.
블록체인 노드(132)는 제3 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제1 로그파일(1022), 제3 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제2 로그파일(1024), …제3 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 제m 로그파일(1026)을 제2 블록(1020)에 포함시켜 제2 타입의 싱글 블록체인(1000)에 연결할 수 있다.
하기에서는 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 저장한 멀티 블록체인에 대해서 도 11을 참조하여 설명하도록 한다.
도 11은 본 발명의 실시예에 따른 멀티 블록체인을 설명하기 위한 예시도이다. 제시된 실시예에서는 블록체인 노드(132)에서 멀티 블록체인을 생성하는 경우를 설명하도록 한다.
도 11을 참조하면, 블록체인 노드(132)는 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 로그파일을 블록에 포함시켜 멀티 블록체인(1100)을 생성할 수 있다.
멀티 블록체인(1100)은 제1 데이터의 로그파일이 저장된 제1 블록(1120), 제2 블록(1130), …제n 블록(1140)이 연결된 제1 싱글 블록체인(1112), 및 제2 데이터의 로그파일이 저장된 제1 블록(1150), 제2 블록(1160), …제n 블록(1170)이 연결된 제2 싱글 블록체인(1114)을 포함하고, 제1 싱글 블록체인(1112) 및 제2 싱글 블록체인(1114)은 제네시스 블록(1110)에 의해 연결될 수 있다.
예를 들어, 제1 싱글 블록체인(1112)의 제1 블록(1120)은 제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(1124), 제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제2 로그파일(1126), …제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n 로그파일(1128)을 포함할 수 있다.
제1 싱글 블록체인(1112)의 제2 블록(1130)은 제1 타임스탬프(1122)와 다른 제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+3 로그파일(1134), 제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+4 로그파일(1136), …제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+m 로그파일(1138)을 포함할 수 있다.
제2 싱글 블록체인(1114)의 제1 블록(1150)은 제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(1124), 제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제2 로그파일(1156), …제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m 로그파일(1158)을 포함할 수 있다. 여기서, 제1 타임스탬프(1152)는 제1 타임스탬프(1122)와 서로 일치하거나, 상이할 수 있다.
제2 싱글 블록체인(1114)의 제2 블록(1160)은 제1 타임스탬프(1152)와 다른 제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+1 로그파일(1164), 제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+2 로그파일(1166), …제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+n 로그파일(1168)을 포함할 수 있다. 여기서, 제2 타임스탬프(1162)는 제2 타임스탬프(1132)와 서로 일치하거나, 상이할 수 있다.
구체적으로, 블록체인 노드(132)는 제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(1124), 제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제2 로그파일(1126), …제1 타임스탬프(1122)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n 로그파일(1128)을 제1 블록(1120)에 포함시켜 제1 싱글 블록체인(1112)에 연결할 수 있다.
블록체인 노드(132)는 제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+3 로그파일(1134), 제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+4 로그파일(1136), …제2 타임스탬프(1132)에 수행된 제1 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제n+m 로그파일(1138)을 제2 블록(1130)에 포함시켜 제1 싱글 블록체인(1112)에 연결할 수 있다.
블록체인 노드(132)는 제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제1 로그파일(1154), 제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제2 로그파일(1156), …제1 타임스탬프(1152)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m 로그파일(1158)을 제1 블록(1150)에 포함시켜 제2 싱글 블록체인(1114)에 연결할 수 있다.
블록체인 노드(132)는 제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+1 로그파일(1164), 제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+2 로그파일(1166), …제2 타임스탬프(1162)에 수행된 제2 데이터의 읽기, 쓰기, 삭제 등 중 적어도 하나에 관하여 생성된 제m+n 로그파일(1168)을 제2 블록(1160)에 포함시켜 제2 싱글 블록체인(1114)에 연결할 수 있다.
제시된 실시예에서 M, N, m, n은 서로 다른 숫자이거나, 동일한 숫자일 수도 있다.
제시된 실시예에서 멀티 블록체인은 제1 데이터에 대응하는 제1 싱글 블록체인 및 제2 데이터에 대응하는 제2 싱글 블록체인이 포함되는 것으로 설명하였으나, 이에 한정되지 않으며, 다수의 데이터 각각에 대응하는 싱글 블록체인이 연결되어 멀티 블록체인이 생성될 수 있다.
하기에서는 트랜잭션의 형태로 전송되는 증거에 대해서 도 12를 참조하여 보다 상세하게 설명하도록 한다. 이러한 증거에는 스냅샷 및/또는 스냅샷 관련 정보가 포함될 수 있다.
도 12는 본 발명의 실시예에 따른 블록체인 노드에 전송되는 데이터의 수정과 연관된 증거를 설명하기 위한 개략도이다.
도 12를 참조하면, 루트 폴더 아래 저장된 테스트(test)라는 이름을 가진 파일이 사용자1(user1)이라는 사용자에 의해 언링크(unlink) 작업이 수행된 후 수집된 증거를 나타낸다. 이 때, 파일의 수정된 부분에 대한 스냅샷의 해쉬 스트링 af6b7066-de4a-45d0-9f7c-1c7949bfc4776 및 스냅샷의 암호화된 ID 7ef0ccaf-78ad-4c45-aaea-09c86e53dcad도 증거로 포함되어 있다. 이러한 해쉬 스트링을 이용하여 분산 파일 시스템(352)의 저장소에 저장된 스냅샷이 검색되고, 검색된 스냅샷을 통해 데이터의 긴급 복구가 가능하다. 이와 같이 용량이 큰 스냅샷을 블록체인 장부에 직접 저장하지 않고 분산 파일 시스템에 저장하므로, 블록체인 내의 공간 절약이 가능하다.
블록체인 노드(132)에 전송되는 증거는 상술된 증거에 제한되지 않고 그 외의 다른 증거를 포함할 수 있다.
이와 같이 본 발명은 데이터에 대한 읽기, 쓰기, 삭제 등 중 적어도 하나가 수행되면 수행된 읽기, 쓰기, 삭제 등 중 적어도 하나에 대한 로그파일을 블록체인을 이용하여 저장함으로써, 데이터에 대한 신뢰성, 무결성, 기밀성 및 가용성 등을 보장할 수 있고, 데이터 복구를 위한 데이터 버전 관리를 할 수 있다.
또한, 본 발명은 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 등에 의해 변경된 데이터에 대한 증거를 블록체인에 저장함으로써, 데이터에 대한 보안성을 향상시키고, 데이터 복구를 위해 소요되는 시간 및 자원을 최소화할 수 있다.
또한, 본 발명은 특정 시간 범위에 대응하여 생성된 로그파일, 특정 데이터에 대응하여 생성된 로그파일 및 특정 시간 범위에 따른 특정 데이터에 대응하여 생성된 로그파일 각각을 싱글 블록체인 또는 멀티 블록체인에 저장함으로써, 블록체인에 저장된 증거를 검색하기 위해 소요되는 시간 또한 최소화할 수 있다.
본 발명의 실시예에 따른 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 블록체인을 이용한 데이터 관리 시스템
110: 게이트웨이
120: 네트워크 연결 저장 시스템
122, 200: 네트워크 연결 저장 장치
124: 확장 네트워크 연결 저장 장치
130: 블록체인 노드 시스템
132, 134: 블록체인 노드
140: 컴퓨팅 장치
210: 통신부
220: 저장부
230: 프로세서

Claims (18)

  1. 블록체인을 이용한 데이터 관리 장치에 있어서,
    컴퓨팅 장치 및 블록체인 노드와 통신하도록 구성된 통신부;
    상기 데이터를 분산 저장하도록 구성된 저장부;
    상기 통신부 및 상기 저장부와 동작 가능하게 연결되도록 구성된 프로세서를 포함하고,
    상기 프로세서는,
    상기 컴퓨팅 장치로부터 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 수신하고,
    상기 요청에 따라 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하고,
    상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하고,
    상기 블록체인 노드가 상기 생성된 로그파일을 블록에 포함시켜 블록체인을 생성하도록 상기 생성된 로그파일을 상기 블록체인 노드에 전달하도록 구성되고,
    상기 블록에 포함되는 로그파일은, 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이거나, 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일인, 블록체인을 이용한 데이터 관리 장치.
  2. 제1항에 있어서, 상기 블록에 포함되는 로그파일은,
    상기 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일인, 블록체인을 이용한 데이터 관리 장치.
  3. 제1항에 있어서, 상기 로그파일은,
    사용자 정보, 사용자 IP, 타임스탬프, 데이터 이름, 데이터 경로, 아이노드(inode)의 ID 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함하는, 블록체인을 이용한 데이터 관리 장치.
  4. 제1항에 있어서, 상기 프로세서는,
    상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 의해 변경된 데이터에 관한 스냅샷(snapshot)을 상기 블록체인 노드로 전달하도록 구성된, 블록체인을 이용한 데이터 관리 장치.
  5. 제1항에 있어서, 상기 블록체인은,
    상기 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제1 타입의 싱글 블록체인(single blockchain)인, 블록체인을 이용한 데이터 관리 장치.
  6. 제1항에 있어서, 상기 블록체인은,
    상기 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제2 타입의 싱글 블록체인인, 블록체인을 이용한 데이터 관리 장치.
  7. 제2항에 있어서, 상기 블록체인은,
    상기 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 멀티 블록체인(multi-blockchain)인, 블록체인을 이용한 데이터 관리 장치.
  8. 제7항에 있어서, 상기 멀티 블록체인은,
    제1 데이터에 대응하여 기 설정된 시간 범위에 따라 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제1 싱글 블록체인, 및 제2 데이터에 대응하여 기 설정된 시간 범위에 따라 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제2 싱글 블록체인이 연결된, 블록체인을 이용한 데이터 관리 장치.
  9. 제1항에 있어서, 상기 프로세서가 수행하는 동작은,
    상기 프로세서 상에 구축된 적어도 하나의 가상 머신 또는 컨테이너에 의해서 수행되는, 블록체인을 이용한 데이터 관리 장치.
  10. 블록체인을 이용한 데이터 관리 장치의 프로세서에 의해서 수행되는 블록체인을 이용한 데이터 관리 방법에 있어서,
    컴퓨팅 장치로부터 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 대한 요청을 수신하는 단계;
    상기 요청에 따라 상기 분산 저장된 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나를 수행하는 단계;
    상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관한 로그파일을 생성하는 단계; 및
    상기 블록체인 노드가 상기 생성된 로그파일을 블록에 포함시켜 블록체인을 생성하도록 상기 생성된 로그파일을 상기 블록체인 노드에 전달하는 단계를 포함하고,
    상기 블록에 포함되는 로그파일은, 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일이거나, 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일인, 블록체인을 이용한 데이터 관리 방법.
  11. 제10항에 있어서, 상기 블록에 포함되는 로그파일은,
    상기 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일인, 블록체인을 이용한 데이터 관리 방법.
  12. 제10항에 있어서, 상기 로그파일은,
    사용자 정보, 사용자 IP, 타임스탬프, 데이터 이름, 데이터 경로, 아이노드(inode)의 ID 및 사용자 오퍼레이션 데이터 중 적어도 하나를 포함하는, 블록체인을 이용한 데이터 관리 방법.
  13. 제10항에 있어서,
    상기 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 의해 변경된 데이터에 관한 스냅샷(snapshot)을 상기 블록체인 노드로 전달하는 단계를 더 포함하는, 블록체인을 이용한 데이터 관리 방법.
  14. 제10항에 있어서, 상기 블록체인은,
    상기 특정 시간 범위에 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제1 타입의 싱글 블록체인(single blockchain)인, 블록체인을 이용한 데이터 관리 방법.
  15. 제10항에 있어서, 상기 블록체인은,
    상기 특정 데이터에 관련하여 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제2 타입의 싱글 블록체인인, 블록체인을 이용한 데이터 관리 장치 방법.
  16. 제11항에 있어서, 상기 블록체인은,
    상기 특정 시간 범위에 수행된 특정 데이터에 대한 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 멀티 블록체인(multi-blockchain)인, 블록체인을 이용한 데이터 관리 방법.
  17. 제16항에 있어서, 상기 멀티 블록체인은,
    제1 데이터에 대응하여 기 설정된 시간 범위에 따라 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제1 싱글 블록체인, 및 제2 데이터에 대응하여 기 설정된 시간 범위에 따라 수행된 읽기, 쓰기, 삭제 중 적어도 하나에 관하여 생성된 로그파일을 포함하는 블록이 연결된 제2 싱글 블록체인이 연결된, 블록체인을 이용한 데이터 관리 방법.
  18. 제10항에 있어서, 상기 단계들은,
    상기 프로세서 상에 구축된 적어도 하나의 가상 머신 또는 컨테이너에 의해서 수행되는, 블록체인을 이용한 데이터 관리 방법.
KR1020190098812A 2019-08-13 2019-08-13 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법 KR102281901B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190098812A KR102281901B1 (ko) 2019-08-13 2019-08-13 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190098812A KR102281901B1 (ko) 2019-08-13 2019-08-13 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법

Publications (2)

Publication Number Publication Date
KR20210019771A true KR20210019771A (ko) 2021-02-23
KR102281901B1 KR102281901B1 (ko) 2021-07-23

Family

ID=74688137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190098812A KR102281901B1 (ko) 2019-08-13 2019-08-13 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법

Country Status (1)

Country Link
KR (1) KR102281901B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378803A (zh) * 2022-04-13 2022-11-22 网易(杭州)网络有限公司 日志管理方法、装置、区块链节点和存储介质
KR20230049330A (ko) * 2021-10-06 2023-04-13 계명대학교 산학협력단 블록체인 네트워크 기반 포트폴리오 발급 시스템의 제어방법, 이를 수행하기 위한 기록매체 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060122677A (ko) * 2004-02-25 2006-11-30 마이크로소프트 코포레이션 데이터베이스 데이터 복구 시스템 및 방법
KR20170049375A (ko) * 2015-10-28 2017-05-10 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치
KR20180085570A (ko) * 2017-01-19 2018-07-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
KR20190019004A (ko) * 2017-08-16 2019-02-26 김용태 블록체인 기반의 거래 시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060122677A (ko) * 2004-02-25 2006-11-30 마이크로소프트 코포레이션 데이터베이스 데이터 복구 시스템 및 방법
KR20170049375A (ko) * 2015-10-28 2017-05-10 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치
KR20180085570A (ko) * 2017-01-19 2018-07-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
KR20190019004A (ko) * 2017-08-16 2019-02-26 김용태 블록체인 기반의 거래 시스템 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
신재복 외 2인, 안드로이드 플랫폼 상의 PosFFS2를 위한 스냅샷 지원 파일 브라우저 설계 및 구현, 한국정보과학회 2010년 가을 학술발표논문집 Vol37. No.2(A) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230049330A (ko) * 2021-10-06 2023-04-13 계명대학교 산학협력단 블록체인 네트워크 기반 포트폴리오 발급 시스템의 제어방법, 이를 수행하기 위한 기록매체 및 시스템
CN115378803A (zh) * 2022-04-13 2022-11-22 网易(杭州)网络有限公司 日志管理方法、装置、区块链节点和存储介质
CN115378803B (zh) * 2022-04-13 2023-12-12 网易(杭州)网络有限公司 日志管理方法、装置、区块链节点和存储介质

Also Published As

Publication number Publication date
KR102281901B1 (ko) 2021-07-23

Similar Documents

Publication Publication Date Title
US10956601B2 (en) Fully managed account level blob data encryption in a distributed storage environment
EP4047487A1 (en) File storage method, terminal, and storage medium
US20230334024A1 (en) Universal file virtualization with disaggregated control plane, security plane and decentralized data plane
US10756887B2 (en) Method and system for securely replicating encrypted deduplicated storages
EP3317998B1 (en) Resilient secret sharing cloud based architecture for data vault
JP6603791B2 (ja) デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル
JP5446860B2 (ja) 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US9836244B2 (en) System and method for resource sharing across multi-cloud arrays
US10289694B1 (en) Method and system for restoring encrypted files from a virtual machine image
KR101434128B1 (ko) 웹 서비스 클라이언트 인터페이스를 갖는 분배형 저장 시스템
US10659225B2 (en) Encrypting existing live unencrypted data using age-based garbage collection
JP2018537740A (ja) デジタルコンテンツアイテムのマルチプレミスホスティングのための同期プロトコル
US7487219B1 (en) Virtual storage device from multiple online accounts
JP2007028502A (ja) ストレージ装置
JP2007073004A (ja) データ保全情報装置、分散ストレージシステム及びその方法
US11327686B2 (en) Apparatus and method for managing integrated storage supporting hierarchical structure
WO2020235512A1 (ja) 文書管理システム
KR102281901B1 (ko) 블록체인을 이용한 데이터 관리 장치 및 이를 위한 방법
US11614901B2 (en) Apparatus and method for processing sensitive data
KR102230764B1 (ko) 블록체인 기반 파일 수정 증거 저장 방법 및 이를 이용하는 장치
JP5951702B2 (ja) ファイルシステム、秘密分散サーバ、ファイル管理方法及びプログラム
KR20180132398A (ko) 클라우드계정을 이용한 서비스내부데이터 저장방법 및 프로그램
KR20210038285A (ko) 계층형 구조 지원 통합 스토리지 관리 장치 및 방법
US10635838B1 (en) Cloud based dead drop for isolated recovery systems
JP6435616B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法および制御プログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant