В коде XRP Ledger — блокчейна, монеты из топ-10, на секундочку, а не какого-то там забытого токена с тремя холдерами, — с 2015 года сидела дыра: одной транзакцией можно было создать новые XRP из ничего. По подсчёту нашедших — до ~18 трлн монет, примерно в 184 раза больше всего существующего саплая 🪙XRP.
Подчеркну, речь именно о возможности: следов того, что эксплойтом кто-то воспользовался, не нашли.
Всего 🪙XRP 100 млрд — их выпустили один раз при запуске сети в 2012-м, эмиссия ограничена, а это значит, что больше не должно появиться ни одной монеты.
🔖 Как это работало
В XRP Ledger встроена собственная биржа: любой может выставить заявку «продаю такой-то токен за столько-то XRP», а другой — купить её. Одной транзакцией можно выкупить сразу много заявок — тогда сеть складывает их суммы, чтобы посчитать, сколько XRP списать.
Ошибка была именно в этом сложении. Под число отведено ограниченное место — 64 бита, и у него есть потолок. Если сумма его превышала, проверки не было: число «перепрыгивало» через край и превращалось в крошечное.
Как на старом счётчике с тремя цифрами: 999 + 2 даёт не 1001, а 001.
Атака выглядела примерно так. Злоумышленник открывает пару сотен аккаунтов и с каждого выставляет заявку «продаю токен за гигантскую сумму XRP» — токен может быть любым, на XRPL собственный токен может выпустить кто угодно. Потом одной транзакцией скупает их все.
Общая сумма переваливает через потолок, и сеть думает, что покупатель должен заплатить копейки. А продавцы, то есть те же аккаунты злоумышленника, получают при этом полные гигантские суммы рипла.
Разница — и есть новые 🪙XRP, которых раньше не существовало, и прикол в том, что их фактически можно тратить. Капитальных затрат на весь такой «бизнес» — всего несколько сотен $XRP на комиссии.
❗️ Сломалась ровно та защита, что была специально создана против такого кейса
На такой случай у сети существует т.н. контрольная проверка: после каждой транзакции она сверяет, что общее количество XRP не выросло.
Она тоже не отсигнализировала, потому что считала на том же 64-битном счётчике и точно так же «перепрыгивала» через край.
🧐 Поймал не аудит и не баг-баунти, а ИИ
Код XRP Ledger годами проверяли аудиторы и охотники за наградами — и... пропустили этот «нюансик» 🫣.
А обнаружил проблему стартап Veria, который специально делает ИИ-агентов для поиска уязвимостей. По словам сооснователя Кейдена Ляо, агент сам прочесал код, нашёл два мелких бага по отдельности, понял, что вместе они дают катастрофу, и собрал рабочую атаку. Награда — $250 тыс., максимум программы.
Эти цифры и тезис «полностью нашел ИИ» исходят от самой Veria, которой такая реклама выгодна: в официальном отчёте находка записана на «Кейдена Ляо и Veria AI», без суммы.
Сообщили об ошибке 22 сентября, исправленную версию выкатили 25-го, а публично рассказали только 9 октября. $XRP на новости сдвинулся меньше чем на 1%.
👁 Неудобный вопрос про децентрализацию
Обычно изменения в XRP Ledger принимают голосованием валидаторов — серверов сети. Здесь фикс впервые за 10+ лет разослали в обход голосования, а его исходный код две недели держали закрытым. Джастин Бонс из Cyber Capital назвал «децентрализованность» 🪙XRP «откровенным мошенничеством».
🦖 Такое уже было с биткоином
В августе 2010-го в BTC случилась почти идентичная история: из-за переполнения при сложении одна транзакция создала ~184 млрд BTC при лимите в 21 млн.
Сатоши выпустил исправление за несколько часов, и сеть стёрла эту транзакцию из истории. Разница в том, что биткоин чинили уже после атаки, а XRP Ledger — до неё. На этом можно и аплодисменты 👏
• • • • • • • • • •
Если в одном из самых проверенных кодов крипты 11 лет пряталась такая дыра и заметила её не команда людей, а машина, значит, проверять код крипты теперь будет ИИ. И инструмент к слову работает в обе стороны: агент, который сегодня находит дыру за $250 тыс., завтра найдёт такую же для того, кто заплатит больше, — и сделает это быстрее любого человека.
❝[Консенсус Тьюринга]❞ | 💬 Чат | 🔄 Проверенная обменка
