질리카를 통해 본 샤딩에 대한 생각

in #coinkorea7 years ago

스크린샷 2018-04-10 오후 6.41.13.png

샤딩은 오프체인, 사이드체인 등 다양한 스케일링 문제 해결 방법 중 한 가지로, 질리카는 pBFT 기반의 샤딩 기술을 핵심 차별화 포인트로 가져가고 있다.

pBFT 합의 알고리즘의 블록 확정성을 기반으로 샤딩을 적용 하고 있다. pBFT 는 1/3 이상의 악의적인 노드가 있을 때 합의를 이루지 못하는데, 퍼블릭 블록체인인 질리카는 600개 이상의 노드를 한 개의 샤드로 구성하고, 랜덤으로 노드를 샤드에 배치하는 방향으로 악의적인 노드를 막으려고 한다. 샤드에 진입하기 위해 PoW 를 진행해야 하는 것은 일종의 안전장치로 볼 수 있다.

샤딩은 합의 노드들을 묶는 네트워크 단과 트랜스액션이 각각의 샤드로 분배되는 트랜스액션 단, 실제 스마트컨트렉트가 일어나는 컴퓨테이션 단으로 구분이 된다.

현재 질리카의 테스트넷으로 확인할 수 있는 부분은 트랜스액션단 레벨의 샤딩이다. 테스트넷에서 6개의 샤드에 AWS 상의 총 3600개의 노드로 네트워크를 테스트 중에 있다. 현재 성능은 2488TPS를 기록하고 있다.

스마트컨트렉트는 스킬라(SCILLA) 라는 오토마타 기반의 언어로 제작 중에 있고, 2분기 알파버전을 3분기에는 베타버전을 발표 준비하고 있다.

스마트컨트렉트를 샤딩에서 구현하면서 성능저하가 발생하지 않는 것이 질리카 성공의 키포인트가 될 것으로 본다. 트랜스액션 샤딩 단계에서는 샤드 간 커뮤니케이션이 필요하지 않지만, 스마트컨트렉트와 같은 State-machine 을 돌리는 단계에서는 샤드 간 커뮤니케이션이 필요한데, 이 부분의 처리가 샤딩의 성패가 결정될 것이기 때문이다.

스킬라 기반의 스마트컨트렉트 언어의 완성도가 질리카 뿐만 아니라, 샤딩 기반으로 State-machine 을 지향하는 다양한 프로젝트의 레퍼런스가 될 것으로 생각한다.