KR102204605B1 - 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치 - Google Patents

각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR102204605B1
KR102204605B1 KR1020190048772A KR20190048772A KR102204605B1 KR 102204605 B1 KR102204605 B1 KR 102204605B1 KR 1020190048772 A KR1020190048772 A KR 1020190048772A KR 20190048772 A KR20190048772 A KR 20190048772A KR 102204605 B1 KR102204605 B1 KR 102204605B1
Authority
KR
South Korea
Prior art keywords
block
information
specific
optimization
storage
Prior art date
Application number
KR1020190048772A
Other languages
English (en)
Other versions
KR20200125065A (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 KR1020190048772A priority Critical patent/KR102204605B1/ko
Priority to US16/850,283 priority patent/US11424912B2/en
Publication of KR20200125065A publication Critical patent/KR20200125065A/ko
Application granted granted Critical
Publication of KR102204605B1 publication Critical patent/KR102204605B1/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
    • H04L9/3239Cryptographic 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
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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/2372Updates performed during offline database operations
    • 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
    • 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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (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)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법이 개시된다. 즉, (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계; (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행하는 단계; 를 포함하는 것을 특징으로 하는 방법이 개시된다.

Description

각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치{METHOD AND DEVICE FOR PROVIDING BLOCKCHAIN CAPABLE OF OPTIMIZING STORAGES OF EACH NODE INCLUDED THEREIN}
본 발명은 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치에 관한 것이다.
블록체인 기술이란, 관리 대상 데이터를, P2P 방식을 기반으로 생성된 체인 형태의 분산 데이터 저장환경인 블록에 저장함으로써, 분산 컴퓨팅 기술 기반으로 데이터의 변조를 방지하는 기술이다.
이와 같은 블록체인 기술을 사용할 경우, 각각의 노드들은 블록체인 네트워크가 처음으로 구동되었을 때부터의 블록들을 모두 포함하게 된다. 이 경우의 문제점은, 블록들이 끝없이 늘어나게 되므로 각 노드들의 저장 공간이 부족해질 수 있다는 것이다.
이런 문제점은 블록체인 네트워크가 프라이빗 네트워크인 경우에 더욱 문제가 될 수 있는데, 퍼블릭 네트워크의 경우 데이터 신뢰성 보장을 위해 최초 블록부터 저장되는 것이 필요하다고 하더라도, 프라이빗 네트워크의 경우 데이터의 생성 시기별로 그 중요성이 달라지는 경우가 빈번하기 때문이다. 구체적으로, 프라이빗 네트워크에서 구동되는 서비스에서 필요로 하는 데이터의 수명이 다하게 되면, 해당 데이터는 쓸모가 없는데, 이를 무한정으로 저장하는 것은 비효율적이라는 것이다.
이와 같은 문제가 있음에도 불구하고, 블록체인 네트워크라면 각 노드들이 모든 블록을 포함해야 한다는 인식 때문에 각 노드들의 저장 공간을 최적화하기 위한 연구가 많이 이루어지지 못하지 않고 있는 것이 사실이다.
종래기술로서, https://medium.freecodecamp.org/a-blockchain-experiment-with-apache-kafka-97ee0ab6aefc 페이지에서 확인할 수 있듯이, 2017년 Luc Russel은 Kafka라는 파티션에 블록들을 따로 저장하는 구성을 제시한 바 있으나, 이는 scalability 관점에서 접근한 것으로, 사이즈, 즉 저장 공간을 최적화하기 위한 관점에서 이루어진 것이 아니며, 또한 블록들을 영구히 삭제한다는 내용과도 거리가 있다.
본 발명은 상술한 문제점을 해결하는 것을 목적으로 한다.
본 발명은 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공함으로써, 각 노드가 블록체인에서 구동되는 서비스의 데이터 라이프 사이클이 지난 데이터를 삭제할 수 있도록 하는 것을 목적으로 한다.
또한 본 발명은 트랜잭션과 관련된 정보에 대한 스토리지 최적화 연산 방법 및 제네시스와 관련된 정보에 대한 스토리지 최적화 연산 방법을 각각 제공함으로써 사용자가 용도에 맞는 스토리지 최적화 연산 방법을 채택할 수 있도록 하는 것을 목적으로 한다.
또한 본 발명은 제네시스와 관련된 정보에 대한 스토리지 최적화 연산 방법과 함께, 삭제된 블록들과의 연관성을 증명할 수 있는 블록 핑거프린트 해시 정보를 연동시키는 방법을 제공함으로써 스토리지를 최적화하면서도 데이터에 대한 신뢰성을 보장할 수 있도록 하는 것을 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서, (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계; (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (a) 단계는, 상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고, 상기 (b) 단계는, 상기 특정 서비스 노드가, 상기 특정 블록 넘버 정보와 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고, 상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택한 다음, 상기 특정 최적화 대상 블록에 대한 정보들 중 블록체인 버전 정보, 직전 블록 해시 정보, 머클 해시 정보, 블록 생성 시간 정보, 논스 정보, 블록 채굴 난이도 정보 중 적어도 일부를 포함하는 헤더 정보는 유지하되, 상기 특정 최적화 대상 블록에 포함된 트랜잭션들에 대한 정보를 포함하는 트랜잭션 정보를 삭제하거나, 상기 트랜잭션 정보를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계 이후에, 상기 특정 서비스 노드가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 특정 서비스 노드가, 상기 서비스 노드들과 동기화를 수행하면서 제N 블록 - N은 상기 특정 블록 넘버 정보에 대응하는 정수임 - 이 생성된 경우, 제N-K - K는 상기 임계 블록 개수 정보에 대응하는 정수임 - 블록을 상기 특정 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행한 다음, 상기 서비스 노드들과 동기화를 수행하면서 상기 신규 블록으로서 제N+1 블록을 생성하고, 제N+1-K 블록을 상기 신규 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계는, 상기 특정 서비스 노드가, 상기 임계 시간 정보를 참조로 하여, 자신에 저장된 블록들 중 현재 시각으로부터 상기 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록이 있는 경우, 상기 최적화 조건이 만족된 것으로 판단하고 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록을 상기 최적화 대상 블록으로 선택하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계는, 상기 특정 서비스 노드가, 상기 최적화 조건이 만족되는 경우, 자신에 저장된 블록들 중 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록, 자신에 포함된 블록들 둥 적어도 일부인 적어도 하나 이상의 최적화 대상 블록들을 선택하여 이에 상기 제1 스토리지 최적화 연산을 적용하는 것을 특징으로 하는 방법이 개시된다.
본 발명의 다른 태양에 따르면, 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서, (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계; (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 상기 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계; 를 포함하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (a) 단계는, 상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고, 상기 (b) 단계는, 상기 특정 서비스 노드는, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고, 상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택하고, 상기 특정 최적화 대상 블록에 대한 정보를 참조로 하여 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록에 대한 정보를 삭제하거나, 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 특정 서비스 노드가, 상기 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록을, 일정 개수의 새로운 블록이 생성되는 동안 기설정된 사이즈를 가지는 버퍼에 저장하여 둔 다음 (i) 이를 삭제하거나, (ii) 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계 이후에, 상기 특정 서비스 노드가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록을 사용하여 상기 제2 스토리지 최적화 연산을 수행한 다음, 상기 신규 최적화 대상 블록을 상기 버퍼에 저장하는 과정을 거치도록 하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 특정 서비스 노드가, 상기 블록체인 네트워크에 신규 노드가 추가되는 경우, 제N 블록 - N은 상기 특정 최적화 대상 블록의 블록 넘버 정보에 대응하는 정수임 - 에 대한 정보를 참조로 하여 업데이트된 시점의 제네시스 정보를 상기 신규 노드에 제공한 후, 상기 신규 노드와 동기화 과정을 수행하면서, 상기 버퍼에 저장된 제N+1 블록 내지 제N+P 블록 - P는 기설정된 상기 버퍼의 사이즈와 같거나 상기 버퍼의 사이즈보다 작은 정수임 - 들에 대한 정보를 상기 신규 노드에 제공함으로써 상기 신규 노드가 상기 제2 스토리지 최적화 연산에도 불구하고 상기 제N 블록을 참조로 하여 업데이트된 시점의 상기 제네시스 정보를 기준으로 동기화될 수 있도록 하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (a) 단계는, 상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되, 상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 특정 서비스 노드가, 상기 동기화 과정에서, 제N 블록 - N은 임의의 정수임 - 을 생성하면서, 상기 제 N 블록의 헤더 정보에 제N 블록 핑거프린트 해시 정보가 포함되도록 하되,
Figure 112019043052491-pat00001
상기 제N 핑거프린트 해시 정보는 상기 수식에 따라 생성되고, 상기 수식에서, 상기
Figure 112019043052491-pat00002
은 상기 제 N 블록 핑거프린트 해시 정보를 의미하고, 상기
Figure 112019043052491-pat00003
은 제N-1 블록 핑거프린트 해시 정보를 의미하며,
Figure 112019043052491-pat00004
은 제N 블록에 대한 블록 해시 정보를 의미하고, 상기
Figure 112019043052491-pat00005
은 상기 제N 블록 핑거프린트 해시 정보에 대한 솔트 값을 의미하며, 상기 hash 함수는 상기 제N-1 블록 핑거프린트 해시 정보 및 상기 제N 블록에 대한 블록 해시 정보를 입력으로 받아 해시 값을 출력하는 기설정된 해시 함수를 의미하고, 제1 블록 핑거프린트 해시 정보는 제1 블록에 대한 블록 해시 정보를 참조로 하여 생성되는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계에서, 상기 특정 서비스 노드는, 상기 특정 블록이 최적화 대상 블록으로 선택된 경우, 상기 특정 블록 핑거프린트 해시 정보를 포함하는 상기 특정 블록에 대한 정보를 추가적으로 참조로 하여 상기 제2 스토리지 최적화 연산을 통해 상기 제네시스 정보를 업데이트하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들은, 해당 시점의 제네시스 정보에 포함된 블록 핑거프린트 해시 정보를 제공하여 서로 비교할 수 있도록 지원함으로써, 각각의 서비스 노드들에 포함된 정보들이 동일한 과거의 데이터 체인으로부터 유래된 것인지 여부를 검증할 수 있도록 지원하는 것을 특징으로 하는 방법이 개시된다.
일례로서, 상기 (b) 단계는, 상기 특정 서비스 노드가, 자신에 저장된 블록들 중 상기 제2 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록 적어도 하나 이상의 최적화 대상 블록들을 그 블록 넘버가 연속되도록 선택하여 이를 삭제하고, 상기 최적화 대상 블록들 중 그 블록 넘버가 가장 큰 특정 최적화 대상 블록을 선택하여, 이에 대한 정보를 참조로 하여 제네시스 정보를 업데이트함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법이 개시된다.
본 발명의 또다른 태양에 따르면, 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서, 인스트럭션들을 저장하는 하나 이상의 메모리; 및 상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되, 상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행하는 프로세스; 를 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고, 상기 (II) 프로세스는, 상기 프로세서가, 상기 특정 블록 넘버 정보와 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고, 상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택한 다음, 상기 특정 최적화 대상 블록에 대한 정보들 중 블록체인 버전 정보, 직전 블록 해시 정보, 머클 해시 정보, 블록 생성 시간 정보, 논스 정보, 블록 채굴 난이도 정보 중 적어도 일부를 포함하는 헤더 정보는 유지하되, 상기 특정 최적화 대상 블록에 포함된 트랜잭션들에 대한 정보를 포함하는 트랜잭션 정보를 삭제하거나, 상기 트랜잭션 정보를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스 이후에, 상기 프로세서가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 프로세서가, 상기 서비스 노드들과 동기화를 수행하면서 제N 블록 - N은 상기 특정 블록 넘버 정보에 대응하는 정수임 - 이 생성된 경우, 제N-K - K는 상기 임계 블록 개수 정보에 대응하는 정수임 - 블록을 상기 특정 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행한 다음, 상기 서비스 노드들과 동기화를 수행하면서 상기 신규 블록으로서 제N+1 블록을 생성하고, 제N+1-K 블록을 상기 신규 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스는, 상기 프로세서가, 상기 임계 시간 정보를 참조로 하여, 자신에 저장된 블록들 중 현재 시각으로부터 상기 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록이 있는 경우, 상기 최적화 조건이 만족된 것으로 판단하고 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록을 상기 최적화 대상 블록으로 선택하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스는, 상기 프로세서가, 상기 최적화 조건이 만족되는 경우, 자신에 저장된 블록들 중 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록, 자신에 포함된 블록들 둥 적어도 일부인 적어도 하나 이상의 최적화 대상 블록들을 선택하여 이에 상기 제1 스토리지 최적화 연산을 적용하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
본 발명의 또다른 태양에 따르면, 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서, 인스트럭션들을 저장하는 하나 이상의 메모리; 및 상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되, 상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 상기 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고, 상기 (II) 프로세스는, 상기 프로세서는, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고, 상기 최적화 조건이 만족되면, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택하고, 상기 특정 최적화 대상 블록에 대한 정보를 참조로 하여 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록에 대한 정보를 삭제하거나, 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 프로세서가, 상기 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록을, 일정 개수의 새로운 블록이 생성되는 동안 기설정된 사이즈를 가지는 버퍼에 저장하여 둔 다음 (i) 이를 삭제하거나, (ii) 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스 이후에, 상기 프로세서가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록을 사용하여 상기 제2 스토리지 최적화 연산을 수행한 다음, 상기 신규 최적화 대상 블록을 상기 버퍼에 저장하는 과정을 거치도록 하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 프로세서가, 상기 블록체인 네트워크에 신규 노드가 추가되는 경우, 제N 블록 - N은 상기 특정 최적화 대상 블록의 블록 넘버 정보에 대응하는 정수임 - 에 대한 정보를 참조로 하여 업데이트된 시점의 제네시스 정보를 상기 신규 노드에 제공한 후, 상기 신규 노드와 동기화 과정을 수행하면서, 상기 버퍼에 저장된 제N+1 블록 내지 제N+P 블록 - P는 기설정된 상기 버퍼의 사이즈와 같거나 상기 버퍼의 사이즈보다 작은 정수임 - 들에 대한 정보를 상기 신규 노드에 제공함으로써 상기 신규 노드가 상기 제2 스토리지 최적화 연산에도 불구하고 상기 제N 블록을 참조로 하여 업데이트된 시점의 상기 제네시스 정보를 기준으로 동기화될 수 있도록 하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (I) 프로세스는, 상기 프로세서가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되, 상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 프로세서가, 상기 동기화 과정에서, 제N 블록 - N은 임의의 정수임 - 을 생성하면서, 상기 제 N 블록의 헤더 정보에 제N 블록 핑거프린트 해시 정보가 포함되도록 하되,
Figure 112019043052491-pat00006
상기 제N 핑거프린트 해시 정보는 상기 수식에 따라 생성되고, 상기 수식에서, 상기
Figure 112019043052491-pat00007
은 상기 제 N 블록 핑거프린트 해시 정보를 의미하고, 상기
Figure 112019043052491-pat00008
은 제N-1 블록 핑거프린트 해시 정보를 의미하며,
Figure 112019043052491-pat00009
은 제N 블록에 대한 블록 해시 정보를 의미하고, 상기
Figure 112019043052491-pat00010
은 상기 제N 블록 핑거프린트 해시 정보에 대한 솔트 값을 의미하며, 상기 hash 함수는 상기 제N-1 블록 핑거프린트 해시 정보 및 상기 제N 블록에 대한 블록 해시 정보를 입력으로 받아 해시 값을 출력하는 기설정된 해시 함수를 의미하고, 제1 블록 핑거프린트 해시 정보는 제1 블록에 대한 블록 해시 정보를 참조로 하여 생성되는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스에서, 상기 프로세서는, 상기 특정 블록이 최적화 대상 블록으로 선택된 경우, 상기 특정 블록 핑거프린트 해시 정보를 포함하는 상기 특정 블록에 대한 정보를 추가적으로 참조로 하여 상기 제2 스토리지 최적화 연산을 통해 상기 제네시스 정보를 업데이트하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들은, 해당 시점의 제네시스 정보에 포함된 블록 핑거프린트 해시 정보를 제공하여 서로 비교할 수 있도록 지원함으로써, 각각의 서비스 노드들에 포함된 정보들이 동일한 과거의 데이터 체인으로부터 유래된 것인지 여부를 검증할 수 있도록 지원하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
일례로서, 상기 (II) 프로세스는, 상기 프로세서가, 자신에 저장된 블록들 중 상기 제2 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록 적어도 하나 이상의 최적화 대상 블록들을 그 블록 넘버가 연속되도록 선택하여 이를 삭제하고, 상기 최적화 대상 블록들 중 그 블록 넘버가 가장 큰 특정 최적화 대상 블록을 선택하여, 이에 대한 정보를 참조로 하여 제네시스 정보를 업데이트함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드가 개시된다.
본 발명은 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공함으로써, 각 노드가 블록체인에서 구동되는 서비스의 데이터 라이프 사이클이 지난 데이터를 삭제할 수 있도록 하는 효과가 있다.
또한 본 발명은 트랜잭션과 관련된 정보에 대한 스토리지 최적화 연산 방법 및 제네시스와 관련된 정보에 대한 스토리지 최적화 연산 방법을 각각 제공함으로써 사용자가 용도에 맞는 스토리지 최적화 연산 방법을 채택할 수 있도록 하는 효과가 있다.
또한 본 발명은 제네시스와 관련된 정보에 대한 스토리지 최적화 연산 방법과 함께, 삭제된 블록들과의 연관성을 증명할 수 있는 블록 핑거프린트 해시 정보를 연동시키는 방법을 제공함으로써 스토리지를 최적화하면서도 데이터에 대한 신뢰성을 보장할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제1 스토리지 최적화 연산을 나타낸 예시 도면이다.
도 3은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제1 스토리지 최적화 연산의 변형 실시예를 나타낸 예시 도면이다.
도 4는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 나타낸 예시 도면이다.
도 5는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 보완하기 위해 버퍼를 사용하는 실시예를 나타낸 예시 도면이다.
도 6은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 보완하기 위해 블록 핑거프린트 해시 정보를 생성하는 방식을 나타낸 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드를 나타낸 도면이다.
도 1을 참조하면, 특정 서비스 노드(100)는 각각 통신부(110), 메모리(115) 및 프로세서(120)를 포함할 수 있다. 이 때, 특정 서비스 노드(100)의 입출력 및 연산 과정은 각각 통신부(110) 및 프로세서(120)에 의해 이루어질 수 있다. 다만 도 1에서는 통신부(110) 및 프로세서(120)의 구체적인 연결 관계를 생략하였다. 이 때, 메모리(115)는 후술할 여러 가지 지시들을 저장한 상태일 수 있고, 프로세서(120)는 메모리(115)에 저장된 지시들을 수행하도록 설정되되, 프로세서(120)는 추후 설명할 프로세스들을 수행함으로써 본 발명을 수행할 수 있다. 이와 같이 특정 서비스 노드(100)가 묘사되었다고 하여, 특정 서비스 노드(100)가 본 발명을 실시하기 위한 미디엄, 프로세서 및 메모리가 통합된 형태인 integrated 프로세서를 포함하는 경우를 배제하는 것은 아니다.
이와 같은 특정 서비스 노드(100)는, 실시예에 따라 제1 스토리지 최적화 연산을 수행하거나, 제2 스토리지 최적화 연산을 수행할 수 있다. 먼저 제1 스토리지 최적화 연산을 수행하는 실시예에 대해 설명하고자 한다.
제1 스토리지 최적화 연산을 수행하는 특정 서비스 노드(100)는, 블록체인 네트워크에 포함된 상태이며, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 상태일 수 있다. 최적화 조건이란, 특정 서비스 노드(100)에 포함된 블록의 개수가 너무 많아 소모 용량의 축소가 필요한 상태로 판단되는 경우에 대응할 수 있을 것이다. 특정 서비스 노드(100)는, 블록체인 네트워크에 포함된 각각의 타 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하고, 이 과정에서 최적화 조건이 만족되지 않는지 여부를 판단할 수 있을 것이다.
특정 서비스 노드(100)는 상기 최적화 조건의 만족 여부를 판단하기 위하여, 동기화 과정에서 생성된 블록들의 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나, 기설정된 임계 시간 정보를 참조로 할 수 있다. 이 때, 임계 블록 개수 정보는, 특정 서비스 노드(100)에 저장될 수 있는 블록의 개수 또는 블록체인 네트워크에서 구동되는 서비스가 요구하는 데이터 라이프 사이클에 대응할 수 있다. 임계 시간 정보 또한, 블록체인 네트워크에서 구동되는 서비스가 요구하는 데이터 라이프 사이클에 대응할 수 있다.
먼저 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예에 대해 설명하도록 한다. 이를 위해, 특정 서비스 노드(100)가, 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하는 경우를 상정할 것이다. 이 때, 특정 서비스 노드(100)는, 특정 블록 넘버 정보와 임계 블록 개수 정보를 참조로 하여, 특정 블록 넘버 정보의 값이 임계 블록 개수 정보의 값보다 큰 경우 최적화 조건이 만족된 것으로 볼 수 있다. 일 예로, 임계 블록 개수가 100으로 설정된 경우, 특정 블록 넘버 정보가 101 이상이 된 후부터 최적화 조건이 만족된 것으로 볼 수 있다는 것이다.
임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예에 대해 설명하도록 한다. 특정 서비스 노드(100)는, 임계 시간 정보를 참조로 하여, 자신에 저장된 블록들 중 현재 시각으로부터 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 제1 스토리지 최적화 연산이 적용되지 않은 블록이 있는 경우 최적화 조건이 만족된 것으로 판단할 수 있다. 일 예로, 임계 시간 정보가 1일로 설정된 경우, 자신에 저장된 블록들 중 현재 시각부터 1일 이상 이전에 생성되었는데 제1 스토리지 최적화 연산에 의해 최적화되지 않은 블록이 존재할 때 최적화 조건이 만족된 것으로 볼 수 있다는 것이다.
이와 같이 최적화 조건이 만족되면, 특정 서비스 노드(100)는, 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행할 수 있다. 이를 위해, 특정 서비스 노드(100)는, 자신에 저장된 블록들 중 적어도 일부인 최적화 대상 블록을 선택할 수 있다.
전술한 실시예 중 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예의 경우에 최적화 대상 블록이 어떻게 선택되는지에 대해 설명하도록 한다. 특정 서비스 노드(100)는, 생성한 특정 블록의 특정 블록 넘버 정보 및 임계 블록 개수 정보를 참조로 하여 특정 최적화 대상 블록을 선택할 수 있다. 구체적으로, 특정 블록 넘버가 N이고, 임계 블록 개수 정보가 K인 경우, 특정 서비스 노드(100)는 제N 블록인 특정 블록보다 K개 앞에 존재하는 제N-K 블록을 특정 최적화 대상 블록으로 선택할 수 있다. 특정 최적화 대상 블록이 이와 같이 선택되면, 추후 설명할 제1 스토리지 최적화 연산을 이에 적용할 수 있다. 특정 블록이 생성된 직후에 동기화 과정에서 제N+1 블록인 신규 블록이 생성되면, 같은 방식으로, 신규 블록 넘버 정보 및 임계 블록 개수 정보를 참조로 하여, 제N+1-K 블록을 신규 최적화 대상 블록으로 선택할 수 있을 것이다.
전술한 실시예 중 임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예의 경우에 최적화 대상 블록이 어떻게 선택되는지에 대해 설명하면, 특정 서비스 노드(100)는, 자신에 저장된 블록들 중 현재 시각으로부터 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 제1 스토리지 최적화 연산이 적용되지 않은 블록을 최적화 대상 블록으로 선택할 수 있다. 일 예로, 임계 시간이 1일일 때, 1일 이전에 생성되었음에도 제1 스토리지 최적화 연산이 적용되지 않은 블록이 최적화 대상 블록으로 선택될 수 있다.
이와 같이 최적화 대상 블록이 선택되면, 특정 서비스 노드(100)는, 적어도 하나의 제1 스토리지 최적화 연산을 최적화 대상 블록에 적용할 수 있다. 제1 스토리지 최적화 연산은, 트랜잭션과 관련된 정보에 대한 것일 수 있다.
더욱 구체적으로는, 제1 스토리지 최적화 연산은, 특정 서비스 노드(100)가 적어도 하나의 최적화 대상 블록을 선택하면, 이에 대한 정보들 중 블록체인 버전 정보, 직전 블록 해시 정보, 머클 해시 정보, 블록 생성 시간 정보, 논스 정보, 블록 채굴 난이도 정보 중 적어도 일부를 포함하는 헤더 정보는 유지하되, 특정 최적화 대상 블록에 포함된 트랜잭션들에 대한 정보를 포함하는 트랜잭션 정보를 삭제하거나, 상기 트랜잭션 정보를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 연산일 수 있다. 이 때 타 메모리 공간이란, 타 서버 또는 단말의 스토리지이거나, 임의의 콜드 스토리지일 수 있다.
이와 같이 트랜잭션 정보를 제거하는 제1 스토리지 최적화 연산이 수행되면, 일반적으로 블록이 차지하는 용량 중 대부분은 헤더 정보가 아닌 트랜잭션 정보인 경우가 많으므로, 스토리지의 최적화를 꾀할 수 있다. 예를 들어, 널리 쓰이는 블록체인 중 비트코인의 경우 약 90퍼센트, 이더리움의 경우 약 50퍼센트 내외의 용량 절약을 예상할 수 있다. 또한, 이와 같이 제1 스토리지 최적화 연산이 수행되면, 트랜잭션 정보 외에 헤더 정보는 그대로 유지함으로써, 블록들 간의 연결 관계가 나타나도록 한 바 용량을 절약하면서도 신뢰성이 유지될 수 있도록 하는 효과가 있다.
제1 스토리지 최적화 연산이 수행된 경우의 일 예시를 설명하기 위해 도 2를 참조하도록 한다.
도 2는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제1 스토리지 최적화 연산을 나타낸 예시 도면이다.
도 2를 참조로 하면, 초기 상태에 제1 블록 내지 제100 블록(130-1 내지 130-100)이 특정 서비스 노드(100) 내에 존재하는 것을 확인할 수 있다. 설명의 편의를 위해 임계 개수는 100개인 것으로 상정한다. 이 때, 제101 블록(130-101)이 생성되면, 전술한 방식과 같이 제1 블록(130-1)이 최적화 대상 블록으로 선택된 후, 이에 제1 스토리지 최적화 연산이 적용됨으로써 트랜잭션 정보가 삭제 또는 타 메모리 공간으로 전송된 것을 확인할 수 있다. 또한, 제102 블록(130-102)가 생성되면, 마찬가지로 제2 블록(103-2)가 최적화 대상 블록으로 선택되어 이에 제1 스토리지 최적화 연산이 적용될 수 있을 것이다.
이상 설명한 제1 스토리지 최적화 연산은, 한 번에 하나씩의 블록에 상기 연산을 적용함으로써, 기본적으로 노드에 저장된 블록들의 개수를 일정하게 임계 개수로 유지하는 방식인 것으로 볼 수 있다. 이와 다른 변형 실시예로서, 블록 개수가 가변적으로 변하는, 한 번에 여러 블록에 상기 연산을 적용하는 변형 실시예에 대해 이하 설명하도록 한다.
즉, 특정 서비스 노드(100)는, 최적화 조건이 만족되는 경우, 자신에 저장된 블록들 중 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록, 자신에 포함된 블록들 둥 적어도 일부인 적어도 하나 이상의 최적화 대상 블록들을 선택하여 이에 제1 스토리지 최적화 연산을 적용할 수 있다.
전술한 실시예별로 최적화 대상 블록들의 선택 방식을 설명하면, 먼저 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하는 실시예의 경우, 특정 서비스 노드(100)는, 블록 넘버 정보 및 임계 블록 개수 정보 외에 추가적으로 해당 시점 직전에 제1 스토리지 최적화 연산이 적용된 최적화 블록 넘버를 참조로 하여, 그 번호가 최적화 블록 넘버 이후인 블록들 중에서 최적화 대상 블록들을 선택할 수 있을 것이다. 일 예로는, 그 번호가 최적화 블록 넘버 이후인 블록들 중에서, 그 크기가 작은 순서대로 최적화 대상 블록들을 선택할 수 있을 것이다.
다만, 이 경우, 최적화 조건이 만족되는지를 판단하기 위해, 직전에 제1 스토리지 최적화 연산이 적용된 블록들 중 가장 그 블록 넘버가 큰 블록 넘버 정보도 함께 참조되어야 할 것이다. 즉, 특정 블록이 생성된 경우에, 특정 블록 넘버 정보의 값과, 전술한 그 블록 넘버가 가증 큰 블록 넘버 정보의 값 간의 차이가 임계 블록 개수 정보의 값보다 큰 경우에 최적화 조건이 만족된 것으로 판단할 수 있을 것이다.
임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예의 경우, 특정 서비스 노드(100)는, 추가적인 참조 없이 임계 시간 정보를 참조로 하여, 현재 시각으로부터 임계 시간 정보의 값에 대응하는 시간 전의 시각 이후에 생성된 블록들 중에서 최적화 대상 블록들을 선택할 수 있을 것이다. 일 예로는, 본 실시예에서도 그 번호가 작은 순서대로 최적화 대상 블록들을 선택할 수 있을 것이다.
이와 같이 최적화 대상 블록들을 선택하는 예시에 대해 설명하기 위해 도 3을 참조하도록 한다.
도 3은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제1 스토리지 최적화 연산의 변형 실시예를 나타낸 예시 도면이다.
도 3을 참조로 하면, 초기 상태에서 제81블록 내지 제180 블록(130-81 내지 130-180)이 존재하는데, 제181 블록(130-181)이 생성됨에 따라, 기존에 최적화되지 않은 상태로 존재하던 블록의 개수가 100개 이상이 됨에 따라 제1 스토리지 최적화 연산이 수행됨을 알 수 있다. 이 때, 해당 시점 직전에 제1 스토리지 최적화 연산이 수행된 블록인 제80 블록 이후의 블록들이 최적화 대상 블록들로 선택되어 제1 스토리지 최적화 연산이 적용된 것을 확인할 수 있다. 도면에서는 제80 블록 이후의 모든 블록들이 선택된 것처럼 도시되어 있으나, 전부 선택될 필요는 없고, 전술한 것과 같이, 그 중 앞 번호부터 순서대로 일부만이 선택될 수도 있을 것이다. 도 2의 실시예와 도 3의 실시예를 단적으로 설명하면, 도 2의 실시예는, 블록이 하나 생성되면서 최적화 조건이 만족되면 최적화 대상 블록이 하나 선택되어 삭제 또는 타 메모리 공간으로 전송되는 실시예이고, 도 3의 실시예는, 블록이 하나 생성되면, 최적화 대상 블록이 복수 개가 한 번에 선택되어 한 번에 삭제 또는 타 메모리 공간으로 전송되는 실시예이다. 도 3은, 제81 블록 내지 제180 블록(130-81 내지 130-180)에 한 번에 제1 스토리지 최적화 연산이 수행된 상태를 나타낸 것이다.
이상 특정 서비스 노드(100)가 제1 스토리지 최적화 연산을 수행하는 각각의 실시예들 및 변형 실시예에 대해 살펴보았다. 이하 특정 서비스 노드(100)가 제2 스토리지 최적화 연산을 수행하는 실시예에 대해 설명하도록 한다.
먼저, 전술한 것과 같이 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드(100)는, 동기화를 수행하면서 각각의 블록들을 생성하고, 그 과정에서 최적화 조건의 만족 여부를 판단할 수 있다.
즉, 특정 서비스 노드(100)는, 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나, 기설정된 임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단할 수 있다.
블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하는 실시예에 대해 설명하면, 제1 스토리지 최적화 연산과 유사하게, 특정 서비스 노드(100)가 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성한 경우에, 특정 블록 넘버 정보의 값을 임계 블록 개수 정보의 값과 비교하여, 특정 블록 넘버 정보의 값이 임계 블록 개수 정보의 값보다 큰 경우 최적화 조건이 만족되는 것으로 판단할 수 있다.
임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 방식은 전술한 제1 스토리지 최적화 연산을 사용하는 실시예의 그것과 유사하므로 생략하도록 한다.
이와 같이 최적화 조건이 만족되면, 특정 서비스 노드(100)는, 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행할 수 있다. 이를 위해, 특정 서비스 노드(100)는, 자신에 저장된 블록들 중 적어도 일부인 최적화 대상 블록을 선택할 수 있다.
전술한 실시예 중 블록 넘버 정보 및 임계 블록 개수 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예의 경우에 최적화 대상 블록이 어떻게 선택되는지에 대해 설명하도록 한다. 특정 서비스 노드(100)는, 제1 스토리지 최적화 연산의 그것과 유사하게, 특정 블록 넘버 정보의 값에서 임계 블록 개수 정보의 값을 뺀 번호를 가지는 블록을 최적화 대상 블록으로서 선택할 수 있을 것이다. 이후 해당 최적화 대상 블록을 사용하여 제2 스토리지 최적화 연산이 수행되고, 새로운 블록이 생성됨에 따라 그 다음 최적화 대상 블록이 선택되어 제2 스토리지 최적화 연산이 수행될 수 있다.
전술한 실시예 중 임계 시간 정보를 참조로 하여 최적화 조건의 만족 여부를 판단하는 실시예의 경우는, 최적화 대상 블록의 선택 방식이 전술한 제1 스토리지 최적화 연산을 사용하는 실시예의 방식과 유사하므로 생략하도록 한다. 다만, 이 경우에는, 선택된 최적화 대상 블록들을 삭제하되, 추후 설명할 그 중 제네시스 정보의 업데이트를 위해 사용되는 최적화 대상 블록은, 그들 중 가장 번호가 큰 최적화 대상 블록일 것이다.
이와 같이 최적화 대상 블록이 선택되면, 특정 서비스 노드(100)는, 적어도 하나의 제2 스토리지 최적화 연산을 최적화 대상 블록에 적용할 수 있다. 제2 스토리지 최적화 연산은, 제네시스와 관련된 정보에 대한 프로세스 및 삭제 와 관련한 프로세스를 포함할 수 있다.
구체적으로는, 제2 스토리지 최적화 연산은, 최적화 대상 블록이 선택되면, 해당 블록에 대한 정보를 참조로 하여 제네시스 정보를 업데이트한 후, 해당 블록에 대한 정보를 삭제하거나, 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 연산일 수 있다. 제네시스 정보를 업데이트하는 연산은, 제네시스 정보 중 시드가 되는 블록을 가리키는 정보, 즉 시드가 되는 블록의 블록 넘버 정보 및 블록 해시 정보를 최적화 대상 블록의 블록 넘버 정보와 블록 해시 정보를 사용하여 업데이트함으로써 최적화 대상 블록을 시드가 되는 최초의 블록으로서 지정하는 연산일 수 있다.
제2 스토리지 최적화 연산은, 기본적으로 블록을 삭제함으로써 스토리지 공간을 최적화하는 기능을 수행한다. 다만, 블록체인에서 연결된 블록을 지우기만 한다면 데이터 연결 관계가 깨지며, 어떤 블록으로부터 데이터 체인이 시작되었는지가 나타나지 않아 바람직하지 않은 바, 이와 같은 부분을 보완하기 위하여 제네시스 정보 중 시드가 되는 블록을 가리키는 정보를 계속하여 업데이트하는 것이다. 구체적으로, 각각의 블록들은 parent hash, 즉 자신의 직전 블록에 대한 해시 값을 포함함으로써 서로 연결된 링크드 리스트 형태의 데이터 체인을 구성하게 되는데, 시드가 되는 블록이 삭제되기만 한다면 완결된 링크드 리스트 형태의 블록체인을 완성할 수 없게 되므로, 제네시스 정보를 함께 업데이트함으로써 완결된 링크드 리스트 형태의 블록체인을 완성할 수 있도록 하는 것이다.
본 실시예의 경우 단일 블록 전체를 계속하여 삭제하므로 전술한 제1 스토리지 최적화 연산에 비해 용량 절감 효과가 더욱 큰 장점이 있다.
이와 같은 제2 스토리지 최적화 연산이 수행된 경우의 일 예시를 설명하기 위해 도 4를 참조하도록 한다.
도 4는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 나타낸 예시 도면이다.
도 4를 참조로 하면, 초기 상태에 제1 블록 내지 제100 블록(130-1 내지 130-100)이 특정 서비스 노드(100) 내에 존재하는 것을 확인할 수 있다. 이 때, 제101 블록(130-101)이 생성되면, 전술한 방식과 같이 제1 블록(130-1)이 최적화 대상 블록으로 선택된 후, 이에 제2 스토리지 최적화 연산이 적용됨으로써 해당 블록이 삭제 또는 타 메모리 공간으로 전송되고, 해당 블록에 대한 정보를 이용해 제네시스 정보가 업데이트되는 것을 확인할 수 있다. 또한, 제102 블록(130-102)가 생성되면, 마찬가지로 제2 블록(103-2)이 최적화 대상 블록으로 선택되어 이에 제2 스토리지 최적화 연산이 적용될 수 있을 것이다.
이상 설명한 제2 스토리지 최적화 연산은, 신규 노드가 추가될 경우 문제가 생길 수 있다. 즉, 신규 노드가 새로이 추가되어 노드들과 동기화하는 상황을 상정하여 보면, 신규 노드는 최초에 특정 서비스 노드(100)로부터 제네시스 블록에 대한 정보를 획득하고, 이를 시드로 하여 데이터 체인을 쌓아올려갈 것이다. 그런데 문제는, 이와 같은 설정 과정에서 네트워크의 지연 또는 모종의 이유로 딜레이가 발생한다면, 특정 서비스 노드(100)에서 블록들이 삭제되어, 신규 노드가 시드가 되는 블록으로부터의 데이터 체인을 획득할 수 없는 경우가 생긴다.
예를 들어, 신규 노드는 특정 서비스 노드(100)로부터 제1 블록이 시드가 되는 블록으로 지정되었다는 정보를 획득하면, 제1 블록을 기반으로 제2 블록 및 제3 블록 등을 획득하여 데이터 체인을 쌓아올려야 하는데, 딜레이가 생겨, 신규 노드가 제2 블록 및 제3 블록을 획득하기 전에 특정 서비스 노드(100)에서 제2 블록 및 제3 블록이 삭제되는 경우가 생길 수 있다는 것이다.
이를 방지하기 위해 버퍼를 사용하는 변형 실시예가 존재하는 바, 이에 대해 설명하도록 한다. 즉, 특정 서비스 노드(100)가, 선택된 최적화 대상 블록을, 기설정된 사이즈를 가지는 버퍼에 저장하여 두고, 일정 개수의 새로운 블록이 생성되면 이를 삭제하거나 자기 자신에게서 제거한 후 타 메모리 공간으로 전송할 수 있다. 상기 버퍼는, 실시예에 따라 큐 형태를 가지도록 구현되어, 버퍼에 저장된 시간이 가장 긴 블록부터 순차적으로 삭제되도록 구현될 수 있으나, 이에 한정될 것은 아니며, 어떠한 자료구조도 이와 같은 버퍼를 구현하기 위해 채택될 수 있을 것이다.
구체적으로, 제N 블록이 특정 최적화 대상 블록으로 선택되어, 이를 참조로 제네시스 정보가 업데이트된 상황에서 신규 노드가 추가될 경우, 특정 서비스 노드(100)는, 신규 노드에, 제N 블록을 기준으로 업데이트된 제네시스 정보를 제공할 수 있다. 이후, 특정 서비스 노드(100)는, 새로운 블록이 지속적으로 생성됨에 따라 제N+1 블록 내지 제N+P 블록(P는 기설정된 버퍼의 사이즈 이하의 정수임)을 각각 참조로 하여 순차적으로 제네시스 정보를 업데이트하되, 이들을 바로 삭제하는 대신 전술한 버퍼에 저장해 둘 것이다. 그리고, 특정 서비스 노드(100)는, 삭제되는 대신 버퍼에 저장된 제N+1 블록 내지 제N+P 블록을 신규 노드에 송신함으로써 신규 노드가 제N 블록을 기준으로 하여 동기화될 수 있도록 지원할 것이다.
전술한 설명에서는, 제네시스 정보에 대응하는 제N 블록 이후의 P개의 블록, 즉 제N+1 블록 내지 제N+P 블록이 버퍼로부터 신규 노드에 전달되는 것처럼 설명하였으나, 실제로는 전술한 블록들이 제2 스토리지 최적화 연산이 적용되기 전에 버퍼가 아닌 공간으로부터 신규 노드에 전달될 수도 있을 것이다. 또한 제N+P+1 블록 이후의 블록들은, 해당 시점에 제2 스토리지 최적화 연산이 적용되었는지 여부에 따라 버퍼 또는 버퍼가 아닌 저장 공간에서 신규 노드로 전송될 수 있을 것이다. 즉, 버퍼는 신규 노드에 제네시스 정보를 제공한 시점 직후의 딜레이에 대비하기 위한 것만이 아니라, 동기화 과정에서 존재할 수 있는 모든 딜레이에 대비하기 위한 것으로서, 어떤 시점이든 딜레이로 인해 블록을 송신하는 시점보다 제2 스토리지 최적화 연산이 적용되는 시점이 빠른 경우를 대비하기 위한 것이다.
이와 같이 버퍼를 사용하는 실시예에 대한 예시를 설명하기 위해 도 5를 참조하도록 한다.
도 5는 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 보완하기 위해 버퍼를 사용하는 실시예를 나타낸 예시 도면이다.
도 5를 참조로 하면, 해당 시점에 제200 블록(130-200)에 제2 스토리지 최적화 연산이 적용되어, 이를 기준으로 제네시스 정보가 업데이트되고, 버퍼에 저장된 상태이고, 이 때 신규 노드(200)가 추가된 상황을 확인할 수 있다. 신규 노드(200)는, 특정 서비스 노드(100)로부터 제200 블록(130-200)을 획득하여 자기 자신의 최초 블록(230-1)으로 지정하고, 이후 제201 블록 내지 제203 블록(130-201 내지 130-203) 및 이후의 블록들을 획득하여 데이터 체인을 생성하고자 할 것이다.
이 때 모종의 사정으로 제201 블록 내지 제203 블록(130-201 내지 130-203)이 신규 노드(200)에 전달되기 전에 이에 제2 스토리지 최적화 연산이 적용된 경우, 아직 삭제되지 않고 버퍼에 저장된 상태이므로, 도 5에서 확인할 수 있듯 이들이 신규 노드(200)에 전달되어, 신규 노드(200)의 두 번째 내지 네 번째 블록(203-201 내지 230-203)으로 지정될 수 있을 것이다. 만일 버퍼가 없다면 제201 블록 내지 제203 블록(130-201 내지 130-203)이 이미 삭제된 상태이므로 신규 노드(200)는 제200 블록(130-200 또는 230-200)을 기준으로 데이터 체인을 완성할 수 없을 것이다.
이상 제2 스토리지 최적화 연산 및 이를 보완하기 위한 변형 실시예에 대해 설명하였다. 이하 제2 스토리지 최적화 연산을 더욱 보완하기 위한 또다른 변형 실시예에 대해 설명하고자 한다.
이상과 같이 제2 스토리지 최적화 연산을 수행하면, 제네시스 정보가 업데이트됨으로써 데이터의 연결 구조나 시드가 되는 블록에 대한 정보는 계속 유지될 수 있으나, 블록들이 모두 삭제되므로 신뢰성에 대한 문제가 존재한다. 악의를 가진 해커가 제네시스 정보를 위변조하는 등의 행위를 저지르게 되면 이를 감지해 내기가 어렵기 때문이다. 이를 보완하기 위해, 특정 서비스 노드(100)가 각 블록을 생성할 때, 그 헤더 정보에 블록 핑거프린트 해시 정보가 추가적으로 포함되도록 하는 방법을 상정하고자 한다.
구체적으로, 특정 서비스 노드(100)는, 동기화 과정에서 특정 블록을 생성할 때, 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 할 수 있다. 이 때 특정 블록 핑거프린트 해시 정보는, 특정 블록에 대한 블록 해시 정보 및 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것일 수 있다.
일 예로, 특정 서비스 노드(100)가 제 N 블록을 생성하는 경우, 그 헤더 정보에 포함될 제N 블록 핑거프린트 해시 정보는 이하 수식에 따라 계산될 수 있다.
Figure 112019043052491-pat00011
상기 수식에서,
Figure 112019043052491-pat00012
은 제 N 블록 핑거프린트 해시 정보를 의미하고,
Figure 112019043052491-pat00013
은 제N-1 블록 핑거프린트 해시 정보를 의미하며,
Figure 112019043052491-pat00014
은 제N 블록에 대한 블록 해시 정보를 의미할 수 있다. 또한,
Figure 112019043052491-pat00015
은 각각 제N 블록 핑거프린트 해시 정보에 대한 솔트 값을 의미할 수 있다. 또한, hash 함수는 제N-1 블록 핑거프린트 해시 정보 및 제N 블록에 대한 블록 해시 정보를 입력으로 받아 해시 값을 출력하는 기설정된 해시 함수를 의미할 수 있는데, SHA-256, MD5 등의 기존에 알려진 해시 함수들을 사용할 수 있을 것이나, 이에 한정될 것은 아니다. 다만, 제1 블록 핑거프린트 해시 정보는 예외적으로 제1 블록에 대한 블록 해시 정보를 참조로 하여 생성되는 것일 수 있다. 일 예로, 제1 블록 핑거프린트 해시 정보의 값은 제1 블록에 대한 블록 해시 정보의 값과 동일할 수 있다.
이 때, 특정 블록이 제N 블록인 경우, 전술한 과거 블록 핑거프린트 해시 정보는 상기 수식에서
Figure 112019043052491-pat00016
에 해당할 수 있다. 이는, 특정 서비스 노드(100)가, 제N-1 블록을 생성하면서 계산한 것으로부터 획득될 수 있다. 즉, 지속적으로 직전 블록까지의 과거 블록 핑거프린트 정보의 값에 해당 블록의 블록 해시 정보의 값을 더함으로써 각각의 블록 핑거프린트 정보가 생성될 수 있다.
이와 같이 블록 핑거프린트 정보를 생성하는 일 예시를 설명하기 위해 도 6을 참조하도록 한다.
도 6은 본 발명의 일 실시예에 따른 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인에 포함된 특정 서비스 노드가 수행하는 제2 스토리지 최적화 연산을 보완하기 위해 블록 핑거프린트 해시 정보를 생성하는 방식을 나타낸 도면이다.
도 6을 참조로 하면, 상기 수식과 같이 직전의 블록 핑거프린트 해시 정보를 사용하여 새로운 블록 핑거프린트 해시 정보가 생성되는 것을 확인할 수 있다. 예를 들어, 제2 블록 핑거프린트 해시 정보는, 제1 블록 해시 정보와 제2 블록 해시 정보에 해시 연산이 가해짐으로써 생성되고, 제3 블록 핑거프린트 해시 정보는, 이와 같은 제 2 블록 핑거프린트 해시 정보와 더불어 제3 블록 해시 정보에 해시 연산이 가해짐으로써 생성되는 것을 확인할 수 있다. 블록 핑거프린트 해시 정보는 상기 수식에 따라 본 도면과 같이 생성될 수 있다.
한편, 이와 같이 매 블록이 생성될 때, 각각에 대한 블록 핑거프린트 정보가 포함되고, 특정 서비스 노드(100)는, 특정 블록이 최적화 대상 블록으로 선택된 경우에, 제네시스 정보를 업데이트할 때, 특정 블록에 대한 특정 블록 핑거프린트 해시 정보를 추가로 참조로 할 수 있다. 구체적으로는, 제네시스 정보에, 시드가 되는 블록을 가리키기 위한, 전술한 블록 넘버 정보, 블록 해시 정보 외에 해당 블록의 블록 핑거프린트 해시 정보가 추가적으로 포함되도록 하는 것이다.
이와 같이 블록 핑거프린트 해시 정보가 지속적으로 제네시스 정보에 포함되면, 블록체인 네트워크에 포함된, 특정 서비스 노드(100)를 포함하는 각각의 서비스 노드들은, 해당 시점의 제네시스 정보에 포함된 블록 핑거프린트 해시 정보를 관리자 단말을 통해 관리자에게 제공할 수 있을 것이다. 이 때 관리자는, 블록 핑거프린트 해시 정보를 서로 비교함으로써, 각 서비스 노드들에 포함된 정보들이 동일한 과거의 데이터 체인으로부터 유래된 것인지 여부를 검증할 수 있을 것이다. 구체적으로는, 각 서비스 노드가 포함하는 블록들이 동일하고, 그들의 트랜잭션 정보들이 모두 동일할 때, 각 서비스 노드들의 블록 핑거프린트 해시 정보는 모두 동일할 것이다. 블록들이 동일하지 않거나 트랜잭션 정보들이 동일하지 않은 경우에도, 대응하는 블록 넘버가 더 작은 블록 핑거프린트 해시 정보에 특정 블록 넘버까지의 블록 해시 정보들을 더한 후, 특정 블록 넘버에 대응하는 다른 블록 핑거프린트 해시 정보와 비교함으로써 각 서비스 노드들에 포함된 정보들을 검증할 수 있을 것이다. 이와 같은 실시예에 따르면, 제네시스 정보의 위변조 행위가 방지되는 바 신뢰성을 담보할 수 있게 된다.
이상 제2 스토리지 최적화 연산의 기본적인 형태 및 그 변형 실시예에 대해 설명하였다. 상기 설명한 실시예들에서는, 제2 스토리지 최적화 연산을 한 번에 한 블록에만 적용하는 것을 상정하였는데, 제1 스토리지 최적화 연산에 대한 부분에서 설명하였듯 한 번에 여러 블록에 제2 스토리지 최적화 연산을 적용하는 것도 가능하다. 구체적인 구현예는 제1 스토리지 최적화 연산의 그것과 동일하므로 자세한 설명은 생략하도록 한다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (32)

  1. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행하는 단계;
    를 포함하는 것을 특징으로 하되,
    상기 (a) 단계는,
    상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고,
    상기 (b) 단계는,
    상기 특정 서비스 노드가, 상기 특정 블록 넘버 정보와 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고,
    상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택한 다음, 상기 특정 최적화 대상 블록에 대한 정보들 중 블록체인 버전 정보, 직전 블록 해시 정보, 머클 해시 정보, 블록 생성 시간 정보, 논스 정보, 블록 채굴 난이도 정보 중 적어도 일부를 포함하는 헤더 정보는 유지하되, 상기 특정 최적화 대상 블록에 포함된 트랜잭션들에 대한 정보를 포함하는 트랜잭션 정보를 삭제하거나, 상기 트랜잭션 정보를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하고,
    상기 (b) 단계 이후에,
    상기 특정 서비스 노드가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하며,
    상기 특정 서비스 노드가, 상기 서비스 노드들과 동기화를 수행하면서 제N 블록 - N은 상기 특정 블록 넘버 정보에 대응하는 정수임 - 이 생성된 경우, 제N-K - K는 상기 임계 블록 개수 정보에 대응하는 정수임 - 블록을 상기 특정 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행한 다음, 상기 서비스 노드들과 동기화를 수행하면서 상기 신규 블록으로서 제N+1 블록을 생성하고, 제N+1-K 블록을 상기 신규 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1항에 있어서,
    상기 (b) 단계는,
    상기 특정 서비스 노드가, 상기 임계 시간 정보를 참조로 하여, 자신에 저장된 블록들 중 현재 시각으로부터 상기 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록이 있는 경우, 상기 최적화 조건이 만족된 것으로 판단하고 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록을 상기 최적화 대상 블록으로 선택하는 것을 특징으로 하는 방법.
  6. 제 1항에 있어서,
    상기 (b) 단계는,
    상기 특정 서비스 노드가, 상기 최적화 조건이 만족되는 경우, 자신에 저장된 블록들 중 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록, 자신에 포함된 블록들 둥 적어도 일부인 적어도 하나 이상의 최적화 대상 블록들을 선택하여 이에 상기 제1 스토리지 최적화 연산을 적용하는 것을 특징으로 하는 방법.
  7. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계;
    를 포함하되,
    상기 (a) 단계는,
    상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고,
    상기 (b) 단계는,
    상기 특정 서비스 노드는, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고,
    상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택하고, 상기 특정 최적화 대상 블록에 대한 정보를 참조로 하여 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록에 대한 정보를 삭제하거나, 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하며,
    상기 특정 서비스 노드가, 상기 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록을, 일정 개수의 새로운 블록이 생성되는 동안 기설정된 사이즈를 가지는 버퍼에 저장하여 둔 다음 (i) 이를 삭제하거나, (ii) 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 것을 특징으로 하는 방법.
  8. 삭제
  9. 삭제
  10. 제 7항에 있어서,
    상기 (b) 단계 이후에,
    상기 특정 서비스 노드가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록을 사용하여 상기 제2 스토리지 최적화 연산을 수행한 다음, 상기 신규 최적화 대상 블록을 상기 버퍼에 저장하는 과정을 거치도록 하는 것을 특징으로 하는 방법.
  11. 제 7항에 있어서,
    상기 특정 서비스 노드가, 상기 블록체인 네트워크에 신규 노드가 추가되는 경우, 제N 블록 - N은 상기 특정 최적화 대상 블록의 블록 넘버 정보에 대응하는 정수임 - 에 대한 정보를 참조로 하여 업데이트된 시점의 제네시스 정보를 상기 신규 노드에 제공한 후, 상기 신규 노드와 동기화 과정을 수행하면서, 상기 버퍼에 저장된 제N+1 블록 내지 제N+P 블록 - P는 기설정된 상기 버퍼의 사이즈와 같거나 상기 버퍼의 사이즈보다 작은 정수임 - 들에 대한 정보를 상기 신규 노드에 제공함으로써 상기 신규 노드가 상기 제2 스토리지 최적화 연산에도 불구하고 상기 제N 블록을 참조로 하여 업데이트된 시점의 상기 제네시스 정보를 기준으로 동기화될 수 있도록 하는 것을 특징으로 하는 방법.
  12. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계;
    를 포함하되,
    상기 (a) 단계는,
    상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 특정 서비스 노드가, 상기 동기화 과정에서, 제N 블록 - N은 임의의 정수임 - 을 생성하면서, 상기 제 N 블록의 헤더 정보에 제N 블록 핑거프린트 해시 정보가 포함되도록 하되,
    Figure 112020092552009-pat00033

    제N 핑거프린트 해시 정보는 상기 수식에 따라 생성되고, 상기 수식에서, 상기
    Figure 112020092552009-pat00034
    은 상기 제 N 블록 핑거프린트 해시 정보를 의미하고, 상기
    Figure 112020092552009-pat00035
    은 제N-1 블록 핑거프린트 해시 정보를 의미하며,
    Figure 112020092552009-pat00036
    은 제N 블록에 대한 블록 해시 정보를 의미하고, 상기
    Figure 112020092552009-pat00037
    은 상기 제N 블록 핑거프린트 해시 정보에 대한 솔트 값을 의미하며, 상기 hash 함수는 상기 제N-1 블록 핑거프린트 해시 정보 및 상기 제N 블록에 대한 블록 해시 정보를 입력으로 받아 해시 값을 출력하는 기설정된 해시 함수를 의미하고, 제1 블록 핑거프린트 해시 정보는 제1 블록에 대한 블록 해시 정보를 참조로 하여 생성되는 것을 특징으로 하는 방법.
  13. 삭제
  14. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계;
    를 포함하되,
    상기 (a) 단계는,
    상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 (b) 단계에서,
    상기 특정 서비스 노드는, 상기 특정 블록이 최적화 대상 블록으로 선택된 경우, 상기 특정 블록 핑거프린트 해시 정보를 포함하는 상기 특정 블록에 대한 정보를 추가적으로 참조로 하여 상기 제2 스토리지 최적화 연산을 통해 상기 제네시스와 관련된 정보를 업데이트하는 것을 특징으로 하는 방법.
  15. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계;
    를 포함하되,
    상기 (a) 단계는,
    상기 특정 서비스 노드가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 블록체인 네트워크에 포함된 각각의 서비스 노드들은, 해당 시점의 제네시스 정보에 포함된 블록 핑거프린트 해시 정보를 제공하여 서로 비교할 수 있도록 지원함으로써, 각각의 서비스 노드들에 포함된 정보들이 동일한 과거의 데이터 체인으로부터 유래된 것인지 여부를 검증할 수 있도록 지원하는 것을 특징으로 하는 방법.
  16. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인을 제공하는 방법에 있어서,
    (a) 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드가, 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 단계;
    (b) 상기 특정 서비스 노드가, (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 단계;
    를 포함하되,
    상기 (b) 단계는,
    상기 특정 서비스 노드가, 자신에 저장된 블록들 중 상기 제2 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록 적어도 하나 이상의 최적화 대상 블록들을 그 블록 넘버가 연속되도록 선택하여 이를 삭제하고, 상기 최적화 대상 블록들 중 그 블록 넘버가 가장 큰 특정 최적화 대상 블록을 선택하여, 이에 대한 정보를 참조로 하여 제네시스 정보를 업데이트함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 방법.
  17. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인 네트워크에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 트랜잭션과 관련된 정보에 대한 적어도 하나의 제1 스토리지 최적화 연산을 수행하는 프로세스; 를 수행하는 것을 특징으로 하되,
    상기 (I) 프로세스는,
    상기 프로세서가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고,
    상기 (II) 프로세스는,
    상기 프로세서가, 상기 특정 블록 넘버 정보와 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고,
    상기 최적화 조건이 만족되는 경우, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택한 다음, 상기 특정 최적화 대상 블록에 대한 정보들 중 블록체인 버전 정보, 직전 블록 해시 정보, 머클 해시 정보, 블록 생성 시간 정보, 논스 정보, 블록 채굴 난이도 정보 중 적어도 일부를 포함하는 헤더 정보는 유지하되, 상기 특정 최적화 대상 블록에 포함된 트랜잭션들에 대한 정보를 포함하는 트랜잭션 정보를 삭제하거나, 상기 트랜잭션 정보를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하고,
    상기 (II) 프로세스 이후에,
    상기 프로세서가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하며,
    상기 프로세서가, 상기 서비스 노드들과 동기화를 수행하면서 제N 블록 - N은 상기 특정 블록 넘버 정보에 대응하는 정수임 - 이 생성된 경우, 제N-K - K는 상기 임계 블록 개수 정보에 대응하는 정수임 - 블록을 상기 특정 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행한 다음, 상기 서비스 노드들과 동기화를 수행하면서 상기 신규 블록으로서 제N+1 블록을 생성하고, 제N+1-K 블록을 상기 신규 최적화 대상 블록으로 선택한 뒤 이에 상기 제1 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제 17항에 있어서,
    상기 (II) 프로세스는,
    상기 프로세서가, 상기 임계 시간 정보를 참조로 하여, 자신에 저장된 블록들 중 현재 시각으로부터 상기 임계 시간 정보의 값에 대응하는 시간 이전에 생성된 블록으로서 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록이 있는 경우, 상기 최적화 조건이 만족된 것으로 판단하고 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록을 상기 최적화 대상 블록으로 선택하는 것을 특징으로 하는 특정 서비스 노드.
  22. 제 17항에 있어서,
    상기 (II) 프로세스는,
    상기 프로세서가, 상기 최적화 조건이 만족되는 경우, 자신에 저장된 블록들 중 상기 제1 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록, 자신에 포함된 블록들 둥 적어도 일부인 적어도 하나 이상의 최적화 대상 블록들을 선택하여 이에 상기 제1 스토리지 최적화 연산을 적용하는 것을 특징으로 하는 특정 서비스 노드.
  23. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하되,
    상기 (I) 프로세스는,
    상기 프로세서가, 상기 동기화 과정에서 특정 블록 넘버 정보에 대응하는 특정 블록을 생성하고,
    상기 (II) 프로세스는,
    상기 프로세서는, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여, 상기 특정 블록 넘버 정보의 값이 상기 임계 블록 개수 정보의 값보다 큰 경우 상기 최적화 조건이 만족된 것으로 판단하고,
    상기 최적화 조건이 만족되면, 상기 특정 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 자신에 저장된 각각의 블록들 중 적어도 일부인 특정 최적화 대상 블록을 선택하고, 상기 특정 최적화 대상 블록에 대한 정보를 참조로 하여 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록에 대한 정보를 삭제하거나, 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하며,
    상기 프로세서가, 상기 제네시스 정보를 업데이트한 후, 상기 특정 최적화 대상 블록을, 일정 개수의 새로운 블록이 생성되는 동안 기설정된 사이즈를 가지는 버퍼에 저장하여 둔 다음 (i) 이를 삭제하거나, (ii) 이를 자기 자신에게서 제거한 후 타 메모리 공간으로 전송하는 것을 특징으로 하는 특정 서비스 노드.
  24. 삭제
  25. 삭제
  26. 제 23항에 있어서,
    상기 (II) 프로세스 이후에,
    상기 프로세서가, 상기 특정 블록이 생성된 이후에 상기 서비스 노드들과 동기화를 수행하면서 신규 블록이 생성되면, 상기 신규 블록에 대한 신규 블록 넘버 정보 및 상기 임계 블록 개수 정보를 참조로 하여 신규 최적화 대상 블록을 선택한 뒤, 상기 신규 최적화 대상 블록을 사용하여 상기 제2 스토리지 최적화 연산을 수행한 다음, 상기 신규 최적화 대상 블록을 상기 버퍼에 저장하는 과정을 거치도록 하는 것을 특징으로 하는 특정 서비스 노드.
  27. 제 23항에 있어서,
    상기 프로세서가, 상기 블록체인 네트워크에 신규 노드가 추가되는 경우, 제N 블록 - N은 상기 특정 최적화 대상 블록의 블록 넘버 정보에 대응하는 정수임 - 에 대한 정보를 참조로 하여 업데이트된 시점의 제네시스 정보를 상기 신규 노드에 제공한 후, 상기 신규 노드와 동기화 과정을 수행하면서, 상기 버퍼에 저장된 제N+1 블록 내지 제N+P 블록 - P는 기설정된 상기 버퍼의 사이즈와 같거나 상기 버퍼의 사이즈보다 작은 정수임 - 들에 대한 정보를 상기 신규 노드에 제공함으로써 상기 신규 노드가 상기 제2 스토리지 최적화 연산에도 불구하고 상기 제N 블록을 참조로 하여 업데이트된 시점의 상기 제네시스 정보를 기준으로 동기화될 수 있도록 하는 것을 특징으로 하는 특정 서비스 노드.
  28. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하되,
    상기 (I) 프로세스는,
    상기 프로세서가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 프로세서가, 상기 동기화 과정에서, 제N 블록 - N은 임의의 정수임 - 을 생성하면서, 상기 제 N 블록의 헤더 정보에 제N 블록 핑거프린트 해시 정보가 포함되도록 하되,
    Figure 112020092552009-pat00038

    제N 핑거프린트 해시 정보는 상기 수식에 따라 생성되고, 상기 수식에서, 상기
    Figure 112020092552009-pat00039
    은 상기 제 N 블록 핑거프린트 해시 정보를 의미하고, 상기
    Figure 112020092552009-pat00040
    은 제N-1 블록 핑거프린트 해시 정보를 의미하며,
    Figure 112020092552009-pat00041
    은 제N 블록에 대한 블록 해시 정보를 의미하고, 상기
    Figure 112020092552009-pat00042
    은 상기 제N 블록 핑거프린트 해시 정보에 대한 솔트 값을 의미하며, 상기 hash 함수는 상기 제N-1 블록 핑거프린트 해시 정보 및 상기 제N 블록에 대한 블록 해시 정보를 입력으로 받아 해시 값을 출력하는 기설정된 해시 함수를 의미하고, 제1 블록 핑거프린트 해시 정보는 제1 블록에 대한 블록 해시 정보를 참조로 하여 생성되는 것을 특징으로 하는 특정 서비스 노드.
  29. 삭제
  30. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하되,
    상기 (I) 프로세스는,
    상기 프로세서가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 (II) 프로세스에서,
    상기 프로세서는, 상기 특정 블록이 최적화 대상 블록으로 선택된 경우, 상기 특정 블록 핑거프린트 해시 정보를 포함하는 상기 특정 블록에 대한 정보를 추가적으로 참조로 하여 상기 제2 스토리지 최적화 연산을 통해 상기 제네시스와 관련된 정보를 업데이트하는 것을 특징으로 하는 특정 서비스 노드.
  31. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하되,
    상기 (I) 프로세스는,
    상기 프로세서가, 상기 동기화 과정에서 특정 블록을 생성할 때, 상기 특정 블록의 헤더 정보에 특정 블록 핑거프린트 해시 정보가 포함되도록 하되,
    상기 특정 블록 핑거프린트 해시 정보는, (i) 상기 특정 블록에 대한 블록 해시 정보 및 (ii) 상기 특정 블록이 생성되기 이전에 생성된 블록들 중 적어도 일부에 대한 블록 해시 정보를 참조로 하여 생성된 과거 블록 핑거프린트 해시 정보를 참조로 하여 생성된 것을 특징으로 하고,
    상기 블록체인 네트워크에 포함된 각각의 서비스 노드들은, 해당 시점의 제네시스 정보에 포함된 블록 핑거프린트 해시 정보를 제공하여 서로 비교할 수 있도록 지원함으로써, 각각의 서비스 노드들에 포함된 정보들이 동일한 과거의 데이터 체인으로부터 유래된 것인지 여부를 검증할 수 있도록 지원하는 것을 특징으로 하는 특정 서비스 노드.
  32. 각 노드가 사용하는 저장 공간을 최적화할 수 있는 블록체인에 포함된, 최적화 조건이 만족되면 자기 자신의 스토리지를 최적화하도록 설정된 특정 서비스 노드에 있어서,
    인스트럭션들을 저장하는 하나 이상의 메모리; 및
    상기 인스트럭션들을 수행하도록 설정된 하나 이상의 프로세서를 포함하되,
    상기 프로세서는, (I) 상기 블록체인 네트워크에 포함된 각각의 서비스 노드들과 동기화를 수행하면서 각각의 블록들을 생성하는 프로세스; (II) (i) 상기 블록들에 대한 블록 넘버 정보 및 기설정된 임계 블록 개수 정보를 참조로 하거나 (ii) 기설정된 임계 시간 정보를 참조로 하여, 상기 최적화 조건이 만족되는지를 판단하고, 상기 최적화 조건이 만족되는 경우 제네시스와 관련된 정보에 대한 적어도 하나의 제2 스토리지 최적화 연산을 수행하는 프로세스;를 수행하되,
    상기 (II) 프로세스는,
    상기 프로세서가, 자신에 저장된 블록들 중 상기 제2 스토리지 최적화 연산이 적용되지 않은 블록의 개수와 상기 임계 블록 개수의 비율이 기설정된 임계치 이하가 되도록 적어도 하나 이상의 최적화 대상 블록들을 그 블록 넘버가 연속되도록 선택하여 이를 삭제하고, 상기 최적화 대상 블록들 중 그 블록 넘버가 가장 큰 특정 최적화 대상 블록을 선택하여, 이에 대한 정보를 참조로 하여 제네시스 정보를 업데이트함으로써 상기 제2 스토리지 최적화 연산을 수행하는 것을 특징으로 하는 특정 서비스 노드.
KR1020190048772A 2019-04-25 2019-04-25 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치 KR102204605B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190048772A KR102204605B1 (ko) 2019-04-25 2019-04-25 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치
US16/850,283 US11424912B2 (en) 2019-04-25 2020-04-16 Method and device for providing blockchain network capable of optimizing storages of respective nodes included therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190048772A KR102204605B1 (ko) 2019-04-25 2019-04-25 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200125065A KR20200125065A (ko) 2020-11-04
KR102204605B1 true KR102204605B1 (ko) 2021-01-19

Family

ID=72917419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190048772A KR102204605B1 (ko) 2019-04-25 2019-04-25 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치

Country Status (2)

Country Link
US (1) US11424912B2 (ko)
KR (1) KR102204605B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204605B1 (ko) * 2019-04-25 2021-01-19 주식회사 웨이투빗 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치
CN112463753B (zh) 2020-11-06 2023-01-10 苏州浪潮智能科技有限公司 一种区块链数据存储方法、系统、设备及可读存储介质
KR102655765B1 (ko) * 2021-06-16 2024-04-09 계명대학교 산학협력단 블록체인 제공 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224017A (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 処理システムおよび処理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI403175B (zh) * 2010-06-11 2013-07-21 Ind Tech Res Inst 畫面內預測模式最佳化方法與影像壓縮方法以及裝置
KR101252375B1 (ko) * 2010-12-28 2013-04-08 한양대학교 산학협력단 저장 장치의 중복 제거 성능 향상을 위한 맵핑 관리 시스템 및 방법
US9830342B2 (en) * 2014-11-20 2017-11-28 International Business Machines Corporation Optimizing database deduplication
JP6425586B2 (ja) * 2015-03-04 2018-11-21 株式会社キーエンス 光学式変位計測システム、撮像条件最適化方法および撮像条件最適化プログラム
US10938571B2 (en) * 2016-10-26 2021-03-02 Acronis International Gmbh System and method for verification of data transferred among several data storages
KR102026225B1 (ko) * 2017-01-19 2019-09-27 주식회사 케이티 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법
KR102204605B1 (ko) * 2019-04-25 2021-01-19 주식회사 웨이투빗 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치
US10935603B1 (en) * 2019-08-07 2021-03-02 Seagate Technology Llc Data channel optimization with smart black box algorithms

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017224017A (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 処理システムおよび処理方法

Also Published As

Publication number Publication date
KR20200125065A (ko) 2020-11-04
US11424912B2 (en) 2022-08-23
US20200344044A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
KR102204605B1 (ko) 각 노드가 사용하는 저장 공간을 자동으로 최적화할 수 있는 블록체인을 제공하는 방법 및 장치
CN110442579B (zh) 一种状态树数据存储方法、同步方法及设备和存储介质
CN109274754B (zh) 用于在区块链网络中同步数据的方法、设备和存储介质
WO2018112949A1 (zh) 区块链的挖矿方法、装置和节点设备
US7613740B2 (en) Control of a data replication engine using attributes associated with a transaction
US7523110B2 (en) High availability designated winner data replication
CN109271245A (zh) 一种区块处理任务的控制方法和装置
US11182403B2 (en) Systems and methods of launching new nodes in a blockchain network
US20170031948A1 (en) File synchronization method, server, and terminal
CN105324757A (zh) 具有分布式清单的去复制的数据存储系统
CN110362633B (zh) 区块数据存储方法、装置、计算机设备及存储介质
JP2014523577A (ja) 最近使用した文書のリストの自動同期
CN109542979A (zh) 一种区块链系统快速同步及简精数据存储的方式
JP2018018348A (ja) ブロックチェーンを作成するシステム及びプログラム
JP2021518962A (ja) ブロックチェーンブロックの非同期処理
AU2019381980A1 (en) Taking snapshots of blockchain data
CN109492049B (zh) 用于区块链网络的数据处理、区块生成及同步方法
EP4231167A1 (en) Data storage method and apparatus based on blockchain network
CN110223174B (zh) 区块交易记账方法和系统、数据处理终端、区块链系统
CN112384906A (zh) 基于mvcc的数据库系统的异步缓存一致性
CN113885780A (zh) 数据同步方法、装置、电子设备、系统和存储介质
WO2020098817A2 (en) Taking snapshots of blockchain data
KR102181098B1 (ko) 블록 체인을 이용한 분산 데이터베이스 시스템 및 방법
CN112800050A (zh) 基于状态树的交易数据存储方法、系统、装置及p2p网络
Kohler et al. A performance comparison between parallel and lazy fetching in vertically distributed cloud databases

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant