Glossaire

Qu’est-ce que le risque de smart contract ?

Avancé · 9 min de lecture
What Is Smart Contract Risk?

Le risque de smart contract, c’est la chance de perdre de la valeur — ou d’en perdre l’accès utilisable — parce que le comportement d’un programme on-chain, ses dépendances, ses oracles ou son autorité d’admin / d’upgrade produit un résultat que vous n’avez pas voulu au moment du dépôt, de l’autorisation ou de l’interaction. Le risque de smart contract, ce n’est pas « la chaîne a oublié vos coins ».

Définition

Le risque de smart contract, c’est la chance de perdre de la valeur — ou d’en perdre l’accès utilisable — parce que le comportement d’un programme on-chain, ses dépendances, ses oracles ou son autorité d’admin / d’upgrade produit un résultat que vous n’avez pas voulu au moment du dépôt, de l’autorisation ou de l’interaction.

En clair :

Le risque de smart contract, ce n’est pas « la chaîne a oublié vos coins ». C’est le risque que du code que vous avez autorisé — ou du code qui peut réécrire les règles après votre dépôt — déplace, gèle, mal valorise ou draine de la valeur selon sa propre logique.

La conservation demande qui peut dépenser. Le risque de smart contract demande ce que les programmes que vous touchez ont le droit de faire, ce qu’ils supposent du monde, et qui peut changer ces règles plus tard.

En trading

La vraie question de trading

Pour cette exposition, puis-je nommer les contrats, les surfaces de confiance (oracles, upgrades, admins) et une forme de perte que je peux encore survivre si ces surfaces cassent — ou est-ce que je traite « audité / TVL élevée / logo familier » comme un substitut à la mesure ?

Répondez par dépôt et par surface d’autorisation. Répondez à nouveau après les upgrades, après les changements d’oracle, et après les sauts de taille. Un slogan unique pour chaque interaction DeFi, c’est le piège de la seule reconnaissance que cette page laisse derrière elle.

Deux indicateurs que les gens fusionnent en un seul

Unes « hack » à l’échelle du marchéExpositions de protocole DeFi
Ce qui domine souvent les pertes en dollarsClés, signers, infra wallet, front-ends, compromission adminLogique de protocole et hypothèses économiques
Ce qui domine souvent le nombre d’incidentsMixte ; les bugs de code restent fréquentsLogique, contrôle d’accès, oracle, chemins comptables
Erreur du traderLire chaque histoire de perte comme « les contrats sont dangereux, donc éviter le DeFi »Lire chaque badge d’audit comme « le risque de code est clos »
Réponse utileGarder un indicateur de conservation pour les places et les clésGarder un indicateur contrat / oracle / upgrade pour les dépôts

Les deux indicateurs sont réels. Les mélanger produit le mauvais hedge : soit vous sous-dimensionnez chaque protocole parce que les vols de clés CeFi ont rempli l’actualité, soit vous sur-faites confiance à un vault parce que « la plupart de la valeur volée cette année, c’était des clés ».

Lecture bornée des décomptes récents de l’industrie : sur l’ensemble du marché, l’infrastructure et la compromission de clés possèdent souvent la majeure partie de la valeur ; à l’intérieur des pertes de protocoles DeFi, la logique possède souvent la majeure partie de la masse de perte. Utilisez les deux faits. N’en choisissez pas un pour jeter l’autre.

Taxonomie (des classes, pas un seul drapeau « hacké »)

ClasseCe qui casseComment la perte apparaît
Contrôle d’accèsFonctions privilégiées appelables par la mauvaise partieMint, pause, upgrade, set-price, chemin de drain s’ouvre
Logique métierRègles voulues ≠ règles codéesRewards faux, maths de collatéral fausses, liquidation ou mint/redeem cassés
Réentrance / appels externesContrôle cédé avant que l’état soit finalWithdraw répété, réentrée cross-function, callbacks de hooks
Arithmétique / arrondi / sharesMaths fixed-point, fees, shares ou réserves dériventFuite de valeur silencieuse ; les états extrêmes amplifient les erreurs d’un wei
Oracle / liquidité fineLa logique de sécurité fait confiance à un prix mobile ou périméEmprunts sous-eau, liquidations injustes, collatéral gonflé
Amplification flashloanDu capital same-tx pousse une hypothèse faible jusqu’à la ruptureLe bug racine était déjà là ; le capital temporaire l’a rendu payant
Proxy / upgradeabilityChemin d’implémentation ou d’initializer / admin faibleRéécriture de logique, claim non initialisé, corruption de storage
Griefing / DoSDisponibilité ou sorties bloquées sans « vol » propreWithdrawals coincés, liquidations bloquées, distributions qui revert

Les listes Top 10 style OWASP font tourner les rangs d’année en année. Contrôle d’accès, logique métier et oracles restent près du sommet ; les chemins facilités par flashloan et les catégories proxy/upgrade ont monté comme surfaces pratiques. Traitez la liste comme un menu de moniteurs, pas comme une carte de bingo.

Surfaces de second ordre (là où la taille expérimentée meurt vraiment)

La réentrance de manuel n’est pas le seul indicateur. Ces chemins de second ordre comptent en général davantage dès que vous quittez la taille jouet :

  1. Composabilité — votre vault va bien jusqu’à ce qu’il valorise ses shares sur un pool pair, un wrapper ou un bridge que vous n’avez jamais revu.
  2. Trous de scope d’audit — beaucoup de post-mortems de protocoles « audités » montrent que le chemin d’attaque était hors de tout scope d’audit public, ou dans une dépendance / un keeper / un forwarder que le rapport n’a jamais couvert.
  3. Bytecode non vérifié ou décalé — nom UI ≠ adresse explorer ≠ l’implémentation que le proxy pointe actuellement.
  4. Upgrade sans fenêtre de revue — pas de timelock, un seul upgrader EOA, ou swap d’implémentation silencieux après votre dépôt.
  5. Pause d’urgence comme confiance — une pause peut sauver un drain et peut aussi piéger les sorties ; qui tient l’interrupteur fait partie du prix du risque.
  6. Drain partiel vs total — certains bugs écrèment l’arrondi ; certains vident le pool ; certains gèlent les fonds sans les transférer. Dimensionnez pour la pire forme crédible, pas pour l’une moyenne.
  7. Contrats « sûrs » périmés — d’anciens déploiements sont revisités ; l’âge n’est pas un halo de sécurité si des incentives sont encore dans l’adresse.

Surfaces résiduelles sur les places wallet-first

Le trading wallet-first (y compris des places comme edgeX) réduit le risque « IOU de bilan d’entreprise » lorsque votre autorisation déplace les fonds. Le risque de contrat apparaît encore lorsque :

  • vous autorisez un spender qui peut tirer des tokens plus tard
  • vous déposez dans un vault, un bridge ou un produit structuré
  • le matching ou le settlement dépend de contrats dont le chemin d’upgrade ou d’oracle n’est pas cartographié
  • un front-end cloné vous demande de signer contre une adresse différente de celle que vous avez vérifiée

Si votre checklist ne demande que « est-ce non dépositaire ? », vous êtes encore sur l’ancien indicateur.

Scènes travaillées (du jugement, pas des slogans)

A — Arrondi sous pression flashloan.

Les maths de withdraw d’un pool arrondissent du mauvais côté dans un tick extrême. Le flux normal a l’air correct. Du capital emprunté dans la même transaction pousse le pool dans cet état, extrait l’écart, rembourse le prêt, et laisse les LP à court. Le flashloan était l’amplificateur. Le bug était comptable.

B — « Hack d’oracle » qui était du contrôle d’accès.

Les mises à jour de prix sont censées passer par un chemin keeper / forwarder. Un forwarder faible laisse un attaquant atteindre `setPrices`. Ils impriment une mauvaise marque, ouvrent et ferment contre elle, et repartent. La marque du feed n’était pas la racine ; qui pouvait écrire le feed l’était.

C — Vault audité, dépendance hors scope.

Trois PDF d’audit sont sur le site docs. Le drain utilise un helper de bibliothèque ou un vérificateur de bridge que ces rapports n’ont jamais scopés. « Nous avons été audités » était vrai et incomplet. Demandez quel commit, quels fichiers, quels chemins économiques, et ce qui a changé depuis.

D — Proxy jour un vs année deux.

Vous avez dimensionné un dépôt quand l’implémentation était gelée et que multisig + timelock étaient publics. Six mois plus tard, un upgrade arrive avec une fenêtre courte et un nouveau rôle. Même adresse proxy ; surface de confiance différente. Réévaluez ou sortez — n’héritez pas de la thèse de l’année dernière.

Monitoring (ce qu’il faut falsifier)

Notez chaque exposition de contrat matérielle contre des faits que vous pouvez vérifier — pas des badges.

MoniteurPass ressemble àFail ressemble à
Carte d’adressesVous pouvez nommer proxy vs implémentation vs spender« Le contrat du site », non vérifié
Carte de permissionsLes rôles pour upgrade, pause, mint, écriture d’oracle sont connusUne clé « owner » divine que vous ne pouvez pas décrire
Chemin d’upgradeTimelock / multisig / culture de diffs publiésUpgrades EOA silencieux
Design d’oracleAgrégé / TWAP / fraîcheur / bornes d’écart là où la taille en a besoinSpot same-tx d’un pool fin pour les liquidations
Hygiène d’auditScope, date, hash de commit ; bounty encore liveMur de logos ; pas de scope ; code déplacé après le rapport
ComposabilitéVous savez de quels pools/bridges externes l’exposition dépendWrappers imbriqués que vous ne pouvez pas nommer
Surface d’allowanceMoindre privilège ; révocation périodiqueApprove illimité pour toujours à chaque router
Drill de sortieUn petit withdraw a marché récemmentMémoire musculaire dépôt-seulement
Posture d’incidentPause scopée ; monitoring ; habitude de post-mortem publicTVL comme preuve de sécurité

Défauts conditionnels (partez d’ici, puis ajustez)

  1. Si vous ne pouvez pas nommer l’adresse du contrat et qui peut l’upgrader → ne montez pas en taille sur l’exposition.
  2. Si le pricing critique pour la sécurité lit un spot same-transaction d’un pool fin → traitez les chemins de liquidation / mint / redeem comme hostiles jusqu’à preuve du contraire.
  3. Si le seul confort est « audité » sans scope ni commit → traitez l’audit comme du marketing, pas comme un indicateur.
  4. Si un upgrade a atterri après votre dépôt → réévaluez ; n’assumez pas la continuité.
  5. Si un capital de taille flashloan peut déplacer l’oracle ou les maths de shares dont vous dépendez → dimensionnez comme si ce capital allait apparaître.
  6. Si le trading chaud et les dépôts de protocole partagent des autorisations illimitées → séparez les surfaces dans la même semaine.
  7. Si la taille a grimpé fortement → refaites la carte même si l’UI n’a pas changé.

Gestes de design

  1. Séparez les autorisations de float de trading des dépôts de protocole idle.
  2. Préférez des adresses vérifiées collées depuis une source connue à « Connect and hope ».
  3. Plafonnez chaque exposition de protocole à une forme de perte que vous pouvez survivre (écrémage vs vide vs gel).
  4. Répétez un petit withdraw avant de monter en taille.
  5. Révoquez les allowances illimitées périmées selon un calendrier.
  6. Préférez les places et protocoles qui publient adresses de contrats, politique d’upgrade et scope d’audit — puis lancez quand même vos propres moniteurs.
  7. Écrivez un court ordre de stress : quelle exposition vous sortez en premier si une alerte d’upgrade ou d’oracle part.

Limites de ce cadre

Cette page ne remplace pas un audit professionnel, une vérification formelle, ni une réponse à incident pour les builders. Elle ne tarifie pas chaque particularité de chaîne, de bridge ou de finalité L2. Elle ne sauvera pas une exposition si vous ignorez le phishing et signez un spender malveillant. Les indicateurs voisins — conservation, autorisations, MEV, risque de protocole vs plateforme vs utilisateur — s’appliquent encore. Utilisez cette taxonomie pour cesser de compresser chaque perte on-chain en un seul mot.

À ne pas confondre avec

  • Risque de conservation — autorité de dépense / échec contrepartie-vs-opérateur ; s’empile avec les dépôts de protocole, ce n’est pas le même indicateur.
  • Risque d’autorisation de token — allowance qui peut permettre un pull plus tard ; souvent la porte vers le risque de contrat, pas tout l’arbre d’exploit.
  • Risque de prix — la marque peut bouger alors que le comportement du code et le contrôle restent intacts.
  • Risque de liquidité / slippage — ne pas pouvoir sortir une taille dans le marché ≠ vault drainé, gelé ou mal valorisé par la logique du programme.
  • MEV / sandwich — ordonnancement et extraction autour de votre transaction ; peut toucher le design d’oracle/swap, ce n’est toujours pas un synonyme de bug de logique.

Prêt pour la suite ?

Passez à l’inscription ou au trading depuis cette page via les liens officiels.

Commencer à trader sur edgeX

Avertissement

Ce contenu est fourni à des fins éducatives uniquement et ne constitue pas un conseil en investissement. Le trading d'actifs numériques et de produits dérivés comporte des risques. Assurez-vous de comprendre les produits et tenez compte de votre situation avant de trader.