Introduction à la Blockchain Voxxed day luxembourg
-
Upload
fabrice-croiseaux -
Category
Technology
-
view
613 -
download
0
Transcript of Introduction à la Blockchain Voxxed day luxembourg
![Page 1: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/1.jpg)
Tout ce que vous ne savez (probablement) pas encore
sur la Blockchain
Fabrice CROISEAUX
![Page 2: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/2.jpg)
Pourquoi une nouvelle technologie ?
![Page 3: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/3.jpg)
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 trafficde l’ensemble des réseaux sociaux.
• Les 14 concurrents d’Amazon représentent ensemble seulement 1/5 de sa capacité.
![Page 4: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/4.jpg)
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’s future relies on individuals owningtheir data”
Tim Berners-Lee
![Page 5: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/5.jpg)
5
Blockwhat ?
Centralisé Décentralisé
![Page 6: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/6.jpg)
6
Qu’est ce que la confiance décentralisée ?
• Accorder une confiance forte à des informationsnon 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.
![Page 7: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/7.jpg)
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)
![Page 8: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/8.jpg)
8
Comment ça marche ?
![Page 9: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/9.jpg)
9
Etape 1. La transaction est envoyée à tout le réseau
![Page 10: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/10.jpg)
10
Etape 2. Un participant est tiré au sort pour mettre ensemble toutes les
transactions en cours (créer un bloc)
![Page 11: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/11.jpg)
11
Etape 3. Le “gagnant” reçoit la récompense (actuellement de 25 BTC)
![Page 12: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/12.jpg)
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
![Page 13: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/13.jpg)
13
Qu’est ce que la Blockchain ?
Registre centralisé Registre distribué
![Page 14: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/14.jpg)
14
Qu’est ce que la Blockchain ?
![Page 15: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/15.jpg)
15
Preuve de travail Preuve de participation
Validation des 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
![Page 16: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/16.jpg)
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.
![Page 17: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/17.jpg)
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é.
![Page 18: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/18.jpg)
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
![Page 19: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/19.jpg)
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 .bithttp://namecoin.info/
• Cadastre,• Registre de propriété de véhicules,• Certificats de naissance, de décès,• Registre de Fonds d’Investissements,
![Page 20: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/20.jpg)
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
![Page 21: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/21.jpg)
Développer sur laBlockchain
Exemple avec Ethereum
![Page 22: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/22.jpg)
SoliditySolidity 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!";
}
}
![Page 23: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/23.jpg)
Du code source au contrat...Code
sourceSolidity
0100010010010010110111...
[{“inputs”:[],”outputs”:
[{“type”:”string”}],”name”:”sayHello”
},...]
code binaire + Application Binary
InterfaceCompilation Déploiement
0x18a73b389cf3...
adresse du contrat
![Page 24: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/24.jpg)
IDEPour 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.
![Page 25: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/25.jpg)
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.
![Page 26: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/26.jpg)
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
![Page 27: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/27.jpg)
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.
![Page 28: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/28.jpg)
Dapp : decentralized applications
Ethereum node(geth)
Ethereum network
Frontend application
(JavaScript SPA) JSO
N-R
PC
WEB
3.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’applicationest accessible à tous les utilisateurs d’Ethereum (via Mist par exemple).
![Page 29: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/29.jpg)
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
![Page 30: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/30.jpg)
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
![Page 31: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/31.jpg)
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
![Page 32: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/32.jpg)
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!
![Page 33: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/33.jpg)
Breaking NewsLe Split Gate
![Page 34: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/34.jpg)
Une faille dans une fonction des contratsUne 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.
![Page 35: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/35.jpg)
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.
![Page 36: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/36.jpg)
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 unTiers de confiance ?
Faut-il contrôler les fonctionnalités ?
Les transactions doivent-elles être public ou privées ?
Les participants ont-ilsles mêmes intérêts ?
Nature du consensus
BlockchainPublique
BlockchainHybride
BlockchainPrivée
Pas besoin de Blockchain
Non
Non
Oui
Oui
Oui
privées
publiques
Non
Non
Non
Oui
Oui
Oui
Non
Intra firm
Interfirm
![Page 37: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/37.jpg)
Quels Use Cases
![Page 38: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/38.jpg)
38
Uberiser Uber grâce à la blockchain !
Smart Contract
User
![Page 39: Introduction à la Blockchain Voxxed day luxembourg](https://reader034.fdocument.pub/reader034/viewer/2022052514/58ee25381a28ab00038b4663/html5/thumbnails/39.jpg)
39
Quels business models pour la blockchain ?
?