Formal Verification
Overall, the MCD system's core contracts have been fully formally verified, and the verification of peripheral and helper contracts is ongoing. We are now currently working on the formal verification of the tokens that may be voted in as new collateral types, focusing on formally verifying the secondary contracts as well as the governance contracts in the system, and have incorporated formal verification into our continuous testing and release processes. In terms of our in-house efforts, we are leveraging klab, KEVM, and the K Framework for our Formal verification processes.
Small-step semantics:
DSS Core - executable specification
Exhaustive reachability claims
EVM bytecode performs as we expect
Function-level correctness
Transaction-level correctness
Big-step semantics:
Maker DSL / State Machine
High-level system model (K)
System-level invariants
Exhaustive behaviour checking
Executable system documentation
Update - Formal Verification that has been completed thus far:
Core system
Dai token contract
Auction contracts
Dai Savings Rate (DSR)
Emergency shutdown module (ESM)
The Oracle security module (OSM) has been largely completed.
Overall, the plan is to continue our formal verification efforts on the road to launching MCD, which includes updating past proofs based on the findings of our audits and bug findings.
Last updated