KR20210029116A - 특정 네트워크에서 데이터를 보관하고 저장하기 위해 데이터 세트를 처리하는 스파스 머클 트리 방법 및 시스템 - Google Patents
특정 네트워크에서 데이터를 보관하고 저장하기 위해 데이터 세트를 처리하는 스파스 머클 트리 방법 및 시스템 Download PDFInfo
- Publication number
- KR20210029116A KR20210029116A KR1020200112809A KR20200112809A KR20210029116A KR 20210029116 A KR20210029116 A KR 20210029116A KR 1020200112809 A KR1020200112809 A KR 1020200112809A KR 20200112809 A KR20200112809 A KR 20200112809A KR 20210029116 A KR20210029116 A KR 20210029116A
- Authority
- KR
- South Korea
- Prior art keywords
- rim
- data
- key
- hash value
- hash
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
- H04L9/3239—Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위한 데이터 세트를 처리하는 컴퓨터 실행 방법에 관한 것으로, 이 방법은 스파스 머클 트리를 실행한다. 이 방법은
- 적어도 하나의 해시 값을 주어진 비트 폭의 림 키(L, A)의 여러 섹션으로 분할하는 단계; 및
- 스파스 머클 트리의 아카이브 리프인 리프 림 키(L)와 하위 트리(SMT) 생성을 지원하는 부모 림 키(A)를 결정하는 단계를 포함한다.
- 적어도 하나의 해시 값을 주어진 비트 폭의 림 키(L, A)의 여러 섹션으로 분할하는 단계; 및
- 스파스 머클 트리의 아카이브 리프인 리프 림 키(L)와 하위 트리(SMT) 생성을 지원하는 부모 림 키(A)를 결정하는 단계를 포함한다.
Description
본 발명은 데이터베이스, 특히 트랜잭션 데이터베이스에서, 데이터 저장 관리 분야에 관한 것이다. 트랜잭션은 블록체인 거래와 같은 암호 화폐와 관련될 수 있다. 본 발명은 특히 특정 네트워크에서 트랜잭션을 저장하고 보관하는 것에 관한 것이다
트랜잭션의 횟수가 많고 트랜잭션 보안이 높아야 한다. 이는 데이터의 안전하고 최적의 저장 문제를 제기한다.
종래 기술에서 제공된 한 가지 해결책은 머클 트리를 사용하는 것이다. 머클 트리를 사용하면 데이터 세트를 암호화 방식으로 실시할 수 있다. 세트의 각 데이터 조각은 먼저 해시된 다음 루트 노드가 얻어질 때까지 모든 데이터와 트리까지 다시 해싱이 수행된다. 도 1에서 트랜잭션 (TA, TS, TX, TZ)과 같은 각 데이터는 해시되어서 트랜잭션 (H(TA), H(TS), H(TX), H(TZ)의 해시를 얻는다. 다음으로, 연속 해시 ((H(TA), H(TS))를 함께 해시하여 다른 해시 값 (H(H(TA)||H(TS))… 등을 얻으며, 루트 노드(H(H((H(TA)||H(TS))||H(H(TX)||H(TZ )))))에 도달할 때 때지 계속한다.
이 트리의 루트는 해시이다. 머클 증명(Merkle proof)이라고 불리는 것을 보여주는 데 사용할 수 있는데, 즉, 일부 콘텐츠가 트리의 일부임을 증명하는 것이다. 이를 일반적으로 증명 포함(Proving Inclusion)이라고 한다. 예를 들어, TA가 트리의 일부임을 증명하기 위해서, TA의 형제를 사용하여 모든 트리를 다시 계산하고 항목이 일치하는지 확인할 수 있다. 실제로 H(TS) 및 H(H(TX)||H(TZ))를 사용하면 원래 루트 해시를 쉽게 다시 계산하고 TA가 트리의 일부임을 증명할 수 있다. 이 항목에는 해당 거래를 안전하고 효율적으로 저장 및/또는 검색하기 위한 해당 거래에 대한 정보가 포함될 수 있다. 머클 트리를 사용하면 전체 트리 또는 전체 데이터 세트를 저장하고 다시 제공할 필요가 없기 때문에 마이크로 컨트롤러 등의 대역폭 및 처리 활동을 절약할 수 있다.
실제로, 머클 트리는 데이터가 동일한지 확인하기 위해 두 장치 간에 전송하는 데 필요한 정보를 줄인다. 두 컴퓨터 장치 간에 정보의 각 바이트를 추출하고 확인하는 대신 데이터 모음에서 머클 트리를 계산한 다음 머클 트리를 탐색하고 머클 트리의 해시값을 비교한다.
그러나, 머클 트리에는 항목이 트리의 일부가 아님을 증명할 가능성이 없다. 이를 일반적으로 증명 미포함(Proving Non-Inclusion)이라고 한다.
종래 기술에서 제공되는 한 가지 해결책은 스파스 머클 트리(Sparsed Merkle trees)를 사용하는 것이다. 스파스(Sparsed Merkle trees)는 머클 트리와 비슷하지만 포함된 데이터가 인덱싱되고 각 데이터 포인트가 데이터 포인트의 인덱스에 해당하는 리프(leaf)에 배치된다. 도 1의 예시에서, 모든 데이터 포인트는 예를 들어 도 1에서 (TA, TS, TX, TZ) 대신 (A, B, C, D)와 같은 세로 좌표 값을 갖게 된다. TC가 트리의 일부인지 여부를 증명하기 위하여, 추가 검사는 예를 들어 TD와 비교하여 세로 좌표 인덱스에 있다.
본 발명의 목적은 트랜잭션에 대한 정보의 처리 효율성을 개선하기 위한 추가 수단, 특히 특정 데이터베이스에서의 저장을 제공하는 것이다. 보다 구체적으로는, 본 발명의 목적은 안전한 분산 방식으로 트랜잭션의 제거 및 추가를 효율적으로 처리하는 것이다. 이것은 구조화된 방식으로 인해 해시 키를 정렬/순서화하기 때문에 인터 알리아(interallia)이다. 이를 통해 각 트랜잭션 아카이브(archive)를 빠르게 검색할 수 있다.
이러한 목적을 충족시키기 위해, 본 발명은 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위한 데이터 세트를 처리하는 컴퓨터 구현 방법에 관한 것으로, 이 방법은 스파스 머클 트리(Sparsed Merkle trees)를 구현하며, 다음 단계를 포함한다.
- 데이터를 암호화 해싱하여 데이터의 해시 값을 얻는 단계;
- 해당되는 경우, 데이터의 연속 해시 값을 암호화 해싱하여 첫 번째 단계의 결합된 해시 값을 얻는 단계;
- 해당되는 경우, 첫 번째 단계의 결합된 해시 값을 암호학 해싱하여 두 번째 단계의 결합된 해시 값을 얻는 단계;
- ...
- 루트 해시값을 얻을 때까지 하는 단계.
첫 번째 양상(aspect)에 있어서, 컴퓨터 구현 방법은 아래 단계를 특징으로 한다.
- 적어도 하나의 해시 값을 주어진 비트-폭(bit-width)의 림-키(rim-keys)의 다중 섹션으로 나누는 단계; 및
- 스파스 머클 트리의 아카이브 리프(archive leaves)인 리프 림-키(leave rim-key), 및 하위 트리(subtree) 생성을 지원하는 부모 림 키(parent rim keys)를 결정하는 단계.
바람직하게는, 이 방법은 루트 해시 값이 획득되지 않는 한 모든 해시 값에 대해 서브 트리를 만드는 종래 기술의 방법과는 반대로 서브 트리의 수를 제한할 수 있다. 이렇게 하면 각 하위 트리가 해시 계산이기 때문에 데이터 처리에 사용되는 처리 계산과 메모리가 줄어든다.
또한, 아카이브(archive)의 해시 키는 아카이브의 해시이므로 림 키(rim-keys)를 통해 빠른 트리 검색을 수행할 수 있다.
독립적으로 또는 기술적으로 가능한 조합으로 결합된 방법의 다른 양상에 따르면:
- 상기 방법은 아카이브된 데이터가 부모 림 키와 동일한 림 키를 갖는 경우 부모 림 키에 하위 트리를 생성하는 단계를 포함하고/또는;
- 상기 방법은 다수의 해시 값, 바람직하게는 모든 해시 값을 주어진 비트 폭의 림 키의 다수 섹션으로 분할하는 단계를 포함하고/또는;
- 적어도 하나의 하위 트리는 지정된 인덱스 해시의 벡터이고/또는;
- 상기 인덱스는 각각의 림 키이며/또는;
- 상기 스파스 머클 트리(Sparsed Merkle Tree)는 해시의 벡터로 구성되며/또는;
- 상기 데이터는 트랜잭션이다.
본 발명은 또한 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위한 데이터 세트를 처리하기 위한 시스템에 관한 것으로, 이 시스템은 본 발명에 따른 방법의 단계를 수행하기 위한 수단을 포함한다.
보다 일반적으로, 본 발명은 또한 특정 네트워크에서 동일한 데이터를 저장하고 보관하기 위해 데이터 세트를 처리하는 시스템에 관한 것으로, 시스템은 스파스 머클 트리를 구현하며, 시스템은 다음을 포함한다.
- 데이터의 해시 값을 얻기 위해 데이터를 암호화 해싱하는 수단;
- 제1 단계의 결합된 해시 값을 얻기 위해 데이터의 연속적인 해시 값을 암호화 해싱하는 수단;
- 제2 단계의 결합된 해시 값을 얻기 위해 제1 단계의 결합된 해시 값을 암호화 해싱하는 수단;
- ...
- 루트 해시 값을 얻기 위한 수단.
첫 번째 양상에 따르면, 상기 시스템은 아래를 특징으로 한다.
- 적어도 하나의 해시 값을 주어진 비트-폭의 림-키의 다중 섹션으로 나누는 수단; 및
- 스파스 머클 트리의 아카이브 리프인 리프 림-키 및 하위 트리 생성을 지원하는 부모 림 키를 결정하기 위한 수단.
방법에 대해서 상술한 이점은 방법을 구현하는 시스템에도 적용된다.
독립적으로 취하거나 기술적으로 가능한 조합으로 결합된 시스템의 다른 양상에 따르면:
- 시스템은 아카이브된 데이터가 부모 림 키와 동일한 림 키를 갖는 경우 부모 림 키에 하위 트리를 생성하는 수단을 포함하며/또는;
- 시스템은 복수의 해시 값, 바람직하게는 모든 해시 값을 주어진 비트-폭의 림-키의 다중 섹션으로 분할하기 위한 수단을 포함하며/또는;
- 적어도 하나의 하위 트리는 지정된 인덱스 해시의 벡터이며/또는;
- 상기 인덱스는 각각의 림 키이며/또는;
- 상기 스파스 머클 트리(Sparsed Merkle Tree)는 해시 벡터로 구성된다.
본 발명은 또한 특정 네트워크에서 본 발명에 따른 방법을 통해 또는 본 발명에 따른 시스템에 의해 처리된 데이터 세트를 저장하고 보관하기 위한 수단을 포함하는 데이터베이스에 관한 것이다.
보다 일반적으로, 본 발명은 또한 특정 네트워크에서 데이터 세트를 저장하고 보관하기위한 데이터베이스에 관한 것으로, 스파스 머클 트리를 구현하며,
- 데이터를 암호화 해싱하여 얻은 데이터의 해시 값;
- 데이터의 연속적인 해시 값의 일부를 암호화 해싱하여 얻은 제1 단계의 결합된 해시 값;
- 제1 단계의 결합된 해시 값 중 일부를 암호화 해싱하여 얻은 제2 단계의 결합된 해시 값;
- ...
- 루트 해시 값을 포함하며
- 적어도 하나의 해시 값을 림 키의 여러 섹션으로 나눈 주어진 비트-폭의 림-키; 및
그 중에는 스파스 마클 트리(Sparsed Merkle Tree)의 아카이브 리프인 리프 림-키(leave rim-key) 및 하위 트리 생성을 지원하는 부모 림 키가 있는 것을 특징으로 한다.
방법과 시스템에 대해 상술한 이점은 해당 데이터를 포함하는 데이터베이스에도 적용된다.
본 발명의 또 다른 목적은 하나 이상의 중앙 유닛, 특히 하나 이상의 컴퓨터 중앙 유닛, 및 트랜잭션을 구현하는 추가 커맨드 유닛, 특히 컴퓨터 커맨드 유닛을 포함하는 네트워크를 포함하며, 특히 상기 중앙 유닛은 본 발명에 따른 시스템 및 본 발명에 따른 데이터베이스를 포함한다.
상술한 기술적 해결책에 의해서, 본 발명은
도 1은 종래 기술에 따른 방법에서 스파스 머클 트리(Sparsed Merkle Tree)의 개략도이다.
도 2A는 본 발명의 실시예에 따른 방법에서 섹션 계층적 스파스 머클 트리의 예시의 개략도이다.
도 2B는 도 2A에 예시된 방법의 스파스 머클 트리 벡터의 개략도이다.
도 2C는 본 발명의 일실시예에 따른 시스템의 예시이다.
도 3A는 해시 값을 갖는 트랜잭션 리스트의 개략도이다.
도 3B는 도 3A의 트랜잭션이 계층적 서브 트리에서 아카이브되는 방법의 예시 개략도이다.
도 4는 본 발명의 일실시예에 따른 데이터베이스의 그래픽 예시이다.
도 2A는 본 발명의 실시예에 따른 방법에서 섹션 계층적 스파스 머클 트리의 예시의 개략도이다.
도 2B는 도 2A에 예시된 방법의 스파스 머클 트리 벡터의 개략도이다.
도 2C는 본 발명의 일실시예에 따른 시스템의 예시이다.
도 3A는 해시 값을 갖는 트랜잭션 리스트의 개략도이다.
도 3B는 도 3A의 트랜잭션이 계층적 서브 트리에서 아카이브되는 방법의 예시 개략도이다.
도 4는 본 발명의 일실시예에 따른 데이터베이스의 그래픽 예시이다.
본 발명은 이제 본 발명을 한정하지 않는 실시예의 설명 및 첨부된 도면에 기초하여 상세하게 제시될 것이다.
본 발명은 특히 암호 화폐와 관련된 것과 같은 트랜잭션의 데이터베이스를 위한 데이터베이스의 관리 및 저장에 관한 것이다. 본 발명은 블록체인 트랜잭션 등에서 적용된다.
본 발명은 특히 특정 네트워크에서 트랜잭션을 저장하고 보관하는 것에 관한 것이다.
본 발명은 데이터를 안전하고 최적으로 저장하기 위해 먼저 많은 수의 트랜잭션들을 안전한 방식으로 관리하는 것을 목표로 한다.
본 발명은 또한 종래 기술의 해결책의 결여를 극복하고, 특히 트랜잭션에 대한 정보 처리의 효율성을 개선하고, 특히 특정 데이터베이스에 저장하는 것을 목표로 한다.
보다 구체적으로, 본 발명은 안전한 분산 방식으로 트랜잭션을 효율적으로 제거하고 추가하는 것을 목표로 한다. 보다 일반적으로 본 발명은 CRUD(create, read, update, delete) DHT (Distribute Hash Table) 시스템에 관한 것입니다.
본 발명은 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위해 데이터 세트를 처리하는 컴퓨터 구현 방법에 관한 것이다. 이 방법은 스파스 머클 트리(Sparsed Merkle Tree) 구현을 기반으로 한다. 그 자체로 스파스 머클 트리는 당업자에게 공지되어 있다. 따라서, 설명은 종래 기술의 상세한 특징이 아닌 혁신적인 특징에 초점을 맞출 것이다.
본 발명은 랜덤 트랜잭션의 분산 아카이브(Distribute Archive of Random Transactions)를 가능하게 하는 컴퓨터 기반 시스템(1a)에서 구현된다. 따라서 시스템을 DART 시스템이라고 하고 방법을 DART 방법이라고 할 수 있다.
본 발명의 방법은 데이터의 해시 값을 얻기 위해 데이터를 암호화 해싱하는 단계를 포함한다. 그런 다음 얻은 해시 값도 해시되며 루트 해시 값을 얻을 때까지 계속된다. 바람직하게는 해시된 스파스 마클 트리 트리의 연속적인 해시 값이다. 획득된 해시 값은 제1 단계의 결합된 해시 값으로 표시될 수 있다. 그런 다음 제2 단계의 결합 된 해시 값 등을 얻기 위해 유사한 단계가 구현되며, 루트 해시 값을 얻을 때까지 계속된다.
데이터는 특히 트랜잭션과 관련이 있다. 특히 각 트랜잭션은 트랜잭션 T 데이터의 암호화 해시를 사용하여 분산 해시 테이블로 DART 시스템에 저장된다. 이는 각 트랜잭션이 고유한 해시 값 h로 식별됨을 의미한다. 상기 트랜잭션은 해시의 숫자 값을 통해 테이블 순서로 입력된다.
바람직한 실시예에서, h 값은 다음 공식에 의해 얻어질 수 있다 :
방정식 1
여기에서,
H 는 암호화 해시 함수이고,
N 은 해시 값 h 의 비트 수를 나타낸다.
다음으로,
방정식 2
여기서 b i 는 해시 값 h의 i 번째 비트이다.
제1 양상(aspect)에 따르면, 본 발명의 방법은 해시 값 중 적어도 하나를 주어진 비트-폭의 림-키(L, A)의 다중 섹션으로 분할하는 단계를 포함한다. 이 방법은 스파스 머클 트리의 아카이브 리프(archive leaves)인 리프 림-키(leave rim-keys) L 및 서브 트리(SMT)의 생성을 지원하는 부모 림 키(parent rim keys) A를 결정하는 단계를 더 포함한다.
바람직하게는,이 방법은 스파스 머클 트리(Sparsed Merkle tree)에서 생성되는 서브 트리의 수를 제한할 수 있다. 실제로, 루트 해시 값이 획득되지 않는 한 모든 해시 값에 대해 서브 트리를 만드는 종래 기술의 방법과는 달리, 본 발명에서는 일부 림-키(rim keys)만이 리프(leaves)가 되고 나머지는 서브 트리의 베이스가 된다. 이로 인해 데이터 처리에 사용되는 계산 및 메모리가 줄어든다.
특히, 해시-테이블은 m 등분되어서 섹션 S로 분할된다. 각 섹션은 바람직한 실시예의 다음 공식에서와 같이 제한된 범위 내에서 순서화된 해시 값 리스트를 포함하여 섹션은 림(rims)이라는 불리는 것으로 나누어지는 머클 트리의 계층 구조를 구축한다.
방정식 3
본 발명의 방법은 스파스 머클 트리의 아카이브 리프(archive leaves)인 리프 림-키(leave rim-keys) 및 서브 트리의 생성을 지원하는 부모 림 키(parent rim keys)를 결정하는 단계를 더 포함한다.
특히 림의 비트-폭은 예를 들어 K 이다. 트리의 각 리프(leave)는 림-키라고하는 림-인덱스를 통해 표현된다. 최대 분기 수는 k로 정의되므로 다음과 같다.
방정식 4
섹션 비트-너비(sections bit-width) M 이 K 의 기본 배수 C 번호로 선택되면, 림 키(rim key)는 다음과 같이 표현될 수 있다:
방정식 5
상기 섹션은 첫 번째 C 림-키로 표현할 수 있다.
방정식 6
이로부터 해시 값 h 는 다음과 같이 구성될 수 있다.
방정식 7
도 2A 및 2B는 본 발명의 실시예를 설명하기 위해 사용될 수 있다. 이는 섹션 계층 구조의 스파스 머클 트리의 예시를 보여준다. 림(rims)은 림 C의 경우 R_C, 다음 림의 경우 R_C+1로 표시된다.
트랜잭션이 DART 시스템에 저장되면 해시 값 h 가 계산되고 해시 값은 림-키 (L, A)의 섹션들로 분리된다.
바람직한 실시예에 따르면, 스파스 머클 트리는 해시의 벡터를 포함한다. 보다 구체적으로, 각 하위-트리는 벡터 테이블로 표현되며 벡터에 대한 인덱스는 각 림의 림-키이다. 해시의 벡터는 본 발명의 구현에서 매우 효율적인 수단이다.
실제로 하위 트리는 계산 속도가 빠른 벡터의 작은 해시이다. 그리고 더 빠른 벡터는 여분(spares)(대부분의 null 값)이다. 트리에서 깊숙이 갈수록 하위 트리 벡터는 더 희소하다(sparsed). 현재 실시에서 림(rim) 3에서 작업하고 있는데, 림(rim) 3에는 1006 개 이상의 아카이브에서 널(null) 요소가 거의 없다.
일실시예에 따르면, 상기 방법은 아카이브된 데이터(archived data)가 부모 림-키 A와 동일한 림-키를 갖는 경우 부모 림-키 A에 서브 트리(SMT)를 생성하는 단계를 포함한다.
특히, 기존의 아카이브된 트랜잭션에 동일한 림-키가 있는 경우에 하위-트리는 생성되어야 한다.
림-키가 기존 아카이브 트랜잭션과 다르면 상기 아카이브는 현재 림-키와 함께 벡터-테이블에 저장된다. 이는 하위 트리 수를 제한하는 효율적인 방법이다.
또한, 아카이브된 데이터에서 해시를 계산할 수 있다. 구현에서 벡터 요소는,
- 서브 트리 분기를 포함하는 해시(a hash of the including subtree branch); 또는
- 아카이브된 데이터(the archived data)의 어느 하나를 포함할 수 있다.
하나의 완전한 섹터에 저장할 최소 노드 수를 갖는 것이 바람직하다.
구현에서, 벡터에는 디스크의 레코드를 가리키는 인덱스 포인터도 포함된다. 섹터 림(Sector rims)은 메모리에 저장되고 모든 섹터 하위 트리는 로컬 디스크 공간에 저장된다.
도 2A에는, 계층적 트리 구조가 표시된다. 화이트 박스 A 는 스파스 머클 트리의 해시 값이다. 해치된 박스는 아카이브 리프 L 이다. 원은 스파스 머클 트리의 하위 트리이다. 도 2B는 SMT 벡터를 나타낸다.
도 3A 및 3B에 설명된 예시는 트랜잭션의 리스트가 트리 구조로 아카이브되는 방법을 나타낸다.
대부분의 최신 컴퓨팅은이 다중 8 비트(바이트)이기 때문에 이 실시예에서 k=8 및 C=2를 기반으로 한다.
트랜잭션 리스트가 도 3A에 나열된 해시 값과 함께 제공된다고 가정한다. 도면에서, 화살표는 브랜치(branch) 또는 아카이브(Archive)를 가리킨다. 림 분할이면 브랜치이고, 아니면 아카이브이다. 아카이브는 리프(leave)이다. 도면에서 브릭-대시 기호(brick-dashed symbol)는 브랜치 해시를 의미한다. 아무것도 없으면 아카이브에서 해시가 아카이브의 데이터에서 계산됨을 의미한다.
도 3B는 트랜잭션 아카이브가 트리 구조에 배치되는 위치를 나타낸다.
도 3B에서, 빗금 친 사각형은 하위-브랜치의 SMT의 해시 값이며; 다른 사각형은 브랑스(Brance) 림 키이다. 하위-트리 벡터 요소는 브랑스(Brance) (하위 트리를 가리킴) 또는 아카이브의 데이터를 포함하는 아카이브를 포함할 수 있다. 림은 첫 번째 림의 경우 R_0, 다음 림의 경우 R_1로 표시된다.
상술한 바와 같이 트리는 첫 번째 C 림으로 정의된 섹션으로 나누어진다. 섹션 림에서는 트랜잭션 리프(leave)는 허용되지 않는다. 트랜잭션은 C보다 큰 림 내에 보관되어야 한다. 이 규칙을 사용하면 데이터베이스를 분산 데이터베이스로 쉽게 분할할 수 있다.
전체 데이터베이스는 도 4와 같이 원형 구조로 설명할 수 있다. 각각의 검은색 사각형은 도 2A에 표시된 구조를 나타내고 데이터의 모든 중앙은 전체 데이터베이스에 대한 머클 트리를 나타낸다.
데이터베이스는 해시-값 h가 해시 테이블에 대한 키 인덱스 키인 대형 해시 테이블로 흐르는 방식으로 컴퓨터 노드 CN 간에 분산될 수 있다.
해시-테이블은 네트워크를 통해 연결된 컴퓨터 노드 간에 분산되며, 각 노드는 DART 각도라고 하는 섹션의 샘플을 관리한다.
해시의 숫자 값이 원을 중심으로 정렬되기 때문이다.
예컨대, 256 해시의 최대 값은 2256-1이다.
숫자는 2256-1에서 0으로 돌아간다. 이것은 원에 그릴 수 있음을 의미한다.
섹션은 데이터의 중복성과 보안을 유지하기 위해 Q 개 이상의 노드에서 관리된다.
각 노드는 노드 섹션 각도 내에서 데이터베이스 섹션을 유지해야 한다. 이는 트랜잭션을 추가 및 제거하고, 섹션 해시의 머클-트리 루트를 업데이트하는 것을 의미한다. DART의 머클 루트는 불스아이(bullseye)라고 한다.
DART의 예시가 도 4에 도시되어 있다. 아카이브(트랜잭션)은 계층적 트리 구조로 저장된다. 아카이브는 트리의 리프(leaves)로 저장된다. CN은 해당 번호를 갖는 노드를 나타낸다. "sSMT"는 섹터 머클 트리를 나타낸다. "cSMT"는 중앙 머클 트리를 나타낸다. "sH"는 섹터 해시를 나타낸다. "be"는 과녁(bullseye)을 나타낸다.
이제 스파스 머클 트리(Sparsed Merkle Tree) 자체는 SMT의 구조로 인해 전체 머클 트리에 비해 매우 적은 해시 연산으로 전체 DART의 머클 루트를 계산할 수 있다.
이하 방법은 효율적인 방식으로 머클 트리를 계산하는 방법을 설명한다.
아래 함수는 두 개의 값의 해시 함수를 정의한다.
방정식 8
이 정의는 대부분의 요소가 널(null)이고 널(null) 요소에서는 어떤 계산도 수행하지 않기 때문에 매우 희소한(sparsed) 벡터에서 해시 계산을 매우 빠르게 만들기 때문에 중요하다. 이는 아래의 예에서도 설명되어 있다.
스파스 머클 트리(Sparsed Merkle Tree)는 벡터의 일부 값이 종종 0 인 이전에 설명한 해시 벡터로 표현할 수 있다.
방정식 9
벡터의 해시 함수는 다음과 같이 정의할 수 있다.
방정식 10
Ξ 함수는 트리 벡터로 스파스 머클 루트 해시 값으로 정의된다.
일부 Ξ 계산의 예시.
실시예 1.
널(null) 벡터의 Ξ 값은 rqkt 0이 되며, 또한 SMT가 비어 있음을 증명한다.
실시예 2.
벡터 V (0, k)에 hi 값이 하나만 있고 0이 없으면 값 Ξ은 hi 가 된다.
방정식 11
실시예 3
벡터 V (0, k) 가 2 개만 포함하고 0 값 h i 및 h j 가 2 개만 포함된 경우 Ξ은 다음과 같이 표현할 수 있다:
방정식 12
실시예 4
방정식 13
결과적으로 다음과 같은 해시 값이 생성된다.
방정식 14
예를 들어, 일반적인 머클 트리 계산을 SMT 방법 및 데이터베이스에 저장된 4·109 ~ 232 의 아카이브 예시와 비교한다. 이것은 최악의 경우 4 ·109 해시 작업에 해당한다.
좋은 확률로 아카이브는 림 4에 저장되고 림 4가 저장된 아카이브는 약 4 ·256~1000이 된다.
본 발명은 또한 상술한 방법을 구현하기위한 시스템(1a)에 관한 것이다. 시스템(1a)은 컴퓨터화 된 시스템이며 위에서 설명된 방법을 구현하도록 구성된 고유 하드웨어 및 소프트웨어 모듈을 포함한다. 이를 DART 시스템(1a)이라고 부를 수 있다. 시스템은 특정 네트워크에서 동일한 데이터를 저장하고 보관하기 위한 데이터 세트를 처리할 수 있으며, 시스템은 본 발명에 따른 방법의 단계를 수행하기 위한 수단을 포함한다.
시스템은 루트 해시 값을 획득할 때까지 데이터를 암호화 해싱하는 수단을 포함한다. 이러한 수단은 당업자에게 알려져 있는데, 본 발명의 특정 스파스 머클 트리를 구현하도록 구성된 하나 이상의 마이크로 컨트롤러, 하드웨어 및 소프트웨어 모듈을 포함한다.
첫 번째 양상에 따르면, 시스템은
- 적어도 하나의 해시 값을 주어진 비트-폭의 림-키의 다중 섹션으로 나누는 수단; 및
- 스파스 머클 트리의 아카이브 리프(leave) 인 리프 림-키와 하위 트리 생성을 지원하는 부모 림 키를 결정하기 위한 수단을 포함한다.
시스템은 마이크로 컨트롤러와 소프트웨어 및 하드웨어 모듈을 통해 해당 작업을 실행하도록 구성된다.
방법에 대해 위에서 언급한 이점은 방법을 구현하는 시스템에도 적용된다.
본 발명은 또한 상술한 방법을 통해 또는 상술한 시스템에 의해 처리된 데이터 세트를 특정 네트워크에서 저장하고 저장하기 위한 수단을 포함하는 데이터베이스(2a)에 관한 것이다. 이를 DART 데이터베이스(2a)라고 할 수 있습니다. 데이터베이스는 당업자에게 알려져 있는데, 본 발명을 구현하도록 구성된 하나 이상의 마이크로 컨트롤러, 하드웨어 및 소프트웨어 모듈을 포함한다.
보다 일반적으로, 데이터베이스는 루트 해시 값(들)에 대응하는 하나 이상의 스파스 머클 트리(들)의 모든 데이터의 해시 값을 포함한다.
이에 더하여, 상기 데이터베이스는,
- 적어도 하나의 해시 값을 림-키의 여러 섹션으로 나눈 주어진 비트-폭의 림-키; 및
- 그 중에는 스파스 머클 트리의 아카이브 리프(leaves)인 림-키와 하위 트리 생성을 지원하는 부모 림 키를 포함한다.
방법 및 시스템(1a)에 대해 위에서 언급한 이점은 해당 데이터를 포함하는 데이터베이스에도 적용된다.
본 발명의 또 다른 목적은 하나 이상의 중앙 유닛(들)(3a), 특히 하나 이상의 컴퓨터화 된 중앙 유닛, 및 트랜잭션을 구현하는 추가 명령 유닛(5a)에 대한 연결(들)(4a), 특히 컴퓨터화 된 명령 유닛을 포함하는 네트워크이다. 상술한 바와 같이 중앙 유닛(들)(3a)은 시스템(1a) 및 데이터베이스(2a)를 포함한다. 이를 DART 네트워크라고 할 수 있다. 상기 네트워크는 인터넷을 통해 추가 명령 유닛에 연결될 수 있다.
1a: 시스템 2a: 데이터베이스
3a: 중앙 유닛 4a: 연결
5a: 명령 유닛
3a: 중앙 유닛 4a: 연결
5a: 명령 유닛
Claims (15)
- 특정 네트워크에서 동일한 데이터를 저장하고 보관하기 위한 데이터 세트를 처리하는 컴퓨터 실행 방법, 스파스 머클 트리를 실행하는 방법으로서,
- 데이터의 해시 값을 얻기 위해 데이터를 암호화 해싱하는 단계;
- 해당되는 경우, 데이터의 연속적인 해시 값을 암호화하여 첫 번째 단계의 결합된 해시 값을 얻는 단계;
- 해당되는 경우, 두 번째 단계의 결합된 해시 값을 얻기 위해 첫 번째 단계의 결합된 해시 값을 암호학적으로 해싱하는 단계;
…
- 루트 해시 값(be)을 얻을 때까지 계속하여 해싱하는 단계를 포함하며,
- 적어도 하나의 해시 값을 주어진 비트 폭의 림-키(L, A)의 여러 섹션으로 나누는 단계; 및
- 스파스 머클 트리의 아카이브 리프(archive leaves)인 리프 림-키(L)와 하위 트리(SMT) 생성을 지원하는 부모 림-키(A)를 결정하는 단계를 포함하는 것을 특징으로 하는 특정 네트워크에서 데이터를 보관하고 저장하기 위해 데이터 세트를 처리하는 컴퓨터 실행 방법. - 제1항에 있어서,
아카이브된 데이터가 부모 림-키와 동일한 림-키를 갖는 경우,
부모 림-키(A)에 서브 트리를 생성하는 단계를 포함하는 컴퓨터 실행 방법. - 제1항 또는 제2항 중 어느 한 항에 있어서,
다수의 해시 값, 바람직하게는 모든 해시 값을 주어진 비트-폭의 림-키(L, A)의 다수 섹션으로 분할하는 것을 특징으로 하는 컴퓨터 실행 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
적어도 하나의 하위 트리(SMT)는 주어진 인덱스의 해시 벡터인 것을 특징으로 하는 컴퓨터 실행 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 인덱스는 각각의 림 키인 것을 특징으로 하는 컴퓨터 실행 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 스파스 머클 트리는 해시의 벡터를 포함하는 것을 특징으로 하는 컴퓨터 실행 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 데이터는 트랜잭션인 것을 특징으로 하는 컴퓨터 실행 방법. - 특정 네트워크에서 동일한 데이터를 저장하고 보관하기 위한 데이터 세트를 처리하기 위한 시스템(1a), 스파스 머클 트리를 실행하는 시스템으로서,
- 데이터의 해시 값을 얻기 위해 데이터를 암호화 해싱하는 수단;
- 첫 번째 단계의 결합된 해시 값을 얻기 위해 데이터의 연속적인 해시 값을 암호학적으로 해싱하는 수단;
- 두 번째 단계의 결합된 해시 값을 얻기 위해 첫 번째 단계의 결합된 해시 값을 암호학적으로 해싱하는 수단;
…;
- 루트 해시 값을 획득하기 위한 수단을 포함하며,
- 적어도 하나의 해시 값을 주어진 비트-폭의 림-키(L, A)의 여러 섹션으로 나누는 수단; 및
- 스파스 머클 트리의 아카이브 리프인 리프 림-키(L) 및 하위 트리(SMT)의 생성을 지원하는 부모 림 키(A)를 결정하기 위한 수단을 포함하는 것을 특징으로 하는 특정 네트워크에서 동일한 데이터를 저장하고 보관하기 위한 데이터 세트를 처리하기 위한 시스템. - 제8항에 있어서,
아카이브된 데이터(archived data)가 부모 림-키와 동일한 림 키를 갖는 경우 부모 림-키(A)에 하위 트리(SMT)를 생성하기 위한 수단을 포함하는 것을 특징으로 하는 시스템. - 제8항 또는 제9항에있어서,
다중 해시 값, 바람직하게는 모든 해시 값을 주어진 비트-폭의 림-키의 다중 섹션으로 분할하기 위한 수단을 포함하는 것을 특징으로 하는 시스템. - 제8항 내지 제10항 중 어느 한 항에 있어서,
적어도 하나의 하위 트리는 주어진 인덱스의 해시 벡터인 것을 특징으로 하는 시스템. - 제8항 내지 제11항 중 어느 한 항 에있어서,
상기 인덱스는 각각의 림 키인 것을 특징으로 하는 시스템. - 제8항 내지 제12항 중 어느 한 항에 있어서,
상기 스파스 머클 트리는 해시의 벡터를 포함하는 것을 특징으로 하는 시스템 . - 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위한 데이터베이스 (2a)로서, 스파스 머클 트리를 실행하며,
- 데이터를 암호화 해싱하여 얻은 데이터의 해시 값;
- 데이터의 연속적인 해시 값 중 일부를 암호학적으로 해싱하여 얻은 첫 번째 단계의 결합된 해시 값;
- 첫 번째 단계의 결합된 해시 값 중 일부를 암호학적으로 해싱하여 얻은 두 번째 단계의 결합된 해시 값;
…,
- 루트 해시 값을 포함하며,
- 적어도 하나의 해시 값을 림-키의 여러 섹션으로 나눈 주어진 비트-너비의 림-키;
그 중에는 스파스 머클 트리의 아카이브 리프(archive leaves)인 림 키와 하위 트리 생성을 지원하는 부모 림 키를 특징으로 하는 특정 네트워크에서 데이터 세트를 저장하고 보관하기 위한 데이터베이스. - 네트워크로서,
특히 컴퓨터 중앙 장치(3a)인 하나 이상의 중앙 장치, 및
특히 컴퓨터 명령 장치인 트랜잭션을 실행하는 추가 명령 장치(5a)에 대한 연결(4a)을 포함하며
상기 중앙 장치(들)은 제8항 내지 제13항 중 어느 한 항에 따른 시스템(1a) 및 제14항 또는 제15항에 따른 데이터베이스(2a)를 포함하는 것을 특징으로 하는 네트워크.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19020509.6A EP3790224A1 (en) | 2019-09-04 | 2019-09-04 | Sparsed merkle tree method and system for processing sets of data for storing and keeping track of the same in a specific network |
EP19020509.6 | 2019-09-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210029116A true KR20210029116A (ko) | 2021-03-15 |
Family
ID=67909250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200112809A KR20210029116A (ko) | 2019-09-04 | 2020-09-04 | 특정 네트워크에서 데이터를 보관하고 저장하기 위해 데이터 세트를 처리하는 스파스 머클 트리 방법 및 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11997194B2 (ko) |
EP (1) | EP3790224A1 (ko) |
KR (1) | KR20210029116A (ko) |
RU (1) | RU2020129151A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102648501B1 (ko) * | 2020-12-16 | 2024-03-19 | 한국전자통신연구원 | 네트워크 환경 동기화 장치 및 방법 |
EP4142211A1 (en) * | 2021-08-26 | 2023-03-01 | BitFlow GmbH | Document integrity protection |
US11956368B2 (en) * | 2021-12-17 | 2024-04-09 | Advanced Micro Devices, Inc. | Enhanced method for a useful blockchain consensus |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7831573B2 (en) * | 2003-08-12 | 2010-11-09 | Hewlett-Packard Development Company, L.P. | System and method for committing to a set |
US7925624B2 (en) * | 2006-03-31 | 2011-04-12 | Amazon Technologies, Inc. | System and method for providing high availability data |
US7707136B2 (en) * | 2006-03-31 | 2010-04-27 | Amazon Technologies, Inc. | System and method for providing high availability data |
GB2512324B (en) * | 2013-03-26 | 2020-12-09 | Cloudtomo Ltd | Improvements in or relating to public-key certificate management |
US9916203B1 (en) * | 2015-06-30 | 2018-03-13 | EMC IP Holding Company LLC | Sparse metadata segment tree for efficient file storage operations in evolving backup workloads |
US10339014B2 (en) * | 2016-09-28 | 2019-07-02 | Mcafee, Llc | Query optimized distributed ledger system |
US11108627B2 (en) * | 2016-12-30 | 2021-08-31 | Intel Corporation | Object identification for groups of IoT devices |
EP3735648A1 (en) * | 2017-12-06 | 2020-11-11 | Zamna Technologies Limited | Method and system for data security, validation, verification and provenance within independent computer systems and digital networks |
WO2019236925A1 (en) * | 2018-06-06 | 2019-12-12 | KR8OS, Inc dba Lucidity | Systems and methods for enforcing advertising standards and digital advertisement measurements |
US20200126075A1 (en) * | 2018-10-18 | 2020-04-23 | Temujin Labs, Inc. | Confidential transaction auditing using an authenticated data structure |
US20220078006A1 (en) * | 2018-12-31 | 2022-03-10 | Guardtime Sa | Verifiable object state data tracking |
SG11202109729SA (en) * | 2019-05-22 | 2021-10-28 | Swirlds Inc | Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database |
US11429738B2 (en) * | 2019-05-29 | 2022-08-30 | International Business Machines Corporation | Blockchain endorsement with approximate hash verification |
US11329829B2 (en) * | 2019-06-01 | 2022-05-10 | Guardtime Sa | Security for sequentially growing data structures |
US10896171B2 (en) * | 2019-06-13 | 2021-01-19 | Tyson York Winarski | Big data blockchains with Merkle trees |
US11249947B2 (en) * | 2019-06-15 | 2022-02-15 | Facebook, Inc. | Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure |
US11126593B2 (en) * | 2019-06-15 | 2021-09-21 | Facebook, Inc. | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
US11095457B2 (en) * | 2019-08-30 | 2021-08-17 | Beatdapp Software Inc. | System and method for scalably tracking media playback using blockchain |
-
2019
- 2019-09-04 EP EP19020509.6A patent/EP3790224A1/en active Pending
-
2020
- 2020-09-03 RU RU2020129151A patent/RU2020129151A/ru unknown
- 2020-09-04 US US17/013,084 patent/US11997194B2/en active Active
- 2020-09-04 KR KR1020200112809A patent/KR20210029116A/ko unknown
Non-Patent Citations (1)
Title |
---|
대한민국 |
Also Published As
Publication number | Publication date |
---|---|
US20210067330A1 (en) | 2021-03-04 |
US11997194B2 (en) | 2024-05-28 |
EP3790224A1 (en) | 2021-03-10 |
RU2020129151A (ru) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20210029116A (ko) | 특정 네트워크에서 데이터를 보관하고 저장하기 위해 데이터 세트를 처리하는 스파스 머클 트리 방법 및 시스템 | |
US20200218707A1 (en) | Manipulating sets of hierarchical data | |
US10102253B2 (en) | Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices | |
US7739288B2 (en) | Systems and methods of directory entry encodings | |
US10754853B2 (en) | Virtual edge of a graph database | |
US11386081B2 (en) | System and method for facilitating efficient indexing in a database system | |
US20140188893A1 (en) | Data retrieval apparatus, data storage method and data retrieval method | |
CN105956166A (zh) | 数据库读写方法和读写装置 | |
US11132345B2 (en) | Real time indexing | |
US10990573B2 (en) | Fast index creation system for cloud big data database | |
CN111984732B (zh) | 在区块链上实现去中心化检索的方法、节点及区块链网络 | |
US20070239663A1 (en) | Parallel processing of count distinct values | |
Jiang et al. | Incremental evaluation of top-k combinatorial metric skyline query | |
CN108628907A (zh) | 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法 | |
US11144522B2 (en) | Data storage using vectors of vectors | |
CN110532284B (zh) | 海量数据存储和检索方法、装置、计算机设备及存储介质 | |
Faro et al. | On the longest common Cartesian substring problem | |
US10248813B2 (en) | Organizing key-value information sets into hierarchical representations for efficient signature computation given change information | |
US11991290B2 (en) | Associative hash tree | |
US10885157B2 (en) | Determining a database signature | |
WO2015129109A1 (ja) | インデックス管理装置 | |
JP2007048318A (ja) | リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置 | |
US11481370B1 (en) | Devices, systems, and methods for optimization of data sets | |
CN111309704B (zh) | 数据库操作方法和数据库操作*** | |
Hassan et al. | An efficient scheme for real-time information storage and retrieval systems: A hybrid approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant |