Tien jaar lang zat er een fout in de betaalmotor van de XRP Ledger waarmee iemand met één zorgvuldig opgebouwde transactie ongeveer 18 biljoen XRP uit het niets had kunnen aanmaken. Dat is zo’n 184 keer de totale voorraad die er ooit mag bestaan. De XRP Ledger Foundation en RippleX maakten het lek op 9 oktober openbaar, ruim twee weken nadat het in stilte was gedicht. Volgens de ontwikkelaars is er geen enkel bewijs dat iemand de bug op een publiek netwerk heeft misbruikt.
Kerncijfers
- Theoretisch aan te maken XRP: circa 18 biljoen
- Vaste maximale voorraad XRP: 100 miljard
- Uitgekeerde bug bounty: $250.000
- Validators op de nieuwe versie per 25 september: meer dan 80%
Een getal dat omklapt
De oorzaak is een klassieker uit de informatica: een integer overflow. Software die in 2015 is geschreven telde de XRP-bedragen van meerdere orders uit het ingebouwde orderboek van de ledger bij elkaar op in een 64-bit getal. Wordt de uitkomst groter dan wat in die ruimte past, dan springt het getal terug naar een veel kleinere waarde. Vergelijk het met een kilometerteller die na 999.999 weer op nul begint.
Een aanvaller kon honderden orders met een vreemde prijs neerzetten en die met één betaling allemaal tegelijk laten vullen. De koper betaalde dan alleen het omgeklapte, lage bedrag, terwijl de verkopers elk hun volledige bedrag ontvingen. Het verschil was nieuw gecreëerde XRP die gewoon verstuurd, verhandeld of naar een exchange gestuurd kon worden. In het officiële rapport staat het zonder omwegen: “An attacker could have created spendable XRP far beyond the total supply.”
Voor gewone handelaren was het lek onbereikbaar. Je had honderden accounts nodig, prijzen die geen normale trader zou kiezen en een transactie die precies daarvoor was gebouwd. Pijnlijker is waarom de vangnetten faalden: de controle op de totale voorraad gebruikte dezelfde soort rekenkunde die de fout veroorzaakte, en een aparte saldocheck was te omzeilen door de buit over meerdere wallets te verspreiden. Volgens TokenPost gaat het om xrpld 3.4.0 en alle eerdere versies.
Gevonden door een AI-agent
Opvallend is wie de fout vond. Het automatische testsysteem van Veria Labs stuitte er op 21 september op, een dag later draaide er een werkende proof of concept op een lokaal testnetwerk. Onderzoeker Cayden Liao meldde het lek op 22 september via het officiële bug bounty-programma. RippleX reproduceerde het probleem en schaalde de ernst op van “major” naar “critical”. Liao en Veria AI kregen op 8 oktober het maximale bedrag van $250.000.
| Datum | Gebeurtenis |
|---|---|
| 21 september | Veria Labs ontdekt de bug |
| 22 september | Proof of concept en melding via bug bounty |
| 25 september | xrpld 3.4.1 uitgebracht, ruim 80% van de validators stapt over |
| 8 oktober | Bounty van $250.000 uitgekeerd |
| 9 oktober | Openbaarmaking en activatie aparte Batch-fix |
De stemming overgeslagen
Het interessantste deel van dit verhaal is niet de bug zelf, maar hoe hij is gerepareerd. Wijzigingen in de verwerking van transacties lopen op de XRP Ledger normaal via het amendment-systeem: meer dan 80% van de vertrouwde validators moet twee weken achter elkaar instemmen. Dat is hier bewust overgeslagen. De fix werd actief zodra een validator zijn software bijwerkte, zonder stemronde. The Block noemt het expliciet een reparatie zonder validatorstemming.
De redenering is te volgen. De code is open source, dus een patch publiceren betekent ook de zwakke plek aanwijzen, terwijl die twee weken lang uit te buiten zou blijven. De Foundation nam het besluit naar eigen zeggen samen met RippleX, validatoroperators en andere bijdragers, en de broncode volgde pas toen het netwerk veilig was. Er was wel een risico: validators met verschillende versies hadden het oneens kunnen worden over een kwaadaardige transactie, waardoor het netwerk in het ergste geval tijdelijk geen nieuwe ledgers meer had bevestigd.
Wie XRP aanhoudt kan gerust zijn, de voorraad staat nog steeds op 100 miljard. Maar critici die de XRP Ledger te centraal vinden, krijgen er een sterk argument bij. Als een kleine kring van ontwikkelaars en validators binnen drie dagen stilletjes een protocolwijziging kan uitrollen, werkt dat uitstekend tegen een aanvaller. Het laat ook zien hoe kort de lijnen in dit netwerk eigenlijk zijn. Dezelfde release bevatte trouwens een tweede beveiligingsfix, voor de Batch-functie, die na vertraging op 9 oktober op mainnet werd geactiveerd.













