IoTeX 테스트넷 알파(스트라이브) 공개

IoTeX
iotex_kr
Published in
13 min readJun 29, 2018

--

IoTeX 커뮤니티 여러분, 안녕하세요! 이번 6월은 IoTeX의 “테크놀로지” 테마 달 이었습니다. 이번 달에는 IoTeX 팀이 꾸준히 매진하고 있는 블록체인과 암호학 부문의 혁신 사항들을 공개했습니다. 우선, 블록체인의 개인정보 보호 (DKSAP-IoT)와 합의체계 (Roll-DPoS, 6월 말 발표 예정)에 대한 두 개의 학술 논문을 발표 했습니다. 해당 논문의 세부 사항은 저명한 블록체인 컨퍼런스에서 발표합니다. IoTeX팀은 “테크놀로지” 달인 6월을 마무리하며, IoTeX의 두번째 코드인 테스트넷 알파 (코드네임 “스트라이브”)를 공개합니다.

IoTeX 기트허브에서 코드를 확인해 보세요: https://github.com/iotexproject/iotex-core

스트라이브 코드를 실행하기 위한 세부 사항 안내는 여기 README 에서 확인 하실 수 있습니다. 상세 데모 영상은 여기에 준비되어 있습니다.

IoTeX Testnet Alpha - "Strive"

왜 “스트라이브” 인가?

스트라이브는 암호학의 선구자이자 MIT(EECS, CSAIL) 교수인 Ronald Linn Rivest의 이름을 따서 지었습니다. 아직 무슨 말인지 모르시겠다면, “Strive(스트라이브)”는 “Rivest(리베스트)”의 응용입니다. “밴스톤(Vanstone)”을 응용해, 저희의 첫번째 코드였던 “스톤밴(StoneVan)”이 탄생한 것처럼 말입니다. (*역주: 영어 철자를 바꾸는 방법을 통해서, 새로운 이름을 만들어 냈다고 하네요.)

Ronald Linn Rivest

리베스트는 여러 대칭 키 알고리즘 및 암호 해시 함수 알고리즘 등 알고리즘 혁신자 중 한 명입니다. 이번 코드를 “스트라이브”로 이름 지으며, IoTeX는 오늘 이렇게 IoTeX가 혁신을 만들어 나갈 수 있도록 길을 내어주신, 라이브스트 교수께 감사를 표합니다.

스트라이브 세부사항

IoTeX의 첫번째 코드였던 테스트넷 미리보기(코드명 “스톤밴”)는, 거래, 블록 처리, P2P 네트워크 상의 가십 프로토콜, 상호 연결 가능한 합의구조, 초기 RPC 지원 등과 같은 기본적인 블록체인의 기능을 소개했습니다. 지난 두 달동안, IoTeX의 개발팀은 스톤밴 코드의 개선과 더불어 IoTeX만의 새로운 기능들을 더하며, 스트라이브에 의미있는 성과들을 더했습니다. 스트라이브는 IoTeX의 최적화된 ECC 라이브러리와 Roll-DPoS 합의 체계 메카니즘의 전체적 실행을 포함합니다. 이번에 새롭게 발표하는 기능들과 기존 스톤밴에서 개선된 사항등은 아래 표를 통해서 확인해 보시기 바랍니다.

IoTeX의 초기 디자인 의사결정 + 스트라이브

저희의 지지자 분들이 알고 계시듯이, IoTeX는 다른 어떤 기존의 프로젝트를 빌리지 않고, 완전히 처음부터 블록체인을 설계하고 있는 프로젝트 입니다. IoT의 미래를 이끌어나갈 블록체인은 기본적으로 기존 블록들과는 다른 디자인과 실행이 필요하다고 생각하기 때문입니다. 공개형 블록체인에 대해서 조금 이해하고 계신 분들에게는 익숙한 개념일 것 같습니다만, 모든 프로젝트들은 초기의 디자인 의사결정을 통해, 해당 플랫폼의 궁극적인 사용 사례를 만들어나갈 혁신의 방향성을 잡아 나가야만 합니다. 이때, Vitalik이 소개한 “삼각 균형”이 가장 일반적인 접근입니다. Vitalik은 공개 블록체인은 “보안, 확장성, 분산형”의 세가지 요소 중 두가지는 갖출 수 있다고 설명했습니다.

IoTeX도 다르지 않습니다. IoTeX팀 또한 다양한 기기와 이해관계자들에게 빠르게 전달되어야 하는 중요한 데이터(예를들어, 값비싼 물건들의 위치정보 등)를 처리하는 IoT 의 미래에 기여하기 위해, 실 사용 사례를 만들어내기 위해, 해당 균형점에 대해 고민했습니다. 하지만, IoT 전용 블록체인을 설계하는 작업은, 대부분의 공개형 블록체인이 상대적으로 깊게 고민하지 않아도 될 ‘개인정보보호 및 정보처리상호운용’ 이라는 두가지 사항을 초반부의 디자인에서 반드시 고려해야만 합니다. 따라서, IoTeX의 초기 디자인 의사결정은 보안, 확장성, 분산형 이라는 세가지 요소의 적절한 균형을 찾는 작업 뿐만 아니라, 개인정보보호 및 정보처리상호운용 이라는 두가지 요소를 우선으로 하며 이루어 졌습니다. 그렇다면, IoTeX팀은 어떻게 이를 가능하게 한다는 것일까요? IoTeX팀은 이와같은 난제를 풀어내기 위해, 다음의 세가지 부분에 혁신을 가져오고자 합니다.

  • 경량 개인정보 보호 기술: 경량 암호화 기술 기반의 완전한 거래 대상 개인정보 보호 — 눈여겨 볼 점: Raullen (공동창업자), Xinxin (암호학 부문장)의 워터루 대학 박사학위는 경량 암호학 분야였다고 합니다!
  • Roll-DPoS 합의체계 메카니즘: 일반 Roll-DPoS 보다 분산화된 방법의 빠른 합의체계와 대량의 정보 처리 (6월 30일 황서 발간 예정)
  • 블록체인 안의 블록체인 아키텍쳐: 승인이 필요하지 않은 루트체인 — 유연하고 상호 운용가능한 서브체인간 커뮤니케이션이 네트워크 상 IoT 기기의 커뮤니케이션을 가능하게 함. 또한, 이와같은 서브체인들을 계속해서 더해나갈 수 있는 확장성을 가지고 있음.

이러한 혁신 사항들이 개별적으로도 매우 인상적인 것입니다만, 저희 IoTeX 팀은 해당 내용들을 개별 요소로 생각하지 않습니다. 그보다는, 이들이 함께 함으로써, IoT의 미래를 지원하기 위한 큰 그림의 필수적인 요소가 된다고 보고 있습니다. 보안을 중추로(예를들어, 공개형 블록체인은 보안 관련 균형점을 만들어 내지 못합니다.), IoTeX 팀만의 혁신 사항들이 어떻게 균형점을 어떻게 만들어 나가는지에 대해서, 저희의 생각을 조금 단순화 시켜 아래 표로 정리해 보았습니다.

IoTeX팀의 장기 비전은 다른 요소들의 부정적 영향을 최소화 하며, 각각의 주요 혁신 사항을 완전히 구현해 내는 것입니다. 이를 실행하는 것은 사실, 기술 및 인프라의 복잡하고 다양한 요소들을 해결해야만 하기 때문에 매우 어려운 도전입니다. 현재 저희는 긴 여정의 시작점에 있습니다만, 그렇기에 이번 스트라이브 발표는 매우 뜻 깊습니다. 초기 디자인 의사결정의 청사진에 기본이 되는 다음과 같은 3가지를 포함하고 있기 때문입니다: ECC 라이브러리의 실행을 통한 개인정보보호, 완전한 Roll-DPoS의 실행을 통한 확장성 및 분산화, 서브체인을 관리하며 계정 기반의 기록을 통한 상호운용성. 이와같은 마일스톤을 거쳐감으로써, 앞으로의 작업에 기반이 되는 주춧돌을 세우고, 한 블록 한 블록 씩 실제 세상을 연결해 나간다는 IoTeX팀의 목표를 이뤄나가기 위해 한 발짝 더 나아가도록 하겠습니다.

IoTeX 익스플로러 1.0 공식 런칭

스트라이브 코드 공개와 더불어, IoTeX 익스플로러 1.0을 소개합니다. 저희 웹사이트에서 실행 해 보실 수 있습니다.

IoTeX 익스플로러는 IoTeX 테스트넷에 연관된 주요 측정법을 자세히 보여주고, 어떻게 Roll-DPoS 합의체계 메카니즘이 작용하는지, 그리고 어떻게 투표 과정이 위임되는지 등을 보여주는 앞단의 시각화 도구 입니다. 현재의 기본 코드는 디지털 오션에 퍼져 있는 내부 도커 용기에서 실행됩니다. 디지털 오션은 IoTeX의 토큰 전송, P2P 네트워크 상에서 커뮤니케이션 하는 각 에폭(epoch) 별 21명의 후보자와 7명의 대표들 간의 투표가 진행되는 곳입니다. 또, 수의 제한 없이 완전한 노드와 가벼운 노드를 테스트넷에 더할 수 있습니다만, 이번 시각화 도구에서 저희는 후보자들과 대표들에게 집중했습니다. IoTeX의 테스트넷은, 주소값과 다음 대표단을 위한 투표 사이에 토큰을 모의 전송하는, “거래 주입기”를 활용합니다. 다시말해, IoTeX 익스플로러는 IoTeX 테스트넷의 블록, 전송, 투표 내역을 보여줍니다. 저희 스트라이브 데모 영상을 통해 IoTeX 익스플로러의 상세 데모를 확인하실 수 있습니다. https://youtu.be/KAw7_H71o7s

https://iotex.io/explorer

IoTeX 익스플로러는 다음과 같은 세가지 주요 사항으로 구성되어 있습니다.

  1. Roll-DPoS 합의체계 메카니즘의 구현:

현재 스트라이브 네트워크는 하얀 점 들로 나타나는 21명의 “후보자” 노드들로 구성되어 있습니다. 모든 에폭, 이런 21명의 후보자들의 부분 집합,은 특정 에폭을 위해 블록 생성/확인 하는 위임자로 선택됩니다. 항상, 해당 21명의 후보자들 중 7명은 특정 에폭에서 블록을 생산하고 확인하도록 선정된 “대표자”로서 색깔을 가진 점으로 강조됩니다. 깜박이는 색을 가진 점은 현재 블록을 생성하고있는 대표자를 나타냅니다. 그리고 색이 없는 점들은 블록을 확인합니다. 대표자 점들의 색은 새로운 그룹의 대표자들을 나타내며, 모든 에폭마다 변합니다.

2. 블록, 거래, 성과 측정

이번에는 IoTeX 테스트넷의 다양한 구성요소를 요약하는, 6개의 측정법에 대해 말씀 드리고자 합니다. IoTeX의 테스트넷은 모의 전송과 투표를 진행하는 “거래 주입기”를 활용합니다. 이 거래주입기는 주기적으로 초기화 되어, 코드를 정밀화 하고 퍼포먼스를 최적화하는 방법들을 확인하기 위한 다양한 표적 실험을 가능하게 합니다. 이와같이, 측정법들은 현재 실행에 관련된 것들이며, 주기적으로 초기화 됩니다.

  • 에폭(Epochs): 에폭이란 전체 네트워크를 대표해, 한 그룹의 대표자들이 블록을 생산하고 확인하는 한 기간을 말합니다. 에폭의 사이즈는 (예를들어, 블록의 개수) IoTeX 네트워크의 사이즈에 기반해서 자동적으로 확장됩니다.
  • 블록(Blocks): 현재 실행 단에서 생성되고 확인된 블록의 총 개수
  • 전송(Transfer): 노드 간 토큰 전송의 총 횟수
  • 투표(Votes): 다양한 대표자들의 득표 수
  • 최종 거래율(Finalized Transaction Rate, FTPS): 초당 네트워크에 주입된 건(전송 + 투표)의 총 개수. FTPS는 테스트넷 퍼포먼스를 잘 이해하기 위해 IoTeX 팀에 의해서 관리됩니다.
  • 블록 설계 내역(Block Building History, BBH): 현재 실행의 지속시간(초 단위)

3. 블록 및 거래 리스트

이번에는 IoTeX 테스트넷 상의 블록, 전송, 투표 관련 일련의 활동에 대해서 살펴 보도록 하겠습니다. 사용자들은 특정한 개별 블록, 전송 또는 투표를 클릭해서, 추가 세부사항을 살펴볼 수 있습니다.

  • 어떤 블록의 ID든지, 해당 블록에 기록된 전송이나 투표내역과 같은 세부사항을 확인 할 수 있습니다.
  • 어떤 전송 해시 든지, 사용자들은 발신자, 수신자, 거래량, 블록ID 등 관련 정보를 상세하게 확인 할 수 있습니다.
  • 어떤 투표 해시 든지, 사용자들은 투표한 사람, 득표한 사람, 블록 ID 등과 관련 정보를 상세하게 확인 할 수 있습니다.

또한, 특정 주소값, 거래, 블록, 투표 등을 검색해 볼 수 있는 검색 창이 있습니다. 향후 몇 개월 이내에, IoTeX 팀은 기본 코드를 향상 시키고 퍼포먼스를 최적화하기 위해, 테스트넷에서 다수의 종합적인 실험을 진행 할 예정입니다. 저희 커뮤니티에서도 이러한 시각화 업무 뿐만아니라 기트허브에 제공되어 있는 익스플로러 코드 업무에 함께 해 주시기를 부탁 드립니다.

스트라이브는 굉장했습니다. — 또 어떤 업데이트가 기다리고 있을까요?

IoTeX의 다음 코드인 테스트넷 베타(Testnet Beta)는 8월 말 경에 공개될 예정입니다. 다음 개발은 코드의 확장성과 견고함, 추가 기능 등에 집중합니다. 추가기능은 스크립팅과 가상 계산기(Virtual Machine)의 완전 지원, 서브체인간의 체인간 커뮤니케이션의 초기 지원, 그리고 UDP 와 TCP를 지원하는 상호 연결 가능한 플러그형 합의 구조 등을 포함합니다.

또한 IoTeX의 테크팀과 R&D팀은 새로운 기능들에 대한 이론적 측면 뿐만 아니라, 실제로 적용 가능한 컨셉의 측면에 대해서도 학술 및 리서치 논문을 통해 추가 발표를 더해나갈 예정입니다. 사업 개발, 파트너십, 커뮤니티에 대한 새로운 소식들에 대해서도 계속해서 전해 드리도록 하겠습니다. 개발자, 중소기업, 창업가, 커뮤니티, 그리고 전반적인 블록체인 업계에 긍정적인 영향을 끼칠 수 있는 의미있는 파트너십을 맺어 가는 것에 보람을 느낍니다. 다음 소식을 전해 드릴 때를 기다리며, 또 열심히 준비하도록 하겠습니다.

코드 공헌 — IoTeX팀을 도와주세요!

IoTeX 프로젝트는 오픈 소스로, 아파치 라이센스2.0 을 획득했습니다. 이와 더불어, 저희 IoTeX 팀은 지금까지 저희를 도와주시는 외부의 도움에 매우 고무되고 있습니다. IoTeX 팀에 도움을 주시는 여러 방법은 스타일/오류사항 수정, 기능 추천, 체계/알고리즘 제안, 문서작업 등 다양합니다. 저희 팀은 이와 같은 도움을 언제나 기다리며, 매우 감사 드리고 있습니다. 코드에 도움을 주실 수 있는 분들은, 저희의 코드 공헌 가이드라인을 참조해 주세요. 이슈사항에 대해서는, 저희 기트허브 페이지에서 해당 내용에 대해 제출해 주시기 바랍니다.

다양한 채널을 통해 IoTeX의 새 소식을 확인하세요. 프로젝트에 대한 기술적 문의사항은 공식 채널을 통해 언제든지 연락 주시기 바랍니다.

웹싸이트: https://iotex.io/

트위터: https://twitter.com/iotex_io

텔레그램 새소식 채널: https://t.me/iotexchannelko

텔레그램 그룹: https://t.me/IoTeXGroup

미디엄: https://medium.com/@iotex

레딧: https://www.reddit.com/r/IoTeX/

채용: https://iotex.io/careers

IoTeX

IoTeX는 자율적으로 확장가능한 개인보호 보호 중심의 IoT 전용 블록체인 입니다. IoTeX의 글로벌 팀은 암호학, 분산형 시스템, 머신 러닝 분야의 Ph.D, 최고 수준의 엔지니어, 경험 많은 에코시스템 설계자들로 구성되어 있습니다. IoTeX는 이종 기기간 컴퓨팅을 위한 블록체인 안의 블록체인 아키텍쳐, 빠른 Roll-DPoS 합의 메커니즘, 가벼운 개인정보 보호 기술 등 IoTeX만의 혁신을 통해 블록체인 3.0의 선두에서 혁신을 만들어나가고자 합니다. IoTeX는 한 블록 한 블록씩 세상을 연결시켜가며, 자율적 기기조작의 대중화를 이끌어가겠습니다.

--

--