Qu'est-ce que la solidité et comment est-elle utilisée pour développer des contrats intelligents ?

Qu'est-ce que la solidité et comment est-elle utilisée pour développer des contrats intelligents ?

Solidity a parcouru un long chemin depuis qu'il a été proposé pour la première fois en 2014 et développé plus tard par l'équipe Solidity d'Ethereum. Des centaines de milliers de développeurs utilisent le langage de programmation pour créer des services basés sur la blockchain pour un nombre croissant de cas d'utilisation.





Cet article explique ce qu'est la solidité et comment elle est utilisée dans l'écosystème Ethereum. Cet article est pour vous si vous souhaitez en savoir plus sur le fonctionnement interne de ce langage de programmation basé sur la blockchain.





comment se débarrasser des publicités sur instagram

Qu'est-ce que la solidité?

Solidity est un langage de programmation de haut niveau orienté objet utilisé pour créer des contrats intelligents qui automatisent les transactions sur la blockchain. Après avoir été proposé en 2014, le langage a été développé par des contributeurs du projet Ethereum. Le langage est principalement utilisé pour créer des contrats intelligents sur la blockchain Ethereum et créer des contrats intelligents sur d'autres blockchains.





Solidity est similaire à l'un des langages de programmation les plus courants, JavaScript. Il peut être considéré comme un dialecte de JavaScript. Cela signifie que si vous comprenez JavaScript, il peut être facile d'acquérir Solidity. Solidity partage également des caractéristiques similaires aux langages de programmation C++ et Python.

En tant que langage de haut niveau, Solidity supprime la nécessité de taper du code en uns et en zéros. Cela permet aux humains d'écrire beaucoup plus facilement des programmes d'une manière qu'ils trouvent plus facile à comprendre, en utilisant une combinaison de lettres et de chiffres.



La solidité est typée statiquement, avec prise en charge de l'héritage, des bibliothèques et des types complexes définis par l'utilisateur. Comme Solidity est typé statiquement, l'utilisateur spécifie beaucoup chaque variable. Les types de données permettent au compilateur de vérifier l'utilisation correcte des variables. Les types de données de solidité sont généralement classés en types de valeur ou en types de référence.

La principale différence entre les types valeur et les types référence réside dans la manière dont ils sont affectés à une variable et stockés dans l'EVM (Ethereum Virtual Machine). Bien que la modification de la valeur d'une variable d'un type valeur n'affecte pas la valeur d'une autre variable, toute personne faisant référence à des valeurs modifiées dans des variables de type référence peut obtenir des valeurs mises à jour.





Comment fonctionne la solidité ?

La beauté de l'écosystème Ethereum est que tant de crypto-monnaies différentes et d'applications décentralisées peuvent l'utiliser. Les contrats intelligents permettent de créer des technologies uniques sur Ethereum pour toutes sortes d'entreprises et d'organisations.

Chaque année, le monde dépense des milliards de dollars en solutions blockchain. Beaucoup de ces solutions sont créées à l'aide de Solidity. Les contrats intelligents construits à l'aide de Solidity peuvent être considérés comme un moyen d'automatiser les processus commerciaux et non commerciaux entre différentes personnes. Cela garantit que les personnes effectuant des transactions sur la blockchain n'ont pas à s'inquiéter des risques tels que la fraude ou l'impossibilité d'utiliser la même devise.





L'EVM est l'un des composants clés qui rendent possible l'exécution du code Solidity. L'EVM est décrit comme un ordinateur virtuel sur la blockchain qui transforme les idées des gens en code qui exécute des applications sur la blockchain.

Sous le capot, Solidity crée un code au niveau de la machine qui est exécuté sur l'EVM. Un compilateur est utilisé pour décomposer le code lisible par l'homme de haut niveau, qu'il transforme en instructions que le processeur lit. Différentes plates-formes fournissent une compilation Solidity gratuite, y compris le compilateur en ligne Remix et un compilateur de type commande téléchargé sur un PC.

Les contrats intelligents EVM ont certaines limites qui doivent être résolues. L'un des plus importants d'entre eux est l'accès limité aux fonctions de bibliothèque utiles pour l'analyse des structures JSON ou l'arithmétique à virgule flottante.

Fonctions publiques et privées

Les fonctions publiques sont similaires aux API auxquelles n'importe qui dans le monde peut accéder. N'importe qui peut les appeler dans leur code. Les fonctions publiques sont conçues, dans de nombreux cas, pour des processus partagés sur une plate-forme que tous les utilisateurs utilisent.

Par exemple, une fonction publique pourrait être créée pour permettre à tous les utilisateurs d'une plateforme de consulter le solde de leur compte. L'un des moyens les plus courants d'exploiter les contrats intelligents consiste à utiliser les fonctions publiques.

Connexes : Qu'est-ce qu'une blockchain et comment fonctionne-t-elle ?

Bien que les contrats intelligents puissent être faciles à rédiger avec Solidity, il est souvent très difficile de les rédiger en toute sécurité. Par exemple, si la fonction de retrait dans un contrat intelligent n'est pas sécurisée, un attaquant peut manipuler la fonction vulnérable pour vider un compte de fonds.

Un attaquant pourrait faire appel à une fonction de retrait pour envoyer de l'argent vers un autre compte, en utilisant une boucle qui répète à plusieurs reprises la fonction de retrait.

Les fonctions privées ne sont appelables que depuis l'intérieur des contrats. Ils contiennent des instructions qui ne peuvent être exécutées qu'après avoir été appelées par d'autres fonctions, en chaîne. Cela rend plus difficile la manipulation du code par des acteurs malveillants.

Normes et logique de code

Différentes normes émergent qui déterminent comment les contrats intelligents Solidity sont utilisés pour créer des applications sur Ethereum. Ces normes sont connues sous le nom de normes ERC (Ethereum Request for Comments). Les normes sont basées sur un document qui contient des directives sur les fonctions requises et des restrictions sur la façon dont le code doit se comporter.

Les normes ERC qui déterminent le fonctionnement de Solidity incluent :

  • ERC20
  • ERC165
  • ERC721
  • ERC223
  • ERC621
  • ERC777
  • ERC827
  • ERC884
  • ERC865
  • ERC1155

Il existe différentes manières d'utiliser Solidity pour faire interagir les contrats intelligents. Solidity peut également être utilisé pour créer des instructions dédiées sur la manière dont les données sont stockées dans le contrat intelligent. La logique et les données des contrats intelligents peuvent être séparées à l'aide de Solidity. En utilisant des contrats de substitution, la logique d'un contrat peut être modifiée pour permettre cela.

Immutabilité

Il est impossible de changer le code d'un contrat intelligent après qu'il a été écrit et compilé. Cela signifie que chaque ligne de code doit fonctionner comme prévu, sinon il pourrait y avoir de sérieux risques d'exploitation du code.

En relation: Comment devenir un programmeur Blockchain et commencer à gagner beaucoup d'argent

Comme la blockchain Ethereum est immuable, il est impossible de modifier les données et la logique qui y sont écrites. Un moyen de contourner ce problème consiste à utiliser un proxy pour pointer vers un autre contrat contenant une logique métier réelle. Cela permet de corriger les bogues pendant la mise en œuvre d'une nouvelle version du contrat.

le volume est trop grand pour fat32

Coûts du gaz

Il y a des coûts supplémentaires qui sont payés pour l'utilisation de Solidity sur le réseau principal Ethereum. Certains des coûts supplémentaires sont basés sur le système de gaz sur Ethereum, qui nécessite un paiement aux mineurs pour sécuriser le réseau de blockchain afin que le code puisse y fonctionner en toute sécurité.

Lors de la rédaction de contrats intelligents, il est important de se rappeler que les coûts du gaz peuvent déterminer la performance d'un contrat intelligent. Les frais de gaz étant payés pour chaque emplacement de stockage utilisé, les actions exécutées avec le code Solidity coûtent du gaz. Un contrat intelligent qui coûte cher à exécuter est peu susceptible d'être utilisé à long terme.

L'optimisation du gaz permet de réduire le coût du gaz lorsque le code Solidity est exécuté. Certaines des méthodes les plus populaires d'optimisation des gaz incluent l'utilisation de bibliothèques et l'utilisation de moins de fonctions. Les bibliothèques sont souvent utilisées pour enregistrer le bytecode.

Au lieu d'ajouter un bytecode inutile au contrat intelligent, la logique peut être placée dans des bibliothèques. Cela aide à garder la taille du contrat intelligent petite. En utilisant moins de fonctions, moins de bytecode est nécessaire et la difficulté d'auditer le code est également réduite.

Comment la solidité peut-elle être utilisée dans Ethereum?

La solidité est utilisée pour créer des contrats intelligents pour les jetons fongibles et les jetons non fongibles. Différentes normes sont utilisées pour créer des jetons non fongibles et des jetons fongibles dans l'écosystème Ethereum.

Ceux-ci permettent de créer différents types de cas d'utilisation pour les personnes qui utilisent la blockchain. La solidité permet aux gens d'utiliser des jetons et des jetons non fongibles sur Ethereum. De la frappe de jetons non fongibles à leur ajout pour générer des pools agricoles pour un intérêt supplémentaire, différents types d'utilisation des jetons sont rendus possibles par Ethereum.

Les Organisations Autonomes Décentralisées (DAO) sont également rendues possibles par Solidity. Un DAO, qui est un nouveau type de structure organisationnelle en ligne, est principalement écrit en Solidity. Les DAO permettent à différentes personnes de se réunir en tant que membres sur une plateforme en ligne où elles votent sur les décisions clés du DAO.

Solidity permet d'automatiser les processus au sein de la DAO. Des exemples d'automatisation des processus dans les DAO incluent le vote pour les décisions clés et l'attribution de la réputation aux membres du DAO pour leurs contributions au groupe.

Définir des normes pour les chaînes de blocs

Solidity est bien plus qu'un langage de programmation. Il définit les normes pour l'avenir de la technologie blockchain.

Grâce au nombre de développeurs open source travaillant pour améliorer la sécurité et les performances de Solidity, des milliers d'applications de l'écosystème Ethereum continuent d'en dépendre pour que leurs applications fonctionnent. À mesure que de nouvelles normes sont créées pour les contrats intelligents dans Ethereum, le langage deviendra plus sûr à utiliser.

Partager Partager Tweeter E-mail Un Internet vraiment décentralisé est-il possible ? Comment cela pourrait fonctionner avec la blockchain

Un Internet vraiment décentralisé est-il possible ? Que signifie la décentralisation et comment assurerait-elle votre sécurité ?

Lire la suite
Rubriques connexes
  • La technologie expliquée
  • La programmation
  • Ethereum
  • Chaîne de blocs
A propos de l'auteur Calvin Ebun-Amu(48 articles publiés)

Calvin est écrivain chez MakeUseOf. Quand il ne regarde pas Rick et Morty ou ses équipes sportives préférées, Calvin écrit sur les startups, la blockchain, la cybersécurité et d'autres domaines technologiques.

Plus de Calvin Ebun-Amu

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner