PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

Blog Stéphane Bortzmeyer: Ethereum, la prochaine étape des systèmes transparents

lundi 14 septembre 2015 à 15:42
GuiGui's Show - Liens
« Bitcoin est spécialisé : on ne peut s'en servir que pour la monnaie. Si on veut, par exemple, enregistrer des noms et non pas échanger de l'argent, il faut copier le code de Bitcoin (il est libre), faire des modifications et créer sa propre infrastructure (sa blockchain à soi, ses mineurs, ses explorateurs de blockchain, etc). Ce choix n'est pas un oubli ou une erreur des concepteurs de Bitcoin : c'est parce que faire un système équivalent, mais généraliste, est non trivial, notamment du point de vue de la sécurité.

Ethereum reprend plusieurs concepts importants de Bitcoin, notamment la blockchain et la preuve de travail (il n'est donc pas plus écologiste que Bitcoin). Mais le code est radicalement différent, réécrit de zéro (contrairement à la plupart des alt coins). Il existe en outre plusieurs implémentations, avec une spécification commune (contrairement à Bitcoin où le code est la spécification, le papier original de Sakamoto ne descendant pas dans les détails). Mais le gros changement par rapport à Bitcoin est que les transactions stockées dans la blockchain ne sont pas limitées à envoyer et recevoir de l'argent. Ethereum dispose d'un quasi-langage de Turing et est donc un système de calcul réparti : les pairs dans le réseau Ethereum ne se contentent pas de vérifier l'intégrité de la blockchain et d'ajouter de la monnaie, ils exécutent du code arbitraire, celui des applications que vous ou moi développons et envoyons sur le réseau.

Cela permet d'écrire des contrats (appelés, dans le style marketing fréquent dans le monde Ethereum, des smart contracts) qui sont la description, dans un langage de programmation, des règles qui s'imposent aux parties contractantes. Un prêt d'argent, par exemple, peut se programmer dans un contrat et s'exécuter automatiquement, sans intervention humaine, et donc sans possibilité de triche.

[...]

Ces contrats sont la nouveauté importante d'Ethereum. Comme leur exécution peut potentiellement consommer des ressources importantes (imaginez une boucle sans fin dans un contrat...), il faut payer pour leur exécution, ce qu'Ethereum nomme l'essence (gas). Cette essence est payée avec la monnaie de base d'Ethereum, l'ether. [...] Si vous tombez à court d'essence, l'application s'arrête. C'est cette limite qui fait qu'Ethereum n'est pas une vraie machine de Turing : celle-ci a des ressources infinies.

[...]

D'abord, un sérieux avertissement, Ethereum est encore vraiment expérimental. Le premier bloc de la blockchain, la genèse, n'a été générée que fin juillet 2015. Le code ne marche pas toujours, les compétences humaines sont encore rares et, surtout, tout évolue vite et les documentations qu'on trouve en ligne sont presque toujours fausses ou dépassées (ou les deux à la fois). Contrairement à Bitcoin, on n'est donc pas encore en production.

[...]

La commande getBalance indiquait mon niveau de pauvreté. Aucun ether disponible. Je pourrais en miner en faisant tourner mon CPU (et donc mes ventilateurs) à fond mais j'ai préféré en acheter des tout faits, chez Kraken où on peut désormais acheter et vendre des ethers. Menu Trade / New order, j'ai acheté deux ethers. Attention, les interfaces Ethereum comptent parfois en ethers mais parfois aussi dans leurs subdivisions, portant des noms pittoresque comme « szabo » (un millionième d'ether) ou « lovelace » (un millionième de milliardième d'ether). Une fois mes ethers obtenus, je les envoie depuis Kraken vers mon compte, en indiquant l'adresse de celui-ci (menu Funding / Withdraw). Attention, si vous utilisez Kraken pour d'autres monnaies que l'ether, la fonction permettant d'enregistrer une adresse est par compte Kraken et pas par monnaie. Si vous avez enregistré une adresse Bitcoin sous le nom « Maison », vous ne pourrez pas nommer l'adresse Ethereum de la même façon (« duplicate withdrawal information » est le peu utile message d'erreur de Kraken).

[...]

Mais la vraie puissance d'Ethereum n'est pas là. Elle est dans les contrats. Ceux-ci sont des programmes exécutés par la machine Ethereum. Celle-ci exécute un langage machine nommé EVM. Il est de trop bas niveau pour le programmeur normal, qui écrit en général ses contrats dans un langage de plus haut niveau qu'il compilera. Le plus répandu de ces langages est Solidity (qui ressemble à JavaScript) mais on trouve aussi Serpent (inspiré de Python) ou LLL (dont la syntaxe ressemble à Lisp mais qui est en fait un langage de bas niveau, très proche du langage machine, Serpent peut d'ailleurs produire du LLL). »
(Permalink)