‘오브젝트 기반의 무브 언어(Object Centric Move Programming Language)’라는 새로운 개념을 시장에 소개하여 꽤 충격적인 임팩트를 남기고 있는 수이 네트워크가 메인넷을 런칭한 지 1년이 넘었다. 수이는 메인넷 런칭 후 지난 1년 동안 괄목할 만한 성장을 이루어내고 있으며, 이는 일일 활성 유저 기준으로 레이어 1 블록체인들 중에서 3위를 기록한 것만 봐도 쉽게 알 수 있다.
수이는 왜 이렇게 빠르게 성장하고 있을까? 필자가 보기에는 이들이 가지고 있는 기술적인 혁신들이 많은 빌더들과 유저들을 끌어모으고 있다고 생각한다. 물론 수이만의 무브 언어도 기존 어카운트 기반의 스토리지 모델을 오브젝트 기반으로 바꾸는 등 엄청난 혁신을 가져왔지만, 인프라 리서처인 필자의 입장에서 수이가 가장 흥미로웠던 부분은 바로 수이의 컨센서스 프로토콜에 있다.
매번 같은 코스모스 SDK류 블록체인들만 보다가(이들을 비판하거나 비난하려는 것은 아니다. 다만 인프라적으로 너무 비슷한 체인들만 나오는 게 리서처의 입장에서 진부하다는 것뿐이다), 직접 처음부터 만든 컨센서스를 접했을 때의 충격은 이루 말할 수 없었다. 특히 수이의 컨센서스 모델은 1) 컨센서스와 멤풀을 분리하는 거의 최초의 시도였다는 점 2) DAG가 가지고 있었던 문제들을 현실적으로 풀어내서 실질적인 ‘확장성’ 문제를 해결했다는 부분이 매우 주목할 만하다고 생각했다.
그런데 여기서 ‘확장성’을 해결했다는 것이 무슨 뜻일까? 수이의 컨센서스 & 멤풀 모델을 한 번 봐보자.
수이의 멤풀 프로토콜인 나왈(Narwhal)에는 워커(worker)와 프라이머리(primary)라는 주체들이 있는데, 이번 글에서는 워커에 좀 더 집중해보자.
위 그림에서 볼 수 있듯, 워커들은 클라이언트에게 받은 트랜잭션 데이터를 묶음(batching)으로 처리한 다음 이 묶음의 해시를 다른 벨리데이터들의 워커들과 프라이머리들에게 전달하는 역할을 한다. 즉, 트랜잭션을 클라이언트에게서 받아내는 역할을 하는 것이 워커라고 할 수 있다. 나왈이 재미있는 점은 벨리데이터가 필요에 따라 이 워커 머신을 얼마든지 추가할 수 있다는 것이다.
좀 더 쉽게 설명하면, 나왈을 멤풀 프로토콜로 사용하는 수이에서는 네트워크에 대한 실시간 수요에 맞추어 워커 머신을 추가할 수 있기 때문에 사실상 트랜잭션 처리량의 문제는 이론적으로 없다고 할 수 있다. 갑자기 트랜잭션이 많이 몰리면 벨리데이터들은 워커 머신을 추가하여 트랜잭션을 처리하고, 트랜잭션 수요가 줄어들면 워커 머신을 줄여서 비용을 최적화할 수 있다. 따라서 수이에서는 ‘확장성’ 문제는 사실상 없다고 볼 수 있다.
그러면 수이는 완벽한 블록체인일까? 당연히 아니다. 블록체인의 속도를 이야기할 때 확장성도 중요하지만 실제로 UI/UX에 맞닿아 있는 지표는 레이턴시다. 여기서 확장성은 “얼마나 많은 트랜잭션을 처리할 수 있느냐”에 대한 부분이라면, 레이턴시는 “얼마나 빠르게 트랜잭션을 확정지을 수 있느냐”에 대한 부분을 다룬다고 할 수 있다. 따라서 유저가 직접적으로 체감하는 것은 레이턴시라고 할 수 있고, 레이턴시의 문제는 나왈이 가진 워커 머신 구조로는 해결할 수 없다.
레이턴시 문제는 어디서 해결해야 할까? 바로 컨센서스 레벨에서 해결해야 한다. 지금까지 수이의 컨센서스는 어땠는지 한 번 살펴보자.
지금까지 수이는 불샤크(Bullshark)라는 컨센서스를 사용하고 있다. 불샤크도 기존 BFT들에 비해 상당히 진일보한 컨센서스라고 평가받지만, 한계점들은 명확하다. 미스티세티 논문에 의하면, 불샤크 컨센서스는 평균적으로 초당 6만 개에서 8만 개의 트랜잭션을 처리할 수 있지만, 레이턴시는 최악의 경우 10초까지 발생한다는 치명적인 단점이 있었다. 결국 이를 해결하기 위해서는 컨센서스 차원의 변화가 필요했고, 그래서 등장한 것이 바로 이제 곧 발표될 미스티세티(Mysticeti)이다.
(위의 그래프는 컨센서스의 변화(불샤크에서 미스티세티로)에 따른 네트워크 레이턴시의 중위값 변화 추이를 보여준다. 불샤크를 사용했을 때는 약 2초의 레이턴시가 발생하였지만, 미스티세티로 컨센서스를 변경하고 나서는 약 0.39초로 줄었다는 부분이 매우 인상깊다)
미스티세티는 불샤크가 가진 약 세 가지 비효율을 해결하는 데에 집중하였는데, 미스티세티 페이퍼 정의한 불샤크의 문제점은 다음과 같다. 첫째, 불샤크는 트랜잭션을 증명하는 과정에서 레이턴시를 발생시킨다(벨리데이터 간에 블록을 전파해야 하고, 서명도 받아야 하며, 증명서를 다시 전파하는 과정에서 기존 컨센서스 프로토콜에 비해 긴 레이턴시를 야기한다). 둘째, 불샤크는 웨이브가 시작되고 마치는 것을 기준으로 블록을 커밋하기 때문에 웨이브가 끝나기 전까지는 블록 커밋을 할 수 없어서 레이턴시가 발생한다(여기서 웨이브라고 함은, propose, vote, certify 세 라운드를 하나로 묶은 것을 의미한다). 마지막으로, 불샤크에서 블록이 증명되기 위해서는 과반수 이상의 벨리데이터로부터 서명을 받아야 하기 때문에 벨리데이터들의 CPU를 잡아먹을 뿐만 아니라 컨센서스 과정에서 늦춰진 벨리데이터들이 다시 싱크를 맞추기 위해 감당해야 하는 업무들이 너무 큰 부담을 야기한다.
결국 이 세 가지 문제 모두 ‘레이턴시 증가’라는 결과를 야기하기 때문에 미스티세티는 위 세 가지 문제를 해결하기 위해 등장했다고 봐도 과언이 아니다. 그렇다면 미스티세티가 어떻게 위의 문제들을 해결할까?
우선, 블록이 증명되고 커밋되는 과정에서 발생하는 레이턴시는 Implicit Certificate을 통해서 해결한다. 여기서 Implicit Certificate이란, 굳이 증명서를 만들지 않아도 DAG에 자체적으로 증명서가 임베디드되어 있기 때문에 추가적으로 증명서를 발급하지 않더라도 블록 안에 임베디드되어 있는 증명서를 보고서 커밋을 결정할 수 있다. 이 덕분에 네트워크에 추가적인 메시지를 보내지 않고도 커밋을 할 수 있어서 불샤크보다 더 적은 메시지 딜레이가 발생한다. 불샤크의 경우 6개의 메시지 딜레이(2라운드에 걸쳐서 커밋을 진행하는데 각 라운드가 propose, vote, certify라는 과정을 거쳐야 하기 때문에)가 발생하는 반면, 미스티세티는 3개의 메시지 딜레이(미스티세티는 증명서가 따로 필요 없어서 propose, vote, certify라는 과정이 없이 블록을 보내기만 하면 된다. 해서, 한 라운드에 하나의 메시지 딜레이가 발생하고, 약 3번의 라운드에 걸쳐서 커밋이 진행되기 때문에 총 3번의 메시지 딜레이가 발생)가 발생한다.
또, 미스티세티는 파이프라이닝(Pipelining) 방식을 통해 웨이브가 끝나지 않아도 다른 웨이브를 시작할 수 있다. 웨이브가 끝나기 전까지는 블록 커밋을 할 수 없는 불샤크와 다른 부분이자, 미스티세티가 레이턴시를 줄일 수 있는 또 다른 이유이기도 하다.
마지막으로, 미스티세티는 Universal Commit Rule을 통해 한 라운드에서도 다수의 리더가 각자의 블록을 커밋할 수 있도록 하고, 서명된 블록만으로도 블록체인에 커밋할지 스킵할지를 결정하기 때문에 벨리데이터들이 블록을 하나하나 다 서명하여 과반수에 도달하지 않아도 블록을 네트워크에 커밋할 수 있도록 설계하였다.
이러한 해결책들을 통해서, 수이는 벨리데이터 수는 그대로 유지하면서도 여전 방대한 트랜잭션들을 처리할 수 있지만, 레이턴시는 0.5초 미만으로 낮추는 굉장히 유의미한 발전을 거두었다. 여태까지는 확장성과 짧은 레이턴시를 한 번에 이룰 수 없다고 여겨져 왔지만, 미스티세티는 이 두 가지를 동시에 이뤄냈다는 점이 아주 괄목할 만한 점이다.
수이는 여러 방면에서 매우 흥미로운 프로젝트다. 컨센서스부터 프로그래밍 언어까지 어느 하나 자신들이 만들지 않은 것이 없지만, 그럼에도 자신들의 블록체인이 개선되어야 하는 부분들을 끊임없이 모색하고 발전시킨다는 것이 필자에게는 너무나 인상 깊은 부분이다.
필자는 블록체인 업계의 기술이 텐더민트 이후로 거의 멈춰있었다고 생각했다. 이 사실은 그만큼 텐더민트가 가져온 기술적 혁신이 대단했다는 것도 시사하지만, 분명히 텐더민트가 개선되어야 하는 점들이 많았음에도 아무도 이 문제를 나서서 해결하려고 하지 않았다는 것을 의미하기도 한다. 모든 게 오픈소스인 이 시장에서, 막대한 자본과 인력을 들여 인프라를 개선시키는 것은 어쩌면 비용 효율적이지 못하다고 느껴지기도 한다. 새로운 혁신을 만든다고 할지라도, 그 혁신을 한 주체가 시장의 수혜를 받을지도 미지수이기 때문이다.
그러한 상황에서 수이는 지속적으로 새로운 컨센서스 연구를 하고 있다. 그리고 이번에 소개되는 미스티세티는 그 연구의 정점이라고 생각한다. 물론 세이와 같은 블록체인이 레이턴시를 0.5초 미만으로 낮추기는 했지만, 벨리데이터가 40개밖에 안 된다는 점에서 아쉬운 부분이 있었는데, 수이는 미스티세티를 통해 기존 수이 네트워크의 벨리데이터 수인 150개의 벨리데이터를 그대로 유지하면서 레이턴시를 0.5초 미만으로 낮췄다는 부분이 매우 놀랍다.
필자는 ‘네트워크의 확장성’을 ‘상상력의 상한선’이라고 표현한다. 개발자들이 무언가를 개발함에 있어서 네트워크의 확장성 한계를 염두에 두고 개발하는 것만큼 최악의 개발 환경은 없다. 이런 맥락에서 이번 미스티세티 업그레이드를 통해 수이가 달성한 수치들은 수이 생태계에 더 다양한 애플리케이션이 등장할 수 있는 기반을 마련한다고 본다. 이미 수이에는 스팸이나 Mine같이 네트워크의 엄청난 확장성을 요하는 프로젝트들이 만들어졌었다. 앞으로는 이보다 더 창의적이고 획기적인 애플리케이션들이 수이 위에 구현될 것을 기대한다.
또한, 수이 팀이 앞으로도 이러한 연구를 멈추지 않았으면 좋겠다. 이러한 연구들은 단순히 수이 네트워크뿐만 아니라 블록체인 업계 전반에 아주 좋은 영향을 준다고 생각하기에 앞으로도 이러한 선순환이 계속되기를 희망한다.
관련 기사, 뉴스, 트윗 등 :
Mysticeti Explained by Arun - https://x.com/Kloshy/status/1814344750021128302
수이 네트워크: 새로운 레이어1이 필요한 이유 - https://4pillars.io/ko/articles/sui-network/public
MYSTICETI: Reaching the Latency Limits with Uncertified DAGs - https://arxiv.org/pdf/2310.14821