A collection of smart contracts that have undergone formal verification using the K-framework to ensure correctness against specifications.
Verified Smart Contracts is a repository of smart contracts that have been formally verified using the K-framework. It provides mathematically proven correctness guarantees by specifying intended behaviors and verifying that the compiled code satisfies those specifications through symbolic execution and reachability logic. This addresses the critical need for security and reliability in blockchain applications where bugs can lead to significant financial losses.
Smart contract developers, blockchain security researchers, and organizations deploying high-value contracts who require rigorous assurance of correctness. It is also valuable for academics and practitioners interested in formal methods applied to blockchain technology.
Developers choose this project because it offers a transparent, verifiable approach to smart contract security beyond traditional audits, using formal methods to exhaustively check compliance with specifications. The use of the K-framework and reachability logic provides a robust, semantics-based verification infrastructure trusted for critical contracts like Ethereum 2.0 and GnosisSafe.
Smart contracts which are formally verified
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides exhaustive verification using reachability logic and symbolic execution in the K-framework, ensuring all code paths meet formal specifications as described in the README.
Formal specs are created through discussions with contract owners, catching bugs early and aligning intent with implementation, a key step highlighted in the verification process.
Includes high-profile contracts like Ethereum 2.0 Deposit and Uniswap, offering trusted examples for common blockchain use cases, as listed in the repository.
Leverages Z3 to solve constraints during symbolic execution, enhancing the efficiency and robustness of proofs, mentioned in the verification approach.
Requires installation and deep understanding of the K-framework, making it inaccessible without significant upfront investment, as noted in the Resources section.
The repository only contains pre-verified contracts, not a tool for verifying new or arbitrary contracts, limiting its utility for broader applications.
Uses 'The Reproducibility License 1.1.0', which imposes conditions that may hinder broader adoption or modification, as highlighted in the License section.
Correctness depends on the K-framework, KEVM, and Z3, adding layers of trust that could be points of failure, as acknowledged in the disclaimer.