MIVORA Start learning free

What an Audit Does — and Doesn’t

“Audited” is one of the most misread words in crypto. An audit raises the odds a contract is safe; it never proves it.

Crypto & Tokenization · Lesson 39 · 10 min read

You’ve now seen how contracts get drained — reentrancy (lesson 37), oracle manipulation (lesson 38). The industry’s main defense is the audit, and “audited by [firm]” is plastered on every project as a badge of safety. But some of the biggest hacks in history hit audited protocols. So what does an audit actually buy you — and what does it emphatically not? Getting this straight is the difference between informed confidence and a false sense of security. Hold the question: if a contract passed a professional audit and still got drained, was the audit worthless — or were you misreading what it promised?

What an audit is: expert review that finds bugs

A security audit is a focused expert review: skilled security researchers read a protocol’s code, hunting for vulnerabilities like the ones in this module, and report what they find so the team can fix it before launch. A good audit genuinely raises the odds a contract is safe — expert eyes catch real, dangerous bugs that would otherwise ship. It’s valuable and worth demanding. But note the shape of what it does: an audit is a search for problems, and finding no more problems in a limited time is not the same as proving there are none. That distinction is the whole lesson.

The thing it can’t do: prove the absence of bugs

Here’s the deep, humbling truth: an audit cannot prove a contract is bug-free. Finding a bug proves it exists; not finding one only proves the auditors didn’t find it in the time and scope they had — “absence of evidence isn’t evidence of absence.” Auditors work under real limits: finite time, a specific code version (a later change can reintroduce bugs), and human fallibility against novel or fiendishly subtle attacks. So “audited” means “experts looked hard and fixed what they found,” which is good — not “guaranteed safe.” Treating an audit badge as a safety guarantee is one of the most expensive misreadings in crypto, and it’s exactly why audited protocols still get hacked. An audit shifts the odds; it doesn’t close the book.

Worked example
Two readings of the same audit:
• Naive: “It’s audited, so my funds are safe.” → treats a bug search as a safety proof; a novel or out-of-scope bug can still exist.
• Adult: “Experts reviewed this version and the team fixed the findings — good, but I still limit my exposure and check what wasn’t covered.” → understands the audit shifted the odds, not the outcome.
• Same badge, wildly different risk posture.

Formal methods, and reading an audit like an adult

Can we do better than “looked hard”? Sometimes. Formal verification uses mathematics to prove that code satisfies specific properties (e.g., “the total balance can never decrease incorrectly”) — a far stronger guarantee than review. But even it has limits: it only proves the properties you thought to specify, on the parts you modeled, so a flaw you didn’t think to check for slips through. So how do you read an audit like an adult (the evaluating-a-project discipline from lesson 23)? Ask: Who did it (reputable firm?), what scope (which contracts, which version — does it match what’s deployed?), what did they find and did the team fix it, and was anything left out? A single audit of an old version by an unknown firm is a weak signal; multiple reputable audits plus formal methods plus a live bug bounty is a strong one. The takeaway: “audited” is the start of your diligence, never the end — and you can, and should, read the report yourself.

An everyday analogy

An audit is like a home inspection before you buy a house. A great inspector checks the wiring, the plumbing, the foundation, and flags real problems you’d never have spotted — hugely valuable. But if the inspector says “I found no issues,” that doesn’t guarantee the house will never have a leak; it means that in a limited visit, with limited tools, on that day, they didn’t find one. A hidden flaw behind a wall can still exist. Nobody sane reads “passed inspection” as “this house is guaranteed perfect forever” — yet that’s exactly how people misread “audited.” Formal verification is like an engineer proving the beam can hold a specified load — stronger, but only for the loads they thought to test.

Worked example
Grading two “audited” projects:
1. Project A: one audit, by an unknown firm, of a code version that no longer matches what’s deployed, findings unaddressed. → “audited” here is nearly meaningless.
2. Project B: multiple audits by reputable firms of the deployed version, all findings fixed and re-checked, formal verification on the core, plus an ongoing bug bounty. → much stronger, though still not a guarantee.
3. Both say “audited.” The word alone tells you almost nothing — the details of who, what, when, and whether fixes landed are the real signal.
4. Read the report, don’t just trust the badge.

This is the reading. The interactive version — active-recall quiz, a hands-on experiment you run in your own AI, and an earned mastery check — is free in the app.

Start this lesson free →