La programmation informatique remonte à 1842 avec les travaux d’Ada Lovelace qui fut la première dans ce domaine. La programmation blockchain nécessite un #LangageDeProgrammation compris par la machine pour une exécution efficace des codes. Plongeons ensemble dans la découverte de Solidity qui est sans doute le langage le plus utilisé dans la blockchain.
Qu’est-ce que Solidity ?
Solidity est un langage évolué orienté objet qui permet de coder les #contrats-intelligents sur la blockchain d’Ethereum et d’autres. Sa création a été influencé par le C++, JavaScript ou C# pour permettre aux développeurs de travailler facilement et rapidement.
Qui a créé le langage Solidity ?
Le langage Solidity est l’œuvre du cryptographe Gavin Wood Co-fondateur d’Ethereum. Il est à la tête de l’équipe constituée de Christian Reitwiessner, Alex Beregszaszi pour ne citer que ceux-là.
Tous ensembles, ils fédèrent leurs compétences pour le développement de la blockchain. Avec cette équipe de programmeurs, il met sur pied grâce à Solidity et d’autres langages apparentés l’Ethereum Virtual Machine (EVM) qui est le socle granitique de l’écosystème “un ordinateur pour la planète entière”. Grosso modo, Solidity est un paradigme de programmation qui consiste à faire interagir des objets, instances de concepts ou entités. A la manière de nombreux autres langages, il permet la manipulation de fonctions, structures ou strings (chaînes de caractères).
Les caractéristiques de Solidity
Solidity utilise une syntaxe semblable à celle de l’ECMAScript (norme JavaScript destinée à assurer l’interopérabilité des pages Web entre les différents navigateurs), ce qui le rend familier aux développeurs Web existants ; cependant, contrairement à l’ECMAScript, il possède un typage statique et des types de retour variadiques. Solidity se distingue des autres langages ciblant les EVM, tels que Serpent et Mutan, par certains aspects importants. Il prend en charge les variables membres complexes pour les contrats, y compris les mappings et les structures arbitrairement hiérarchisés. Les contrats Solidity prennent en charge l’héritage, y compris l’héritage multiple avec linéarisation. Solidity introduit une interface binaire d’application (ABI) qui facilite l’utilisation de plusieurs fonctions à sécurité de type dans un seul contrat (cette fonction a également été prise en charge ultérieurement par Serpent). La proposition Solidity comprend également la “Natural Language Specification”, un système de documentation permettant de spécifier des descriptions centrées sur l’utilisateur des ramifications des appels de méthodes.
Plateformes blockchain
En plus d’Ethereum, Solidity est disponible sur plusieurs autres blockchains, on peut citer:
Binance Smart Chain
Ethereum Classic
Avalanche C-Chain
Counterparty
Tron
Hedera Hashgraph
Les limites de Solidity
Contrairement aux programmes des langages de programmation traditionnels, qui peuvent être débogués, dans les contrats Solidity, les erreurs ne peuvent pas être modifiées ou corrigées ; les transactions ne peuvent pas être annulées. Solidity suit la règle “Code is Law”, ce qui signifie que tout contrat intelligent doit être codé de manière irréprochable lorsqu’il entre en vigueur.
Le piratage en 2016 du protocole DAO nous a également montré les limites de Solidity. Ce piratage a provoqué une bifurcation du système Ethereum. Pour éviter les erreurs techniques et les fautes, Coinbase, la plus grande bourse de crypto-monnaies aux États-Unis, a introduit un nouvel outil nommé Solidify. Cet outil est un système de vérification de l’IA qui détecte et classe les risques liés aux contrats intelligents.
Conclusion
Cet article nous a permis de s’approprier un outil fondamental dans la création et l’utilisation des contrats intelligents. Tout programmeur doit donc maitriser cet outil pour pouvoir mettre à la disposition de la communauté de tout projet un code coupé de toute ambiguïté.