Base de Connaissances
Checks-Effects-Interactions (CEI) en Solidity
11/01/2026 par Frédéric
Le pattern Checks-Effects-Interactions (CEI) est une bonne pratique de sécurité en Solidity qui consiste à ordonner les opérations d’une fonction dans un ordre strict pour éviter :
- Les attaques par reentrancy (ex : exploit du DAO en 2016).
- Les incohérences d’état (ex : double dépense, sols négatifs).
- Les échecs silencieux (ex :
transfer()qui échoue sans revert).
Problème sans CEI :
Si un contrat modifie son état après un appel externe, un attaquant peut rappeler la fonction avant la mise à jour de l’état (via un fallback() malveillant), ce qui conduit à des boucles de retrait infinies ou des états corrompus.