Steemit Token LAB - Zilliqa 42회

in #token-lab6 years ago

설명 영상

Zilliqa

  • 질리카Zilliqa는 블록체인 플랫폼을 지향합니다.
  • 공공 블록체인에 파편화(sharding) 개념을 도입해, 사용하는 유저의 수가 많아지면 그만큼 블록체인이 처리 가능한 거래량이 증가하는 플랫폼입니다. source
  • 2017년 9월 최초로 발행되었으며, 올해 3분기 메인넷 런칭 계획입니다.

이정표

  • 2015년 샤딩에 관한 논문 최초 발표
  • 시가총액 10억 달러 달성
  • 암호화폐 25위권 진입
  • 새로운 스마트계약 언어인 Scilla 시연
  • Scilla 언어를 사용하면 스마트계약서를 쉽게 작성할 수 있고 안전성을 확인할 수 있음

개발진

특징

  • 블록 생성주기 : 2분
  • 채굴 가능
  • 초당 수천건 트랜잭션 처리 가능, VISA 및 MasterCard와 같은 기존 지불수단들과 경쟁 가능.
  • 트랜잭션 처리율은 네트워크 크기에 따라 증가

샤딩이란?

  • 네트워크 샤딩(Network Sharding)
  • 트랜잭션 샤딩(Transaction Sharding)
  • 연산 샤딩(Computational Sharding)

네트워크 샤딩

  • 네트워크 샤딩은 질리카 네트워크를 샤드(Shard)라는 작은 노드 그룹으로 나눌 수 있는 메커니즘입니다.

  • 예를 들어 1000개의 노드로 구성된 네트워크를 100개의 노드로 구성된 10개의 샤드로 나눌 수 있습니다.
    1샤드 = 10노드

  • 각 샤드는 트랜잭션을 병렬로 처리합니다. 이러한 원리로 처리량은 샤드 수에 비례하여 증가합니다.

샤딩 구현의 어려움

  • Sybil 저항 : 개방적인 블록체인이므로 악의적인 노드(malicious nodes)도 있을 수 있습니다. 악의적인 노드는 시스템을 파괴하여 의사결정 과정에 영향을 미칩니다. 이를 Sybil 공격이라 합니다.

  • 샤드 생성 : 1000개의 노드가 있고, 이를 100개의 노드씩 10개의 샤드로 만듭니다. 이때, 어떻게 샤드를 만들어야 할까요? 어떤 노드가 어떤 샤드에 할당되어야 할까요?

  • 샤드 크기 : 100개의 노드가 구성된 1개의 샤드가 아니라 10개의 노드로 구성된 작은 샤드를 만들 수 있을까요? 안됩니다. 샤드 크기가 작을수록 공격자들이 제어권을 가져가기 쉽습니다. 샤드는 질리카 프로토콜의 합의 등을 실행하기 때문에, 저희는 악의적인 노드로 구성될지 모르는 작은 샤드를 바라지 않습니다.

샤딩 문제 해결

  • 시빌 공격 억제 : 시빌 공격을 막는 방법은 몇 가지가 있습니다. 노드에게 많은 암호화폐를 담보로 입금하도록 하는 방법이 있고, 작업 증명(PoW)을 하도록 하는 방법이 있습니다. 질리카는 작업증명을 사용합니다. 질리카 네트워크에 들어가기 위해 새로운 노드들은 작업증명을 해야 합니다. 기존에 있던 노드들은 작업증명의 유효성을 검증하고 새로운 네트워크의 합류 권한을 갖습니다. 작업 증명은 네트워크에 들어오기 위해서는 반드시 필요하며, 유효한 노드만 네트워크에 들어올 수 있습니다. 이는 무분별한 노드의 확장을 막을 수 있습니다.

  • 자동 샤드 생성 : 질리카가 PoW를 사용하는 것은 자동으로 샤드를 만들게 하는 것입니다. 질리카는 먼저 디렉토리 서비스 위원회(DS committee)라 불리는 특정 노드 집합을 선출합니다. 해당 선출은 PoW에 기반합니다. DS-epoch라 불리는 일정한 주기로 DS committee 가운데 멤버 하나가 퇴출되며 다른 새로운 멤버가 선출됩니다. (선입 선출 정책 사용)
    따라서 DS committee 규모는 항상 고정되어 있습니다. 위원회에 참여하는 새로운 노드는 작업 증명을 가장 빨리 하는 노드입니다. DS 위원회가 선출되면 샤딩 작업을 시작합니다. 네트워크에 있는 모든 다른 노드들은 다른 작업 증명을 수행합니다. 해당 작업 증명은 DS 위원회에서 유효성을 검증 받습니다. 작업 증명의 제출한 노드들은 임의적으로 특정 샤드에 할당됩니다. 작업 증명으로 제출한 마지막 몇 비트로 해당 노드가 어느 샤드에 할당될지 결정합니다.

  • 적정한 크기 선정 : 시스템 보안을 위해서는 적정한 샤드 크기를 선정하는 것이 중요합니다. 예를 들어 1000개 규모에 네트워크에서 75%가 정직한 노드이고, 25%가 악의적인 노드라고 가정합니다. 이 경우 다양한 크기로 샤드를 만들었을 때 악의적인 노드가 발생할 가능성이 얼마나 될까요? 예를 들어 샤드의 크기가 100노드인 경우, 1/3 이상이 악의적인 노드일 가능성은 4%입니다. 100노드 샤드 크기는 안전하다고 할 수 없습니다. 샤드가 커질수록 이러한 확률은 점점 떨어집니다.
    샤드의 크기가 600노드 이상인 경우, 1/3 이상이 악의적인 노드일 가능성은 백만 분의 1로 떨어집니다. 이러한 이유로 질리카는 최소 600노드 이상을 샤드 크기로 고려하였습니다. 이에 대해서는 샤딩 논문이 있으므로 읽어보시기 바랍니다.

합의(Consensus)

  • 샤드는 600개 이상으로 충분히 커야 합니다.
  • 질리카는 작업증명(PoW)을 사용하여 네트워크 샤딩을 수행합니다.
  • 네트워크 샤딩만으로는 높은 트랜잭션 처리율을 보장하지 못합니다. 다음 블록이 빠르게 생성되기 위해서는 각 샤드의 빠른 동의(Agreement)가 있어야 합니다. 질리카는 샤드 단위(600노드 이상)에서 각 샤드들이 합의에 도달하도록 합니다.
  • 비트코인과 이더리움이 사용하는 합의 프로토콜은 나카모토 합의(Nakamoto Consensus, 비트코인에 처음 사용된 합의 프로토콜로써 발명자인 사토시 나카모토의 이름에서 유래)

나카모토 합의

  • 네트워크가 일정한 시간 간격으로 리더를 선출하고, 리더는 다음 차례의 블록이라 확신하는 새 블록을 제안합니다.
  • 네트워크에 해당 블록을 중계(Broadcast)하면 노드들은 그 블록을 허용할지 거부할지를 결정합니다.
  • 나카모토 합의 핵심은 리더 선출 방식으로 작업 증명(PoW)을 가장 빠르게 완료한 노드가 리더가 됩니다. 정해진 시간에 단 한 명의 리더만 존재해야 합니다.
  • 작업증명은 연산 능력에 의존합니다. 나카모토 합의는 작은 샤드 사이즈를 작게 운영하는 질리카에 적합하지 않습니다. 질리카는 새로운 합의 프로토콜을 필요로 합니다.

PBFT 프로토콜(Practical Byzantine Fault Tolerance)

  • 각 샤드에서의 합의를 위해 질리카카 적용한 프로토콜입니다. 1999년 Castro와 Liskov에 의해 제안되었습니다. PBFT 프로토콜을 적용한 가장 큰 이유는 작은 크기의 샤드를 잘 활용할 수 있다는 점입니다. PBFT는 프토토콜 시작 전에 각 샤드의 노드 가운데 최대 1/3의 악의적인 노드가 있다고 가정합니다. 각 단계를 시작하고 진행하는 리더는 정직해야 합니다. 리더가 악의적인 경우 전체 합의 프로토콜을 멈추거나 교착상태에 빠지게 할 수 있습니다. 이 문제를 해결하기 위해 PBFT는 악의적인 리더를 다른 노드로 교체할 수 있는 뷰 체인지(View Change) 프로토콜을 제공합니다. PBFT 단계가 진행되지 않으면 각 노드는 리더를 변경하겠다고 알릴 수 잇으며, 노드 대다수가 결정하면 새로운 리더로 교체됩니다.

PBFT의 장점

  • 작은 규모의 샤드에 활용할 수 있습니다.
  • 합의 결정으로 완결성을 갖습니다. 나카모토 합의는 이중 지불 공격을 막기 위해 확률적으로 안전해지는 컨펌수(6컨펌)를 필요로 하지만 질리카는 블록 합의가 이루어지면 해당 블록이 마지막 블록이며 정확함을 의미합니다.
  • 질리카는 작업 증명을 사용하지만 시빌 공격을 막고 노드를 식별하는데만 사용합니다. 합의에는 사용하지 않습니다. 에너지 사용량을 줄일 수 있습니다. 노드 식별을 거치면, 여러 라운드의 PBFT 프로토콜을 실행해 연속하여 여러 블록을 사용할 수 있습니다. 결과적으로 보았을 때 작업증명은 매 100개 블록을 생성할 때 한 번 작업증명을 수행한다고 할 수 있습니다. 반면 나카모토 합의는 매 블록마다 작업 증명을 수행해야 합니다.

PBFT의 한계

  • Castro와 Liskov가 논문에서 설계한 전통적인 PBFT는 합의 그룹이 50개 이하인 노드로 구성되는 경우에만 효율적으로 작동하며, 질리카와 같은 600개 이상의 노드인 경우에는 노드 간 통신에서 병목현상이 발생합니다.

Zilliqa vs Plasma

  • 플라즈마는 오프체인 솔루션. 질리카는 온체인 솔류션입니다.
  • 오프체인 솔류션의 처리량은 온체인 솔루션의 처리량 보다 훨씬 빠릅니다. 모든 트랜잭션을 메인 체인에 올릴 필요가 없기 때문입니다.

테스트넷 결과

  • 2017년 4월 퍼블릿 테스트넷 진행중 : 2,088 tps(4 Shards 1,000노드)
    이더리움 10 tps, 퀀텀 50 tps, 비자카드 8,000 tps

파트너

  • 마인드쉐어와 파트너십 체결

거래소

  • 현재 ERC-20 토큰입니다.
  • 상장 거래소 https://coinmarketcap.com/currencies/zilliqa/#markets
  • 바이낸스와 후오비, OKEx 등에 상장되어 있으며, 국내 거래소로는 고팍스에 5월 4일 처음으로 상장되었습니다.
  • 빗썸과 업비트 거래소에도 상장되었습니다.
  • 5/24 코빗 상장, DEx.top 상장
  • 거래량 순위 : 후오비 > 바이낸스 > 빗썸 > 업비트 > OOOBTC > Gate.io > GOPAX > Korbit

가격 동향

  • 2018년 5월 2일 현재 코인마켓캡 순위는 38위이며, 토큰의 가격은 1 ZIL 당 0.11달러입니다. 유통량은 현재 약 73억 개입니다.
  • 2018년 5월 5일 현재 코인마켓캡 순위는 30위로 올랐으며, 토큰 가격은 1 ZIL 당 0.14달러입니다.
  • 2018년 6월 2일 현재 코인마켓캡 순위 26위 (시가총액 8억 5천만 달러)

사이트

Steemit Token LAB

  • 코인/토큰에 대해 의견 교류를 하는 장입니다.
  • 정보 및 의견 댓글(다른 글/기사 링크도 가능)에 대하여 10~100% 보팅해 드립니다.
  • 저자수익 중 STEEM 90%, SBD 85%를 투자하며, SBD 5%는 Token LAB 프로젝트를 위해 적립합니다. 투자금액 중 80%는 개인 기여도 대로 분배, 20%는 공동 분배합니다.
  • 적립금은 향후 코인/토큰 백서 번역 등을 위해 사용합니다. 현재까지 테조스와 대시 백서 번역이 완료되었습니다.
  • 아카이브 https://steemit.com/@token-lab

Coin Marketplace

STEEM 0.35
TRX 0.12
JST 0.039
BTC 69796.92
ETH 3521.66
USDT 1.00
SBD 4.70