The Simulation Spoof: How Fake Quotes Gas-Drained 129,000 Transactions on Curve and Uniswap

CryptoWolf Investment Research

Over the past seven days, a single actor drained roughly 22 ETH in failed transaction fees across Ethereum and Polygon—not through frontrunning or sandwich attacks, but by exploiting the industry’s blind faith in simulation. The attack vector? A conditional revert embedded in malicious liquidity pools that returned inflated quotes during simulation, then executed a different logic—or nothing at all—when the trade was landed. On Polygon, 99.1% of transactions routed through one such Uniswap v4 hook pool failed, burning gas with no output. On Ethereum, the Curve pool processed 129,000 trades before being neutered. The real cost isn’t the $34,600 net profit to the attacker—it’s the $30,000 in wasted gas and the broken assumption that simulation is a reliable proxy for execution.

This isn’t a new exploit class in the cryptographic sense. It’s a narrative exploit dressed in Solidity. Every wallet, aggregator, and MEV searcher uses simulated quotes to pick the best route. The industry built an entire optimization layer on the premise that “what I see in my local node will match what the blockchain does.” That premise just snapped.

--- Context ---

Simulation-based routing is the backbone of every major DeFi aggregator: 1inch, ParaSwap, CowSwap, and even wallet-native features like MetaMask Swaps. Before signing a transaction, the front-end executes a dry run of the call against the target pool, reads the return value, and compares it across multiple pools to minimize slippage or maximize output. The model assumes the pool’s code is deterministic—that execution will replay the simulation exactly. This holds true for standard AMMs like Uniswap v2 or Curve v1. It does not hold for Uniswap v4 hooks or any pool with custom logic that can inspect msg.sender, block.number, or gasleft() before deciding whether to revert or produce a different result.

Enso, a blockchain security firm, detected this pattern during a routine audit of suspicious liquidation behavior. Their team traced the origin to a set of liquidity pools on Curve (Ethereum) and Uniswap v4 (Polygon) controlled by the same deployer. The pools were designed to quote attractive returns in simulation—e.g., 5% better than the next best pool—but then executed a require statement conditioned on the call being a real transaction (e.g., checking tx.origin against known simulation addresses). A real wallet would hit the revert and lose gas. A simulated call from an aggregator would see the fake quote and steer users toward the pool.

From my 2020 DeFi stack audit, I learned that trust in code is often misplaced—here, trust in simulation is the vulnerability.

--- Core: The Mechanism & Sentiment Dissonance ---

Let’s dissect the hook-level logic. On Uniswap v4, the attacker deployed a custom beforeSwap hook that mirrors the getQuote function only when called by a known simulation engine. The simplest implementation checks gasleft():

  • If gas > 100,000: return inflated output (simulation scenario, where gas is cheap).
  • If gas < 50,000: revert or return real output (real execution, where gas is scarce after swapping).

This is cheap, repeatable, and nearly impossible to detect with a single snapshot. Enso noticed that the same operator had deployed at least three other pools using the same pattern—only one was caught. The others may still be active.

The sentiment-reality dissonance here is stark. The market believes that “simulation is safe” because the underlying math of AMMs is audited. But the security boundary isn’t the math—it’s the execution environment. The attacker weaponized a feature (hooks) meant for innovation. The industry’s narrative of “audited code = safe code” failed to account for adversarial behavior within the same codebase. We’re not watching a price drop; we’re watching the tether between simulation and execution snap.

From my 2022 LUNA collapse investigation, I learned that market sentiment often lags behind on-chain reality by days. Here, the reality is that any aggregator without post-execution validation is bleeding gas to these pools. The sentiment hasn’t caught up because the losses are small per user—$50 here, $20 there. But 129,000 transactions on Ethereum alone is a signal the noise-makers missed.

The core insight: this attack is a narrative leak in the DeFi efficiency story. The original pitch for aggregators was “best price guaranteed.” Now we must add “unless the pool is lying.” The trust anchor shifts from code correctness to execution fidelity. That shift will cost millions in security tooling and redesign—and that’s the real profit for the attacker, even if they only walked away with $34k.

--- Contrarian: The Opposite of What You Think Matters---

The contrarian angle: this isn’t a big deal because the attacker only made $34k. That’s the surface-level take. The deeper problem is that the attack is long-term profitable for the ecosystem’s security vendors—and that conflict of interest is a feature, not a bug. Enso launched Enso Shield on the back of this discovery, charging protocols for real-time detection of simulation spoofing. The narrative of “aggressive API poisoning” now has a solution to sell. The real damage isn’t the lost user funds; it’s the institutionalization of “audit fatigue.” Every time a big security firm finds a new vector, they monetize the panic—not the prevention.

What’s missing from the coverage? The operator’s wallet still holds unused contracts. Enso acknowledged the same operator deployed other contracts. The attack surface is unpatched on most chains. The industry will pay $100k+ for security tools to protect against a $34k exploit—that’s the inefficient allocation of capital that happens when narrative overshadows math.

Tracing the code back to the source of the leak: the vulnerability isn’t in the EVM or the AMM spec. It’s in the aggregator’s trust assumption. The fix is simple: after a transaction, query the actual output and compare it to the simulation result. If the difference exceeds a tolerance, abort or flag. But no major aggregator has implemented this yet. Why? Because it adds latency and complexity to a model optimized for speed. The market values speed over security until the next event makes security trendy.

--- Takeaway: The Next Narrative Inflection---

The next narrative inflection point won’t be about zk-rollups or RWAs. It will be about execution integrity—proving that what you simulated is what you got. We’ll see a wave of “simulation verification” protocols, post-execution receipts, and on-chain attestations. The question is: will the market pay for protection before the next 1,000-gas-revert cascade, or will it wait for a million-dollar hit? Code is law, but simulation is just a hypothesis. Auditing the hype for structural integrity starts now.

Collateral damage is a feature, not a bug. The $34k profit is the bait. The real prize is the control over how DeFi routes trust—and that battle has only begun.