SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
The Blockchain:
Find Trust In
Your Peers
François Zaninotto
@francoisz
marmelab
BlendWebMix 2016
Bonjour à tous. Je suis très heureux d’être parmi vous aujourd’hui. Je m’appelle
François Zaninotto et je dirige un atelier d’innovation digitale qui s’appelle
marmelab. Et je suis ici pour vous parler de la blockchain. Qu’est-ce que c’est, à
quoi ça sert, est-ce que c’est important ?

Salim Ismail
«The Blockchain is the most disruptive
technology I have ever seen.»
Julian Assange
«The most interesting intellectual development

on the Internet in the last five years.»
Al Gore
«I think the fact that within the Bitcoin universe

an algorithm replaces the functions of [the
government] … is actually pretty cool.»
Donald Trump
«Mexico will pay for it»
A cette dernière question, certains visionnaires répondent que la blockchain est
aussi révolutionnaire qu’Internet. Mais oui, rien que ça. Si c’est le cas, vu comme
Internet a transformé notre vie quotidienne, en à peine 10 dix ans, alors la
blockchain mérite bien une petite explication.
Trust
Pour comprendre la portée de la blockchain, il faut remonter à un de nos besoins
fondamentaux : le besoin de confiance. Quand vous étiez petit, on vous disait de
ne pas faire confiance aux inconnus. Mais en grandissant, vous avez bien du
apprendre à faire confiance, par exemple pour acheter à manger à des gens que
vous ne connaissez pas, ou pour choisir un employeur. La confiance, elle se bâtit
d’abord sur la proximité, puis rapidement, sur des intermédiaires.

Un intermédiaire de confiance, ça peut par exemple être une marque,
Une marque de jambon, tiens. Elle peut regrouper plein de producteurs différents,
mais comme vous avez confiance dans la marque, vous mangez les yeux fermés.
On fait beaucoup confiance grâce à ces intermédiaires que sont les marques,
mais aussi les notaires et les banquiers. Tous ces intermédiaires dépensent
énormément pour se construire une réputation, qui ensuite leur permet de gagner
votre confiance.
Cette question de la confiance, elle est encore plus sensible sur Internet, vous
savez, le royaume du spam, du piratage et du rançonnage. Internet c’est encore un
Far West, où on ne confie pas son adresse email au premier site venu. Comme
moi, vous cherchez probablement le logo Visa quand vous faites un paiement CB.
Trouver des intermédiaires de confiance est donc indispensable sur Internet.
Le problème, c’est qu’une fois qu’il a votre confiance, un intermédiaire peut en
abuser. Quand vous avalez ce bon produit bien rose, vous ne vous doutez pas
que sa couleur vient du nitrite de sodium, qui est un cancérigène probable. Et vous
avalez en fait surtout de l’eau, du sel et un peu de viande de porc industrielle, gavé
d’OGM, d’hormones et d’antibiotiques, et élevé dans des conditions déplorables.
Un intermédiaire de confiance concentre aussi les risques. Et s’il se fait pirater,
c’est tout de suite très grave. Souvenez-vous par exemple du PlayStation Network.
C’est un intermédiaire créé par Sony pour permettre à des joueurs d’acheter des
jeux à des éditeurs pour sa console Playstation. Eh bien cet intermédiaire a été
hacké en avril 2011, et plus de 2 millions de numéros de CB ont été volés puis
vendus au marché noir. Ce n’est qu’une histoire parmi des centaines. En fait, plus
l’intermédiaire est gros, plus il est rentable de le pirater, et donc plus il subit
d’attaques.
Remove
Trust
Intermediaries
Les intermédiaires de confiance on les appelle aussi les autorités centrales. Elles
dictent leur loi, leurs prix, elles choisissent leurs clients, elles abusent parfois de
leur autorité, et elles concentrent les risques. Vous voyez où je veux en venir : si on
se passait d’intermédiaires, on pourrait probablement échanger des biens et des
services de façon plus libre, à moindre coût. Mais dans ce cas, qui va sécuriser
les transactions ? Qui va jouer le rôle que jouait l’intermédiaire de confiance ?

Et si…
Code
Et si on programmait les conditions de l’échange et qu’on exécutait ce
programme sur une plateforme collaborative et publique ? Et si cette plateforme
d’échange sécurisée était entièrement automatisée et décentralisée ? De fait on
n’aurait plus besoin d’intermédiaire. C’est le pari de la blockchain, et c’est ce que
je vais tenter de vous expliquer pendant les prochaines 35 minutes.
Notez que si, au lieu de chercher la solution du côté des développeurs, on s’était
intéressé à une autre espèce de primates, que sont les bonobos, on serait parti
dans une direction sans doute plus intéressante. Vous savez que les bonobos
résolvent tous leurs problèmes de confiance par des relations sexuelles ? Tu
m’as volé ma banane ? Allez, montre-moi tes fesses et on n’en parle plus. Avouez
que cette conférence aurait pris une tournure plus singulière si on avait suivi leur
exemple. Mais non. C’est bien par le code et pas par le cul qu’on va essayer de
résoudre nos problèmes de conscience / de confiance. 

Part 1/4
In Theory
Alors comment faire, quels mécanismes utiliser ?

La solution ne vient pas de la physique fondamentale, elle ne vient pas de la
recherche aéronautique. Non non. Une fois n’est pas coutume, elle vient d’un autre
champ d’innovation qui est :
La Finance. Eh oui. Tout a débuté en 2008,
Par la publication de la thèse d’un certain Satoshi Nakamoto, qui partageait avec
le monde entier son invention, le Bitcoin. Il décrivait un système monétaire qui
s’affranchit de la nécessité des intermédiaires de confiance de la finance (que sont
les banques). Ce qui est intéressant dans cette publication, ce n’est pas tant le
bitcoin que la technologie qu’il utilise, la blockchain.
Peer-to-Peer

Network
Asymmetric

Cryptography
Proof-of-work
Consensus
+
+
= Blockchain
La blockchain, c’est le nom que Satoshi Nakamoto a donné à la combinaison de
trois innovations majeures : les réseaux peer-to-peer, la cryptographie
asymétrique, et un consensus par la preuve de travail. Je vais vous expliquer ça en
détail. Au passage, ces trois innovations existaient bien avant la blockchain.
L’invention de Satoshi Nakamoto a été de les combiner.
D’ailleurs, Satoshi Nakamoto, c’est qui ? Eh bien, personne ne le connait - son
identité est un mystère. Si ça se trouve, il n’est pas japonais du tout. Mais il est
considéré, au même titre qu’Einstein, Max Planck ou Emmet Brown, comme un
des grands savants de ces 100 dernières années.
Peer-to-peer
Network
Alors, rentrons dans le vif du sujet. Les réseaux Pair à Pair, vous connaissez : des
réseaux d’échange sans serveur central. Vous en utilisez tous les jours, tenez par
exemple : qui a utilisé Bittorrent au cours de la dernière semaine ? [Kenny, tu veux
prendre une photo pour M6?] Attendez, gardez les mains levées, je prends une
photo, j’ai encore quelques amis dans l’audiovisuel.
Dans un réseau pair à pair, un noeud - c’est-à-dire un ordinateur du réseau - met à
la disposition des autres un fichier, par exemple le rip du dernier X-Men :
Apocalypse. Une grosse bouse, soit dit en passant.
De proche en proche, tous les noeuds copient ce fichier jusqu’à ce que tout le
réseau en possède une copie fidèle. Ca me fait bien évidemment penser à la
multiplication miraculeuse des pains par Jésus Christ. Sauf que là, c’est en
quelque sorte une multiplication des bouses. L’idée géniale de la blockchain,
c’est d’utiliser la technologie Peer to Peer non pas pour partager des films, ou de
la musique, ou des jeux piratés, mais pour partager… vous allez voir, c’est
vraiment génial…
Un registre comptable. C’est vous dire à quel point Satoshi Nakamoto est un
grand déconneur. Donc tout le monde partage le même registre. Et chaque fois
qu’un noeud ajoute une ligne dans ce registre, cette modification est
automatiquement répliquée, de proche en proche, sur toutes les copies.
Date From To Amount
22/08/16 Alice Bob 10 $
23/08/16 Bob Charlie 250 $
27/08/16 Alice Charlie 10 $
08/09/16 Charlie Alice 1 003 $
Pour mémoire, un registre comptable, ça ressemble à ça : une liste ordonnée de
transactions entre deux identifiants de comptes. Au passage, je vous présente
Alice, Bob et Charlie, qui sont souvent utilisés pour incarner les parties d’un
échange électronique. Bon, je vous ai dit que n’importe quel noeud peut ajouter
une ligne dans ce registre. Mais alors, comment éviter que Bob émette une
transition au nom d’Alice, ce qui serait une fraude ? Autrement dit, comment faire
pour que seule Alice puisse ajouter une ligne où elle est notée comme expéditeur ?
Asymmetric
Cryptography
C’est là qu’intervient la cryptographie asymétrique. Vous savez, ce truc compliqué
que vous n’avez jamais compris, qui repose sur des nombres premiers, et qui est à
la base de SSH et de HTTPS. En fait, c’est assez simple. On prend deux grands
nombres premiers (de 100 chiffres chacun au moins). On les combine grâce à une
formule mathématique, et on obtient deux nouveaux nombres. L’un qu’on garde
pour soi, qu’on appelle clé privée, et l’autre qu’on diffuse - c’est la clé publique.
-----BEGIN RSA PRIVATE KEY-----
MGICAQACEQCpODRrPQ+wY9uWbxcnALCHAgM
BAAECEDrBJBoz+lWQ1YNLY60Jn3kC
CQDgh64DDCtqJQIJAMDv8Nj39DI7AghzgRj
hdHc5CQIJAIXkvgdEpEJLAghotXXN
YcdGxw==
-----END RSA PRIVATE KEY——
-----BEGIN PUBLIC KEY-----
MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAKk
4NGs9D7Bj25ZvFycAsIcCAwEAAQ==
-----END PUBLIC KEY-----
Voilà à quoi ressemble une paire clé privée / clé publique. C’est illisible, mais ce
n’est pas grave : on ne vous demande jamais de la lire, c’est votre ordinateur qui
la conserve. Et c’est un gros progrès par rapport aux mots de passe dont on doit
se souvenir et qu’on oublie toujours.

Mon petit cousin Kevin par exemple, il oublie tout le temps son mot de passe
Facebook. Eh bien un jour, il en a eu assez de répondre à des questions de
sécurité toutes les semaines, alors il a pris une mesure radicale:
Il s’est tatoué son mot de passe sur le bras. S’il avait pensé à la cryptographie
asymétrique, il aurait évité une attaque à son père.
Alice Bob
i
Alice, je t'aime
SRJOGVZGFSZ
THKLGHJYUKR
Alice, je t'aime
SRJOGVZGFSZ
THKLGHJYUKR
Alors comment on utilise ces deux clés ? L’usage le plus courant, c’est de crypter
des messages. Si Alice a créé une paire de clés, elle peut diffuser la clé publique
(c’est la verte) à tout le monde. Bob peut alors utiliser cette clé pour chiffrer un
message et l’envoyer à Alice. Il n’y a que la clé privée d’Alice qui peut déchiffrer ce
message. Donc le message est secret pour tout le monde sauf son destinataire.
C’est ce qui est utilisé pour la communication sécurisée sur Internet - le fameux
protocole TLS.
Alice Bob
i
Je suis Alice
YBHKKLGGDFF
GJUIEHIEVUI
YBHKKLGGDF
FGJUIEHIEVUI
Je suis Alice
A l’inverse, Alice peux utiliser sa clé privée pour chiffrer un message, et diffuser sa
clé publique pour que tout le monde puisse la déchiffrer. Alors vous allez me dire :
mettre un message dans un coffre-fort en donnant la clé à tout le monde, ça ne
serait pas un tout petit peu crétin ? Eh bien non. Ce qui est intéressant ici, ce n’est
pas le cryptage, c’est que comme Alice est la seule à disposer de la clé privée, il
n’y a aucun doute sur l’identité de l’expéditeur. C’est comme si Alice avait signé
son message de manière infalsifiable.
Date From To Amount
22/08/16 Alice Bob 10 $
Signed by Alice:
7d3cd42819cc4ad30ca78f92601dc265ed624665aea1bae6f1bf
c76a8785310702abe99df99e5ecf4fe991c20253f8a8490337f7ed
838af4c0d5e3c67cb3525e
C’est cette signature électronique qui est utilisée dans la blockchain.
L’expéditeur signe chacune de ses transactions avec sa clé privée. Il est donc le
seul à pouvoir transférer de l’argent depuis son propre compte. 

En plus d’authentifier l’auteur d’une transaction, la signature empêche la
répudiation d’une transaction. Alice ne peut pas prétendre qu’un autre utilisateur a
déclenché la transaction à sa place, donc elle ne peut pas l’annuler.

Tom
Signed: My Daddy
One Handred Milllion
1o0,O0O,oo0
My birthday
C’est un énorme gain de sécurité par rapport à la signature manuscrite, qui ne
protège pas assez des fraudes. Aujourd’hui, contrefaire une signature, c’est à la
portée d’un gamin de six ans. Enfin, disons plutôt sept.
Date From To Amount
22/08/16 Alice Bob 10 $
Signed by Alice:
7d3cd42819cc4ad30ca78f92601dc265ed624665aea1bae6f1bf
c76a8785310702abe99df99e5ecf4fe991c20253f8a8490337f7ed
838af4c0d5e3c67cb3525e
27/08/16 Alice Charlie 10 $
Signed by Alice:
d30ca78f92601dc265ed624665aea1bae6f1bfc76a8785310702a
be99df99e5ecf4fe991c20253f8a8490337f7ed838af4c0d5e3c67
cb3525e
Bien, maintenant les transactions sont authentifiées, mais on n’est pas encore sûrs
qu’elles soient légitimes. Si Alice ajoute une transaction au registre, qui dit qu’elle
dispose de l’argent qu’elle transmet ? Qu’est-ce qui l’empêche d’envoyer de
l’argent imaginaire ?
Date From To Amount
Alice’s Balance : 20$
22/08/16 Alice Bob 10 $
27/08/16 Alice Charlie 10 $
Alice’s Balance : 0$
Si vous avez fait un tout petit peu de compta, vous savez comment ça marche : en
rejouant les transactions dans l’ordre, on peut calculer le solde d’un compte. Si
Alice avait 20$ au début, après deux transactions de 10$, elle n’a plus rien. Si elle
envoie une nouvelle transaction, elle sera refusée. En pratique, chaque noeud du
réseau doit faire ce calcul pour être en mesure de valider une transaction.

Date From To Amount
Alice’s Balance : 20$
22/08/16 Alice Bob 10 $
27/08/16 Alice Charlie 10 $
Alice’s Balance : 0$
Je vous ai dit : il faut rejouer les transactions dans l’ordre. Eh oui, mais dans quel
ordre ? On ne peut pas faire confiance à la date indiquée par l’expéditeur, parce
que rien ne l’empêcherait d’envoyer une transaction antidatée ou post-datée.
Donc cette date, elle ne sert à rien. Et on ne peut pas non plus se fier à la date à
laquelle une transaction a été reçue dans un noeud, parce que cette date varie
significativement dans un réseau peer-to-peer. Deux transactions envoyées au
même moment peuvent arriver dans un ordre différent dans deux noeuds du
réseau.
Date From To Amount
Alice’s Balance : 10$
22/08/16 Alice Bob 10 $
22/08/16 Alice Charlie 10 $
Regardez, dans cet exemple, Alice n’a que 10$ en banque. Elle a dépensé tout le
reste pour s’acheter des bonbecs. Elle va pourtant réussir à dépenser 20$.
Comment ? Il lui suffit d’envoyer deux fois ces mêmes 10$ à deux personnes
différentes, Bob et Charlie, au même moment.
Alice
Bob
Charlie
10$
10$
On appelle cette arnaque la « double dépense ». En fonction de la propagation
dans le réseau peer-to-peer, chaque noeud accepte une transaction (la première
qu’il a reçue) et refuse l’autre. Il est donc tout-à-fait possible que Bob et Charlie
soient tous les deux convaincus d’avoir reçu une transaction légitime.



Il va donc falloir trouver une astuce pour mettre tout le monde d’accord sur l’ordre
des transactions. Et pour mettre tout le monde d’accord, il existe une technique
imparable :
C’est de montrer une photo de chaton. Là, normalement, tout le monde dit: « qu’il
est mignon » en oubliant ses désaccords. Sauf que, désolé de vous décevoir, mais
les noeuds d’un réseau Peer-to-peer n’aiment pas les chats. On va donc devoir
trouver un autre moyen.
Proof-of-work
Consensus
Ce qui nous amène à la preuve de travail. Je vous rappelle le besoin : mettre
d’accord tous les noeuds d’un réseau sur un ordonnancement de transactions.
Mettre d’accord, ou trouver un consensus, c’est un problème courant dans les
systèmes distribués. Il y a plusieurs algorithmes pour y parvenir, dont la preuve de
travail.

13:20
A
Là, je vais avoir besoin de 5 minutes de votre attention. L’idée de la preuve de
travail est simple : on groupe les transactions dans des blocs. Chaque bloc
référence le précédent. Il n’y a donc qu’une seule suite de blocs, une seule chaine
de blocs. Cette chaine est répliquée dans tous les noeuds du réseau.

Donc si la transaction F est dans le block 21 (celui du milieu), et que la transaction
E est dans le block 22 (le dernier), alors tout le réseau, qui partage la même chaine,
s’accorde sur le fait que la transaction E est postérieure à la transaction F. Donc
on a ordonné les transactions. Avant de finir dans un bloc, les transactions sont
Petite précision de vocabulaire : les transactions finissent bien dans un bloc, et
non pas au bloc, ce qu’on ne souhaite à personne, pas même une transaction
financière.
Alors, comment on crée un bloc avec ces transactions en attente ? Eh bien les
noeuds du réseau essaient tous de créer un nouveau bloc en même temps. Pour
savoir lequel de ces blocs sera considéré comme légitime (parce qu’il ne peut y en
avoir qu’un), chaque noeud lance deux dés. Le premier noeud qui fait un double 6
gagne le droit de publier son bloc local sur le réseau. Eh oui, la blockchain, c’est
un peu des ordinateurs qui jouent au Yams.

Le bloc gagnant sera répliqué dans tous les autres noeuds, et toutes ses
transactions seront considérées comme légitimes. Et la chaine publique s’allonge
Mais pour être exact, les noeuds d’une blockchain ne jettent pas deux dés, ils en
jettent une tétrachiée.
0.000000000000000000000918
Sur la blockchain Bitcoin, la probabilité actuelle de créer block gagnant est de 9,18
fois 10 puissance moins 22. C’est bien un nombre tout petit, avec 21 zéros après
la virgule. D’où vient cette probabilité ? Je vous explique.
Hash
00000000013e10b8dc7fb51fcad87e8c
Previous Block Id
000000000c264d660980cbc7ad787e0c
Transactions
06f416de4154b07f15ec01e3b1059069
4451f28b863eaf98338843e04f5930b1
cc4a86a07c1db76025ffcf023db27493
ee45412f9fbcbd034da8c4fa5f58f507
Random number
ece85ed8e22c264ce2746538a66e2352
sha256
sha256
Au lieu de jeter des dés, un noeud utilise une fonction de hachage. Fonction de
hashage, vous connaissez ? checksum, md5, sha-1 ? Une fonction non réversible
qui calcule une signature courte pour une chaine de caractères. Dans la
blockchain, on hashe l’identifiant du bloc précédent, les identifiants de transaction
du bloc qu’on essaient de former, et une chaine aléatoire. Et ça forme une chaine
de chiffres et de lettres. 

Bref : Un noeud gagne le droit de diffuser son bloc si le hash qu’il forme (un double
sha-256) comporte un grand nombre de zéros dans ses premiers chiffres. Gagner
Block 20
Fact B
Fact D
Fact E
Block 21
Fact C
Fact F
Fact H
Block 22
Fact E
Fact G
Fact I
Block 23
Fact H
Fact J
Fact K
10 min 10 min 10 min
Dans toute la blockchain, il se forme un seul bloc toutes les 10 minutes environ.
D’ailleurs, le nombre de zéros nécessaires pour avoir un hash gagnant s’ajuste
pour que le temps de formation d’un nouveau bloc reste constant même quand le
nombre de noeuds varie. 

Pour récompenser les noeuds qui participent à cette grande loterie, le système leur
attribue une somme fixe à chaque fois qu’ils forment un bloc. C’est d’ailleurs
comme ça que la cryptomonnaie se crée. Avant le premier bloc, il n’y en avait pas,
et le montant total augmente toutes les 10 minutes.
Mine
Comme chercher des blocs rapporte de l’argent si on a de la chance, on a appelé
ça miner. Mais à l’inverse des vraies mines, où ce sont de jeunes enfants réduits
en esclavage qui creusent, le minage sur la blockchain est effectué par des
machines, en général majeures. La monnaie virtuelle se crée donc en respectant
des droits de l’homme virtuel.
Block Id
00000006e13e10b8dc7fb51fcad87e8c
Previous Block Id
000000000c264d660980cbc7ad787e0c
Transactions
06f416de4154b07f15ec01e3b1059069
4451f28b863eaf98338843e04f5930b1
cc4a86a07c1db76025ffcf023db27493
ee45412f9fbcbd034da8c4fa5f58f507
Block Id
000000001cc6bfb0722a7cf823b7edfd
Previous Block Id
00000006e13e10b8dc7fb51fcad87e8c
Transactions
a7416c3c7850993841175eca72738805
9d1bbdc2e54904d2e4b5afc858c39c59
Au passage, le hash d’un bloc est utilisé comme identifiant de ce bloc. Et je vous
l’ai dit, chaque bloc connait l’identifiant du bloc précédent. Grâce à ce système, si
Alice veut remplacer une transaction existante dans la chaine, ça ne va pas être
pas de la tarte.
Block Id
000000017a071086c758925826cbead0
Previous Block Id
000000000c264d660980cbc7ad787e0c
Transactions
06f416de4154b07f15ec01e3b1059069
ce38d4d9021bd4887faa9b36c35f0444
cc4a86a07c1db76025ffcf023db27493
ee45412f9fbcbd034da8c4fa5f58f507
Block Id
00000000595e794e916b90f6a7589029
Previous Block Id
000000017a071086c758925826cbead0
Transactions
a7416c3c7850993841175eca72738805
9d1bbdc2e54904d2e4b5afc858c39c59
Non seulement elle devra réussir à trouver un identifiant de bloc valide avec sa
nouvelle transaction, mais comme les blocs suivants référencent l’ancien
identifiant du bloc, elle devra aussi remplacer tous les blocs suivants, et donc
trouver des identifiants gagnants pour chacun. Et si former un bloc est déjà très
coûteux, former plusieurs blocs à la suite est tout simplement hors de prix.
Peer-to-Peer

Network
Asymmetric

Cryptography
Proof-of-work
Consensus
+
+
= Blockchain
Et voilà, c’est tout. En assemblant ces trois technologies, Satoshi Nakamoto a
effectivement créé un réseau transactionnel distribué et sûr, sans qu’il soit
nécessaire de faire confiance à qui que ce soit dans le réseau. Et ça, c’est
formidable.
Parce que même si le réseau contient un mouton noir, un pirate ou un espion de la
NSA qui souhaite voler de l’argent, il n’a aucune chance. Tenez, disons que ce
mouton noir, c’est Alice. Vous allez me dire, cette Alice qui avait l’air toute
mignonne au début, elle prend l’envergure d’un criminel international, un Kim Jong
Un du piratage. 

Ca m’a intrigué aussi, et j’ai mené mon enquête. Qui est vraiment Alice, et
pourquoi est-elle si méchante ? Eh bien, j’ai le plaisir de vous dire qu’au terme
d’une recherche portant sur des milliers de comptes Facebook à travers 5
continents, j’ai retrouvé Alice. Et pour la première fois, en exclusivité mondiale,
Alice s’appelle en réalité Sébastien, et il vit chez sa mère à Chemiré-le-Gaudin
dans la Sarthe.

Et sa vie n’est pas rose. Chaque fois que Sébastien arrive à former un bloc qui
contient une transaction frauduleuse, 10 minutes plus tard, ce bloc est remplacé
par un autre bloc, un vrai, et la transaction frauduleuse est effacée.
Satoshi Nakamoto, le vrai, a calculé que le réseau reste sûr tant que la moitié des
mineurs jouent franc jeu. C’est donc extrêmement coûteux, et en pratique
infaisable, de casser une blockchain. C’est le nombre qui crée la sécurité, un
peu comme dans une assurance : vous ne connaissez pas les autres membres,
mais c’est pourtant grâce à eux que votre voiture est réparée.

19:30
Part 2/4
Applications
Bien, vous avez compris comment ça marche maintenant ? C’est pas si
compliqué. La question qui vient tout de suite après, c’est : à quoi ça sert ? Eh
bien, sur la base de la blockchain, on peut imaginer plein de services. Des services
qui suppriment les intermédiaires de confiance, on dit de services qui font de la
désintermédiaiton.
La plus célèbre de ces applications, c’est bien évidemment Bitcoin : un système
financier entièrement décentralisé, sans banques ni terminal de paiement. Ca
marche tellement bien qu’on peut payer des vrais objets avec des bitcoins : son
café, des ordinateurs, de la drogue. Les transactions sont bon marché, et
intraçables - c’est donc un moyen idéal pour frauder le fisc.
Smart Contract
Mais il y a plus. La blockchain permet aussi de distribuer des petits programmes
avec une mini base de données qui sont répliqués dans chaque noeud. On
appelle ça des contrats malins. Je vous donne un exemple : Alice - vous vous
souvenez d’Alice ? - choisit donner 10$ à Bob que Bob ne pourra utiliser que le
jour de son anniversaire. Elle codifie cette condition dans un programme qu’elle
accole à sa transaction à Bob. L’exécution de ce programme est garantie par la
blockchain, il est donc aussi sûr qu’un contrat en bonne et due forme - même pas
besoin de tribunal pour le faire appliquer puisqu’il ne peut pas y avoir de litige. Le
code, c’est la loi.
Avec un smart contract, on peut par exemple certifier des documents. Parce que
de nos jours, un coup de Photoshop suffit à falsifier un bulletin de paye, donc il
faut bien trouver mieux. Une startup nommée BitProof offre un service équivalent à
celui d’un acte notarié : envoyez-leur n’importe quel document et quelques
bitcoins en paiement, et ils vous renverront le document signé, tamponné, certifié
conforme. En prime, ce document sera embarqué dans un block, donc daté, et
recopié sur tous les noeuds de la blockchain - donc ultra redondé. Votre notaire de
famille, qui avait déjà pris un coup dans l’aile à cause de Montebourg et Macron,
ne va plus s’en relever.
Un smart contract permet d’enregistrer la propriété d’un bien, et aussi
éventuellement de la programmer. On appelle ça la smart property. Imaginez que
la serrure de votre appartement soit branchée sur la blockchain. Si vous voulez
louer votre appartement pour un week-end, plutôt que de faire appel à airbnb,
publiez un smart contract avec un système d’enchères. Le gagnant gagnera une
clé unique, non répudiable, qu’il pourra par exemple télécharger sur son mobile, et
qui lui garantira l’ouverture de la porte pendant la durée de la location - pas avant,
pas après - et qui vous garantira le paiement de la location. C’est le chemin
qu’explore slock.it, une startup allemande.

Eh bien, vous n’avez plus qu’à casser un carreau, rameuter les voisins, et finir
arrêté comme le seule homme sur terre qui s’est cambriolé lui-même.
Si on pousse l’idée un peu plus loin, on peut même imaginer un service de
covoiturage sans autorité centrale - en clair, un Blablacar sans Blablacar. C’est
l’idée qu’a suivi La Zooz, une startup israélienne. Leur levée de fonds n’a pas
abouti, mais ils ont quand même gardé le nom La Zooz, parce que c’est une des
meilleurs noms de produits depuis bien longtemps.
Les transactions d’une blockchain, ça peut aussi être des paris. Le site Augur
propose une plate-forme de prédiction collaborative et décentralisée - en fait,
une plate-forme de paris en ligne où n’importe qui peut être bookmaker. Vous
voulez miser sur le prochain président des Etats-Unis ? C’est possible. Pour
l’instant, Augur utilise de la monnaie de singe - le site est en bêta. Et au vu des
cotes qui ressortent, espérons que les parieurs sont aussi des bêtas, sinon on va
pas rigoler longtemps avec nos blockchains.
La blockchain permet aussi la création de sociétés sans dirigeants. Eh bien oui,
qu’est-ce que c’est qu’un manager, sinon un intermédiaire entre un actionnaire et
un grouillot ? La DAO, c’est ça : une Decentralized Autonomous Organization, un
groupement de capital risqueurs, une plate-forme de crowdfunding un peu comme
Kickstarter. Ses membres ont versé pour 150 millions de dollars dans ce fonds, et
les règles d’investissement sont régies par un smart contract. Mais on va en
reparler.
Enfin, si vous cherchez un espace de stockage, plutôt que de mettre vos photos
de famille sur une clé USB que vous perdrez de toutes façons, pourquoi ne pas
profiter d’un cloud décentralisé et crypté, un cloud formé par des individus comme
vous et moi, qui louent la partie inutilisée de leur disque dur ? C’est le pari de
storj.io, et ça marche sur la blockchain.
En fait, je pourrais en lister encore des tonnes, des idées de services basés sur la
blockchain. Il en sort un nouveau chaque jour. On les appelle des Decentralized
Apps, ou dApps. Ces applis ne s’exécutent pas sur votre smartphone, mais dans
la blockchain, qui est du coup une espèce de super-ordinateur distribué.
StudBook
Et je ne résiste d’ailleurs pas à la tentation de vous parler de cette dApp fabuleuse
qui s’appelle Studbook, et qui se définit comme un Tinder pour les chevaux sur la
blockchain. Que vous cherchiez un Mustang ou une jument Ardennaise, Studbook
est là pour vous, et les mensurations sont garanties par smart contract. Je me
demande juste comment les chevaux arrivent à faire un glisser vers la gauche avec
leurs sabots quand ils likent…
Part 3/4
In Practice
Vous l’avez vu, la blockchain permet en théorie de faire des choses merveilleuses.
Mais et nous, est-ce qu’on peut changer le monde avec ? Est-ce que au-delà du
buzz, vous et moi, on peut effectivement développer des applications sur la
blockchain ? Eh bien on a voulu vérifier.

25:45
Alors, pour développer des dApps, on n’utilise en général pas la technologie
BitCoin, qui a un langage de programmation trop rudimentaire. La plupart des
dApps que je vous ai présentées utilisent plutôt une autre implémentation de la
blockchain qui s’appelle Ethereum, et qui est aussi open-source. Dans Ethereum,
les smart contracts se programment grâce à un langage proche du JavaScript, qui
s’appelle Solidity. Les blocs, sur Ethereum, sont minés toutes les 10 secondes, et
non pas toutes les 10 minutes, et la monnaie s’appelle l’Ether, ou ETH.
Zero Dollar
Homepage
Alors comme on voulait mettre les mains dans le cambouis, on s’est lancés dans le
développement d’une dApp. On a choisi de construire un serveur de publicité pour
une de nos pages web, qui rémunère des contributions open-source par de la
publicité gratuite. En référence à un phénomène des années 2000, on a appelé ça
Zero Dollar Homepage.
Le principe est le suivant : lorsqu’un contributeur ouvre une pull request sur l’un de
nos repositories open-source sur Github, un bot commente sa pull request pour le
remercier et l’inciter à publier son annonce sur ZeroDollarHomepage.
En suivant le lien du commentaire, le contributeur arrive sur une page sur laquelle il
doit s’identifier avec son compte GitHub, et sur laquelle il peut uploader une image
de son choix.
Cette image se retrouve sur marmelab.com/zerodollarhomepage pendant 24h. Ca
offre une publicité gratuite aux contributeurs de projets open-source. C’est un bon
cas d’étude pour la blockchain : comment implémenter cet ad server sans ad
server, c’est-à-dire sans autorité centrale ?
L’architecture choisie est la suivante : on a un bot qui reçoit les hooks de merge
GitHub et qui commente dessus. Ensuite, une seconde application, l’appli sur
laquelle se connecte l’auteur de la PR, vérifie son compte Github et transfère
l’image uploadée sur un CDN. Elle inscrit aussi l’identifiant de l’image dans le
smart contract, que vous voyez au milieu. Une troisième application regarde toutes
les 24h dans le smart contract pour savoir quelle est la prochaine publicité à
afficher. Elle l’utilise pour remplacer l’image en cours, et tous les visiteurs la verront
ainsi pendant 24h.

La dernière fois que j’ai donné cette conférence, j’ai perdu deux trois personnes
dans le public, notamment une jeune fille qui se fait appeler Sophie Fonfec
(véridique). Si vous venez de décrocher, pas de panique, c’était le seul slide pour
les geeks. Enfin non, j’en ai encore un.
https://github.com/marmelab/ZeroDollarHomePage
Ca, c’est le code de notre smart contract : c’est un peu comme une classe qui
peut contenir des données (dans notre cas, la liste des pulls requests réclamées)
et des méthodes (par exemple, une méthode pour vérifier et ajouter une pull
request). Tout ce code est open-source, donc vous pourrez le regarder en détail
après la conférence si vous le souhaitez, ne vous abimez pas les yeux maintenant.

On peut voir un smart contract comme une mini-API avec sa propre base de
données. C’est écrit dans ce langage, Solidity. L’étape d’après, c’est de déployer
le contrat dans un noeud.
Rassurez-vous, vous n’aurez pas besoin de savoir faire un noeud pour déployer
un contrat dans un noeud. J’en vois au fond de la salle qui sont soulagés. Tout va
bien. Ethereum procure une ligne de commande qui permet de faire ça très bien.
Pour tester notre contrat d’ad server, on l’a chargé sur une blockchain privée,
montée sur nos propres serveurs, et pas connectée à l’extérieur. Le contrat s’est
répliqué automatiquement sur tous les noeuds, et on a pu appeler ses méthodes
depuis un serveur en node.js. On a eu pas mal de difficultés et de mauvaise
surprises - je vous en donne deux exemples.
Asynchronous

Responses
Quand on appelle une méthode d’un contrat qui modifie les données, la réponse
ne vient pas tout de suite. Il faut d’abord que la transaction soit « minée » par un
bloc du réseau. En pratique, la réponse à un appel en écriture, c’est un numéro
de transaction, comme un récépissé de la préfecture quand vous faites une
demande de passeport. Pour avoir la réponse, il faut appeler la préfecture toutes
les semaines, et se fader la petite musique d’attente. Bienvenue à la préfecture du
93. Toutes nos lignes sont actuellement occupées. Veuillez renouveler votre appel
dans six mois. Avec la blockchain, c’est pareil : il faut interroger le réseau (toutes
les 10 secondes à peu près) jusqu’à obtenir confirmation de l’enregistrement de la
Immutable
Code
Autre surprise: le code qu’on déploie sur une blockchain est immutable. Il est là
pour toujours. S’il contient un bug, on ne peut pas le corriger - il faut déployer un
autre contrat, en n’oubliant d’ailleurs pas d’y inclure un moyen pour récupérer les
données du contrat original - dans notre cas, la file des pull requests. L’ancien
contrat restera à jamais dans la blockchain, avec ses bugs, et les transactions
passées aussi. Je peux vous dire que ça ne facilite pas le debug.
L’étape d’après, c’est le passage d’une blockchain privée, qui est comme un
serveur de test, à la blockchain publique, la vraie blockchain Ethereum, qui
contient près de 6 500 noeuds. Et pour ça, il faut de l’Ether
Alors pas de l’éther pour le sniffer, on est des bad boys mais pas à ce point-là
quand même. Il faut de l’ether, la cryptomonnaie d’Ethereum.
Eh oui, parce que les noeuds du réseau n’exécutent pas une transaction à moins
qu’on l’accompagne d’un peu d’Ether pour dédommager du temps de calcul. Pour
obtenir de l’Ether, vous pouvez soit l’acheter sur une place de marché, où son
cours varie selon l’offre et la demande, soit la miner.
Nous, on a testé le minage : on a fait tourner une grosse instance EC2 sur
Amazon, et au bout de 3 jours elle a réussi à former un block - le bloc que vous
voyez affiché ici. On a obtenu 5 Ether en récompense. Ca nous a coûté un peu
plus de 50$, sachant que le prix de revente de ces 5 Ether était d’environ 55$ à
l’époque. D’après nos calculs, ces 5 Ethers étaient suffisants pour faire tourner
notre ad server ZeroDollarHomepage pendant 7 ans.
Et après pas mal de déconvenues, on a réussi à déployer notre contrat sur
Ethereum et à l’appeler depuis nos serveurs en Node.js. Et ça n’a l’air de rien, mais
je peux vous dire qu’on était content d’y arriver.
Ce que vous voyez, c’est l’adresse de notre contrat, ainsi que toutes les
transactions qui y sont liées. Tout est public sur Ethereum : tout le monde peut voir
toutes les transactions, même si elles sont anonymes - d’une clé publique à une
autre.
Il aura fallu 4 semaines à 2 développeurs chevronnés pour arriver tant bien que mal
à faire marcher notre contrat. Les développeurs ont lutté avec une doc pas à jour,
ils ont fait face à des bugs impossibles à localiser et à qualifier, ils se sont arrachés
les cheveux à cause de mises à jour intempestives qui faisaient qu’un code qui
marchait la veille ne marchait plus le lendemain.

33:10
Part 4/4
The Truth
Ce qui m’amène à la quatrième et dernière partie de mon exposé : la vérité sur la
blockchain. Parce qu’en développant notre propre dApp, on a compris tout un tas
de choses qu’on ne lit pas sur Internet. Tout un tas de trucs pas vraiment à
l’avantage de la blockchain.
Immature
Technology
D’abord, la technologie n’est pas prête. On en a fait les frais. Les exemples de
code qu’on trouve sur Internet ne marchent pas. Les développeurs en bavent
tellement qu’il demandent à changer de projet. Imaginez que je vous demande de
construire une tour de 30m de haut, en vous donnant seulement des legos comme
matériau de construction.
Ca a l’air rigolo au début, et puis vous vous dites que de bonnes vielles briques
auraient quand même mieux fait l’affaire. Eh bien, la blockchain, c’est pire.
Immature
Technology
En plus, on n’est pas capable d’estimer le temps d’implémentation d’une
fonctionnalité simple. La techno progresse vite, mais pour l’instant, difficile de
parier sur une technologie aussi immature.
No Outside
Contact
D’autre part, les smart contracts sont en fait assez stupides. Vous l’avez vu dans
notre schéma d’architecture, on ne peut pas leur demander grand chose. C’est
qu’ils ne peuvent pas communiquer avec le monde extérieur - ils sont contraints
à la blockchain pour des raisons de sécurité. Ca veut dire pas d’appels à des
APIs externes. Par exemple, pas d’appel à un service d’authentification, comme
l’OAuth de GitHub. Donc pour faire marcher une dApp, il faut pousser toutes les
données extérieures dans le smart contract. Vous imaginez la complexité ? Ca
explique pourquoi les dApps se restreignent à des cas d’utilisation très simples,
ou à des petites parties d’applications.
It’s
complicated
Les concepts de la blockchain sont très complexes. J’ai gratté la surface pour
essayer de vous donner l’impression de comprendre, mais en vérité vous n’y
comprenez toujours que pouic, croyez-moi. Essayez donc de lire un article
technique sur la blockchain pour voir.
C’est un peu comme essayer de résoudre un Rubik’s cube à 4 dimensions. 80
pièces, 216 faces, 10 puissance 120 combinaisons. [gros yeux]
It’s
complicated
Le résultat, c’est qu’à moins d’être un génie, vos dApps vont contenir des bugs.
Plein de bugs. On estime que le taux de bugs dans les smart contracts est environ
d’un bug toutes les 10 lignes. Des smart contracts qui tournent en production. Je
peux vous dire que les hackers se frottent les mains.
Not Secure
Ca veut dire que la blockchain ne résout pas encore le problème de la sécurité. Le
nombre de vols et de scandales sur des blockchains grimpe chaque jour. Tenez,
le dernier en date : Je vous ai parlé un peu plus tôt de la DAO, vous vous souvenez
?
BUGGY
Le kickstarter décentralisé. Eh bien un hacker a dérobé pour 50 millions de
dollars d’Ether sur ce smart contract. Et le pire, c’est que le hacker ne peut pas
être inquiété. En toute bonne foi, il s’est révélé au public, et il a déclaré qu’il a
respecté le mantra de la blockchain : le code c’est la loi. Si le contrat contenait un
bug, c’est la faute de son auteur. Donc le hacker n’était pas responsable.
Not Secure
C’est bien embêtant, car le manque de sécurité est ce qui nous motive à faire
appel à des intermédiaires de confiance. Si en supprimant les intermédiaires, on ne
garde pas la sécurité, eh bien la blockchain ne sert à rien.
Developer
Power
Et même si on écarte les hackers, mettre la loi dans les mains des
développeurs, je ne suis pas sur que ce soit une si bonne idée. Dans notre
imaginaire collectif, un monde gouverné par des machines, ce n’est pas
nécessairement le paradis. C’est que les développeurs sont des gens
irresponsables - je dis ça sans méchanceté, c’est juste qu’on ne les forme pas à
prendre des décisions politiques ou sociales pour le bien commun.

N’en jetez plus, la blockchain est une techno mal gaulée, vous avez compris. A ce
stade, vous vous dites que vous auriez probablement dû aller voir l’autre
Eh bien détrompez-vous : voilà le flux de la caméra de surveillance de la salle d’â
côté. Ils ronquent tous comme des loirs. Non croyez-moi, vous êtes bien mieux ici,
et en plus je n’en ai pas tout-à-fait fini avec la blockchain.
Waste
Je vous ai dit que les noeuds des mineurs se battent pour créer un bloc toutes les
10 minutes. En pratique, ces noeuds sont des fermes de serveurs surboostés, qui
tournent à plein régime… pour mettre à la poubelle le résultat de leurs calculs
dans 99,9% des cas - Eh bien oui, puisqu’il n’y a qu’un noeud qui gagne toutes les
10 minutes. Ah et cette stratégie de réplication du registre, vous vous souvenez ?
Chaque noeud contient la copie intégrale de toutes les transactions opérées sur le
réseau depuis le jour 1, celui qu’on retient,
Celui qui s'efface quand tu me remplaces. Eh oui, j’ai une fille de 9 ans.
Waste
Donc quand je démarre un noeud, je dois d’abord télécharger et vérifier
l’intégralité des transactions depuis le premier jour - ça représente des
dizaines de Giga-octets. Vous voyez le gâchis de stockage, de cpu, et donc
d’électricité. A l’heure où on s’inquiète du réchauffement climatique, les fermes de
mineurs sont en fait des radiateurs géants.
Very
Expensive
Et qui paye pour toute cette énergie gâchée ? Les utilisateurs de la blockchain,
pardi. Chaque transaction doit s’accompagner d’une petite commission qui va au
mineur qui arrive à former un bloc avec. Pour les transferts d’argent avec Bitcoin,
comptez environ 11 centimes par transaction - c’est loin d’être négligeable. Et si
Ethereum était une boulangerie, la baguette y couterait 50 000 euros pièce.
Elle est bonne cette baguette, je ne dis pas le contraire, mais je me demande
seulement si ça valait le coup d’étouffer ta grand-mère avec un oreiller pour hériter
tu vois.
Extremely
volatile
Par ailleurs, la valeur d’une cryptomonnaie dépend du montant en vraie monnaie
que des acheteurs sont prêts à dépenser pour en acquérir - c’est la loi de l’offre
et de la demande. Aujourd’hui, un bitcoin, c’est environ 600$. Mais on voit des
écarts de valeur de 100% en quelque mois. Si vous devez monter un business sur
la blockchain, il faudra bien planifier vos dépenses sur plusieurs années… mais
comment faire sur un marché si volatile ?
No Business
Model
Et puis quand on y réfléchit bien, il y a un vrai paradoxe : si la blockchain supprime
les intermédiaires, qui peut gagner de l’argent avec ? Les business model les plus
performants, les plus novateurs, sont ceux qui créent une position
d’intermédiaire - pensez à Google, qui est devenu notre intermédiaire avec le
web. Tous les exemples de services dont je vous ai parlé peuvent très bien exister
sans éditeur, puisqu’il s’agit uniquement de faire tourner des programmes sur une
blockchain. Donc c’est bien pour les individus, mais si les sociétés n’y trouvent
pas de vrai intérêt, il n’y aura pas d’investissement significatif sur la blockchain.
Slow
Ah, et j’ai gardé le meilleur pour la fin, si on la compare au technos web
habituelles, la blockchain, c’est affreusement lent. Il faut attendre au moins un
bloc avant d’avoir la confirmation d’une transaction - soit 10 secondes sur
Ethereum ou 10 minutes sur Bitcoin. En pratique, les spécialistes conseillent plutôt
d’attendre 6 blocs (soit 1 minute sur Ethereum, 1 heure sur Bitcoin) pour des
raisons de sécurité. Alors comparés aux délais financiers (où les compensations se
font en général à J+1), c’est un progrès, mais par rapport au reste du monde du
web, 10 minutes pour valider un formulaire de commande, c’est une grosse
régression.
Préparez-vous à regarder des spinners toute la journée, c’est le genre
d’expérience utilisateur qu’offrent toutes les dApps.

40:45
Conclusion
Bien. C’est l’heure de conclure. Vous l’avez compris, se passer d’intermédiaires de
confiance en se basant sur une communauté d’anonymes, c’est une idée
révolutionnaire. Et si ça peut faire avancer le schimilblick, on se dit : pourquoi
pas ? Mais mon opinion - et elle va à l’encontre de beaucoup de ce que vous
pourrez lire par ailleurs - mon opinion, c’est que les coûts l’emportent encore, et
de loin, sur les bénéfices. 

La blockchain, c’est une grosse usine à gaz. Et puis c’est aussi un passe-droit
impossible à réguler et à sécuriser. En ce sens, la blockchain nous pousse vers
une société ultra libérale. C’est un outil déshumanisé, qui considère l’empathie et
Et comme on a une certaine expertise sur la blockchain, on nous a consultés pour
plusieurs projets d’innovation qui se basaient sur cette technologie. En y regardant
de plus près, 80% de ces projets devaient s’exécuter sur une blockchain privée,
accessible uniquement à des tiers de confiance - vous voyez le paradoxe. Alors la
blockchain, une fausse bonne idée ?
Open
Government
Il y a un intermédiaire de confiance dont je n’ai pas parlé, et qui lui a vraiment
besoin d’un coup d’innovation. C’est l’élu. Nos démocraties sont malades du
clientélisme et de la professionnalisation de la vie politique. Le résultat, ce sont des
gouvernants qui se disent incapables de changer la société, qui font des
promesses sans les tenir, et des extrêmes qui montent. Et si on inventait un
gouvernement décentralisé, où les engagements des élus seraient garantis par un
contrat impossible à répudier ? Et si on rétablissait la confiance là où on en a le
plus besoin, dans notre avenir ?
Eh bien croyez-le ou non, mais ça existe. BitNation est un gouvernement
décentralisé sur la blockchain. Il fournit des registres de naissance, des cartes
d’identités, des cartes de paiement, ils financent même une agence spatiale.
L’initiative est encore balbutiante, mais elle est là. Elle annonce la reprise de
contrôle de notre futur collectif, sans nous défausser de notre responsabilité
citoyenne sur des intermédiaires. La blockchain, c’est peut-être la relève de la
démocratie déclinante, et rien que pour ça, je suis prêt à parier dessus. 

43:20
Questions?
François Zaninotto
@francoisz
marmelab
Interested by 

a developer position

in Paris, Nancy or Dijon? 

Apply at marmelab.com/jobs.

Contenu connexe

Tendances

Les grands principes de la Blockchain
Les grands principes de la BlockchainLes grands principes de la Blockchain
Les grands principes de la BlockchainAlain EJZYN
 
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...Stéphane Traumat
 
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...Vidal Chriqui
 
Conférence Blockchain 14 janvier 2016
Conférence Blockchain 14 janvier 2016Conférence Blockchain 14 janvier 2016
Conférence Blockchain 14 janvier 2016Antoine Wintrebert
 
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 productionMathieu Durand
 
La Blockchain: la fin des tiers de confiance?
La Blockchain: la fin des tiers de confiance?La Blockchain: la fin des tiers de confiance?
La Blockchain: la fin des tiers de confiance?Antoine Vigneron
 
Presentation CRYPTO DAY
Presentation CRYPTO DAYPresentation CRYPTO DAY
Presentation CRYPTO DAYCRYPTO APÉRO
 
Bitcoin : comment ça marche et pourquoi c’est une révolution ?
Bitcoin : comment ça marche et pourquoi c’est une révolution ?Bitcoin : comment ça marche et pourquoi c’est une révolution ?
Bitcoin : comment ça marche et pourquoi c’est une révolution ?Stéphane Traumat
 
Bitcoin blockchain - Questions juridiques et évolutions législatives
Bitcoin blockchain - Questions juridiques et évolutions législativesBitcoin blockchain - Questions juridiques et évolutions législatives
Bitcoin blockchain - Questions juridiques et évolutions législativesCathie-Rosalie JOLY
 
Blockchain Paris 2015 - Bitcoin, an almost perfect payment mean
Blockchain Paris 2015 - Bitcoin, an almost perfect payment meanBlockchain Paris 2015 - Bitcoin, an almost perfect payment mean
Blockchain Paris 2015 - Bitcoin, an almost perfect payment meanAlbin CAUDERLIER
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaSMicrosoft
 
Apports et freins de la Blockchain sur le secteur bancaire
Apports et freins de la Blockchain sur le secteur bancaireApports et freins de la Blockchain sur le secteur bancaire
Apports et freins de la Blockchain sur le secteur bancaireDan Ittah
 
La technologie Blockchain: Applications Dans Le Secteur Financier
La technologie Blockchain: Applications Dans Le Secteur FinancierLa technologie Blockchain: Applications Dans Le Secteur Financier
La technologie Blockchain: Applications Dans Le Secteur FinancierHicham Hmimou
 
Blockchain et crypto-monnaies
Blockchain et crypto-monnaiesBlockchain et crypto-monnaies
Blockchain et crypto-monnaiesAyoub Eddakhly
 
blockchain et contrats open source
blockchain et contrats open sourceblockchain et contrats open source
blockchain et contrats open sourceFrederic Baud
 

Tendances (20)

Les grands principes de la Blockchain
Les grands principes de la BlockchainLes grands principes de la Blockchain
Les grands principes de la Blockchain
 
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...
Blockchain : qu'est ce que c'est, comment ça marche et quels usages dans l'av...
 
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...
 
Conférence Blockchain 14 janvier 2016
Conférence Blockchain 14 janvier 2016Conférence Blockchain 14 janvier 2016
Conférence Blockchain 14 janvier 2016
 
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
 
La Blockchain: la fin des tiers de confiance?
La Blockchain: la fin des tiers de confiance?La Blockchain: la fin des tiers de confiance?
La Blockchain: la fin des tiers de confiance?
 
Pourquoi la blockchain?
Pourquoi la blockchain?Pourquoi la blockchain?
Pourquoi la blockchain?
 
Presentation CRYPTO DAY
Presentation CRYPTO DAYPresentation CRYPTO DAY
Presentation CRYPTO DAY
 
Bitcoin : comment ça marche et pourquoi c’est une révolution ?
Bitcoin : comment ça marche et pourquoi c’est une révolution ?Bitcoin : comment ça marche et pourquoi c’est une révolution ?
Bitcoin : comment ça marche et pourquoi c’est une révolution ?
 
Bitcoin blockchain - Questions juridiques et évolutions législatives
Bitcoin blockchain - Questions juridiques et évolutions législativesBitcoin blockchain - Questions juridiques et évolutions législatives
Bitcoin blockchain - Questions juridiques et évolutions législatives
 
Blockchain
BlockchainBlockchain
Blockchain
 
Blockchain Paris 2015 - Bitcoin, an almost perfect payment mean
Blockchain Paris 2015 - Bitcoin, an almost perfect payment meanBlockchain Paris 2015 - Bitcoin, an almost perfect payment mean
Blockchain Paris 2015 - Bitcoin, an almost perfect payment mean
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Formation BLOCKCHAIN
Formation BLOCKCHAINFormation BLOCKCHAIN
Formation BLOCKCHAIN
 
Apports et freins de la Blockchain sur le secteur bancaire
Apports et freins de la Blockchain sur le secteur bancaireApports et freins de la Blockchain sur le secteur bancaire
Apports et freins de la Blockchain sur le secteur bancaire
 
La technologie Blockchain: Applications Dans Le Secteur Financier
La technologie Blockchain: Applications Dans Le Secteur FinancierLa technologie Blockchain: Applications Dans Le Secteur Financier
La technologie Blockchain: Applications Dans Le Secteur Financier
 
Blockchain et crypto-monnaies
Blockchain et crypto-monnaiesBlockchain et crypto-monnaies
Blockchain et crypto-monnaies
 
Découvrir le Bitcoin
Découvrir le BitcoinDécouvrir le Bitcoin
Découvrir le Bitcoin
 
Blockchain
BlockchainBlockchain
Blockchain
 
blockchain et contrats open source
blockchain et contrats open sourceblockchain et contrats open source
blockchain et contrats open source
 

Similaire à La blockchain, quand l'individu sert au collectif... malgré lui

Web3 Culture
Web3 CultureWeb3 Culture
Web3 Cultureheaven
 
Soirée Informed de février 2014 : Bitcoin
Soirée Informed de février 2014 : BitcoinSoirée Informed de février 2014 : Bitcoin
Soirée Informed de février 2014 : BitcoinReseau Informed
 
Le_Bitcoin_pour_les_Nuls.pdf
Le_Bitcoin_pour_les_Nuls.pdfLe_Bitcoin_pour_les_Nuls.pdf
Le_Bitcoin_pour_les_Nuls.pdfOpenWorld
 
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ?
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ? Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ?
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ? Elie Chevignard
 
Conférence Blockchain OctoTechnology 9 mars 2016
Conférence Blockchain OctoTechnology  9 mars 2016Conférence Blockchain OctoTechnology  9 mars 2016
Conférence Blockchain OctoTechnology 9 mars 2016Antoine Wintrebert
 
Introduction au Bitcoin
Introduction au Bitcoin Introduction au Bitcoin
Introduction au Bitcoin Yacine Yakoubi
 
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 nulsSébastien Bourguignon
 
"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é GS1Vidal Chriqui
 
Mémento - Intro à la Blockchain
Mémento - Intro à la BlockchainMémento - Intro à la Blockchain
Mémento - Intro à la BlockchainSalesforce France
 
3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la Blockchain3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la BlockchainAlain KHEMILI
 
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...EnjoyDigitAll by BNP Paribas
 
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...Phil Jeudy
 
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'AlvernySébastien Bourguignon
 
Bitcoin (BOURIHANE Et YAKOUBI)
Bitcoin (BOURIHANE Et YAKOUBI)Bitcoin (BOURIHANE Et YAKOUBI)
Bitcoin (BOURIHANE Et YAKOUBI)Arezki Bourihane
 
BlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolutionBlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolutionEric Lévy-Bencheton
 
Blockchain
BlockchainBlockchain
BlockchainAppstud
 
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...Philippe DEWOST
 
Blockchain au CES 2019 - Debriefing Mission CES au MEDEF
Blockchain au CES 2019 - Debriefing Mission CES au MEDEFBlockchain au CES 2019 - Debriefing Mission CES au MEDEF
Blockchain au CES 2019 - Debriefing Mission CES au MEDEFVidal Chriqui
 
Introduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourgIntroduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourgFabrice Croiseaux
 

Similaire à La blockchain, quand l'individu sert au collectif... malgré lui (20)

Web3 Culture
Web3 CultureWeb3 Culture
Web3 Culture
 
Le Web3 pour les nuls !
Le Web3 pour les nuls !Le Web3 pour les nuls !
Le Web3 pour les nuls !
 
Soirée Informed de février 2014 : Bitcoin
Soirée Informed de février 2014 : BitcoinSoirée Informed de février 2014 : Bitcoin
Soirée Informed de février 2014 : Bitcoin
 
Le_Bitcoin_pour_les_Nuls.pdf
Le_Bitcoin_pour_les_Nuls.pdfLe_Bitcoin_pour_les_Nuls.pdf
Le_Bitcoin_pour_les_Nuls.pdf
 
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ?
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ? Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ?
Peut-on utiliser Bitcoin pour faire du "vrai crowdfunding" ?
 
Conférence Blockchain OctoTechnology 9 mars 2016
Conférence Blockchain OctoTechnology  9 mars 2016Conférence Blockchain OctoTechnology  9 mars 2016
Conférence Blockchain OctoTechnology 9 mars 2016
 
Introduction au Bitcoin
Introduction au Bitcoin Introduction au Bitcoin
Introduction au Bitcoin
 
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, 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
 
Mémento - Intro à la Blockchain
Mémento - Intro à la BlockchainMémento - Intro à la Blockchain
Mémento - Intro à la Blockchain
 
3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la Blockchain3 minutes pour comprendre ... la Blockchain
3 minutes pour comprendre ... la Blockchain
 
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...
 
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...
L'actualité High-Tech de la semaine : Internet.org, Netflix, Oxford Dictionar...
 
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
 
Bitcoin (BOURIHANE Et YAKOUBI)
Bitcoin (BOURIHANE Et YAKOUBI)Bitcoin (BOURIHANE Et YAKOUBI)
Bitcoin (BOURIHANE Et YAKOUBI)
 
BlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolutionBlockChain, vers une nouvelle révolution
BlockChain, vers une nouvelle révolution
 
Blockchain
BlockchainBlockchain
Blockchain
 
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...
IDATE DigiWorld Summit Nov 2016 - Philippe Dewost opening keynote on the Bloc...
 
Blockchain au CES 2019 - Debriefing Mission CES au MEDEF
Blockchain au CES 2019 - Debriefing Mission CES au MEDEFBlockchain au CES 2019 - Debriefing Mission CES au MEDEF
Blockchain au CES 2019 - Debriefing Mission CES au MEDEF
 
Introduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourgIntroduction à la Blockchain Voxxed day luxembourg
Introduction à la Blockchain Voxxed day luxembourg
 

Plus de Francois Zaninotto

Vous aimez les legos ? React est fait pour vous !
Vous aimez les legos ? React est fait pour vous !Vous aimez les legos ? React est fait pour vous !
Vous aimez les legos ? React est fait pour vous !Francois Zaninotto
 
Le jeu vidéo à la rescousse du web
Le jeu vidéo à la rescousse du webLe jeu vidéo à la rescousse du web
Le jeu vidéo à la rescousse du webFrancois Zaninotto
 
Frameworks : A history of violence
Frameworks : A history of violenceFrameworks : A history of violence
Frameworks : A history of violenceFrancois Zaninotto
 
La migration continue vers Symfony
La migration continue vers SymfonyLa migration continue vers Symfony
La migration continue vers SymfonyFrancois Zaninotto
 
La programmation asynchrone... et les pates
La programmation asynchrone... et les patesLa programmation asynchrone... et les pates
La programmation asynchrone... et les patesFrancois Zaninotto
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsFrancois Zaninotto
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfonyFrancois Zaninotto
 

Plus de Francois Zaninotto (12)

Vous aimez les legos ? React est fait pour vous !
Vous aimez les legos ? React est fait pour vous !Vous aimez les legos ? React est fait pour vous !
Vous aimez les legos ? React est fait pour vous !
 
GraphQL, l'avenir du REST ?
GraphQL, l'avenir du REST ?GraphQL, l'avenir du REST ?
GraphQL, l'avenir du REST ?
 
Le jeu vidéo à la rescousse du web
Le jeu vidéo à la rescousse du webLe jeu vidéo à la rescousse du web
Le jeu vidéo à la rescousse du web
 
Frameworks : A history of violence
Frameworks : A history of violenceFrameworks : A history of violence
Frameworks : A history of violence
 
Php 100k
Php 100kPhp 100k
Php 100k
 
La migration continue vers Symfony
La migration continue vers SymfonyLa migration continue vers Symfony
La migration continue vers Symfony
 
La programmation asynchrone... et les pates
La programmation asynchrone... et les patesLa programmation asynchrone... et les pates
La programmation asynchrone... et les pates
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
 
Ce bon vieux propel
Ce bon vieux propelCe bon vieux propel
Ce bon vieux propel
 
Symfony2 meets propel 1.5
Symfony2 meets propel 1.5Symfony2 meets propel 1.5
Symfony2 meets propel 1.5
 
Developing for Developers
Developing for DevelopersDeveloping for Developers
Developing for Developers
 
Simplify your professional web development with symfony
Simplify your professional web development with symfonySimplify your professional web development with symfony
Simplify your professional web development with symfony
 

La blockchain, quand l'individu sert au collectif... malgré lui

  • 1. The Blockchain: Find Trust In Your Peers François Zaninotto @francoisz marmelab BlendWebMix 2016 Bonjour à tous. Je suis très heureux d’être parmi vous aujourd’hui. Je m’appelle François Zaninotto et je dirige un atelier d’innovation digitale qui s’appelle marmelab. Et je suis ici pour vous parler de la blockchain. Qu’est-ce que c’est, à quoi ça sert, est-ce que c’est important ? Salim Ismail «The Blockchain is the most disruptive technology I have ever seen.» Julian Assange «The most interesting intellectual development
 on the Internet in the last five years.» Al Gore «I think the fact that within the Bitcoin universe
 an algorithm replaces the functions of [the government] … is actually pretty cool.» Donald Trump «Mexico will pay for it» A cette dernière question, certains visionnaires répondent que la blockchain est aussi révolutionnaire qu’Internet. Mais oui, rien que ça. Si c’est le cas, vu comme Internet a transformé notre vie quotidienne, en à peine 10 dix ans, alors la blockchain mérite bien une petite explication. Trust Pour comprendre la portée de la blockchain, il faut remonter à un de nos besoins fondamentaux : le besoin de confiance. Quand vous étiez petit, on vous disait de ne pas faire confiance aux inconnus. Mais en grandissant, vous avez bien du apprendre à faire confiance, par exemple pour acheter à manger à des gens que vous ne connaissez pas, ou pour choisir un employeur. La confiance, elle se bâtit d’abord sur la proximité, puis rapidement, sur des intermédiaires. Un intermédiaire de confiance, ça peut par exemple être une marque,
  • 2. Une marque de jambon, tiens. Elle peut regrouper plein de producteurs différents, mais comme vous avez confiance dans la marque, vous mangez les yeux fermés. On fait beaucoup confiance grâce à ces intermédiaires que sont les marques, mais aussi les notaires et les banquiers. Tous ces intermédiaires dépensent énormément pour se construire une réputation, qui ensuite leur permet de gagner votre confiance. Cette question de la confiance, elle est encore plus sensible sur Internet, vous savez, le royaume du spam, du piratage et du rançonnage. Internet c’est encore un Far West, où on ne confie pas son adresse email au premier site venu. Comme moi, vous cherchez probablement le logo Visa quand vous faites un paiement CB. Trouver des intermédiaires de confiance est donc indispensable sur Internet. Le problème, c’est qu’une fois qu’il a votre confiance, un intermédiaire peut en abuser. Quand vous avalez ce bon produit bien rose, vous ne vous doutez pas que sa couleur vient du nitrite de sodium, qui est un cancérigène probable. Et vous avalez en fait surtout de l’eau, du sel et un peu de viande de porc industrielle, gavé d’OGM, d’hormones et d’antibiotiques, et élevé dans des conditions déplorables.
  • 3. Un intermédiaire de confiance concentre aussi les risques. Et s’il se fait pirater, c’est tout de suite très grave. Souvenez-vous par exemple du PlayStation Network. C’est un intermédiaire créé par Sony pour permettre à des joueurs d’acheter des jeux à des éditeurs pour sa console Playstation. Eh bien cet intermédiaire a été hacké en avril 2011, et plus de 2 millions de numéros de CB ont été volés puis vendus au marché noir. Ce n’est qu’une histoire parmi des centaines. En fait, plus l’intermédiaire est gros, plus il est rentable de le pirater, et donc plus il subit d’attaques. Remove Trust Intermediaries Les intermédiaires de confiance on les appelle aussi les autorités centrales. Elles dictent leur loi, leurs prix, elles choisissent leurs clients, elles abusent parfois de leur autorité, et elles concentrent les risques. Vous voyez où je veux en venir : si on se passait d’intermédiaires, on pourrait probablement échanger des biens et des services de façon plus libre, à moindre coût. Mais dans ce cas, qui va sécuriser les transactions ? Qui va jouer le rôle que jouait l’intermédiaire de confiance ? Et si… Code Et si on programmait les conditions de l’échange et qu’on exécutait ce programme sur une plateforme collaborative et publique ? Et si cette plateforme d’échange sécurisée était entièrement automatisée et décentralisée ? De fait on n’aurait plus besoin d’intermédiaire. C’est le pari de la blockchain, et c’est ce que je vais tenter de vous expliquer pendant les prochaines 35 minutes.
  • 4. Notez que si, au lieu de chercher la solution du côté des développeurs, on s’était intéressé à une autre espèce de primates, que sont les bonobos, on serait parti dans une direction sans doute plus intéressante. Vous savez que les bonobos résolvent tous leurs problèmes de confiance par des relations sexuelles ? Tu m’as volé ma banane ? Allez, montre-moi tes fesses et on n’en parle plus. Avouez que cette conférence aurait pris une tournure plus singulière si on avait suivi leur exemple. Mais non. C’est bien par le code et pas par le cul qu’on va essayer de résoudre nos problèmes de conscience / de confiance. Part 1/4 In Theory Alors comment faire, quels mécanismes utiliser ? La solution ne vient pas de la physique fondamentale, elle ne vient pas de la recherche aéronautique. Non non. Une fois n’est pas coutume, elle vient d’un autre champ d’innovation qui est : La Finance. Eh oui. Tout a débuté en 2008,
  • 5. Par la publication de la thèse d’un certain Satoshi Nakamoto, qui partageait avec le monde entier son invention, le Bitcoin. Il décrivait un système monétaire qui s’affranchit de la nécessité des intermédiaires de confiance de la finance (que sont les banques). Ce qui est intéressant dans cette publication, ce n’est pas tant le bitcoin que la technologie qu’il utilise, la blockchain. Peer-to-Peer
 Network Asymmetric
 Cryptography Proof-of-work Consensus + + = Blockchain La blockchain, c’est le nom que Satoshi Nakamoto a donné à la combinaison de trois innovations majeures : les réseaux peer-to-peer, la cryptographie asymétrique, et un consensus par la preuve de travail. Je vais vous expliquer ça en détail. Au passage, ces trois innovations existaient bien avant la blockchain. L’invention de Satoshi Nakamoto a été de les combiner. D’ailleurs, Satoshi Nakamoto, c’est qui ? Eh bien, personne ne le connait - son identité est un mystère. Si ça se trouve, il n’est pas japonais du tout. Mais il est considéré, au même titre qu’Einstein, Max Planck ou Emmet Brown, comme un des grands savants de ces 100 dernières années.
  • 6. Peer-to-peer Network Alors, rentrons dans le vif du sujet. Les réseaux Pair à Pair, vous connaissez : des réseaux d’échange sans serveur central. Vous en utilisez tous les jours, tenez par exemple : qui a utilisé Bittorrent au cours de la dernière semaine ? [Kenny, tu veux prendre une photo pour M6?] Attendez, gardez les mains levées, je prends une photo, j’ai encore quelques amis dans l’audiovisuel. Dans un réseau pair à pair, un noeud - c’est-à-dire un ordinateur du réseau - met à la disposition des autres un fichier, par exemple le rip du dernier X-Men : Apocalypse. Une grosse bouse, soit dit en passant. De proche en proche, tous les noeuds copient ce fichier jusqu’à ce que tout le réseau en possède une copie fidèle. Ca me fait bien évidemment penser à la multiplication miraculeuse des pains par Jésus Christ. Sauf que là, c’est en quelque sorte une multiplication des bouses. L’idée géniale de la blockchain, c’est d’utiliser la technologie Peer to Peer non pas pour partager des films, ou de la musique, ou des jeux piratés, mais pour partager… vous allez voir, c’est vraiment génial…
  • 7. Un registre comptable. C’est vous dire à quel point Satoshi Nakamoto est un grand déconneur. Donc tout le monde partage le même registre. Et chaque fois qu’un noeud ajoute une ligne dans ce registre, cette modification est automatiquement répliquée, de proche en proche, sur toutes les copies. Date From To Amount 22/08/16 Alice Bob 10 $ 23/08/16 Bob Charlie 250 $ 27/08/16 Alice Charlie 10 $ 08/09/16 Charlie Alice 1 003 $ Pour mémoire, un registre comptable, ça ressemble à ça : une liste ordonnée de transactions entre deux identifiants de comptes. Au passage, je vous présente Alice, Bob et Charlie, qui sont souvent utilisés pour incarner les parties d’un échange électronique. Bon, je vous ai dit que n’importe quel noeud peut ajouter une ligne dans ce registre. Mais alors, comment éviter que Bob émette une transition au nom d’Alice, ce qui serait une fraude ? Autrement dit, comment faire pour que seule Alice puisse ajouter une ligne où elle est notée comme expéditeur ? Asymmetric Cryptography C’est là qu’intervient la cryptographie asymétrique. Vous savez, ce truc compliqué que vous n’avez jamais compris, qui repose sur des nombres premiers, et qui est à la base de SSH et de HTTPS. En fait, c’est assez simple. On prend deux grands nombres premiers (de 100 chiffres chacun au moins). On les combine grâce à une formule mathématique, et on obtient deux nouveaux nombres. L’un qu’on garde pour soi, qu’on appelle clé privée, et l’autre qu’on diffuse - c’est la clé publique.
  • 8. -----BEGIN RSA PRIVATE KEY----- MGICAQACEQCpODRrPQ+wY9uWbxcnALCHAgM BAAECEDrBJBoz+lWQ1YNLY60Jn3kC CQDgh64DDCtqJQIJAMDv8Nj39DI7AghzgRj hdHc5CQIJAIXkvgdEpEJLAghotXXN YcdGxw== -----END RSA PRIVATE KEY—— -----BEGIN PUBLIC KEY----- MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAKk 4NGs9D7Bj25ZvFycAsIcCAwEAAQ== -----END PUBLIC KEY----- Voilà à quoi ressemble une paire clé privée / clé publique. C’est illisible, mais ce n’est pas grave : on ne vous demande jamais de la lire, c’est votre ordinateur qui la conserve. Et c’est un gros progrès par rapport aux mots de passe dont on doit se souvenir et qu’on oublie toujours. Mon petit cousin Kevin par exemple, il oublie tout le temps son mot de passe Facebook. Eh bien un jour, il en a eu assez de répondre à des questions de sécurité toutes les semaines, alors il a pris une mesure radicale: Il s’est tatoué son mot de passe sur le bras. S’il avait pensé à la cryptographie asymétrique, il aurait évité une attaque à son père. Alice Bob i Alice, je t'aime SRJOGVZGFSZ THKLGHJYUKR Alice, je t'aime SRJOGVZGFSZ THKLGHJYUKR Alors comment on utilise ces deux clés ? L’usage le plus courant, c’est de crypter des messages. Si Alice a créé une paire de clés, elle peut diffuser la clé publique (c’est la verte) à tout le monde. Bob peut alors utiliser cette clé pour chiffrer un message et l’envoyer à Alice. Il n’y a que la clé privée d’Alice qui peut déchiffrer ce message. Donc le message est secret pour tout le monde sauf son destinataire. C’est ce qui est utilisé pour la communication sécurisée sur Internet - le fameux protocole TLS.
  • 9. Alice Bob i Je suis Alice YBHKKLGGDFF GJUIEHIEVUI YBHKKLGGDF FGJUIEHIEVUI Je suis Alice A l’inverse, Alice peux utiliser sa clé privée pour chiffrer un message, et diffuser sa clé publique pour que tout le monde puisse la déchiffrer. Alors vous allez me dire : mettre un message dans un coffre-fort en donnant la clé à tout le monde, ça ne serait pas un tout petit peu crétin ? Eh bien non. Ce qui est intéressant ici, ce n’est pas le cryptage, c’est que comme Alice est la seule à disposer de la clé privée, il n’y a aucun doute sur l’identité de l’expéditeur. C’est comme si Alice avait signé son message de manière infalsifiable. Date From To Amount 22/08/16 Alice Bob 10 $ Signed by Alice: 7d3cd42819cc4ad30ca78f92601dc265ed624665aea1bae6f1bf c76a8785310702abe99df99e5ecf4fe991c20253f8a8490337f7ed 838af4c0d5e3c67cb3525e C’est cette signature électronique qui est utilisée dans la blockchain. L’expéditeur signe chacune de ses transactions avec sa clé privée. Il est donc le seul à pouvoir transférer de l’argent depuis son propre compte. En plus d’authentifier l’auteur d’une transaction, la signature empêche la répudiation d’une transaction. Alice ne peut pas prétendre qu’un autre utilisateur a déclenché la transaction à sa place, donc elle ne peut pas l’annuler. Tom Signed: My Daddy One Handred Milllion 1o0,O0O,oo0 My birthday C’est un énorme gain de sécurité par rapport à la signature manuscrite, qui ne protège pas assez des fraudes. Aujourd’hui, contrefaire une signature, c’est à la portée d’un gamin de six ans. Enfin, disons plutôt sept.
  • 10. Date From To Amount 22/08/16 Alice Bob 10 $ Signed by Alice: 7d3cd42819cc4ad30ca78f92601dc265ed624665aea1bae6f1bf c76a8785310702abe99df99e5ecf4fe991c20253f8a8490337f7ed 838af4c0d5e3c67cb3525e 27/08/16 Alice Charlie 10 $ Signed by Alice: d30ca78f92601dc265ed624665aea1bae6f1bfc76a8785310702a be99df99e5ecf4fe991c20253f8a8490337f7ed838af4c0d5e3c67 cb3525e Bien, maintenant les transactions sont authentifiées, mais on n’est pas encore sûrs qu’elles soient légitimes. Si Alice ajoute une transaction au registre, qui dit qu’elle dispose de l’argent qu’elle transmet ? Qu’est-ce qui l’empêche d’envoyer de l’argent imaginaire ? Date From To Amount Alice’s Balance : 20$ 22/08/16 Alice Bob 10 $ 27/08/16 Alice Charlie 10 $ Alice’s Balance : 0$ Si vous avez fait un tout petit peu de compta, vous savez comment ça marche : en rejouant les transactions dans l’ordre, on peut calculer le solde d’un compte. Si Alice avait 20$ au début, après deux transactions de 10$, elle n’a plus rien. Si elle envoie une nouvelle transaction, elle sera refusée. En pratique, chaque noeud du réseau doit faire ce calcul pour être en mesure de valider une transaction. Date From To Amount Alice’s Balance : 20$ 22/08/16 Alice Bob 10 $ 27/08/16 Alice Charlie 10 $ Alice’s Balance : 0$ Je vous ai dit : il faut rejouer les transactions dans l’ordre. Eh oui, mais dans quel ordre ? On ne peut pas faire confiance à la date indiquée par l’expéditeur, parce que rien ne l’empêcherait d’envoyer une transaction antidatée ou post-datée. Donc cette date, elle ne sert à rien. Et on ne peut pas non plus se fier à la date à laquelle une transaction a été reçue dans un noeud, parce que cette date varie significativement dans un réseau peer-to-peer. Deux transactions envoyées au même moment peuvent arriver dans un ordre différent dans deux noeuds du réseau.
  • 11. Date From To Amount Alice’s Balance : 10$ 22/08/16 Alice Bob 10 $ 22/08/16 Alice Charlie 10 $ Regardez, dans cet exemple, Alice n’a que 10$ en banque. Elle a dépensé tout le reste pour s’acheter des bonbecs. Elle va pourtant réussir à dépenser 20$. Comment ? Il lui suffit d’envoyer deux fois ces mêmes 10$ à deux personnes différentes, Bob et Charlie, au même moment. Alice Bob Charlie 10$ 10$ On appelle cette arnaque la « double dépense ». En fonction de la propagation dans le réseau peer-to-peer, chaque noeud accepte une transaction (la première qu’il a reçue) et refuse l’autre. Il est donc tout-à-fait possible que Bob et Charlie soient tous les deux convaincus d’avoir reçu une transaction légitime.
 
 Il va donc falloir trouver une astuce pour mettre tout le monde d’accord sur l’ordre des transactions. Et pour mettre tout le monde d’accord, il existe une technique imparable : C’est de montrer une photo de chaton. Là, normalement, tout le monde dit: « qu’il est mignon » en oubliant ses désaccords. Sauf que, désolé de vous décevoir, mais les noeuds d’un réseau Peer-to-peer n’aiment pas les chats. On va donc devoir trouver un autre moyen.
  • 12. Proof-of-work Consensus Ce qui nous amène à la preuve de travail. Je vous rappelle le besoin : mettre d’accord tous les noeuds d’un réseau sur un ordonnancement de transactions. Mettre d’accord, ou trouver un consensus, c’est un problème courant dans les systèmes distribués. Il y a plusieurs algorithmes pour y parvenir, dont la preuve de travail. 13:20 A Là, je vais avoir besoin de 5 minutes de votre attention. L’idée de la preuve de travail est simple : on groupe les transactions dans des blocs. Chaque bloc référence le précédent. Il n’y a donc qu’une seule suite de blocs, une seule chaine de blocs. Cette chaine est répliquée dans tous les noeuds du réseau. Donc si la transaction F est dans le block 21 (celui du milieu), et que la transaction E est dans le block 22 (le dernier), alors tout le réseau, qui partage la même chaine, s’accorde sur le fait que la transaction E est postérieure à la transaction F. Donc on a ordonné les transactions. Avant de finir dans un bloc, les transactions sont Petite précision de vocabulaire : les transactions finissent bien dans un bloc, et non pas au bloc, ce qu’on ne souhaite à personne, pas même une transaction financière.
  • 13. Alors, comment on crée un bloc avec ces transactions en attente ? Eh bien les noeuds du réseau essaient tous de créer un nouveau bloc en même temps. Pour savoir lequel de ces blocs sera considéré comme légitime (parce qu’il ne peut y en avoir qu’un), chaque noeud lance deux dés. Le premier noeud qui fait un double 6 gagne le droit de publier son bloc local sur le réseau. Eh oui, la blockchain, c’est un peu des ordinateurs qui jouent au Yams. Le bloc gagnant sera répliqué dans tous les autres noeuds, et toutes ses transactions seront considérées comme légitimes. Et la chaine publique s’allonge Mais pour être exact, les noeuds d’une blockchain ne jettent pas deux dés, ils en jettent une tétrachiée. 0.000000000000000000000918 Sur la blockchain Bitcoin, la probabilité actuelle de créer block gagnant est de 9,18 fois 10 puissance moins 22. C’est bien un nombre tout petit, avec 21 zéros après la virgule. D’où vient cette probabilité ? Je vous explique.
  • 14. Hash 00000000013e10b8dc7fb51fcad87e8c Previous Block Id 000000000c264d660980cbc7ad787e0c Transactions 06f416de4154b07f15ec01e3b1059069 4451f28b863eaf98338843e04f5930b1 cc4a86a07c1db76025ffcf023db27493 ee45412f9fbcbd034da8c4fa5f58f507 Random number ece85ed8e22c264ce2746538a66e2352 sha256 sha256 Au lieu de jeter des dés, un noeud utilise une fonction de hachage. Fonction de hashage, vous connaissez ? checksum, md5, sha-1 ? Une fonction non réversible qui calcule une signature courte pour une chaine de caractères. Dans la blockchain, on hashe l’identifiant du bloc précédent, les identifiants de transaction du bloc qu’on essaient de former, et une chaine aléatoire. Et ça forme une chaine de chiffres et de lettres. Bref : Un noeud gagne le droit de diffuser son bloc si le hash qu’il forme (un double sha-256) comporte un grand nombre de zéros dans ses premiers chiffres. Gagner Block 20 Fact B Fact D Fact E Block 21 Fact C Fact F Fact H Block 22 Fact E Fact G Fact I Block 23 Fact H Fact J Fact K 10 min 10 min 10 min Dans toute la blockchain, il se forme un seul bloc toutes les 10 minutes environ. D’ailleurs, le nombre de zéros nécessaires pour avoir un hash gagnant s’ajuste pour que le temps de formation d’un nouveau bloc reste constant même quand le nombre de noeuds varie. Pour récompenser les noeuds qui participent à cette grande loterie, le système leur attribue une somme fixe à chaque fois qu’ils forment un bloc. C’est d’ailleurs comme ça que la cryptomonnaie se crée. Avant le premier bloc, il n’y en avait pas, et le montant total augmente toutes les 10 minutes. Mine Comme chercher des blocs rapporte de l’argent si on a de la chance, on a appelé ça miner. Mais à l’inverse des vraies mines, où ce sont de jeunes enfants réduits en esclavage qui creusent, le minage sur la blockchain est effectué par des machines, en général majeures. La monnaie virtuelle se crée donc en respectant des droits de l’homme virtuel.
  • 15. Block Id 00000006e13e10b8dc7fb51fcad87e8c Previous Block Id 000000000c264d660980cbc7ad787e0c Transactions 06f416de4154b07f15ec01e3b1059069 4451f28b863eaf98338843e04f5930b1 cc4a86a07c1db76025ffcf023db27493 ee45412f9fbcbd034da8c4fa5f58f507 Block Id 000000001cc6bfb0722a7cf823b7edfd Previous Block Id 00000006e13e10b8dc7fb51fcad87e8c Transactions a7416c3c7850993841175eca72738805 9d1bbdc2e54904d2e4b5afc858c39c59 Au passage, le hash d’un bloc est utilisé comme identifiant de ce bloc. Et je vous l’ai dit, chaque bloc connait l’identifiant du bloc précédent. Grâce à ce système, si Alice veut remplacer une transaction existante dans la chaine, ça ne va pas être pas de la tarte. Block Id 000000017a071086c758925826cbead0 Previous Block Id 000000000c264d660980cbc7ad787e0c Transactions 06f416de4154b07f15ec01e3b1059069 ce38d4d9021bd4887faa9b36c35f0444 cc4a86a07c1db76025ffcf023db27493 ee45412f9fbcbd034da8c4fa5f58f507 Block Id 00000000595e794e916b90f6a7589029 Previous Block Id 000000017a071086c758925826cbead0 Transactions a7416c3c7850993841175eca72738805 9d1bbdc2e54904d2e4b5afc858c39c59 Non seulement elle devra réussir à trouver un identifiant de bloc valide avec sa nouvelle transaction, mais comme les blocs suivants référencent l’ancien identifiant du bloc, elle devra aussi remplacer tous les blocs suivants, et donc trouver des identifiants gagnants pour chacun. Et si former un bloc est déjà très coûteux, former plusieurs blocs à la suite est tout simplement hors de prix. Peer-to-Peer
 Network Asymmetric
 Cryptography Proof-of-work Consensus + + = Blockchain Et voilà, c’est tout. En assemblant ces trois technologies, Satoshi Nakamoto a effectivement créé un réseau transactionnel distribué et sûr, sans qu’il soit nécessaire de faire confiance à qui que ce soit dans le réseau. Et ça, c’est formidable.
  • 16. Parce que même si le réseau contient un mouton noir, un pirate ou un espion de la NSA qui souhaite voler de l’argent, il n’a aucune chance. Tenez, disons que ce mouton noir, c’est Alice. Vous allez me dire, cette Alice qui avait l’air toute mignonne au début, elle prend l’envergure d’un criminel international, un Kim Jong Un du piratage. Ca m’a intrigué aussi, et j’ai mené mon enquête. Qui est vraiment Alice, et pourquoi est-elle si méchante ? Eh bien, j’ai le plaisir de vous dire qu’au terme d’une recherche portant sur des milliers de comptes Facebook à travers 5 continents, j’ai retrouvé Alice. Et pour la première fois, en exclusivité mondiale, Alice s’appelle en réalité Sébastien, et il vit chez sa mère à Chemiré-le-Gaudin dans la Sarthe. Et sa vie n’est pas rose. Chaque fois que Sébastien arrive à former un bloc qui contient une transaction frauduleuse, 10 minutes plus tard, ce bloc est remplacé par un autre bloc, un vrai, et la transaction frauduleuse est effacée. Satoshi Nakamoto, le vrai, a calculé que le réseau reste sûr tant que la moitié des mineurs jouent franc jeu. C’est donc extrêmement coûteux, et en pratique infaisable, de casser une blockchain. C’est le nombre qui crée la sécurité, un peu comme dans une assurance : vous ne connaissez pas les autres membres, mais c’est pourtant grâce à eux que votre voiture est réparée. 19:30
  • 17. Part 2/4 Applications Bien, vous avez compris comment ça marche maintenant ? C’est pas si compliqué. La question qui vient tout de suite après, c’est : à quoi ça sert ? Eh bien, sur la base de la blockchain, on peut imaginer plein de services. Des services qui suppriment les intermédiaires de confiance, on dit de services qui font de la désintermédiaiton. La plus célèbre de ces applications, c’est bien évidemment Bitcoin : un système financier entièrement décentralisé, sans banques ni terminal de paiement. Ca marche tellement bien qu’on peut payer des vrais objets avec des bitcoins : son café, des ordinateurs, de la drogue. Les transactions sont bon marché, et intraçables - c’est donc un moyen idéal pour frauder le fisc. Smart Contract Mais il y a plus. La blockchain permet aussi de distribuer des petits programmes avec une mini base de données qui sont répliqués dans chaque noeud. On appelle ça des contrats malins. Je vous donne un exemple : Alice - vous vous souvenez d’Alice ? - choisit donner 10$ à Bob que Bob ne pourra utiliser que le jour de son anniversaire. Elle codifie cette condition dans un programme qu’elle accole à sa transaction à Bob. L’exécution de ce programme est garantie par la blockchain, il est donc aussi sûr qu’un contrat en bonne et due forme - même pas besoin de tribunal pour le faire appliquer puisqu’il ne peut pas y avoir de litige. Le code, c’est la loi.
  • 18. Avec un smart contract, on peut par exemple certifier des documents. Parce que de nos jours, un coup de Photoshop suffit à falsifier un bulletin de paye, donc il faut bien trouver mieux. Une startup nommée BitProof offre un service équivalent à celui d’un acte notarié : envoyez-leur n’importe quel document et quelques bitcoins en paiement, et ils vous renverront le document signé, tamponné, certifié conforme. En prime, ce document sera embarqué dans un block, donc daté, et recopié sur tous les noeuds de la blockchain - donc ultra redondé. Votre notaire de famille, qui avait déjà pris un coup dans l’aile à cause de Montebourg et Macron, ne va plus s’en relever. Un smart contract permet d’enregistrer la propriété d’un bien, et aussi éventuellement de la programmer. On appelle ça la smart property. Imaginez que la serrure de votre appartement soit branchée sur la blockchain. Si vous voulez louer votre appartement pour un week-end, plutôt que de faire appel à airbnb, publiez un smart contract avec un système d’enchères. Le gagnant gagnera une clé unique, non répudiable, qu’il pourra par exemple télécharger sur son mobile, et qui lui garantira l’ouverture de la porte pendant la durée de la location - pas avant, pas après - et qui vous garantira le paiement de la location. C’est le chemin qu’explore slock.it, une startup allemande. Eh bien, vous n’avez plus qu’à casser un carreau, rameuter les voisins, et finir arrêté comme le seule homme sur terre qui s’est cambriolé lui-même.
  • 19. Si on pousse l’idée un peu plus loin, on peut même imaginer un service de covoiturage sans autorité centrale - en clair, un Blablacar sans Blablacar. C’est l’idée qu’a suivi La Zooz, une startup israélienne. Leur levée de fonds n’a pas abouti, mais ils ont quand même gardé le nom La Zooz, parce que c’est une des meilleurs noms de produits depuis bien longtemps. Les transactions d’une blockchain, ça peut aussi être des paris. Le site Augur propose une plate-forme de prédiction collaborative et décentralisée - en fait, une plate-forme de paris en ligne où n’importe qui peut être bookmaker. Vous voulez miser sur le prochain président des Etats-Unis ? C’est possible. Pour l’instant, Augur utilise de la monnaie de singe - le site est en bêta. Et au vu des cotes qui ressortent, espérons que les parieurs sont aussi des bêtas, sinon on va pas rigoler longtemps avec nos blockchains. La blockchain permet aussi la création de sociétés sans dirigeants. Eh bien oui, qu’est-ce que c’est qu’un manager, sinon un intermédiaire entre un actionnaire et un grouillot ? La DAO, c’est ça : une Decentralized Autonomous Organization, un groupement de capital risqueurs, une plate-forme de crowdfunding un peu comme Kickstarter. Ses membres ont versé pour 150 millions de dollars dans ce fonds, et les règles d’investissement sont régies par un smart contract. Mais on va en reparler.
  • 20. Enfin, si vous cherchez un espace de stockage, plutôt que de mettre vos photos de famille sur une clé USB que vous perdrez de toutes façons, pourquoi ne pas profiter d’un cloud décentralisé et crypté, un cloud formé par des individus comme vous et moi, qui louent la partie inutilisée de leur disque dur ? C’est le pari de storj.io, et ça marche sur la blockchain. En fait, je pourrais en lister encore des tonnes, des idées de services basés sur la blockchain. Il en sort un nouveau chaque jour. On les appelle des Decentralized Apps, ou dApps. Ces applis ne s’exécutent pas sur votre smartphone, mais dans la blockchain, qui est du coup une espèce de super-ordinateur distribué. StudBook Et je ne résiste d’ailleurs pas à la tentation de vous parler de cette dApp fabuleuse qui s’appelle Studbook, et qui se définit comme un Tinder pour les chevaux sur la blockchain. Que vous cherchiez un Mustang ou une jument Ardennaise, Studbook est là pour vous, et les mensurations sont garanties par smart contract. Je me demande juste comment les chevaux arrivent à faire un glisser vers la gauche avec leurs sabots quand ils likent…
  • 21. Part 3/4 In Practice Vous l’avez vu, la blockchain permet en théorie de faire des choses merveilleuses. Mais et nous, est-ce qu’on peut changer le monde avec ? Est-ce que au-delà du buzz, vous et moi, on peut effectivement développer des applications sur la blockchain ? Eh bien on a voulu vérifier. 25:45 Alors, pour développer des dApps, on n’utilise en général pas la technologie BitCoin, qui a un langage de programmation trop rudimentaire. La plupart des dApps que je vous ai présentées utilisent plutôt une autre implémentation de la blockchain qui s’appelle Ethereum, et qui est aussi open-source. Dans Ethereum, les smart contracts se programment grâce à un langage proche du JavaScript, qui s’appelle Solidity. Les blocs, sur Ethereum, sont minés toutes les 10 secondes, et non pas toutes les 10 minutes, et la monnaie s’appelle l’Ether, ou ETH. Zero Dollar Homepage Alors comme on voulait mettre les mains dans le cambouis, on s’est lancés dans le développement d’une dApp. On a choisi de construire un serveur de publicité pour une de nos pages web, qui rémunère des contributions open-source par de la publicité gratuite. En référence à un phénomène des années 2000, on a appelé ça Zero Dollar Homepage.
  • 22. Le principe est le suivant : lorsqu’un contributeur ouvre une pull request sur l’un de nos repositories open-source sur Github, un bot commente sa pull request pour le remercier et l’inciter à publier son annonce sur ZeroDollarHomepage. En suivant le lien du commentaire, le contributeur arrive sur une page sur laquelle il doit s’identifier avec son compte GitHub, et sur laquelle il peut uploader une image de son choix. Cette image se retrouve sur marmelab.com/zerodollarhomepage pendant 24h. Ca offre une publicité gratuite aux contributeurs de projets open-source. C’est un bon cas d’étude pour la blockchain : comment implémenter cet ad server sans ad server, c’est-à-dire sans autorité centrale ?
  • 23. L’architecture choisie est la suivante : on a un bot qui reçoit les hooks de merge GitHub et qui commente dessus. Ensuite, une seconde application, l’appli sur laquelle se connecte l’auteur de la PR, vérifie son compte Github et transfère l’image uploadée sur un CDN. Elle inscrit aussi l’identifiant de l’image dans le smart contract, que vous voyez au milieu. Une troisième application regarde toutes les 24h dans le smart contract pour savoir quelle est la prochaine publicité à afficher. Elle l’utilise pour remplacer l’image en cours, et tous les visiteurs la verront ainsi pendant 24h. La dernière fois que j’ai donné cette conférence, j’ai perdu deux trois personnes dans le public, notamment une jeune fille qui se fait appeler Sophie Fonfec (véridique). Si vous venez de décrocher, pas de panique, c’était le seul slide pour les geeks. Enfin non, j’en ai encore un. https://github.com/marmelab/ZeroDollarHomePage Ca, c’est le code de notre smart contract : c’est un peu comme une classe qui peut contenir des données (dans notre cas, la liste des pulls requests réclamées) et des méthodes (par exemple, une méthode pour vérifier et ajouter une pull request). Tout ce code est open-source, donc vous pourrez le regarder en détail après la conférence si vous le souhaitez, ne vous abimez pas les yeux maintenant. On peut voir un smart contract comme une mini-API avec sa propre base de données. C’est écrit dans ce langage, Solidity. L’étape d’après, c’est de déployer le contrat dans un noeud.
  • 24. Rassurez-vous, vous n’aurez pas besoin de savoir faire un noeud pour déployer un contrat dans un noeud. J’en vois au fond de la salle qui sont soulagés. Tout va bien. Ethereum procure une ligne de commande qui permet de faire ça très bien. Pour tester notre contrat d’ad server, on l’a chargé sur une blockchain privée, montée sur nos propres serveurs, et pas connectée à l’extérieur. Le contrat s’est répliqué automatiquement sur tous les noeuds, et on a pu appeler ses méthodes depuis un serveur en node.js. On a eu pas mal de difficultés et de mauvaise surprises - je vous en donne deux exemples. Asynchronous
 Responses Quand on appelle une méthode d’un contrat qui modifie les données, la réponse ne vient pas tout de suite. Il faut d’abord que la transaction soit « minée » par un bloc du réseau. En pratique, la réponse à un appel en écriture, c’est un numéro de transaction, comme un récépissé de la préfecture quand vous faites une demande de passeport. Pour avoir la réponse, il faut appeler la préfecture toutes les semaines, et se fader la petite musique d’attente. Bienvenue à la préfecture du 93. Toutes nos lignes sont actuellement occupées. Veuillez renouveler votre appel dans six mois. Avec la blockchain, c’est pareil : il faut interroger le réseau (toutes les 10 secondes à peu près) jusqu’à obtenir confirmation de l’enregistrement de la
  • 25. Immutable Code Autre surprise: le code qu’on déploie sur une blockchain est immutable. Il est là pour toujours. S’il contient un bug, on ne peut pas le corriger - il faut déployer un autre contrat, en n’oubliant d’ailleurs pas d’y inclure un moyen pour récupérer les données du contrat original - dans notre cas, la file des pull requests. L’ancien contrat restera à jamais dans la blockchain, avec ses bugs, et les transactions passées aussi. Je peux vous dire que ça ne facilite pas le debug. L’étape d’après, c’est le passage d’une blockchain privée, qui est comme un serveur de test, à la blockchain publique, la vraie blockchain Ethereum, qui contient près de 6 500 noeuds. Et pour ça, il faut de l’Ether Alors pas de l’éther pour le sniffer, on est des bad boys mais pas à ce point-là quand même. Il faut de l’ether, la cryptomonnaie d’Ethereum.
  • 26. Eh oui, parce que les noeuds du réseau n’exécutent pas une transaction à moins qu’on l’accompagne d’un peu d’Ether pour dédommager du temps de calcul. Pour obtenir de l’Ether, vous pouvez soit l’acheter sur une place de marché, où son cours varie selon l’offre et la demande, soit la miner. Nous, on a testé le minage : on a fait tourner une grosse instance EC2 sur Amazon, et au bout de 3 jours elle a réussi à former un block - le bloc que vous voyez affiché ici. On a obtenu 5 Ether en récompense. Ca nous a coûté un peu plus de 50$, sachant que le prix de revente de ces 5 Ether était d’environ 55$ à l’époque. D’après nos calculs, ces 5 Ethers étaient suffisants pour faire tourner notre ad server ZeroDollarHomepage pendant 7 ans. Et après pas mal de déconvenues, on a réussi à déployer notre contrat sur Ethereum et à l’appeler depuis nos serveurs en Node.js. Et ça n’a l’air de rien, mais je peux vous dire qu’on était content d’y arriver.
  • 27. Ce que vous voyez, c’est l’adresse de notre contrat, ainsi que toutes les transactions qui y sont liées. Tout est public sur Ethereum : tout le monde peut voir toutes les transactions, même si elles sont anonymes - d’une clé publique à une autre. Il aura fallu 4 semaines à 2 développeurs chevronnés pour arriver tant bien que mal à faire marcher notre contrat. Les développeurs ont lutté avec une doc pas à jour, ils ont fait face à des bugs impossibles à localiser et à qualifier, ils se sont arrachés les cheveux à cause de mises à jour intempestives qui faisaient qu’un code qui marchait la veille ne marchait plus le lendemain. 33:10 Part 4/4 The Truth Ce qui m’amène à la quatrième et dernière partie de mon exposé : la vérité sur la blockchain. Parce qu’en développant notre propre dApp, on a compris tout un tas de choses qu’on ne lit pas sur Internet. Tout un tas de trucs pas vraiment à l’avantage de la blockchain.
  • 28. Immature Technology D’abord, la technologie n’est pas prête. On en a fait les frais. Les exemples de code qu’on trouve sur Internet ne marchent pas. Les développeurs en bavent tellement qu’il demandent à changer de projet. Imaginez que je vous demande de construire une tour de 30m de haut, en vous donnant seulement des legos comme matériau de construction. Ca a l’air rigolo au début, et puis vous vous dites que de bonnes vielles briques auraient quand même mieux fait l’affaire. Eh bien, la blockchain, c’est pire. Immature Technology En plus, on n’est pas capable d’estimer le temps d’implémentation d’une fonctionnalité simple. La techno progresse vite, mais pour l’instant, difficile de parier sur une technologie aussi immature.
  • 29. No Outside Contact D’autre part, les smart contracts sont en fait assez stupides. Vous l’avez vu dans notre schéma d’architecture, on ne peut pas leur demander grand chose. C’est qu’ils ne peuvent pas communiquer avec le monde extérieur - ils sont contraints à la blockchain pour des raisons de sécurité. Ca veut dire pas d’appels à des APIs externes. Par exemple, pas d’appel à un service d’authentification, comme l’OAuth de GitHub. Donc pour faire marcher une dApp, il faut pousser toutes les données extérieures dans le smart contract. Vous imaginez la complexité ? Ca explique pourquoi les dApps se restreignent à des cas d’utilisation très simples, ou à des petites parties d’applications. It’s complicated Les concepts de la blockchain sont très complexes. J’ai gratté la surface pour essayer de vous donner l’impression de comprendre, mais en vérité vous n’y comprenez toujours que pouic, croyez-moi. Essayez donc de lire un article technique sur la blockchain pour voir. C’est un peu comme essayer de résoudre un Rubik’s cube à 4 dimensions. 80 pièces, 216 faces, 10 puissance 120 combinaisons. [gros yeux]
  • 30. It’s complicated Le résultat, c’est qu’à moins d’être un génie, vos dApps vont contenir des bugs. Plein de bugs. On estime que le taux de bugs dans les smart contracts est environ d’un bug toutes les 10 lignes. Des smart contracts qui tournent en production. Je peux vous dire que les hackers se frottent les mains. Not Secure Ca veut dire que la blockchain ne résout pas encore le problème de la sécurité. Le nombre de vols et de scandales sur des blockchains grimpe chaque jour. Tenez, le dernier en date : Je vous ai parlé un peu plus tôt de la DAO, vous vous souvenez ? BUGGY Le kickstarter décentralisé. Eh bien un hacker a dérobé pour 50 millions de dollars d’Ether sur ce smart contract. Et le pire, c’est que le hacker ne peut pas être inquiété. En toute bonne foi, il s’est révélé au public, et il a déclaré qu’il a respecté le mantra de la blockchain : le code c’est la loi. Si le contrat contenait un bug, c’est la faute de son auteur. Donc le hacker n’était pas responsable.
  • 31. Not Secure C’est bien embêtant, car le manque de sécurité est ce qui nous motive à faire appel à des intermédiaires de confiance. Si en supprimant les intermédiaires, on ne garde pas la sécurité, eh bien la blockchain ne sert à rien. Developer Power Et même si on écarte les hackers, mettre la loi dans les mains des développeurs, je ne suis pas sur que ce soit une si bonne idée. Dans notre imaginaire collectif, un monde gouverné par des machines, ce n’est pas nécessairement le paradis. C’est que les développeurs sont des gens irresponsables - je dis ça sans méchanceté, c’est juste qu’on ne les forme pas à prendre des décisions politiques ou sociales pour le bien commun. N’en jetez plus, la blockchain est une techno mal gaulée, vous avez compris. A ce stade, vous vous dites que vous auriez probablement dû aller voir l’autre Eh bien détrompez-vous : voilà le flux de la caméra de surveillance de la salle d’â côté. Ils ronquent tous comme des loirs. Non croyez-moi, vous êtes bien mieux ici, et en plus je n’en ai pas tout-à-fait fini avec la blockchain.
  • 32. Waste Je vous ai dit que les noeuds des mineurs se battent pour créer un bloc toutes les 10 minutes. En pratique, ces noeuds sont des fermes de serveurs surboostés, qui tournent à plein régime… pour mettre à la poubelle le résultat de leurs calculs dans 99,9% des cas - Eh bien oui, puisqu’il n’y a qu’un noeud qui gagne toutes les 10 minutes. Ah et cette stratégie de réplication du registre, vous vous souvenez ? Chaque noeud contient la copie intégrale de toutes les transactions opérées sur le réseau depuis le jour 1, celui qu’on retient, Celui qui s'efface quand tu me remplaces. Eh oui, j’ai une fille de 9 ans. Waste Donc quand je démarre un noeud, je dois d’abord télécharger et vérifier l’intégralité des transactions depuis le premier jour - ça représente des dizaines de Giga-octets. Vous voyez le gâchis de stockage, de cpu, et donc d’électricité. A l’heure où on s’inquiète du réchauffement climatique, les fermes de mineurs sont en fait des radiateurs géants.
  • 33. Very Expensive Et qui paye pour toute cette énergie gâchée ? Les utilisateurs de la blockchain, pardi. Chaque transaction doit s’accompagner d’une petite commission qui va au mineur qui arrive à former un bloc avec. Pour les transferts d’argent avec Bitcoin, comptez environ 11 centimes par transaction - c’est loin d’être négligeable. Et si Ethereum était une boulangerie, la baguette y couterait 50 000 euros pièce. Elle est bonne cette baguette, je ne dis pas le contraire, mais je me demande seulement si ça valait le coup d’étouffer ta grand-mère avec un oreiller pour hériter tu vois. Extremely volatile Par ailleurs, la valeur d’une cryptomonnaie dépend du montant en vraie monnaie que des acheteurs sont prêts à dépenser pour en acquérir - c’est la loi de l’offre et de la demande. Aujourd’hui, un bitcoin, c’est environ 600$. Mais on voit des écarts de valeur de 100% en quelque mois. Si vous devez monter un business sur la blockchain, il faudra bien planifier vos dépenses sur plusieurs années… mais comment faire sur un marché si volatile ?
  • 34. No Business Model Et puis quand on y réfléchit bien, il y a un vrai paradoxe : si la blockchain supprime les intermédiaires, qui peut gagner de l’argent avec ? Les business model les plus performants, les plus novateurs, sont ceux qui créent une position d’intermédiaire - pensez à Google, qui est devenu notre intermédiaire avec le web. Tous les exemples de services dont je vous ai parlé peuvent très bien exister sans éditeur, puisqu’il s’agit uniquement de faire tourner des programmes sur une blockchain. Donc c’est bien pour les individus, mais si les sociétés n’y trouvent pas de vrai intérêt, il n’y aura pas d’investissement significatif sur la blockchain. Slow Ah, et j’ai gardé le meilleur pour la fin, si on la compare au technos web habituelles, la blockchain, c’est affreusement lent. Il faut attendre au moins un bloc avant d’avoir la confirmation d’une transaction - soit 10 secondes sur Ethereum ou 10 minutes sur Bitcoin. En pratique, les spécialistes conseillent plutôt d’attendre 6 blocs (soit 1 minute sur Ethereum, 1 heure sur Bitcoin) pour des raisons de sécurité. Alors comparés aux délais financiers (où les compensations se font en général à J+1), c’est un progrès, mais par rapport au reste du monde du web, 10 minutes pour valider un formulaire de commande, c’est une grosse régression. Préparez-vous à regarder des spinners toute la journée, c’est le genre d’expérience utilisateur qu’offrent toutes les dApps. 40:45
  • 35. Conclusion Bien. C’est l’heure de conclure. Vous l’avez compris, se passer d’intermédiaires de confiance en se basant sur une communauté d’anonymes, c’est une idée révolutionnaire. Et si ça peut faire avancer le schimilblick, on se dit : pourquoi pas ? Mais mon opinion - et elle va à l’encontre de beaucoup de ce que vous pourrez lire par ailleurs - mon opinion, c’est que les coûts l’emportent encore, et de loin, sur les bénéfices. La blockchain, c’est une grosse usine à gaz. Et puis c’est aussi un passe-droit impossible à réguler et à sécuriser. En ce sens, la blockchain nous pousse vers une société ultra libérale. C’est un outil déshumanisé, qui considère l’empathie et Et comme on a une certaine expertise sur la blockchain, on nous a consultés pour plusieurs projets d’innovation qui se basaient sur cette technologie. En y regardant de plus près, 80% de ces projets devaient s’exécuter sur une blockchain privée, accessible uniquement à des tiers de confiance - vous voyez le paradoxe. Alors la blockchain, une fausse bonne idée ? Open Government Il y a un intermédiaire de confiance dont je n’ai pas parlé, et qui lui a vraiment besoin d’un coup d’innovation. C’est l’élu. Nos démocraties sont malades du clientélisme et de la professionnalisation de la vie politique. Le résultat, ce sont des gouvernants qui se disent incapables de changer la société, qui font des promesses sans les tenir, et des extrêmes qui montent. Et si on inventait un gouvernement décentralisé, où les engagements des élus seraient garantis par un contrat impossible à répudier ? Et si on rétablissait la confiance là où on en a le plus besoin, dans notre avenir ?
  • 36. Eh bien croyez-le ou non, mais ça existe. BitNation est un gouvernement décentralisé sur la blockchain. Il fournit des registres de naissance, des cartes d’identités, des cartes de paiement, ils financent même une agence spatiale. L’initiative est encore balbutiante, mais elle est là. Elle annonce la reprise de contrôle de notre futur collectif, sans nous défausser de notre responsabilité citoyenne sur des intermédiaires. La blockchain, c’est peut-être la relève de la démocratie déclinante, et rien que pour ça, je suis prêt à parier dessus. 43:20 Questions? François Zaninotto @francoisz marmelab Interested by 
 a developer position
 in Paris, Nancy or Dijon? 
 Apply at marmelab.com/jobs.