Catégories
FAQ

Qu’est-ce que Solidity?

Solidity est un langage de programmation orienté objet pour écrire des contrats intelligents. Il est utilisé pour mettre en œuvre des contrats intelligents sur différentes plates-formes basées sur la blockchain. Il a été développé par Gavin Wood, Christian Reitweissner, Alex Beregszaszi, Yoichi Hirai et plusieurs autres collaborateurs d’Ethereum pour permettre l’écriture de contrats intelligents sur des plateformes telles que blockchain Ethereum.

Histoire

Solidity a d’abord été proposé en Août 2014 par Gavin Wood; le language a ensuite été développé par l’équipeSolidity du projet Ethereum, dirigé par Christian Reitwiessner. Il s’agit de l’un des quatre languages (les autres étant Serpent, LLL et Mutan (dépréciée)) conçu pour cibler la machine virtuelle Ethereum (EVM).

Solidity est actuellement utilisé comme langue principale sur Ethereum ainsi que sur d’autres blockchains privés qui fonctionnent sur des plates-formes en concurrence avec Ethereum, comme Eris Tendermint. SWIFT a déployé une preuve de concept en utilisant Solidity fonctionnant sur une implementation de Tendermint par Monax Industries Eris .

Un chercheur de l’Université Cornell a déclaré que Solidity était en partie à blâmer pour le hack DAO qui a eu lieu en 2016. Il a déclaré: «ce n’était en fait pas un défaut ou une faille dans le contrat de DAO lui-même: techniquement le EVM fonctionnait comme prévu, mais Solidity a introduit des failles de sécurité dans les contrats qui n’ont pas été vu par la communauté, mais aussi n’ont pas été identifiés par les concepteurs du language eux-mêmes ».

Description

Solidity est un langage de programmation proche de JavaScript statiquement typé conçu pour développer des contrats intelligents qui fonctionnent sur l’EVM. Solidity est compilé en bytecode qui est exécutable sur le EVM. Avec Solidity, les développeurs peuvent écrire des applications qui implémentent la logique métier d’auto-application énoncées dans les contrats intelligents, laissant un enregistrement non répudiable et faisant autorité des transactions. Écrire des smart contrats (contrats intelligents) dans un language spécifique aux smart contrats comme Solidity est plutôt accessible pour ceux qui ont déjà des compétences en programmation.

Comme spécifié par Wood, Solidity est conçu autour de la syntaxe ECMAScript pour le rendre familier pour les développeurs web existants; contrairement à ECMAScript il possède un typage statique et les types de retour variadique. Par rapport à d’autres langues conçus pour l’EVM plus anciens comme  Serpent et Mutan, Solidity contient un certain nombre de différences importantes, comme des variables de types complexes pour les contrats, comme par exemple:

  • des structures hiérarchiques ou des structs, similaires à ce que l’on trouve en C;
  • les contrats permettent l’héritage, y compris l’héritage multiple avec linéarisation;
  • une application d’interface binaire (ABI) facilitant plusieurs fonctions typées dans un seul contrat a également été introduit (et soutenu plus tard par Serpent);
  • un système de documentation pour décrire les ramifications des appels des méthodes centrée sur l’utilisateur a également été inclus dans la proposition, connue sous le nom « Spécification du langage naturel».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *