Blockchain Platform for Industrial Internet of Things
사물인터넷은 원격 감지/작동 기능을 갖춘 사물로 구성되며, 다른 연결된 장치 및 응용프로그램과 직 간접적으로 데이터를 교환할 수 있다. IoT장치는 데이터를 수집하고, 더이터를 로컬에서 처리하거나, 중앙집중식 서버 또는 클라우드 기반 응용 프로그램 백엔드에 보내 처리 할 수 있다. 이런 IoT 기술은 산업 및 제조 시스템에서 유망할 것으로 보인다. 전문가들은 이 기술이 산업과 제조분야에 미치는 영향을 약 1조달러로 분석하기도 했다.
이 논문에서는 암호화폐 비트코인에서 사용되고 있는 블록체인 기술을 산업용 IOT에 활용한, BPIIoT라고 불리우는 분산화된 P2P 플랫폼을 제안한다. BPIIoT플랫폼은 클라우드 기반 제조를 위한 핵심 지원역할을 수행하며, 기존 CBM(Cloud Based Manufacturing)의 기능을 향상 시키고, 특히 기존 장비를 클라우드 환경에 통합하는데 있어 클라우드 기반 제조의 핵심으로 작용한다. 클라우드 기반 제조는, 제조에 필요한 자원에 대한 주문형 액세스가 가능하지만, 제조 서비스를 이용하려는 사용자 간의 거래에는 신뢰할 수 있는 중개자가 필요하다. 블록체인 기술을 사용하여 BPIIoT플랫폼을 사용하면 분산화되고, 신뢰할 수 있는 P2P의 중개자가 필요없이 서로 상호작용할 수 있다.
제조업을 위해 다양한 분산 앱(Dapps)을 개발 할 수 있는 산업용 인터넷을 위한 블록체인 플랫폼(BPIIoT)를 제안한다.
|a. Slock.it Dapp은 유저와 실제 물리적인 소유물을 소유하고 있는 주인 간에 스마트 컨트랙트를 할수 있게 해준다. 예를 들어 유저가 잠긴 문을 열수 있게 임차료를 지급하면, 자동으로 스마트 계약이 실행되어 문을 열수 있게 되는 것이다. b. BPIIoT는 기존 솔루션보다 훨씬 더 많은 기능을 제공한다. 이는 다양한 P2P 제조 응용프로그램을 개발할 수 있기 때문이다.
위 그림은 기존 Slock.it
플랫폼과 차이점을 보여준다. 예를 들어 기존 솔루션은 특정작업 (잠긴 문을 여는 것)을 수행하기 위해 전문화된 Dapps로 볼 수 있지만, BPIIoT는 다양한 분산 및 P2P 제조 응용프로그램을 제작 할 수 있기 때문에 훨씬더 광범위한 범위를 제공하고 있다.
Slok.it, 슬로킷은 airbnb와 매우 유사한 서비스 입니다. 호스트가 방이나 주택에 슬로킷 도어락을 설치하고, 숙박금액과 보증금액을 이더를 통해 설정할 수 있게 해줍니다. 숙박객은 이더리움 블록체인을 통해 해당 금액을 지불하면, 그 기간 동안 잠금 장치를 열거나 닫으면서 숙박할 수 있게 됩니다.
이 Dapp을 사용하면,
등이 가능해진다.
블록체인과 스마트 컨트랙트의 구조 |
스마트 컨트랙트는 블록체인 내에 있는, 고유한 주소로 식별되는 코드다. 실행 가능한 함수와 상태변수가 포함되어 있다. 이는 이러한 기능에 대한 트랜잭션이 수행될 때 실행된다. 트랜잭션에는 계약의 함수에서 요구하는 입력 매개 변수가 포함된다. 컨트랙트는 다양한 언어 (solidity, python)등올 작성할 수 있다. 컴파일 되면 계약에 고유한 주소를 할당하는 블록체인 네트워크에 컨트랙트가 업로드된다. 블록체인 네트워크의 모든 사용자는 컨트랙트에 트랜잭션을 전송하여 컨트랙트의 기능을 트리거할 수 있다. 컨트랙트 코드는 새로운 블록의 검증의 일환으로 네트워크를 참여하는 각 노드에서 실행된다.
분산 응용 프로그램 (Dapp)은 스마트 컨트랙트를 사용하는 응용프로그램이다. Dapp은 스마트컨트랙트를 사용자에게 익숙한 인터페이스로 제공한다. 암호화폐는 Dapp의 일종이며, 블록체인 네트워크에서 실행된다.
a) CBM(Cloud Based Manufacturing) model, b) 산업용 IOT를 위한 블록체인 |
CBM은 서비스를 이용하는 소비자가 제조 자원을 구성, 선택 및 활용할 수 있는 서비스 지향 제조 모델이다. CBM은 IaaS, PaaS, Haas, SaaS의 네가지 주요 클라우드 컴퓨팅 모델을 활용한다. BPIIoT는 스마트 컨트랙트가 포함되어 있는 블록체인 네트워크를 기반으로 한다. 이 플랫폼에서는 스마트 컨트랙트를 주문형 제조 서비스를 제공하기 위해, 서비스 소비자와 제조자원 간의 계약으로 활용된다. BPIIoT는 기존 레거시 장비를 클라우드 환경에 통합할 수 있으며, 분산 및 P2P 제조 응용프로그램을 개발 할 수 있다.
BPIIoT의 구조 |
IoT장치는 기존 시스템이 클라우드와 통신할 수 있을 뿐만 아니라, 블록체인의 작업도 실행 가능하게 한다. 이 IoT장치는 기기가 운영중인 데이터를 클라우드 내에서 서로 교환하고, 관련된 스마트 컨트랙트 트랜잭션을 보내며, 네트워크의 피어로부터 트랜잭션을 받을 수 있는 'Plug and Play'솔루션이다.
이 IoT 장치에는 인터페이스 보드 (아두이노 기반)와 단일 보드 컴퓨터 (라즈베리 파이 또는 비글본 블랙)가 포함되어 있다. 인터페이스 보드에는 디지털 입출력 및 아날로그 입력 기능이 있다. 센서 및 엑추에이터는 인터페이스 보드의 디지털 또는 아날로그 핀과 인터페이스 한다. 인터페이스 보드는 단일 보드 컴퓨터에 직렬 인터페이스를 가지고 있다. 인터페이스 보드와 단일 컴퓨터 사이의 센서브리지를 통해 단일 보드 컴퓨터는 데이터를 캡처하고, 제어신호를 엑추에이터로 전송할 수 있다. 단일 보드 컴퓨터 관리자는 사용자가 웹 인터페이스를 통하여 이를 구성하고, 장치 상태 및 통계를 볼수 있게 한다. 이 단일 보드 컴퓨터의 블록체인 서비스는, 블록체인 네트워크와 통신하고, 네트워크를 통해 트랜잭션을 전송/수신 한다. 각 IoT장치는 블록체인 네트워크에 자체 어카운트를 갖고 있으며, 자체 블록체인 월렛을 유지 하고 관리한다. 컨트롤러 서비스는 장치 관리 인터페이스를 통해 구성할 수 있는 다양한 작업을 수행한다. 예를 들어, 센서 브리지에서 데이터를 받아 클라우드 브리지를 통해 게시하는 작업 등이 가능하다. 또 기계 상태 및 운영환경을 모니터링 하고, 블록체인 네트워크의 관련 스마트 컨트랙트를 보낼 수도 있다.
BPIIoT를 이루는 것은 Interface Board(아두이노 등으로 만들어진 실제 Machine 과 브릿지 역할을 하는 것)와 단일 보드 컴퓨터 (라즈베리파이로 이루어진 소프트웨어를 실행하는 레이어)라고 할 수 있습니다. Interface Board가 직접 Machine가 interface하여 입출력 데이터를 받습니다. 단일 보드 컴퓨터는 이러한 데이터를 받아 처리하는 부분으로, 클라우드와 연결하여 (클라우드 브릿지) 데이터를 전송하거나, 블록체인 네트워크와 연결하여 (블록체인 브릿지) 고객과 장치관리자 사이의 스마트 컨트랙트를 실행하는 등의 역할을 합니다.
이 플랫폼을 통해, 기계가 자체 블록체인 어카운트를 보유하고, 사용자가 제조 서비스를 이용하기 위해 기계를 직접 제공하고, 거래할 수 있는 제소 서비스 시장을 가능하게 했다. 블록체인을 활용하여 산업용 IoT에 적용한다면 아래와 같은 이점이 있다.
하지만 널리 보급되기 위해선 아래와 같은 문제를 해결해야 한다.
CAP는 분산형 데이터 저장방식으로는 CAP 모두를 만족시킬 수 없다는 이론이다. 여기서 CAP은 Consistency (일관성: 모든 사용자가 같은 데이터를 볼 수 있다.) Availability(가용성: 모든 사용자가 항상 읽고 쓸 수 있다. (몇몇 노드가 죽어도 다른 시스템에 영향이 가선 안된다.)) Partition Tolerance(분단가용성: 물리적으로 분리된 분산환경에서 동작한다. 일부 메시지를 잃더라도 시스템은 정상동작해야 한다.)
slock.it
의 기반인 DAO(Decentralized Autonomous Organization)에서 360만개의 이더를 해킹해서 가져갔다. 한글 공격과정 이는 스마트 컨트랙트를 구현하는 DAO 자체의 코드 결함으로 밝혀졌다. 스마트 컨트랙트는 당사자 간의 계약이며, 네트워크 외부에서 합법적으로 실행될 수 없기 때문에, 이러한 공격은 조직, 채굴자, 심지어는 블록체인 네트워크가 위험에 쳐할 수 있다.