Block-STM 성능 벤치마크
맥락
이 그림은 Aptos 백서의 프로토콜 설계 섹션에 등장하며, 특히 Block-STM 병렬 실행 엔진에 대한 논의 부분에 위치한다. Block-STM의 다중 버전 데이터 구조와 낙관적 동시성 제어 알고리즘에 대한 기술적 설명 이후에 제시되며, 해당 설계 주장의 실증적 검증으로서 제공된다. 벤치마크는 인메모리 데이터베이스에서 비자명한(non-trivial) 피어투피어 Move 거래를 사용하여 실행 전용 격리 실험으로 수행되었다.
이 그림의 내용
차트는 두 가지 경합 조건에서 물리적 CPU 코어 수에 대한 거래 처리량을 표시한다: 낮은 경합(많은 계정, 적은 충돌)과 높은 경합(적은 계정, 빈번한 충돌). 낮은 경합 상태에서 Block-STM은 32개 스레드로 확장할 때 순차 실행 대비 16배의 속도 향상을 달성하며, 코어 수에 따른 거의 선형적인 확장을 보여준다. 높은 경합 상태에서도 32개 스레드에서 8배 이상의 속도 향상을 유지하며, 거래가 충돌할 때 엔진이 재앙적으로 저하되는 것이 아니라 우아하게 성능을 낮추는 것을 보여준다. Block-STM은 동일한 메모리 위치에 대한 모든 쓰기가 버전화된 거래 ID와 함께 저장되는 다중 버전 데이터 구조를 사용하며, 읽기자는 가장 높은 번호의 선행 거래가 쓴 값을 획득한다. 실행 후 검증이 실패하면 영향받은 거래의 재실행이 발생하며, 엔진은 공유 카운터와 누산기에 대한 충돌 범위를 줄이기 위해 델타 쓰기를 사용한다.
의의
이 벤치마크는 높은 처리량의 스마트 컨트랙트 실행에 대한 Aptos의 주장을 뒷받침하는 주요 실증적 근거로, 단일 스레드 EVM 체인과 프로그래머 주석을 요구하는 병렬 환경과 아키텍처적으로 차별화한다. Block-STM의 적응적이고 힌트 불필요한 접근 방식이 인기 있는 공개 블록체인의 현실적 운영 환경인 불리한 경합 조건에서도 의미 있는 동시성을 확보할 수 있음을 입증한다.