소문으로만 듣던 Stripe과 Paradigm이 공동으로 인큐베이팅하는 Tempo가 드디어 공개되었네요. payment를 위해 만들어졌고, 당연히 대기업 기반 블록체인 답게 다양한 파트너가 있고 evm에서 가져올 수 있는 여러 feature가 있는데요.
에서 기대되는 부분 중 하나는 100k tps with sub-second finality evm l1이라는 점입니다. 참고로 현재 병렬 처리 기술을 중심으로 EVM L1을 만드는 Monad의 공식 홈페이지에서 언급되는 tps가 10,000 tps입니다.
참고로 다른 기관형 스테이블코인 체인인 Circle L1의 arc의 경우에는 litepaper에 따르면 3000 tps에 <350ms finality를 이야기하고 있습니다. 마찬가지로 evm입니다.
—-
이게 tps는 크게 실행 레이어와 합의 레이어 각각에서 병목이 있을 수 있습니다. 이건 Parallel EVM L2인 MegaETH의 레포트에도 잘 언급되어 있고 저도 과거 정리해서 작성한 부분이 있어 링크만 공유합니다.
간단하게만 이야기하면 실행, 데이터 전파, 데이터 입출력에서 최적화할 수 있는 각 영역이 있습니다.
그런데 100k tps with sub-second finality는 확실히 기존 evm 블록체인에서는 보기 어려운 스펙이기에 합의 레벨에서 PoA와 같이 비교적 중앙화된 방법을 썼거나 아니면 별도의 효율적인 DB와 함께 합의 알고리즘이 효과적이거나, 정말 소프트웨어 최적화, 지역 최적화를 잘했거나, 하드웨어 스펙이 솔라나 급이거나 등등 다양한 방법이 있을 것 같은데 이런게 궁금해지는거죠. 저 같은 경우 fast l1을 보통 미팅하면 이에 대한 방법론에 대해 질문하며 흔히 dd라고 부르는 실사를 진행합니다.
—-
(이미 제 채널에 계신 분들은 고수가 대부분이라 알겠지만) 별개로 tps와 finality가 각각 어떤 느낌인지 헷갈리는 분들도 있을 것 같아 이것도 설명해보면...
블록체인에서 TPS는 Transactions per Second의 줄임말로 시간 당 트랜잭션 수를 의미합니다. 이 지표를 높게 만드는 방법은 쉽습니다. 한 번에 저장하는 데이터 개수를 엄청나게 많이 하면 됩니다. 예를 들어 1시간 정도 단위로 블록이 만들어지고 여기에 충분한 시간 기반으로 트랜잭션 3600만개를 넣는다면? 3600만 / 3600 = 1만 tps를 달성할 수 있습니다.
다만 여기서 핵심은 유저가 트랜잭션을 쏠 때 이게 정말로 블록체인에 들어갔는지 컨펌되려면 최소 1시간을 기다려야 하는거죠. 그전까지는 실제로 블록이 컨펌되었는지는 절대 모릅니다. 또한 비트코인 같은 경우에는 longest chain rule을 사용하기 때문에 확률적으로 6개 정도의 블록이 생성된 이후에 진짜 컨펌되었다고 여겨지기에 잘못하면 6시간을 기다려야 하는거죠. 유저 입장에서는 6시간 기다려서 컨펌되었는데 tps는 10k라고 하면 이건 유저 경험이 좋을까요?
이렇기 때문에 tps는 항상 확정성(finality)라는 개념을 함께 사용합니다. 얼만큼 빠르게 내 개인 트랜잭션이 확정되어 포크 등에 대해 반려를 걱정하지 않아도 되는가라고 해석할 수 있죠.
물론 finality가 빨라도 tps 캐파가 충분하지 않으면 결국 유저입장에서는 트랜잭션을 못 날리는 것이기 때문에 결국 둘 다 중요합니다.
