-
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%
Qu’est-ce qu’une attaque de réentrée et comment les contrats intelligents peuvent-ils s’en défendre ?
Re-entrancy attacks exploit unchecked external calls in smart contracts, allowing attackers to recursively withdraw funds before state updates, as seen in the $60M DAO hack.
Nov 13, 2025 at 03:40 am
Comprendre les attaques de réentrée dans les contrats intelligents
1. Une attaque de réentrée se produit lorsqu'un contrat malveillant rappelle à plusieurs reprises une fonction vulnérable d'un autre contrat avant la fin de l'exécution initiale. Cet exploit profite de l'ordre dans lequel les changements d'état et les appels externes sont exécutés.
2. L'exemple le plus tristement célèbre est le piratage DAO de 2016, où un attaquant a drainé plus de 60 millions de dollars en retirant de manière récursive des fonds d'un contrat qui n'avait pas mis à jour les soldes avant d'envoyer de l'Ether.
3. Ces attaques ciblent généralement les fonctions qui effectuent des appels externes vers des contrats non fiables tout en conservant des variables d'état critiques dans un état incohérent.
4. Pendant l'appel récursif, la fonction de repli ou de réception de l'attaquant déclenche à nouveau la même logique de retrait, contournant ainsi les contrôles d'accès ou les vérifications de solde.
5. La principale vulnérabilité réside dans la violation du modèle de vérification des effets et des interactions, dans lequel les modifications d'état doivent toujours précéder les appels externes pour empêcher toute manipulation pendant l'exécution.
Modèles vulnérables courants dans Solidity
1. Les fonctions qui envoient de l'Ether ou des jetons à des adresses contrôlées par l'utilisateur sans mettre à jour au préalable la comptabilité interne sont des cibles privilégiées pour la réentrée.
2. Les contrats utilisant des appels de bas niveau, comme les appels avec des transferts Ether natifs, sont particulièrement menacés car ils transfèrent tout le gaz restant, permettant une logique de rappel complexe.
3. La logique qui repose sur les validations post-appel échoue lorsque l'appel lui-même déclenche une entrée récursive, rendant ces vérifications inefficaces jusqu'à ce que les dommages soient causés.
4. Les structures successorales peuvent involontairement exposer des fonctions si les contrats parentaux ne prévoient pas de protections appropriées, même si les contrats enfants semblent sécurisés.
5. Les bibliothèques ou les modèles de proxy peuvent propager des vulnérabilités si le mécanisme d'appel délégué permet une corruption de l'état via des configurations de stockage partagées.
Mécanismes de défense efficaces
1. Implémentez rigoureusement le modèle Contrôles-Effets-Interactions : validez toujours les entrées, mettez à jour les variables d'état, puis procédez aux appels externes.
2. Utilisez des gardes de réentrance provenant de bibliothèques établies comme ReentrancyGuard d'OpenZeppelin, qui utilisent des verrous mutex pour bloquer les entrées récursives.
3. Préférez le transfert de fonds par virement ou envoi plutôt que par appel , car ces méthodes limitent le transfert de gaz et réduisent la surface d'attaque.
4. Adopter des modèles de paiement pull-over-push dans lesquels les utilisateurs réclament des fonds plutôt que de les voir automatiquement envoyés, éliminant ainsi les risques d'appels sortants.
5. Appliquez des outils d'analyse statique rigoureux et une vérification formelle pendant le développement pour détecter les chemins de récursion potentiels avant le déploiement.
Foire aux questions
Qu’est-ce qui rend une fonction de repli dangereuse dans les scénarios de réentrée ? Une fonction de secours devient dangereuse lorsqu'elle contient une logique qui réinvoque les fonctions métier du contrat appelant. Si le contrat d'origine n'a pas mis à jour son état avant de passer un appel externe, ce déclencheur récursif peut exploiter des soldes ou des autorisations obsolètes.
La réentrée peut-elle se produire à travers plusieurs interactions contractuelles ? Oui, la réentrée entre fonctions est possible lorsque différentes fonctions au sein du même contrat accèdent à un état partagé sans synchronisation appropriée. Un attaquant pourrait déclencher une fonction qui appelle en externe, puis utiliser la solution de secours pour entrer une deuxième fonction vulnérable avant que les mises à jour d'état ne se produisent.
Les contrats non-Ether sont-ils à l’abri de la réentrée ? Non, les contrats de jetons gérant les transferts ERC-20 peuvent également être exploités. Si un transfert de jeton déclenche un hook de récepteur (comme approbation + rappel) et que le contrat de réception manipule l'état de l'expéditeur en cours de transfert, des exploits récursifs similaires apparaissent.
Comment les mises à niveau du compilateur aident-elles à atténuer la réentrée ? Les versions plus récentes de Solidity incluent des valeurs par défaut plus sûres et des avertissements pour les anti-modèles connus. Par exemple, des spécifications de visibilité explicites et des règles améliorées en matière d’allocation d’essence réduisent les comportements involontaires. Cependant, les fonctionnalités du compilateur ne peuvent à elles seules éliminer les défauts logiques nécessitant une discipline architecturale.
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
Qu’est-ce que la blockchain modulaire ? (Bases de l'architecture)
Apr 16,2026 at 12:39pm
Qu'est-ce qu'une blockchain modulaire ? 1. Une blockchain modulaire est un paradigme architectural qui sépare délibérément les fonctions princ...
Comment repérer un faux site crypto ? (Détection de fraude)
Apr 16,2026 at 01:19pm
Analyse de nom de domaine 1. Les plateformes de crypto-monnaie légitimes utilisent des noms de domaine clairs et mémorisables, incorporant souvent le ...
Qu’est-ce qu’un Oracle dans la blockchain ? (Données externes)
Apr 11,2026 at 03:59am
Définition et fonctionnalités de base 1. Un Oracle dans la blockchain est un service tiers de confiance qui fournit des données externes aux contrats ...
Comment interpréter le hachage de transaction (TxID) ? (Preuve du paiement)
Apr 10,2026 at 11:19pm
Qu'est-ce qu'un hachage de transaction ? 1. Un hachage de transaction, également connu sous le nom de TxID ou ID de transaction, est une chaîn...
Qu’est-ce que GameFi ? (Les bases du jeu pour gagner)
Apr 13,2026 at 11:00am
Définition et architecture de base 1. GameFi représente la fusion du jeu et de la finance, entièrement construite sur une infrastructure publique de b...
Comment utiliser une marketplace NFT ? (Achat et vente)
Apr 19,2026 at 12:40pm
Configuration d'un portefeuille Web3 1. Installez MetaMask ou Trust Wallet via l'extension de navigateur officielle ou l'application mobil...
Qu’est-ce que la blockchain modulaire ? (Bases de l'architecture)
Apr 16,2026 at 12:39pm
Qu'est-ce qu'une blockchain modulaire ? 1. Une blockchain modulaire est un paradigme architectural qui sépare délibérément les fonctions princ...
Comment repérer un faux site crypto ? (Détection de fraude)
Apr 16,2026 at 01:19pm
Analyse de nom de domaine 1. Les plateformes de crypto-monnaie légitimes utilisent des noms de domaine clairs et mémorisables, incorporant souvent le ...
Qu’est-ce qu’un Oracle dans la blockchain ? (Données externes)
Apr 11,2026 at 03:59am
Définition et fonctionnalités de base 1. Un Oracle dans la blockchain est un service tiers de confiance qui fournit des données externes aux contrats ...
Comment interpréter le hachage de transaction (TxID) ? (Preuve du paiement)
Apr 10,2026 at 11:19pm
Qu'est-ce qu'un hachage de transaction ? 1. Un hachage de transaction, également connu sous le nom de TxID ou ID de transaction, est une chaîn...
Qu’est-ce que GameFi ? (Les bases du jeu pour gagner)
Apr 13,2026 at 11:00am
Définition et architecture de base 1. GameFi représente la fusion du jeu et de la finance, entièrement construite sur une infrastructure publique de b...
Comment utiliser une marketplace NFT ? (Achat et vente)
Apr 19,2026 at 12:40pm
Configuration d'un portefeuille Web3 1. Installez MetaMask ou Trust Wallet via l'extension de navigateur officielle ou l'application mobil...
Voir tous les articles














