[Tech]IOTA 보고서 (시리즈3)

 

원문 링크 : https://medium.com/konfid-io-blockchain-reports/iota-report-decoding-the-tangle-part-3-4-284e7703dd2c

요약 / TL, DR

  • Tangle은 블록체인 시스템의 현재 과제를 극복하기 위한 이론적 개념입니다.
  • Tangle의 개념과 IOTA 프로토콜의 실제 구현 사이에는 분명한 차이점이 있습니다.
  • 백서에는 IOTA 프로토콜의 모든 현재 기능인 코디네이터 노드, 마일스톤 또는 스냅 샷에 대한 언급이 없습니다.
  • IOTA의 전체 노드는 기록을 최신 스냅 샷까지 저장합니다.
  • IOTA의 라이트 클라이언트는 전체 노드를 사용하여 네트워크와 상호 작용합니다.
  • 마일스톤은 코디네이터 (Coordinator)에 의한 트랜잭션으로, 재단에서 운영하는 전체 노드로서 시스템의 다른 전체 노드에서 유효한 것으로 처리됩니다.
  • 스냅 샷은 재단에서 시작한 이벤트로 시스템의 잔액을 모두 삭제하고 ‘새 창세기’에서 다시 시작합니다.
  • 스냅 샷은 블록 체인 네트워크에서 파이널 라이즈 된 블록과 유사합니다. 차이점은 현재 분산 된 광부 네트워크 대신 중앙 파티에서 생성된다는 것입니다.
  • Tangle의 현재 구현은 Milestone과 Snapshots가 IOTA Foundation 자체에서 수행되어 시스템에 대한 높은 수준의 제어를 제공하므로 매우 중앙 집중적 인 특성을 나타냅니다.

제 3 부 : IOTA 대 문제 – 이론과 실습 비교

소개

이 기사의 목적은 IOTA 프로토콜의 현재 구현에서의 분석을 제시하고 그것을 Tangle의 이론적 개념과 비교하는 것입니다. 이렇게하는 이유는 “The Tangle”백서에 설명 된 Tangle은 Foundation에서 배포 한 라이브 IOTA 프로토콜과 크게 다르므로 커뮤니티의 일부 영역에서 실제로 배포 된 기능과 관련하여 혼란을 야기하며 프로토콜의 특성은 아직 개념화되지 않았습니다.

Tangle은 다가오는 인터넷 산업의 요구 사항을 충족시키기 위해 프로토콜을 설계하는 방법에 대한 전망을 제공하기 위해 블록 체인 시스템이 가진 현재의 문제를 극복하기위한 이론적 개념입니다.

백서의 시작 부분에서, 이론적 시각과 얽힘의 현재 디자인은 완전히 다른 두 가지 사항이라고 명시되어 있습니다.

” 이 백서의 목적은 엉킴의 일반적인 특징에 초점을 맞추고 블록 체인을 제거하고 분산 원장을 유지하려고 할 때 발생하는 문제를 논의하는 것입니다. iota 프로토콜의 구체적인 구현에 대해서는 설명하지 않습니다. “( 백서, p.2 )

IOTA 프로토콜 개요

Tangle은 Whitepaper에 설명 된대로 잠재적으로 수백만 개의 IoT 장치로 구성된 분산 된 파티션 허용 네트워크에서 확장성이 뛰어난 방식으로 신뢰없는 트랜잭션을 수행하기 위한 프레임 워크를 제공하는 것을 목표로합니다.

그러나 실제적으로 IOTA 프로토콜의 실제 구현은 현재 이러한 약속 대부분에 부합하지 못하고 있습니다. 첫째, 프로토콜은 현재 분권화되어 있지 않으며 신뢰할 수도 없습니다. 여기에는 코디네이터 노드를 사용하여 다른 사람이 유효한 것으로 취급하는 신뢰할 수있는 마일스톤 트랜잭션을 제공하는 것과 같은 몇 가지 중앙 집중식 기능이 포함되어 있습니다. 더욱이, 시스템은 IOTA Foundation에 의해 수행되는 Snapshots에 의존하여, 네트워크가 너무 커지는 것을 막기 위해 Tangle의 상태를 잘라내는데, 현재는 확장성이 좋은 편이 아닙니다. 우리가 IOTA 프로토콜의 구현을 개략적으로 설명하고 그것을 Tangle의 이론적 개념과 비교할 때, 우리는 용어의보다 상세한 소개를 제공 할 것 입니다.

전통적인 블록 체인 프로토콜의 노드

일반적으로 Bitcoin & Ethereum과 같은 전통적인 Blockchain 프로토콜에는 네트워크와 상호 작용하는 4 가지 주요 유형의 참여자 (또는 노드)가 있습니다 (수신 노드 제외).

채굴자

채굴자들은 PoW 문제를 해결하고 그 솔루션을 네트워크에 전파하여 재정적 보상을 얻음으로써 가장 새로운 블록을 처음으로 만드는 것을 목표로합니다. 이론 상으로는이 작업을 수행하기 위해 네트워크의 마지막 블록 만 저장하면됩니다.

전체 노드

반면에 전체 노드는 블록 체인의 전체 기록을 저장하므로 Genesis 블록까지 이어지는 모든 트랜잭션을 확인할 수 있습니다. 광부는 광산 소프트웨어 + 전체 노드를 운영 할 수 있지만 그렇게 할 필요는 없습니다. 전체 노드를 운영한다는 것은 가장 긴 체인을 기반으로하는 경우에도 필수 컨센서스 알고리즘을 따르지 않은 잘못된 블록을 거부 할 수 있으므로 큰 마이닝 풀과 독립적이라는 것을 의미합니다.이 노드는 전체 기록을 저장하지 않는 다른 노드 따를 것이다.

가지 치기 노드

제거 된 노드는 모든 이전 트랜잭션을 확인했지만 로컬 컴퓨터의 저장 공간을 절약하기 위해 특정 높이 이하의 블록을 삭제했습니다. 커뮤니티에서는 거의 쓸모가 없지만 제한된 스토리지 용량 만 있으면서도 새로운 블록을 확인할 수있는 개인에게는 적합합니다.

라이트 클라이언트

마지막 유형은 라이트 클라이언트로서 거래를 송수신 할 수 있지만 네트워크의 이력을 로컬에 저장하지 않으므로 전체 네트워크에 의존하여 블록 체인의 올바른 상태를 제공합니다. Ethereum에서 Light Client 는 기본적으로 블록 헤더를 다운로드하고 검증해야 할 부분의 일부만 검증합니다.

IOTA 백서에 설명 된 DAG 기반 Tangle Network에서 노드는 ” 트랜잭션을 발급하고 유효성을 검사하는 엔터티 “(WP, p.2)로 설명됩니다. 따라서 서로 다른 참여자가 실제로 네트워크와 상호 작용하는 방식에 대한 설명은 제공되지 않습니다.

그러나 실용적인 IOTA 구현에는 명확한 차별화와 코디네이터 라는 특수 유형의 노드 가 존재하며, 아래에서 더 자세히 설명 할 것이다.

IOTA 프로토콜의 노드 및 특별 거래

전체 노드

이론적으로 풀 노드는 대략 매월 발생하는 마지막 스냅 샷의 트랜잭션을 저장, 업데이트 및 확인합니다. IOTA 네트워크가 비동기이기 때문에 전체 노드는 개별적으로 Tangle의 전역 상태를 저장할 필요가 없지만 네트워크는 IOTA 엉킴을 형성합니다. 전체 노드는 이웃 노드로 트랜잭션을 전파합니다.

Bitcoin 또는 Ethereum과 유사하게 IOTA 전체 노드를 운영하기위한 직접적인 금전적 인센티브는 없습니다. 따라서 전체 노드 실행은 대부분 이타적인 또는 보안상의 이유로 수행됩니다. Full Nodes는 IOTA 사용자가 최신 스냅 샷까지의 최신 이정표를 넘는 트랜잭션을 확인할 수있게합니다. 사용자가 과거의 모든 스냅 샷이 올바르게 수행되었다고 믿는다면, 그들은 유효한 트랜잭션 만 검증하고 있음을 확신 할 수 있습니다.

미래에 IOTA 는 다음 기사에서 논의 할 Permanodes 라는 개념을 통해 스냅 샷을 넘어선 Tangle 전체 기록을 저장할 전체 노드에 인센티브를 제공할 계획 입니다.

라이트 클라이언트

Light Clients는 전체 노드 네트워크를 통해 Tangle과 상호 작용하는 장치입니다. 그러나 상태 저장소에 대한 참조는 없습니다. Tangle에 액세스하지 않으면 팁 선택이 불가능합니다. 따라서 IoT 장치 및 최종 사용자 Wallet 소프트웨어와 같은 라이트 클라이언트가 전체 노드와 상호 작용하여 팁 선택 알고리즘을 실행하면 특정 노드가 저장 한 Tangle 부분에만 액세스 할 수 있습니다. 따라서 가벼운 클라이언트는 네트워크에 잘못된 트랜잭션을 전파하는 악성 노드와 상호 작용할 위험이 있습니다. 따라서 전체 노드를 실행하기위한 하나의 인센티브는 Tangle을 처리하기 위해 알 수없는 당사자가 실행하는 다른 노드에 의존 할 필요가 없습니다. 특히 IoT를 처리 할 때 네트워크에서 트랜잭션을 100 % 신뢰해야한다고 결정할 때 그렇습니다.

코디네이터 및 연혁

현재 IOTA 프로토콜로 트랜잭션중인 노드의 세 번째 유형은 코디네이터입니다. 공동 창립자 인 Dominik Schiener가 언급했듯이, IOTA 프로토콜은 현재 IOTA Foundation에서 운영하는 특수 노드 유형인 전체 코디네이터 (Coordinator)를 기반으로하며, 약 1-2 분마다 트랜잭션 ( 마일스톤 이라고 함)을 발행합니다. 재단에 따르면 유효한 거래만 언급합니다. 공식 IOTA 소프트웨어를 실행하는 모든 노드는 코디네이터 서명을 인식하고 이 노드가 참조하는 모든 트랜잭션을 유효한 것으로 간주합니다.

따라서 Milestone 은 코디네이터가 발행한 특별한 거래 일 수 있습니다. Tangle이 너무 넓어 지지 않도록하기 위해 Light Client가 확인해야하는 트랜잭션의 수를 줄이는 것이 목표이며, 이로 인해 Tangle의 특정 끝 부분에 여러 원장이 동시에 존재할 수 있습니다. 그 과정에서 잠재적 인 이중 지출을 해결하고 시스템의 불일치를 방지하기 위해 분기를 메인 tangle로 되돌려 놓습니다.

따라서 IOTA의 거래 는 직접적으로 또는 간접적으로 마일스톤에 의해 참조되는 경우에만 ” 확인 된 거래 ” 로 취급됩니다 . 이는 트랜잭션의 유효성을 확인하기 위해 네트워크의 나머지 노드가 필요로하는 계산량을 줄입니다. 마일스톤을 게시 할 때 코디네이터가 수행하는 팁 선택 알고리즘은 공개되지 않습니다. IOTA 재단 은 네트워크가 충분히 커질 때까지 이정표가 ” 34 % 공격 방어를 제공하는 메커니즘 “으로 필요하다고 말합니다 . 네트워크가 코디네이터 없이도 실행할 수있는이 중요한 크기에 도달 한 공식 성명은 아직 발표되지 않았습니다.

재단은 장기 목표가 네트워크의 분산화를 보장하기 위해 코디네이터없이 프로토콜로 전환하는 것이라고 말합니다. 그러나 IOTA Foundation이 IOTA 네트워크의 단일 실패 지점으로 남아 있기 때문에 그때까지 Tangle의 현재 구현은 고도로 중앙화 된 특성을 나타냅니다.

스냅 샷

IOTA 프로토콜에 의해 고용과 얽힌 백서에서 언급되지 않은 또 다른 기능은 스냅 샷 ,네트워크의 크기를 치기 위해 IOTA 핵심 개발 팀에 의해 몇 달에 한 번씩 사용됩니다. 스냅 샷은 0이 아닌 잔액을 모두 저장하고 모든 0 값 주소를 삭제합니다.

이것은 효과적으로 엉킴이 다시 확장 할 수있는 새로운 기원으로 작용합니다. 스냅 샷을 수행하는 이유는 네트워크를 가볍게 유지하고 상태의 크기를 줄이는 것입니다. 이것은 ‘대표, 전통 blockchain 시스템의 블록 개념적으로 유사하다 확정 ‘상태. 이러한 Snapshots는 전체 노드에 대한 이점을 제공합니다. 전체 노드의 기록을 저장할 필요가 없기 때문입니다. 그러나 정규 참여자는 네트워크의 전체 역사를 창세기 ( Part 2에서 설명한 문제)로 다시 볼 수 없으므로 감사의 비용을 부담해야합니다 .

따라서 스냅 샷은 블록 체인 네트워크의 최종 블록과 매우 유사합니다. 차이점은 현재 분산 된 광부 네트워크 대신 중앙 파티를 통해 생성된다는 것입니다.

몇 명의 개인으로 구성된 중앙 집권 기관인 IOTA 재단은이 스냅 샷을 취할 책임이 있으며이 스냅 샷을 취할 수 있습니다.이 스냅 샷은 분산 된 네트워크가 아닌 현재의 문제를 다시 한번 강조하지만 소수의 개인이 광범위한 규모로 확장하지 못하도록하는 데 의존합니다 이로 인해 네트워크가 다양한 공격에 취약해질 수 있습니다.

결론

어쨌든, IOTA 네트워크가 직면하고있는 주요 과제는 IOTA Foundation 자체로서의 단일 실패 지점에 대한 의존도를 제거하는 것입니다. IOTA 프로토콜은 현재 알려지지 않은 팁 선택 알고리즘을 사용하여 코디네이터 노드가 발행 한 네트워크 보안을 위해 마일스톤을 사용합니다. 재단에서 수동으로 수행하는 스냅 샷은 기록을 삭제하므로 감사 기능이 제거됩니다. 전체 노드는 가장 최근 스냅 샷까지 이단의 기록을 이단 적으로 호스팅합니다. IOTA 프로토콜이 백서의 약속을 성취하기 위해서는 진정으로 분산되고 확장 가능한 IoT 네트워크가 필요합니다.이를 극복하기 위해서는 몇 가지 장애물이 있습니다.

답글 남기기

이메일은 공개되지 않습니다.