WO2019112193A1 - 블록 체인 시스템 아키텍쳐 및 방법 - Google Patents

블록 체인 시스템 아키텍쳐 및 방법 Download PDF

Info

Publication number
WO2019112193A1
WO2019112193A1 PCT/KR2018/013566 KR2018013566W WO2019112193A1 WO 2019112193 A1 WO2019112193 A1 WO 2019112193A1 KR 2018013566 W KR2018013566 W KR 2018013566W WO 2019112193 A1 WO2019112193 A1 WO 2019112193A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
node
block chain
user terminal
data
Prior art date
Application number
PCT/KR2018/013566
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020170168697A external-priority patent/KR101968424B1/ko
Priority claimed from KR1020170168696A external-priority patent/KR102030905B1/ko
Priority claimed from KR1020180004662A external-priority patent/KR102181098B1/ko
Priority claimed from KR1020180004655A external-priority patent/KR102050154B1/ko
Application filed by 인제대학교 산학협력단 filed Critical 인제대학교 산학협력단
Publication of WO2019112193A1 publication Critical patent/WO2019112193A1/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/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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 적어도 하나의 사용자 단말이 연결된 노드를 포함하는 블록 체인 시스템에 관한 것으로, 상기 노드는 적어도 하나 이상의 다른 노드와 블록 체인 네트워크를 형성하고, 상기 사용자 단말의 거래(TRANSACTION) 데이터를 저장하고, 상기 블록 체인 네트워크에 포함된 다른 노드와 상기 거래(TRANSACTION) 데이터의 동기화를 수행할 수 있다.

Description

블록 체인 시스템 아키텍쳐 및 방법
본 발명은 블록 체인 시스템의 구조 및 방법에 관한 것으로서, 보다 구체적으로는 블록 체인 기술을 이용하여 사용자 단말들 간의 거래를 수행하기 위한 블록 체인 시스템의 구조 및 방법에 관한 것이다.
블록 체인(Block chain)은 공공 거래 장부라고도 부르며 가상 화폐로 거래할 때 발생할 수 있는 해킹을 막는 기술이다. 기존 금융 회사의 경우 중앙 집중형 서버에 거래 기록을 보관하는 반면, 블록 체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다. 블록 체인은 대표적인 온라인 가상 화폐인 비트코인에 적용되어 있다. 비트코인은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하며, 비트코인을 사용하는 여러 컴퓨터가 10분에 한 번씩 이 기록을 검증하여 해킹을 막는다.
비트코인은 시스템을 통제하는 서버가 없이 P2P(pear to pear) 방식으로 완전히 분산화된 형태로 작동하게 설계되었다. 또한, 화폐를 사용할 수 있는 사용자를 따로 등록하는 기관을 두지 않고 누구나 시스템을 사용할 수 있게 했다. 등록하는 서버가 없으므로, 각각의 사용자는 공개키를 일종의 일회용 계좌번호처럼 사용한다. 예컨대, A라는 사용자가 특정 메시지에 자신만이 알고 있는 개인키로 서명하면, 제삼자는 공개키를 이용해 그 서명이 이 공개키의 짝에 해당하는 비밀키로 서명한 것인지(다시 말해 A라는 사용자가 작성한 것이 맞는지) 인증할 수 있다.
최근, 블록 체인의 보안 기술에 대한 관심이 높아지면서, 가상 화폐뿐만 아니라 금융 거래, 의료 데이터 관리, 파일 관리 등 다양한 분야에 블록 체인 기술이 적용되고 있다.
블록 체인 방식은 모든 노드가 같은 정보를 공유하여서 악의적 노드가 임의로 내용을 수정하기 위해서는 모든 노드가 가지고 있는 블록체인의 내용을 수정해야 하므로 임의적 수정이 사실상 불가능하기 때문에 보안성이 뛰어나다는 장점이 있다.
그러나, 상기 블록 체인 방식은 사용자 단말에서 모든 데이터를 공유하고 있기 때문에 50% 이상의 사용자가 담합을 하여 조작을 할 경우 모든 사용자 단말에서 조작된 데이터를 인식하는 문제가 발생할 수 있다.
본 발명의 일실시예에 따르면, 기존의 네트워크 장비를 이용해서 블록 체인 네트워크를 형성하고, 사용자 단말의 연산 능력과 저장 공간을 효율적으로 활용하기 위함이다.
본 발명의 다른 일실시예에 따르면, 블록 체인 시스템을 이용해서 분산 데이터베이스를 형성하여, 과도한 트래픽을 방지하면서 안전하게 데이터베이스를 활용하기 위함이다.
본 발명의 다른 일실시예에 따르면, 사용자 단말들 간에 블록 체인을 형성하는 것이 아니라, 네트워크 장치들, 예컨대, 블록 체인 컨트롤러들간에 불록 체인을 형성하고, 사용자 단말에서 상기 블록 체인 컨트롤러를 통해 유효성을 검증함으로써 중간자 공격(man in the middle attack; MITM) 등을 방지할 수 있는 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법을 제공하기 위함이다.
상기와 같은 목적을 달성하기 위한 블록 체인 시스템에 있어서, 적어도 하나의 사용자 단말이 연결된 노드를 포함하고, 상기 노드는 적어도 하나 이상의 다른 노드와 블록 체인 네트워크를 형성하고, 상기 사용자 단말의 거래(TRANSACTION) 데이터를 저장하고, 상기 블록 체인 네트워크에 포함된 다른 노드와 상기 거래(TRANSACTION) 데이터의 동기화를 수행할 수 있다.
일 실시예에 따르면, 상기 노드는, 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
여기서, 상기 노드는, 검색 프로토콜(Discovery Protocol)을 이용해서 상기 블록 체인 네트워크에 포함된 다른 노드 및 다른 사용자 단말을 검색할 수 있다.
또한, 상기 노드는, 상기 사용자 단말의 인증 또는 검증 과정을 수행하고, 상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION) 경로를 셋업할 수 있다.
다른 일 실시예에 따르면, 상기 노드는, 상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행할 수 있다.
적어도 하나의 사용자 단말이 연결된 노드가 수행하는 블록 체인 거래(TRANSACTION) 방법은 상기 사용자 단말로부터 다른 사용자 단말과의 연결 요청을 수신하는 단계, 상기 사용자 단말과 상기 다른 사용자 단말 간의 거래(TRANSACTION) 경로를 셋업하는 단계, 상기 사용자 단말과 상기 다른 사용자 단말 간의 거래(TRANSACTION)와 관련된 데이터를 저장하는 단계 및 상기 노드와 블록 체인 네트워크를 형성하는 다른 노드와 상기 거래(TRANSACTION) 데이터를 동기화하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 노드는, 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
일 실시예에 따르면, 상기 블록 체인 거래 방법은, 검색 프로토콜(Discovery Protocol)을 이용해서 상기 블록 체인 네트워크에 포함된 다른 노드 및 다른 사용자 단말을 검색하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 상기 블록 체인 거래 방법은, 상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행하는 단계를 더 포함할 수 있다.
다른 일실시예에 따르면, 유선 및 무선 통신망 중 적어도 하나에 복수의 단위 노드가 연결되고, 상기 단위 노드 내에서 데이터의 무결성을 상기 복수의 노드들 간에서 상호 인증 확인하는 블록 체인 시스템에 있어서, 상기 복수의 단위 노드는 중앙 데이터베이스에 연결되고, 상기 단위 노드는, 상기 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 네트워크 상황을 고려하여 업데이트된 데이터를 다른 단위 노드 및 상기 중앙 데이터베이스에 전송하여 데이터를 동기화할 수 있다.
일 실시예에 따르면, 상기 단위 노드는, 상기 업데이트된 데이터 중 블록 헤더만 상기 다른 단위 노드에 전송하여 동기화하고, 상기 중앙 데이터베이스에 전체 데이터를 백업하여 동기화할 수 있다.
일 실시예에 따르면, 상기 데이터는 만료 시한을 포함하고, 상기 단위 노드는 만료 시한이 도래한 데이터는 삭제할 수 있다.
일 실시예에 따르면, 상기 단위 노드는, 필요한 데이터가 발생하면, 원본을 소유하고 있는 단위 노드에 상기 필요한 데이터를 요청하고, 상기 원본을 소유하고 있는 단위 노드가 불능상태인 경우에, 상기 중앙 데이터베이스에 상기 필요한 데이터를 요청할 수 있다.
일 실시예에 따르면, 상기 단위 노드는, 필요한 데이터만 선택적으로 동기화 과정을 수행할 수 있다.
일 실시예에 따르면, 상기 단위 노드는, 이전 블록 및 다음 블록을 포함하는 인접 블록을 선정하여 동기화 과정을 수행할 수 있다.
일 실시예에 따르면, 상기 데이터베이스는, 상기 복수의 노드와 블록을 송신 및 수신할 때 데이터의 유효성을 판단할 수 있다.
적어도 하나의 중앙 데이터베이스에 연결된 단위 노드가 수행하는 블록 체인 운영 방법은 사용자 단말로부터 데이터를 업데이트하는 단계, 다른 단위 노드로부터 승인 절차를 밟는 단계, 블록 헤더를 포함하는 간략 데이터를 다른 단위 노드와 동기화하는 단계 및 네트워크 상황을 고려하여 상기 중앙 데이터베이스에 상기 업데이트된 장부를 백업하는 단계를 포함할 수 있다.
상기와 같은 목적을 달성하기 위한 블록 체인 컨트롤러를 이용한 인증 시스템에 있어서, 서로 간에 P2P(peer to peer) 방식에 의해 블록 체인 네트워크를 형성하고, 복수의 사용자 단말들에 대한 적어도 하나의 정보를 블록 체인 형태로 공유하는 복수의 블록 체인 컨트롤러들; 제1 사용자 단말; 및 제2 사용자 단말;을 포함하고, 상기 블록 체인 컨트롤러는, 상기 제1 사용자 단말로부터 상기 제2 사용자 단말에 대한 인증 요청 메시지을 수신하면, 상기 블록 체인 네트워크를 통해 상기 제2 사용자 단말에 대한 인증을 수행하고, 상기 인증 결과를 상기 제1 사용자 단말로 전송한다.
바람직하게는, 상기 인증 요청 메시지는, 상기 제2 사용자 단말에 대한 공개키를 포함한다.
바람직하게는, 상기 블록 체인 컨트롤러는, 상기 복수의 사용자 단말들에 대한 인증을 위한 공개키를 블록 체인 형태로 공유한다.
바람직하게는, 상기 제1 사용자 단말은, 자신의 공개키를 상기 제2 사용자 단말로 전송하여 인증을 요청하고, 상기 제2 사용자 단말은, 상기 제1 사용자 단말로부터 수신된 제1 사용자 단말의 공개키를 상기 블록 체인 컨트롤러로 전송하여 인증을 수행한다.
바람직하게는, 상기 제1 사용자 단말은, 상기 복수의 블록 체인 컨트롤러들 중에서, 자신에게 가장 인접한 블록 체인 컨트롤러에 상기 인증 요청 메시지를 전송한다.
다른 측면에서 상기와 같은 목적을 달성하기 위한 본 발명의 블록 체인 컨트롤러를 이용한 인증 방법은, 복수의 블록 체인 컨트롤러들 간에 P2P(peer to peer) 방식에 의해 복수의 사용자 단말들에 대한 적어도 하나의 정보를 블록 체인 형태로 공유하여 블록 체인 네트워크를 형성하는 단계; 상기 블록 체인 컨트롤러에서 상기 복수의 사용자 단말들 중 제1 사용자 단말로부터 제2 사용자 단말에 대한 인증 요청 메시지을 수신하는 단계; 상기 블록 체인 네트워크를 통해 상기 제2 사용자 단말에 대한 인증을 수행하는 단계; 및 상기 제2 사용자 단말에 대한 인증 결과를 상기 제1 사용자 단말로 전송하는 단계를 포함한다.
바람직하게는, 상기 인증 요청 메시지는, 상기 제2 사용자 단말에 대한 공개키를 포함한다.
바람직하게는, 상기 블록 체인 컨트롤러는, 상기 복수의 사용자 단말들에 대한 인증을 위한 공개키를 블록 체인 형태로 공유한다.
바람직하게는, 상기 제1 사용자 단말은, 자신의 공개키를 상기 제2 사용자 단말로 전송하여 인증을 요청하고, 상기 제2 사용자 단말은, 상기 제1 사용자 단말로부터 수신된 제1 사용자 단말의 공개키를 상기 블록 체인 컨트롤러로 전송하여 인증을 수행한다.
바람직하게는, 상기 제1 사용자 단말은, 상기 복수의 블록 체인 컨트롤러들 중에서, 자신에게 가장 인접한 블록 체인 컨트롤러에 상기 인증 요청 메시지를 전송한다.
본 발명의 일실시예에 따르면, 기존의 네트워크 장비를 이용해서 블록 체인 네트워크를 구현하기 때문에, 블록 체인 네트워크를 구현하기 위해 소모되는 비용을 절감할 수 있다.
본 발명의 일실시예에 따르면, 노드가 사용자 단말이 수행해야 하는 계산을 대신 처리하기 때문에, 사용자 단말의 업무 부담을 절감하고, 사용자 단말의 저장 용량 부담을 절감할 수 있다.
본 발명의 일실시예에 따르면, 노드는 검색 프로토콜을 이용하여 블록 체인 네트워크 내 다른 사용자 단말을 검색하기 때문에 거래 및 동기화 총 시간을 절감할 수 있다.
본 발명의 일실시예에 따르면, 중앙 데이터베이스에 모든 데이터를 백업시키고, 단위 노드들은 간략한 데이터 헤더만 저장하기 때문에 단위 노드의 저장 공간을 절약할 수 있다.
본 발명의 일실시예에 따르면, 모든 단위 노드들과 모든 데이터를 동기화하는 것이 아니므로 네트워크 트래픽과 연산량을 현저하게 절감할 수 있다.
본 발명의 일실시예에 따르면, 사용자 단말의 데이터가 해킹 등에 의해 위조 또는 변조되더라도 블록 체인 컨트롤러에 의해 데이터가 보호될 수 있어, 여러 단계 레벨의 인증을 보장할 수 있다.
본 발명의 일실시예에 따르면, 악의의 사용자가 사용자 단말을 직접 공격하더라도 데이터의 위변조가 이루어지지 않으며, 악의의 사용자가 블록 체인 방식에 의해 보안성을 유지하는 블록 체인 컨트롤러에 대한 접속이 용이하지 않아 중간자 공격에 대한 기회를 줄일 수 있다.
본 발명의 일실시예에 따르면, 사용자 단말에서 다른 사용자 단말을 직접 인증하는 것이 아니라, 블록 체인 방식에 의해 보안이 유지되는 블록 체인 컨트롤러에 의해 인증을 받음으로써, 용이하고 안정성 있는 인증을 수행할 수 있다.
본 발명의 일실시예에 따르면, 사용자 단말 간의 트랜잭션에 대해 두 사용자에 인접한 블록 체인 컨트롤러들에 의해 간접적인 인증을 수행하므로, 악의의 사용자가 정보를 가로채고자 할 경우, 두 개의 물리적인 위치에서 동시에 정보를 가로채야 하므로 해킹이 어렵다는 장점이 있다.
본 발명의 일실시예에 따르면, 중앙 데이터베이스를 통해 안전하게 데이터를 유통시킬 수 있다.
본 발명의 일실시예에 따르면, 모든 구성원이 업무 장부로의 접근이 수월하기 때문에, 업무 장부의 투명도가 증가할 수 있다.
본 발명의 일실시예에 따르면, 본사에 위치한 하나의 서버가 모든 보안을 책임지지 않으며, 지점의 서버들과 함께 연산을 나누기 때문에 부담을 절감할 수 있다.
본 발명의 일실시예에 따르면, 블록 체인 커뮤니케이션을 통해서 사용자와 서비스 제공자 모두 건강한 비즈니스 플랫폼을 만들도록 할 수 있다.
도 1은 본 발명이 적용되는 블록 체인 방식의 개념을 나타내는 도면이다.
도 2는 본 발명에 따라 클라우드 서버에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 3은 본 발명에 따라 유선 또는 무선 네트워크 장비에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 4는 본 발명에 따라 eNodeB 또는 무선 액세스 포인트에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 제1 실시예에 따른 블록 체인 시스템과 블록 체인 컨트롤러를 설명하기 위한 도면이다.
도 6은 본 발명의 제1 실시예에 따른 블록 체인 시스템의 노드가 수행하는 블록 체인 거래(TRANSACTION) 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 제1 실시예에 따른 블록 체인 시스템의 각 구성 요소가 수행하는 블록 체인 거래(TRANSACTION) 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명이 적용되는 블록 체인을 이용한 분산 데이터베이스 시스템의 개념을 나타내는 도면이다.
도 9는 본 발명에 따른 블록 체인을 이용한 분산 데이터베이스 시스템에서의 선택적 동기화를 설명하기 위한 도면이다.
도 10은 본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 시스템에서 블록 헤더를 포함하는 간략 데이터를 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 방법을 설명하기 위한 흐름도이다.
도 12는 본 발명이 적용되는 블록 체인 방식의 개념을 나타내는 도면이다.
도 13은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시스템을 나타내는 도면이다.
도 14는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증의 개념을 나타내는 도면이다.
도 15는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시 인증 승인을 나타내는 도면이다.
도 16은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시 인증 거절을 나타내는 도면이다.
도 17은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러의 세부 구조를 나타내는 도면이다.
도 18은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러의 세부 구조를 나타내는 도면이다.
도 19는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러에 구성되는 각 블록의 세부 구성을 나타내는 도면이다.
도 20 및 도 21은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 절차를 나타내는 흐름도이다.
도 22는 본 발명의 제3 실시예에 따른 전자 장치의 세부 구성을 나타내는 도면이다.
도 23은 본 발명이 적용되는 블록 체인을 이용한 공급 체인 네트워크 시스템의 개념을 나타내는 도면이다.
도 24는 본 발명의 제4 실시예에 따른 블록 체인 시스템에서 사용자 단말에 연결된 단일 노드의 동작을 설명하기 위한 도면이다.
도 25은 본 발명의 제4 실시예에 따른 블록 체인 시스템의 노드가 수행하는 공급 체인 네트워크(SUPPLY CHAIN NETWORK) 방법을 설명하기 위한 흐름도이다.
이하, 도면을 참조하여 본 발명을 실시하기 위한 구체적인 내용을 실시 예에 기초하여 설명한다. 이들 실시 예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있는 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백히 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 발명은 사용자 단말들 간에 블록 체인을 형성하는 것이 아니라, 네트워크 장치들이 블록 체인 컨트롤러로서 불록 체인을 형성하고, 사용자 단말에서 수행해야 하는 업무를 블록 체인 컨트롤러를 통해 수행함으로써 사용자 단말의 에너지 소모를 효과적으로 줄일 수 있는 블록 체인 시스템 아키텍쳐 및 방법을 개시한다.
일반적인 블록 체인 시스템의 경우 유저들이 모든 데이터를 다 가지고 있기 때문에 50% 이상의 유저들이 담합을 해서 조작을 하면 모든 유저가 조작된 데이터를 인식하므로 문제가 된다. 예컨대, 종래의 블록 체인은 컨트롤러나 중앙 제어 시스템이 없어서 공격에 취약하고 과반수 이상을 점유하면 그 내용 전체를 수정할 수 있는 문제가 있다.
따라서, 본 발명에서는 복수의 블록 체인 컨트롤러들이 블록 체인 네트워크를 형성하고 사용자 단말에서는 블록 체인 컨트롤러를 이용하여 인증함으로써 보다 강화된 보안성을 확보할 수 있다. 본 발명에서는 종래와 같이 사용자 단말 간의 블록 체인 형성이 아니라 네트워크 장비를 블록 체인으로 구성하고, 이를 블록 체인 컨트롤러(block chain controller)라 지칭하기로 한다.
블록 체인이 개발된 이후로 블록 체인의 세계에서 발생된 모든 트랜잭션은 각각의 노드에 기록되고, 모든 노드들은 동일한 데이터(거래 장부)로 동기화된다. 따라서, 새로운 블록이 추가되면, 연결된 노드 수만큼 통신 네트워크 트래픽과 연산량이 발생하게 되어, 네트워크가 낭비되는 결과가 발생한다. 또한, 노드들은 모든 업데이트된 데이터(거래 장부)를 저장해야 하므로 저장 공간이 과도하게 낭비된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
본 발명의 제1 실시예에 따른 블록 체인 시스템 아키텍쳐 및 방법은 도 1 내지 도 7을 통해서 상세히 설명하도록 한다.
도 1은 본 발명의 제1 실시예에 따른 블록 체인 방식의 개념을 나타내는 도면이다. 도 1을 참조하면, 블록 체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를 가지고 있는 링크드 리스트이다. 블록 체인은 여러 노드(1100, 1110, 1120, 1130)에 걸쳐 분산되어 저장 및 관리되며, 각 블록에는 거래 정보(트랜잭션)가 포함되어 있으므로, 블록의 집합체인 블록 체인은 모든 거래 정보를 포함하는 거대한 분산 장부라고 할 수 있다. 즉, 블록은 블록 체인의 원소로서 개념적으로는 다수의 거래 정보(트랜잭션)의 묶음을 의미한다. 블록은 블록 헤더와 거래 정보, 기타 정보로 구성된다.
도 1은 본 발명의 제1 실시예에 따른 블록 체인하에서의 노드들간의 구성도이다. 상술한 바와 같이, 블록 체인은 분산 기술을 사용하는 바, 각 사용자 단말에 대한 정보는 P2P(Peer to Peer) 기술을 이용해 복수의 블록 체인 컨트롤러(예컨대, 도 1의 노드 0 내지 노드 3)에 보관된다. 이들 노드간에 체인처럼 연결된 상태로 블록을 공유하고 있으므로, 상기 블록 체인으로 연결된 데이터를 위조하려면 상기 노드들의 상당수를 해킹해야만 한다. 또한 상기 트랜잭션이 일정이상 쌓이면, 상기 노드들은 서로 간의 합의라는 과정을 거쳐서 저장된 정보들이 서로 동일하게 축적하게 된다.
예를 들어, 블록이 기정해진 주기에 해당하면, 노드 0(1100)이 해당 트랜잭션들을 하나의 블록으로 생성한다. 이 블록은 블록 헤더와 실제 트랜잭션 내용을 포함하는 블록내용으로 구성된다. 이렇게 생성된 블록중에서 블록 헤더를 매개 변수로 하여서 노드 1 내지 3(1110, 1120, 1130)과 서로 합의 과정을 거치게 된다.
본 발명의 제1 실시예에서는 블록 체인 컨트롤러를 통해서 블록 체인 시스템을 구현할 수 있다. 여기서 종단에 위치한 사용자 단말이 아니라, 종단의 사용자 단말에 연결되는 노드가 블록 체인 컨트롤러 역할을 수행할 수 있다. 하나의 노드는 하나 이상의 사용자 단말의 거래를 동시에 처리할 수 있다. 블록 체인 컨트롤러는 네트워크에서 다른 블록 체인 컨트롤러 및 사용자 단말을 검색하기 위해서 검색 프로토콜을 사용할 수 있다. 블록 체인 컨트롤러는 연결된 사용자 단말의 세부사항을 파악할 수 있다. 거래는 사용자 단말들 간에 발생하지만, 데이터 백업과 보안을 위해 블록 체인 컨트롤러는 거래 관련 정보를 다른 블록 체인 컨트롤러와 함께 저장하고 동기화할 수 있다.
제1 실시예에 따르면, 블록 체인 컨트롤러는 기존의 네트워크 장비 및 기반 시설에 설치되어 사용될 수 있다. 블록 체인 컨트롤러는 커뮤니케이션 또는 거래의 보안 방법을 제공할 뿐만 아니라 블록 체인 시스템 구현을 위해 새로운 네트워크 장치를 설치하는 비용을 절약하고 사용자 단말의 계산/저장공간 부담을 줄여 블록 체인의 사용을 장려할 수 있다.
도 2는 본 발명에 따라 클라우드 서버에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 2를 참조하면, 제1 실시예에 따른 따른 블록 체인 시스템은 기존의 클라우드 서버(1230)의 시스템에 블록 체인 컨트롤러(1200)를 설치하여 활용할 수 있다.
제1 실시예에 따르면, 블록 체인 시스템은 유선 또는 무선 네트워크 장비(1210)에 연결된 사용자 단말(1221, 1222, 1223)과 클라우드 서버(1230)를 포함할 수 있다. 이때, 블록 체인 컨트롤러(1200)를 클라우드 서버에 설치하여 클라우드 서버가 블록 체인 컨트롤러로 동작하도록 할 수 있다. 따라서, 복수 개의 클라우드 서버들끼리 블록 체인 네트워크를 형성하고, 사용자 단말들(1221, 1222, 1223)은 유선 또는 무선으로 네트워크 장비(1210)를 통해 클라우드 서버(1230)에 연결되어 블록 체인 시스템을 구성할 수 있다.
도 3은 본 발명의 제1 실시예에 따라 유선 또는 무선 네트워크 장비에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 3을 참조하면, 제1 실시예에 따른 블록 체인 시스템은 기존의 유선 및 무선 네트워크 장비(1310)에 블록 체인 컨트롤러(1300)를 설치하여 활용할 수 있다.
제1 실시예에 따르면, 사용자 단말들(1321, 1322, 1323)은 유선 또는 무선 네트워크 장비(1310)에 연결되어 인터넷(1330) 네트워크에 연결될 수 있다. 이때, 블록 체인 컨트롤러(1300)를 유선 또는 무선 네트워크 장비(1310)에 설치하여 유선 또는 무선 네트워크 장비(1310)가 블록 체인 컨트롤러로 동작하도록 할 수 있다. 따라서, 유선 또는 무선 네트워크 장비(1310)들끼리 블록 체인 네트워크를 형성하고, 사용자 단말들(1321, 1322, 1323)은 유선 또는 무선으로 네트워크 장비(1310)를 통해 인터넷(1330)에 연결되어 블록 체인 시스템을 구성할 수 있다.
도 4는 본 발명의 제1 실시예에 따라 eNodeB 또는 무선 액세스 포인트에 블록 체인 컨트롤러가 위치하는 실시예를 설명하기 위한 도면이다.
도 4를 참조하면, 제1 실시예에 따른 블록 체인 시스템은 기존의 eNodeB 또는 무선 액세스 포인트(1410)에 블록 체인 컨트롤러(1400)를 설치하여 활용할 수 있다.
제1 실시예에 따르면, 사용자 단말들(1421, 1422)은 eNodeB 또는 무선 액세스 포인트(1410)에 연결되어 네트워크(1430)에 연결될 수 있다. 이때, 블록 체인 컨트롤러(1400)를 eNodeB 또는 무선 액세스 포인트(1410)에 설치하여 eNodeB 또는 무선 액세스 포인트(1410)가 블록 체인 컨트롤러로 동작하도록 할 수 있다. 따라서, eNodeB 또는 무선 액세스 포인트(1410)들끼리 블록 체인 네트워크를 형성하고, 사용자 단말들(1421, 1422)은 무선으로 eNodeB 또는 무선 액세스 포인트(1410)를 통해 네트워크(1430)에 연결되어 블록 체인 시스템을 구성할 수 있다. 이 경우 블록체인 컨트롤러(1400)는 인터넷 없이도 블록 체인 시스템을 운영할 수 있도록, 무선 전화 통신망을 갖고 있는 이동통신 운영사에 의해 운영될 수 있다.
제1 실시예에 따르면, 셀룰러 네트워크 장비에 블록 체인 컨트롤러가 설치된 경우, 소프트웨어 프로토콜을 짤 수 있으므로 eNodeB 자체가 블록체인 컨트롤러의 기능을 가질 수 있다. 이때, 독립적인 서버나 PC가 필요 없이 네트워크 장비 하나에 블록 체인 컨트롤러가 통합되므로 공간과 에너지 측면에서 이익을 볼 수 있다.
제1 실시예에 따른 블록 체인 컨트롤러를 사용하는 경우, 사용자 단말끼리 바로 연결되는 것이 아니라 블록 체인 컨트롤러의 제어를 받기 때문에 물리적인 갭을 줄일 수 있다.
도 5는 본 발명의 제1 실시예에 따른 블록 체인 시스템과 블록 체인 컨트롤러를 설명하기 위한 도면이다.
도 5를 참조하면, 블록 체인 시스템은 제1 사용자 단말들(1511, 1512, 1513), 제1 노드(1510), 네트워크(1500), 제2 노드(1520) 및 제2 사용자 단말들(1521, 1522, 1523)로 구성될 수 있다.
이때, 제1 노드(1510)와 제2 노드(1520)는 네트워크(1500)를 통해 연결될 수 있다. 여기서 네트워크(1500)는 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 포함할 수 있다. 또한, 네트워크(1500)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 또한, 네트워크(1500)는 공지의 월드와이드웹(WWW; World Wide Web)일 수 있으며, 적외선(Infrared Data Association; IrDA) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선전송기술을 이용할 수도 있다.
또한, 네트워크(1500)는 근거리 무선 통신을 포함할 수 있으며, 예컨대, WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(ZigBee), NFC(near field communication), 또는 자력 시큐어 트랜스미션(magnetic secure transmission) 중 적어도 하나를 포함할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)와 제2 노드(1520)는 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
제1 실시예에 따른 블록 체인 시스템은 적어도 하나의 사용자 단말(1511, 1512, 1513)이 연결된 노드(1510)를 포함할 수 있다. 이때, 노드(1510)는 적어도 하나 이상의 다른 노드(1520)와 블록 체인 네트워크를 형성할 수 있다.
제1 사용자 단말(1511)과 제2 사용자 단말(1521) 간의 거래 업무를 가정해보면, 제1 사용자 단말(1511)은 제2 사용자 단말(1521)로의 연결을 제1 노드(1510)에 요청할 수 있다. 이때, 제1 노드(1510) 및 제2 노드(1520)는 각각에 연결된 제1 사용자 단말(1511)과 제2 사용자 단말(1521)을 검증하고, 가상의 거래 경로를 셋업할 수 있다. 제1 사용자 단말(1511)과 제2 사용자 단말(521) 간의 거래 업무가 종료되면, 제1 사용자 단말(1511)과 제2 사용자 단말(521)은 각각의 연결된 제1 노드(1510) 및 제2 노드(1520)에 거래 종료를 보고할 수 있다. 제1 노드(1510) 및 제2 노드(1520)는 제1 사용자 단말(1511)과 제2 사용자 단말(1521) 간의 거래(TRANSACTION) 데이터를 저장하고, 블록 체인 네트워크에 포함된 다른 노드들과 거래(TRANSACTION) 데이터의 동기화를 수행할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)는 검색 프로토콜(Discovery Protocol)을 이용해서 블록 체인 네트워크에 포함된 다른 노드인 제2 노드(1520) 및 다른 사용자 단말(1521, 1522, 1523)을 검색할 수 있다. 예를 들면, 효율적인 거래와 데이터 동기화를 위해 가장 가까운 사용자 단말과 노드를 검색하는데 동적 검색 프로토콜(dynamic discovery protocol)이 사용될 수 있다. 검색 프로토콜은 사용자 단말의 모빌리티를 허용한다.
제1 실시예에 따르면, 제1 노드(1510)는 사용자 단말(1511)의 인증 또는 검증 과정을 수행하고, 사용자 단말(1511)과 다른 사용자 단말(1521) 간의 거래(TRANSACTION) 경로를 셋업할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)는 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행할 수 있다. 예를 들면, 제1 노드(1510)는 거래, 인증 검증 및 동기화와 관련된 모든 타입의 무거운 계산을 수행할 수 있다. 따라서, 사용자 단말(1511)은 가벼운 작업만 수행하고 강력한 제1 노드(1510)가 나머지 모든 계산을 수행할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)는 독립된 저장 공간을 가질 수 있다. 그리고, 제1 노드(1510)는 제1 노드(1510)에 연결된 사용자 단말(1511, 1512, 1513)들의 거래 관련 데이터를 저장 공간에 저장할 수 있다. 또한 제1 노드(1510)는 거래 관련 데이터를 블록 체인 네트워크를 형성하는 다른 노드들과 동기화할 수 있다.
명확하게 도시하지 않았으나, 도 1 내지 도 5에 도시된 장치는 도 1 내지 도 5에 도시되지 않은 구성요소를 더 포함하거나 또는 도 1 내지 도 5에 도시된 일부 구성요소를 포함하지 않을 수 있다. 또한, 도 1 내지 도 5에 도시된 바와 다르게, 일부 구성요소가 복수의 세부적인 구성요소로 분리되거나, 복수의 구성요소가 하나의 구성요소로 결합되어 제공될 수도 있다.
명확하게 도시하지 않았으나, 도 1 내지 도 5에 도시된 바와 다르게, 각 장치는 물리적으로, 공간적으로 또는 기능적으로 구분된 복수의 서버로 분리되어 제공될 수 있다. 이 경우, 각각의 서버는 도 1 내지 도 5에 도시된 일부 구성요소를 포함하거나 포함하지 않을 수 있다.
한편, 상기 장치의 각각의 구성요소들은 기능 및 논리적으로 분리될 수 있음을 나타나기 위해 별도로 도면에 표시한 것이며, 물리적으로 반드시 별도의 구성요소이거나 별도의 코드로 구현되는 것을 의미하는 것은 아니다.
도 6은 본 발명의 제1 실시예에 따른 블록 체인 시스템의 노드가 수행하는 블록 체인 거래(TRANSACTION) 방법을 설명하기 위한 흐름도이다.
단계(S1610)에서, 블록 체인 시스템의 노드는 사용자 단말로부터 다른 사용자 단말과의 연결 요청을 수신할 수 있다.
블록 체인 시스템의 노드는 검색 프로토콜(Discovery Protocol)을 이용해서 블록 체인 네트워크에 포함된 다른 노드 및 다른 사용자 단말을 검색할 수 있다. 예를 들면, 효율적인 거래와 데이터 동기화를 위해 가장 가까운 사용자 단말과 노드를 검색하는데 동적 검색 프로토콜(dynamic discovery protocol)이 사용될 수 있다.
제1 실시예에 따르면, 노드는, 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
단계(S1620)에서, 블록 체인 시스템의 노드는 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION) 경로를 셋업할 수 있다.
블록 체인 시스템의 노드는 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행할 수 있다. 예를 들면, 노드는 거래, 인증 검증 및 동기화와 관련된 모든 타입의 무거운 계산을 수행할 수 있다. 따라서, 사용자 단말은 가벼운 작업만 수행하고 강력한 노드가 나머지 모든 계산을 수행할 수 있다.
단계(S1630)에서, 블록 체인 시스템의 노드는 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)와 관련된 데이터를 저장할 수 있다.
단계(S1640)에서, 블록 체인 시스템의 노드는 블록 체인 네트워크를 형성하는 다른 노드와 거래(TRANSACTION)와 관련된 데이터를 동기화할 수 있다.
도 7은 본 발명의 제1 실시예에 따른 블록 체인 시스템의 각 구성 요소가 수행하는 블록 체인 거래(TRANSACTION) 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 블록 체인 시스템은 제1 종단 단말(1511), 제1 노드(1510), 제2 노드(1520) 및 제2 종단 단말(1521)로 구성될 수 있다.
이때, 제1 노드(1510)와 제2 노드(1520)는 네트워크를 통해 연결될 수 있다. 여기서 네트워크는 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 포함할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)와 제2 노드(1520)는 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
제1 실시예에 따르면, 제1 노드(1510)와 제2 노드(1520)는 블록 체인 네트워크를 형성할 수 있다.
제1 종단 단말(1511)과 제2 종단 단말(1521) 간의 거래 업무를 가정해보면, 단계(S1710)에서, 제1 종단 단말(1511)은 제2 종단 단말(1521)로의 연결을 제1 노드(1510)에 요청할 수 있다.
단계(S1720)에서, 제1 노드(1510)는 검색 프로토콜(Discovery Protocol)을 이용해서 블록 체인 네트워크에 포함된 다른 노드인 제2 노드(1520) 및 제2 종단 단말(1521)을 검색할 수 있다. 예를 들면, 효율적인 거래와 데이터 동기화를 위해 가장 가까운 종단 단말과 노드를 검색하는데 동적 검색 프로토콜(dynamic discovery protocol)이 사용될 수 있다.
단계(S1731, S1732)에서, 제1 노드(1510) 및 제2 노드(1520)는 각각에 연결된 제1 종단 단말(1511)과 제2 종단 단말(1521)을 검증할 수 있다. 즉, 제1 노드(1510) 및 제2 노드(1520)는 각각에 연결된 제1 종단 단말(1511)과 제2 종단 단말(1521)이 안전한 종단 단말인지 검증할 수 있다.
단계(S1740)에서, 제1 노드(1510)는 제1 종단 단말(1511)과 제2 종단 단말(1521)간의 거래(TRANSACTION)를 위해 가상의 거래 경로를 셋업할 수 있다.
제1 실시예에 따르면, 제1 노드(1510)는 제1 종단 단말(1511)과 제2 종단 단말(1521)간의 거래(TRANSACTION)에 관련된 계산을 대신 수행할 수 있다. 예를 들면, 제1 노드(1510)는 거래, 인증 검증 및 동기화와 관련된 모든 타입의 무거운 계산을 수행할 수 있다. 따라서, 제1 종단 단말(1511)은 가벼운 작업만 수행하고 강력한 제1 노드(1510)가 나머지 모든 계산을 수행할 수 있다.
제1 종단 단말(1511)과 제2 종단 단말(1521) 간의 거래 업무가 종료되면, 제1 종단 단말(1511)과 제2 종단 단말(1521)은 각각의 연결된 제1 노드(1510) 및 제2 노드(1520)에 거래 종료를 보고할 수 있다.
단계(S1750)에서, 제1 노드(1510) 및 제2 노드(1520)는 제1 종단 단말(1511)과 제2 종단 단말(1521) 간의 거래(TRANSACTION) 데이터를 저장할 수 있다. 일 실시예에 따르면, 제1 노드(1510)는 독립된 저장 공간을 가질 수 있다. 그리고, 제1 노드(1510)는 제1 노드(1510)에 연결된 제1 종단 단말(1511)의 거래 관련 데이터를 저장 공간에 저장할 수 있다.
단계(S1760)에서, 제1 노드(1510) 및 제2 노드(1520)는 블록 체인 네트워크에 포함된 다른 노드들과 거래(TRANSACTION) 데이터의 동기화를 수행할 수 있다.
본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 시스템 및 방법은 도 8 내지 도 11을 통해서 상세히 설명하도록 한다.
도 8은 본 발명이 적용되는 블록 체인을 이용한 분산 데이터베이스 시스템의 개념을 나타내는 도면이다.
도 8을 참조하면, 블록 체인을 이용한 분산 데이터베이스 시스템은 중앙 데이터베이스(2110), 상기 중앙 데이터베이스(2110)에 연결되어 블록 체인 네트워크를 형성하고 있는 단위 노드(2121, 2122, 2123), 상기 단위 노드(2121, 2122, 2123)에 연결된 사용자 단말(2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139)을 포함할 수 있다.
도시된 바와 같이, 복수의 단위 노드(2121, 2122, 2123)들은 블록 체인 네트워크를 포함하는 인터넷, 이동통신망, 저전력통신망(LPWAN : Low Power Wide area Network) 중 적어도 하나로 상호 연결되어 이루어질 수 있다.
전체 단위 노드(이하 “노드” 또는 “단위 노드”를 혼용하여 사용함)의 개수는 설명의 편의상 일정개수로 도시되어 있지만 그 수는 무수히 많으며, 특별히 제한을 두지 않는다.
각 단위 노드(2121, 2122, 2123)들은 관여하는 각 구성요소들의 규모나 연결방식 등에서 차이가 있지만, 기본적으로 블록 체인을 포함하고 연결된 노드에 대해 기존 블록 체인을 기반으로 고유 공개키와 개인키를 생성하여 제공할 수 있다.
더욱 상세하게는, 본 발명은 유선 및 무선 통신망 중 적어도 하나에 복수의 단위 노드(2121, 2122, 2123)들이 연결되고, 상기 단위 노드(2121, 2122, 2123) 내에서 데이터의 무결성을 상기 복수의 단위 노드(2121, 2122, 2123)들 간에서 상호 인증 확인하는 블록 체인 시스템으로서, 상기 단위 노드(2121, 2122, 2123)들은, 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 업무 장부를 포함하는 개별블록을 체인형태로 연계한 블록 체인을 기반으로 고유의 공개키와 개인키를 생성하여 제공할 수 있다.
제2 실시예에 따르면, 상기 단위 노드(2121, 2122, 2123)는 블록 체인 컨트롤러로 동작할 수 있다. 여기서 블록 체인 컨트롤러는 네트워크 단이 블록 체인으로 연결되어 컨트롤러 역할을 하는 것을 의미한다. 종래의 블록 체인 시스템은 컨트롤러나 중앙 제어 시스템이 없어서 공격에 취약하지만, 블록 체인 컨트롤러 개념을 도임하고, 네트워크 장비로 하여금 컨트롤러 역할을 하게 하면, 유저는 사용자 단말을 통해 블록 체인 컨트롤러에 접근하기가 쉬워지고, 컨트롤러가 직접 승인이나 결정 알고리즘을 처리하기 때문에 보안성을 증가시키며, 안정적으로 데이터를 유지할 수 있다.
또한, 종래의 블록 체인은 사용자 단말에서 모든 복제품을 가지고 있어서, 중복된 데이터가 매우 많이 존재하지만, 블록 체인 컨트롤러 개념 하에서는 컨트롤러가 모든 데이터를 가지고 있으며, 유저는 블록 체인에 관한 정보를 가지고 있지 않을 수 있다. 이때, 컨트롤러끼리 P2P 연결을 이루고 있어, 서로 동기화하면서 블록 체인 서비스를 할 수 있도록 한다.
제2 실시예에 따르면, 블록 체인을 이용한 분산 데이터베이스 시스템에서는 블록 체인 컨트롤러간 실시간 통신이 가능할 수 있다. 즉, 각 블록 체인 컨트롤러는 자신에 연결된 사용자 단말에 대한 정보를 가지고 있으며, 블록 체인 네트워크를 이루고 있는 다른 블록 체인 컨트롤러를 알고 있어, 상호 인증도 가능하다. 예를 들면, 상호간 통신을 시작할 때, 사용자 단말과 블록 체인 컨트롤러는 상호간에 해시 값을 주고 받음으로써 블록 체인 컨트롤러는 해시 값을 통해 사용자 단말의 유효성을 검토할 수 있다.
제2 실시예에 따르면, 블록 체인을 이용한 분산 데이터베이스 시스템에서 단위 노드(2121, 2122, 2123)들은 각각 중앙 데이터베이스(2110)에 연결될 수 있다. 일반적인 블록 체인 네트워크와 같이 단위 노드(2121, 2122, 2123)들은 서로 트랜잭션을 동기화 할 수 있고, 네트워크 상황을 고려해서 네트워크가 원활한 때에 중앙 데이터베이스(2110)에 원본 데이터를 백업해놓을 수 있다.
블록 체인 네트워크에서는 유효한 거래를 기록하기 위해서는 모든 단위 노드의 실시간 동기화가 필요하다. 이때, 모든 단위 노드가 동일한 블록을 갖도록 하기 위해서는 단위 노드 수 만큼의 통신량이 필요하다.
제2 실시예에 따르면, 단위 노드(2121)는 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 네트워크 상황을 고려하여 업데이트된 데이터를 다른 단위 노드 및 상기 중앙 데이터베이스에 전송하여 데이터를 동기화할 수 있다. 예를 들면, 단위 노드(2121)는 네트워크 상태를 확인해서, 안정적인 네트워크 상태에서는 일반적인 동기화를 시도하고, 네트워크 상태가 안정적이지 않은 경우에는, 다른 단위 노드에 해시 값만 미리 보내고, 나중에 데이터가 필요할 때, 해당 데이터만 선택적으로 동기화할 수 있다.
제2 실시예에 따르면, 네트워크에 문제가 있는 경우, 단위 노드(2121)는 유저의 요청이 있을 때에만 데이터 동기화를 할 수 있다. 이러한 레이지 싱크로나이제이션(Lazy Synchronization)을 통해서, 네트워크에 부하가 덜 가도록 할 수 있으며, 공격을 받거나 관리자의 실수로 데이터가 손상될 경우, 다른 단위 노드(2122, 2123)에 데이터를 요청해서 백업을 받을 수 있다.
제2 실시예에 따르면, 단위 노드(2121, 2122, 2123)들은 서로 블록 헤더를 포함하는 간략한 데이터만 주고받고, 모든 데이터는 중앙 데이터베이스(2110)에 저장해서 통신 트래픽 및 저장 공간을 절약할 수 있다.
제2 실시예에 따르면, 사용자 단말(2131)이 새로운 트랜잭션을 단위 노드(2121)에 업로드할 수 있다. 이때, 단위 노드(2121)는 블록 체인 네트워크를 형성하고 있는 다른 단위 노드(2122, 2123)들과 동기화를 수행할 수 있다. 일실시예에 따르면, 단위 노드(2121, 2122, 2123)들 간의 동기화는 블록 헤더만 포함하는 간략한 데이터가 될 수 있다. 일실시예에 따르면, 단위 노드(2121)는 업데이트된 데이터 중 블록 헤더만 단위 노드(2122, 2123)에 전송하여 동기화하고, 중앙 데이터베이스(2110)에 전체 데이터를 백업하여 동기화할 수 있다.
제2 실시예에 따르면, 단위 노드(2121)는 새로운 블록의 추가를 요구할 수 있다. 이때, 단위 노드(2122, 2123)에 의해 승인이 되면, 단위 노드(2121)는 중앙 데이터베이스(2110)에만 실제 데이터를 동기화할 수 있다. 이후, 네트워크 상황에 맞추어 중앙 데이터베이스(2110)는 단위 노드(2122, 2123)에 데이터를 동기화할 수 있다.
제2 실시예에 따르면, 네트워크 경로가 체증상태일 때, 필요한 데이터에 대해서만 선택적으로 동기화 과정을 수행할 수 있다. 선택적 동기화에 대한 자세한 설명은 도 9에서 하도록 한다.
제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 시스템은 상기 단위 노드(2121, 2122, 2123)들에 연결되는 사용자 단말(2131, 2132, 2133 등)을 더 포함할 수 있다.
본 발명의 다양한 실시 예들에 따른 사용자 단말은, 예를 들면 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
제2 실시예에 따르면, 단위 노드(2121, 2122, 2123)에 저장되는 데이터는 만료 시한을 포함할 수 있다. 이때, 단위 노드(2121, 2122, 2123)는 상기 만료 시한이 도래한 데이터는 삭제할 수 있다. 따라서, 단위 노드(2121, 2122, 2123)는 만료 시한 이후에 해당 데이터가 다시 필요한 경우, 중앙 데이터베이스(2110)를 통해서 해당 데이터를 다시 동기화 받을 수 있다.
여기서, 각 단위 노드(2121, 2122, 2123)는 단위 노드(2121, 2122, 2123)가 접근할 때 마다 새로운 만료 시한으로 갱신할 수 있다.
제2 실시예에 따르면, 단위 노드(2121)는, 필요한 데이터가 발생하면, 원본을 소유하고 있는 단위 노드(2122)에 필요한 데이터를 요청하고, 원본을 소유하고 있는 단위 노드(2122)가 불능상태인 경우에, 중앙 데이터베이스(2110)에 필요한 데이터를 요청할 수 있다. 즉, 필요한 데이터를 생산한 단위 노드가 단위 노드(2122)인 경우, 단위 노드(2121)는 단위 노드(2122)에 데이터의 동기화를 요청할 수 있다. 이때, 단위 노드(2122)가 오프라인이거나, 다른 작업 중에 있는 경우, 중앙 데이터베이스(2110)에 필요한 데이터를 요청할 수 있다. 따라서, 중앙 데이터베이스(2110)로 과도한 트래픽이 몰리는 것을 방지할 수 있다.
제2 실시예에 따르면, 분산 데이터베이스 시스템이 계약서의 유지를 위해서 사용될 경우, 악의적 목적으로 단위 노드(2121)에서 계약서 데이터를 해킹당한 경우, 단위 노드(2122) 또는 단위 노드(2123)으로부터 계약서 사본을 자동으로 받아올 수 있다. 즉, 손상된 계약서를 복원하는 경우, 다른 단위 노드(2122, 2123)로부터 데이터를 받아서 복구를 시킬 수 있다.
제2 실시예에 따르면, 단위 노드(2121)는 자신이 가지고 있는 해시 값을 단위 노드(2122, 2123)에 보내면 단위 노드(2122, 2123)는 해시 값이 정상인지 아닌지를 확인받을 수 있다. 이때, 단위 노드(2122, 2123)는 단위 노드(2121)를 승인 또는 거절할 수 있다. 즉, 단위 노드(2121)는 단위 노드(2122, 2123)에 요청 패킷을 송신할 수 있고, 단위 노드(2122, 2123)는 단위 노드(2121)에 응답 패킷을 송신할 수 있다. 데이터가 손상되거나 데이터가 위조된 경우, 단위 노드(2122, 2123) 또는 중앙 데이터베이스(2110)를 통해 백업 데이터를 수신하여 복구할 수 있다.
제2 실시예에 따르면, 사용자 단말(2131)은 네트워크의 상황에 따라서 연결할 단위 노드를 결정할 수 있다. 사용자 단말(2131)은 가장 근접하기 때문에 선택된 단위 노드(2121)가 사용불능상태에 있는 경우, 다른 단위 노드(2122)를 선택할 수 있다. 단위 노드(2121, 2122, 2123)들은 디스커버리 프로토콜을 통해서 사용자 단말들에게 자신의 상태/위치를 알릴 수 있다.
제2 실시예에 따르면, 중앙 데이터베이스(2110)는, 복수의 단위 노드(2121, 2122, 2123)와 블록을 송신 및 수신할 때에 데이터의 유효성을 판단할 수 있다. 이렇게 중앙 데이터베이스(2110)가 데이터의 유효성 여부를 검증함으로써 중앙 데이터베이스로의 해킹 공격을 방어할 수 있다.
도 9는 본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 시스템에서의 선택적 동기화를 설명하기 위한 도면이다.
도 9를 참조하면, 블록 체인 시스템에서의 블록 체인의 예시를 확인할 수 있다. 블록 체인은 블록(2210), 블록(2220), 블록(2230), 블록(2240), 블록(2250)을 포함할 수 있다.
제2 실시예에 따르면, 단위 노드는 필요한 데이터인 블록(2230)만 선택해서 동기화 과정을 수행할 수 있다. 즉, 다른 단위 노드에게 블록 체인의 모든 데이터를 요청하는 것이 아니라, 필요한 블록만 선택적으로 요청할 수 있다.
다른 제2 실시예에 따르면, 단위 노드는 타겟 블록(2230)의 이전 블록(2220) 및 다음 블록(2240)을 포함하는 인접 블록(2200)을 선정하여 동기화 과정을 수행할 수 있다. 이때 이전 블록(2220)이나 다음 블록(2230)이 이미 동기화되어 있는 경우, 인접 블록의 동기화는 생략할 수 있다.
도 10은 본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 시스템에서 블록 헤더를 포함하는 간략 데이터를 설명하기 위한 도면이다.
도 10을 참조하면, 블록(2320)은 Merkle Root, Prev Hash, Nonce 를 포함하는 블록 헤더(2311, 2312, 2313)와 해당 블록의 모든 데이터를 포함하는 Merkle Tree를 포함할 수 있다. 이때, 단위 노드는, 업데이트된 데이터 중 블록 헤더를 포함하는 간략한 데이터를 다른 단위 노드에 전송하여 동기화하고, 중앙 데이터베이스에 전체 데이터를 백업하여 동기화할 수 있다.
즉, 제1 노드는 제2 노드에서 생성된 전체 데이터를 보유하는 것이 아니라, Merkle Tree를 제외한 블록 헤더만 보유하고, Merkle Tree를 포함하는 전체 데이터는 중앙 데이터베이스가 보유하도록 할 수 있다.
제2 실시예에 따르면, 단위 노드가 해킹을 당하거나 관리자의 실수로 데이터가 손상 혹은 유실된 경우에도, 레이지 싱크로나이제이션(Lazy Synchronization) 방법을 활용하여 Merkle Tree가 제외된 블록 헤더만 동기화를 진행할 수 있다. 만약 블록 체인 전체에 대해 모든 데이터의 동기화를 진행하는 경우, 네트워크 전체에 영향을 주거나 중앙 데이터베이스에 과도한 부하가 유발될 수 있다.
명확하게 도시하지 않았으나, 도 8 내지 도 10에 도시된 장치는 도 8 내지 도 10에 도시되지 않은 구성요소를 더 포함하거나 또는 도 8 내지 도 10에 도시된 일부 구성요소를 포함하지 않을 수 있다. 또한, 도 8 내지 도 10에 도시된 바와 다르게, 일부 구성요소가 복수의 세부적인 구성요소로 분리되거나, 복수의 구성요소가 하나의 구성요소로 결합되어 제공될 수도 있다.
명확하게 도시하지 않았으나, 도 8 내지 도 10에 도시된 바와 다르게, 각 장치는 물리적으로, 공간적으로 또는 기능적으로 구분된 복수의 서버로 분리되어 제공될 수 있다. 이 경우, 각각의 서버는 도 8 내지 도 10에 도시된 일부 구성요소를 포함하거나 포함하지 않을 수 있다.
한편, 상기 장치의 각각의 구성요소들은 기능 및 논리적으로 분리될 수 있음을 나타나기 위해 별도로 도면에 표시한 것이며, 물리적으로 반드시 별도의 구성요소이거나 별도의 코드로 구현되는 것을 의미하는 것은 아니다.
도 11는 본 발명의 제2 실시예에 따른 블록 체인을 이용한 분산 데이터베이스 방법을 설명하기 위한 흐름도이다.
도 11를 참조하면, 제1 노드(2410), 제2 노드(2420) 및 중앙 데이터베이스(2430)에서 수행하는 블록 체인 시스템을 확인할 수 있다.
단계(S2411)에서, 제2 실시예에 따르면, 제1 노드(2410)는 블록 체인의 블록 데이터를 업데이트할 수 있다. 이때, 블록 데이터는 거래 장부를 포함하는 트랜잭션이 될 수 있다. 여기서 데이터는 사용자 단말로부터 수신한 업데이트된 데이터일 수 있다.
단계(S2412)에서, 제2 실시예에 따르면, 제1 노드(2410)는 동일한 블록 체인 네트워크에 있는 제2 노드(2420)에 승인 절차를 요청하고, 제2 노드(2420)는 제1 노드(2410)의 유효성을 확인하고 승인할 수 있다.
단계(S2413)에서, 제2 실시예에 따르면, 제2 노드(2420)는 제1 노드(2410)에서 업데이트된 데이터의 블록 헤더 데이터를 동기화할 수 있다. 즉, 제1 노드(2410)는 블록 헤더를 포함하는 간략 데이터를 제2 노드(2420)와 동기화할 수 있다.
단계(S2414)에서, 제2 실시예에 따르면, 중앙 데이터베이스(2430)는 제1 노드(2410)에서 업데이트된 데이터의 전체 데이터를 백업하여 동기화할 수 있다. 이때, 제1 노드(2410)는 네트워크 상황을 고려하여, 업데이트된 데이터의 전체 데이터를 중앙 데이터베이스(2430)에 백업하여 동기화할 수 있다.
단계(S2415)에서, 제2 실시예에 따르면, 제2 노드(2420)가 업데이트된 데이터를 필요로할 경우, 원래 데이터를 생성한 노드인 제1 노드(2410)에 직접 데이터의 전송을 요청할 수 있다.
단계(S2416)에서, 제2 실시예에 따르면, 제2 노드(2420)가 업데이트된 데이터를 필요로 하지만, 원래 데이터를 생성한 노드인 제1 노드(2410)가 불능 상태에 있는 경우, 중앙 데이터베이스(2430)에 백업된 데이터의 전송을 요청할 수 있다.
본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법은 도 12 내지 도 22를 통해서 상세히 설명하도록 한다.
도 12는 본 발명이 적용되는 블록 체인 방식의 개념을 나타내는 도면이다. 도 12를 참조하면, 블록 체인은 최초의 블록(Genesis Block)부터 시작해서 바로 앞의 블록에 대한 링크를 가지고 있는 링크드 리스트이다. 블록 체인은 여러 노드(3100, 3110, 3120, 3130)에 걸쳐 분산되어 저장 및 관리되며, 각 블록에는 거래 정보(트랜잭션)가 포함되어 있으므로, 블록의 집합체인 블록 체인은 모든 거래 정보를 포함하는 거대한 분산 장부라고 할 수 있다. 즉, 블록은 블록 체인의 원소로서 개념적으로는 다수의 거래 정보(트랜잭션)의 묶음을 의미한다. 블록은 블록 헤더와 거래 정보, 기타 정보로 구성된다.
도 12는 본 발명의 제3 실시예에 따른 블록 체인하에서의 노드들간의 구성도이다. 상술한 바와 같이, 블록 체인은 분산 기술을 사용하는 바, 각 사용자 단말에 대한 정보는 P2P(Peer to Peer) 기술을 이용해 복수의 블록 체인 컨트롤러(예컨대, 도 12의 노드 0 내지 노드 3)에 보관된다. 이들 노드간에 체인처럼 연결된 상태로 블록을 공유하고 있으므로, 상기 블록 체인으로 연결된 데이터를 위조하려면 상기 노드들의 상당수를 해킹해야만 한다. 또한 상기 트랜잭션이 일정이상 쌓이면, 상기 노드들은 서로 간의 합의라는 과정을 거쳐서 저장된 정보들이 서로 동일하게 축적하게 된다.
예를 들어, 블록이 기정해진 주기에 해당하면, 노드 0이 해당 트랜잭션들을 하나의 블록으로 생성한다. 이 블록은 블록 헤더와 실제 트랜잭션 내용을 포함하는 블록내용으로 구성된다. 이렇게 생성된 블록중에서 블록 헤더를 매개 변수로 하여서 노드 1 내지 3과 서로 합의 과정을 거치게 된다.
도 13은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시스템을 나타내는 도면이다. 도 13을 참조하면, 본 발명의 실시예에 따른 시스템은 복수의 사용자 단말(3211, 3212), 통신 네트워크(3220), 복수의 블록 체인 컨트롤러들(3230)을 포함하여 구성될 수 있다.
본 발명에서는 상기 사용자 단말(3211, 3212) 간에 블록 체인 네트워크를 형성하는 것이 아니라, 네트워크 장치인 복수의 블록 체인 컨틀롤러들(3230-1, 3230-2, ..., 3230-N) 간에 블록 체인 네트워크(3230)를 형성하게 된다. 상기 사용자 단말(3211, 3212)은 설명의 편의를 위해 제1 단말(3211) 및 제2 단말(3212)로 도시하였다.
상기 통신 네트워크(3220)는 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 포함할 수 있다. 또한, 상기 통신 네트워크(3220)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다. 또한, 상기 통신 네트워크(3220)는 공지의 월드와이드웹(WWW; World Wide Web)일 수 있으며, 적외선(Infrared Data Association; IrDA) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선전송기술을 이용할 수도 있다.
또한, 상기 통신 네트워크(3220)는 근거리 무선 통신을 포함할 수 있으며, 예컨대, WiFi(wireless fidelity), LiFi(light fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(ZigBee), NFC(near field communication), 또는 자력 시큐어 트랜스미션(magnetic secure transmission) 중 적어도 하나를 포함할 수 있다.
본 발명의 실시예에 따라, 복수의 블록 체인 컨트롤러들(3230-1, 3230-2, ..., 3230-N)은 서로 블록 체인 네트워크(3230)를 형성할 수 있다. 즉, 복수의 블록 체인 컨트롤러들(3230-1, 3230-2, ..., 3230-N)은 P2P 방식에 의해 서로 데이터를 공유할 수 있다. 즉, 상기 블록 체인 컨트롤러들(3230-1, 3230-2, ..., 3230-N)은 별도의 서버 없이 블록 체인(block chain)을 활용하여 다수의 노드들에 저장된 데이터를 관리 및 검색할 수 있다. 상기 각 블록 체인 컨트롤러들(3230-1, 3230-2, ..., 3230-N)은 복수의 블록들을 서로 블록 체인 형태로 저장할 수 있다. 상기 각 블록 체인 컨트롤러들(3230-1, 3230-2, ..., 3230-N)에 저장된 블록들은 미리 설정된 조건 또는 미리 설정된 주기마다 갱신 또는 저장될 수 있다.
도 14는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증의 개념을 나타내는 도면이다. 도 14를 참조하면, 도 13에서 전술한 바와 같이 복수의 블록 체인 컨트롤러들(3321, 3322, 3323)은 P2P 방식에 의해 서로 블록들을 공유함으로써 블록 체인 네트워크(3320)를 형성할 수 있다.
제1 단말(3311)(제1 사용자 단말)과 제2 단말(3312)(제2 사용자 단말) 사이에서 트랜잭션(transaction)이 개시되면, 하나의 단말의 하나의 인접한 블록 체인 컨트롤러(block chain controller; BBC)가 다른 블록 체인 컨트롤러에게 그 접속된 단말을 확인하고 인증할 수 있다.
예컨대, 상기 제1 단말(3311)은 블록 체인 네트워크(3320)를 형성하는 복수의 블록 체인 컨트롤러들 중 상기 제1 단말(3311)에 인접한 제1 블록 체인 컨트롤러(3321)에 제2 단말(3312)에 대한 인증 정보(예컨대, 공개키)를 전송함으로써 상기 제2 단말(3312)에 대한 인증을 요청할 수 있다. 상기 제1 블록 체인 컨트롤러(3321)는 다른 블록 체인 컨트롤러들(예컨대, 제2 블록 체인 컨트롤러(3322), 제3 블록 체인 컨트롤러(3323))과 블록 체인 네트워크(3320)를 형성하며, P2P 공유된 저장된 블록을 통해 상기 제2 단말(3312)에 대한 인증 정보를 확인하여 상기 제2 단말(3312)을 인증할 수 있다. 상기 제2 단말(3312)에 대한 인증 결과는 상기 제1 단말(3311)로 전송된다.
마찬가지로, 상기 제2 단말(3312)은 블록 체인 네트워크(3320)를 형성하는 복수의 블록 체인 컨트롤러들 중 상기 제2 단말(3312)에 인접한 제2 블록 체인 컨트롤러(3322)에 제1 단말(3311)에 대한 인증 정보(예컨대, 공개키)를 전송함으로써 상기 제1 단말(3311)에 대한 인증을 요청할 수 있다. 상기 제2 블록 체인 컨트롤러(3322)는 다른 블록 체인 컨트롤러들(예컨대, 제1 블록 체인 컨트롤러(3321), 제3 블록 체인 컨트롤러(3323))과 블록 체인 네트워크(3320)를 형성하며, P2P 공유된 저장된 블록을 통해 상기 제1 단말(3311)에 대한 인증 정보를 확인하여 상기 제1 단말(3311)을 인증할 수 있다. 상기 제1 단말(3311)에 대한 인증 결과는 상기 제2 단말(3312)로 전송된다.
본 발명의 실시예에서 상기 제1 단말(3311)(제1 사용자 단말) 또는 상기 제2 단말(3312)(제2 사용자 단말)은 복수의 블록 체인 컨트롤러 중에서 가장 근접한 블록 체인 컨트롤러와 접속할 수 있으며, 선택된 블록 체인 컨트롤러가 사용 불능 상태가 될 경우, 가장 응답을 빨리한 블록 체인 컨트롤러를 선택할 수 있다. 예컨대, 블록 체인 컨트롤러 내에 구성된 디스커버리 프로토콜에 의해 각 블록 체인 컨트롤러들은 통신 네트워크 내에서 자신들의 위치를 브로드캐스팅할 수 있다. 각 사용자 단말에서는 상기 브로드캐스팅을 통해 전송된 메시지의 도달 시간을 기준으로 가장 빨리 도달한 블록 체인 컨트롤러를 인접한 블록 체인 컨트롤러로 선택할 수 있다.
이와 같이, 상기 제1 단말(3311)과 상기 제2 단말(3312)은 서로 자신에 인접한 블록 체인 컨트롤러(3321, 3322)를 통해 상대방을 인증함으로써 상호 간에 인증된 통신을 수행할 수 있다.
도 15는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시 인증 승인을 나타내는 도면이고, 도 16은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시 인증 거절을 나타내는 도면이다.
제1 단말(3410)에서는 트랜잭션이 개시될 때, 인접한 블록 체인 컨트롤러들(3421, 3422)이 그 접속된 단말들을 인증할 수 있다. 즉, 안전한 트랜잭션 환경을 수립하기 위해 간단한 확인 및 인증 절차가 블록 체인 컨트롤러들(3421, 3422) 사이에서 수행될 수 있다. 도시된 바와 같이 제1 블록 체인 컨트롤러(3421) 및 제2 블록 체인 컨트롤러(3422)가 제1 단말(3410) 및 제2 단말에 대해 두 개의 인접한 컨트롤러이면, 각각 네트워크 1 및 네트워크 2 내에 존재한다.
상기 제1 단말(3410)가 제2 단말이 서로 간에 연결을 수립하고자 할 경우, 먼저 제1 블록 체인 컨트롤러(3421) 및 제2 블록 체인 컨트롤러(3422)는 서로 간에 인증 정보를 교환함으로써 상기 두 단말들 진위를 확인할 것이다. 다음으로, 상기 블록 체인 컨트롤러들(3421, 3422)은 상기 단말들 간의 연결을 수립하도록 한다.
본 발명에 따라, 더 나은 보안을 위해, 많은 블록 체인 컨트롤러들 상에서 이러한 인증이 참여될 수 있다. 도 15 및 도 16에 도시된 바와 같이 블록 체인 컨트롤러(3421, 3422) 각각은 노드 사이에서 트랜잭션을 거절하거나 승인할 수 있다.
도 17은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러의 세부 구조를 나타내는 도면이다. 도 17을 참조하면, 도 13에서 전술한 바와 같이 복수의 블록 체인 컨트롤러들(3521, 3522, 3523)은 P2P 방식에 의해 서로 블록들을 공유함으로써 블록 체인 네트워크를 형성할 수 있다.
제1 단말(3511)(제1 사용자 단말)과 제2 단말(3512)(제2 사용자 단말) 사이에서 트랜잭션(transaction)이 개시되면, 하나의 단말의 하나의 인접한 블록 체인 컨트롤러(block chain controller; BBC)가 다른 블록 체인 컨트롤러에게 그 접속된 단말을 확인하고 인증할 수 있다. 예컨대, 제1 단말(3511)은 복수의 블록 체인 컨트롤러들 중에서 상기 제1 단말(3511)에 인접한 제1 블록 체인 컨트롤러(3521)를 통해 제2 단말에 대한 인증을 수행할 수 있다. 마찬가지로, 제2 단말(3512)은 복수의 블록 체인 컨트롤러들 중에서 상기 제2 단말(3512)에 인접한 제2 블록 체인 컨트롤러(3522)를 통해 제1 단말에 대한 인증을 수행할 수 있다.
각 블록 체인 컨트롤러(3521, 3522, 3523)는 복수의 블록들을 저장하며, 다른 블록 체인 컨트롤러와의 통신을 위해 각 단말에 대한 공개키(3531, 3541)를 저장할 수 있다. 도 16를 참조하면, 제1 단말(3511)과 연결된 제1 블록 체인 컨트롤러(3521)는 제2 단말의 공개키(3541)를 가지며, 상기 제2 단말(3512)과 연결된 제2 블록 체인 컨트롤러(3522)는 제1 단말의 공개키(3531)를 가진다. 상기 각 단말(3511, 3512)은 서로 공개키를 교환하고, 자신에 인접한 블록 체인 컨트롤러들을 통해 서로 교환된 공개키를 인증함으로써 은 이러한 공개키를 서로 인증된 통신을 수행할 수 있다.
도 18은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러의 세부 구조를 나타내는 도면이고, 도 18은 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러에 구성되는 각 블록의 세부 구성을 나타내는 도면이다. 도 18 및 도 19를 참조하면, 각 블록 체인 컨트롤러(3700)에 저장된 블록 체인(3610, 3710)은 다수 개의 블록(3611)들이 사슬 형태로 연결되어 이루어진 것으로서, 상기 블록(3611)들은 Json 파일 형태로 이루어질 수 있으며, 현재 블록의 해쉬(Hash) 값(3711), 논스(Nonce) 값(3712), 이전 블록의 해쉬값(3715), 타임 스탬프(Time Stamp)(3713), 각 단말의 공개키(3714) 등을 포함할 수 있다. 상기 해쉬값(3711)과 논스값(3712)은 데이터 명칭과 각 블록 체인 컨트롤러에 대한 IP 주소 및 포트(Port) 번호에 대하여 사전 설정된 해쉬 함수를 이용하여 구한 값들이다.
상기 도 18 및 도 19를 참조하면, 블록 체인 컨트롤러에 저장된 각 블록들은 자신의 블록 해쉬값 뿐만 아니라 바로 이전의 블록에 대한 블록 해쉬값도 함께 포함하고 있으므로, 블록 체인의 각 블록들은 사슬처럼 서로 연결되어 이어져 나가게 된다.
상기 IP 리스트(3620)는 상기 블록 체인을 갖는 모든 노드들에 대한 IP 주소 및 포트 번호를 저장한 것으로서, 모든 블록 체인 컨트롤러들이 구비한다. 상기 데이터 저장 모듈(3630)은 데이터 또는 파일들이 생성되어 사전 설정된 폴더에 저장되는 메모리 영역으로서, 각 블록 체인 컨트롤러들은 데이터 저장 영역에 다른 블록 체인 컨트롤러들과 공유하고자 하는 데이터 또는 파일을 저장하기 위한 폴더를 사전 지정해 둔다. 본 발명에 따른 시스템에 의하여 모든 블록 체인 컨트롤러들이 상기 데이터 저장 모듈(3630)에 저장된 데이터들을 공유할 수 있는 파일 공유 플랫폼을 제공할 수 있게 된다.
상기 트랜잭션 전송 모듈(3640)은 상기 데이터 저장 모듈(3630)의 사전 설정된 폴더에 데이터 또는 파일이 저장되거나 삭제되면, 데이터 명칭을 설정하고, 상기 데이터 명칭을 포함하는 상기 데이터 또는 파일에 대한 정보, 소유주 정보 및 전자 서명을 포함하는 트랜잭션을 생성하고, 상기 생성된 트랜잭션을 블록 체인을 갖는 다른 블록 체인 컨트롤러들로 전송한다. 본 명세서에서는, 설명의 편의상, 트랜잭션을 전송한 노드(또는 블록 체인 컨트롤러)를 "트랜잭션 송신 노드"라고 표시한다. 상기 데이터 명칭은 아스키 코드(ASCII Code)의 형태로 변환되어 트랜잭션에 포함되고, 상기 IP 주소 및 포트 번호는 십진수의 형태로 변환되어 트랜잭션에 포함되는 것이 바람직하다.
상기 트랜잭션 전송 모듈(3640)은, 사전에 설정된 폴더내에 데이터 또는 파일이 저장되면, 데이터 또는 파일의 생성을 나타내는 제1 플래그를 데이터에 대한 정보의 일부로서 트랜잭션에 추가시키고, 사전에 설정된 폴더내의 데이터 또는 파일이 삭제되면, 데이터 삭제를 나타내는 제2 플래그를 데이터에 대한 정보의 일부로서 트랜잭션에 추가시키는 것이 바람직하다.
상기 블록 체인 실행 모듈(3650)은 블록 체인을 갖는 다른 노드들(블록 체인 컨트롤러들)로부터 트랜잭션을 수신하면, 수신된 트랜잭션에 대해 블록을 생성하여 블록 체인에 연결시켜 블록 체인을 확장시키게 된다. 본 명세서에서는, 설명의 편의상, 트랜잭션 송신 노드로부터 트랜잭션을 수신한 노드(즉, 블록 체인 컨트롤러)를 "트랜잭션 수신 노드"라고 표시한다. 이하, 상기 블록 체인 실행 모듈(3650)의 동작을 보다 구체적으로 설명한다.
상기 블록 체인 실행 모듈(3650)은 다른 노드로부터 트랜잭션을 수신하면, 자신이 블록을 생성하기 위하여 필요한 블록 해쉬값을 만들기 위하여 proof-of-work 를 실행한다. 상기 proof of work 는 사전 설정된 해쉬 함수를 사용하여 랜덤한 논스값을 상기 수신된 트랜잭션과 연산하여 정해진 '0'의 개수를 충족시키는 16진수의 블록 해쉬값을 만드는 작업이다. 본 발명에 따른 시스템에서는 SHA 256 해쉬 함수를 사용할 수 있으며, 그 외의 다른 해쉬 함수도 사용할 수 있다. 이와 같이 proof of work를 하는 이유는, 블록 체인에 참여한 블록 체인 컨트롤러들 중 어떠한 블록 체인 컨트롤러가 블록을 생성할지 모르게 만들기 위한 것으로서, 악의적 노드가 현재 블록을 생성할 노드를 판단하지 못하게 하여 악의적 노드의 공격(attack)을 방지하게 된다.
상기 블록 체인 실행 모듈(3650)은, 상기 트랜잭션 수신 노드들 중 proof-of-work 를 가장 먼저 성공하면, 블록 해쉬값과 랜덤한 논스(Nonce) 값을 찾아내고, 이를 이용하여 블록을 생성하며, 블록 생성 사실과 상기 찾아낸 블록 해쉬값과 랜덤한 논스값을 전체 노드들에게 전송한다. 본 명세서에서는, 설명의 편의상, 트랜잭션 수신 노드들 중 proof-of-work를 가장 먼저 성공한 노드를 "proof of work 성공 노드"라고 표시한다.
상기 블록 체인 실행 모듈(3650)은, 상기 proof of work 성공 노드로부터 블록 해쉬값과 논스값을 수신하면, 유효 검정 알고리즘을 이용하여 트랜잭션과 상기 수신한 블록 해쉬값과 논스값에 대하여 유효성을 판단한 후, 유효성 검증이 완료되면 상기 수신한 블록 해쉬값과 논스값을 이용하여 추가의 블록을 생성하고 상기 블록 체인에 상기 추가의 블록을 연결시킨다.
상기 인증 요청 처리 모듈(3660)은 블록 체인(3610)과 IP 리스트(3620)를 이용하여 각 블록 체인 컨트롤러에 저장된 데이터와 소유주를 검색할 수 있도록 한다.
상기 인증 요청 처리 모듈(3660)은 인접한 사용자 단말로부터 공개키에 대한 인증이 요청되면, 블록 체인(3610)에 저장된 각 블록의 논스(nonce) 값을 판독하고, 상기 판독된 논스값, 상기 입력된 데이터 명칭 및 IP 리스트의 각 노드들에 대한 IP 주소와 Port 번호를 이용하여 블록 해쉬값을 생성하고, 상기 생성된 블록 해쉬값이 상기 논스값이 포함된 블록의 블록 해쉬값과 일치하는지를 판단한다. 만약, 상기 생성된 블록 해쉬와 일치하는 블록 해쉬값을 갖는 블록이 존재하면, 해당 IP 주소와 Port 번호를 갖는 노드가 소유주임을 결정하고, 해당 노드로 해당 데이터를 요청한다. 만약, 상기 생성된 블록 해쉬값과 일치하는 블록 해쉬값을 갖는 블록이 존재하지 않으면, 해당 데이터는 없다고 결정하게 된다.
한편, 본 발명에 따른 시스템에 있어서, 상기 블록 체인 실행 모듈은, 블록 체인을 갖는 다른 노드들로부터 하나의 트랜잭션을 수신하면, 수신된 하나의 트랜잭션에 대해 하나의 블록을 생성하여 블록 체인에 연결시키는 것을 특징으로 한다.
상기 인증 요청 처리 모듈(3660)은 블록 체인 네트워크에 포함된 복수의 블록 체인 컨트롤러들을 통해 상기 요청된 공개키에 대한 인증을 수행하고, 그 결과를 상기 인증 요청한 사용자 단말로 전송할 수 있다.
명확하게 도시하지 않았으나, 도 12 내지 도 19에 도시된 장치는 도 12 내지 도 19에 도시되지 않은 구성요소를 더 포함하거나 또는 도 12 내지 도 19에 도시된 일부 구성요소를 포함하지 않을 수 있다. 또한, 도 12 내지 도 19에 도시된 바와 다르게, 일부 구성요소가 복수의 세부적인 구성요소로 분리되거나, 복수의 구성요소가 하나의 구성요소로 결합되어 제공될 수도 있다.
명확하게 도시하지 않았으나, 도 12 내지 도 19에 도시된 바와 다르게, 각 장치는 물리적으로, 공간적으로 또는 기능적으로 구분된 복수의 서버로 분리되어 제공될 수 있다. 이 경우, 각각의 서버는 도 12 내지 도 19에 도시된 일부 구성요소를 포함하거나 포함하지 않을 수 있다.
한편, 상기 장치의 각각의 구성요소들은 기능 및 논리적으로 분리될 수 있음을 나타나기 위해 별도로 도면에 표시한 것이며, 물리적으로 반드시 별도의 구성요소이거나 별도의 코드로 구현되는 것을 의미하는 것은 아니다.
그리고 본 명세서에서 각 기능부(또는 모듈)라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 각 기능부는 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
또한, 본 명세서에서 저장부 또는 데이터베이스라 함은, 각각의 데이터베이스에 대응되는 정보를 저장하는 소프트웨어 및 하드웨어의 기능적 구조적 결합을 의미할 수 있다. 데이터베이스는 상기 데이터베이스에 대응되는 정보를 저장할 수 있는 모든 데이터 저장매체 및 데이터 구조를 포함한다.
도 20 및 도 21는 본 발명의 제3 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 절차를 나타내는 흐름도이다. 인증을 위해 현재 SSL(secure socket layer)을 따를 경우 중간자 공격(MITM; man in the middle attack)에서 취약할 수 있다. 여기서, 공격자 노드는 실제의 패킷 콘텐츠를 획득할 수 있다. 본 발명의 실시예에 따라, 블록 체인 컨트롤러에 기반된 갱신된 SSL을 제공할 수 있으며, 이는 MITM 공격에 대한 추가의 보안을 제공할 수 있다. 블록 체인 컨트롤러에 의해 승인이 되는 예시가 도 20에 도시되며, 승인이 거절되는 예시가 도 21에 도시된다.
도 20을 참조하면, 제1 단말(3311)은 제2 단말(3312)로 제1 단말의 공개키를 전송(3802)할 수 있다. 제2 단말(3312)은 자신에 인접한 제2 블록 체인 컨트롤러(3322)로 상기 제1 단말의 공개키를 전송함으로써 상기 제1 단말에 대한 인증을 요청(3804)할 수 있다. 상기 제2 블록 체인 컨트롤러(3322)는 블록 체인을 통해 상기 제1 단말에 대한 공개키를 참조하여 상기 제1 단말에 대한 인증을 수행(3806)한다. 상기 제2 블록 체인 컨트롤러(3322)는 상기 제1 단말에 대한 인증 결과 정상 인증될 경우, 상기 정상 인증되었음을 나타내는 정보를 포함하여 상기 제2 단말(3312)로 인증 결과를 전송(3808)한다.
상기 제2 단말(3312)은 상기 인증 결과를 수신하고, 자신의 공개키(즉, 제2 단말의 공개키)를 제1 단말(3311)로 전송하여 인증을 요청(3810)한다. 상기 제1 단말(3311)은 상기 제2 단말(3312)로부터 제2 단말의 공개키를 수신하고, 상기 제1 단말(3311)에 인접한 제1 블록 체인 컨트롤러(3321)에 상기 제2 단말에 대한 인증을 요청(3812)한다.
상기 제1 블록 체인 컨트롤러(3321)는 블록 체인을 통해 상기 제2 단말에 대한 공개키를 참조하여 상기 제2 단말에 대한 인증을 수행(3814)한다. 상기 제1 블록 체인 컨트롤러(3321)는 상기 제2 단말에 대한 인증 결과 정상 인증될 경우, 상기 정상 인증되었음을 나타내는 정보를 포함하여 상기 제1 단말(3311)로 인증 결과를 전송(3816)한다.
상기 제1 단말(3311)은 상기 인증 결과를 수신하고, 정상 인증 되었음을 나타내는 인증 결과를 제2 단말(3312)로 전송함으로써, 상기 제1 단말(3311)과 제2 단말(3312)간의 인증된 통신을 수행할 수 있다.
도 21를 참조하면, 제1 단말(3311)은 제2 단말(3312)로 제1 단말의 공개키를 전송(3902)할 수 있다. 제2 단말(3312)은 자신에 인접한 제2 블록 체인 컨트롤러(3322)로 상기 제1 단말의 공개키를 전송함으로써 상기 제1 단말에 대한 인증을 요청(3904)할 수 있다. 상기 제2 블록 체인 컨트롤러(3322)는 블록 체인을 통해 상기 제1 단말에 대한 공개키를 참조하여 상기 제1 단말에 대한 인증을 수행(3906)한다. 상기 제2 블록 체인 컨트롤러(3322)는 상기 제1 단말에 대한 인증 결과 정상 인증될 경우, 상기 정상 인증되었음을 나타내는 정보를 포함하여 상기 제2 단말(3312)로 인증 결과를 전송(3908)한다.
상기 제2 단말(3312)은 상기 인증 결과를 수신하고, 자신의 공개키(즉, 제2 단말의 공개키)를 제1 단말(3311)로 전송하여 인증을 요청(3910)한다. 상기 제1 단말(3311)은 상기 제2 단말(3312)로부터 제2 단말의 공개키를 수신하고, 상기 제1 단말(3311)에 인접한 제1 블록 체인 컨트롤러(3321)에 상기 제2 단말에 대한 인증을 요청(3912)한다.
상기 제1 블록 체인 컨트롤러(3321)는 블록 체인을 통해 상기 제2 단말에 대한 공개키를 참조하여 상기 제2 단말에 대한 인증을 수행(3914)한다. 상기 제1 블록 체인 컨트롤러(3321)는 상기 제2 단말에 대한 인증 결과 정상 인증되지 않은 경우, 상기 인증이 거부되었음을 나타내는 정보를 포함하여 상기 제1 단말(3311)로 인증 결과를 전송(3916)한다.
상기 제1 단말(3311)은 상기 인증 결과를 수신하고, 추가적인 동작을 수행하지 않거나 인증 실패 처리(3918)를 할 수 있다. 제2 단말(3312)은 상기 제1 단말(3311)로부터 설정된 시간 이내에 인증 결과를 수신하지 않거나, 인증 실패에 대한 메시지를 수신하면, 상기 인증 실패에 대응하는 처리(3920)를 수행하게 된다.
도 22는 본 발명의 제3 실시예에 따른 전자 장치(예컨대, 사용자 단말 또는 블록 체인 컨트롤러)의 세부 구성을 나타내는 도면이다. 도 22를 참조하면, 전자 장치(3000)는, 프로세서(3010), 메모리(3020), 버스(3030), 입출력 인터페이스(3040), 디스플레이(3050), 통신 인터페이스(3060) 중 적어도 하나를 포함할 수 있다. 어떤 제3 실시예에서는, 전자 장치(3000)는, 상기 구성요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
상기 버스(3030)는, 예를 들면, 상기 구성요소들(3010 내지 3270)을 서로 연결하고, 상기 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
상기 프로세서(3010)는, 중앙처리장치(central processing unit(CPU)), 애플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 상기 프로세서(3010)는, 예를 들면, 상기 전자 장치(3000)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
상기 메모리(3020)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 상기 메모리(3020)는, 예를 들면, 상기 전자 장치(3000)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 제3 실시예에 따르면, 상기 메모리(3020)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 상기 프로그램은, 예를 들면, 커널(3024), 미들웨어(3023), 애플리케이션 프로그래밍 인터페이스(application programming interface(API))(3022), 및/또는 애플리케이션 프로그램(또는 "애플리케이션")(3021) 등을 포함할 수 있다. 상기 커널(3024), 미들웨어(3023), 또는 API(3022)의 적어도 일부는, 운영 체제(operating system(OS))라 불릴 수 있다.
상기 커널(3024)은, 예를 들면, 다른 프로그램들(예: 미들웨어(3023), API(3022), 또는 애플리케이션 프로그램(3021))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(3030), 프로세서(3010), 또는 메모리(3020) 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널(3024)은 상기 미들웨어(3023), 상기 API(3022), 또는 상기 애플리케이션 프로그램(3021)에서 상기 전자 장치(3000)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어(3023)는, 예를 들면, 상기 API(3022) 또는 상기 애플리케이션 프로그램(3021)이 상기 커널(3024)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어(3023)는 상기 애플리케이션 프로그램(3021)으로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 애플리케이션 프로그램(3021) 중 적어도 하나의 애플리케이션에 상기 전자 장치(3000)의 시스템 리소스(예: 버스(3030), 프로세서(3010), 또는 메모리(3020) 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케쥴링 또는 로드 밸런싱)를 수행할 수 있다.
상기 API(3022)는, 예를 들면, 상기 애플리케이션(3021)이 상기 커널(3024) 또는 상기 미들웨어(3023)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
상기 입출력 인터페이스(3040)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 상기 전자 장치(3000)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 상기 입출력 인터페이스(3040)는 상기 전자 장치(3000)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
상기 디스플레이(3050)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(microelectromechanical systems(MEMS)) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 상기 디스플레이(3050)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)를 표시할 수 있다. 상기 디스플레이(3050)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
상기 통신 인터페이스(3060)는, 예를 들면, 상기 전자 장치(3000)와 외부 장치 간의 통신을 설정할 수 있다. 예를 들면, 상기 통신 인터페이스(3060)는 무선 통신 또는 유선 통신을 통해서 통신 네트워크에 연결되어 상기 외부 장치와 통신할 수 있다.
본 발명의 제4 실시예에 따른 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법은 도 23 내지 도 25를 통해서 상세히 설명하도록 한다.
도 23은 본 발명이 적용되는 블록 체인을 이용한 공급 체인 네트워크 시스템의 개념을 나타내는 도면이다.
도 23을 참조하면, 본 발명의 제4 실시예에 따른 블록 체인을 이용한 공급 체인 네트워크 시스템은, 블록 체인 네트워크로 연결된 단일 노드들(N; 4120,4121 등)을 포함할 수 있다.
도시된 바와 같이, 복수의 단위 노드(N)(4120,4121 등)들은 블록 체인 네트워크를 포함하는 인터넷, 이동통신망, 저전력통신망(LPWAN : Low Power Wide area Network) 중 적어도 하나로 상호 연결되어 이루어질 수 있다.
전체 단위 노드(이하 “노드” 또는 “단위 노드”를 혼용하여 사용함)의 개수는 설명의 편의상 일정개수로 도시되어 있지만 그 수는 무수히 많으며, 특별히 제한을 두지 않는다.
각 단위 노드(N)(4120, 4121 등)들은 관여하는 각 구성요소들의 규모나 연결방식 등에서 차이가 있지만, 기본적으로 블록 체인을 포함하고 연결된 노드에 대해 기존 블록 체인을 기반으로 고유 공개키와 개인키를 생성하여 제공할 수 있다.
더욱 상세하게는, 본 발명은 유선 및 무선 통신망 중 적어도 하나에 복수의 단위 노드(N)(4120, 4121 등)들이 연결되고, 상기 단위 노드(N)(4120, 4121 등) 내에서 데이터의 무결성을 상기 복수의 노드(N)(4120, 4121 등)들 간에서 상호 인증 확인하는 블록 체인 시스템으로서, 상기 단위 노드(N)(4120, 4121 등)들은, 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 업무 장부를 포함하는 개별블록을 체인형태로 연계한 블록 체인을 기반으로 고유의 공개키와 개인키를 생성하여 제공할 수 있다.
일 실시예에 따르면, 상기 단위 노드(N)(4120, 4121 등)는 블록 체인 컨트롤러로 동작할 수 있다. 여기서 블록 체인 컨트롤러는 네트워크 단이 블록 체인으로 연결되어 컨트롤러 역할을 하는 것을 의미한다. 종래의 블록 체인 시스템은 컨트롤러나 중앙 제어 시스템이 없어서 공격에 취약하지만, 블록 체인 컨트롤러 개념을 도임하고, 네트워크 장비로 하여금 컨트롤러 역할을 하게 하면, 유저는 사용자 단말을 통해 블록 체인 컨트롤러에 접근하기가 쉬워지고, 컨트롤러가 직접 승인이나 결정 알고리즘을 처리하기 때문에 보안성을 증가시키며, 안정적으로 데이터를 유지할 수 있다.
또한, 종래의 블록 체인은 사용자 단말에서 모든 복제품을 가지고 있어서, 중복된 데이터가 매우 많이 존재하지만, 블록 체인 컨트롤러 개념 하에서는 컨트롤러가 모든 데이터를 가지고 있으며, 유저는 블록 체인에 관한 정보를 가지고 있지 않을 수 있다. 이때, 컨트롤러끼리 P2P 연결을 이루고 있어, 서로 동기화하면서 블록 체인 서비스를 할 수 있도록 한다.
제4 실시예에 따르면, 블록 체인을 이용한 공급 체인 네트워크 시스템에서는 블록 체인 컨트롤러간 실시간 통신이 가능할 수 있다. 즉, 각 블록 체인 컨트롤러는 자신에 연결된 사용자 단말에 대한 정보를 가지고 있으며, 블록 체인 네트워크를 이루고 있는 다른 블록 체인 컨트롤러를 알고 있어, 상호 인증도 가능하다. 예를 들면, 상호간 통신을 시작할 때, 사용자 단말과 블록 체인 컨트롤러는 상호간에 해시 값을 주고 받음으로써 블록 체인 컨트롤러는 해시 값을 통해 사용자 단말의 유효성을 검토할 수 있다.
제4 실시예에 따른 블록 체인을 이용한 공급 체인 네트워크 시스템은 상기 단위 노드(N)(4120, 4121 등)들에 연결되는 사용자 단말(4110, 4111, 4112 등)을 더 포함할 수 있다.
본 발명의 다양한 실시 예들에 따른 사용자 단말은, 예를 들면 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
제4 실시예에 따른 블록 체인을 이용한 공급 체인 네트워크 시스템에서, 최하위 생산 공급 업자, 즉 노동자가 부품을 생산했음을 사용자 단말(4110)을 통해서 연결된 단일 노드(4120)에 보고하면 블록 체인 네트워크를 구성하고 있는 공급 체인 네트워크 시스템이 반응해서 업데이트된 업무 장부가 동기화될 수 있다. 즉, 최하위 생산 공급 업자가 생성한 업무 장부를 CEO도 바로 확인할 수 있고, 부품을 사려는 사람도 확인할 수 있다.
종래의 공급 체인 네트워크 시스템은 하나의 중앙 서버를 통해서 업무를 처리하지만, 한번에 처리해야 하는 업무의 양이 과도하고, 과도한 전력 소모가 요구되었다. 이에 본 발명에 따른 블록 체인을 이용한 공급 체인 네트워크 시스템을 이용하면, 지점 당 하나의 블록 체인 컨트롤러를 두고, 블록 체인 컨트롤러간 실시간 동기화를 통해서 업무 장부를 업데이트할 수 있다.
일 실시예에 따르면, 공급 체인 네트워크 시스템에서, 다른 레벨의 모든 참여자들은 보다 나은 보안과 더불어 모든 데이터로의 접근에 동등한 힘을 갖게 되며, 조직을 위해 더욱 많은 수익을 창출할 수 있다.
보다 빠르고 안전한 커뮤니케이션을 포함하는 공급 체인에 개연된 모든 사람들을 위한 업무 장부는 블록 체인 컨트롤러를 통해 업데이트될 수 있다. 이 시스템에서 엔드 유저는 정보를 업데이트하고 트래킹하기 위해 그들의 스마트 단말로 블록 체인 컨트롤러에 연결할 수 있다.
사용자는 사용자 단말기를 통해 블록 체인 컨트롤러의 데이터를 공유하고 접근할 수 있다. 따라서 직원들은 회사의 소유주가 얼만큼의 이익을 만들어내는지 알 수 있고, 주주들은 업무 실적에 따른 결정을 내리기 용이해지고, 모든 부서는 공급 체인의 입력과 출력을 모니터링이 수월해질 수 있다.
도 24는 본 발명에 따른 블록 체인 시스템에서 사용자 단말에 연결된 단일 노드의 동작을 설명하기 위한 도면이다.
도 24를 참조하면, 블록 체인 시스템은 제1 단일 노드(4210), 상기 제1 단일 노드(4210)와 블록 체인 네트워크를 구성하는 제2 단일 노드(4211)를 포함할 수 있다. 제4 실시예에 따르면, 블록 체인 시스템은 단일 노드(4210)에 연결된 사용자 단말(4220, 4221, 4222, 4223, 4224 등)을 포함할 수 있다.
제4 실시예에 따른 블록 체인 시스템은, 유선 및 무선 통신망 중 적어도 하나에 복수의 단위 노드(4210, 4211)가 연결되고, 상기 단위 노드 내에서 데이터의 무결성을 상기 복수의 노드들 간에 상호 인증 및 확인할 수 있다.
이때, 상기 단위 노드에는 적어도 하나의 사용자 단말이 연결될 수 있으며, 상기 단위 노드는, 상기 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 상기 사용자 단말이 작성한 업무 장부를 포함하는 개별블록을 체인형태로 연계한, 블록 체인을 기반으로 고유의 공개키와 개인키를 생성하여 제공할 수 있다. 여기서, 복수의 단위 노드들은 각각의 고유 공개키 리스트를 가질 수 있으며, 상기 고유 공개키 리스트로부터 선택된 특정 공개키에 대응하는 노드에 대해 자신의 개인키를 결합한 데이터를 상기 다른 단위 노드에 전송하여 데이터를 동기화할 수 있다.
일 실시예에 따르면, 상기 단일 노드는, 상기 사용자 단말로부터 작성된 상기 업무 장부가 유효한지 여부를 확인하고, 유효한 업무 장부를 저장하는 블록 체인 컨트롤러가 될 수 있다.
이때, 상기 블록 체인 컨트롤러는, 네트워크 장비로 구현되어 해시 값 검사를 수행할 수 있다.
본 발명에서는 블록 체인 컨트롤러를 통해서 블록 체인 시스템을 구현할 수 있다. 여기서 블록 체인 네트워크는 종단에 위치한 사용자 단말이 아니라, 종단의 사용자 단말에 연결되는 노드가 네트워크를 형성하여, 블록 체인 컨트롤러 역할을 수행할 수 있다. 하나의 노드는 하나 이상의 사용자 단말의 거래를 동시에 처리할 수 있다. 블록 체인 컨트롤러는 네트워크에서 다른 블록 체인 컨트롤러 및 사용자 단말을 검색하기 위해서 검색 프로토콜을 사용할 수 있다. 블록 체인 컨트롤러는 연결된 사용자 단말의 세부사항을 파악할 수 있다. 거래는 사용자 단말들 간에 발생하지만, 데이터 백업과 보안을 위해 블록 체인 컨트롤러는 거래 관련 정보를 다른 블록 체인 컨트롤러와 함께 저장하고 동기화할 수 있다.
제4 실시예에 따르면, 블록 체인 컨트롤러는 기존의 네트워크 장비 및 기반 시설에 설치되어 사용될 수 있다. 블록 체인 컨트롤러는 커뮤니케이션 또는 거래의 보안 방법을 제공할 뿐만 아니라 블록 체인 시스템 구현을 위해 새로운 네트워크 장치를 설치하는 비용을 절약하고 사용자 단말의 계산/저장공간 부담을 줄여 블록 체인의 사용을 장려할 수 있다.
본 발명의 다양한 실시 예들에 따른 사용자 단말(4220, 4221, 4222, 4223, 4224 등)은, 예를 들면 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
상기 사용자 단말은, 권한 레벨에 관계 없이, 상기 단일 노드에 직접 연결될 수 있다.
제4 실시예에 따르면, 상기 통신망은 블록 체인 클라우드를 포함하되, 상기 유선 통신망은 인터넷을 포함하고, 상기 무선 통신망은 이동통신망 및 LPWAN(Low Power Wide area Network) 중 적어도 하나를 포함할 수 있다.
명확하게 도시하지 않았으나, 도 23 및 도 24에 도시된 장치는 도 23 및 도 24에 도시되지 않은 구성요소를 더 포함하거나 또는 도 23 및 도 24에 도시된 일부 구성요소를 포함하지 않을 수 있다. 또한, 도 23 및 도 24에 도시된 바와 다르게, 일부 구성요소가 복수의 세부적인 구성요소로 분리되거나, 복수의 구성요소가 하나의 구성요소로 결합되어 제공될 수도 있다.
명확하게 도시하지 않았으나, 도 23 및 도 24에 도시된 바와 다르게, 각 장치는 물리적으로, 공간적으로 또는 기능적으로 구분된 복수의 서버로 분리되어 제공될 수 있다. 이 경우, 각각의 서버는 도 23 및 도 24에 도시된 일부 구성요소를 포함하거나 포함하지 않을 수 있다.
한편, 상기 장치의 각각의 구성요소들은 기능 및 논리적으로 분리될 수 있음을 나타나기 위해 별도로 도면에 표시한 것이며, 물리적으로 반드시 별도의 구성요소이거나 별도의 코드로 구현되는 것을 의미하는 것은 아니다.
도 25는 본 발명의 실시 예에 따른 블록 체인 시스템의 노드가 수행하는 공급 체인 네트워크(SUPPLY CHAIN NETWORK) 방법을 설명하기 위한 흐름도이다.
도 25를 참조하면, 제1 노드(4210), 제2 노드(4211) 및 사용자 단말(4220) 간의 공급 체인 네트워크(SUPPLY CHAIN NETWORK) 방법을 확인할 수 있다.
제4 실시예에 따르면 적어도 하나의 사용자 단말(4220)이 연결된 단일 노드(제1 노드; 4210)가 수행하는 블록 체인 운영 방법에서, 단계(S4310)에서, 사용자 단말(4220)은 제1 노드(4210)로부터 업무 장부를 열람하거나, 업무 장부를 업데이트할 수 있다. 즉, 제1 노드(4210)는 사용자 단말(4220)로부터 업데이트된 업무 장부를 수신할 수 있다.
단계(S4320)에서, 제1 노드(4210)는 사용자 단말(4220)의 유효성을 검토할 수 있다.
단계(S4330)에서, 제1 노드(4210)는 사용자 단말(4220)이 유효성이 있는 사용자 단말임이 확인되면, 업데이트된 업무 장부에 관한 개별블록을 생성하여 저장할 수 있다.
단계(S4340)에서, 제1 노드(4210)는 블록 체인을 구성하는 다른 단일 노드인 제2 단일 노드(4211)와 동기화를 할 수 있다.
블록 체인 시스템의 제1 노드(4210)는 검색 프로토콜(Discovery Protocol)을 이용해서 블록 체인 네트워크에 포함된 제2 노드(4211)를 검색할 수 있다. 예를 들면, 효율적인 거래와 데이터 동기화를 위해 가장 가까운 사용자 단말과 노드를 검색하는데 동적 검색 프로토콜(dynamic discovery protocol)이 사용될 수 있다.
제4 실시예에 따르면, 노드는, 클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나가 될 수 있다.
블록 체인 시스템의 노드는 사용자 단말과 다른 사용자 단말 간의 업무 장부의 업데이트와 관련된 계산을 대신 수행하며, 블록 체인 컨트롤러로 동작할 수 있다. 예를 들면, 노드는 거래, 인증 검증 및 동기화와 관련된 모든 타입의 무거운 계산을 수행할 수 있다. 따라서, 사용자 단말은 가벼운 작업만 수행하고 강력한 노드가 나머지 모든 계산을 수행할 수 있다.
이때, 블록 체인을 이용한 공급 체인 네트워크 시스템은 정부 기관부터 작은 회사까지 블록 체인 기반의 커뮤니케이션으로 수행될 수 있다. 모든 사용자의 업무 장부가 그 조직의 모든 사용자에게 공개되면 투명도가 증가할 수 있다.
또한, 스마트 단말들이 블록 체인 컨트롤러에 쉽게 접근할 수 있으며, 사용자와 서비스 제공자 모두 이 블록 체인 커뮤니케이션으로 건강한 비즈니스 플랫폼을 만들 수 있게 한다.
블록 체인을 이용한 공급 체인 네트워크 시스템은 피고용인들에게 하여금 더 많은 책임감을 주고 사용자에게는 신뢰를 줄 수 있어 회사가 많은 수익을 낼 수 있도록 할 수 있다.
한편, 본 발명의 일 실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상으로, 본 발명의 실시 예에 따른 시스템, 장치 및 방법을 상세히 설명하였다. 전술한 본 발명의 실시 예에서는 사용자 단말을 예를 들어 설명하였으나 어떠한 전자 장치에도 동일하게 적용할 수 있다. 이하, 본 발명의 실시 예에 따른 사용자 단말들을 포함하여 변형 가능한 다양한 전자 장치의 구현 예를 설명한다.
본 발명의 다양한 실시 예들에 따른 사용자 단말은, 예를 들면 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상 전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 스마트 안경, 머리 착용형 장치(head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치(smart watch))중 적어도 하나를 포함할 수 있다.
본 발명은 특정 기능들 및 그의 관계들의 성능을 나타내는 방법 단계들의 목적을 가지고 위에서 설명되었다. 이러한 기능적 구성 요소들 및 방법 단계들의 경계들 및 순서는 설명의 편의를 위해 여기에서 임의로 정의되었다. 상기 특정 기능들 및 관계들이 적절히 수행되는 한 대안적인 경계들 및 순서들이 정의될 수 있다. 임의의 그러한 대안적인 경계들 및 순서들은 그러므로 상기 청구된 발명의 범위 및 사상 내에 있다. 추가로, 이러한 기능적 구성 요소들의 경계들은 설명의 편의를 위해 임의로 정의되었다. 어떠한 중요한 기능들이 적절히 수행되는 한 대안적인 경계들이 정의될 수 있다. 마찬가지로, 흐름도 블록들은 또한 어떠한 중요한 기능성을 나타내기 위해 여기에서 임의로 정의되었을 수 있다. 확장된 사용을 위해, 상기 흐름도 블록 경계들 및 순서는 정의되었을 수 있으며 여전히 어떠한 중요한 기능을 수행한다. 기능적 구성 요소들 및 흐름도 블록들 및 순서들 둘 다의 대안적인 정의들은 그러므로 청구된 본 발명의 범위 및 사상 내에 있다.
본 발명은 또한 하나 이상의 실시 예들의 용어로, 적어도 부분적으로 설명되었을 수 있다. 본 발명의 실시 예는 본 발명, 그 측면, 그 특징, 그 개념, 및/또는 그 예를 나타내기 위해 여기에서 사용된다. 본 발명을 구현하는 장치, 제조의 물건, 머신, 및/또는 프로세스의 물리적인 실시 예는 여기에 설명된 하나 이상의 실시 예들을 참조하여 설명된 하나 이상의 측면들, 특징들, 개념들, 예들 등을 포함할 수 있다. 더구나, 전체 도면에서, 실시 예들은 상기 동일한 또는 상이한 참조 번호들을 사용할 수 있는 상기 동일하게 또는 유사하게 명명된 기능들, 단계들, 모듈들 등을 통합할 수 있으며, 그와 같이, 상기 기능들, 단계들, 모듈들 등은 상기 동일한 또는 유사한 기능들, 단계들, 모듈들 등 또는 다른 것들일 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (12)

  1. 블록 체인 시스템에 있어서,
    적어도 하나의 사용자 단말이 연결된 노드를 포함하고,
    상기 노드는 적어도 하나 이상의 다른 노드와 블록 체인 네트워크를 형성하고, 상기 사용자 단말의 거래(TRANSACTION) 데이터를 저장하고, 상기 블록 체인 네트워크에 포함된 다른 노드와 상기 거래(TRANSACTION) 데이터의 동기화를 수행하는 블록 체인 시스템.
  2. 제1항에 있어서,
    상기 노드는,
    클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나인 블록 체인 시스템.
  3. 제1항에 있어서,
    상기 노드는,
    검색 프로토콜(Discovery Protocol)을 이용해서 상기 블록 체인 네트워크에 포함된 다른 노드 및 다른 사용자 단말을 검색하는 블록 체인 시스템.
  4. 제1항에 있어서,
    상기 노드는,
    상기 사용자 단말의 인증 또는 검증 과정을 수행하고,
    상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION) 경로를 셋업하는 블록 체인 시스템.
  5. 제1항에 있어서,
    상기 노드는,
    상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행하는 블록 체인 시스템.
  6. 적어도 하나의 사용자 단말이 연결된 노드가 수행하는 블록 체인 거래(TRANSACTION) 방법에 있어서,
    상기 사용자 단말로부터 다른 사용자 단말과의 연결 요청을 수신하는 단계;
    상기 사용자 단말과 상기 다른 사용자 단말 간의 거래(TRANSACTION) 경로를 셋업하는 단계;
    상기 사용자 단말과 상기 다른 사용자 단말 간의 거래(TRANSACTION)와 관련된 데이터를 저장하는 단계; 및
    상기 노드와 블록 체인 네트워크를 형성하는 다른 노드와 상기 거래(TRANSACTION)와 관련된 데이터를 동기화하는 단계를 포함하는 블록 체인 거래 방법.
  7. 제6항에 있어서,
    상기 노드는,
    클라우드 서버, eNodeB, 무선 액세스 포인트, 및 유/무선 네트워크 장비 중 적어도 하나인 블록 체인 거래 방법.
  8. 제6항에 있어서,
    상기 블록 체인 거래 방법은,
    검색 프로토콜(Discovery Protocol)을 이용해서 상기 블록 체인 네트워크에 포함된 다른 노드 및 다른 사용자 단말을 검색하는 단계;를 더 포함하는 블록 체인 거래 방법.
  9. 제6항에 있어서,
    상기 블록 체인 거래 방법은,
    상기 사용자 단말과 다른 사용자 단말 간의 거래(TRANSACTION)에 관련된 계산을 대신 수행하는 단계;를 더 포함하는 블록 체인 거래 방법.
  10. 유선 및 무선 통신망 중 적어도 하나에 복수의 단위 노드가 연결되고, 상기 단위 노드 내에서 데이터의 무결성을 상기 복수의 노드들 간에 상호 인증 확인하는 블록 체인 시스템에 있어서,
    상기 복수의 단위 노드는 중앙 데이터베이스에 연결되고,
    상기 단위 노드는,
    상기 유선 및 무선 통신망중 적어도 하나에 직간접적으로 연결되어 네트워크 상황을 고려하여 업데이트된 데이터를 다른 단위 노드 및 상기 중앙 데이터베이스에 전송하여 데이터를 동기화하는
    블록 체인 시스템.
  11. 제10항에 있어서,
    상기 단위 노드는,
    상기 업데이트된 데이터 중 블록 헤더만 상기 다른 단위 노드에 전송하여 동기화하고,
    상기 중앙 데이터베이스에 전체 데이터를 백업하여 동기화하는
    블록 체인 시스템.
  12. 적어도 하나의 중앙 데이터베이스에 연결된 단위 노드가 수행하는 블록 체인 운영 방법에 있어서,
    사용자 단말로부터 데이터를 업데이트하는 단계;
    다른 단위 노드로부터 승인 절차를 밟는 단계;
    블록 헤더를 포함하는 간략 데이터를 다른 단위 노드와 동기화하는 단계; 및
    네트워크 상황을 고려하여 상기 중앙 데이터베이스에 상기 업데이트된 장부를 백업하는 단계
    를 포함하는 블록 체인 운영 방법.
PCT/KR2018/013566 2017-12-08 2018-11-08 블록 체인 시스템 아키텍쳐 및 방법 WO2019112193A1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR10-2017-0168697 2017-12-08
KR1020170168697A KR101968424B1 (ko) 2017-12-08 2017-12-08 블록 체인 컨트롤러를 이용한 인증 시스템 및 방법
KR10-2017-0168696 2017-12-08
KR1020170168696A KR102030905B1 (ko) 2017-12-08 2017-12-08 블록 체인 시스템 아키텍쳐 및 방법
KR10-2018-0004655 2018-01-12
KR1020180004662A KR102181098B1 (ko) 2018-01-12 2018-01-12 블록 체인을 이용한 분산 데이터베이스 시스템 및 방법
KR10-2018-0004662 2018-01-12
KR1020180004655A KR102050154B1 (ko) 2018-01-12 2018-01-12 블록 체인을 이용한 공급 체인 네트워크 시스템 및 방법

Publications (1)

Publication Number Publication Date
WO2019112193A1 true WO2019112193A1 (ko) 2019-06-13

Family

ID=66750242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/013566 WO2019112193A1 (ko) 2017-12-08 2018-11-08 블록 체인 시스템 아키텍쳐 및 방법

Country Status (1)

Country Link
WO (1) WO2019112193A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563129A (zh) * 2020-07-15 2020-08-21 江苏荣泽信息科技股份有限公司 一种分布式存储区块链账本的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678795B1 (ko) * 2015-11-30 2016-11-22 전삼구 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법
KR20170040079A (ko) * 2016-05-03 2017-04-12 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
KR101763827B1 (ko) * 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678795B1 (ko) * 2015-11-30 2016-11-22 전삼구 블록체인 인증을 이용하는 IoT 기반 사물 관리 시스템 및 방법
KR101763827B1 (ko) * 2016-04-07 2017-08-02 주식회사 라이프시맨틱스 블록체인 기반 의료데이터전송시스템, 방법 및 프로그램
KR20170040079A (ko) * 2016-05-03 2017-04-12 안규태 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Let's figure out blockchain at once", HOMOEFFICIO, 19 November 2017 (2017-11-19) *
BLOCKCHAIN, 10 May 2017 (2017-05-10), pages 1 - 2, Retrieved from the Internet <URL:https://m.blog.naver.com/snrndil21/221002644850> *
SNOWDEER' S CODE HOLIC, 4 July 2017 (2017-07-04), Retrieved from the Internet <URL:http://snowdeer.github.io/blockchain/2017/07/04/blockchain-and-p2p> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563129A (zh) * 2020-07-15 2020-08-21 江苏荣泽信息科技股份有限公司 一种分布式存储区块链账本的方法

Similar Documents

Publication Publication Date Title
WO2020235782A1 (ko) 분산 환경에서의 신원 인증 방법
WO2020149563A1 (ko) 블록체인을 이용한 무인 이동체 제어 시스템 및 이를 이용한 무인 이동체의 제어 방법
WO2020171538A1 (en) Electronic device and method for providing digital signature service of block chain using the same
WO2015163736A1 (en) Methods of providing social network service and server performing the same
WO2016108468A1 (en) User terminal, service providing apparatus, driving method of user terminal, driving method of service providing apparatus, and encryption indexing-based search system
WO2019221504A1 (en) Control method of secure module connected to a plurality of processors and electronic device for implementing the same
WO2020189926A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
WO2020189927A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
WO2021025482A1 (en) Electronic device and method for generating attestation certificate based on fused key
WO2020149561A1 (ko) 블록체인을 이용한 무인 이동체 통신 제어 시스템 및 이를 이용한 무인 이동체의 통신 방법
WO2020197221A1 (ko) 통신 방법 및 통신 디바이스
WO2016126052A2 (ko) 인증 방법 및 시스템
WO2021075867A1 (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
WO2017096603A1 (zh) 数据连接、传送、接收、交互的方法及系统,及存储器、飞行器
WO2021040205A1 (ko) 전자 디바이스 및 전자 디바이스가 타겟 디바이스에게 제어 명령을 전달하는 방법
CN107113171A (zh) 安全通信系统、方法及装置
WO2020141782A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
WO2022060149A1 (ko) 탈중앙화 네트워크를 이용하여 권리를 관리하는 전자 장치 및 이의 동작 방법
WO2020189800A1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
WO2021241849A1 (ko) 에지 컴퓨팅 서비스를 수행하는 전자 장치 및 전자 장치의 동작 방법
WO2020189993A1 (ko) 암호화폐 분실 방지 방법 및 시스템
WO2020141783A1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
EP3134863A1 (en) Methods of providing social network service and server performing the same
WO2019112193A1 (ko) 블록 체인 시스템 아키텍쳐 및 방법
WO2018110775A1 (ko) 전자 기기 인증 매니저 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18885231

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18885231

Country of ref document: EP

Kind code of ref document: A1