KR20200132521A - 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법 - Google Patents

블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법 Download PDF

Info

Publication number
KR20200132521A
KR20200132521A KR1020190058190A KR20190058190A KR20200132521A KR 20200132521 A KR20200132521 A KR 20200132521A KR 1020190058190 A KR1020190058190 A KR 1020190058190A KR 20190058190 A KR20190058190 A KR 20190058190A KR 20200132521 A KR20200132521 A KR 20200132521A
Authority
KR
South Korea
Prior art keywords
state
state value
integrity
request
value
Prior art date
Application number
KR1020190058190A
Other languages
English (en)
Other versions
KR102620584B1 (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 KR1020190058190A priority Critical patent/KR102620584B1/ko
Priority to US16/727,235 priority patent/US11314813B2/en
Publication of KR20200132521A publication Critical patent/KR20200132521A/ko
Application granted granted Critical
Publication of KR102620584B1 publication Critical patent/KR102620584B1/ko

Links

Images

Classifications

    • 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/903Querying
    • G06F16/90335Query processing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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]
    • 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

Landscapes

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

Abstract

블록체인 기반 시스템에서 상태 DB의 무결성을 보장하는 장치 및 그 방법 방법이 제공된다. 본 개시의 몇몇 실시예에 따른 상태 DB 무결성 보장 장치는, 상태(state) 값에 대한 조회를 요청받고, 상기 요청의 응답으로, 자신의 상태 DB를 조회하여 제1 상태 값을 얻으며, 상기 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하고, 상기 제1 상태 값과 상기 제2 상태 값을 비교할 수 있다. 그렇게 함으로써, 상태 DB의 무결성과 조회 결과의 신뢰성이 보장될 수 있다.

Description

블록체인 기반 시스템에서 상태 DB의 무결성을 보장하는 장치 및 그 방법{APPARATUS FOR GUARANTEEING INTEGRITY OF STATE DATABASE IN BLOCKCHAIN-BASED ENVIRONMENT AND METHOD THEREOF}
본 개시는 블록체인 기반 시스템에서 상태 DB(state database)의 무결성을 보장하는 장치 및 그 방법에 관한 것이다. 보다 자세하게는, 블록체인 기반 시스템에서 상태 값에 대한 조회 요청을 처리할 때, 상태 DB에 저장된 상태 값의 무결성 검증을 수행함으로써 조회 결과의 신뢰성을 보장하고, 조작된 상태 값의 무결성을 복구함으로써 상태 DB의 무결성을 보장할 수 있는 장치 및 그 장치의 동작 방법에 관한 것이다.
블록체인(blockchain)은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 블록체인 노드들이 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술을 의미한다. 블록체인은 네트워크에 속한 모든 블록체인 노드가 모든 트랜잭션을 검증하고 기록하는 합의(consensus) 프로세스를 통해 트랜잭션의 무결성 및 보안성을 보장할 수 있다.
현존하는 대부분의 블록체인 기반 시스템(e.g. 하이퍼레저)은 블록체인과 별도로 최신 상태 데이터(즉, 상태 키와 대응되는 값으로 구성된 데이터)가 보관된 상태 DB를 운영한다. 예를 들어, 각 블록체인 노드가 상태 DB를 관리하고, 상태 DB를 이용하여 상태 값에 대한 조회 요청(즉, 조회 트랜잭션)을 처리한다.
그런데, 대부분의 블록체인 기반 시스템은 조회 요청을 처리할 때 상태 값에 대한 무결성 검증을 수행하지 않는다. 따라서, 악의적인 의도를 가진 블록체인 노드는 용이하게 자신의 상태 DB를 조작할 수 있으며, 조작된 상태 값을 조회 결과로 제공할 수도 있다. 이로 인해, 블록체인 기반 시스템에서 조회 결과의 신뢰성이 담보될 수 없으며, 상태 DB의 무결성 또한 보장될 수 없다.
한국공개특허 제10-2018-0130623호 (2018.12.10 공개)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 블록체인 기반 시스템에서 상태 DB(state database)의 무결성을 보장할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 블록체인 기반 시스템에서 조회 결과의 신뢰성을 보장할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 블록체인 기반 시스템에서 상태 DB의 무결성을 담보함과 동시에 일정 수준 이상의 조회 트랜잭션 처리 성능을 보장할 수 있는 장치 및 그 장치의 동작 방법을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 상태 DB 무결성 보장 장치는, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리, 하나 이상의 블록체인 노드와 통신하는 통신 인터페이스 및 상기 저장된 하나 이상의 인스트럭션들을 실행함으로써, 상태(state) 값에 대한 조회를 요청받고, 상기 요청의 응답으로, 상태 DB를 조회하여 제1 상태 값을 얻으며, 상기 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하고, 상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상태 값의 무결성을 판단하는 프로세서를 포함할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 상기 제1 상태 값이 무결하지 않다는 판단에 응답하여, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상기 제1 상태 값의 DB를 업데이트할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 상기 제1 상태 값이 무결하지 않은 것으로 판단된 경우, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상기 상태 DB를 재구축(rebuild)할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 상기 제2 상태 값이 무결하지 않다는 판단에 응답하여, 상기 제2 상태 값과 연관된 블록체인 노드로 상태 DB 업데이트 요청 메시지를 전송할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 복수의 블록체인 노드로 상기 요청을 포워딩하고, 지정된 조건이 만족될 때까지, 상기 복수의 블록체인 노드로부터 상기 제2 상태 값을 포함하는 하나 이상의 상태 값을 수신하며, 상기 제1 상태 값과 상기 수신된 상태 값을 비교할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 상기 요청과 관계없이 지정된 조건이 만족됨에 따라, 상기 하나 이상의 블록체인 노드로 상태 값을 요청하여 상기 하나 이상의 블록체인 노드로부터 제3 상태 값을 수신하고, 상기 상태 DB에 저장된 제4 상태 값과 상기 제3 상태 값을 비교하여 무결성 판단을 수행하며, 상기 제4 상태 값이 무결하지 않다는 판단에 응답하여, 상기 제4 상태 값의 DB를 업데이트할 수 있다.
몇몇 실시예에서, 상기 프로세서는, 신뢰도 스코어가 기준치 이상인 블록체인 노드로부터 상기 제2 상태 값을 수신할 수 있다. 여기서, 상기 신뢰도 스코어는 상기 블록체인 노드의 상태 DB가 조작된 횟수에 기초하여 결정될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 다른 몇몇 실시예에 따른 상태 DB 무결성 보장 장치, 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리, 복수의 블록체인 노드와 통신하는 통신 인터페이스 및 상기 저장된 하나 이상의 인스트럭션들을 실행함으로써, 상태(state) 값에 대한 조회를 요청받고, 상기 요청에 응답하여, 상기 복수의 블록체인 노드로 상기 요청을 포워딩하며, 상기 복수의 블록체인 노드로부터 복수의 상태 값을 수신하고, 상기 수신된 복수의 상태 값을 비교하여 상태 값의 무결성을 판단하는 프로세서를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 상태 DB 무결성 보장 방법은, 컴퓨팅 장치에서 상태 DB의 무결성을 보장하는 방법에 있어서, 상태(state) 값에 대한 조회를 요청받는 단계, 상기 요청의 응답으로, 상기 컴퓨팅 장치의 상태 DB를 조회하여 제1 상태 값을 얻는 단계;, 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하는 단계 및 상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상기 요청된 상태 값의 무결성을 판단하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 상태(state) 값에 대한 조회를 요청받는 단계, 상기 요청의 응답으로, 상기 컴퓨팅 장치의 상태 DB를 조회하여 제1 상태 값을 얻는 단계, 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하는 단계 및 상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상기 요청된 상태 값의 무결성을 판단하는 단계를 실행시키기 위하여, 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
도 1은 블록체인 환경에서 발생될 수 있는 상태 DB의 무결성 문제를 설명하기 위한 예시도이다.
도 2는 본 개시의 몇몇 실시예에 따른 블록체인 기반 시스템을 설명하기 위한 예시적인 구성도이다.
도 3은 본 개시의 다양한 실시예에서 참조될 수 있는 레저(ledger)의 구성을 설명하기 위한 예시도이다.
도 4는 본 개시의 제1 실시예에 따른 상태 DB의 무결성 보장 방법을 설명하기 위한 예시적인 흐름도이다.
도 5 및 도 6은 본 개시의 제1 실시예에 따른 상태 DB의 무결성 보장 방법을 부연 설명하기 위한 예시도이다.
도 7은 본 개시의 제2 실시예에 따른 상태 DB의 무결성 보장 방법을 부연 설명하기 위한 예시도이다.
도 8은 본 개시의 제3 실시예에 따른 상태 DB의 무결성 보장 방법을 부연 설명하기 위한 예시도이다.
도 9는 본 개시의 다른 몇몇 실시예에 따른 블록체인 기반 시스템을 설명하기 위한 예시적인 구성도이다.
도 10은 본 개시의 제4 실시예에 따른 상태 DB의 무결성 보장 방법을 설명하기 위한 예시적인 흐름도이다.
도 11은 본 개시의 제4 실시예에 따른 상태 DB의 무결성 보장 방법을 부연 설명하기 위한 예시도이다.
도 12는 본 개시의 다양한 실시예에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서 설명될 본 개시의 다양한 실시예들은 블록체인 기반 시스템에서 상태 DB의 무결성을 보장하고 일정 수준 이상의 조회 성능(즉, 조회 트랜잭션의 처리 성능)을 보장할 수 있는 장치 또는 그 장치의 동작 방법에 관한 것이다. 본격적으로 본 개시의 다양한 실시예들에 대해 설명하기 전에, 보다 이해의 편의를 제공하기 위해, 상태 DB의 무결성 문제에 대하여 간략하게 설명하도록 한다.
도 1은 블록체인 기반 시스템에서 발생될 수 있는 상태 DB의 무결성 문제를 나타내는 예시도이다. 보다 상세하게는, 도 1은 3개의 블록체인 노드(3a, 5a, 7a) 중 제1 블록체인 노드(3a)가 클라이언트 단말(1)의 조회 요청을 처리하는 과정을 예시하고 있다. 또한, 도 1은 제1 블록체인 노드(3a)가 자신의 상태 DB(3b)를 조작한 경우를 예로써 도시하고 있다.
도 1에 도시된 바와 같이, 악의적인 의도를 가진 제1 블록체인 노드(3a)가 상태 DB(3b)의 특정 상태 값(e.g. 상태 키 A에 대응되는 값)을 조작(e.g. 위조, 변조)하는 경우가 발생될 수 있다(①블록체인에 기록된 데이터는 그 특성 상 쉽게 조작될 수 없으나, 상태 DB에 저장된 상태 데이터는 해당 블록체인 노드(3a)에 의해 용이하게 조작될 수 있기 때문이다.
상태 값이 조작된 이후, 클라이언트 단말(1)이 제1 블록체인 노드(3a)로 특정 상태 값에 대한 조회를 요청(e.g. 상태 키 A로 조회를 요청)하면, 클라이언트 단말(1)은 제1 블록체인 노드(3a)로부터 조작된 상태 값(e.g. 10000)을 전달받게 된다(②, ③). 어떠한 블록체인 노드(3a, 5a, 7a)도 조회 트랜잭션에 대한 무결성 검증 동작을 수행하지 않기 때문이다.
무결성 검증 동작을 수행하지 않는 이유는 조회 트랜잭션의 처리 성능과 밀접한 관련이 있다. 상태 값에 대한 무결성을 검증하려면, 블록체인에 액세스하여 해당 상태 값과 연관된 트랜잭션 데이터를 가져오고, 트랜잭션 데이터와 상기 상태 값을 비교하는 등의 프로세싱 동작이 수행되어야 한다. 이러한 동작들은 액세스 및 프로세싱 딜레이를 유발하기 때문에, 무결성 검증 동작이 수행되면 조회 트랜잭션의 처리 성능은 저하될 수 밖에 없다. 특히, 블록체인은 파일 시스템의 형태로 구현되는 것이 일반적이기 때문에, 블록체인에 대한 빈번한 액세스는 상당한 딜레이를 유발하게 되며, 이는 전체 시스템의 조회 트랜잭션 처리 성능을 크게 저하시킬 수 있다.
위와 같은 성능 상의 이유로, 다양한 블록체인 기반 시스템들은 무결성 검증 동작을 수행하지 않고 상태 DB(e.g. 3b, 5b, 7b)만을 이용하여 조회 트랜잭션을 처리하고 있다. 그러나, 상태 DB(e.g. 3b, 5b, 7b)가 이용되면, 도 1에 도시된 바와 같이, 조회 결과의 신뢰성과 상태 DB의 무결성이 담보될 수 없으며, 이는 필연적으로 블록체인 기반 시스템의 보안 문제를 야기한다.
이하에서는, 상술한 문제점을 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 2는 본 개시의 몇몇 실시예에 따른 블록체인 기반 시스템을 나타내는 예시적인 구성도이다.
도 2에 도시된 바와 같이, 블록체인 기반 시스템은 블록체인 네트워크(20)를 형성하는 복수의 블록체인 노드(10)를 포함할 수 있다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 2에 도시된 블록체인 기반 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 클라이언트 단말(30)과 하나 이상의 블록체인 노드(10)는 동일한 물리적 컴퓨팅 장치 내에서 서로 다른 로직(logic)의 형태로 구현될 수도 있다.
상기 블록체인 기반 시스템은 하나 이상의 클라이언트 단말(30)에게 트랜잭션 처리 서비스를 제공할 수 있다. 예를 들어, 블록체인 기반 시스템은 클라이언트 단말(30)로부터 수신된 조회 트랜잭션을 처리할 수 있다. 즉, 클라이언트 단말(30)은 상태 키를 포함하는 조회 트랜잭션을 전송함으로써 조회를 요청할 수 있고, 블록체인 기반 시스템은 상기 상태 키에 대응되는 상태 값을 제공할 수 있다.
블록체인 노드(10)는 P2P 구조의 블록체인 네트워크를 형성하며, 블록체인 프로토콜/알고리즘에 따라 동작하는 노드이다. 본 개시의 논지를 흐리지 않도록 하기 위해, 블록체인 기술의 일반적인 내용에 대한 설명은 생략하도록 한다. 이하, 임의의 블록체인 노드를 지칭하는 경우에는 참조 번호 "10"를 사용하고, 복수의 블록체인 노드를 구별하여 지칭하는 경우에는 참조 번호 "10"에 알파벳(e.g. a, b, c)을 병기하도록 한다. 또한, 10번대의 참조 번호(e.g. 11, 12, 13 등)들은 각 블록체인 노드(10)를 실시예 별로 구분하여 지칭하는 용도로 활용하도록 한다.
블록체인 노드(10)는 물리적 컴퓨팅 장치로 구현될 수 있고, 가상 머신(virtual machine)과 같은 논리적 컴퓨팅 장치로 구현될 수도 있다. 블록체인 노드(10)가 논리적 컴퓨팅 장치로 구현된 경우, 동일한 물리적 컴퓨팅 장치 내에 복수의 블록체인 노드(10)가 포함될 수도 있다. 상기 물리적 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능 및 통신 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 상기 물리적 컴퓨팅 장치의 일 예시는 도 12를 참조하도록 한다.
본 개시의 다양한 실시예에서, 각 블록체인 노드(10)는 도 3에 도시된 바와 같은 레저(40)를 관리할 수 있다. 레저(40)는 트랜잭션 데이터가 기록된 블록체인(50)과 상태 데이터가 저장된 상태 DB(60)를 포함할 수 있다. 상태 DB(60)에는 최신의 상태 데이터가 저장될 수 있다. 단, 본 개시의 기술적 범위가 이에 한정되는 것은 아니고, 상태 DB(60)에는 과거의 상태 데이터가 더 저장될 수도 있다. 상술한 바와 같이, 상태 DB(60)는 블록체인(50)에 대한 액세스를 최소화함으로써 조회 트랜잭션의 처리 성능 향상을 꾀하는 용도로 이용될 수 있다.
또한, 본 개시의 다양한 실시예에 따르면, 블록체인 노드(10)는 다른 블록체인 노드의 상태 DB를 이용하여 조회 요청된 상태 값의 무결성을 검증함으로써 조회 결과의 신뢰성을 보장할 수 있다. 뿐만 아니라, 블록체인 노드(10)는 다른 블록체인 노드의 상태 DB 또는 자신의 블록체인(e.g. 50)을 이용하여 상태 값의 무결성을 복구할 수 있다. 이를 통해, 상태 DB(e.g. 60)의 무결성도 보장될 수 있다. 이와 같은 실시예에 한하여, 블록체인 노드(10)는 상태 DB 무결성 검증 장치 또는 상태 DB 무결성 보장 장치로 지칭될 수도 있다. 본 실시예에 대한 보다 자세한 설명은 도 4 이하의 도면을 참조하여 후술하도록 한다.
클라이언트 단말(30)은 블록체인 기반 시스템으로부터 트랜잭션 처리 서비스를 제공받는 장치이다. 클라이언트 단말(30)은 어떠한 장치로 구현되더라도 무방하다.
클라이언트 단말(30)과 블록체인 기반 시스템은 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 2 및 도 3을 참조하여 본 개시의 몇몇 실시예에 따른 블록체인 기반 시스템에 대하여 설명하였다. 이하에서는, 도 4 내지 도 8을 참조하여 본 개시의 다양한 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하도록 한다.
이해의 편의를 제공하기 위해, 상기 무결성 보장 방법은 도 2에 도시된 블록체인 환경에서 수행되는 것으로 가정하도록 한다. 예를 들어, 상기 무결성 보장 방법은 도 2에 도시된 블록체인 노드(10)에 의해 수행될 수 있으며, 블록체인 노드(10)는 상기 무결성 보장 방법을 구현한 하나 이상의 인스트럭션들(instructions)을 실행함으로써, 상기 무결성 보장 방법을 수행할 수 있다. 이하, 본 실시예에 관한 설명에서 각 동작의 주어가 생략된 경우, 상기 예시된 장치(10)에 의하여 수행될 수 있는 것으로 이해될 수 있다. 또한, 본 실시예에 따른 무결성 보장 방법은 필요에 따라 논리적으로 수행 순서가 바뀔 수 있는 범위 안에서 각 동작의 수행 순서가 바뀔 수 있음은 물론이다.
도 4는 본 개시의 제1 실시예에 따른 상태 DB의 무결성 보장 방법을 나타내는 예시적인 흐름도이다. 도 4는 블록체인 노드(11a 내지 11c)가 3개인 것을 예시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이며, 블록체인 노드의 수는 얼마든지 달라질 수 있다. 또한, 도 4에 도시된 흐름은 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
이하에서는, 설명의 편의상, 클라이언트 단말(30)로부터 조회 요청을 수신한 블록체인 노드(11a)를 "처리 노드"(11a)로 칭하고, 다른 블록체인 노드(11b, 11c)를 "주변 노드"(11b, 11c)로 칭하도록 한다. 다만, 주변 노드(11b, 11c)는 물리적 또는 논리적인 거리가 처리 노드(11a)와 가까운 노드를 의미하는 것은 아니며, 블록체인 네트워크(20)에 포함되고 처리 노드(11a)와 통신이 가능한 임의의 블록체인 노드를 포함할 수 있다.
도 4에 도시된 바와 같이, 상기 무결성 보장 방법은 상태 값에 대한 조회를 요청받는 단계 S110에서 시작될 수 있다. 조회 요청을 받는다는 것은 상태 키를 포함하는 조회 트랜잭션을 수신하는 것으로 이해될 수 있다.
단계 S120-1 및 단계 S120-2에서, 주변 노드(11b, 11c)로 조회 요청이 포워딩(forwarding)되고, 주변 노드(11b, 11c)로부터 상태 값이 수신된다. 보다 상세하게는, 처리 노드(11a)가 조회 요청을 주변 노드(11b, 11c)로 포워딩하면, 각 주변 노드(11b, 11c)는 요청된 상태 키로 자신의 상태 DB를 조회하고, 조회된 상태 값을 처리 노드(11a)로 전송하게 된다.
몇몇 실시예에서는, 주변 노드(11b, 11c)도 도 4에 도시된 처리 노드(11a)의 동작을 수행할 수 있다. 예를 들어, 주변 노드(11b)도 조회 요청을 다른 주변 노드로 포워딩함으로써 다른 주변 노드로부터 상태 값을 수신하며, 자신의 상태 값과 수신된 상태 값을 비교하여 상태 값에 대한 무결성 판단을 수행할 수 있다. 또한, 무결성이 깨졌다고 판단된 경우, 주변 노드(11b)는 자신의 상태 값을 복구하고, 복구된 상태 값을 처리 노드(11)로 전송할 수 있다. 상태 값을 복구하는 방법에 대해서는 후술하도록 한다.
단계 S130에서, 처리 노드(11a)의 상태 DB에서 요청된 상태 값이 조회된다. 즉, 요청된 상태 키로 상태 DB를 조회하여 상기 상태 키에 대응되는 상태 값이 획득될 수 있다. 몇몇 실시예에서, 단계 S130은 포워딩 단계 S120-1 및 단계 S120-2와 동시에 수행될 수도 있고, 단계 S130은 포워딩 단계 S120-1 및 단계 S120-2보다 먼저 수행될 수도 있다.
단계 S140 및 S150에서, 조회된 상태 값과 주변 노드로부터 수신된 상태 값이 비교된다. 또한, 비교 결과에 기초하여 상태 값의 무결성이 판단된다. 예를 들어, 상기 조회된 상태 값이 수신된 상태 값과 일치하는 경우, 상기 조회된 상태 값은 무결하다고 판단될 수 있다. 상기 조회된 상태 값이 무결하지 않다고 판단된 경우, 단계 S160이 더 수행될 수 있다.
단계 S160에서, 상태 값의 무결성을 복구하기 위해, 상태 DB가 업데이트된다. 본 단계에서, 상태 DB를 업데이트하는 구체적인 방식과 업데이트 범위는 실시예에 따라 달라질 수 있다.
몇몇 실시예에서는, 이전 단계 S120-1 및/또는 S120-2에서 수신된 상태 값을 이용하여 상태 DB의 특정 상태 값(즉, 무결성이 깨진 상태 값)이 업데이트될 수 있다. 예를 들어, 상기 수신된 상태 값을 조회 요청된 상태 키에 대응되는 값으로 설정함으로써, 상태 값의 무결성이 복구될 수 있다. 본 실시예에 따르면, 블록체인에 대한 액세스 없이 고속으로 상태 DB에 대한 업데이트가 수행될 수 있다.
몇몇 실시예에서는, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상태 DB의 특정 상태 값(즉, 무결성이 깨진 상태 값)이 업데이트될 수 있다. 예를 들어, 처리 노드(11a)의 블록체인에 기록된 트랜잭션 데이터 중에서 상기 특정 상태 값과 관련된 트랜잭션 데이터로부터 조회 요청된 상태 키에 대응되는 상태 값(즉, 최신 상태 값)이 획득될 수 있다. 그러면, 획득된 상태 값을 상기 특정 상태 값으로 설정함으로써, 상태 값의 무결성이 복구될 수 있다. 블록체인의 특성 상, 블록체인에 기록된 트랜잭션 데이터를 조작하는 것은 거의 불가능하다. 따라서, 본 실시예에 따르면, 상태 DB의 무결성이 더욱 잘 보장될 수 있다.
몇몇 실시예에서는, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상태 DB가 전반적으로 업데이트될 수 있다. 예를 들어, 블록체인에 기록된 트랜잭션 데이터를 토대로 트랜잭션을 순차적으로 실행함으로써, 상태 DB가 재구축(rebuild)될 수 있다(즉, 전체 상태 값이 업데이트됨). 상태 DB를 다시 구축하는 이유는, 특정 상태 값이 조작된 경우, 다른 상태 값 또한 조작되었을 가능성이 높기 때문이다. 본 실시예에 따르면, 모든 상태 값이 무결한 값으로 업데이트되므로, 상태 DB의 무결성이 더욱 잘 보장될 수 있다. 다만, 본 실시예에서는, 상태 DB에 대한 재구축으로 인해 조회 요청에 대한 응답 딜레이(e.g. 블록체인에 대한 액세스, 프로세싱 딜레이)가 발생될 수 있다. 상기 응답 딜레이를 줄이기 위해, 몇몇 실시예에서는, 트랜잭션 데이터 또는 주변 노드로부터 수신된 상태 값을 이용하여 클라이언트 단말(30)로 조회 결과를 먼저 제공한 다음에 상태 DB에 대한 재구축이 수행될 수도 있다.
몇몇 실시예에서는, 전술한 실시예들의 다양한 조합에 기초하여 상태 DB가 업데이트될 수 있다. 예를 들어, 처리 노드(11a)의 부하(load) 및/또는 블록체인 네트워크(20)의 부하에 기초하여 전술한 실시예들이 조합될 수 있다. 보다 구체적인 예로써, 상기 부하가 임계치 미만인 경우 상태 DB가 재구축되고, 임계치 이상인 경우에는 블록체인 또는 주변 노드(11b, 11c)로부터 수신된 상태 값을 이용하여 특정 상태 값만이 업데이트될 수 있다. 다른 예로써, 상태 DB의 조작 횟수가 임계치 이상인 경우에는 상태 DB가 재구축되고, 임계치 미만인 경우에는 특정 상태 값만이 업데이트될 수도 있다. 이와 같이, 전술한 실시예들은 다양한 조건에 기반하여 다양한 방식으로 조합될 수 있다.
단계 S170에서, 요청된 상태 값이 클라이언트 단말(30)에게 제공된다.
몇몇 실시예에서, 상술한 단계 S160과 단계 S170의 수행 순서는 변경될 수 있으며, 서로 동시에 수행될 수도 있다. 예를 들어, 주변 노드(11b, 11c)로부터 수신된 상태 값을 클라이언트 단말(30)에게 바로 제공하고, 동시 또는 그 이후에 상기 수신된 상태 값을 이용하여 상태 DB가 업데이트될 수도 있다. 이와 같은 경우, 조회 요청에 대한 응답 시간이 최소화될 수 있다.
또한, 몇몇 실시예에서는, 클라이언트 단말(30)의 조회 요청과 무관하게 지정된 조건에 따라 각 블록체인 노드(11a 내지 11c)가 자율적으로 무결성 검증 동작(e.g. 단계 S120-1 내지 S160의 동작들)을 수행할 수 있다. 상기 조건은 일정 주기에 기초한 타이머 조건, 상태 DB의 조작 횟수가 기준치 이상인 조건, 블록체인 노드(11a 내지 11c) 및/또는 블록체인 네트워크(20)의 부하기 기준치 미만인 조건 중 적어도 하나를 포함할 수 있다. 이외에도, 다양한 방식으로 조건이 지정될 수 있어서, 본 개시의 기술적 범위가 상기 열거된 조건에 한정되는 것은 아니다. 본 실시예에 따르면, 조회 요청이 없더라도 자율적으로 상태 DB에 대한 무결성 검증이 수행될 수 있는 바, 블록체인 네트워크(20) 전반에 걸쳐 상태 DB의 무결성 보장 수준이 향상될 수 있다.
이하에서는, 보다 이해의 편의를 제공하기 위해, 도 5 및 도 6에 도시된 예를 참조하여 상술한 제1 실시예에 따른 무결성 보장 방법에 대하여 부연 설명하도록 한다.
도 5는 처리 노드(11a)의 상태 DB가 조작된 경우를 예시하고 있다.
도 5에 도시된 바와 같이, 조회 요청을 받은 처리 노드(11a)는 노드 테이블(71)을 이용하여 주변 노드(11b, 11c)로 조회 요청을 포워딩하고, 상태 값을 수신할 수 있다(①②③노드 테이블(71)은 주변 노드(11b, 11c)의 주소 정보를 포함할 수 있다.
몇몇 실시예에서, 노드 테이블(71)은 주변 노드(11b, 11c)의 상태 정보를 더 포함할 수 있다. 또한, 처리 노드(11a)는 상기 상태 정보를 고려하여 조회 요청을 포워딩받을 주변 노드(11b, 11c)를 결정할 수 있다. 이때, 상기 상태 정보는 RTT(Round Trip Time) 등의 통신 지연 정보, 주변 노드(11b, 11c)의 헬스 체크 정보(e.g. 고장 여부, 통신 단절 여부), 주변 노드(11b, 11c)의 부하 정보 등을 포함할 수 있을 것이나, 이에 한정되는 것은 아니다. 본 실시예에서는, 상기 열거된 상태 정보를 고려하여, 처리 노드(11a)는 통신이 가능하면서 통신 지연이 적거나 부하가 적은 주변 노드를 선택하고, 선택된 주변 노드로 조회 요청을 포워딩할 수 있다. 본 실시예에 따르면, 주변 노드(11b, 11c)로부터 상태 값 요청에 대한 응답이 빠르게 수신될 것인 바, 조회 요청에 대한 처리 속도가 향상될 수 있다.
다른 몇몇 실시예에서, 처리 노드(11a)는 상기 상태 정보와 무관하게 다수의 주변 노드로 조회 요청을 플러딩(flooding) 또는 브로드캐스팅(broadcasting)할 수 있다. 또한, 처리 노드(11a)는 기준 시간 이내에 수신된 상태 값 또는 기준 개수 이상의 상태 값을 이용하여 무결성 검증 동작(e.g. ④, ⑤)을 수행할 수도 있다. 본 실시예에 따르더라도, 주변 노드(11b, 11c)로부터 상태 값 요청에 대한 응답이 빠르게 수신될 것인 바, 조회 요청에 대한 처리 속도가 향상될 수 있다.
다음으로, 처리 노드(11a)는 자신의 상태 DB를 조회한 결과(e.g. 10000)와 수신된 상태 값(e.g. 100)을 비교함으로써, 조회된 상태 값(e.g. 10000)이 무결하지 않다고 판단할 수 있다(④상기 판단에 응답하여, 처리 노드(11a)는 상태 DB를 업데이트할 수 있고, 이로 인해 상태 DB의 무결성이 복구될 수 있다(⑤
또한, 조작된 상태 값(e.g. 10000)이 아닌 본래의 상태 값(e.g. 100)을 조회 결과로 제공함으로써, 조회 결과의 신뢰성이 보장될 수 있다(⑥
이하에서는, 도 6에 도시된 예를 참조하여 설명한다. 도 6은 특정 주변 노드(11b)의 상태 DB가 조작된 경우를 예시하고 있다.
도 6에 도시된 바와 같이, 처리 노드(11a)는 상태 DB에서 조회된 상태 값과 주변 노드(11b, 11c)로부터 수신된 상태 값을 비교함으로써, 특정 주변 노드(11b)의 상태 DB가 조작되었음을 판별할 수 있다(④예를 들어, 특정 주변 노드(11b)로부터 수신된 상태 값이 다른 상태 값과 일치하지 않는 경우, 처리 노드(11a)는 상기 수신된 상태 값이 조작되었다고 판단할 수 있다. 몇몇 실시예에서는, 보다 정확하게 조작 여부를 판별하기 위해, 처리 노드(11a)는 블록체인에 기록된 트랜잭션 데이터를 더 이용하여 조작 여부를 판별할 수도 있다.
위와 같은 경우, 처리 노드(11a)는 특정 주변 노드(11b)로 상태 DB의 업데이트를 요청할 수 있다. 예컨대, 처리 노드(11a)는 특정 주변 노드(11b)로 상태 DB 업데이트 요청 메시지를 전송할 수 있다. 또한, 상기 상태 DB 업데이트 요청 메시지에는 다른 블록체인 노드(e.g. 11a, 11c)의 상태 값이 포함될 수도 있다.
상기 요청을 수신한 특정 주변 노드(11b)는 자신의 상태 DB를 업데이트할 수 있다(⑦상기 상태 DB의 업데이트는 다른 블록체인 노드(e.g. 11a, 11c)의 상태 값을 이용하는 방식, 블록체인에 기록된 트랜잭션 데이터를 이용하는 방식 등과 같이 다양한 방식으로 수행될 수 있다. 이와 관련하여서는, 전술한 실시예들을 참조하도록 한다.
지금까지 도 4 내지 도 6을 참조하여 본 개시의 제1 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하였다. 상술한 방법에 따르면, 조회 요청을 처리할 때 다른 블록체인 노드가 관리하는 상태 데이터를 이용하여 특정 블록체인 노드가 관리하는 상태 DB의 무결성이 검증될 수 있다. 또한, 다양한 방식으로 상태 DB의 무결성이 복구될 수 있다. 이에 따라, 블록체인 기반 시스템에서 상태 DB의 무결성이 보장될 수 있으며, 조회 결과의 신뢰성 또한 보장될 수 있다.
이하에서는, 도 7을 참조하여 본 개시의 제2 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하도록 한다. 명세서의 명료함을 위해, 앞선 실시예와 중복되는 내용에 대한 설명은 생략하도록 한다.
도 7에 도시된 바와 같이, 상기 제2 실시예에서는 조회 요청의 중요도(즉, 조회 트랜잭션의 중요도)가 고려되며, 상기 중요도에 기초하여 무결성 검증 동작이 완화되거나 강화될 수 있다. 상기 중요도는 클라이언트 단말(30)로부터 수신되는 값일 수 있으나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다. 다른 몇몇 실시예에서는, 사전에 트랜잭션의 유형 별로 중요도가 설정되어 있을 수 있다. 이와 같은 경우, 처리 노드(12a)는 클라이언트 단말(30)로부터 중요도 값이 수신되지 않더라도 트랜잭션 유형에 따른 중요도를 반영하여 적절하게 무결성 검증을 수행할 수 있다. 이하에서는, 이해의 편의를 제공하기 위해, 상기 중요도가 클라이언트 단말(30)로부터 수신되는 것을 가정하여 설명을 이어가도록 한다.
몇몇 실시예에서, 처리 노드(12a)는 조회 요청과 함께 수신된 중요도에 기초하여 상기 조회 요청을 포워딩받을 주변 노드의 수를 결정할 수 있다. 예컨대, 중요도가 높을수록 더 많은 주변 노드로 상기 조회 요청이 포워딩될 수 있다. 비교되는 상태 값의 개수가 많을수록 무결성 검증이 강화되는 효과가 있기 때문이다. 도 7은 조회 요청의 중요도가 "1"이기 때문에, 처리 노드(12a)가 1개의 주변 노드(12b)로 조회 요청을 포워딩한 것(②?)을 예시하고 있다.
다른 몇몇 실시예에서, 처리 노드(12a)는 일단 다수의 주변 노드(12b, 12c)로 조회 요청을 포워딩(e.g. 플러딩)하고, 기준 개수 이상의 상태 값만을 수신하여 무결성 검증 동작을 수행할 수 있다. 이때, 상기 기준 개수는 조회 요청의 중요도에 기초하여 결정될 수 있다. 예컨대, 중요도가 높을수록 상기 기준 개수는 더 큰 값으로 결정될 수 있다. 비교되는 상태 값의 개수가 많을수록 무결성 검증이 강화되는 효과가 있기 때문이다. 효과적인 측면에서 본 실시예는 전술한 실시예와 유사하다. 다만, 본 실시예는 먼저 수신된 상태 값을 이용하여 빠르게 무결성 검증 동작을 수행할 수 있기 때문에, 조회 요청에 대한 처리 시간이 단축될 수 있다.
지금까지 도 7을 참조하여 본 개시의 제2 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하였다. 상술한 방법에 따르면, 조회 요청의 중요도에 따라 차등적으로 무결성 검증이 수행될 수 있다. 예를 들어, 중요도가 높은 조회 요청을 처리할 때는 무결성 검증을 강화함으로써, 조회 결과의 신뢰성이 크게 향상될 수 있다. 반대로, 중요도가 낮은 조회 요청을 처리할 때는 무결성 검증을 완화함으로써, 조회 결과의 신뢰성이 다소 떨어지더라도 조회 요청이 빠르게 처리될 수 있다.
이하에서는, 도 8을 참조하여 본 개시의 제3 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하도록 한다. 명세서의 명료함을 위해, 앞선 실시예와 중복되는 내용에 대한 설명은 생략하도록 한다.
상기 제3 실시예에서는 블록체인 노드(13a 내지 13c)의 신뢰도 스코어를 고려하여 무결성 검증 동작이 수행될 수 있다. 도 8에 도시된 바와 같이, 노드 테이블(73)은 신뢰도 스코어 정보를 더 포함할 수 있고, 상기 신뢰도 스코어 정보는 상태 DB의 조작 여부, 조작 횟수 등에 기초하여 조정될 수 있다(⑦예를 들어, 상태 DB가 조작된 블록체인 노드(e.g. 13a)의 신뢰도 스코어는 감소(e.g. 90->80)될 수 있다. 또는, 상태 DB가 조작되지 않은 블록체인 노드(e.g. 13b, 13c)의 신뢰도 스코어는 증가(e.g. 90->92)될 수 있다.
이외에도, 상기 신뢰도 스코어에는 블록체인 노드(13a 내지 13c)의 보안 수준이 반영될 수도 있다. 예를 들어, 인트라넷에 위치한 블록체인 노드, 보안 관련 소프트웨어가 탑재된 블록체인 노드 등에는 더 높은 신뢰도 스코어가 부여될 수도 있다.
상기 신뢰도 스코어는 다양한 방식으로 활용될 수 있으며, 그 구체적인 활용 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예에서는, 상기 신뢰도 스코어가 기준치 이상인 주변 노드로만 조회 요청이 포워딩될 수 있다. 또는, 상기 신뢰도 스코어가 기준치 이상인 주변 노드로부터 수신된 상태 값을 이용하여 무결성 검증 동작이 수행될 수 있다. 몇몇 실시예에서, 상기 기준치는 조회 요청의 중요도에 기초하여 동적으로 결정될 수 있다. 즉, 중요도가 높은 조회 요청을 처리할 때에는, 신뢰도가 높은 주변 노드의 상태 값을 이용하여 무결성 검증 동작이 수행될 수도 있다.
몇몇 실시예에서는, 상기 신뢰도 스코어가 기준치 미만이라는 판단에 응답하여, 해당 블록체인 노드가 자율적으로 무결성 검증 동작을 수행할 수 있다. 무결성 검증 동작이 완료되면, 해당 블록체인 노드의 신뢰도 스코어는 상향될 수 있다. 본 실시예에 따르면, 신뢰도가 낮은 블록체인 노드가 자율적으로 무결성 검증 동작을 수행함으로써, 블록체인 네트워크의 신뢰성이 효율적으로 보장될 수 있다.
몇몇 실시예에서는, 상기 신뢰도 스코어가 기준치 미만이라는 판단에 응답하여, 해당 블록체인 노드가 블록체인 네트워크에서 제외될 수 있다. 본 실시예에 따르면, 악의적인 블록체인 노드가 블록체인 네트워크에서 제외됨으로써, 블록체인 네트워크의 보안성 및 신뢰성이 효율적으로 보장될 수 있다.
몇몇 실시예에서는, 상기 신뢰도 스코어에 기초하여 무결성 복구 동작이 완화되거나 강화될 수 있다. 예를 들어, 상기 신뢰도 스코어가 기준치 미만인 경우 상태 DB가 재구축될 수 있다. 반대의 경우에는, 무결하지 않은 특정 상태 값을 업데이트하는 것으로 무결성 복구 동작이 종료될 수 있다. 본 실시예에 따르면, 신뢰도 스코어가 기반하여 차등적으로 무결성 복구 동작을 수행함으로써, 블록체인 노드의 리소스가 효과적으로 활용될 수 있다.
지금까지 도 8을 참조하여 본 개시의 제3 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하였다. 이하에서는, 도 9 내지 도 11을 참조하여 본 개시의 제4 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하도록 한다.
먼저, 도 9를 참조하여 상기 제4 실시예에 따른 무결성 보장 방법이 수행될 수 있는 예시적인 블록체인 기반 시스템에 대하여 간략하게 설명한다. 명세서의 명료함을 위해, 도 2에 도시된 시스템과 중복되는 내용에 대한 설명은 생략하도록 한다.
도 9에 도시된 바와 같이, 상기 예시적인 블록체인 기반 시스템은 조회 장치(80)를 더 포함할 수 있다. 조회 장치(80)는 컴퓨팅 장치로 구현될 수 있으며, 컴퓨팅 장치의 일 예시는 도 12를 참조하도록 한다.
조회 장치(80)는 프록시(proxy) 형태로 블록체인 네트워크(20)와 연동하여 클라이언트 단말(30)의 조회 요청을 처리할 수 있다. 도 9는 하나의 조회 장치(80)가 배치된 것을 예로써 도시하고 있으나, 다른 몇몇 실시예에서는, 복수의 조회 장치(80)가 배치될 수도 있다. 이때, 각 조회 장치(80)는 블록체인 네트워크(20) 전체, 특정 채널 또는 특정 그룹에 속한 블록체인 노드(10)와 연동될 수 있을 것이며, 구체적인 연동 형태는 실시예에 따라 다양하게 설계되고 선택될 수 있다.
상기 예시적인 블록체인 기반 시스템에서는, 조회 장치(80)가 노드 테이블(e.g. 71, 72, 73)을 관리하며 상술한 무결성 검증 동작을 수행할 수 있다. 따라서, 조회 장치(80)는 상태 DB 무결성 검증 장치 또는 상태 DB 무결성 보장 장치로 명명될 수도 있다. 구체적인 동작 방식에 대해서는 도 10 이하의 도면을 참조하여 설명하도록 한다.
도 10은 본 개시의 제4 실시예에 따른 DB의 무결성 보장 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 명세서의 명료함을 위해, 앞선 실시예와 중복되는 내용에 대한 설명은 생략하도록 한다.
도 10에 도시된 바와 같이, 상기 무결성 보장 방법은 조회 장치(80)가 클라이언트 단말로부터 조회 요청을 수신하는 단계 S210에서 시작된다.
단계 S220-1 내지 단계 S220-3에서, 복수의 블록체인 노드(14a 내지 14c)로 조회 요청이 포워딩되고, 복수의 블록체인 노드(14a 내지 14c)로부터 상태 값을 수신할 수 있다(S220-1 내지 S220-3). 이때, 조회 요청의 중요도에 따라 조회 요청을 포워딩받는 블록체인 노드의 개수, 수신되는 상태 값의 개수 등이 달라질 수 있음은 물론이다.
단계 S230 및 단계 S240에서, 복수의 상태 값을 비교한 결과에 기초하여 무결성 판단이 수행된다. 예를 들어, 복수의 상태 값 중에서 다른 상태 값과 일치하지 않는 특정 상태 값이 존재하는 경우, 상기 특정 상태 값은 무결하지 않다고 판단될 수 있다. 특정 상태 값이 무결하지 않다고 판단된 경우, 단계 S250이 더 수행될 수 있다.
단계 S250에서, 상기 특정 상태 값과 연관된 블록체인 노드(e.g. 14a)로 상태 DB 업데이트가 요청된다. 예를 들어, 블록체인 노드(14a)로 상태 DB 업데이트 요청 메시지가 전송될 수 있다. 또한, 상기 업데이트 요청 메시지를 수신한 블록체인 노드(14a)는 자신의 상태 DB를 업데이트할 수 있다.
단계 S260에서, 조회된 상태 값이 클라이언트 단말(30)로 제공될 수 있다.
이하에서는, 이해의 편의를 제공하기 위해, 도 11에 도시된 예를 참조하여 상기 제4 실시예에 따른 무결성 보장 방법에 대해서 부연 설명하도록 한다. 도 11은 특정 블록체인 노드(14a)의 상태 DB가 조작된 경우를 예로써 도시하고 있다.
도 11에 도시된 바와 같이, 조회 장치(80)는 복수의 블록체인 노드(14a 내지 14c)로부터 복수의 상태 값을 수신하고(④복수의 상태 값을 비교하여 특정 블록체인 노드(14a)의 상태 값(e.g. 10000)이 무결하지 않다는 판단을 할 수 있다(⑤이와 같은 경우, 조회 장치(80)는 특정 블록체인 노드(14a)로 상태 DB의 업데이트를 요청할 수 있고, 상기 요청에 응답하여 특정 블록체인 노드(14a)는 자신의 상태 DB를 업데이트할 수 있다(⑥). 이에 따라, 상태 DB의 무결성이 보장될 수 있다.
또한, 조회 장치(80)는 무결성이 확인된 상태 값(e.g. 100)을 클라이언트 단말(30)에게 제공할 수 있다. 이에 따라, 조회 결과의 신뢰성이 보장될 수 있다.
지금까지 도 10 내지 도 11을 참조하여 본 개시의 제4 실시예에 따른 상태 DB의 무결성 보장 방법에 대하여 설명하였다. 상술한 방법에 따르면, 블록체인 네트워크(20)에 속하지 않는 별도의 조회 장치(80)를 이용하여 무결성 검증 동작이 수행될 수 있다. 특히, 신뢰성이 높은 장치가 조회 장치(80)로 이용되는 경우, 블록체인 노드에 대한 모니터링 기능이 강화될 수 있는 바, 네트워크(20)의 신뢰성과 보안성이 더욱 향상될 수 있다.
이하에서는, 도 12를 참조하여 본 개시의 다양한 실시예들에 따른 장치(e.g. 블록체인 노드 10, 조회 장치 80, 무결성 보장 장치)를 구현할 수 있는 예시적인 컴퓨팅 장치(100)에 대하여 설명하도록 한다
도 12는 상기 예시적인 컴퓨팅 장치(100)를 나타내는 하드웨어 구성도이다.
도 12에 도시된 바와 같이, 컴퓨팅 장치(100)는 하나 이상의 프로세서(110), 버스(150), 통신 인터페이스(170), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(130)와, 컴퓨터 프로그램(191)을 저장하는 스토리지(190)를 포함할 수 있다. 다만, 도 12에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(100)에는, 도 12에 도시된 구성 요소 이외에도 다양한 구성 요소가 더 포함될 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(110)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위해 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(130)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(130)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(190)로부터 하나 이상의 프로그램(191)을 로드할 수 있다. 메모리(130)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위는 이에 한정되지 아니한다.
버스(150)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(150)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(170)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(170)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(170)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(190)는 상기 하나 이상의 프로그램(191)을 비임시적으로 저장할 수 있다. 스토리지(190)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(191)은 메모리(130)에 로드될 때 프로세서(110)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 할 수 있으며, 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(191)은 상태(state) 값에 대한 조회를 요청받는 동작, 상기 요청의 응답으로, 상기 컴퓨팅 장치의 상태 DB를 조회하여 제1 상태 값을 얻는 동작, 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하는 동작 및 상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상기 요청된 상태 값의 무결성을 판단하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(100)를 통해 본 개시의 몇몇 실시예에 따른 블록체인 노드(10) 또는 상태 DB 무결성 보장 장치(10)가 구현될 수 있다.
다른 예를 들어, 컴퓨터 프로그램(191)은 상태(state) 값에 대한 조회를 요청받는 동작, 상기 요청에 응답하여, 상기 복수의 블록체인 노드로 상기 요청을 포워딩하는 동작, 상기 복수의 블록체인 노드로부터 복수의 상태 값을 수신하는 동작, 상기 수신된 복수의 상태 값을 비교하여 상태 값의 무결성을 판단하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(100)를 통해 본 개시의 몇몇 실시예에 따른 조회 장치(80) 또는 상태 DB 무결성 보장 장치(80)가 구현될 수 있다.
지금까지 도 1 내지 도 12를 참조하여 본 개시의 기술적 사상이 구체화된 다양한 실시예들 및 그에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 12를 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (16)

  1. 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리;
    하나 이상의 블록체인 노드와 통신하는 통신 인터페이스; 및
    상기 저장된 하나 이상의 인스트럭션들을 실행함으로써,
    상태(state) 값에 대한 조회를 요청받고,
    상기 요청의 응답으로, 상태 DB를 조회하여 제1 상태 값을 얻으며,
    상기 하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하고,
    상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상태 값의 무결성을 판단하는 프로세서를 포함하는,
    상태 DB 무결성 보장 장치.
  2. 제1 항에 있어서,
    상기 프로세서는,
    상기 제1 상태 값이 무결하지 않다는 판단에 응답하여, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상기 제1 상태 값의 DB를 업데이트하는,
    상태 DB 무결성 보장 장치.
  3. 제1 항에 있어서,
    상기 프로세서는,
    상기 제1 상태 값이 무결하지 않은 것으로 판단된 경우, 블록체인에 기록된 트랜잭션 데이터를 이용하여 상기 상태 DB를 재구축(rebuild)하는,
    상태 DB 무결성 보장 장치.
  4. 제1 항에 있어서,
    상기 프로세서는,
    상기 제2 상태 값이 무결하지 않다는 판단에 응답하여, 상기 제2 상태 값과 연관된 블록체인 노드로 상태 DB 업데이트 요청 메시지를 전송하는,
    상태 DB 무결성 보장 장치.
  5. 제1 항에 있어서,
    상기 프로세서는,
    상기 요청과 함께 상기 요청의 중요도를 수신하고,
    상기 수신된 중요도에 기초하여 상기 요청을 포워딩할 블록체인 노드의 수를 결정하는,
    상태 DB 무결성 보장 장치.
  6. 제1 항에 있어서,
    상기 프로세서는,
    복수의 블록체인 노드로 상기 요청을 포워딩하고,
    지정된 조건이 만족될 때까지, 상기 복수의 블록체인 노드로부터 상기 제2 상태 값을 포함하는 하나 이상의 상태 값을 수신하며,
    상기 제1 상태 값과 상기 수신된 상태 값을 비교하는,
    상태 DB 무결성 보장 장치.
  7. 제6 항에 있어서,
    상기 지정된 조건은 기준 시간 이내에 상태 값이 수신되는 조건을 포함하는,
    상태 DB 무결성 보장 장치.
  8. 제6 항에 있어서,
    상기 프로세서는,
    상기 요청과 함께 상기 요청의 중요도를 수신하되,
    상기 지정된 조건은 기준 개수 이상의 상태 값이 수신되는 조건을 포함하고,
    상기 기준 개수는 상기 중요도에 기초하여 결정되는,
    상태 DB 무결성 보장 장치.
  9. 제1 항에 있어서,
    상기 프로세서는,
    상기 요청과 관계없이 지정된 조건이 만족됨에 따라, 상기 하나 이상의 블록체인 노드로 상태 값을 요청하여 상기 하나 이상의 블록체인 노드로부터 제3 상태 값을 수신하고,
    상기 상태 DB에 저장된 제4 상태 값과 상기 제3 상태 값을 비교하여 무결성 판단을 수행하며,
    상기 제4 상태 값이 무결하지 않다는 판단에 응답하여, 상기 제4 상태 값의 DB를 업데이트하는,
    상태 DB 무결성 보장 장치.
  10. 제9 항에 있어서,
    상기 지정된 조건은 소정의 주기에 기초한 타이머 조건을 포함하는,
    상태 DB 무결성 보장 장치.
  11. 제9 항에 있어서,
    상기 지정된 조건은 상기 상태 DB 무결성 보장 장치의 신뢰도 스코어가 기준치 이하가 되는 조건을 포함하되,
    상기 신뢰도 스코어는 상기 상태 DB가 조작된 횟수에 기초하여 결정되는,
    상태 DB 무결성 보장 장치.
  12. 제1 항에 있어서,
    상기 프로세서는,
    신뢰도 스코어가 기준치 이상인 블록체인 노드로부터 상기 제2 상태 값을 수신하되,
    상기 신뢰도 스코어는 상기 블록체인 노드의 상태 DB가 조작된 횟수에 기초하여 결정되는,
    상태 DB 무결성 보장 장치.
  13. 하나 이상의 인스트럭션들(instructions)을 저장하는 메모리;
    복수의 블록체인 노드와 통신하는 통신 인터페이스; 및
    상기 저장된 하나 이상의 인스트럭션들을 실행함으로써,
    상태(state) 값에 대한 조회를 요청받고,
    상기 요청에 응답하여, 상기 복수의 블록체인 노드로 상기 요청을 포워딩하며,
    상기 복수의 블록체인 노드로부터 복수의 상태 값을 수신하고,
    상기 수신된 복수의 상태 값을 비교하여 상태 값의 무결성을 판단하는 프로세서를 포함하는,
    상태 DB 무결성 보장 장치.
  14. 제13 항에 있어서,
    상기 프로세서는,
    상기 복수의 상태 값 중 제1 상태 값이 무결하지 않다는 판단에 응답하여, 상기 제1 상태 값과 연관된 블록체인 노드로 상태 DB 업데이트 요청 메시지를 전송하는,
    상태 DB 무결성 보장 장치.
  15. 제14 항에 있어서,
    상기 프로세서는,
    상기 요청과 함께 상기 요청의 중요도를 수신하되,
    상기 수신된 복수의 상태 값의 개수는 상기 중요도에 기초하여 결정되는,
    상태 DB 무결성 보장 장치.
  16. 컴퓨팅 장치에서 상태 DB의 무결성을 보장하는 방법에 있어서,
    상태(state) 값에 대한 조회를 요청받는 단계;
    상기 요청의 응답으로, 상기 컴퓨팅 장치의 상태 DB를 조회하여 제1 상태 값을 얻는 단계;
    하나 이상의 블록체인 노드로 상기 요청을 포워딩하여 상기 하나 이상의 블록체인 노드로부터 제2 상태 값을 수신하는 단계; 및
    상기 제1 상태 값과 상기 제2 상태 값을 비교하여 상기 요청된 상태 값의 무결성을 판단하는 단계를 포함하는,
    상태 DB 무결성 보장 방법.
KR1020190058190A 2019-05-17 2019-05-17 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법 KR102620584B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190058190A KR102620584B1 (ko) 2019-05-17 2019-05-17 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법
US16/727,235 US11314813B2 (en) 2019-05-17 2019-12-26 Apparatus for guaranteeing integrity of state database in blockchain-based environment and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190058190A KR102620584B1 (ko) 2019-05-17 2019-05-17 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20200132521A true KR20200132521A (ko) 2020-11-25
KR102620584B1 KR102620584B1 (ko) 2024-01-02

Family

ID=73231653

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190058190A KR102620584B1 (ko) 2019-05-17 2019-05-17 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법

Country Status (2)

Country Link
US (1) US11314813B2 (ko)
KR (1) KR102620584B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102544009B1 (ko) * 2022-11-30 2023-06-15 주식회사 엔터프라이즈블록체인 무결성(integrity)을 갖는 데이터를 생성 및 관리하기 위한 서버 및 그 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220171763A1 (en) * 2020-12-02 2022-06-02 International Business Machines Corporation Blockchain selective world state database

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (ko) * 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법
KR20180005542A (ko) * 2016-07-06 2018-01-16 주식회사 케이티 데이터 무결성 검증을 위한 장치 및 방법
KR20180079806A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 및 이와 연동되는 머클 트리 구조 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR101915945B1 (ko) * 2018-06-27 2018-11-08 주식회사 애포샤 클러스터 시스템에서의 클라이언트 요청 처리 방법, 상기 클라이언트 요청에 따른 입출력 처리 방법 및 장치
KR20180130623A (ko) 2017-05-29 2018-12-10 주식회사 익스트러스 어플리케이션 무결성검증을 위한 블록체인 구성방법 및 어플리케이션 무결성 검증방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390154B1 (en) * 2015-08-28 2016-07-12 Swirlds, Inc. Methods and apparatus for a distributed database within a network
CN107247749B (zh) * 2017-05-25 2020-08-25 创新先进技术有限公司 一种数据库状态确定方法、一致性验证方法及装置
CN111833189A (zh) * 2018-10-26 2020-10-27 创新先进技术有限公司 数据处理方法及装置
US11140201B2 (en) * 2019-02-19 2021-10-05 International Business Machines Corporation Security platform for multi-component system and services thereof
US11526487B2 (en) * 2019-05-17 2022-12-13 International Business Machines Corporation Database world state integrity validation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (ko) * 2016-06-03 2017-12-13 (주) 블록체인오에스 블록체인 기술을 이용한 무결성 보장 방법
KR20180005542A (ko) * 2016-07-06 2018-01-16 주식회사 케이티 데이터 무결성 검증을 위한 장치 및 방법
KR20180079806A (ko) * 2017-01-02 2018-07-11 주식회사 코인플러그 블록체인 및 이와 연동되는 머클 트리 구조 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR20180130623A (ko) 2017-05-29 2018-12-10 주식회사 익스트러스 어플리케이션 무결성검증을 위한 블록체인 구성방법 및 어플리케이션 무결성 검증방법
KR101915945B1 (ko) * 2018-06-27 2018-11-08 주식회사 애포샤 클러스터 시스템에서의 클라이언트 요청 처리 방법, 상기 클라이언트 요청에 따른 입출력 처리 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102544009B1 (ko) * 2022-11-30 2023-06-15 주식회사 엔터프라이즈블록체인 무결성(integrity)을 갖는 데이터를 생성 및 관리하기 위한 서버 및 그 동작 방법

Also Published As

Publication number Publication date
US20200364273A1 (en) 2020-11-19
US11314813B2 (en) 2022-04-26
KR102620584B1 (ko) 2024-01-02

Similar Documents

Publication Publication Date Title
US10698885B2 (en) Method and device for writing service data in block chain system
US11334562B2 (en) Blockchain based data management system and method thereof
US11070361B2 (en) Block generation method in blockchain-based system
CN107395659B (zh) 一种业务受理及共识的方法及装置
CN109831487B (zh) 分片文件验证方法及终端设备
US11385830B2 (en) Data storage method, apparatus and system, and server, control node and medium
CN110661658B (zh) 一种区块链网络的节点管理方法、装置及计算机存储介质
EP3739538A1 (en) System and method of supporting reflection of transactions between blockchain networks
US10862672B2 (en) Witness blocks in blockchain applications
US11520889B2 (en) Method and system for granting access to a file
CN110442762B (zh) 基于云平台大数据的大数据处理方法
WO2019062856A1 (zh) 数据重构方法及装置、数据存储系统
US20200341674A1 (en) Method, device and computer program product for restoring data
KR102620584B1 (ko) 블록체인 기반 시스템에서 상태 db의 무결성을 보장하는 장치 및 그 방법
CN112486918B (zh) 文件处理方法、装置、设备及介质
CN110442601B (zh) 一种Openstack镜像数据并行加速的方法和装置
KR102393913B1 (ko) 이상행위 탐지 장치, 방법 및 이를 포함하는 시스템
US20220261354A1 (en) Data access method and apparatus and storage medium
US20210103598A1 (en) Managing persistent handle information for a file
CN112463032A (zh) 一种存储系统的重删模块的性能优化方法、系统及装置
CN112486941A (zh) 一种基于多纠删码的拟态对象存储系统
KR102267560B1 (ko) 블록 체인에 저장되는 데이터 크기를 축소할 수 있는 데이터의 변경 이력 관리 방법
KR102453870B1 (ko) 파일 영구삭제 방법 및 컴퓨터 프로그램
CN110647526B (zh) 批量数据处理方法、装置、计算机设备及存储介质
WO2024092932A1 (zh) 交易执行方法和区块链节点

Legal Events

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