KR20210056744A - 블록체인 응용 외부 정보 인식 및 정보 제공방법 - Google Patents

블록체인 응용 외부 정보 인식 및 정보 제공방법 Download PDF

Info

Publication number
KR20210056744A
KR20210056744A KR1020190143555A KR20190143555A KR20210056744A KR 20210056744 A KR20210056744 A KR 20210056744A KR 1020190143555 A KR1020190143555 A KR 1020190143555A KR 20190143555 A KR20190143555 A KR 20190143555A KR 20210056744 A KR20210056744 A KR 20210056744A
Authority
KR
South Korea
Prior art keywords
data
oracle
information
blockchain
node
Prior art date
Application number
KR1020190143555A
Other languages
English (en)
Other versions
KR102337836B1 (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 KR1020190143555A priority Critical patent/KR102337836B1/ko
Priority to PCT/KR2019/015544 priority patent/WO2021095926A1/ko
Publication of KR20210056744A publication Critical patent/KR20210056744A/ko
Application granted granted Critical
Publication of KR102337836B1 publication Critical patent/KR102337836B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

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

Abstract

본 발명의 일실시예는, 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계, 상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계, 상기 데이터를 파싱하는 파싱단계, 상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계, 및 상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법을 제공하여, 오라클 블록체인의 외부에 존재하는 데이터를 오라클 블록체인의 내부로 들여오고 오라클 블록체인의 내부에 저장된 데이터를 오라클 블록체인의 외부로 제공하는 양방향 데이터 교환을 제공함에 있어서 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자의 프라이버시를 보장할 수 있다.

Description

블록체인 응용 외부 정보 인식 및 정보 제공방법{External information recognizing and information providing method using blockchain}
본 발명은 블록체인 응용 외부 정보 인식 및 정보 제공방법에 관한 것이다.
블록체인(blockchain) 기술은 거래내역을 기록한 원장을 다수의 노드(Node)에 분산하여 저장/관리하는 분산 원장(distributed ledger) 기술이다. 블록체인은 다수의 거래 기록을 하나의 블록(block)에 기록하고 이전 블록과 다음 블록을 연결하여 체인(chain)으로 연결한 구조를 갖는다. 블록체인 기술은 블록체인에 저장된 기록을 위조하거나 변조하기 어려운 특성에 기초하여 다양한 분야에 적용되고 있다. 블록체인에 기록된 정보를 위조하거나 변조하기 어렵다는 것은 달리 말하면 이미 기록된 정보를 수정하기 어렵다는 것이고, 최초에 잘못된 정보가 블록체인에 기록되는 경우 문제가 발생할 수 있다.
블록체인 기술은 스마트 컨트랙트(smart contract) 기능을 제공할 수 있다. 스마트 컨트랙트는 계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자계약 문서를 생성하고 계약 조건이 모두 만족되면 자동으로 계약 내용을 실행하는 기술이다. 스마트 컨트랙트의 계약 조건이 블록체인 네트워크에서 획득할 수 없는 정보인 경우 블록체인 외부에서 정보를 획득할 필요가 있다. 블록체인 외부의 정보가 블록체인에 일단 기록되면 수정하기 어렵기 때문에, 블록체인 외부의 정보가 신뢰할 수 있는 것인지 판단할 필요가 있다.
KR 10-2018-0102269 A
본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보 교환시 데이터의 기밀성과 무결성을 보장하기 위한 것이다.
또한, 본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보를 교환할 수 있도록, 정보 접근 경로에 대한 보안, 외부 정보 제공자의 검증, 획득된 데이터 및 정보사용자의 프라이버시 보장, 데이터 스토리지 기능을 제공할 수 있는 스마트 컨트랙트 방식의 오라클 프레임워크를 제공하기 위한 것이다.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계, 상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계, 상기 데이터를 파싱하는 파싱단계, 상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계, 및 상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계, 상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계, 상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계, 및 상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 로딩단계를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 데이터 획득단계를 수행하는 요청판단 단계를 더 포함할 수 있다.
또한, 상기 신뢰도 판단단계는 상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계, 상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및 상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함할 수 있다.
또한, 상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며, 상기 오라클 노드는 상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행될 수 있다.
또한, 상기 데이터 보호단계는 상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것일 수 있다.
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.
이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고 사전적인 의미로 해석되어서는 아니 되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야만 한다.
본 발명의 일실시예에 따르면, 오라클 블록체인의 외부에 존재하는 데이터를 오라클 블록체인의 내부로 들여오고 오라클 블록체인의 내부에 저장된 데이터를 오라클 블록체인의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다.
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자의 프라이버시를 보장할 수 있다.
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다.
또한, 본 발명의 일실시예에 따르면, 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조를 나타내는 도면이다.
도 4는 본 발명의 일실시예에 따른 정보소스의 신뢰도 판단단계를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다.
본 발명의 일실시예의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "일면", "타면", "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다. 이하, 본 발명의 일실시예를 설명함에 있어서, 본 발명의 일실시예의 요지를 불필요하게 흐릴 수 있는 관련된 공지 기술에 대한 상세한 설명은 생략한다.
이하, 첨부된 도면을 참조하여, 본 발명의 일실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크(1020)를 나타낸 도면이다.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에서 수행될 수 있다. 오라클 블록체인 네트워크(1020)는 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하여, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하여 분산형 데이터 스토리지(1040)에 저장할 수 있고, 데이터 요청을 수신하면 분산형 데이터 스토리지(1040)에 저장된 데이터를 정보사용자(1050)에게 제공할 수 있다.
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)가 피어 투 피어(P2P, Peer to Peer) 방식으로 연결된 네트워크이다. 오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)들 사이의 정보처리와 각 오라클 노드(1030)의 정보처리에 기초하여 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행할 수 있다.
오라클 노드(1030)는 통신부(1031), 제어부(1032), 저장부(1033)를 포함할 수 있다. 오라클 노드(1030)는 서버 컴퓨터, PC, 노트북 PC, 태블릿 PC, 스마트폰 등의 정보처리장치를 포함한다. 통신부(1031)는 오라클 노드(1030)와 다른 오라클 노드(1030) 사이에서 데이터를 송수신하여 오라클 블록체인 네트워크(1020)의 연결을 수행할 수 있다. 저장부(1033)는 오라클 블록체인(1060)의 전부 또는 일부를 저장할 수 있다. 저장부(1033)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 저장할 수 있다. 제어부(1032)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 실시할 수 있는 프로세서(processor)를 포함할 수 있다.
오라클 블록체인(1060)은 이전 오라클 블록(1060a)의 해시값을 자기 오라클 블록(1060a)의 구성으로 포함하는 오라클 블록(1060a)들의 연속적인 연결로 구성될 수 있다. 오라클 블록(1060a)은 이전 오라클 블록(1060a)의 해시값과 데이터를 저장하는 저장공간을 포함한다. 오라클 블록체인(1060)은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에 각각 저장되고, 복수의 오라클 노드(1030)에 저장된 오라클 블록체인(1060)들은 서로 동일한 데이터를 갖는다. 오라클 블록(1060a)의 저장공간에는 저장내역(1061) 및 제공내역(1062)이 저장될 수 있다. 저장내역(1061)은 오라클 블록체인 네트워크(1020)가 정보소스(1010)로부터 데이터를 획득하고 검증하여 저장하는 저장 프로세스(S1030)의 수행결과를 포함할 수 있다. 제공내역(1062)은 오라클 블록체인 네트워크(1020)가 정보사용자(1050)에게 데이터 요청을 수신하고 데이터를 제공하는 제공 프로세스(S1040)의 수행결과를 포함할 수 있다.
정보소스(1010)(Information source)는 오라클 블록체인 네트워크(1020)의 외부(external)에 존재하며 데이터를 제공할 수 있는 장치를 말한다. 정보소스(1010)는 웹 서버, 클라우드 스토리지, 데이터베이스, 본 발명의 일실시예에 따른 오라클 블록체인 네트워크(1020) 이외의 외부 블록체인 네트워크(이더리움, 이오스 등), IoT 디바이스 등을 포함할 수 있다. IoT 디바이스는 공유자원에 연결되어 사용자의 접근을 허가하거나 차단할 수 있도록 잠금기능을 포함하고, 공유자원을 이용하는 사람의 존재 여부를 감지할 수 있는 게이트웨이모듈이 포함되는 복합 IoT 디바이스일 수 있다. 정보소스(1010)는 금융서비스를 중개하는 결제기관일 수도 있고, 다양한 종류의 데이터 제공자일 수도 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 정보소스(1010)에 접근하여 데이터를 수집할 수 있다.
정보사용자(1050)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)에 필요한 데이터를 요청하고 요청한 데이터를 수신하여 이용하는 주체를 말한다. 정보사용자(1050)는 오라클 블록체인 네트워크(1020)의 내부에서 동작하는 다양한 스마트 컨트랙트 계정들(Accounts), 오라클 블록체인 네트워크(1020)의 외부에 존재하는 다른 블록체인 네트워크(이더리움, 이오스 등), 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)에 접속하여 데이터를 요청하는 개인 정보사용자(1050)들의 단말장치를 포함할 수 있다.
오라클 블록체인 네트워크(1020)는 정보소스(1010)로부터 데이터를 제공받을 수 있다. 그리고, 오라클 블록체인 네트워크(1020)는 정보사용자(1050)로부터 데이터 요청을 받으면 요청받은 데이터를 정보사용자(1050)에게 제공할 수 있다. 이때, 정보소스(1010)와 정보사용자(1050)는 오라클 블록체인 네트워크(1020) 외부의 동일한 대상일 수 있다. 즉, 정보소스(1010)는 오라클 블록체인 네트워크(1020)에 데이터를 제공할 수도 있고, 정보소스(1010)는 데이터가 필요한 경우 오라클 블록체인 네트워크(1020)에 데이터를 요청하는 정보사용자(1050)가 될 수도 있다. 예를 들어, 이더리움 블록체인 네트워크는 오라클 블록체인 네트워크(1020)에 데이터를 제공하는 정보소스(1010)일 수도 있고, 이더리움 블록체인 네트워크가 필요한 정보를 오라클 블록체인 네트워크(1020)에 요청하고 오라클 블록체인 네트워크(1020)로부터 필요한 정보를 제공받는 정보사용자(1050)일 수도 있다.
분산형 데이터 스토리지(1040)는 오라클 블록체인(1060) 기반의 데이터 분산 저장 시스템이다. 분산형 데이터 스토리지(1040)는 데이터를 복수의 조각으로 분할하여 분산형 데이터 스토리지(1040)를 구성하는 노드들의 저장공간에 분산 저장하고, 데이터의 저장내역(1061)과 이용을 오라클 블록체인(1060)에 기록하는 IPFS(Interplanetary File Storage), Corda 등의 분산 저장 방식이 사용될 수 있다. 분산형 데이터 스토리지(1040)는 오라클 블록체인 네트워크(1020)로부터 수신한 데이터를 저장하고, 오라클 블록체인 네트워크(1020)로부터 요청된 데이터를 전송한다.
도 2는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이고, 도 3은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조(1100)를 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 데이터 획득단계(S1031), 정보소스(1010)의 신뢰 여부를 검증하여 데이터의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 데이터를 파싱하는 파싱단계(S1033), 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계(S1034), 및 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 저장단계(S1035)를 포함할 수 있다.
그리고, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지(1040)로부터 획득하는 로딩단계(S1041), 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계(S1042), 데이터 공급 요청에 기초하여, 요청된 데이터를 필요한 형식으로 정리하는 재구성단계(S1043), 및 요청된 데이터를 제공하고 데이터 제공내역(1062)을 상기 오라클 블록체인(1060)에 저장하는 제공단계(S1044)를 더 포함할 수 있다.
도 3에 도시된 바와 같이, 액세스 모듈(1110)은 API(1111), 파서(Parser)(1112), 악의적 오라클 노드 방지 알고리즘(1113), BFT 합의 알고리즘(1114)을 포함한다. 정보소스 검증모듈(1120)은 SSL 인증서 기반 신뢰판단모델(1121), Whois 기반 신뢰판단모델(1122), 투표 기반 신뢰판단모델(1123)을 포함한다. 데이터 관리모듈(1130)은 스케줄러(1131), 비식별화 알고리즘(1132), 암호화부(1133)를 포함한다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 저장 사용 기록 스마트 컨트랙트(1141), 오라클 블록체인 네트워크 운영부(1142)를 포함한다.
도 2 및 도 3을 참조하여, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 설명한다.
먼저, 데이터 요청 수신 단계(S1010)는 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)가 정보사용자(1050)로부터 데이터 요청을 수신하는 것이다. 데이터 요청은 정보사용자(1050)가 필요로 하는 데이터에 관한 정보를 포함하며, 정해진 정보사용자(1050)만 접근하여야 하는 데이터인지 여부를 포함할 수 있다. 데이터 요청은 액세스 모듈(1110)의 API(1111)를 통하여 수신될 수 있다. API(1111)는 Restful API 또는 SDK API를 활용할 수 있다. API(1111)는 정보소스(1010)와 연결되어 데이터를 수신하고, 정보사용자(1050)와 연결되어 데이터를 요청하고 수신할 수 있는 채널을 제공할 수 있다.
데이터 요청을 수신한 오라클 노드(1030)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하는 요청 판단단계(S1020)를 수행한다. 요청 판단단계(S1020)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 여부를 데이터 저장내역(1061)을 검색하여 판단하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 제공 프로세스(S1040)를 시작하기 위해 로딩단계(S1041)를 수행하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 저장 프로세스(S1030)를 수행하기 위해 데이터 획득단계(S1031)를 수행한다. 저장 프로세스(S1030)는 분산형 데이터 스토리지(1040)와 오라클 블록체인 네트워크(1020)에 존재하지 않는 데이터를 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 획득하는 과정이다. 제공 프로세스(S1040)는 분산형 데이터 스토리지(1040)에 존재하는 데이터를 정보사용자(1050)에게 제공하는 과정이다.
요청 판단단계(S1020)에서 오라클 노드(1030)는 오라클 블록체인(1060)에 저장된 저장내역(1061)을 검색하여 요청된 데이터와 이미 저장된 데이터의 일치 여부를 판단하여 요청된 데이터의 존재 여부를 판단할 수 있다. 저장내역(1061)은 데이터의 종류, 이름, 획득한 정보소스(1010)의 이름, 보호 부여 내용, 획득 시간, 정보소스(1010)의 신뢰도 판단 정보, 분산형 데이터 스토리지(1040)의 저장 위치 정보 등을 포함할 수 있다. 저장내역(1061)은 오라클 노드(1030)의 저장부(1033)에 저장된 오라클 블록체인(1060)에 저장되어 있으므로 요청 판단단계(S1020)는 오라클 블록체인 네트워크(1020)의 합의나 검증과정을 거치지 않고 동작할 수 있다.
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 요청된 데이터를 오라클 블록체인 네트워크(1020) 내부로 가져오기 위하여 저장 프로세스(S1030)를 수행한다. 데이터 획득단계(S1031)는 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 것이다. 정보소스(1010)의 종류에 따라 적용되는 데이터 수집방법이 달라질 수 있다. 정보소스(1010)가 외부의 블록체인 네트워크인 경우와 블록체인 네트워크가 아닌 외부 장치인 경우의 데이터 수집방법은 다를 수 있다. 예를 들어, 정보소스(1010)가 EOS 블록체인 네트워크인 경우 EOS 블록체인 네트워크는 데이터를 테이블(table) 방식으로 저장하므로 테이블을 읽는 방식으로 데이터를 수집하고, 정보소스(1010)가 이더리움 블록체인 네트워크인 경우 이더리움 블록체인 네트워크에서 제공하는 View function 을 이용하여 데이터를 수집할 수 있다. 이때, 오라클 블록체인 네트워크(1020)가 정보소스(1010)에서 데이터를 획득할 때에는 정보사용자(1050)의 요청에 따른 데이터만을 선별적으로 수집할 수 있다.
데이터 획득단계(S1031)는 데이터 요청을 수신한 오라클 노드(1030)가 API(1111)를 통해 정보소스(1010)의 데이터를 접근하는 방법으로 수행될 수 있다. 오라클 노드(1030)는 정보소스(1010)에 요청된 데이터가 존재하는지 여부를 검색하고, 해당 데이터가 존재하는 경우 데이터를 가져온다. 데이터 관리모듈(1130)의 스케줄러(1131)는 정기적으로 수집해야 하는 데이터를 수집하는 스케줄을 관리할 수 있다. 스케줄러(1131)는 정해진 시점이 되면 데이터를 수집하기 위하여 저장 프로세스(S1130)를 동작시킬 수 있다.
정보소스(1010)로부터 데이터를 가져오면 데이터의 신뢰도를 판단하기 위하여 신뢰도 판단단계(S1032)를 수행한다. 신뢰도 판단단계(S1032)에서 오라클 블록체인 네트워크(1020)는 정보소스(1010) 자체의 신뢰도를 판단함으로써, 정보소스(1010)가 제공하는 데이터의 신뢰도를 판단한다. 정보소스(1010)는 오라클 블록체인 네트워크(1020) 외부에 존재하는 현실 세계에서 수행되거나 생성되거나 결정되는 결과물을 컴퓨터 장치가 인식할 수 있는 데이터 형식으로 생성하거나 입력받아 제공하고, 월드 와이드 웹(WWW) 등의 네트워크에서 수행되거나 생성되거나 결정된 결과 데이터를 제공한다. 정보소스(1010)는 물리적인 컴퓨터 장치에 기초하여 존재하므로 물리적인 컴퓨터 장치를 이용하여 정보를 제공하는 현실의 주체에 관한 정보를 검증하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 오라클 블록체인 네트워크(1020)에 제공하는 정보소스(1010) 자신에 관한 정보들을 검증하는 과정이다. 즉, 신뢰도 판단단계(S1032)는 정보소스(1010)를 운영하는 주체가 누구인지, 정보소스(1010)를 운영하는 주체가 실존하는지, 정보소스(1010)를 운영하는 주체가 현실세계에서 신뢰할 수 있는 검증을 거쳤는지 등을 판단한다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 이미 신뢰가능한 것으로 판단된 경우 생략될 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 신뢰가능한 것으로 판단된 이후 정해진 기간이 경과하면 정보소스(1010)의 신뢰도를 다시 판단하기 위하여 수행될 수 있다.
정보소스(1010)가 신뢰가능한 것으로 판단되면, 파싱단계(S1033)를 수행한다. 파싱단계(S1033)는 정보소스(1010)에서 획득한 데이터를 파싱하는 것이다. 파싱단계(S1033)는 액세스 모듈(1110)의 파서(1112)에서 수행될 수 있다. 파서(Parser)(1112)는 정보소스(1010)로부터 획득한 데이터를 분석하여 세부 유형별로 분류할 수 있다. 파서(1112)는 정보소스(1010)에서 획득한 데이터의 유형에 따라 다양한 구문 분석 알고리즘을 적용하여 세부 데이터를 분류할 수 있다. 예를 들어, 이오스 오라클 블록체인(1060) 정보소스(1010)로부터 "A to B 1000 EOS"라는 데이터를 획득한 경우 파서(1112)는 "일련번호 = XXX1", "송금자 = A", "수신자 = B", "금액 = 1000", "단위 = EOS" 라는 방식으로 세부 데이터를 구분하고 세부 데이터의 유형을 판단할 수 있다.
데이터 파싱을 수행한 다음, 데이터 보호단계(S1034)를 수행한다. 데이터 보호단계(S1034)는 데이터의 유형에 따른 보호를 부여하는 것이다. 데이터는 개인정보가 포함되어 있어서 프라이버시를 보호해야 하거나, 데이터를 요청한 정보사용자(1050)만이 접근할 수 있도록 보호할 필요가 있다. 데이터에 부여될 수 있는 보호는 익명화, 범주화, 총계처리, 암호화 등을 포함한다.
익명화, 범주화, 총계처리는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)을 통해 수행될 수 있다. 익명화는 데이터에 포함된 사람의 성명을 인식할 수 없도록 일부나 전부를 변형하거나 제거하는 것이다. 예를 들어, "홍길동"이라는 이름을 "홍*동"으로 일부를 변형하거나, "고객 1"과 같이 전부를 변형할 수 있다. 총계처리는 특정 항목의 값이 복수개 존재하는 경우 총액을 계산하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "20회/40회/10회"인 경우 총 거래 횟수가 "70회"인 것으로 집계할 수 있다. 범주화는 특정 값이 포함되는 범위에 따라 집계하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "13회"인 경우 미리 정해진 범위인 "10~20회"로 집계할 수 있다.
암호화는 정해진 정보사용자(1050)만이 데이터를 열람할 수 있도록 암호화하는 것이다. 암호화는 데이터 관리모듈(1130)의 암호화부(1133)에서 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 수신하는 단계, 정보사용자(1050)의 공개키를 이용하여 데이터를 암호화하는 단계로 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 이용하여 대칭키를 암호화하고 대칭키를 이용하여 데이터를 암호화한 다음 암호화된 대칭키와 데이터를 함께 저장하거나 제공하는 방식으로 수행될 수도 있다. 개인정보 보호가 불필요하거나 공개되어도 무방한 데이터인 경우 데이터 보호단계(S1034)에서 보호를 부여하지 않을 수 있다.
보호단계를 수행한 데이터는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들에 공유되어 합의를 거친다.
데이터 보호단계(S1034)를 수행한 다음 저장단계(S1035)를 수행할 수 있다. 저장단계(S1035)는 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 것이다. 데이터 저장단계(S1035)에서, 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작은 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 데이터 저장 사용 기록 스마트 컨트랙트(1141)는 데이터를 분산형 데이터 스토리지(1040)에 저장하는 동작과 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작을 수행할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)이 데이터를 분산형 데이터 스토리지(1040)에 제공하는 동작을 수행하면, 분산형 데이터 스토리지(1040)는 수신한 데이터를 저장할 수 있다.
오라클 스마트 컨트랙트 모듈(1140)은 저장내역(1061) 및 제공내역(1062)을 기록하여 관리할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 관리를 위하여 내부에 테이블을 정의하여 모든 저장내역(1061) 및 제공내역(1062)을 기록하여 관리하고, 데이터 저장 및 제공 내역을 업데이트할 수 있다. 저장내역(1061) 및 제공내역(1062)은 BFT 등의 합의 알고리즘에 따라 오라클 블록체인 네트워크(1020)에 참여한 적어도 일부의 오라클 노드(1030)들에 공유되고 검증되어 합의에 따라 오라클 블록(1060a)의 저장공간에 저장될 수 있다.
데이터는 다양한 크기를 가질 수 있다. 오라클 블록(1060a)의 저장공간에 모든 데이터를 저장하기 어려우므로 데이터는 분산형 데이터 스토리지(1040)에 저장될 수 있다. 분산형 데이터 스토리지(1040)는 블록체인 기반으로 파일의 저장을 관리하여 파일의 무결성을 보장할 수 있다. 분산형 데이터 스토리지(1040)는 API(1111) 를 통하여 오라클 블록체인 네트워크(1020)로부터 데이터 저장 요청을 받고, 데이터에 알맞는 카테고리를 선택한 후 인덱싱을 거치고, 이 내용을 분산형 데이터 스토리지(1040) 자체의 블록체인 네트워크를 구성하는 노드들의 일부에 공유한 뒤 공유받은 노드의 저장매체에 기록한다.
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 또는 저장단계(S1035)를 수행한 경우, 요청된 데이터에 해당하는 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행하기 위하여 로딩단계(S1041)를 수행한다. 로딩단계(S1041)는 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 분산형 데이터 스토리지(1040)로부터 획득하는 것이다. 저장내역(1061)은 분산형 데이터 스토리지(1040)에서 데이터가 저장된 위치에 관련된 정보를 포함하고 있으므로, 저장내역(1061)에 기초하여 요청된 데이터를 획득할 수 있다.
로딩단계(S1041)에서 요청된 데이터를 획득하면, 보호 변경단계(S1042)를 수행한다. 보호 변경단계(S1042)는 요청된 데이터에 부여된 보호를 제거 또는 변경하는 것이다. 보호 변경단계(S1042)는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)이나 암호화부(1133)를 이용하여 수행될 수 있다. 데이터에 비식별화 또는 암호화 보호가 부여되어 있는 경우 데이터 요청에 따라 보호를 제거하거나 변경하여 정보사용자(1050)가 데이터를 이용할 수 있도록 제공할 수 있다. 예를 들어, 정보사용자(1050)의 공개키를 이용하여 암호화된 경우 정보사용자(1050)의 개인키를 수신하여 데이터를 복호화할 수 있다. 보호 변경단계(S1042)는 데이터의 특성과 데이터 요청 내용에 따라 보호의 제거 또는 변경 여부를 결정할 수 있다.
보호 변경단계(S1042)에서 보호를 제거하거나 변경하면, 재구성단계(S1043)를 수행한다. 재구성 단계는 분산형 데이터 스토리지(1040)에 파싱되어 저장된 데이터를 데이터 요청에 기초한 데이터 형식으로 재구성하는 과정이다. 재구성 단계는 액세스모듈의 파서(1112)에서 수행될 수 있다. 정보사용자(1050)가 다른 오라클 블록체인 네트워크(1020)인 경우, 분산형 데이터 스토리지(1040)에 저장된 거래내역을 다른 오라클 블록체인 네트워크(1020)에서 사용할 수 있는 데이터 형식으로 가공할 수 있다. 예를 들어, 분산형 데이터 스토리지(1040)에 저장된 거래내역이 "송금자 = A, 수신자 = B, 금액 = 1000, 단위 = EOS" 일 때, 데이터 요청에 따라 "A->B/1000/EOS" 와 같은 연속된 하나의 데이터로 재구성할 수 있다.
재구성 단계를 수행하면, 재구성된 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)를 수행한다. 제공단계(S1044)는 요청된 데이터를 제공하고 데이터 제공내역(1062)을 오라클 블록체인(1060)에 저장하는 것이다. 제공단계(S1044)는 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 분산형 데이터 스토리지(1040)로부터 데이터를 찾아서 읽어들이고 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행한 결과 중요한 데이터는 오라클 블록(1060a)의 저장공간에 제공내역(1062)으로 저장된다. 제공내역(1062)은 데이터 요청의 내용, 요청된 데이터의 종류, 이름, 형식, 정보사용자(1050)의 정보, 보호 제거 또는 변경 내용 등을 포함할 수 있다.
상술한 바와 같이, 데이터 요청을 수신하고 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하고, 저장 프로세스(S1030)와 제공 프로세스(S1040)를 수행하여, 오라클 블록체인(1060) 외부에 존재하는 데이터를 인식하고 다른 오라클 블록체인 네트워크(1020)에 제공할 수 있다. 이러한 과정을 수행함에 따라, 본 발명의 일실시예는 블록체인과 블록체인을 서로 연결할 수 있는 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 블록체인들 사이에서 교환되는 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다.
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행함에 있어서, 데이터의 접근 권한에 따라 세부적인 수행단계의 차이가 존재한다. 일반에 공개되는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터의 비식별화를 수행하고 암호화를 수행하지 않는다. 즉, 데이터를 사용할 수 있도록 암호화는 하지 않지만, 데이터에 존재하는 개인정보 등을 보호하기 위한 비식별화를 수행하는 것이다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 비식별화 이후에 암호화를 수행한다. 암호화는 공개키/개인키 암호화 방식을 이용하여, 특정 정보사용자(1050)의 공개키로 데이터를 암호화할 수 있다. 또는 암호화는 특정 오라클 노드(1030)의 공개키로 암호화되어 분산형 데이터 스토리지(1040)에 저장될 수 있다.
일반에 공개되는 데이터인 경우, 암호화되어 있지 않으므로 제공 프로세스(S1040)의 보호 변경단계(S1042)를 생략할 수 있다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 보호 변경단계(S1042)에서 특정 오라클 노드(1030)의 개인키로 복호화하여 데이터의 암호화를 해제할 수 있다. 또는, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터를 특정 정보사용자(1050)의 공개키로 암호화하는 경우, 정보사용자(1050)가 자신의 개인키로 복호화하여 데이터를 인식할 수 있으므로 보호 변경단계(S1042)에서 복호화가 수행되지 않을 수 있다.
도 4는 본 발명의 일실시예에 따른 정보소스(1010)의 신뢰도 판단단계(S1032)를 나타내는 도면이다.
도 4에 도시된 바와 같이, 신뢰도 판단단계(S1032)는 정보소스(1010)가 제공하는 SSL 인증서를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제1 판단단계, 정보소스(1010)의 도메인에 기초하여 Whois 서비스를 통해 획득한 정보소스(1010)의 도메인 등록 정보를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제2 판단단계, 및 정보소스(1010)의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드(1030) 투표를 진행하고 오라클 노드(1030) 투표에 기초하여 정보소스(1010)의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는 과정이다. 신뢰도 판단단계(S1032)는 제1 내지 제3 판단단계를 모두 수행할 수도 있다.
제1 판단단계는 HTTPS 환경에서 제공되는 SSL 인증서를 이용하여 정보소스(1010)가 신뢰할 수 있는 주체에 의해 운영되는지 판단할 수 있다. SSL 인증서에 기초하여 정보소스(1010)가 운영되는 주소, 도메인, 등의 정보를 인식할 수 있고, SSL 인증서는 인증기관(CA, Certificate Authority)로부터 인증받은 것이므로 정보소스(1010)의 운영주체의 실재를 인정할 수 있고, 인증기관을 신뢰함에 따라 정보소스(1010)를 신뢰할 수 있다.
제2 판단단계는 정보소스(1010)의 도메인 등록 정보를 이용하여 신뢰도를 판단한다. 도메인 등록 정보는 도메인 네임, 등록자 주소, 등록자 이메일, IP 주소 등의 정보를 포함하며, 도메인 등록 정보를 제공하는 Whois 검색 서비스를 이용하여 획득될 수 있다. 제2 판단단계에서 SSL 인증서와 도메인 등록 정보가 동일하거나 관련있는지, 접속 IP와 도메인 등록 정보의 IP가 동일하거나 유사한지, 도메인 국적과 IP 국적이 동일한지 등을 확인하여 정보소스(1010)의 신뢰여부를 판단할 수 있다.
제3 판단단계는 오라클 블록체인 네트워크(1020)에 참여한 오라클 노드(1030)들이 투표를 진행하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 투표는 위임된 지분 증명(DPoS) 방식으로 진행될 수 있다. 제3 판단단계가 수행되는 경우 오라클 노드(1030)들은 정보소스(1010)의 신뢰도를 판단하는 투표를 진행할 의원 오라클 노드(1030)를 선출한다. 의원 오라클 노드(1030)는 11개, 21개, 99개 등의 홀수개로 선정될 수 있다. 선출된 의원 오라클 노드(1030)들에게 정보소스(1010)의 SSL 인증서 정보와 도메인 등록 정보와 요청된 데이터에 관련된 정보가 공유되면, 의원 오라클 노드(1030)들은 해당 정보소스(1010)가 신뢰할 수 있는지 여부에 관한 투표를 진행하여 기준값 이상의 찬성을 받는 경우 정보소스(1010)를 신뢰한다.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 신뢰도 판단단계(S1032)는, 신뢰도 판단단계(S1032)를 수행한 결과 신뢰할 수 없는 정보소스(1010)로 판단되는 경우 소스-블랙리스트에 신뢰할 수 없는 정보소스(1010)를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다. 제1 내지 제3 판단단계 중에서 어느 하나의 단계를 통과하지 못하는 경우 해당 정보소스(1010)는 신뢰할 수 없으며, 신뢰할 수 없는 정보소스(1010)는 소스-블랙리스트에 추가된다. 소스-블랙리스트에 추가된 정보소스(1010)로부터 획득하는 데이터는 신뢰할 수 없으므로 다른 정보소스(1010)에서 데이터를 수집하도록 한다. 소스-블랙리스트에 등록된 정보소스(1010)는 정해진 기간이 경과하면 삭제될 수 있다. 이미 신뢰도 판단단계(S1032)를 통과하여 신뢰할 수 있는 정보소스(1010)로 인정된 경우 정해진 기간동안 신뢰도 판단단계(S1032)를 수행하지 않고 해당 정보소스(1010)에서 획득한 데이터를 신뢰할 수 있다.
도 5는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다.
오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 추가되거나 이탈될 수 있다. 새로운 노드가 오라클 블록체인 네트워크(1020)에 합류하려는 경우 노드를 신뢰할 수 있는지 판단할 필요가 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 신규 노드가 오라클 블록체인 네트워크(1020)에 합류를 요청하는 경우 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 합류를 요청하는 신규 노드의 신뢰도를 판단하여 합류를 허가하거나 차단하는 과정이다.
오라클 노드 신뢰도 판단단계(S1101~S1106)는 오라클 블록체인 네트워크(1020)에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우(S1101의 Y) 정해진 기간동안 신규 노드의 합류를 중지하고(S1105), 신규 노드에 이미 생성된 오라클 블록(1060a)이 존재하는 경우(S1102의 Y) 신뢰할 수 없는 노드로 판단하여 합류를 차단하고(S1105) 노드-블랙리스트에 추가하며(S1106), 신규 노드가 노드-블랙리스트에 포함된 경우(S1103의 Y) 합류를 차단(S1105)할 수 있다.
악의적인 오라클 노드(1030)가 전체 네트워크 서버 과반수 이상이나 66% 이상을 차지하게 하여 데이터를 왜곡하거나 위변조하는 일명 과반수 공격을 시도하는 경우 신규 노드 숫자가 급격히 증가하게 된다. 과반수 이상의 오라클 노드(1030) 개수를 차지하는 경우 공격자는 오라클 블록체인(1060)을 바꿔치기하여 이득을 얻을 수 있다. 이런 공격을 하려면, 신규 노드가 오라클 블록체인 네트워크(1020)에 합류하기 전에 현재 메인 오라클 블록체인(1060)보다 더 긴 체인을 미리 만들어놓아야 한다. 따라서, 신규 노드가 합류하려는 시점에 미리 만들어놓은 오라클 블록체인(1060)이 있다면, 해킹 시도로 간주하고 접속을 차단해야 한다(S1102). 이러한 과반수 공격을 막기 위하여 오라클 블록체인 네트워크(1020)는 신규 노드 증가 속도를 제어할 수 있고(S1101), 미리 생성된 오라클 블록체인(1060)이 존재하는 신규 노드를 악의적 오라클 노드(1030)로 판단(S1102)하여 합류를 차단할 수 있다.
오라클 노드(1030) 개수의 급격한 증가 또는 선-저장 오라클 블록체인(1060)이 존재하는 공격을 행했거나, Antminer와 같이 옛날에 공격했던 전력이 있는 기관은 노드-블랙리스트에 추가될 수 있다. 또한 노드-블랙리스트에 추가된 기관은 관련 IP나 Domain을 차단할 수 있다.
신규 노드의 수가 갑자기 증가하는 것은 일반적이지 않은 현상이며, 기존에 오라클 블록체인 네트워크(1020)를 구성하고 있는 오라클 노드(1030)들의 수에 비하여 신규 노드가 급격히 증가하는 것은 악의적 오라클 노드(1030)가 합류할 가능성이 높아지는 것이므로, 정해진 기간동안 신규 노드의 합류를 중지할 수 있다(S1105). 신규 노드의 저장부(1033)에 오라클 블록(1060a)이 존재하는지 점검하고(S1102), 이미 생성되어 저장부(1033)에 저장되어 있는 오라클 블록(1060a)이 존재하는 경우 오라클 블록체인(1060)의 건전성을 훼손할 가능성이 있으므로 악의적 오라클 노드(1030)로 판단하여 합류를 차단할 수 있다. 악의적 오라클 노드(1030)로 판단되는 경우 노드-블랙리스트에 추가(S1106)하여 동일한 신규 노드가 계속하여 합류 요청을 수행하는 것을 차단할 수 있다. 이미 노드-블랙리스트에 포함되어 있는 신규 노드가 합류 요청을 하는 경우 악의적 노드의 합류를 곧바로 차단할 수 있다.
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)로 구성될 수 있다. 오라클 노드(1030)는 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브(1032a)를 포함하며, 인클레이브(1032a) 내에서 오라클 노드 신뢰도 판단단계(S1101~S1106) 및 오라클 블록생성 합의과정이 수행될 수 있다. 오라클 노드(1030)의 제어부(1032)는 인클레이브(1032a)를 포함할 수 있다. 인클레이브(1032a)는 제어부(1032)에서 물리적/소프트웨어적으로 분리되어 외부의 접근이 불가능한 정보처리공간이다. 인클레이브(1032a)에서는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 전부 또는 일부가 수행될 수 있다. 인클레이브(1032a)에서 동작한 프로그램 코드는 위조되거나 변조되지 않은 것으로 신뢰할 수 있고, 오라클 노드(1030)들 사이의 합의, 트랜잭션의 검증 등이 인클레이브(1032a)에서 수행될 수 있다.
본 발명의 일실시예에 따른 단계들 중에서, 정보소스(1010)의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 신규 노드의 합류여부를 결정하는 오라클 노드 신뢰도 판단단계(S1101~S1106), 데이터를 분산형 데이터 스토리지(1040)에 저장하는 저장단계(S1035) 및 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의를 거쳐 수행될 수 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의는 오라클 블록체인 네트워크(1020) 운영부(1142)가 포함하는 프로그램 코드에 기초하여 수행될 수 있다.
오라클 블록체인 네트워크(1020)는 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance) 알고리즘에 기반한 합의 또는 투표를 수행할 수 있다. 오라클 블록체인 네트워크(1020)는 분산된 지분 증명(DPoS) 방식의 합의 또는 투표를 수행할 수 있다. 신뢰도 판단단계(S1032)가 시작되면, 오라클 노드(1030)들은 투표를 진행할 의원 오라클 노드(1030)를 선출한다(S1201). 데이터를 획득한 정보소스(1010)에 접근할 수 있는 정보(IP주소 등)가 의원 오라클 노드(1030)들 사이에 공유되면(S1202), 의원 오라클 노드(1030)들은 정보소스(1010)에 개별적으로 접근하여 제1 또는 제2 판단단계를 수행하고, 그 결과를 공유한다. 정보소스(1010)에 접근할 수 있는 정보가 의원 오라클 노드(1030)에 모두 공유되지 않으면 공유될 때까지 대기할 수 있다(S1205). 제1 또는 제2 판단단계를 수행한 결과 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 정보소스(1010)를 신뢰할 수 있는 것으로 판단할 수 있다(S1204). 또는, 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우(S1203), 합의 또는 투표는 실패한 것이며 정보소스(1010)를 신뢰할 수 없다고 판단하고 소스-블랙리스트에 기록할 수 있다(S1206). 합의가 실패하는 경우 공유된 데이터는 버려질 수 있다(S1206).
동일한 방법으로, 오라클 노드 신뢰도 판단단계(S1101~S1106)가 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)가 시작되면 오라클 노드(1030)들은 의원 오라클 노드(1030)를 선출하고(S1201), 의원 오라클 노드(1030)는 시간당 오라클 노드(1030) 합류 요청의 수, 신규 노드에 미리 생성된 오라클 블록(1060a)이 있는지, 노드-블랙리스트에 등록된 악의적 노드인지 판단하고 그 결과를 공유하여(S1202), 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 신규 노드를 합류처리할 수 있다(S1204). 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우 합의 또는 투표가 실패한 것으로 판단하여(S1206) 신규 노드의 합류를 차단하고 신규 노드를 노드-블랙리스트에 등록할 수 있다. 소스-블랙리스트와 노드-블랙리스트는 공유될 수 있다.
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행한 결과물은 저장내역(1061) 및 제공내역(1062)으로서 오라클 블록(1060a)에 저장되기 위하여 오라클 노드(1030)들에게 공유되고 검증된다. 오라클 노드(1030)들은 정해진 시간마다 저장내역(1061)이나 제공내역(1062)들을 포함하는 오라클 블록(1060a)을 생성하기 위한 검증 및 합의를 위임된 지분 증명(DPoS)방식으로 수행할 수 있다.
상술한 바와 같이 본 발명의 일실시예에 따르면, 오라클 블록체인(1060)의 외부에 존재하는 데이터를 오라클 블록체인(1060)의 내부로 들여오고 오라클 블록체인(1060)의 내부에 저장된 데이터를 오라클 블록체인(1060)의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다.
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자(1050)의 프라이버시를 보장할 수 있다.
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크(1020)에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다.
이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당해 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함은 명백하다고 할 것이다.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.
1010: 정보소스
1020: 오라클 블록체인 네트워크
1030: 오라클 노드
1031: 통신부
1032: 제어부
1032a: 인클레이브
1033: 저장부
1040: 분산형 데이터 스토리지
1050: 정보사용자
1060: 오라클 블록체인
1060a: 오라클 블록
1061: 저장내역
1062: 제공내역
1100: 프레임워크 구조
1110: 액세스 모듈
1111: API
1112: 파서
1113: 악의적 오라클 노드 방지 알고리즘
1114: BFT 합의 알고리즘
1120: 정보소스 검증모듈
1121: SSL 인증서 기반 신뢰판단모델
1122: Whois 기반 신뢰판단모델
1123: 투표 기반 신뢰판단모델
1130: 데이터 관리모듈
1131: 스케줄러
1132: 비식별화 알고리즘
1133: 암호화부
1140: 오라클 스마트 컨트랙트 모듈
1141: 데이터 저장 사용 기록 스마트 컨트랙트
1142: 오라클 블록체인 네트워크 운영부

Claims (8)

  1. 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계;
    상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계;
    상기 데이터를 파싱하는 파싱단계;
    상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계; 및
    상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  2. 청구항 1에 있어서,
    상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계;
    상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계;
    상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계; 및
    상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  3. 청구항 2에 있어서,
    상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 로딩단계를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 데이터 획득단계를 수행하는 요청판단 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  4. 청구항 1에 있어서,
    상기 신뢰도 판단단계는
    상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계,
    상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및
    상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  5. 청구항 1에 있어서,
    상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  6. 청구항 1에 있어서,
    상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  7. 청구항 1에 있어서,
    상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며,
    상기 오라클 노드는
    상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행되는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
  8. 청구항 1에 있어서,
    상기 데이터 보호단계는
    상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것인, 블록체인 응용 외부 정보 인식 및 정보 제공방법.
KR1020190143555A 2019-11-11 2019-11-11 블록체인 응용 외부 정보 인식 및 정보 제공방법 KR102337836B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190143555A KR102337836B1 (ko) 2019-11-11 2019-11-11 블록체인 응용 외부 정보 인식 및 정보 제공방법
PCT/KR2019/015544 WO2021095926A1 (ko) 2019-11-11 2019-11-14 복합 iot 디바이스 및 이를 이용한 공유서비스 제공방법, 및 블록체인 응용 외부 정보 인식 및 정보 제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190143555A KR102337836B1 (ko) 2019-11-11 2019-11-11 블록체인 응용 외부 정보 인식 및 정보 제공방법

Publications (2)

Publication Number Publication Date
KR20210056744A true KR20210056744A (ko) 2021-05-20
KR102337836B1 KR102337836B1 (ko) 2021-12-10

Family

ID=76143160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190143555A KR102337836B1 (ko) 2019-11-11 2019-11-11 블록체인 응용 외부 정보 인식 및 정보 제공방법

Country Status (1)

Country Link
KR (1) KR102337836B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102391187B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 피드백 정보 블록체인 기록 방법 및 시스템
KR102391185B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 블록체인 외부 입력 검증 방법 및 시스템
CN116842559A (zh) * 2023-06-07 2023-10-03 陕西手一网络科技有限公司 一种基于区块链的数据加密存储模型及数据加密存储方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180130061A1 (en) * 2015-11-11 2018-05-10 Idm Global, Inc. Systems and methods for detecting relations between unknown merchants and merchants with a known connection to fraud
KR20180102269A (ko) 2017-03-07 2018-09-17 서강대학교산학협력단 블록체인 기반 외부 서비스 지원 시스템 및 그 방법
WO2019116248A1 (en) * 2017-12-15 2019-06-20 nChain Holdings Limited System and method for authenticating off-chain data based on proof verification
KR20190094188A (ko) * 2017-03-28 2019-08-12 알리바바 그룹 홀딩 리미티드 블록체인 기반 데이터 저장 및 쿼리 방법 및 디바이스
KR102041911B1 (ko) * 2019-07-30 2019-11-27 주식회사 바스랩 블록체인을 이용한 데이터 분할 및 분산저장 방법
KR20190134432A (ko) * 2018-05-24 2019-12-04 주식회사 한컴위드 스마트 계약 시스템 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180130061A1 (en) * 2015-11-11 2018-05-10 Idm Global, Inc. Systems and methods for detecting relations between unknown merchants and merchants with a known connection to fraud
KR20180102269A (ko) 2017-03-07 2018-09-17 서강대학교산학협력단 블록체인 기반 외부 서비스 지원 시스템 및 그 방법
KR20190094188A (ko) * 2017-03-28 2019-08-12 알리바바 그룹 홀딩 리미티드 블록체인 기반 데이터 저장 및 쿼리 방법 및 디바이스
WO2019116248A1 (en) * 2017-12-15 2019-06-20 nChain Holdings Limited System and method for authenticating off-chain data based on proof verification
KR20190134432A (ko) * 2018-05-24 2019-12-04 주식회사 한컴위드 스마트 계약 시스템 및 방법
KR102041911B1 (ko) * 2019-07-30 2019-11-27 주식회사 바스랩 블록체인을 이용한 데이터 분할 및 분산저장 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102391187B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 피드백 정보 블록체인 기록 방법 및 시스템
KR102391185B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 블록체인 외부 입력 검증 방법 및 시스템
CN116842559A (zh) * 2023-06-07 2023-10-03 陕西手一网络科技有限公司 一种基于区块链的数据加密存储模型及数据加密存储方法

Also Published As

Publication number Publication date
KR102337836B1 (ko) 2021-12-10

Similar Documents

Publication Publication Date Title
Poongodi et al. Building an authentic and ethical keyword search by applying decentralised (Blockchain) verification
CN109450910B (zh) 基于区块链的数据共享方法、数据共享网络及电子设备
CN109525671B (zh) 基于区块链的数据存储方法、电子设备及存储介质
van Beek et al. Digital forensics as a service: Game on
EP3547202A1 (fr) Méthode et système d'accès à des données anonymisées
Razaque et al. Privacy preserving model: a new scheme for auditing cloud stakeholders
Moussa et al. CFaaS: bilaterally agreed evidence collection
US8713688B2 (en) Automated security analysis for federated relationship
CN110753944B (zh) 用于基于区块链的数据管理的系统和方法
Vithanwattana et al. Developing a comprehensive information security framework for mHealth: a detailed analysis
KR102337836B1 (ko) 블록체인 응용 외부 정보 인식 및 정보 제공방법
Kahvazadeh et al. Securing combined fog-to-cloud system through SDN approach
Ali et al. BCALS: Blockchain‐based secure log management system for cloud computing
US20220405765A1 (en) Know your customer (kyc) and anti-money laundering (aml) verification in a multi-decentralized private blockchains network
Gupta et al. An approach towards big data—A review
US11809592B2 (en) Data processing apparatus and methods
CN116415217A (zh) 基于零信任架构的即时授权系统
Barbaria et al. A novel blockchain-based architectural modal for healthcare data integrity: Covid19 screening laboratory use-case
CN111143381B (zh) 用于更新多层块链式结构中的信任点的方法及装置
US9143517B2 (en) Threat exchange information protection
Shahin et al. Big data platform privacy and security, a review
Al-Otaibi A shared two-way cybersecurity model for enhancing cloud service sharing for distributed user applications
Chang et al. Information security modeling for the operation of a novel highly trusted network in a virtualization environment
Jacobino et al. TrustVault: A privacy-first data wallet for the European Blockchain Services Infrastructure
Tharani et al. A blockchain-based database management system

Legal Events

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