OAK — OnChain Attack Knowledge

Worked example · 2023-02

Hope Finance router-rerouting rug pull — Arbitrum — 2023-02-21

Loss
approximately $2M extracted from Hope Finance users on Arbitrum on 2023-02-21 via a developer-controlled router contract that re-routed user-sent funds to an operator-controlled address. Hope Finance was a yield / DeFi protocol that had publicly framed itself as community-owned with renounced administrative control; the router-rerouting mechanism revealed that operator-controlled authority was retained at the contract layer despite the public renouncement-style framing.
Recovery
none on the on-chain layer. Proceeds were laundered through Tornado Cash within hours of the extraction. There is no public DOJ / civil-forfeiture action; the operators behind the deployment remain pseudonymous.
OAK Techniques observed
OAK-T1.003 (Renounced-but-not-really / Retained-Admin-Authority sub-class) — the structural failure where a protocol publicly markets renounced or community-controlled administrative authority while retaining a privileged code path or upgradeable component that delivers operator-control equivalents at the contract layer. OAK-T5.001 (Rug Pull / Exit Scam) — the operational outcome of weaponising the retained authority to extract user funds and disappear. The two techniques compose: T1.003 is the enabling configuration and T5.001 is the extraction event.
Attribution
pseudonymous. The deploying operators behind Hope Finance remain unidentified in public sources. Pre-event funding was routed to Arbitrum from sources that were themselves obscured; post-event laundering routed the proceeds through Tornado Cash. There is no public OAK-G01 attribution.
Key teaching point
public renouncement framing is not equivalent to on-chain renounced authority, and the difference is checkable. Hope Finance is the canonical 2023 worked example for the renounced-but-not-really sub-class of T1.003: the public-facing framing claimed community ownership / no-admin-key while the deployed contract architecture retained an operator-controlled router whose behaviour could be silently changed. The discoverability of the gap is operationally important — the gap was checkable at the bytecode / proxy-implementation level on Arbiscan before the rug — and contributors writing T1.003 / T5.001 worked examples should make the checkable-discrepancy dimension explicit.

Summary

Hope Finance launched on Arbitrum in early 2023 as a yield / DeFi protocol marketing itself with community-ownership / renounced-authority framing. Users interacted with the protocol through a router contract that handled token approvals and routing of swaps / deposits across the protocol's surfaces.

The router contract was the load-bearing operator-control surface. Its deployment retained an authority pathway — implementation-pointer, owner-controlled mutable parameter, or analogous mechanism — by which the deploying operators could redirect user-sent token flows. The public-facing protocol communications did not surface the existence or the operator-control of this pathway; the framing presented the protocol as community-owned with no-admin-key.

On 2023-02-21, the operators executed the rug. The router was reconfigured (via the retained authority pathway) so that user-initiated transactions through the protocol's standard interaction flow had their token flows redirected to an operator-controlled extraction address rather than the protocol pools / the user's intended destinations. Approximately $2M of user funds was siphoned through the rerouted path within the attack window. The operators then routed the proceeds through Tornado Cash and disappeared. The protocol's web frontend, social channels, and operator-controlled communications channels were taken down or stopped responding.

For OAK's purposes the case sits at the intersection of T1.003 (the enabling configuration: retained operator-control authority dressed in renounced framing) and T5.001 (the extraction event: rug pull weaponising the retained authority). The case is operationally important because the discrepancy between public framing and on-chain reality was checkable before the rug — a sufficiently rigorous bytecode / proxy-implementation review on Arbiscan could have surfaced the operator-control pathway and flagged the public framing as inaccurate.

Timeline (UTC)

When Event OAK ref
Pre-2023-02 Hope Finance launched on Arbitrum; public communications frame the protocol as community-owned / renounced; deployed router contract retains operator-controlled authority pathway T1.003 surface (renounced-but-not-really)
2023-02-21 (rug tx window) Operators reconfigure the router via the retained authority pathway so user-initiated transactions route token flows to an operator-controlled extraction address T5.001 execution
2023-02-21 (same window) User-initiated transactions through the protocol's standard interaction flow drain user-side token approvals to the operator extraction address; ~$2M extracted T5.001 extraction continues
2023-02-21 (within hours) On-chain analysts (PeckShield, CertiK, on-chain monitoring channels) flag the rug; the protocol's web frontend and social channels go quiet (detection / defender alert)
2023-02-21 onward Operators route extracted proceeds through Tornado Cash; on-chain trail is obscured at the mixer boundary T7.001 (off this example's framing)
Continuing No public recovery; no civil-forfeiture action; operators remain pseudonymous (recovery state)

What defenders observed

  • The public framing and the on-chain reality were inconsistent, and the inconsistency was checkable. Hope Finance's public communications presented the protocol as community-owned with no-admin-key. The deployed router contract retained an operator-controlled authority pathway. The discrepancy was discoverable via standard Arbiscan / bytecode review at the proxy / implementation level. Defender lesson: renounced in public communications is not equivalent to renounced at the contract layer; the latter is checkable on-chain and the former is a marketing claim. T1.003 worked examples should make the checkable-discrepancy framing explicit.
  • The rug primitive is operationally low-cost and structurally distinct from extraction-via-bug primitives. The Hope Finance operators did not need to find a vulnerability in the protocol — they retained the authority to drain it by design. T5.001 rug pulls and T9.x extraction-via-bug incidents share the on-chain-loss outcome but differ structurally: T9.x requires a vulnerability that can be discovered and exploited; T5.001 requires only that the retained operator authority can be triggered. Defender threat models should treat the two classes as operationally distinct surfaces with different mitigations (audit + bug bounty for T9.x; on-chain authority verification + cohort filtering for T5.001).
  • The downstream Tornado Cash routing closed the recovery window structurally. Within hours of the rug, proceeds had reached Tornado Cash and the on-chain trail was effectively foreclosed at the mixer boundary. The Onyx 2024 case at /examples/2024-09-onyx.md documents the same recovery-window-closure pattern for a different extraction class; the structural property is shared across T5.001 and T9.x incidents whose proceeds reach a public mixer in the same transaction window. Operator-side response in such cases is limited to halting forward-going user exposure; reversing extracted losses is structurally foreclosed.
  • Detection latency was operator-favourable in the short window required for the rug. The operators executed the rug, routed proceeds through Tornado Cash, and disappeared within hours. The base-rate expectation for T5.001 incidents whose proceeds reach a mixer within the same operational window is total loss with no recovery; Hope Finance is consistent with that base rate.
  • The protocol presented no audit / no on-chain-verifiable authority renouncement / no operational track-record sufficient to overcome the cohort base rate. Cohort filtering is a discoverable defender / user-side practice. Protocols launching with no audit, no on-chain renounced authority verification, and no operator track-record have a substantially elevated base rate of T5.001 outcomes. The Hope Finance case is direct 2023 evidence that this cohort-filtering discipline was not yet operating at sufficient user-side coverage to deter participation in the protocol pre-rug.

What this example tells contributors writing future Technique pages

  • T1.003 covers more than uninitialised-implementation contracts. The Hope Finance case is the canonical 2023 worked example for the renounced-but-not-really / retained-admin-authority sub-class of T1.003, distinct from the uninitialised-implementation sub-class (Parity multisig 2017 at /examples/2017-07-parity-multisig.md is the canonical historical case for that sub-class). Contributors writing the T1.003 page should enumerate the sub-classes and link the per-sub-class canonical worked example.
  • T5.001 (rug pull) and T1.003 (retained admin authority) routinely compose. The enabling configuration is T1.003; the extraction event is T5.001. Worked examples should preserve the composition structure rather than classifying the incident as only the most visible Technique. Other 2023 Arbitrum-era and BNB Chain rugs followed the same composition; Hope Finance is the canonical worked example for the composition because the public-framing-vs-on-chain-reality discrepancy is unusually clean and well-documented.
  • Checkable-on-chain-authority is a first-class user-side and defender-side dimension. The OAK Mitigations layer should include a check on-chain authority before participation mitigation referencing Hope Finance (and analogous T1.003 + T5.001 cases) as the canonical worked examples. The check-list shape: verify whether the contract has a transferred-to-zero or burned ownership; verify whether upgradeability is constrained by a timelock or governance; verify whether router / handler contracts have operator-controlled mutable behaviour; verify the proxy-implementation pointer if the contract is a proxy.
  • Pre-event Tornado Cash funding for gas and post-event Tornado Cash routing for proceeds are defender-side observations, not separate Techniques. OAK-T7.001 covers mixer-routed laundering of proceeds; pre-event mixer use to fund a deployment wallet is a known indicator-of-preparation. Worked examples should describe these as observations relevant to investigation tradecraft without retroactively expanding the Technique classification.

Public references

  • [hopefinanceonchainanalysis2023] — On-chain analyst write-ups documenting the router-rerouting transaction trace and the retained authority pathway on Arbiscan.
  • [peckshieldhope2023] — PeckShield headline alert and analytics coverage on the Hope Finance rug pull.
  • [certikhope2023] — CertiK incident commentary on the Hope Finance rug, including the public-framing vs on-chain-reality discrepancy.
  • [rekthope2023] — Rekt News post-incident write-up framing Hope Finance within the broader Arbitrum-era rug cohort.
  • [slowmisthope2023] — SlowMist incident analysis covering the post-event Tornado Cash routing of the proceeds.

Citations

  • [hopefinanceonchainanalysis2023] — On-chain analyst documentation of the rerouting transaction and the retained authority pathway.
  • [peckshieldhope2023] — PeckShield alert and analytics coverage.
  • [certikhope2023] — CertiK incident commentary.
  • [rekthope2023] — Rekt News post-incident write-up situating Hope Finance in the cohort.
  • [slowmisthope2023] — SlowMist tracing of post-event Tornado Cash routing.

Discussion

Hope Finance is OAK's canonical 2023 worked example for the renounced-but-not-really / retained-admin-authority sub-class of T1.003 composed with T5.001 rug pull. The composition is the analytically important feature: the rug-pull extraction event was operationally trivial because the enabling configuration (the retained operator-controlled router authority) was already present at the contract layer despite the public-framing claim of renouncement. Contributors writing the T1.003 / T5.001 technique pages should treat the composition as a recurring pattern rather than as an incident-specific anomaly.

The discoverability dimension is the operationally consequential feature. The discrepancy between public framing and on-chain reality was checkable via standard Arbiscan / bytecode review at the proxy / implementation level. The set of users participating in the protocol pre-rug was the population for which this check would have been actionable; the absence of operational user-side coverage of this check is the cohort-level signal. The OAK Mitigations layer should treat "verify on-chain authority structure before participation" as a first-class user-side mitigation and should reference Hope Finance as the canonical 2023 worked example.

The recovery dimension is a structural foreclosure rather than an operator failure. Once the proceeds reached Tornado Cash within hours of the rug, on-chain recovery was structurally foreclosed. The contrast with Sentiment 2023 / Euler 2023 / Allbridge 2023 / Ronin 2024 rescue is informative: in those cases the attacker had on-chain incentive to negotiate (extraction was not yet laundered, attacker identity not yet structurally protected); in Hope Finance the operators were positioned to execute the rug-and-launder loop in the time window before defender response could engage. T5.001 worked examples should report total-loss outcomes as the base-rate expectation for the class.

The OAK corpus value of including Hope Finance in v0.1 is the explicit T1.003 + T5.001 composition documentation at modest dollar scale. The analytical contribution is structural rather than dollar-magnitude — the worked example documents the canonical shape of the rug-pull-via-retained-authority pattern in a 2023 Arbitrum-era setting, with checkable discrepancies and a Tornado Cash laundering tail. Contributors writing future T1.003 / T5.001 worked examples should treat Hope Finance as the structural template and document later cases relative to it.

Techniques demonstrated (2)