Штучний інтелект виявив помилку, яка могла призвести до створення 18 трильйонів XRP. Винагорода склала 250 000 доларів
Агент компанії Veria Labs виявив переповнення в XRP Ledger, яке існувало вже десять років. Виправлення зайняло три дні. Приводом для суперечок став розмір винагороди.
Одна транзакція. Приблизно 18,45 трильйонів XRP — у 184 рази більше, ніж весь обсяг токенів у 100 мільярдів — створених з нічого і доступних для використання в момент закриття реєстру. Саме це виявив агент штучного інтелекту від Veria Labs у платіжному механізмі XRP Ledger, у коді, що працював з 2015 року.
Ніхто не скористався цією уразливістю. У власному звіті XRPL зазначено, що «немає доказів того, що ця уразливість була використана в будь-якій публічній мережі». RippleX усунула уразливість протягом трьох днів після оприлюднення звіту, а Veria отримала 250 000 доларів — максимальну суму, яку пропонує програма винагороди за виявлення помилок. Дослідник блокчейнів ZachXBT назвав цю винагороду мізерною, і суперечки з цього приводу не вщухають досі.
Два переповнення, одна дуже невдала транзакція
Коли платіж «пропалює» цілу купу пропозицій у книзі замовлень за однаковою ціною, механізм підраховує суму, яку повинен покупець. Для цієї суми використовувалося підписане 64-бітне ціле число без перевірки на переповнення. Якщо подати достатньо великих пропозицій, загальна сума «завертається» у щось крихітне. Кожен власник пропозиції все одно отримує повну оплату. З покупця стягується «завернута» сума. Різниця — це абсолютно нові XRP.
Реєстр має захист саме від цього — інваріант, який відхиляє будь-яку транзакцію, що створює XRP. Він підсумовував зміни балансу таким самим чином, у такому самому лічильнику, тому перехід відбувався аналогічно, і система сприймала це лише як звичайне спалення комісії. У статті Верії вказано, що код агрегації пропозицій датується листопадом 2015 року, а інваріант — лютим 2017 року.
Схема була майже образливо простою: 256 пропозицій, кожна з яких вимагала приблизно 72 мільярди XRP, а потім один платіж, щоб «поглинути» їх усі. XRPL дійсно дотримується обмеження в 100 мільярдів на один рахунок, тому випущені монети довелося розподілити між 256 гаманцями. За даними команди XRPL, реальні витрати зловмисника склали кілька сотень XRP у вигляді повернених резервів плюс комісії. Це також не могло статися випадково, оскільки жодна звичайна транзакція навіть близько не наближається до межі переповнення.
Кейден Ляо, співзасновник Veria, відповідальний за безпеку, написав у X, що кожна з цих вразливостей окремо мала б низький рівень серйозності, і він підозрює, що саме тому їх не виявили протягом десятиліття аудитів. У Veria зазначають, що пізніше вони направили на цей код агентів для перевірки універсального коду, але ті все одно не змогли його виявити.
Наскільки великою є сума в 18 трильйонів?
Залежить від того, хто рахує. Veria оцінює викрадену суму приблизно в 29 трильйонів доларів. В інших публікаціях наводиться цифра близько 25 трильйонів доларів. Обидві цифри є теоретичними розрахунками, оскільки ніхто не продає 18 трильйонів токенів на ринку, який би спочатку знецінився до нуля. Власна оцінка Veria є найреалістичнішою: під загрозою опинилася вся ринкова капіталізація XRP у розмірі 94 мільярдів доларів — це у понад 60 разів більше, ніж 1,5 мільярда доларів Bybit, що є найбільшим хакерським нападом за всю історію.
Три дні — жодного голосування
Представник Veria виявив помилку в понеділок, 21 вересня. Про неї повідомили та підтвердили 22-го, виправлення було впроваджено 23-го, а xrpld 3.4.1 випущено 25 вересня, причому понад 80% валідаторів UNL за замовчуванням уже працюють на цій версії.
Зазвичай XRPL змінює правила транзакцій шляхом внесення поправки. Валідатори голосують, після чого підтримка у розмірі понад 80% має зберігатися протягом двох тижнів. Згідно зі звітом, у цьому випадку все це було пропущено — вперше за понад десятиліття. Причина: xrpld є програмним забезпеченням з відкритим кодом, тому поправка розголошувала б інформацію про помилку протягом тижнів, поки її можна було б експлуатувати. У звіті визнається, що це мало свої наслідки. Під час періоду оновлення сервери на різних версіях могли б не дійти згоди щодо транзакції, що використовує уразливість, і в найгіршому випадку мережа могла б зупинитися. Команда вирішила, що зупинка мережі краща, ніж публічне випущення монет у реальному часі.
Не всім сподобався такий компроміс. Джастін Бонс із Cyber Capital написав, що XRP протягом двох тижнів працював із закритим кодом, оскільки вихідний код версії 3.4.1 з’явився значно пізніше за бінарні файли. Інженер RippleX Маюха Вадарі відповів, що «ШІ змінив ситуацію»: якщо вкрасти критичний патч у звичайний публічний реліз, його майже миттєво піддають реверс-інжинірингу.
Цей самий реліз виправив окрему помилку в Batch — функції, яка ще не була запущена. Це виправлення та сама функція Batch активувалися у п’ятницю, 9 жовтня, і сервери на старих версіях більше не можуть залишатися синхронізованими.
Битва за 250 000 доларів
Наступного дня після оприлюднення звіту XRP Ledger Foundation опублікувала нитку з роз’ясненнями. У ній зазначалося, що XRP не було створено, а його пропозиція залишається фіксованою. Також було обіцяно офіційну верифікацію, тестування на стійкість до атак за допомогою штучного інтелекту та посилену програму винагород, хоча конкретна сума в доларах не була вказана.
Потім до дискусії долучився ZachXBT. Чому казна, що володіє мільярдами, платить «білому хакеру» 250 000 доларів за баг, пов’язаний з нескінченною пропозицією? Його відповідь: наступного разу зловмисник може прагнути «9 цифр замість того, щоб добросовісно повідомити про це». BlockTempo повідомляє, що за кілька хвилин він додав, що ця знахідка заслуговує щонайменше на «7 цифр», і вказав на Zcash. Власники токенів Zcash схвалили виплату 1,5 мільйона доларів Тейлору Хорнбі, який у травні виявив баг підробки Orchard за допомогою Claude Opus 4.8: винагорода у розмірі 750 000 доларів плюс грант від спільноти у розмірі 750 000 доларів, що, за даними crypto.news, все ще очікує на перевірку відповідності вимогам.
Захисники XRP бачать це інакше. 250 000 доларів — це опублікований верхній ліміт програми, і Veria подала заявку, отримала максимальну суму та подякувала команді XRPL у власному дописі. Veria навіть називає це найбільшою виплатою, про яку їй відомо, за помилку, виявлену повністю агентом штучного інтелекту. BlockTempo повідомляє, що Vet, який називає себе учасником Фонду, відповів, що погоджується зі структурою заохочень. Керівник інженерного відділу RippleX Дж. Айо Акіньєле заявив, що команда розширить пошук помилок за допомогою штучного інтелекту та формальну верифікацію.
Те, що ніхто не може виправити
Veria не зробила нічого поганого, як і сама програма, яка виплатила суму, про яку заявляла. Проблема полягає саме в максимальній сумі. 250 000 доларів — це приблизно 0,0003% ринкової вартості, яка, за словами Veria, була скомпрометована, а базова винагорода Zcash сама по собі була втричі більшою.
Штучний інтелект робить виявлення старих багів дешевшим для всіх. Veria наводить приклад літнього витоку з Coldcard, коли було викрадено 1 367 BTC через п’ятирічну помилку в прошивці, яку, як підозрює Coinkite, допомогла виявити штучний інтелект. Цього разу той, хто виявив помилку, подав звіт. Наступний виявник може оцінити своє рішення інакше, і саме в цьому полягає суть аргументу ZachXBT, а з його розрахунками важко посперечатися.
На момент написання статті про додаткове фінансування для Veria та про встановлення нового верхнього ліміту винагороди не було оголошено.

5% бонус на депозит до 100 дорогоцінних каменів

безкоштовний подарунковий кейс


EGAMERSW - отримайте бонус на депозит 11% + безкоштовне обертання бонусного колеса
ДОДАТКОВИЙ БОНУС НА ДЕПОЗИТ 10% + БЕЗКОШТОВНІ ОБЕРТАННЯ 2 КОЛІС
3 безкоштовні кейси + 100% до 100 монет на перший депозит
5 безкоштовних кейсів, щоденні безкоштовні та бонусні

3 безкоштовні кейси та бонус 5% до всіх депозитів готівкою.

+5% до депозиту


Коментарі