Размещайте рекламу на KripZen — покажите свой бренд глобальной криптоаудитории.Связаться с нами →

Статья глоссария

Атака повторного входа (reentrancy)

Кошельки и безопасность

Атака повторного входа вызывает контракт снова до обновления балансов, позволяя выводить средства многократно в одной транзакции.

Определение

Атака повторного входа (reentrancy) использует смарт-контракт, который отправляет средства раньше, чем обновляет собственные внутренние записи. Контракт-получатель пользуется этим моментом и снова вызывает исходную функцию, где баланс ещё старый, повторяя вывод несколько раз в рамках одной транзакции. Это один из самых давних и известных классов уязвимостей смарт-контрактов, во многом сформировавший современные практики разработки на Solidity. Стандартная защита — шаблон checks-effects-interactions, при котором состояние записывается до любого внешнего вызова, и «замки» повторного входа, блокирующие функцию на время исполнения. Reentrancy напоминает: в общем компонуемом коде любой внешний вызов может передать управление недоверенной стороне, поэтому аудиты и тесты уделяют порядку вызовов особое внимание.

Далее

Похожие термины

Ещё в разделе Кошельки и безопасность