La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

118

Click here to load reader

Transcript of La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

Page 1: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

La Blockchain en détails

Benoit Lafontaine Yann Rouillard

1

Page 2: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

OCTO

2

Page 3: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Benoît Lafontaine!Directeur Technique [email protected] !@joel1di1!

Yann Rouillard!Consultant Senior [email protected] !@yannrouillard!

3

Page 4: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Agenda Origine : Bitcoin, Pourquoi, Comment ? Présent :

Ethereum et les smarts-contract Les usages d’aujourd’hui

Futur :

Les usages de demain… La question de la gouvernance

5

Page 5: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Bitcoin, comment ça marche?

6

Page 6: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Bitcoin est un réseau pair à pair permettant de transférer de

l'argent, sans avoir recours à une entité centrale, telle une banque

7

Page 7: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Notions de base en cryptographie

Fonction de hachage & signature électronique

(rien de bien nouveau sous le soleil)

8

Page 8: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Fonction de hachage ou « Hash »

9

Page 9: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Hash

Origine H(origine)

Voici un texte super long f272bcf903

Bonjour Devoxx! d1be9c0ff4

Bonjour Devoxx. 0084a53e9d

Bonjour Devoxx. 0084a53e9d

N’importe quelle !taille d’entrée !

Taille de sortie fixe!

La moindre variation!produit un hash

différent!Une même entrée produit

toujours le même hash !

10

Page 10: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Exemple de hash (SHA256)

69ac2bc80759bd67c763198ffe9c3bc88ff96caaf4a6fee25776149abab64a66

11

Page 11: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Propriétés des hashs

Rapide ! Résistant à la collision!

Origine H(origine)

Mon message 78baf23503

Non réversible !

12

Page 12: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Signature électronique

13

Page 13: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Principe de la signature électronique

Kpub, Kpriv = GenerateKeys!!!Signature = sign(Kpriv, message) !!!isValid = verify(Kpub, message, signature) !

14

Page 14: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Propriétés des signatures électroniques

1 message => 1 signature Non forgeable, même en connaissant la clé publique Attention à ne pas divulguer sa clé privée

15

Page 15: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Après la crypto, les structures de données

17

Page 16: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Block chain (en 2 mots)

18

Page 17: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Block chain (en 2 mots) Blocs de données qu’on lie entre eux !

en y incorporant le hash du bloc précédent!

19

Page 18: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Merkle tree

Franchement, on aurait pu se passer de l’explication technique. Mais on en trouve partout dans Bitcoin et les autres Blockchains, à tel point qu’on dit que la Blockchain n’est qu’un gigantesque Merkle Tree. Du coup, on s’en dit que c’était pas mal d’en parler. Enfin, surtout Yann, moi j’étais moins chaud, mais comme il a les cheveux longs je lui ai laissé cette victoire. Et puis comme ça vous pourrez briller en société. Parce qu’entre nous, si vous ne parlez pas de Blockchain en 2016, sérieux…

20

Page 19: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Merkle Tree

H( ) !

21

Page 20: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Merkle Tree

H( ) !

22

Page 21: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Assemblage

23

Page 22: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

La transaction dans Bitcoin Règle #1 : On ne peut transférer que les bitcoins que l’on possède

Transactions de type « Paye » Règle #2 : Seuls les mineurs peuvent créer des bitcoins (on verra comment plus tard)

Transactions de type « CoinBase »

24

Page 23: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Exemple : Michel veut donner 1 bitcoin à Alice

CoinBase!

Signée par CléPrivéeMichel!

Paye(CléPubliqueAlice, H( ))!

Signée par CléPrivéeMichel!

Paye(CléPubliqueBob, H( ))!

Signée par CléPrivéeAlice!

25

Page 24: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Problème #1 Donner plusieurs bitcoins en même temps

CoinBase!

Signée par CléPrivéeMichel!

Paye(CléPubliqueAlice, H( ), H( )) !

Signée par CléPrivéeMichel!

CoinBase!

Signée par CléPrivéeMichel!

26

Page 25: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Problème #2 : La division de bitcoins

CoinBase!

Signée par CléPrivéeMichel!

Paye(CléPubliqueAlice, H( ), H( )) !

Signée par CléPrivéeMichel!

CoinBase!

Signée par CléPrivéeMichel!

27

Page 26: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Problème #2 : La division de bitcoins

Paye(CléPubliqueAlice, H( ), H( )) !

Signée par CléPrivéeMichel!

Paye([ CléPubliqueBobà 1.5),!CléPubliqueAliceà 0.5)] !

H( ))!

Signée par CléPrivéeAlice!

Paye(CléPubliqueChris, H( ))!

Signée par CléPrivéeBob!

Paye(CléPubliqueDavid, H( ))!

Signée par CléPrivéeAlice!

28

Page 27: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Problème #3 : La double dépense

CoinBase!

Signée par CléPrivéeMichel!

Paye(CléPubliqueAlice, H( ))!

Signée par CléPrivéeMichel!

Pay (CléPubliqueBob, H( ))!

Signée par CléPrivéeAlice!

Paye(CléPubliqueChris, H( ))!

Signée par CléPrivéeAlice!

29

Page 28: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Diffusion d’une transaction

30

Page 29: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Comment trouver un consensus ?

Sans entité centrale

Sans faire confiance aux participants

31

Page 30: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Détail d’un bloc

32

Page 31: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Algorithme simplifié 1) Nouvelles transactions sont broadcastés

2) Chaque noeud créé un bloc avec les transactions qu'il a vues, à la suite de sa chaine 3) Un noeud est « tiré au hasard »

4) Ce noeud broadcast son bloc

5) Les autres noeuds recoivent et valident ce block

6) S'il est valide, ils le rajoute à leur chaine

33

Page 32: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Tirage au sort => Proof of Work

34

Page 33: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Tirage au sort

H() !

Trouver une valeur du nonce pour laquelle H(_) < valeur !

35

Page 34: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Algorithme du Proof Of Work

while block_hash > difficulty ! nonce = rand() ! block_hash = hash( block_header :: nonce ) !

36

Page 35: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Exemple de valeurs d’un bloc Hash : 000000000000000001e2e3256cc81bf2c1c3e1d9230b1124c5cfd411adf03be2! Nonce : 104098959

37

Page 36: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Forks

A à B !

A à C!

38

Page 37: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Une transaction ancienne est plus « sûre »

Potentiellement écrasable!

Peu probable d’être écrasée !

Considérée comme sûre!

39

Page 38: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Point à retenir Le travail des mineurs est de sécuriser le réseau en :

Validant les transactions Validant les blocs S’accordant sur la chaîne

40

Page 39: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

"If you’re good at something, never do it for free." A happy Bitcoin miner

41

Page 40: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Rémunération

42

Page 41: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Enjeux

43

Page 42: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Enjeux

Vitesse Proof of Work

Scalabilité SmartContracts

44

Page 43: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Proof of work

45

Page 44: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Evolution de la difficulté

46

Page 45: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Le problème des pools de minage

47

Page 46: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Alternatives

LiteCoin!

NXT!

48

Page 47: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Vitesse et scalabilité

49

Temps entre les blocs (10 mins)! Nombre de transactions par bloc !

Page 48: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Bitcoin, monnaie programmable Langage de script, limité Multisignatures (ex: 2 sur 3) LockTime Whiteliste

50

Page 49: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Pause, questions

51

Page 50: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 52 #DevoxxFR

Page 51: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Ethereum kezaco ?

53

Le début du web 3.0 ? dela

Le successeur de bitcoin ?

dela

Le nouvel investissement avec

1000% de gain garantie ?

dela

Page 52: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Ethereum c’est …

54

décentralisé

un ordinateur

infalsifiable

toujours disponible

accessible de partout …

… et par tout le monde !

Page 53: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Ethereum c’est …

55

Page 54: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Mais Ethereum c’est aussi…

56

où tout(e action) se paie !

un ordinateur qui produit des résultats cohérents … à terme

aussi rapide … qu’un smartphone des années 90

Page 55: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les évolutions clés d’Ethereum

57

Des Smart Contracts Turing Complet dela

Une blockchain plus rapide

Une blockchain qui stocke des données

dela

}

1 2 3 4 5 6 . . . .

10

contrat {

Page 56: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Une Blockchain plus rapide

58

Page 57: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Block size et Block time

59

600 s

12 s

•  Un délai entre 2 blocs beaucoup plus court !

•  Une taille de bloc qui s’adapte progressivement !

Vers l’infini et au delà !!

~ 90 kB

Page 58: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Impact d’un block time court

60

1

1

1

2 1' ✗

12 s! 18 s! 24 s!

25%

50%

25%

2

✗ 2

✗A

B

C

BLOCK TIME: 6 S

3

2'

0 s! 6 s!

Page 59: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Solution:

61

GHOST: Greedy Heaviest Observed Subtree

Les blocs orphelins sont:

•  inclus dans le calcul du poids d’une chaîne

•  récompensés en Ξther (jusqu’à la 7ième génération)

le protocole Fantôme

Page 60: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Avant …

62

Orphan block

Orphan block

Page 61: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Avant …

63

Orphan block

Orphan block

Page 62: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Après …

64

Uncle block

Uncle block

Page 63: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Des données dans la blockchain

65

Page 64: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Un livre de comptes on steroid !

66

…avec de la donnée dedans !

Key/Value Storage Key Value

0x87a7b7… ! 4419!0x87a7b7… ! "abc"!

…! …!

structuré par comptes…

Account Id 0x7f6a65…!

Balance 12 Ξ!Nonce 14!

Storage Root Code Hash

Key/Value Storage Key Value

0x87a7b7… ! 4419!0x87a7b7… ! "abc"!

…! …!

Key/Value Storage Key Value

0x87a7b7… ! 4419!0xa5fc701…! "abc"!

…! …!

Code Storage Code Hash Code 0x87a7b7… ! 010010010…!

…! …!

Account Id 0x7f6a65…!

Balance 12 Ξ!Nonce 14!

Storage Root Code Hash

Account Id 0x7f6a65…!

Balance 12 Ξ!Nonce 14!

Storage Root 0x9b65ac… Code Hash 0x78ab5f6…

Page 65: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les comptes Ethereum

67

•  Un compte par utilisateur… et par Smart Contract !

}

1 2 3 4 5 6 . . . . 10

contrat {

•  Simplifie la gestion par les Smart Contracts et les clients légers

•  Identifiant = { Hash(clé publique) si utilisateur

Hash(clé publique, nonce) si Smart Contract

Page 66: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

L’espace de stockage des contrats

68

•  A bas-niveau: une simple base clé / valeur

•  Support de tous les types classiques par les langages de haut-niveau chaîne de caractères, tableau, mapping…

•  Non accessible par les autres contrats … mais lisible de l’extérieur !

}

1 2 3 4 5 . . . . 10

contrat { 256 bits ↔ 256 bits

Page 67: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Un dropbox décentralisé ?!

69

•  Paiement à l’écriture uniquement !

•  Rétribution pour l’effacement

•  No limit ! (enfin presque…)

Page 68: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

… pas vraiment …

70

•  Très cher !! ~130 000 € / Go

IN DA BLOCK CHAIN

A partir de

1000 € IN DA BLOCK CHAIN

A partir de

320 €

•  Limité par

la capacité moyenne des noeuds le faible débit actuel

Page 69: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Des contrats intelligents

71

Page 70: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Un Smart Contract

72

… est un simple programme !!

•  stocké dans la blockchain

•  capable de modifier l’état de la blockchain

•  associé à un identifiant / compte unique

Page 71: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Ils sont complètement Turing !!

73

•  Permet d’implémenter tous les algorithmes de calcul

•  Des instructions de conditions et boucles

•  Mémoire et stack infinie

Page 72: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Transactions et Smart Contracts

74

1234

"abc"

0xe6f

Ethereum State N

4419

"def"

0xde9

Ethereum State N+1

}

1 2 3 4 5 6 . . . .

10

contrat { Ethereum Computer

0x7f6a65…

Transaction Numéro 12!Montant 4 Ξ!

Destinataire 0x7f6a65… Données 2, "toto" !

Code Execution Acteur externe

Page 73: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Interactions entre Smart Contracts ConContracts

75

}

1 2 3 4 5 6 . . . .

10

contrat {

Les Smart Contracts parlent aux Smart Contracts !

}

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

Contrat de notation

Contrat de titrisation Contrats

de prêt }

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

Contrat d’investissement

automatique

Récupère!la liste de prêts!

Récupère les infos!de remboursement!

Récupère remboursement !

Demande la note!

Achète !

Page 74: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Interactions entre Smart Contracts ConContracts

76

}

1 2 3 4 5 6 . . . .

10

contrat {

Les Smart Contracts parlent aux Smart Contracts !

}

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

Contrat de notation

Contrat de titrisation Contrats

de prêt }

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

}

1 2 3 4 5 6 . . . .

10

contrat {

Contrat d’investissement

automatique

Récupère!la liste de prêts!

Récupère les infos!de remboursement!

Récupère remboursement !

Demande la note!

Achète !function request_notation (…) { // return score(load) return "Triple A" }

Page 75: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Des propriétés intéressantes

77

•  Immutabilité

•  Durabilité (ou presque)

•  Atomicité •  Séquentialité •  Durabilité

Transactions

Code

Page 76: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Et des contraintes

78

•  Exécution déclenchée par l’extérieur uniquement

•  Pas d’accès direct aux données externes

•  Temps d’exécution limité (par votre argent)

Page 77: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

C’est qui qui paie ? C’est bibi !

79

•  Principe de l’exécuteur - payeur

•  Unité de facturation: le Gas

•  Monnaie de paiement: l’Ξther

•  Ratio Gas / Ξther défini par l’offre et la demande (à terme)

Page 78: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les langages de développement

80

Solidity#DevoxxFRSoli

dity

Serpent

LLL

~Javascript

~Python

~Lisp MOST POPULAR

Page 79: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les Ðapps

81

Decentralized Applications (le futur)

}

1 2 3 4 5 6 . . . .

10

contrat {

Ethereum

HTML application

Smart Contract

Backend Frontend

Decentralized Storage

(IPFS, Swarm…)

Mist Web 3.0 Browser

Desktop

Page 80: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les Ðapps

82

Decentralized Applications (actuellement)

}

1 2 3 4 5 6 . . . .

10

contrat {

Ethereum

HTML application

Smart Contract

Backend Frontend

Web Server

Web Browser

Desktop

Page 81: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Live Demo

83

Page 82: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Coût des opérations

84

Operation Gas Ξther Euro

Ajouter !2 nombres! 3! 3.10-8 Ξ! ~0,00003 ¢!

Saut conditionnel! 10! 1.10-7 Ξ! ~0,0001 ¢!

Lecture!Stockage! 50! 5.10-7 Ξ! ~0,0005 ¢!

Ecriture!Stockage! 20000! 0,0004 Ξ! ~0,4 ¢!

Création d’un contrat! 32000! 0,00064 Ξ! ~0,64 ¢!

… … … …

Faire la somme de 100 000 nombres

Tri Quicksort d’un tableau de 1000 entrées

A partir de

15 €

A partir de

40 €

Page 83: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Exécution des transactions

85

New (kid on the)

Block

Tx 1 (…) Tx 2 (…)

State Root

Data 4 Data 3 Data 2 Data 1

State Root

State Root

Data 4 Data 3 Data 2 Data 1

State Root

Data 4 Data 3 Data 2 Data 1

Tx 1 (…) Tx 2 (…)

Transactions Pool

Prev Hash Prev Hash

State Root

Page 84: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Vérification des transactions

86

New Block

Tx 1 (…) Tx 2 (…)

State Root

Data 4 Data 3 Data 2 Data 1

State Root

State Root

Data 4 Data 3 Data 2 Data 1

State Root

Data 4 Data 3 Data 2 Data 1

Prev Hash Prev Hash

Tx 1 (…) Tx 2 (…)

State Root

= ?

Page 85: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Exemple de service

87

Page 86: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les oracles

88

•  Principe: Des Smart Contracts qui fournissent des informations sur l’état du monde extérieur

•  Permet aux Smart Contracts de réagir sur des conditions externes (météo, taux de changes, vue youtube…)

Page 87: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les oracles: mode synchrone

89

}

1 2 3 4 5 6 . . . .

10

contrat {

Smart Contract

}

1 2 3 4 5 6 . . . .

10

contrat {

Ethereum

Oracle Contract

External Program

Transmet!à l’oracle! 1112 Récupère!

l’info!13 Interroge!l’oracle!

Régulièrement!

Page 88: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les oracles: mode asynchrone

90

}

1 2 3 4 5 6 . . . .

10

contrat {

Ethereum

Oracle Contract

External Program

Régulièrement!

13 Récupère!l’info!

13 Interroge!l’oracle!

Transmet!à l’oracle!

14

11Interroge!l’oracle!

12 Notification !

Transmet!au contrat!

15 }

1 2 3 4 5 6 . . . .

10

contrat {

Smart Contract

Page 89: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Binding javascripts

Framework de tests de contrats

Outils de développement

91

Embark

Les frameworks de développement et déploiement Ðapps Ðapps(contracts

Automatisent Construction, tests et déploiement

Gestion des environnements

Fournissent

Page 90: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les évolutions futures

92

Page 91: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Ethereum 1.5, 2.0 … 3.0

93

•  Mist Web 3.0 Browser

•  Proof of Stake

•  Amélioration de la scalabilité

•  Support des transactions privées

Page 92: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 94 #DevoxxFR

Mais bordel à quoi ça sert ce truc ?!!

Page 93: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les apports

95

•  Une plateforme transactionnelle ouverte à tous et disponible

•  Des transactions auditables

•  Des coûts de transactions faibles

•  Du paiement à l’usage

•  Des transactions sans besoin de confiance mutuelle

Page 94: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les grands types d’usage

96

Certifications, preuve d’antériorité

Echanges pair à pair et pouvoir de la foule

Internet des objets

Produits financiers / monétaires

Page 95: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Certifications

97

Certification des diplômes d’école d’ingénieurs

Enregistrement des créations et des droits d’auteurs dans la blockchain

Enregistrement du cadastre au Ghana et au Honduras

Page 96: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Les échanges pair à pair

98

Place de marché pour la location d’appartements ou de biens

Place de marché pour les prédictions

LaZooz

Plateforme de co-voiturage décentralisé

Page 97: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

L’Internet des objets

99

Système de verrous piloté par Smart Contract

ADEPT: Plateforme pour la gestion d’objets connectés

Page 98: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Produits financiers

100

Automatisation de l’émission et la gestion des obligations

Utilisation d’une monnaie spécialisée pour le stockage décentralisé

Place de marché des titres de société non côtés sur la blockchain

Page 99: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

La gouvernance

101

Page 100: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 102

Eviter la censure

Page 101: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 103

Page 102: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 104

Smart Contracts

Page 103: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 105

Page 104: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 106

Page 105: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 107

Page 106: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 108

Qui contrôle le code ?

Page 107: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 109

Hashocracy ?

Page 108: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 110

Page 109: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 111

Page 110: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 112

Page 111: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 113

Page 112: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 114

Page 113: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 115

Derrière la technologie, des hommes

Page 114: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 116

Ne pas faire de choix c’est faire un choix

Page 115: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

" We should have built payments in the browser "

Marc Andreessen Mosaic, Netscape " We tried "

117

Page 116: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

Take away Bitcoin et la technologie Blockchain vont impacter le monde La nature et l’ampleur de l’impact restent inconnus Ecrivons l’histoire… ... et évitons que d’autres le fasse à notre place

118

Page 117: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR 119

Merci de votre attention

Page 118: La blockchain en détail - Devoxxfr 2016 - Benoit Lafontaine - Yann Rouillard

#DevoxxFR

OCTO De la startup à la multinationale, OCTO intervient partout où l’informatique joue un rôle déterminant dans la transformation des sociétés.

On recrute J

120