{"id":621,"date":"2026-08-06T17:43:49","date_gmt":"2026-08-06T17:43:49","guid":{"rendered":"https:\/\/mycoinpartner.com\/what-a-smart-contract-audit-tells-you-2\/"},"modified":"2026-08-06T17:43:49","modified_gmt":"2026-08-06T17:43:49","slug":"what-a-smart-contract-audit-tells-you","status":"publish","type":"post","link":"https:\/\/mycoinpartner.com\/fr\/what-a-smart-contract-audit-tells-you\/","title":{"rendered":"Ce qu\u2019un audit de contrat intelligent vous dit, et ce qu\u2019il ne vous dit pas"},"content":{"rendered":"<p>\u00ab Audit\u00e9 \u00bb appara\u00eet sur les pages d\u2019atterrissage comme s\u2019il s\u2019agissait d\u2019une certification au sens d\u00e9fini. Ce n\u2019en est pas une. C\u2019est une prestation professionnelle au p\u00e9rim\u00e8tre variable, et la diff\u00e9rence entre une revue approfondie et une revue superficielle est invisible depuis le badge.<\/p>\n<h2>Ce qu\u2019est r\u00e9ellement un audit<\/h2>\n<p>Un cabinet est mandat\u00e9 pour examiner un ensemble sp\u00e9cifi\u00e9 de contrats \u00e0 un commit sp\u00e9cifi\u00e9, sur une p\u00e9riode sp\u00e9cifi\u00e9e, \u00e0 la recherche de d\u00e9fauts face \u00e0 un mod\u00e8le de menaces sp\u00e9cifi\u00e9. Il produit un rapport listant les constats par s\u00e9v\u00e9rit\u00e9, le projet r\u00e9pond, et un rapport final consigne g\u00e9n\u00e9ralement ce qui a \u00e9t\u00e9 corrig\u00e9.<\/p>\n<p>Chaque occurrence de \u00ab sp\u00e9cifi\u00e9 \u00bb y accomplit un travail. Le p\u00e9rim\u00e8tre est n\u00e9goci\u00e9, et un rapport portant sur trois contrats ne dit rien du quatri\u00e8me, celui qui d\u00e9tient les fonds.<\/p>\n<h2>Lisez d\u2019abord la section de p\u00e9rim\u00e8tre<\/h2>\n<p>Le p\u00e9rim\u00e8tre vous indique quels fichiers ont \u00e9t\u00e9 examin\u00e9s et \u00e0 quel hash de commit. Deux questions en d\u00e9coulent, et toutes deux trouvent une r\u00e9ponse en quelques minutes.<\/p>\n<p>Le p\u00e9rim\u00e8tre inclut-il les contrats qui d\u00e9tiennent ou d\u00e9placent r\u00e9ellement de la valeur, ou seulement des contrats p\u00e9riph\u00e9riques ? Et le commit examin\u00e9 correspond-il \u00e0 ce qui est d\u00e9ploy\u00e9 ? Le code change apr\u00e8s un audit, et un rapport portant sur un commit ant\u00e9rieur \u00e0 plusieurs mises \u00e0 niveau d\u00e9crit un logiciel qui n\u2019existe plus. V\u00e9rifier le bytecode d\u00e9ploy\u00e9 face au code source audit\u00e9 est le contr\u00f4le qui comble cet \u00e9cart, et il est rarement effectu\u00e9 par ceux qui lisent le badge.<\/p>\n<h2>Les constats et leur r\u00e9solution<\/h2>\n<p>Les rapports classent les constats par s\u00e9v\u00e9rit\u00e9. Ce qui compte plus que les d\u00e9comptes, c\u2019est la r\u00e9solution : corrig\u00e9, reconnu ou contest\u00e9.<\/p>\n<p>\u00ab Reconnu \u00bb signifie que le projet a lu le constat et a choisi de ne rien changer. Cela peut \u00eatre tout \u00e0 fait raisonnable \u2014 le constat d\u00e9crit peut-\u00eatre un arbitrage accept\u00e9 \u2014 mais cela signifie qu\u2019un probl\u00e8me connu est en production, et il n\u2019appara\u00eetra pas dans un r\u00e9sum\u00e9 qui ne rapporte que le badge.<\/p>\n<p>Un rapport sans aucun constat n\u2019est pas un triomphe. Cela signifie g\u00e9n\u00e9ralement un p\u00e9rim\u00e8tre \u00e9troit ou une revue superficielle. Les revues comp\u00e9tentes de syst\u00e8mes non triviaux trouvent des choses.<\/p>\n<h2>Ce que les audits font structurellement mal<\/h2>\n<p>Certaines cat\u00e9gories sont difficiles \u00e0 d\u00e9tecter en examinant le code :<\/p>\n<ul>\n<li><strong>D\u00e9fauts de conception \u00e9conomique.<\/strong> Du code qui se comporte exactement comme il est \u00e9crit, mais dont les incitations cr\u00e9\u00e9es sont exploitables. Cela demande de mod\u00e9liser l\u2019\u00e9conomie du syst\u00e8me, ce qui est une discipline diff\u00e9rente et fr\u00e9quemment hors p\u00e9rim\u00e8tre.<\/li>\n<li><strong>Composabilit\u00e9.<\/strong> Un contrat peut \u00eatre sain isol\u00e9ment et dangereux une fois combin\u00e9 \u00e0 un autre protocole que personne n\u2019avait anticip\u00e9.<\/li>\n<li><strong>Hypoth\u00e8ses sur l\u2019oracle.<\/strong> Les contrats qui reposent sur des donn\u00e9es de prix externes h\u00e9ritent de la fiabilit\u00e9 de ces donn\u00e9es, et l\u2019oracle est g\u00e9n\u00e9ralement hors p\u00e9rim\u00e8tre.<\/li>\n<li><strong>Gouvernance et cl\u00e9s.<\/strong> Un contrat \u00e9volutif contr\u00f4l\u00e9 par un petit multisig comporte un risque qu\u2019aucune revue de code ne traite, parce que le code autorise la mise \u00e0 niveau par conception.<\/li>\n<\/ul>\n<p>Ce dernier point m\u00e9rite d\u2019\u00eatre soulign\u00e9. Si un contrat peut \u00eatre mis \u00e0 niveau, l\u2019audit d\u00e9crit l\u2019impl\u00e9mentation actuelle et les d\u00e9tenteurs des cl\u00e9s de mise \u00e0 niveau peuvent la remplacer. Ce qui compte alors, c\u2019est qui sont ces d\u00e9tenteurs et quelle proc\u00e9dure les encadre \u2014 une question de gouvernance d\u00e9guis\u00e9e en badge technique.<\/p>\n<h2>\u00c0 quoi ressemble un bon rapport<\/h2>\n<p>Publi\u00e9 int\u00e9gralement plut\u00f4t que r\u00e9sum\u00e9. P\u00e9rim\u00e8tre indiqu\u00e9 avec des hashes de commit. Constats avec s\u00e9v\u00e9rit\u00e9, description et r\u00e9solution. Une section de m\u00e9thodologie d\u00e9crivant ce qui a \u00e9t\u00e9 examin\u00e9 et ce qui ne l\u2019a pas \u00e9t\u00e9. Et une date, pour que vous puissiez le comparer \u00e0 l\u2019historique de d\u00e9ploiement.<\/p>\n<p>Un projet qui publie tout cela fait quelque chose de sensiblement diff\u00e9rent d\u2019un projet qui affiche un logo. Le logo est la partie qui co\u00fbte le moins cher.<\/p>\n<h2>Comment s\u2019en servir<\/h2>\n<p>Traitez un audit comme la preuve qu\u2019un projet a d\u00e9pens\u00e9 de l\u2019argent en examen et a accept\u00e9 d\u2019en publier le r\u00e9sultat, ce qui est un vrai signal sur sa fa\u00e7on de fonctionner. Ne le traitez pas comme une garantie de s\u00e9curit\u00e9, car le rapport ne pr\u00e9tend pas en \u00eatre une \u2014 l\u2019avertissement qu\u2019il contient le dit g\u00e9n\u00e9ralement de fa\u00e7on explicite, dans la section que personne ne cite.<\/p>\n<p>Les questions pratiques demeurent : quelle proportion de vos avoirs est expos\u00e9e \u00e0 ce contrat, pourriez-vous tol\u00e9rer de la perdre, et le rendement propos\u00e9 est-il plausiblement une compensation pour ce risque ? La pr\u00e9sence d\u2019un rapport n\u2019y change rien, et c\u2019est exactement pour cela que le badge est utilis\u00e9 comme il l\u2019est.<\/p>\n<h2>Toutes les revues n\u2019ont pas la m\u00eame profondeur<\/h2>\n<p>\u00ab Audit \u00bb recouvre un \u00e9ventail d\u2019activit\u00e9s au co\u00fbt et \u00e0 la rigueur tr\u00e8s diff\u00e9rents, et le rapport ne rend pas toujours la distinction \u00e9vidente.<\/p>\n<p>Une revue manuelle par des sp\u00e9cialistes exp\u00e9riment\u00e9s qui lisent le code est l\u2019extr\u00e9mit\u00e9 co\u00fbteuse. L\u2019analyse automatis\u00e9e rep\u00e8re les sch\u00e9mas connus \u00e0 bas co\u00fbt et manque tout ce qui est nouveau. La v\u00e9rification formelle prouve math\u00e9matiquement qu\u2019un code satisfait une sp\u00e9cification, ce qui est puissant et ne vaut que la sp\u00e9cification. Les plateformes d\u2019audit comp\u00e9titif confient la revue \u00e0 la foule, ce qui trouve un large \u00e9ventail de probl\u00e8mes mais produit une couverture moins r\u00e9guli\u00e8re.<\/p>\n<p>Chacune a son r\u00f4le. Ce qui compte, c\u2019est de savoir laquelle vous avez sous les yeux, et la section de m\u00e9thodologie le dit. Un rapport qui ne d\u00e9crit pas sa m\u00e9thode demande \u00e0 \u00eatre cru sur la force du logo.<\/p>\n<h2>Les primes aux bugs disent quelque chose qu\u2019un rapport ne peut pas dire<\/h2>\n<p>Un audit est un instantan\u00e9 ; une prime aux bugs est continue. Un projet qui fait tourner une prime substantielle et bien d\u00e9limit\u00e9e, avec un historique public de versements, est expos\u00e9 \u00e0 un examen continu qu\u2019une revue ponctuelle n\u2019offre pas.<\/p>\n<p>La taille compte. Un versement maximal tr\u00e8s inf\u00e9rieur \u00e0 ce que rapporterait un exploit n\u2019est pas une incitation, c\u2019est un geste \u2014 une personne qui trouve une faille critique dans un contrat d\u00e9tenant une grosse somme se heurte \u00e0 un probl\u00e8me arithm\u00e9tique \u00e9vident si la prime est triviale en comparaison. Des primes calibr\u00e9es sur la valeur expos\u00e9e sont un vrai signal du s\u00e9rieux avec lequel un projet envisage la possibilit\u00e9 de se tromper.<\/p>\n<h2>Le temps en production est aussi une preuve<\/h2>\n<p>Les contrats qui ont d\u00e9tenu une valeur importante pendant longtemps sans incident ont subi la revue la plus rigoureuse qui soit : l\u2019attention soutenue de personnes financi\u00e8rement motiv\u00e9es pour les casser.<\/p>\n<p>Ce n\u2019est pas une preuve \u2014 des failles dormantes existent et plusieurs protocoles de longue date ont \u00e9chou\u00e9 tardivement. Mais un contrat r\u00e9cemment d\u00e9ploy\u00e9, avec un rapport et sans historique d\u2019exploitation, a \u00e9t\u00e9 examin\u00e9 par un cabinet pendant quelques semaines. Un contrat plus ancien avec le m\u00eame rapport a en plus surv\u00e9cu \u00e0 des ann\u00e9es d\u2019int\u00e9r\u00eat hostile, et c\u2019est une qualit\u00e9 de preuve diff\u00e9rente.<\/p>\n<p>Combiner les deux est l\u2019approche pratique : lisez le rapport pour ce qui a \u00e9t\u00e9 examin\u00e9, et pesez l\u2019historique de d\u00e9ploiement pour ce que le rapport ne pouvait pas couvrir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00ab Audit\u00e9 \u00bb est employ\u00e9 comme synonyme de s\u00fbr. Un audit est une revue limit\u00e9e dans le temps d\u2019un code pr\u00e9cis face \u00e0 des pr\u00e9occupations pr\u00e9cises, et sa section de p\u00e9rim\u00e8tre est la partie qui m\u00e9rite d\u2019\u00eatre lue.<\/p>\n","protected":false},"author":3,"featured_media":168,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-defi-web3"],"_links":{"self":[{"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/posts\/621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/comments?post=621"}],"version-history":[{"count":0,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/posts\/621\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/media\/168"}],"wp:attachment":[{"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/media?parent=621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/categories?post=621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mycoinpartner.com\/fr\/wp-json\/wp\/v2\/tags?post=621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}