OpenZeppelin Contracts

OpenZeppelin

April 2, 2022

This document describes the specification and verification of OpenZeppelin's contracts using the Certora Prover. The work was undertaken from March 2 to April 6, 2022. The latest commit that was reviewed and ran through the Certora Prover was 4088540a.

The scope of this verification is OpenZeppelin's governance system, particularly the following contracts:

ERC20Votes.sol

ERC20FlashMint.sol

ERC20Wrapper.sol

TimelockController.sol

draft-ERC721Votes.sol

Votes.sol

AccessControl.sol

ERC1155.sol

The Certora Prover proved the implementation of the contracts above is correct with respect to formal specifications written by the the Certora team. The team also performed a manual audit of these contracts. The formal specifications focus on validating correct behavior of OpenZeppelin's contracts as described by the OZ team and documentation. The rules verify valid states of a system, proper transitions between states, the solvency of the system and method specifications(unitTest-like rules). The formal specifications have been submitted as a pull request against OpenZeppelin's public git repository.

Certora Logo
logologo
Terms of UsePrivacy Policy