OnChainReport, c'est une newsletter gratuite qui contient :
Une thématique bien précise autour des cryptomonnaies.
Une sélection d'articles francophones de qualité.
L'explication d'un terme technique complexe.
La présentation d'un projet qui déchire.
Et ça tous les jeudi, dans votre boite mail ou sur Medium.
Notre crypto-Édito
Bienvenue dans cette quatrième publication d’OnChainReport. Je suis Guillaume et c’est un plaisir de vous retrouver lors de ce rendez vous hebdomadaire.
Aujourd'hui sujet un peu plus technique que les semaines précédentes mais je vais essayer de rester le plus général possible. Nous allons ensemble partir à la découverte des smart-contracts, ces scripts immuables permettant de développer des applications décentralisées.
Tout d’abord nous allons appréhender ce que sont les smart-contracts, leurs intérêts mais également leurs faiblesses (Qu'est ce qu’un smart-contract). Nous irons à la découverte du plus connu des smart-contracts, permettant de facilement créer un token utilisable par tous (ERC20). Mais nous verrons également que les smart-contracts ne riment pas forcément avec Ethereum ou autres plateformes similaires (Bitcoin : Miniscript).
La sélection d’articles de la semaine
Qu’est ce qu’un smart-contract
Commençons comme d’habitude par découvrir ce que sont les smart-contracts et à quoi servent-ils ? Quelles sont les différences entre un code déployé sur un serveur traditionnel et un smart-contract, déployé par exemple sur Ethereum ?
Floriane Bobée de BitConseil nous explique simplement ce que sont ces smart-contracts. Loin de la technique, elle présente les enjeux du déploiement de code immuable sur des blockchains publique ou privée.
Le plus connus des smart-contracts : L’ERC-20
Si les smart-contracts sont désormais largement présents dans l'écosystème il est parfois difficile de les reconnaître et de s’en rendre compte. Saviez vous que les tokens sont en réalité des smart-contracts très classique ?
La capacité à s’échanger sur les applications ou plateformes d'échanges proviennent du standard qu’ils utilisent, principalement l’ERC-20. Ce standard est largement utilisé dans la communauté Ethereum et il permet l’échange de tokens très facilement, tout en restant très simple. Simon Polrot nous présente ce standard et les fonctions qui composent son code.
Bitcoin : Miniscript
Quand on pense smart-contracts, c’est surtout aux plateformes permettant leurs déploiement qui viennent en haut de la liste. Pas vraiment Bitcoin non, mais plutôt Ethereum, EOS ou Tezos. En effet ces plateformes permettent l'exécution de programmes aux possibilités infinie.
Mais si je vous disais qu’il est possible de développer des smart-contracts sur Bitcoin ? Il existe un langage nommé Script le permettant, meme si les possibilités ne sont pas aussi . Mais Script reste très complexe à utiliser, et c’est à ce niveau qu’intervient Miniscript. Renaud Heitz nous présente ce langage de programmation dédié à Bitcoin.
Un projet : Ethereum Studio
Développer son premier smart-contract n’est pas facile, encore moins quand c’est la première fois que vous programmez. Aujourd’hui il existe différents outils permettant aux débutants de découvrir la programmation de smart-contracts en douceur. Remix est le plus emblématique et plus ancien, mais je vous présente aujourd’hui Ethereum Studio.
Ethereum studio vous permet de développer et de déployer des smart-contracts Solidity (le langage de programmation Ethereum) directement sur votre navigateur. Mais Ethereum Studio propose et c’est ce qui nous intéresse, des tutoriels pour découvrir des smart-contracts tels que l’ERC-20 pour créer son propre token Ethereum par exemple. L’outil propose notamment aux utilisateurs débutants de découvrir Solidity avec différents tutoriels bien précis :
Hello World. Le plus basique des tutoriels, il vous fera découvrir ce qu’est un smart-contract, et comment interagir avec lui.
Coin. Coin utilise le standard ERC20 présenté précédemment pour créer un token, que l’utilisateur pourrait personnaliser.
CryptoPizza NFT.
Ethereum Studio c’est donc un très bon outil pour découvrir directement dans son navigateur la programmation de smart-contracts Ethereum, avant de passer à des outils plus puissants par la suite. En effet malgré ses fonctionnalités, Ethereum Studio ne permet pas d’aller plus loin que la découverte de Solidity ou que du prototypage par exemple.
Si vous souhaitez aller plus loin dans le développement de smart-contracts et d’applications décentralisés, Ethereum Studio pourrait trouver en vos mains ses limites. En effet le navigateur ne peut pas tout gérer et il est plus confortable de travailler sur son propre poste de travail. Je vous conseille de vous renseigner sur la suite d’outils Truffle notamment, qui pourrait être présenté comme un Ethereum Studio plus puissant mais également plus complexe.
L’explication : la sécurité des smart-contrats
Les smart-contracts sont sur quoi reposent la plupart des applications décentralisées. Nous avons vu que ces dernières pouvait dans le cadre de la finance décentralisée par exemple, capter de grandes quantités de tokens. Ces derniers possédant une valeur fiduciaire, ce sont des millions de dollars qui sont ainsi gérés par les smart-contract de l'écosystème. De part l'immuabilité de ces smart-contracts, leurs sécurités est primordiale puisque nous avons déjà vu des cas d’attaques de grande ampleur.
En effet nous avons notamment le cas de la DAO Ethereum de 2016 et de nombreuses autres depuis. Mais si les risques sont présent il est possible de les diminuer en mettant des bonnes pratiques de développement :
Chercher la simplicité. De nombreuses lignes de codes ne signifient pas forcement un bon code, et signifie surtout plus de failles potentielles.
Réaliser de nombreux tests. Il est très important de tester de manière générale son code, encore plus dans le cadre de smart-contracts. Une fois déployés, ils sont alors non modifiables et nécessitent un redéploiement.
Se former continuellement. Le développement de smart-contract évolue beaucoup, plus que le web traditionnel ou les logiciels. De nouveaux standards sont crée et des changements modifient les interactions avec les machines virtuelles utilisées.
Mais ces méthodes ne font pas tout, et il est également nécessaire de faire appel à d’autres développeurs et testeurs indépendants. C’est ce que l’on appelle des audits, des procédures durant lesquelles des experts vont analyser le code afin de comprendre ses mécanismes et ses failles potentielles. C’est également l'occasion pour les équipes de faire preuve de transparence en proposant des ressources simple pour permettre aux utilisateurs de comprendre le fonctionnement de leurs smart-contracts.
Clap de fin
Cette explication conclue ce troisième épisode d’OnChainReport. Merci d’avoir poursuivi votre lecture jusqu’à la fin, en espérant que vous l’ayez appréciée.
Je vous invite par la suite à me faire part de vos questions et vos remarques sur cet épisode et de manière générale sur OnChainReport. En effet le concept n’est pas gravé dans le marbre et j’accueille volontiers tous conseils dans le but de le rendre encore plus intéressant.
Si cette édition vous a plus, je vous demanderais de partager au plus grand nombre cette initiative. C’est le meilleur soutient que vous pourriez apporter au projet aujourd’hui.
En attendant vos retours, je vous souhaite une très bonne semaine.
A jeudi prochain,
Guillaume.
Liens utiles (affiliation) :