Stuck-me-not: A deadlock detector on blockchain software in Rust

Pengxiang Ning, Boqin Qin · Procedia Computer Science · 2020

Recent years have witnessed a boom in blockchain systems written in Rust to utilize its efficiency and safety. Unfortunately, deadlock bugs have become one of the ubiquitous banes to these systems due to the heavy use of locks for parallelism and the misunderstanding of the lock mechanism in Rust. This paper analyzed the common lock-related pitfalls in blockchain systems written in Rust and proposed Stuck-me-not, the first MIR-based static deadlock detector, for the most common deadlock type: double-lock. We have discovered 29 previously unknown double-lock bugs in 11 popular blockchain-related projects. We believe our work can greatly improve the concurrency security of the current blockchain ecosystem.

Read the paper · More papers on PaperTik