KR20200082638A - 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템 - Google Patents

다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
KR20200082638A
KR20200082638A KR1020180173416A KR20180173416A KR20200082638A KR 20200082638 A KR20200082638 A KR 20200082638A KR 1020180173416 A KR1020180173416 A KR 1020180173416A KR 20180173416 A KR20180173416 A KR 20180173416A KR 20200082638 A KR20200082638 A KR 20200082638A
Authority
KR
South Korea
Prior art keywords
transaction
iot device
blockchain
information block
information
Prior art date
Application number
KR1020180173416A
Other languages
English (en)
Other versions
KR102180596B1 (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 KR1020180173416A priority Critical patent/KR102180596B1/ko
Publication of KR20200082638A publication Critical patent/KR20200082638A/ko
Application granted granted Critical
Publication of KR102180596B1 publication Critical patent/KR102180596B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y10/00Economic sectors
    • G16Y10/50Finance; Insurance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법과 시스템이 개시된다. IoT 디바이스 식별정보를 담은 디바이스정보 블록들을 행 방향(횡 방향)으로 선형적으로 연결한 디바이스정보 블록체인과, 각 IoT 디바이스의 거래행위에 관한 거래정보를 담은 거래정보 블록들을 해당 IoT 디바이스의 디바이스정보 블록에 열 방향(종 방향) 선형적으로 연결한 거래정보 블록체인을 포함하는 다중 블록체인을 이용한다. 디바이스정보 블록체인은 다중 블록체인의 최상위 행에 배치된다. 디바이스정보 블록들의 이런 형태의 배치는 원하는 최상위 행만을 탐색하면 되므로 IoT 디바이스에 대응되는 디바이스정보 블록을 찾는 데 매우 효율적인 배치이다. 어떤 IoT 디바이스의 거래행위를 처리하는 작업도 매우 효율적으로 이루어질 수 있다. 원하는 IoT 디바이스의 디바이스정보 블록이 찾아지면, 그 블록에 연결된 거래정보 블록만을 대상으로 하여 맨 마지막 거래정보 블록을 찾아서 그 블록의 하위에 새로운 거래정보 블록을 연결시키면 된다. 모든 IoT 디바이스의 거래정보 전체를 검색하지 않아도 된다.

Description

다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템 {Method and System for Identifying and Tracking IoT Device based on Multi-dimensional Block Chain}
본 발명은 블록체인 기술 분야에 관한 것으로, 보다 상세하게는 다차원 블록체인과 전자지갑 기술을 활용하여 사물인터넷(Internet of Things: IoT) 장치를 식별하고 그것의 인증 및 행위정보(거래정보)를 추적하는 기술에 관한 것이다.
블록체인 기술을 다양한 분야에서 적용하기 위한 기술개발 노력과 시도들이 활발하게 이루어지고 있다. 블록체인 기술은 소위 암호 화폐와 밀접한 관계를 가진다.
일반적인 IoT 디바이스에 대한 식별 및 인증은 중앙집중식으로 이루어지고 있다. 즉, 중앙에 서비스 별로 인증 서버를 개별적으로 구축하여 운영하고 있다. 서비스별로 IoT 디바이스를 식별하여 반복적인 등록과정과 IoT 디바이스와 여러 서비스 간에 발생하는 행위정보(거래정보)를 별도의 솔루션을 도입하여 수집 및 추적을 해야 되는 문제점이 발생하고 있다.
IoT 디바이스들을 체인 구조로 연결하여 IoT 디바이스들의 등록, 인증, 및 행위정보(거래정보)를 추적하는 종래기술도 있다. 그런데 그 종래기술은 IoT 디바이스들을 선형적인 체인 구조로 연결하여 행위정보(거래정보)를 추적한다. 따라서 그러한 선형적인 체인 구조로 연결된 수많은 IoT 디바이스들 중에서 원하는 IoT 디바이스를 탐색하여 그것에 관한 인증과 행위정보(거래정보)를 추적하는 것은 효율적이지 못하다. 특정 IoT 디바이스를 탐색하는 데 드는 코스트가 여전히 높다. 개선이 필요하다.
상기한 종래의 기술의 문제를 해결하기 위하여, 본 발명은 탈 중앙화 분산 기술인 블록체인과 전자지갑 기술을 활용하여 중앙화된 인증 서버 없이 IoT 디비이스를 등록, 인증 및 다양한 서비스 간에 발생하는 행위정보(거래정보)를 수집 및 추적할 수 있는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법 및 이를 위한 시스템을 제공하기 위한 것이다.
본 발명이 해결하고자 하는 과제는 상술한 과제들에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
상기 본 발명의 일 목적을 실현하기 위한 실시예들에 따른 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템은 하나 이상의 IoT 디바이스와, 적어도 하나의 블록체인 노드를 포함한다. 상기 하나 이상의 IoT 디바이스 각각은, 컴퓨팅 기능과 통신 기능을 구비하는 컴퓨팅 장치이며, 소정의 다른 컴퓨팅 장치가 제공하는 소정의 서비스에 관한 거래 행위에 대한 전자서명을 수행할 수 있는 전자지갑유닛을 포함하며, 상기 전자지갑유닛을 통해 블록체인 네트워크에 연결되어 있는 블록체인 노드와의 인터넷 통신을 통해 거래행위에 대한 전자서명을 할 수 있도록 구성된다. 상기 적어도 하나의 블록체인 노드는 각각은, 컴퓨팅 기능과 통신기능을 구비하는 컴퓨팅 장치이며, 상기 하나 이상의 IoT 디바이스로부터의 요청에 응하여 해당 IoT 디바이스의 등록 및 인증과 상기 소정의 거래 행위에 관한 거래정보의 처리를 실행하는 스마트 컨트랙트 실행부와, 상기 스마트 컨트랙트 실행부의 실행에 의해 생성되는 IoT 디바이스의 등록 및 인증, 거래정보 처리에 관련된 데이터를 저장하는 다중 블록체인을 포함하도록 구성되며, 블록체인 네트워크에 연결된다.
상기 다중 블록체인은 상기 하나 이상의 IoT 디바이스의 식별 및 인증에 관련된 정보를 각각 포함하는 복수의 디바이스정보 블록들이 형성하는 디바이스정보 블록체인과, 상기 하나 이상의 IoT 디바이스가 소정의 서비스들 간에 이루어진 거래행위에 관한 거래정보를 포함하는 복수의 거래정보 블록들이 형성하는 거래정보 블록체인을 포함한다.
상기 복수의 디바이스정보 블록들은 생성 시간의 순서에 따라 행 방향(횡 방향)으로 일방향 연결을 이루어 단일의 선형 블록체인을 형성하고 상기 다중 블록체인의 최상위 행에 위치한다.
상기 복수의 거래정보 블록들은 각각이 내포하는 거래정보에 관련된 거래행위를 행한 IoT 디바이스에 대응되는 디바이스정보 블록에 속하도록 구분되고, 각 디바이스정보 블록에 속하는 거래정보 블록들은 생성 시간의 순서에 따라 열 방향(종 방향)으로 일방향 연결을 이루어 단일의 선형 거래정보 블록체인을 형성한다.
상기 다중 블록체인은 상기 복수의 디바이스정보 블록 각각을 최상위 블록으로 하여 각 디바이스정보 블록마다 이의 열 방향(종 방향) 하위에 관련 거래정보 블록들이 열 방향(종 방향)으로 연결된 형태의 블록체인이다.
예시적인 실시예들에 있어서, 상기 디바이스정보 블록체인을 형성하는 j번째 디바이스정보 블록은 j-1번째 디바이스정보 블록의 해쉬값을 연결하여 디바이스정보 블록간의 체인을 형성할 수 있다. 상기 거래정보 블록체인을 형성하는 k번째 거래정보 블록은 k-1번째 거래정보 블록의 해쉬값을 연결하여 거래정보 블록 간의 체인을 형성할 수 있다. 여기서, 상기 k와 j은 각각 상기 디바이스정보 블록체인을 구성하는 디바이스정보 블록들의 개수보다 크지 않은 자연수이다.
예시적인 실시예들에 있어서, 상기 하나 이상의 IoT 디바이스 각각에 포함된 전자지갑 유닛은, 대응 IoT 디바이스의 고유한 식별자 정보를 생성하도록 구성된 식별자 생성부; 소정의 알고리즘을 이용하여 상기 대응 IoT 디바이스에 관한 개인키와 공개키의 키쌍을 생성하도록 구성된 키쌍 생성부; 상기 키쌍 생성부가 생성한 개인키로 전자서명을 위한 전자서명 데이터를 생성함으로써 상기 대응 IoT 디바이스의 거래행위에 대한 전자서명을 수행하도록 구성된 전자서명부; 상기 식별자 생성부와 상기 키쌍 생성부가 생성한 상기 식별자 정보와 상기 공개키를 상기 블록체인 네트워크에 속해 있는 소정의 블록체인 노드를 통해 상기 디바이스정보 블록체인을 이루는 소정의 디바이스정보 블록에 저장되도록 하는 등록 컨트랙트 호출부; 상기 전자서명부에서 생성된 전자서명 데이터와 상기 식별자 생성부에서 생성된 식별자 정보를 상기 소정의 블록체인 노드에 전송하여 상기 IoT 디바이스의 인증을 처리하고 인증 결과를 회신하도록 하는 인증 컨트랙트 호출부; 및 상기 IoT 디바이스가 인증에 성공한 경우, 상기 IoT 디바이스와 소정의 서비스를 제공하는 컴퓨팅 장치 간에 이루어지는 거래 행위에 관해 데이터인 거래 정보를 상기 식별자 정보와 함께 상기 소정의 블록체인 노드에 제공하여 상기 다중 블록체인의 거래정보 블록에 저장되도록 하는 거래 컨트랙트 호출부를 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 스마트 컨트랙트 실행부는, 등록 컨트랙트 실행부, 인증 컨트랙트 실행부, 그리고 거래처리 컨트랙트 실행부를 포함할 수 있다. 상기 등록 컨트랙트 실행부는, 신규 IoT 디바이스로부터의 등록 요청에 응하여, 상기 신규 IoT 디바이스에 대응하는 디바이스 메타데이터와 상위 디바이스정보 블록의 해쉬값을 포함하는 새로운 디바이스정보 블록을 생성하고, 상기 새로운 디바이스정보 블록을 상기 상위 디바이스정보 블록의 해쉬값을 통해 상기 디바이스정보 블록체인의 현재의 맨 마지막 디바이스정보 블록의 하위 디바이스정보 블록으로 추가하여 새로운 맨 마지막 디바이스정보 블록으로 저장함으로써 상기 신규 IoT 디바이스의 등록을 실행하도록 구성될 수 있다. 상기 인증 컨트랙트 실행부는, 소정의 IoT 디바이스로부터의 인증 요청에 응하여, 그 IoT 디바이스의 식별자 정보와 전자서명 데이터를 상기 IoT 디바이스로부터 제공받고, 제공받은 식별자 정보에 대응하는 상기 IoT 디바이스의 공개키를 상기 디바이스정보 블록체인에서 검색하고, 검색된 상기 IoT 디바이스의 공개키를 이용하여 상기 전자서명 데이터를 검증하여 상기 IoT 디바이스의 유효성을 확인하고, 유효성 확인 결과를 상기 IoT 디바이스에 회신하도록 구성될 수 있다. 상기 거래처리 컨트랙트 실행부는, 유효성이 확인된 IoT 디바이스로부터의 거래처리 요청에 응하여, 그 IoT 디바이스와 상기 소정의 서비스 간의 거래행위에 관한 거래정보와 상기 IoT 디바이스의 식별자 정보를 상기 IoT 디바이스로부터 제공받고, 상기 식별자 정보가 포함된 디바이스정보 블록을 상기 다중 블록체인의 상기 디바이스정보 블록체인에서 검색하여 해당 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록을 검색하고, 검색된 상기 맨 마지막 거래정보 블록의 해쉬값을 획득하고, 상기 IoT 디바이스의 거래정보와 상기 맨 마지막 거래정보 블록의 해쉬값을 포함하는 새로운 거래정보 블록을 생성하여 상기 맨 마지막 거래정보 블록의 하위 거래정보 블록으로 추가되도록 저장함으로써 상기 IoT 디바이스의 거래행위를 처리하도록 구성될 수 있다.
예시적인 실시예들에 있어서, 상기 새로운 디바이스정보 블록에 포함되는 상기 디바이스 메타데이터는 상기 신규 IoT 디바이스의 식별자 및 공개키, 메타데이터 해쉬값, 메타데이터의 생성시간에 관한 정보를 포함하며, 상기 메타데이터 해쉬값은 상기 식별자 및 상기 공개키, 상기 메타데이터의 생성시간의 해쉬값을 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 거래정보 블록에 포함되는 상기 거래정보는 상기 거래처리를 요청한 IoT 디바이스의 식별자, 거래정보, 상기 거래정보를 등록한 생성시간, 그리고 거래해쉬값을 포함할 수 있다. 또한, 상기 거래해쉬값은 상기 식별자, 상기 거래정보, 상기 생성시간의 해쉬값을 포함할 수 있다.
예시적인 실시예들에 있어서, 새로 등록 및 인증을 받은 신규 IoT 디바이스에 관한 디바이스정보 블록은 상기 디바이스정보 블록체인 내의 맨 마지막 디바이스정보 블록의 행 방향(횡 방향) 하위 블록으로 연결되는 형태로 추가될 수 있다. 또한, 상기 디바이스정보 블록체인 내의 소정의 디바이스정보 블록에 연관된 특정 IoT 디바이스의 새로운 거래정보에 관한 거래정보 블록은 상기 특정 IoT 디바이스에 대응되는 상기 소정의 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록의 열 방향(종 방향) 하위 블록으로 연결되는 형태로 추가될 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법은, 통신기능과 컴퓨팅 기능을 갖는 IoT 디바이스에서, 상기 IoT 디바이스의 디바이스 식별자를 이용하여, 상기 IoT 디바이스와 소정의 서비스 장치 간에 이루어진 소정의 서비스에 대한 거래행위에 관해 거래정보를 생성하는 단계; 상기 IoT 디바이스가 상기 거래정보와 상기 디바이스 식별자 정보를 블록체인 네트워크에 연결되어 있고 통신기능과 컴퓨팅 기능을 갖는 블록체인 노드에 제공하여 상기 거래행위에 관한 거래정보 블록의 생성을 요청하는 단계; 상기 블록체인 노드에서, 상기 디바이스 식별자가 포함된 디바이스정보 블록을 디바이스정보 블록체인에서 검색하는 단계; 상기 블록체인 노드에서, 검색된 디바이스정보 블록에 연결된 거래정보 블록 중에서 맨 마지막 거래정보 블록을 검색하는 단계; 상기 블록체인 노드에서, 검색된 상기 맨 마지막 거래정보 블록의 해쉬값을 획득하는 단계; 및 상기 블록체인 노드에서, 상기 IoT 디바이스의 상기 디바이스 거래정보와 상기 맨 마지막 거래정보 블록의 해쉬값을 포함하는 새로운 거래정보 블록을 생성하여 상기 맨 마지막 거래정보 블록의 하위 거래정보 블록으로 추가되도록 저장하는 단계를 포함한다. 상기 디바이스정보 블록체인은 하나 이상의 IoT 디바이스의 식별 및 인증에 관련된 정보를 각각 포함하는 복수의 디바이스정보 블록들을 포함하고, 상기 복수의 디바이스정보 블록들은 생성 시간의 순서에 따라 행 방향(횡 방향)으로 일방향 연결을 이루어 단일의 선형 블록체인을 형성하고, 상기 디바이스정보 블록체인을 형성하는 각 디바이스정보 블록에는 해당 IoT 디바이스의 거래행위에 관한 거래정보를 포함하는 하나 이상의 거래정보 블록들이 생성 시간의 순서에 따라 열 방향(종 방향)으로 일방향 연결을 이루어 단일의 선형 거래정보 블록체인을 형성하여, 상기 다중 블록체인은 상기 복수의 디바이스정보 블록 각각을 최상위 블록으로 하여 각 디바이스정보 블록마다 이의 열 방향(종 방향) 하위에 관련 거래정보 블록들이 열 방향(종 방향)으로 연결된 형태의 블록체인이다.
예시적인 실시예들에 있어서, 상기 거래정보에 대응하는 상기 새로운 거래정보 블록의 생성은 유효성이 인증된 IoT 디바이스에 대하여 이루어질 수 있다. 상기 IoT 디바이스의 유효성 인증을 위해, 상기 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법은, 상기 IoT 디바이스에서, 상기 IoT 디바이스의 고유한 식별자 정보를 생성하는 단계; 상기 IoT 디바이스에서, 소정의 알고리즘을 이용하여 상기 대응 IoT 디바이스에 관한 개인키와 공개키의 키쌍을 생성하는 단계; 상기 IoT 디바이스에서, 생성된 상기 개인키로 상기 거래행위에 전자서명을 위한 전자서명 데이터를 생성하는 단계; 및 상기 IoT 디바이스에서, 상기 전자서명 데이터와 상기 식별자 정보를 상기 블록체인 노드에 전송하여 상기 IoT 디바이스에 관한 인증을 요청하여 처리결과를 회신받는 단계를 더 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 유효성의 인증은 상기 블록체인 노드에 등록된 IoT 디바이스에 대하여 수행될 수 있다. 상기 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법은, 신규 IoT 디바이스에서, 자신에 관한 디바이스정보 블록을 상기 블록체인 노드에 생성시켜 자신을 등록하기 위하여, 자신의 식별자 정보와 공개키를 상기 블록체인 노드에 제공하는 단계를 더 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법은, 상기 블록체인 노드에서, 상기 신규 IoT 디바이스로부터의 등록 요청에 응하여, 상기 신규 IoT 디바이스에 대응하는 디바이스 메타데이터와 상위 디바이스정보 블록의 해쉬값을 포함하는 새로운 디바이스정보 블록을 생성하는 단계; 및 상기 블록체인 노드에서, 상기 새로운 디바이스정보 블록을 상기 상위 디바이스정보 블록의 해쉬값을 통해 상기 디바이스정보 블록체인의 현재의 맨 마지막 디바이스정보 블록의 하위 디바이스정보 블록으로 추가하여 새로운 맨 마지막 디바이스정보 블록으로 저장함으로써 상기 신규 IoT 디바이스의 등록을 실행하는 단계를 더 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 새로운 디바이스정보 블록에 포함되는 상기 디바이스 메타데이터는 상기 신규 IoT 디바이스의 식별자 및 공개키, 메타데이터 해쉬값, 메타데이터의 생성시간에 관한 정보를 포함할 수 있다. 또한, 상기 메타데이터 해쉬값은 상기 식별자 및 상기 공개키, 상기 메타데이터의 생성시간의 해쉬값을 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법은, 상기 블록체인 노드에서, 상기 IoT 디바이스로부터의 인증 요청에 응하기 위해, 상기 IoT 디바이스가 제공한 식별자 정보에 대응하는 상기 IoT 디바이스의 공개키를 상기 디바이스정보 블록체인에서 검색하는 단계; 상기 블록체인 노드에서, 검색된 IoT 디바이스의 공개키를 이용하여 상기 IoT 디바이스가 제공한 전자서명 데이터를 검증하여 상기 IoT 디바이스의 유효성을 확인하는 단계; 및 상기 블록체인 노드에서 유효성 확인 결과를 상기 IoT 디바이스에 회신하는 단계를 더 포함할 수 있다.
예시적인 실시예들에 있어서, 상기 거래정보 블록에 포함되는 상기 디바이스 거래정보는 상기 거래처리를 요청한 IoT 디바이스의 식별자, 거래정보, 상기 거래정보를 등록한 생성시간, 그리고 거래해쉬값을 포함하며, 상기 거래해쉬값은 상기 식별자, 상기 거래정보, 상기 생성시간의 해쉬값을 포함할 수 있다.
예시적인 실시예들에 있어서, 새로 등록 및 인증을 받은 신규 IoT 디바이스에 관한 디바이스정보 블록은 상기 디바이스정보 블록체인 내의 맨 마지막 디바이스정보 블록의 행 방향(횡 방향) 하위 블록으로 연결되는 형태로 추가될 수 있다. 또한, 상기 디바이스정보 블록체인 내의 소정의 디바이스정보 블록에 연관된 특정 IoT 디바이스의 새로운 거래정보에 관한 거래정보 블록은 상기 특정 IoT 디바이스에 대응되는 상기 소정의 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록의 열 방향(종 방향) 하위 블록으로 연결되는 형태로 추가될 수 있다.
예시적인 실시예들에 있어서, 상기 디바이스정보 블록체인을 형성하는 j번째 디바이스정보 블록은 j-1번째 디바이스정보 블록의 해쉬값을 연결하여 디바이스정보 블록간의 체인을 형성하며, 상기 거래정보 블록체인을 형성하는 k번째 거래정보 블록은 k-1번째 거래정보 블록의 해쉬값을 연결하여 거래정보 블록 간의 체인을 형성할 수 있다. 여기서, 상기 k와 j은 각각 상기 디바이스정보 블록체인을 구성하는 디바이스정보 블록들의 개수보다 크지 않은 자연수이다.
위에서 언급된 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법을 수행하기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 실행가능 프로그램으로 구현될 수 있다. 이 컴퓨터 실행가능 프로그램은 컴퓨터에 의해 판독가능한 기록매체에 기록될 수 있다.
본 발명의 예시적인 실시예들에 따르면, 본 발명은 IoT 디바이스 식별정보를 담은 디바이스정보 블록들을 행 방향(횡 방향)으로 선형적으로 연결한 디바이스정보 블록체인과, 각 IoT 디바이스의 거래행위에 관한 거래정보를 담은 거래정보 블록들을 해당 IoT 디바이스의 디바이스정보 블록에 열 방향(종 방향) 선형적으로 연결한 거래정보 블록체인을 포함하는 다중 블록체인을 이용한다. 디바이스정보 블록체인은 다중 블록체인의 최상위 행에 배치된다. 디바이스정보 블록들의 이런 형태의 배치는 원하는 최상위 행만을 탐색하면 되므로 IoT 디바이스에 대응되는 디바이스정보 블록을 찾는 데 매우 효율적인 배치이다.
어떤 IoT 디바이스의 거래행위를 처리하는 작업도 매우 효율적으로 이루어질 수 있다. 왜냐하면, 원하는 IoT 디바이스의 디바이스정보 블록이 찾아지면, 그 블록에 연결된 거래정보 블록만을 대상으로 하여 맨 마지막 거래정보 블록을 찾아서 그 블록의 하위에 새로운 거래정보 블록을 연결시키면 된다. 모든 IoT 디바이스의 거래정보 전체를 검색하지 않아도 된다.
도 1은 본 발명의 예시적인 실시예에 따른 다중 블록체인 기반의 IoT 디바이스의 식별 및 이력 추적 시스템의 구성을 개략적으로 나타낸다.
도 2는 도 1에 도시된 전자지갑유닛의 예시적인 구성을 나타낸 블록도이다.
도 3은 도 1에 도시된 블록체인 노드의 예시적인 구성을 나타내는 블록도이다.
도 4는 도 1에 도시된 스마트 컨트랙트 실행부의 예시적인 구성을 나타낸다.
도 5는 다중 블록체인의 예시적인 상세 구성을 나타낸다.
도 6은 도 1의 시스템 환경에서 IoT 디바이스를 등록하는 절차를 나타낸 흐름도이다.
도 7은 도 1의 시스템 환경에서 IoT 디바이스의 전자서명을 인증하는 절차를 나타낸 흐름도이다.
도 8은 도 1의 시스템 환경에서 IoT 디바이스들 간의 거래를 처리하는 과정을 나타낸 흐름도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 예시적인 실시예에 따른 다중 블록체인 기반의 IoT 디바이스의 식별 및 이력 추적 시스템(10)의 구성을 개략적으로 나타낸다.
도 1을 참조하면, IoT 디바이스의 식별 및 이력 추적 시스템(10)은 다수의 블록체인 노드들(200, 200-2, 200-3)을 포함하는 블록체인 네트워크(20)와 식별 및 이력 추적 대상인 IoT 디바이스(50)를 포함할 수 있다. 블록체인 노드들(200, 200-2, 200-3) 상호간 및 IoT 디바이스(50)와 각 블록체인 노드(200, 200-2, 200-3) 상호간은 예컨대 인터넷과 이동통신망과 같은 통신망을 통해 통신가능하게 연결될 수 있다.
블록체인 노드(200, 200-2, 200-3)는 상기 통신망을 통해 통신할 수 있는 통신모듈을 포함할 수 있다. 뿐만 아니라, 블록체인 노드(200, 200-2, 200-3)는 이하에서 설명하는 여러 가지 기능들을 수행하도록 프로그램 된 소프트웨어와 이 소프트웨어를 실행하기 위한 컴퓨팅 자원들을 포함하는 컴퓨팅 장치일 수 있다. 블록체인 노드(200, 200-2, 200-3)들이 구비하는 컴퓨팅 자원은 예컨대, 연산처리 및 제어 기능을 수행할 수 있는 프로세서와 이 프로세서의 데이터 처리에 필요한 공간을 제공하는 메모리, 그리고 데이터와 프로그램 등을 저장하기 위한 데이터 저장소 등을 기본적으로 구비할 수 있다. 예컨대 퍼스널 컴퓨터(PC), 스마트폰, IoT 디바이스 등이 이 컴퓨팅 장치의 대표적인 예가 될 수 있으나, 이 컴퓨팅 장치는 이에 국한되는 것은 아니다.
도면에서는 IoT 디바이스(50)가 한 개만 대표적으로 도시되어 있지만, IoT 디바이스(50)는 복수 개가 블록체인 네트워크(20)에 연결될 수 있으며 그것의 개수에는 특별한 제한이 없다. 또한, 도면에서는 세 개의 블록체인 노드(200, 200-2, 200-3)만 도시되어 있지만, 이는 예시적인 것이고 블록체인 노드들의 개수에는 특별한 제한이 없다.
IoT 디바이스(50)는 컴퓨팅 기능과 통신 기능을 구비하는 컴퓨팅 장치이며, 소정의 서비스를 제공하는 소정의 컴퓨팅 장치와 통신을 통해 이루어지는 소정의 거래 행위에 대한 전자서명을 수행할 수 있는 전자지갑유닛(Smart Wallet)(100)을 포함할 수 있다. IoT 디바이스(50)는 그 전자지갑유닛(100)을 통해 블록체인 네트워크(20)에 연결되어 있는 블록체인 노드들(20, 20-2, 20-3, ...)와의 인터넷 통신을 통해 거래행위에 대한 전자서명을 할 수 있도록 구성될 수 있다. 전자지갑유닛(100)은 어떤 행위(예: 거래행위)에 대한 전자서명을 할 수 있는 기능 즉, 전자지값기능을 갖춘 장치일 수 있다. 구체적으로, 전자지갑유닛(100)은 소위 스마트폰이나 별도의 통신 단말기에 모바일 신용카드, 멤버십카드, 쿠폰, 전자화폐, 또는 암호화폐 등을 담아두고 상품이나 서비스 거래에 필요한 결제나 그러한 거래를 관리하는 전자지불 시스템일 수 있다. 즉, 각종 카드, 쿠폰, 화폐의 기능을 디지털화 해서 스마트폰이나 별도의 통신단말기에 탑재하여 결재수단으로 이용할 수 있도록 해주는 시스템이 바로 전자지갑유닛(100)이다.
이러한 전자지갑유닛(100)은 이하에서 설명하는 여러 가지 소프트웨어 및/또는 하드웨어로 구현될 수 있다. IoT 디바이스(50)의 하드웨어도 연산처리 및 제어 기능을 수행할 수 있는 프로세서와 이 프로세서의 데이터 처리에 필요한 공간을 제공하는 메모리, 그리고 데이터와 프로그램 등을 저장하기 위한 데이터 저장소 등을 구비할 수 있다.
도 2는 도 1에 도시된 전자지갑유닛(100)의 예시적인 구성을 나타낸 블록도이다.
도 2를 참조하면, 전자지갑유닛(100)은 거래 컨트랙트 호출부(110), 인증 컨트랙트 호출부(120), 등록 컨트랙트 호출부(130), 식별자 생성부(140), 키쌍 생성부(150), 그리고 전자 서명부(160)를 포함할 수 있다. 거래 컨트랙트 호출부(110), 인증 컨트랙트 호출부(120), 등록 컨트랙트 호출부(130), 식별자 생성부(140), 키쌍 생성부(150), 그리고 전자 서명부(160)는 아래와 같은 각각의 기능을 수행할 수 있도록 구현된 프로그램 모듈일 수 있다. 이들 프로그램 모듈은 IoT 디바이스(50)의 프로세서로 하여금 아래와 같은 각각의 기능을 수행하게 할 수 있다.
식별자 생성부(140)는 IoT 디바이스(50)의 고유한 식별자 정보를 생성하도록 구성될 수 있다. 식별자 정보는 예컨대 IoT 디바이스(50)의 제조사, 시리얼번호와 모델 정보를 포함할 수 있다. 이 식별자 정보는 소정의 해쉬함수(예: SHA1, 또는 SHA256)로 해싱 처리를 하여 얻어지는 해쉬값을 인코딩(예: HEX, 또는 Base64)한 형태로 만들어질 수 있다. 예컨대, IoT 디바이스(50)의 제조사, 시리얼 번호, 그리고 모델 정보가 각각 Samsung, sn345678901, 그리고 UE65NS9000T인 경우, 해쉬함수를 이용하여 생성된 바이너리를 인코딩한 것은 다음과 같을 수 있다. '9B2317C2C941A179130D0D28961AB542C88745658BE328F557422EA0AF8F60E8'
키쌍 생성부(150)는 소정의 알고리즘을 이용하여 개인키와 공개키의 키쌍을 생성하는 기능을 갖는다. 키쌍 생성 시 이용할 수 있는 알고리즘은 예컨대 RSA, ECDSA 등을 들 수 있으나, 반드시 이것에 국한되지 않고 기존에 알려진 다양한 알고리즘을 이용할 수 있다.
전자 서명부(160)는 키쌍 생성부(150)에서 생성된 개인키로 전자서명을 위한 전자서명 데이터를 생성함으로써 IoT 디바이스(50)의 어떤 행위(예: 거래행위)에 대한 전자서명을 수행하는 기능을 갖는다.
거래 컨트랙트 호출부(110), 인증 컨트랙트 호출부(120), 등록 컨트랙트 호출부(130)는 블록체인 노드(200)와의 통신을 하는 모듈 즉, 어떤 작업의 요청 또는 지시를 하고 그 요청이나 지시에 대한 처리 결과를 제공받을 수 있는 모듈일 수 있다.
등록 컨트랙트 호출부(130)는 식별자 생성부(140)와 키쌍 생성부(150)에서 생성된 식별자 정보와 공개키 정보를 소정의 블록체인 노드(200)의 등록 컨트랙트 실행부(310)를 통해 다중 블록체인(410)의 디바이스정보 블록(410)에 저장되도록 하는 기능을 갖는다. 등록 컨트랙트 호출부(130)의 이런 기능에 의해, IoT 디바이스(50)는 맨 처음 블록체인 네트워크(20)에 접근할 때 블록체인 노드(200)에 등록될 수 있다.
인증 컨트랙트 호출부(120)는 전자서명부(160)에서 생성된 전자서명 데이터와 식별자 생성부(140)에서 생성된 식별자 정보를 블록체인 노드(200)로 전송하여 IoT 디바이스(50)의 인증을 처리하고 인증 결과를 회신하도록 요청하는 기능을 갖는다. 블록체인 노드(200)의 인증 컨트랙트 실행부(320)는 인증 컨트랙트 호출부120)가 제공한 인증 관련 데이터를 이용하여 인증 절차를 수행하고, 인증 결과를 회신할 수 있다. 인증 컨트랙트 호출부(120)는 회신되는 그 인증 결과를 후처리하는 기능을 갖는다.
거래 컨트랙트 호출부(110)는 IoT 디바이스(50)가 인증된 이후에 그 IoT 디바이스(50)와 소정의 서비스(예: 상품이나 서비스를 판매하는 서비스)를 제공하는 컴퓨팅 장치 간에 이루어지는 거래 행위에 관해 데이터 즉, 거래 정보를 블록체인 노드(200)를 통해 다중 블록체인(410)의 거래정보 블록(430)에 저장하는 기능을 갖는다.
도 3은 도 1에 도시된 블록체인 노드(200)의 예시적인 구성을 나타내는 블록도이다.
도 3을 참조하면, 블록체인 노드(200)는 IoT 디바이스(50)의 등록, 인증, 거래정보의 저장을 실행하는 스마트 컨트랙트 실행부(300)와 이 스마트 컨트랙트 실행부(300)에서 발생하는 데이터를 저장하는 다중 블록체인(400)을 포함할 수 있다.
도 4는 도 1에 도시된 스마트 컨트랙트 실행부의 구성을 나타낸다.
도 4를 참조하면, 스마트 컨트랙트 실행부(300)는 전자지갑유닛(100)의 거래 컨트랙트 호출부(110), 인증 컨트랙트 호출부(120), 등록 컨트랙트 호출부(130)가 요청한 소정의 처리를 실행할 수 있다. 이를 위해, 스마트 컨트랙트 실행부(300)는 등록 컨트랙트 실행부(310), 인증 컨트랙트 실행부(320), 그리고 거래 처리 컨트랙트 실행부(330)를 포함할 수 있다.
등록 컨트랙트 실행부(310)는, 신규의 IoT 디바이스(50)로부터의 등록 요청에 응하여, 전자지갑유닛(100)의 등록 컨트랙트 호출부(130)가 제공하는 신규 IoT 디바이스(50)의 식별자 정보와 공개키 정보를 전송받아 그 신규 IoT 디바이스에 대응하는 디바이스 메타데이터를 포함하는 새로운 디바이스정보 블록(410)을 생성할 수 있다. 여기서, 상기 새로운 디바이스정보 블록에 포함되는 상기 디바이스 메타데이터는 상기 신규 IoT 디바이스의 식별자 및 공개키, 메타데이터 해쉬, 메타데이터의 생성시간에 관한 정보를 포함할 수 있다. 또한, 상기 메타데이터 해쉬는 상기 식별자 및 상기 공개키, 상기 메타데이터의 생성시간의 해쉬값을 포함할 수 있다.
등록 컨트랙트 실행부(310)는 상기 새로운 디바이스정보 블록(410)을 다중 블록체인(400)의 디바이스정보 블록체인(420)의 맨 마지막 디바이스정보 블록의 하위에 연결시키기 위한 연결정보 즉, 상위 디바이스정보 블록의 해쉬값을 상기 새로운 디바이스정보 블록(410)에 더 포함시킬 수 있다. 상기 상위 디바이스정보 블록의 해쉬값을 매개로 하여, 상기 새로운 디바이스정보 블록을 디바이스정보 블록체인(420)의 상기 맨 마지막 디바이스정보 블록의 후위 블록으로 추가되도록 저장할 수 있다. 이와 같은 처리를 통해, 등록 컨트랙트 실행부(310)는 전자지갑유닛(100)의 등록 컨트랙트 호출부(130)가 요청한 IoT 디바이스(50)의 등록을 다중 블록체인(400)에 대해 실행할 수 있다. 등록 컨트랙트 실행부(310)는 이와 같은 등록 작업을 성공적으로 완료하였으면 등록성공 메시지를 등록 컨트랙트 호출부(130)에 리턴해주고, 그렇지 않으면 등록실패 메시지를 리턴해줄 수 있다.
인증 컨트랙트 실행부(320)는, IoT 디바이스(50)로부터의 인증 요청에 응하여, 전자지갑유닛(100)의 인증 컨트랙트 호출부(120)가 요청한 IoT 디바이스(50)의 유효성을 확인하여 인증을 실행할 수 있다. 즉, 인증 컨트랙트 실행부(320)는 IoT 디바이스(50)의 식별자 정보와 전자 서명값을 인증 컨트랙트 호출부(120)를 통해 전송받고, 그 식별자 정보에 대응하는 IoT 디바이스(50)의 공개키를 다중 블록체인(400)의 디바이스정보 블록체인(420)에서 검색할 수 있다. 이러한 검색을 통해 확보된 IoT 디바이스(50)의 공개키를 이용하여 인증 컨트랙트 호출부(120)가 제공한 전자서명값을 검증하여 IoT 디바이스(50)의 유효성을 확인할 수 있다. 인증 컨트랙트 실행부(320)는 유효성 확인 결과에 따라 IoT 디바이스(50)의 인증 성공 메시지 또는 인증 실패 메시지를 인증 컨트랙스 호출부(120)에 리턴할 수 있다.
거래 처리 컨트랙트 실행부(330)는, IoT 디바이스(50)로부터의 거래처리 요청에 응하여, IoT 디바이스(50)와 소정의 서비스 간의 거래 이력을 확인하고 다중 블록체인(400)에 그 거래 이력의 정보를 저장되게 하는 기능을 수행할 수 있다. 구체적으로, 거래 처리 컨트랙트 실행부(330)는 거래 컨트랙트 호출부(110)를 통해 IoT 디바이스(50)의 식별자 정보와, IoT 디바이스(50)와 소정의 서비스 간의 거래행위에 관한 거래정보를 제공받고, 제공받은 식별자 정보가 포함된 디바이스정보 블록(410)을 다중 블록체인(400)의 디바이스정보 블록체인(420)에서 검색하여 해당 디바이스정보 블록(410)에 연결된 맨 마지막 거래정보 블록을 검색한다. 이를 통해, 거래 처리 컨트랙트 실행부(330)는 검색된 상기 맨 마지막 거래정보 블록의 해쉬값을 획득하고, IoT 디바이스(50)의 거래정보와 상기 맨 마지막 거래정보 블록의 해쉬값을 포함하는 새로운 거래정보 블록을 생성하여 상기 맨 마지막 거래정보 블록의 하위 거래정보 블록으로 추가되도록 저장할 수 있다. 여기서, 새로운 거래정보 블록에 포함되는 상기 거래정보는 '거래해쉬, 생성시간, 디바이스 식별자, 거래정보'를 포함할 수 있다. 이런 처리를 통해, IoT 디바이스(50)의 거래정보를 다중 블록체인(400)에 새로 저장할 수 있다. 거래 처리 컨트랙트 실행부(330)는 이 거래 처리의 실행이 성공적으로 완료되는지 여부에 따라 성공 메시지 또는 실패 메시지를 거래처리 호출부(110)로 리턴할 수 있다.
도 5는 다중 블록체인(400)의 예시적인 상세 구성을 나타낸다.
도 5를 참조하면, 다중 블록체인(400)은 디바이스정보 블록체인(420)과 거래정보 블록체인(440)을 포함할 수 있다. 디바이스정보 블록체인(420)은 한 개 이상의 디바이스정보 블록(410-1, 410-2, 410-3, ....)을 포함할 수 있다. 거래정보 블록체인(440)도 한 개 이상의 거래정보 블록(430-1a, 430-1b, 430-1c, ..., 430-4a, 430-4b, 430-4c, ....)을 포함할 수 있다.
다중 블록체인(400)을 구성하는 다수의 블록들은 행 방향(횡 방향)과 열 방향(종 방향)으로 각각 서로 연결되어 블록체인을 이룰 수 있다. 구체적으로, 디바이스정보 블록체인(420)의 디바이스정보 블록(410-1, 410-2, 410-3, ....)들은 원하는 IoT 디바이스를 쉽게 찾을 수 있도록 제1행에 배치될 수 있다. 거래정보 블록체인(440)의 거래정보 블록(430-1a, 430-1b, 430-1c, ..., 430-4a, 430-4b, 430-4c, ....)들은 대응되는 각 디바이스정보 블록(410-1, 410-2, 410-3, ....)에 생성시간의 순서에 따라 열 방향(종 방향)으로 선형적으로 연결되어 각 디바이이 별 거래정보 블록체인(440)을 형성하도록 배치될 수 있다.
각 디바이스정보 블록(410)은 IoT 디바이스(50)의 인증 정보를 담고 있는 블록일 수 있다. 디바이스정보 블록(410-1, 410-2, 410-3, ....)들 각각은 '선행 디바이스정보 블록의 해쉬값'과 한 개 이상의 디바이스 메타데이터를 포함할 수 있다.
다수의 디바이스정보 블록(410-1, 410-2, 410-3, ....)들은 각각에 저장되어 있는 '선행 디바이스정보 블록의 해쉬값'을 연결고리로 삼아 어느 하나의 디바이스정보 블록은 그의 바로 앞의 디바이스정보 블록과 연결될 수 있으므로, 전체 디바이스정보 블록(410-1, 410-2, 410-3, ....)들은 하나의 디바이스정보 블록체인(420)을 형성할 수 있다. 예컨대 제2 IoT 디바이스정보 블록(410-2)은 제1 IoT 디바이스정보 블록(410-1)의 해쉬값을 포함하며, 제3 IoT 디바이스정보 블록(410-3)은 제2 IoT 디바이스정보 블록(410-2)의 해쉬값을 포함할 수 있다. 전체 디바이스정보 블록(410-1, 410-2, 410-3, ...)들은 이런 식으로 선행 디바이스정보 블록의 해쉬값을 매개로 서로 연결되어 행 방향으로 하나의 체인 즉, 디바이스 블록체인(420)을 형성할 수 있다. 이런 측면에서, 각 디바이스정보 블록(410)은 '행 블록'으로 부를 수 있고, 전체 디바이스정보 블록(410-1, 410-2, 410-3, ...)들의 디바이스정보 블록체인(420)은 '행 블록체인'으로 부를 수 있다. 디바이스정보 블록체인(420)에서 인접하는 디바이스정보 블록 간에는 단방향으로 연결될 수 있다.
또한, 각 디바이스정보 블록(410)은 한 개 이상의 디바이스 메타데이터를 포함할 수 있다. 디바이스 메타데이터는 {메타데이터 해쉬값, 메타데이터 생성시간, 해당 IoT 디바이스 식별자, 해당 IoT 디바이스 공개키}를 포함할 수 있다.
각 디바이스정보 블록(410)에 연결되는 거래정보 블록(430)은 열 방향(즉, 종 방향)으로 연결될 수 있다. 즉, 거래정보 블록(430)들은 그 대응하는 디바이스정보 블록(410)에 속해 있는 디바이스 식별자에 해당하는 거래 정보들을 담고 있는 블록들이다. 이들 거래정보 블록(430)들은 그것과 연관되어 있는 디바이스정보 블록(410)을 기점으로 하여 그것의 열 방향(즉, 종 방향)의 하위에 거래시간의 시간 순서에 따라 열 방향(종 방향) 블록체인을 이루도록 연결될 수 있다. 예컨대 임의의 IoT 디바이스(50)의 디바이스정보 블록이 도 5에서 '410-1'으로 표시된 블록이라 할 때, 그 IoT 디바이스(50)의 거래정보 블록들(430-1a, 430-1b, 430-1c, ...)은 거래시간의 순서에 따라 해당 IoT 디바이스(50)의 디바이스정보 블록(410-1)에 열 방향(즉, 종 방향)으로 연결될 수 있다. 이런 점에서 전체 거래정보 블록체인(440)을 '열(또는 종) 블록체인'이라 부를 수 있다. 거래정보 블록체인(440)에서, 열 방향(종 방향)으로 인접하는 거래정보 블록 간에는 단방향으로 연결될 수 있다.
도 5에 예시된 것처럼, 복수의 IoT 디바이스에 관한 복수의 디바이스정보 블록(410-1, 410-2, 410-3, ...)들이 행 방향(즉, 횡 방향)으로 연결된 디바이스정보 블록체인(420)을 구성하여 제1행에 위치하고, 제1행의 각 디바이스정보 블록(410-1, 410-2, 410-3, ...) 각각에는 각 디바이스정보 블록(410-1, 410-2, 410-3, ...)을 기점으로 하여 해당 IoT 디바이스 별로 대응되는 복수의 거래정보 블록들(430-1a, 430-1b, 430-1c, ..., 430-4a, 430-4b, 430-4c, ...)이 열 방향(종 방향)으로 연결된 거래정보 블록체인(440)들이 제2행 이하에 위치한다.
디바이스정보 블록(410-1, 410-2, 410-3, ....)들 각각에는 해당 IoT 디바이스의 거래정보를 담고 있는 거래정보 블록(430)들이 하나 이상 연결될 수 있다. 각 거래정보 블록(430)은 열 방향(종 방향)의 선행 거래정보 블록의 해쉬값, 그리고 해당 IoT 디바이스의 한 개 이상의 거래정보를 포함할 수 있다. 각 거래정보 블록(430)은 상기 '선행 거래정보 블록의 해쉬값'을 연결고리로 삼아 자신의 바로 앞의 거래정보 블록(430)과 연결될 수 있다.
거래정보 블록(430)에 포함되는 한 개 이상의 거래정보는 각각 {거래 해쉬값, 생성 시간, 디바이스 식별자, 디바이스 거래정보}와 같은 정보를 포함할 수 있다. 상기 거래 해쉬값은 생성시간, 식별자, 거래정보의 해쉬 값 등의 정보를 포함할 수 있다. 상기 생성 시간은 거래정보의 등록 시간을 나타낸다. 상기 디바이스 식별자는 말 그대로 어떤 행위(예: 거래 행위)를 한 디바이스의 식별자를 나타낸다. 디바이스 거래 정보는 해당 IoT 디바이스의 인증 처리, 거래, 행위 정보 등에 관한 정보를 포함할 수 있다. 이 거래정보에 의해 어떤 IoT 디바이스rk 언제 어떤 거래를 수행하였는지를 알 수 있다.
이처럼 다중 블록체인(400)은 다수의 디바이스정보 블록들(410-1, 410-2, 410-3, ...)이 행 방향(횡 방향)으로 연결되어 디바이스정보 블록체인(420)을 형성하면서 제1행에 위치하고, 각 IoT 디바이스의 다수의 거래정보 블록들(430-1a, 430-1b, 430-1c, ..., 430-4a, 430-4b, 430-4c, ...)이 해당 디바이스정보 블록을 기점으로 각각 열 방향(종 방향)으로 연결되어 거래정보 블록체인(440)을 형성하면서 제 2행 이하에 위치한다.
도 6은 도 1의 시스템(10) 환경에서 새로운 IoT 디바이스(50)를 블록체인 네트워크(20)에 등록하는 절차를 나타낸 흐름도이다.
도 6을 참조하면, 임의의 IoT 디바이스(50)의 등록 컨트랙트 호출부(130)는, 그 IoT 디바이스(50)를 블록체인 네트워크(20)에 등록하기 위해 식별자 생성부(140)에게 디바이스 식별자를 요청하여 제공받고(S10, S12), 키쌍 생성부(150)에게 공개키를 요청하여 제공받을 수 있다(S14, S16).
또한, 등록 컨트랙트 호출부(130)는 그 제공받은 디바이스 식별자와 공개키를 블록체인 노드(200)의 등록 컨트랙트 실행부(310)에 제공하여 IoT 디바이스(50)의 등록을 요청할 수 있다(S18).
등록 요청을 받은 등록 컨트랙트 실행부(310)는 제공받은 디바이스 식별자 정보와 공개키 정보에 메타데이터 해쉬값 및 메타데이터의 생성시간을 부가하여 디바이스 메타데이터를 생성하고, 선행 디바이스정보 블록의 해쉬값을 생성할 수 있다. 이렇게 생성한 디바이스 메타데이터와 선행 디바이스정보 블록의 해쉬값을 포함하는 디바이스정보 블록(410)을 생성할 수 있다(S20). 이렇게 디바이스 정보 블록(410)을 생성하는 것이 성공하면, 새로 생성된 디바이스정보 블록(410)은 그것이 포함하는 선행 디바이스정보 블록의 해쉬값을 매개로 하여 그 선행 디바이스정보 블록에 연결되어 기존의 디바이스정보 블록체인(420)의 맨 마지막 블록으로 부가될 수 있다.
이러한 디바이스정보 블록(410)의 신규 생성 작업이 성공하거나 또는 실패하면 그에 상응하는 메시지가 디바이스정보 블록(410)에서 생성되어 블록체인 노드(200)의 등록 컨트랙트 실행부(310)를 통해 등록을 요청한 IoT 디바이스의 등록 컨트랙트 호출부(130)로 전달될 수 있다. 이를 통해 등록 작업의 성공 여부를 확인할 수 있다.
도 7은 도 1의 시스템(10) 환경에서 IoT 디바이스(10)의 전자서명을 인증하는 절차를 나타낸 흐름도이다.
도 7을 참조하면, 임의의 IoT 디바이스(50)의 인증 컨트랙트 호출부(120)는, 그 IoT 디바이스(50)에서 행한 전자서명의 인증에 필요한 디바이스 식별자와 전자서명값을 해당 IoT 디바이스(50)의 식별자 생성부(140)와 전자 서명부(160)에 각각 요청하여 제공받을 수 있다 (S30, S32, S34, S36).
인증 컨트랙트 호출부(120)는 그 제공받은 디바이스 식별자와 전자서명값을 블록체인 노드(200)의 인증 컨트랙트 실행부(320)에 제공하여 IoT 디바이스(50)의 전자서명에 관한 인증을 요청할 수 있다(S38).
인증 요청을 받은 인증 컨트랙트 실행부(320)는 제공받은 디바이스 식별자에 대응하는 공개키의 검색을 디바이스정보 블록체인(420)에 대하여 수행할 수 있다(S40). 디바이스정보 블록체이(420)에 대하여 먼저 상기 제공받은 디바이스 식별자와 동일한 디바이스 식별자를 포함하는 디바이스정보 블록을 찾고, 그 찾아진 디바이스정보 블록에 포함되어 있는 디바이스 메타데이터의 디바이스 공개키 값을 추출할 수 있다.
찾아진 디바이스 공개키 값은 인증 컨트랙트 실행부(320)에 제공될 수 있다(S42).
인증 컨트랙트 실행부(320)는 검색된 디바이스 공개키 값을 이용하여 인증 컨트랙트 호출부(120)가 제공한 전자서명값을 검증할 수 있다(S44).
인증 컨트랙트 실행부(320)는 검증 결과 이상이 없는 전자서명값이면 인증 성공 메시지를 생성하고, 그렇지 않으면 인증 실패 메시지를 생성하여 IoT 디바이스의 인증 컨트랙트 호출부(120)에 제공할 수 있다(S46). 이를 통해 인증 작업의 성공 여부를 확인할 수 있다.
다음으로, 도 8은 도 1의 시스템 환경에서 IoT 디바이스들 간의 거래를 처리하는 과정을 나타낸 흐름도이다.
도 8을 참조하면, 임의의 IoT 디바이스(50)의 거래 컨트랙트 호출부(110)는, 그 IoT 디바이스(50)와 소정의 서비스 장치 간에 발생하는 행위(거래)에 관한 거래정보 블록(430)을 블록체인 네트워크(20)에 생성하기 위해 디바이스 식별자를 해당 IoT 디바이스(50)의 식별자 생성부(140)에 요청하여 제공받을 수 있다 (S50, S526).
거래 컨트랙트 호출부(110)는 그 디바이스 식별자를 이용하여 IoT 디바이스(50)와 소정의 서비스 장치 간에 이루어진 거래에 관한 정보 즉, 거래 정보를 생성할 수 있다(S54). 여기서 소정의 서비스 장치는 예컨대 IoT 디바이스(50)의 사용자에게 소정의 상품이나 서비스를 판매하는 컴퓨팅 장치일 수 있고, 상기 행위(거래)는 상기 사용자가 그 상품이나 서비스를 구매하면서 그에 관한 대가를 지불하는 거래일 수 있다.
거래 컨트랙트 호출부(110)는 생성된 거래 정보와 디바이스 식별자를 블록체인 네트워크에 연결되어 있는 블록체인 노드(200)의 거래처리 컨트랙트 실행부(330)에 제공하여 거래 처리 즉, 거래정보 블록의 생성을 요청할 수 있다(S56).
거래처리 컨트랙트 실행부(330)는 거래 컨트랙트 호출부(110)로부터 제공받은 디바이스 식별자에 기초하여 그 디바이스 식별자가 포함된 디바이스정보 블록을 디바이스정보 블록체인(420)에서 검색할 수 있다(S58).
거래 컨트랙트 호출부(110)로부터 제공받은 디바이스 식별자를 포함하는 디바이스정보 블록이 검색되면, 거래처리 컨트랙트 실행부(330)는 검색된 디바이스정보 블록의 해쉬값을 획득할 수 있다(S60). 여기서, 임의의 제1 디바이스정보 블록의 해쉬값은 임의의 제2 디바이스정보 블록이 상기 제1 디바이스정보 블록과 연결되어 블록체인을 형성할 수 있게 하는 블록 연결 정보이다.
거래 컨트랙트 호출부(110)는 그 검색된 디바이스정보 블록의 해쉬값에 기초하여, 거래정보 블록 생성 요청을 한 IoT 디바이스(50)의 디바이스정보 블록을 특정할 수 있다. 이에 따라, 거래처리 컨트랙트 실행부(330)는 그 특정되는 디바이스정보 블록을 기점으로 그것에 연결된 열 방향(종 방향) 거래정보 블록체인의 맨 마지막 거래정보 블록을 거래정보 블록체인(440)에서 검색할 수 있다(S62).
이 검색을 통해 맨 마지막 거래정보 블록이 찾아지면, 거래처리 컨트랙트 실행부(330)는 그 맨 마지막 거래정보 블록의 해쉬값을 획득할 수 있다(S64). 여기서, 제1 거래정보 블록의 해쉬값은 제2 거래정보 블록이 상기 제1 거래정보 블록과 연결되어 블록 체인을 형성할 수 있게 하는 블록 연결 정보이다. 따라서 맨 마지막 거래정보 블록의 해쉬값이 확보되면, 그 맨 마지막 거래정보 블록에 추가로 연결된 새로운 거래정보 블록에 그 해쉬값을 저장해두면, 그 새로운 거래정보 블록은 상기 맨 마지막 거래정보 블록에 추가로 연결되어 거래정보 블록체인을 확장시킬 수 있다.
이런 과정을 통해, 거래처리 컨트랙트 실행부(330)는 생성할 거래정보 블록에 포함될 거래 해쉬값, 생성시간, 디바이스 식별자, 거래정보를 확보하게 된다. 거래처리 컨트랙트 실행부(330)는 그 거래 해쉬값, 생성시간, 디바이스 식별자, 거래정보를 이용하여 디바이스 거래정보를 생성할 수 있다. 거래처리 컨트랙트 실행부(330)는 생성한 그 디바이스 거래정보와 선행 (상위) 거래정보 블록 즉, 맨 마지막 거래정보 블록의 해쉬값을 함께 포함하는 새로운 거래정보 블록을 생성하여 거래정보 블록체인(440)에 추가할 수 있다(S66). 그 새로운 거래정보 블록이 추가되는 위치는 대응 디바이스정보 블록에 연결되는 거래정보 블록체인의 맨 마지막 거래정보 블록이다.
IoT 디바이스(50)의 거래 컨트랙트 호출부(110)가 요청한 새로운 거래정보 블록의 생성 및 거래정보 블록체인(440)에 추가하는 작업이 성공하면 성공 메시지를, 실패하면 실패 메시지를 거래처리 컨트랙트 실행부(330)를 통해 거래 컨트랙트 호출부(110)에 전달될 수 있다.
이와 같은 과정을 통해, 다중 블록체인 환경에서 블록체인과 전자지갑 기술을 활용하여 중앙화된 인증 서버 없이 IoT 디바이스(50)를 식별, 등록하고 인증할 수 있으며, 다양한 서비스 간에 발생하는 행위정보(거래정보)를 수집하고 추적할 수 있다.
한편, 어떤 IoT 디바이스(50)에 관련 디바이스정보 블록(410)과 거래정보 블록(430)은 블록체인 네트워크(20)에 연결된 어떤 하나의 블록체인 노드(200)에서 유효성이 검증되면, 그 블록체인 네트워크(20) 내의 모든 블록체인 노드들(200-2, 200-3, ...)에게도 공유될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 IoT 디바이스의 식별 및 거래 이력을 추적하는 분야에 활용될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
10: 다중 블록체인 기반의 IoT 디바이스의 식별 및 이력 추적 시스템
20: 블록체인 네트워크 50: IoT 디바이스
100: 전자지갑유닛 110: 거래 컨트랙트 호출부
120: 인증 컨트랙트 호출부 130: 등록 컨트랙트 호출부
140: 식별자 생성부 150: 키쌍 생성부
160: 전자 서명부
200, 200-2, 200-3: 블록체인 노드
300: 스마트 컨트랙트 실행부 310: 등록 컨트랙트 실행부
320: 인증 컨트랙트 실행부 330: 거래 처리 컨트랙트 실행부
400: 다중 블록체인
410, 410-1, 410-2, 410-3, 410-4: 디바이스정보 블록 #i
420: 디바이스정보 블록체인
430, 430-1a, 430-1b, 430-1c, 430-4a, 430-4b, 430-4c: 거래정보 블록 #j

Claims (17)

  1. 컴퓨팅 기능과 통신 기능을 구비하는 컴퓨팅 장치이며, 소정의 다른 컴퓨팅 장치가 제공하는 소정의 서비스에 관한 거래 행위에 대한 전자서명을 수행할 수 있는 전자지갑유닛을 포함하며, 상기 전자지갑유닛을 통해 블록체인 네트워크에 연결되어 있는 블록체인 노드와의 인터넷 통신을 통해 거래행위에 대한 전자서명을 할 수 있도록 구성된 하나 이상의 IoT 디바이스; 및
    컴퓨팅 기능과 통신기능을 구비하는 컴퓨팅 장치이며, 상기 하나 이상의 IoT 디바이스로부터의 요청에 응하여 해당 IoT 디바이스의 등록 및 인증과 상기 소정의 거래 행위에 관한 거래정보의 처리를 실행하는 스마트 컨트랙트 실행부와, 상기 스마트 컨트랙트 실행부의 실행에 의해 생성되는 IoT 디바이스의 등록 및 인증, 거래정보 처리에 관련된 데이터를 저장하는 다중 블록체인을 포함하도록 구성되며, 블록체인 네트워크에 연결된 적어도 하나의 블록체인 노드를 포함하며,
    상기 다중 블록체인은 상기 하나 이상의 IoT 디바이스의 식별 및 인증에 관련된 정보를 각각 포함하는 복수의 디바이스정보 블록들이 형성하는 디바이스정보 블록체인과, 상기 하나 이상의 IoT 디바이스가 소정의 서비스들 간에 이루어진 거래행위에 관한 거래정보를 포함하는 복수의 거래정보 블록들이 형성하는 거래정보 블록체인을 포함하며,
    상기 복수의 디바이스정보 블록들은 생성 시간의 순서에 따라 행 방향(횡 방향)으로 일방향 연결을 이루어 단일의 선형 블록체인을 형성하고 상기 다중 블록체인의 최상위 행에 위치하며,
    상기 복수의 거래정보 블록들은 각각이 내포하는 거래정보에 관련된 거래행위를 행한 IoT 디바이스에 대응되는 디바이스정보 블록에 속하도록 구분되고, 각 디바이스정보 블록에 속하는 거래정보 블록들은 생성 시간의 순서에 따라 열 방향(종 방향)으로 일방향 연결을 이루어 단일의 선형 거래정보 블록체인을 형성하여,
    상기 다중 블록체인은 상기 복수의 디바이스정보 블록 각각을 최상위 블록으로 하여 각 디바이스정보 블록마다 이의 열 방향(종 방향) 하위에 관련 거래정보 블록들이 열 방향(종 방향)으로 연결된 형태의 블록체인인 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  2. 제1항에 있어서, 상기 디바이스정보 블록체인을 형성하는 j번째 디바이스정보 블록은 j-1번째 디바이스정보 블록의 해쉬값을 연결하여 디바이스정보 블록간의 체인을 형성하며, 상기 거래정보 블록체인을 형성하는 k번째 거래정보 블록은 k-1번째 거래정보 블록의 해쉬값을 연결하여 거래정보 블록 간의 체인을 형성하며, 여기서, 상기 k와 j은 각각 상기 디바이스정보 블록체인을 구성하는 디바이스정보 블록들의 개수보다 크지 않은 자연수인 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  3. 제1항에 있어서, 상기 하나 이상의 IoT 디바이스 각각에 포함된 전자지갑 유닛은,
    대응 IoT 디바이스의 고유한 식별자 정보를 생성하도록 구성된 식별자 생성부;
    소정의 알고리즘을 이용하여 상기 대응 IoT 디바이스에 관한 개인키와 공개키의 키쌍을 생성하도록 구성된 키쌍 생성부;
    상기 키쌍 생성부가 생성한 개인키로 전자서명을 위한 전자서명 데이터를 생성함으로써 상기 대응 IoT 디바이스의 거래행위에 대한 전자서명을 수행하도록 구성된 전자서명부;
    상기 식별자 생성부와 상기 키쌍 생성부가 생성한 상기 식별자 정보와 상기 공개키를 상기 블록체인 네트워크에 속해 있는 소정의 블록체인 노드를 통해 상기 디바이스정보 블록체인을 이루는 소정의 디바이스정보 블록에 저장되도록 하는 등록 컨트랙트 호출부;
    상기 전자서명부에서 생성된 전자서명 데이터와 상기 식별자 생성부에서 생성된 식별자 정보를 상기 소정의 블록체인 노드에 전송하여 상기 IoT 디바이스의 인증을 처리하고 인증 결과를 회신하도록 하는 인증 컨트랙트 호출부; 및
    상기 IoT 디바이스가 인증에 성공한 경우, 상기 IoT 디바이스와 소정의 서비스를 제공하는 컴퓨팅 장치 간에 이루어지는 거래 행위에 관해 데이터인 거래 정보를 상기 식별자 정보와 함께 상기 소정의 블록체인 노드에 제공하여 상기 다중 블록체인의 거래정보 블록에 저장되도록 하는 거래 컨트랙트 호출부를 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  4. 제1항에 있어서, 상기 스마트 컨트랙트 실행부는,
    신규 IoT 디바이스로부터의 등록 요청에 응하여, 상기 신규 IoT 디바이스에 대응하는 디바이스 메타데이터와 상위 디바이스정보 블록의 해쉬값을 포함하는 새로운 디바이스정보 블록을 생성하고, 상기 새로운 디바이스정보 블록을 상기 상위 디바이스정보 블록의 해쉬값을 통해 상기 디바이스정보 블록체인의 현재의 맨 마지막 디바이스정보 블록의 하위 디바이스정보 블록으로 추가하여 새로운 맨 마지막 디바이스정보 블록으로 저장함으로써 상기 신규 IoT 디바이스의 등록을 실행하도록 구성된 등록 컨트랙트 실행부;
    소정의 IoT 디바이스로부터의 인증 요청에 응하여, 그 IoT 디바이스의 식별자 정보와 전자서명 데이터를 상기 IoT 디바이스로부터 제공받고, 제공받은 식별자 정보에 대응하는 상기 IoT 디바이스의 공개키를 상기 디바이스정보 블록체인에서 검색하고, 검색된 상기 IoT 디바이스의 공개키를 이용하여 상기 전자서명 데이터를 검증하여 상기 IoT 디바이스의 유효성을 확인하고, 유효성 확인 결과를 상기 IoT 디바이스에 회신하도록 구성된 인증 컨트랙트 실행부; 및
    유효성이 확인된 IoT 디바이스로부터의 거래처리 요청에 응하여, 그 IoT 디바이스와 상기 소정의 서비스 간의 거래행위에 관한 거래정보와 상기 IoT 디바이스의 식별자 정보를 상기 IoT 디바이스로부터 제공받고, 상기 식별자 정보가 포함된 디바이스정보 블록을 상기 다중 블록체인의 상기 디바이스정보 블록체인에서 검색하여 해당 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록을 검색하고, 검색된 상기 맨 마지막 거래정보 블록의 해쉬값을 획득하고, 상기 IoT 디바이스의 거래정보와 상기 맨 마지막 거래정보 블록의 해쉬값을 포함하는 새로운 거래정보 블록을 생성하여 상기 맨 마지막 거래정보 블록의 하위 거래정보 블록으로 추가되도록 저장함으로써 상기 IoT 디바이스의 거래행위를 처리하도록 구성된 거래처리 컨트랙트 실행부를 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  5. 제4항에 있어서, 상기 새로운 디바이스정보 블록에 포함되는 상기 디바이스 메타데이터는 상기 신규 IoT 디바이스의 식별자 및 공개키, 메타데이터 해쉬값, 메타데이터의 생성시간에 관한 정보를 포함하며, 상기 메타데이터 해쉬값은 상기 식별자 및 상기 공개키, 상기 메타데이터의 생성시간의 해쉬값을 포함하는 것을 특징으로 하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  6. 제4항에 있어서, 상기 거래정보 블록에 포함되는 상기 거래정보는 상기 거래처리를 요청한 IoT 디바이스의 식별자, 거래정보, 상기 거래정보를 등록한 생성시간, 그리고 거래해쉬값을 포함하며, 상기 거래해쉬값은 상기 식별자, 상기 거래정보, 상기 생성시간의 해쉬값을 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  7. 제1항에 있어서, 새로 등록 및 인증을 받은 신규 IoT 디바이스에 관한 디바이스정보 블록은 상기 디바이스정보 블록체인 내의 맨 마지막 디바이스정보 블록의 행 방향(횡 방향) 하위 블록으로 연결되는 형태로 추가되고,
    상기 디바이스정보 블록체인 내의 소정의 디바이스정보 블록에 연관된 특정 IoT 디바이스의 새로운 거래정보에 관한 거래정보 블록은 상기 특정 IoT 디바이스에 대응되는 상기 소정의 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록의 열 방향(종 방향) 하위 블록으로 연결되는 형태로 추가되는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 시스템.
  8. 통신기능과 컴퓨팅 기능을 갖는 IoT 디바이스에서, 상기 IoT 디바이스의 디바이스 식별자를 이용하여, 상기 IoT 디바이스와 소정의 서비스 장치 간에 이루어진 소정의 서비스에 대한 거래행위에 관해 거래정보를 생성하는 단계;
    상기 IoT 디바이스가 상기 거래정보와 상기 디바이스 식별자 정보를 블록체인 네트워크에 연결되어 있고 통신기능과 컴퓨팅 기능을 갖는 블록체인 노드에 제공하여 상기 거래행위에 관한 거래정보 블록의 생성을 요청하는 단계;
    상기 블록체인 노드에서, 상기 디바이스 식별자가 포함된 디바이스정보 블록을 디바이스정보 블록체인에서 검색하는 단계;
    상기 블록체인 노드에서, 검색된 디바이스정보 블록에 연결된 거래정보 블록 중에서 맨 마지막 거래정보 블록을 검색하는 단계;
    상기 블록체인 노드에서, 검색된 상기 맨 마지막 거래정보 블록의 해쉬값을 획득하는 단계; 및
    상기 블록체인 노드에서, 상기 IoT 디바이스의 상기 디바이스 거래정보와 상기 맨 마지막 거래정보 블록의 해쉬값을 포함하는 새로운 거래정보 블록을 생성하여 상기 맨 마지막 거래정보 블록의 하위 거래정보 블록으로 추가되도록 저장하는 단계를 포함하며,
    상기 디바이스정보 블록체인은 하나 이상의 IoT 디바이스의 식별 및 인증에 관련된 정보를 각각 포함하는 복수의 디바이스정보 블록들을 포함하며, 상기 복수의 디바이스정보 블록들은 생성 시간의 순서에 따라 행 방향(횡 방향)으로 일방향 연결을 이루어 단일의 선형 블록체인을 형성하고,
    상기 디바이스정보 블록체인을 형성하는 각 디바이스정보 블록에는 해당 IoT 디바이스의 거래행위에 관한 거래정보를 포함하는 하나 이상의 거래정보 블록들이 생성 시간의 순서에 따라 열 방향(종 방향)으로 일방향 연결을 이루어 단일의 선형 거래정보 블록체인을 형성하여,
    상기 다중 블록체인은 상기 복수의 디바이스정보 블록 각각을 최상위 블록으로 하여 각 디바이스정보 블록마다 이의 열 방향(종 방향) 하위에 관련 거래정보 블록들이 열 방향(종 방향)으로 연결된 형태의 블록체인인 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  9. 제8항에 있어서, 상기 거래정보에 대응하는 상기 새로운 거래정보 블록의 생성은 유효성이 인증된 IoT 디바이스에 대하여 이루어지며, 상기 IoT 디바이스의 유효성 인증을 위해,
    상기 IoT 디바이스에서, 상기 IoT 디바이스의 고유한 식별자 정보를 생성하는 단계;
    상기 IoT 디바이스에서, 소정의 알고리즘을 이용하여 상기 대응 IoT 디바이스에 관한 개인키와 공개키의 키쌍을 생성하는 단계;
    상기 IoT 디바이스에서, 생성된 상기 개인키로 상기 거래행위에 전자서명을 위한 전자서명 데이터를 생성하는 단계; 및
    상기 IoT 디바이스에서, 상기 전자서명 데이터와 상기 식별자 정보를 상기 블록체인 노드에 전송하여 상기 IoT 디바이스에 관한 인증을 요청하여 처리결과를 회신받는 단계를 더 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  10. 제9항에 있어서, 상기 유효성의 인증은 상기 블록체인 노드에 등록된 IoT 디바이스에 대하여 수행될 수 있으며,
    신규 IoT 디바이스에서, 자신에 관한 디바이스정보 블록을 상기 블록체인 노드에 생성시켜 자신을 등록하기 위하여, 자신의 식별자 정보와 공개키를 상기 블록체인 노드에 제공하는 단계를 더 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  11. 제10항에 있어서, 상기 블록체인 노드에서, 상기 신규 IoT 디바이스로부터의 등록 요청에 응하여, 상기 신규 IoT 디바이스에 대응하는 디바이스 메타데이터와 상위 디바이스정보 블록의 해쉬값을 포함하는 새로운 디바이스정보 블록을 생성하는 단계; 및
    상기 블록체인 노드에서, 상기 새로운 디바이스정보 블록을 상기 상위 디바이스정보 블록의 해쉬값을 통해 상기 디바이스정보 블록체인의 현재의 맨 마지막 디바이스정보 블록의 하위 디바이스정보 블록으로 추가하여 새로운 맨 마지막 디바이스정보 블록으로 저장함으로써 상기 신규 IoT 디바이스의 등록을 실행하는 단계를 더 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  12. 제11항에 있어서, 상기 새로운 디바이스정보 블록에 포함되는 상기 디바이스 메타데이터는 상기 신규 IoT 디바이스의 식별자 및 공개키, 메타데이터 해쉬값, 메타데이터의 생성시간에 관한 정보를 포함하며, 상기 메타데이터 해쉬값은 상기 식별자 및 상기 공개키, 상기 메타데이터의 생성시간의 해쉬값을 포함하는 것을 특징으로 하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  13. 제9항에 있어서, 상기 블록체인 노드에서, 상기 IoT 디바이스로부터의 인증 요청에 응하기 위해, 상기 IoT 디바이스가 제공한 식별자 정보에 대응하는 상기 IoT 디바이스의 공개키를 상기 디바이스정보 블록체인에서 검색하는 단계;
    상기 블록체인 노드에서, 검색된 IoT 디바이스의 공개키를 이용하여 상기 IoT 디바이스가 제공한 전자서명 데이터를 검증하여 상기 IoT 디바이스의 유효성을 확인하는 단계; 및
    상기 블록체인 노드에서 유효성 확인 결과를 상기 IoT 디바이스에 회신하는 단계를 더 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  14. 제8항에 있어서, 상기 거래정보 블록에 포함되는 상기 디바이스 거래정보는 상기 거래처리를 요청한 IoT 디바이스의 식별자, 거래정보, 상기 거래정보를 등록한 생성시간, 그리고 거래해쉬값을 포함하며, 상기 거래해쉬값은 상기 식별자, 상기 거래정보, 상기 생성시간의 해쉬값을 포함하는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  15. 제8항에 있어서, 새로 등록 및 인증을 받은 신규 IoT 디바이스에 관한 디바이스정보 블록은 상기 디바이스정보 블록체인 내의 맨 마지막 디바이스정보 블록의 행 방향(횡 방향) 하위 블록으로 연결되는 형태로 추가되고, 상기 디바이스정보 블록체인 내의 소정의 디바이스정보 블록에 연관된 특정 IoT 디바이스의 새로운 거래정보에 관한 거래정보 블록은 상기 특정 IoT 디바이스에 대응되는 상기 소정의 디바이스정보 블록에 연결된 맨 마지막 거래정보 블록의 열 방향(종 방향) 하위 블록으로 연결되는 형태로 추가되는 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  16. 제8항에 있어서, 상기 디바이스정보 블록체인을 형성하는 j번째 디바이스정보 블록은 j-1번째 디바이스정보 블록의 해쉬값을 연결하여 디바이스정보 블록간의 체인을 형성하며, 상기 거래정보 블록체인을 형성하는 k번째 거래정보 블록은 k-1번째 거래정보 블록의 해쉬값을 연결하여 거래정보 블록 간의 체인을 형성하며, 여기서, 상기 k와 j은 각각 상기 디바이스정보 블록체인을 구성하는 디바이스정보 블록들의 개수보다 크지 않은 자연수인 것을 특징으로 하는 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법.
  17. 제8항 내지 제16항 중 어느 한 항에 기재된 다중 블록체인 기반의 IoT 디바이스의 식별 및 거래행위 추적 방법을 수행하기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 실행가능 프로그램.
KR1020180173416A 2018-12-31 2018-12-31 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템 KR102180596B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180173416A KR102180596B1 (ko) 2018-12-31 2018-12-31 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180173416A KR102180596B1 (ko) 2018-12-31 2018-12-31 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템

Publications (2)

Publication Number Publication Date
KR20200082638A true KR20200082638A (ko) 2020-07-08
KR102180596B1 KR102180596B1 (ko) 2020-11-18

Family

ID=71600645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180173416A KR102180596B1 (ko) 2018-12-31 2018-12-31 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102180596B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022335A (ko) * 2016-08-24 2018-03-06 김진오 중앙분산 블록체인 기반의 디지털 가상화폐를 이용한 거래 시스템, 거래 단말 장치 및 거래 서버 장치, 이를 이용한 거래 방법
KR101862860B1 (ko) * 2017-01-11 2018-05-31 주식회사 코인플러그 Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 페이먼트 게이트웨이 서비스를 제공하는 방법 및 이를 이용한 서버
KR101887894B1 (ko) * 2018-02-23 2018-08-14 (주)케이사인 메쉬 타입 블록체인 기반의 사물 인터넷 기기 관리 시스템
KR101919586B1 (ko) * 2017-05-10 2018-11-16 주식회사 코인플러그 블록체인 기반의 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
KR20190125200A (ko) 2018-04-27 2019-11-06 주식회사 오투오컨티뉴엄 사물인터넷을 통해 수집된 정보를 매개로 하여 암호화폐를 유통시키는 방법 및 시스템
KR102078607B1 (ko) 2019-09-10 2020-02-19 (주)주인정보시스템 블록체인 보안기술을 적용한 계장제어시스템

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022335A (ko) * 2016-08-24 2018-03-06 김진오 중앙분산 블록체인 기반의 디지털 가상화폐를 이용한 거래 시스템, 거래 단말 장치 및 거래 서버 장치, 이를 이용한 거래 방법
KR101862860B1 (ko) * 2017-01-11 2018-05-31 주식회사 코인플러그 Utxo 기반 프로토콜에서 머클 트리 구조를 사용하여 페이먼트 게이트웨이 서비스를 제공하는 방법 및 이를 이용한 서버
KR101919586B1 (ko) * 2017-05-10 2018-11-16 주식회사 코인플러그 블록체인 기반의 사물 인터넷 기기에 대한 비용을 결제하는 방법, 이를 이용한 서버, 서비스 제공 단말, 및 사용자 전자 지갑
KR101887894B1 (ko) * 2018-02-23 2018-08-14 (주)케이사인 메쉬 타입 블록체인 기반의 사물 인터넷 기기 관리 시스템
KR20190125200A (ko) 2018-04-27 2019-11-06 주식회사 오투오컨티뉴엄 사물인터넷을 통해 수집된 정보를 매개로 하여 암호화폐를 유통시키는 방법 및 시스템
KR102078607B1 (ko) 2019-09-10 2020-02-19 (주)주인정보시스템 블록체인 보안기술을 적용한 계장제어시스템

Also Published As

Publication number Publication date
KR102180596B1 (ko) 2020-11-18

Similar Documents

Publication Publication Date Title
CN105573828B (zh) 一种操作处理方法及装置
US11849051B2 (en) System and method for off-chain cryptographic transaction verification
Bozic et al. Securing virtual machine orchestration with blockchains
KR20190070163A (ko) 네트워크를 통해 서로 통신하는 노드들 각각의 자원 운영 방법, 그리고 그러한 노드들 중 어느 하나로 동작하는 컴퓨터 장치
CN110383279A (zh) 用于检测重放攻击的系统和方法
WO2018026488A1 (en) Token based network service among iot applications
AU2019237372B2 (en) System and method for composite-key based blockchain device control
US11270030B2 (en) System and method for consensus management
CN112204557A (zh) 用于自动去中心化多边交易处理的系统和方法
JP2023532959A (ja) 許可制ブロックチェーンのためのプライバシー保護アーキテクチャ
CN110659906A (zh) 票据信息处理方法、相关设备及介质
KR102188504B1 (ko) 블록체인 네트워크 기반의 스마트 컨트랙트를 이용하여 온라인 기부를 관리하는 방법 및 이를 이용한 블록체인 노드
CN112953978B (zh) 一种多重签名认证方法、装置、设备及介质
CN114491430A (zh) 一种基于区块链的业务处理方法、装置及设备
US20210174331A1 (en) Transferring a customer from an atm transaction to a device-based transaction during an error state, and applications thereof
CN105099983A (zh) 授权方法、权限设置方法及装置
CN113704775A (zh) 一种基于分布式数字身份的业务处理方法及相关装置
KR20210102470A (ko) 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템
CN114971827A (zh) 一种基于区块链的对账方法、装置、电子设备及存储介质
CN111985929A (zh) 区块链中的交易验证方法、装置、节点设备及存储介质
KR102333811B1 (ko) 블록체인 기반의 카드 결제 처리 시스템 및 방법
CN111597269A (zh) 一种基于区块链的合约实现方法、装置及设备
CN114168932A (zh) 基于区块链实现跨行登录的方法及装置
KR102180596B1 (ko) 다중 블록체인 기반의 사물인터넷 디바이스 식별 및 거래행위 추적 방법 및 이를 위한 시스템
CN112541820A (zh) 数字资产管理方法、装置、计算机设备及可读存储介质

Legal Events

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