Посты
avatar

Reentrancy расшифрована — уязвимость смарт-контракта, которая до сих пор похищает миллионы в 2026 году, и шаблон Checks-Effects-Interactions, который её останавливает в коде Reentrancy — не магия. Это ошибка порядка: ваш контракт обновляет своё состояние ПОСЛЕ того, как делает внешний вызов, а не до него, и злоумышленник повторно вызывает его в этот промежуток. Исправьте порядок — и уязвимость исчезнет. DAO потерял около 3,6 млн ETH (примерно 60 млн долларов, около 5% всего ETH, существовавшего тогда) из-за этой точной ошибки 17 июня 2016 года. Последствия привели к расколу Ethereum на ETH и ETC. Спустя десять лет она до сих пор похищает средства. Solv Protocol потерял $2,73 млн из-за reentrancy 5 марта 2026 года, а в мае 2026 года около $52 млн было похищено через различные ончейн-протоколы (DeFiLlama через CryptoTimes, 31 мая 2026 года). Уязвимый шаблон: считать баланс, отправить ETH с помощью низкоуровневого вызова, ЗАТЕМ установить баланс в ноль. Функция receive() атакующего повторно вызывает withdraw(), прежде чем ноль будет установлен, и цикл продолжается, пока контракт не опустеет. Два исправления, используемые вместе: Checks-Effects-Interactions. Проверьте, обновите ВСЕ состояния, а затем выполните внешний вызов ПОСЛЕДНИМ. Переместите balances[msg.sender] = 0 выше вызова — повторный вызов прочитает ноль и откатится. Неблокирующая защита OpenZeppelin. Мьютекс в хранилище (NOT_ENTERED → ENTERED), который откатывает при повторном входе. Используйте его вместе с CEI, а не по отдельности. Две вещи, которые большинство разработчиков до сих пор делают неправильно. 1. .transfer() больше не является защитой: лимит в 2300 газа перестал быть безопасным предположением после того, как EIP-1884 повысил стоимость SLOAD в 2019 году. Используйте .call{value:}("") вместе с CEI. 2. Чтение без изменения (read-only) обходит стандартную защиту, потому что чтение view-функции во время обновления возвращает повреждённое состояние и может отравить оракул цен (dForce, $3,64 млн). Только для образовательных целей. Не является финансовой консультацией. Подписывайтесь на ежедневные инсайты — где блокчейн встречается с ИИ, один удовлетворяющий свайп за раз. #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation

Этот контент предназначен исключительно для информационных и образовательных целей. Он может содержать информацию от третьих лиц, спонсорский контент или рекламные материалы, за которые креатор может получить вознаграждение. Ничто в этой ленте не является инвестиционным советом или гарантией прибыли. Вы несете полную ответственность за свои собственные инвестиционные решения. Всегда проводите самостоятельные исследования и проявляйте осторожность перед торговлей. Мы не гарантируем точность информации третьих лиц и не несем ответственности за понесенные убытки. Прошлые результаты не являются показателем будущих. Пожалуйста, ознакомьтесь с нашими Условиями сообщества и Заявлением о раскрытии информации о рисках для получения подробной информации.

avatarОставьте свой ответ

Комментарий