Vous êtes sur la page 1sur 42

U2 : Platforme Blockchain

Sommaire
➢ Partie 1 : Comprendre les Smart Contracts et la plateforme
Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Sommaire
➢ Part 2 : Plateforme Hyperledger
● Qu’est-ce-que Hyperledger ?
● Pourquoi avoir besoin de Blockchain privées ?
● À propos d’Hyperledger Fabric
● Architecture du réseau
● Configurer un nouveau réseau Hyperledger Fabric
● Configuration d’un nouveau ledger
● Écriture de smart contracts avec Hyperledger
● Cas d’utilisation possibles
● Resources Hyperledger
● Références
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Contexte Blockchain

Le code est la loi


Smart Contract
• Remplace les contrats traditionnels dans un contexte de
Blockchains [3]
• Programme autonome sans autorité, qui contrôle
directement les valeurs numériques (actifs numériques),
selon des conditions convenues d'un commun accord [3], [4],
[5]
• Ressemble à des instructions «si-alors» qui évaluent
automatiquement des conditions prédéfinies et effectuent
des transactions [1]
• A un propriétaire et un cycle de vie et est exécuté sur une
machine virtuelle Ethereum [6]
Les avantages d’un Smart Contract

• Caractéristique d'immutabilité
• Les termes du contrat ne changeront pas
• Qu'en est-il lorsqu'un bogue est introduit sur un contrat
intelligent ?
• Caractéristiques d'autonomie et d'automaticité
• Réduire les coûts d'audit et d'exécution et la fraude
• Permet de limiter les actions comme pour le programme
d'acquisition, lorsqu'un individu possède des actions mais ne peut
pas en disposer avant une date donnée
Limitations des Smart Contract

• Ne convient pas à tous les types de contrats, tels que les


contrats légaux
• Ne peut que «résoudre des problèmes qui peuvent être résolus
objectivement sur la base des faits»
• Motifs simples et n'incluent que les motifs «si a, alors b»
• Les contrats juridiques permettent de formuler un jugement
subjectif même si aucun fait objectif n'a été transcrit, tel que
«sans retard indu» et «au-delà de tout doute raisonnable» [17]
Examples

Supply chain
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Le cycle de vie des Smart Contract
Interagir avec un Smart Contract

• Le contrat intelligent n'est pas auto-exécutable


• Cela nécessite l'exécution d'un appel externe. Sinon, il est en
attente jusqu'à ce qu'on appelle l'une de ses fonctions
implémentées [9]
• Une fois exécuté, les transactions résultant de l’exécution sont
transcrites sur la blockchain et les métadonnées du contrat
intelligent sont mises à jour
Interagir avec un Smart Contract

• L'adresse du contrat et son ABI sont nécessaires pour


communiquer avec un contrat intelligent
• L'exécution de contrat intelligent peut être lancée par des
appels humains (compte avec une clé privée) ou par
contrat intelligent (compte à clé publique)
• Exemple d'appels à un contrat intelligent: Service de réveil
Service de Réveil
• Pallier deux défauts
⚫ Les contrats intelligents ne sont pas auto-exécutables

⚫ Une transaction est exécutée dès qu'elle est ajoutée à un bloc [14]

• Les contrats Ethereum qui ne mettent pas en œuvre le suicide et permettent de planifier
des appels de fonction de contrat dans un bloc spécifié
• Équivalent aux crédits décentralisés [16]
• La planification peut être effectuée par des contrats ou des titulaires de comptes
Ethereum [15]
• L'exécution des appels de fonction planifiés permet de gagner des Ethers
• N'importe qui peut exécuter un appel de fonction puisqu'il travaille sur un nœud Ethereum
• Nous pouvons spécifier une liste d'adresses de planificateurs autorisés [15]
• Le contrat réveil spécifie les détails de la transaction : adresse de destination, fenêtre
d'exécution, coût du gas de transaction et récompense à payer sur le compte qui a
déclenché la transaction [14]
Usage d’Oracles
Météo
Résultat Sportif
État du trafic routier

T Trans X

A
S

Echec
T+1 Trans X

Immutability Oracles
Qu'est-ce qu'un Oracle?

• Service qui collecte une donnée donnée dont un contrat intelligent a besoin à
une heure prédéfinie et la stocke dans la blockchain à un emplacement prédéfini
• C’est une tierce partie, ce qui va à l’encontre du principe de Blockchain
• Qui a un grand pouvoir sur le fonctionnement des contrats intelligents qui sont
imparables
• Deux cas de dysfonctionnement
• L'oracle échoue et ne collecte aucune donnée
• L'oracle introduit une fausse information dans la blockchain de manière
volontaire ou involontaire
• Solutions: Oracles prouvables-honnêtes, oracle basé sur le consensus et oracle
physique
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Tokenization

“Processus permettant l'inscription d'un actif et de ses droits


sur un jeton, permettant ainsi sa gestion et son échange de
manière sécurisée entre homologues, instantanément, sur une
infrastructure de blockchain” [18]
Tokens = Jetons
• Actif numérique émis par un contrat intelligent, échangeable sur une blockchain (Ethereum
actuellement) sans autorité centrale [19] [20]
• Le contrat intelligent de Token décrit le comportement et l’utilité du jeton qui sont décidés
librement par son créateur [21]
• La capacité d'échange des jetons se produit de manière homologue
• «… Nouveaux systèmes de valeur; ils ne prétendent pas remplacer les systèmes monétaires
existants »[20]
• Droit d'utilisation sur le service à développer
• Les propriétaires de jetons partagent la même valeur dans une organisation décentralisée
• Cela crée un intérêt économique pour faire prospérer le projet
• Échange de disques inutilisable et unique sur un registre immuable, sont échangés de manière
sécurisée [20]
• Les crypto-monnaies et les jetons n'ont pas de valeur intrinsèque
• Contrairement à une crypto-monnaie, un jeton est dissocié du protocole de consensus d'une
blockchain publique lors de son émission [21]
• Les jetons peuvent être créés, vendus et achetés à tout moment
• Les jetons sont alors liquides [20]
Achat de jetons

• Pour utiliser le service associé


• Pour les garder dans une perspective de spéculation
• Recevoir une partie des bénéfices générés par l'entreprise
• Pour les convertir dans sa monnaie traditionnelle (USD, EUR,...)
[20] [23]
Exemples de Tokens
• Storjcoin
⚫ Service de stockage décentralisé

⚫ On peut louer l’espace libre de son ordinateur sur le réseau en

échange de storjcoin, ou acheter de l’espace de stockage sur le


réseau en utilisant storjcoin
• iExec
⚫ Projet franco-chinois

⚫ Marché décentralisé des ressources informatiques

⚫ On peut louer les ressources informatiques non utilisées de son

ordinateur sur le réseau en échange d'RLC ou acheter des


ressources informatiques sur le réseau en utilisant RLC [20]
Ethereum Request for Comment ERC-20
• 20ème demande de commentaires Ethereum (ERC)
• ERC: processus par lequel une personne demande à la
communauté Ethereum d'examiner et de commenter une
proposition concernant Ethereum
• ERC-20: standard pour le développement de jetons sur Ethereum
• Il décrit le comportement du jeton: fonctions et événements qu'un
jeton ERC20 doit gérer [22]
• Tout code implémentant les spécifications ERC-20 crée un jeton
ERC-20
• Cette norme est dédiée aux jetons fongibles
• D'autres initiatives existent telles que ERC-223 et ERC-721
• La création de jetons coïncide généralement avec la configuration
d’un ICO
ERC-20 : Un standard pour les contrats intelligents

• Utilisé pour les contrats intelligents sur la blockchain Ethereum pour la


mise en œuvre de jetons
• Définit une liste commune de règles à suivre par les jetons Ethereum
au sein du plus grand écosystème Ethereum, permettant aux
développeurs de prévoir avec précision les interactions entre les
jetons
• Ces règles incluent comment les jetons sont transférés entre les
adresses et comment accéder aux données de chaque jeton
• Comment créer une crypto-devise respectant ERC-20: [31], [32], [33]
• Fonctions: balanceOf (), transfer (), doSomething (), approuver (),
transferForm (),…
ERC-721 : Jetons non-fongible
• ERC-721 est un standard ouvert gratuit qui explique comment créer des jetons uniques ou
non fongibles sur la chaîne de blocs Ethereum
• Bien que la plupart des jetons soient fongibles (chaque jeton est identique à tous les
autres), les jetons ERC-721 sont tous uniques
• Pensez à eux comme à des objets de collection rares et uniques [34]
• ERC-721 définit une interface minimale qu'un contrat intelligent doit implémenter pour
permettre à des jetons uniques d'être gérés, détenus et échangés
• Il n'impose pas de norme pour les métadonnées de jeton ni ne restreint l'ajout de fonctions
supplémentaires
• Interface et fonctions disponibles dans [34]
• SafeMath disponible sur [35]: Considérer la sécurité est une partie essentielle de la
rédaction de bons contrats Ethereum Smart
• Un problème courant lié aux opérations numériques est le risque de débordement /
dépassement de capacité lorsqu'une opération arithmétique atteint la taille maximale ou
minimale du type
• Lors de l'utilisation de la bibliothèque SafeMath, les résultats des opérations (+, -, *) seront
vérifiés et une erreur sera générée en arrêtant l'exécution de votre contrat intelligent [36]
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Levée de fonds : Initial Coin Offering (ICO)
• Crowdsale
• Collecte de fonds sous forme de crypto-monnaie associant crypto-
monnaie et financement participatif afin de financer des projets
blockchain [23]
• Vente de jetons organisée par les maîtres d'ouvrage [21]
• Pour lever des fonds via des ICO, il faut utiliser des plateformes dédiées sur
lesquelles il / elle doit émettre des jetons
• Les investisseurs intéressés échangent des cryptomonnaies (Ethers et
bitcoins) contre des jetons [23]
• Montant mondial collecté via les ICO : 96 millions USD en 2016, 4 milliards
USD en 2017
• Filecoin est une sorte de boîte de dépôt décentralisée qui détient le record en
recueillant 257 millions de dollars
• Un navigateur Web (Brave) a recueilli 35 millions de dollars en 30 secondes
[23]
Avantages et inconvénients des ICO
• Les jeunes entreprises ne doivent pas attendre des mois avant d'avoir le "départ" d'un fonds
d'investissement
• Inconvénients ICO
⚫ Aucune garantie pour les investisseurs car il est difficile de vérifier la pertinence et la qualité

d'un projet qui n'existe pas encore.


⚫ Absence d'autorité de contrôle pour réguler le marché - "Tout le monde peut émettre un titre

numérique, il y a donc beaucoup d'escroqueries de toutes sortes", déclare Julien Beranger


⚫ La volatilité de la crypto-monnaie peut rapidement augmenter ou diminuer ce montant en

fonction des développements techniques de la plate-forme et d'autres événements


exceptionnels.
• Le piratage de TheDAO a entraîné une baisse significative du cours, tandis que les
développements techniques de la plate-forme Ethereum ont permis d'augmenter la valeur de
l'Ether [21].
• En septembre 2017, toutes les crypto-devises ont perdu 20% de leur valeur en une journée.
• Le protocole Bancor a permis de recueillir 153 millions de dollars en ICO. Trois jours plus tard,
le montant recueilli n’était que de 119 millions, soit une perte de 34 millions de dollars (-
22,2%), en raison de la diminution du cour de l’Ether.
• Les entreprises peuvent convertir leur ICO en Euros sur un marché [23]
ICOs (suite)
• Selon l'Autorité des marchés financiers (AMF), la majorité des
transactions émises par des OIC ne relèvent d'aucune
réglementation et une minorité d'entre elles peuvent être soumises
au droit en vigueur [23]
• Une organisation internationale de produit pourrait être liée à la
réglementation des intermédiaires de divers biens, à l'offre
publique de valeurs financières ou aux gestionnaires de fonds
d'investissement alternatifs
• L'Autorité des marchés financiers veut qualifier le sérieux des
organisations internationales de produit afin de fournir certaines
garanties aux investisseurs
• Les ICO sans étiquette ne seront pas interdits [23]
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Decentralized Autonomous Organization (DAO)
• Une organisation intelligente sans confiance et incorruptible, basée sur des contrats, sur laquelle les
règles de gouvernance sont automatisées et enregistrées de manière immuable et transparente sur
une blockchain au lieu d'être gérées par une autorité centrale
• Les personnes qui ont aidé à créer et à financer l'organisation, en sont propriétaires
• Tout dans une DAO est transparent et auditable
• Une DAO ne peut être ni arrêté ni fermé. Elle ne repose sur aucune juridiction
• L’exemple le plus célèbre de DAO est le «projet TheDAO»
⚫ Créé en 2016 sur la blockchain Ethereum

⚫ Créer une organisation capable d'évaluer les projets qui lui sont soumis afin de décider de financer

ou non les projets [25]


⚫ Sa crowdsale dépasse les 160 millions de dollars en près de quatre semaines

⚫ Victime d'une attaque à grande échelle mettant en évidence les défis de la sécurité et de l'audit de

code
⚫ Déplacement de l'enthousiasme suscité par les projets DAO auprès des ICO

⚫ Les États-Unis considèrent que les jetons du projet TheDAO doivent être considérés comme des

titres, car ils étaient destinés à procurer un gain financier aux investisseurs
⚫ Pour être légaux, les DAO devront désormais se conformer aux exigences de KYC (Know Your

Customers)
Partie 1 : Comprendre les Smart Contracts
et la plateforme Ethereum
● Le contexte Blockchain
● Smart contract : avantages et limitations
● Le cycle de vie des Smart contract et interactions
● Tokenization, examples de token et Ethereum ERC-20
● Initial Coin Offering (ICO)
● Decentralized Autonomous Organization (DAO)
● Le côut des Smart contract
● Exemple du langage Solidity
Comprendre le coût d’un Smart contrat Ethereum
• Gaz: unité de coût de réseau fondamentale
⚫ Le concept de gaz a été introduit pour conserver une valeur distincte indiquant

uniquement la consommation en frais de calcul sur le réseau Ethereum


⚫ Le fait de disposer d’une unité distincte permet de maintenir une distinction entre la

valeur réelle de la crypto-monnaie et le coût de calcul


⚫ Analogie: faire fonctionner une voiture du monde réel sur une distance de X km peut

nécessiter Y litres de carburant


⚫ Payé exclusivement par Ether (à partir de PoC-4 (Proof of Concept)), qui est librement

converti vers et à partir de Gaz selon les besoins


⚫ Le gaz n'existe pas en dehors du moteur de calcul interne Ethereum

⚫ Son prix est fixé par la transaction et les mineurs sont libres d'ignorer les transactions

dont le prix du gaz est trop bas [26]

• 1 Ether = 1 000 000 000 Gwei (10^9)


• 20 GWEI (prix) par gaz (unité)
Frais Ethereum et limite de Gaz
• Frais = limite de gaz X prix du gaz
• Ce n'est pas un frais de transaction que tout fournisseur de services reçoit
Cette redevance est versée aux mineurs pour les transactions minières, leur
mise en bloc et la sécurisation de la blockchain
• La limite de Gaz est ainsi car il s'agit de la quantité maximale
d'unités d'essence que vous êtes prêt à dépenser pour une
transaction
• Cela évite les situations où il y a une erreur quelque part dans le contrat
Cependant, les unités de gaz nécessaires à une transaction sont déjà définies
par la quantité de code exécutée sur la blockchain
• Si vous ne voulez pas dépenser autant en gaz, réduire la limite de gaz ne
vous aidera pas beaucoup. Vous devez inclure suffisamment de gaz pour
couvrir les ressources de calcul que vous utilisez, sinon votre transaction
échouera
[28]
Ethereum : Prix du Gaz
• Prix du Gaz : Si vous souhaitez dépenser moins pour une transaction, vous pouvez le faire en réduisant le
montant que vous payez par unité de gaz
• Le prix que vous payez pour chaque unité augmente ou diminue la rapidité avec laquelle votre transaction
sera minée
• En temps normal
• 40 GWEI : ce prix de Gaz vous emmènera presque toujours dans le bloc suivant
• 20 GWEI : vous passerez généralement dans les prochains blocs
• 2 GWEI : quelques minutes d’attente sont nécessaire
• Les frais de transaction vont au mineur qui mine votre bloc
• Lorsque les mineurs extraient un bloc, ils doivent décider quelles transactions inclure
• Ils peuvent choisir de n’inclure aucune transaction ou de choisir au hasard des transactions
• Afin d'encourager les mineurs à inclure les transactions dans les blocs, vous souhaitez définir un "prix du gaz"
suffisamment élevé pour leur donner envie de l'inclure (cela dépend entièrement d'eux)
• La plupart des mineurs suivent une stratégie d'inclusion très simple
• Ils incluent les transactions qu’ils ont reçues triées du plus haut prix du gaz au plus bas, puis les incluent
jusqu’à ce que le bloc soit plein
• Pour les prix du gaz recommandés, voir [29]
Coût des opérations de transaction
Several more on [26]
En résumé les Smart Contracts
• Les contrats intelligents représentent des algorithmes
spéciaux pour l'automatisation des contrats, y compris
des processus de conclusion de transaction
• Un tel contrat permet aux gens de vendre des biens
immobiliers, d’échanger des actions, de l’argent, des
documents ou tout droit de propriété [30]
• Propriétés clés des contrats intelligents
• Autonomie, Décentralisation, Autosuffisance
Résumé des avantages et inconvénients
des contrats intelligents
Avantages Inconvénients
Neutralité des agents dans la signature des Difficile de faire des changements
contrats
Automatisation de la signature des contrats, Les agents tiers ne disparaissent pas mais commencent
gain de temps: exclut la participation à jouer un rôle différent. Le besoin d'avocats
humaine aux transactions, tout se fait à l'aide expérimentés en informatique augmentera à l'avenir,
du code de programme prescrit car les programmeurs de contrats intelligents auront
besoin de consultations pour passer de nouveaux
types de contrats.
Sécurité: les données du registre décentralisé Les consommateurs sont assez méfiants car il s’agit
ne peuvent pas être perdues ou attaqué. d’une technologie nouvelle et ils ne la comprennent
pas encore.
Précision: aucune erreur ne peut être Il est possible de conserver et de sauvegarder des
commise en raison de l'absence de données dans des contrats intelligents en toute
formulaires remplis à la main. sécurité, sans aucune distorsion, uniquement si le
code est écrit de manière parfaite et précise.
Exemple du langage Solidity

• Exemple des fonctions set() et get() :

pragma solidity ^0.4.0;

contract SimpleStorage {
uint storedData;

function set(uint x) public {


storedData = x;
}

function get() public view returns (uint) {


return storedData;
}
}

Vous aimerez peut-être aussi