SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Tout ce que vous ne savez
(probablement) pas encore
sur la Blockchain
Fabrice CROISEAUX
Pourquoi une nouvelle
technologie ?
3
Des acteurs hyper centralisés
• 46,000 recherches Google, 8,000
tweets, 1,600 appels Skype, par
seconde
• 6 milliards d’heures de vidéo
visionnées sur Youtube chaque mois
• Amazon a envoyé 5 milliards de
paquets en 2014.
• Facebook représente 71% du traffic
de l’ensemble des réseaux sociaux.
• Les 14 concurrents d’Amazon
représentent ensemble seulement
1/5 de sa capacité.
4
Des acteurs hyper centralisés
• les utilisateurs confient leurs
données et leurs fonds en
faisant confiance à des
sociétés privées.
• Les acteurs de la « Sharing
Economy » : Uber, RBnB ont un
pouvoir très importants
• Ils utilisent et monétisent les
données des utilisateurs.
• Ils sont autant de « Single Point
of Failure » exposés aux
attaques.
“The Web’sfuture relies
on individuals owning
their data”
Tim Berners-Lee
5
Blockwhat ?
Centralisé Décentralisé
6
Qu’est ce que la confiance décentralisée ?
• Accorder une confiance forte à des informations
non gérées de façon centralisée.
• Faire confiance aux informations sans faire
confiance aux participants au réseau.
• Pas de Single Point Of Failure dans la chaine de confiance.
• Tous les participants au réseau ont un rôle symétrique.
7
=• N’importe qui peut entrer dans le système très facilement et sans contrôle,
• Le transfert de monnaie est :
• Quasi immédiat (environ 10 minutes en réalité),
• Irrévocable,
• Certain.
• Le système vérifie que la monnaie échangée est valide (parallèle avec le
contrôle des billets de banque)
8
Comment ça marche ?
9
Etape 1. La transaction est envoyée à
tout le réseau
10
Etape 2. Un participant est tiré au sort
pour mettre ensemble toutes les
transactions en cours (créer un bloc)
11
Etape 3. Le “gagnant” reçoit la
récompense (actuellement de 25 BTC)
12
Etape 4. Le bloc créé est sécurisé de
manière cryptographique et ajouté à la
blockchain
Une fois dans un bloc, la transaction est
“confirmée” et Bob a reçu son Bitcoin
13
Qu’est ce que la Blockchain ?
Registre centralisé Registre distribué
14
Qu’est ce que la Blockchain ?
15
Preuve de travail Preuve de participation
Validationdes transactions
La probabilité de valider (miner)
un bloc dépend de la quantité de
travail effectuée par le nœud.
La récompense est donnée au
mineur par création de monnaie
La probabilité de valider un bloc
dépend de la quantité de
monnaie virtuelle possédée par le
nœud.
La récompense est donnée au
mineur par des frais prélevés sur
les transactions
16
UTXO Account Based
Connaître le solde d’un compte.
Les soldes des adresses ne sont
pas stockés.
Seule est vérifiée la possibilité de
dépenser les crypto-currencies de
la transaction.
La somme des ouputs est égale à
la somme des inputs.
Une adresse = un compte.
Les soldes des comptes sont
stockés.
17
Pseudonymité : 100% anonyme 100% transparent
N’importe qui peut se générer une adresse et interagir via cette adresse.
Sans procédure KYC particulière, le système est anonyme.
Le fait de générer une adresse par transaction permet de ne pas connaître le
solde d’une personne en analysant la blockchain qui est publique.
Il est possible d’analyser les transactions si l’on connaît les adresses. Le fait
que la blockchain soit publique conduit certains analystes à dire que la
blockchain est un système qui permet de faire des contrôles AML très
efficacement si le KYC est bien réalisé.
18
Les limites du système
• Le problème des 51%
• Gestion et perte des comptes ou de cryptocurrency (transfert sur un
compte mort)
• Confidentialité et KYC
• Impossibilité de refuser une transaction
• Impossibilité de révoquer une adresse
19
Smart Properties
Stockage dans la blockchain d’un titre de propriété dématérialisé.
Namecoin est par exemple un registre de nom décentralisé et open source
qui se base sur la blockchain pour stocker les propriétaire de noms de
domaines en .bit
http://namecoin.info/
• Cadastre,
• Registre de propriété de véhicules,
• Certificats de naissance, de décès,
• Registre de Fonds d’Investissements,
20
Smart Contracts
Un Smart Contract est un agrément entre parties modélisé et stocké dans la
blockchain et dont l’exécution est gérée automatiquement.
Exemples :
• gestion de paris,
• hypothèques,
• héritage,
• … Blockchain
T1 : Création du contrat
T2 : Dépôts des fonds
par les parties
T3 : Evénement déclencheur
T4 : Paiement et déblocage
Développer sur la
Blockchain
Exemple avec Ethereum
Solidity
Solidity est un langage orienté objet
permettant l’écriture de Smart
Contract.
Via une syntaxe assez simple, on y
trouve des types primitifs, la définition
de fonction, une notion d’héritage,
des structures de contrôle, la
possibilité de définir des structures de
données, …
contract MyContract{
address owner;
MyContract(){
owner = msg.sender;
}
function sayHello() returns(string) {
if (msg.sender == owner)
return "Hello my owner!";
else
return "Hello you!";
}
}
Du code source au contrat...
Code
source
Solidity
0100010010010010110111...
[{
“inputs”:[],
”outputs”:
[{“type”:”string”}],
”name”:”sayHello”
},...]
code binaire +
Application Binary
Interface
Compilation Déploiement
0x18a73b389cf3...
adresse du
contrat
IDE
Pour développer des Smart Contracts, il est nécessaire d’avoir au minimum
un compilateur Solidity.
Il existe plusieurs implémentations : solc, solc-js, browser-solidity
Mix est un IDE Open Source utilisé pour le développement sur Ethereum.
Il embarque des éditeurs pour les différents code source, un compilateur
Solidity, et différents outils pour tester les contrats.
Environnements de développement
L’instanciation et le déploiement de contrat sur la blockchain publique coûte
de l’ether.
Durant le développement, les tests se font donc généralement sur des
blockchains locales, pour faire abstraction de ces problématiques.
TestRPC est une implémentation de la blockchain Ethereum “en mémoire”,
pratique pour le développement et les tests.
Frameworks
Des frameworks commencent à émerger pour le développement, notamment
Truffle et Embark.
Ces packages NPM offrent un outillage classique pour les développeurs :
​ Automatisation de la compilation Solidity
​ Intégration aux outils de tests unitaires
​ Automatiser le déploiement
Communiquer avec la Blockchain
La Blockchain est donc par définition un “environnement fermé” : les seules
opérations possibles sont celles définies par EVM.
Comment visualiser les données stockées par un Smart Contract ? Comment
accéder à des données stockées à l’extérieur de la Blockchain ? Comment
réagir à des événements survenus dans la Blockchain ?
Différentes solutions existent. Toutes reposants sur l’interface JSON RPC
exposée par les noeuds Ethereum.
Dapp : decentralized applications
Ethereum
node
(geth)
Ethereum
network
Frontend
application
(JavaScript SPA)
JSON-RPC
WEB3.JS
TCP/IP
IPC
Le frontend de la “Dapp” est implémenté en JS (Angular 2, …) et
utilise la librairie web3.js pour communiquer avec un noeud
Ethereum.
Le backend (Smart Contracts) est déployé sur la Blockchain.
Le frontend est ensuite déployé publiquement (Swarm) et
l’application
est accessible à tous les utilisateurs d’Ethereum (via Mist par
exemple).
Solidity Events
Un besoin courant est d’exécuter du code extérieur lorsque certains
événements se produisent dans la Blockchain.
Ethereum propose pour cela un mécanisme d’Evénements :
​ Les Smart Contracts peuvent émettre des événements lors de l’exécution
des fonctions
​ Ces Evenements peuvent être monitorés depuis l’extérieur via l’interface
JSON RPC
Ethereum Oracles
Certains contrats ont besoin d’accéder à des ressources externes pour leur
exécution (web service REST, exécution de code non supporté sur EVM, …).
Il y a donc besoin d’une interface, depuis la Blockchain, vers le monde
extérieur.
Dans Ethereum, ce pattern est appelée Oracle
Ethereum Oracles - Exemple (simplifié)
“Off-chain”“In-chain”
Smart
Contract
“Oracle”
Smart
Contract
“Client”
get(url)
Evt GET”
response(data)
Oracle HTTP client
Détecte les événements
“GET”, contacte le service
REST et retourne le résultat
callback(data)
Souhaite
accéder à une
ressource
externe
WWW
The DAO: un fond d’investissement
décentralisé
D.A.O : Decentralized Autonomous Organization.
Organisation dont le mode de fonctionnement est basé sur des smart
contracts. Concept lié aux blockchains et à leurs possibilités .
The DAO : un des premier DAO vraiment effectif.
un fond d’investissement décentralisé sur Ethereum.
finance potentiellement d’autres projets “autonome”, basé sur des smart
contract.
En mai 2016: 11 millions d d’ETH levé, soit 146 millions d’euros!
Breaking News
Le Split Gate
Une faille dans une fonction des contrats
Une faille a été découverte dans une des fonctions de “The DAO”.
La fonction Split, permet de transférer le fond vers un nouveau DAO.
l’ETH est bloqué sur un compte pendant 27 jours.
=> Faille : appels récursif possible sur la fonction Split!
le 17 juin 2016: The DAO a été attaqué, 3 millions d’ETH ont été siphonnés.
Des solutions (Soft Fork & Hard Fork) ont été proposées mais nécessitent
l’adhésion d’une majorité de nœuds.
Les questions soulevées
Ça a refroidit la communauté !
La fin de The DAO ? une nouvelle version prévue (sans failles ?).
Impacts financiers limités, mais si cela avait été découvert plus tard ?
Tout les détracteurs ont maintenant un exemple pour faire peur !
Montre la vulnérabilité du système à la faute dans le code
(de TheDAO, pas Ethereum)
=> Tests unitaires recommandés !
Sur la Blockchain plus qu’ailleurs la qualité des développements est
primordiale. The Code is Law.
36
Avez-vous besoin d’une blockchain ?
Avez vous besoin d’une
base de données ?
Avez vous besoin d’accès
partagé en écriture ?
Les participants sont-ils
connus et de confiance ?
Voulez-vous utiliser un
Tiers de confiance ?
Faut-il contrôler les
fonctionnalités ?
Les transactions doivent-
elles être public ou privées ?
Les participants ont-ils
les mêmes intérêts ?
Nature du consensus
Blockchain
Publique
Blockchain
Hybride
Blockchain
Privée
Pas besoin de
Blockchain
Non
Non
Oui
Oui
Oui
privées
publiques
Non
Non
Non
Oui
Oui
Oui
Non
Intra firm
Interfirm
Quels Use Cases
38
Uberiser Uber grâce à la blockchain !
Smart Contract
User
39
Quels business models pour la
blockchain ?
?
​Contact
​Pour plus d’informations
​fabrice.croiseaux@intech.lu
​+352 53-11-53-1
Merci

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Blockchain et Smart Contract : de la théorie à la production
Blockchain et Smart Contract : de la théorie à la productionBlockchain et Smart Contract : de la théorie à la production
Blockchain et Smart Contract : de la théorie à la production
 
Blockchain au-delà de la finance : pourquoi toutes les industries sont concer...
Blockchain au-delà de la finance : pourquoi toutes les industries sont concer...Blockchain au-delà de la finance : pourquoi toutes les industries sont concer...
Blockchain au-delà de la finance : pourquoi toutes les industries sont concer...
 
Meetup #5 - Découvrir la Blockchain et Bitcoin ! + Panorama des cas d'usage
Meetup #5 - Découvrir la Blockchain et Bitcoin ! + Panorama des cas d'usageMeetup #5 - Découvrir la Blockchain et Bitcoin ! + Panorama des cas d'usage
Meetup #5 - Découvrir la Blockchain et Bitcoin ! + Panorama des cas d'usage
 
Cci 92 - Club Nelson - Microsoft - Introduction à la Blockchain
Cci 92 - Club Nelson - Microsoft - Introduction à la BlockchainCci 92 - Club Nelson - Microsoft - Introduction à la Blockchain
Cci 92 - Club Nelson - Microsoft - Introduction à la Blockchain
 
Pres blockchain
Pres blockchainPres blockchain
Pres blockchain
 
Blockchain par Claude Duvallet
Blockchain par Claude DuvalletBlockchain par Claude Duvallet
Blockchain par Claude Duvallet
 
La technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approcheLa technologie Blockchain - 1ere approche
La technologie Blockchain - 1ere approche
 
Introduction à la blockchain : technologie fondamentale et révolutionnaire
Introduction à la blockchain : technologie fondamentale et révolutionnaireIntroduction à la blockchain : technologie fondamentale et révolutionnaire
Introduction à la blockchain : technologie fondamentale et révolutionnaire
 
ET12 - Blockchain
ET12 - BlockchainET12 - Blockchain
ET12 - Blockchain
 
Développer un serveur de micropayment bitcoin - REX sur 2 implémentations - O...
Développer un serveur de micropayment bitcoin - REX sur 2 implémentations - O...Développer un serveur de micropayment bitcoin - REX sur 2 implémentations - O...
Développer un serveur de micropayment bitcoin - REX sur 2 implémentations - O...
 
Blockchain et crypto-monnaies
Blockchain et crypto-monnaiesBlockchain et crypto-monnaies
Blockchain et crypto-monnaies
 
Chaînes d’approvisionnement et registres distribués
Chaînes d’approvisionnement et registres distribuésChaînes d’approvisionnement et registres distribués
Chaînes d’approvisionnement et registres distribués
 
Données critiques et blockchain - sajida zouarhi - juillet 2016
Données critiques et blockchain  - sajida zouarhi - juillet 2016Données critiques et blockchain  - sajida zouarhi - juillet 2016
Données critiques et blockchain - sajida zouarhi - juillet 2016
 
La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard
La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann RouillardLa blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard
La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard
 
Les grands principes de la Blockchain
Les grands principes de la BlockchainLes grands principes de la Blockchain
Les grands principes de la Blockchain
 
Pourquoi la blockchain?
Pourquoi la blockchain?Pourquoi la blockchain?
Pourquoi la blockchain?
 
La Blockchain : Au-delà du Bitcoin
La Blockchain : Au-delà du BitcoinLa Blockchain : Au-delà du Bitcoin
La Blockchain : Au-delà du Bitcoin
 
Business & Decision - Blockchain et applications : Etat de l'art
Business & Decision - Blockchain et applications : Etat de l'artBusiness & Decision - Blockchain et applications : Etat de l'art
Business & Decision - Blockchain et applications : Etat de l'art
 
Blockchain introduction créathon - 8 juillet 2016 - sajida zouarhi
Blockchain   introduction créathon - 8 juillet 2016 - sajida zouarhiBlockchain   introduction créathon - 8 juillet 2016 - sajida zouarhi
Blockchain introduction créathon - 8 juillet 2016 - sajida zouarhi
 
Découvrir le Bitcoin
Découvrir le BitcoinDécouvrir le Bitcoin
Découvrir le Bitcoin
 

Destaque

TidalScale Overview
TidalScale OverviewTidalScale Overview
TidalScale Overview
Pete Jarvis
 

Destaque (9)

TidalScale Overview
TidalScale OverviewTidalScale Overview
TidalScale Overview
 
Blockchain et droit
Blockchain et droitBlockchain et droit
Blockchain et droit
 
Tidal scale short_story_v2
Tidal scale short_story_v2Tidal scale short_story_v2
Tidal scale short_story_v2
 
Exceptions are the Norm: Dealing with Bad Actors in ETL
Exceptions are the Norm: Dealing with Bad Actors in ETLExceptions are the Norm: Dealing with Bad Actors in ETL
Exceptions are the Norm: Dealing with Bad Actors in ETL
 
Accélérez la création de services numériques grâce au Cloud
Accélérez la création de services numériques grâce au CloudAccélérez la création de services numériques grâce au Cloud
Accélérez la création de services numériques grâce au Cloud
 
Les applications réactives, un nouveau paradigme pour relever les défis de l'...
Les applications réactives, un nouveau paradigme pour relever les défis de l'...Les applications réactives, un nouveau paradigme pour relever les défis de l'...
Les applications réactives, un nouveau paradigme pour relever les défis de l'...
 
Patterns de développement pour une application Web réactive et concurrente
Patterns de développement pour une application Web réactive et concurrentePatterns de développement pour une application Web réactive et concurrente
Patterns de développement pour une application Web réactive et concurrente
 
Improving Python and Spark (PySpark) Performance and Interoperability
Improving Python and Spark (PySpark) Performance and InteroperabilityImproving Python and Spark (PySpark) Performance and Interoperability
Improving Python and Spark (PySpark) Performance and Interoperability
 
What to Expect for Big Data and Apache Spark in 2017
What to Expect for Big Data and Apache Spark in 2017 What to Expect for Big Data and Apache Spark in 2017
What to Expect for Big Data and Apache Spark in 2017
 

Semelhante a Introduction à la Blockchain Voxxed day luxembourg

Semelhante a Introduction à la Blockchain Voxxed day luxembourg (20)

Présentation blockchain v2
Présentation blockchain v2Présentation blockchain v2
Présentation blockchain v2
 
La blockchain au CES 2017 - Retours sur le Digital Money Forum
La blockchain au CES 2017 - Retours sur le Digital Money ForumLa blockchain au CES 2017 - Retours sur le Digital Money Forum
La blockchain au CES 2017 - Retours sur le Digital Money Forum
 
JUG - Soirée Blockchain
JUG - Soirée BlockchainJUG - Soirée Blockchain
JUG - Soirée Blockchain
 
De la Blockchain en Propriété Intellectuelle
De la Blockchain en Propriété IntellectuelleDe la Blockchain en Propriété Intellectuelle
De la Blockchain en Propriété Intellectuelle
 
[22/03/2016] Conférence : Blockchain, disruption & révolution
[22/03/2016] Conférence : Blockchain, disruption & révolution[22/03/2016] Conférence : Blockchain, disruption & révolution
[22/03/2016] Conférence : Blockchain, disruption & révolution
 
Blockchain
BlockchainBlockchain
Blockchain
 
"Blockchain, registre et contrat de demain ?" - Keynote Université d'été GS1
"Blockchain, registre et contrat de demain ?" - Keynote Université d'été GS1"Blockchain, registre et contrat de demain ?" - Keynote Université d'été GS1
"Blockchain, registre et contrat de demain ?" - Keynote Université d'été GS1
 
BlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolutionBlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolution
 
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 & IoT: The new contract of Trust
Blockchain & IoT: The new contract of TrustBlockchain & IoT: The new contract of Trust
Blockchain & IoT: The new contract of Trust
 
XebiCon'17 : Blockchain & IoT, le nouveau contrat de confiance ? - Sameh Ben ...
XebiCon'17 : Blockchain & IoT, le nouveau contrat de confiance ? - Sameh Ben ...XebiCon'17 : Blockchain & IoT, le nouveau contrat de confiance ? - Sameh Ben ...
XebiCon'17 : Blockchain & IoT, le nouveau contrat de confiance ? - Sameh Ben ...
 
Blockchain et titres financiers : évolution ou révolution ?
Blockchain et titres financiers : évolution ou révolution ?Blockchain et titres financiers : évolution ou révolution ?
Blockchain et titres financiers : évolution ou révolution ?
 
Innovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlaceInnovation et technologie blockchain -intervention DigitalPlace
Innovation et technologie blockchain -intervention DigitalPlace
 
Blockchain
BlockchainBlockchain
Blockchain
 
Support de la conférence Pink Innov' - La blockchain pour les nuls
Support de la conférence Pink Innov' - La blockchain pour les nulsSupport de la conférence Pink Innov' - La blockchain pour les nuls
Support de la conférence Pink Innov' - La blockchain pour les nuls
 
Blockchain, un pas vers la 4ème Révolution Industrielle ! Une infographie Enj...
Blockchain, un pas vers la 4ème Révolution Industrielle ! Une infographie Enj...Blockchain, un pas vers la 4ème Révolution Industrielle ! Une infographie Enj...
Blockchain, un pas vers la 4ème Révolution Industrielle ! Une infographie Enj...
 
Guide Blockchain et Publicité - IAB France
Guide Blockchain et Publicité - IAB FranceGuide Blockchain et Publicité - IAB France
Guide Blockchain et Publicité - IAB France
 
3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la Blockchain3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la Blockchain
 
Keynote Trend Marketing Conference 2019 - Marrakech - Tendances sur la Blockc...
Keynote Trend Marketing Conference 2019 - Marrakech - Tendances sur la Blockc...Keynote Trend Marketing Conference 2019 - Marrakech - Tendances sur la Blockc...
Keynote Trend Marketing Conference 2019 - Marrakech - Tendances sur la Blockc...
 
La Blockchain, une technologie révolutionnaire pour nos clients?
La Blockchain, une technologie révolutionnaire pour nos clients?La Blockchain, une technologie révolutionnaire pour nos clients?
La Blockchain, une technologie révolutionnaire pour nos clients?
 

Introduction à la Blockchain Voxxed day luxembourg

  • 1. Tout ce que vous ne savez (probablement) pas encore sur la Blockchain Fabrice CROISEAUX
  • 3. 3 Des acteurs hyper centralisés • 46,000 recherches Google, 8,000 tweets, 1,600 appels Skype, par seconde • 6 milliards d’heures de vidéo visionnées sur Youtube chaque mois • Amazon a envoyé 5 milliards de paquets en 2014. • Facebook représente 71% du traffic de l’ensemble des réseaux sociaux. • Les 14 concurrents d’Amazon représentent ensemble seulement 1/5 de sa capacité.
  • 4. 4 Des acteurs hyper centralisés • les utilisateurs confient leurs données et leurs fonds en faisant confiance à des sociétés privées. • Les acteurs de la « Sharing Economy » : Uber, RBnB ont un pouvoir très importants • Ils utilisent et monétisent les données des utilisateurs. • Ils sont autant de « Single Point of Failure » exposés aux attaques. “The Web’sfuture relies on individuals owning their data” Tim Berners-Lee
  • 6. 6 Qu’est ce que la confiance décentralisée ? • Accorder une confiance forte à des informations non gérées de façon centralisée. • Faire confiance aux informations sans faire confiance aux participants au réseau. • Pas de Single Point Of Failure dans la chaine de confiance. • Tous les participants au réseau ont un rôle symétrique.
  • 7. 7 =• N’importe qui peut entrer dans le système très facilement et sans contrôle, • Le transfert de monnaie est : • Quasi immédiat (environ 10 minutes en réalité), • Irrévocable, • Certain. • Le système vérifie que la monnaie échangée est valide (parallèle avec le contrôle des billets de banque)
  • 9. 9 Etape 1. La transaction est envoyée à tout le réseau
  • 10. 10 Etape 2. Un participant est tiré au sort pour mettre ensemble toutes les transactions en cours (créer un bloc)
  • 11. 11 Etape 3. Le “gagnant” reçoit la récompense (actuellement de 25 BTC)
  • 12. 12 Etape 4. Le bloc créé est sécurisé de manière cryptographique et ajouté à la blockchain Une fois dans un bloc, la transaction est “confirmée” et Bob a reçu son Bitcoin
  • 13. 13 Qu’est ce que la Blockchain ? Registre centralisé Registre distribué
  • 14. 14 Qu’est ce que la Blockchain ?
  • 15. 15 Preuve de travail Preuve de participation Validationdes transactions La probabilité de valider (miner) un bloc dépend de la quantité de travail effectuée par le nœud. La récompense est donnée au mineur par création de monnaie La probabilité de valider un bloc dépend de la quantité de monnaie virtuelle possédée par le nœud. La récompense est donnée au mineur par des frais prélevés sur les transactions
  • 16. 16 UTXO Account Based Connaître le solde d’un compte. Les soldes des adresses ne sont pas stockés. Seule est vérifiée la possibilité de dépenser les crypto-currencies de la transaction. La somme des ouputs est égale à la somme des inputs. Une adresse = un compte. Les soldes des comptes sont stockés.
  • 17. 17 Pseudonymité : 100% anonyme 100% transparent N’importe qui peut se générer une adresse et interagir via cette adresse. Sans procédure KYC particulière, le système est anonyme. Le fait de générer une adresse par transaction permet de ne pas connaître le solde d’une personne en analysant la blockchain qui est publique. Il est possible d’analyser les transactions si l’on connaît les adresses. Le fait que la blockchain soit publique conduit certains analystes à dire que la blockchain est un système qui permet de faire des contrôles AML très efficacement si le KYC est bien réalisé.
  • 18. 18 Les limites du système • Le problème des 51% • Gestion et perte des comptes ou de cryptocurrency (transfert sur un compte mort) • Confidentialité et KYC • Impossibilité de refuser une transaction • Impossibilité de révoquer une adresse
  • 19. 19 Smart Properties Stockage dans la blockchain d’un titre de propriété dématérialisé. Namecoin est par exemple un registre de nom décentralisé et open source qui se base sur la blockchain pour stocker les propriétaire de noms de domaines en .bit http://namecoin.info/ • Cadastre, • Registre de propriété de véhicules, • Certificats de naissance, de décès, • Registre de Fonds d’Investissements,
  • 20. 20 Smart Contracts Un Smart Contract est un agrément entre parties modélisé et stocké dans la blockchain et dont l’exécution est gérée automatiquement. Exemples : • gestion de paris, • hypothèques, • héritage, • … Blockchain T1 : Création du contrat T2 : Dépôts des fonds par les parties T3 : Evénement déclencheur T4 : Paiement et déblocage
  • 22. Solidity Solidity est un langage orienté objet permettant l’écriture de Smart Contract. Via une syntaxe assez simple, on y trouve des types primitifs, la définition de fonction, une notion d’héritage, des structures de contrôle, la possibilité de définir des structures de données, … contract MyContract{ address owner; MyContract(){ owner = msg.sender; } function sayHello() returns(string) { if (msg.sender == owner) return "Hello my owner!"; else return "Hello you!"; } }
  • 23. Du code source au contrat... Code source Solidity 0100010010010010110111... [{ “inputs”:[], ”outputs”: [{“type”:”string”}], ”name”:”sayHello” },...] code binaire + Application Binary Interface Compilation Déploiement 0x18a73b389cf3... adresse du contrat
  • 24. IDE Pour développer des Smart Contracts, il est nécessaire d’avoir au minimum un compilateur Solidity. Il existe plusieurs implémentations : solc, solc-js, browser-solidity Mix est un IDE Open Source utilisé pour le développement sur Ethereum. Il embarque des éditeurs pour les différents code source, un compilateur Solidity, et différents outils pour tester les contrats.
  • 25. Environnements de développement L’instanciation et le déploiement de contrat sur la blockchain publique coûte de l’ether. Durant le développement, les tests se font donc généralement sur des blockchains locales, pour faire abstraction de ces problématiques. TestRPC est une implémentation de la blockchain Ethereum “en mémoire”, pratique pour le développement et les tests.
  • 26. Frameworks Des frameworks commencent à émerger pour le développement, notamment Truffle et Embark. Ces packages NPM offrent un outillage classique pour les développeurs : ​ Automatisation de la compilation Solidity ​ Intégration aux outils de tests unitaires ​ Automatiser le déploiement
  • 27. Communiquer avec la Blockchain La Blockchain est donc par définition un “environnement fermé” : les seules opérations possibles sont celles définies par EVM. Comment visualiser les données stockées par un Smart Contract ? Comment accéder à des données stockées à l’extérieur de la Blockchain ? Comment réagir à des événements survenus dans la Blockchain ? Différentes solutions existent. Toutes reposants sur l’interface JSON RPC exposée par les noeuds Ethereum.
  • 28. Dapp : decentralized applications Ethereum node (geth) Ethereum network Frontend application (JavaScript SPA) JSON-RPC WEB3.JS TCP/IP IPC Le frontend de la “Dapp” est implémenté en JS (Angular 2, …) et utilise la librairie web3.js pour communiquer avec un noeud Ethereum. Le backend (Smart Contracts) est déployé sur la Blockchain. Le frontend est ensuite déployé publiquement (Swarm) et l’application est accessible à tous les utilisateurs d’Ethereum (via Mist par exemple).
  • 29. Solidity Events Un besoin courant est d’exécuter du code extérieur lorsque certains événements se produisent dans la Blockchain. Ethereum propose pour cela un mécanisme d’Evénements : ​ Les Smart Contracts peuvent émettre des événements lors de l’exécution des fonctions ​ Ces Evenements peuvent être monitorés depuis l’extérieur via l’interface JSON RPC
  • 30. Ethereum Oracles Certains contrats ont besoin d’accéder à des ressources externes pour leur exécution (web service REST, exécution de code non supporté sur EVM, …). Il y a donc besoin d’une interface, depuis la Blockchain, vers le monde extérieur. Dans Ethereum, ce pattern est appelée Oracle
  • 31. Ethereum Oracles - Exemple (simplifié) “Off-chain”“In-chain” Smart Contract “Oracle” Smart Contract “Client” get(url) Evt GET” response(data) Oracle HTTP client Détecte les événements “GET”, contacte le service REST et retourne le résultat callback(data) Souhaite accéder à une ressource externe WWW
  • 32. The DAO: un fond d’investissement décentralisé D.A.O : Decentralized Autonomous Organization. Organisation dont le mode de fonctionnement est basé sur des smart contracts. Concept lié aux blockchains et à leurs possibilités . The DAO : un des premier DAO vraiment effectif. un fond d’investissement décentralisé sur Ethereum. finance potentiellement d’autres projets “autonome”, basé sur des smart contract. En mai 2016: 11 millions d d’ETH levé, soit 146 millions d’euros!
  • 34. Une faille dans une fonction des contrats Une faille a été découverte dans une des fonctions de “The DAO”. La fonction Split, permet de transférer le fond vers un nouveau DAO. l’ETH est bloqué sur un compte pendant 27 jours. => Faille : appels récursif possible sur la fonction Split! le 17 juin 2016: The DAO a été attaqué, 3 millions d’ETH ont été siphonnés. Des solutions (Soft Fork & Hard Fork) ont été proposées mais nécessitent l’adhésion d’une majorité de nœuds.
  • 35. Les questions soulevées Ça a refroidit la communauté ! La fin de The DAO ? une nouvelle version prévue (sans failles ?). Impacts financiers limités, mais si cela avait été découvert plus tard ? Tout les détracteurs ont maintenant un exemple pour faire peur ! Montre la vulnérabilité du système à la faute dans le code (de TheDAO, pas Ethereum) => Tests unitaires recommandés ! Sur la Blockchain plus qu’ailleurs la qualité des développements est primordiale. The Code is Law.
  • 36. 36 Avez-vous besoin d’une blockchain ? Avez vous besoin d’une base de données ? Avez vous besoin d’accès partagé en écriture ? Les participants sont-ils connus et de confiance ? Voulez-vous utiliser un Tiers de confiance ? Faut-il contrôler les fonctionnalités ? Les transactions doivent- elles être public ou privées ? Les participants ont-ils les mêmes intérêts ? Nature du consensus Blockchain Publique Blockchain Hybride Blockchain Privée Pas besoin de Blockchain Non Non Oui Oui Oui privées publiques Non Non Non Oui Oui Oui Non Intra firm Interfirm
  • 38. 38 Uberiser Uber grâce à la blockchain ! Smart Contract User
  • 39. 39 Quels business models pour la blockchain ? ?