MetaMask включил Added Protection — транзакция отменяется, если её результат не совпал с предпросмотром
17 сентября MetaMask запустил Added Protection: кошелёк вшивает результат симуляции в саму транзакцию, и если контракт делает что-то другое, она просто не проходит. Функция уже работает в расширении v13.45 на 13 EVM-сетях.
Функция закрывает так называемые red pill-атаки. Предпросмотр транзакции в кошельке — это всего лишь симуляция, и вредоносный контракт умеет определять, что его сейчас симулируют: пользователю показывают безобидный результат вроде «вы получите 0,1 ETH», а после подписи контракт выполняет совсем другое действие и выносит кошелёк. Раньше ничто не заставляло реальную транзакцию совпадать с её предпросмотром.
Added Protection фиксирует показанный результат как условие самой транзакции. Если при исполнении итог не совпал с тем, что видел пользователь, транзакция автоматически падает, а средства остаются на месте — теряется только газ за неудачную попытку. MetaMask не берёт комиссию ни за саму защиту, ни за сорвавшуюся транзакцию. Оговорка: функция ловит подмену результата, а не рыночные движения цены.
Защита работает в фоне и особенно полезна на крупных суммах и с незнакомыми контрактами. Отключить её можно прямо на экране подтверждения. На 17 сентября Added Protection доступна в расширении версии 13.45 на 13 EVM-сетях с поддержкой смарт-аккаунтов (EIP-7702), мобильная версия — в планах.