KR20200111033A - 오프체인 데이터 저장 방법 및 장치 - Google Patents

오프체인 데이터 저장 방법 및 장치 Download PDF

Info

Publication number
KR20200111033A
KR20200111033A KR1020190030770A KR20190030770A KR20200111033A KR 20200111033 A KR20200111033 A KR 20200111033A KR 1020190030770 A KR1020190030770 A KR 1020190030770A KR 20190030770 A KR20190030770 A KR 20190030770A KR 20200111033 A KR20200111033 A KR 20200111033A
Authority
KR
South Korea
Prior art keywords
data object
chain
merkle
storage
data
Prior art date
Application number
KR1020190030770A
Other languages
English (en)
Other versions
KR102452250B1 (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 KR1020190030770A priority Critical patent/KR102452250B1/ko
Priority to US16/817,961 priority patent/US11494403B2/en
Publication of KR20200111033A publication Critical patent/KR20200111033A/ko
Application granted granted Critical
Publication of KR102452250B1 publication Critical patent/KR102452250B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction

Abstract

본 발명은 오프체인 데이터 저장 방법 및 장치에 관한 것으로, 오프체인 저장소에 저장된 데이터 객체의 용량 확장성 및 무결성을 지원하는 오프체인 데이터 저장 방법 및 장치를 제공한다. 이를 위하여 본 발명에 따른 오프체인 데이터 저장 방법은 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하는 단계, 수집된 복수의 트랜잭션에 기반하여 생성된 머클 트리의 머클 루트에 기반하여 루트 트랜잭션을 생성하는 단계 및 루트 트랜잭션을 블록체인 저장소에 저장하는 단계를 포함한다.

Description

오프체인 데이터 저장 방법 및 장치{METHOD AND APPARATUS FOR STORING OFFCHAIN DATA}
본 발명은 오프체인 데이터 저장 방법 및 장치에 관한 것으로, 상세하게는 오프체인 저장소에 저장된 데이터 객체의 용량 확장성 및 무결성을 지원하는 오프체인 데이터 저장 방법 및 장치에 관한 것이다.
블록체인은 중앙화된(centralized) 신뢰 제공자 없이 분산화된 신뢰를 바탕으로 데이터의 무결성을 보장하고 가용성(Availability)을 제공하는 새로운 저장 구조이다. 최초의 블록체인인 비트코인에서는 사용자의 계좌 잔액 및 계좌 간 송금 기록 등의 정보를 블록체인에 저장하여, 별도의 중앙화된(centralized) 신뢰 제공자 없이도 코인 거래 내역에 대한 무결성을 보장하였다.
비트코인의 출현 이후, 블록체인은 다양한 분야에서 높은 활용 가능성을 인정받았으며, 코인 거래 내역 저장을 넘어 문서, 그림, 영상 등의 범용 데이터 저장에도 사용되고 있다.
블록체인에 범용 데이터를 저장할 때 가장 큰 문제는 참여 노드들이 공유하는 원장의 용량이 커져 확장성(Scalability)이 떨어진다는 점이다. 단순한 코인 거래 내역 만을 저장하는 비트코인도 2018년 11월 현재 약 200GB의 원장 크기를 가져, Full Node의 경우 200GB의 데이터를 로컬 머신에 항상 유지해야 하는 부담이 발생한다. 영상 하나만으로도 수 기가바이트를 차지할 수 있는 범용 데이터의 특성 상 블록체인에 범용 데이터를 직접 저장하는 것은 거의 불가능하다고 볼 수 있다.
이러한 블록체인의 제한적인 용량 문제를 극복하는 데이터 저장 방식으로 고안된 것이 오프체인 스토리지(Off-chain storage)이다. 이 방식을 따르면 실제 데이터는 블록체인 영역 바깥인 오프체인에 저장하고, 블록체인 상에는 데이터의 해시 값 만을 저장하여, 해시 값 검증을 통해 오프체인 데이터의 무결성을 보장할 수 있다. 이 해시 값은 연결된 데이터의 용량과 무관하게 항상 일정한 크기(예: 32바이트)를 갖는다. 대표적인 오프체인 스토리지로 Ethereum 블록체인과 IPFS 분산 저장소를 연동하는 방법이 있다.
하지만 Ethereum과 IPFS를 이용한 오프체인 스토리지 방식에도 여전히 확장성(scalability) 문제가 존재한다. 무결성 보장을 위해 저장할 데이터 객체 하나 당 32바이트의 데이터 해시 값이 포함된 트랜잭션 하나를 블록체인에 저장하게 되는데, 객체 수가 늘어날수록 저장해야 할 트랜잭션의 수도 선형적으로 증가하게 된다. 또한, 데이터가 삭제되거나 수정될 경우 이미 기록된 해시 값은 블록체인에 남아있고 갱신된 해시 값을 새로운 트랜잭션으로 저장해야 하므로 블록체인 원장 용량의 증가가 더욱 빨라지게 된다.
본 발명은 현존하는 오프체인 데이터 저장 기법에 공통적으로 존재하는 용량 확장성 문제를 해결하는 오프체인 데이터 저장 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 측면에 따른 오프체인 데이터를 저장하는 방법은, 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하는 단계, 수집된 상기 복수의 트랜잭션에 기반하여 생성된 머클 트리의 머클 루트에 기반하여 루트 트랜잭션을 생성하는 단계 및 상기 루트 트랜잭션을 블록체인 저장소에 저장하는 단계를 포함한다.
본 발명의 오프체인 데이터 저장 방법은, 데이터 객체를 오프체인 저장소에 저장하는 단계를 더 포함하고, 상기 데이터 객체는 상기 데이터 객체의 식별자를 이용하여 상기 오프체인 저장소에서 접근가능하다.
일 예에서, 데이터 객체의 식별자는 상기 데이터 객체가 상기 오프체인 저장소에 저장된 시점의 데이터 객체의 해시값이다.
본 발명의 오프체인 데이터 저장 방법은, 상기 머클 트리에 대한 참조 데이터 객체를 오프체인 저장소에 저장하는 단계를 더 포함하고, 상기 참조 데이터 객체는 상기 머클 트리의 식별자를 이용하여 상기 오프체인 저장소에서 접근가능하다.
일 예에서, 머클 트리의 식별자는 상기 루트 트랜잭션에 저장된 머클 루트값이다.
일 예에서, 참조 데이터 객체는 상기 머클 트리의 중간 노드 및 리프 노드의 해시값을 저장하는 데이터 객체이다.
저장하는 단계는, 상기 참조 데이터 객체의 보안 수준을 상기 데이터 객체의 보안 레벨 보다 고수준의 보안 레벨로 설정할 수 있다.
복수의 트랜잭션을 수집하는 단계는, 최대 데이터 객체의 개수 및 최대 대기 시간 중 적어도 하나에 기반하여 결정되는 수집 주기 동안에 상기 복수의 트랜잭션을 수집할 수 있다.
본 발명의 오프체인 데이터 저장 방법은, 복수의 데이터 객체의 무결성을 검증하는 단계를 더 포함하고, 상기 검증하는 단계는, 각 데이터 객체의 현재 해시값에 기반하여 검증 트리를 생성하는 단계 및 상기 루트 트랜잭션에 저장된 머클 루트값과 상기 검증 트리의 루트값을 비교하는 단계를 포함한다.
본 발명의 오프체인 데이터 저장 방법은, 각 데이터 객체의 무결성을 검증하는 단계를 더 포함하고, 상기 검증하는 단계는, 데이터 객체가 속한 상기 머클 트리의 머클 루트값을 획득하는 단계, 획득된 상기 머클 루트값에 기반하여 상기 머클 트리에 대한 참조 데이터 객체에 접근하는 단계, 상기 데이터 객체의 현재 해시값 및 상기 참조 데이터 객체에 저장된 해시값에 기반하여 머클 루트값을 재계산하는 단계 및 상기 루트 트랜잭션에 저장된 머클 루트값과 상기 재계산된 머클 루트값을 비교하는 단계를 포함한다.
본 발명의 오프체인 데이터 저장 방법은, 상기 머클 트리에 대한 참조 데이터 객체를 검증하는 단계를 더 포함하고, 상기 검증하는 단계는, 상기 참조 데이터 객체에 저장된 해시값에 기반하여 머클 루트값을 재계산하는 단계 및 상기 루트 트랜잭션에 저장된 머클 루트값과 상기 재계산된 머클 루트값을 비교하는 단계를 포함한다.
본 발명의 또다른 측면에 따른 오프체인 데이터를 저장하는 전자 장치는, 복수의 데이터 객체를 저장하는 오프체인 저장소 및 프로세서를 포함하고, 상기 프로세서는, 상기 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하고, 상기 복수의 트랜잭션에 기반하여 머클 트리를 생성하고, 상기 머클 트리의 머클 루트에 대한 루트 트랜잭션을 생성하고, 상기 루트 트랜잭션을 블록체인 저장소에 저장하도록 설정된다.
본 발명의 오프체인 데이터 저장 장치에 포함된 프로세서는, 상기 데이터 객체를 오프체인 저장소에 저장하고, 상기 데이터 객체의 식별자를 이용하여 상기 데이터 객체에 접근하도록 설정된다.
일 예에서, 데이터 객체의 식별자는 상기 데이터 객체가 상기 오프체인 저장소에 저장된 시점의 데이터 객체의 해시값이다.
본 발명의 오프체인 데이터 저장 장치에 포함된 프로세서는, 상기 머클 트리에 대한 참조 데이터 객체를 상기 오프체인 저장소에 저장하고, 상기 머클 트리의 식별자를 이용하여 상기 참조 데이터 객체에 접근하도록 설정된다.
일 예에서, 머클 트리의 식별자는 상기 루트 트랜잭션에 저장된 머클 루트값이다.
오프체인 저장소는 상기 데이터 객체 관련 정보를 저장하고, 상기 데이터 객체 관련 정보는, 각 데이터 객체의 식별자, 각 데이터 객체의 물리적 위치 및 각 데이터 객체가 속한 머클 트리의 머클 루트값을 포함한다.
본 발명의 오프체인 데이터 저장 방법 및 장치에 의하면, 블록체인에 오프체인 방식으로 범용 데이터를 저장하는 경우에 블록체인의 원장 용량을 현저히 줄일 수 있다. 이로써, 동일 크기의 블록체인 저장소에 더 많은 범용 데이터를 저장할 수 있게 된다.
도 1은 실시예에 따른 오프체인 데이터 저장 장치를 개략적으로 도시한 블록도이다.
도 2는 실시예에 따른 오프체인 데이터 저장 방법의 과정을 도시한 순서도이다.
도 3은 일 예에 따른 복수의 데이터 객체에 대한 머클 트리를 도시한다.
도 4는 일 예에 따른 온체인 저장소와 연동하는 오프체인 저장소를 개략적으로 도시한다.
도 5는 일 예에 따른 복수의 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
도 6은 일 예에 따른 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
도 7은 일 예에 따른 참조 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
본 발명이 구현되는 양상을 이하의 바람직한 각 실시예를 들어 설명한다. 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 본 발명의 기술적 사상의 범주 내에서 그 외의 다른 다양한 형태로 구현될 수 있음은 자명하다. 본 명세서에서 사용된 용어 역시 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 요소가 하나 이상의 다른 구성요소, 단계, 동작 및/또는 요소의 존재 또는 추가됨을 배제하지 않는다.
도 1은 실시예에 따른 오프체인 데이터 저장 장치를 개략적으로 도시한 블록도이다.
실시예에 따른 오프체인 데이터 저장 장치(100)는 복수의 데이터 객체를 저장하는 오프체인 저장소(120) 및 컴퓨팅 장치(110)를 포함하는 전자 장치이다.
컴퓨팅 장치(110)는 프로세서를 포함한다. 프로세서는 메모리 및 메모리에 저장된 데이터를 이용하여 명령어에 따라 연산을 수행하는 연산 장치이다. 예를 들어, 프로세서는 CPU와 같은 각종 마이크로 프로세서를 포함한다.
일 예에서 오프체인 저장소(120)는 로컬 저장 장치이다. 다른 예에서 오프체인 저장소(120)는 원격 저장 장치이고, 네트워크를 통해 컴퓨팅 장치(110)와 통신한다. 예를 들어, 오프체인 저장소(120)는 분산 저장소나 자체적으로 구축한 저장 서버 또는 클라우드 서비스를 활용한 저장소일 수 있다.
일 예에서 블록체인 저장소(130)는 블록체인 네트워크로 구축된 온체인 저장소이다.
데이터 객체는 텍스트, 음악, 이미지 또는 동영상 등의 범용 데이터를 저장한 문서 및 파일 등의 객체를 포함한다.
컴퓨팅 장치(110)는 오프체인 저장소(120)와 블록체인 저장소(130)를 연동하여 데이터 객체를 저장 및 관리한다. 즉, 오프체인 저장소(120)와 블록체인 저장소(130)는 온체인-오프체인 연동 스토리지 시스템이다.
컴퓨팅 장치(110)는 사용자로부터 수신한 데이터 객체를 오프체인 저장소(120)에 저장하고, 데이터 객체에 저장된 데이터의 해시값을 계산한다. 예를 들어, 컴퓨팅 장치(110)는 SHA256 방식으로 해시값을 계산한다. 컴퓨팅 장치(110)는 계산된 해시값을 새로운 트랜잭션에 담아 블록체인 저장소(130)에 브로드캐스트(Broadcast) 방식으로 전송한다. 예를 들어, 컴퓨팅 장치(110)는 블록을 생성하는 마이너(Miner)에 대응한다.
컴퓨팅 장치(110)는 다수의 데이터 객체에 대한 무결성을 하나의 블록체인 트랜잭션 기록만으로 보장하기 위하여, 각 데이터 객체의 해시값을 리프 노드(Leaf Node)로 갖는 머클 트리(Merkel Tree)를 구성하고, 머클 트리의 루트(Root)값만을 트랜잭션에 담아 블록체인에 저장한다. 머클 루트값은 머클 트리의 루트에 대응하는 해시값을 의미한다.
실시예에 따르면, 머클 트리 하나에 담기는 데이터 객체 수가
Figure pat00001
이라고 했을 때, 생성되는 트랜잭션 수와 블록체인 원장의 용량이 종래의 방식에 비하여
Figure pat00002
로 줄어들게 된다.
이하에서 실시예에 따른 오프체인 데이터 저장 방법을 보다 상세하게 살펴본다.
도 2는 실시예에 따른 오프체인 데이터 저장 방법의 과정을 도시한 순서도이다.
실시예에 다른 오프체인 데이터 저장 방법은 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하는 단계(210), 수집된 복수의 트랜잭션에 기반하여 생성된 머클 트리의 머클 루트(Hash Root)에 기반하여 루트 트랜잭션을 생성하는 단계(220) 및 루트 트랜잭션을 블록체인 저장소에 전달하는 단계(230)를 포함한다.
단계(210)에서 컴퓨팅 장치(110)는 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집한다. 일 예에서 컴퓨팅 장치(110)는 데이터 객체의 해시값을 수용한 트랜잭션을 복수개만큼 수집한다.
단계(210)에서 컴퓨팅 장치(110)는 수집 주기 동안에 복수의 트랜잭션을 수집한다. 컴퓨팅 장치(110)는 수집 주기 동안에는 데이터 객체의 해시값을 담은 트랜잭션을 수집하고, 수집 주기가 완료되면 수집된 복수의 트랜잭션에 기반하여 단계(220)로 진행하는 한편 단계(210)의 새로운 수집 주기를 개시한다.
일 예에서, 트랜잭션 수집 주기(즉, 머클 트리 생성 주기)는 오프체인 저장소(120)의 목적 및 운영자의 정책에 따라 달라질 수 있다. 트랜잭션 수집을 오랜 기간 할수록 하나의 머클 트리에 들어갈 수 있는 데이터 객체의 개수가 늘어나 블록체인 원장의 용량을 줄이는 데는 효과적이지만, 그만큼 스토리지에 저장되는 데이터가 블록체인에 반영되기까지 시간이 오래 걸리게 되므로, 실시간성과 용량 사이의 Trade-off를 고려하여 결정해야 한다.
일 예에서, 수집 주기는 최대 데이터 객체의 개수 및 최대 대기 시간 중 적어도 하나에 기반하여 결정될 수 있다. 여기서 최대 데이터 객체의 개수는 하나의 머클 트리에 수용되는 최대 트랜잭션의 개수에 대응한다. 최대 대기 시간은 다음 데이터 객체를 수신하기까지 기다릴 수 있는 최장 시간이거나 또는 다음 머클 트리를 생성하기 전까지 기다릴 수 있는 최장 시간이다.
컴퓨팅 장치(110)는 하나의 루트 트랜잭션에 포함될 데이터 객체 수와 최대 대기 시간의 두 개의 파라미터를 사용하여 트랜잭션 수집 주기의 임계값을 결정할 수 있다. 예를 들어, 결정된 데이터 객체 수 관련 임계값만큼 데이터 객체(트랜잭션)가 모이게 되면 대기 시간과 상관없이 머클 트리 생성 후 루트 트랜잭션을 생성할 수 있다. 예를 들어, 데이터 객체가 모이는 속도가 느릴 경우 최대 대기 시간에 따라 Time-out 후 머클 트리 생성을 시작할 수 있다. 이와 같은 두 가지 Threshold는 시스템을 운영하면서 동적으로 변하도록 알고리즘을 추가하여 사용할 수 있다. 즉, 수집 주기는 임계값의 범위 내에서, 현재 수집된 데이터 객체의 개수 및 현재 대기 시간의 함수에 의해 결정된다. 예를 들어 수집 주기는 수집된 데이터 객체의 개수 및 새로운 데이터 객체의 예상 도달 시간에 기반하여 결정될 수 있다.
단계(210) 이전 또는 이후에, 또는 단계(210)과 동시에 컴퓨팅 장치(110)는 각 데이터 객체를 오프체인 저장소(120)에 저장한다. 일 예에서 컴퓨팅 장치(110)는 데이터 객체의 식별자를 이용하여 오프체인 저장소(120)에서 저장된 데이터 객체에 접근가능하다. 일 예에서 데이터 객체의 식별자는 데이터 객체가 오프체인 저장소(120)에 저장된 시점의 데이터 객체의 해시값이다.
단계(220)에서 컴퓨팅 장치(110)는 단계(210)에서 수집한 복수의 트랜잭션에 기반하여 머클 트리를 생성하고, 머클 트리의 머클 루트에 대한 루트 트랜잭션을 생성한다. 즉, 컴퓨팅 장치(110)는 머클 루트만 넣은 새로운 트랜잭션을 생성하여 블록화한다.
추가적으로, 컴퓨팅 장치(110)는 단계(220)에서 머클 트리 생성 중에 발생한 모든 해시값을 저장하는 하나의 데이터 객체를 생성하고 이를 오프체인 저장소(120)에 저장한다. 이와 같은 데이터 객체를 참조 데이터 객체라고 한다. 즉, 컴퓨팅 장치(110)는 단계(220)에서 생성된 머클 트리에 대한 참조 데이터 객체를 오프체인 저장소(120)에 저장한다. 여기서 참조 데이터 객체는 해당 머클 트리의 식별자를 이용하여 오프체인 저장소(120)에서 접근가능하다. 일 예에서, 머클 트리의 식별자는 단계(220)에서 생성된 루트 트랜잭션에 저장된 머클 루트값이다. 예를 들어, 오프체인 저장소(120)는 분산 해시 테이블이고, 컴퓨팅 장치(110)는 단계(220)에서 생성한 머클 트리의 머클 루트값을 키(key)로 하여 참조 데이터 객체를 오프체인 저장소(120)에서 접근가능하다.
단계(230)에서 컴퓨팅 장치(110)는 단계(220)에서 생성한 루트 트랜잭션을 블록체인 저장소(130)로 전달한다. 예를 들어, 컴퓨팅 장치(110)는 단계(220)에서 생성한 머클 트리의 머클 루트값을 새로 생성한 트랜잭션에 담아 블록체인 네트워크로 브로드캐스팅한다.
도 3은 일 예에 따른 복수의 데이터 객체에 대한 머클 트리를 도시한다. 도 3은 트랜잭션
Figure pat00003
개가 모인 시점에서의 머클 루트 계산 및 트랜잭션 생성 과정을 예시적으로 보여준다.
컴퓨팅 장치(110)는 n개의 데이터 객체(Data #1 내지 Data #n)의 해시값을 각각 담은 n 개의 트랜잭션(Transaction #1 내지 Transaction #n)에 대한 머클 트리를 생성한다. 예를 들어, 머클 트리 구성 시 두 개의 해시값에 기반한 상위 노드의 해시값을 계산하기 위하여, 각각의 해시 값을 little endian으로 변환한 후, 결과 값을 나란히 이어 붙이고 해시 알고리즘을 수행한 뒤 다시 big endian으로 변환할 수 있다.
컴퓨팅 장치(110)는 각 데이터 객체에 대한 해시값이 담긴 트랜잭션을 수집하여 블록을 생성한다. 여기서 컴퓨팅 장치(110)는 수집한 트랜잭션을 직접 블록 생성에 사용하는 것이 아니라, 특정 시점을 선택하여 해당 시점까지 모인 트랜잭션들을 하나의 머클 트리로 구성하고 머클 루트(HashRoot)를 계산한다. 특정 시점은 예를 들어 앞서 설명한 트랜잭션 수집 주기 또는 머클 트리 생성 주기에 따라 결정된다.
컴퓨팅 장치(110)는 계산된 머클 루트(HashRoot)만을 담은 루트 트랜잭션(Transaction #(n+1))을 생성하여 블록에 담는다.
도 4는 일 예에 따른 온체인 저장소와 연동하는 오프체인 저장소를 개략적으로 도시한다. 도 4는 해시값 저장 부분을 포함하여 블록체인 저장소(130)와 오프체인 저장소(120)에 저장되는 데이터를 예시적으로 보여준다.
오프체인 저장소(120)에 있는 데이터 객체에 대한 접근은 예를 들어 분산 해시 테이블(DHT; Distributed Hash Table)을 사용하여 이루어진다. DHT는 기본적으로 분산 Key-value Store이며, 여기서 키(key)는 각 데이터 객체의 해시값을 사용한다. 앞서 설명한대로 오프체인 저장소(120)에서 데이터 객체의 해시값은 해당 데이터 객체의 식별자(Identifier)로 사용될 수 있다.
박스(410)는 예시적인 참조 데이터 객체를 도시한다. 머클 트리 생성 과정에서 사용된 모든 해시값들을 저장하는 문서인 참조 데이터 객체(410)의 키는 해당 머클 트리의 루트인 HashRoot이다.
박스(420)는 예시적인 데이터 객체를 도시한다. 데이터 객체(420)의 키는 해당 데이터 객체의 해시값이다.
DHT의 값(value)는 각 데이터 객체들이 오프체인 저장소(120)에 실제로 저장되어 있는 물리적인 위치를 나타낸다. 후술할 데이터 객체의 무결성 검증을 위하여 각 해시값이 어떤 머클 트리에 저장되어 있는 지의 위치 정보가 필요할 수 있다. 일 예에서, 이와 같은 위치 정보는 DHT의 value필드에 해당 해시값(Key)을 갖는 데이터 객체가 저장된 물리적 위치와 함께 머클 루트값(HashRoot)을 같이 저장하는 방식으로 획득할 수 있다.
다시 말하면, 오프체인 저장소(120)는 데이터 객체 관련 정보를 저장한다. 예를 들어, 데이터 객체 관련 정보는 데이터 객체의 식별자, 데이터 객체의 물리적 위치 및 데이터 객체가 속한 머클 트리의 머클 루트값을 포함한다. 여기서, 데이터 객체의 식별자는 DHT의 Key에 대응하고, 데이터 객체의 물리적 위치는 DHT의 Value에 대응하고, 머클 트리의 머클 루트값은 HashRoot에 각각 대응한다.
블록체인 저장소(130)는 머클 트리의 머클 루트값(HashRoot)을 담은 트랜잭션(Transaction #(n+1))을 저장한다. 블록체인 저장소(130)에 저장된 머클 루트값은 블록체인의 내재적 속성으로 인하여 무결성이 보장된다. 이와 같은 머클 루트값은 오프체인 저장소(120)에 저장된 데이터 객체(420) 및 참조 데이터 객체(410)에의 접근, 관리 및 무결성 검증 시에 활용된다.
참조 데이터 객체(410)는 머클 트리의 모든 노드의 해시값을 머클 루트마다 하나의 문서로 오프체인 저장소(120)에 저장한다. 참조 데이터 객체(410)에 저장된 해시값들의 변조 여부 검증은 블록체인 저장소(130)에 저장된 머클 루트값을 이용가능하며, 이로써 무결성이 자체적으로 보장된다.
또한 참조 데이터 객체(410)에 저장된 해시값들의 가용성 보장을 위해 오프체인 저장소(120)에서 참조 데이터 객체(410)는 일반 데이터 객체(420)에 비해 높은 복제 레벨(Replication level)을 적용하여 저장한다. 즉, 컴퓨팅 장치(110)는 참조 데이터 객체(410)의 보안 수준을 데이터 객체(420)의 보안 레벨 보다 고수준의 보안 레벨로 설정할 수 있다.
도 5는 일 예에 따른 복수의 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
컴퓨팅 장치(110)는 도 2를 참조하여 단계(230)에서 머클 루트값을 담은 루트 트랜잭션을 블록체인 저장소(130)에 전달한다.
이후 필요에 따라 단계(510) 및 단계(520)에서 컴퓨팅 장치(110)는 오프체인 저장소(120)에 저장된 복수의 데이터 객체의 무결성을 검증한다.
단계(510)에서 컴퓨팅 장치(110)는 복수의 데이터 객체의 각 데이터 객체의 현재 해시값에 기반하여 검증 트리를 생성한다.
단계(510)에서 컴퓨팅 장치(110)는 검증하려는 머클 트리에 포함된 복수의 데이터 객체 모두를 오프체인 저장소(120)에서 접근하고, 각 데이터 객체의 현재 해시값을 계산한다. 도 2 및 도 3을 참조하여 전술한 과정에 따라 컴퓨팅 장치(110)는 현재 해시값에 기반하여 새로운 머클 트리, 즉 검증 트리를 생성하고, 검증을 위한 머클 루트값을 계산한다.
단계(520)에서 컴퓨팅 장치(110)는 루트 트랜잭션에 저장된 머클 루트값과 단계(510)에서 생성한 검증 트리의 루트값을 비교한다.
컴퓨팅 장치(110)는 단계(520)에서 블록체인 저장소(130)에 기록되어 있는 머클 루트 값과 단계(510)에서 생성한 검증 트리의 루트값을 비교함으로써 머클 트리에 포함된 데이터 객체에 대하여 무결성 검증을 수행가능하다.
도 6은 일 예에 따른 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
단계(610) 내지 단계(640)에서 컴퓨팅 장치(110)는 오프체인 저장소(120)에 저장된 특정 데이터 객체에 대한 무결성을 검증한다.
특정 데이터 객체 하나 (예를 들어, 도 4의 Data #1)(420)에만 접근하여 해당 데이터 객체(420)의 무결성을 검증하는 경우에, 머클 루트값(HashRoot) 만으로는 해당 데이터 객체가 저장 시점과 동일하게 유지되고 있는지 검증하는 것이 불가능할 수 있다. 이 경우에, Data #1(420)의 무결성을 검증하기 위해서는 도 2를 참조하여 단계(220)에서 머클 루트를 계산하는 과정에서 사용된 리프(Leaf) 노드와 중간 노드들의 해시값이 필요하며, 이를 위하여 컴퓨팅 장치(110)는 최초 머클 트리 구성 및 머클 루트 계산 시에 사용한 리프 노드의 해시값과 중간 생성되어 트리에 포함된 중간 노드의 해시값을 전술한대로 참조 데이터 객체(410)에 저장한다.
단계(610)에서 컴퓨팅 장치(110)는 무결성을 검증하려는 데이터 객체가 속한 머클 트리의 머클 루트값을 획득한다. 예를 들어, 컴퓨팅 장치(110)는 데이터 객체(420)의 식별자(예를 들어, 키)를 이용하여 해당 데이터 객체와 해당 데이터 객체가 속한 머클 트리의 루트값을 획득한다. 일 예에서 머클 트리의 루트값은 DHT에 저장될 수 있다.
단계(620)에서 컴퓨팅 장치(110)는 단계(610)에서 획득한 머클 루트값에 기반하여 머클 트리에 대한 참조 데이터 객체에 접근한다. 즉, 컴퓨팅 장치(110)는 단계(610)에서 획득한 머클 루트값을 키로 하여 머클 트리를 구성하는 해시값들이 저장된 문서인 참조 데이터 객체(410)를 찾는다.
단계(630)에서 컴퓨팅 장치(110)는 검증하려는 데이터 객체의 현재 해시값 및 단계(620)에서 접근한 참조 데이터 객체에 저장된 해시값에 기반하여 머클 루트값을 재계산한다. 즉, 컴퓨팅 장치(110)는 해당 데이터 객체의 현재 해시값과 단계(620)에서 접근한 참조 데이터 객체(410)에 저장된 해시값들을 이용해 머클 루트를 재계산한다.
단계(640)에서 컴퓨팅 장치(110)는 루트 트랜잭션에 저장된 머클 루트값과 재계산된 머클 루트값을 비교한다. 예를 들어 컴퓨팅 장치(110)는 단계(630)에서 재계산한 머클 루트값을 블록체인 저장소(130)에 기록된 머클 루트값을 비교하여 일치하는 지를 확인한다.
도 7은 일 예에 따른 참조 데이터 객체의 무결성을 검증하는 과정을 도시한 순서도이다.
컴퓨팅 장치(110)는 필요에 따라 단계(710) 및 단계(720)에서 머클 트리에 대한 참조 데이터 객체의 무결성을 검증한다.
단계(710)에서 컴퓨팅 장치(110)는 참조 데이터 객체(410)에 저장된 해시값에 기반하여 머클 루트값을 재계산한다. 즉, 컴퓨팅 장치(110)는 참조 데이터 객체(410)에 저장된 현재 해시값을 이용하여 머클 트리를 재구성하고 머클 루트값을 재계산한다.
단계(720)에서 컴퓨팅 장치(110)는 루트 트랜잭션에 저장된 머클 루트값과 재계산된 머클 루트값을 비교한다. 예를 들어 컴퓨팅 장치(110)는 단계(710)에서 재계산한 머클 루트값을 블록체인 저장소(130)에 기록된 머클 루트값을 비교하여 일치하는 지를 확인한다.
한편, 본 발명의 실시예에 따른 오프체인 데이터 저장 방법 및 장치는 컴퓨터 시스템에서 구현되거나, 또는 기록매체에 기록될 수 있다. 컴퓨터 시스템은 적어도 하나 이상의 프로세서와, 메모리와, 사용자 입력 장치와, 데이터 통신 버스와, 사용자 출력 장치와, 저장소를 포함할 수 있다. 전술한 각각의 구성 요소는 데이터 통신 버스를 통해 데이터 통신을 한다.
컴퓨터 시스템은 네트워크에 커플링된 네트워크 인터페이스를 더 포함할 수 있다. 프로세서는 중앙처리 장치(central processing unit (CPU))이거나, 혹은 메모리 및/또는 저장소에 저장된 명령어를 처리하는 반도체 장치일 수 있다.
메모리 및 저장소는 다양한 형태의 휘발성 혹은 비휘발성 저장매체를 포함할 수 있다. 예컨대, 메모리는 ROM 및 RAM을 포함할 수 있다.
본 발명의 실시예에 따른 오프체인 데이터 저장 방법은 컴퓨터에서 실행 가능한 방법으로 구현될 수 있다. 본 발명의 실시예에 따른 오프체인 데이터 저장 방법이 컴퓨터 장치에서 수행될 때, 컴퓨터로 판독 가능한 명령어들이 본 발명에 따른 오프체인 데이터 저장 방법을 수행할 수 있다.
한편, 상술한 본 발명에 따른 오프체인 데이터 저장 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이제까지 본 발명을 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 변경 또는 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명을 위한 예시적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 오프체인 데이터 저장 장치
110: 제어부
120: 오프체인 저장소
130: 블록체인 저장소

Claims (15)

  1. 오프체인 데이터를 저장하는 방법에 있어서,
    복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하는 단계;
    수집된 상기 복수의 트랜잭션에 기반하여 생성된 머클 트리의 머클 루트에 기반하여 루트 트랜잭션을 생성하는 단계 및
    상기 루트 트랜잭션을 블록체인 저장소에 저장하는 단계
    를 포함하는 오프체인 데이터 저장 방법.
  2. 제 1 항에 있어서,
    상기 데이터 객체를 오프체인 저장소에 저장하는 단계
    를 더 포함하고,
    상기 데이터 객체는 상기 데이터 객체의 식별자를 이용하여 상기 오프체인 저장소에서 접근가능한 오프체인 데이터 저장 방법.
  3. 제 2 항에 있어서,
    상기 데이터 객체의 식별자는 상기 데이터 객체가 상기 오프체인 저장소에 저장된 시점의 상기 데이터 객체의 해시값인 오프체인 데이터 저장 방법.
  4. 제 1 항에 있어서,
    상기 머클 트리에 대한 참조 데이터 객체를 오프체인 저장소에 저장하는 단계
    를 더 포함하고,
    상기 참조 데이터 객체는 상기 머클 트리의 식별자를 이용하여 상기 오프체인 저장소에서 접근가능한 오프체인 데이터 저장 방법.
  5. 제 4 항에 있어서,
    상기 머클 트리의 식별자는 상기 루트 트랜잭션에 저장된 머클 루트값인 오프체인 데이터 저장 방법.
  6. 제 4 항에 있어서,
    상기 참조 데이터 객체는 상기 머클 트리의 중간 노드 및 리프 노드의 해시값을 저장하는 데이터 객체인 오프체인 데이터 저장 방법.
  7. 제 4 항에 있어서,
    상기 저장하는 단계는,
    상기 참조 데이터 객체의 보안 수준을 상기 데이터 객체의 보안 레벨 보다 고수준의 보안 레벨로 설정하는 오프체인 데이터 저장 방법.
  8. 제 1 항에 있어서,
    상기 복수의 트랜잭션을 수집하는 단계는,
    최대 데이터 객체의 개수 및 최대 대기 시간 중 적어도 하나에 기반하여 결정되는 수집 주기 동안에 상기 복수의 트랜잭션을 수집하는 오프체인 데이터 저장 방법.
  9. 제 1 항에 있어서,
    상기 복수의 데이터 객체의 무결성을 검증하는 단계
    를 더 포함하고,
    상기 검증하는 단계는,
    각 데이터 객체의 현재 해시값에 기반하여 검증 트리를 생성하는 단계; 및
    상기 루트 트랜잭션에 저장된 머클 루트값과 상기 검증 트리의 루트값을 비교하는 단계
    를 포함하는 오프체인 데이터 저장 방법.
  10. 제 1 항에 있어서,
    각 데이터 객체의 무결성을 검증하는 단계
    를 더 포함하고,
    상기 검증하는 단계는,
    데이터 객체가 속한 상기 머클 트리의 머클 루트값을 획득하는 단계;
    획득된 상기 머클 루트값에 기반하여 상기 머클 트리에 대한 참조 데이터 객체에 접근하는 단계;
    상기 데이터 객체의 현재 해시값 및 상기 참조 데이터 객체에 저장된 해시값에 기반하여 머클 루트값을 재계산하는 단계; 및
    상기 루트 트랜잭션에 저장된 머클 루트값과 상기 재계산된 머클 루트값을 비교하는 단계
    를 포함하는 오프체인 데이터 저장 방법.
  11. 제 4 항에 있어서,
    상기 머클 트리에 대한 참조 데이터 객체를 검증하는 단계
    를 더 포함하고,
    상기 검증하는 단계는,
    상기 참조 데이터 객체에 저장된 해시값에 기반하여 머클 루트값을 재계산하는 단계; 및
    상기 루트 트랜잭션에 저장된 머클 루트값과 상기 재계산된 머클 루트값을 비교하는 단계
    를 포함하는 오프체인 데이터 저장 방법.
  12. 오프체인 데이터를 저장하는 전자 장치에 있어서,
    복수의 데이터 객체를 저장하는 오프체인 저장소 및
    프로세서를 포함하고, 상기 프로세서는,
    상기 복수의 데이터 객체에 대한 복수의 트랜잭션을 수집하고,
    상기 복수의 트랜잭션에 기반하여 머클 트리를 생성하고, 상기 머클 트리의 머클 루트에 대한 루트 트랜잭션을 생성하고,
    상기 루트 트랜잭션을 블록체인 저장소에 저장하도록 설정되는 전자 장치.
  13. 제 12 항에 있어서,
    상기 프로세서는,
    상기 데이터 객체를 오프체인 저장소에 저장하고,
    상기 데이터 객체의 식별자를 이용하여 상기 데이터 객체에 접근하도록 설정되고,
    상기 식별자는 상기 데이터 객체가 상기 오프체인 저장소에 저장된 시점의 상기 데이터 객체의 해시값인 전자 장치.
  14. 제 12 항에 있어서,
    상기 프로세서는,
    상기 머클 트리에 대한 참조 데이터 객체를 상기 오프체인 저장소에 저장하고,
    상기 머클 트리의 식별자를 이용하여 상기 참조 데이터 객체에 접근하도록 설정되고,
    상기 식별자는 상기 루트 트랜잭션에 저장된 머클 루트값인 전자 장치.
  15. 제 12 항에 있어서,
    상기 오프체인 저장소는 상기 데이터 객체 관련 정보를 저장하고,
    상기 데이터 객체 관련 정보는,
    각 데이터 객체의 식별자, 각 데이터 객체의 물리적 위치 및 각 데이터 객체가 속한 머클 트리의 머클 루트값을 포함하는 전자 장치.
KR1020190030770A 2019-03-18 2019-03-18 오프체인 데이터 저장 방법 및 장치 KR102452250B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190030770A KR102452250B1 (ko) 2019-03-18 2019-03-18 오프체인 데이터 저장 방법 및 장치
US16/817,961 US11494403B2 (en) 2019-03-18 2020-03-13 Method and apparatus for storing off-chain data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190030770A KR102452250B1 (ko) 2019-03-18 2019-03-18 오프체인 데이터 저장 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200111033A true KR20200111033A (ko) 2020-09-28
KR102452250B1 KR102452250B1 (ko) 2022-10-07

Family

ID=72515833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190030770A KR102452250B1 (ko) 2019-03-18 2019-03-18 오프체인 데이터 저장 방법 및 장치

Country Status (2)

Country Link
US (1) US11494403B2 (ko)
KR (1) KR102452250B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049721A (ko) * 2020-09-29 2021-05-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 블록체인에 기반한 데이터 처리 방법, 장치, 기기, 저장매체 및 프로그램
KR20220133392A (ko) * 2021-03-25 2022-10-05 전북대학교산학협력단 블록체인을 이용한 영상의 무결성을 지원하는 검증 시스템 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102182750B1 (ko) * 2019-09-16 2020-11-25 주식회사 마크애니 블록체인을 이용한 데이터 유통 시스템 및 방법
CN112015734B (zh) * 2020-08-06 2021-05-07 华东师范大学 一种面向区块链的紧凑Merkle多值证明并行生成及验证方法
WO2023148042A1 (en) * 2022-02-07 2023-08-10 Nchain Licensing Ag Blockchain based privacy enhanced outsourced data storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120116898A (ko) * 2009-06-26 2012-10-23 트러스티드 로직 데이터 검증 방법
KR101829995B1 (ko) * 2016-08-30 2018-02-19 전북대학교산학협력단 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치 및 트랜잭셔널 메모리 장치의 동작 방법
WO2018126065A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Decentralized data storage and processing for iot devices
US20190081793A1 (en) * 2017-09-12 2019-03-14 Kadena, LLC Parallel-chain architecture for blockchain systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102415626B1 (ko) 2016-01-04 2022-07-01 한국전자통신연구원 데이터 소유권 검증 방법 및 장치
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
KR102514457B1 (ko) 2017-01-10 2023-03-29 한국전자통신연구원 블록체인을 이용한 공공 단체의 거래 정보 관리 방법 및 시스템
KR101882805B1 (ko) 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜에서 머클 트리 구조를 이용하는 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US20220029815A1 (en) * 2017-10-24 2022-01-27 0Chain Corp. Streaming content via blockchain technology
US11212077B2 (en) * 2018-10-23 2021-12-28 Cisco Technology, Inc. Authentication of messages sent across a network of multiple data centers
US11960473B2 (en) * 2019-01-15 2024-04-16 Fisher-Rosemount Systems, Inc. Distributed ledgers in process control systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120116898A (ko) * 2009-06-26 2012-10-23 트러스티드 로직 데이터 검증 방법
KR101829995B1 (ko) * 2016-08-30 2018-02-19 전북대학교산학협력단 트랜잭션 간 충돌 예측에 기반한 트랜잭셔널 메모리 장치 및 트랜잭셔널 메모리 장치의 동작 방법
WO2018126065A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Decentralized data storage and processing for iot devices
US20190081793A1 (en) * 2017-09-12 2019-03-14 Kadena, LLC Parallel-chain architecture for blockchain systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049721A (ko) * 2020-09-29 2021-05-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 블록체인에 기반한 데이터 처리 방법, 장치, 기기, 저장매체 및 프로그램
KR20220133392A (ko) * 2021-03-25 2022-10-05 전북대학교산학협력단 블록체인을 이용한 영상의 무결성을 지원하는 검증 시스템 및 방법

Also Published As

Publication number Publication date
US11494403B2 (en) 2022-11-08
KR102452250B1 (ko) 2022-10-07
US20200301944A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
KR102452250B1 (ko) 오프체인 데이터 저장 방법 및 장치
US9830101B2 (en) Managing data storage in a set of storage systems using usage counters
US20230333942A1 (en) Tiered cloud storage for different availability and performance requirements
CN108446407B (zh) 基于区块链的数据库审计方法和装置
US20200210381A1 (en) Optimized content object storage service for large scale content
CN104243425B (zh) 一种在内容分发网络中进行内容管理的方法、装置及系统
US10210191B2 (en) Accelerated access to objects in an object store implemented utilizing a file storage system
JP2020038623A (ja) データを記憶するための方法、装置及びシステム
TWI483138B (zh) 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體
US10862672B2 (en) Witness blocks in blockchain applications
US20190213171A1 (en) Directory Deletion Method and Apparatus, and Storage Server
TW201423425A (zh) 資料分塊儲存至分散式伺服器的系統及方法
WO2014184857A1 (ja) 重複排除システム及びその方法
CN108614837B (zh) 文件存储和检索的方法及装置
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
US20170031959A1 (en) Scheduling database compaction in ip drives
CN110008197A (zh) 一种数据处理方法、系统及电子设备和存储介质
US9020902B1 (en) Reducing head and tail duplication in stored data
Zhou et al. Sfmapreduce: An optimized mapreduce framework for small files
US20140279983A1 (en) Providing record-level alternate-index upgrade locking
US10152269B2 (en) Method and system for preserving branch cache file data segment identifiers upon volume replication
WO2019072088A1 (zh) 一种文件管理方法、文件管理装置、电子设备及存储介质
CN107526530B (zh) 数据处理方法和设备
US8843517B1 (en) System and method for scalable high speed distributive data storage and retrieval
US9811545B1 (en) Storage of sparse files using parallel log-structured file system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant