IoT와 블록체인, 오라클 활용 방안
Internet of Things
IoT(Internet of Thing)는 모든 것이 인터넷에 연결되는 것을 의미하는 뜻으로 이제는 많은 사람들에게 알려졌습니다. IoT Analytics에 의하면, 2016년에 인터넷에 연결된 장비가 47억개인 반면, 2021년에는 160억개로 증가할 것으로 예상하고 있습니다. 아래 그림은 2016년도 부터 알려진 IBM의 IoT Network의 변화 과정을 설명하는 그림으로, 블록체인 관련 업계에 계셨던 분들이라면 한번 쯤은 보셨을 그림입니다. 시간이 꽤 지났지만 아직도 블록체인과 IoT를 결합한 서비스하면 딱히 생각나는 부분이 아직은 없는 걸로 봐서 조금 더 시간이 필요할 것 같습니다.
그 동안 IoT와 블록체인을 결합하기 위한 많은 시도와 연구들이 행해졌고, 점점 더 실생활에 가까워 지는 것은 사실인 듯 합니다. 이번 글에서는 IoT에 블록체인을 도입하려는 이유를 알아보고, 오라클 기술과 결합하면 어떤 형태로 발전 할지 살펴보겠습니다.
IoT 보안을 위한 블록체인
IoT에서 보안은 항상 대두되는 문제입니다. PC, 모바일을 거쳐 점점 더 많은 개체가인터넷과 연결됨으로 인해서 발생할 수 있는 보안 위협 시나리오가 다양해질 것입니다. 기존 환경보다 민감하면서도 방대한 양의 데이터, 각종 기기들의 인증 및 접근 제어 문제, 데이터의 신뢰성 확보 등 보안 문제가 해결되지 않은 IoT 환경은 지금보다 더 많은 위협에 노출됩니다.
이 같은 배경에서 블록체인이 IoT 보안을 위해서 연구되어 왔습니다. 블록체인만으로 IoT 보안의 모든 문제를 해결할 수는 없지만, IoT 환경에 블록체인을 도입함으로써 얻을 수 있는 장점이 존재합니다. 투명성(Trasparent)이나 중개를 거치지 않으므로 얻을 수 있는 거래 비용의 절감(Cost Efficiency)외에도 보안적인 측면에서 아래 4가지가 주요 장점으로 꼽힙니다.
High Availability
블록체인을 도입하는 가장 주된 이유는 단일 혹은 중앙 서버 운영 대비 가용성의 확장입니다. 단일 지점 장애(Single Point of Failure)로 인한 중앙 집중 시스템은 DDoS 공격에 노출되고, 개체 수가 많아지는 환경에서 가용성을 장담하기 어렵습니다. 블록체인은 분산 원장 형식으로 관리되기 때문에 단일 지점 장애를 없애고, 네트워크 및 데이터의 가용성을 높여줄 수 있는 역할을 합니다.
ID management
IoT 환경에서는 한 두개의 개체를 관리하던 PC, 모바일에 비해 관리해야할 개체수가 훨씬 많습니다. 인터넷에 연결된 수 많은 장치를 관리하기 위해서는 기본적으로 장치를 식별할 수 있는 ID가 필요합니다. 비트코인 등 암호 화폐에서는 160bit 주소를 사용하여 계정을 식별하고, 전자 서명으로 잔액의 소유 권한에 대해 검증하는 프로세스가 기본적으로 포함됩니다. IoT에 블록체인을 도입할 경우, 다양한 IoT 장치에 대해 식별 값을 부여하고 관리가 용이한 인프라를 자연스럽게 가져갈 수 있습니다.
Data Integrity
IoT가 미래의 인프라가 되는 주요한 이유는 장치로부터 수집하는 데이터의 활용에 있습니다. 장치가 주변 환경을 감지하고 필요한 행동을 제어하는 부분도 중요하지만, 수집된 데이터를 분석하여 더 나은 서비스를 제공하고 이제 껏 알지 못했던 패턴과 미래의 방향을 제시하기 위한 지표로 활용되기 위해 데이터의 활용이 훨씬 더 중요해질 것입니다. 블록체인에 저장되는 데이터는 합의로 검증을 거치고, 분산 저장되어 불변성(Immutability)을 가지는 데이터 구조를 형성합니다. 따라서 데이터의 위변조를 방지하기 위한 메커니즘으로 블록체인이 사용될 수 있습니다.
Access Control
IoT로 부터 수집된 데이터는 여러가지 형태의 서버에 저장될 수 있습니다. 웹서버와 같은 UDP 환경의 CoAP 서버, AWS나 Asure와 같은 클라우드 형태의 스토리지, 회사 자체적으로 관리하는 온프레미스 서버 등 다양한 스토리지에 저장됩니다. 여기에 저장되는 데이터를 활용하기 위해서는 데이터에 대한 올바른 접근 제어(Access Control)가 구현되어야 합니다. 서버 자체적으로 접근 제어 룰을 정하여 운영하는 것도 가능하지만, 블록체인에서 스마트 컨트랙트로 관리할 수 있습니다. 스마트 컨트랙트로 관리되는 접근 제어는 중앙 집중 서버의 설치, 관리, 운영에 드는 비용을 줄이고 확장에 용이한 자동화된 프로세스를 제공합니다.
위에서 설명한 보안 장점을 살려 IoT와 블록체인을 결합한 모델을 생각해보면 위 그림과 같이 나타낼 수 있습니다. IoT 센서에서 수집된 데이터는 인터넷과 연결된 게이트웨이를 통해 블록체인에 등록 및 관리되고 ID를 부여받습니다. 센서에서 생성된 데이터는 외부 데이터 스토리지에 저장됩니다. 데이터 스토리지에 저장된 데이터는 관리자에 의해 접근이 허가된 서비스 제공자가 접근이 가능하고, 이러한 절차는 블록체인에서 스마트 컨트랙트로 관리 될 수 있습니다.
오라클이 왜 필요할까?
오라클은 블록체인에 신뢰할 수 있는 데이터를 제공하는 것을 의미합니다. 예를 들어, 다음과 같은 예시를 생각해볼 수 있습니다. 위 예시는 T/F에 대한 답을 하는 Binary option 형태의 오라클이지만, Verifiable computing이 발전함에 따라 보다 다양한 형태의 오라클이 나타날 수 있습니다. 하지만, 이것은 좀 더 먼 미래의 일이고 현재는 T/F에 대해 오라클 노드의 답변을 구분 하는 것으로 하겠습니다.
신선식품을 생산지에서 최종 소비지까지 운송되는 전 과정동안 저온의 온도를 유지하여, 신선도와 품질을 유지하는 콜드체인 서비스가 있습니다. 유통 과정에서 온도가 적절히 잘 보존 되었는지를 확인하고, 이에 대한 보험 서비스를 운영한다고 가정해봅시다. 센서는 유통과정에서 주기적으로 측정하여 데이터 로그를 남깁니다. 유통과정의 최종 소비지인 상점이나 소비자 등은 “센서로부터 측정된 온도 가 유통과정 동안 -2도 이하인가?” 라는 질문에 대해 신뢰할 수 있는 답이 필요하고 이 역할을 오라클이 합니다. 이 경우, 잘 전송 되었다면 오라클은 True를 전달하고, 그렇지 않을 경우 False를 전달합니다. 각 유통과정에서 기록된 데이터를 보고 오라클이 최종 전송한 값이 True일 경우, 식품은 유통과정에 신뢰성을 더할 수 있습니다. 만약 False가 최종 답으로 결정되어 유통과정에 문제가 생겼을 경우 사전 보험 가입 절차에 의해 보상을 받는 등의 서비스로 확장 될 수 있습니다.
위 시나리오와 같이 데이터의 출처에서부터 서비스에 활용되기까지 데이터의 신뢰성을 위해서 오라클이 필요합니다. 좀 더 구체적으로 출처가 올바른 것인지, 데이터를 요구한 서비스에게 전달되기까지 변경되지 않았는지에 대한 End-to-End 인증이 요구됩니다. 다음은 이를 어떻게 구현하는지에 대해 알아보겠습니다.
Trusted Oracle
오라클을 신뢰할 수 있는 경우 모든 문제가 간단해집니다. Town Crier[1]에서는 TTP(Trusted Third Party)가 운영하는 TC(Town Crier)서버로 부터 웹 서버에서 블록체인으로 데이터를 전달하며, 이 과정에서 데이터를 위변조 하지 않았음을 인증하기 위한 프로토콜을 제시합니다.
TC 프로토콜은 TEE(Trusted Execution Environment)에 기반하여 구성되었습니다. TEE는 신뢰 실행 환경으로 하드웨어 보안 기술을 활용하여 어플리케이션이 동작하는 별도의 메모리에서 실행되는 enclave에서 실행함으로써 악성코드의 영향을 받지 않기 위해 설계된 보안 칩 기술입니다. 대표적으로 TEE를 구현한 것은 Intel SGX[2]와 ARM Trustzone[2]이 있습니다. TC 프로토콜은 TEE로 데이터 소스에서 가져온 결과 값의 계산 결과를 안전하게 실행하였음을 입증함으로써, 데이터의 무결성을 보장합니다.
TC 프로토콜은 SGX의 enclave 내에서 컨트랙트에 기재된 URL에 대해 TC 서버가 요청하여 받은 응답을 기반으로 컨트랙트를 enclave에서 실행 후 관련 결과를 블록체인 트랜잭션에 포함하여 전달합니다. 즉, TC 서버가 블록체인-웹 간의 중개자 역할을 하면서 이 과정에서 위변조가 일어나지 않았음을 입증하는 프로세스로 구현되었습니다. 이를 위해선 enclave에 TLS 프로토콜이 구현되어야 하고, 컨트랙트 실행을 위한 VM(Virtual Machine)과도 연결되어야 합니다. Town Crier 논문에서는 Off-chain VM에서 실행되는 이더리움 gas 비용의 최소화 방법도 함께 제안합니다.
Multiple oracle
중앙화된 오라클은 단일 지점 장애가 발생할 수 있고, 서버를 신뢰해야 하는 문제가 존재합니다. 분산화된 다수의 오라클은 각 오라클 노드의 값을 집계(Aggregate)하여 하나의 답을 도출함으로써 이러한 문제를 해결할 수 있습니다. 다수의 오라클이 운영될 경우 각 노드가 트랜잭션을 발생시키고 스마트 컨트랙트에서 최종 결정하여 전달할 수 있는 방법과 최종 결정된 하나의 답만을 블록체인에 전달하는 방법을 생각해볼 수 있습니다. 전자는 모든 과정이 On-chain에서 발생하고, 후자는 Off-chain에서 집계하여 하나의 트랜잭션으로 결정하는 방법입니다.
Off-chain computation은 On-chain computation에 드는 비용을 줄이고, 처리 속도를 높이는 장점이 있으나, 컨트랙트에서 과반수 이상의 오라클이 선택한 답이라는 것이 검증되어야 합니다. 이때 TSS(Threshold Signature Scheme)[4]를 사용할 수 있습니다. TSS는 한번의 검증으로 전체 오라클 노드의 과반수 이상이 동의하였음을 확인할 수 있는 서명 기술입니다.
이외에도, TEE를 기반으로 오라클 노드간의 합의를 통해 분산 원장을 구현하는 형태도 고려할 수 있습니다. TEE 기반의 합의 솔루션으로 Hyperledger sawtooth의 PoET(Proof of Elapsed Time)[5]는 SGX에서 생성한 random 값으로 리더를 선출하여 데이터를 저장하는 합의 방법입니다. 혹은 FastBFT[6]는 secret sharing 기반의 서명에서 노드간 동의에 필요한 비밀 값의 임계치를 구성할 때 TEE를 사용함으로써 BFT 계열에서 필요한 메시지 복잡도를 줄이고 합의에 도달할 수 있어 확장성을 향상 시킨 방법입니다. 이 같은 TEE 기반 합의 알고리즘으로 오라클 노드간의 생성된 원장에서 리더를 선출하여 블록체인으로 전달하는 방법을 고려할 수 있습니다.
IoT와 오라클을 결합한 솔루션
오라클 기술을 IoT에 접목시키면, 위 그림과 같이 구성됩니다. 데이터를 생성하는 센서와 연결된 IoT Gateway와 스마트 컨트랙트의 설정을 관리하는 Administrators, 데이터의 접근 허가에 대해 오라클로 데이터를 요청하는 서비스 제공자는 모두 블록체인 네트워크에 속해있습니다. IoT Gateway를 통해 생성된 데이터는 클라우드와 같은 데이터 스토리지에 우선적으로 저장되고, 오라클은 데이터의 요청이 블록체인 상에서 있을 경우 이를 연결해주는 역할을 합니다.
결론
오라클 문제는 블록체인의 활용성을 극대화 시키기 위해 꼭 극복해야할 문제입니다. 현재는 Provable[7]이나 Chainlink[8], Band Protocol[9]과 같이 오라클 플랫폼이나, Augur 혹은 MakerDAO의 가격 피드까지 특정 DApp에서 구현되는 오라클이 같이 존재하고 있습니다. IoT와 블록체인에서도 오라클이 필요할 것이고, 여기에는 하드웨어 보안 기술과 서명 기술을 활용하여 오라클을 구현하여 블록체인에서 자유롭게 데이터를 활용할 수 있는 시스템이 생겨날 것입니다.
아이오트러스트는 하드웨어 보안 기술을 가진 회사로 디센트를 개발하면서 블록체인 분야에 진출하였고, 오라클 기술에 많은 관심을 가지고 있습니다. TEE 기술 표준화에 참여하여 활동하였고, 2019년 과기정통부의 블록체인기술개발사업에서 오라클 기술 개발에 최종 선정되기도 하였습니다. 또한, 사명
(IoTrust)에서도 알 수 있듯이 IoT 분야에 보안을 위해 지속적으로 사업을 해왔기 때문에 이 분야에 강점을 가지고 있습니다. 앞으로 관심있게 지켜봐주시기 바랍니다.
디센트 채널 링크
공식 웹사이트 : https://dcentwallet.com/
미디엄 : https://medium.com/dcentwallet
트위터 : https://twitter.com/DCENTwallets
페이스북 : https://www.facebook.com/dcentwallet
유튜브 : https://www.youtube.com/channel/UCKnYqiM3g3iaaAKcRZf-kbA
References
[1] https://eprint.iacr.org/2016/168.pdf
[2] https://www.intel.co.kr/content/www/kr/ko/architecture-and-technology/software-guard-extensions.html
[3] https://developer.arm.com/ip-products/security-ip/trustzone
[4] https://eprint.iacr.org/2019/114.pdf
[5]https://sawtooth.hyperledger.org/docs/core/releases/1.0/architecture/poet.html