KR102501004B1 - Method and apparatus for managing data based on blockchain - Google Patents

Method and apparatus for managing data based on blockchain Download PDF

Info

Publication number
KR102501004B1
KR102501004B1 KR1020220117967A KR20220117967A KR102501004B1 KR 102501004 B1 KR102501004 B1 KR 102501004B1 KR 1020220117967 A KR1020220117967 A KR 1020220117967A KR 20220117967 A KR20220117967 A KR 20220117967A KR 102501004 B1 KR102501004 B1 KR 102501004B1
Authority
KR
South Korea
Prior art keywords
block
original data
essential information
blockchain
migration
Prior art date
Application number
KR1020220117967A
Other languages
Korean (ko)
Inventor
이근홍
김지원
강종혁
김하림
Original Assignee
주식회사 레드윗
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 레드윗 filed Critical 주식회사 레드윗
Priority to KR1020220117967A priority Critical patent/KR102501004B1/en
Priority to KR1020230019131A priority patent/KR102622665B1/en
Application granted granted Critical
Publication of KR102501004B1 publication Critical patent/KR102501004B1/en
Priority to PCT/KR2023/014206 priority patent/WO2024063519A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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

Landscapes

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

Abstract

This disclosure relates to a blockchain-based data management method and device. One embodiment of the present disclosure comprises the steps of: generating a first block for a user's original data; applying an original data timestamp issued by a time-stamping authority (TSA) to the original data, thereby generating a second block related to the original data timestamp; generating a third block related to a third party's signature for at least one of the first block and the second block; and sequentially recording the first to third blocks in a ledger of original blockchain. Data processes can be managed separately within one blockchain.

Description

블록체인 기반의 데이터 관리 방법 및 장치{METHOD AND APPARATUS FOR MANAGING DATA BASED ON BLOCKCHAIN}Blockchain-based data management method and device {METHOD AND APPARATUS FOR MANAGING DATA BASED ON BLOCKCHAIN}

본 개시는 블록체인 기반의 데이터 관리 방법 및 장치를 제공한다.The present disclosure provides a blockchain-based data management method and apparatus.

블록체인은 동일 원장을 모든 노드가 공유하여 거래 내역을 투명하게 운영하고 더불어 해킹과 변조를 막는 기술이다. 이러한 블록체인은 트랜잭션을 포함하는 블록들이 체인 형태로 연결되는 구조를 갖는다.Blockchain is a technology that shares the same ledger with all nodes to transparently operate transaction details and prevent hacking and tampering. This blockchain has a structure in which blocks containing transactions are connected in a chain form.

그러나 블록체인에 기록되는 내용은 데이터 종류에 무관하게 선형적인 순서를 가지고 체인으로 연결되므로 데이터에 대한 하나의 프로세스를 데이터별로 관리할 수 없다는 문제점이 있었다.However, since the contents recorded in the blockchain are chained in a linear order regardless of the type of data, there is a problem that one process for data cannot be managed for each data.

또한, 블록체인 마이그레이션이 필요한 경우 상기 데이터에 대한 하나의 프로세스를 별도로 마이그레이션 할 수 없거나, 블록체인의 모든 블록 해시를 참조하여 상기 프로세스에 관한 정보를 찾아야 하기 때문에 효율성이 매우 낮은 문제점이 있었다.In addition, when blockchain migration is required, one process for the data cannot be migrated separately, or efficiency is very low because information about the process must be found by referring to all block hashes of the blockchain.

전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.The foregoing background art is technical information that the inventor possessed for derivation of the present invention or acquired during the derivation process of the present invention, and cannot necessarily be said to be known art disclosed to the general public prior to filing the present invention.

본 개시의 목적은 블록체인 기반의 데이터 관리 방법 및 장치를 제공하는 데 있다. 본 개시가 해결하고자 하는 과제는 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 개시의 다른 과제 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 개시의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시가 해결하고자 하는 과제 및 장점들은 특허 청구범위에 나타난 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.An object of the present disclosure is to provide a blockchain-based data management method and apparatus. The problems to be solved by the present disclosure are not limited to the above-mentioned problems, and other problems and advantages of the present disclosure that are not mentioned can be understood by the following description and more clearly understood by the embodiments of the present disclosure. It will be. In addition, it will be appreciated that the problems and advantages to be solved by the present disclosure can be realized by the means and combinations indicated in the claims.

본 개시의 제1 측면은, 사용자의 원본 데이터에 대한 제1 블록을 생성하는 단계; 상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하는 단계; 상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하는 단계; 및 상기 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록하는 단계;를 포함하는 블록체인 기반의 데이터 관리 방법을 제공할 수 있다.A first aspect of the present disclosure includes generating a first block for original data of a user; applying an original data timestamp issued by a time-stamping authority (TSA) to the original data to generate a second block related to the original data timestamp; generating a third block relating to a third party's signature for at least one of the first block and the second block; and sequentially recording the first to third blocks in the ledger of the original block chain.

본 개시의 제2 측면은, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 동작하는 프로세서;를 포함하되, 상기 프로세서는, 사용자의 원본 데이터에 대한 제1 블록을 생성하고, 상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하고, 상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하고, 상기 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록하는, 블록체인 기반의 데이터 관리 장치를 제공할 수 있다.A second aspect of the present disclosure is a memory in which at least one program is stored; and a processor that operates by executing the at least one program, wherein the processor generates a first block for original data of the user, and generates original data issued by a time-stamping authority (TSA) on the original data. apply a timestamp to generate a second block with respect to the original data timestamp, generate a third block with respect to a third party's signature for at least one of the first block and the second block, and generate a third block with respect to the first block; It is possible to provide a blockchain-based data management device that sequentially records the first to third blocks in the ledger of the original blockchain.

본 개시의 제 3 측면은, 제 1 측면의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다. A third aspect of the present disclosure may provide a computer-readable recording medium on which a program for executing the method of the first aspect is recorded on a computer.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 장치 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 더 제공될 수 있다.In addition to this, another method for implementing the present invention, another device, and a computer-readable recording medium recording a program for executing the method may be further provided.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages other than those described above will become apparent from the following drawings, claims and detailed description of the invention.

전술한 본 개시의 과제 해결 수단에 의하면, 데이터에 대한 프로세스를 한 블록체인 안에서 별개로 관리할 수 있고, 데이터에 대한 인증 과정을 블록체인 내에서의 시간 순서와 별개로 증명할 수 있다.According to the above-described problem solving means of the present disclosure, the process for data can be managed separately in one block chain, and the authentication process for data can be proven separately from the time sequence in the block chain.

또한, 본 개시의 과제 해결 수단에 의하면, 블록체인 마이그레이션이 용이한 데이터 관리 방법을 제시할 수 있다.In addition, according to the problem solving means of the present disclosure, a data management method for easy blockchain migration can be presented.

도 1 은 일 실시예에 따른 IPFS 기반의 파일 분산 저장 시스템의 개략적인 구성을 나타낸 개념도이다.
도 2는 일 실시예에 따른 노드의 구성을 도시한 블록도이다.
도 3는 일 실시예에 따른 블록 및 블록체인을 도시한 개념도이다.
도 4는 일 실시예에 따른 블록체인 기반의 데이터 관리 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 가상 블록체인을 구현하는 과정을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 원본 블록체인의 구성을 나타내는 블록도이다.
도 7은 일 실시예에 따른 블록체인 마이그레이션 과정을 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 블록체인 기반의 데이터 관리 장치의 블록도이다.
1 is a conceptual diagram showing a schematic configuration of an IPFS-based file distribution storage system according to an embodiment.
2 is a block diagram showing the configuration of a node according to an embodiment.
3 is a conceptual diagram illustrating a block and a block chain according to an embodiment.
4 is a flowchart illustrating a method for managing blockchain-based data according to an embodiment.
5 is a diagram for explaining a process of implementing a virtual block chain according to an embodiment.
6 is a block diagram showing the configuration of an original block chain according to an embodiment.
7 is a flowchart for explaining a blockchain migration process according to an embodiment.
8 is a block diagram of a block chain-based data management device according to an embodiment.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 설명되는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 아래에서 제시되는 실시예들로 한정되는 것이 아니라, 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 아래에 제시되는 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the embodiments taken in conjunction with the accompanying drawings. However, it should be understood that the present invention is not limited to the examples presented below, but may be implemented in various different forms, and includes all conversions, equivalents, and substitutes included in the spirit and scope of the present invention. do. The embodiments presented below are provided to complete the disclosure of the present invention and to fully inform those skilled in the art of the scope of the invention to which the present invention belongs. In describing the present invention, if it is determined that a detailed description of related known technologies may obscure the gist of the present invention, the detailed description will be omitted.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 “가지다” 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단" 및 "구성"등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.Some embodiments of the present disclosure may be represented as functional block structures and various processing steps. Some or all of these functional blocks may be implemented as a varying number of hardware and/or software components that perform specific functions. For example, functional blocks of the present disclosure may be implemented by one or more microprocessors or circuit configurations for a predetermined function. Also, for example, the functional blocks of this disclosure may be implemented in various programming or scripting languages. Functional blocks may be implemented as an algorithm running on one or more processors. In addition, the present disclosure may employ prior art for electronic environment setting, signal processing, and/or data processing. Terms such as "mechanism", "element", "means" and "component" may be used broadly and are not limited to mechanical and physical components.

또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.In addition, connecting lines or connecting members between components shown in the drawings are only examples of functional connections and/or physical or circuit connections. In an actual device, connections between components may be represented by various functional connections, physical connections, or circuit connections that can be replaced or added.

이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 IPFS 기반의 파일 분산 저장 시스템의 개략적인 구성을 나타낸 개념도이다.1 is a conceptual diagram showing a schematic configuration of an IPFS-based file distribution storage system according to an embodiment.

도 1을 참조하면, IPFS 기반의 파일 분산 저장 시스템(100)은 메인 서버(110), IPFS 네트워크(120), 공유자 단말(130) 및 요청자 단말(140)을 포함할 수 있다. 또한, IPFS 네트워크(120)는 IPFS 노드(Node)(121, 122, 123, 124)를 포함할 수 있다.Referring to FIG. 1 , an IPFS-based file distribution storage system 100 may include a main server 110, an IPFS network 120, a sharer device 130, and a requestor device 140. In addition, the IPFS network 120 may include IPFS nodes 121, 122, 123, and 124.

메인 서버(110)는 IPFS 네트워크(120)에 대한 관제 및 관리를 수행하는 것으로서, 이 때 메인 서버(110)가 피어 리더(Peer Leader) 역할을 수행하는 것이라 할 수 있다. 따라서 IPFS 노드(121, 122, 123, 124) 중 피어 리더의 역할을 수행하는 것이 메인 서버(110)가 될 수 있다. 혹은 별도의 메인 서버(110)를 구비하여 IPFS 노드(121, 122, 123, 124)에 대한 관리 역할을 수행하게 하는 것도 가능하다.The main server 110 controls and manages the IPFS network 120, and at this time, the main server 110 can be said to perform the role of a peer leader. Therefore, among the IPFS nodes 121, 122, 123, and 124, the main server 110 may serve as a peer leader. Alternatively, it is also possible to provide a separate main server 110 to perform a management role for the IPFS nodes 121, 122, 123, and 124.

즉, 메인 서버(110)는 파일 암호화, 분할 처리, 그리고 IPFS 노드(121, 122, 123, 124)로의 분산 저장을 수행하는 주체가 될 수 있으며, IPFS 네트워크(120)를 구성하며 피어 리더의 역할을 수행할 수 있는 것이라면 별도의 제한을 두지 않는다.That is, the main server 110 can be a subject that performs file encryption, partition processing, and distributed storage to the IPFS nodes 121, 122, 123, and 124, and constitutes the IPFS network 120 and serves as a peer leader. If it can be performed, there is no separate restriction.

더불어 메인 서버(110)는 IPFS 노드(121, 122, 123, 124)의 운영 상태를 파악하는 능동적 감시 및 데이터의 업로드/다운로드 상태를 모니터링하는 수동적 감시를 통해 IPFS 노드(121, 122, 123, 124) 및 그를 통한 데이터 분산 저장, 데이터의 업로드 및 다운로드에 대한 관제 및 모니터링을 수행하는 것이라 할 수 있다.In addition, the main server 110 monitors the IPFS nodes 121, 122, 123, and 124 through active monitoring to determine the operational status and passive monitoring to monitor data upload/download status. ) and distributed storage of data through it, and control and monitoring of data upload and download.

또한, 도 1에 도시하지는 않았으나 메인 서버(110)는 사용자 단말(130)에 각 사용자 별 고유 코드가 탑재된 애플리케이션(Application)을 배포하고 통신하며, 문서의 검증과 확인 및 복원결과와 처리된 이력을 관리하고, 사용자 단말의 변경 또는 분실에 대비한 재인증을 처리하는 애플리케이션 서버(미도시)를 더 포함할 수 있다.In addition, although not shown in FIG. 1, the main server 110 distributes and communicates an application loaded with a unique code for each user in the user terminal 130, and verifies and confirms documents and restores results and processed history. It may further include an application server (not shown) that manages and processes re-authentication in preparation for change or loss of a user terminal.

IPFS 노드(121, 122, 123, 124)는 IPFS 네트워크(120)에 있어서 파일이 분할된 데이터 조각에 대한 저장 처리뿐만 아니라 해당 파일의 다운로드 내역 또는 업로드 내역을 포함할 수 있는 트랜잭션(Transaction) 정보가 포함된 블록 및 해당 블록이 쌓인 블록체인에 대한 사본을 저장하는 기능을 수행한다. 블록 및 블록체인에 대하여는 도 3에서 상세히 설명한다.The IPFS nodes 121, 122, 123, and 124 store and process data fragments from which files are divided in the IPFS network 120, as well as transaction information that may include download or upload details of the file. It performs the function of storing a copy of the included block and the blockchain on which the block is stacked. Blocks and blockchains are described in detail in FIG. 3 .

IPFS 노드(121, 122, 123, 124)는 콘텐츠 ID(Contents Identification, CID)를 입력으로 받고 콘텐츠 ID의 원본 데이터를 복구할 수 있는 능력을 가진 모든 컴퓨팅 장비를 의미할 수 있다. 또한, IPFS 노드(121, 122, 123, 124)는 중앙 서버, 릴레이 서버, P2P 네트워크, 블록체인 네트워크 등 다양한 통신수단을 통해서 상호간 통신할 수 있다.The IPFS nodes 121, 122, 123, and 124 may refer to all computing equipment capable of receiving a Contents Identification (CID) as an input and restoring original data of the Contents ID. In addition, the IPFS nodes 121, 122, 123, and 124 may communicate with each other through various communication means such as a central server, a relay server, a P2P network, and a blockchain network.

이 때, 콘텐츠 ID란 원본 파일 데이터의 고유한 이름이다. 데이터의 해시 값과 마찬가지로 두 데이터가 “ABC.txt”와 “DEF.txt”와 같이 다른 파일명을 가지더라도 데이터의 내용이 동일하다면 동일한 콘텐츠 ID를 갖게 된다. 콘텐츠 ID는 원본 파일에 비하여 매우 작은 크기를 가지며 암호학적 해시 함수의 연산 결과를 기반으로 생성될 수 있다.In this case, the content ID is a unique name of original file data. Similar to the hash value of data, even if the two data have different file names such as “ABC.txt” and “DEF.txt”, if the contents of the data are the same, they will have the same content ID. The content ID has a very small size compared to the original file and can be generated based on the calculation result of a cryptographic hash function.

한편, IPFS 노드(121, 122, 123, 124)에 콘텐츠 ID를 공급하는 메인 서버(110)는 IPFS 노드(121, 122, 123, 124)와 통신하여 콘텐츠 ID 정보를 공급하는 역할 및 부정 사용을 방지하는 인증 수단을 갖출 수 있다. 메인 서버(110)가 IPFS 노드(121, 122, 123, 124)와 통신함에 있어, 통신 수단 자체가 보안 채널일 필요는 없다.Meanwhile, the main server 110 that supplies content IDs to the IPFS nodes 121, 122, 123, and 124 communicates with the IPFS nodes 121, 122, 123, and 124 to supply content ID information and prevent fraudulent use. It can be equipped with an authentication means to prevent it. When the main server 110 communicates with the IPFS nodes 121, 122, 123, and 124, the communication means itself does not need to be a secure channel.

인증 수단으로는 IP 주소를 제한하는 네트워크적 방법, 암호화 기술을 통한 사용자 인증 방법, 블록체인 네트워크(120)를 통한 사용자 인증 또는 부정 사용자가 임의로 콘텐츠 ID를 IPFS 네트워크(120)에 입력하는 것을 방지하는 모든 방법을 포함할 수 있다. 이 때, 부정 사용을 인증 절차를 통해 원천적으로 방지하거나 작업증명(Proof of work) 등을 통해 일정 비율 이상으로 부정 사용이 늘어나는 것을 방지할 수 있다.Authentication means include a network method of restricting IP addresses, a user authentication method through encryption technology, user authentication through a blockchain network 120, or a method to prevent unauthorized users from arbitrarily inputting content IDs into the IPFS network 120. All methods can be included. At this time, fraudulent use can be fundamentally prevented through an authentication procedure or fraudulent use can be prevented from increasing beyond a certain rate through proof of work.

메인 서버(110)가 공급하는 콘텐츠 ID는 원본 파일의 콘텐츠 ID일 수도 있고 요구사항에 따라 원본을 암호화 한 결과물의 콘텐츠 ID일 수 있다. 이 때, 암호화 규격을 공유하기 위한 별도의 메타데이터를 공유할 수 있다. 메타데이터는 원본이 노출되어도 보안상 취약점이 없는 정보만을 포함할 수 있다. 예컨대, 암호화 알고리즘의 종류, 패딩 방법 및 초기 벡터 값 등이 있다.The content ID supplied by the main server 110 may be the content ID of the original file or the content ID of the result obtained by encrypting the original file according to requirements. In this case, separate metadata for sharing encryption standards may be shared. Metadata may include only information that has no security vulnerability even if the original source is exposed. For example, there are types of encryption algorithms, padding methods, and initial vector values.

공유자 단말(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) 등 중 어느 하나일 수 있다.The sharer device 130 and the requestor device 140 may be IPFS nodes 121, 122, 123, and 124 themselves, or may be IPFS nodes 121, 122, 123, and 124 that already exist through a relay server. It may be a terminal in use. Here, the sharer terminal 130 and the requester terminal 140 refer to terminals that upload and download files, and may include terminals capable of transmitting and receiving various document data via a communication network according to key manipulation. For example, the sharer terminal 130 and the requester terminal 140 may include a tablet terminal, a laptop, a personal computer (PC), a smartphone, and a personal portable information terminal (PDA). It may be any one of a digital assistant) and a wireless terminal.

IPFS 노드(121, 122, 123, 124)는 콘텐츠 ID의 암호학적 해시 기능을 이용하여 원본 파일의 위변조 가능성을 메인 서버(110)의 도움 없이 검증을 완료할 수 있으며, 콘텐츠 ID의 원본 파일이 IPFS 네트워크(120)의 임의의 장치에 저장되어 있다고 하더라도 이를 자동화된 절차를 통해 탐색 및 데이터를 가져올 수 있다.The IPFS nodes 121, 122, 123, and 124 can complete verification of the possibility of forgery of the original file without the help of the main server 110 by using the cryptographic hash function of the content ID, and the original file of the content ID is IPFS. Even if it is stored in any device of the network 120, it can be searched for and retrieved through an automated procedure.

도 2는 일 실시예에 따른 블록체인 네트워크의 노드의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of nodes of a blockchain network according to an embodiment.

도 2를 참조하면, 노드(200)는 통신부(210), 처리부(220) 및 저장부(230)를 포함할 수 있다. 또한, 노드(200)는 도 1의 IPFS 노드(121, 122, 123, 124)와 동일하거나 동일한 기능을 수행하는 것일 수 있다.Referring to FIG. 2 , a node 200 may include a communication unit 210 , a processing unit 220 and a storage unit 230 . In addition, the node 200 may be the same as or perform the same function as the IPFS nodes 121 , 122 , 123 , and 124 of FIG. 1 .

통신부(210)는 블록체인의 내부 또는 외부와 데이터를 송수신하기 위한 인터페이스를 제공할 수 있다.The communication unit 210 may provide an interface for transmitting and receiving data to and from the inside or outside of the block chain.

저장부(230)에는 분산 원장이 저장될 수 있다. 예를 들어, 블록, 스마트 계약, 계좌, 트랜잭션 등이 저장될 수 있다.A distributed ledger may be stored in the storage unit 230 . For example, blocks, smart contracts, accounts, transactions, etc. may be stored.

또한, 처리부(220)는 저장부(230)에 저장된 분산 원장인 블록체인의 블록에 저장되어 있는 트랜잭션의 내용을 처리할 수 있다. 처리부(220)의 구성은 해당 노드의 기능에 따라 달라질 수 있으며, 예를 들어 노드의 기능은 통합 관리 기능, 블록 생성 기능, 블록 검증 기능 등이 있다. 구체적으로, 통합 관리 노드의 처리부(220)는 전체 풀(Pool) 관리, P2P 관리 및 블록 동기화 관리 기능 등을 수행할 수 있고, 블록 생성 노드의 처리부(220)는 블록 생성을 수행할 수 있으며, 블록 검증 노드의 처리부(220)는 블록 검증 및 합의를 수행할 수 있다.In addition, the processing unit 220 may process contents of transactions stored in blocks of a block chain, which is a distributed ledger, stored in the storage unit 230 . The configuration of the processing unit 220 may vary depending on the function of the corresponding node. For example, the function of the node includes an integrated management function, a block generation function, a block verification function, and the like. Specifically, the processing unit 220 of the integrated management node may perform functions such as overall pool management, P2P management, and block synchronization management, and the processing unit 220 of the block generation node may perform block generation, The processing unit 220 of the block verification node may perform block verification and consensus.

본 발명에 따른 IPFS 노드(200)는 전술한 기능 또는 기능들의 조합뿐만 아니라 전술한 기능 이외의 기능을 수행하는 노드에 해당할 수 있다.The IPFS node 200 according to the present invention may correspond to a node that performs functions other than the above functions as well as the above function or combination of functions.

도 3은 일 실시예에 따른 블록 및 블록체인을 도시한 개념도이다.3 is a conceptual diagram illustrating a block and a block chain according to an embodiment.

도 3을 참조하면, 블록체인(300)은 순차적으로 연결된 하나 이상의 블록들(310, 320, 330)의 분산 데이터베이스의 일종이다. 블록체인(300)은 블록체인 시스템 내 사용자의 정보의 추가, 삭제 및 갱신 등(트랜잭션)을 저장하고 관리하기 위해 사용되며, 블록체인 시스템의 네트워크에 참여하는 각 노드가 블록(310, 320, 330)을 생성하여 블록체인(300)에 연결할 수 있다. 도 3에는 제한된 수의 블록들(310, 320, 330)이 도시되어 있으나 블록체인에 포함될 수 있는 블록의 수는 이에 제한되지 아니한다.Referring to FIG. 3, a blockchain 300 is a kind of distributed database of one or more blocks 310, 320, and 330 sequentially connected. The blockchain 300 is used to store and manage the addition, deletion, and update (transaction) of user information in the blockchain system, and each node participating in the network of the blockchain system blocks (310, 320, 330 ) can be created and connected to the blockchain 300. Although a limited number of blocks 310, 320, and 330 are shown in FIG. 3, the number of blocks that can be included in a blockchain is not limited thereto.

블록체인(300)에 포함된 각 블록(310, 320, 330)은 각각 고유의 해시 값(311, 321, 331)을 가지며, 블록 헤더(312, 322, 332)와 블록 바디(313, 323, 333)를 포함하도록 구성될 수 있다.Each block 310, 320, 330 included in the blockchain 300 has a unique hash value 311, 321, 331, and the block header 312, 322, 332 and the block body 313, 323, 333).

블록체인(300)은 연결된 하나 이상의 블록들(310, 320, 330)을 포함할 수 있다. 블록 헤더(312, 322, 332)는 각 블록들(310, 320, 330) 간의 연결 관계를 나타내기 위하여 이전 블록의 해시 값을 포함할 수 있다. 블록 헤더(312, 322, 332)에 포함된 이전 블록의 해시 값은 직전 블록에 대한 해시 값으로 직전 블록에 포함된 현재 해시와 동일한 값이다. Blockchain 300 may include one or more connected blocks 310 , 320 , and 330 . The block headers 312 , 322 , and 332 may include a hash value of a previous block to indicate a connection relationship between the respective blocks 310 , 320 , and 330 . The hash value of the previous block included in the block headers 312, 322, and 332 is a hash value for the previous block and is the same as the current hash included in the previous block.

예를 들어, 블록 N(320)의 블록 헤더(322)는 이전 블록인 블록 N-1(310)과의 연결 관계를 나타내기 위하여 블록 N-1(310)의 해시 값(311)을 포함할 수 있다. 마찬가지로, 블록 N+1(330)의 블록 헤더(332)는 이전 블록인 블록 N(320)과의 연결 관계를 나타내기 위하여 블록 N(320)의 해시 값(321)을 포함할 수 있다. 이와 같이 표현된 블록 헤더(312, 322, 332)내의 연결 관계는 블록체인(300)의 유효성 검증 과정에서 사용될 수 있다.For example, the block header 322 of the block N 320 may include the hash value 311 of the block N-1 310 to indicate a connection relationship with the block N-1 310, which is the previous block. can Similarly, the block header 332 of the block N+1 330 may include the hash value 321 of the block N 320 to indicate a connection relationship with the block N 320 as a previous block. The connection relationship in the block headers 312, 322, and 332 expressed in this way can be used in the validation process of the block chain 300.

블록들(310, 320, 330)은 각 블록 헤더(312, 322, 332) 내의 이전 블록의 해시 값에 의하여 연쇄적으로 연결된다. 분산형 네트워크에 참여하는 노드들은 블록들(310, 320, 330)에 포함된 이전 블록의 해시 값에 기반하여 블록의 유효성을 검증하므로 악의적인 단일 노드가 이미 생성된 블록의 내용을 위조 또는 변조하는 행위가 불가능하다.The blocks 310 , 320 , and 330 are chained by the hash value of the previous block in each block header 312 , 322 , and 332 . Nodes participating in the distributed network verify the validity of the block based on the hash value of the previous block included in the blocks 310, 320, and 330, so that a single malicious node can forge or tamper with the contents of an already created block. action is impossible

블록 바디(313, 323, 333)는 블록(310, 320, 330)에 저장되고 관리되는 데이터, 즉 트랜잭션 리스트(미도시)를 포함할 수 있다. 트랜잭션 리스트(미도시)는 블록체인 기반의 거래의 목록이다. 트랜잭션 리스트(미도시)는 트리 형태로 표현될 수 있다.The block bodies 313, 323, and 333 may include data stored and managed in the blocks 310, 320, and 330, that is, transaction lists (not shown). The transaction list (not shown) is a list of blockchain-based transactions. A transaction list (not shown) may be expressed in a tree form.

한편, 블록체인(300) 내부에 저장된 트랜잭션이 개별적으로 암호학적 해시를 가지고 있는 경우, 상기 개별 트랜잭션은 본 발명에서 말하는 '블록'의 단위가 될 수 있다. 다시 말해, 블록체인(300) 자체에서 해시 함수를 제공하지 않는 경우에도 인덱스 생성 과정에서 해시가 올바르게 생성되었다면 상기 개별 트랜잭션 또한 블록(310, 320, 330)이 될 수 있다. On the other hand, when transactions stored in the block chain 300 individually have cryptographic hashes, the individual transactions may be a unit of 'block' referred to in the present invention. In other words, even if the block chain 300 itself does not provide a hash function, if the hash is correctly generated during the index creation process, the individual transactions may also become blocks 310, 320, and 330.

블록(310, 320, 330)은 블록 헤더(312, 322, 332)와 블록 바디(313, 323, 333)에 포함된 정보 이외의 기타 정보를 포함할 수 있다.The blocks 310, 320, and 330 may include other information other than the information included in the block headers 312, 322, and 332 and the block bodies 313, 323, and 333.

이하에서, 다양한 실시예에 따른 동작들은 블록체인 기반의 데이터 관리 방법 또는 블록체인 기반의 데이터 관리 장치에 포함된 프로세서에 의해 수행되는 것으로 이해될 수 있다.Hereinafter, operations according to various embodiments may be understood to be performed by a processor included in a blockchain-based data management method or a blockchain-based data management apparatus.

도 4는 일 실시예에 따른 블록체인 기반의 데이터 관리 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method for managing blockchain-based data according to an embodiment.

블록체인 기반의 데이터 관리 장치(이하, '장치'라 함)는 사용자로부터 원본 데이터를 수신하여 블록체인을 기반으로 상기 원본 데이터를 관리하는 서비스를 제공할 수 있다. 일 실시예에서, 원본 데이터는 연구자가 작성한 연구노트에 해당할 수 있고, 장치는 연구노트의 내용, 관리자에 의한 인증, 연구노트의 작성 시점 및 관리자에 의한 인증 시점 등에 관한 트랜잭션을 생성하여 블록체인 네트워크에 저장할 수 있다. 이를 통해 연구노트의 작성자와 관리자의 정보 및 관리자의 승인 프로세스를 저장하여 관리할 수 있다.A blockchain-based data management device (hereinafter, referred to as a 'device') may receive original data from a user and provide a service for managing the original data based on a blockchain. In one embodiment, the original data may correspond to a research note written by a researcher, and the device generates a transaction related to the content of the research note, authentication by an administrator, the time of writing the research note, and the time of authentication by the administrator, etc. can be stored on the network. Through this, it is possible to save and manage the information of the author and manager of the research note and the approval process of the manager.

일 실시예에서, 원본 데이터는 블록체인 네트워크에 직접 기록될 수 있고, 또는 IPFS를 통한 간접적인 분산 저장 방법을 이용하여 IPFS 기반 시스템에 기록될 수도 있다. In one embodiment, original data may be directly recorded on a blockchain network, or may be recorded on an IPFS-based system using an indirect distributed storage method through IPFS.

도 4를 참조하면, 단계 410에서 장치는 사용자의 원본 데이터에 대한 제1 블록을 생성할 수 있다.Referring to FIG. 4 , in step 410, the device may generate a first block for the user's original data.

일 실시예에서, 제1 블록은 원본 데이터를 작성한 사용자에 관한 정보, 원본 데이터의 존재, 원본 데이터의 작성 시간 등 원본 데이터에 관한 트랜잭션 리스트를 포함할 수 있다.In one embodiment, the first block may include a transaction list related to the original data, such as information about a user who created the original data, the existence of the original data, and a creation time of the original data.

한편, 상기 원본 데이터의 작성 시간은 후술할 시점 인증기관의 타임스탬프와 무관하게 사용자가 원본 데이터를 작성한 시점이라고 주장하는 시간에 해당할 수 있다. 따라서 이 경우 사용자가 표시한 원본 데이터 작성 시간은 법적 효력을 가지지 않을 수 있다.Meanwhile, the creation time of the original data may correspond to a time claimed by the user to be the time when the original data is created, regardless of a timestamp of a certification authority, which will be described later. Therefore, in this case, the original data creation time indicated by the user may not have legal effect.

일 실시예에서, 장치는 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정할 수 있다. 블록체인에 기록된 데이터는 누구나 열람 가능하므로 장치는 보안을 위해 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정할 수 있다.In one embodiment, the device may determine whether to encrypt the content ID of the original data. Since the data recorded on the blockchain can be viewed by anyone, the device can decide whether to encrypt the content ID of the original data for security.

장치가 원본 데이터의 콘텐츠 ID를 암호화하는 경우, 제1 블록은 원본 데이터의 콘텐츠 ID를 암호화하는데 사용된 대칭키 알고리즘(Symmetric-key algorithm) 및/또는 초기 벡터(Initial vector)를 포함할 수 있다. 대칭키 알고리즘은 암호화 알고리즘의 한 종류로 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다. 초기 벡터는 가상의 블록으로, 초기 벡터를 암호화한 결과와 암호화할 블록을 XOR(exclusive OR, 배타적 논리합)하여 암호문 블록으로 변환하는 데 사용될 수 있다.When the device encrypts the content ID of the original data, the first block may contain a symmetric-key algorithm and/or an initial vector used to encrypt the content ID of the original data. A symmetric key algorithm is a type of encryption algorithm that uses the same encryption key for both encryption and decryption. An initial vector is a virtual block, and can be used to convert a ciphertext block by XOR (exclusive OR) between the result of encrypting the initial vector and the block to be encrypted.

장치가 원본 데이터의 콘텐츠 ID를 암호화하지 않는 경우, 제1 블록은 원본 데이터의 해시 및/또는 원본 데이터의 해시 알고리즘을 포함할 수 있다.If the device does not encrypt the content ID of the original data, the first block may contain a hash of the original data and/or a hash algorithm of the original data.

단계 420에서, 장치는 수신한 원본 데이터에 TSA(Time Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 원본 데이터 타임스탬프에 관한 제2 블록을 생성할 수 있다.In step 420, the device may apply an original data timestamp issued by a Time Stamping Authority (TSA) to the received original data to generate a second block with respect to the original data timestamp.

TSA는 타임스탬프를 발행하는 기관, 즉 시점 인증 서비스를 제공하는 기관으로 TSA 서비스는 시점인증 기관이 원본 데이터의 작성 및 수정 시간을 인증하는 프로세스로 이루어진다. TSA가 타임스탬핑을 수행함으로써 원본 데이터의 소유자조차도 변경할 수 없게 되어 TSA가 원본 데이터에 대한 타임스탬프를 발행하는 시점 또는 TSA가 발행한 타임스탬프에 관한 블록을 생성하는 시점에 원본 데이터가 존재하였고 그 이후에 변경되지 않았음을 증명할 수 있게 된다.TSA is an organization that issues timestamps, that is, an organization that provides a time stamp authentication service. The TSA service consists of a process in which the time stamp authentication agency certifies the creation and modification time of original data. Because TSA performs timestamping, even the owner of the original data cannot be changed, so the original data existed at the time TSA issued a timestamp for the original data or created a block about the timestamp issued by TSA, and thereafter You can prove that it hasn't changed.

일 실시예에서, 장치는 사용자의 원본 데이터의 해시를 TSA에 전송하여 타임스탬프 발급을 요청하고 TSA로부터 타임스탬프 토큰(Token)을 발급받아 원본 데이터에 주입함으로써, 원본 데이터에 타임스탬프를 적용할 수 있다. 또한, 장치는 TSA가 발행한 원본 데이터 타임스탬프에 대한 제2 블록을 생성할 수 있다.In one embodiment, the device transmits the hash of the user's original data to TSA to request timestamp issuance, and receives a timestamp token from TSA and injects it into the original data, thereby applying a timestamp to the original data. there is. Additionally, the device may generate a second block for the original data timestamp issued by the TSA.

한편, N번째 블록에 대한 TSA의 타임스탬프가 1개 존재한다고 해도 1번째 블록 내지 (N-1)번째 블록 또한 상기 타임스탬프 이전에 생성되었음이 증명되므로 본 발명에서 제2 블록의 타임스탬프는 제1 블록 또한 제2 블록이 생성된 시점과 동일한 시점 또는 그 이전 시점에 생성되었다는 사실을 보증할 수 있다.On the other hand, even if there is one TSA timestamp for the Nth block, it is proved that the 1st to (N-1)th blocks were also created before the timestamp, so in the present invention, the timestamp of the second block is Block 1 may also be guaranteed to have been created at the same time as the time when the second block was created or earlier.

단계 430에서, 장치는 제1 블록 및 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성할 수 있다.In step 430, the device may generate a third block with a third party's signature for at least one of the first block and the second block.

일 실시예에서, 제3자는 원본 데이터를 작성한 사용자와 다른 제3자를 의미할 수 있다. 예를 들어, 원본 데이터가 연구노트인 경우 제3자는 연구노트를 작성한 사용자가 속한 연구기관 또는 연구기관의 관리자일 수 있다.In one embodiment, the third party may mean a third party different from the user who created the original data. For example, if the original data is a research notebook, the third party may be a research institute to which the user who wrote the research notebook belongs or a manager of the research institute.

일 실시예에서, 서명은 아날로그 서명의 이미지 파일에 대한 콘텐츠 ID에 해당할 수 있다. 또는, 서명은 개인키(Private Key)와 공개키(Public Key) 암호를 이용한 전자서명을 포함할 수 있다.In one embodiment, the signature may correspond to a content ID for an image file of an analog signature. Alternatively, the signature may include a digital signature using a private key and public key encryption.

일 실시예에서, 제3 블록은 서명한 제3자에 관한 정보, 서명의 대상이 되는 원본 데이터를 작성한 사용자 및 TSA가 발행한 원본 데이터 타임스탬프에 관한 정보, 제3자의 서명 시간 등 제3자의 서명에 관한 트랜잭션 리스트를 포함할 수 있다. 이 때, 원본 데이터의 작성 시간과 마찬가지로 제3자의 서명 시간은 제3자가 서명한 시점이라고 주장하는 시간에 해당할 수 있고 법적 효력을 가지지 않을 수 있다.In one embodiment, the third block includes information about the third party that signed, information about the original data timestamp issued by the user and TSA who created the original data subject to signature, and the time of signing by the third party. It can contain a list of transactions related to the signature. At this time, like the creation time of the original data, the third party's signature time may correspond to the time the third party claims to have signed and may not have legal effect.

단계 440에서, 장치는 제1 내지 제3 블록을 순차적으로 원본 블록체인의 원장에 기록할 수 있다.In step 440, the device may sequentially record the first to third blocks in the ledger of the original block chain.

일 실시예에서, 원본 블록체인 네트워크는 도 3의 블록체인(300)에 해당할 수 있고, 또한 제1 내지 제3 블록은 도 3의 하나 이상의 블록들(310, 320, 330)에 해당할 수 있다.In one embodiment, the original blockchain network may correspond to the blockchain 300 of FIG. 3, and the first to third blocks may correspond to one or more blocks 310, 320, and 330 of FIG. there is.

일 실시예에서, 원본 블록체인 네트워크는 도 1의 IPFS 기반의 파일 분산 저장 시스템(100)과 연계될 수 있다. 예를 들어, 장치는 제1 내지 제3 블록을 원본 블록체인 네트워크의 원장에 기록하고, 원본 데이터는 IPFS 기반의 파일 분산 저장 시스템(100) 또는 IPFS 노드(121, 122, 123, 124)에 분산 저장할 수 있다.In one embodiment, the original blockchain network may be linked to the IPFS-based file distribution storage system 100 of FIG. 1 . For example, the device records the first to third blocks in the ledger of the original blockchain network, and the original data is distributed to the IPFS-based file distribution storage system 100 or IPFS nodes 121, 122, 123, and 124 can be saved

도 5는 일 실시예에 따른 가상 블록체인을 구현하는 과정을 설명하기 위한 도면이다.5 is a diagram for explaining a process of implementing a virtual block chain according to an embodiment.

보편적으로 블록체인에 기록되는 내용은 '블록체인 지갑'으로서 공개키 등으로 서명된 정보이며 개인의 전자서명과는 무관하다. 또한, 공인 인증서로 발급되는 RSA 기반 인증서는 블록체인에서 사용하는 타원곡선 암호(Eliptic Curve Cryptosystem) 기반 인증서와 호환되지 않는다.In general, the contents recorded on the blockchain are 'blockchain wallet', which is information signed with a public key, etc., and has nothing to do with an individual's electronic signature. In addition, RSA-based certificates issued as public certificates are not compatible with elliptic curve cryptosystem-based certificates used in blockchain.

또한, 데이터 종류에 무관하게 선형적인 순서를 갖는 보편적인 블록체인 기술에 의하면 사용자의 원본 데이터를 작성, 이에 대해 TSA가 발행한 타임스탬프를 적용, 원본 데이터 및/또는 타임스탬프에 대한 제3자의 서명이라는 인증 체인이 각 원본 데이터별로 존재하도록 구현할 수 없다.In addition, according to universal blockchain technology that has a linear sequence regardless of data type, the user's original data is created, a timestamp issued by TSA is applied to it, and a third party's signature on the original data and/or timestamp authentication chain cannot be implemented for each original data.

따라서 이하 도 5를 참조하여 블록체인 내부의 가상 블록체인을 구현하여 전술한 기술적 문제를 해결하는 방법을 상세히 서술하도록 한다.Therefore, with reference to FIG. 5, a method for solving the above technical problem by implementing a virtual block chain inside a block chain will be described in detail.

도 5를 참조하면, 원본 블록체인(500)은 블록 N-2 내지 블록 N+3(510 내지 560)을 포함할 수 있다. 블록 N-2 내지 블록 N+3(510 내지 560)은 생성된 트랜잭션을 순서대로 저장하고 있으므로, 선형적인 순서를 가지고 체인으로 연결되어 있다. 설명의 편의를 위하여 6개의 블록을 도시했으나, 개수는 이에 제한되지 않는다.Referring to FIG. 5 , the original blockchain 500 may include blocks N-2 to N+3 (510 to 560). Since blocks N-2 to N+3 (510 to 560) store generated transactions in order, they are connected in a chain in a linear order. Although six blocks are shown for convenience of description, the number is not limited thereto.

일 실시예에서, 장치는 제1 내지 제3 블록을 순차적으로 원본 블록체인(500)에 기록할 수 있다. 따라서 각 블록은 블록 N-1 내지 블록 N+3(510 내지 560) 중 어느 하나에 해당할 수 있다.In one embodiment, the device may sequentially record the first to third blocks in the original block chain 500 . Accordingly, each block may correspond to one of blocks N−1 to N+3 (510 to 560).

본 발명에서 블록을 '순차적으로' 기록한다고 함은 연속된 블록으로 기록한다는 것을 의미하지 않는다. 예를 들어 도 5를 참조하면, 제1 블록(510)을 제2 블록(530)보다 먼저 원본 블록체인(500)에 기록하였으나, 제1 블록(510) 및 제2 블록(530)은 이웃하지 않음을 확인할 수 있다.In the present invention, 'sequentially' recording of blocks does not mean recording in consecutive blocks. For example, referring to FIG. 5, the first block 510 was recorded in the original blockchain 500 before the second block 530, but the first block 510 and the second block 530 are not adjacent to each other. can confirm that it is not.

일 실시예에서, 제2 블록은 제1 블록의 위치를 포함할 수 있다. 또한, 제3 블록은 제1 및/또는 제2 블록의 위치를 포함할 수 있다. 예를 들어, 장치는 가상 체인으로 연결하려는 블록의 위치 정보가 포함된 블록을 생성할 수 있다.In one embodiment, the second block may include the location of the first block. Also, the third block may include locations of the first and/or second blocks. For example, the device may create a block including location information of a block to be connected as a virtual chain.

이를 통해 원본 블록체인(500)의 블록 N-2 내지 블록 N+3(510 내지 560)의 연결관계와 별개로, 장치가 생성한 각 블록들은 가상 체인으로써 별도의 연결관계를 가질 수 있다.Through this, apart from the connection relationship between block N-2 to block N+3 (510 to 560) of the original block chain 500, each block created by the device may have a separate connection relationship as a virtual chain.

도 6은 일 실시예에 따른 원본 블록체인의 구성을 나타내는 블록도이다.6 is a block diagram showing the configuration of an original block chain according to an embodiment.

도 6을 참조하면, 블록 N-1(610), 블록 N(620) 및 블록 N+1(630)은 연속하게 연결된 블록이며, 블록 N-1(610)과 블록 N+1(630)은 가상 체인(613)으로 연결된 블록이다.Referring to FIG. 6, a block N-1 610, a block N 620, and a block N+1 630 are consecutively connected blocks, and the block N-1 610 and the block N+1 630 are It is a block connected by virtual chain 613.

일 실시예에서, 가상체인(613)으로 연결된 각 블록(610, 630)은 필수정보(611, 631) 및/또는 인덱스정보(612, 632)를 포함할 수 있다.In one embodiment, each block 610 or 630 connected by the virtual chain 613 may include essential information 611 or 631 and/or index information 612 or 632.

필수정보(611, 631)는 블록에 저장되는 콘텐츠에 관한 정보이다. 예를 들어 제1 블록에 포함되는 필수정보는 사용자가 작성한 원본 데이터에 대한 정보일 수 있다. Essential information (611, 631) is information about the content stored in the block. For example, essential information included in the first block may be information about original data created by a user.

인덱스정보(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에 대한 정보를 포함할 수 있다.The index information 612 and 632 is information referred to for connecting the virtual chain 613. In one embodiment, when connecting the first block and the second block with a virtual chain, index information included in the second block may be information about the location of the first block. Alternatively, when information on the location of the first block is included in the index information included in the second block, it may be defined that the first block and the second block are connected through a virtual chain. For example, assuming that the block N−1 610 is the first block and the block N+1 630 is the second block, the index information 632 of the second block 630 is the first block 610 It may include information about the position of or N-1, which is the block number of the first block 610.

한편, 인덱스정보(612, 632)는 전술한 필수정보(611, 631)가 변경되어 있지 않음을 보장해야 한다. 예를 들어, 필수정보(611, 631) 전체를 블록체인과 별도로 별개의 암호학적 해시 함수를 사용한 해시 값, 필수정보(611, 631) 전체를 포함하는 데이터의 해시 값(예컨대, 해당 필수정보가 포함된 블록의 블록 해시), 제네시스 블록 해시와 블록 높이 값 및 이외의 필수정보(611, 631)의 무결성을 증명하는 방법 등이 있다. 사용자는 시스템별 검색 성능 향상을 위하여 위 방법 중 하나 이상의 인덱스정보를 동시에 가질 수 있다. 이 때, 이전 블록에 대한 인덱스 정보는 다음 블록의 필수정보에 포함되어야 한다. 한편, 인덱스 정보를 포함하지 않는 경우 원본 데이터의 복사본을 가지고 있는 것으로 대체할 수 있다. 이에 관하여 도 7에서 자세히 후술하기로 한다.On the other hand, the index information (612, 632) must ensure that the aforementioned essential information (611, 631) is not changed. For example, a hash value using a cryptographic hash function separate from the block chain for the entire essential information (611, 631), a hash value of data including the entire essential information (611, 631) (e.g., the required information is Block hash of the included block), genesis block hash, block height value, and other methods of proving the integrity of essential information (611, 631). The user may have index information of one or more of the above methods at the same time in order to improve search performance for each system. At this time, the index information for the previous block must be included in the essential information of the next block. On the other hand, if index information is not included, it can be replaced with a copy of the original data. This will be described later in detail with reference to FIG. 7 .

데이터에 대한 하나의 프로세스가 여러 블록에 기록된 경우에도 각 블록을 가상체인으로 연결하여 관리함으로써 데이터 관리 및 타 블록체인으로의 마이그레이션이 용이해지는 효과가 있다.Even if one process for data is recorded in several blocks, each block is connected and managed through a virtual chain, which has the effect of facilitating data management and migration to other blockchains.

다시 도 5로 돌아가서, 전술한 설명을 바탕으로 제1 블록 내지 제4 블록(510, 530, 540, 560)의 구성에 관하여 상세히 서술한다.Returning to FIG. 5 again, the configuration of the first to fourth blocks 510, 530, 540, and 560 will be described in detail based on the above description.

일 실시예에서, 제1 블록(510)은 제1 필수정보를 포함할 수 있다. 또한, 제1 필수정보는 원본 데이터를 작성한 사용자의 신원을 증명할 수 있는 사용자 인증서, 원본 데이터의 콘텐츠 ID, 사용자가 표시한 원본 데이터의 작성 시점 및 원본 데이터의 콘텐츠 ID와 작성 시점에 대한 서명 중 적어도 하나를 포함할 수 있다.In one embodiment, the first block 510 may include first essential information. In addition, the first essential information is at least one of a user certificate capable of proving the identity of the user who created the original data, a content ID of the original data, a content ID of the original data displayed by the user, and a signature for the content ID and creation time of the original data. may contain one.

일 실시예에서, 사용자 인증서는 사용자의 공개키를 의미할 수 있고, 원본 데이터의 콘텐츠 ID 및 원본 데이터의 작성 시점에 대한 서명은 사용자 인증서를 그대로 사용할 수 있다.In one embodiment, the user certificate may mean a user's public key, and the content ID of the original data and the signature for the creation time of the original data may use the user certificate as it is.

즉, 제1 블록(510)은 사용자가 원본 데이터를 작성했음을 나타내는 모든 정보를 포함할 수 있다.That is, the first block 510 may include all information indicating that the user wrote the original data.

일 실시예에서, 제2 블록(530)은 제2 필수정보를 포함할 수 있다. 또한, 제2 필수정보는 제1 필수정보 전체에 대한 콘텐츠 ID 및 제1 필수정보에 대한 원본 데이터 타임스탬프에 관한 정보 중 적어도 하나를 포함할 수 있다.In one embodiment, the second block 530 may include second essential information. In addition, the second essential information may include at least one of a content ID for all of the first essential information and information about an original data timestamp for the first essential information.

제1 필수정보 전체에 대한 콘텐츠 ID는 원본 데이터의 콘텐츠 ID와 별개로 제1 필수정보 전체를 하나의 데이터로 보아 이에 대응되는 콘텐츠 ID를 의미한다. 타임스탬프는 TSA에서 제1 필수정보에 대한 시점 인증을 위하여 발행한 것에 해당한다. 이 때, 타임스탬프는 RFC 3161 표준을 따르는 것일 수 있다.The content ID of the entire first essential information refers to a content ID corresponding to the entirety of the first essential information as one piece of data, apart from the content ID of the original data. The timestamp corresponds to the one issued by TSA for time point authentication for the first essential information. In this case, the timestamp may follow the RFC 3161 standard.

일 실시예에서, 제2 블록(530)은 제2 인덱스정보를 포함할 수 있다. 또한, 제2 인덱스정보는 제1 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 예를 들어, 제2 인덱스정보는 제1 필수정보가 기록된 제1 블록(510)의 위치 또는 제1 필수정보가 기록된 제1 블록(510) 내의 트랜잭션의 세부 위치를 포함할 수 있다. 이에 따라, 제1 블록(510) 및 제2 블록(530)은 제2 인덱스정보를 통해 가상체인으로 연결될 수 있다.In one embodiment, the second block 530 may include second index information. Also, the second index information may include a location of a block in which the first essential information is recorded or a location of a transaction. For example, the second index information may include a location of the first block 510 in which the first essential information is recorded or a detailed location of a transaction in the first block 510 in which the first essential information is recorded. Accordingly, the first block 510 and the second block 530 may be connected to the virtual chain through the second index information.

즉, 제2 블록(530)은 원본 데이터에 대한 TSA의 시점 인증 및 제1 블록(510)과의 연결에 관한 모든 정보를 포함할 수 있다.That is, the second block 530 may include all information related to TSA point-in-time authentication of original data and connection with the first block 510 .

일 실시예에서, 제3 블록(540)은 제3 필수정보를 포함할 수 있다. 또한, 제3 필수정보는 제3자의 신원을 증명할 수 있는 제3자 인증서, 제3자의 인증 본문 및 인증 본문에 대한 서명 중 적어도 하나를 포함할 수 있다. 제3자의 인증 본문은, 제1 필수정보 전체에 대한 콘텐츠 ID, 제2 필수정보 전체에 대한 콘텐츠 ID 및 제3자가 표시한 제3자의 인증 시점을 포함할 수 있다.In one embodiment, the third block 540 may include third essential information. Also, the third essential information may include at least one of a third party certificate capable of proving the identity of the third party, a third party authentication body, and a signature for the authentication body. The authentication body of the third party may include a content ID for all of the first essential information, a content ID for all of the second essential information, and the third party's authentication time point indicated by the third party.

일 실시예에서, 제3자 인증서는 제3자의 공개키를 의미할 수 있고, 제3자의 인증 본문에 대한 서명은 제3자 인증서를 그대로 사용할 수 있다.In one embodiment, the third party certificate may refer to a third party's public key, and the third party certificate may be used as it is for the signature of the third party's authentication body.

일 실시예에서, 제3 블록(540)은 제3 인덱스정보를 포함할 수 있다. 또한, 제3 인덱스정보는 제2 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 이에 따라 제2 블록(530) 및 제3 블록(540)은 제3 인덱스정보를 통해 가상체인으로 연결될 수 있다.In one embodiment, the third block 540 may include third index information. Also, the third index information may include a location of a block in which the second essential information is recorded or a location of a transaction. Accordingly, the second block 530 and the third block 540 may be connected to the virtual chain through the third index information.

다른 실시예에서, 제3 인덱스정보는 제1 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 더 포함할 수 있다. 이에 따라 제1 블록(510) 및 제3 블록(540)은 제3 인덱스정보를 통해 가상체인으로 연결될 수 있다.In another embodiment, the third index information may further include a location of a block in which the first essential information is recorded or a location of a transaction. Accordingly, the first block 510 and the third block 540 may be connected to the virtual chain through the third index information.

즉, 제3 블록(540)은 원본 데이터 및 원본 데이터 타임스탬프에 대한 제3자의 인증, 제2 블록(530)과의 연결에 관한 모든 정보를 포함할 수 있다.That is, the third block 540 may include all information about the third party's authentication of the original data and the original data timestamp, and the connection with the second block 530 .

일 실시예에서, 장치는 제3 블록(540)에 대하여 TSA가 발행한 관리자 서명 타임스탬프를 적용하여 관리자 서명 타임스탬프에 관한 제4 블록(560)을 생성할 수 있다. 제4 블록을 생성함으로써 제3자가 원본 데이터 및 원본 데이터 타임스탬프에 대한 인증 역할을 적절한 시점에 수행하였는지에 대하여 TSA가 한 번 더 인증할 수 있다. 이후, 장치는 제4 블록(560)을 원본 블록체인(500)의 원장에 기록할 수 있다.In one embodiment, the device may apply the TSA-issued administrator signature timestamp to the third block 540 to generate the fourth block 560 for the administrator signature timestamp. By generating the fourth block, the TSA can once again authenticate whether the third party has performed the role of authenticating the original data and the original data timestamp at the appropriate time. Thereafter, the device may record the fourth block 560 in the ledger of the original block chain 500 .

일 실시예에서, 제4 블록(560)은 제4 필수정보를 포함할 수 있다. 또한, 제4 필수정보는 제3 필수정보 전체에 대한 콘텐츠 ID 및 제3 필수정보 전체에 대한 관리자 서명 타임스탬프에 관한 정보 중 적어도 하나를 포함할 수 있다.In one embodiment, the fourth block 560 may include fourth essential information. Also, the fourth essential information may include at least one of a content ID for all of the third essential information and information about a manager signature timestamp for all of the third essential information.

일 실시예에서, 제4 블록(560)은 제4 인덱스정보를 포함할 수 있다. 또한, 제4 인덱스정보는 제3 필수정보가 기록된 블록의 위치 또는 트랜잭션의 위치를 포함할 수 있다. 이에 따라, 제4 블록(560)은 제3 블록(540)과 제4 인덱스정보를 통해 가상체인으로 연결될 수 있다.In one embodiment, the fourth block 560 may include fourth index information. Also, the fourth index information may include a location of a block or a location of a transaction in which the third essential information is recorded. Accordingly, the fourth block 560 may be connected to the virtual chain through the third block 540 and the fourth index information.

다른 실시예에서, 제4 인덱스정보는 제1 및/또는 제2 필수정보가 기록된 각 블록의 위치 또는 각 트랜잭션의 위치를 더 포함할 수 있다. 이에 따라 제4 블록(560)은 제1 블록(510) 및/또는 제2 블록(540)과 제4 인덱스정보를 통해 가상체인으로 연결될 수 있다.In another embodiment, the fourth index information may further include a location of each block or a location of each transaction in which the first and/or second essential information is recorded. Accordingly, the fourth block 560 may be connected to the first block 510 and/or the second block 540 through the fourth index information as a virtual chain.

즉, 제4 블록(560)은 상기 제3자의 인증에 대한 TSA의 시점 인증 및 제3 블록(540)과의 연결에 관한 모든 정보를 포함할 수 있다.That is, the fourth block 560 may include all information related to TSA's point-in-time authentication of the third party's authentication and connection with the third block 540 .

한편, 전술한 제1 내지 제4 블록의 시간 순서에 대한 증명은 블록체인 뿐만 아니라 별개로 TSA로부터 발급받은 타임스탬프로써 가능하며, 타임스탬프를 통해 블록들의 순서의 재구성과 증명이 가능할 수 있다.On the other hand, proof of the time order of the above-mentioned first to fourth blocks can be performed not only by the block chain but also by a timestamp separately issued from the TSA, and the order of blocks can be reconstructed and verified through the timestamp.

도 7은 일 실시예에 따른 블록체인 마이그레이션 과정을 설명하기 위한 흐름도이다.7 is a flowchart for explaining a blockchain migration process according to an embodiment.

일 실시예에서, 장치는 원본 블록체인을 타 블록체인으로 마이그레이션할 수 있다. 예를 들어, 타 블록체인은 하드포크(Hard Fork)에 따른 새로운 블록체인일 수 있다. 또는, 타 블록체인은 원본 블록체인과 전혀 다른 도메인을 가지는 새로운 블록체인일 수 있다. 이하 마이그레이션 과정을 구체화하여 설명한다.In one embodiment, the device may migrate an original blockchain to another blockchain. For example, another blockchain may be a new blockchain following a hard fork. Alternatively, the other blockchain may be a new blockchain having a completely different domain from the original blockchain. The migration process will be described in detail below.

도 7을 참조하면, 단계 710에서, 장치는 제4 블록에 기초하여 원본 블록체인에서 제1 내지 제4 블록의 위치를 추출할 수 있다.Referring to FIG. 7 , in step 710, the device may extract the locations of the first to fourth blocks in the original blockchain based on the fourth block.

일 실시예에서, 장치는 제4 블록에 포함된 제4 인덱스정보로부터 제3 블록의 위치를 추출할 수 있고, 제3 블록에 포함된 제3 인덱스정보로부터 제2 블록의 위치를 추출할 수 있으며, 제2 블록에 포함된 제2 인덱스정보로부터 제1 블록의 위치를 추출할 수 있다. 다른 실시예에서, 장치는 제4 인덱스정보에 제1 내지 제3 블록의 위치가 모두 기록된 경우, 제4 인덱스 정보로부터 제1 내지 제3 블록의 위치를 모두 추출할 수 있다.In one embodiment, the device may extract the location of the third block from the fourth index information included in the fourth block, and extract the location of the second block from the third index information included in the third block, , the location of the first block can be extracted from the second index information included in the second block. In another embodiment, when the positions of the first to third blocks are all recorded in the fourth index information, the device may extract all positions of the first to third blocks from the fourth index information.

일 실시예에서, 장치는 제1 내지 제4 블록으로부터 제1 내지 제4 필수정보를 모두 획득할 수 있다. 또한, 장치는 제1 내지 제4 필수정보에서 콘텐츠 ID, 인증서, 작성 또는 인증시점, 서명 등을 포함한 모든 정보를 획득할 수 있다.In one embodiment, the device may acquire all of the first to fourth essential information from the first to fourth blocks. In addition, the device can obtain all information including content ID, certificate, creation or certification time, signature, etc. from the first to fourth essential information.

단계 720에서, 장치는 제1 내지 제4 블록의 무결성을 검증할 수 있다.In step 720, the device may verify the integrity of the first to fourth blocks.

일 실시예에서, 장치는 제1 내지 제4 블록에 기록된 해시값 및 전자서명의 유효성을 검증함으로써 제1 내지 제4 블록의 무결성을 검증할 수 있다.In one embodiment, the device may verify the integrity of the first to fourth blocks by verifying the validity of the hash values and electronic signatures recorded in the first to fourth blocks.

블록체인 네트워크는 자체로 위변조가 거의 불가능하나, 마이그레이션 과정에서 원본 블록체인의 무결성을 검증함으로써 마이그레이션에 따라 발생할 수 있는 신뢰성 문제를 해결할 수 있다.The blockchain network itself is almost impossible to falsify, but by verifying the integrity of the original blockchain during the migration process, reliability problems that may arise during migration can be resolved.

단계 730에서, 장치는 제1 내지 제4 블록에 포함된 정보를 순차적으로 타 블록체인의 블록에 저장할 수 있다.In step 730, the device may sequentially store the information included in the first to fourth blocks in blocks of other blockchains.

이하 원본 블록체인의 제1 내지 제4 블록이 마이그레이션될 타 블록체인의 블록을 각각 제1 내지 제4 이주블록이라고 정의한다.Hereinafter, blocks of other blockchains to which the first to fourth blocks of the original blockchain are to be migrated are defined as first to fourth migration blocks, respectively.

일 실시예에서, 장치는 제1 필수정보를 제1 이주블록에 필수정보로써 저장할 수 있다. 또한, 장치는 제2 필수정보를 제2 이주블록에 필수정보로써 저장하고, 제1 이주블록의 위치를 제2 이주블록에 인덱스정보로써 저장할 수 있다. 또한, 장치는 제3 필수정보를 제3 이주블록에 필수정보로써 저장하고, 제2 이주블록의 위치를 제3 이주블록에 인덱스정보로써 저장할 수 있다. 마찬가지로, 장치는 제4 필수정보를 제4 이주블록에 필수정보로써 저장하고, 제3 이주블록의 위치는 제4 이주블록에 인덱스정보로써 저장할 수 있다.In one embodiment, the device may store the first essential information as essential information in the first migration block. Also, the device may store the second essential information in the second migration block as essential information, and store the location of the first migration block in the second migration block as index information. Also, the device may store the third essential information in the third migration block as essential information, and store the location of the second migration block in the third migration block as index information. Similarly, the device may store the fourth essential information as essential information in the fourth migration block, and store the position of the third migration block as index information in the fourth migration block.

다른 실시예에서, 제3 이주블록의 인덱스정보는 제1 이주블록의 위치를 더 포함할 수 있으며, 제4 이주블록의 인덱스정보는 제1 및/또는 제2 이주블록의 위치를 더 포함할 수 있다.In another embodiment, the index information of the third migration block may further include the location of the first migration block, and the index information of the fourth migration block may further include the location of the first and/or second migration block. there is.

일 실시예에서, 장치는 참조할 데이터가 저장된 원본 블록체인의 제1 내지 제4 블록 중 적어도 하나의 블록의 해시, 제네시스 블록 해시(Genesis Block Hash), 블록높이(Block Height) 및 개별 트랜잭션의 고유ID 중 적어도 하나를 제1 이주블록의 인덱스정보로써 저장할 수 있다. In one embodiment, the device determines the hash of at least one of the first to fourth blocks of the original block chain in which the data to be referenced is stored, the genesis block hash, the block height, and the uniqueness of each transaction. At least one of the IDs may be stored as index information of the first migration block.

또는 다른 실시예에서, 장치는 참조할 데이터가 저장된 원본 블록체인의 제1 내지 제4 블록 중 적어도 하나의 블록의 해시를 제1 이주블록의 인덱스 정보로써 필수적으로 포함할 수 있으며, 제네시스 블록 해시, 블록 높이 및 개별 트랜잭션의 고유ID 중 적어도 하나를 제1 이주블록의 인덱스 정보로써 선택적으로 포함할 수 있다. 원본 블록체인의 각 블록의 해시는 존재의 증명을 위하여 필수적으로 필요하고 제네시스 블록 해시, 블록 높이 및 개별 트랜잭션의 고유ID 등은 검색 속도를 높이기 위한 것으로 선택적이기 때문이다.Alternatively, in another embodiment, the device may necessarily include the hash of at least one of the first to fourth blocks of the original block chain in which the reference data is stored as index information of the first migration block, the genesis block hash, At least one of a block height and a unique ID of an individual transaction may be selectively included as index information of the first migration block. This is because the hash of each block in the original blockchain is essential for proof of existence, and the genesis block hash, block height, and unique ID of each transaction are optional to speed up the search.

제네시스 블록은 블록체인 네트워크가 최초에 시작될 때 만들어진 블록이며, 블록높이가 0인 블록을 의미한다. 블록 0이라고도 한다.A genesis block is a block created when a blockchain network is initially started, and refers to a block with a block height of 0. Also called block 0.

블록높이는 제네시스 블록으로부터 생성된 블록의 총 수를 의미한다. 특정 블록의 블록높이는 블록체인에서 앞에 존재하는 블록 수로 정의된다. 제네시스 블록과는 달리 모든 블록은 바로 이전 블록에 대한 해시를 포함하므로 블록높이를 가진다.Block height means the total number of blocks created from the genesis block. The block height of a particular block is defined as the number of blocks that exist before it in the blockchain. Unlike the genesis block, every block has a block height because it contains the hash of the previous block.

개별 트랜잭션의 고유ID는 제1 내지 제4 블록에서 참조할 트랜잭션이 해당 블록의 어디(몇 번째)에 위치하는지를 특정해주는 정보가 될 수 있다.The unique ID of each transaction may be information specifying where (what number) a transaction to be referred to in the first to fourth blocks is located in the corresponding block.

원본 블록체인에서 타 블록체인으로 마이그레이션 된 이후 또 다시 새로운 블록체인으로 마이그레이션 해야 하는 경우에도 원본 블록체인의 제1 내지 제4 블록을 참조할 수 있다.Even if you need to migrate to a new blockchain again after migrating from the original blockchain to another blockchain, you can refer to the first to fourth blocks of the original blockchain.

따라서, 일 실시예에 따르면, 원본 데이터에 관한 블록(예컨대, 타 블록체인에서의 제1 이주블록)이 제1 인덱스정보를 포함하고 있다면 해당 블록을 포함하는 블록체인은 마이그레이션된 블록체인임을 의미할 수 있다.Therefore, according to an embodiment, if a block related to the original data (eg, a first migration block in another block chain) includes the first index information, it means that the block chain including the corresponding block is a migrated block chain. can

위와 같은 블록체인 마이그레이션 과정을 통해, 현재의 원본 블록체인에 있는 데이터를 타 블록체인으로 이관하더라도 각 블록이 생성된 시점에 TSA 정보를 기반으로 사건 순서를 재구성 및 존재의 증명이 가능한 마이그레이션 기법을 제시할 수 있는 효과가 있다. 또한, 본 발명에서 인덱스정보가 단순한 숫자가 아닌 이전 블록의 무결성을 보장하는 암호학적 해시를 사용하게 되므로, 이를 통해 가상 블록체인을 구현할 수 있는 효과가 있다.Through the above blockchain migration process, even if the data in the current original blockchain is transferred to another blockchain, we propose a migration technique that can reconstruct the sequence of events and prove existence based on TSA information at the time each block is created. There are effects that can be done. In addition, since the index information in the present invention is not a simple number, but a cryptographic hash that guarantees the integrity of the previous block, there is an effect of implementing a virtual block chain through this.

도 8은 블록체인 기반의 데이터 관리 장치의 블록도이다.8 is a block diagram of a blockchain-based data management device.

도 8을 참조하면, 장치(800)는 통신부(810), 프로세서(820) 및 DB(830)를 포함할 수 있다. 도 8의 장치(800)에는 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 8에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다. Referring to FIG. 8 , an apparatus 800 may include a communication unit 810 , a processor 820 and a DB 830 . In the device 800 of FIG. 8 , only components related to the embodiment are shown. Accordingly, those skilled in the art can understand that other general-purpose components may be further included in addition to the components shown in FIG. 8 .

통신부(810)는 외부 서버 또는 외부 장치와 유선/무선 통신을 하게 하는 하나 이상의 구성 요소를 포함할 수 있다. 예를 들어, 통신부(810)는, 근거리 통신부(미도시), 이동 통신부(미도시) 및 방송 수신부(미도시) 중 적어도 하나를 포함할 수 있다. 일 실시예에서, 통신부(810)는 사용자로부터 원본 데이터를 수신할 수 있다.The communication unit 810 may include one or more components that enable wired/wireless communication with an external server or external device. For example, the communication unit 810 may include at least one of a short-range communication unit (not shown), a mobile communication unit (not shown), and a broadcast reception unit (not shown). In one embodiment, the communication unit 810 may receive original data from a user.

DB(830)는 장치(800) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 프로세서(820)의 처리 및 제어를 위한 프로그램을 저장할 수 있다.The DB 830 is hardware for storing various data processed in the device 800, and may store programs for processing and controlling the processor 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), 또는 플래시 메모리를 포함할 수 있다.The DB 830 includes random access memory (RAM) such as dynamic random access memory (DRAM) and static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and CD-ROM. ROM, Blu-ray or other optical disk storage, hard disk drive (HDD), solid state drive (SSD), or flash memory.

프로세서(820)는 장치(800)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(820)는 DB(830)에 저장된 프로그램들을 실행함으로써, 입력부(미도시), 디스플레이(미도시), 통신부(810), DB(830) 등을 전반적으로 제어할 수 있다. 프로세서(820)는, DB(830)에 저장된 프로그램들을 실행함으로써, 장치(800)의 동작을 제어할 수 있다.The processor 820 controls the overall operation of the device 800. For example, the processor 820 may generally control an input unit (not shown), a display (not shown), a communication unit 810, and the DB 830 by executing programs stored in the DB 830. The processor 820 may control the operation of the device 800 by executing programs stored in the DB 830 .

프로세서(820)는 도 1 내지 도 7에서 상술한 블록체인 기반의 데이터 관리 장치의 동작 중 적어도 일부를 제어할 수 있다.The processor 820 may control at least some of the operations of the blockchain-based data management device described above with reference to FIGS. 1 to 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), 기타 기능 수행을 위한 전기적 유닛 중 적어도 하나를 이용하여 구현될 수 있다.The processor 820 may include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), controllers, and microcontrollers. It may be implemented using at least one of micro-controllers, microprocessors, and electrical units for performing other functions.

일 실시예에서, 장치(800)는 서버일 수 있다. 서버는 네트워크를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 서버는 블록체인 기반으로 데이터를 관리하기 위해 필요한 데이터를 수신하고, 수신한 데이터에 기초하여 사용자로부터 수신한 데이터를 관리할 수 있다.In one embodiment, device 800 may be a server. A server may be implemented as a computer device or a plurality of computer devices that communicate over a network to provide commands, codes, files, content, services, and the like. The server may receive data required to manage data based on the blockchain and manage the data received from the user based on the received data.

한편, 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.Meanwhile, embodiments according to the present invention may be implemented in the form of a computer program that can be executed on a computer through various components, and such a computer program may be recorded on a computer-readable medium. At this time, the medium is a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM and a DVD, a magneto-optical medium such as a floptical disk, and a ROM hardware devices specially configured to store and execute program instructions, such as RAM, flash memory, and the like.

한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.Meanwhile, the computer program may be specially designed and configured for the present invention, or may be known and usable to those skilled in the art of computer software. An example of a computer program may include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like.

일 실시예에 따르면, 본 개시의 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments of the present disclosure may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store™) or between two user devices. It can be distributed (eg downloaded or uploaded) directly or online. In the case of online distribution, at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.

본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.The steps constituting the method according to the present invention may be performed in any suitable order unless an order is explicitly stated or stated to the contrary. The present invention is not necessarily limited according to the order of description of the steps. The use of all examples or exemplary terms (eg, etc.) in the present invention is simply to explain the present invention in detail, and the scope of the present invention is limited due to the examples or exemplary terms unless limited by the claims. it is not going to be In addition, those skilled in the art can appreciate that various modifications, combinations and changes can be made according to design conditions and factors within the scope of the appended claims or equivalents thereof.

따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments and should not be determined, and all scopes equivalent to or equivalently changed from the claims as well as the claims described below are within the scope of the spirit of the present invention. will be said to belong to

Claims (13)

사용자의 원본 데이터에 대한 제1 블록을 생성하는 단계;
상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하는 단계;
상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하는 단계;
상기 제3 블록에 대하여 상기 TSA가 발행한 관리자 서명 타임스탬프를 적용하여, 상기 관리자 서명 타임스탬프에 관한 제4 블록을 생성하는 단계;
상기 제1 내지 제4 블록을 순차적으로 원본 블록체인의 원장에 기록하는 단계; 및
상기 원본 블록체인을 타 블록체인으로 마이그레이션하는 단계;를 포함하고,
상기 마이그레이션하는 단계는,
상기 제4 블록에 기초하여 상기 원본 블록체인에서 상기 제1 내지 제4 블록의 위치를 추출하는 단계;
상기 제1 내지 제4 블록의 무결성을 검증하는 단계; 및
상기 제1 내지 제4 블록에 포함된 정보를 순차적으로 상기 타 블록체인의 블록에 저장하는 단계;를 포함하고,
상기 제1 블록은,
상기 사용자의 신원을 증명할 수 있는 사용자 인증서, 상기 원본 데이터의 콘텐츠 ID, 상기 사용자가 표시한 상기 원본 데이터의 작성 시점 및 상기 원본 데이터의 콘텐츠 ID와 상기 원본 데이터의 작성 시점에 대한 서명 중 적어도 하나가 포함된 제1 필수정보를 포함하되,
상기 방법은,
상기 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정하는 단계;를 더 포함하고,
상기 제1 필수정보는,
상기 원본 데이터의 콘텐츠 ID가 암호화된 경우, 상기 원본 데이터의 콘텐츠 ID를 암호화하는데 사용된 대칭키 알고리즘(Symmetric-key algorithm) 및 초기 벡터 중 적어도 하나를 더 포함하고, 상기 원본 데이터의 콘텐츠 ID가 암호화되지 않은 경우, 상기 원본 데이터의 해시 및 상기 원본 데이터의 해시 알고리즘 중 적어도 하나를 더 포함하고,
상기 제2 내지 제4 블록은,
각각 제2 내지 제4 필수정보 및 제2 내지 제4 인덱스정보를 포함하고,
상기 타 블록체인의 블록에 저장하는 단계는,
상기 제1 필수정보를 상기 타 블록체인을 구성하는 제1 이주블록에 필수정보로써 저장하는 단계;
상기 제2 필수정보를 상기 타 블록체인을 구성하는 제2 이주블록에 필수정보로써 저장하고, 상기 제1 이주블록의 위치를 상기 제2 이주블록에 인덱스정보로써 저장하는 단계;
상기 제3 필수정보를 상기 타 블록체인을 구성하는 제3 이주블록에 필수정보로써 저장하고, 상기 제2 이주블록의 위치를 상기 제3 이주블록에 인덱스정보로써 저장하는 단계;
상기 제4 필수정보를 상기 타 블록체인을 구성하는 제4 이주블록에 필수정보로써 저장하고, 상기 제3 이주블록의 위치를 상기 제4 이주블록에 인덱스정보로써 저장하는 단계; 및
상기 제1 내지 제4 블록 중 적어도 하나의 블록의 해시를 상기 제1 이주블록에 인덱스정보로써 필수적으로 저장하고, 상기 원본 블록체인의 제네시스 블록 해시(Genesis Block Hash), 블록높이(Block Height) 및 개별 트랜잭션의 고유ID 중 적어도 하나를 상기 제1 이주블록에 인덱스정보로써 선택적으로 저장하는 단계;를 포함하는,
블록체인 기반의 데이터 관리 방법.
generating a first block of user's original data;
applying an original data timestamp issued by a time-stamping authority (TSA) to the original data to generate a second block related to the original data timestamp;
generating a third block relating to a third party's signature for at least one of the first block and the second block;
generating a fourth block related to the administrator signature timestamp by applying the administrator signature timestamp issued by the TSA to the third block;
sequentially recording the first to fourth blocks in the ledger of the original block chain; and
Including; migrating the original block chain to another block chain,
The migration step is
extracting the positions of the first to fourth blocks in the original block chain based on the fourth block;
verifying the integrity of the first to fourth blocks; and
Sequentially storing the information included in the first to fourth blocks in blocks of the other blockchain;
The first block,
At least one of a user certificate capable of proving the identity of the user, a content ID of the original data, a creation time of the original data indicated by the user, and a signature for the content ID of the original data and the creation time of the original data Including the included first essential information,
The method,
Further comprising: determining whether to encrypt the content ID of the original data;
The first essential information is,
When the content ID of the original data is encrypted, at least one of a symmetric-key algorithm and an initial vector used to encrypt the content ID of the original data is further included, and the content ID of the original data is encrypted. If not, further comprising at least one of a hash of the original data and a hash algorithm of the original data,
The second to fourth blocks,
Each includes second to fourth essential information and second to fourth index information,
The step of storing in a block of another block chain,
storing the first essential information as essential information in a first migration block constituting the other block chain;
storing the second essential information as essential information in a second migration block constituting the other block chain, and storing the location of the first migration block in the second migration block as index information;
storing the third essential information as essential information in a third migration block constituting the other block chain, and storing the location of the second migration block in the third migration block as index information;
storing the fourth essential information as essential information in a fourth migration block constituting the other block chain, and storing the location of the third migration block in the fourth migration block as index information; and
The hash of at least one of the first to fourth blocks is essentially stored as index information in the first migration block, and the genesis block hash, block height, and Selectively storing at least one of the unique IDs of individual transactions as index information in the first migration block;
Blockchain-based data management method.
삭제delete 삭제delete 제 1 항에 있어서,
상기 원본 데이터 타임스탬프는,
상기 사용자가 표시한 상기 원본 데이터의 작성 시점 이후의 특정시점에 상기 원본 데이터가 존재하였음을 증명하는 것으로써,
상기 특정시점은,
상기 TSA가 상기 원본 데이터 타임스탬프를 발행하는 시점 또는 제2 블록을 생성하는 시점인 것을 특징으로 하는,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The original data timestamp,
By proving that the original data existed at a specific point in time after the creation of the original data indicated by the user,
At the specific point in time,
Characterized in that the time when the TSA issues the original data timestamp or the time when the second block is generated,
Blockchain-based data management method.
제 1 항에 있어서,
상기 제2 블록은,
상기 제1 필수정보에 대한 콘텐츠 ID 및 상기 원본 데이터 타임스탬프에 관한 정보 중 적어도 하나가 포함된 상기 제2 필수정보를 포함하는,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The second block,
Including the second essential information including at least one of a content ID for the first essential information and information about the original data timestamp,
Blockchain-based data management method.
제 1 항에 있어서,
상기 제2 블록은,
상기 제1 필수정보가 기록된 트랜잭션의 위치를 포함하는, 상기 제2 인덱스정보를 포함하는 것인,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The second block,
The second index information including the location of the transaction in which the first essential information is recorded,
Blockchain-based data management method.
제 1 항에 있어서,
상기 제3 블록은,
상기 제3자의 신원을 증명할 수 있는 제3자 인증서, 상기 제3자의 인증 본문 및 상기 인증 본문에 대한 서명 중 적어도 하나가 포함된 상기 제3 필수정보를 포함하고,
상기 제3자의 인증 본문은,
상기 제1 필수정보에 대한 콘텐츠 ID, 상기 제2 필수정보에 대한 콘텐츠 ID 및 상기 제3자가 표시한 상기 제3자의 인증 시점을 포함하는 것인,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The third block,
The third essential information including at least one of a third party certificate capable of proving the identity of the third party, an authentication body of the third party, and a signature of the authentication body,
The authentication body of the third party,
A content ID for the first essential information, a content ID for the second essential information, and an authentication time point of the third party indicated by the third party.
Blockchain-based data management method.
제 1 항에 있어서,
상기 제3 블록은,
상기 제2 필수정보가 기록된 트랜잭션의 위치를 포함하는, 상기 제3 인덱스정보를 포함하는 것인,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The third block,
The third index information including the location of the transaction in which the second essential information is recorded,
Blockchain-based data management method.
삭제delete 제 1 항에 있어서,
상기 제4 블록은,
상기 제3 필수정보에 대한 콘텐츠 ID 및 상기 관리자 서명 타임스탬프에 관한 정보 중 적어도 하나가 포함된 상기 제4 필수정보를 포함하는,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The fourth block,
Including the fourth essential information including at least one of a content ID for the third essential information and information about the manager signature timestamp,
Blockchain-based data management method.
제 1 항에 있어서,
상기 제4 블록은,
상기 제3 필수정보가 기록된 트랜잭션의 위치를 포함하는, 상기 제4 인덱스정보를 포함하는 것인,
블록체인 기반의 데이터 관리 방법.
According to claim 1,
The fourth block,
The fourth index information including the location of the transaction in which the third essential information is recorded,
Blockchain-based data management method.
적어도 하나의 프로그램이 저장된 메모리; 및
상기 적어도 하나의 프로그램을 실행함으로써 동작하는 프로세서;를 포함하되,
상기 프로세서는,
사용자의 원본 데이터에 대한 제1 블록을 생성하고,
상기 원본 데이터에 TSA(Time-Stamping Authority)가 발행한 원본 데이터 타임스탬프를 적용하여, 상기 원본 데이터 타임스탬프에 관한 제2 블록을 생성하고,
상기 제1 블록 및 상기 제2 블록 중 적어도 하나에 대한 제3자의 서명에 관한 제3 블록을 생성하고,
상기 제3 블록에 대하여 상기 TSA가 발행한 관리자 서명 타임스탬프를 적용하여, 상기 관리자 서명 타임스탬프에 관한 제4 블록을 생성하고,
상기 제1 내지 제4 블록을 순차적으로 원본 블록체인의 원장에 기록하고,
상기 원본 블록체인을 타 블록체인으로 마이그레이션하되,
상기 마이그레이션하는 것은,
상기 제4 블록에 기초하여 상기 원본 블록체인에서 상기 제1 내지 제4 블록의 위치를 추출하고,
상기 제1 내지 제4 블록의 무결성을 검증하고,
상기 제1 내지 제4 블록에 포함된 정보를 순차적으로 상기 타 블록체인의 블록에 저장하는 것을 더 포함하고,
상기 제1 블록은,
상기 사용자의 신원을 증명할 수 있는 사용자 인증서, 상기 원본 데이터의 콘텐츠 ID, 상기 사용자가 표시한 상기 원본 데이터의 작성 시점 및 상기 원본 데이터의 콘텐츠 ID와 상기 원본 데이터의 작성 시점에 대한 서명 중 적어도 하나가 포함된 제1 필수정보를 포함하고,
상기 프로세서는,
상기 원본 데이터의 콘텐츠 ID를 암호화할지 여부를 결정하되,
상기 제1 필수정보는,
상기 원본 데이터의 콘텐츠 ID가 암호화된 경우, 상기 원본 데이터의 콘텐츠 ID를 암호화하는데 사용된 대칭키 알고리즘(Symmetric-key algorithm) 및 초기 벡터 중 적어도 하나를 더 포함하고, 상기 원본 데이터의 콘텐츠 ID가 암호화되지 않은 경우, 상기 원본 데이터의 해시 및 상기 원본 데이터의 해시 알고리즘 중 적어도 하나를 더 포함하고,
상기 제2 내지 제4 블록은,
각각 제2 내지 제4 필수정보 및 제2 내지 제4 인덱스정보를 포함하고,
상기 타 블록체인의 블록에 저장하는 것은,
상기 제1 필수정보를 상기 타 블록체인을 구성하는 제1 이주블록에 필수정보로써 저장하고,
상기 제2 필수정보를 상기 타 블록체인을 구성하는 제2 이주블록에 필수정보로써 저장하고, 상기 제1 이주블록의 위치를 상기 제2 이주블록에 인덱스정보로써 저장하고,
상기 제3 필수정보를 상기 타 블록체인을 구성하는 제3 이주블록에 필수정보로써 저장하고, 상기 제2 이주블록의 위치를 상기 제3 이주블록에 인덱스정보로써 저장하고,
상기 제4 필수정보를 상기 타 블록체인을 구성하는 제4 이주블록에 필수정보로써 저장하고, 상기 제3 이주블록의 위치를 상기 제4 이주블록에 인덱스정보로써 저장하는 단계; 및
상기 제1 내지 제4 블록 중 적어도 하나의 블록의 해시를 상기 제1 이주블록에 인덱스정보로써 필수적으로 저장하고, 상기 원본 블록체인의 제네시스 블록 해시(Genesis Block Hash), 블록높이(Block Height) 및 개별 트랜잭션의 고유ID 중 적어도 하나를 상기 제1 이주블록에 인덱스정보로써 선택적으로 저장하는 것을 더 포함하는,
블록체인 기반의 데이터 관리 장치.
a memory in which at least one program is stored; and
A processor operating by executing the at least one program; including,
the processor,
Create a first block for the user's original data;
Applying an original data timestamp issued by a Time-Stamping Authority (TSA) to the original data to generate a second block related to the original data timestamp;
generating a third block relating to a third party's signature for at least one of the first block and the second block;
Applying the administrator signature timestamp issued by the TSA to the third block to generate a fourth block related to the administrator signature timestamp;
The first to fourth blocks are sequentially recorded in the ledger of the original blockchain,
Migrate the original blockchain to another blockchain,
The migration is
Based on the fourth block, the positions of the first to fourth blocks are extracted from the original block chain;
verifying the integrity of the first to fourth blocks;
Further comprising sequentially storing the information included in the first to fourth blocks in blocks of the other blockchain,
The first block,
At least one of a user certificate capable of proving the identity of the user, a content ID of the original data, a creation time of the original data indicated by the user, and a signature for the content ID of the original data and the creation time of the original data contains the first essential information included;
the processor,
Determine whether to encrypt the content ID of the original data,
The first essential information is,
When the content ID of the original data is encrypted, at least one of a symmetric-key algorithm and an initial vector used to encrypt the content ID of the original data is further included, and the content ID of the original data is encrypted. If not, further comprising at least one of a hash of the original data and a hash algorithm of the original data,
The second to fourth blocks,
Each includes second to fourth essential information and second to fourth index information,
Storing in blocks of other blockchains,
Store the first essential information as essential information in the first migration block constituting the other blockchain,
The second essential information is stored as essential information in a second migration block constituting the other blockchain, and the location of the first migration block is stored in the second migration block as index information;
The third essential information is stored as essential information in a third migration block constituting the other block chain, and the location of the second migration block is stored in the third migration block as index information;
storing the fourth essential information as essential information in a fourth migration block constituting the other block chain, and storing the location of the third migration block in the fourth migration block as index information; and
The hash of at least one of the first to fourth blocks is essentially stored as index information in the first migration block, and the genesis block hash, block height, and Further comprising selectively storing at least one of the unique IDs of individual transactions as index information in the first migration block.
Blockchain-based data management device.
제 1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium recording a program for executing the method of claim 1 on a computer.
KR1020220117967A 2022-09-19 2022-09-19 Method and apparatus for managing data based on blockchain KR102501004B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220117967A KR102501004B1 (en) 2022-09-19 2022-09-19 Method and apparatus for managing data based on blockchain
KR1020230019131A KR102622665B1 (en) 2022-09-19 2023-02-14 Method and apparatus for managing data based on blockchain
PCT/KR2023/014206 WO2024063519A1 (en) 2022-09-19 2023-09-19 Method, apparatus and system for managing data based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220117967A KR102501004B1 (en) 2022-09-19 2022-09-19 Method and apparatus for managing data based on blockchain

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020230019131A Division KR102622665B1 (en) 2022-09-19 2023-02-14 Method and apparatus for managing data based on blockchain

Publications (1)

Publication Number Publication Date
KR102501004B1 true KR102501004B1 (en) 2023-02-21

Family

ID=85328058

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020220117967A KR102501004B1 (en) 2022-09-19 2022-09-19 Method and apparatus for managing data based on blockchain
KR1020230019131A KR102622665B1 (en) 2022-09-19 2023-02-14 Method and apparatus for managing data based on blockchain

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020230019131A KR102622665B1 (en) 2022-09-19 2023-02-14 Method and apparatus for managing data based on blockchain

Country Status (1)

Country Link
KR (2) KR102501004B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024063519A1 (en) * 2022-09-19 2024-03-28 주식회사 레드윗 Method, apparatus and system for managing data based on blockchain

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170045619A (en) * 2015-10-19 2017-04-27 삼성전자주식회사 Selective encryption method and apparatus thereof
KR20190075772A (en) * 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 AuthenticationSystem Using Block Chain Through Combination of Data after Separating Personal Information
KR102368525B1 (en) * 2020-08-20 2022-03-02 에이아이오티홀딩스 주식회사 System and Method for Managing Digital document using Blockchain and IPFS
KR102407699B1 (en) * 2022-02-16 2022-06-15 주식회사 글로싸인 Device, method and program for providing electronic document management service through authentication of biometric information

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102232641B1 (en) * 2017-12-13 2021-03-26 서강대학교산학협력단 Method for searching using data structure supporting multiple search in blockchain based IoT environment, and apparatus thereof
KR102119784B1 (en) * 2018-05-29 2020-06-08 주식회사 티모넷 System and method for providing service based on blockchain using electronic code
KR102544628B1 (en) * 2019-03-08 2023-06-19 한국전자통신연구원 System for a data sharing platform in a block chain based distributed data sharing environment, method for searching data index in the system and method for providing seartch index in the system
KR102172903B1 (en) * 2019-12-09 2020-11-02 (주)트러스트체인파트너스위드하모니 Database management system based on blockchain technology
KR102241246B1 (en) * 2020-06-26 2021-04-16 (주)아이앤텍 A stamp authority system based on blockchain for verifying the authenticity of issued documents

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170045619A (en) * 2015-10-19 2017-04-27 삼성전자주식회사 Selective encryption method and apparatus thereof
KR20190075772A (en) * 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 AuthenticationSystem Using Block Chain Through Combination of Data after Separating Personal Information
KR102368525B1 (en) * 2020-08-20 2022-03-02 에이아이오티홀딩스 주식회사 System and Method for Managing Digital document using Blockchain and IPFS
KR102407699B1 (en) * 2022-02-16 2022-06-15 주식회사 글로싸인 Device, method and program for providing electronic document management service through authentication of biometric information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024063519A1 (en) * 2022-09-19 2024-03-28 주식회사 레드윗 Method, apparatus and system for managing data based on blockchain

Also Published As

Publication number Publication date
KR102622665B1 (en) 2024-01-10

Similar Documents

Publication Publication Date Title
KR102084674B1 (en) Method for managing content based on blockchain and system performing the method
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
JP5196883B2 (en) Information security apparatus and information security system
Huang et al. SeShare: Secure cloud data sharing based on blockchain and public auditing
Sookhak et al. Towards dynamic remote data auditing in computational clouds
Li et al. A Blockchain‐Based Public Auditing Scheme for Cloud Storage Environment without Trusted Auditors
Mukundan et al. Efficient integrity verification of replicated data in cloud using homomorphic encryption
CN110445840B (en) File storage and reading method based on block chain technology
US12010226B2 (en) Blockchain data segregation
US11621858B2 (en) Anonymity mechanisms in permissioned blockchain networks
CN111314066B (en) Block chain-based data transfer method, terminal and computer-readable storage medium
KR102501004B1 (en) Method and apparatus for managing data based on blockchain
Zhou et al. An efficient and secure data integrity auditing scheme with traceability for cloud-based EMR
US11956360B2 (en) Provable trade secrets on blockchain networks
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
Vineela et al. Data integrity auditing scheme for preserving security in cloud based big data
WO2023036812A1 (en) Anonymous private shared partitions in blockchain networks
CN116263834A (en) Multi-issuer anonymous credentials for licensed blockchains
US11968307B2 (en) Private ledger partitions in blockchain networks
Liu et al. Blockchain-based integrity auditing for shared data in cloud storage with file prediction
US20220399988A1 (en) Linking blockchain operations
JP6901373B2 (en) User management device, user management system
Mishra et al. PDV: Permissioned Blockchain based Personal Data Vault using Predictive Prefetching
Yuan et al. Blockchain‐Based Self‐Auditing Scheme with Batch Verification for Decentralized Storage

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant