Ethereum


Définition


En une phrase, Ethereum est : un ordinateur mondial, que n’importe qui peut programmer et utiliser comme il le souhaite. Cet ordinateur est toujours allumé, il est très sécurisé, et tout ce qui est fait à l’aide de cet ordinateur est public.

La technologie derrière Ethereum est grosso modo la même que celle utilisée par le bitcoin : il s’agit d’ordinateurs individuels qui « participent » à une unique base de données globale publique, et donc partagée entre tous. Un livre de comptes, ou un tableur géant dans lequel chaque personne intéressée entre les données qu’il souhaite et auquel tout le monde a accès. Ce livre de compte est appelé “Blockchain”.

La blockchain de l'Ethereum concerne le déploiement d'applications décentralisées, ce qui représente un secteur innovant à fort potentiel. Pour plus d'informations, je vous invite à consulter cet article sur Pearltrees.

Cette veille ne porte pas uniquement sur l'explication du concept de Blockchain. J'ai choisi ce thème dans le but d'étudier l'aspect logiciel de la création de contrats intelligents. En effet, les blockchains existent déjà dans la vie de tous les jours comme par exemple Git qui hash ses commits en tenant compte des commits précédent. Le fonctionnement des transactions d'ether est complexe. En étudiant les smarts contracts qui sont à l'origine DApps (Decentralized application), on peut mieux visualiser le processus de transaction.

Voici un exemple de processus de développement d'un smart contract

Responsive image

Intérêt pour les entreprises


Les registres blockchain sont également très utilisés dans le cadre du déploiement de smart contracts et de DApps (ou applications décentralisées). L’utilisation des smart contracts (contrats intelligents) permet de rendre possible la tenue des registres et l’automatisation d’actions via des programmes autonomes. Le but est ici généralement de :

Diminuer les coûts
liés à la présence d’acteurs intermédiaires au sein d’un process de transaction.


Sécuriser les transactions

à l’aide d’un contrat établi sur la base de conditions strictes : si ces conditions ne sont pas remplies, le programme ne s’exécute pas.


Améliorer la transparence

des réseaux en rendant l’information 100% accessible.


Innover

tout en définissant un nouveau mode de gouvernance jugé plus juste et plus éthique.

Outils de développement de smart contracts


  • Vyper, le langage orienté contrat (Contract-Oriented Programming) proche de Python
  • Solidity, le langage orienté contrat proche de JavaScript
  • Ethlint , l'outil de résolution de problème de style & de sécurité pour Solidity basé sur Solium
  • dapp-workflow : des outils pour apprendre les bonnes pratiques du développement de Smart Contracts utilisant Ganache CLI, Web3 v1, SolcJS et Solium.
  • learning-solidity, des tutoriels complets pour appendre Solidity tout en lisant la documentation de Solidity
  • La documentation officielle de Solidity

Outils de veille utilisés


  • Google actualités avec une recherche portant sur les 3 premières pages
  • Reddit avec r/ethereumnoobies/, r/eth & r/solidity
  • Github, avec les reviews de commits
  • Google alertes en choisissant l’article le plus pertinent de tous les articles retournés

Ma démarche


Ma veille technologique contient des articles, mais aussi des guides contenant des explications qui m’ont permis de mieux comprendre le concept, mais aussi de commencer à intégrer cette pratique au sein de mes projets afin d’apprécier les avantages et les inconvénients de l’Intégration continue.

...