-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Comprendre les attaques de réentrée dans les contrats intelligents (explication du hack DAO)
A reentrancy attack exploits Ethereum’s execution model by recursively calling a vulnerable function before state updates, as seen in The DAO hack—where $50M was drained due to updating balances after external calls.
Jan 16, 2026 at 01:40 am
Qu’est-ce qu’une attaque de réentrée ?
1. Une attaque de réentrée se produit lorsqu'un contrat externe rappelle le contrat actuel avant la fin de l'exécution initiale.
2. Cette vulnérabilité est due à une mauvaise gestion de l'état, en particulier lorsque les variables d'état sont mises à jour après des appels externes plutôt qu'avant.
3. L'attaquant déploie un contrat malveillant contenant une fonction de secours qui appelle de manière récursive la fonction vulnérable dans le contrat cible.
4. Chaque appel récursif réintègre le même chemin logique, drainant les fonds à plusieurs reprises sans que le solde ne soit mis à jour jusqu'à ce que la pile d'appels entière se déroule.
5. De telles attaques exploitent le modèle d'exécution synchrone et monothread d'Ethereum dans lequel les appels externes conservent le flux de contrôle dans le contexte d'appel.
L'incident DAO : une panne historique
1. Le DAO était une organisation autonome décentralisée lancée en 2016 sur Ethereum, conçue comme un fonds de capital-risque régi par des règles de contrats intelligents.
2. Son code permettait aux détenteurs de jetons de se séparer du DAO et de récupérer de l'éther en appelant une fonction splitDAO .
3. Cette fonction a transféré l'éther à l'adresse du demandeur avant de mettre à jour le solde interne, créant ainsi une fenêtre de réentrée classique.
4. Un attaquant a déployé un contrat avec une fonction de repli qui a déclenché à nouveau splitDAO lors de la réception de fonds.
5. Au cours de plusieurs appels imbriqués, plus de 3,6 millions d'ETH, d'une valeur de plus de 50 millions de dollars à l'époque, ont été siphonnés avant que la transaction ne soit annulée ou interrompue.
Comment le modèle d'exécution d'Ethereum permet la réentrance
1. Chaque appel externe dans Solidity s'exécute dans le même contexte transactionnel, préservant la mémoire, le stockage et la visibilité de la pile d'appels.
2. Il n'y a pas de protection contre la réentrée automatique à moins qu'elle ne soit explicitement implémentée via des modèles tels que Contrôles-Effets-Interactions.
3. Les limites de gaz n’empêchent pas la récursion ; ils ne limitent que le calcul total et les fonctions de repli nécessitent un minimum de gaz pour s'exécuter.
4. L'EVM n'impose pas d'isolement entre l'appelant et l'appelé : les changements d'état effectués par l'appelé sont visibles par l'appelant pendant son exécution en cours.
5. Les développeurs sous-estiment souvent à quel point les interactions contractuelles peuvent devenir profondément interdépendantes, en particulier lorsque des jetons ou des oracles tiers sont impliqués.
Modèles de code courants qui invitent à la réentrée
1. Mettre à jour les soldes ou les indicateurs après avoir envoyé de l'éther ou appelé des contrats externes au lieu d'avant.
2. Utiliser call.value()() sans valider les valeurs de retour ni limiter la profondeur de récursion.
3. S'appuyer sur this.balance pour la comptabilité au lieu de suivre les soldes dans les variables de stockage.
4. Implémentation de modèles de retrait sans verrous, mutex ou modificateurs de réentrance tels que ReentrancyGuard d'OpenZeppelin.
5. Échec de l'audit de la logique héritée, en particulier lors de l'utilisation de modèles de proxy ou de contrats évolutifs où l'appel délégué préserve le contexte.
Foire aux questions
Q : La réentrée peut-elle se produire dans les transferts ERC-20 ? R : Les fonctions de transfert ERC-20 standard ne déclenchent pas d'appels externes, la réentrée native n'est donc pas possible. Cependant, des extensions comme transferFrom combinées avec des hooks (par exemple, dans ERC-777) introduisent des surfaces de rappel où la réentrance peut se produire.
Q : Le piratage de DAO a-t-il été réversible à cause d'un hard fork ? R : Oui. La communauté Ethereum a exécuté un hard fork pour restaurer les fonds volés en réécrivant l’historique de la chaîne, entraînant la séparation d’Ethereum et d’Ethereum Classic.
Q : Les versions modernes de Solidity empêchent-elles la réentrée par défaut ? R : Non. Solidity v0.8.x inclut un comportement arithmétique et de retour plus sûr, mais n'injecte pas automatiquement de protection par réentrance. Les développeurs doivent toujours appliquer manuellement des modèles défensifs.
Q : L'utilisation de require(msg.sender.call{value: montant}('')) est-elle plus sûre que address.send() ? R : Ni l’un ni l’autre n’est intrinsèquement sûr. Les deux autorisent la réentrée s’ils sont utilisés avant les mises à jour d’état. Le facteur critique est l’ordre des interactions, et non le mécanisme d’appel spécifique.
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
RAIN Échangez maintenant$0.007852
113.00%
-
PIPPIN Échangez maintenant$0.06097
51.96%
-
PARTI Échangez maintenant$0.1396
42.04%
-
WAVES Échangez maintenant$0.9141
41.69%
-
ARC Échangez maintenant$0.04302
35.73%
-
HONEY Échangez maintenant$0.01029
21.80%
- Bitcoin, eCash Fork et Airdrop Dynamics : une plongée approfondie dans les dernières controverses de la cryptographie
- 2026-05-03 12:55:01
- Consensus 2026 Miami : Web3, Blockchain, Crypto-monnaie, NFT, Metaverse, conférence, 5 mai — Là où Wall Street rencontre la frontière numérique
- 2026-05-02 12:45:01
- La Fed maintient ses taux stables, déclenchant une baisse du prix du Bitcoin dans un contexte de tensions géopolitiques
- 2026-05-01 06:45:01
- Les mineurs de Bitcoin électrifient le réseau : l'acquisition d'une usine à gaz dans l'Ohio ouvre une nouvelle ère pour l'or numérique
- 2026-05-01 00:45:01
- Le jeton MEGA de MegaETH arrive dans la Big Apple : définition de nouveaux critères de performance pour la blockchain en temps réel
- 2026-05-01 00:55:01
- La pente glissante de Solana : les prévisions de prix indiquent une perte de résistance et de nouvelles baisses potentielles
- 2026-05-01 06:45:01
Connaissances connexes
Comment les exigences de marge des contrats à terme AVAX sont-elles calculées ?
Jul 23,2026 at 03:40pm
Structure des marges des contrats à terme AVAX 1. La marge des contrats à terme AVAX se compose de deux éléments distincts : la marge initiale et la m...
Pourquoi le ratio de marge du contrat ADA déclenche-t-il des avertissements ?
Jul 22,2026 at 09:00am
Mécanique du ratio de marge contractuelle ADA 1. Le contrat perpétuel ADA sur les principales bourses utilise un ratio de marge dynamique calculé en t...
Qu'est-ce que le taux de financement du contrat perpétuel ADAUSDT ?
Jul 24,2026 at 08:19pm
Définition et objectif du taux de financement du contrat perpétuel ADAUSDT 1. Le taux de financement du contrat perpétuel ADAUSDT est un mécanisme d...
Quel effet de levier est recommandé pour le trading perpétuel TON ?
Jul 27,2026 at 05:20pm
Mécanismes de trading perpétuel TON 1. Les contrats perpétuels TON fonctionnent sur des échanges décentralisés et centralisés avec différents modèles ...
Qu'est-ce que la formule du prix de liquidation des contrats à terme TON ?
Jul 23,2026 at 09:19am
Mécanisme de liquidation des contrats à terme TON 1. La liquidation des contrats à terme TON se produit lorsque le solde de marge d'un trader tomb...
Qu'est-ce que le taux de financement du contrat perpétuel TONUSDT ?
Jul 27,2026 at 02:39am
Définition et mécanique de base 1. Le taux de financement des contrats perpétuels TONUSDT est un mécanisme d'échange de frais périodiques appliqué...
Comment les exigences de marge des contrats à terme AVAX sont-elles calculées ?
Jul 23,2026 at 03:40pm
Structure des marges des contrats à terme AVAX 1. La marge des contrats à terme AVAX se compose de deux éléments distincts : la marge initiale et la m...
Pourquoi le ratio de marge du contrat ADA déclenche-t-il des avertissements ?
Jul 22,2026 at 09:00am
Mécanique du ratio de marge contractuelle ADA 1. Le contrat perpétuel ADA sur les principales bourses utilise un ratio de marge dynamique calculé en t...
Qu'est-ce que le taux de financement du contrat perpétuel ADAUSDT ?
Jul 24,2026 at 08:19pm
Définition et objectif du taux de financement du contrat perpétuel ADAUSDT 1. Le taux de financement du contrat perpétuel ADAUSDT est un mécanisme d...
Quel effet de levier est recommandé pour le trading perpétuel TON ?
Jul 27,2026 at 05:20pm
Mécanismes de trading perpétuel TON 1. Les contrats perpétuels TON fonctionnent sur des échanges décentralisés et centralisés avec différents modèles ...
Qu'est-ce que la formule du prix de liquidation des contrats à terme TON ?
Jul 23,2026 at 09:19am
Mécanisme de liquidation des contrats à terme TON 1. La liquidation des contrats à terme TON se produit lorsque le solde de marge d'un trader tomb...
Qu'est-ce que le taux de financement du contrat perpétuel TONUSDT ?
Jul 27,2026 at 02:39am
Définition et mécanique de base 1. Le taux de financement des contrats perpétuels TONUSDT est un mécanisme d'échange de frais périodiques appliqué...
Voir tous les articles














