Somnia 레이어 1 블록체인 심층 분석: 100만 TPS와 1초 미만의 완결성
· 약 60분
Somnia는 1,000,000 TPS (초당 트랜잭션 수) 이상을 처리할 수 있고 1초 미만의 완결성을 갖춘, 극강의 성능을 위해 구축된 EVM 호환 레이어 1 블록체인입니다. 이를 달성하기 위해 Somnia는 네 가지 핵심 기술 혁신으로 기존 블록체인 설계를 재구성했습니다.
- 멀티스트림 합의 (MultiStream Consensus): Somnia의 합의는 새로운 지분 증명 BFT 프로토콜로, 각 검증인이 트랜잭션의 자체 "데이터 체인"을 유지하며 독립적으로 블록을 생성합니다. 별도의 합의 체인은 주기적으로 모든 검증인 데이터 체인의 최신 블록을 확인하고 이를 하나의 글로벌 블록체인으로 정렬합니다. 이는 병렬 트랜잭션 수집을 가능하게 합니다. 즉, 여러 검증인이 각자의 데이터 스트림에서 동시에 트랜잭션을 전파하고, 나중에 이들이 단일 순서 로그로 병합됩니다. 합의 체인 (Autobahn BFT 연구에서 영감을 받음)은 글로벌 블록이 완결된 후 어떤 검증인도 자신의 스트림을 포크하거나 변경할 수 없도록 하여 보안을 보장합니다. 그림 1은 검증인별 체인이 글로벌 합의 블록으로 통합되는 이 아키텍처를 보여줍니다.
- 가속화된 순차 실행 (Accelerated Sequential Execution): Somnia는 다중 스레드 실행에 의존하는 대신 단일 코어를 극도로 빠르게 만드는 것을 선택했습니다. Somnia 클라이언트는 EVM 스마트 계약을 네이티브 x86 머신 코드로 컴파일합니다 (JIT 또는 AOT 방식). 자주 사용되는 계약은 최적화된 머신 명령어로 변환되어 일반적인 인터프리터 오버헤드를 제거하고 실행 시 네이티브 C++에 가까운 속도를 달성합니다. 벤치마크에서 이는 ERC-20 전송당 수백 나노초의 성능을 보여주며, 단일 코어에서 초당 수백만 건의 트랜잭션을 지원합니다. 덜 호출되는 계약은 표준 EVM 인터프리터에서 계속 실행될 수 있어 컴파일 비용의 균형을 맞춥니다. 또한 Somnia는 최신 CPU의 비순차적 실행 및 파이프라이닝 ("하드웨어 수준 병렬성")을 활용하여 개별 트랜잭션 속도를 높입니다. 네이티브 코드로 컴파일함으로써 CPU는 칩 수준에서 명령어를 병렬로 실행할 수 있어 (예: 메모리 가져오기와 계산 중첩) 토큰 전송과 같은 순차적 로직을 더욱 가속화합니다. 이 설계는 소프트웨어 병렬성이 고도로 상관된 워크로드 급증 시 종종 실패한다는 점을 인식한 것입니다 (예: 모든 트랜잭션이 동일한 계약에 몰리는 인기 NFT 민팅). Somnia의 단일 스레드 최적화는 순진한 병렬 실행이 정체될 수 있는 "핫" 계약 시나리오에서도 높은 처리량을 보장합니다.
- IceDB (결정론적 스토리지 엔진): Somnia는 상태 접근 성능과 예측 가능성을 극대화하기 위해 IceDB라는 맞춤형 블록체인 데이터베이스를 포함합니다. 일반적인 LevelDB/RocksDB 백엔드와 달리 IceDB는 결정론적 읽기/쓰기 비용을 제공합니다. 모든 작업은 정확히 얼마나 많은 RAM 캐시 라인과 디스크 페이지에 접근했는지에 대한 "성능 보고서"를 반환합니다. 이를 통해 Somnia는 비결정성 없이 일관되고 합의-결정론적인 방식으로 실제 리소스 사용량에 기반하여 가스비를 부과할 수 있습니다. 예를 들어, 메모리에서 처리된 읽기는 디스크를 거치는 콜드 리드보다 가스비가 저렴할 수 있습니다. IceDB는 또한 읽기와 쓰기 모두에 최적화된 개선된 캐싱 레이어를 사용하여 매우 낮은 지연 시간 (평균 작업당 15–100 나노초)을 달성합니다. 또한 IceDB는 내장된 상태 스냅샷 기능을 갖추고 있습니다. 로그 구조 스토리지의 내부 구조를 활용하여 애플리케이션 수준에서 별도의 머클 트리를 구축하는 대신 글로벌 상태 해시를 효율적으로 유지하고 업데이트합니다. 이는 상태 루트 및 증명 계산 오버헤드를 줄입니다. 전반적으로 IceDB의 설계는 Somnia의 규모에서 중요한 예측 가능하고 고속의 상태 접근 및 가스 측정의 공정성을 보장합니다.
- 고급 압축 및 네트워킹 (Advanced Compression & Networking): 초당 수백만 TPS를 처리한다는 것은 노드가 막대한 양의 트랜잭션 데이터 (예: 초당 100만 ERC-20 전송은 약 1.5 Gbps의 원시 데이터)를 교환해야 함을 의미합니다. Somnia는 압축 및 네트워킹 최적화를 통해 이 문제를 해결합니다.
- 스트리밍 압축: 각 검증인이 연속적인 데이터 스트림을 게시하기 때문에 Somnia는 블록 간에 상태 저장 스트림 압축을 사용할 수 있습니다. 반복적인 주소, 계약 호출, 매개변수와 같은 공통 패턴은 스트림에서 이전에 나타난 것을 참조하여 압축되므로 독립적인 블록 압축보다 훨씬 더 나은 비율을 달성합니다. 이는 블록체인 활동의