KR102343461B1 - 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템 - Google Patents

스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템 Download PDF

Info

Publication number
KR102343461B1
KR102343461B1 KR1020200097908A KR20200097908A KR102343461B1 KR 102343461 B1 KR102343461 B1 KR 102343461B1 KR 1020200097908 A KR1020200097908 A KR 1020200097908A KR 20200097908 A KR20200097908 A KR 20200097908A KR 102343461 B1 KR102343461 B1 KR 102343461B1
Authority
KR
South Korea
Prior art keywords
data
oracle
iot
smart contract
service provider
Prior art date
Application number
KR1020200097908A
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 KR1020200097908A priority Critical patent/KR102343461B1/ko
Application granted granted Critical
Publication of KR102343461B1 publication Critical patent/KR102343461B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/16
    • 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/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템이 개시된다. 본 발명의 일 실시예에 따른 오라클 시스템은 블록체인의 스마트 컨트랙트에서의 외부 IoT 데이터 공급을 위한 오라클 시스템으로서, IoT 장치 및 IoT 게이트웨이를 관리하고, 상기 IoT 장치에서 생성한 IoT 데이터에 대한 접근 제어 리스트를 스마트 컨트랙트로 구현하여 블록체인에 저장하는 관리자; 오프체인에서 상기 IoT 게이트웨이로부터 상기 IoT 데이터를 수신하여 저장하는 데이터 스토리지; 상기 관리자에게 상기 IoT 데이터의 사용을 위한 허가를 요청하는 서비스 제공자; 및 상기 관리자에 의해 상기 데이터 스토리지에의 접근을 위한 권한을 부여받고, 상기 서비스 제공자의 데이터 요청시 상기 데이터 스토리지로부터 상기 요청에 따른 응답으로 상기 IoT 데이터를 반환받아 제공하는 오라클 노드를 포함할 수 있다.

Description

스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템{Outer IoT data feeding method in smart contract and oracle system}
본 발명은 오라클 시스템에 관한 것으로, 보다 상세하게는 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템에 관한 것이다.
스마트 컨트랙트(Smart Contract)는 블록체인에서 동작하는 프로그램으로, 다양한 분야에서 활용될 수 있다. 블록체인에서 구현되는 합의는 내부 시스템에서 검증되어야 하는 요소(예컨대, 계정의 잔액)에 대해서만 검증이 이루어지기 때문에 외부 세계(Off-chain)의 데이터에 대한 연결은 신뢰할 수 없다. 여기서, 블록체인 외부에서 발생한 일련의 데이터를 내부로 전달해주는 역할을 오라클이라고 한다.
현재 오라클을 구현한 기술에 따르면, 다수의 노드가 투표를 통해 선택하는 방법을 통해서 해당 데이터의 활용 전 검증을 수행한다. 이는 다수의 노드를 운영자로 구성하여 투표하는 방식으로, 다수결에 의한 원칙으로 데이터를 결정하는 방법을 사용한다. 예를 들어, 은행의 환율을 가져와서 현재의 화폐에 적용하는 스마트 컨트랙트의 경우, 은행이 직접 서명을 하여 환율 데이터를 제출하는 것이 아니라 오라클이 이를 보고 여러명이 제출한 평균값으로 스마트 컨트랙트에서 결정하게 되는 것이다.
하지만, 이와 같은 방법은 IoT(사물인터넷) 환경에서 보안 목적으로 도입된 블록체인에 적용하기에는 어려움이 있다. 단수의 오라클일 경우 신뢰하기가 매우 어려우며, 거짓 데이터를 오라클이 전송했을 경우 이를 그대로 받아들일 수 밖에 없는 문제가 있다. 이러한 문제의 근본적인 이유는 데이터의 출처와 상관없이 오라클 노드의 행위 자체로 결정되기 때문이다. 따라서, 이 같은 문제를 해결하기 위해서는 데이터의 출처부터 스마트 컨트랙트에서 사용하기까지의 출처 인증과 데이터 무결성을 검증할 수 있는 프로토콜이 필요하다.
프로토콜을 구성하기 위해 제안한 몇 가지 방법으로 URL로 식별되는 웹 서버를 TLS(Transport Layer Security) 단계에서 인증하도록 프로토콜을 구성하는 방법이 있다. TLS-Noraty, Town Crier, TLS-N 등이 이러한 방법들이다.
도 1은 Town Crier 아키텍처를 나타낸 도면이다.
Town Crier 프로토콜은 신뢰 실행 환경(Trusted Execution Environment)인 SGX의 Enclave와 TLS 프로토콜을 기반으로 웹 데이터의 인증(HTTPS)을 제공한다.
도 1에 도시된 동작 방식은 외부 데이터의 조회 결과를 오라클 노드인 TC Server가 신뢰 실행 환경 내에서 실행했음을 입증함으로써, 오라클 노드가 전달 과정에서 위변조하지 않았음을 증명하는 것으로 구성된다.
Town Crier 프로토콜을 배경으로 보았을 때, 데이터 소소의 수정이 필요한지, HTTPS를 지원하는 TLS 서비스의 버전이 무엇인지(인프라 수정이 필요한지), 노드의 무결성 검증을 위해 하드웨어가 필요한지를 요구사항으로 정하지만, 현재 존재하는 솔루션은 이를 모두 만족시키지 못한다.
이는 IoT를 블록체인과 결합한 환경에서 오라클을 구현할 때 바로 적용할 수 없는 문제로 이어진다. HTTPS를 지원하는 웹 데이터를 대상으로는 가능하지만, IoT 데이터는 보통 웹에 공개되기 보다는 내부적인 관리자의 허가에 의한 조회가 가능한 방식이기 때문에 바로 적용이 불가능하다.
한국공개특허 제10-2020-0063595호 (2020.06.05. 공개) - 블록체인을 이용한 IoT 데이터 중개 방법 및 이를 위한 중개 서버
본 발명은 IoT 환경에서 생성된 데이터를 블록체인, 특히 스마트 컨트랙트에서 활용하기 위해 신뢰할 수 있는 오라클 구조를 형성하는 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템을 제공하기 위한 것이다.
본 발명은 외부 IoT 데이터를 블록체인에서 활용함에 있어 인프라 수정이 요구되지 않고, 데이터 제공자에 의한 데이터 소스의 수정이 불필요하며, 노드의 무결성 검증을 위한 하드웨어가 불필요한 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템을 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 블록체인의 스마트 컨트랙트에서의 외부 IoT 데이터 공급을 위한 오라클 시스템으로서, IoT 장치 및 IoT 게이트웨이를 관리하고, 상기 IoT 장치에서 생성한 IoT 데이터에 대한 접근 제어 리스트를 스마트 컨트랙트로 구현하여 블록체인에 저장하는 관리자; 오프체인에서 상기 IoT 게이트웨이로부터 상기 IoT 데이터를 수신하여 저장하는 데이터 스토리지; 상기 관리자에게 상기 IoT 데이터의 사용을 위한 허가를 요청하는 서비스 제공자; 및 상기 관리자에 의해 상기 데이터 스토리지에의 접근을 위한 권한을 부여받고, 상기 서비스 제공자의 데이터 요청시 상기 데이터 스토리지로부터 상기 요청에 따른 응답으로 상기 IoT 데이터를 반환받아 제공하는 오라클 노드를 포함하는 오라클 시스템이 제공된다.
상기 블록체인은, 상기 접근 제어 리스트를 관리하는 ID 관리 스마트 컨트랙트; 상기 서비스 제공자로부터의 데이터 요청시 상기 ID 관리 스마트 컨트랙트를 통해 상기 접근 제어 리스트를 확인하여 상기 서비스 제공자의 권한을 확인하고, 적법한 서비스 제공자인 경우 데이터 요청을 상기 오라클 노드로 전달하는 오라클 스마트 컨트랙트; 및 상기 오라클 노드에서 전달하는 상기 IoT 데이터를 집계하고 최종 데이터를 상기 오라클 스마트 컨트랙트로 전달하는 집계 스마트 컨트랙트를 포함하되, 상기 오라클 스마트 컨트랙트는 상기 서비스 제공자에게 상기 집계 스마트 컨트랙트에서 전달된 상기 최종 데이터를 상기 데이터 요청에 대한 응답으로 반환할 수 있다.
상기 오라클 노드는 상기 데이터 스토리지에 요청시 상기 관리자로부터 부여받은 토큰을 제시하고, 상기 데이터 스토리지가 상기 토큰으로부터 상기 오라클 노드의 자격 증명을 수행할 수 있다.
상기 데이터 스토리지는 증명자가 상기 오라클 노드, 검증자가 상기 데이터 스토리지가 되는 영지식 증명을 통해 상기 오라클 노드의 자격 증명을 수행할 수 있다.
상기 오라클 노드는 상기 오라클 스마트 컨트랙트로부터 상기 데이터 요청을 확인하는 단계; 상기 ID 관리 스마트 컨트랙트에서 자격 증명을 위한 정보를 로딩하는 단계; 상기 오라클 노드에서 Prove 알고리즘을 실행하여 증명 값을 생성하는 단계; 상기 오라클 노드에서 입력 값과 증명 값을 상기 데이터 스토리지로 전송하는 단계; 상기 데이터 스토리지에서 Verify 알고리즘을 실행하여 상기 입력 값과 상기 증명 값에 대한 참 혹은 거짓 결과가 도출되는 단계; 및 결과가 거짓인 경우 상기 데이터 스토리지는 요청에 대해 응답하지 않고, 결과가 참인 경우 상기 데이터 스토리지는 요청에 상응하는 상기 IoT 데이터를 상기 오라클 노드로 반환하는 단계를 수행할 수 있다.
상기 IoT 데이터에는 상기 IoT 게이트웨이의 서명이 포함될 수 있다.
상기 IoT 게이트웨이의 서명은 연결된 상기 IoT 장치의 ID 번호(ID number)와, 실제 데이터의 값(data)과, 기록된 시간을 나타내는 타임스탬프(ts)를 포함하고 상기 IoT 게이트웨이의 개인키를 사용하여 서명한 결과이되, 상기 개인키는 상기 블록체인에 등록된 공개키에 대응될 수 있다.
상기 서비스 제공자는 상기 관리자에 의해 상기 IoT 데이터에의 활용을 허가받으며, 상기 관리자는 허가된 서비스 제공자에 대해 서비스 제공자 등록 함수를 호출하는 트랜잭션을 통해 상기 접근 제어 리스트에의 등록을 진행할 수 있다.
상기 오라클 노드는 상기 관리자에 의해 상기 데이터 스토리지에의 접근을 위한 권한을 부여받으며, 상기 오라클 노드에 부여되는 토큰은 상기 관리자의 트랜잭션에 의해 수행되고, 등록된 오라클 노드의 리스트는 상기 블록체인 상에 공개되어 상기 서비스 제공자가 데이터 요청시 선택할 수 있게 할 수 있다.
한편 본 발명의 다른 측면에 따르면, 오라클 시스템을 통한 블록체인의 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법으로서, (a) 오프체인에서 IoT 게이트웨이에서 전달하여 외부의 데이터 스토리지에 저장된 IoT 장치에서 생성한 IoT 데이터에 대한 접근 제어 리스트를 관리자가 ID 관리 스마트 컨트랙트로 구현하여 블록체인에 저장하는 단계; (b) 서비스 제공자가 오라클 스마트 컨트랙트를 통해 데이터를 요청하는 단계; (c) 상기 서비스 제공자의 권한이 확인된 경우, 상기 오라클 스마트 컨트랙트를 확인한 오라클 노드는 상기 서비스 제공자의 데이터 요청에 따라 상기 데이터 스토리지로 데이터를 요청하는 단계; (d) 상기 오라클 노드가 자격 증명에 성공한 경우, 상기 데이터 스토리지에서 상기 IoT 데이터를 상기 오라클 노드로 반환하는 단계; (e) 상기 오라클 노드가 상기 오라클 스마트 컨트랙트로 상기 IoT 데이터를 반환하는 단계; 및 (f) 상기 서비스 제공자가 상기 IoT 데이터를 수신하는 단계를 포함하는 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법이 제공된다.
상기 단계 (c)에서 상기 ID 관리 스마트 컨트랙트에 저장된 상기 접근 제어 리스트를 이용하여 상기 서비스 제공자의 권한을 확인할 수 있다.
상기 단계 (d)에서 상기 오라클 노드는 상기 관리자에게 부여받은 토큰을 상기 데이터 스토리지에 제시하여 자격 증명을 수행하되, 상기 토큰은 영지식 증명에 따른 증명 값일 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, IoT 환경에서 생성된 데이터를 블록체인, 특히 스마트 컨트랙트에서 활용하기 위해 신뢰할 수 있는 오라클 구조를 형성하는 효과가 있다.
또한, 외부 IoT 데이터를 블록체인에서 활용함에 있어 인프라 수정이 요구되지 않고, 데이터 제공자에 의한 데이터 소스의 수정이 불필요하며, 노드의 무결성 검증을 위한 하드웨어가 불필요한 효과도 있다.
도 1은 Town Crier 아키텍처를 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 스마트 컨트랙트의 외부 IoT 데이터 공급을 위한 오라클 시스템이 적용되는 IoT 환경을 나타낸 도면,
도 3은 본 발명의 일 실시예에 따른 스마트 컨트랙트의 외부 IoT 데이터 공급을 위한 오라클 시스템의 구성도,
도 4는 스마트 컨트랙트의 외부 IoT 데이터 공급 방법을 나타낸 도면,
도 5는 데이터 스토리지에 저장되는 IoT 데이터의 포맷,
도 6은 서비스 제공자의 요청에 의한 오라클 노드의 자격 증명을 통한 외부 IoT 데이터 공급 과정을 나타낸 도면,
도 7은 오라클 노드의 자격 증명 방법의 순서도.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 명세서에 기재된 "…부", "…유닛", "…모듈", "…기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템이 적용되는 IoT 환경을 나타낸 도면이다.
도 2를 참조하면, IoT 환경에서 블록체인을 활용하기 위한 구조가 도시되어 있다.
IoT 장치(11)(IoT 기기, IoT 센서 등을 포함)로부터 데이터를 수집하여 인터넷과 연결하기 위한 IoT 게이트웨이(10)가 존재한다. IoT 게이트웨이(10)는 IoT 데이터를 외부의 데이터 스토리지(20)에 저장한다.
데이터 스토리지(20)는 클라우드, CoAP(Constrained Application Protocol) 서버 혹은 온프레미스(On-premise) 서버 중 하나 이상이 될 수 있다.
IoT 장치(11) 및 IoT 게이트웨이(10)를 관리하는 관리자(Administrators)(30)는 접근 제어 리스트(ACL, Access Control List)를 스마트 컨트랙트로 구현하여 블록체인(100)에 저장하고 있다. 그리고 IoT 장치별로 장치를 식별하기 위한 ID 값을 부여한다.
데이터 스토리지(20)에는 IoT 게이트웨이(10)에서 선별된 ID 값과 데이터 쌍이 포함되어 저장된다.
서비스 제공자(Service Providers)(40)는 관리자(30)로부터 허가를 받기 위해 요청을 하고, 관리자(30)는 이를 허가할 경우 스마트 컨트랙트에 등록한다.
서비스 제공자(40)는 데이터 스토리지(20)에 데이터의 권한을 확인하기 위한 요청을 보낸다. 데이터 스토리지(20)는 블록체인(100)에 저장된 접근 제어 리스트를 확인하여 정당한 권한을 가진 요청일 경우 상응하는 데이터를 반환한다.
블록체인(100)에 저장된 접근 제어 리스트는 스마트 컨트랙트로 구현될 수 있다. 스마트 컨트랙트의 역할은 IoT 장치(11)의 ID를 관리하고, 이를 관리하는 IoT 게이트웨이(10)와 관리자(30)의 권한을 저장한다.
관리자(30)가 허가한 서비스 제공자(40)의 경우, 접근의 허가를 위해 관리자(30)가 해당 리스트를 변경할 수 있다. 관리자(30)에 의한 접근 제어 리스트의 변경은 블록체인(100) 상에서 관리자(30)의 서명이 포함된 트랜잭션으로만 가능하며, 세부 항목은 스마트 컨트랙트로 구현될 수 있다.
여기서, 관리자(30) 및 서비스 제공자(40) 각각은 전술한 기능을 수행하기 위한 프로그램(혹은 애플리케이션)이 설치(탑재)되고 실행될 수 있는 컴퓨팅 장치로서, 예를 들어 스마트폰, 태블릿PC, 데스크톱, 노트북 등일 수 있다.
도 3은 본 발명의 일 실시예에 따른 스마트 컨트랙트의 외부 IoT 데이터 공급을 위한 오라클 시스템의 구성도이고, 도 4는 스마트 컨트랙트의 외부 IoT 데이터 공급 방법을 나타낸 도면이며, 도 5는 데이터 스토리지에 저장되는 IoT 데이터의 포맷이고, 도 6은 서비스 제공자의 요청에 의한 오라클 노드의 자격 증명을 통한 외부 IoT 데이터 공급 과정을 나타낸 도면이며, 도 7은 오라클 노드의 자격 증명 방법의 순서도이다.
본 발명의 실시예에서는 외부의 데이터 스토리지(20)가 블록체인(100)과 무관한 상태에서 이를 블록체인(100) 상으로 이상없이 가져오기 위해 오라클을 활용한다.
도 3에 도시된 관리자(30), 서비스 제공자(40), IoT 장치와 연결된 IoT 게이트웨이(10)는 각각 블록체인 트랜잭션을 생성할 수 있는 클라이언트 프로그램을 탑재하고 있다.
IoT 게이트웨이(10)는 IoT 장치의 데이터를 데이터 스토리지(20)에 저장한다. 저장하는 부분은 블록체인(100)과 무관한 오프체인(Off-chain)에서 발생한다.
이 때 데이터 스토리지(20)에 저장되는 데이터에는 IoT 게이트웨이(10)의 서명이 포함되어 있다. 따라서, 데이터 스토리지(20)가 위변조된 데이터를 오라클 노드(50)에 전달할 수 없도록 한다.
관리자(30)는 IoT 게이트웨이(10)가 가진 개인키와 대응되는 공개키를 블록체인(100)에 저장하여, ID 관리시에 사용한다.
본 실시예에 따른 시스템에서 블록체인을 활용한 각 구성요소의 등록 과정은 다음과 같다.
IoT 게이트웨이(10)는 연결된 IoT 장치의 고유 식별 번호를 관리한다. IoT 게이트웨이(10)는 블록체인(100) 상에서 인증을 위한 개인키 skG, pkG를 활용하여 수집된 데이터와 타임스탬프(ts)를 주기적으로 데이터 스토리지(20)로 전달한다. 관리자(30)의 스마트 컨트랙트에 IoT 게이트웨이(10)가 등록하기 위해서는 등록을 요청하는 함수를 호출하여 pkG를 등록하고, 관련된 IoT 장치의 고유 식별 번호를 함께 등록한다. 등록을 위해 IoT 게이트웨이(10)에서 전달하는 트랜잭션(TX)에는 다음 정보가 포함된다.
TX : {sender Address, ID management SC address, value, register_gw(gw_num, device[], ts), signatureG}
서비스 제공자(40)는 사용자의 편리를 위해 IoT 장치로부터 수집된 데이터를 활용하여 부가 서비스를 제공한다. 이를 위해서는 데이터 스토리지(20)에 접근할 수 있는 권한이 요구된다.
블록체인(100)의 접근 제어 리스트를 통해 관리자(30)로부터 허가 받은 서비스 제공자인지 여부를 확인할 수 있다. 따라서, 서비스 제공자(40)가 요청할 경우 관리자(30)는 다음 트랜잭션을 통해 등록을 진행한다. 관리자(30)가 register_sp()를 호출하면 서비스 제공자(40)는 접근 제어 리스트(ACL, Access Control List)에 등록된다.
TX : {sender Address, ID management SC address, value, register_sp(sp_num), signatureA}
오라클 노드(50)는 관리자(30)에 의해 데이터 스토리지(20)에의 접근을 위한 권한을 부여받아야 한다. 이때 오라클 노드(50)에게 부여되는 토큰은 관리자(30)의 트랜잭션(TX)에 의해 수행된다. 관리자(30)의 서명이 있는 트랜잭션을 ID 관리 스마트 컨트랙트(ID management SC)가 수신하면 허가된 오라클 노드(50)로 등록된다.
TX : {sender Address, ID management SC address, value, register_on(on_num), signatureA}
등록된 오라클 노드(50)의 리스트는 블록체인(100)에서 공개되어 서비스 제공자(40)가 데이터 요청시 오라클을 선택할 수 있게 된다.
서비스 제공자(40)가 데이터를 요청하면, 정당한 권한이 확인된 후 오라클 노드(50)로부터 데이터를 요청하는 절차는 스마트 컨트랙트 상에서 이루어진다. 서비스 제공자(40)의 요청에 의해 오라클 노드(50)가 데이터를 반환하는 절차는 도 4에 도시되어 있다.
서비스 제공자(40)는 블록체인에 저장된 오라클 스마트 컨트랙트(120)에게 데이터를 요청한다(단계 S200).
오라클 스마트 컨트랙트(120)는 ID 관리 스마트 컨트랙트(110)의 접근 제어 리스트를 확인하여 적법한 서비스 제공자(40)인지 확인한다(단계 S205).
오라클 노드(50)는 오라클 스마트 컨트랙트(120)를 확인 후(단계 S210) 데이터 스토리지(20)에 요청한다(단계 S215). 이때 관리자(30)로부터 부여받은 토큰을 제시하여야 한다.
데이터 스토리지(20)는 토큰으로부터 접근이 허가된 오라클 노드임을 확인 후 요청된 IoT 데이터를 응답한다(단계 S220).
오라클 노드(50)는 응답받은 IoT 데이터를 집계 스마트 컨트랙트(Aggregator_SC)(130)에 반환한다(단계 S225).
집계 스마트 컨트랙트(130)는 요청받은 응답을 집계하고, 최종 데이터를 서비스 제공자(40)에게 전달한다(단계 S230).
서비스 제공자(40)는 요청한 오라클 스마트 컨트랙트(120)의 응답을 블록체인(100)에서 수신하여 데이터를 확인하고 사용한다(단계 S235).
본 실시예에 따른 오라클 시스템(1)에서는 다음과 같은 보안성을 보장할 수 있다.
우선 IoT 게이트웨이(10), 서비스 제공자(40) 및 오라클 노드(50)의 권한이 스마트 컨트랙트로 확인되기 때문에 권한 확인 정책에 대한 가용성 및 무결성을 확보할 수 있다.
그리고 데이터는 최초 IoT 장치에서 IoT 게이트웨이(10)로 전달되는 과정을 제외하고는, 블록체인(100)에 등록된 IoT 게이트웨이(10)의 공개키로 검증 가능하기 때문에 오라클이 데이터를 반환하는 과정에서의 인증(Authentication)을 확보할 수 있다.
기존에 제안된 솔루션인 투표 방식으로 구현된 오라클을 구현할 경우, 다음과 같이 동작한다.
(1) 오라클 스마트 컨트랙트에 오라클에 요청하고자 하는 데이터의 질의가 기록된다.
(2) 오라클 노드는 자신이 제출하고자 하는 답을 결정하여 스마트 컨트랙트로 트랜잭션을 작성한다.
(3) 집계 스마트 컨트랙트는 오라클 노드의 트랜잭션을 집계하여 결과를 하나의 데이터로 작성한다.
(4) 오라클 스마트 컨트랙트로 반환된 데이터를 요청자가 활용한다.
이러한 오라클의 문제점은 데이터 자체의 출처를 활용하지 않아, 오라클에 의해 데이터를 결정하기 때문에 오라클을 신뢰해야 하는 문제가 존재한다. 즉, 누구나 오라클이 될 수 있는 환경에서 과반수의 투표에 의존하는 방식으로, 탈중앙화를 달성하지만 데이터의 무결성과 인증을 제공하지는 않는다.
본 실시예는 이를 개선한 프로토콜에 관한 것으로, 표기법은 다음 표를 따른다.
표기 설명
addrp Party의 블록체인 상 주소
skp, pkp Party의 개인키(secret key) 및 공개키(public key)
Signaturep Party가 생성한 서명 값
O 오라클 노드
G IoT gateway의 식별 값
dn IoT 기기(device number) 값
rn 오라클 노드에 요청된 Request number
ts 타임스탬프(timestamp)
외부의 데이터 스토리지(20)에 저장될 때, IoT 데이터의 출처를 표기하고 IoT 게이트웨이(10)의 서명을 포함하기 위해 IoT 데이터는 도 5에 도시된 것과 같은 형식으로 저장될 수 있다.
IoT 게이트웨이(10)의 서명(SignatureG)은 연결된 IoT 장치의 ID를 나타내는 ID 번호와 실제 데이터의 값, 기록된 시간을 나타내는 타임스탬프(ts)을 포함하여 서명 알고리즘(예를 들어, ECDSA)를 수행한 결과이다. 이때 사용된 IoT 게이트웨이(10)의 개인키는 블록체인(100)에 등록된 공개키와 대응되는 skG를 사용한다.
IoT 게이트웨이 서명의 생성 결과인 SignatureG 는 서명 생성 알고리즘인 Sign에 게이트웨이의 개인키로 서명한 결과이며, 서명의 내용은 다음과 같다. 단, data 부분에 한하여 data가 아닌 data의 hash 값 H(data)로 대체 가능하다.
Figure 112020082211628-pat00001
IoT 게이트웨이(10)는 SignatureG를 데이터 스토리지에 전송 한 후, 동일한 data의 hash 값 H(data)를 블록체인에도 저장하여야 한다. 이것은 데이터 스토리지(20)와 IoT 게이트웨이(10)의 공모로 인한 데이터 조작을 방지하기 위하여 필요하다.
데이터 스토리지(20)에 저장된 데이터를 오라클 노드(50)가 호출할 때, 등록된 오라클 노드인지는 블록체인(100)을 통해서 확인 가능하다. 등록된 오라클임을 데이터 스토리지 서버에서 확인 후 정당한 자격의 오라클 노드일 경우, 데이터를 응답한다.
오라클 노드(50)는 데이터 스토리지(20)로부터 응답된 값을 블록체인(100)의 스마트 컨트랙트로 응답한다. 하지만, 데이터 스토리지(20)가 직접 블록체인(100)을 확인하는 방법은 제3자에 해당하는 데이터 스토리지(20)가 블록체인 노드를 운영해야 하는 문제로 이어지기 때문에, 본 실시예에서는 검증 가능한 자격 증명을 할 수 있도록 프로토콜을 구현하다.
도 6에서 빨간색 부분은 오라클 노드(50)가 하는 자격 증명에 해당한다. Response_data 부분은 IoT 게이트웨이(10)의 서명으로 인해 오라클 노드(50)가 위변조할 수 없다. 따라서, 요청 과정에서 오라클 노드(50)가 자신이 정당한 자격을 가지고 있음을 증명할 수 있는 수단이 필요하다.
오라클 노드(50)가 자신이 정당한 자격을 가지고 있음을 증명하기 위해서 사용할 수 있는 도구로는 하드웨어 기반의 신뢰 실행 환경(TEE, Trusted Execution Environment)를 활용하거나, 검증 가능한 계산(Verifiable Computation) 기법을 이용할 수 있다. TEE는 하드웨어 기반으로 오라클 프로토콜 중 하나인 Town Crier와 같이 Intel SGX 같은 환경에서 수행하는 방법이고, 검증 가능한 계산 기법은 암호학적인 방법에 해당한다.
TEE의 경우 하드웨어가 별도로 요구되는 바, 본 실시예에서는 하드웨어가 별도로 필요하지 않은 검증 가능한 계산 기법을 활용하여 프로토콜을 구성할 수 있다.
검증 가능한 계산은 증명자와 검증자로 구성된다. 본 실시예에 따른 프로토콜에서 증명자는 오라클 노드(50), 검증자는 데이터 스토리지(20)가 된다.
증명 내용을 구현하기 위한 구현(Implementation) 도구로 영지식 증명(예를 들어, libsnark)이 적용될 수 있다. 영지식 증명은 증명하고자 하는 내용의 실행 함수 F 를 산술 회로(Arithmetic circuit)로 바꿔주는 역할을 한다.
영지식 증명은 다음 세 가지 알고리즘을 구현한 것이다.
Figure 112020082211628-pat00002
: 키 생성을 위임받은 함수(혹은 프로그램) F 와 보안 매개변수 λ 를 사용하여 증명 키(proving key)인 pk, 검증 키(verification key)인 vk를 생성한다.
Figure 112020082211628-pat00003
: input x 와 중간 계산 결과 w 를 사용하여 프로그램 F 를 실행한 증명 값 π 를 Prove 알고리즘으로 생성한다.
Figure 112020082211628-pat00004
: input x 에 대해 프로그램 F 를 실행한 결과가 참인지 거짓인지를 증명 값 π 로 판별하는 Verify 알고리즘을 수행한다.
검증하기 위한 함수(혹은 프로그램) F 는 '오라클 노드(O)는 관리자(Admin)가 관리하는 ID 관리 스마트 컨트랙트(SCID)에 등록된 게이트웨이(Gateway)의 IoT 장치(dn)에 대해 접근 허가가 되어 있음을 증명'하는 내용이다. 이를 검증하는 루틴의 구현 후, 영지식 증명을 활용하여 KeyGen(), Prove(), Verify() 알고리즘을 수행하는 산술 회로를 생성할 수 있다.
위 프로토콜을 수행하기 위해서 input x 와 witness w 의 값으로는 다음과 같은 값의 전달이 필요하다.
input x : AddrG, AddrO, dn, SignatureG, rn
witness w : SignatureO
위 매개변수에 대해, input x 로부터 오라클 노드(50)가 실행한 함수 F 는 검증자(본 실시예에서는 데이터 소스)와 KeyGen 단계에서 공유한 함수 F 의 회로와 pk 및 vk를 대상으로 올바르게 수행되었음을 검증할 수 있는 π 를 생성한다.
또한, witness w 에 오라클의 서명이 들어가는 이유는 증명하고자 하는 대상이 실제 오라클 노드임을 확인하여 다른 오라클 노드가 거짓 행위를 하는 것을 방지하기 위함이다. 위 매개변수에서 오라클이 생성하는 서명 값은 다음과 같다.
Figure 112020082211628-pat00005
해당 Proof가 참일 경우, 검증자인 데이터 스토리지(20)는 IoT 장치 값에 접근할 수 있는 정당한 권한의 대상임을 확인하고, 해당 장치의 실제 값을 오라클 노드(50)에게 반환할 수 있다.
도 7을 참조하면, 본 실시예에 따른 오라클 시스템(1)에서 오라클 노드의 자격 증명에 따른 외부 IoT 데이터 공급 방법의 순서도가 도시되어 있다.
오라클 노드(50)는 오라클 스마트 컨트랙트(120)로부터 데이터 요청을 확인한다(단계 S300).
ID 관리 스마트 컨트랙트(110)에서 자격 증명(permission check)을 위한 정보를 로딩한다(단계 S305).
오라클 노드(50)에서 Prove() 알고리즘을 실행한다(단계 S310). Prove() 알고리즘 실행을 통해 증명 값을 생성한다.
오라클 노드(50)는 입력 값(input)과 증명 값(proof)를 데이터 스토리지(20)로 전송한다(단계 S315).
데이터 스토리지(20)에서는 Verify() 알고리즘을 실행한다(단계 S320). Verify() 알고리즘을 통해 입력 값과 증명 값에 따른 참 혹은 거짓 결과가 도출된다.
결과가 거짓(False)인 경우 오라클 노드(50)의 자격 증명에 실패한 것으로 보고, 데이터 스토리지(20)는 요청에 대해 응답하지 않는다(단계 S325).
결과가 참(True)인 경우 오라클 노드(50)의 자격 증명에 성공한 것으로 보고, 데이터 스토리지(20)는 요청에 상응하는 IoT 데이터를 반환한다(단계 S330).
오라클 이라는 용어는 외부 세계의 전달자라는 의미를 가지고 언급되기 때문에, 대부분의 경우 탈중앙화된 주체 선정을 기반으로 투표로 행해진다. 따라서, 데이터 자체의 무결성이나 인증을 제공하지 않는다.
오라클을 위한 인증 프로토콜을 제시한 Town Crier는 하드웨어인 Intel SGX를 사용한다. 따라서, 오라클 노드가 Intel SGX의 enclave를 지원하지 않을 경우 활용할 수 없는 프로토콜이다. 하지만, 본 실시예에서는 하드웨어를 사용하지 않고서도 활용 가능하다.
TLS-Notary를 활용한 Provable 서비스는 인프라의 수정이 필요한 TLS 1.2 이하의 버전을 대상으로 설계되었다. 따라서, 인프라의 수정이 필요하지만, 본 실시예에서는 인프라의 수정이 필요하지 않다.
TLS-N의 경우 하드웨어를 사용하지 않지만, 데이터 소스에 해당하는 웹 서버의 참여를 요구한다. 하지만, 본 실시예에서는 데이터 스토리지의 참여를 요구하지 않는다.
또한, 기존에는 오라클이 21명의 노드를 운영하여 과반수의 투표 결과의 의사를 따르기 때문에 투표로 인한 시간 소요, 의견 차질에 의한 이의제기 절차 구현, 참여 유도를 위한 체계 설계 등의 비용을 필요로 한다. 반면, 본 실시예에서는 프로토콜 상으로 인증과 무결성을 확보할 수 있도록 지원하여 투표에 드는 비용을 절감할 수 있다.
본 실시예에 따르면, IoT 장치를 이용한 대부분의 서비스에 적용 가능하다. 데이터를 외부 클라우드 등에 보관하고, 오라클 노드를 활용하여 신뢰할 수 있는 데이터를 제3자에게 제공하기까지 권한 관리를 제공할 수 있다.
신선 식품을 생산지에서 최종 소비지까지 운송되는 전 과정에서 저온의 온도를 유지하여 신선도와 품질을 유지하는 콜드체인 서비스의 경우, 온도를 체크하는 IoT 장치의 값을 데이터 스토리지에 기록하고, 이를 제3자 서비스 제공자에서 활용할 경우 보험 가입 등의 부가 서비스로 발전시킬 수 있다.
이와 같이 관리할 경우, 블록체인으로 IoT 장치와 서비스 제공자를 관리하기 때문에 높은 확장의 장점을 얻을 수 있고, 오라클 노드로 인해 클라우드 사업자는 블록체인을 운영하지 않아도 되면서 데이터 무결성을 확보할 수 있다. 뿐만 아니라 관리자가 직접 접근 제어를 수행하고 관련 정책이 블록체인 내에서 무결성을 가지기 때문에 별도의 서버를 운영하지 않아도 되는 장점을 가진다.
전술한 스마트 컨트랙트의 외부 IoT 데이터 공급 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 스마트 컨트랙트의 외부 IoT 데이터 공급 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 스마트 컨트랙트의 외부 IoT 데이터 공급 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1: 오라클 시스템 10: IoT 게이트웨이
11: IoT 장치 20: 데이터 스토리지
30: 관리자 40: 서비스 제공자
50: 오라클 노드 100: 블록체인
110: ID 관리 스마트 컨트랙트 120: 오라클 스마트 컨트랙트
130: 집계 스마트 컨트랙트

Claims (12)

  1. 블록체인의 스마트 컨트랙트에서의 외부 IoT 데이터 공급을 위한 오라클 시스템으로서,
    IoT 장치 및 IoT 게이트웨이를 관리하고, 상기 IoT 장치에서 생성한 IoT 데이터에 대한 접근 제어 리스트를 스마트 컨트랙트로 구현하여 블록체인에 저장하는 관리자;
    오프체인에서 상기 IoT 게이트웨이로부터 상기 IoT 데이터를 수신하여 저장하는 데이터 스토리지;
    상기 관리자에게 상기 IoT 데이터의 사용을 위한 허가를 요청하는 서비스 제공자; 및
    상기 관리자에 의해 상기 데이터 스토리지에의 접근을 위한 권한을 부여받고, 상기 서비스 제공자의 데이터 요청시 상기 데이터 스토리지로부터 상기 요청에 따른 응답으로 상기 IoT 데이터를 반환받아 제공하는 오라클 노드를 포함하는 오라클 시스템.
  2. 제1항에 있어서,
    상기 블록체인은,
    상기 접근 제어 리스트를 관리하는 ID 관리 스마트 컨트랙트;
    상기 서비스 제공자로부터의 데이터 요청시 상기 ID 관리 스마트 컨트랙트를 통해 상기 접근 제어 리스트를 확인하여 상기 서비스 제공자의 권한을 확인하고, 적법한 서비스 제공자인 경우 데이터 요청을 상기 오라클 노드로 전달하는 오라클 스마트 컨트랙트; 및
    상기 오라클 노드에서 전달하는 상기 IoT 데이터를 집계하고 최종 데이터를 상기 오라클 스마트 컨트랙트로 전달하는 집계 스마트 컨트랙트를 포함하되,
    상기 오라클 스마트 컨트랙트는 상기 서비스 제공자에게 상기 집계 스마트 컨트랙트에서 전달된 상기 최종 데이터를 상기 데이터 요청에 대한 응답으로 반환하는 것을 특징으로 하는 오라클 시스템.
  3. 제2항에 있어서,
    상기 오라클 노드는 상기 데이터 스토리지에 요청시 상기 관리자로부터 부여받은 토큰을 제시하고, 상기 데이터 스토리지가 상기 토큰으로부터 상기 오라클 노드의 자격 증명을 수행하는 것을 특징으로 하는 오라클 시스템.
  4. 제3항에 있어서,
    상기 데이터 스토리지는 증명자가 상기 오라클 노드, 검증자가 상기 데이터 스토리지가 되는 영지식 증명을 통해 상기 오라클 노드의 자격 증명을 수행하는 것을 특징으로 하는 오라클 시스템.
  5. 제4항에 있어서,
    상기 오라클 노드는 상기 오라클 스마트 컨트랙트로부터 상기 데이터 요청을 확인하는 단계;
    상기 ID 관리 스마트 컨트랙트에서 자격 증명을 위한 정보를 로딩하는 단계;
    상기 오라클 노드에서 Prove 알고리즘을 실행하여 증명 값을 생성하는 단계;
    상기 오라클 노드에서 입력 값과 증명 값을 상기 데이터 스토리지로 전송하는 단계;
    상기 데이터 스토리지에서 Verify 알고리즘을 실행하여 상기 입력 값과 상기 증명 값에 대한 참 혹은 거짓 결과가 도출되는 단계; 및
    결과가 거짓인 경우 상기 데이터 스토리지는 요청에 대해 응답하지 않고, 결과가 참인 경우 상기 데이터 스토리지는 요청에 상응하는 상기 IoT 데이터를 상기 오라클 노드로 반환하는 단계를 수행하는 것을 특징으로 하는 오라클 시스템.
  6. 제1항에 있어서,
    상기 IoT 데이터에는 상기 IoT 게이트웨이의 서명이 포함된 것을 특징으로 하는 오라클 시스템.
  7. 제6항에 있어서,
    상기 IoT 게이트웨이의 서명은 연결된 상기 IoT 장치의 ID 번호(ID number)와, 실제 데이터의 값(data)과, 기록된 시간을 나타내는 타임스탬프(ts)를 포함하고 상기 IoT 게이트웨이의 개인키를 사용하여 서명한 결과이되,
    상기 개인키는 상기 블록체인에 등록된 공개키에 대응되는 것을 특징으로 하는 오라클 시스템.
  8. 제1항에 있어서,
    상기 서비스 제공자는 상기 관리자에 의해 상기 IoT 데이터에의 활용을 허가받으며,
    상기 관리자는 허가된 서비스 제공자에 대해 서비스 제공자 등록 함수를 호출하는 트랜잭션을 통해 상기 접근 제어 리스트에의 등록을 진행하는 것을 특징으로 하는 오라클 시스템.
  9. 제1항에 있어서,
    상기 오라클 노드는 상기 관리자에 의해 상기 데이터 스토리지에의 접근을 위한 권한을 부여받으며, 상기 오라클 노드에 부여되는 토큰은 상기 관리자의 트랜잭션에 의해 수행되고,
    등록된 오라클 노드의 리스트는 상기 블록체인 상에 공개되어 상기 서비스 제공자가 데이터 요청시 선택할 수 있게 하는 것을 특징으로 하는 오라클 시스템.
  10. 오라클 시스템을 통한 블록체인의 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법으로서,
    (a) 오프체인에서 IoT 게이트웨이에서 전달하여 외부의 데이터 스토리지에 저장된 IoT 장치에서 생성한 IoT 데이터에 대한 접근 제어 리스트를 관리자가 ID 관리 스마트 컨트랙트로 구현하여 블록체인에 저장하는 단계;
    (b) 서비스 제공자가 오라클 스마트 컨트랙트를 통해 데이터를 요청하는 단계;
    (c) 상기 서비스 제공자의 권한이 확인된 경우, 상기 오라클 스마트 컨트랙트를 확인한 오라클 노드는 상기 서비스 제공자의 데이터 요청에 따라 상기 데이터 스토리지로 데이터를 요청하는 단계;
    (d) 상기 오라클 노드가 자격 증명에 성공한 경우, 상기 데이터 스토리지에서 상기 IoT 데이터를 상기 오라클 노드로 반환하는 단계;
    (e) 상기 오라클 노드가 상기 오라클 스마트 컨트랙트로 상기 IoT 데이터를 반환하는 단계; 및
    (f) 상기 서비스 제공자가 상기 IoT 데이터를 수신하는 단계를 포함하는 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법.
  11. 제10항에 있어서,
    상기 단계 (c)에서 상기 ID 관리 스마트 컨트랙트에 저장된 상기 접근 제어 리스트를 이용하여 상기 서비스 제공자의 권한을 확인하는 것을 특징으로 하는 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법.
  12. 제10항에 있어서,
    상기 단계 (d)에서 상기 오라클 노드는 상기 관리자에게 부여받은 토큰을 상기 데이터 스토리지에 제시하여 자격 증명을 수행하되,
    상기 토큰은 영지식 증명에 따른 증명 값인 것을 특징으로 하는 스마트 컨트랙트에서의 외부 IoT 데이터 공급 방법.
KR1020200097908A 2020-08-05 2020-08-05 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템 KR102343461B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200097908A KR102343461B1 (ko) 2020-08-05 2020-08-05 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200097908A KR102343461B1 (ko) 2020-08-05 2020-08-05 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템

Publications (1)

Publication Number Publication Date
KR102343461B1 true KR102343461B1 (ko) 2021-12-27

Family

ID=79176987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200097908A KR102343461B1 (ko) 2020-08-05 2020-08-05 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템

Country Status (1)

Country Link
KR (1) KR102343461B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115484597A (zh) * 2022-08-30 2022-12-16 山东科技大学 一种智能家居环境下基于家庭注册的远程控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063595A (ko) 2018-11-28 2020-06-05 주식회사 포스링크 블록체인을 이용한 IoT 데이터 중개 방법 및 이를 위한 중개 서버

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200063595A (ko) 2018-11-28 2020-06-05 주식회사 포스링크 블록체인을 이용한 IoT 데이터 중개 방법 및 이를 위한 중개 서버

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Alfonso Panarello et al, "Blockchain and IoT Integration: A Systematic Survey", Sensors (2018.) *
Marlon Dumas et al, "Blockchain Technology for Collaborative Information Systems", Report from Dagstuhl Seminar 18332 (2018.) *
Yining Hu et al, "Blockchain-based Smart Contracts-Applications and Challenges", arXiv preprint arXiv:1810.04699 (2019.) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115484597A (zh) * 2022-08-30 2022-12-16 山东科技大学 一种智能家居环境下基于家庭注册的远程控制方法

Similar Documents

Publication Publication Date Title
AU2021206913B2 (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
TWI730692B (zh) 提高區塊鏈網路與外部資料源之間的通信的完整性
US11025435B2 (en) System and method for blockchain-based cross-entity authentication
US10771459B2 (en) Terminal apparatus, server apparatus, blockchain and method for FIDO universal authentication using the same
KR102274294B1 (ko) 고 가용성의 신뢰 실행 환경을 사용하여 블록체인 네트워크에 대한 액세스 데이터를 리트리빙하는 방법
US20230269100A1 (en) Systems and methods for notary agent for public key infrastructure names
US11700117B2 (en) System for credential storage and verification
US11055802B2 (en) Methods and apparatus for implementing identity and asset sharing management
US20210133359A1 (en) Permission management method, permission verification method, and related apparatus
WO2021000419A1 (en) System and method for blockchain-based cross-entity authentication
US20190319939A1 (en) Digital credentials for primary factor authentication
US20190305964A1 (en) Digital credentials for user device authentication
US20190305967A1 (en) Digital credentials for employee badging
US20190303587A1 (en) Digital credentials for access to sensitive data
CN109327481B (zh) 一种基于区块链的全网统一在线认证方法及系统
US20200052880A1 (en) Ad-hoc trusted groups on a blockchain
CN110493347A (zh) 基于区块链的大规模云存储中数据访问控制方法及系统
EP3788523A1 (en) System and method for blockchain-based cross-entity authentication
US20190306151A1 (en) Digital credentials for visitor network access
US20100154040A1 (en) Method, apparatus and system for distributed delegation and verification
Abraham et al. Revocable and offline-verifiable self-sovereign identities
US20240187259A1 (en) Method and apparatus for generating, providing and distributing a trusted electronic record or certificate based on an electronic document relating to a user
US20190305965A1 (en) Digital credentials for secondary factor authentication
Kravitz Transaction immutability and reputation traceability: Blockchain as a platform for access controlled iot and human interactivity
KR102343461B1 (ko) 스마트 컨트랙트의 외부 IoT 데이터 공급 방법 및 이를 위한 오라클 시스템

Legal Events

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