- Retour au menu
- Retour au menuTarifs
- Retour au menuRecherche
- Retour au menuConsensus
- Retour au menu
- Retour au menu
- Retour au menu
- Retour au menuWebinaires et Événements
ONEun des premiers langages de contrats intelligents d'Ethereum est sur le point de disparaître
ONEun des plus anciens langages de contrats intelligents Ethereum montre des signes de vieillissement – et cela pourrait indiquer des faiblesses sous-jacentes dans l’économie des jetons.
Serpent, ONEun des premiers langages de contrats intelligents d'Ethereum, n'est plus sûr à utiliser.
C'est peut-être le plus grosemporter d'après un audit du langage de compilation Serpent d'Ethereum, publié la semaine dernière par la société de sécurité blockchain Zeppelin Solutions. Les résultats pointent vers des dizaines de problèmes avec le compilateur, dont huit vulnérabilités critiques.
Zeppelin a été embauché par Augur, un marché de prédiction basé sur Ethereum, pour mener l'audit il y a deux mois. d'une valeur de près de 2 millions de dollarsde son jeton (REP) siégeant dans un contrat écrit en Serpent, Augur avait de bonnes raisons de s'inquiéter de la sécurité de l'ancienne langue.
Augur était ONEun des premiers projets Ethereum , et à l'époque où son contrat de jeton a été rédigé, Serpent était le principal langage de contrats intelligents disponible. Mais peu après, Solidity a été introduit et est devenu le langage de programmation de contrats intelligents phare d'Ethereum, reléguant Serpent au second plan.
Malgré cela, le PDG Augur, Joey Krug, a déclaré qu'il y avait peu d'avertissements publics concernant d'éventuels problèmes qui empêcheraient Serpent d'exécuter le code comme prévu.
Il a déclaré à CoinDesk:
Personne n'a jamais dit que Serpent était peu sûr ou déprécié. Il n'était tout simplement T aussi populaire [que Solidity].
Alors Augur prévoyait de migrer vers un autre langage de contrats intelligents à un moment donné, les résultats de l'audit du compilateur ont pratiquement forcé la main au projet. Dès que Zeppelin a informé Augur des problèmes de sécurité en jeu, Augur a déplacé rapidement pour migrer ses jetons REP vers un système sécurisé ERC-20contrat de jeton écrit en Solidity.
« Mauvaise qualité » et « défectueux »
Pour ceux qui se demandent s'ils doivent Réseaux sociaux le mouvement, Zeppelin Solutions a dévoilé les résultats complets de son audit dans un rapport de 36 pages.
Dans unarticle de blogZeppelin a qualifié le projet Serpent de « faible qualité » et de « défectueux » et a mis en garde les développeurs contre l'utilisation du langage jusqu'à ce que ses nombreux problèmes critiques soient résolus.
La nouvelle a incité le fondateur Ethereum , Vitalik Buterin, à envoyer un tweet, qualifiant le langage de programmation de « technologie obsolète » et avertissant qu'il manquait de « protections de sécurité » adéquates.
En ce qui concerne Augur, la vulnérabilité la plus critique de Serpent était ONE qui permettrait à un pirate de modifier la date à laquelle le contrat de jeton REP a été créé, gelant ainsi essentiellement l'approvisionnement en jetons.
« On pourrait faire croire au contrat qu'il n'a pas encore été officiellement créé, de sorte qu'aucun des transferts ne fonctionnerait », a déclaré Krug.
Si Serpent n'avait rencontré qu'un ONE problème, Krug aurait volontiers corrigé le code et continué à utiliser le langage pour le moment. Mais le nombre de problèmes révélés par l'audit était tout simplement trop important.
Ainsi, suivant un chemin de mise à jour décrit par Zeppelin, Augur a décidé de réécrire son ancien jeton REP dans Solidity et déployer le nouveau contrat ERC-20 sur Ethereum. Il a ensuite piraté son propre contrat intelligent Serpent, gelant le jeton REP , avant de migrer le solde du REP gelé vers le nouveau contrat.
Dans un document séparéarticle de blogZeppelin a exhorté tous les projets Ethereum utilisant encore Serpent à Réseaux sociaux un chemin de migration similaire pour déplacer leurs jetons vers un contrat Solidity plus sécurisé.
Il faut plus d'yeux
Le langage de programmation et le compilateur Serpent ont tous deux été écrits par Buterin. Cependant, le fait qu'une ONE personne ait écrit le code pourrait expliquer certains des problèmes de Serpent.
Zeppelin a écrit dans son rapport :
« Moins de regards sur le code signifie moins de bugs remarqués. »
Zeppelin a également souligné que Serpent a deux ans, avec peu de commits depuis octobre 2015. De plus, comme presque personne n'utilise Serpent maintenant, il y a peu de chances que quelqu'un repère des problèmes dans le code ou que ces problèmes soient résolus.
Solidity, en revanche, a été écrit par unéquipe de personnesdirigé parGavin Wood, ONEun des fondateurs d' Ethereum. Et comme Solidity est plus largement utilisé et connaît une activité bien plus importante – 30 fois plus de demandes d'extraction, 20 fois plus de commits, huit fois plus La rédaction, selon Zeppelin – par rapport à Serpent, le nouveau programme est moins susceptible de rencontrer le même nombre de problèmes.
Quant à savoir quel logiciel les développeurs devraient utiliser à la place de Serpent, le rapport Zeppelin suggère que Solidity est la meilleure solution disponible aujourd'hui. Cependant, il suggère également aux développeurs d'envisager Viper, successeur de Serpent, affirmant que Viper «LOOKS supérieur » à Serpent. Mais dans un tweetButerin a recommandé aux développeurs d'attendre que Viper passe d'abord un audit externe.
Audit de solidité ?
Mais ONEun des problèmes les plus alarmants mis en lumière par l'audit du compilateur Serpent de Zeppelin est peut-être que Solidity lui-même n'a pas été audité. Et sachant que des millions de dollars de jetons sont actuellement gérés par des contrats intelligents écrits en Solidity, certains, dont Krug, trouvent cette nouvelle inquiétante.
Ajoutant aux inquiétudes concernant Solidity, l'audit du compilateur Zeppelin fait suite à un piratage de 30 millions de dollars du portefeuille Parity, où unbug dans le code de paritéCela a essentiellement permis au pirate de transformer trois portefeuilles multi-signatures en portefeuilles sans signature et de vider les fonds.
Dans unarticle de blogSuite à cette attaque, Parity a pointé du doigt Solidity, déclarant que « une partie de la responsabilité de ce bug incombe au langage Solidity et, dans son incarnation actuelle, à la difficulté avec laquelle on peut comprendre les permissions d'exécution des fonctions. »
Mais un vol Ethereum encore plus important a eu lieu il y a un peu plus d'un an : un pirate informatique a exploité une faille dans le code de Solidity pour détourner 50 millions de dollars en ethers d'un projet appelé The DAO. Les dégâts ont été jugés si importants que les développeurs d' Ethereum ont implémenté un hard fork dans le protocole pour restaurer l'historique des transactions.
Les audits de code logiciel sont une exigence dans de nombreux secteurs critiques, et Demian Brener, PDG de Zeppelin, pense que le même argument devrait être avancé pour le code des contrats intelligents.
« Compte tenu du nombre de vulnérabilités découvertes dans Serpent, nous pensons que les audits de compilateurs, ainsi que les audits de code, devraient devenir une bonne pratique », a-t-il écrit dans un courriel adressé à CoinDesk. Il a ajouté que Zeppelin était actuellement en discussion avec la Fondation Ethereum pour concrétiser cette démarche.
Pendant ce temps, Krug résumait ses propres pensées sur la question en disant :
« Dans l’ensemble, le message est qu’il faut auditer davantage de choses. »
Peau de serpentimage via Shutterstock