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

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

Info

Publication number
KR20210142823A
KR20210142823A KR1020200059452A KR20200059452A KR20210142823A KR 20210142823 A KR20210142823 A KR 20210142823A KR 1020200059452 A KR1020200059452 A KR 1020200059452A KR 20200059452 A KR20200059452 A KR 20200059452A KR 20210142823 A KR20210142823 A KR 20210142823A
Authority
KR
South Korea
Prior art keywords
chain
data
blockchain
time information
data management
Prior art date
Application number
KR1020200059452A
Other languages
English (en)
Inventor
허영유
이광철
배상지
김준태
이정은
이규상
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020200059452A priority Critical patent/KR20210142823A/ko
Priority to US16/885,650 priority patent/US11625385B2/en
Priority to SG10202008567YA priority patent/SG10202008567YA/en
Publication of KR20210142823A publication Critical patent/KR20210142823A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

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

Abstract

블록체인 기반의 데이터 관리 방법이 제공된다. 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 관리 방법은 오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 단계, 및 상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 단계를 포함하고, 상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출된다.

Description

블록체인 기반의 데이터 관리 방법 및 장치{METHOD AND APPARATUS FOR MANAGING DATA BASED ON BLOCKCHAIN}
본 발명은 블록체인 기반의 데이터 관리 방법 및 장치에 관한 것이다. 더욱 상세하게는, 블록체인 기술을 이용하여 블록체인 상에 저장되지 않는 오프-체인 데이터를 신뢰성 있게 관리하는 방법 및 장치에 관한 것이다.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술 또는 자료 구조 그 자체를 의미한다. 블록체인 기술은 네트워크에 속한 모든 블록체인 노드가 트랜잭션을 기록하고 검증하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
블록체인에 기록되는 데이터는 온-체인(On-Chain) 데이터라 지칭되고, 블록체인 기술을 기반으로 관리되나 블록체인에 기록되지 못하는 데이터는 오프-체인(Off-Chain) 데이터라 지칭된다. 블록체인을 구성하는 각각의 블록은 그 사이즈가 제한적이기도 하고, 블록체인 자체가 비싼 자원이므로 신뢰성 있게 관리되어야 하는 모든 데이터가 블록체인 상에 기록될 수는 없는 것이다. 이러한 오프-체인 데이터는 블록체인 밖에 저장되므로, 허가되지 않은 조작 등에 취약하다. 따라서, 오프-체인 데이터를 신뢰성 있게 관리할 수 있는 블록체인 기반 데이터 관리 방법의 제공이 요청된다.
한편, 둘 이상의 조직에 의하여 구성되는 컨소시엄 블록체인에 있어서, 상기 컨소시엄 블록체인을 구성하는 모든 조직 사이에 온-체인 데이터 뿐만 아니라 오프-체인 데이터도 공유된다. 이 경우 데이터를 공유해 준 조직의 입장에서는 공유한 데이터에 대해 사후적인 관리를 할 필요가 있다. 가령, 특정 조건하에서 데이터를 공유한 경우, 그러한 조건이 해소된 이후에는 공유했던 데이터를 다시 회수하거나 폐기시키는 것이 바람직하다. 이러한 이유 등에서 오프-체인 데이터를 공유한 이후에도 지속적으로 사후관리 할 수 있는 블록체인 기반 데이터 관리 방법의 제공이 요청된다.
한국공개특허 제10-2019-0076197호 (2019.07.02 공개)
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 기술적 과제는, 온-체인 데이터를 통해 오프-체인 데이터의 라이프사이클을 관리함으로써 블록체인 기반으로 오프-체인 데이터의 이력 관리를 투명하게 할 수 있는 블록체인 기반의 데이터 관리 방법 및 장치를 제공하는 것이다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 다른 기술적 과제는, 블록체인 이벤트를 기반으로 데이터를 관리하되 실제 데이터는 오프-체인 네트워크를 통해 공유함으로써 대용량 데이터의 처리가 어려웠던 기존 블록체인 기술의 한계를 극복할 수 있는 블록체인 기반의 데이터 관리 방법 및 장치를 제공하는 것이다.
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 또 다른 기술적 과제는, 오프-체인 데이터에 대한 삭제 검증, 및 자동 폐기 기능을 구현함으로써 외부에 공유한 오프-체인 데이터에 대해서도 사후 관리를 할 수 있는 블록체인 기반의 데이터 관리 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 관리 방법은 오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 단계, 및 상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 단계를 포함하고, 상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출된다.
일 실시예로서, 상기 시간 정보를 블록체인 네트워크에 기록하는 단계는 상기 오프-체인 데이터의 유효 기간을 확인하는 단계, 및 상기 유효 기간을 상기 시간 정보와 비교하여 상기 유효 기간이 만료된 것으로 판단되면, 상기 삭제 이벤트 및 상기 시간 정보를 상기 블록체인 네트워크에 기록하는 단계를 포함할 수 있다.
일 실시예로서, 상기 시간합의(Time-Consensus) 알고리즘은 상기 블록체인 네트워크의 복수의 블록체인 노드들간 합의를 통해 상기 시간 정보의 유효성을 온-체인 상에서 검증하는 알고리즘이고, 상기 블록체인 노드들 각각의 기준 시간 정보들을 기준으로 판정한 검증 값들에 기초하여 상기 시간 정보의 유효성을 검증할 수 있다.
일 실시예로서, 상기 시간합의(Time-Consensus) 알고리즘은 상기 블록체인 네트워크의 복수의 블록체인 노드들간 합의를 통해 상기 시간 정보의 유효성을 온-체인 상에서 검증하는 알고리즘이고, 상기 삭제 이벤트에 응답하여 상기 복수의 블록체인 노드들 각각이 발생한 트랜잭션들의 기준 시간 정보들을 기준으로 판정한 검증 값들에 기초하여 상기 시간 정보의 유효성을 검증할 수 있다.
일 실시예로서, 상기 검증 값들 각각은 상기 기준 시간 정보들 각각을 기준으로 상기 시간 정보가 소정의 시간 범위 안에 위치하는지에 따라 상기 시간 정보의 유효 여부를 나타낼 수 있다.
일 실시예로서, 상기 시간 정보가 미리 설정된 시간 윈도우 내에 위치하는 경우에만 상기 검증 값은 상기 시간 정보가 유효함을 나타내고, 상기 시간 윈도우는 가장자리 효과(Edge Effect)를 방지하기 위해 설정된 유효 시간 구간일 수 있다.
일 실시예로서, 상기 시간합의 알고리즘에 의해 상기 시간 정보가 유효한 것으로 판정되면, 상기 오프-체인 데이터와 관련된 온-체인(On-Chain) 데이터는 상기 오프-체인 데이터가 삭제되었음을 나타내도록 업데이트되고, 상기 오프-체인 데이터를 선택적으로 삭제하는 단계는, 상기 업데이트 된 상기 온-체인 데이터에 기초하여 상기 오프-체인 데이터를 삭제하는 단계를 포함할 수 있다.
일 실시예로서, 상기 오프-체인 데이터를 선택적으로 삭제하는 단계는 상기 시간 정보의 유효성 검증 결과를 나타내는 블록 이벤트에 기초하여 상기 오프-체인 데이터를 오프-체인 스토리지에서 삭제하는 단계를 포함할 수 있다.
일 실시예로서, 상기 오프-체인 데이터를 선택적으로 삭제하는 단계는 상기 오프-체인 데이터가 삭제되었음을 나타내는 추가 블록 이벤트를 발생시키는 단계를 더 포함하고, 상기 추가 블록 이벤트의 발생에 따라 상기 오프-체인 데이터와 관련된 온-체인 데이터는 상기 오프-체인 데이터가 삭제되었음을 나타내도록 업데이트될 수 있다.
일 실시예로서, 제1 블록체인 노드는 상기 오프-체인 데이터를 공유받아 제1 오프-체인 스토리지에 저장한 노드이고, 상기 제1 블록체인 노드는 상기 블록 이벤트에 기초하여 상기 오프-체인 데이터를 상기 제1 오프-체인 스토리지에서 삭제할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 관리 방법은 제1 블록체인 노드에 오프-체인(Off-Chain) 데이터에 대한 삭제를 요청하는 단계, 상기 삭제 요청에 따라 상기 제1 블록체인 노드가 제1 오프-체인 스토리지에서 상기 오프-체인 데이터를 삭제한 결과를 블록체인 네트워크를 통해 확인하는 단계, 및 상기 제1 블록체인 노드에 상기 삭제 결과에 대한 검증을 요청하는 단계를 포함하고, 상기 제1 블록체인 노드는 상기 검증 요청에 응답하여 상기 제1 오프-체인 스토리지의 저장 공간 정보를 상기 블록체인 네트워크에 기록하고, 상기 저장 공간 정보는 상기 블록체인 네트워크의 체인 코드에 의해 유효성이 검증될 수 있다.
일 실시예로서, 상기 블록체인 네트워크를 통해 상기 저장 공간 정보를 확인하여 제1 암호화 키를 상기 블록체인 네트워크에 제공하는 단계를 더 포함하고, 상기 저장 공간 정보는 상기 제1 암호키에 대응되는 제2 암호키로 암호화되어 상기 블록체인 네트워크에 기록되고, 상기 체인 코드는 상기 저장 공간 정보의 유효성을 검증하기 위해 상기 제1 암호키를 이용하여 상기 제1 오프-체인 스토리지를 조회하는 동작을 수행할 수 있다.
일 실시예로서, 상기 저장 공간 정보는 상기 제1 오프-체인 스토리지의 저장 공간에 대한 제1 해시 값을 포함하고, 상기 체인코드는 상기 제1 오프-체인 스토리지를 조회하여 상기 저장 공간에 대한 제2 해시 값을 획득하고, 상기 제2 해시 값과 상기 제1 해시 값을 비교하여 상기 저장 공간 정보의 유효성을 검증할 수 있다.
일 실시예로서, 상기 체인 코드는 상기 제1 오프-체인 스토리지와 관련된 온-체인 데이터에서 추출한 데이터 ID(Identification)를 이용하여 상기 제1 오프-체인 스토리지의 진위 여부를 확인할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 블록체인 기반의 데이터 관리 장치는 프로세서, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은 오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 동작, 및 상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 동작을 실행하기 위한 인스트럭션들(Instructions)를 포함하고, 상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출된다.
상기 기술적 과제를 해결하기 위한, 본 발명의 실시예들에 따른 블록체인 기반의 데이터 관리 방법을 실행하기 위해 컴퓨팅 장치와 결합되는 컴퓨터 프로그램은 오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 단계, 및 상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고, 상기 유효성 검증 결과는 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출된다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 관리 장치(100)를 나타내는 구성도이다.
도 2는 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 일 예로서, 다른 블록체인 노드와 오프-체인 데이터를 공유하는 방법을 설명하는 도면이다.
도 3 내지 도 5는 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 다른 예로서, 다른 블록체인 노드에 공유한 오프-체인 데이터를 삭제하는 방법을 나타내는 도면들이다.
도 6은 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 또 다른 예로서, 유효 기간이 만료된 오프-체인 데이터를 폐기하는 방법을 나타내는 순서도이다.
도 7은 도 6의 폐기 이벤트 및 시간 정보를 블록체인 네트워크에 기록하는 단계(S210)를 구체화한 순서도이다.
도 8은 오프-체인 데이터를 폐기하는 방법의 일 실시예로서, 피어(Peer) 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하는 방법을 나타내는 도면이다.
도 9는 도 8에서 언급한 시간정보 검증 방법을 구체적으로 부연설명하기 위한 도면이다.
도 10은 오프-체인 데이터를 폐기하는 방법의 다른 실시예로서, 각 블록체인 노드의 블록 이벤트 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하는 방법을 나타내는 도면이다.
도 11은 오프-체인 데이터를 폐기하는 방법의 또 다른 실시예로서, 피어 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하되, 시간 정보가 유효한 경우 전체 오프-체인 스토리지에 대해 오프-체인 데이터를 일괄 폐기하는 방법을 나타내는 도면이다.
도 12는 오프-체인 데이터를 폐기하는 방법의 또 다른 실시예로서, 각 블록체인 노드의 블록 이벤트 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하되, 시간 정보가 유효한 경우 전체 오프-체인 스토리지에 대해 오프-체인 데이터를 일괄 폐기하는 방법을 나타내는 도면이다.
도 13은 본 발명의 다양한 실시예들이 구현될 수 있는 컴퓨팅 장치(500)의 예시적인 하드웨어 구성을 나타내는 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 관리 장치(100)를 나타내는 구성도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 블록체인 기반 데이터 관리 장치(100, 이하, '데이터 관리 장치'로 약칭함)는 블록체인 네트워크(50)의 온-체인 이벤트를 통해 오프-체인 데이터의 라이프사이클(Lifecycle, 생성, 공유, 변경, 삭제, 폐기 등)을 관리하며, 오프-체인 데이터의 관리 이력을 온-체인 데이터로 기록한다. 데이터 관리 장치(100)는 블록체인 네트워크(50)를 구성하는 블록체인 노드이거나 상기 블록체인 노드를 포함하는 시스템일 수 있다.
여기서 언급한 블록체인 노드는 P2P(peer-to-peer) 구조의 블록체인 네트워크(50)를 구성하고 블록체인 프로토콜에 따라 동작하는 컴퓨팅 장치를 의미한다. 각 블록체인 노드는 블록체인 네트워크(50)의 원장(ledger)을 관리할 수 있으며, 상기 원장에는 블록체인 네트워크(50)의 트랜잭션 데이터 및 상태 레코드가 기록될 수 있다. 블록체인 노드는 블록체인 네트워크(50)을 통해 다양한 체인코드(또는, 스마트 컨트랙트)를 실행할 수 있으며, 블록체인 네트워크(50)의 합의 프로세스를 구성하는 일원으로서 블록체인 네트워크(50)를 통해 실행되는 트랜잭션의 무결성 및 보안성을 보장한다.
몇몇 실시예들에서, 데이터 관리 장치(100)는 하나 이상의 오프-체인 스토리지(10)와 연결된다. 오프-체인 스토리지(10)는 데이터 관리 장치(100)에 포함된 내부 구성 요소일 수도 있고, 도 1에 도시된 것처럼 데이터 관리 장치(100)와는 구분되는 개별 장치일 수도 있다. 오프-체인 스토리지(10)는 블록체인 네트워크(50)의 분산 원장과는 구분되는 독립된 스토리지로서, 상기 분산 원장에 기록되는 온-체인 데이터와 구분하기 위해 오프-체인 스토리지(10)에 저장되는 데이터는 오프-체인 데이터로 지칭한다.
데이터 관리 장치(100)는 오프-체인 데이터의 관리 작업(예를 들어, 데이터 공유, 데이터 삭제, 데이터 폐기 등)을 스케줄링하는 스케줄러(110)와, 스케줄러(110)로부터 작업을 받아 실행하는 DLM(120, Data Lifecycle Manager)와, 온-체인 데이터 및 오프-체인 데이터를 읽고 쓰는 데이터 처리 모듈(130)을 포함한다.
데이터 관리 장치(100)의 동작 방식에 대한 구체적인 이해를 위해, 다른 데이터 관리 장치(200)에 오프-체인 데이터를 공유하는 방법을 예로 들어 설명한다. 여기서 다른 데이터 관리 장치(200) 또한 오프-체인 데이터의 라이프사이클을 관리하는 장치로서, 블록체인 네트워크(50)를 구성하는 블록체인 노드이거나 상기 블록체인 노드를 포함하는 시스템일 수 있다.
먼저, 데이터 관리 장치(100)가 클라이언트 장치(미도시)로부터 오프-체인 데이터를 다른 데이터 관리 장치(200)에 공유하도록 하는 요청을 수신한 것으로 가정한다. 상기 요청에 따라 스케줄러(110)는 오프-체인 데이터의 공유를 위한 작업을 스케줄링하고, 공유 작업의 실행 시점이 되면 DLM(120)에 이를 할당한다. DLM(120)은 데이터 처리 모듈(130)을 통해 데이터 공유를 위한 온-체인 이벤트를 블록체인 네트워크(50)에 등록한다.
다른 데이터 관리 장치(200)는 등록된 온-체인 이벤트를 감지하고, 그에 따라 데이터 관리 장치(100)에게 데이터의 공유를 요청한다. 데이터 관리 장치(100)는 다른 데이터 관리 장치(200)가 데이터를 공유 받을 권한이 있는지 앞서 등록한 온-체인 이벤트를 통해 확인하고, 권한이 있는 것으로 확인되면 오프-체인 스토리지(10)에서 데이터를 읽어와 다른 데이터 관리 장치(200)에 전송한다. 이때, 전송되는 데이터는 오프-체인 네트워크를 통해 전송된다. 다른 데이터 관리 장치(200)는 수신한 데이터를 자신의 오프-체인 스토리지(20)에 저장하고 공유 받은 이력을 블록체인 네트워크(50)에 업데이트한다. 이때, 다른 데이터 관리 장치(200)는 수신한 데이터에 이상이 없는지 그 정합성을 블록체인 네트워크(50)에 기록된 해시(Hash)를 이용하여 검증할 수 있다.
본 실시예에 따르면, 데이터의 저장 및 전송 등 실질적 처리는 오프-체인 상에서 이루어지고, 데이터의 라이프사이클 관리 및 이력 관리는 온-체인 상에서 이루어지는 이원적인 방법으로 데이터를 관리한다. 이에 따르면, 블록체인 기반으로 데이터의 이력 관리를 투명하게 할 수 있으면서, 대용량 데이터의 처리가 어려웠던 기존 블록체인 기술의 한계를 극복할 수 있는 장점이 있다.
이하에서는, 본 발명의 다양한 실시예들에 대해 도면을 참조하여 더욱 구체적으로 설명하기로 한다.
도 2는 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 일 예로서, 다른 블록체인 노드와 오프-체인 데이터를 공유하는 방법을 설명하는 도면이다. 도 2의 실시예에서, 데이터 관리 장치(100)는 블록체인 네트워크(50)를 구성하는 블록체인 노드인 것으로 가정한다.
데이터 관리 장치(100)는 오프-체인 데이터의 공유를 위한 제1 블록 이벤트를 블록체인 네트워크(50)에 등록한다. 이때, 오프-체인 데이터에 대한 공유 권한이 함께 온-체인 데이터로서 기록될 수 있다.
제1 블록체인 노드(200)는 데이터 관리 장치(100)로부터 오프-체인 데이터를 공유 받는 장치이다. 제1 블록체인 노드(200)는 도 1에서 설명된 다른 데이터 관리 장치(200)일 수 있다. 제1 블록체인 노드(200) 온-체인 상에서 상기 제1 블록 이벤트를 감지하고, 그것이 자신에게 오프-체인 데이터를 공유하는 이벤트인 것을 확인한다. 그리고, 제1 블록체인 노드(200)는 공유 이벤트를 확인한 것에 응답하여, 데이터 관리 장치(100)로 오프-체인 데이터에 대한 공유를 요청한다. 이때, 제1 블록체인 노드(200)는 시스템 상태에 따라 상기 오프-체인 데이터에 대한 공유를 선택적으로 요청할 수 있다. 예를 들어, 제1 블록체인 노드(200)가 자동으로 데이터를 공유 받도록 설정되어 있는 경우, 제1 블록체인 노드(200)는 상기 공유 이벤트를 확인한 후 자동으로 오프-체인 데이터에 대한 공유를 요청한다. 반면에, 제1 블록체인 노드(200)가 수동으로 데이터를 공유 받도록 설정되어 있는 경우, 제1 블록체인 노드(200)는 상기 공유 이벤트를 확인하더라도 즉시 오프-체인 데이터에 대한 공유를 요청하지는 않으며, 공유 요청을 위한 사용자의 조작을 기다려 상기 오프-체인 데이터에 대한 공유를 요청하게 된다. 또는, 제1 오프-체인 스토리지(20)가 데이터를 공유받을 충분한 공간이 없는 경우에도, 필요한 저장 공간이 확보되기를 기다려 오프-체인 데이터에 대한 공유를 요청할 수 있다.
데이터 관리 장치(100)는 제1 블록체인 노드(200)의 공유 요청을 수신하고, 제1 블록체인 노드(200)가 오프-체인 데이터에 대한 공유 권한이 있는지 여부를 온-체인 데이터를 통해 확인한다. 이때, 상기 온-체인 데이터는 앞서 데이터 관리 장치(100)는 제1 블록 이벤트를 등록할 때 함께 기록하였던 공유 권한 기록을 한 데이터일 수 있다. 제1 블록체인 노드(200)에게 오프-체인 데이터의 공유 권한이 있는 것으로 확인되면, 데이터 관리 장치(100)는 오프-체인 스토리지(10)로부터 오프-체인 데이터를 읽어내어 오프-체인 네트워크를 통해 제1 블록체인 노드(200)로 전송한다. 여기서, 오프-체인 네트워크는 블록체인 네트워크(50)를 제외한 유무선 네트워크를 통칭하는 것으로, 오프-체인 네트워크를 통해 데이터를 전송하는 것이 블록체인 네트워크(50)를 통하는 것보다 비용과 시간 측면에서 훨씬 경제적이고, 전송되는 데이터가 대용량인 경우 블록체인 네트워크(50)로는 이를 처리하기 곤란한 문제점이 있어 실제 데이터 전송에 있어서는 오프-체인 네트워크를 이용하게 된다.
제1 블록체인 네트워크(200)는 전송된 오프-체인 데이터를 수신하여, 이를 자신의 제1 오프-체인 스토리지(20)에 저장한다. 일 실시예로서, 제1 블록체인 네트워크(200)는 수신한 오프-체인 데이터의 무결성을 검증하기 위해 블록체인 네트워크(50)에서 수신한 오프-체인 데이터의 해시 값을 찾고, 자신이 수신한 오프-체인 데이터로부터 해시 값을 추출한 후, 양자를 비교할 수 있다. 이때, 두 해시 값들이 서로 일치한다면, 제1 블록체인 네트워크(200)가 수신한 오프-체인 데이터의 무결성이 검증된 것이므로 이것으로 데이터 공유 절차는 완료되고 제1 블록체인 노드(200)는 성공적으로 데이터를 공유 받았음을 나타내는 이력 정보를 블록체인 네트워크(50)에 업데이트할 수 있다. 반면에, 상기 두 해시 값들이 서로 일치하지 않는다면, 제1 블록체인 네트워크(200)가 수신한 오프-체인 데이터가 위조 또는 변조되었을 수 있으므로, 제1 블록체인 네트워크(200)는 수신한 데이터가 정상 데이터가 아님을 데이터 관리 장치(100)에게 통지하고 오프-체인 데이터의 재전송을 요청할 수 있다.
한편, 일 실시예로서, 데이터 관리 장치(100)는 오프-체인 데이터의 공유를 완료한 후, 1회성 암호키를 생성하여 블록체인 네트워크(50)에 기록할 수 있다. 1회성 암호키는 예를 들어, 한 쌍의 공개키-개인키로 이루어진 비대칭 암호키로서 데이터 관리 장치(100)는 그 중 공개키를 블록체인 네트워크(50)에 기록하게 된다. 후술하겠지만, 상기 암호키는 공유한 오프-체인 데이터의 삭제 여부를 검증하는 데 사용되게 된다.
도 3 내지 도 5는 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 다른 예로서, 다른 블록체인 노드에 공유한 오프-체인 데이터를 삭제하는 방법을 나타내는 도면들이다. 도 3의 실시예에서는, 다른 블록체인 노드가 소유한 오프-체인 데이터에 대해 삭제를 요청하고, 성공적으로 데이터 삭제가 완료되었는지 검증하는 실시예가 설명된다. 기존에는 공유한 데이터에 대해 삭제를 요청하더라도 실제로 데이터가 잘 삭제되었는지 검증할 수 있는 방법이 없어 공유한 데이터에 대해 신뢰성 있는 사후관리를 하기 어려운 문제점이 있었는데, 본 실시예는 그에 대한 해결 수단을 제시한다. 이하, 도면들을 참조하여 설명한다.
데이터 관리 장치(100)는 제1 블록체인 노드(200)에게 오프-체인 데이터에 대한 삭제를 요청한다. 이때, 삭제를 요청한 오프-체인 데이터는 앞서 데이터 관리 장치(100)가 제1 블록체인 노드(200)에게 공유해 준 오프-체인 데이터일 수 있다.
상기 삭제 요청에 응답하여, 제1 블록체인 노드(200)는 삭제 요청된 데이터를 자신의 오프-체인 스토리지(20)에서 삭제하고, 삭제를 완료하였음을 나타내는 삭제 결과를 제2 블록 이벤트를 통해 블록체인 네트워크(50)에 기록한다.
데이터 관리 장치(100)는 온-체인 상에서 제2 블록 이벤트를 감지하고, 그로부터 제1 블록체인 노드(200)가 기록한 삭제 결과를 확인한다. 그리고, 데이터 관리 장치(100)는 실제로 삭제가 잘 이루어졌는지 확인하기 위해 제1 블록체인 노드(200)에게 삭제 검증을 요청한다. 일 실시예로서, 데이터 관리 장치(100)는 삭제 검증 요청과 함께 랜덤 데이터 ID를 전송하여, 제1 블록체인 노드(200)가 제공하는 제1 오프-체인 스토리지에 대한 검증 정보가 실제 제1 오프-체인 스토리지에 대한 것인지 증명하도록 할 수 있다. 랜덤 데이터 ID에 대한 설명은 이후에 더욱 상세히 후술되므로 여기서는 그에 대한 설명을 생략한다.
제1 블록체인 노드(200)는 삭제된 데이터가 저장되어 있던 제1 오프-체인 스토리지(20)의 저장 공간 정보를 생성한 후, 제3 블록 이벤트를 통해 블록체인 네트워크(50)에 기록한다. 상기 저장 공간 정보는 제1 오프-체인 스토리지(20)의 저장 영역에 접근할 수 있는 정보로서, 제1 오프-체인 스토리지(20)에 기록된 다른 정보들이 노출되지 않도록 해시화 될 수 있다. 상기 저장 공간 정보는 제1 오프-체인 스토리지(20)에 접근할 수 있는 일회성 계정 정보(예를 들어, ID 및 패스워드) 및 해시 솔트(Hash Salt)를 포함할 수 있다.
또한, 상기 저장 공간 정보는 데이터 관리 장치(100)만 이를 확인할 수 있도록 데이터 관리 장치(100)의 공개키로 암호화될 수 있다. 이때, 상기 공개키는 데이터 관리 장치(100)가 제1 블록체인 노드(200)에게 오프-체인 데이터의 공유를 완료한 후 블록체인 네트워크(60)에 기록하였던 공개키 일 수 있다.
제1 블록체인 노드(200)가 온-체인 상에 제3 블록 이벤트를 등록하면, 데이터 관리 장치(100)는 이를 감지하고 체인코드(Chain Code)가 암호화된 저장 공간 정보를 해독할 수 있도록 자신의 개인키를 제공한다. 상기 체인코드는 블록체인 네트워크(50)에서 구동되는 소프트웨어 알고리즘으로서, 제1 블록체인 노드(200)가 제출한 저장 공간 정보의 유효성, 즉 제1 오프-체인 스토리지(20)에서 데이터가 실제 삭제되었는지를 검증한다. 상기 개인키는 상기 공개키와 쌍을 이루는 암호키로서, 상기 암호화된 저장 공간 정보를 복호 할 수 있는 복호화 키일 수 있다.
개인키가 블록체인 네트워크(50)에 제공되면, 체인코드는 개인키를 이용하여 상기 저장 공간 정보를 해독하고, 해독된 정보로부터 일회성 계정 정보를 획득하여 제1 오프-체인 스토리지(20)에 접근, 제1 오프-체인 스토리지(20)의 저장 영역에 대한 정보를 획득한다. 이때, 체인코드는 암호화 기술을 이용하여 상기 해독된 정보를 파싱하여 상기 일회성 계정 정보를 획득할 수 있다.
일 실시예로서, 체인코드는 앞서 데이터 관리 장치(100)가 전송했던 랜덤 데이터 ID를 이용하여 자신이 접근한 스토리지가 제1 오프-체인 스토리지(20)가 맞는지 검증할 수 있다(스토리지 검증). 위 랜덤 데이터 ID는 제1 블록체인 노드(200)가 제1 오프-체인 스토리지(20)에 대해 등록한 온-체인 데이터 중에서 랜덤하게 추출한 것인데, 체인코드는 자신이 접근한 스토리지에서 랜덤 데이터 ID에 해당하는 데이터 영역(이하, 랜덤 데이터 ID 영역이라 함)의 해시 값을 구한 후 온-체인 상에 등록된 랜덤 데이터 ID 영역의 해시 값과 비교하여, 자신이 접근한 스토리지가 제1 오프-체인 스토리지(20)가 맞는지 그 진위 여부를 검증한다.
그리고, 체인코드는 제1 오프-체인 스토리지(20)에 접근하여 삭제 요청된 데이터가 실제로 지워졌는지 확인한다(삭제 검증). 일 실시예로서, 체인코드는 삭제 요청된 데이터의 데이터 ID(이하, 제1 데이터 ID라 함)를 참조하여, 그에 해당하는 영역을 찾아 실제로 데이터가 삭제되었는지 확인할 수 있다. 이때, 체인코드는 앞서 스토리지 검증의 경우와 유사하게, 제1 데이터 ID에 해당하는 데이터 영역(이하, 제1 데이터 ID 영역이라 함)의 해시 값을 구한 후 온-체인 상에 등록된 제1 데이터 ID 영역의 해시 값과 비교하여, 삭제 요청된 데이터가 실제로 삭제되었는지 검증할 수 있다. 일 실시예로서, 제1 데이터 ID는 데이터 관리 장치(100)가 랜덤 데이터 ID를 전송할 때 랜덤 데이터 ID와 함께, 또는 랜덤 데이터 ID의 일부로서 전송될 수 있다.
스토리지 검증 및 삭제 검증이 성공적으로 완료되면, 체인코드는 상기 저장 공간 정보의 유효성 검증이 종료된 것으로 보고 상기 유효성 검증에 사용한 일회성 정보들, 예를 들어, 일회성 계정 정보나 개인키 정보 등을 삭제한다. 그리고, 상기 저장 공간 정보의 유효성 검증이 성공적으로 완료되었음을 나타내는 제4 블록 이벤트를 블록체인 네트워크(50)에 등록한다.
최종적으로, 데이터 관리 장치(100)가 온-체인 상에서 제4 블록 이벤트를 감지하고 삭제 요청이 성공적으로 검증되었음을 확인하는 것으로 본 실시예는 종료한다.
도 4는 도 3의 실시예를 데이터 관리 장치(100)의 시각에서 부연 설명하는 순서도이다. 따라서, 도 4의 실시예에서 각 단계의 주체가 명시되지 않은 경우, 그 주체는 상기 데이터 관리 장치(100)인 것으로 전제한다.
S110 단계에서, 데이터 관리 장치(100)는 제1 블록체인 노드(200)에게 오프-체인 데이터에 대한 삭제를 요청한다. 삭제 요청된 오프-체인 데이터는 앞서 데이터 관리 장치(100)가 제1 블록체인 노드(200)에게 공유한 데이터로서, 데이터 관리 장치(100)가 마스터 소유자인 데이터일 수 있다. 여기서, 마스터 소유자의 의미는 해당 데이터에 대한 가장 높은 권한을 가지고 있는 소유자(Owner)로서, 해당 데이터의 원작자, 최초 배포자, 또는 최상위 관리자를 의미할 수 있다.
제1 블록체인 노드(200)는 데이터 삭제 요청에 응답하여 자신의 제1 오프-체인 스토리지(20)에서 삭제 요청된 데이터를 삭제하고, 그 결과를 기록하는 블록 이벤트를 발생시킨다.
S120 단계에서, 데이터 관리 장치(100)는 블록 이벤트를 감지하고, 제1 블록체인 노드(200)가 기록한 삭제 결과를 온-체인 상에서 확인한다.
S130 단계에서, 데이터 관리 장치(100)는 삭제 요청한 데이터가 정말로 삭제되었는지, 제1 블록체인 노드(200)에 삭제 결과에 대한 검증을 요청한다. 이때, 데이터 관리 장치(100)는 제1 오프-체인 스토리지(20)에 대한 스토리지 검증을 위해, 제1 블록체인 노드(200)가 온-체인 상에 등록한 온-체인 데이터로부터 하나 이상의 랜덤 데이터 ID를 추출하여 제1 블록체인 노드(200)에 전송할 수 있다.
제1 블록체인 노드(200)는 삭제 검증 요청에 응답하여 제1 오프-체인 스토리지(20)로부터 저장 공간 정보를 생성하고, 이를 블록 이벤트를 통해 온-체인 상에 기록한다. 이때, 상기 저장 공간 정보는 데이터 관리 장치(100)가 온-체인 상에 기록한 공개키를 이용하여 암호화될 수 있다.
S140 단계에서, 데이터 관리 장치(100)는 블록 이벤트를 감지하고, 저장 공간 정보를 해독할 수 있는 개인키를 체인코드에 제공한 후, 체인코드에 의한 유효성 검증 결과를 수신한다. 이에 대해, 도 5를 참조하여 상세히 설명하기로 한다.
도 5를 참조하면, S141 단계에서, 데이터 관리 장치(100)는 온-체인 상에서 제1 블록체인 노드(200)의 블록 이벤트를 감지하고, 제1 오프-체인 스토리지(20)의 저장 공간 정보를 확인한다.
S142 단계에서, 데이터 관리 장치(100)는 저장 공간 정보를 해독하기 위한 암호키, 즉 자신의 개인키를 블록체인 네트워크(50)에 제공한다. 이후, 체인코드는 제공된 암호키를 이용하여 저장 공간 정보를 해독하고, 도 4에서 설명한 방법에 따라 제1 오프-체인 스토리지(20)에 대해 스토리지 검증 및 삭제 검증을 수행한다. 그리고, 스토리지 검증 및 삭제 검증이 성공적으로 완료되면, 체인코드는 사용한 일회성 정보들을 삭제한 후, 저장 공간 정보의 유효성 검증이 성공적으로 완료되었음을 나타내는 블록 이벤트를 블록체인 네트워크(50)에 등록한다.
S143 단계에서, 데이터 관리 장치(100)는 상기 블록 이벤트를 감지함으로써, 체인코드가 수행한 유효성 검증 결과를 수신한다.
도 6은 본 발명에 따른 블록체인 기반의 데이터 관리 방법을 설명하는 또 다른 예로서, 유효 기간이 만료된 오프-체인 데이터를 폐기하는 방법을 나타내는 순서도이다.
본 실시예에서 설명하는 데이터 폐기는 유효 기간(또는, 보관 기간)이 지난 오프-체인 데이터를 삭제하는 것으로, 현재 시간을 기준으로 오프-체인 데이터의 삭제 여부를 결정하기 때문에, 기준이 된 시간이 진실한 시간인지 위, 변조된 시간인지 검증하는 것이 중요하다. 가령, 개별 블록체인 노드가 조작된 시간을 사용하고 있는 경우, 현실 시간 상에서는 데이터의 유효 기간이 만료되었으나 조작된 시간을 기준으로는 유효 기간이 아직 만료되지 않아, 폐기되어야 할 데이터가 폐기되지 않고 계속 보관되는 경우가 발생할 수 있다.
한편, 데이터 폐기 또한 스토리지에서 데이터를 삭제하는 행위로써 크게 보면 데이터 삭제의 범주에 들어가므로, 본 명세서에서는'폐기'라는 용어 대신'삭제'를 혼용할 수 있다.
이러한 시간 조작은 다양한 경로로 발생할 수 있는데, 가령, 블록체인 노드의 사용자가 인위적으로 시간을 조작하여, 스케줄러(110, 도 1 참조)가 작업을 할당할 때 조작된 시간을 사용하게 하거나, DLM(120, 도 1 참조)이 블록 이벤트를 발생시킬 때 조작된 시간을 사용하게 할 수 있다. 또는, 블록체인 노드의 사용자에게 시간 조작의 의도가 없더라도, 스케줄러(110)가 현재 시간을 확인할 때 참조하는 시간 공유 시스템(예를 들어, NTP 또는 NSS)이 해킹 공격을 받아 잘못된 시간 정보를 제공하는 경우에도 시간 조작은 발생할 수 있다.
본 실시예에서는, 데이터 폐기를 판단하는 기준이 된 시간 정보가 진실한 것인지 온-체인 상에서 검증하는 방식을 통해 이러한 시간 조작 여부를 검증하고 데이터 폐기의 신뢰성을 확보하고자 한다. 이하, 도면을 참조하여 설명한다.
S210 단계에서, 데이터 관리 장치(100)는 자신이 저장하는 오프-체인 데이터 중 유효 기간(또는, 보관 기간)이 만료된 데이터가 있는지 확인한다. 유효 기간이 만료된 데이터가 확인되면, 데이터 관리 장치(100)는 해당 오프-체인 데이터에 대한 폐기 작업을 진행하기 위해 폐기 이벤트를 그 시간 정보와 함께 블록체인 네트워크(50)에 기록한다. 이에 대해, 도 7을 참조하여 더욱 구체적으로 설명한다.
도 7을 참조하면, S211 단계에서, 데이터 관리 장치(100)는 스케줄러(110, 도 1 참조)를 통해 자신이 저장하는 오프-체인 데이터 중 유효 기간(또는, 보관 기간)이 만료된 데이터가 있는지 확인한다. 유효 기간 확인 작업은 스케줄러(110)가 주기적으로(예를 들어, 하루에 한 번) 또는 비주기적으로 수행할 수 있다.
일 실시예로서, 스케줄러(110)는 NTP(Network Time Protocol) 또는 TSS(Time Stamping Server)를 통해 현재 시간 정보를 받아와서 데이터 관리 장치(100)의 시간을 동기화하고, 동기화된 현재 시간과 오프-체인 데이터의 유효 기간을 비교하여 현재 시간을 기준으로 유효 기간이 경과한 데이터를 유효 기간이 만료된 데이터로 확인할 수 있다.
S212 단계에서, 데이터 관리 장치(100)는 유효 기간이 만료된 데이터가 확인되면, DLM(120)을 통해 해당 오프-체인 데이터에 대한 폐기 작업을 진행한다. 이를 위해, 데이터 관리 장치(100)는 오프-체인 데이터에 대한 폐기 이벤트를 블록 이벤트로서 블록체인 네트워크(50)에 등록한다. 이때, 상기 폐기 이벤트의 시간 정보가 블록체인 네트워크(50)에 함께 기록된다. 상기 시간 정보는 상기 폐기 이벤트를 생성하는 트랜잭션의 타임스탬프 값일 수 있다.
다시 도 6으로 돌아가면, S220 단계에서는 블록체인 네트워크(50)의 체인코드를 통해 앞서 기록된 폐기 이벤트의 시간 정보의 유효성을 검증한다. 이를 위해, 체인코드는 블록체인 네트워크(50)에 속한 복수의 블록체인 노드들간 합의를 통해 상기 시간 정보의 유효성을 온-체인 상에서 검증하는 시간합의 알고리즘을 이용하는 데, 이는 각 블록체인 노드들이 자신의 시간을 이용하여 상기 시간 정보가 유효한 시간인지를 판정하고, 각 블록체인 노드들이 판정한 결과를 종합하여, 즉, 블록체인 노드들의 총의(總意)에 기반하여 상기 시간 정보의 유효 여부에 대한 최종적인 결론을 내리는 방법이다. 본 시간합의의 구체적인 방식에 대해서는 도 8 내지 도 12의 설명에서 더욱 상세히 부연하기로 한다.
S230 단계에서, 데이터 관리 장치(100)는 앞서 온-체인 상에서 이루어진 유효성 검증 결과에 기초하여, 해당 유효 기간이 만료된 오프-체인 데이터를 선택적으로 삭제한다. 유효성 검증 결과 상기 시간 정보가 유효한 것으로 판정되었다면, 오프-체인 데이터의 유효 기간이 만료된 것을 신뢰할 수 있으므로 데이터 관리 장치(100)는 자신의 오프-체인 스토리지(10)에서 해당 오프-체인 데이터를 삭제한다. 반대로, 유효성 검증 결과 상기 시간 정보가 유효하지 않은 것으로 판정되었다면, 오프-체인 데이터의 유효 기간이 만료된 것을 신뢰할 수 없으므로 데이터 관리 장치(100)는 해당 오프-체인 데이터를 삭제하지 않고, 앞서 등록한 폐기 이벤트 및 폐기 작업을 무효화(또는, 폐기)한다.
이하에서는, 도 6의 실시예에 대해 구체적인 케이스를 사례로 들어 설명한다.
도 8은 오프-체인 데이터를 폐기하는 방법의 일 실시예로서, 피어(Peer) 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하는 방법을 나타내는 도면이다.
먼저, 데이터 관리 장치(100)는 스케줄러(110)를 통해 유효 기간이 만료된 오프-체인 데이터를 확인한 후, 유효 기간이 만료된 데이터가 있으면 그에 대한 폐기 작업을 DLM(120)에 할당한다. DLM(120)은 할당된 폐기 작업에 따라 오프-체인 데이터를 폐기하기 위한 폐기 이벤트를 블록체인 네트워크(50) 상에 기록한다. 이때, 폐기 이벤트의 시간 정보가 함께 기록되는데, 상기 시간 정보는 폐기 이벤트를 발생시키는 트랜잭션의 타임스탬프 값일 수 있다.
다음으로, 블록체인 네트워크(50)에 폐기 이벤트가 등록되면, 블록체인 네트워크(50)의 체인코드는 각 블록체인 노드(100, 200, 300)에게 상기 시간 정보에 대한 검증을 요청한다. 이때, 데이터 관리 장치(100) 역시 하나의 블록체인 노드로서 상기 시간 정보에 대한 검증을 요청받을 수 있다.
각 블록체인 노드(100, 200, 300)는 자신의 피어 시간을 기준으로 상기 시간 정보가 진실한지 그 유효성을 검증한다. 여기서, 피어 시간이란 개별 블록체인 노드(100, 200, 300)에 현재 시간으로 설정된 시간으로, 개별 블록체인 노드(100, 200, 300)마다 피어 시간은 상이할 수 있다. 각 블록체인 노드(100, 200, 300)가 시간 정보의 유효성을 검증하는 구체적인 방법을 도 9를 참조하여 부연한다.
도 9는, 블록체인 노드이 설정된 유효 범위 내에 상기 시간 정보가 위치했을 때 이를 유효한 것으로 판단하는 방법을 설명한다. 도 9에서는, 설명의 편의를 위해 제1 블록체인 노드(200)가 상기 시간 정보의 유효성을 검증하는 경우를 예시한다.
제1 블록체인 노드(200)는 자신의 제1 시간 정보(t1)를 기준으로 미리 결정된 편차(d) 내에 폐기 이벤트의 시간 정보가 위치하는 지 판단한다. 이때, 제1 시간 정보(t1)는 제1 블록체인 노드(200)의 피어 시간이 된다. 시간 정보의 유효 범위(r1)는 제1 시간 정보(t1)를 기준으로 편차(d)만큼 떨어진 지점까지로, 여기서는 t1-d 부터 t1+d 까지가 된다. 만약, 폐기 이벤트의 시간 정보가 유효 범위(r1) 내에 위치한다면, 상기 시간 정보는 제1 블록체인 노드(200)의 제1 시간 정보(t1)와 오차 범위 내에 위치한 것이므로 제1 블록체인 노드(200)는 상기 시간 정보가 유효한 것으로 판정한다. 반대로, 폐기 이벤트의 시간 정보가 유효 범위(r1) 내에 위치하지 않는다면, 상기 시간 정보는 제1 블록체인 노드(200)의 제1 시간 정보(t1)에서 오차 범위 이상 벗어난 것이므로 제1 블록체인 노드(200)는 상기 시간 정보가 유효하지 않은 것으로 판정한다.
일 실시예로서, 제1 블록체인 노드(200)는 상기 시간 정보가 미리 결정된 소정의 시간 윈도우(r2) 내에 위치할 때만, 상기 시간 정보가 유효한 것으로 판정할 수 있다. 이는 특정 기간의 경계 부근에서 판정 결과가 왜곡되는 가장자리 효과(Boundary Effect)를 방지하기 위한 것으로, 시간 윈도우(r2)를 고려하지 않고 시간 정보의 유효성을 판정하는 경우, 시간 구간(0h 내지 24h)의 가장자리에서는 상기 시간 정보가 제1 시간 정보(t1)와 날짜가 다른 경우에도 유효한 것으로 판정되는 오류가 발생할 수 있다. 온-체인 데이터 상의 시간이 각 블록체인 노드 마다 다소 차이가 있을 수는 있지만 적어도 날짜에 대해서는 서로 동일하게 동기화되는 것이 바람직하므로, 제1 시간 정보(t1)와 날짜가 다른 시간 정보에 대해서는 유효하게 판정하지 않도록 경계 시간(0h 또는 24h)로부터 소정의 경계 마진(e)을 설정하여, 그 안의 시간 윈도우(r2)에 상기 시간 정보가 위치할 때만 유효한 것으로 판정할 수 있도록 한다. 이때, 경계 마진(e)은 가장자리 효과, 즉, 날짜가 다른 경우에도 유효한 것으로 판정되는 오류를 피하기 위해 편차(d)보다 크거나 같도록 설정된다.
이러한 방법에 따르면, 제1 블록체인 노드(200)는 자신의 피어 시간을 기준으로 상기 시간 정보가 오차 범위 내에 있으면 유효한 것으로 판정하고, 오차 범위 이상 벗어나 있으면 유효하지 않은 것으로 판정하되, 비록 상기 시간 정보가 상기 오차 범위 내에 있더라도 시간 윈도우(r2)를 벗어나 있다면 유효하지 않은 것으로 판정하게 된다.
한편, 여기서는 제1 블록체인 노드(200)가 유효성을 검증하는 경우를 예시하여 설명하였지만, 다른 블록체인 노드(100, 300) 또한 동일한 방법으로 상기 시간 정보의 유효성을 검증할 수 있다.
다시 도 8로 돌아가서, 각 블록체인 노드(100, 200, 300)는 시간 정보의 유효성을 검증한 결과(검증 값)를 블록체인 네트워크(50) 또는 체인코드에 리턴한다.
체인코드는 각 블록체인 노드(100, 200, 300)가 리턴한 검증 값들을 모아, 전체 블록체인 노드의 총의(總意, consensus)를 기준으로 상기 시간 정보의 유효성을 판정한다. 이때, 체인코드는 시간합의를 위한 지지 정책(Endorsement Policy)를 참조하여, 전체 블록체인 노드의 총의가 지지 정책을 만족하면 상기 시간 정보가 유효한 것으로 판정하고, 그렇지 않으면 상기 시간 정보가 유효하지 않은 것으로 판정한다. 이때, 지지 정책은 예를 들어, 시간합의에 참여한 전체 블록체인 노드들 중 과반 이상으로부터 유효한 것으로 판정받는 것일 수 있으나, 이에 한정되지 않는다. 예를 들어, 기준을 엄격하게 적용하고자 하는 경우, 지지 정책은 전체 블록체인 노드들 중 70% 이상으로부터 유효한 것으로 판정받는 것일 수도 있다. 반대로, 기준을 완화시켜 적용하고자 하는 경우, 지지 정책은 시간합의에 참여한 블록체인 노드들 중 30% 이상으로부터 유효한 것으로 판정받는 것일 수도 있다.
상기 시간 정보가 유효한 것으로 판정되면, 체인코드는 폐기 이벤트가 지정한 폐기 대상 오프-체인 데이터들의 온-체인 데이터, 예를 들어, 온-체인 상에서 관리되는 데이터 이력이나 목록 등을 삭제한다. 일 실시예로서, 체인코드는 시간 정보의 유효성 검증이 성공하였음을 나타내는 별도의 블록 이벤트를 발생시킬 수도 있다. 다만, 여기서 온-체인 데이터의 삭제라고 지칭하였으나, 이는 해당 온-체인 데이터를 삭제하는 경우만을 지칭하는 것은 아니며, 상기 오프-체인 데이터가 삭제(또는, 폐기)되었음을 나타내도록 해당 온-체인 데이터를 업데이트하는 경우까지 포괄적으로 지칭하는 의미이다.
데이터 관리 장치(100)는 체인코드에 의한 상기 유효성 검증 결과에 기초하여 오프-체인 스토리지(10)에 저장된 오프-체인 데이터를 삭제한다. 일 실시예로서, 데이터 관리 장치(100)는 앞서 체인코드에 의해 삭제된 온-체인 데이터, 즉, 온-체인 상에서 관리되는 오프-체인 데이터의 이력이나 목록에 관한 정보를 확인하여, 그에 상응하는 오프-체인 데이터를 오프-체인 스토리지(10)에서 삭제할 수 있다. 또는, 데이터 관리 장치(100)는 체인코드가 발생시킨 블록 이벤트를 감지하여 폐기 이벤트의 시간 정보가 유효함을 확인하고, 상기 폐기 이벤트에 상응하는 오프-체인 데이터를 오프-체인 스토리지(10)에서 삭제할 수도 있다.
도 10은 오프-체인 데이터를 폐기하는 방법의 다른 실시예로서, 각 블록체인 노드의 블록 이벤트 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하는 방법을 나타내는 도면이다. 도 10의 실시예는 도 8의 실시예와 전체적인 흐름은 유사하다. 다만, 도 8의 실시예에서 각 블록체인 노드(100, 200, 300)가 자신의 피어 시간을 사용하여 상기 기준 시간을 검증하였다면, 도 10의 실시예에서는 각 블록체인 노드(100, 200, 300)의 블록 이벤트 시간(가령, 트랜잭션의 타임스탬프)을 수집하여 이를 기초로 체인코드가 상기 시간 정보의 유효성을 검증하는 점이 상이하다. 이하, 도면을 참조하여 설명한다.
먼저, 데이터 관리 장치(100)는 스케줄러(110)를 통해 유효 기간이 만료된 오프-체인 데이터를 확인한 후, 유효 기간이 만료된 데이터가 있으면 그에 대한 폐기 작업을 DLM(120)에 할당한다. DLM(120)은 할당된 폐기 작업에 따라 오프-체인 데이터를 폐기하기 위한 폐기 이벤트를 블록체인 네트워크(50) 상에 기록한다. 이때, 폐기 이벤트의 시간 정보가 함께 기록되는데, 상기 시간 정보는 폐기 이벤트를 발생시키는 트랜잭션의 타임스탬프 값일 수 있다.
다음으로, 블록체인 네트워크(50)에 폐기 이벤트가 등록되면, 데이터 관리 장치(100)를 제외한 나머지 블록체인 노드(200, 300)는 블록체인 네트워크(50)로부터 상기 폐기 이벤트를 수신한다. 그리고, 상기 폐기 이벤트를 수신한 것에 응답하여, 각 블록체인 노드(200, 300)는 블록체인 네트워크(50)에 자신의 트랜잭션을 생성한다.
데이터 관리 장치(100)는 다른 블록체인 노드(200, 300)들이 생성한 트랜잭션들을 감지하고, 감지한 트랜잭션들의 키 값을 수집한다. 그리고 수집한 키 값들을 블록체인 네트워크(50)에 전달하며 상기 시간 정보에 대한 유효성 검증을 요청한다. 일 실시예로서, 데이터 관리 장치(100)는 미리 설정된 정족수가 모일 때까지 기다려 상기 유효성 검증을 요청할 수 있다. 가령, 시간합의에 너무 적은 수의 블록체인 노드가 참여하는 경우, 시간합의의 판정 결과에 대해 충분히 신뢰하기 어려울 수 있다. 따라서, 데이터 관리 장치(100)는 정족수 이상의 키 값이 수집될 때까지 지속적으로 다른 블록체인 노드들이 생성한 트랜잭션의 키 값을 수집하고, 정족수 이상의 키 값이 수집되면 비로소 수집된 키 값들과 함께 상기 유효성 검증을 요청할 수 있다. 일 실시예로서, 미리 설정된 정족수를 모으기 위해 너무 오랜 시간 대기(Pending)하는 것을 방지하기 위해, 데이터 관리 장치(100)는 타임 아웃 시간을 설정하여 타임 아웃 시간이 경과하면 정족수가 미달되었더라도 그동안 수집한 키 값들과 함께 상기 유효성 검증을 즉시 요청하도록 설정될 수 있다.
데이터 관리 장치(100)로부터의 유효성 검증 요청에 응답하여, 블록체인 네트워크(50)의 체인코드는 수집된 키 값들을 참조하여, 각 블록체인 노드(200, 300)가 발생시킨 트랜잭션(제1 및 제2 트랜잭션)들로부터 타임스탬프 값을 수집한다. 수집한 타임스탬프 값은 상기 시간 정보의 유효성을 검증하기 위한 각 블록체인 노드(200, 300)의 시간 정보로 사용된다. 가령, 제1 블록체인 노드(200)가 발생시킨 제1 트랜잭션의 타임스탬프 값은 제1 블록체인 노드(200)의 개별 시간인 제1 시간 정보가 되고, 제2 블록체인 노드(300)가 발생시킨 제2 트랜잭션의 타임스탬프 값은 제2 블록체인 노드(200)의 개별 시간인 제2 시간 정보가 된다.
그리고, 체인코드는 앞서 도 9에서 설명한 방법으로 각 블록체인 노드(200, 300)에 대해 상기 시간 정보가 유효한지 판단하고, 그 총의를 기준으로 상기 시간 정보의 유효성을 최종적으로 판정한다. 가령, 제1 트랜잭션의 타임스탬프를 제1 블록체인 노드(200)의 제1 시간 정보(t1)로 하고, 도 9에서 설명된 것과 같이 상기 시간 정보가 유효 범위(r1)에 위치하면 유효한 것으로 판정하고, 그렇지 않으면 유효하지 않은 것으로 판정한다. 이를 키 값을 수집한 모든 블록체인 노드들에 대해 각각 수행한 후, 그 결과들을 종합한 총의가 지지 정책을 만족하면 상기 시간 정보가 유효한 것으로 판정하고, 그렇지 않으면 상기 시간 정보가 유효하지 않은 것으로 판정한다. 상기 시간 정보가 유효한 것으로 판정되는 경우, 체인코드는 시간 정보의 유효성 검증이 성공하였음을 나타내는 블록 이벤트를 발생시킨다.
데이터 관리 장치(100)는 체인코드에 의한 상기 유효성 검증 결과에 기초하여 오프-체인 스토리지(10)에 저장된 오프-체인 데이터를 삭제한다. 데이터 관리 장치(100)가 상기 유효성 검증 결과에 기초하여 오프-체인 데이터를 삭제하는 구체적인 방법은 도 8에서 설명한 것과 동일하므로, 여기서는 그에 대한 추가적인 설명을 생략한다.
도 11 및 도 12에서는 폐기 이벤트에 의해 전체 블록체인 노드에 걸쳐 오프-체인 데이터의 삭제가 이루어지는 실시예를 설명한다. 도 11 및 도 12의 실시예는 각각 도 8 및 도 10의 실시예와 실질적으로 동일하다. 다만, 폐기 이벤트에 따른 오프-체인 데이터 삭제를 데이터 관리 장치(100) 뿐만 아니라 제1 및 제2 블록체인 노드(200, 300)도 수행하는 점이 상이하다.
도 11 및 도 12의 실시예는, 데이터 관리 장치(100)가 오프-체인 데이터의 마스터 소유자인 경우에 적용될 수 있다. 여기서, 마스터 소유자의 의미는 해당 데이터에 대한 가장 높은 권한을 가지고 있는 소유자(Owner)로서, 해당 데이터의 원작자, 최초 배포자, 또는 최상위 관리자를 의미할 수 있다. 가령, 데이터 관리 장치(100)가 마스터 소유자로서 자신의 오프-체인 데이터를 제1 블록체인 노드(200) 및 제2 블록체인 노드(300)에 공유한 경우, 유효 기간 만료에 따라 자기가 가지고 있는 오프-체인 데이터를 폐기할 때 다른 블록체인 노드(200, 300)에 배포한 데이터도 일괄 폐기가 필요할 수 있다. 도 11 및 도 12의 실시예는 이러한 상황에서 다른 블록체인 노드(200, 300)가 소유한 오프-체인 데이터까지 일괄 폐기할 수 있도록 해준다.
도 11은 블록체인 노드의 피어 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하되, 전체 블록체인 노드에 대해 오프-체인 데이터를 일괄 폐기하는 방법을 설명한다.
도 11에서, 데이터 관리 장치(100)가 유효 기간이 만료된 오프-체인 데이터를 확인하여 그에 대한 폐기 이벤트를 발생하고, 블록체인 노드들(100, 200, 300)의 시간합의를 통해 상기 폐기 이벤트의 시간 정보의 유효성을 검증하는 것까지는 도 8에서 설명한 바와 동일하다. 따라서, 설명의 중복을 피하기 위해 그에 대한 추가적인 설명은 생략한다.
이후, 시간합의를 통해 상기 시간 정보의 유효성이 검증되면, 블록체인 네트워크(50)의 체인코드는 상기 시간 정보가 유효함을 나타내는 블록 이벤트를 발생시킨다. 그리고, 데이터 관리 장치(100) 및 블록체인 노드들(200, 300)은 온-체인 상에서 상기 블록 이벤트를 감지하여, 그로부터 상기 시간 정보에 대한 유효성 검증 결과를 수신한다.
그리고, 데이터 관리 장치(100)는 상기 유효성 검증 결과에 기초하여 오프-체인 데이터를 삭제한다. 시간 정보가 유효한 경우 검증된 경우이므로, 데이터 관리 장치(100)는 폐기 이벤트의 폐기 대상에 해당하는 오프-체인 데이터를 자신의 오프-체인 스토리지(10)에서 삭제하게 된다.
그리고, 다른 블록체인 노드들(200, 300) 또한 자신의 오프-체인 스토리지(20, 30)에 상기 폐기 대상에 해당하는 오프-체인 데이터가 저장되어 있는지 확인하고, 저장되어 있는 경우 오프-체인 스토리지(20, 30)에서 해당 오프-체인 데이터를 삭제한다.
도 12는 블록체인 노드의 블록 이벤트 시간을 기준으로 폐기 이벤트의 시간 정보를 검증하되, 전체 블록체인 노드에 대해 오프-체인 데이터를 일괄 폐기하는 방법을 설명한다.
도 12에서, 데이터 관리 장치(100)가 유효 기간이 만료된 오프-체인 데이터를 확인하여 그에 대한 폐기 이벤트를 발생하고, 그에 응답하여 블록체인 노드들(100, 200, 300)이 발생하는 트랜잭션의 타임스탬프를 기준으로 시간합의를 진행하여 상기 시간 정보의 유효성을 검증하는 것까지는 도 10에서 설명한 바와 동일하다. 따라서, 설명의 중복을 피하기 위해 그에 대한 추가적인 설명은 생략한다.
이후, 시간합의를 통해 상기 시간 정보의 유효성이 검증되면, 블록체인 네트워크(50)의 체인코드는 상기 시간 정보가 유효함을 나타내는 블록 이벤트를 발생시킨다. 그리고, 데이터 관리 장치(100) 및 블록체인 노드들(200, 300)은 온-체인 상에서 상기 블록 이벤트를 감지하여, 그로부터 상기 시간 정보에 대한 유효성 검증 결과를 수신한다.
그리고, 데이터 관리 장치(100)는 상기 유효성 검증 결과에 기초하여 오프-체인 데이터를 삭제한다. 시간 정보가 유효한 경우 검증된 경우이므로, 데이터 관리 장치(100)는 폐기 이벤트의 폐기 대상에 해당하는 오프-체인 데이터를 자신의 오프-체인 스토리지(10)에서 삭제하게 된다.
그리고, 다른 블록체인 노드들(200, 300) 또한 자신의 오프-체인 스토리지(20, 30)에 상기 폐기 대상에 해당하는 오프-체인 데이터가 저장되어 있는지 확인하고, 저장되어 있는 경우 오프-체인 스토리지(20, 30)에서 해당 오프-체인 데이터를 삭제한다.
도 17는 컴퓨팅 장치(500)를 나타내는 예시적인 하드웨어 구성도이다. 도 17에 도시된 컴퓨팅 장치(500)는 예를 들어, 도 1에 도시된 데이터 관리 장치(100)를 하드웨어적으로 구현한 장치일 수 있다.
도 17에 도시된 바와 같이, 컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 버스(550), 통신 인터페이스(570), 프로세서(510)에 의하여 수행되는 컴퓨터 프로그램(591)을 로드(load)하는 메모리(530)와, 컴퓨터 프로그램(591)를 저장하는 스토리지(590)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 17에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(530)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(590)로부터 하나 이상의 프로그램(591)을 로드(load) 할 수 있다. 메모리(530)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(570)는 컴퓨팅 장치(500)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(590)는 하나 이상의 컴퓨터 프로그램(591)을 비임시적으로 저장할 수 있다. 스토리지(590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(591)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 예를 들어, 컴퓨터 프로그램(591)은 오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 동작, 및 상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 동작을 실행하기 위한 인스트럭션들(Instructions)를 포함하고, 상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출되는 것일 수 있다. 컴퓨터 프로그램(591)이 메모리(530)에 로드 되면, 프로세서(510)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
지금까지 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (16)

  1. 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 관리 방법에 있어서,
    오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 단계; 및
    상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 단계를 포함하고,
    상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출되는,
    블록체인 기반의 데이터 관리 방법.
  2. 제1 항에 있어서,
    상기 시간 정보를 블록체인 네트워크에 기록하는 단계는,
    상기 오프-체인 데이터의 유효 기간을 확인하는 단계; 및
    상기 유효 기간을 상기 시간 정보와 비교하여 상기 유효 기간이 만료된 것으로 판단되면, 상기 삭제 이벤트 및 상기 시간 정보를 상기 블록체인 네트워크에 기록하는 단계를 포함하는,
    블록체인 기반의 데이터 관리 방법.
  3. 제1 항에 있어서,
    상기 시간합의(Time-Consensus) 알고리즘은,
    상기 블록체인 네트워크의 복수의 블록체인 노드들간 합의를 통해 상기 시간 정보의 유효성을 온-체인 상에서 검증하는 알고리즘이고,
    상기 블록체인 노드들 각각의 기준 시간 정보들을 기준으로 판정한 검증 값들에 기초하여 상기 시간 정보의 유효성을 검증하는,
    블록체인 기반의 데이터 관리 방법.
  4. 제1 항에 있어서,
    상기 시간합의(Time-Consensus) 알고리즘은,
    상기 블록체인 네트워크의 복수의 블록체인 노드들간 합의를 통해 상기 시간 정보의 유효성을 온-체인 상에서 검증하는 알고리즘이고,
    상기 삭제 이벤트에 응답하여 상기 복수의 블록체인 노드들 각각이 발생한 트랜잭션들의 기준 시간 정보들을 기준으로 판정한 검증 값들에 기초하여 상기 시간 정보의 유효성을 검증하는,
    블록체인 기반의 데이터 관리 방법.
  5. 제3 항 또는 제 4항에 있어서,
    상기 검증 값들 각각은 상기 기준 시간 정보들 각각을 기준으로 상기 시간 정보가 소정의 시간 범위 안에 위치하는지에 따라 상기 시간 정보의 유효 여부를 나타내는,
    블록체인 기반의 데이터 관리 방법.
  6. 제3 항 또는 제4 항에 있어서,
    상기 시간 정보가 미리 설정된 시간 윈도우 내에 위치하는 경우에만 상기 검증 값은 상기 시간 정보가 유효함을 나타내고,
    상기 시간 윈도우는 가장자리 효과(Edge Effect)를 방지하기 위해 설정된 시간 구간인,
    블록체인 기반의 데이터 관리 방법.
  7. 제1 항에 있어서,
    상기 시간합의 알고리즘에 의해 상기 시간 정보가 유효한 것으로 판정되면, 상기 오프-체인 데이터와 관련된 온-체인(On-Chain) 데이터는 상기 오프-체인 데이터가 삭제되었음을 나타내도록 업데이트되고,
    상기 오프-체인 데이터를 선택적으로 삭제하는 단계는,
    상기 업데이트 된 상기 온-체인 데이터에 기초하여 상기 오프-체인 데이터를 삭제하는 단계를 포함하는,
    블록체인 기반의 데이터 관리 방법.
  8. 제1 항에 있어서,
    상기 오프-체인 데이터를 선택적으로 삭제하는 단계는,
    상기 시간 정보의 유효성 검증 결과를 나타내는 블록 이벤트에 기초하여 상기 오프-체인 데이터를 오프-체인 스토리지에서 삭제하는 단계를 포함하는,
    블록체인 기반의 데이터 관리 방법.
  9. 제8 항에 있어서,
    상기 오프-체인 데이터를 선택적으로 삭제하는 단계는,
    상기 오프-체인 데이터가 삭제되었음을 나타내는 추가 블록 이벤트를 발생시키는 단계를 더 포함하고,
    상기 추가 블록 이벤트의 발생에 따라, 상기 오프-체인 데이터와 관련된 온-체인 데이터는 상기 오프-체인 데이터가 삭제되었음을 나타내도록 업데이트되는,
    블록체인 기반의 데이터 관리 방법.
  10. 제8 항에 있어서,
    제1 블록체인 노드는 상기 오프-체인 데이터를 공유받아 제1 오프-체인 스토리지에 저장한 노드이고,
    상기 제1 블록체인 노드는 상기 블록 이벤트에 기초하여 상기 오프-체인 데이터를 상기 제1 오프-체인 스토리지에서 삭제하는,
    블록체인 기반의 데이터 관리 방법.
  11. 컴퓨팅 장치에 의해 수행되는 블록체인 기반의 데이터 관리 방법에 있어서,
    제1 블록체인 노드에 오프-체인(Off-Chain) 데이터에 대한 삭제를 요청하는 단계;
    상기 삭제 요청에 따라 상기 제1 블록체인 노드가 제1 오프-체인 스토리지에서 상기 오프-체인 데이터를 삭제한 결과를 블록체인 네트워크를 통해 확인하는 단계; 및
    상기 제1 블록체인 노드에 상기 삭제 결과에 대한 검증을 요청하는 단계를 포함하고,
    상기 제1 블록체인 노드는 상기 검증 요청에 응답하여 상기 제1 오프-체인 스토리지의 저장 공간 정보를 상기 블록체인 네트워크에 기록하고,
    상기 저장 공간 정보는 상기 블록체인 네트워크의 체인 코드에 의해 유효성이 검증되는,
    블록체인 기반의 데이터 관리 방법.
  12. 제11 항에 있어서,
    상기 블록체인 네트워크를 통해 상기 저장 공간 정보를 확인하여 제1 암호화 키를 상기 블록체인 네트워크에 제공하는 단계를 더 포함하고,
    상기 저장 공간 정보는,
    상기 제1 암호키에 대응되는 제2 암호키로 암호화되어 상기 블록체인 네트워크에 기록되고,
    상기 체인 코드는,
    상기 저장 공간 정보의 유효성을 검증하기 위해 상기 제1 암호키를 이용하여 상기 제1 오프-체인 스토리지를 조회하는 동작을 수행하는,
    블록체인 기반의 데이터 관리 방법.
  13. 제12 항에 있어서,
    상기 저장 공간 정보는,
    상기 제1 오프-체인 스토리지의 저장 공간에 대한 제1 해시 값을 포함하고,
    상기 체인코드는,
    상기 제1 오프-체인 스토리지를 조회하여 상기 저장 공간에 대한 제2 해시 값을 획득하고, 상기 제2 해시 값과 상기 제1 해시 값을 비교하여 상기 저장 공간 정보의 유효성을 검증하는,
    블록체인 기반의 데이터 관리 방법.
  14. 제12 항에 있어서,
    상기 체인 코드는,
    상기 제1 오프-체인 스토리지와 관련된 온-체인 데이터에서 추출한 데이터 ID(Identification)를 이용하여 상기 제1 오프-체인 스토리지의 진위 여부를 확인하는,
    블록체인 기반의 데이터 관리 방법.
  15. 프로세서;
    상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 동작, 및
    상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 동작을 실행하기 위한 인스트럭션들(Instructions)를 포함하고,
    상기 유효성 검증 결과는 상기 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출되는,
    블록체인 기반의 데이터 관리 장치.
  16. 블록체인 기반의 데이터 관리 방법을 실행하기 위해 컴퓨팅 장치와 결합되어,
    오프-체인(Off-Chain) 데이터에 대한 삭제 이벤트 및 상기 삭제 이벤트의 시간 정보를 블록체인 네트워크에 기록하는 단계; 및
    상기 시간 정보에 대해 산출된 유효성 검증 결과에 기초하여 상기 오프-체인 데이터를 선택적으로 삭제하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록매체에 저장되고,
    상기 유효성 검증 결과는 블록체인 네트워크의 시간합의(Time-Consensus) 알고리즘을 이용하여 산출되는,
    컴퓨터 프로그램.
KR1020200059452A 2020-05-19 2020-05-19 블록체인 기반의 데이터 관리 방법 및 장치 KR20210142823A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200059452A KR20210142823A (ko) 2020-05-19 2020-05-19 블록체인 기반의 데이터 관리 방법 및 장치
US16/885,650 US11625385B2 (en) 2020-05-19 2020-05-28 Method and apparatus for managing data based on blockchain
SG10202008567YA SG10202008567YA (en) 2020-05-19 2020-09-03 Method and apparatus for managing data based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200059452A KR20210142823A (ko) 2020-05-19 2020-05-19 블록체인 기반의 데이터 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210142823A true KR20210142823A (ko) 2021-11-26

Family

ID=78609025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200059452A KR20210142823A (ko) 2020-05-19 2020-05-19 블록체인 기반의 데이터 관리 방법 및 장치

Country Status (3)

Country Link
US (1) US11625385B2 (ko)
KR (1) KR20210142823A (ko)
SG (1) SG10202008567YA (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102511570B1 (ko) * 2022-10-12 2023-03-16 박정훈 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339187B (zh) * 2020-02-20 2023-05-09 百度在线网络技术(北京)有限公司 基于智能合约的数据处理方法、装置、设备和存储介质
JP7534620B2 (ja) * 2020-09-28 2024-08-15 富士通株式会社 通信プログラム、通信装置、及び通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190076197A (ko) 2017-12-22 2019-07-02 주식회사 케이티 블록체인 기반의 데이터 저장 장치 및 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304143B2 (en) * 2016-05-05 2019-05-28 Lance Timothy Kasper Consensus system for manipulation resistant digital record keeping
US10523421B2 (en) * 2016-11-30 2019-12-31 International Business Machines Corporation Checkpoints for permissionless blockchains
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
US11194837B2 (en) * 2018-05-01 2021-12-07 International Business Machines Corporation Blockchain implementing cross-chain transactions
US10917234B2 (en) * 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
JP6882474B2 (ja) * 2018-12-29 2021-06-02 アドバンスド ニュー テクノロジーズ カンパニー リミテッド リプレイ攻撃の検出のためのシステム及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190076197A (ko) 2017-12-22 2019-07-02 주식회사 케이티 블록체인 기반의 데이터 저장 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102511570B1 (ko) * 2022-10-12 2023-03-16 박정훈 블록체인 네트워크의 프로세스를 처리하기 위한 방법, 장치, 시스템, 방법 및 컴퓨터 판독가능 저장매체

Also Published As

Publication number Publication date
SG10202008567YA (en) 2021-12-30
US20210365433A1 (en) 2021-11-25
US11625385B2 (en) 2023-04-11

Similar Documents

Publication Publication Date Title
EP3776208B1 (en) Runtime self-correction for blockchain ledgers
US11334562B2 (en) Blockchain based data management system and method thereof
US11784823B2 (en) Object signing within a cloud-based architecture
KR101882805B1 (ko) Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US20190050598A1 (en) Secure data storage
CN111434084B (zh) 来自实体的访问信息的许可
WO2021018088A1 (zh) 可信认证方法,网络设备、系统及存储介质
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
JP2018121328A (ja) 電子デバイスのためのイベント証明書
US20170293766A1 (en) Distributed data storage by means of authorisation token
KR20200028961A (ko) 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템
JP2020517200A (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
US12052259B2 (en) Blockchain folding
KR20210142823A (ko) 블록체인 기반의 데이터 관리 방법 및 장치
CN113656780B (zh) 一种跨链访问控制方法和装置
US20220239483A1 (en) Long-lasting refresh tokens in self-contained format
JP5801482B2 (ja) キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム
CN108073823B (zh) 数据处理方法、装置及系统
US12088583B2 (en) Permissions for backup-related operations
KR20220014095A (ko) 블록체인 기반의 데이터 분산 관리 방법 및 이를 위한 장치
CN115396209A (zh) 访问授权方法、装置、电子设备及可读存储介质
CN106295384B (zh) 一种大数据平台访问控制方法、装置和认证服务器
KR102356725B1 (ko) 계층 블록체인을 이용한 인증 및 정책 관리 방법
JP5865386B2 (ja) バックエンド制約委譲モデル
KR102542063B1 (ko) 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination