Verification#

Proving contracts correct, executing them on symbols, checking them at run time, and fuzzing them with random transactions.

Floyd and Hoare: proving a withdrawal correct with assertions (1967-1969)

Floyd and Hoare: proving a withdrawal correct with assertions (1967-1969)

King’s symbolic execution: every path of a fee schedule (1976)

King's symbolic execution: every path of a fee schedule (1976)

Meyer’s design by contract: an escrow with checked clauses (1986)

Meyer's design by contract: an escrow with checked clauses (1986)

Oyente: symbolic execution finds the BeautyChain overflow in bytecode (2016)

Oyente: symbolic execution finds the BeautyChain overflow in bytecode (2016)

Echidna: property-based fuzzing finds a self-transfer bug (2020)

Echidna: property-based fuzzing finds a self-transfer bug (2020)