Знаете ли вы, что простая подпись в Metamask может опустошить ваш кошелек?
Знаете ли вы, что простая подпись в Metamask может опустошить ваш кошелек?
— korpi (@korpi87) Август 19, 2022
Очень опытный пользователь (топ-10 по Degen Score) потерял почти 500k USDC в результате эксплойта сегодня.
Вы можете быть следующим…
Короткий тред о том, как это произошло и как вы можете избежать подобных эксплойтов в будущем.
Это был тихий полдень, когда Джо (имя изменено) заметил, что 469k USDC покинули его кошелек.
— korpi (@korpi87) Август 19, 2022
Это была не простая транзакция перевода, что означало: у злоумышленника, по-видимому, не было доступа к кошельку Джо.
Это был вредоносный контракт, который опустошил все USDC с его адреса… pic.twitter.com/pTgTjfMMeu
Здесь нам нужно приостановить историю, чтобы объяснить некоторые технические детали.
— korpi (@korpi87) Август 19, 2022
Токен USDC — это контракт на Ethereum. У него есть много функций, которые определяют, как мы взаимодействуем с USDC и что с ним можно сделать.
Давайте сосредоточимся на двух функциях:
> transfer
> transferFrom pic.twitter.com/gekVmjmwvW
> transfer
— korpi (@korpi87) Август 19, 2022
Когда вы перемещаете USDC (или другие ERC20) между кошельками, вы используете функцию transfer.
Она перемещает токены от вызывающего (адреса, который вызывает функцию) к другому адресу.
Чтобы злонамеренно использовать transfer от вашего имени, кто-то должен был получить контроль над вашим кошельком. pic.twitter.com/3Z3pYbBnRq
> transferFrom
— korpi (@korpi87) Август 19, 2022
Когда вы взаимодействуете с контрактами, они используют transferFrom для перемещения ваших токенов. Они могут взять до суммы разрешения, которую вы установили в функции approve.
Если вы разрешаете контракту тратить бесконечное количество USDC, он может забрать все.https://t.co/QdUgLuZfZH
Вернёмся к истории Джо…
— korpi (@korpi87) Август 19, 2022
Описанное выше взаимодействие с контрактом, в результате которого были выведены USDC Джо, действительно являлось функцией transferFrom.
Но transferFrom сработал бы только в том случае, если бы Джо одобрил контракт на расходование его USDC.
И Джо был 100% уверен, что он ничего не одобрял… pic.twitter.com/HH9xxYeQms
Подождите минуту…
— korpi (@korpi87) Август 19, 2022
История DeBank четко показывает бесконечное одобрение USDC для вредоносного контракта за 10 минут до эксплойта…
Действительно ли Джо одобрил это?
Да. Но также нет. Не напрямую. pic.twitter.com/AqQQs7GZAV
Etherscan показывает, что бесконечное одобрение было вызвано не функцией approve, которую сам Джо вызывал.
— korpi (@korpi87) Август 19, 2022
Это была функция permit, вызванная другим адресом, и она предоставила вредоносному контракту разрешение тратить все USDC Джо.
Что за хрень? Как другие могут одобрять контракты от вашего имени? pic.twitter.com/TS3iDbhOXu
Функция permit была введена для улучшения пользовательского опыта на Ethereum.
— korpi (@korpi87) Август 19, 2022
Она позволяет пользователю изменять суммы разрешений без отправки транзакции. Достаточно подписи.
С вашей подписью любой может вызвать функцию permit и обновить ваше разрешение для получателя. pic.twitter.com/hem0lPsnW1
Вы можете увидеть permit в действии, когда используете dApp 1inch.
— korpi (@korpi87) Август 19, 2022
Если вы хотите продать USDC, вам не нужно предварительно их одобрять.
Все, что вам нужно, это подписать сообщение.
Эта подпись предоставляет 1inch разрешение тратить все ваши USDC. Сам 1inch этого не сделает, но вредоносный контракт может. pic.twitter.com/Dd7ggJFWtl
Джо, должно быть, случайно подписал такое сообщение на вредоносном сайте.
— korpi (@korpi87) Август 19, 2022
К сожалению, на этот раз он использовал горячий кошелек, и подписание было просто одним невинно выглядящим кликом.
С аппаратным кошельком было бы время на размышление при подписании сообщения на внешнем устройстве.
С подписью Джо злоумышленник отправил транзакцию с использованием функции permit.
Это дало вредоносному контракту разрешение тратить все USDC из кошелька Джо.
Затем была вызвана функция transferFrom, и вредоносный контракт опустошил средства. pic.twitter.com/1U6lWr9pmw— korpi (@korpi87) Август 19, 2022
Оказывается, подписи могут быть катастрофическими.
— korpi (@korpi87) Август 19, 2022
В некоторых случаях Metamask предупредит вас, что подписание сообщения может быть опасным.
Но не в случае подписанных разрешений, которые технически работают как задумано, но могут нанести большой ущерб, если будут использованы неправильно.https://t.co/5H9rNWVR3b
Как избежать подобных эксплойтов в будущем?
— korpi (@korpi87) Август 19, 2022
– Не подписывайте всё подряд в Metamask.
– Потратьте время, чтобы понять, что вы подписываете.
– Будьте осторожны с традиционными разрешениями (см. связанный тред)https://t.co/549NmPly5s
Надеюсь, этот тред оказался полезным.
— korpi (@korpi87) Август 19, 2022
Подписывайтесь на меня @korpi87 и проверьте мой Notion: https://t.co/ZTqYKmhCNk для большего.
Поставьте лайк/ретвитните первый твит ниже, чтобы защитить других от подобных эксплойтов: https://t.co/9pqCSXi9JH
Приведет ли слияние Ethereum к регуляторной каптуре?
#Ethereum проблемы вызваны постоянной оптимизацией токеномики в ущерб децентрализации, безопасности и устойчивости. Похоже, что слияние и POS приведут к полной регуляторной каптуре со стороны централизованных бирж и платформ стейкинга, и выхода для них нет. 🧵👇 pic.twitter.com/Ur9tf42K5p
— Сэмсон Моу (@Excellion) Август 19, 2022
Как же они оказались здесь? Решение о требовании 32 ETH для стейкинга как части протокола (для блокировки предложения и максимизации токеномики). Это сделало POS максимально централизованной, плюс у них нет культуры #Bitcoin «не твои ключи — не твои монеты». pic.twitter.com/Ml4QV93ECP
— Сэмсон Моу (@Excellion) Август 19, 2022
Теперь у вас есть 66% валидаторов, которые должны соблюдать правила OFAC. И ETH, который они депонировали для стейкинга, нельзя вывести, потому что функция вывода не была запрограммирована — из-за токеномики. 📈 pic.twitter.com/BdjFqYk70J
— Сэмсон Моу (@Excellion) Август 19, 2022
Но подождите! Эфириумы могут просто #UASF как те Биткоин-макси, верно? Полностью показать Coinbase, кто тут главный! pic.twitter.com/LBSRDOF79o
— Сэмсон Моу (@Excellion) Август 19, 2022
Нет. Во-первых, эфириумы не запускают свои собственные узлы, а во-вторых, большинство сервисов зависят от Infura, но это не главная проблема. pic.twitter.com/8rI1FsDwuU
— Сэмсон Моу (@Excellion) Август 19, 2022
Я начну эту следующую часть с того, что арест разработчиков за написание кода ужасен и создает ужасный прецедент. Тем не менее…
— Сэмсон Моу (@Excellion) Август 19, 2022
Чтобы #UASF вам нужно программное обеспечение для запуска. Теперь все форки Ethereum имеют крутые названия городов, такие как Стамбул, Лондон, Берлин и т.д. Назовем этот гипотетический форк Ethereum UASF «Пхеньяном». Пхеньян предотвратил бы цензуру транзакций, санкционированных OFAC, со стороны Coinbase и большинства в 66%.
— Сэмсон Моу (@Excellion) Август 19, 2022
Другой способ сказать «предотвратить цензуру транзакций, санкционированных OFAC» — это «помощь в обходе санкций». Может быть, мы забыли о Вирджиле. Так или иначе, кто будет программировать Пхеньян? Парня Tornado Cash арестовали, поэтому разработчиков Пхеньяна, вероятно, тоже арестуют. pic.twitter.com/HQNtkyTQkg
— Сэмсон Моу (@Excellion) Август 19, 2022
Кто будет запускать Пхеньян? Парни, сигналирующие «X 🏴»? Связывают ли они свой узел Пхеньян со своим аккаунтом .eth тоже? Coinbase, Kraken, Bitcoin Suisse и другие, составляющие большинство в 66%, определенно не будут запускать Пхеньян.
— Сэмсон Моу (@Excellion) Август 19, 2022
Итак, Ethereum #UASF не рассматривается.
— Сэмсон Моу (@Excellion) Август 19, 2022
«Но мы можем просто слешить Coinbase и других, если они посмеют подчиниться!» pic.twitter.com/rmlgn8Cb2Y
Я могу быть жалким Биткоин-макси™, но я потратил 10 минут на исследование и обнаружил, что нет механизма для слеша Coinbase. Нет кода для обнаружения и наказания кого-либо за цензуру транзакций. Механизм слеша работает только для наказания за простой или двойное подписание.
— Сэмсон Моу (@Excellion) Август 19, 2022
Итак, мы снова возвращаемся к необходимости форка Пхеньян, который никто не будет программировать или запускать. Даже если Пхеньян мог бы существовать, у пользователей нет способа вывести ETH. И даже если бы они могли вывести, это не имеет значения, потому что важна только Infura. pic.twitter.com/RQ44BWUqzE
— Сэмсон Моу (@Excellion) Август 19, 2022
Предположим, все звезды магическим образом выстроились, и у пользователей Ethereum был способ слешить Coinbase и т.д., что это означает? Это означает, что меньшинство акционеров имело бы механизм для произвольного наказания большинства. Это не будет работать в долгосрочной перспективе.
— Сэмсон Моу (@Excellion) Август 19, 2022
Именно поэтому мы называем #Ethereum #shitcoin. Это упражнение в тщетности, изобилующее ужасными дизайнерскими решениями и созданное исключительно для накачки токена. pic.twitter.com/irYDrzJcOO
— Сэмсон Моу (@Excellion) Август 19, 2022
Не просто читайте новости о криптовалютах. Понимайте их. Подпишитесь на нашу рассылку. Это бесплатно.

Ибиам Вайяс
Ибиам Вайяс освещает криптовалютные новости с 2019 года. Он изучал компьютерные науки в Национальном открытом университете Нигерии. Его работы публиковались на различных криптовалютных новостных платформах, включая Coinfomania, Crypto News Australia и AltcoinBuzz. Опираясь на свой опыт в области компьютерных наук, он теперь фокусируется на новостях о криптовалютах, робототехнике и долголетии.

















