[알트산책] Scalability 문제는 내가 해결한다! Zilliqa 플랫폼

2년 전

[알트산책] 고성능 블록체인 Zilliqa 질리카 (ZIL)


안녕하세요. 알트산책의 @piljae 입니다. 오늘은 질리카라는 프로젝트에 대해서 소개해드리려고 합니다. 고성능 퍼포먼스의 블록체인을 꿈꾸는 프로젝트 입니다. 어떤 문제로 이 프로젝트를 시작하게 되었고, 어떻게 해결하고 있는지 천천히 설명해드리겠습니다:)

질리카 프로젝트


질리카 팀이 해결하고자 하는 문제는 Scalability 입니다. 현재 많은 블록체인 프로젝트들이 해결하려는 문제는 Scalability 문제입니다. 지난 주말에 가장 핫 했던 EOS, ETH의 DPOS, Casper 문제 역시도 이 Scalability 문제입니다. 더 많은 트랜잭션을 안정적이게 처리하기 위해서 다들 노력하고 있습니다. 질리카 프로젝트 또한 그렇습니다. 네트워크 샤딩이라는 기술을 활용하여 이 문제를 해결하고 더 많은 트랜잭션을 처리하고 자 합니다. 또 Turing complete하지 않는 새로운 스마트 컨트랙트 언어를 활용하여 Scalability를 높이려고 합니다.

Network Sharding


질리카의 핵심 기술이라 할 수 있습니다. 네트워크 샤딩은 여러 노드들을 몇가지 샤드에 나눠 넣어서 동시에 트랜잭션을 처리한 것입니다. 예를 들어 설명하면 총 2400개의 노드가 있으면, 600개의 노드씩 4개의 샤드로 그룹을 만드는 것입니다. 그리고 이 샤드들이 수평적으로 트랜잭션을 처리하게 되는 것입니다. 1초에 각 샤드들이 100개의 트랜잭션을 처리하게 된다면 4개의 샤드로 초당 400개의 트랜잭션을 처리 할 수 있게 되는 것입니다. 현재 AWS로 가상으로 구성된 노드들로 실험한 결과 초당 1389개 까지 트랜잭션을 처리했다고 합니다.

질리카의 합의 알고리즘


질리카는 PBFT 기반 합의 알고리즘과 POW를 사용합니다. PBFT를 위해서는 악의적인 노드의 참가를 막고 정직한 노드가 참가해야합니다. 이를 하기위해서 질리카는 GPU기반(ethash)의 POW를 합니다.
자세히 설명드리면 블록을 합의하는 노드에 참가하기 위해서는 POW를 실행합니다. 100블록마다 새로운 노드를 받아들이는데 이때 GPU기반의 pow를 통해서 문제를 빨리 푼 노드들만이 참가 할 수 있습니다. 이를 통해서 악의적인 노드를 걸러내게 되는 것입니다. (캐스퍼의 경우는 자산의 Locking을 통해서 노드에 참가하는 것과 비슷하다고 보시면 됩니다.) 이를 통해서 참가한 노드들은 랜덤한 샤드에 들어가게 됩니다.




PBFT 합의에 이루기 위해서는 악의 적인 노드가 1/3 이하가 되어야 하는데 PoW를 통해 들어온 노드들이 한 샤드에 600개 이상이 있을 때 악의적인 노드가 1/3 이상 있을 확률이 1/백만 로 줄어들게 된다고합니다. 이를 통해서 질리카는 올바르게 합의에 이루게 해서 안정적으로 블록체인이 돌아가게 하는 것입니다.

질리카의 팀


위의 어려운 합의 내용을 논문으로 증명해 낸것이 질리카의 팀입니다. 질리카의 주요멤버는 이 논문을 같이 작성한 박사들로 주로 이뤄져 있습니다. 마케팅에 특화된 팀이기 보다는 기술력으로 증명해 내려는 팀이라고 할 수 있습니다. 다른팀에 밀리지 않을 정도로 높은 기술력을 보유 하고 있습니다. (위의 논문 작성자 중에 카이버의 대표인 Loi Luu도 있습니다.)

질리카에 대한 종합적인 생각


  • 너무나도 많은 플랫폼

    이더리움, 네오, EoS등 이미 블록체인에 많은 플랫폼이 있습니다. 플랫폼이 활성화 되기 위해서는 그 안에 들어가는 DAPP의 성공이 중요하다고 생각합니다. 이더리움은 선구자로 많은 dapp이 이미 있고 qtum은 이더리움과 호환이 가능하여 오히려 쉽게 참여할 수 있습니다. 네오는 중국기반이라는 장점, EOS는 댄 이라는 대표가 갖은 강력한 브랜드... 플랫폼이 성공하기 위해서는 기술력 이상의 장점이 있어야 한다고 생각하는데 질리카는 그것이 아직 부족하다고 생각합니다.

  • 컴퓨터 박사 위주의 팀

    이것 역시 위의 내용과 비슷합니다. 구글처럼 박사 위주의 연구팀이 성공한 사례들도 있습니다. 하지만 우리는 연구위주의 팀이 규모를 이루지 못하고 갖고 있는 기술을 뽐내고 끝나는 경우를 많이 봤습니다. Mindshare라는 글로벌 마케팅 에이전시와 파트너쉽을 통해 질리카를 더 홍보하려는 노력을 하고 있긴하지만 실제로 파트너쉽이 팀의 성공으로 이끈적은 많이 없는게 문제입니다. 좋은 비즈니스맨이 질리카에 참여해 더 큰 성공을 이뤘으면 좋겠습니다.

  • 질리카의 기대점

    질리카의 로드맵을 보면 앞으로 트랜잭션을 더 빨리하기 위해 State sharding 도입(이더리움이 도입하려는 샤딩), pos도입, 크로스체인 지원, Zk-snark를 통한 프라이버시 보호를 지원하려고 합니다. 이런 것이 다 도입이 된다면 eos나 이더리움과 경쟁이 가능하지 않을까 싶습니다. 물론 이더리움과 이오스도 앞으로 더 달려나가겠지만..

    여기까지 네트워크 샤딩을 통한 Scalability 문제를 해결하려는 질리카 프로젝트의 소개였습니다. 감사합니다.

    맺음말


    읽어주셔서 정말 감사합니다. 저는 블록체인이 앞으로 더 성장하고 미래의 핵심이 될 것이라고 생각하고 있습니다. 그래서 거의 모든시간을 블록체인에 대해 공부하는데 시간을 쓰고 있습니다. 스팀잇에도 정말 많은 분들이 블록체인에 대해서 공부하고 연구하는 것 같다는 생각이 들어 함께 공부하면 좋겠다라는 생각이 들었습니다. 그래서 함께 스터디 하실분을 찾고 있습니다. 아직 정해진 방법은 없고 함께 만나서 토의하고 서로 발표하는 자리를 만들고 싶습니다. 편하게 연락주시면 감사하겠습니다.



  • Authors get paid when people like you upvote their post.
    If you enjoyed what you read here, create your account today and start earning FREE STEEM!
    STEEMKR.COM IS SPONSORED BY
    ADVERTISEMENT
    Sort Order:  trending

    스스로 홍보하는 프로젝트에서 나왔습니다.
    오늘도 좋은글 잘 읽었습니다.
    오늘도 여러분들의 꾸준한 포스팅을 응원합니다.

    ·

    감사합니다:)

    • 튜링 완전하지 않다면 분명 못하는 처리가 존재하겠군요?

    • PBFT알고리즘을 사용한다면 Primary Node가 존재해서 해당 노드가 기타 노드들(악의적인 노드가 될 수 도 있는)의 Tx처리 또는 확인결과를 브로드캐스팅하고 확인하는 과정을 반복해서 악의 적인 노드를 걸러내 정족수 이상인 경우 해당 블록을 생성하는 것이 맞지요?

    • 그런데 약간 헷갈리네요. PBFT의 노드가 되기 위해 POW 경쟁을 한다까지는 이해했는데요. 본래 PBFT가 제가 알기로는 암호화폐라는 보상없이 운영되는 프라이빗 혹은 컨소시엄 블록체인에서 채용하는 합의 알고리즘이라 들었는데... 갑자기 POS를 어떻게 적용할런지 잘 안그려지네요 ㅜㅠ

    • 아래 댓글에서 샤딩관련하여서.. 저는 캐스퍼의 샤딩이 분산DB 개념정도로 생각했는데 그게 아니었나 보군요 ㅜㅜ 샤딩에 관해 더 공부해봐야 겠습니다.

    • 오늘 글이 개인적으로 가장 재밌었습니다. ㅎㅎ 감사합니다. 풀보팅!!! & 스팀 그즈ㅡㅇ아아ㅏ아!

    ·
    1. 아무래도 그럴 가능성이 높겠죠.

    2. 네 맞습니다. 프라이머리 노드가 공표하고 나머지 노드들이 확인하는과정 맞습니다. 질리카에서는 pbft 에 EC-Schnorr multisignature를 적용한다고합니다.( 이부분은 잘 이해가 안되서 ..)

    3. pow를 적용하는 부분을 pos로 바꾼다는 얘기같습니다. 근데 pos 의 안정성이 아직 증명이 안된부분이 있어서 이부분이 증명되면 바꿀 가능성에 대해서 얘기하고 있습니다. 제가 전달을 잘 못한것 같습니다.

    4. 샤딩에 관해서는 더 공부해서 답변드리도록 하겠습니다. 제가 알고있는 정도는 무엇을 분산 시킬 지에 따라 조금씩 다른 개념 같습니다. 정확히는 공부하고 포스팅해보겠습니다!

    읽어주셔서 감사하고 친히 댓글까지 달아주셔서 정말 감사합니다:) 더 열심히 글 써보도록 하겠습니다.

    흥미로운 프로젝트네요. 전부를 이해할수는 없었지만 한번 더 읽어봐야겠습니다~ 한가지 질문 있는데요. 튜링완전하지 않은 언어를 쓰면 스마트컨트랙트를 만들어내는 데 제약이 생기지 않을까요?

    ·

    읽어주셔서 감사합니다:) 이 프로젝트의 목적은 오직 빠르고 많이!Scalability!Scalability! 인것 같아요. 백서에 따르면 현재 사이즈에 블록체인에 튜링완전한 언어를 사용하기에 적합하지 않고, 또 사용하게되면 샤딩하는데 어려움이 많아서 스마트컨트랙트를 잘 할 수있는 데이터플로우 형식의 아키텍쳐를 도입했다고하네요.
    (이 부분에 대해서 자세히 이해는 저도 잘 못했습니다 .)
    그리고 튜링완전한 스마트 컨트랙트에 대해서는 장단점이 있는것같습니다.
    장점의 경우에는 자유도가 높아서 생각한 모든 스마트 컨트랙트를 만들 수 있다는 점입니다.
    단점의 경우는 그만큼 해킹에 가능성도 높고, 돈이 오가는것이기 때문에 개발자의 실수로 큰 문제를 만들 수 있다는 점입니다. dao사건에서도 그랬으니까요 이런것 때문에 많은 프로젝트에서 스마트컨트랙 코드를 최소화 하는 방향으로 개발하고 있다고 합니다.
    그래서 꼭 자유도가 높은것이 최고는 아니라고 저는 생각합니다.
    제가 정확한 코드를 보지 못햇지만 스마트컨트랙트에 최적화 되게 만들었다면 튜링 불완전하지만 자주 사용하는 스마트 컨트랙트는 다 할 수 있지 않을까 싶습니다:) 좋은질문 감사합니다.

    ·
    ·

    친절한 답변 감사합니다^^ 이더리움이 말하는 샤딩도 저런 구조라고 생각하면 되는건가요? 아직 그쪽까지는 스터디를 하지 못해서 어렵네요.

    ·
    ·
    ·

    이더리움의 샤딩하고는 완전히 다르다고합니다. 질리카는 네트워크샤딩, 트랜잭션 샤딩을 하고 이더리움은 state sharding이라고 합니다. 저도 다르다는것만 레딧에서 찾고 어떻게 다른지는 지금공부하고있습니다. 공부가 다 되는대로 포스팅해보겠습니다 ㅎㅎ

    ·
    ·
    ·
    ·

    오 기대가됩니다 감사합니다 ㅎㅎ

    ㅜㅜ질리카 프셀을 놓쳐서 눈여겨보고있었는데 이미 10배이상 상승된 가격에 상장이 됬군요 ...

    ·

    usd 기준으로 20배라네요ㅜㅜ

    같이 스팀농사지어요!
    스팀으로 스벅 먹는 날까지!
    스팀으로 스시 사먹는날까지!

    ·

    감사합니다 :)

    아~! 유익유익했습니다~!! @piljae님 잘보았습니다~^^

    ·

    읽어주셔서 감사합니다:) 앞으로 좋은글 많이많이 올리겠습니다^^

    알트산책 무척 유익하네요!
    좋은 글 감사드립니다 :)

    ·

    감사합니다 앞으로 좋은글 더많이많이 올리도록 하겠습니다:) 읽어주셔서 감사합니다

    @piljae님의 게시물을 양해를 구하지 못하고 포스팅을 올렸는데, 양해를 구해야 할 것 같아 답글 남겨둡니다.

    ·

    괜찮습니다:) 제 글이 더 많이 공유되니까 저도 좋은 걸요 ㅎㅎ 감사합니다 공유해주셔서^^
    앞으로는 그냥 공유하셔도 상관 없습니다^^