SlideShare une entreprise Scribd logo
2
Projet BLISS
Production O3 Ressource Ouverte d’Éducation
Tâche O3-T1 Matériel de Formation et d’Évaluation
24
Cette unité d’apprentissage présente une série d'options techniques et de
solutions pour la conception et la mise en œuvre de la blockchain. Elle spécifie,
affine, met à jour et met à disposition une approche formelle pour concevoir des
solutions, nécessaires au développement et à l'exploitation d'une application
blockchain
U2 Plateformes Blockchain
Unité
d’apprentissage :
Résumé :
Heures :
3
Objectifs d’apprentissage
Fondamentaux des plateformes
• Caractéristiques des plateformes blockchain
(autorisées, publiques, etc.)
• Paradigme de la programmation des
blockchains
• Aspects architecturaux, accessibilité et
visibilité
• Identifier les caractéristiques différenciantes
des différentes plateformes de blockchain
• Analyser et caractériser différents protocoles
blockchain selon des critères donnés
• Sélectionner et formaliser les exigences d'un
protocole blockchain pour des scénarios
spécifiques
Compétences Savoir-faire
Unité
d’apprentissage
U2 Plateformes Blockchain
Évaluer la faisabilité de la mise en œuvre d’une application
blockchain décentralisée spécifique dans des plate-formes
blockchain adéquates
K3
4
Objectifs d’apprentissage
Plateforme Ethereum
• Installation d’une blockchain Ethereum
• Cycle d’un contrat intelligent
• Mise en œuvre
Plateforme Hyperledger
• Installation d’une blockchain Hyperledger
Cycle d’un contrat intelligent
• Mise en œuvre d’un cas d'utilisation
• Planifier et concevoir les spécifications d'une
application de blockchain décentralisée
Compétences Savoir-faire
Unité
d’apprentissage
U2 Plateformes Blockchain
Planifier et concevoir les spécifications d'une application
de blockchain décentralisée
K4
5
U2 : Platforme Blockchain
Jean-Patrick Gelas, Hayri Acar, Léo Besançon, UCBL, France
Hind Benfenatki, INSA of Lyon, France
Relu par: Catarina Ferreira Da Silva and
Parisa Ghodous, UCBL, France
6
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
7
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
8
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
9
Contexte Blockchain
Le code est la loi
10
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]
11
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
12
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]
13
Examples
Supply chain
14
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
15
Le cycle de vie des Smart Contract
16
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
17
• 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
Interagir avec un Smart Contract
18
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]
19
Trans X
Trans X
S
A
B
T
T+1
Immutability
Echec
Météo
Résultat Sportif
État du trafic routier
Oracles
Usage d’Oracles
20
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
21
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
22
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]
23
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]
24
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]
25
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]
26
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
27
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 (),…
28
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]
29
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
30
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]
31
• 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]
Avantages et inconvénients des ICO
32
• 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]
ICOs (suite)
33
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
34
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)
35
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
36
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é)
37
• 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
Frais Ethereum et limite de Gaz
38
[28]
39
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]
40
Coût des opérations de transaction
41
42
Several more on [26]
43
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
44
Avantages Inconvénients
Neutralité des agents dans la signature des
contrats
Difficile de faire des changements
Automatisation de la signature des contrats,
gain de temps: exclut la participation
humaine aux transactions, tout se fait à l'aide
du code de programme prescrit
Les agents tiers ne disparaissent pas mais commencent
à jouer un rôle différent. Le besoin d'avocats
expérimentés en informatique augmentera à l'avenir,
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é
ne peuvent pas être perdues ou attaqué.
Les consommateurs sont assez méfiants car il s’agit
d’une technologie nouvelle et ils ne la comprennent
pas encore.
Précision: aucune erreur ne peut être
commise en raison de l'absence de
formulaires remplis à la main.
Il est possible de conserver et de sauvegarder des
données dans des contrats intelligents en toute
sécurité, sans aucune distorsion, uniquement si le
code est écrit de manière parfaite et précise.
Résumé des avantages et inconvénients
des contrats intelligents
45
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;
}
}
46
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 sur Hyperledger
● Bibliographie
47
Hyperledger Fabric
Introduction aux blockchains privées
48
Qu’est-ce-que Hyperledger?
• Incubateur de projets Blockchain open source, créé par la Fondation
Linux
• Vise à démocratiser la technologie Blockchain dans l’industrie
49
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 sur Hyperledger
● Bibliographie
50
Pourquoi avoir besoin de Blockchain privées ?
• Blockchain publiques (Permissionless) : N’importe qui peut
maintenir un noeud, envoyer une transaction au réseau, ou encore
valider les blocks.
Exemple : Bitcoin, Ethereum, EOS…
• Blockchain privées (Permissioned) : Le ledger partagé par les
utilisateurs est chiffré, on ne peut voir uniquement les transactions
dont on a les droits (système de permissions).
Exemple : Hyperledger Fabric, Quorum...
51
Raisons des Blockchain privées
Les entreprises ont besoin
• De transparence entre partenaires, clients et fournisseurs
• De scalabilité des traitements(une latence faible et une bande
passante importante)
• De règles de confidentialité
• De systèmes de permissions et de pouvoir tracer la responsabilité
de chaque utilisateur
Elles n’ont pas autant besoin
• De décentralisation
• De transparence auprès de tout le monde
52
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 sur Hyperledger
● Bibliographie
53
À propos d’Hyperledger Fabric
• Projet développé par IBM
• La plupart des fonctionnalités sont plug-and-play, avec une
conception fortement modulaire
• Supporte les smart-contracts (appelés “chaincodes”), écrits dans de
multiples languages
Exemple: Node, Go, Java
• Suitable for organizations of every size
54
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 sur Hyperledger
● Bibliographie
55
Architecture du réseau
Org 2
Org 1
Peer 1 Peer 2 Peer 3
Ledger 1 + Chaincode
Ledger 2 + Chaincode
0 1 2
0 1 2 3
Organisations: Entreprises qui
veulent échanger des données
et doivent se faire confiance
Peers: Différents services au
sein d’une entreprise
Utilisateurs: Individus qui se
connectent à leur pair afin de
s’authentifier sur le réseau
56
Architecture du réseau: Envoyer une
transaction
Org 2
Org 1
Peer 1 Peer 2 Peer 3
Ledger 1 + Chaincode
Ledger 2 + Chaincode
Un utilisateur utilise une
application afin de
● Se connecter à son peer
● Envoyer des transactions à
un ledger spécifique
Orderer: Noeud spécial qui
valide les blocks.
Il peut y avoir plusieurs orderers,
appartenant à différentes
organisations.
Le consensus est obtenus par
Preuve d’Autorité ou par le
mécanisme “Kafka”
Orderer
1
2
57
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 sur Hyperledger
● Bibliographie
58
Configurer un nouveau réseau Hyperledger
Fabric
L’architecture est définie par un fichier de configuration .yaml.
59
Configurer un nouveau réseau Hyperledger
Fabric
Ce fichier est utilisé pour générer :
• Un certificat pour chaque orderer
• Un certificat pour chaque peer
• Un certificat pour chaque utilisateur
• Un certificat pour l’application
Ces certificats sont nécessaires pour établir et se connecter au réseau.
60
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 sur Hyperledger
● Bibliographie
61
Configuration d’un nouveau ledger
• Un ledger peut être partagé entre peers en générant le genesis
block, depuis un autre fichier de configuration .yaml.
• Il faut y définir quels peers
vont avoir accès au ledger,
ainsi que le (ou les) orderer
qui vont être utilisés pour
valider les blocks associés à
ce ledger.
62
Configuration d’un nouveau ledger
A partir du genesis block et des certificats, tout est présent pour les
envoyer des transactions sur le réseau.
63
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 sur Hyperledger
● Bibliographie
64
Écriture de Smart contracts avec Hyperledger
• Supporte les smart-contracts (appelés “chaincodes”), écrits dans de
multiples languages
Exemple: Node, Go, Java
• Cependant, le développeur ne doit pas y inclure du code non
déterministe, ce qui inclus :
• Les requêtes HTTP
• Les générateurs de nombres aléatoires
• N’importe quel code qui se comporte différemment selon le noeud sur
lequel il est exécuté
• Le principal langage d’Ethereum, Solidity, est intrinsèquement déterministe,
ce qui n’est pas le cas des langages supportés par Hyperledger fabric.
65
Écriture de Smart contracts
• En utilisant le langage Go, vous pouvez écrire des smart-contract en
important les librairies Hyperledger et en associant à vos contrat un
type personnalisé.
66
Writing Smart-contracts
• Ensuite, vous pouvez ajouter des fonctions à votre contrat via l’ajout
de prototypes.
67
s
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 sur Hyperledger
● Bibliographie
68
Cas d’utilisation possibles (1/2)
• Gestion de la transparence, de l’archivage, et la traçabilité en Supply chain
“Where does the fish ordered in this restaurant was caught?”
Hyperledger Sawtooth est une
plateforme Blockchain
supportant à la fois des ledgers
permissioned et permissionless.
69
• Le partage de données entre des partenaires de plusieurs niveaux
“Je veux partager facilement un ledger avec l’entreprise A, ainsi
que son fournisseur, l’entreprise B, sans que leurs concurrents,
l’entreprise C, n’y ait accès. Mais nous sommes tous sur le même
réseau !”
Ici, chaque entreprise est représenté par une Organisation sans un
réseau Hyperledger Fabric. Mon peer va créer un nouveau genesis
block pour le ledger à partager entre A et B, leur attribuant des accès et
permissions sur ce ledger.
Pour assurer la confidentialité, je n’inclus aucun peer appartenant à C
dans les permissions pour ce ledger.
Cas d’utilisation possibles (2/2)
70
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 sur Hyperledger
● Bibliographie
71
Ressources
• Site officiel : https://www.hyperledger.org/projects/fabric
• Github : https://github.com/hyperledger/fabric#releases
• Documentation technique : https://hyperledger-fabric.readthedocs.io
72
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 sur Hyperledger
● Bibliographie
73
Bibliographie
1 «Qu’est-ce qu’Ethereum ?,» [En ligne]. Available: https://blockchainfrance.net/2016/03/04/comprendre-ethereum/. [Accès le 24 05 2018].
2 S. BOURGUIGNON, «L’ICO cette nouvelle forme de levée de fonds qui fait tourner les têtes,» 26 Juin 2017. [En ligne]. Available: https://siecledigital.fr/2017/06/26/lico-
cette-nouvelle-forme-de-levee-de-fonds-qui-fait-tourner-les-tetes/.
3 J. Luc, «Qu’est-ce qu’un « smart contract » ?,» [En ligne]. Available: https://bitcoin.fr/quest-ce-quun-smart-contract/. [Accès le 24 05 2018].
4 «Blockchain : qu’est-ce qu’un Smart Contract et à quoi ça sert ?,» [En ligne]. Available: https://www.lemagit.fr/conseil/Blockchain-quest-ce-quun-Smart-Contract-et-a-
quoi-ca-sert.
5 B. France, «Les applications prometteuses des smart contracts,» 28 January 2016. [En ligne]. Available: https://blockchainfrance.net/2016/01/28/applications-smart-
contracts/.
6 M. Zimmermann, «Blockchain, Ethereum and Business Applications,» 23 May 2017. [En ligne]. Available:
https://www.slideshare.net/MatthiasZimmermann1/blockchain-ethereum-and-business-applications. [Accès le 31 May 2018].
7 K. Healy, «Ethereum in Depth: Smart Contracts - Part 1: What is a Smart Contract?,» 2017.
8 B. France, «Les applications prometteuses des smart contracts,» 28 January 2016. [En ligne]. Available: https://blockchainfrance.net/2016/01/28/applications-smart-
contracts/.
9 C. |. t. c. g. o. Ethereum. [En ligne]. Available: https://cryptozombies.io/en/course.
10 K. TAM, «The Best Tools for Smart Contract Development,» 2018. [En ligne]. Available: https://blockgeeks.com/guides/smart-contract-development/. [Accès le 31 May
2018].
11 Mobilefish.com, «Ethereum contract Application Binary Interface,» 2017.
12 [En ligne]. Available: https://ethereum.stackexchange.com/questions/234/what-is-an-abi-and-why-is-it-needed-to-interact-with-contracts.
13 S. POLROT, «Les Oracles, lien entre la blockchain et le monde,» 13 September 2016. [En ligne]. Available: https://www.ethereum-france.com/les-oracles-lien-entre-la-
blockchain-et-le-monde/.
74
14 P. Merriam, «Ethereum Alarm Clock Documentation, Release 1.0.0,» 12 December 2017. [En ligne]. Available: https://media.readthedocs.org/pdf/ethereum-
alarm-clock-service/latest/ethereum-alarm-clock-service.pdf.
15 P. Merriam, «Ethereum Alarm Clock,» [En ligne]. Available: http://www.ethereum-alarm-clock.com/.
16 B. Lafontaine et Y. Rouillard, «La Blockchain en détail,» 2016.
17 «How To Write A Smart-Contract For Your ICO? An Ultimate guide,» [En ligne]. Available: https://howtotoken.com/ico/how-to-write-a-smart-contract-for-your-ico-an-ultimate-
guide/#limitations.
18 «Comprendre la tokenisation,» 22 May 2018. [En ligne]. Available: https://blockchainfrance.net/2018/05/22/comprendre-la-tokenisation/.
19 «Le web de demain sera décentralisé | Clement Jeanneau | TEDxAgroParisTech,» [En ligne]. Available: https://youtu.be/ISYmB5HBpP4.
20 «Qu’est-ce qu’un token ?,» 22 May 2018. [En ligne]. Available: https://blockchainfrance.net/2018/05/22/comprendre-les-tokens/.
21 S. POLROT, «Qu’est-ce qu’une cryptomonnaie, un token, un actif numérique ?,» 2 June 2017. [En ligne]. Available: https://www.ethereum-france.com/qu-est-ce-qu-une-
cryptomonnaie-token-bitcoin-ether-gnt-gno-dgd-plu-rep-rlc/.
22 S. POLROT, «Qu’est-ce qu’un token ERC20 ?,» 02 January 2018. [En ligne]. Available: https://www.ethereum-france.com/qu-est-ce-qu-un-token-erc20/.
23 C. Perreau, «L'ICO, ou comment lever des millions en quelques secondes,» 01 June 2018. [En ligne]. Available: https://www.journaldunet.com/economie/finance/1195462-ico-
initial-coin-offering/.
24 Koinbros, «What are ERC20 and ERC223 tokens?,» 21 November 2017. [En ligne]. Available: https://medium.com/cryptomover/what-are-erc20-and-erc223-tokens-
307badcca5a.
25 «Qu’est-ce qu’une DAO ?,» 12 May 2016. [En ligne]. Available: https://blockchainfrance.net/2016/05/12/qu-est-ce-qu-une-dao/.
Bibliographie
75
26. ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER BYZANTIUM VERSION (Ethereum yellow
paper), https://github.com/ethereum/yellowpaper
27. https://www.investopedia.com/terms/g/gas-ethereum.asp
28. What is Gas, https://kb.myetherwallet.com/gas/what-is-gas-ethereum.html
29. Recommended Gas Prices, https://ethgasstation.info/
30. Advantages and Disadvantages of Smart Contracts in Financial Blockchain Systems, https://hackernoon.com/advantages-
and-disadvantages-of-smart-contracts-in-financial-blockchain-systems-3a443145ae1c
31. Create your own crypto-currency with Ethereum, https://www.ethereum.org/token
32. ERC20 Token Standard, https://theethereum.wiki/w/index.php/ERC20_Token_Standard
33. OpenZeppelin, https://github.com/OpenZeppelin/openzeppelin-solidity/tree/master/contracts/token
34. What is ERC-721?, http://erc721.org/
35. Build Secure Smart Contracts in Solidity, https://openzeppelin.org/
36. SafeMath to protect from overflows, https://ethereumdev.io/safemath-protect-overflows/
Bibliographie
BLISS-O3-T1%20U2%20Blockchain%20v2-FR.pptx

Contenu connexe

Similaire à BLISS-O3-T1%20U2%20Blockchain%20v2-FR.pptx

La technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approcheLa technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approche
Communauté d'agglomération du Pays de Grasse
 
Pres blockchain
Pres blockchainPres blockchain
Pres blockchain
houda zaidi
 
Tout savoir sur le #Bitcoin et la #BlockChain
Tout savoir sur le #Bitcoin et la #BlockChainTout savoir sur le #Bitcoin et la #BlockChain
Tout savoir sur le #Bitcoin et la #BlockChain
Vidal Chriqui
 
Innovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlaceInnovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlace
Nazim Morera
 
Blockchain par Claude Duvallet
Blockchain par Claude DuvalletBlockchain par Claude Duvallet
Blockchain par Claude Duvallet
Juan Luis Jiménez Laredo
 
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiSIBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
IBM France Lab
 
Introduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourgIntroduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourg
Fabrice Croiseaux
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
Microsoft
 
La blockchain démystifiée | HEC Alumni
La blockchain démystifiée | HEC AlumniLa blockchain démystifiée | HEC Alumni
La blockchain démystifiée | HEC Alumni
Vidal Chriqui
 
Bitcoin and beyond
Bitcoin and beyondBitcoin and beyond
Bitcoin and beyond
hassan hassairi
 
Développement d'une PoC utilisant les blockchains
Développement d'une PoC utilisant les blockchainsDéveloppement d'une PoC utilisant les blockchains
Développement d'une PoC utilisant les blockchains
Juan Luis Jiménez Laredo
 
Cwin16 - Paris - blockchain
Cwin16 - Paris - blockchainCwin16 - Paris - blockchain
Cwin16 - Paris - blockchain
Capgemini
 
Meetup Blockchain, Bitcoin, Ethereum, ICO...
Meetup Blockchain, Bitcoin, Ethereum, ICO...Meetup Blockchain, Bitcoin, Ethereum, ICO...
Meetup Blockchain, Bitcoin, Ethereum, ICO...
Julien Capgras
 
Nantes JUG 2023 - Web3
Nantes JUG 2023 - Web3Nantes JUG 2023 - Web3
Nantes JUG 2023 - Web3
Raphaël Semeteys
 
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'AlvernyLa blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
Sébastien Bourguignon
 
Blockchain et crypto-monnaies
Blockchain et crypto-monnaiesBlockchain et crypto-monnaies
Blockchain et crypto-monnaies
Ayoub Eddakhly
 
Ethereum
EthereumEthereum
Présentation blockchain v2
Présentation blockchain v2Présentation blockchain v2
Présentation blockchain v2
Amine HAMOUDA
 
Prestations Consulting Blockchain Philemonday Agency_2016
Prestations Consulting Blockchain Philemonday Agency_2016Prestations Consulting Blockchain Philemonday Agency_2016
Prestations Consulting Blockchain Philemonday Agency_2016
Philemonday
 
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
Vidal Chriqui
 

Similaire à BLISS-O3-T1%20U2%20Blockchain%20v2-FR.pptx (20)

La technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approcheLa technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approche
 
Pres blockchain
Pres blockchainPres blockchain
Pres blockchain
 
Tout savoir sur le #Bitcoin et la #BlockChain
Tout savoir sur le #Bitcoin et la #BlockChainTout savoir sur le #Bitcoin et la #BlockChain
Tout savoir sur le #Bitcoin et la #BlockChain
 
Innovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlaceInnovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlace
 
Blockchain par Claude Duvallet
Blockchain par Claude DuvalletBlockchain par Claude Duvallet
Blockchain par Claude Duvallet
 
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiSIBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
IBM Bluemix Paris meetup #23 - 20170425 - Rex de l'entreprise SiS
 
Introduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourgIntroduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourg
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
La blockchain démystifiée | HEC Alumni
La blockchain démystifiée | HEC AlumniLa blockchain démystifiée | HEC Alumni
La blockchain démystifiée | HEC Alumni
 
Bitcoin and beyond
Bitcoin and beyondBitcoin and beyond
Bitcoin and beyond
 
Développement d'une PoC utilisant les blockchains
Développement d'une PoC utilisant les blockchainsDéveloppement d'une PoC utilisant les blockchains
Développement d'une PoC utilisant les blockchains
 
Cwin16 - Paris - blockchain
Cwin16 - Paris - blockchainCwin16 - Paris - blockchain
Cwin16 - Paris - blockchain
 
Meetup Blockchain, Bitcoin, Ethereum, ICO...
Meetup Blockchain, Bitcoin, Ethereum, ICO...Meetup Blockchain, Bitcoin, Ethereum, ICO...
Meetup Blockchain, Bitcoin, Ethereum, ICO...
 
Nantes JUG 2023 - Web3
Nantes JUG 2023 - Web3Nantes JUG 2023 - Web3
Nantes JUG 2023 - Web3
 
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'AlvernyLa blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
La blockchain pour les nuls - Petit déjeuner OCTO Technology & d'Alverny
 
Blockchain et crypto-monnaies
Blockchain et crypto-monnaiesBlockchain et crypto-monnaies
Blockchain et crypto-monnaies
 
Ethereum
EthereumEthereum
Ethereum
 
Présentation blockchain v2
Présentation blockchain v2Présentation blockchain v2
Présentation blockchain v2
 
Prestations Consulting Blockchain Philemonday Agency_2016
Prestations Consulting Blockchain Philemonday Agency_2016Prestations Consulting Blockchain Philemonday Agency_2016
Prestations Consulting Blockchain Philemonday Agency_2016
 
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
Blockchain et business models - Orange Blockchain Créathon du 8 juillet 2016
 

BLISS-O3-T1%20U2%20Blockchain%20v2-FR.pptx

  • 1.
  • 2. 2 Projet BLISS Production O3 Ressource Ouverte d’Éducation Tâche O3-T1 Matériel de Formation et d’Évaluation 24 Cette unité d’apprentissage présente une série d'options techniques et de solutions pour la conception et la mise en œuvre de la blockchain. Elle spécifie, affine, met à jour et met à disposition une approche formelle pour concevoir des solutions, nécessaires au développement et à l'exploitation d'une application blockchain U2 Plateformes Blockchain Unité d’apprentissage : Résumé : Heures :
  • 3. 3 Objectifs d’apprentissage Fondamentaux des plateformes • Caractéristiques des plateformes blockchain (autorisées, publiques, etc.) • Paradigme de la programmation des blockchains • Aspects architecturaux, accessibilité et visibilité • Identifier les caractéristiques différenciantes des différentes plateformes de blockchain • Analyser et caractériser différents protocoles blockchain selon des critères donnés • Sélectionner et formaliser les exigences d'un protocole blockchain pour des scénarios spécifiques Compétences Savoir-faire Unité d’apprentissage U2 Plateformes Blockchain Évaluer la faisabilité de la mise en œuvre d’une application blockchain décentralisée spécifique dans des plate-formes blockchain adéquates K3
  • 4. 4 Objectifs d’apprentissage Plateforme Ethereum • Installation d’une blockchain Ethereum • Cycle d’un contrat intelligent • Mise en œuvre Plateforme Hyperledger • Installation d’une blockchain Hyperledger Cycle d’un contrat intelligent • Mise en œuvre d’un cas d'utilisation • Planifier et concevoir les spécifications d'une application de blockchain décentralisée Compétences Savoir-faire Unité d’apprentissage U2 Plateformes Blockchain Planifier et concevoir les spécifications d'une application de blockchain décentralisée K4
  • 5. 5 U2 : Platforme Blockchain Jean-Patrick Gelas, Hayri Acar, Léo Besançon, UCBL, France Hind Benfenatki, INSA of Lyon, France Relu par: Catarina Ferreira Da Silva and Parisa Ghodous, UCBL, France
  • 6. 6 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
  • 7. 7 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
  • 8. 8 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
  • 10. 10 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]
  • 11. 11 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
  • 12. 12 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]
  • 14. 14 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
  • 15. 15 Le cycle de vie des Smart Contract
  • 16. 16 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
  • 17. 17 • 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 Interagir avec un Smart Contract
  • 18. 18 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]
  • 19. 19 Trans X Trans X S A B T T+1 Immutability Echec Météo Résultat Sportif État du trafic routier Oracles Usage d’Oracles
  • 20. 20 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
  • 21. 21 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
  • 22. 22 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]
  • 23. 23 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]
  • 24. 24 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]
  • 25. 25 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]
  • 26. 26 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
  • 27. 27 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 (),…
  • 28. 28 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]
  • 29. 29 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
  • 30. 30 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]
  • 31. 31 • 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] Avantages et inconvénients des ICO
  • 32. 32 • 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] ICOs (suite)
  • 33. 33 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
  • 34. 34 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)
  • 35. 35 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
  • 36. 36 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é)
  • 37. 37 • 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 Frais Ethereum et limite de Gaz
  • 39. 39 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]
  • 40. 40 Coût des opérations de transaction
  • 41. 41
  • 43. 43 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
  • 44. 44 Avantages Inconvénients Neutralité des agents dans la signature des contrats Difficile de faire des changements Automatisation de la signature des contrats, gain de temps: exclut la participation humaine aux transactions, tout se fait à l'aide du code de programme prescrit Les agents tiers ne disparaissent pas mais commencent à jouer un rôle différent. Le besoin d'avocats expérimentés en informatique augmentera à l'avenir, 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é ne peuvent pas être perdues ou attaqué. Les consommateurs sont assez méfiants car il s’agit d’une technologie nouvelle et ils ne la comprennent pas encore. Précision: aucune erreur ne peut être commise en raison de l'absence de formulaires remplis à la main. Il est possible de conserver et de sauvegarder des données dans des contrats intelligents en toute sécurité, sans aucune distorsion, uniquement si le code est écrit de manière parfaite et précise. Résumé des avantages et inconvénients des contrats intelligents
  • 45. 45 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; } }
  • 46. 46 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 sur Hyperledger ● Bibliographie
  • 48. 48 Qu’est-ce-que Hyperledger? • Incubateur de projets Blockchain open source, créé par la Fondation Linux • Vise à démocratiser la technologie Blockchain dans l’industrie
  • 49. 49 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 sur Hyperledger ● Bibliographie
  • 50. 50 Pourquoi avoir besoin de Blockchain privées ? • Blockchain publiques (Permissionless) : N’importe qui peut maintenir un noeud, envoyer une transaction au réseau, ou encore valider les blocks. Exemple : Bitcoin, Ethereum, EOS… • Blockchain privées (Permissioned) : Le ledger partagé par les utilisateurs est chiffré, on ne peut voir uniquement les transactions dont on a les droits (système de permissions). Exemple : Hyperledger Fabric, Quorum...
  • 51. 51 Raisons des Blockchain privées Les entreprises ont besoin • De transparence entre partenaires, clients et fournisseurs • De scalabilité des traitements(une latence faible et une bande passante importante) • De règles de confidentialité • De systèmes de permissions et de pouvoir tracer la responsabilité de chaque utilisateur Elles n’ont pas autant besoin • De décentralisation • De transparence auprès de tout le monde
  • 52. 52 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 sur Hyperledger ● Bibliographie
  • 53. 53 À propos d’Hyperledger Fabric • Projet développé par IBM • La plupart des fonctionnalités sont plug-and-play, avec une conception fortement modulaire • Supporte les smart-contracts (appelés “chaincodes”), écrits dans de multiples languages Exemple: Node, Go, Java • Suitable for organizations of every size
  • 54. 54 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 sur Hyperledger ● Bibliographie
  • 55. 55 Architecture du réseau Org 2 Org 1 Peer 1 Peer 2 Peer 3 Ledger 1 + Chaincode Ledger 2 + Chaincode 0 1 2 0 1 2 3 Organisations: Entreprises qui veulent échanger des données et doivent se faire confiance Peers: Différents services au sein d’une entreprise Utilisateurs: Individus qui se connectent à leur pair afin de s’authentifier sur le réseau
  • 56. 56 Architecture du réseau: Envoyer une transaction Org 2 Org 1 Peer 1 Peer 2 Peer 3 Ledger 1 + Chaincode Ledger 2 + Chaincode Un utilisateur utilise une application afin de ● Se connecter à son peer ● Envoyer des transactions à un ledger spécifique Orderer: Noeud spécial qui valide les blocks. Il peut y avoir plusieurs orderers, appartenant à différentes organisations. Le consensus est obtenus par Preuve d’Autorité ou par le mécanisme “Kafka” Orderer 1 2
  • 57. 57 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 sur Hyperledger ● Bibliographie
  • 58. 58 Configurer un nouveau réseau Hyperledger Fabric L’architecture est définie par un fichier de configuration .yaml.
  • 59. 59 Configurer un nouveau réseau Hyperledger Fabric Ce fichier est utilisé pour générer : • Un certificat pour chaque orderer • Un certificat pour chaque peer • Un certificat pour chaque utilisateur • Un certificat pour l’application Ces certificats sont nécessaires pour établir et se connecter au réseau.
  • 60. 60 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 sur Hyperledger ● Bibliographie
  • 61. 61 Configuration d’un nouveau ledger • Un ledger peut être partagé entre peers en générant le genesis block, depuis un autre fichier de configuration .yaml. • Il faut y définir quels peers vont avoir accès au ledger, ainsi que le (ou les) orderer qui vont être utilisés pour valider les blocks associés à ce ledger.
  • 62. 62 Configuration d’un nouveau ledger A partir du genesis block et des certificats, tout est présent pour les envoyer des transactions sur le réseau.
  • 63. 63 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 sur Hyperledger ● Bibliographie
  • 64. 64 Écriture de Smart contracts avec Hyperledger • Supporte les smart-contracts (appelés “chaincodes”), écrits dans de multiples languages Exemple: Node, Go, Java • Cependant, le développeur ne doit pas y inclure du code non déterministe, ce qui inclus : • Les requêtes HTTP • Les générateurs de nombres aléatoires • N’importe quel code qui se comporte différemment selon le noeud sur lequel il est exécuté • Le principal langage d’Ethereum, Solidity, est intrinsèquement déterministe, ce qui n’est pas le cas des langages supportés par Hyperledger fabric.
  • 65. 65 Écriture de Smart contracts • En utilisant le langage Go, vous pouvez écrire des smart-contract en important les librairies Hyperledger et en associant à vos contrat un type personnalisé.
  • 66. 66 Writing Smart-contracts • Ensuite, vous pouvez ajouter des fonctions à votre contrat via l’ajout de prototypes.
  • 67. 67 s 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 sur Hyperledger ● Bibliographie
  • 68. 68 Cas d’utilisation possibles (1/2) • Gestion de la transparence, de l’archivage, et la traçabilité en Supply chain “Where does the fish ordered in this restaurant was caught?” Hyperledger Sawtooth est une plateforme Blockchain supportant à la fois des ledgers permissioned et permissionless.
  • 69. 69 • Le partage de données entre des partenaires de plusieurs niveaux “Je veux partager facilement un ledger avec l’entreprise A, ainsi que son fournisseur, l’entreprise B, sans que leurs concurrents, l’entreprise C, n’y ait accès. Mais nous sommes tous sur le même réseau !” Ici, chaque entreprise est représenté par une Organisation sans un réseau Hyperledger Fabric. Mon peer va créer un nouveau genesis block pour le ledger à partager entre A et B, leur attribuant des accès et permissions sur ce ledger. Pour assurer la confidentialité, je n’inclus aucun peer appartenant à C dans les permissions pour ce ledger. Cas d’utilisation possibles (2/2)
  • 70. 70 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 sur Hyperledger ● Bibliographie
  • 71. 71 Ressources • Site officiel : https://www.hyperledger.org/projects/fabric • Github : https://github.com/hyperledger/fabric#releases • Documentation technique : https://hyperledger-fabric.readthedocs.io
  • 72. 72 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 sur Hyperledger ● Bibliographie
  • 73. 73 Bibliographie 1 «Qu’est-ce qu’Ethereum ?,» [En ligne]. Available: https://blockchainfrance.net/2016/03/04/comprendre-ethereum/. [Accès le 24 05 2018]. 2 S. BOURGUIGNON, «L’ICO cette nouvelle forme de levée de fonds qui fait tourner les têtes,» 26 Juin 2017. [En ligne]. Available: https://siecledigital.fr/2017/06/26/lico- cette-nouvelle-forme-de-levee-de-fonds-qui-fait-tourner-les-tetes/. 3 J. Luc, «Qu’est-ce qu’un « smart contract » ?,» [En ligne]. Available: https://bitcoin.fr/quest-ce-quun-smart-contract/. [Accès le 24 05 2018]. 4 «Blockchain : qu’est-ce qu’un Smart Contract et à quoi ça sert ?,» [En ligne]. Available: https://www.lemagit.fr/conseil/Blockchain-quest-ce-quun-Smart-Contract-et-a- quoi-ca-sert. 5 B. France, «Les applications prometteuses des smart contracts,» 28 January 2016. [En ligne]. Available: https://blockchainfrance.net/2016/01/28/applications-smart- contracts/. 6 M. Zimmermann, «Blockchain, Ethereum and Business Applications,» 23 May 2017. [En ligne]. Available: https://www.slideshare.net/MatthiasZimmermann1/blockchain-ethereum-and-business-applications. [Accès le 31 May 2018]. 7 K. Healy, «Ethereum in Depth: Smart Contracts - Part 1: What is a Smart Contract?,» 2017. 8 B. France, «Les applications prometteuses des smart contracts,» 28 January 2016. [En ligne]. Available: https://blockchainfrance.net/2016/01/28/applications-smart- contracts/. 9 C. |. t. c. g. o. Ethereum. [En ligne]. Available: https://cryptozombies.io/en/course. 10 K. TAM, «The Best Tools for Smart Contract Development,» 2018. [En ligne]. Available: https://blockgeeks.com/guides/smart-contract-development/. [Accès le 31 May 2018]. 11 Mobilefish.com, «Ethereum contract Application Binary Interface,» 2017. 12 [En ligne]. Available: https://ethereum.stackexchange.com/questions/234/what-is-an-abi-and-why-is-it-needed-to-interact-with-contracts. 13 S. POLROT, «Les Oracles, lien entre la blockchain et le monde,» 13 September 2016. [En ligne]. Available: https://www.ethereum-france.com/les-oracles-lien-entre-la- blockchain-et-le-monde/.
  • 74. 74 14 P. Merriam, «Ethereum Alarm Clock Documentation, Release 1.0.0,» 12 December 2017. [En ligne]. Available: https://media.readthedocs.org/pdf/ethereum- alarm-clock-service/latest/ethereum-alarm-clock-service.pdf. 15 P. Merriam, «Ethereum Alarm Clock,» [En ligne]. Available: http://www.ethereum-alarm-clock.com/. 16 B. Lafontaine et Y. Rouillard, «La Blockchain en détail,» 2016. 17 «How To Write A Smart-Contract For Your ICO? An Ultimate guide,» [En ligne]. Available: https://howtotoken.com/ico/how-to-write-a-smart-contract-for-your-ico-an-ultimate- guide/#limitations. 18 «Comprendre la tokenisation,» 22 May 2018. [En ligne]. Available: https://blockchainfrance.net/2018/05/22/comprendre-la-tokenisation/. 19 «Le web de demain sera décentralisé | Clement Jeanneau | TEDxAgroParisTech,» [En ligne]. Available: https://youtu.be/ISYmB5HBpP4. 20 «Qu’est-ce qu’un token ?,» 22 May 2018. [En ligne]. Available: https://blockchainfrance.net/2018/05/22/comprendre-les-tokens/. 21 S. POLROT, «Qu’est-ce qu’une cryptomonnaie, un token, un actif numérique ?,» 2 June 2017. [En ligne]. Available: https://www.ethereum-france.com/qu-est-ce-qu-une- cryptomonnaie-token-bitcoin-ether-gnt-gno-dgd-plu-rep-rlc/. 22 S. POLROT, «Qu’est-ce qu’un token ERC20 ?,» 02 January 2018. [En ligne]. Available: https://www.ethereum-france.com/qu-est-ce-qu-un-token-erc20/. 23 C. Perreau, «L'ICO, ou comment lever des millions en quelques secondes,» 01 June 2018. [En ligne]. Available: https://www.journaldunet.com/economie/finance/1195462-ico- initial-coin-offering/. 24 Koinbros, «What are ERC20 and ERC223 tokens?,» 21 November 2017. [En ligne]. Available: https://medium.com/cryptomover/what-are-erc20-and-erc223-tokens- 307badcca5a. 25 «Qu’est-ce qu’une DAO ?,» 12 May 2016. [En ligne]. Available: https://blockchainfrance.net/2016/05/12/qu-est-ce-qu-une-dao/. Bibliographie
  • 75. 75 26. ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER BYZANTIUM VERSION (Ethereum yellow paper), https://github.com/ethereum/yellowpaper 27. https://www.investopedia.com/terms/g/gas-ethereum.asp 28. What is Gas, https://kb.myetherwallet.com/gas/what-is-gas-ethereum.html 29. Recommended Gas Prices, https://ethgasstation.info/ 30. Advantages and Disadvantages of Smart Contracts in Financial Blockchain Systems, https://hackernoon.com/advantages- and-disadvantages-of-smart-contracts-in-financial-blockchain-systems-3a443145ae1c 31. Create your own crypto-currency with Ethereum, https://www.ethereum.org/token 32. ERC20 Token Standard, https://theethereum.wiki/w/index.php/ERC20_Token_Standard 33. OpenZeppelin, https://github.com/OpenZeppelin/openzeppelin-solidity/tree/master/contracts/token 34. What is ERC-721?, http://erc721.org/ 35. Build Secure Smart Contracts in Solidity, https://openzeppelin.org/ 36. SafeMath to protect from overflows, https://ethereumdev.io/safemath-protect-overflows/ Bibliographie