IoTeX, IIC 2분기 미팅에서 판테온 컨소시엄 블록체인 발표

산업 인터넷 컨소시엄(IIC)은 세계 최고의 기술 조직들로 구성된 세계 선두의 IoT 컨소시엄 중 하나입니다.
매 분기마다 300개 이상의 글로벌 기술 리더로 구성된 IIC 회원사들은 새로운 연구, 사용 사례, 제품 개발 프레임워크를 공유하기 위해 모입니다. 6월 22일부터 26일까지 열린 2분기 회원 미팅에서 IoTeX는 네 개의 세션에 참여하여 IIC 회원들에게 최신 작업 내용을 공유했습니다.
IoTeX의 주요 하이라이트는 IIC의 블록체인 워킹 그룹에서 진행한 Pantheon 발표였으며, IoTeX는 Amazon 및 Huawei와 함께 이 그룹의 공동 의장을 맡고 있습니다. 이 발표에서 우리는 컨소시엄 블록체인이 무엇인지, Pantheon이 다른 컨소시엄 블록체인과 어떻게 다른지, Pantheon의 독특한 기술 스택과 아키텍처 등에 대해 설명했습니다.
이 블로그의 나머지 부분에서는 Pantheon 발표의 동영상 녹화본과 서면 전사본을 공유합니다 — 즐겁게 봐주시길 바랍니다!
발표 — 동영상 녹화
발표 — 서면 전사본
안녕하세요 여러분! 저는 IoTeX의 암호화 책임자인 Xinxin Fan입니다. 저는 또한 블록체인 태스크 그룹의 공동 의장을 맡고 있습니다. 오늘 저는 IoT를 위한 기업 지향적 컨소시엄 블록체인인 Pantheon을 소개하게 되어 기쁩니다.

우리 모두 알다시피, IoT는 스마트 기기가 수집한 데이터를 기반으로 비즈니스 결정을 내리는 것입니다. 우리는 기본적으로 세 가지 블록을 가지고 있습니다: 1) 물리적 세계에서 데이터를 수집하는 모든 종류의 스마트 기기, 2) 이 모든 데이터가 저장, 처리 등을 위해 백엔드로 전송되는 것, 그리고 3) 데이터 시각화 및 분석입니다. 데이터의 신뢰성은 IoT의 성공에 필수적이며, 고객에게 제공하는 데이터가 신뢰할 수 있는지 여부가 고객에게 제공하는 가치의 정도를 결정합니다.

자연스러운 질문은 IoT에서 데이터 신뢰성을 어떻게 보장하는가입니다. 이는 지난 몇 년간 보안 워킹 그룹에서 한동안 논의되어 온 매우 뜨거운 주제입니다. 간단히 말해, 우리는 신뢰할 수 있는 사물 인터넷(IoTT)이라는 개념을 도입해야 합니다 — 기본적으로 이 과정에서 신뢰성을 보장하기 위해 IoTT의 전체 데이터 생명주기를 다루어야 합니다. 우리는 데이터 수집, 전송 중 데이터, 저장 중 데이터, 데이터 처리, 그리고 데이터 보존을 고려해야 합니다. 기본적으로 기기가 데이터 수집을 시작할 때부터, 기기가 데이터를 백엔드로 전송할 때 통신을 보호하는 것까지 다루게 됩니다. 또한 데이터를 안전하게 저장하고 처리도 안전한 방식으로 수행해야 합니다.

여기서 블록체인이 왜 중요할까요? 먼저 블록체인을 간단히 살펴보겠습니다 — 이것은 NIST가 제시한 정의입니다. 블록체인은 이름에서 알 수 있듯이 블록들의 체인이며, 각 블록은 여러 트랜잭션을 포함합니다. 이 네트워크는 피어 투 피어 방식으로 여러 노드 그룹에 의해 유지됩니다. 블록체인은 기본적으로 변조가 감지되고 변조에 저항하는 디지털 원장을 제공하며, 이 디지털 원장은 중앙 권한 없이 분산된 노드에 의존하여 운영됩니다.

업계에서 널리 사용되어 온 블록체인에는 두 가지 유형이 있습니다. 첫 번째는 퍼미션리스 블록체인으로, 기본적으로 퍼블릭 블록체인입니다. 이러한 유형의 블록체인에서는 누구나 네트워크에 참여할 수 있고, 누구나 원장 데이터를 읽고 거래를 검증할 수 있습니다. 이 유형의 원장은 높은 수준의 신뢰를 재현합니다. 다른 유형은 퍼미션드 블록체인으로, 업계에서 많이 논의되어 온 것입니다. 이러한 퍼미션드 블록체인은 일반적으로 알려진 거래 당사자들이나 기관들의 집합으로 형성됩니다. 이들이 함께 모여 이 원장을 운영합니다. 따라서 검증은 일반적으로 모든 참여 당사자에 의해 결정된 선택된 노드 집합에 의해 제어됩니다. 그리고 이 유형의 원장은 높은 수준의 투명성과 책임성을 재현합니다.
저는 퍼블릭 블록체인이 미래라고 믿지만, 퍼미션드 블록체인은 우리가 거의 매일 사용하는 중앙화된 솔루션에서 완전히 탈중앙화된 세계로 전환하는 이 과도기에 여전히 높은 가치를 지니고 있습니다. 퍼미션드 버전은 여전히 좋은 예시를 제공하며, 사람들이 이 기술의 가치와 실제로 작동하는 방식을 더 잘 이해하도록 돕습니다.

그래서 우리가 먼저 강조해야 할 주제는 “블록체인이 IoT 시스템에 어떤 속성을 가져다주는가?“입니다. 여기 블록체인이 제공하는 핵심 기능인 다섯 가지 속성이 있습니다. 첫 번째는 탈중앙화입니다 — 이는 블록체인이 신뢰할 수 있는 중앙 기관에 구현된 ’단일 장애 지점’을 제거한다는 것을 의미합니다. 블록체인 환경에서 이 네트워크는 신뢰할 수 있는 중앙화된 기관 대신 노드 그룹에 의해 유지됩니다. 두 번째 속성은 불변성입니다 — 블록체인은 암호화 해시 함수를 사용하여 모든 블록을 서로 연결하는데, 이는 정보가 일단 블록체인에 들어가면 변경하기가 매우 어렵다는 것을 의미합니다. 세 번째는 투명성입니다 — 블록체인은 완전히 감사 가능하고 유효한 거래 원장을 제공하여 시스템의 모든 참여자가 이를 볼 수 있습니다. 네 번째는 보안성과 복원력에 관한 것입니다 — 블록체인은 공개키 암호화와 디지털 서명을 사용하여 데이터의 소유권을 증명하는데, 이는 여러분이 블록체인에 무언가를 보낼 때 증명하는 것이 해당 개인키를 보유하고 있다는 것을 의미합니다. 이는 또한 소유권 이전을 가능하게 하는데, 이는 만약 여러분이 특정 자산을 한 주체에서 다른 당사자로 이전한다면, 개인키를 사용하여 그렇게 할 수 있다는 것을 의미합니다. 블록체인의 특성상 정보가 전체 네트워크에 걸쳐 광범위하게 사용 가능하기 때문에, 이는 일부 노드가 오프라인이 되어도 괜찮으며 여러분의 정보는 여전히 광범위하게 사용 가능하다는 것을 의미합니다. 마지막은 자동화입니다 — 블록체인은 스마트 컨트랙트라는 매우 유용한 도구를 제공하는데, 이는 블록체인에 배포되는 코드 조각입니다. 여러분은 특정 프로그래밍 언어로 비즈니스 로직을 작성하며, 주된 목적은 복잡한 비즈니스 프로세스를 간소화하는 것입니다. 이러한 프로세스는 일반적으로 실제 세계에서 여러 중개자를 포함합니다. 스마트 컨트랙트는 복잡한 프로세스를 간소화하는 데 도움을 줄 수 있습니다. 이것들이 블록체인이 IoT에 가져다줄 수 있는 모든 핵심 기능들입니다.

그렇다면 왜 우리는 또 다른 엔터프라이즈 블록체인을 만들고 있을까요? Hyperledger, Ethereum for Enterprise, R3 Corda, 최근 등장한 Baseline 프로토콜과 같은 여러 컨소시엄 블록체인이 존재하고, 또한 Amazon과 Microsoft Azure와 같은 클라우드 제공업체들이 클라우드 컴퓨팅에 익숙한 사람들에게 블록체인을 사용할 때 유사한 경험을 제공하는 Blockchain-as-a-Service를 제공하고 있다는 점을 고려할 때 말입니다. 그렇다면 왜 우리는 또 다른 것을 만들고 싶어할까요? 여기 존재하는 모든 기존 솔루션들, 그 대부분은 여러분이 그 위에 다양한 유형의 애플리케이션을 구축할 수 있는 매우 범용적인 솔루션입니다. 일부 컨소시엄 블록체인은 더 특화되어 있는데, 예를 들어 Corda는 주로 결제 목적으로 은행 업계에서 사용되고, Amazon과 Microsoft는 자체 Blockchain-as-a-Service를 관리합니다. 우리가 새로운 것을 만들고 싶은 이유는 IoT 목적에 전념하고 설계된 좋은 솔루션이 없다는 것을 깨달았기 때문입니다. 그래서 우리는 IoT 애플리케이션과 관련된 모든 서비스를 포함하고 궁극적으로 종단 간 보안을 제공하는 새로운 것을 구축하려고 노력하고 있습니다.

이것이 바로 저희가 Pantheon을 개발하고 있는 이유입니다. Pantheon은 IoT를 위해 설계된 기업용 컨소시엄 블록체인입니다. 이것은 저희가 구상하고 있는 상위 수준의 기술 스택입니다. 다양한 종류의 IoT 기기와 통신 프로토콜을 지원하기 위한 IoT 기기 계층이 있습니다. 두 번째 계층은 컨소시엄 블록체인과 클라우드로 구성된 하이브리드 계층입니다. 이 두 번째 하이브리드 계층 위에 사용자 관리, 기기 관리, 저장소 관리 등을 포함한 핵심 IoT 서비스가 있습니다. 그리고 그 위에는 애플리케이션 계층이 있어 사용자들이 다양한 IoT 관련 애플리케이션을 개발할 수 있습니다. Pantheon은 완전한 오픈소스입니다 — 저희 저장소는 여기에서 확인하실 수 있습니다. 저희는 다양한 IoT 애플리케이션을 아우르는 핵심 IoT 서비스를 제공할 계획입니다. 목표는 기기에서 백엔드까지 엔드투엔드 보안을 실현하는 것입니다. 초기 릴리스는 주로 사용자 관리에 초점을 맞추고 있으며, 다른 핵심 서비스들은 저희 개발팀이 현재 적극적으로 개발 중이며 이 기술 스택에 점진적으로 추가될 예정입니다.

시스템 아키텍처와 관련해서, 이것이 Pantheon의 모습입니다. 이 컨소시엄 블록체인을 운영하기 위해 협력하는 여러 기관들이 있습니다. 이 블록체인 시스템 내부의 모든 기능에 접근하기 위한 블록체인 노드 API 게이트웨이가 있습니다. 합의 알고리즘을 실행하는 여러 기관들의 목록인 합의 그룹 목록이 있습니다. 여기 예시 흐름을 보여드리겠습니다. 사용자가 블록체인에서 데이터를 조회하고자 합니다. 예를 들어, 그들은 API 게이트웨이에 접근하려는 데이터의 해시를 얻기 위해 조회할 것입니다. 그들은 오프체인 데이터베이스에서 데이터를 검색하기 위해 데이터 접근 프록시에 조회할 것입니다. 그러면 데이터베이스의 데이터 접근 제어 정책이 사용자가 이 데이터에 접근할 특정 권한을 가지고 있는지 확인합니다. 권한이 부여되면, 사용자는 데이터베이스에서 데이터를 검색하여 블록체인으로부터 받은 해시와 비교할 수 있습니다. 이것은 저희의 컨소시엄 블록체인 시스템을 사용하여 데이터 무결성을 어떻게 보장할 수 있는지 보여주는 간단한 예시 흐름일 뿐입니다.

저희의 블록체인 탐색기를 사용하여 최신 블록, 모든 트랜잭션, 그리고 블록체인 시스템을 유지하고 있는 노드들을 확인하실 수 있습니다.

기관 등록은 저희 시스템 내의 스마트 컨트랙트에 의해 처리되며, 모든 현재 기관들은 새로운 기관의 참여에 대해 투표할 수 있습니다. 그들은 새로운 기관을 컨소시엄에 받아들일지 여부를 결정합니다. 하나의 기관은 여러 개의 블록 운영자를 운영할 수 있습니다 — 그들은 자신의 기관 내에서 누가 블록 운영자가 될 수 있는지 결정합니다. 그리고 그들은 자신들의 운영자를 개별적으로 관리합니다.

이 스크린샷은 여기 여러 기관이 있음을 보여줍니다 — 각 기관은 여러 운영자를 관리할 수 있습니다.

사용자 관리와 관련하여, 이는 각 기관에 의해 오프체인으로 수행됩니다. 저희는 각 기관이 자신의 사용자와 그에 상응하는 권한을 관리하는 계층적 구조를 가지고 있습니다. 사용자와 권한이 부여된 데이터는 암호화된 데이터베이스에 안전하게 저장됩니다. 또한 사용자를 생성하는 방법과 접근 정책 목록을 통해 그들의 권한을 지정하는 방법을 명시하는 관리자가 있습니다. 사용자들은 또한 사용자 그룹으로 조직될 수 있으며 사용자 그룹별로 관리될 수 있습니다.

따라서 이 시스템에 처음 로그인할 때는 평소처럼 계정을 생성하게 되며, 이후 여러 사용자를 추가하고 이 사용자를 어떤 그룹에 배치할지 지정할 수 있습니다.

그룹 내에는 일반 사용자가 있을 수 있으며, 관리자는 새로운 사용자와 새로운 그룹을 생성하거나 추가하고, 사용자를 여러 그룹에 배치하며 권한을 할당할 수 있습니다.

컨소시엄 환경에서는 모든 블록체인 접근이 권한 기반으로 이루어집니다. 사용자와 서비스는 로그인 후 인증 토큰을 발급받게 되는데, 이 인증 토큰은 기본적으로 JWT입니다. 이 토큰에는 권한 데이터가 포함되어 있습니다. 현재 저희는 모든 체인 API에 대해 읽기-쓰기 권한을 지원하고 있습니다. 토큰은 만료되도록 설정할 수 있으며, API를 조회할 때마다 체인 노드에 요청하기 위해 인증 토큰을 함께 첨부해야 합니다. 인증 토큰은 저희 아키텍처에서 보여드린 것처럼 노드 게이트웨이에서 검증됩니다.

또한 저희는 Pantheon에서 레이어 2 확장성도 처리할 수 있습니다. 아이디어는 여러분의 레이어 2 서비스에 요청 부하가 높을 경우, Merkle 트리를 사용하여 이를 배치(batch)로 묶는 것입니다. 저희는 Merkle 루트만 체인의 첫 번째 레이어에 커밋합니다. 이러한 방식으로 전체 처리량을 개선할 수 있습니다.

마지막으로, 여러분이 직접 Pantheon을 사용해 보시기를 권장합니다. 기본적으로 몇 가지 간단한 단계만 거치면 됩니다. 먼저 Docker를 설치하고, 저희 저장소를 클론(clone)하면 됩니다. 시스템에서 다음 포트들이 사용 가능한지 확인하세요. 그런 다음 매우 간단한 스크립트를 실행하기만 하면 됩니다 — 이 스크립트는 Docker Hub에서 모든 Docker 이미지를 가져와 서비스를 실행시켜 줍니다. 이후 브라우저를 열어 제가 여기서 했던 것처럼 이 로컬 호스트를 해당 포트에서 방문할 수 있습니다. 선택할 수 있는 다양한 옵션이 있습니다 — Playground를 사용하여 API 게이트웨이에 쿼리를 보낼 수 있는데, 이는 GraphQL 쿼리입니다. 그러면 다양한 결과를 반환받을 수 있습니다. 대시보드에서는 모든 블록을 확인할 수 있습니다. 특정 주소를 클릭하면 모든 해시값과 발신자가 누구인지, 그리고 기타 정보도 확인할 수 있습니다.

또한 저희는 여러분의 블록체인 시스템 모니터링을 용이하게 하기 위해 Grafana 기반의 모니터링 도구도 제공합니다. 블록 높이와 같은 항목에서 문제가 발생하면, 이곳에서 시스템에 무슨 문제가 있는지 파악할 수 있습니다.

이것으로 제 발표를 마칩니다 — 이 솔루션에 대한 간단한 소개였습니다. 질문이 있으시면 언제든지 저희에게 연락해 주시기 바랍니다. 감사합니다!
IoTeX 소개
2017년 오픈소스 플랫폼으로 설립된 IoTeX는 ****신뢰할 수 있는 사물 인터넷(Internet of Trusted Things)****을 구축하고 있으며, 이는 인간, 기계, 비즈니스, DApp 등 모든 “사물”이 신뢰와 프라이버시를 바탕으로 상호작용할 수 있는 개방형 생태계입니다. 30명 이상의 최고 수준의 연구 과학자 및 엔지니어로 구성된 글로벌 팀의 지원을 받아, IoTeX는 블록체인, 보안 하드웨어, 기밀 컴퓨팅(confidential computing)을 결합하여 차세대 IoT 기기, 네트워크, 경제를 실현합니다. IoTeX는 “물리적 세계를 블록 단위로 연결”함으로써 미래의 탈중앙화 경제를 견인할 것입니다.