Эксперты всё ещё есть: они разобрали, как на этот раз взломали Binance в сети Ethereum, и, кажется, теперь я понял, в чём дело
На этот раз взлом произошёл на этапе подписи, а не из-за приватного ключа
В Ethereum есть функция под названием 7702, которая позволяет обычному кошельку подписать делегирование полномочий и передать управление аккаунтом смарт-контракту
Это всё равно что написать доверенность: «С сегодняшнего дня управлением счётом будет заниматься программа другого человека, и всякий раз, когда на него поступают деньги, она будет переводить их на внешний адрес»
После подписания делегирования счёт больше не находится под вашим контролем
Это делегирование действует при определённом номере
У каждого кошелька есть счётчик под названием nonce, который увеличивается на единицу с каждой отправленной транзакцией
Делегирование привязано к определённому номеру и вступает в силу, только когда счёт достигает этого номера, а после однократного использования отменяется
Злоумышленники не знали, какого номера достиг кошелёк Binance в тот момент, поскольку он постоянно отправлял транзакции
Поэтому они заставили Binance подписать сразу 50 последовательных делегирований — одно за другим, надеясь угадать нужный номер
Достаточно, чтобы одно из пятидесяти делегирований совпало с текущим номером, — тогда оно вступит в силу
Именно это и произошло
Что действительно опаснее всего — все эти 50 делегирований подписала сама Binance
В блокчейне видны последовательные номера, что свидетельствует о том, что их подписали одновременно, за очень короткий промежуток времени
По мнению Blockaid, произошедшее больше похоже на злоупотребление ключом, а не на его кражу
Приватный ключ по-прежнему находится у Binance, но злоумышленники заставили систему подписи считать, что эти 50 транзакций заслуживают подписи
Как только делегирование вступило в силу, этот кошелёк перестал быть обычным кошельком
Но она стала входом в контракт злоумышленников, у которого была лишь одна функция: вывести все монеты и весь ETH, оставив только 1 ETH
1 ETH оставили, чтобы счёт мог и дальше отправлять транзакции; если кто-нибудь переводил на него ещё средства, их выводили тем же способом
Это была не разовая кража, а постоянный вывод средств
Тем временем средства выводились с горячих кошельков Binance в нескольких блокчейнах
Это означает, что злоумышленники получили не доступ к какому-то одному кошельку, а возможность подписывать транзакции и влиять сразу на несколько кошельков
За последние десять лет кражи с торговых платформ происходили из-за утечки приватных ключей или мнемонических фраз, либо из-за участия сотрудников изнутри
Но на этот раз ничего не украли — подписала сама система
После 7702 одна подпись могла делать гораздо больше, чем просто выполнять один переводдругой, надеясь угадать правильный номер

Достаточно, чтобы одно из пятидесяти делегирований совпало с текущим номером, — тогда оно вступит в силу
Именно это и произошло
Что действительно опаснее всего — все эти 50 делегирований подписала сама Binance
В блокчейне видны последовательные номера, что свидетельствует о том, что их подписали одновременно, за очень короткий промежуток времени
По мнению Blockaid, произошедшее больше похоже на злоупотребление ключом, а не на его кражу
Приватный ключ по-прежнему находится у Binance, но злоумышленники заставили систему подписи считать, что эти 50 транзакций заслуживают подписи
Как только делегирование вступило в силу, этот кошелёк перестал быть обычным кошельком
Но она стала входом в контракт злоумышленников, у которого была лишь одна функция: вывести все монеты и весь ETH, оставив только 1 ETH
1 ETH оставили, чтобы счёт мог и дальше отправлять транзакции; если кто-нибудь переводил на него ещё средства, их выводили тем же способом
Это была не разовая кража, а постоянный вывод средств
