Nearly half the money stolen from crypto over the past four years left through doors that a smart-contract audit was never hired to check.
That is the finding of a preprint published in June by Stefan Beyer of Oak Security, which compared 23,818 public audit findings from 22 security firms against 218 incidents catalogued between January 2022 and March 2026, covering an estimated $7.764 billion in losses.
The clearest illustration is also the largest. On 21 February 2025, Bybit began a routine transfer from an Ethereum cold wallet to a warm wallet. The people authorising it checked the destination address on their screens, saw what they expected, and approved. The transaction underneath handed an attacker control of the wallet.
Bybit put the loss at $1.46 billion and the FBI attributed the theft to North Korea. Safe, whose infrastructure was involved, said a compromised developer machine had enabled a disguised transaction, and that outside researchers found no vulnerability in its smart contracts or front-end source code. Nothing in the code failed. The failure sat between the code and the human deciding what the screen meant.
The Two Datasets Do Not Match
The audit findings look precisely like the output of people paid to inspect code. Logic and business-logic defects made up 14.6% of the total, code-quality problems 13%, input-validation flaws 10% and access-control issues 9.8%.
The losses point somewhere else. Private-key compromise accounted for $1.894 billion, or 24.4% of stolen value. Phishing and social engineering took $1.511 billion, or 19.5%. The three leading audit categories represent 37.6% of published findings. Key theft and phishing together represent 43.9% of the money, and adding dependency and governance attacks takes the paper’s human-vector category to 49.6% of all losses.
These are not two halves of one measurement. An audit finding records a defect caught during review, often fixed before deployment. An exploit loss records a theft from a live system. The percentages describe different populations and are not conversion rates.
What an Audit Is Hired to Do
Auditors describe their assignments far more precisely than the projects that market them. A published OpenZeppelin report identifies the pull requests it covered by commit hash, names the contracts included, and records a three-day review period. A commit hash is the fingerprint of one snapshot of the code, and once the code moves on the report does not move with it.
Everything around that snapshot belongs to somebody else. Production configuration, a developer’s laptop, cloud accounts, signing devices and the interface explaining a transaction to the person approving it all need separate review. None of that is negligence, because a finite engagement requires a finite perimeter. The distortion happens when a deliberately narrow report reaches a project’s website and becomes a general claim about the organisation running the code.
The Caveats That Matter
Two numbers in the paper need handling with care. It found that 105 of the 218 incidents involved a protocol with at least one public audit beforehand, representing about $4.3 billion, or 55% of observed losses. That will be quoted as proof audits do not work, and it shows nothing of the sort, because previously audited can mean a different version, a different set of contracts, or a review unrelated to the route the attacker took. Nine of the twelve largest cases in that group came through phishing, stolen keys, dependencies, infrastructure or governance.
Bybit also distorts the headline. It supplied $1.43 billion of the $1.51 billion phishing total on its own, and 18.4% of every dollar in the dataset. Eight incidents produced half of all losses, leaving 210 to share the rest.
The pattern survives both caveats. Private-key compromise appeared across 45 separate incidents, making it the most expensive root cause before phishing enters the calculation. From 2023 through 2025, attacks involving keys, people, dependencies or governance absorbed roughly two-thirds to three-quarters of the value lost each year.
The paper itself should be read sceptically. Beyer sells audits for a living, it is a preprint with no peer review, the 22 firms are unnamed, the incident set comes from a single archive, and part of the classification was done by a language model. There is also no matched population of unaudited protocols, so the data cannot say how much protection an audit actually buys.
Code Is Only One of the Doors
CryptoNewsRush has covered three stories in the past ten days that fit this shape from different angles. A hardware wallet lost users roughly $130 million to a firmware flaw that sat in open-source code for more than five years. A volunteer group filed 4,962 security findings across 390 Bitcoin projects in about 30 hours using AI agents. And violent robberies of crypto holders reached 46 recorded cases in six months.
Three failure surfaces, and only one of them is code. The industry can now generate code findings faster than at any point in its history, and this paper’s argument is that the money has been leaving through a different door the whole time.
The practical reading is narrow. An audit badge is evidence that specific contracts were reviewed at a specific version on a specific date. It says nothing about the team’s laptops, its signing procedures, its front end, or whether the code running today matches the code that was reviewed. Beyer’s proposal is to replace the badge with a label naming the audited commit, the review dates, whether deployed bytecode matches what was reviewed, and which systems were never examined at all.
Bybit was large enough to absorb the lesson and restored its Ethereum backing within days. Most protocols cannot find $1.46 billion when the screen and the transaction disagree.


