Безопасность. Инварианты
Попытаюсь объяснить простым языком: существуют переменные, которые должны быть неизменными (инварианты), типа как totalSupply в ERC20. Т.е. когда бы мы к ней не обратились, она будет иметь такое же значение.
Иногда разработчики делают проверку такого инварианта на баланс аккаунта, полагая, что никто кроме них не может управлять балансом контракта.
Вот тут и кроется уязвимость. Дело в том, что хакер может послать эфир на счет этого контракта, и тот примет его в любом случае, даже если будет fallback функция с revert.
Вместе с эфиром может быть отправлена другая нежелательная функция, которая может даже уничтожить ваш контракт.
Подробнее тут.
#безопасность #invariant
Post #354
171
- 👍 1