Une cagnotte dans la blockchain Ethereum

le 30/06/2016 par Loup Theron
Tags: Software Engineering

La blockchain est un sujet très actuel, nous pensons qu’il faut implémenter pour comprendre la technologie et son avancement. Nous avons choisi d’implémenter une cagnotte en ligne dans Ethereum, une blockchain qui se focalise sur les smart-contracts et non plus sur de l’échange d’argent. Cet article montre le potentiel intérêt d'utiliser Ethereum pour cette application.

Rappels (Blockchain, Bitcoin et Ethereum)

Ethereum and Bitcoin

Si aucun de ces termes ne vous sont familiers, vous pouvez lire d’abord l’article Introduction à la technologie Blockchain qui explique rapidement les différents concepts. Si vous êtes déjà familiers avec ces concepts, vous pouvez sauter ce paragraphe. Et pour ceux qui se sentent “entre les deux”, je rappellerai juste qu’en plus de permettre d’envoyer, comme Bitcoin, des jetons qui représentent une valeur (les ethers), Ethereum peut être vu comme une base de données répliquée, horodatée et immuable qui stocke des contrats et permet de les exécuter dans un environnement défini. Ces contrats sont en fait du code qui représente les processus métiers.

A la manière de Bitcoin, toute transaction est payante, il faut ajouter des frais additionnels pour qu’une transaction soit validée puis ajoutée dans la chaîne de blocs. Ces frais ne vont pas rémunérer une personne physique ou morale, mais ils permettent au contraire de fournir une motivation aux membres du réseau de valider les transactions et donc de certifier qu’elles ne sont pas frauduleuses.

Les Cagnottes en ligne

Sprout growing on glass piggy bank in saving money concept with filter effect retro vintage style

Les cagnottes en ligne ont remporté un certain succès ces dernières années, les deux plus connues étant Leetchi (créée en 2009) et Le pot commun (créée en 2011).

Contrairement au platesformes de crowdfunding, elles n’ont pas de montant minimum à atteindre, il n’y a pas de récompense pour les contributeurs et elles touchent des projets plus variés ; une cagnotte peut donc être créée pour un anniversaire, un don sans contreparties, ou même des travaux suite à une crue…

Les principaux services disponibles sur Internet sont gratuits, mais offrir un service gratuit peut être très rentable. En effet la publicité sur Internet est de plus en plus ciblée et les données personnelles et de suivi sont une mine d’or. Dans ces deux cas l’usager du service n’est plus un consommateur, mais le produit.

Les cagnottes en lignes existantes qui ne prennent pas de commission ont donc un autre moyen d’avoir des revenus, que ce soit par d’autres offres ou les exemples cités ci-dessus, car elles nécessitent de passer par VISA, Paypal ou un autre prestataire pour les transactions, qui elles ne sont pas gratuites.

Elles ne sont pas transparentes, on leur fait confiance de bien distribuer les montants à la fin de la cagnotte et à la bonne personne.

Et Ethereum dans tout ça ?

EthereumEthereum nous permet quand à lui d'avoir une cagnotte transparente, auditable et quasiment gratuite.

Paiement à l'usage

Dans Ethereum, la cagnotte est écrite dans des smart-contracts, lorsque ceux-ci sont déployés dans la blockchain, tout le monde peut interagir avec ceux-ci. On a avec Ethereum un paiement à l’usage, on paye pour chaque fonction exécutée, le coût est explicite (le gas) et le paiement est bien plus simple : pas besoin de s’authentifier sur un site tiers ou de sortir sa carte bleue, c’est le portefeuille Ethereum qui est utilisé.

Voici un aperçu des coûts associés à nos contrats (ces coûts vont être baissés lors de la prochaine sortie d’Ethereum, Metropolis) :

  • Pour contribuer à une cagnotte, il faut payer 0,002295 ethers, ce qui correspond environ à 0,0367 euros, ce prix varie légèrement en fonction de la taille du nom d’utilisateur soumis, car celui-ci est sauvegardé dans la chaîne de bloc.
  • Pour créer une cagnotte, il faut payer 0.01617368 ethers, ce qui correspond environ à 0,259 euros, ce prix varie également légèrement en fonction de la taille des variables sauvegardées dans le contrats

L’ether, comme toute monnaie virtuelle, est très volatile, elle suit les lois de l'offre et de la demande, sans politique monétaire. Les ethers envoyés à une cagnotte peuvent donc avoir une valeur de change en euros qui fluctue d’une semaine à l’autre, cette volatilité n’est due qu’à l'adossement aux autres monnaies. C’est d’ailleurs un des enjeux de la plateforme Ethereum pour pouvoir être plus largement adopté : avoir un cours de l’Ether stable.

Transparence de l'exécution

Les utilisateurs d’Ethereum peuvent également vérifier le code de la cagnotte en comparant les bytescodes écrits dans la chaîne de blocs avec ceux qu’ils compilent depuis le code source mis à disposition. Tous les fonds de la cagnotte iront à l’adresse du destinataire enregistré dans le contrat, il y a donc une traçabilité qu’on n’avait pas avec les cagnottes “classiques”, ce qui peut être intéressant pour des dons caritatifs par exemple. Cette traçabilité est stoppée par les nœuds de sortie d’Ethereum (les plates-formes d’échanges). En effet, aujourd’hui il vous faudra échanger vos Ethers contre des euros pour dépenser votre argent mais on peut rêver à ce que l’Ether devienne un moyen de paiement accepté par tous.

Conclusion

Le cas d’usage théorique de la cagnotte en ligne s’adapte bien à la blockchain Ethereum, de par son aspect communautaire. On verra néanmoins par la suite que l’implémentation révèle certaines barrières.