Uranium Finance Migrations-Mathebug
57,2 Mio. $ aus Uranium Finance extrahiert: Eine falsch platzierte Konstante in v2.1 (1.000.000 statt 10.000) ließ 1 Wei für 98 % der Pools tauschen.
- Datum
- Opfer
- Uranium Finance
- Chain(s)
- Status
- Mittel entwendet
Am 28. April 2021 wurde das BSC-AMM Uranium Finance um rund 57,2 Millionen Dollar über 26 verschiedene Markt-Paare während des v2.1-Token-Migrations-Events des Protokolls geleert. Der Exploit war eine einzelne falsch platzierte Konstante in der Swap-Funktion — 1000**2 (= 1.000.000), wo der Code 10.000 hätte verwenden sollen. Die Faktor-100-Diskrepanz erlaubte dem Angreifer, ganze Pools durch Einzahlung eines Wei Input zu entziehen.
Was geschah
Uranium Finance war ein Fork von Uniswap v2 auf BNB Chain. Als Teil eines v2.1-Upgrades modifizierte das Team die Konstant-Produkt-Invariantenprüfung der Swap-Funktion, um einen anderen Gebührenmechanismus zu unterstützen. Der ursprüngliche Uniswap-Code verwendete eine spezifische Skalierungskonstante in seinem „Sanity Check" für die neue Balance des Pools nach einem Swap — eine Prüfung, die sicherstellt, dass der Swap die x*y = k-Konstant-Produkt-Regel respektiert.
In Uniswaps tatsächlichem Code passt die Konstante zum Skalierungsfaktor, der in der Balance-Anpassungs-Mathematik verwendet wird. In Uraniums modifizierter Version skalierte das Team die Balance-Anpassung mit 10.000 (eine andere Gebührenstruktur), ließ aber die Sanity-Check-Konstante bei 1.000.000 (dem unmodifizierten Uniswap-Wert).
Da der Sanity Check einen Wert 100× größer erwartete als das, was die tatsächliche Balance-Mathematik produzierte, passierte die Prüfung für Swaps, die die Invariante um bis zu 100× verletzten. Praktisch: Ein Angreifer konnte 1 Wei eines Input-Tokens senden, und der Pool ließ ihn bis zu 98 % der Balance des Output-Tokens abheben.
Der Angreifer ging durch alle 26 Markt-Paare von Uranium und entzog ETH, WBNB, BUSD, USDT, BTCB und einen langen Schwanz anderer Vermögenswerte. Der Gesamtverlust lag bei ~57,2 Mio. $.
Nachwirkungen
- Uranium Finance schloss innerhalb von Tagen nach dem Vorfall dauerhaft.
- Mittel wurden von BSC zu Ethereum gebrückt, in ETH getauscht und an Tornado Cash gesendet.
- Im Februar 2025 beschlagnahmten US-Behörden rund 31 Mio. $ der ursprünglich gestohlenen Mittel in einer koordinierten Beschlagnahmeaktion, nach Jahren forensischer Verfolgung.
- Eine Anklage gegen eine ungenannte Person folgte kurz nach der Beschlagnahme.
Warum es zählt
Uranium Finance ist einer der saubersten Fälle dafür, warum das Forken einer sicherheitsrelevanten Codebasis das Neu-Auditieren jeder modifizierten Zeile erfordert. Uniswap v2s Swap-Funktion wurde dutzendfach von den weltbesten Solidity-Reviewern auditiert; ihre Mathematik ist korrekt. Uraniums modifizierte Version war von einem kleinen Team berührt worden, das Gebühren anpasste — und die Modifikation brach die Invariante.
Das Muster wiederholt sich jedes Mal, wenn ein Projekt ein battle-tested AMM forkt und „nur eine kleine Sache" ändert:
- Uranium (2021) — Gebührenmechanismus-Modifikation brach Swap-Invariante.
- Sonne Finance (2024) — Compound v2 Forks Deployment-Reihenfolge brach Markt-Initialisierung.
- Hundred Finance (2023) — Compound v2 Forks Redemption-Mathematik brach unter Donation Attack.
- Velocore (2024) — Balancer-artiges CPMM mit modifizierter Gebührenlogik brach Overflow-Guards.
Jeder Fork erbt die gut verstandene Sicherheit des Upstreams; jede Modifikation schafft neue, unauditierte Angriffsfläche. Die Kosten der Lektion — Uraniums 57 Mio. $ — werden jedes Mal gezahlt, wenn ein Team diese Asymmetrie unterschätzt.
Quellen & On-Chain-Belege
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-uranium-finance-hack-april-2021
- [02]coindesk.comhttps://www.coindesk.com/markets/2021/04/28/binance-chain-defi-exchange-uranium-finance-loses-50m-in-exploit
- [03]rekt.newshttps://rekt.news/uranium-rekt