Tous les termes

Glossaire

Checks-Effects-Interactions

Pattern de code qui empêche la reentrancy en validant, puis modifiant l'état, puis seulement après en appelant des contrats externes.

Le checks-effects-interactions est le pattern canonique pour écrire des fonctions Solidity sûres face à la reentrancy :

  1. Checks : valider les entrées et exiger que l'appelant est autorisé.
  2. Effects : mettre à jour l'état pertinent dans le contrat courant.
  3. Interactions : seulement après la mise à jour de l'état, faire les appels externes.

Suivre cet ordre garantit que tout appel ré-entrant dans le contrat voit l'état post-mise à jour, donc un retrait ré-entré voit un solde à zéro, un over-transfer est impossible, etc.

Le pattern a plusieurs décennies en sécurité logicielle et est bien documenté dans la guidance officielle de Solidity. Malgré ça, la reentrancy continue d'être livrée en production, presque toujours parce que le développeur s'est dit « cet appel externe est sûr » ou « ce token ne peut pas être malicieux ». L'heuristique d'un auditeur senior : chaque appel externe est une reentrance potentielle, point.

Voir aussi

Termes liés.

Services

Comment nous travaillons sur ce sujet.

Par secteur

Là où ça apparaît.

À lire

Sur le blog.

Besoin de régler ça concrètement ? Parlons-en.