XRP Ledger ma sztywny limit 100 miliardów XRP. Przez około jedenaście lat ten limit był jedynie sugestią. 9 października 2026 roku Fundacja XRPL opublikowała raport ujawniający, że pojedyncza spreparowana transakcja mogła wygenerować około 18,4 biliona XRP do wydania, czyli około 184 razy więcej niż całkowita podaż, a kod na to pozwalający znajdował się w silniku płatności od listopada 2015 roku. Błąd znalazł agent AI, został załatany w trzy dni i wdrożony w sposób, jakiego ledger nigdy wcześniej nie użył. Nikt go nie wykorzystał. To dobra wiadomość. Cała reszta tej historii zasługuje na bliższe przyjrzenie się.
Co właściwie robił błąd przepełnienia w XRP Ledger
Wada tkwiła w tej części silnika płatności, która obsługuje płatność przechodzącą przez księgę zleceń. Gdy jedna płatność konsumuje wiele ofert naraz, silnik sumuje kwoty należne każdemu właścicielowi oferty. To dodawanie używało zwykłych 64-bitowych liczb całkowitych ze znakiem bez sprawdzania przepełnienia. Przekrocz sumę poza 2 do potęgi 64 i licznik zawija się do małej liczby, tak jak licznik kilometrów w samochodzie przewija się z 999999 z powrotem na 000000.
Tu jest brzydka część. Silnik obciążył kupującego zawiniętą sumą, która była maleńka. Wypłacił każdemu właścicielowi oferty ich pełną, niezawiniętą kwotę. Różnica między tymi dwiema liczbami to XRP, które chwilę wcześniej nie istniało.
Ledger ma zabezpieczenie dokładnie na taką sytuację. Kontrola niezmiennika o nazwie XRPNotCreated uruchamia się po każdej transakcji i odmawia zatwierdzenia czegokolwiek, co zwiększa całkowitą ilość XRP. Problem w tym, że niezmiennik śledził zmianę netto XRP przy użyciu tej samej niesprawdzonej arytmetyki 64-bitowej. Wystarczająco duże uznanie zawinęło także licznik niezmiennika, więc transakcja, która wygenerowała biliony XRP, wyglądała dla kontroli bezpieczeństwa jak rutynowe spalenie opłaty. Dwa niezależne błędy, napisane dwa lata od siebie, zniosły wzajemnie swoje zabezpieczenia.
Jak 256 ofert sumuje się do 18 bilionów XRP
Veria Labs, firma zajmująca się bezpieczeństwem, której agent AI znalazł błąd, opublikowała obliczenia. Atak wykorzystywał 256 ofert. Każda oferta sprzedawała się za 2 do potęgi 56 plus jeden drop XRP. Pomnóż 256 przez tę liczbę, a suma wyniesie dokładnie 2 do potęgi 64 plus 256 dropów. Ten dodatkowy pojedynczy drop na ofertę ma znaczenie: bez niego suma zawija się dokładnie do zera, co silnik odrzuciłby jako jałową płatność. Z nim kupujący zostaje obciążony 256 dropami, około 0,000256 XRP, podczas gdy 256 właścicieli ofert łącznie otrzymuje 2 do potęgi 64 dropów. To 18 446 744 073 709 551 616 dropów, czyli około 18,45 biliona XRP.

Atakujący potrzebował 256 zasilonych kont, ponieważ każde konto XRPL ma limit 100 miliardów XRP, znacznie poniżej kwoty na ofertę podzielonej na jedno konto. Potrzebował też kilkuset XRP na rezerwy i opłaty transakcyjne, wszystko do odzyskania. Dostęp walidatora nie był wymagany. Atak można było powtórzyć z nowymi kontami. Veria oszacowała wartość zagrożoną na około 94 miliardy dolarów, co jest ponad sześćdziesiąt razy większe niż kradzież 1,5 miliarda dolarów z Bybit, która obecnie dzierży rekord rzeczywiście dokonanego hacku kryptowalutowego.
| Składnik | Wartość | Dlaczego to ważne |
|---|---|---|
| Oferty skonsumowane w jednej płatności | 256 | Poniżej limitu 1000 ofert na przejście księgi |
| Cena za ofertę | 2^56 + 1 drop | Pozostaje poniżej limitu 100 miliardów XRP na konto |
| Suma obliczona przez silnik | 2^64 + 256 dropów | Zawija się do 256 dropów w arytmetyce 64-bitowej |
| Co zapłacił kupujący | 256 dropów (0,000256 XRP) | Zawinięta wartość |
| Co otrzymali sprzedający | Około 18,45 biliona XRP | Niezawinięta wartość, 184x całkowitej podaży |
| Koszt atakującego | Kilka set XRP, do odzyskania | Rezerwy plus opłaty |
| Wymagany dostęp walidatora | Brak | Każde zasilone konto mogło to zrobić |
Agent AI znalazł to w poniedziałek wieczorem
Zgłaszającym jest Cayden Liao z Veria Labs, wraz z agentem AI firmy wymienionym obok niego. Według własnej relacji Verii agent został skierowany na bazę kodu rippled 21 września, oznaczył oba przepełnienia, ustalił, że można je połączyć, i stworzył działający proof of concept w sieci lokalnej. Inżynier założyciel został obudzony o 4 rano, aby to sprawdzić. Do rana 22 września zespół był wystarczająco pewny, by zgłosić to przez program XRPL Bug Bounty, oceniając jako Major. RippleX odtworzył to tego samego dnia i podniósł do Critical. Realistycznie, Veria twierdzi, że ogólnego przeznaczenia agenci kodujący skierowani na ten sam kod po ujawnieniu nie zdołali go znaleźć. Przyjmij to z zwykłą szczyptą soli od firmy sprzedającej narzędzie, które tego dokonało. Szerszy punkt pozostaje niezależnie od tego. Kod agregacji BookStep pochodzi z listopada 2015 roku, a niezmiennik XRPNotCreated z lutego 2017 roku. XRPL wypłacił ponad 1 milion dolarów w nagrodach i przeprowadził ponad tuzin audytów oraz konkursów audytowych od 2024 roku. Ludzie i firmy audytorskie patrzyli na ten kod przez dekadę i go przegapili. Wzorzec staje się znajomy. Coldcard stracił około 1367 BTC tego lata z powodu pięcioletniego błędu firmware, który jego producent podejrzewa, że został znaleziony z pomocą AI. Stary kod nie jest już bezpieczny tylko dlatego, że jest stary.Dlaczego poprawka ominęła głosowanie walidatorów
Tu historia przestaje być czystym zwycięstwem bezpieczeństwa i staje się sporem o zarządzanie. XRP Ledger normalnie zmienia zasady transakcji poprzez poprawki. Nowa zasada trafia do oprogramowania wyłączona, walidatory głosują nad nią, a aktywuje się dopiero po utrzymaniu ponad 80 procent poparcia na domyślnej Unikalnej Liście Węzłów przez dwa kolejne tygodnie. System działa od ponad dekady i nigdy nie został celowo ominięty przy zmianie przetwarzania transakcji.
Aż do 25 września. Poprawka przepełnienia trafiła bezpośrednio w xrpld 3.4.1 bez bramki poprawki. Zadziałała na każdym serwerze w momencie aktualizacji tego serwera. Rozumowanie Fundacji XRPL jest proste: głosowanie nad poprawką opublikowałoby poprawkę, a więc i błąd, na dwa tygodnie przed jej wejściem w życie. Każdy czytający diff miałby dwa tygodnie na wygenerowanie 18 bilionów XRP. Fundacja twierdzi, że decyzja została podjęta wspólnie przez nią samą, RippleX, głównych deweloperów i walidatorów, i że żadna pojedyncza strona nie mogła podjąć jej sama.
Podejście niosło własne ryzyko, co przyznaje raport ujawniający. Gdyby ktoś podjął próbę wykorzystania luki, gdy sieć była podzielona między załatane i niezałatane serwery, obie grupy nie zgodziłyby się co do stanu ledgera. W najgorszym przypadku sieć zatrzymuje się. Zespół uznał możliwe zatrzymanie za lepsze niż pewną eksplozję podaży, co trudno podważyć. Ponad 80 procent walidatorów domyślnej UNL uruchamiało 3.4.1 w ciągu godzin od wydania 25 września.
| Data | Zdarzenie |
|---|---|
| Lis 2015 | Kod sumowania ofert BookStep napisany z niesprawdzonym dodawaniem 64-bitowym |
| Lut 2017 | Dodano niezmiennik XRPNotCreated, używając tej samej niesprawdzonej arytmetyki |
| 21 wrz 2026 | Agent AI Veria Labs oznacza oba przepełnienia i łączy je |
| 22 wrz 2026 | Zgłoszone przez XRPL Bug Bounty, odtworzone przez RippleX, podniesione do Critical |
| 23 wrz 2026 | Poprawka scalona prywatnie do kandydata na wydanie 3.4.1 |
| 25 wrz 2026 | Wydano xrpld 3.4.1, ponad 80 procent walidatorów domyślnej UNL zaktualizowanych |
| 8 paź 2026 | Veria Labs otrzymuje maksymalną nagrodę 250 000 dolarów |
| 9 paź 2026 | Opublikowano publiczny raport ujawniający, aktywuje się poprawka Batch fix |
| 12 paź 2026 | ZachXBT publicznie nazywa nagrodę zbyt niską |
Walka o decentralizację, która nastąpiła
Krótko mówiąc, Justin Bons z Cyber Capital, wieloletni krytyk XRP, wykorzystał ten epizod, by argumentować, że marketing XRP dla detalistów jako zdecentralizowanego to oszustwo. Jego konkretne zarzuty: wydanie z 25 września zostało rozprowadzone wyłącznie jako skompilowane binaria, z tymczasowo wstrzymanym kodem źródłowym, a operatorzy byli naciskani, by zaktualizować binarium, którego nie mogli sprawdzić. Raport ujawniający XRPL potwierdza, że źródło opublikowano później, choć nie mówi kiedy.
Praktycznie, kontrargument przyszedł od niezależnych operatorów walidatorów równie mocno jak od Fundacji. XRP Kuwait, który prowadzi własny węzeł, ujął to tak: koordynacja to nie to samo co kontrola. Niezależni operatorzy przeczytali tę samą radę, doszli do tego samego wniosku i zaktualizowali. Nikt ich nie zmuszał. Bitcoin zrobił to samo, zwłaszcza z błędem inflacji w Bitcoin Core 0.16.x z 2018 roku, gdy deweloperzy po cichu wydali poprawkę, zanim wyjaśnili, co naprawia. Każdy łańcuch z poważnym błędem w końcu staje przed wyborem między przejrzystością a przetrwaniem, i każdy z nich wybrał przetrwanie. Ostatecznie, gdzie Bons ma rację, to binaria. Wysyłanie niezweryfikowanego binarium i proszenie walidatorów o natychmiastowe uruchomienie go to ćwiczenie z zaufania, jakkolwiek uzasadnione. Uczciwa wersja stanowiska XRPL jest taka, że jego zbiór walidatorów zaufał Fundacji i RippleX na tyle, by uruchamiać nieprzejrzany kod przez kilka dni. Czy nazwiesz to zdecentralizowanym, zależy od tego, co uważasz, że to słowo znaczy.
Czy 250 000 dolarów wystarczyło za błąd wart 94 miliardy
Veria Labs otrzymała najwyższą wypłatę w programie XRPL na poziomie krytycznym, 250 000 dolarów, 8 października. Veria nazwała to prawdopodobnie największą nagrodą w historii wypłaconą za błąd znaleziony w całości przez agenta AI. Cztery dni później badacz blockchain ZachXBT nazwał to złym żartem. Jego argument: ekosystem, którego skarbiec trzyma miliardy, zapłacił ćwierć miliona za znalezisko, które mogło zakończyć istnienie tego aktywa. A ta różnica to dokładnie zachęta, która popycha następnego badacza do sprzedania atakującemu. Zasugerował siedmiocyfrową kwotę jako minimum i wskazał na siedmiocyfrową nagrodę rzekomo wypłaconą w ekosystemie Zcash za niedawny błąd fałszowania. Ani Ripple, ani Fundacja nie odpowiedziały publicznie w momencie pisania.
Obie strony mają rację co do różnych rzeczy. Program wypłacił swój ogłoszony maksymalny limit, badacz ujawnił odpowiedzialnie, a poprawka trafiła, zanim ktokolwiek poza kręgiem wiedział. To system działający. Prawdą jest też, że 250 000 dolarów to 0,27 procent z 94 miliardów zagrożonych, i że każdy atakujący z 256 kontami i kilkuset XRP mógł zabrać pozostałe 99,73 procent. Limity nagród pisane, gdy XRP było ułamkiem obecnej wartości rynkowej, nie skalują się z tym, co chronią.
Co powinni z tego wyciągnąć posiadacze XRP i gracze krypto
Poprawka jest po stronie serwera. Twój portfel, twoje klucze i twoje saldo nigdy nie były zaangażowane i nic nie wymaga aktualizacji po twojej stronie. Limit podaży się utrzymał, ponieważ błąd został złapany, a nie dlatego, że niezmiennik zadziałał. Druga połowa tego zdania jest tą, którą warto zapamiętać.
Są tu trzy praktyczne lekcje. Po pierwsze, kod działa od dziesięciu lat przestał być argumentem bezpieczeństwa. Audyt wspomagany AI sprawia, że stare przepełnienia są tanie do znalezienia, a atakujący wynajmują te same modele co badacze. Po drugie, procesy zarządzania zaprojektowane dla wdrożeń funkcji nie są zaprojektowane dla krytycznych poprawek. I każdy łańcuch powinien z góry zdecydować, jak poradzi sobie z następnym, zamiast improwizować pod presją. Po trzecie, limity nagród za błędy powinny śledzić zabezpieczoną wartość. Stały limit, który wyglądał hojnie w 2022 roku, jest zaproszeniem w 2026 roku. Dodatkowo, dla publiczności hazardowej znaczenie jest proste. XRP stało się standardową szyną depozytową w kasynach krypto, ponieważ rozlicza się w cztery sekundy za ułamek centa. A ta szybkość zależy od poprawności zasad ledgera. Platformy, które automatyzują wypłaty, w tym CryptoCasino.Vegas, ufają niezmiennikom łańcucha za każdym razem, gdy wypłata XRP przechodzi bez patrzenia przez człowieka. Te niezmienniki wytrzymały tym razem dzięki badaczowi i agentowi AI pracującym przez noc, a to węższy margines, niż kiedykolwiek sugerował limit 100 miliardów.
Pełne techniczne omówienie, w tym oba miejsca przepełnienia i wzmocniona arytmetyka, która je zastąpiła, znajduje się w raporcie ujawniającym podatność Fundacji XRPL dla xrpld 3.4.1.