KR102622665B1 - 블록체인 기반의 데이터 관리 방법 및 장치 - Google Patents

블록체인 기반의 데이터 관리 방법 및 장치 Download PDF

Info

Publication number
KR102622665B1
KR102622665B1 KR1020230019131A KR20230019131A KR102622665B1 KR 102622665 B1 KR102622665 B1 KR 102622665B1 KR 1020230019131 A KR1020230019131 A KR 1020230019131A KR 20230019131 A KR20230019131 A KR 20230019131A KR 102622665 B1 KR102622665 B1 KR 102622665B1
Authority
KR
South Korea
Prior art keywords
block
blockchain
blocks
original
information
Prior art date
Application number
KR1020230019131A
Other languages
English (en)
Inventor
이근홍
김지원
강종혁
김하림
Original Assignee
주식회사 레드윗
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 레드윗 filed Critical 주식회사 레드윗
Priority to KR1020230019131A priority Critical patent/KR102622665B1/ko
Application granted granted Critical
Publication of KR102622665B1 publication Critical patent/KR102622665B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Abstract

본 개시는 블록체인 기반의 데이터 관리 방법 및 장치에 관한 것이다. 본 개시의 일 실시예는, 사용자의 원본 데이터에 대한 제1 블록을 생성하는 단계; 상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하는 단계; 상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하는 단계; 및 상기 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록하는 단계;를 포함하는, 블록체인 기반의 데이터 관리 방법을 제공한다.

Description

블록체인 기반의 데이터 관리 방법 및 장치{METHOD AND APPARATUS FOR MANAGING DATA BASED ON BLOCKCHAIN}
본 개시는 블록체인 기반의 데이터 관리 방법 및 장치를 제공한다.
블록체인은 동일 원장을 모든 노드가 공유하여 거래 내역을 투명하게 운영하고 더불어 해킹과 변조를 막는 기술이다. 이러한 블록체인은 트랜잭션을 포함하는 블록들이 체인 형태로 연결되는 구조를 갖는다.
그러나 블록체인에 기록되는 내용은 데이터 종류에 무관하게 선형적인 순서를 가지고 체인으로 연결되므로 데이터에 대한 하나의 프로세스를 데이터별로 관리할 수 없다는 문제점이 있었다.
또한, 블록체인 마이그레이션이 필요한 경우 상기 데이터에 대한 하나의 프로세스를 별도로 마이그레이션 할 수 없거나, 블록체인의 모든 블록 해시를 참조하여 상기 프로세스에 관한 정보를 찾아야 하기 때문에 효율성이 매우 낮은 문제점이 있었다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 개시의 목적은 블록체인 기반의 데이터 관리 방법 및 장치를 제공하는 데 있다. 본 개시가 해결하고자 하는 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 개시의 다른 과제 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 개시의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시가 해결하고자 하는 과제 및 장점들은 특허 청구범위에 나타난 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 개시의 제1 측면은, 사용자의 원본 데이터에 대한 제1 블록을 생성하는 단계; 상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하는 단계; 상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하는 단계; 및 상기 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록하는 단계;를 포함하는 블록체인 기반의 데이터 관리 방법을 제공할 수 있다.
본 개시의 제2 측면은, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 동작하는 프로세서;를 포함하되, 상기 프로세서는, 사용자의 원본 데이터에 대한 제1 블록을 생성하고, 상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하고, 상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하고, 상기 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록하는, 블록체인 기반의 데이터 관리 장치를 제공할 수 있다.
본 개시의 제 3 측면은, 제 1 측면의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 장치 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 더 제공될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
전술한 본 개시의 과제 해결 수단에 의하면, 데이터에 대한 프로세스를 한 블록체인 안에서 별개로 관리할 수 있고, 데이터에 대한 인증 과정을 블록체인 내에서의 시간 순서와 별개로 증명할 수 있다.
또한, 본 개시의 과제 해결 수단에 의하면, 블록체인 마이그레이션이 용이한 데이터 관리 방법을 제시할 수 있다.
도 1 은 일 실시예에 따른 IPFS 기반의 파일 분산 저장 시스템의 개략적인 구성을 나타낸 개념도이다.
도 2는 일 실시예에 따른 노드의 구성을 도시한 블록도이다.
도 3는 일 실시예에 따른 블록 및 블록체인을 도시한 개념도이다.
도 4는 일 실시예에 따른 블록체인 기반의 데이터 관리 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 가상 블록체인을 구현하는 과정을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 원본 블록체인의 구성을 나타내는 블록도이다.
도 7은 일 실시예에 따른 블록체인 마이그레이션 과정을 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 블록체인 기반의 데이터 관리 장치의 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 아래에서 제시되는 실시예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 “가지다” 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단" 및 "구성"등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 IPFS 기반의 파일 분산 저장 시스템의 개략적인 구성을 나타낸 개념도이다.
도 1을 참조하면, IPFS 기반의 파일 분산 저장 시스템(100)은 메인 서버(110), IPFS 네트워크(120), 공유자 단말(130) 및 요청자 단말(140)을 포함할 수 있다. 또한, IPFS 네트워크(120)는 IPFS 노드(Node)(121, 122, 123, 124)를 포함할 수 있다.
메인 서버(110)는 IPFS 네트워크(120)에 대한 관제 및 관리를 수행하는 것으로서, 이 때 메인 서버(110)가 피어 리더(Peer Leader) 역할을 수행하는 것이라 할 수 있다. 따라서 IPFS 노드(121, 122, 123, 124) 중 피어 리더의 역할을 수행하는 것이 메인 서버(110)가 될 수 있다. 혹은 별도의 메인 서버(110)를 구비하여 IPFS 노드(121, 122, 123, 124)에 대한 관리 역할을 수행하게 하는 것도 가능하다.
즉, 메인 서버(110)는 파일 암호화, 분할 처리, 그리고 IPFS 노드(121, 122, 123, 124)로의 분산 저장을 수행하는 주체가 될 수 있으며, IPFS 네트워크(120)를 구성하며 피어 리더의 역할을 수행할 수 있는 것이라면 별도의 제한을 두지 않는다.
더불어 메인 서버(110)는 IPFS 노드(121, 122, 123, 124)의 운영 상태를 파악하는 능동적 감시 및 데이터의 업로드/다운로드 상태를 모니터링하는 수동적 감시를 통해 IPFS 노드(121, 122, 123, 124) 및 그를 통한 데이터 분산 저장, 데이터의 업로드 및 다운로드에 대한 관제 및 모니터링을 수행하는 것이라 할 수 있다.
또한, 도 1에 도시하지는 않았으나 메인 서버(110)는 사용자 단말(130)에 각 사용자 별 고유 코드가 탑재된 애플리케이션(Application)을 배포하고 통신하며, 문서의 검증과 확인 및 복원결과와 처리된 이력을 관리하고, 사용자 단말의 변경 또는 분실에 대비한 재인증을 처리하는 애플리케이션 서버(미도시)를 더 포함할 수 있다.
IPFS 노드(121, 122, 123, 124)는 IPFS 네트워크(120)에 있어서 파일이 분할된 데이터 조각에 대한 저장 처리뿐만 아니라 해당 파일의 다운로드 내역 또는 업로드 내역을 포함할 수 있는 트랜잭션(Transaction) 정보가 포함된 블록 및 해당 블록이 쌓인 블록체인에 대한 사본을 저장하는 기능을 수행한다. 블록 및 블록체인에 대하여는 도 3에서 상세히 설명한다.
IPFS 노드(121, 122, 123, 124)는 콘텐츠 ID(Contents Identification, CID)를 입력으로 받고 콘텐츠 ID의 원본 데이터를 복구할 수 있는 능력을 가진 모든 컴퓨팅 장비를 의미할 수 있다. 또한, IPFS 노드(121, 122, 123, 124)는 중앙 서버, 릴레이 서버, P2P 네트워크, 블록체인 네트워크 등 다양한 통신수단을 통해서 상호간 통신할 수 있다.
이 때, 콘텐츠 ID란 원본 파일 데이터의 고유한 이름이다. 데이터의 해시 값과 마찬가지로 두 데이터가 “ABC.txt”와 “DEF.txt”와 같이 다른 파일명을 가지더라도 데이터의 내용이 동일하다면 동일한 콘텐츠 ID를 갖게 된다. 콘텐츠 ID는 원본 파일에 비하여 매우 작은 크기를 가지며 암호학적 해시 함수의 연산 결과를 기반으로 생성될 수 있다.
한편, IPFS 노드(121, 122, 123, 124)에 콘텐츠 ID를 공급하는 메인 서버(110)는 IPFS 노드(121, 122, 123, 124)와 통신하여 콘텐츠 ID 정보를 공급하는 역할 및 부정 사용을 방지하는 인증 수단을 갖출 수 있다. 메인 서버(110)가 IPFS 노드(121, 122, 123, 124)와 통신함에 있어, 통신 수단 자체가 보안 채널일 필요는 없다.
인증 수단으로는 IP 주소를 제한하는 네트워크적 방법, 암호화 기술을 통한 사용자 인증 방법, 블록체인 네트워크(120)를 통한 사용자 인증 또는 부정 사용자가 임의로 콘텐츠 ID를 IPFS 네트워크(120)에 입력하는 것을 방지하는 모든 방법을 포함할 수 있다. 이 때, 부정 사용을 인증 절차를 통해 원천적으로 방지하거나 작업증명(Proof of work) 등을 통해 일정 비율 이상으로 부정 사용이 늘어나는 것을 방지할 수 있다.
메인 서버(110)가 공급하는 콘텐츠 ID는 원본 파일의 콘텐츠 ID일 수도 있고 요구사항에 따라 원본을 암호화 한 결과물의 콘텐츠 ID일 수 있다. 이 때, 암호화 규격을 공유하기 위한 별도의 메타데이터를 공유할 수 있다. 메타데이터는 원본이 노출되어도 보안상 취약점이 없는 정보만을 포함할 수 있다. 예컨대, 암호화 알고리즘의 종류, 패딩 방법 및 초기 벡터 값 등이 있다.
공유자 단말(130) 및 요청자 단말(140)은 그 자체로서 IPFS 노드(121, 122, 123, 124)일 수 있고, 또는 릴레이 서버를 통하여 이미 존재하는 IPFS 노드(121, 122, 123, 124)를 이용하는 단말일 수 있다. 여기서 공유자 단말(130) 및 요청자 단말(140)은 파일에 대한 업로드 및 다운로드를 수행하는 단말을 의미하며, 키 조작에 따라 통신망을 경유하여 각종 문서 데이터를 송수신할 수 있는 단말기를 포함할 수 있다. 예를 들어, 공유자 단말(130) 및 요청자 단말(140)은 태블릿(Tablet) 단말, 랩톱(Laptop), 개인용 컴퓨터(PC, Personal Computer), 스마트폰(Smartphone), 개인휴대용 정보단말기(PDA, Personal Digital Assistant) 및 무선 단말기(Wireless Terminal) 등 중 어느 하나일 수 있다.
IPFS 노드(121, 122, 123, 124)는 콘텐츠 ID의 암호학적 해시 기능을 이용하여 원본 파일의 위변조 가능성을 메인 서버(110)의 도움 없이 검증을 완료할 수 있으며, 콘텐츠 ID의 원본 파일이 IPFS 네트워크(120)의 임의의 장치에 저장되어 있다고 하더라도 이를 자동화된 절차를 통해 탐색 및 데이터를 가져올 수 있다.
도 2는 일 실시예에 따른 블록체인 네트워크의 노드의 구성을 도시한 블록도이다.
도 2를 참조하면, 노드(200)는 통신부(210), 처리부(220) 및 저장부(230)를 포함할 수 있다. 또한, 노드(200)는 도 1의 IPFS 노드(121, 122, 123, 124)와 동일하거나 동일한 기능을 수행하는 것일 수 있다.
통신부(210)는 블록체인의 내부 또는 외부와 데이터를 송수신하기 위한 인터페이스를 제공할 수 있다.
저장부(230)에는 분산 원장이 저장될 수 있다. 예를 들어, 블록, 스마트 계약, 계좌, 트랜잭션 등이 저장될 수 있다.
또한, 처리부(220)는 저장부(230)에 저장된 분산 원장인 블록체인의 블록에 저장되어 있는 트랜잭션의 내용을 처리할 수 있다. 처리부(220)의 구성은 해당 노드의 기능에 따라 달라질 수 있으며, 예를 들어 노드의 기능은 통합 관리 기능, 블록 생성 기능, 블록 검증 기능 등이 있다. 구체적으로, 통합 관리 노드의 처리부(220)는 전체 풀(Pool) 관리, P2P 관리 및 블록 동기화 관리 기능 등을 수행할 수 있고, 블록 생성 노드의 처리부(220)는 블록 생성을 수행할 수 있으며, 블록 검증 노드의 처리부(220)는 블록 검증 및 합의를 수행할 수 있다.
본 발명에 따른 IPFS 노드(200)는 전술한 기능 또는 기능들의 조합뿐만 아니라 전술한 기능 이외의 기능을 수행하는 노드에 해당할 수 있다.
도 3은 일 실시예에 따른 블록 및 블록체인을 도시한 개념도이다.
도 3을 참조하면, 블록체인(300)은 순차적으로 연결된 하나 이상의 블록들(310, 320, 330)의 분산 데이터베이스의 일종이다. 블록체인(300)은 블록체인 시스템 내 사용자의 정보의 추가, 삭제 및 갱신 등(트랜잭션)을 저장하고 관리하기 위해 사용되며, 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록(310, 320, 330)을 생성하여 블록체인(300)에 연결할 수 있다. 도 3에는 제한된 수의 블록들(310, 320, 330)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.
블록체인(300)에 포함된 각 블록(310, 320, 330)은 각각 고유의 해시 값(311, 321, 331)을 가지며, 블록 헤더(312, 322, 332)와 블록 바디(313, 323, 333)를 포함하도록 구성될 수 있다.
블록체인(300)은 연결된 하나 이상의 블록들(310, 320, 330)을 포함할 수 있다. 블록 헤더(312, 322, 332)는 각 블록들(310, 320, 330) 간의 연결 관계를 나타내기 위하여 이전 블록의 해시 값을 포함할 수 있다. 블록 헤더(312, 322, 332)에 포함된 이전 블록의 해시 값은 직전 블록에 대한 해시 값으로 직전 블록에 포함된 현재 해시와 동일한 값이다.
예를 들어, 블록 N(320)의 블록 헤더(322)는 이전 블록인 블록 N-1(310)과의 연결 관계를 나타내기 위하여 블록 N-1(310)의 해시 값(311)을 포함할 수 있다. 마찬가지로, 블록 N+1(330)의 블록 헤더(332)는 이전 블록인 블록 N(320)과의 연결 관계를 나타내기 위하여 블록 N(320)의 해시 값(321)을 포함할 수 있다. 이와 같이 표현된 블록 헤더(312, 322, 332)내의 연결 관계는 블록체인(300)의 유효성 검증 과정에서 사용될 수 있다.
블록들(310, 320, 330)은 각 블록 헤더(312, 322, 332) 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 분산형 네트워크에 참여하는 노드들은 블록들(310, 320, 330)에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.
블록 바디(313, 323, 333)는 블록(310, 320, 330)에 저장되고 관리되는 데이터, 즉 트랜잭션 리스트(미도시)를 포함할 수 있다. 트랜잭션 리스트(미도시)는 블록체인 기반의 거래의 목록이다. 트랜잭션 리스트(미도시)는 트리 형태로 표현될 수 있다.
한편, 블록체인(300) 내부에 저장된 트랜잭션이 개별적으로 암호학적 해시를 가지고 있는 경우, 상기 개별 트랜잭션은 본 발명에서 말하는 '블록'의 단위가 될 수 있다. 다시 말해, 블록체인(300) 자체에서 해시 함수를 제공하지 않는 경우에도 인덱스 생성 과정에서 해시가 올바르게 생성되었다면 상기 개별 트랜잭션 또한 블록(310, 320, 330)이 될 수 있다.
블록(310, 320, 330)은 블록 헤더(312, 322, 332)와 블록 바디(313, 323, 333)에 포함된 정보 이외의 기타 정보를 포함할 수 있다.
이하에서, 다양한 실시예에 따른 동작들은 블록체인 기반의 데이터 관리 방법 또는 블록체인 기반의 데이터 관리 장치에 포함된 프로세서에 의해 수행되는 것으로 이해될 수 있다.
도 4는 일 실시예에 따른 블록체인 기반의 데이터 관리 방법을 설명하기 위한 흐름도이다.
블록체인 기반의 데이터 관리 장치(이하, '장치'라 함)는 사용자로부터 원본 데이터를 수신하여 블록체인을 기반으로 상기 원본 데이터를 관리하는 서비스를 제공할 수 있다. 일 실시예에서, 원본 데이터는 연구자가 작성한 연구노트에 해당할 수 있고, 장치는 연구노트의 내용, 관리자에 의한 인증, 연구노트의 작성 시점 및 관리자에 의한 인증 시점 등에 관한 트랜잭션을 생성하여 블록체인 네트워크에 저장할 수 있다. 이를 통해 연구노트의 작성자와 관리자의 정보 및 관리자의 승인 프로세스를 저장하여 관리할 수 있다.
일 실시예에서, 원본 데이터는 블록체인 네트워크에 직접 기록될 수 있고, 또는 IPFS를 통한 간접적인 분산 저장 방법을 이용하여 IPFS 기반 시스템에 기록될 수도 있다.
도 4를 참조하면, 단계 410에서 장치는 사용자의 원본 데이터에 대한 제1 블록을 생성할 수 있다.
일 실시예에서, 제1 블록은 원본 데이터를 작성한 사용자에 관한 정보, 원본 데이터의 존재, 원본 데이터의 작성 시간 등 원본 데이터에 관한 트랜잭션 리스트를 포함할 수 있다.
한편, 상기 원본 데이터의 작성 시간은 후술할 시점 인증기관의 타임스탬프와 무관하게 사용자가 원본 데이터를 작성한 시점이라고 주장하는 시간에 해당할 수 있다. 따라서 이 경우 사용자가 표시한 원본 데이터 작성 시간은 법적 효력을 가지지 않을 수 있다.
일 실시예에서, 장치는 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정할 수 있다. 블록체인에 기록된 데이터는 누구나 열람 가능하므로 장치는 보안을 위해 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정할 수 있다.
장치가 원본 데이터의 콘텐츠 ID를 암호화하는 경우, 제1 블록은 원본 데이터의 콘텐츠 ID를 암호화하는데 사용된 대칭키 알고리즘(Symmetric-key algorithm) 및/또는 초기 벡터(Initial vector)를 포함할 수 있다. 대칭키 알고리즘은 암호화 알고리즘의 한 종류로 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다. 초기 벡터는 가상의 블록으로, 초기 벡터를 암호화한 결과와 암호화할 블록을 XOR(exclusive OR, 배타적 논리합)하여 암호문 블록으로 변환하는 데 사용될 수 있다.
장치가 원본 데이터의 콘텐츠 ID를 암호화하지 않는 경우, 제1 블록은 원본 데이터의 해시 및/또는 원본 데이터의 해시 알고리즘을 포함할 수 있다.
단계 420에서, 장치는 수신한 원본 데이터에 TSA(Time Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 원본 데이터 타임스탬프에 관한 제2 블록을 생성할 수 있다.
TSA는 타임스탬프를 발행하는 기관, 즉 시점 인증 서비스를 제공하는 기관으로 TSA 서비스는 시점인증 기관이 원본 데이터의 작성 및 수정 시간을 인증하는 프로세스로 이루어진다. TSA가 타임스탬핑을 수행함으로써 원본 데이터의 소유자조차도 변경할 수 없게 되어 TSA가 원본 데이터에 대한 타임스탬프를 발행하는 시점 또는 TSA가 발행한 타임스탬프에 관한 블록을 생성하는 시점에 원본 데이터가 존재하였고 그 이후에 변경되지 않았음을 증명할 수 있게 된다.
일 실시예에서, 장치는 사용자의 원본 데이터의 해시를 TSA에 전송하여 타임스탬프 발급을 요청하고 TSA로부터 타임스탬프 토큰(Token)을 발급받아 원본 데이터에 주입함으로써, 원본 데이터에 타임스탬프를 적용할 수 있다. 또한, 장치는 TSA가 발행한 원본 데이터 타임스탬프에 대한 제2 블록을 생성할 수 있다.
한편, N번째 블록에 대한 TSA의 타임스탬프가 1개 존재한다고 해도 1번째 블록 내지 (N-1)번째 블록 또한 상기 타임스탬프 이전에 생성되었음이 증명되므로 본 발명에서 제2 블록의 타임스탬프는 제1 블록 또한 제2 블록이 생성된 시점과 동일한 시점 또는 그 이전 시점에 생성되었다는 사실을 보증할 수 있다.
단계 430에서, 장치는 제1 블록 및 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성할 수 있다.
일 실시예에서, 제3자는 원본 데이터를 작성한 사용자와 다른 제3자를 의미할 수 있다. 예를 들어, 원본 데이터가 연구노트인 경우 제3자는 연구노트를 작성한 사용자가 속한 연구기관 또는 연구기관의 관리자일 수 있다.
일 실시예에서, 서명은 아날로그 서명의 이미지 파일에 대한 콘텐츠 ID에 해당할 수 있다. 또는, 서명은 개인키(Private Key)와 공개키(Public Key) 암호를 이용한 전자서명을 포함할 수 있다.
일 실시예에서, 제3 블록은 서명한 제3자에 관한 정보, 서명의 대상이 되는 원본 데이터를 작성한 사용자 및 TSA가 발행한 원본 데이터 타임스탬프에 관한 정보, 제3자의 서명 시간 등 제3자의 서명에 관한 트랜잭션 리스트를 포함할 수 있다. 이 때, 원본 데이터의 작성 시간과 마찬가지로 제3자의 서명 시간은 제3자가 서명한 시점이라고 주장하는 시간에 해당할 수 있고 법적 효력을 가지지 않을 수 있다.
단계 440에서, 장치는 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록할 수 있다.
일 실시예에서, 원본 블록체인 네트워크는 도 3의 블록체인(300)에 해당할 수 있고, 또한 제1 내지 제3 블록은 도 3의 하나 이상의 블록들(310, 320, 330)에 해당할 수 있다.
일 실시예에서, 원본 블록체인 네트워크는 도 1의 IPFS 기반의 파일 분산 저장 시스템(100)과 연계될 수 있다. 예를 들어, 장치는 제1 내지 제3 블록을 원본 블록체인 네트워크의 원장에 기록하고, 원본 데이터는 IPFS 기반의 파일 분산 저장 시스템(100) 또는 IPFS 노드(121, 122, 123, 124)에 분산 저장할 수 있다.
도 5는 일 실시예에 따른 가상 블록체인을 구현하는 과정을 설명하기 위한 도면이다.
보편적으로 블록체인에 기록되는 내용은 '블록체인 지갑'으로서 공개키 등으로 서명된 정보이며 개인의 전자서명과는 무관하다. 또한, 공인 인증서로 발급되는 RSA 기반 인증서는 블록체인에서 사용하는 타원곡선 암호(Eliptic Curve Cryptosystem) 기반 인증서와 호환되지 않는다.
또한, 데이터 종류에 무관하게 선형적인 순서를 갖는 보편적인 블록체인 기술에 의하면 사용자의 원본 데이터를 작성, 이에 대해 TSA가 발행한 타임스탬프를 적용, 원본 데이터 및/또는 타임스탬프에 대한 제3자의 서명이라는 인증 체인이 각 원본 데이터별로 존재하도록 구현할 수 없다.
따라서 이하 도 5를 참조하여 블록체인 내부의 가상 블록체인을 구현하여 전술한 기술적 문제를 해결하는 방법을 상세히 서술하도록 한다.
도 5를 참조하면, 원본 블록체인(500)은 블록 N-2 내지 블록 N+3(510 내지 560)을 포함할 수 있다. 블록 N-2 내지 블록 N+3(510 내지 560)은 생성된 트랜잭션을 순서대로 저장하고 있으므로, 선형적인 순서를 가지고 체인으로 연결되어 있다. 설명의 편의를 위하여 6개의 블록을 도시했으나, 개수는 이에 제한되지 않는다.
일 실시예에서, 장치는 제1 내지 제3 블록을 순차적으로 원본 블록체인(500)에 기록할 수 있다. 따라서 각 블록은 블록 N-1 내지 블록 N+3(510 내지 560) 중 어느 하나에 해당할 수 있다.
본 발명에서 블록을 '순차적으로' 기록한다고 함은 연속된 블록으로 기록한다는 것을 의미하지 않는다. 예를 들어 도 5를 참조하면, 제1 블록(510)을 제2 블록(530)보다 먼저 원본 블록체인(500)에 기록하였으나, 제1 블록(510) 및 제2 블록(530)은 이웃하지 않음을 확인할 수 있다.
일 실시예에서, 제2 블록은 제1 블록의 위치를 포함할 수 있다. 또한, 제3 블록은 제1 및/또는 제2 블록의 위치를 포함할 수 있다. 예를 들어, 장치는 가상 체인으로 연결하려는 블록의 위치 정보가 포함된 블록을 생성할 수 있다.
이를 통해 원본 블록체인(500)의 블록 N-2 내지 블록 N+3(510 내지 560)의 연결관계와 별개로, 장치가 생성한 각 블록들은 가상 체인으로써 별도의 연결관계를 가질 수 있다.
도 6은 일 실시예에 따른 원본 블록체인의 구성을 나타내는 블록도이다.
도 6을 참조하면, 블록 N-1(610), 블록 N(620) 및 블록 N+1(630)은 연속하게 연결된 블록이며, 블록 N-1(610)과 블록 N+1(630)은 가상 체인(613)으로 연결된 블록이다.
일 실시예에서, 가상체인(613)으로 연결된 각 블록(610, 630)은 필수정보(611, 631) 및/또는 인덱스정보(612, 632)를 포함할 수 있다.
필수정보(611, 631)는 블록에 저장되는 콘텐츠에 관한 정보이다. 예를 들어 제1 블록에 포함되는 필수정보는 사용자가 작성한 원본 데이터에 대한 정보일 수 있다.
인덱스정보(612, 632)는 가상체인(613)을 연결하기 위하여 참조하는 정보이다. 일 실시예에서, 제1 블록 및 제2 블록을 가상체인으로 연결하는 경우 제2 블록에 포함되는 인덱스정보는 제1 블록의 위치에 대한 정보일 수 있다. 또는, 제2 블록에 포함되는 인덱스 정보에 제1 블록의 위치에 대한 정보가 포함된 경우 제1 블록 및 제2 블록은 가상체인으로 연결되었다고 정의할 수 있다. 예를 들어, 블록 N-1(610)이 제1 블록이고 블록 N+1(630)이 제2 블록이라고 가정할 때 제2 블록(630)의 인덱스정보(632)는 제1 블록(610)의 위치 또는 제1 블록(610)의 블록번호인 N-1에 대한 정보를 포함할 수 있다.
한편, 인덱스정보(612, 632)는 전술한 필수정보(611, 631)가 변경되어 있지 않음을 보장해야 한다. 예를 들어, 필수정보(611, 631) 전체를 블록체인과 별도로 별개의 암호학적 해시 함수를 사용한 해시 값, 필수정보(611, 631) 전체를 포함하는 데이터의 해시 값(예컨대, 해당 필수정보가 포함된 블록의 블록 해시), 제네시스 블록 해시와 블록 높이 값 및 이외의 필수정보(611, 631)의 무결성을 증명하는 방법 등이 있다. 사용자는 시스템별 검색 성능 향상을 위하여 위 방법 중 하나 이상의 인덱스정보를 동시에 가질 수 있다. 이 때, 이전 블록에 대한 인덱스 정보는 다음 블록의 필수정보에 포함되어야 한다. 한편, 인덱스 정보를 포함하지 않는 경우 원본 데이터의 복사본을 가지고 있는 것으로 대체할 수 있다. 이에 관하여 도 7에서 자세히 후술하기로 한다.
데이터에 대한 하나의 프로세스가 여러 블록에 기록된 경우에도 각 블록을 가상체인으로 연결하여 관리함으로써 데이터 관리 및 타 블록체인으로의 마이그레이션이 용이해지는 효과가 있다.
다시 도 5로 돌아가서, 전술한 설명을 바탕으로 제1 블록 내지 제4 블록(510, 530, 540, 560)의 구성에 관하여 상세히 서술한다.
일 실시예에서, 제1 블록(510)은 제1 필수정보를 포함할 수 있다. 또한, 제1 필수정보는 원본 데이터를 작성한 사용자의 신원을 증명할 수 있는 사용자 인증서, 원본 데이터의 콘텐츠 ID, 사용자가 표시한 원본 데이터의 작성 시점 및 원본 데이터의 콘텐츠 ID와 작성 시점에 대한 서명 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 사용자 인증서는 사용자의 공개키를 의미할 수 있고, 원본 데이터의 콘텐츠 ID 및 원본 데이터의 작성 시점에 대한 서명은 사용자 인증서를 그대로 사용할 수 있다.
즉, 제1 블록(510)은 사용자가 원본 데이터를 작성했음을 나타내는 모든 정보를 포함할 수 있다.
일 실시예에서, 제2 블록(530)은 제2 필수정보를 포함할 수 있다. 또한, 제2 필수정보는 제1 필수정보 전체에 대한 콘텐츠 ID 및 제1 필수정보에 대한 원본 데이터 타임스탬프에 관한 정보 중 적어도 하나를 포함할 수 있다.
제1 필수정보 전체에 대한 콘텐츠 ID는 원본 데이터의 콘텐츠 ID와 별개로 제1 필수정보 전체를 하나의 데이터로 보아 이에 대응되는 콘텐츠 ID를 의미한다. 타임스탬프는 TSA에서 제1 필수정보에 대한 시점 인증을 위하여 발행한 것에 해당한다. 이 때, 타임스탬프는 RFC 3161 표준을 따르는 것일 수 있다.
일 실시예에서, 제2 블록(530)은 제2 인덱스정보를 포함할 수 있다. 또한, 제2 인덱스정보는 제1 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 예를 들어, 제2 인덱스정보는 제1 필수정보가 기록된 제1 블록(510)의 위치 또는 제1 필수정보가 기록된 제1 블록(510) 내의 트랜잭션의 세부 위치를 포함할 수 있다. 이에 따라, 제1 블록(510) 및 제2 블록(530)은 제2 인덱스정보를 통해 가상체인으로 연결될 수 있다.
즉, 제2 블록(530)은 원본 데이터에 대한 TSA의 시점 인증 및 제1 블록(510)과의 연결에 관한 모든 정보를 포함할 수 있다.
일 실시예에서, 제3 블록(540)은 제3 필수정보를 포함할 수 있다. 또한, 제3 필수정보는 제3자의 신원을 증명할 수 있는 제3자 인증서, 제3자의 인증 본문 및 인증 본문에 대한 서명 중 적어도 하나를 포함할 수 있다. 제3자의 인증 본문은, 제1 필수정보 전체에 대한 콘텐츠 ID, 제2 필수정보 전체에 대한 콘텐츠 ID 및 제3자가 표시한 제3자의 인증 시점을 포함할 수 있다.
일 실시예에서, 제3자 인증서는 제3자의 공개키를 의미할 수 있고, 제3자의 인증 본문에 대한 서명은 제3자 인증서를 그대로 사용할 수 있다.
일 실시예에서, 제3 블록(540)은 제3 인덱스정보를 포함할 수 있다. 또한, 제3 인덱스정보는 제2 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 이에 따라 제2 블록(530) 및 제3 블록(540)은 제3 인덱스정보를 통해 가상체인으로 연결될 수 있다.
다른 실시예에서, 제3 인덱스정보는 제1 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 더 포함할 수 있다. 이에 따라 제1 블록(510) 및 제3 블록(540)은 제3 인덱스정보를 통해 가상체인으로 연결될 수 있다.
즉, 제3 블록(540)은 원본 데이터 및 원본 데이터 타임스탬프에 대한 제3자의 인증, 제2 블록(530)과의 연결에 관한 모든 정보를 포함할 수 있다.
일 실시예에서, 장치는 제3 블록(540)에 대하여 TSA가 발행한 관리자 서명 타임스탬프를 적용하여 관리자 서명 타임스탬프에 관한 제4 블록(560)을 생성할 수 있다. 제4 블록을 생성함으로써 제3자가 원본 데이터 및 원본 데이터 타임스탬프에 대한 인증 역할을 적절한 시점에 수행하였는지에 대하여 TSA가 한 번 더 인증할 수 있다. 이후, 장치는 제4 블록(560)을 원본 블록체인(500)의 원장에 기록할 수 있다.
일 실시예에서, 제4 블록(560)은 제4 필수정보를 포함할 수 있다. 또한, 제4 필수정보는 제3 필수정보 전체에 대한 콘텐츠 ID 및 제3 필수정보 전체에 대한 관리자 서명 타임스탬프에 관한 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 제4 블록(560)은 제4 인덱스정보를 포함할 수 있다. 또한, 제4 인덱스정보는 제3 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 이에 따라, 제4 블록(560)은 제3 블록(540)과 제4 인덱스정보를 통해 가상체인으로 연결될 수 있다.
다른 실시예에서, 제4 인덱스정보는 제1 및/또는 제2 필수정보가 기록된 각 블록의 위치 또는 각 트랜잭션의 위치를 더 포함할 수 있다. 이에 따라 제4 블록(560)은 제1 블록(510) 및/또는 제2 블록(540)과 제4 인덱스정보를 통해 가상체인으로 연결될 수 있다.
즉, 제4 블록(560)은 상기 제3자의 인증에 대한 TSA의 시점 인증 및 제3 블록(540)과의 연결에 관한 모든 정보를 포함할 수 있다.
한편, 전술한 제1 내지 제4 블록의 시간 순서에 대한 증명은 블록체인 뿐만 아니라 별개로 TSA로부터 발급받은 타임스탬프로써 가능하며, 타임스탬프를 통해 블록들의 순서의 재구성과 증명이 가능할 수 있다.
도 7은 일 실시예에 따른 블록체인 마이그레이션 과정을 설명하기 위한 흐름도이다.
일 실시예에서, 장치는 원본 블록체인을 타 블록체인으로 마이그레이션할 수 있다. 예를 들어, 타 블록체인은 하드포크(Hard Fork)에 따른 새로운 블록체인일 수 있다. 또는, 타 블록체인은 원본 블록체인과 전혀 다른 도메인을 가지는 새로운 블록체인일 수 있다. 이하 마이그레이션 과정을 구체화하여 설명한다.
도 7을 참조하면, 단계 710에서, 장치는 제4 블록에 기초하여 원본 블록체인에서 제1 내지 제4 블록의 위치를 추출할 수 있다.
일 실시예에서, 장치는 제4 블록에 포함된 제4 인덱스정보로부터 제3 블록의 위치를 추출할 수 있고, 제3 블록에 포함된 제3 인덱스정보로부터 제2 블록의 위치를 추출할 수 있으며, 제2 블록에 포함된 제2 인덱스정보로부터 제1 블록의 위치를 추출할 수 있다. 다른 실시예에서, 장치는 제4 인덱스정보에 제1 내지 제3 블록의 위치가 모두 기록된 경우, 제4 인덱스 정보로부터 제1 내지 제3 블록의 위치를 모두 추출할 수 있다.
일 실시예에서, 장치는 제1 내지 제4 블록으로부터 제1 내지 제4 필수정보를 모두 획득할 수 있다. 또한, 장치는 제1 내지 제4 필수정보에서 콘텐츠 ID, 인증서, 작성 또는 인증시점, 서명 등을 포함한 모든 정보를 획득할 수 있다.
단계 720에서, 장치는 제1 내지 제4 블록의 무결성을 검증할 수 있다.
일 실시예에서, 장치는 제1 내지 제4 블록에 기록된 해시값 및 전자서명의 유효성을 검증함으로써 제1 내지 제4 블록의 무결성을 검증할 수 있다.
블록체인 네트워크는 자체로 위변조가 거의 불가능하나, 마이그레이션 과정에서 원본 블록체인의 무결성을 검증함으로써 마이그레이션에 따라 발생할 수 있는 신뢰성 문제를 해결할 수 있다.
단계 730에서, 장치는 제1 내지 제4 블록에 포함된 정보를 순차적으로 타 블록체인의 블록에 저장할 수 있다.
이하 원본 블록체인의 제1 내지 제4 블록이 마이그레이션될 타 블록체인의 블록을 각각 제1 내지 제4 이주블록이라고 정의한다.
일 실시예에서, 장치는 제1 필수정보를 제1 이주블록에 필수정보로써 저장할 수 있다. 또한, 장치는 제2 필수정보를 제2 이주블록에 필수정보로써 저장하고, 제1 이주블록의 위치를 제2 이주블록에 인덱스정보로써 저장할 수 있다. 또한, 장치는 제3 필수정보를 제3 이주블록에 필수정보로써 저장하고, 제2 이주블록의 위치를 제3 이주블록에 인덱스정보로써 저장할 수 있다. 마찬가지로, 장치는 제4 필수정보를 제4 이주블록에 필수정보로써 저장하고, 제3 이주블록의 위치는 제4 이주블록에 인덱스정보로써 저장할 수 있다.
다른 실시예에서, 제3 이주블록의 인덱스정보는 제1 이주블록의 위치를 더 포함할 수 있으며, 제4 이주블록의 인덱스정보는 제1 및/또는 제2 이주블록의 위치를 더 포함할 수 있다.
일 실시예에서, 장치는 참조할 데이터가 저장된 원본 블록체인의 제1 내지 제4 블록 중 적어도 하나의 블록의 해시, 제네시스 블록 해시(Genesis Block Hash), 블록높이(Block Height) 및 개별 트랜잭션의 고유ID 중 적어도 하나를 제1 이주블록의 인덱스정보로써 저장할 수 있다.
또는 다른 실시예에서, 장치는 참조할 데이터가 저장된 원본 블록체인의 제1 내지 제4 블록 중 적어도 하나의 블록의 해시를 제1 이주블록의 인덱스 정보로써 필수적으로 포함할 수 있으며, 제네시스 블록 해시, 블록 높이 및 개별 트랜잭션의 고유ID 중 적어도 하나를 제1 이주블록의 인덱스 정보로써 선택적으로 포함할 수 있다. 원본 블록체인의 각 블록의 해시는 존재의 증명을 위하여 필수적으로 필요하고 제네시스 블록 해시, 블록 높이 및 개별 트랜잭션의 고유ID 등은 검색 속도를 높이기 위한 것으로 선택적이기 때문이다.
제네시스 블록은 블록체인 네트워크가 최초에 시작될 때 만들어진 블록이며, 블록높이가 0인 블록을 의미한다. 블록 0이라고도 한다.
블록높이는 제네시스 블록으로부터 생성된 블록의 총 수를 의미한다. 특정 블록의 블록높이는 블록체인에서 앞에 존재하는 블록 수로 정의된다. 제네시스 블록과는 달리 모든 블록은 바로 이전 블록에 대한 해시를 포함하므로 블록높이를 가진다.
개별 트랜잭션의 고유ID는 제1 내지 제4 블록에서 참조할 트랜잭션이 해당 블록의 어디(몇 번째)에 위치하는지를 특정해주는 정보가 될 수 있다.
원본 블록체인에서 타 블록체인으로 마이그레이션 된 이후 또 다시 새로운 블록체인으로 마이그레이션 해야 하는 경우에도 원본 블록체인의 제1 내지 제4 블록을 참조할 수 있다.
따라서, 일 실시예에 따르면, 원본 데이터에 관한 블록(예컨대, 타 블록체인에서의 제1 이주블록)이 제1 인덱스정보를 포함하고 있다면 해당 블록을 포함하는 블록체인은 마이그레이션된 블록체인임을 의미할 수 있다.
위와 같은 블록체인 마이그레이션 과정을 통해, 현재의 원본 블록체인에 있는 데이터를 타 블록체인으로 이관하더라도 각 블록이 생성된 시점에 TSA 정보를 기반으로 사건 순서를 재구성 및 존재의 증명이 가능한 마이그레이션 기법을 제시할 수 있는 효과가 있다. 또한, 본 발명에서 인덱스정보가 단순한 숫자가 아닌 이전 블록의 무결성을 보장하는 암호학적 해시를 사용하게 되므로, 이를 통해 가상 블록체인을 구현할 수 있는 효과가 있다.
도 8은 블록체인 기반의 데이터 관리 장치의 블록도이다.
도 8을 참조하면, 장치(800)는 통신부(810), 프로세서(820) 및 DB(830)를 포함할 수 있다. 도 8의 장치(800)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 8에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
통신부(810)는 외부 서버 또는 외부 장치와 유선/무선 통신을 하게 하는 하나 이상의 구성 요소를 포함할 수 있다. 예를 들어, 통신부(810)는, 근거리 통신부(미도시), 이동 통신부(미도시) 및 방송 수신부(미도시) 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 통신부(810)는 사용자로부터 원본 데이터를 수신할 수 있다.
DB(830)는 장치(800) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 프로세서(820)의 처리 및 제어를 위한 프로그램을 저장할 수 있다.
DB(830)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
프로세서(820)는 장치(800)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(820)는 DB(830)에 저장된 프로그램들을 실행함으로써, 입력부(미도시), 디스플레이(미도시), 통신부(810), DB(830) 등을 전반적으로 제어할 수 있다. 프로세서(820)는, DB(830)에 저장된 프로그램들을 실행함으로써, 장치(800)의 동작을 제어할 수 있다.
프로세서(820)는 도 1 내지 도 7에서 상술한 블록체인 기반의 데이터 관리 장치의 동작 중 적어도 일부를 제어할 수 있다.
프로세서(820)는 ASICs (application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적 유닛 중 적어도 하나를 이용하여 구현될 수 있다.
일 실시예에서, 장치(800)는 서버일 수 있다. 서버는 네트워크를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 서버는 블록체인 기반으로 데이터를 관리하기 위해 필요한 데이터를 수신하고, 수신한 데이터에 기초하여 사용자로부터 수신한 데이터를 관리할 수 있다.
한편, 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
일 실시예에 따르면, 본 개시의 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (9)

  1. 사용자의 원본 데이터를 수신하는 단계; 및
    상기 원본 데이터에 관한 복수의 블록들 -상기 복수의 블록들은, 상기 복수의 블록들 각각에 저장되는 콘텐츠에 관한 필수정보 및 인덱스정보를 포함함- 을 생성하고, 상기 복수의 블록들을 원본 블록체인의 원장에 기록하는 단계;를 포함하고,
    상기 복수의 블록들은,
    상기 원본 블록체인의 원장에 순차적으로 기록되나, 서로 이웃하지 않게 위치하는 경우를 포함하는 제1 블록 및 제2 블록을 포함하고,
    상기 인덱스정보는,
    상기 필수정보가 변경되어 있지 않음을 보장하는 검증용 인덱스정보를 포함하고,
    상기 제2 블록의 상기 필수정보는,
    상기 제1 블록의 인덱스정보를 포함하는, 블록체인 기반의 데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 인덱스정보는,
    상기 원본 블록체인에 대한 검색 성능을 향상시키기 위한 검색용 인덱스정보를 포함하되,
    상기 제2 블록의 검색용 인덱스정보는,
    상기 제1 블록의 위치를 포함하는, 블록체인 기반의 데이터 관리 방법.
  3. 제 2 항에 있어서,
    상기 인덱스정보에 기초하여 상기 복수의 블록들의 위치를 추출하는 단계; 및
    상기 복수의 블록들의 위치에 기초하여 상기 복수의 블록들에 포함된 필수정보를 순차적으로 타 블록체인의 블록들에 저장하는 마이그레이션 단계;를 포함하는, 블록체인 기반의 데이터 관리 방법.
  4. 제 3 항에 있어서,
    상기 타 블록체인은,
    상기 원본 블록체인에서 하드포크(Hard Fork)된 블록체인 네트워크를 포함하는, 블록체인 기반의 데이터 관리 방법.
  5. 제 1 항에 있어서,
    상기 검증용 인덱스정보는,
    상기 복수의 블록들 각각의 필수정보에 대한 해시 값, 블록 해시 값, 제네시스 블록 해시 및 블록 높이 중 적어도 하나의 무결성을 보장하는, 블록체인 기반의 데이터 관리 방법.
  6. 제 1 항에 있어서,
    상기 복수의 블록들은,
    상기 사용자에 관한 제1 필수정보를 포함하는 상기 제1 블록;
    상기 사용자와 다른 제2 주체가 상기 제1 필수정보에 대하여 인증한 것에 관한 제2 필수정보를 포함하는 상기 제2 블록; 및
    상기 사용자 및 상기 제2 주체와 다른, 제3 주체가 상기 제2 필수정보에 대하여 인증한 것에 관한 제3 필수정보 및 상기 제2 블록과 연결되도록 상기 제2 블록의 위치를 포함하는 제3 인덱스정보를 포함하는 제3 블록;을 포함하고,
    상기 제1 블록 내지 상기 제3 블록은,
    상기 원본 블록체인의 원장에 순차적으로 기록되나, 이웃하지 않게 위치하는 경우를 포함하는, 블록체인 기반의 데이터 관리 방법.
  7. 제 1 항에 있어서,
    상기 복수의 블록들은,
    상기 사용자가 상기 원본 데이터를 작성했음을 나타내는 제1 블록;
    상기 원본 데이터에 대하여 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프에 관한 제2 블록; 및
    상기 원본 데이터와 상기 원본 데이터 타임스탬프에 대한, 제3자의 인증에 관한 제3 블록;을 포함하는, 블록체인 기반의 데이터 관리 방법.
  8. 적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써 동작하는 프로세서;를 포함하 고,
    상기 프로세서는,
    사용자의 원본 데이터를 수신하고,
    상기 원본 데이터에 관한 복수의 블록들 -상기 복수의 블록들은, 상기 복수의 블록들 각각에 저장되는 콘텐츠에 관한 필수정보 및 인덱스정보를 포함함- 을 생성하고, 상기 복수의 블록들을 원본 블록체인의 원장에 기록하되,
    상기 복수의 블록들은,
    상기 원본 블록체인의 원장에 순차적으로 기록되나, 서로 이웃하지 않게 위치하는 경우를 포함하는 제1 블록 및 제2 블록을 포함하고,
    상기 인덱스정보는,
    상기 필수정보가 변경되어 있지 않음을 보장하는 검증용 인덱스정보를 포함하고,
    상기 제2 블록의 상기 필수정보는,
    상기 제1 블록의 인덱스정보를 포함하는, 블록체인 기반의 데이터 관리 장치.
  9. 제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020230019131A 2022-09-19 2023-02-14 블록체인 기반의 데이터 관리 방법 및 장치 KR102622665B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230019131A KR102622665B1 (ko) 2022-09-19 2023-02-14 블록체인 기반의 데이터 관리 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220117967A KR102501004B1 (ko) 2022-09-19 2022-09-19 블록체인 기반의 데이터 관리 방법 및 장치
KR1020230019131A KR102622665B1 (ko) 2022-09-19 2023-02-14 블록체인 기반의 데이터 관리 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020220117967A Division KR102501004B1 (ko) 2022-09-19 2022-09-19 블록체인 기반의 데이터 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102622665B1 true KR102622665B1 (ko) 2024-01-10

Family

ID=85328058

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220117967A KR102501004B1 (ko) 2022-09-19 2022-09-19 블록체인 기반의 데이터 관리 방법 및 장치
KR1020230019131A KR102622665B1 (ko) 2022-09-19 2023-02-14 블록체인 기반의 데이터 관리 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020220117967A KR102501004B1 (ko) 2022-09-19 2022-09-19 블록체인 기반의 데이터 관리 방법 및 장치

Country Status (1)

Country Link
KR (2) KR102501004B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024063519A1 (ko) * 2022-09-19 2024-03-28 주식회사 레드윗 블록체인 기반의 데이터 관리 방법, 장치 및 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190079517A (ko) * 2017-12-13 2019-07-05 서강대학교산학협력단 블록체인 기반 IoT 환경에서의 다중 검색을 지원하는 데이터 구조체를 이용한 검색 방법 및 그 방법에 따른 장치
KR20190135830A (ko) * 2018-05-29 2019-12-09 주식회사 티모넷 전자 코드를 이용하여 블록체인 기반의 서비스를 제공하는 시스템 및 방법
KR20200107662A (ko) * 2019-03-08 2020-09-16 한국전자통신연구원 블록체인 기반의 분산 데이터 공유 환경에서 데이터 공유 플랫폼을 위한 시스템, 상기 시스템에서 데이터 검색 방법 및 상기 시스템에서 검색 인덱스를 제공하는 방법
KR102172903B1 (ko) * 2019-12-09 2020-11-02 (주)트러스트체인파트너스위드하모니 블록체인 기술 기반 데이터 베이스 관리 시스템
KR102241246B1 (ko) * 2020-06-26 2021-04-16 (주)아이앤텍 발급문서의 진위 확인을 위한 블록체인 기반 스탬프 인증 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102428461B1 (ko) * 2015-10-19 2022-08-03 삼성전자주식회사 선택적 암호화 방법 및 그를 이용한 전자 장치
WO2019124610A1 (ko) * 2017-12-21 2019-06-27 문인식 블록체인을 이용한 개인정보 분리 후 분산 저장 및 조합을 통한 인증 방법
KR102368525B1 (ko) * 2020-08-20 2022-03-02 에이아이오티홀딩스 주식회사 블록체인과 ipfs를 활용한 디지털 문서 관리 시스템 및 방법
KR102407699B1 (ko) * 2022-02-16 2022-06-15 주식회사 글로싸인 생체정보의 인증을 통한 전자문서 관리 서비스 제공 서버, 방법 및 프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190079517A (ko) * 2017-12-13 2019-07-05 서강대학교산학협력단 블록체인 기반 IoT 환경에서의 다중 검색을 지원하는 데이터 구조체를 이용한 검색 방법 및 그 방법에 따른 장치
KR20190135830A (ko) * 2018-05-29 2019-12-09 주식회사 티모넷 전자 코드를 이용하여 블록체인 기반의 서비스를 제공하는 시스템 및 방법
KR20200107662A (ko) * 2019-03-08 2020-09-16 한국전자통신연구원 블록체인 기반의 분산 데이터 공유 환경에서 데이터 공유 플랫폼을 위한 시스템, 상기 시스템에서 데이터 검색 방법 및 상기 시스템에서 검색 인덱스를 제공하는 방법
KR102172903B1 (ko) * 2019-12-09 2020-11-02 (주)트러스트체인파트너스위드하모니 블록체인 기술 기반 데이터 베이스 관리 시스템
KR102241246B1 (ko) * 2020-06-26 2021-04-16 (주)아이앤텍 발급문서의 진위 확인을 위한 블록체인 기반 스탬프 인증 시스템

Also Published As

Publication number Publication date
KR102501004B1 (ko) 2023-02-21

Similar Documents

Publication Publication Date Title
KR102084674B1 (ko) 블록체인 기반 컨텐츠 관리 방법 및 상기 방법을 수행하는 시스템
JP5196883B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
Sookhak et al. Remote data auditing in cloud computing environments: a survey, taxonomy, and open issues
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
CN102170440B (zh) 适用于存储云间数据安全迁移的方法
JP5281074B2 (ja) 情報セキュリティ装置および情報セキュリティシステム
Thompson The preservation of digital signatures on the blockchain
Mukundan et al. Efficient integrity verification of replicated data in cloud using homomorphic encryption
US11544392B2 (en) Implementation of a file system on a block chain
KR102107438B1 (ko) 블록체인을 이용한 전자 문서 관리 장치 및 이의 동작 방법
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
Li et al. A blockchain-based public auditing scheme for cloud storage environment without trusted auditors
JP2019079280A (ja) ファイル検証装置、ファイル移行システムおよびプログラム
KR102622665B1 (ko) 블록체인 기반의 데이터 관리 방법 및 장치
Alhazmi et al. Towards big data security framework by leveraging fragmentation and blockchain technology
WO2022193920A1 (en) Blockchain data segregation
Mishra et al. Enabling efficient deduplication and secure decentralized public auditing for cloud storage: A redactable blockchain approach
Xu et al. A generic integrity verification algorithm of version files for cloud deduplication data storage
WO2023099357A1 (en) Compressible blockchains
CN116263834A (zh) 许可区块链的多发布者匿名证书
US20220399988A1 (en) Linking blockchain operations
Kavya et al. A survey on data auditing approaches to preserve privacy and data integrity in cloud computing
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム
Mishra et al. PDV: Permissioned Blockchain based Personal Data Vault using Predictive Prefetching
Luna et al. Providing security to the desktop data grid

Legal Events

Date Code Title Description
GRNT Written decision to grant