Обнаружена уязвимость в Profanity, инструменте для генерации vanity-адресов Ethereum

Обнаружена уязвимость в Profanity, инструменте для генерации vanity-адресов Ethereum

Just Some Ghost

Этот пост объясняет очевидный взлом инструмента Profanity для генерации vanity-адресов Ethereum, обнаруженный участниками 1inch.

Обратите внимание: ваши деньги не в безопасности, если адрес вашего кошелька был сгенерирован с помощью инструмента Profanity. Переведите все свои активы на другой кошелек как можно скорее! Более того, если вы использовали Profanity, чтобы получить vanity-адрес смарт-контракта, проверьте, поменялся ли владелец этого смарт-контракта.

Между тем, инструмент ERADICATE от того же создателя похоже не имеет уязвимости, описанной в этом посте.

Пользователи Ethereum генерируют кошельки путем вычисления хэша открытого ключа, полученного из случайного закрытого ключа. Эти адреса обычно выглядят рандомными, но чем больше адресов вы генерируете, тем выше вероятность того, что вы сможете найти любой префикс, суффикс или среднюю часть.

Существуют инструменты, позволяющие пользователям генерировать миллионы адресов в секунду. Одним из самых популярных и высокоэффективных из них является Profanity.

В начале 2022 года некоторые из участников проекта 1inch заметили, что Profanity использует случайный 32-битный вектор для заполнения 256-битных закрытых ключей, и заподозрили, что это может быть небезопасно.

Вот как работает Profanity:

  1. Случайным образом выбирается 1 из 4 миллиардов исходных закрытых ключей.
  2. Детерминировано увеличивается до 2 миллионов закрытых ключей.
  3. Из закрытых ключей получаются открытые ключи.
  4. Многократно увеличивается до тех пор, пока не дойдет до желаемого vanity-адреса.

Изначально участники 1inch думали, что можно пересчитать все vanity-адреса, повторно заполнив все 4 миллиарда исходных векторов. Потребовались бы тысячи графических процессоров и многие месяцы, чтобы пересчитать все 6–7-символьные vanity-адреса. На первый взгляд казалось, что адреса длиной более 8 символов вполне безопасны.

В июне 2022 года один из участников 1inch получил странное сообщение от @samczsun о подозрительной активности одного из кошельков создателей 1inch, а также Synthetix и некоторых других:

Как минимум 5 создателей разных смарт-контрактов получили один и тот же аирдроп:

https://twitter.com/YettyWapp/status/1537473558204403712

Впоследствии заявленные средства были переведены на единый кошелек:

https://etherscan.io/address/0xee9bd0e71681ee6e9aa9f1ba46d2d1149f7bd054

Это становилось действительно подозрительным.

Поскольку были признаки вероятного взлома, участники проекта 1inch потратили некоторое время на расследование и несколько недель назад поняли, что перебор vanity-адресов может быть возвращен к исходным 4 миллиардам сидов более эффективным способом:

  1. Получается открытый ключ с vanity-адреса (восстанавливается из подписи транзакции).
  2. Детерминировано увеличивается до 2 миллионов открытых ключей.
  3. Многократно уменьшается до тех пор, пока не дойдет до желаемого исходного открытого ключа.
Несколько дней назад вовлеченные участники проекта 1inch получили proof-of-concept код, позволяющий восстанавливать закрытые ключи с любого vanity-адреса, сгенерированного с помощью Profanity, практически за то же самое время, которое требовалось для создания этого адреса.

Участники 1inch проверили самые "богатые" vanity-адреса в популярных сетях и пришли к выводу, что большинство из них не были созданы инструментом Profanity. Однако Profanity является одним из самых популярных инструментов благодаря своей высокой эффективности. К сожалению, это может означать только то, что большинство кошельков Profanity были тайно взломаны.

Тем временем участники проекта 1inch все еще пытаются определить все взломанные vanity-адреса. Это непростая задача, но на данный момент кажется, что могут быть украдены десятки миллионов долларов в крипте, если не сотни миллионов.

Хорошо то, что доказательства взлома всегда доступны в цепочке.


Оригинал вы найдете здесь.

Перевод подготовлен командой Telegram-канала

@Ghost_In_The_Block


Report Page