129,000 transactions executed, but only $34,600 in attacker profit. That ratio is not a sign of efficiency—it is a systemic signal of a flaw in DeFi's routing infrastructure.
I have spent the last three years auditing smart contract execution paths. In that time, I traced thousands of failed transactions to the same root cause: the assumption that a simulated quote equals the final execution price. The recent disclosure by Enso validates what I have seen in private audits: the layer between wallet simulation and on-chain execution is brittle, and it is being actively exploited.
Context: The Simulation Trust Assumption
Every DeFi user who uses a smart wallet or an aggregator has seen the simulation. You type in a swap, the wallet simulates it across multiple pools, picks the best price, and sends the transaction. The entire process depends on one implicit trust: the pools you query will give honest quotes during simulation and then honour those quotes during execution.
Uniswap V4's hook mechanism and custom Curve pools allow deployers to inject arbitrary logic before and after swaps. This is a feature for innovation, but it also becomes a weapon when the code is malicious. A malicious pool can detect it is being called in a simulation context—by checking gas limit, block number, or even the caller address—and return a fake, favourable quote. The aggregator or wallet then selects this pool. When the real transaction executes, the pool either reverts (wasting gas) or executes at a worse price.
Enso's analysis identified two such pools: one on Ethereum (Curve pool) and one on Polygon (Uniswap V4 hook). The Ethereum pool processed 129,000 transactions before being disabled. The Polygon hook had a 99.1% failure rate—only 1 in 100 users got a successful swap. The attacker profited only $34,600, but the ecosystem burned an estimated $30,000 in gas fees on failed transactions. That ratio—more gas burned than attacker profit—tells me this is not about greed; it is about structural exploitation.
Core: The Evidence Chain
Let me walk through the forensic reconstruction of how this attack works, based on Enso's data and my own experience tracing similar patterns.
Step 1: Pool Deployment with Conditional Logic
The attacker deployed a pool with a hook that checks two conditions: (a) is this a simulated call? (b) Is the caller a known aggregator contract? The detection can be as simple as checking gasleft() against a threshold. Simulation calls typically have high gas remaining because they run in a dry-run environment. The hook then returns an inflated quote—say 10% better than the real market price.
Step 2: Aggregator Selection
The aggregator's optimization algorithm sees this fake quote as the best route. It constructs a swap transaction targeting the malicious pool.
Step 3: Execution Mismatch
During execution, the hook's conditional logic triggers differently. It either reverts the entire transaction (wasting gas) or applies a different price calculation. Enso found that on Polygon, 99.1% of transactions reverted. On Ethereum, the pool alternated between honest and manipulative behaviour—a pattern I have seen in other front-running contracts designed to evade static analysis.
Step 4: Profit Extraction
The attacker profits from two vectors: (a) if the pool reverts, they still collect the gas fees (in some L2 designs, fees go to the sequencer or the pool itself); (b) if the pool executes at a worse price, the difference is captured as spread. The $34,600 profit is small relative to the 129,000 transactions, which suggests the attacker was not maximising profit per trade but rather banking on volume.
Critically, Enso found that the same operator deployed additional contracts. This is not a one-off experiment. It is an infrastructure for systematic deception.
Trust is a variable, not a constant in DeFi. The simulation layer is the variable that has not been audited until now.
Contrarian: The Hook is Not the Culprit
A natural reaction is to blame Uniswap V4 hooks or the unverified Curve pools. But that misses the deeper flaw. Hooks and custom pools are tools. The vulnerability lies in the aggregation layer's blind acceptance of simulation results.
Correlation ≠ causation. The presence of a malicious hook does not mean all hooks are dangerous. The real issue is that the routing protocols have no execution verification step. They simulate, pick, and submit without checking whether the simulation matched the execution. This is analogous to a stock exchange accepting a broker's quote without confirming the trade executed at that price.
Furthermore, the attacker's profit margin is thin. $34,600 from 129,000 transactions means an average of $0.27 per transaction. This is not a lucrative mass exploitation. It is a low-grade persistent drain—similar to a bank's ATM that occasionally gives incorrect change. The total harm to users (gas waste + slippage) is higher than the attacker's profit, meaning the net welfare loss falls on the ecosystem.

I have seen this pattern before in auditing. In 2022, I traced a series of failed swaps on Arbitrum to a pool that deliberately returned inflated quotes for simulation calls. The aggregator fixed it by adding a post-execution comparison, but the fix never became industry standard. This Enso discovery proves that the same class of attack is still viable two years later.
History repeats not by fate, but by flawed code. The code flaw is the absence of an execution verification primitive.
Takeaway: The Signal for Next Week
The immediate signal is not panic. The signal is a checklist for every aggregator and wallet developer. If your product simulates trades across pools, you must verify that the final execution price matches the simulated quote within a tolerance. This can be done by comparing the amountOut from the simulation event with the actual transfer events on-chain.
Enso Shield is one solution, but the principle should be standardised. I expect to see proposals for an Ethereum Improvement Proposal (EIP) that defines a simulationProof or a required callback that confirms execution integrity. The next week will tell whether this discovery triggers a wave of audits or remains a footnote.
On-chain data does not care about narratives. It cares about consistency. The 99.1% failure rate on that Polygon hook is a data point screaming for a protocol-level fix. The question is whether the industry will listen before the next, larger-scale version of this attack materialises.