KR102152537B1 - 사물 인터넷 장치를 위한 블록체인 네트워크 - Google Patents

사물 인터넷 장치를 위한 블록체인 네트워크 Download PDF

Info

Publication number
KR102152537B1
KR102152537B1 KR1020190125740A KR20190125740A KR102152537B1 KR 102152537 B1 KR102152537 B1 KR 102152537B1 KR 1020190125740 A KR1020190125740 A KR 1020190125740A KR 20190125740 A KR20190125740 A KR 20190125740A KR 102152537 B1 KR102152537 B1 KR 102152537B1
Authority
KR
South Korea
Prior art keywords
middleware
nodes
node
log data
unit
Prior art date
Application number
KR1020190125740A
Other languages
English (en)
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 KR1020190125740A priority Critical patent/KR102152537B1/ko
Application granted granted Critical
Publication of KR102152537B1 publication Critical patent/KR102152537B1/ko

Links

Images

Classifications

    • H04L67/2852
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/181Append-only file systems, e.g. using logs or journals to store data providing write once read many [WORM] semantics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/2833
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

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

Abstract

사물 인터넷 장치를 위한 블록체인 네트워크는 사물 인터넷 장치, 미들웨어 시스템, 및 메인넷을 포함한다. 사물 인터넷 장치는 미리 정의된 이벤트가 발생하는 경우, 로그 데이터를 생성한다. 미들웨어 시스템은 복수의 미들웨어 노드들을 포함하고, 사물 인터넷 장치로부터 로그 데이터를 수신하는 경우, 로그 데이터 및 로그 데이터를 수신한 시각을 나타내는 타임 스탬프를 서로 연관시켜 내부에 저장하고, 제1 기준 시간 마다 주기적으로 제1 기준 시간 동안 저장된 로그 데이터들 각각의 유효성을 검증하고, 검증에 성공한 경우 로그 데이터 및 로그 데이터와 연관되는 타임 스탬프를 포함하는 단위 트랜잭션을 생성하고, 단위 트랜잭션에 대해 내부적으로 제1 합의 알고리즘을 수행하여 단위 트랜잭션에 포함되는 로그 데이터의 유효성을 공증하고, 공증에 성공한 경우 단위 트랜잭션을 승인하고, 제2 기준 시간 동안 제1 합의 알고리즘을 통해 승인되는 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행하여 현재 셀 블록을 승인하고 승인된 현재 셀 블록을 복수의 셀 블록들이 연결된 셀 블록체인의 끝단에 추가한다. 메인넷은 복수의 메인넷 노드들을 포함하고, 미들웨어 시스템으로부터 수신되는 단위 트랜잭션을 복수의 메인넷 노드들 사이에 공유되는 메인 블록체인에 저장한다.

Description

사물 인터넷 장치를 위한 블록체인 네트워크{BLOCKCHAIN NETWORK FOR INTERNET OF THINGS DEVICE}
본 발명은 블록체인(blockchain) 기술에 관한 것으로, 보다 상세하게는 미들웨어(middleware) 시스템을 사용하여 기존의 사물 인터넷(Internet of Things; IoT) 장치와 블록체인 메인넷(Main Net)을 연결하는 블록체인 네트워크에 관한 것이다.
블록체인(blockchain)은 사용자들 사이에서 발생되는 거래 내역이 네트워크 구성원들 사이에 공유되어 저장되는 디지털 원장(ledger)을 나타낸다.
일정 시간 동안 사용자들 사이에서 발생되는 거래 내역은 과반수가 넘는 사용자들의 합의를 통해 확정되고 확정된 거래 내역은 하나의 블록으로 묶여 블록체인에 저장된다.
블록체인에 연결된 블록에 포함되는 거래 내역을 변경하기 위해서는 해당 블록 및 해당 블록 이후에 연결된 모든 블록들에 대해 다시 과반수가 넘는 사용자들의 합의를 얻어야 하므로, 블록체인에 저장된 데이터는 실질적으로 위조 또는 변조가 불가능하다.
이와 같이 블록체인에 저장된 거래 내역은 임의로 변경하는 것이 불가능하므로, 블록체인에 저장된 데이터에 대한 신뢰성은 매우 높다.
따라서 최근에는 인터넷 상거래 분야, 금융 서비스 분야 등과 같이 사용자들 사이의 거래를 다루는 산업 분야뿐만 아니라, 다양한 종류의 산업 분야에서 블록체인을 사용하여 중요 데이터를 안전하게 저장하기 위한 연구가 활발히 진행되고 있다.
그러나 기존의 시스템에 블록체인 시스템을 접목하기 위해서는 기존의 시스템에 대한 많은 수정이 필요하다는 문제점이 있다.
또한, 새로운 데이터를 블록체인에 저장하기 위해서는 채굴이라는 과정을 통해 새로운 블록을 생성해야 하므로, 기존의 시스템에서 생성되는 데이터를 블록체인에 저장하기 위해서는 많은 시간이 소요된다는 문제점이 있다.
따라서 상대적으로 적은 연산 및 저장 자원을 사용하여 구성되는 기존의 사물 인터넷(Internet of Things; IoT) 장치의 경우, 블록체인 시스템을 접목하여 사물 인터넷 장치로부터 생성되는 데이터를 블록체인에 저장하는 블록체인 네트워크를 구현하는 데에 많은 어려움이 따른다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 기존의 사물 인터넷(Internet of Things; IoT) 장치가 미들웨어(middleware) 시스템을 통해 블록체인 메인넷(Main Net)에 연결되는 구성을 갖는 블록체인 네트워크를 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 사물 인터넷 장치를 위한 블록체인 네트워크는 사물 인터넷 장치, 미들웨어(middleware) 시스템, 및 메인넷(Main Net)을 포함한다. 상기 사물 인터넷 장치는 미리 정의된 이벤트가 발생하는 경우, 로그 데이터를 생성한다. 상기 미들웨어 시스템은 복수의 미들웨어 노드들을 포함하고, 상기 사물 인터넷 장치로부터 상기 로그 데이터를 수신하는 경우, 상기 로그 데이터 및 상기 로그 데이터를 수신한 시각을 나타내는 타임 스탬프를 서로 연관시켜 내부에 저장하고, 제1 기준 시간 마다 주기적으로 상기 제1 기준 시간 동안 저장된 상기 로그 데이터들 각각의 유효성을 검증하고, 상기 검증에 성공한 경우 상기 로그 데이터 및 상기 로그 데이터와 연관되는 상기 타임 스탬프를 포함하는 단위 트랜잭션을 생성하고, 상기 단위 트랜잭션에 대해 내부적으로 제1 합의 알고리즘을 수행하여 상기 단위 트랜잭션에 포함되는 상기 로그 데이터의 유효성을 공증하고, 상기 공증에 성공한 경우 상기 단위 트랜잭션을 승인하고, 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행하여 상기 현재 셀 블록을 승인하고 상기 승인된 현재 셀 블록을 복수의 셀 블록들이 연결된 셀 블록체인의 끝단에 추가한다. 상기 메인넷은 복수의 메인넷 노드들을 포함하고, 상기 미들웨어 시스템으로부터 수신되는 상기 단위 트랜잭션을 상기 복수의 메인넷 노드들 사이에 공유되는 메인 블록체인에 저장한다.
본 발명의 실시예들에 따른 사물 인터넷 장치를 위한 블록체인 네트워크는 기존의 사물 인터넷 장치에 대한 큰 변경 없이 사물 인터넷 장치로부터 생성되는 로그 데이터를 메인넷의 블록체인에 안전하게 저장할 수 있다.
또한, 본 발명의 실시예들에 따른 사물 인터넷 장치를 위한 블록체인 네트워크는 사물 인터넷 장치로부터 생성되는 로그 데이터가 메인넷의 블록체인에 저장 완료될 때까지 대기할 필요 없이, 사물 인터넷 장치는 미리 정의된 이벤트가 발생할 때마다 로그 데이터를 생성하여 미들웨어 시스템에 지속적으로 전송할 수 있으므로, 사물 인터넷 장치의 동작 속도를 저하시키지 않으면서도 사물 인터넷 장치로부터 생성되는 로그 데이터를 메인넷의 메인 블록체인에 안전하게 저장할 수 있다.
도 1은 본 발명의 일 실시예에 따른 사물 인터넷(Internet of Things; IoT) 장치를 위한 블록체인(blockchain) 네트워크를 나타내는 도면이다.
도 2는 도 1의 미들웨어 시스템에 포함되는 미들웨어 노드의 일 예를 나타내는 블록도이다.
도 3은 도 1의 블록체인 네트워크에서 수행되는 제1 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 4는 도 1의 블록체인 네트워크에서 제2 기준 시간 마다 주기적으로 생성되는 현재 머클 트리(Merkle tree)의 일 예를 설명하기 위한 도면이다.
도 5는 도 1의 블록체인 네트워크에서 제2 기준 시간 마다 주기적으로 생성되는 현재 셀 블록의 일 예를 설명하기 위한 도면이다.
도 6은 도 1의 블록체인 네트워크에서 수행되는 제2 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 7은 현재 셀 블록이 추가된 셀 블록체인의 일 예를 설명하기 위한 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 사물 인터넷(Internet of Things; IoT) 장치를 위한 블록체인(blockchain) 네트워크를 나타내는 도면이다.
도 1을 참조하면, 블록체인 네트워크(10)는 레거시(legacy) 시스템(100), 미들웨어(middleware) 시스템(200), 및 메인넷(Main Net)(300)을 포함한다.
레거시 시스템(100)은 적어도 하나의 사물 인터넷 장치(110)를 포함한다.
사물 인터넷 장치(110)는 미리 정의된 이벤트가 발생하는 경우, 로그 데이터(LD)를 생성할 수 있다.
일 실시예에 있어서, 사물 인터넷 장치(110)는 주위 환경 상태를 감지하는 센서(111)를 포함할 수 있다.
예를 들어, 센서(111)는 온도 센서, 습도 센서, 진동 센서, 가스 센서 등일 수 있다. 그러나 본 발명은 이에 한정되지 않으며, 실시예에 따라서 센서(111)는 주위 환경 상태를 감지하는 임의의 종류의 센서일 수 있다.
일 실시예에 있어서, 센서(111)는 미리 정해진 감지 주기가 도래할 때 상기 미리 정의된 이벤트가 발생한 것으로 간주할 수 있다. 이 경우, 센서(111)는 상기 미리 정해진 감지 주기가 도래할 때마다 주위 환경 상태를 감지하고 상기 감지된 값을 로그 데이터(LD)로서 생성할 수 있다.
다른 실시예에 있어서, 센서(111)는 주위 환경 상태를 감지한 값이 미리 정해진 정상 범위를 벗어날 때 상기 미리 정의된 이벤트가 발생한 것으로 간주할 수 있다. 이 경우, 센서(111)는 주위 환경 상태를 지속적으로 감지하고 상기 감지된 값이 미리 정해진 정상 범위를 벗어날 때마다 상기 감지된 값을 로그 데이터(LD)로서 생성할 수 있다.
상기 미리 정의된 이벤트가 발생하여 센서(111)로부터 로그 데이터(LD)가 생성되는 경우, 사물 인터넷 장치(110)는 로그 데이터(LD)에 대한 해시값(HASH_LD)을 계산할 수 있다.
이후, 사물 인터넷 장치(110)는 로그 데이터(LD) 및 로그 데이터(LD)에 대한 해시값(HASH_LD)을 포함하는 원본 데이터(OD)를 미들웨어 시스템(200)에 전송할 수 있다.
일 실시예에 있어서, 사물 인터넷 장치(110)는 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 오픈 API를 포함할 수 있다. 이 경우, 사물 인터넷 장치(110)는 상기 오픈 API를 사용하여 원본 데이터(OD)를 미들웨어 시스템(200)에 전송할 수 있다. 상기 오픈 API는 고속 통신 기능을 포함할 수 있다. 따라서 상기 미리 정의된 이벤트의 발생 주기가 짧은 경우에도 사물 인터넷 장치(110)는 안정적으로 원본 데이터(OD)를 미들웨어 시스템(200)에 전송할 수 있다.
도 1에는 센서(111)가 사물 인터넷 장치(110)의 내부에 포함되는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 센서(111)는 사물 인터넷 장치(110)의 외부에 존재할 수도 있다. 이 경우, 센서(111)는 유무선 통신을 통해 로그 데이터(LD)를 사물 인터넷 장치(110)에 전송할 수 있다.
한편, 미들웨어 시스템(200)은 사물 인터넷 장치(110)로부터 로그 데이터(LD)를 포함하는 원본 데이터(OD)를 수신하는 경우, 로그 데이터(LD) 및 로그 데이터(LD)를 수신한 시각을 나타내는 타임 스탬프를 서로 연관시켜 내부에 저장할 수 있다.
또한, 미들웨어 시스템(200)은 제1 기준 시간 마다 주기적으로 동작하여, 상기 제1 기준 시간 동안 내부에 저장된 로그 데이터들(LD) 각각의 유효성을 검증할 수 있다.
상기 검증에 실패한 경우, 미들웨어 시스템(200)은 로그 데이터(LD)가 유효하지 않음을 나타내는 플래그를 내부적으로 저장할 수 있다.
이에 반해, 상기 검증에 성공한 경우, 미들웨어 시스템(200)은 로그 데이터(LD) 및 로그 데이터(LD)와 연관되는 상기 타임 스탬프를 포함하는 단위 트랜잭션을 생성하고, 상기 단위 트랜잭션에 대해 내부적으로 제1 합의 알고리즘을 수행하여 상기 단위 트랜잭션에 포함되는 로그 데이터(LD)의 유효성을 공증할 수 있다.
상기 공증에 실패한 경우, 미들웨어 시스템(200)은 상기 단위 트랜잭션을 폐기할 수 있다.
이에 반해, 상기 공증에 성공한 경우, 미들웨어 시스템(200)은 상기 단위 트랜잭션을 승인할 수 있다.
한편, 미들웨어 시스템(200)은 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행할 수 있다.
상기 제2 합의 알고리즘을 통해 상기 현재 셀 블록에 대한 합의가 성공하는 경우, 미들웨어 시스템(200)은 상기 현재 셀 블록을 승인하고, 상기 승인된 현재 셀 블록을 복수의 셀 블록들이 체인 형태로 연결된 셀 블록체인의 끝단에 추가할 수 있다.
이에 반해, 상기 제2 합의 알고리즘을 통해 상기 현재 셀 블록에 대한 합의가 실패하는 경우, 미들웨어 시스템(200)은 상기 현재 셀 블록을 폐기할 수 있다.
한편, 미들웨어 시스템(200)은 주기적으로 또는 비주기적으로 상기 셀 블록체인에 연결된 상기 셀 블록들에 포함되는 상기 단위 트랜잭션들을 메인넷(300)에 전송할 수 있다.
메인넷(300)은 P2P(Peer to Peer) 네트워크를 통해 서로 연결되는 복수의 메인넷 노드들(MN_NODE)(310)을 포함할 수 있다.
메인넷(300)은 복수의 메인넷 노드들(310) 사이에 공유되는 메인 블록체인(MAIN_BC)(320)을 포함할 수 있다.
메인 블록체인(320)은 미들웨어 시스템(200)으로부터 수신되는 상기 단위 트랜잭션들을 저장하는 디지털 원장(ledger)에 상응할 수 있다.
복수의 메인넷 노드들(310)은 일정 시간 동안 미들웨어 시스템(200)으로부터 수신되는 상기 단위 트랜잭션들을 포함하는 블록을 생성하고, 상기 생성된 블록에 대해 복수의 메인넷 노드들(310) 사이의 합의를 거친 후, 상기 합의에 성공한 경우 상기 생성된 블록을 메인 블록체인(320)에 추가함으로써 상기 단위 트랜잭션들은 메인 블록체인(320)에 안전하게 저장될 수 있다.
일 실시예에 있어서, 메인넷(300)은 임의의 노드가 메인넷 노드(310)로 참가할 수 있는 퍼블릭(public) 메인넷에 상응할 수 있다.
다른 실시예에 있어서, 메인넷(300)은 허가된 노드만이 메인넷 노드(310)로 참가할 수 있는 프라이빗(private) 메인넷에 상응할 수 있다. 예를 들어, 메인넷(300)은 사물 인터넷 장치(110)의 사용자에 의해 프라이빗하게 운용될 수 있다. 이 경우, 메인넷(300)은 사물 인터넷 장치(110)로부터 생성되는 로그 데이터들(LD)을 메인 블록체인(320)에 안전하게 저장하기 위한 용도로 사용될 수 있다.
메인넷(300)은 이더리움(Ethereum), 비트코인(Bitcoin) 등과 같이 일반적으로 널리 알려진 블록체인 플랫폼을 사용하여 구현될 수 있다. 따라서 메인 블록체인(320)의 구조 및 메인넷(300)이 상기 단위 트랜잭션들을 메인 블록체인(320)에 저장하는 동작에 대한 상세한 설명은 생략한다.
상술한 바와 같이, 레거시 시스템(100)에 포함되는 사물 인터넷 장치(110)는 메인넷(300)과 직접 데이터 통신을 수행하기 위한 블록체인 관련 모듈은 포함하고 있지 않으며, 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 상기 오픈 API를 사용하여 미들웨어 시스템(200)을 통해 로그 데이터(LD)를 메인넷(300)의 메인 블록체인(320)에 저장할 수 있다.
이하, 도 1 내지 7을 참조하여 사물 인터넷 장치를 위한 블록체인 네트워크(10)의 구성 및 동작에 대해 보다 상세히 설명한다.
미들웨어 시스템(200)은 네트워크를 통해 서로 연결되는 복수의 미들웨어 노드들(MW_NODE)(210)을 포함할 수 있다.
일 실시예에 있어서, 복수의 미들웨어 노드들(210)은 TCP/IP 네트워크를 통해 서로 연결될 수 있다.
미들웨어 시스템(200)은 복수의 미들웨어 노드들(210)을 관리하는 마스터 노드(M_NODE)(220)를 더 포함할 수 있다.
신규 노드는 마스터 노드(220)의 허가 하에 미들웨어 시스템(200)에 미들웨어 노드(210)로서 참가할 수 있다.
또한, 마스터 노드(220)는 복수의 미들웨어 노드들(210)의 리스트를 관리하고, 복수의 미들웨어 노드들(210)의 동작 상태를 모니터링하며, 복수의 미들웨어 노드들(210)의 리스트 및 복수의 미들웨어 노드들(210)의 주소들을 사물 인터넷 장치(110)에 제공할 수 있다.
사물 인터넷 장치(110)는 상기 미리 정의된 이벤트가 발생하는 경우, 로그 데이터(LD) 및 로그 데이터(LD)에 대한 해시값(HASH_LD)을 포함하는 원본 데이터(OD)를 생성하고, 복수의 미들웨어 노드들(210) 중에서 선택되는 제1 미들웨어 노드에 원본 데이터(OD)를 전송할 수 있다.
일 실시예에 있어서, 사물 인터넷 장치(110)는 마스터 노드(220)로부터 제공되는 복수의 미들웨어 노드들(210)의 리스트 및 복수의 미들웨어 노드들(210)의 주소들에 기초하여 복수의 미들웨어 노드들(210) 중의 하나를 랜덤하게 선택하여 상기 제1 미들웨어 노드로 결정하고, 상기 제1 미들웨어 노드에 원본 데이터(OD)를 전송할 수 있다.
다른 실시예에 있어서, 상기 제1 미들웨어 노드는 복수의 미들웨어 노드들(210) 중에서 마스터 노드(220)에 의해 미리 정해져 사물 인터넷 장치(110)에 통보될 수 있다. 이 경우, 사물 인터넷 장치(110)는 복수의 미들웨어 노드들(210) 중에서 미리 정해진 상기 제1 미들웨어 노드에 원본 데이터(OD)를 전송할 수 있다.
도 2는 도 1의 미들웨어 시스템에 포함되는 미들웨어 노드의 일 예를 나타내는 블록도이다.
미들웨어 시스템(200)에 포함되는 복수의 미들웨어 노드들(210) 각각은 도 2에 도시된 미들웨어 노드(210)로 구현될 수 있다.
도 2를 참조하면, 미들웨어 노드(210)는 데이터 수신부(211), 웜(write once read many; WORM) 스토리지(213), 데이터베이스(DB)(215), 및 데이터 처리부(217)를 포함할 수 있다.
웜 스토리지(213)는 데이터가 한번 기입되면 상기 기입된 데이터에 대해 독출 동작만 가능하고 상기 기입된 데이터에 대한 변경이나 삭제는 불가능한 데이터 저장 장치를 나타낸다.
데이터베이스(215)는 사물 인터넷 장치(110)로부터 제공되는 로그 데이터(LD)를 저장하고, 로그 데이터(LD)의 상태를 관리하는 데에 사용된다.
데이터 수신부(211)는 사물 인터넷 장치(110)로부터 로그 데이터(LD) 및 로그 데이터(LD)에 대한 해시값(HASH_LD)을 포함하는 원본 데이터(OD)를 수신하는 경우, 원본 데이터(OD)를 수신한 시각에 상응하는 타임 스탬프(TIME_S)를 결정할 수 있다.
일 실시예에 있어서, 타임 스탬프(TIME_S)는 데이터 수신부(211)가 사물 인터넷 장치(110)로부터 원본 데이터(OD)를 수신한 시각을 나노 세컨드(nano second) 단위로 나타낸 값에 상응할 수 있다.
데이터 수신부(211)는 타임 스탬프(TIME_S)를 원본 데이터(OD)에 대한 키값으로 하여 원본 데이터(OD) 및 타임 스탬프(TIME_S)를 웜 스토리지(213) 및 데이터베이스(215)에 동시에 저장할 수 있다.
데이터 처리부(217)는 상기 제1 기준 시간 마다 주기적으로 동작하여, 상기 제1 기준 시간 동안 데이터베이스(215)에 저장된 원본 데이터들(OD) 각각에 대해, 원본 데이터(OD)에 포함되는 해시값(HASH_LD)을 사용하여 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성을 검증할 수 있다.
일 실시예에 있어서, 데이터 처리부(217)는 원본 데이터(OD)에 포함되는 로그 데이터(LD)에 대한 해시값을 계산하고, 상기 계산된 해시값과 원본 데이터(OD)에 포함되는 해시값(HASH_LD)이 일치하는 경우 상기 검증에 성공한 것으로 판단하고, 상기 계산된 해시값과 원본 데이터(OD)에 포함되는 해시값(HASH_LD)이 일치하지 않는 경우 상기 검증에 실패한 것으로 판단할 수 있다.
데이터 처리부(217)는 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성을 검증한 후, 상기 검증의 결과를 나타내는 검증 결과 플래그(V_FLAG)를 상응하는 원본 데이터(OD)와 연관시켜 데이터베이스(215)에 저장할 수 있다.
예를 들어, 데이터 처리부(217)는, 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성 검증에 성공한 경우 제1 값을 갖는 검증 결과 플래그(V_FLAG)를 원본 데이터(OD)와 연관시켜 데이터베이스(215)에 저장하고, 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성 검증에 실패한 경우 제2 값을 갖는 검증 결과 플래그(V_FLAG)를 원본 데이터(OD)와 연관시켜 데이터베이스(215)에 저장할 수 있다.
또한, 데이터 처리부(217)는 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성 검증에 성공한 경우, 원본 데이터(OD) 및 원본 데이터(OD)에 상응하는 타임 스탬프(TIME_S)를 포함하는 단위 트랜잭션(UNIT_TX)을 생성할 수 있다.
도 3을 참조하여 후술하는 바와 같이, 데이터 처리부(217)는 단위 트랜잭션(UNIT_TX)을 생성하는 경우, 생성된 단위 트랜잭션(UNIT_TX)에 대해 상기 제1 합의 알고리즘을 수행하여 단위 트랜잭션(UNIT_TX)에 포함되는 로그 데이터(LD)의 유효성을 공증할 수 있다.
다시 도 1을 참조하면, 미들웨어 시스템(200)에 포함되는 마스터 노드(220)는 웜 스토리지를 포함할 수 있다. 여기서, 웜 스토리지는 데이터가 한번 기입되면 상기 기입된 데이터에 대해 독출 동작만 가능하고 상기 기입된 데이터에 대한 변경이나 삭제는 불가능한 데이터 저장 장치를 나타낸다.
이 경우, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(213)에 저장된 원본 데이터(OD) 및 타임 스탬프(TIME_S)의 쌍들을 주기적으로 백업하여 내부에 포함되는 상기 웜 스토리지에 저장할 수 있다.
따라서 미들웨어 시스템(200)에 대한 해킹 공격이 발생하여 복수의 미들웨어 노드들(210) 각각의 데이터베이스(215)에 저장된 데이터가 삭제되거나 변경되는 경우에도 사물 인터넷 장치(110)로부터 수신되는 원본 데이터(OD)는 복수의 미들웨어 노드들(210)에 포함되는 웜 스토리지(213) 및 마스터 노드(220)에 포함되는 상기 웜 스토리지에 안전하게 보관될 수 있다.
한편, 도 2를 참조하여 상술한 바와 같이, 상기 제1 미들웨어 노드에 포함되는 데이터 수신부(211)가 사물 인터넷 장치(110)로부터 원본 데이터(OD)를 수신하여 원본 데이터(OD) 및 원본 데이터(OD)에 상응하는 타임 스탬프(TIME_S)를 데이터베이스(215)에 저장하고, 데이터 처리부(217)가 상기 제1 기준 시간 동안 데이터베이스(215)에 저장된 원본 데이터들(OD) 각각에 대해, 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성 검증에 성공하여 원본 데이터(OD) 및 원본 데이터(OD)에 상응하는 타임 스탬프(TIME_S)를 포함하는 단위 트랜잭션(UNIT_TX)을 생성하는 경우, 상기 제1 미들웨어 노드는 생성된 단위 트랜잭션(UNIT_TX)에 대해 상기 제1 합의 알고리즘을 수행하여 단위 트랜잭션(UNIT_TX)에 포함되는 로그 데이터(LD)의 유효성을 공증할 수 있다.
상기 제1 합의 알고리즘은 복수의 미들웨어 노드들(210) 중에서 선택되는 제1 및 제2 공증 노드들과 상기 제1 미들웨어 노드 사이에서 수행될 수 있다.
일 실시예에 있어서, 상기 제1 미들웨어 노드와 함께 상기 제1 합의 알고리즘을 수행할 상기 제1 및 제2 공증 노드들은 사물 인터넷 장치(110)가 복수의 미들웨어 노드들(210) 중에서 선택하여 상기 제1 미들웨어 노드에 통보할 수 있다.
예를 들어, 사물 인터넷 장치(110)는 마스터 노드(220)로부터 제공되는 복수의 미들웨어 노드들(210)의 리스트를 사용하여 복수의 미들웨어 노드들(210) 중에서 상기 제1 합의 알고리즘을 수행할 상기 제1 및 제2 공증 노드들을 선택하고, 상기 제1 및 제2 공증 노드들에 대한 정보를 원본 데이터(OD)에 포함시킨 후 원본 데이터(OD)를 상기 제1 미들웨어 노드에 전송할 수 있다.
다른 실시예에 있어서, 상기 제1 미들웨어 노드와 함께 상기 제1 합의 알고리즘을 수행할 상기 제1 및 제2 공증 노드들은 상기 제1 미들웨어 노드가 복수의 미들웨어 노드들(210) 중에서 선택할 수 있다.
도 3은 도 1의 블록체인 네트워크에서 수행되는 제1 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 3에는 제1 미들웨어 노드(MW_NODE1)(210-1)와 제1 공증 노드(MW_WITNESS1)(210-2) 및 제2 공증 노드(MW_WITNESS2)(210-3) 사이에서 수행되는 상기 제1 합의 알고리즘의 세부 과정이 도시된다.
도 3을 참조하면, 제1 미들웨어 노드(210-1)와 제1 공증 노드(210-2) 및 제2 공증 노드(210-3)가 단위 트랜잭션(UNIT_TX)에 대해 상기 제1 합의 알고리즘을 수행하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)을 제1 공증 노드(210-2) 및 제2 공증 노드(210-3)에 각각 전송할 수 있다(단계 S110).
상술한 바와 같이, 단위 트랜잭션(UNIT_TX)은 로그 데이터(LD)와 로그 데이터(LD)에 대한 해시값(HASH_LD)을 포함하는 원본 데이터(OD) 및 원본 데이터(OD)를 사물 인터넷 장치(110)로부터 수신한 시각에 상응하는 타임 스탬프(TIME_S)를 포함할 수 있다.
제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각은 제1 미들웨어 노드(210-1)로부터 단위 트랜잭션(UNIT_TX)을 수신하는 경우, 단위 트랜잭션(UNIT_TX)에 포함되는 해시값(HASH_LD)을 사용하여 단위 트랜잭션(UNIT_TX)에 포함되는 로그 데이터(LD)의 유효성을 공증할 수 있다(단계 S120).
일 실시예에 있어서, 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각은 단위 트랜잭션(UNIT_TX)에 포함되는 로그 데이터(LD)에 대한 해시값을 계산하고, 상기 계산된 해시값과 단위 트랜잭션(UNIT_TX)에 포함되는 해시값(HASH_LD)이 일치하는 경우 상기 공증에 성공한 것으로 판단하고, 상기 계산된 해시값과 단위 트랜잭션(UNIT_TX)에 포함되는 해시값(HASH_LD)이 일치하지 않는 경우 상기 공증에 실패한 것으로 판단할 수 있다.
제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각은, 상기 공증에 성공하는 경우 공증 성공 신호(AUTH_S)를 제1 미들웨어 노드(210-1)에 전송하고, 상기 공증에 실패하는 경우 공증 실패 신호(AUTH_F)를 제1 미들웨어 노드(210-1)에 전송할 수 있다(단계 S130).
제1 미들웨어 노드(210-1)는 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각으로부터 수신되는 공증 성공 신호(AUTH_S) 또는 공증 실패 신호(AUTH_F)에 기초하여 상기 제1 합의 알고리즘에 따른 상기 공증에 성공했는지 여부를 최종적으로 판단할 수 있다(단계 S140).
예를 들어, 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 모두로부터 공증 성공 신호(AUTH_S)를 수신하는 경우(단계 S140; YES), 제1 미들웨어 노드(210-1)는 상기 공증에 최종적으로 성공한 것으로 판단하여 단위 트랜잭션(UNIT_TX)을 승인하고(단계 S150), 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각에 제1 합의 성공 신호(CON_S)를 전송할 수 있다(단계 S160).
제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각은 제1 미들웨어 노드(210-1)로부터 제1 합의 성공 신호(CON_S)를 수신하는 경우, 제1 미들웨어 노드(210-1)로부터 수신한 단위 트랜잭션(UNIT_TX) 및 합의 성공 플래그를 내부에 포함되는 웜 스토리지(213)에 저장할 수 있다(단계 S170).
이와 같이, 사물 인터넷 장치(110)로부터 미들웨어 시스템(200)에 전송되는 원본 데이터(OD)에 포함되는 로그 데이터(LD)에 대해 상기 공증에 성공한 경우, 원본 데이터(OD)는 제1 미들웨어 노드(210-1)에 포함되는 웜 스토리지(213), 제1 공증 노드(210-2)에 포함되는 웜 스토리지(213), 및 제2 공증 노드(210-3)에 포함되는 웜 스토리지(213)에 중복되어 저장되므로, 미들웨어 시스템(200)에 대한 해킹 공격이 발생하는 경우에도 원본 데이터(OD)는 미들웨어 시스템(200)에 안전하게 보관될 수 있다.
이에 반해, 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 중의 적어도 하나로부터 공증 실패 신호(AUTH_F)를 수신하는 경우(단계 S140; NO), 제1 미들웨어 노드(210-1)는 상기 공증에 최종적으로 실패한 것으로 판단하여 단위 트랜잭션(UNIT_TX)을 폐기하고(단계 S180), 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각에 제1 합의 실패 신호(CON_F)를 전송할 수 있다(단계 S190).
일 실시예에 있어서, 제1 미들웨어 노드(210-1)가 단위 트랜잭션(UNIT_TX)을 폐기하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)에 포함되는 원본 데이터(OD)를 데이터베이스(215)로부터 삭제할 수 있다.
다른 실시예에 있어서, 제1 미들웨어 노드(210-1)가 단위 트랜잭션(UNIT_TX)을 폐기하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)에 포함되는 원본 데이터(OD)가 상기 공증에 실패했음을 나타내는 플래그를 원본 데이터(OD)와 연관시켜 데이터베이스(215)에 저장할 수 있다.
한편, 제1 공증 노드(210-2) 및 제2 공증 노드(210-3) 각각은 제1 미들웨어 노드(210-1)로부터 제1 합의 실패 신호(CON_F)를 수신하는 경우, 제1 미들웨어 노드(210-1)로부터 수신한 단위 트랜잭션(UNIT_TX) 및 합의 실패 플래그를 내부에 포함되는 웜 스토리지(213)에 저장할 수 있다.
도 1 내지 3을 참조하여 상술한 바와 같이, 본 발명의 실시예들에 따른 블록체인 네트워크(10)에서, 사물 인터넷 장치(110)가 원본 거래 데이터(OTD)를 생성하여 제1 미들웨어 노드(210-1)에 전송하는 경우, 제1 미들웨어 노드(210-1)는 원본 데이터(OD)를 웜 스토리지(213)에 저장한 후, 원본 데이터(OD)에 포함되는 해시값(HASH_LD)을 사용하여 원본 데이터(OD)에 포함되는 로그 데이터(LD)의 유효성을 검증하고, 상기 검증에 성공하는 경우, 원본 데이터(OD)와 원본 데이터(OD)를 수신한 시각에 상응하는 타임 스탬프(TIME_S)를 포함하는 단위 트랜잭션(UNIT_TX)을 생성할 수 있다.
이후, 제1 미들웨어 노드(210-1)와 제1 공증 노드(210-2) 및 제2 공증 노드(210-3)는 단위 트랜잭션(UNIT_TX)에 대해 상기 제1 합의 알고리즘을 수행하여 단위 트랜잭션(UNIT_TX)에 포함되는 로그 데이터(LD)의 유효성을 공증하고, 상기 공증에 성공하는 경우, 제1 미들웨어 노드(210-1)는 단위 트랜잭션(UNIT_TX)을 승인할 수 있다.
한편, 제1 미들웨어 노드(210-1)는 상기 제2 기준 시간 마다 주기적으로 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들을 포함하는 상기 현재 셀 블록을 생성할 수 있다.
구체적으로, 제1 미들웨어 노드(210-1)는 상기 제2 기준 시간 마다 주기적으로 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값들을 사용하여 현재 머클 트리(Merkle tree)를 생성할 수 있다.
일 실시예에 있어서, 상기 제2 기준 시간은 미리 정해진 시간일 수 있다. 예를 들어, 상기 제2 기준 시간은 1분에 상응할 수 있다.
도 4는 도 1의 블록체인 네트워크에서 제2 기준 시간 마다 주기적으로 생성되는 현재 머클 트리(Merkle tree)의 일 예를 설명하기 위한 도면이고, 도 5는 도 1의 블록체인 네트워크에서 제2 기준 시간 마다 주기적으로 생성되는 현재 셀 블록의 일 예를 설명하기 위한 도면이다.
도 4에는 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4)가 승인된 경우, 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4)을 사용하여 생성되는 현재 머클 트리(C_MT)가 도시된다.
도 4에 도시된 바와 같이, 제1 미들웨어 노드(210-1)는 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 제1 단위 트랜잭션(UNIT_TX1), 제2 단위 트랜잭션(UNIT_TX2), 제3 단위 트랜잭션(UNIT_TX3), 및 제4 단위 트랜잭션(UNIT_TX4) 각각에 대한 해시값을 계산할 수 있다.
제1 미들웨어 노드(210-1)는 제1 단위 트랜잭션(UNIT_TX1)에 대한 제1 해시값(H1), 제2 단위 트랜잭션(UNIT_TX2)에 대한 제2 해시값(H2), 제3 단위 트랜잭션(UNIT_TX3)에 대한 제3 해시값(H3), 및 제4 단위 트랜잭션(UNIT_TX4)에 대한 제4 해시값(H4)을 계산한 후, 제1 해시값(H1)과 제2 해시값(H2)을 병합한 값에 대한 제5 해시값(H12) 및 제3 해시값(H3)과 제4 해시값(H4)을 병합한 값에 대한 제6 해시값(H34)을 계산할 수 있다.
이후, 제1 미들웨어 노드(210-1)는 제5 해시값(H12)과 제6 해시값(H34)을 병합한 값에 대한 제7 해시값(HR)을 계산하고, 제1 내지 제4 단위 트랜잭션들(UNIT_TX1, UNIT_TX2, UNIT_TX3, UNIT_TX4)과 제1 내지 제7 해시값들(H1, H2, H3, H4, H12, H34, HR)을 도 4에 도시된 바와 같은 트리 구조로 연결하여 현재 머클 트리(C_MT)를 생성할 수 있다.
여기서, 제7 해시값(HR)은 현재 머클 트리(C_MT)의 루트에 상응할 수 있다.
제1 미들웨어 노드(210-1)는 상기 제2 기준 시간 마다 주기적으로 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값들을 사용하여 현재 머클 트리(C_MT)를 생성한 후, 도 5에 도시된 바와 같이, 이전 제2 기준 시간에 대해 생성된 이전 머클 트리를 포함하는 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함하는 현재 셀 블록(C_CBLOCK)을 생성할 수 있다.
일 실시예에 있어서, 상기 이전 셀 블록의 ID(P_CBLOCK_ID)는 상기 이전 셀 블록에 대한 해시값에 상응할 수 있다. 이 경우, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)에 대한 해시값을 계산하여 현재 셀 블록(C_CBLOCK)의 ID(C_CBLOCK_ID)로 결정할 수 있다.
한편, 제1 미들웨어 노드(210-1)는 생성된 현재 셀 블록(C_CBLOCK)을 웜 스토리지(213)에 저장할 수 있다.
이후, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)에 대해 상기 제2 합의 알고리즘을 수행할 수 있다.
상기 제2 합의 알고리즘은 제1 미들웨어 노드(210-1)와 복수의 미들웨어 노드들(210) 중에서 제1 미들웨어 노드(210-1)를 제외한 나머지 미들웨어 노드들 사이에서 수행될 수 있다.
도 6은 도 1의 블록체인 네트워크에서 수행되는 제2 합의 알고리즘의 수행 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 제1 미들웨어 노드(MW_NODE1)(210-1)와 복수의 미들웨어 노드들(210) 중에서 제1 미들웨어 노드(210-1)를 제외한 나머지 미들웨어 노드들(MW_NODE_R)(210-4)이 상기 제2 합의 알고리즘을 수행하는 경우, 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 나머지 미들웨어 노드들(210-4)에 전송할 수 있다(단계 S210).
나머지 미들웨어 노드들(210-4) 각각은 제1 미들웨어 노드(210-1)로부터 현재 셀 블록(C_CBLOCK)을 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 포함되는 현재 머클 트리(C_MT)의 유효성을 검증할 수 있다(단계 S220).
일 실시예에 있어서, 나머지 미들웨어 노드들(210-4) 각각은 현재 머클 트리(C_MT)에 포함되는 단위 트랜잭션(UNIT_TX)들 각각에 대한 해시값을 계산하고, 상기 계산된 해시값들을 사용하여 구성한 머클 트리와 현재 머클 트리(C_MT)가 일치하는 경우 상기 검증에 성공한 것으로 판단하고, 상기 계산된 해시값들을 사용하여 구성한 머클 트리와 현재 머클 트리(C_MT)가 일치하지 않는 경우 상기 검증에 실패한 것으로 판단할 수 있다.
나머지 미들웨어 노드들(210-4) 각각은 상기 검증에 성공하는 경우 검증 성공 신호(VERIF_S)를 제1 미들웨어 노드(210-1)에 전송하고, 상기 검증에 실패하는 경우 검증 실패 신호(VERIF_F)를 제1 미들웨어 노드(210-1)에 전송할 수 있다(단계 S230).
제1 미들웨어 노드(210-1)는 나머지 미들웨어 노드들(210-4) 중에서 문턱 비율보다 높은 비율에 상응하는 개수의 미들웨어 노드들(210-4)로부터 검증 성공 신호(VERIF_S)를 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공한 것으로 판단할 수 있다(단계 S240).
이에 반해, 제1 미들웨어 노드(210-1)는 나머지 미들웨어 노드들(210-4) 중에서 문턱 비율보다 낮거나 같은 비율에 상응하는 개수의 미들웨어 노드들(210-4)로부터 검증 성공 신호(VERIF_S)를 수신하는 경우, 현재 셀 블록(C_CBLOCK)에 대한 합의가 실패한 것으로 판단할 수 있다(단계 S240).
현재 셀 블록(C_CBLOCK)에 대한 합의가 실패한 것으로 판단되는 경우(단계 S240; NO), 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 폐기할 수 있다(단계 S250). 이 경우, 제1 미들웨어 노드(210-1)는 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 단위 트랜잭션(UNIT_TX)들 및 단위 트랜잭션(UNIT_TX)들에 대한 해시값들을 사용하여 현재 머클 트리(C_MT)를 재생성하고, 이전 제2 기준 시간에 대해 생성된 이전 머클 트리를 포함하는 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함하는 현재 셀 블록(C_CBLOCK)을 재생성할 수 있다(단계 S260). 이후, 제1 미들웨어 노드(210-1)는 재생성된 현재 셀 블록(C_CBLOCK)에 대해 상기 제2 합의 알고리즘을 다시 수행할 수 있다.
한편, 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공한 것으로 판단되는 경우(단계 S240; YES), 제1 미들웨어 노드(210-1)는 현재 셀 블록(C_CBLOCK)을 승인하고(단계 S270), 승인된 현재 셀 블록(C_CBLOCK)을 복수의 셀 블록들이 체인 형태로 연결된 셀 블록체인(CBCHAIN)의 끝단에 추가할 수 있다(단계 S280).
따라서 셀 블록체인(CBCHAIN)은 사물 인터넷 장치(110)로부터 생성된 원본 데이터(OD)가 디지털 원장(ledger)에 상응하는 메인넷(300)의 메인 블록체인(320)에 저장되기 이전에 임시로 저장되는 디지털 가원장(provisional ledger)에 상응할 수 있다.
도 7은 현재 셀 블록이 추가된 셀 블록체인의 일 예를 설명하기 위한 도면이다.
도 7에 도시된 바와 같이, 셀 블록체인(CBCHAIN)에 포함되는 복수의 셀 블록들(CBLOCK) 각각은 이전 셀 블록의 ID(P_CBLOCK_ID) 및 현재 머클 트리(C_MT)를 포함할 수 있다. 이 때, 셀 블록체인(CBCHAIN)의 첫 번째 셀 블록(CBLOCK)에 대해서는 이전 셀 블록이 존재하지 않으므로, 첫 번째 셀 블록(CBLOCK)은 이전 셀 블록의 ID(P_CBLOCK_ID)를 포함하지 않을 수 있다.
셀 블록(CBLOCK)에 포함되는 이전 셀 블록의 ID(P_CBLOCK_ID)는 직전의 셀 블록(CBLOCK)을 가리키므로, 셀 블록체인(CBCHAIN)에 포함되는 복수의 셀 블록들(CBLOCK)은 이전 셀 블록의 ID(P_CBLOCK_ID)를 통해 체인 형태로 연결될 수 있다.
제1 미들웨어 노드(210-1)는 상기 제2 합의 알고리즘을 통해 현재 셀 블록(C_CBLOCK)에 대한 합의가 성공하여 현재 셀 블록(C_CBLOCK)을 승인하는 경우, 도 7에 도시된 바와 같이, 셀 블록체인(CBCHAIN)의 마지막 셀 블록(CBLOCK)에 현재 셀 블록(C_CBLOCK)을 추가로 연결하고, 현재 셀 블록(C_CBLOCK)의 ID(C_CBLOCK_ID)를 셀 블록체인(CBCHAIN)의 헤드로 갱신할 수 있다.
다시 도 1을 참조하면, 제1 미들웨어 노드(210-1)는 주기적으로 또는 비주기적으로 셀 블록체인(CBCHAIN)에 연결된 복수의 셀 블록들(CBLOCK)에 포함되는 단위 트랜잭션(UNIT_TX)들 중에서 메인넷(300)의 메인 블록체인(320)에 저장되지 않은 단위 트랜잭션(UNIT_TX)들을 메인넷(300)에 포함되는 복수의 메인넷 노드들(310) 중의 적어도 일부에 전송할 수 있다.
일 실시예에 있어서, 제1 미들웨어 노드(210-1)는 복수의 메인넷 노드들(310) 중의 하나를 선택하고, 선택된 메인넷 노드(310)에 셀 블록체인(CBCHAIN)에 연결된 복수의 셀 블록들(CBLOCK)에 포함되는 단위 트랜잭션(UNIT_TX)들 중에서 메인넷(300)의 메인 블록체인(320)에 저장되지 않은 단위 트랜잭션(UNIT_TX)들을 전송할 수 있다.
복수의 메인넷 노드들(310)은 제1 미들웨어 노드(210-1)로부터 수신되는 단위 트랜잭션(UNIT_TX)들을 메인 블록체인(320)에 저장할 수 있다.
예를 들어, 복수의 메인넷 노드들(310)은 일정 시간 동안 제1 미들웨어 노드(210-1)로부터 수신되는 단위 트랜잭션(UNIT_TX)들을 포함하는 블록을 생성하고, 상기 생성된 블록에 대해 복수의 메인넷 노드들(310) 사이의 합의를 거친 후, 상기 합의에 성공한 경우 상기 생성된 블록을 메인 블록체인(320)의 끝단에 추가함으로써 단위 트랜잭션(UNIT_TX)들은 메인 블록체인(320)에 저장될 수 있다.
한편, 제1 미들웨어 노드(210-1)가 복수의 메인넷 노드들(310)에 전송한 단위 트랜잭션(UNIT_TX)들이 메인 블록체인(320)에 저장 완료되는 경우, 제1 미들웨어 노드(210-1)는 메인 블록체인(320)에 저장 완료된 단위 트랜잭션(UNIT_TX)들 각각에 포함되는 타임 스탬프(TIME_S)를 키값으로 하여 데이터베이스(215)에 저장된 로그 데이터(LD)들 중에서 메인 블록체인(320)에 저장 완료된 단위 트랜잭션(UNIT_TX)들 각각에 상응하는 로그 데이터(LD)를 검색하고, 블록체인 저장 완료 플래그를 상기 검색된 로그 데이터(LD)와 연관시켜 데이터베이스(215)에 저장할 수 있다.
일 실시예에 있어서, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(213)에 저장된 데이터들을 주기적으로 백업하여 내부에 포함되는 상기 웜 스토리지에 저장할 수 있다.
예를 들어, 마스터 노드(220)는 복수의 미들웨어 노드들(210) 각각의 웜 스토리지(213)에 저장된 원본 데이터(OD)들, 단위 트랜잭션(UNIT_TX)들, 및 현재 셀 블록(C_CBLOCK)들을 주기적으로 백업하여 내부에 포함되는 상기 웜 스토리지에 저장할 수 있다.
상술한 바와 같이, 웜 스토리지(213)는 데이터가 한번 기입되면 상기 기입된 데이터에 대해 독출 동작만 가능하고 상기 기입된 데이터에 대한 변경이나 삭제는 불가능한 데이터 저장 장치를 나타낸다. 따라서 메인넷(300)에 대해 해킹 공격이 발생하여 메인 블록체인(320)이 손상되는 경우에도 원본 데이터(OD)들, 단위 트랜잭션(UNIT_TX)들, 및 현재 셀 블록(C_CBLOCK)들은 복수의 미들웨어 노드들(210) 및 마스터 노드(220)의 웜 스토리지(213)에 안전하게 보관되어 있으므로, 본 발명의 실시예들에 따른 블록체인 네트워크(10)의 보안성은 더욱 향상될 수 있다.
도 1 내지 7을 참조하여 상술한 바와 같이, 레거시 시스템(100)에 포함되는 사물 인터넷 장치(110)는 메인넷(300)과 직접 데이터 통신을 수행하기 위한 블록체인 관련 모듈은 포함하고 있지 않으며, 미들웨어 시스템(200)과 데이터 통신을 수행하기 위한 상기 오픈 API를 사용하여 미들웨어 시스템(200)을 통해 로그 데이터(LD)를 메인넷(300)의 메인 블록체인(320)에 저장할 수 있다.
따라서 본 발명의 실시예들에 따른 사물 인터넷 장치를 위한 블록체인 네트워크(10)는 사물 인터넷 장치(110)에 대한 큰 변경 없이 사물 인터넷 장치(110)로부터 생성되는 로그 데이터(LD)를 메인넷(300)의 메인 블록체인(320)에 안전하게 저장할 수 있다.
또한, 미들웨어 시스템(200)은 사물 인터넷 장치(110)로부터 수신되는 로그 데이터(LD)의 유효성을 검증하고, 상기 검증에 성공한 경우 로그 데이터(LD)를 디지털 가원장에 상응하는 셀 블록체인(CBCHAIN)에 저장하고, 셀 블록체인(CBCHAIN)에 저장된 로그 데이터(LD)들을 메인넷(300)의 메인 블록체인(320)에 저장한다.
따라서 사물 인터넷 장치(110)는 로그 데이터(LD)를 미들웨어 시스템(200)에 전송한 후, 로그 데이터(LD)가 메인넷(300)의 메인 블록체인(320)에 저장 완료될 때까지 대기할 필요 없이, 상기 미리 정의된 이벤트가 발생할 때마다 로그 데이터(LD)를 생성하여 미들웨어 시스템(200)에 지속적으로 전송할 수 있다.
따라서 본 발명의 실시예들에 따른 사물 인터넷 장치를 위한 블록체인 네트워크(10)는 사물 인터넷 장치(110)가 매우 빠른 속도로 로그 데이터(LD)를 생성하는 경우에도, 사물 인터넷 장치(110)의 동작 속도를 저하시키지 않으면서 사물 인터넷 장치(110)로부터 생성되는 로그 데이터(LD)를 메인넷(300)의 메인 블록체인(320)에 안전하게 저장할 수 있다.
본 발명은 기존의 레거시(legacy) 시스템에 포함되는 사물 인터넷 장치의 동작 속도를 저하시키지 않으면서도 사물 인터넷 장치로부터 생성되는 로그 데이터를 블록체인에 안전하게 저장하는 데에 유용하게 이용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 블록체인 네트워크 100: 레거시 시스템
110: 사물 인터넷 장치 111: 센서
200: 미들웨어 시스템 210: 미들웨어 노드
211: 데이터 수신부 213: 웜 스토리지
215: 데이터베이스 217: 데이터 처리부
300: 메인넷 310: 메인넷 노드
320: 메인 블록체인

Claims (22)

  1. 미리 정의된 이벤트가 발생하는 경우, 로그 데이터를 생성하는 사물 인터넷 장치;
    복수의 미들웨어 노드들을 포함하고, 상기 사물 인터넷 장치로부터 상기 로그 데이터를 수신하는 경우, 상기 로그 데이터 및 상기 로그 데이터를 수신한 시각을 나타내는 타임 스탬프를 서로 연관시켜 내부에 저장하고, 제1 기준 시간 마다 주기적으로 상기 제1 기준 시간 동안 저장된 상기 로그 데이터들 각각의 유효성을 검증하고, 상기 검증에 성공한 경우 상기 로그 데이터 및 상기 로그 데이터와 연관되는 상기 타임 스탬프를 포함하는 단위 트랜잭션을 생성하고, 상기 단위 트랜잭션에 대해 내부적으로 제1 합의 알고리즘을 수행하여 상기 단위 트랜잭션에 포함되는 상기 로그 데이터의 유효성을 공증하고, 상기 공증에 성공한 경우 상기 단위 트랜잭션을 승인하고, 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인되는 상기 단위 트랜잭션들을 포함하는 현재 셀 블록을 생성하고, 상기 현재 셀 블록에 대해 내부적으로 제2 합의 알고리즘을 수행하여 상기 현재 셀 블록을 승인하고 상기 승인된 현재 셀 블록을 복수의 셀 블록들이 연결된 셀 블록체인의 끝단에 추가하는 미들웨어(middleware) 시스템; 및
    복수의 메인넷 노드들을 포함하고, 상기 미들웨어 시스템으로부터 수신되는 상기 단위 트랜잭션을 상기 복수의 메인넷 노드들 사이에 공유되는 메인 블록체인에 저장하는 메인넷(Main Net)을 포함하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  2. 제1 항에 있어서, 상기 사물 인터넷 장치는 상기 미들웨어 시스템과 데이터 통신을 수행하기 위한 오픈 API를 포함하고, 상기 오픈 API를 사용하여 상기 로그 데이터를 상기 미들웨어 시스템에 전송하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  3. 제1 항에 있어서, 상기 사물 인터넷 장치는, 미리 정해진 감지 주기가 도래할 때마다 주위 환경 상태를 감지하고 상기 감지된 값을 상기 로그 데이터로서 생성하는 센서를 포함하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  4. 제1 항에 있어서, 상기 사물 인터넷 장치는, 주위 환경 상태를 감지하고 상기 감지된 값이 미리 정해진 정상 범위를 벗어날 때마다 상기 감지된 값을 상기 로그 데이터로서 생성하는 센서를 포함하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  5. 제1 항에 있어서, 상기 사물 인터넷 장치는, 상기 미리 정의된 이벤트가 발생하는 경우 상기 복수의 미들웨어 노드들 중에서 선택되는 제1 미들웨어 노드에 상기 로그 데이터 및 상기 로그 데이터에 대한 해시값을 포함하는 원본 데이터를 전송하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  6. 제5 항에 있어서, 상기 사물 인터넷 장치는 상기 복수의 미들웨어 노드들 중에서 랜덤하게 상기 제1 미들웨어 노드를 선택하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  7. 제5 항에 있어서, 상기 사물 인터넷 장치는 상기 복수의 미들웨어 노드들 중에서 미리 정해진 상기 제1 미들웨어 노드에 상기 원본 데이터를 전송하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  8. 제5 항에 있어서, 상기 복수의 미들웨어 노드들 각각은,
    웜(write once read many; WORM) 스토리지;
    상기 사물 인터넷 장치로부터 제공되는 상기 로그 데이터를 저장하고, 상기 로그 데이터의 상태를 관리하는 데에 사용되는 데이터베이스;
    상기 사물 인터넷 장치로부터 상기 원본 데이터를 수신하는 경우, 상기 원본 데이터를 수신한 시각에 상응하는 상기 타임 스탬프를 결정하고, 상기 타임 스탬프를 상기 원본 데이터에 대한 키값으로 하여 상기 원본 데이터 및 상기 타임 스탬프를 상기 웜 스토리지 및 상기 데이터베이스에 동시에 저장하는 데이터 수신부; 및
    상기 제1 기준 시간 마다 주기적으로 동작하여, 상기 제1 기준 시간 동안 상기 데이터베이스에 저장된 상기 원본 데이터들 각각에 대해, 상기 원본 데이터에 포함되는 상기 해시값을 사용하여 상기 원본 데이터에 포함되는 상기 로그 데이터의 유효성을 검증하고, 상기 검증의 결과를 나타내는 검증 결과 플래그를 상기 데이터베이스에 저장하고, 상기 검증에 성공한 상기 로그 데이터에 상응하는 상기 원본 데이터와 상기 타임 스탬프를 포함하는 상기 단위 트랜잭션을 생성하는 데이터 처리부를 포함하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  9. 제5 항에 있어서, 상기 제1 합의 알고리즘은 상기 복수의 미들웨어 노드들 중에서 선택되는 제1 및 제2 공증 노드들과 상기 제1 미들웨어 노드 사이에서 수행되는 사물 인터넷 장치를 위한 블록체인 네트워크.
  10. 제9 항에 있어서, 상기 제1 미들웨어 노드와 함께 상기 제1 합의 알고리즘을 수행할 상기 제1 및 제2 공증 노드들은 상기 사물 인터넷 장치가 상기 복수의 미들웨어 노드들 중에서 선택하여 상기 제1 미들웨어 노드에 통보하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  11. 제9 항에 있어서, 상기 제1 미들웨어 노드와 함께 상기 제1 합의 알고리즘을 수행할 상기 제1 및 제2 공증 노드들은 상기 제1 미들웨어 노드가 상기 복수의 미들웨어 노드들 중에서 선택하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  12. 제9 항에 있어서, 상기 제1 미들웨어 노드와 상기 제1 및 제2 공증 노드들이 상기 단위 트랜잭션에 대해 상기 제1 합의 알고리즘을 수행하는 경우,
    상기 제1 미들웨어 노드는 상기 원본 데이터 및 상기 원본 데이터를 상기 사물 인터넷 장치로부터 수신한 시각에 상응하는 상기 타임 스탬프를 포함하는 상기 단위 트랜잭션을 상기 제1 및 제2 공증 노드들 각각에 전송하고,
    상기 제1 및 제2 공증 노드들 각각은 상기 단위 트랜잭션에 포함되는 상기 해시값을 사용하여 상기 단위 트랜잭션에 포함되는 상기 로그 데이터의 유효성을 공증하고, 상기 공증에 성공하는 경우 공증 성공 신호를 상기 제1 미들웨어 노드에 전송하고, 상기 검증에 실패하는 경우 공증 실패 신호를 상기 제1 미들웨어 노드에 전송하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  13. 제12 항에 있어서, 상기 제1 미들웨어 노드는,
    상기 제1 및 제2 공증 노드들 각각으로부터 상기 공증 성공 신호를 수신하는 경우, 상기 공증에 성공한 것으로 판단하여 상기 단위 트랜잭션을 승인하고 상기 제1 및 제2 공증 노드들 각각에 제1 합의 성공 신호를 전송하고,
    상기 제1 및 제2 공증 노드들 중의 적어도 하나로부터 상기 공증 실패 신호를 수신하는 경우, 상기 공증에 실패한 것으로 판단하여 상기 단위 트랜잭션을 폐기하고 상기 제1 및 제2 공증 노드들 각각에 제1 합의 실패 신호를 전송하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  14. 제13 항에 있어서, 상기 제1 및 제2 공증 노드들 각각은 상기 제1 미들웨어 노드로부터 상기 제1 합의 성공 신호를 수신하는 경우, 상기 제1 미들웨어 노드로부터 수신한 상기 단위 트랜잭션을 내부에 포함되는 웜(write once read many; WORM) 스토리지에 저장하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  15. 제5 항에 있어서, 상기 제1 미들웨어 노드는 상기 제2 기준 시간 마다 주기적으로 상기 제2 기준 시간 동안 상기 제1 합의 알고리즘을 통해 승인된 상기 단위 트랜잭션들 및 상기 단위 트랜잭션들에 대한 해시값들을 사용하여 현재 머클 트리(Merkle tree)를 생성하고, 이전 제2 기준 시간에 대해 생성된 이전 머클 트리를 포함하는 이전 셀 블록의 ID 및 상기 현재 머클 트리를 포함하는 상기 현재 셀 블록을 생성하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  16. 제15 항에 있어서, 상기 제2 합의 알고리즘은 상기 제1 미들웨어 노드와 상기 복수의 미들웨어 노드들 중에서 상기 제1 미들웨어 노드를 제외한 나머지 미들웨어 노드들 사이에서 수행되고,
    상기 제1 미들웨어 노드와 상기 나머지 미들웨어 노드들이 상기 제2 합의 알고리즘을 수행하는 경우,
    상기 제1 미들웨어 노드는 상기 현재 셀 블록을 상기 나머지 미들웨어 노드들에 전송하고,
    상기 나머지 미들웨어 노드들 각각은 상기 현재 셀 블록에 포함되는 상기 현재 머클 트리의 유효성을 검증하여 검증 성공 신호 및 검증 실패 신호 중의 하나를 상기 제1 미들웨어 노드에 전송하고,
    상기 제1 미들웨어 노드는 상기 나머지 미들웨어 노드들 중에서 문턱 비율보다 높은 비율에 상응하는 개수의 미들웨어 노드들로부터 상기 검증 성공 신호를 수신하는 경우, 상기 현재 셀 블록을 승인하고, 상기 셀 블록체인의 마지막 셀 블록에 상기 승인된 현재 셀 블록을 연결하고, 상기 현재 셀 블록의 ID를 상기 셀 블록체인의 헤드로 갱신하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  17. 제16 항에 있어서, 상기 제1 미들웨어 노드는 상기 현재 셀 블록을 승인하는 경우, 상기 현재 셀 블록을 내부에 포함되는 웜(write once read many; WORM) 스토리지에 저장하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  18. 제16 항에 있어서, 상기 제1 미들웨어 노드는 상기 셀 블록체인에 연결되는 상기 복수의 셀 블록들에 포함되는 상기 단위 트랜잭션들 중에서 상기 메인 블록체인에 저장되지 않은 단위 트랜잭션들을 상기 메인넷에 전송하고,
    상기 메인넷은 상기 제1 미들웨어 노드로부터 수신되는 상기 단위 트랜잭션들을 상기 메인 블록체인에 저장하고,
    상기 제1 미들웨어 노드는 상기 메인 블록체인에 저장 완료된 상기 단위 트랜잭션들 각각에 포함되는 상기 타임 스탬프를 키값으로 하여 내부에 저장된 상기 로그 데이터들 중에서 상기 메인 블록체인에 저장 완료된 상기 단위 트랜잭션들 각각에 상응하는 상기 로그 데이터를 검색하고, 블록체인 저장 완료 플래그를 상기 검색된 로그 데이터와 연관시켜 내부에 저장하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  19. 제1 항에 있어서, 상기 미들웨어 시스템은 신규 노드가 상기 미들웨어 시스템에 상기 미들웨어 노드로서 참가하는 것을 허가하고, 상기 복수의 미들웨어 노드들의 리스트를 관리하고, 상기 복수의 미들웨어 노드들의 동작 상태를 모니터링하고, 상기 복수의 미들웨어 노드들의 주소들을 상기 사물 인터넷 장치에 제공하고, 상기 복수의 미들웨어 노드들 각각에 포함되는 웜(write once read many; WORM) 스토리지에 저장된 상기 로그 데이터를 주기적으로 백업하는 마스터 노드를 더 포함하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  20. 제1 항에 있어서, 상기 메인넷은 임의의 노드가 상기 메인넷 노드로 참가할 수 있는 퍼블릭(public) 메인넷에 상응하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  21. 제1 항에 있어서, 상기 메인넷은 허가된 노드만이 상기 메인넷 노드로 참가할 수 있는 프라이빗(private) 메인넷에 상응하는 사물 인터넷 장치를 위한 블록체인 네트워크.
  22. 제21 항에 있어서, 상기 메인넷은 상기 사물 인터넷 장치의 사용자에 의해 운용되는 프라이빗 메인넷에 상응하는 사물 인터넷 장치를 위한 블록체인 네트워크.
KR1020190125740A 2019-10-10 2019-10-10 사물 인터넷 장치를 위한 블록체인 네트워크 KR102152537B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190125740A KR102152537B1 (ko) 2019-10-10 2019-10-10 사물 인터넷 장치를 위한 블록체인 네트워크

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190125740A KR102152537B1 (ko) 2019-10-10 2019-10-10 사물 인터넷 장치를 위한 블록체인 네트워크

Publications (1)

Publication Number Publication Date
KR102152537B1 true KR102152537B1 (ko) 2020-09-07

Family

ID=72471955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190125740A KR102152537B1 (ko) 2019-10-10 2019-10-10 사물 인터넷 장치를 위한 블록체인 네트워크

Country Status (1)

Country Link
KR (1) KR102152537B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置
KR102390060B1 (ko) * 2020-12-21 2022-04-22 계명대학교 산학협력단 긴급한 데이터 전송을 위한 경량화 블록체인 제공 방법 및 장치
KR20220150728A (ko) * 2021-05-04 2022-11-11 계명대학교 산학협력단 외부 저장소와 pbft 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180123968A (ko) * 2018-04-30 2018-11-20 주식회사 코인플러그 블록체인 데이터베이스 및 이와 연동하는 머클 트리 구조를 통해 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
KR20190004309A (ko) * 2016-04-29 2019-01-11 엔체인 홀딩스 리미티드 블록체인 iot장치를 위한 동작 시스템
KR20190030317A (ko) * 2017-09-14 2019-03-22 숭실대학교산학협력단 블록체인을 이용한 사물인터넷 보안 시스템 및 보안 방법
KR20190051326A (ko) * 2017-11-06 2019-05-15 주식회사 케이티 블록 체인 기반 사물 인터넷 장치 제어 시스템 및 방법
KR20190063537A (ko) * 2017-11-30 2019-06-10 백석대학교산학협력단 블록체인 기반 IoT 센서 노드 인증 방법
KR20190088401A (ko) * 2017-12-29 2019-07-26 상하이 웨이리안 인포메이션 테크놀로지 컴퍼니 리미티드 물체의 운송 데이터 기록을 위한 방법, 매체, IoT 장치, 블록 체인 플랫폼 및 IoT 시스템
KR20190100177A (ko) * 2016-12-30 2019-08-28 인텔 코포레이션 사물 인터넷을 위한 명명 및 블록체인 기록

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190004309A (ko) * 2016-04-29 2019-01-11 엔체인 홀딩스 리미티드 블록체인 iot장치를 위한 동작 시스템
KR20190100177A (ko) * 2016-12-30 2019-08-28 인텔 코포레이션 사물 인터넷을 위한 명명 및 블록체인 기록
KR20190030317A (ko) * 2017-09-14 2019-03-22 숭실대학교산학협력단 블록체인을 이용한 사물인터넷 보안 시스템 및 보안 방법
KR20190051326A (ko) * 2017-11-06 2019-05-15 주식회사 케이티 블록 체인 기반 사물 인터넷 장치 제어 시스템 및 방법
KR20190063537A (ko) * 2017-11-30 2019-06-10 백석대학교산학협력단 블록체인 기반 IoT 센서 노드 인증 방법
KR20190088401A (ko) * 2017-12-29 2019-07-26 상하이 웨이리안 인포메이션 테크놀로지 컴퍼니 리미티드 물체의 운송 데이터 기록을 위한 방법, 매체, IoT 장치, 블록 체인 플랫폼 및 IoT 시스템
KR20180123968A (ko) * 2018-04-30 2018-11-20 주식회사 코인플러그 블록체인 데이터베이스 및 이와 연동하는 머클 트리 구조를 통해 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102390060B1 (ko) * 2020-12-21 2022-04-22 계명대학교 산학협력단 긴급한 데이터 전송을 위한 경량화 블록체인 제공 방법 및 장치
KR20220150728A (ko) * 2021-05-04 2022-11-11 계명대학교 산학협력단 외부 저장소와 pbft 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치
KR102650336B1 (ko) 2021-05-04 2024-03-22 계명대학교 산학협력단 외부 저장소와 pbft 합의 알고리즘을 이용한 경량화 블록체인 제공 방법 및 장치
CN114285745A (zh) * 2021-12-22 2022-04-05 上海摩联信息技术有限公司 一种节点更新方法和装置

Similar Documents

Publication Publication Date Title
KR102152537B1 (ko) 사물 인터넷 장치를 위한 블록체인 네트워크
US20220173888A1 (en) Blockchain consensus methods and systems
EP3399446B1 (en) Methods and apparatus for distributed database within a network
CN110175840B (zh) 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统
CA2731954C (en) Apparatus, methods, and computer program products providing dynamic provable data possession
AU2017382161A1 (en) Methods and apparatus for a distributed database that enables deletion of events
US11468044B2 (en) Optimizations for verification of interactions system and method using probability density functions
KR102057570B1 (ko) 블록체인 네트워크
Karantias Sok: A taxonomy of cryptocurrency wallets
CN111095218B (zh) 基于纠错编码存储共享的区块链数据的方法、系统及装置
KR102150210B1 (ko) 블록체인 네트워크
Hari et al. Accel: Accelerating the bitcoin blockchain for high-throughput, low-latency applications
US11372847B2 (en) Block verification device, block verification method, and program
Han et al. Shrec: Bandwidth-efficient transaction relay in high-throughput blockchain systems
Ha et al. Low-cost and strong-security RFID authentication protocol
Fang et al. Pelopartition: Improving blockchain resilience to network partitioning
Huang et al. Downsampling and transparent coding for blockchain
Putra et al. Decentralised trustworthy collaborative intrusion detection system for IoT
Makhdoom et al. PLEDGE: An IoT-oriented proof-of-honesty based blockchain consensus protocol
Yuan et al. We can make mistakes: Fault-tolerant forward private verifiable dynamic searchable symmetric encryption
CN111064641A (zh) 一种去中心化存储网络的节点性能检测系统及方法
Tang et al. Excellent practical byzantine fault tolerance
CN116232600A (zh) 一种基于区块链的数据安全存储方法及系统
US20240106669A1 (en) Methods and systems for streaming block templates with cross-references
CN111953546B (zh) 基于区块链系统的物联网设备管理方法和智能家居系统

Legal Events

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