Applications décentralisées permettant l'exécution autonome de programmes sans l'intervention d'un tiers, les smart contracts ont le potentiel de révolutionner de nombreuses activités économiques. "[...] un protocole de transaction informatisé qui exécute automatiquement les termes d'un contrat. [...] Les objectifs économiques connexes comprennent la réduction des pertes dues à la fraude, les coûts d'arbitrage et d'application de la loi et les autres coûts de transaction." C'est en ces termes que Nick Szabo théorise pour la première fois les smart contracts, en 1994. Une technologie imaginée il y a plus de 25 ans, et n'ayant vu le jour que très récemment, suite à la création de la blockchain d'Ethereum.
Voici un résumé complet des informations dont vous avez besoin pour comprendre la marche à suivre dans la création d'un smart contract.
Qu'est-ce qu'un smart contract ?
C'est en 2015 que les smart contracts sont utilisés pour la toute première fois. Ces derniers se trouvent en effet au cœur de la conception de la blockchain d'Ethereum. Un smart contract est un programme informatique développé et sauvegardé au sein d'une blockchain. Ces contrats intelligents sont stockés publiquement et ne peuvent pas être modifiés une fois validés. Ils permettent de sceller un engagement entre plusieurs parties par l'intermédiaire d'un code informatique. La particularité des smart contracts provient du fait qu'ils puissent enclencher une transaction de manière automatique et autonome, sans l'intervention d'un tiers, à partir du moment où une ou plusieurs conditions, préétablies via un algorithme, sont réunies. Pour ce faire, ils utilisent des jetons, généralement des ethers, qu'ils consomment au fur et à mesure de l'exécution de leur programme. Les smart contracts permettent donc une exécution automatique, décentralisée, transparente, peu coûteuse et totalement sécurisée d'un certain nombre de programmes informatiques. Leur usage commence tout juste à être exploré.
Par exemple : à la fin de l'année 2017, le groupe d'assurance AXA a mis en place, par l'intermédiaire de smart contracts, un système d'indemnisation automatique des passagers en cas de retard trop important d'un vol.
Comment créer un smart contract ?
Les prérequis à la création d'un smart contract
La création d'un smart contract, ou d’une application décentralisée (dApp) s'adresse principalement aux développeurs, notamment aux développeurs web. Les dApp ont la particularité de ne pas se connecter à un serveur centralisé classique, mais directement à la blockchain au sein de laquelle ils seront intégrés, généralement la blockchain d'Ethereum. Afin de se connecter à ladite blockchain, le développeur doit se connecter à son portefeuille digital par l'intermédiaire d'une API. Par conséquent, c'est ce portefeuille local qui, connecté à la blockchain, joue le rôle de back end. Voilà pourquoi l'application est dite "décentralisée".
Étapes et outils nécessaires à la création d'un smart contract
- L'écriture du smart contract : Le langage de programmation Solidity est majoritairement utilisé pour créer des applications décentralisées, étant parfaitement adapté à la blockchain d'Ethereum. Pour cette étape d'écriture, il est possible d'utiliser Truffle (un framework de développement) ou encore Remix (IDE dans le navigateur utilisé). Le développeur doit garder à l'esprit que, schématiquement, un smart contract se présente sous la forme d'une classe avec des variables. En outre, lors de l'écriture de chaque fonction, il est fondamental de déclarer le type de variable, à la fois reçu et retourné.
Cette étape comporte tout d'abord l'écriture des variables et des types de données, puis celle des fonctions.
- La compilation et l'intégration du smart contract au sein d'une blockchain locale afin de le tester : Cette étape peut être effectuée par l'intermédiaire du logiciel Test RPC, ou encore de Ganache, qui permettent de simuler la blockchain d'Ethereum. Par ailleurs, il est également possible d'utiliser une blockchain publique de test, telle que Ropsten.
- L'écriture d'une interface web permettant de créer le programme associé au smart contract.
- La compilation et l'intégration du smart contract au sein de la blockchain réelle : Cette dernière étape permet la mise à disposition de l'application décentralisée à tous les utilisateurs de la blockchain.
Attention : La technologie des smart contracts étant très récente et complexe, ces derniers souffrent encore de nombreuses failles de sécurité. Par conséquent, la plus grande prudence est recommandée aux développeurs d'applications décentralisées, qui manipulent des jetons correspondant à des sommes d'argent bien réelles !
La création d'un smart contract est donc un processus complexe, nécessitant à la fois des compétences de développement, et une bonne compréhension de la technologie des blockchains. Toutefois, en suivant pas à pas les étapes de création, et en prenant soin de tester son application avant de la diffuser, de manière à limiter les risques financiers, le développeur peut tout à fait parvenir à son but.