English

Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing

Distributed, Parallel, and Cluster Computing 2022-08-29 v3 Performance

Abstract

Block-STM is a parallel execution engine for smart contracts, built around the principles of Software Transactional Memory. Transactions are grouped in blocks, and every execution of the block must yield the same deterministic outcome. Block-STM further enforces that the outcome is consistent with executing transactions according to a preset order, leveraging this order to dynamically detect dependencies and avoid conflicts during speculative transaction execution. At the core of Block-STM is a novel, low-overhead collaborative scheduler of execution and validation tasks. Block-STM is implemented on the main branch of the Diem Blockchain code-base and runs in production at Aptos. Our evaluation demonstrates that Block-STM is adaptive to workloads with different conflict rates and utilizes the inherent parallelism therein. Block-STM achieves up to 110k110k tps in the Diem benchmarks and up to 170k170k tps in the Aptos Benchmarks, which is a 2020x and 1717x improvement over the sequential baseline with 3232 threads, respectively. The throughput on a contended workload is up to 50k50k tps and 80k80k tps in Diem and Aptos benchmarks, respectively.

Keywords

Cite

@article{arxiv.2203.06871,
  title  = {Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing},
  author = {Rati Gelashvili and Alexander Spiegelman and Zhuolun Xiang and George Danezis and Zekun Li and Dahlia Malkhi and Yu Xia and Runtian Zhou},
  journal= {arXiv preprint arXiv:2203.06871},
  year   = {2022}
}
R2 v1 2026-06-24T10:11:54.867Z