질리카(Zilliqa) 분석, 그리고 샤딩(Sharding)과 PBFT(Practical byzantine fault tolerance)

in #zilliqa6 years ago (edited)

안녕하세요 코슬라입니다.

 다양한 암호화폐 플랫폼들이 개발되고 있지만, 그 실용성의 한계가 확장성에서 나타나고 있습니다. 퍼블릭 블록체인이면 복잡한 논리적 구조 때문에 TPS(transaction per second)가 떨어질수 밖에없고, 프라이빗 블록체인은 대체로 TPS가 뛰어나지만 중앙집권화된 구조이기 때문에 보안의 문제점, 블록체인이 지향하는 탈중앙화라는 가치와는 벗어나는 모순을 가지게 됩니다. 그래서 이번에는 뛰어난 트랜잭션 처리와, 높은 보안을 추구하는 질리카에 대해서 알아보려 합니다.


질리카(Zilliqa)?


 질리카는 샤딩이라는 기술을 활용하여 초당 수천건의 트랜잭션 처리가 가능한 블록체인 플랫폼입니다. 싱가포르 출신 개발자들이 많이 참여하고 있으며 이더리움의 확장성을 해결해줄 유망주로 떠오르고 있습니다. 특히 개발자 친화적이고 안전한 스마트 컨트랙트 언어 실라(Scilla)를 개발했습니다.

실라는 이더리움의 솔리디티가 가진 한계(복잡함, 다양한 오류)를
해결할 수 있는 속도와 실용성, 보안을 강조한 언어입니다.

- 작업증명을 활용
질리카 네트워크에 참여하고자 하는 새로운 노드는 먼저 작업증명(PoW)을 수행해야 합니다. 네트워크에 있던 기존 노드들은 작업증명의 유효성을 검증하여 노드가 네트워크에 합류할 수 있는 권한을 부여합니다. 그래서 작업증명은 네트워크에 입장할 수 있는 티켓 역할을 하며, 유효한 티켓을 가진 노드들만 네트워크에 합류가 가능합니다. 작업 증명은 실제 개체가 여러 노드로 확장하는 것을 어렵게 만듭니다.

- 자동 샤드 생성
질리카 네트워크에서 작업증명(PoW)은 자동으로 샤드를 만듭니다. 먼저 디렉토리 서비스 위원회(DS committee)라 불리는 특정 노드 집합을 선출합니다.(선출은 PoW에 기반) DS-epoch라 불리는 일정한 주기로 DS committee 중 한 멤버가 퇴출당하며 다른 새 멤버가 선출됩니다.

- 적합한 샤드 크기 선정
적합한 샤드 크기를 결정하는 것은 질리카 네트워크의 보안성에 중요한 역할을 합니다. 아래 그래프는 샤드 크기에 따라 멤버의 1/3 이상이 악의적일 확률을 보여줍니다.

https://blog.zilliqa.com

샤드의 크기가 100 노드인 경우, 1/3 이상의 악의적인 노드가 있을 확률은 0.04입니다. 하지만 안전한 네트워크의 운영을 위해서는 100 노드의 샤드 크기는 적합하지 않습니다. 그림을 보면 알겠지만 샤드의 크기가 커짐에 따라 악의 적인 노드가 있을 확률이 감소하며, 샤드의 크기가 600 노드 이상일 경우 확률은 백만 분의 1로 떨어집니다. 그래서 질리카는 최소 600 노드 이상의 샤드 크기를 고려한다고 합니다.

샤딩

 지난 글에도 샤딩에 관한 내용을 간단하게 설명했는데요, 질리카는 이 샤딩 기술을 핵심으로 하는 프로젝트입니다. 샤딩은 블록체인 네트워크에서 블록을 생성하는 노드들을 ‘샤드(Shard)’라는 작은 그룹으로 묶는 것을 의미합니다.

https://zilliqa.com

예를 들어 질리카 네트워크의 채굴 노드가 총 100개라고 할 때 이를 합의된 룰에 의해 10개 당 하나의 샤드로 묶어줍니다. 여기서 묶인 노드들은 PBFT 알고리즘 기반으로 합의하여 네트워크에서 발생하는 트랜잭션을 병렬적으로 처리하게 됩니다. 결국 묶여진 노드가 초당 10개의 트랜잭션을 처리할 수 있다고 가정한다면, 총 10개의 샤드가 존재하므로, 1초 당 100건의 트랜잭션을 처리할 수 있습니다.
 결국 이러한 구조로 트랜잭션을 병렬적으로 처리가 가능하므로, 네트워크가 커짐에 따라 비례하여 트랜잭션 처리량도 늘어납니다.

PBFT(Practical byzantine fault tolerance) 프로토콜 활용

질리카는 각 샤드에서의 합의를 위하여 PBFT 프로토콜을 적용합니다. 이 프로토콜은 각 샤드의 노드 중 악의적인 노드의 수가 전체에서 1/3보다 많을 경우에만 안전하지 않습니다.

https://zilliqa.com

그래서 합의 알고리즘에서 많이 활용되고 있으며, 현재 많은 프로젝트에서 PBFT를 활용하여 개발을 진행 중에 있습니다. 질라카가 PBFT를 활용하는 가장 큰 이유는 PBFT의 효율성을 작은 크기의 샤드에도 적용할 수 있기 때문입니다.

마무리하면서

 최근 블록체인의 주요 화두는 '확장성'이라 생각이 듭니다. 블록체인 플랫폼이 가진 뛰어난 보안과 투명성, 획기적인 서비스의 Dapp의 개발도 트랜잭션 처리량의 한계를 해결하지 못하면 실용화되기가 어려우니까요. 그런 부분에서 오미세고와 질리카 같은 프로젝트는 플라즈마와 샤딩을 주요 기술로 활용해 그 한계를 해결하려고 하고 있습니다. 그래서 이 두 프로젝트는 다른 것보다 개인적으로 많은 기대를 하고 있습니다.
 요즘 암호화폐의 가격이 연일 폭락하고 주변의 시선도 냉랭한 분위기 입니다. 스팀 플랫폼에서 발생한 에러와 이오스의 램 가격 폭등으로 인한 생태계 우려 등 믿고 있던 대표적인 플랫폼들의 안좋은 소식들도 자꾸 들려오는 데요, 가끔 우리가 생각하는 블록체인의 가치가 실현될 지 의문이 들기도 합니다.
 저는 블록체인이 구현한 공공거래장부로서의 투명성, 보안의 단계를 넘어 확장성의 한계를 뛰어넘기를 간절히 바랍니다. 그 날이 도래하는 순간이야말로 진정한 블록체인 대중화의 첫 시작일테니까요. 그 시작에 질리카와 오미세고가 함께하길 바랍니다.

Sort:  

I agree with the author, @shsfse!

And here I am.. just surfing the blockchain. HELLO FUTURE BLOCKCHAIN ARCHAEOLOGISTS!!