Сегодня рано утром произошёл инцидент с горячим кошельком Binance, и многие впервые услышали об EIP-7702. Для начала разберёмся, что это такое:
1. Что это такое: функция, появившаяся с обновлением Ethereum Pectra. Обычный кошелёк может подписать разрешение и временно передать право на выполнение операций фрагменту кода смарт-контракта. Адрес при этом не меняется. Это позволяет выполнять операции пакетами и оплачивать gas за другого пользователя.
2. Почему это привлекло внимание на этот раз: согласно разбору Blockaid и других специалистов, злоумышленник поместил в одну транзакцию 50 разрешений с последовательными номерами, рассчитывая попасть в тот номер, который в тот момент использовал горячий кошелёк. Если это удавалось, вредоносный контракт мог от имени кошелька пакетно переводить активы. А если делегирование не отозвать, оно будет действовать и дальше.
3. От чего следует защищаться обычным пользователям: во-первых, не подписывайте непонятные разрешения, особенно подписи, которые разом одобряют множество операций; во-вторых, если незнакомый сайт просит вас что-либо подписать, остановитесь и проверьте, какому контракту предлагается делегировать полномочия; в-третьих, регулярно проверяйте и отзывайте ненужные разрешения, а крупные суммы по возможности храните в холодном кошельке.
На мой взгляд, EIP-7702 сам по себе — не бэкдор. Он превращает кошелёк из ключа, который может только переводить средства, в ключ, способный выполнять программы. Чем мощнее ключ, тем важнее перед подписанием внимательно проверять, кому вы делегируете полномочия. Вы обычно читаете каждое разрешение перед подписанием?
$ETH #EIP7702
1. Что это такое: функция, появившаяся с обновлением Ethereum Pectra. Обычный кошелёк может подписать разрешение и временно передать право на выполнение операций фрагменту кода смарт-контракта. Адрес при этом не меняется. Это позволяет выполнять операции пакетами и оплачивать gas за другого пользователя.
2. Почему это привлекло внимание на этот раз: согласно разбору Blockaid и других специалистов, злоумышленник поместил в одну транзакцию 50 разрешений с последовательными номерами, рассчитывая попасть в тот номер, который в тот момент использовал горячий кошелёк. Если это удавалось, вредоносный контракт мог от имени кошелька пакетно переводить активы. А если делегирование не отозвать, оно будет действовать и дальше.
3. От чего следует защищаться обычным пользователям: во-первых, не подписывайте непонятные разрешения, особенно подписи, которые разом одобряют множество операций; во-вторых, если незнакомый сайт просит вас что-либо подписать, остановитесь и проверьте, какому контракту предлагается делегировать полномочия; в-третьих, регулярно проверяйте и отзывайте ненужные разрешения, а крупные суммы по возможности храните в холодном кошельке.
На мой взгляд, EIP-7702 сам по себе — не бэкдор. Он превращает кошелёк из ключа, который может только переводить средства, в ключ, способный выполнять программы. Чем мощнее ключ, тем важнее перед подписанием внимательно проверять, кому вы делегируете полномочия. Вы обычно читаете каждое разрешение перед подписанием?
$ETH #EIP7702