Skip to content
Blockchain

Why can I verify code against a spec but not verify the spec itself?

84

Opportunity

Formal verification for smart contracts proves that code satisfies a written specification, but it cannot determine whether that specification actually captures the contract's intended behavior. A 2025 MDPI survey covering state-of-the-art automated audit tools found they detect only 8 to 20 percent of exploitable bugs found in production, while reporting over 90 percent coverage of low-level syntax patterns. The gap sits in the spec: logical errors, asset lock conditions, and oracle assumptions almost never appear in specs because engineers do not know how to enumerate them before an exploit demonstrates the need. The NDSS 2025 PropertyGPT paper states directly that the community still lacks automated generation of comprehensive properties for effective formal verification. Every audit that clears a contract against an incomplete spec produces a false confidence floor rather than a safe

Why it matters

A tool that generates candidate invariants from contract code, business context, and historical exploit databases would turn formal verification from a correctness check into an actual security guarantee.

How I score the opportunity

The Opportunity Score is my own read, not a measurement: how much it hurts, how often it bites, and how little exists to solve it today. Higher means I think it is more worth building.

Severity8/10

How much pain it causes when it shows up.

Frequency7/10

How often people actually run into it.

Whitespace9/10

How little good tooling exists for it today.

More problems worth solving