KR102218297B1 - 원장의 증명 가능 프루닝 시스템 - Google Patents

원장의 증명 가능 프루닝 시스템 Download PDF

Info

Publication number
KR102218297B1
KR102218297B1 KR1020190093684A KR20190093684A KR102218297B1 KR 102218297 B1 KR102218297 B1 KR 102218297B1 KR 1020190093684 A KR1020190093684 A KR 1020190093684A KR 20190093684 A KR20190093684 A KR 20190093684A KR 102218297 B1 KR102218297 B1 KR 102218297B1
Authority
KR
South Korea
Prior art keywords
merkle tree
hash value
node
skew
link
Prior art date
Application number
KR1020190093684A
Other languages
English (en)
Other versions
KR20210015199A (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 KR1020190093684A priority Critical patent/KR102218297B1/ko
Priority to AU2020323807A priority patent/AU2020323807B2/en
Priority to CN202080053082.XA priority patent/CN114144775A/zh
Priority to EP20846043.6A priority patent/EP4009579A4/en
Priority to CA3146179A priority patent/CA3146179A1/en
Priority to US17/627,139 priority patent/US11949801B2/en
Priority to JP2022503829A priority patent/JP7289983B2/ja
Priority to PCT/KR2020/009588 priority patent/WO2021020794A2/ko
Publication of KR20210015199A publication Critical patent/KR20210015199A/ko
Application granted granted Critical
Publication of KR102218297B1 publication Critical patent/KR102218297B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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
    • H04L2209/38

Landscapes

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

Abstract

원장(ledger)의 증명 가능 프루닝(verifiable pruning) 시스템이 개시된다. 링크드 리스트(linked list) 방식에 따라 이전 서브 트리의 루트 해쉬(root hash)값 Rn-1을 데이터 블록(data block) Tn에 포함시키고, 상기 루트 해쉬값 Rn-1이 포함된 데이터 블록 Tn을 해쉬하여 h(Tn)을 산출하고, 산출된 h(Tn)과 이전 서브 트리의 루트 해쉬값 Rn-1을 합산한 후 해쉬하여 h(h(Tn)|Rn-1)을 산출하고, 산출된 h(h(Tn)|Rn-1)을 이진 머클 트리(binary merkle tree) 구조의 각 노드에 순차적으로 추가하여 스큐드 머클 트리(skewed merkle tree)를 확장 생성하는 스큐드 머클 트리 생성 모듈을 구성한다. 상술한 원장의 증명 가능 프루닝 시스템에 의하면, 원장 구조를 스큐드 머클 트리로 구성하여 최신의 데이터만을 저장하여 관리하고 타 노드에서 제출하는 트랜잭션의 진위를 검증하도록 구성됨으로써, 원장 크기의 증가를 최소화하여 유지할 수 있는 효과가 있다. 특히, 스큐드 머클 트리에서 업그레이드된 h-스큐드 머클 트리로 변환하여 분산 원장을 관리하도록 구성됨으로써, 시간이 갈수록 커지는 증명용 데이터(proof)의 크기를 획기적으로 줄일 수 있는 효과가 있다. 프루프의 크기 축소와 함께 수 년 전 이상의 오래된 데이터의 진위 검증을 더 적은 횟수의 연산 스텝으로도 가능하게 하여 검증 속도를 더 높일 수 있는 효과가 있다.

Description

원장의 증명 가능 프루닝 시스템{VERIFIABLE PRUNING SYSTEM OF LEDGER}
본 발명은 원장(ledger)의 프루닝(pruning) 시스템에 관한 것으로서, 구체적으로는 원장의 증명 가능 프루닝(verifiable pruning) 시스템에 관한 것이다.
기존의 블록체인(blockchain)이나 DAG(directed acyclic graph)와 같은 분산 원장은 시간이 지날수록 원장 크기가 커지게 되어 스토리지(storage) 부족이 큰 문제로 대두되고 있다.
고속화 기술이 발전할수록 스토리지 용량의 부족 현상은 더욱 큰 문제가 되고 있다.
현재 이더리움(ethereum)의 경우에는 20 트랜잭션(Tx)/초(sec), 비트코인(bitcoin)은 7 Tx/sec의 처리 속도를 갖고 있다. 이더리움의 경우에는 연간 250 GB의 데이터가 축적되고 있다.
차후에는 더 높은 트랜잭션 처리 속도도 가질 수 있다. 예를 들어, 블록체인보다 트랜잭션의 처리 속도가 훨씬 높은 DAG(directed acyclic graph)-AWTC(account-wise transaction chain) 원장 방식에서는 차후에 4 kTx/sec의 목표 설정도 가능하다.
4 kTx/sec의 트랜잭션 처리 속도에서는 하루에 생성되는 분산 원장의 크기가 0.5 kByte/Tx * 4 kTx/sec * 60 sec/min * 60 min/hour * 24 hours/day로서 172.8 GB/day가 된다.
모든 노드에서 매일 172.8 GB의 데이터가 쌓이게 된다면, 시간이 갈수록 무수히 많은 용량의 스토리지가 확보되어야 하는 문제점이 있다.
높은 트랜잭션 처리 속도를 갖는 원장 구조에서는 원장 크기의 누적적 증가에 따른 스토리지 활용도의 문제가 더욱 더 큰 문제로 불거질 수밖에 없다.
처리 속도가 낮은 이더리움(ethereum)의 경우에도 몇 년 전 시점 이전의 데이터를 삭제하는 프루닝(pruning)을 하고 있으며, 각 노드에서는 그 몇 년 전 시점 이후의 데이터만 보유하도록 하고 있다. 프루닝한 데이터는 오래된 데이터는 재단에서 별도로 관리하면서 의뢰가 들어올 때마다 배포하는 방식으로 이용되고 있다.
이에, 단순히 기존의 프루닝(pruning)만으로도 효율적인 원장 관리를 하는 데 한계가 있다고 볼 수 있다.
등록특허공보 10-1937188 등록특허공보 10-1786006
본 발명의 목적은 원장의 증명 가능 프루닝 시스템을 제공하는 데 있다.
제1 실시예에 따른 원장의 증명 가능 프루닝 시스템은, 링크드 리스트(linked list) 방식에 따라 이전 서브 트리의 루트 해쉬(root hash)값 Rn-1을 데이터 블록(data block) Tn에 포함시키고, 상기 루트 해쉬값 Rn-1이 포함된 데이터 블록 Tn을 해쉬하여 h(Tn)을 산출하고, 산출된 h(Tn)과 이전 서브 트리의 루트 해쉬값 Rn-1을 합산한 후 해쉬하여 h(h(Tn)|Rn-1)을 산출하고, 산출된 h(h(Tn)|Rn-1)을 이진 머클 트리(binary merkle tree) 구조의 각 노드에 순차적으로 추가하여 스큐드 머클 트리(skewed merkle tree)를 확장 생성하는 스큐드 머클 트리 생성 모듈을 포함하도록 구성될 수 있다.
여기서, 과거 소정의 데이터 블록 Tk가 상기 스큐드 머클 트리에 포함되어 있는지 검증하기 위해 상기 Tk와 상기 스큐드 머클 트리의 소정 루트 해쉬값 h(Ti)(여기서, k<i<=n)를 이용하여 순차적으로 해쉬값 연산을 수행하여 상기 스큐드 머클 트리의 최신 루트 해쉬값을 산출하고, 산출된 최신 루트 해쉬값이 미리 알고 있는 최신 루트 해쉬값 Rn과 일치하는지 대비하여 상기 블록 Tk의 진위 여부를 검증하는 노드 진위 증명 모듈을 더 포함하도록 구성될 수 있다.
제2 실시예에 따른 원장의 증명 가능 프루닝 시스템은, 링크드 리스트(linked list) 방식에 따라 이전 서브 트리의 루트 해쉬(root hash)값 Rn-1을 데이터 블록(data block) Tn에 포함시키고, 상기 루트 해쉬값 Rn-1이 포함된 데이터 블록 Tn을 해쉬하여 h(Tn)을 산출하고, 산출된 h(Tn)과 이전 서브 트리의 루트 해쉬값 Rn-1과 점프 링크(jump link) Rn-(베이스^오프셋)을 합산한 후 해쉬하여 h(h(Tn)|Rn-1|Rn-(베이스^오프셋))을 산출하고, 산출된 h(h(Tn)|Rn-1|Rn-(베이스^오프셋))을 이진 머클 트리(binary merkle tree) 구조의 각 노드에 순차적으로 추가하여 h-스큐드 머클 트리(hierarchical-skewed merkle tree)를 확장 생성하는 h-스큐드 머클 트리(hierarchical-skewed merkle tree) 생성 모듈을 포함하도록 구성될 수 있다.
여기서, 상기 점프 링크 Rn-(베이스^오프셋)은, 상기 h-스큐드 머클 트리 상의 소정 과거 시점의 노드 상의 루트 해쉬값이고, 상기 베이스(base)는, 소정 간격마다 점프 링크를 할당하기 위해 미리 정해진 점프 링크의 최단 거리이고, 상기 오프셋(offset)은, 현재 노드의 위치 n%베이스로 구성될 수 있다.
그리고 상기 점프 링크의 거리(dist)는, 베이스오프셋(baseoffset) 값으로 산출되도록 구성될 수 있다.
한편, 상기 h-스큐드 머클 트리 생성 모듈은, 오프셋+(베이스오프셋)*k의 노드마다 상기 점프 링크를 할당하도록 구성될 수 있다.
이때, 상기 k는 양의 정수로 구성될 수 있다.
다른 한편, 과거 소정의 데이터 블록 Tk가 상기 h-스큐드 머클 트리에 포함되어 있는지 검증하기 위해 상기 Tk와 상기 h-스큐드 머클 트리의 소정 루트 해쉬값 h(Ti)(여기서, k<i<=n)를 이용하여 순차적으로 해쉬값 연산을 수행하여 상기 h-스큐드 머클 트리의 최신 루트 해쉬값을 산출하고, 산출된 최신 루트 해쉬값이 미리 알고 있는 최신 루트 해쉬값 Rn과 일치하는지 대비하여 상기 블록 Tk의 진위 여부를 검증하는 노드 진위 증명 모듈을 더 포함하도록 구성될 수 있다.
여기서, 상기 노드 진위 증명 모듈은, 하기의 절차에 따라 상기 h-스큐드 머클 트리에 해쉬값 Ry 또는 데이터 블록 Ty가 존재하는지 여부를 증명하도록 구성되며, 1) 최신의 루트 해쉬값 Rhead로부터 과거 시점 방향의 소정 거리 내 링크(노드)를 기준으로 Ry의 시점과 같거나 미래에 있는 링크(노드) 중 가장 과거 시점에 존재하는 점프 링크 또는 링크(노드)를 검색하고, 2) 상기 검색된 가장 과거 시점에 존재하는 점프 링크 또는 링크의 해쉬값으로부터 과거 시점 방향의 소정 거리 내 링크(노드)를 기준으로 Ry의 시점과 같거나 미래에 있는 링크(노드) 중 가장 과거 시점에 존재하는 점프 링크 또는 링크(노드)를 검색하고, 3) 위 2) 과정을 상기 Ry에 도달할 때까지 반복하고, 4) 상기 Ty를 이용하여 상기 2) 및 3)에서 반복하여 검색된 점프 링크 또는 링크(노드)의 집합에 대해 차례로 미래 방향으로 향하는 루트 해쉬를 계산하고, 5) 최종 산출된 루트 해쉬값이 상기 Rhead와 동일한지 대비하고, 대비 결과 동일하면 상기 해쉬값 Ry 또는 데이터 블록 Ty가 h-스큐드 머클 트리에 존재하는 것으로 증명될 수 있다.
여기서, 상기 소정 거리는 베이스가 될 수 있다.
상술한 원장의 증명 가능 프루닝 시스템에 의하면, 원장 구조를 스큐드 머클 트리로 구성하여 최신의 데이터만을 저장하여 관리하고 타 노드에서 제출하는 트랜잭션의 진위를 검증하도록 구성됨으로써, 원장 크기의 증가를 최소화하여 유지할 수 있는 효과가 있다.
특히, 스큐드 머클 트리에서 업그레이드된 h-스큐드 머클 트리로 변환하여 원장을 관리하도록 구성됨으로써, 시간이 갈수록 커지는 증명용 데이터(proof)의 크기를 획기적으로 줄일 수 있는 효과가 있다. 프루프의 크기 축소와 함께 수 년 전 이상의 오래된 데이터의 진위 검증을 더 적은 횟수의 연산 스텝으로도 가능하게 하여 검증 속도를 더 높일 수 있는 효과가 있다.
아울러 h-스큐드 머클 트리에서는 둘 이상의 연산 경로에 의해 계산된 해쉬값을 상호 대비하여 동일 여부를 확인하도록 구성됨으로써, 새로이 추가되는 점프 링크의 위조 여부를 확인할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 원장의 증명 가능 프루닝 시스템의 블록 구성도이다.
도 2는 기존 머클 트리의 구조도이다.
도 3 및 도 4는 본 발명의 실시예에 따른 스큐드 머클 트리 생성 알고리즘의 개념도이다.
도 5 내지 도 10은 본 발명의 실시예에 따른 h-스큐드 머클 트리 생성 알고리즘의 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 발명을 실시하기 위한 구체적인 내용에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 원장의 증명 가능 프루닝 시스템의 블록 구성도이고, 도 2는 기존 머클 트리의 구조도이며, 도 3 및 도 4는 본 발명의 실시예에 따른 스큐드 머클 트리 생성 알고리즘의 개념도이고, 도 5 내지 도 10은 본 발명의 실시예에 따른 h-스큐드 머클 트리 생성 알고리즘의 개념도이다.
먼저 도 1을 참조하면, 본 발명의 실시예에 따른 원장의 증명 가능 프루닝 시스템은 스큐드 머클 트리(skewed merkle tree) 생성 모듈(110) 또는 h-스큐드 머클 트리(hierarchical-skewed merkle tree) 생성 모듈(120)과, 노드 진위 증명 모듈(130)을 포함하도록 구성될 수 있다.
일반적으로 머클 트리(merkle tree)는 해쉬 트리(hash tree)라고도 하며 암호학적 해쉬값으로 구성되는 트리 데이터 구조를 갖는다.
도 2에서 보듯이, 머클 트리는 어떤 데이터(예를 들어, H1, H2, H3, H4, H5)에 대한 해쉬값(예를 들어, H6, H7, H8, root)이 머클 트리에 포함되어 있었음을 증명하는 데 사용된다. 즉, 루트 노드(root node)까지의 경로를 따라 해쉬값을 계산하여 검증하면 된다. 최종 계산값이 루트 해쉬값과 일치하면 증명이 된다. 예를 들어, H1을 검증하려면, H2와 H8을 이용하여 경로를 따라 해쉬값을 계산 검증한 결과가 루트 해쉬값과 일치하면 증명이 된다.
그런데, 이러한 머클 트리를 이용한 증명 방식을 이용함에 있어서, 해쉬값(H6, H7, H8, root)의 데이터 크기는 작은 편이지만, 원래의 데이터(H1, H2, H3, H4, H5)는 상대적으로 그 데이터 크기가 매우 클 수밖에 없다.
원장의 증명 가능 프루닝 시스템은 이러한 기존의 일반적인 머클 트리 구조가 아닌 이로부터 업그레이드된 스큐드 머클 트리 구조와, 스큐드 머클 트리 구조에서 더 업그레이드된 h-스큐드 머클 트리 구조를 이용하여 오래된 데이터를 삭제하는 프루닝(pruning)을 하고, 아울러 이러한 업그레이드된 머클 트리 구조만으로도 오래된 데이터의 진위 여부를 완벽하게 증명할 수 있도록 구성된다.
스큐드 머클 트리 구조에서는 각 노드는 최근의 데이터 예를 들어, 하루 정도의 데이터만을 보유한 채로 모든 데이터의 진위 여부를 검증할 수 있다.
분산 원장 시스템이 하루에 4 kTx/sec의 트랜잭션 처리 속도를 갖는다고 가정하면, 하루에 축적되는 데이터인 172.8 GB의 데이터만 노드에 보관하고 나머지 이전의 데이터는 모두 프루닝하고, 프루닝된 데이터는 보관된 데이터 즉, 스큐드 머클 트리의 루트 해쉬값을 이용하여 진위 여부를 완벽하게 검증하도록 구성된다.
이에 더하여, h-스큐드 머클 트리 구조에서는 수 년 이상의 매우 오래된 데이터에 대해 스큐드 머클 트리 구조에서보다 훨씬 짧은 프루프(proof) 길이를 갖게 된다. 이와 같은 증명용 데이터(proof)의 크기는 시간이 갈수록 커지게 되지만, 본 발명에서는 프루프의 크기 자체를 축소시켜 검증에 걸리는 연산 부담을 줄이고 검증에 걸리는 시간도 줄일 수 있다.
다시 도 1 및 도 3을 참조하면, 스큐드 머클 트리 생성 모듈(110)은 데이터 블록(data block)들을 이용하여 이진 머클 트리(binary merkle tree) 구조의 스큐드 머클 트리를 생성하도록 구성될 수 있다.
스큐드 머클 트리 생성 모듈(110)는 데이터 블록(data block) Tn과 이전 서브 트리의 루트 해쉬값 Rn-1이 쌍을 이루는 이진 머클 트리(binary merkle tree) 구조의 형태를 갖는 스큐드 머클 트리를 생성하도록 구성될 수 있다.
스큐드 머클 트리의 각 노드에는 초기의 데이터 블록 T1과 루트 해쉬값 Rn-1이 저장된다.
스큐드 머클 트리 생성 모듈(110)은 각 노드의 루트 해쉬값을 h(h(Tn)|Rn-1)에 의해 산출하여 각 노드에 순차적으로 저장하여 스큐드 머클 트리를 확장 생성하도록 구성될 수 있다.
스큐드 머클 트리 생성 모듈(110)는 먼저 새로이 생성되는 데이터 블록 Tn에 링크드 리스트(linked list) 방식에 따라 그 이전 서브 트리의 루트 해쉬(root hash)값 Rn-1을 포함시키도록 구성될 수 있다.
그리고 Tn을 해쉬하여 h(Tn)을 산출하고, 그 산출된 h(Tn)과 이전 서브 트리의 루트 해쉬값 Rn-1을 합산한 후 다시 해쉬하여 h(h(Tn)|Rn-1)을 산출하도록 구성될 수 있다. 스큐드 머클 트리에는 h(h(Tn)|Rn-1)가 순차적으로 저장된다.
즉, 스큐드 머클 트리는 링크드 리스트와 이진 머클 트리의 결합이라고 볼 수 있다.
도 3에서 해쉬값 R1은 첫번째 데이터 블록인 T1과 루트 해쉬 초기값 R0를 합쳐서 해쉬한 값이다. 그리고 해쉬값 R2는 두번째 데이터 블록인 T2와 가장 최근의 루트 해쉬값 R1을 해쉬한 값이다. T2에는 링크드 리스트 방식에 의해 가장 최근의 루트 해쉬값 R1이 포함되어 있으므로, T2와 R1을 해쉬하여 R2를 산출할 수 있다. 이와 같은 방식으로 T3 데이터 블록에는 R2를 추가하여 위 과정을 반복하여 스큐드 머클 트리를 확장 생성하도록 구성된다.
한편, 도 1의 노드 진위 증명 모듈(130)은 스큐드 머클 트리 상의 과거의 특정 노드에 대해 그 진위 여부를 검증하도록 구성될 수 있다.
도 4에서 T2가 스큐드 머클 트리에 포함되어 있었는지 여부를 검증하기 위해서는 스큐드 머클 트리의 최신 데이터 블록인 T4로부터 이에 포함된 R4를 취득한다. 그리고 검증을 위해 주어진 T2로부터 그 안에 포함된 R1을 취득한다. 그리고 T2를 해쉬하여 h(T2)를 산출하고 그리고 R1과 h(T2)을 합쳐 해쉬하면 R2를 산출할 수 있다.
여기서, 만약 T3의 해쉬값 h(T3)를 미리 알고 있다면, 동일한 방식으로 R3를 계산할 수 있으며, h(T4)도 미리 알고 있다면, R3를 이용하여 R4를 계산할 수 있다. 이와 같이 계산된 R4가 위에서 취득한 R4와 동일하다면 검증 대상인 T2가 스큐드 머클 트리에 포함되어 있는 노드임을 증명할 수 있다.
즉, T2의 검증은 스큐드 머클 트리에서 h(T3)와 h(T4)만 알고 있다면 가능하게 된다.
이를 일반화하여 적용한다면, 노드 진위 증명 모듈(130)은 스큐드 머클 트리에서 특정 노드의 데이터 블록 Tk를 증명하기 위해 최신의 루트 해쉬값 Rn과 중간 단계의 데이터 블록의 해쉬값 h(Ti)(여기서, k<i<=n)만 미리 알고 있다면 Tk의 진위 증명을 할 수 있다 볼 수 있다.
이때, 중간 단계의 다른 데이터 블록을 미리 알고 있을 필요가 없으며, Tk 이전의 어떠한 데이터 블록이나 해쉬값에 대해서는 몰라도 된다.
스큐드 머클 트리 구조에서는 모든 데이터 블록을 각 노드가 직접 전부 보유하지 않아도 몇 개의 작은 해쉬값만으로도 데이터 진위 검증이 가능하다. 이는 네트워크의 부하 감소에도 많은 기여를 하게 된다.
하지만, 스큐드 머클 트리 역시 단점이 있다. 스큐드 머클 트리의 각 노드는 링크드 리스트 방식에 따라 바로 이전의 서브 트리의 해쉬값만 보유하고 있으므로, 검증 프로세스에서는 도 4에서와 같이 모든 노드에 대해 하나씩 계산하여 연산을 해야 한다. 스큐드 머클 트리는 최근의 데이터에 대한 검증에는 유리하지만, 수년 단위의 수천억 트랜잭션에 대해서는 연산 스텝이 많아져 계산 부하가 늘어나는 단점이 있다. 이를 보완하기 위해 h-스큐드 머클 트리가 이용될 수 있다.
도 1의 h-스큐드 머클 트리 생성 모듈(120)은 도 5에서 보듯이 각 노드가 직전의 루트 해쉬값을 보유하는 것에 더하여 그보다 훨씬 이전의 노드의 루트 해쉬값에 대한 정보를 더 보유하도록 구성된다. 훨씬 이전의 노드의 루트 해쉬값을 과거 트리를 참조하는 링크로서 점프 링크(jump link)라고 정의한다. 즉, 점프 링크는 과거의 루트 해쉬값이다.
도 5에서 보듯이 점프 링크는 지수함수적인 노드 간의 거리를 갖게 되는데, 검증에 걸리는 긴 연산 스텝을 생략하고 곧바로 과거 점프 링크의 데이터 블록에 대해 검증을 하는 것을 가능하게 한다. 즉, 프루프의 크기가 줄어들고 연산 스텝의 횟수도 현저하게 줄어들어 수 년 전의 노드에 대해서도 빠르게 검증할 수 있게 한다.
도 5의 점프 링크를 더 보유하는 h-스큐드 머클 트리의 각 노드값 Rn은 h(h(Tn)|Rn-1|Rn-(베이스^오프셋))으로 정리될 수 있다.
여기서, R n-(베이스^오프셋)는 과거 어느 시점의 노드의 해쉬값인 점프 링크이다.
점프 링크에서 베이스(base)는 소정 간격마다 점프 링크를 할당하기 위해 미리 정해진 점프 링크의 최단 거리이다. 베이스가 3이라면 3개의 노드 간격으로 점프 링크가 할당된다.
그리고 오프셋(offset)은 현재 노드의 위치 n을 베이스로 나눈 값의 나머지 값 즉, n%베이스이다.
그리고 현재 노드의 위치 n으로부터 점프 링크까지의 거리(dist)는 베이스오프셋(baseoffset) 값으로 산출될 수 있다.
도 5에서 베이스가 3이고 오프셋이 1인 점프 링크를 예시하고 있다.
도 5를 참조하면, 점프 링크의 거리는 베이스오프셋 즉, 31로서 3이다.
노드 R4를 살펴보면, R4의 값은 T4의 해쉬값과 바로 전의 해쉬값 R3 그리고 점프 링크 R1을 합산한 후 해쉬하여 얻어질 수 있음을 알 수 있다.
도 6은 베이스가 3이고 오프셋이 2인 점프 링크를 예시하고 있다.
도 6에서는 점프 링크의 거리가 32로서 9가 됨을 알 수 있다.
그런데, 오프셋이 2인 모든 노드에 점프 링크를 할당할 필요는 없다. 도 7과 같이 노드 위치 n에서 오프셋+(베이스오프셋)*k의 노드에만 할당할 수 있다. 여기서, k는 양의 정수이다. 위 노드 외의 노드에는 점프 링크를 할당하지 않을 수 있다.
도 7에서 보듯이 베이스가 1이고 오프셋이 1이면 1+31*k가 되어 R19, R13, R10, R7, R4, R1에 점프 링크가(초록색 노드) 할당되어 있다. 그리고 베이스가 3이고 오프셋이 2이면 2+32*k가 되어 R20, R11, R2에 점프 링크(파란색 노드)가 할당되어 있다. 베이스가 3이고 오프셋이 3이면, R57, R30, R3에 점프 링크가 할당될 것이다.
도 8은 도 7의 점프 링크의 할당이 완료된 상태를 나타내고 있다. 점프 링크의 할당은 각 오프셋이 베이스에 이를 때까지 반복 수행됨을 나타낸다.
한편, 블록의 검증은 다음과 같이 수행될 수 있다.
h-스큐드 머클 트리에서 루트 해쉬값 Rx를 갖고 있고 어느 중간 해쉬값에 액세스할 수 있는 상황에서, 데이터 블록 Ty 또는 그 상위 노드 Ry가 h-스큐드 머클 트리에 포함되어 있었는지 여부를 검증하기 위해서는 다음의 절차를 따른다.
1) 최신의 루트 해쉬값으로부터 과거 시점 방향의 적절한 거리(예를 들면, 베이스)만큼의 링크(노드)를 기준으로 Ry와 같거나 미래에 있는 가장 과거의 점프 링크 또는 일반 링크를 검색한다.
2) 검색된 과거의 점프 링크 또는 일반 링크의 해쉬값으로부터 다시 과거 시점 방향의 적절한 거리(예를 들면, 베이스)만큼을 링크(노드)를 기준으로 Ry와 같거나 미래에 있는 가장 과거의 점프 링크 혹은 일반 링크를 검색한다. 이 과정을 Ry에 도달할 때까지 반복한다.
3) Ty를 이용하여 위 검색된 링크의 집합에 대해 차례로 미래 방향으로 향하는 루트 해쉬를 계산한다. 만약 최종 계산 결과가 Rhead와 같다면 검증이 완료되어 h-스큐드 머클트리에 존재함이 증명된다.
도 9는 R59에서 시작하여 T8을 검증하기 위해 R8을 찾는 것을 예시하고 있다.
도 9를 참조하면, Rhead는 R59이며, R59에서 적절한 거리 즉, 베이스 3의 거리만큼의 링크(노드) R58, R57을 값을 참조하고, R57로부터 오프셋 3의 거리 즉 33의 점프 링크 중 R8보다는 미래에 있는 가장 과거의 링크 R30을 검색하여 조회한다.
여기서, 다시 적절한 거리 즉, 베이스 3의 거리만큼의 링크(노드) R29를 조회한다. R29에서 다시 오프셋 2의 거리 즉, 32의 점프 링크 R20과 점프 링크 R20의 점프 링크 R11을 검색하여 조회한다. 점프 링크 R11은 R29를 기준으로 오프셋 2의 점프 링크 중에서 R8보다는 미래에 있는 가장 과거의 링크가 된다.
그리고 R11에서 다시 적절한 거리 내의 링크 R10, R9, R8을 각각 검색하여 최종적으로 R8에 이르고 있다.
그리고 위 검증 대상인 T8을 이용하여 다시 미래 방향으로 루트 해쉬값을 차례대로 산출해 나간다. 최종 산출된 루트 해쉬값이 h-스큐드 머클 트리 상의 R59와 일치한다면, T8이 h-스큐드 머클 트리 상에 존재함이 증명된다.
이 과정에서 R8부터 R9, R10, R11, R20, R29, R30, R57, R58, R59에 이르기까지 총 9번의 연산 스텝이 요구된다. 그러나, 점프 링크를 이용하지 않는 경우에는 R8부터 R59까지 모든 노드를 다 연산해야 하므로 총 51 연산 스텝이 요구된다. 현저하게 연산 스텝이 줄어듬을 알 수 있으며, 원장의 크기가 커지면 상당한 연산량과 연산 시간이 감소될 수 있다.
도 10은 실제 구현 사례로서, 베이스가 10인 h-스큐드 머클 트리를 나타낸다. 점프 링크는 10오프셋이므로, 10, 102, 103으로 점프 링크의 거리가 늘어나며, 거리가 1999인 경우 28 스텝만으로도 도달이 가능하다.
이와 같이, 원장의 증명 가능 프루닝 시스템은 모든 데이터 블록을 직접 보유하지 않아도 해쉬값만으로 데이터의 검증이 완벽하게 가능하므로, 데이터의 저장량을 대폭 줄일 수 있다. 원장도 시간이 흐르면 그 크기가 엄청나게 커지기 때문에 점프 링크를 이용한 검색과 연산이 절실하게 필요하게 된다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: 스큐드 머클 트리 생성 모듈
120: h-스큐드 머클 트리 생성 모듈
130: 노드 진위 증명 모듈

Claims (7)

  1. 삭제
  2. 삭제
  3. 원장의 증명 가능 프루닝(verifiable pruning) 시스템에 있어서,
    링크드 리스트(linked list) 방식에 따라 이전 서브 트리의 루트 해쉬(root hash)값 Rn-1을 데이터 블록(data block) Tn에 포함시키고, 상기 루트 해쉬값 Rn-1이 포함된 데이터 블록 Tn을 해쉬하여 h(Tn)을 산출하고, 산출된 h(Tn)과 이전 서브 트리의 루트 해쉬값 Rn-1과 점프 링크(jump link) Rn-(베이스^오프셋)을 합산한 후 해쉬하여 h(h(Tn)|Rn-1|Rn-(베이스^오프셋))을 산출하고, 산출된 h(h(Tn)|Rn-1|Rn-(베이스^오프셋))을 이진 머클 트리(binary merkle tree) 구조의 각 노드에 순차적으로 추가하여 h-스큐드 머클 트리(hierarchical-skewed merkle tree)를 확장 생성하는 h-스큐드 머클 트리(hierarchical-skewed merkle tree) 생성 모듈을 포함하고,
    상기 점프 링크 Rn-(베이스^오프셋)은,
    상기 h-스큐드 머클 트리 상의 소정 과거 시점의 노드 상의 루트 해쉬값이며,
    상기 베이스(base)는,
    소정 간격마다 점프 링크를 할당하기 위해 미리 정해진 점프 링크의 최단 거리이고,
    상기 오프셋(offset)은,
    현재 노드의 위치 n%베이스이고,
    상기 점프 링크의 거리(dist)는,
    베이스오프셋(baseoffset) 값으로 산출되도록 구성되는 것을 특징으로 하는 원장의 증명 가능 프루닝 시스템.
  4. 제3항에 있어서, 상기 h-스큐드 머클 트리 생성 모듈은,
    오프셋+(베이스오프셋)*k의 노드마다 상기 점프 링크를 할당하도록 구성되며,
    상기 k는 양의 정수로 구성되는 것을 특징으로 하는 원장의 증명 가능 프루닝 시스템.
  5. 제3항에 있어서,
    과거 소정의 데이터 블록 Tk가 상기 h-스큐드 머클 트리에 포함되어 있는지 검증하기 위해 상기 Tk와 상기 h-스큐드 머클 트리의 소정 루트 해쉬값 h(Ti)(여기서, k<i<=n)를 이용하여 순차적으로 해쉬값 연산을 수행하여 상기 h-스큐드 머클 트리의 최신 루트 해쉬값을 산출하고, 산출된 최신 루트 해쉬값이 미리 알고 있는 최신 루트 해쉬값 Rn과 일치하는지 대비하여 상기 블록 Tk의 진위 여부를 검증하는 노드 진위 증명 모듈을 더 포함하도록 구성되는 것을 특징으로 하는 원장의 증명 가능 프루닝 시스템.
  6. 제5항에 있어서, 상기 노드 진위 증명 모듈은,
    하기의 절차에 따라 상기 h-스큐드 머클 트리에 해쉬값 Ry 또는 데이터 블록 Ty가 존재하는지 여부를 증명하도록 구성되며,
    1) 최신의 루트 해쉬값 Rhead로부터 과거 시점 방향의 소정 거리 내 링크(노드)를 기준으로 Ry의 시점과 같거나 미래에 있는 링크(노드) 중 가장 과거 시점에 존재하는 점프 링크 또는 링크(노드)를 검색하고,
    2) 상기 검색된 가장 과거 시점에 존재하는 점프 링크 또는 링크의 해쉬값으로부터 과거 시점 방향의 소정 거리 내 링크(노드)를 기준으로 Ry의 시점과 같거나 미래에 있는 링크(노드) 중 가장 과거 시점에 존재하는 점프 링크 또는 링크(노드)를 검색하고,
    3) 2) 과정을 상기 Ry에 도달할 때까지 반복하고,
    4) 상기 Ty를 이용하여 상기 2) 및 3)에서 반복하여 검색된 점프 링크 또는 링크(노드)의 집합에 대해 차례로 미래 방향으로 향하는 루트 해쉬를 계산한다.
    5) 최종 산출된 루트 해쉬값이 상기 Rhead와 동일한지 대비하고, 대비 결과 동일하면 상기 해쉬값 Ry 또는 데이터 블록 Ty가 h-스큐드 머클 트리에 존재하는 것으로 증명되는 것을 특징으로 하는 원장의 증명 가능 프루닝 시스템.
  7. 제6항에 있어서, 상기 소정 거리는,
    베이스인 것을 특징으로 하는 원장의 증명 가능 프루닝 시스템.
KR1020190093684A 2019-08-01 2019-08-01 원장의 증명 가능 프루닝 시스템 KR102218297B1 (ko)

Priority Applications (8)

Application Number Priority Date Filing Date Title
KR1020190093684A KR102218297B1 (ko) 2019-08-01 2019-08-01 원장의 증명 가능 프루닝 시스템
AU2020323807A AU2020323807B2 (en) 2019-08-01 2020-07-21 Ledger verifiable-pruning system
CN202080053082.XA CN114144775A (zh) 2019-08-01 2020-07-21 总账可验证修剪系统
EP20846043.6A EP4009579A4 (en) 2019-08-01 2020-07-21 LEDGER VERIFIABLE PRUNING SYSTEM
CA3146179A CA3146179A1 (en) 2019-08-01 2020-07-21 Ledger verifiable-pruning system
US17/627,139 US11949801B2 (en) 2019-08-01 2020-07-21 Ledger verifiable-pruning system
JP2022503829A JP7289983B2 (ja) 2019-08-01 2020-07-21 元帳の証明可能プルーニングシステム
PCT/KR2020/009588 WO2021020794A2 (ko) 2019-08-01 2020-07-21 원장의 증명 가능 프루닝 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190093684A KR102218297B1 (ko) 2019-08-01 2019-08-01 원장의 증명 가능 프루닝 시스템

Publications (2)

Publication Number Publication Date
KR20210015199A KR20210015199A (ko) 2021-02-10
KR102218297B1 true KR102218297B1 (ko) 2021-02-24

Family

ID=74230729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190093684A KR102218297B1 (ko) 2019-08-01 2019-08-01 원장의 증명 가능 프루닝 시스템

Country Status (8)

Country Link
US (1) US11949801B2 (ko)
EP (1) EP4009579A4 (ko)
JP (1) JP7289983B2 (ko)
KR (1) KR102218297B1 (ko)
CN (1) CN114144775A (ko)
AU (1) AU2020323807B2 (ko)
CA (1) CA3146179A1 (ko)
WO (1) WO2021020794A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220171770A1 (en) * 2020-11-30 2022-06-02 Capital One Services, Llc Methods, media, and systems for multi-party searches

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090328218A1 (en) 2006-08-28 2009-12-31 Mitsubishi Electric Corporation Data processing system, data processing method, and program
JP5753273B2 (ja) 2011-10-14 2015-07-22 株式会社日立製作所 データの真正性保証方法、管理計算機及び記憶媒体
US20140245020A1 (en) * 2013-02-22 2014-08-28 Guardtime Ip Holdings Limited Verification System and Method with Extra Security for Lower-Entropy Input Records
KR101786006B1 (ko) 2016-01-29 2017-10-17 한국과학기술원 머클 트리 기반 메모리 무결성 검증 방법 및 장치
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
US10447478B2 (en) * 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
CN110024357B (zh) * 2016-09-21 2022-01-21 锐思拓公司 使用分布式分类帐进行数据处理的系统和方法
KR101835520B1 (ko) * 2016-12-29 2018-04-19 주식회사 코인플러그 밸런스 데이터베이스를 관리하여 통합 포인트 서비스를 제공하는 방법 및 이를 이용한 지원 서버
US11281644B2 (en) * 2017-07-28 2022-03-22 Hitachi, Ltd. Blockchain logging of data from multiple systems
EP3665858B1 (en) 2017-08-09 2022-05-25 Visa International Service Association Verification of interactions system and method
GB201720946D0 (en) * 2017-12-15 2018-01-31 Nchain Holdings Ltd Computer-implemented system and method
KR101937188B1 (ko) 2018-02-06 2019-04-09 주식회사 코인플러그 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Skewed Merkle Trees, CodeChain, https://medium.com/codechain/skewed-merkle-tree-259b984acc0c(2018.06.21.) 1부.*
Vig, Saru, et al. "Customizing skewed trees for fast memory integrity verification in embedded systems." 2017 IEEE Computer Society Annual Symposium on VLSI (ISVLSI). IEEE(2017.) 1부.*

Also Published As

Publication number Publication date
EP4009579A2 (en) 2022-06-08
WO2021020794A3 (ko) 2021-03-25
CA3146179A1 (en) 2021-02-04
JP2022540959A (ja) 2022-09-20
JP7289983B2 (ja) 2023-06-12
US11949801B2 (en) 2024-04-02
KR20210015199A (ko) 2021-02-10
WO2021020794A2 (ko) 2021-02-04
AU2020323807A1 (en) 2022-02-17
AU2020323807B2 (en) 2023-08-31
CN114144775A (zh) 2022-03-04
EP4009579A4 (en) 2023-08-16
US20220278858A1 (en) 2022-09-01

Similar Documents

Publication Publication Date Title
CN110602148B (zh) 一种区块的状态树的生成和链上数据验证的方法及装置
CN110688377B (zh) 一种更新状态默克树的方法及装置
WO2021032138A1 (zh) 一种基于区块链系统的共识方法、装置及系统
CN111008201B (zh) 并行修改和读取状态树的方法和装置
CN110033243B (zh) 基于区块链智能合约的主链存证方法、系统及存储介质
Kapoor et al. Algorithms for enumerating all spanning trees of undirected and weighted graphs
CN109542979B (zh) 一种区块链系统快速同步及简精数据存储的方式
CN111971931B (zh) 在区块链网络中验证交易的方法以及构成该网络的节点
US20200226113A1 (en) Pruning of authentication trees
WO2007048015B1 (en) Method and apparatus for a restartable hash in a trie
CN110309173B (zh) 合约数据的记录方法、装置及区块链节点、存储介质
KR102218297B1 (ko) 원장의 증명 가능 프루닝 시스템
Duarte et al. Improved heuristics for the regenerator location problem
Ribeiro et al. Efficient heuristics for the workover rig routing problem with a heterogeneous fleet and a finite horizon
US20220407728A1 (en) Systems and methods for processing blockchain transactions
CN109634959A (zh) 一种区块索引方法及区块索引装置
CN110692078B (zh) 基于区块链的交易数据处理方法、设备和存储介质
CN111209341A (zh) 区块链的数据存储方法、装置、设备及介质
RU2790181C1 (ru) Система верифицируемого отсечения реестров
WO2024066007A1 (zh) 区块链系统中的交易执行方法、共识节点和区块链系统
CN104143152B (zh) 一种业务关系二叉树节点修剪方法及装置
CN106777178A (zh) 一种手机号码的存储方法及查询方法
CN114297412B (zh) 一种面向规则知识图谱的可信评估方法
Smith et al. Dynamic Merkle B-tree with efficient proofs
US12007972B2 (en) Systems and methods for processing blockchain transactions

Legal Events

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