Apports des Smart Contractes aux Blockchains

Apports des Smart Contractes aux Blockchains

Une Blockchain est un registre décentralisé qui est géré entre pairs et sans l’intervention d’une autorité centrale, garantissant ainsi la transparence et la sécurité du système. Afin de visualiser son fonctionnement, on peut y voir un grand registre – ou un grand livre – où tout est noté jusqu’au moindre détail. Il est donc possible de garder une traçabilité de tous les échanges, et de s’assurer de l’état des comptes, de la même manière que le ferait un audit comptable. La seule différence est qu’une Blockchain n’est pas un grand livre, mais autant de registres que de participants, assurant tous la sécurité et la disponibilité de l’information. Un participant du réseau de la Blockchain est considéré comme un “noeud”. Un “full node” est un noeud dont la particularité est de détenir l’information du registre dans son intégralité, alors qu’un “partial node” ne détient pas d’information, mais passe par un intermédiaire full node afin de réaliser sa transaction, ou tout simplement de consulter l’information contenue dans la Blockchain.

Une Blockchain est donc une base de données contenant tout l’historique des échanges réalisés depuis sa création, et partagée par ses différents utilisateurs. Chaque participant possède une copie de la Blockchain, permettant au système de marcher de pair à pair (peer to peer) et donc d’éliminer l’autorité centralisée. L’absence d’intermédiaire et la distribution de l’information sont les garants de la sécurité de la chaîne. Il existe une différence entre une Blockchain publique et privée. La première est accessible par tout le monde et il est possible de consulter l’intégralité de l’information. La seconde ne permet pas la lecture complète de certaines informations (plus de confidentialité, mais moins de transparence et donc de sécurité), ou limite le nombre d’acteurs qui possèdent les droits nécessaires.

Transparence

Une Blockchain est généralement open source, garantissant à la communauté que celle-ci fonctionne dans les règles énoncées et qu’elle est accessible à tous. En d’autres termes, n’importe qui devrait avoir le droit d’utiliser et de maintenir un réseau Blockchain. Une Blockchain est aussi accessible à tous pour garantir la sécurité de ses participants. Un exemple cité lors du Forum Economie Numérique « Transition numérique : la Blockchain et ses opportunités pour les entreprises », présenté en Novembre 2016, est celui d’une ville où l’injustice règne et où même la police (autorité centrale) brutalise souvent les personnes interpelées au commissariat. Plus personne ne peut leur faire confiance, alors, afin de redonner aux citoyens le sentiment de sécurité, une idée serait de créer un commissariat entièrement en verre pour que tout le monde puisse voir ce qui se passe à l’intérieur et observer directement une éventuelle forme d’injustice. (Epié et Loubet, 2016) Cette idée s’applique également à la Blockchain, où il est accessible à tous de demander l’historique des transactions. La Blockchain est donc transparente; quiconque peut « l’auditer », c’est-à-dire vérifier son état à tout moment. Une affirmation telle que « la transaction a été envoyée de l’adresse A vers l’adresse B » est vérifiable dans la Blockchain, ce qui permet de régler d’éventuels conflits. Par exemple, si on prétend avoir envoyé de l’argent sans le faire en réalité, tout le monde peut voir que le destinataire n’a rien reçu.

Particularités du marché du Bitcoin

Pour mieux comprendre comment est déterminé le prix de chaque crypto-monnaie, il faut commencer par comprendre comment se régule le marché du Bitcoin. Le Bitcoin n’appartient à personne, à aucun gouvernement ni à aucune banque, c’est un outil commun dont la gestion est assurée collectivement par ceux qui l’utilisent. Le prix du Bitcoin dépend de l’offre et de la demande et se situe au point d’équilibre. Si la demande augmente le prix augmente et si elle diminue le prix diminue (de manière semblable au cours d’une action en bourse). La masse monétaire est strictement encadrée, le nombre total de Bitcoins est fixé à 21 millions, ce nombre faisant partie du protocole lui-même. D’un point de vue économique, le Bitcoin se comporte comme l’or, parce qu’il se base sur des ressources épuisables. Cependant, contrairement à une monnaie classique, le Bitcoin a l’avantage de pouvoir être divisé, non seulement en centimes, mais en infimes unités, la plus petite étant le Satoshi valant 0,00000001 BTC.

Créer de l’inflation dans un système comme celui-ci est très simple, car la monnaie est unbacked, c’est à dire que pour 1 Bitcoin en circulation il n’y a pas de garantie de valeur en or ou en dollars dans un coffre. Créer de l’inflation permet de rémunérer en nouveaux Bitcoins les full nodes qui participent activement au maintien du réseau (appelés de ce fait des mineurs). Le système a tenté de réduire cette inflation en introduisant des frais de transactions. C’est aussi grâce à ces frais que vont pouvoir être en partie rémunérés les mineurs qui ont remporté le droit de créer un « bloc ». En effet le simple fait d’éviter de mettre trop de nouveaux Bitcoins en circulation permet de limiter l’inflation. (Bitcoin.org, s.d.) Il existe de nombreuses crypto-monnaies alternatives au Bitcoin. Certaines sont des reprises de Bitcoin incluant des innovations significatives, d’autres sont de vulgaires copies inutilisées et considérées comme des escroqueries servant à faire gagner de l’argent à ses créateurs et investisseurs initiaux. La plupart des crypto-monnaies et des plateformes où elles sont échangées sont indexées sur le site internet www.coinmarketcap.com.

Practical Byzantine Fault Tolerence (PBFT) Le “byzantine fault tolerance” (BFT) a d’abord été décrit dans un article publié par Leslie Lamport, Robert Shostak et Marshall Pease en 1982, où ils proposent plusieurs solutions au problème des généraux byzantins. Ce dernier part de l’allégorie suivante : « Imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching agreement. The generals must decide on when to attack the city, but they need a strong majority of their army to attack at the same time. The generals must have an algorithm to guarantee that (a) all loyal generals decide upon the same plan of action, and (b) a small number of traitors cannot cause the loyal generals to adopt a bad plan. The loyal generals will all do what the algorithm says they should, but the traitors may do anything they wish. The algorithm must guarantee condition (a) regardless of what the traitors do. The loyal generals should not only reach agreement, but should agree upon a reasonable plan. » (Lamport, Shostak et Pease, 1982) Bien que plusieurs solutions aient été apportées au problème, c’est en 1999 que Miguel Castro et Barbara Liskov (2002) introduisent l’algorithme « Practical Byzantine Fault Tolerance » (PBFT), utilisé pour atteindre un consensus entre tous les “généraux” ou participants.

Proof of Stake (PoS) – PeerCoin Il existe aussi une troisième alternative, elle aussi bien connue, qui est le Proof-of- Stake. Elle vise à remplacer la fonction de hash par une simple preuve de possession de valeur. Dans ce cas, les mineurs ne sont pas rémunérés en fonction de leur puissance CPU, mais plutôt en proportion du montant qu’ils possèdent et mettent à disposition pour miner virtuellement (valider des blocs). Il suffit donc, dans cette version, de posséder un wallet (un porte-monnaie virtuel) ; même un ordinateur peu puissant peut faire l’affaire, ce qui a l’avantage de consommer moins d’énergie. En d’autres mots, ce n’est donc plus les participants qui font une compétition de puissance de calcul dans l’unique but de définir qui va être autorisé à valider le bloc comme dans PoW, cette méthode étant extrêmement énergivore à cause de tous ces ordinateurs travaillant juste dans le but de remporter le challenge.

Mais cette pratique est remplacée par PoS qui fonctionne comme une loterie (celui qui a plus de tickets aura plus de chances de remporter le lot). Ce mécanisme autorisera le noeud gagnant, que l’on peut considérer comme mineur virtuel, à créer un bloc. Donc les chances d’être élu sont proportionnelles au montant que le noeud possède. (Preuve d’enjeu, s.d.) PoS est initialement utilisé par le protocole PeerCoin où le minage virtuel est appelé « minting » au lieu de « mining » et où les mineurs virtuels sont rémunérés par la création de nouveaux Peercoin en fonction de l’ancienneté des coins qu’ils possèdent en tant que full nodes. Cette rémunération se base sur le temps écoulé depuis que ses coins sont dans le wallet du full node, de telle sorte qu’il reçoit au total 1% d’intérêt par an. (King et Nadal, 2012). Certaines Blockchains garantissent d’autres retours sur investissement pour les mineurs virtuels selon ce que les développeurs de la Blockchain en question ont décidé.

Cependant, ce mécanisme sensé être robuste et garantir l’incorruptibilité du système n’est, en fait, qu’un mécanisme qui favorise le profit des acteurs déjà fortement impliqués, portant préjudice aux nouveaux participants. Ce système reste donc manipulable par de riches acteurs qui, puisque leur puissance est proportionnelle à leur fortune et non plus à la puissance de leurs ordinateurs, ont pu s’affranchir des contraintes physiques liées à l’achat de machines coûteuses qui, selon la loi de Moore, perdent chaque 18 mois la moitié de leur valeur jusqu’à devenir obsolètes. (Moore, 1965) C’est pourquoi d’autres algorithmes ont été mis au point par les adeptes de PoS afin de forcer la dispersion du pouvoir, et ainsi d’éviter les cartels, tout en gardant l’idée de motiver les grands possesseurs de la monnaie par une rémunération. Le but recherché étant d’être toujours plus rentable et plus écologique par rapport au PoW, sachant que le coût électrique pour les mineurs en PoW de Bitcoin est estimé à 1/3 du coût total du minage, ce qui non seulement coûte cher, mais a une lourde répercussion sur l’environnement. (Gubik, 2017) .

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1. Introduction
2. Apports des Smart Contracts aux Blockchains
2.1 Qu’est-ce qu’une Blockchain?
2.1.1 Définition générale
2.1.2 Caractéristiques essentielles
2.1.2.1 Réseau pair à pair distribué
2.1.2.2 Transparence
2.1.3 Fonctionnement général
2.1.4 Définition d’une crypto-monnaie
2.1.4.1 Particularités du marché du Bitcoin
2.1.5 Mécanismes de consensus
2.1.5.1 Practical Byzantine Fault Tolerence (PBFT)
2.1.5.2 Proof of Work (PoW) – Bitcoin
2.1.5.3 Proof of Stake (PoS) – PeerCoin
2.1.5.4 Delegated proof of stake (DPoS) – BitShares
2.1.5.5 Gestion des attaques et pannes
2.1.5.6 Remarques finales – mécanismes de consensus
2.1.6 Avantages, risques et limites
2.1.6.1 Principaux avantages
2.1.6.2 Principaux risques
2.1.6.3 Problématique de la gouvernance
2.1.6.4 Limites de scripting des Blockchains
2.2 Qu’est-ce qu’Ethereum?
2.2.1 Définition générale et innovations
2.2.2 Fonctionnement général
2.2.2.1 Casper – mécanisme de consensus
2.3 Qu’est ce qu’un Smart Contract?
2.3.1 Histoire des Smart Contracts
2.3.2 Smart Contract dans Ethereum
2.3.2.1 Programmable
2.3.2.2 Le code c’est la loi
2.3.2.3 Idéalement indépendant
2.3.3 Bénéfices actuels
2.3.3.1 Héritage des avantages de la Blockchain
2.3.3.1.1 Suppression d’intermédiaires
2.3.3.1.2 Inarrêtable
2.3.3.1.4 Open source
2.3.3.2 Coder des conditions de paiement divers
2.3.3.3 Créer des Tokens
2.3.3.4 KickStarter
2.3.3.5 Lancer sa propre ICO
2.3.3.6 Créer sa propre organisation décentralisée et autonome (DAO)
2.3.3.7 Multiples utilisations alternatives
2.3.3.8 Plus performant que les contrats traditionnels
2.3.4 Quels sont les problèmes actuels?
2.3.4.1 Failles de sécurité
2.3.4.2 Difficile de ne pas recourir à des services externes
2.3.4.3 Participations aux ICO difficilement régulables
2.3.4.4 Pas de garantie légale
2.3.4.5 Compréhension du code et détection des vulnérabilités
2.3.4.6 Rompre un engagement
2.3.4.7 Trop rigide pour correspondre à la loi actuelle
2.3.4.8 Mécompréhension des use cases réellement réalisables
3. Comment créer une nouvelle crypto-monnaie?
3.1 Bonnes pratiques du programmeur en Solidity
3.1.1 Se préparer à l’échec
3.1.2 Passer en production par étapes et détecter les bugs en amont
3.1.3 Garder le contrat simple
3.1.4 Se tenir informé
3.1.5 Se méfier des propriétés de la Blockchain
3.2 Projet Chablex
3.2.1 Description du projet
3.2.1.1 Problématiques
3.2.1.2 Détails des solutions proposées
3.2.1.2.1 Standard d’échangeabilité (ERC20)
3.2.1.2.2 Distribution fairplay et exclusivement locale
3.2.1.2.3 Système autogéré par ses membres
3.2.1.2.4 Demande d’emprunt
3.2.1.2.5 Maximum empruntable
3.2.1.2.6 Demandes traitées automatiquement (FIFO)
3.2.1.2.7 Prêt et remboursement
3.2.1.2.8 Récompense (augmentation du maximum empruntable)
3.2.2 Manuel développeur (lien GitHub)
3.2.3 Manuel utilisateur (lien GitHub)
3.2.4 Bilan
3.2.4.1 Etat du projet
3.2.4.2 Améliorations possibles
4. Conclusion
Bibliographie
Annexe 1 : Manuel Développeur
Annexe 2 : Manuel utilisateur
Annexe 3 : Smart Contracts

Apports des Smart Contractes aux BlockchainsTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

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