Stuck-me-not: A deadlock detector on blockchain software in Rust
Abstract
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.
Community
0 commentsNo discussion yet
Be the first to share a question or observation.