XRP завжди продавали на одній простій обіцянці: жорсткий фіксований обсяг у 100 млрд монет, добутих одним блоком ще 2012 року, без майнінгу й поступової інфляції. Понад десять років ця цифра була головним аргументом проти повільної емісії біткоіна. Виявилося, що цей ліміт весь час тримався на арифметиці, яку ніхто серйозно не намагався зламати.
Вада жила в коді розрахунку платежів з 2015 року. Коли один платіж одразу поглинав велику партію ордерів із вбудованої біржі XRP Ledger, сума до сплати рахувалася через 64-бітне ціле число. Достатньо було зібрати достатньо ордерів з аномальним курсом — і підсумкова сума переповнювала розрядність, "згортаючись" у набагато меншу. Продавці отримували повну оплату, а покупець платив майже нічого. Різниця між цими сумами фактично й була новими XRP, яких раніше не існувало.
На практиці реалізувати схему було б майже безкоштовно: за оцінкою RippleX, зловмиснику вистачило б кількох сотень XRP на резерви для набору акаунтів плюс звичні комісії за транзакції.
Знайшов вразливість не внутрішній аудит, а дослідник Cayden Liao разом із командою Veria AI — через програму баг-баунті XRPL, 22 вересня. Далі все рухалося незвично швидко для децентралізованої мережі: RippleX підтвердила критичність за добу, а патч xrpld 3.4.1 вийшов 25 вересня — минаючи звичне голосування за зміну протоколу, яке вимагає згоди понад 80% довірених валідаторів упродовж двох тижнів підряд. Для мережі, що пишається розподіленим управлінням, це був свідомий виняток: закриття вікна ризику переважило очікування стандартної процедури.
Публічно про проблему розповіли лише 9 жовтня — через два тижні після фактичного виправлення. XRPL Operations заявила, що слідів експлуатації в публічній мережі не знайшли, хоча перевірити це ззовні складно: успішна атака виглядала б просто як великий, цілком звичайний платіж.
Це не історія про один випадковий збіг. Це нагадування, що навіть зрілий блокчейн із понад десятирічною історією, який продають на ідеї фіксованого й передбачуваного обсягу, може приховувати арифметику, яку ніхто по-справжньому не намагався зламати — доки це не зробив мисливець за баунті. Фіксований ліміт надійний рівно настільки, наскільки надійний код, який ще ніхто не довів до межі.



