GODEBARGE ROSSAT Blockchain-Version-Finale
GODEBARGE ROSSAT Blockchain-Version-Finale
GODEBARGE Ferréol
ROSSAT Romain
EM Lyon Business School
15/12/2016
PRINCIPES CLES D’UNE APPLICATION BLOCKCHAIN
Remerciements
Introduction
La notion de transaction peut se définir de différentes manières. Elle peut être
considérée comme une opération commerciale ou boursière, un contrat, un accord, ou encore,
en informatique, une opération élémentaire de saisie ou de consultation d’information.
Plusieurs modèles existent de nos jours. Cependant, tous reposent sur certaines
caractéristiques : les deux ou plusieurs parties qui permettent de réaliser une transaction, et un
tiers de confiance, permettant de certifier la validité de cette transaction. Depuis la naissance
de la notion de propriété, plusieurs transactions étaient notées dans des registres, et ces
documents étaient la preuve physique de l’authenticité de la transaction. Puis l’utilisation de
monnaies fiduciaires, qui ne sont plus des pièces métalliques, mais des billets, ou du papier
possédant une certaine valeur autre que physique, oblige la société à se servir d’institutions
afin de garantir la valeur de ces nouveaux moyens de transaction. Ainsi, la confiance devient,
à travers le contrôle de ces institutions, une base fondamentale pour toute transaction.
L’internationalisation des transactions, dès l’après-guerre, implique de nouvelles
modalités de transactions, le nombre de transactions augmentant de manière exponentielle. Le
risque lié à l’authenticité des transactions s’accroit et de nouveaux tiers de confiance sont
nécessaires. A titre d’exemple, le système interbancaire SWIFT en 1977 ou l’OMC en 1995
ont été créés afin de réguler les transactions. Ces tiers de confiance doivent permettre une
sécurisation des transactions d’une part, ainsi qu’une fluidité qui serait la même pour les
acteurs économiques que s’ils agissaient sans institutions, ne générant donc pas de perte
économique éventuelle.
Avec des progrès technologiques de plus en plus pointus, notamment en cryptographie
et en gestion de réseaux, ce modèle pourrait être remplacé par un nouveau système. Il
pourrait, entre autres choses, supprimer le rôle du tiers de confiance. Cependant, ces progrès
technologiques ont été, pour de nombreuses personnes, la possibilité de remettre au goût du
jour une philosophie qui préexistait, prônant l’égalité par l’économie et la technologie
notamment. Ainsi, l’idéologie de cette nouvelle technologie, appelée Blockchain, est
l’héritière des idéologies « Cyberpunk », qui voient la technologie comme un moyen de
s’affranchir de contrôle humain inégalitaire.
Ce Projet de Fin d’Etudes a pour but de présenter le système de transactions basé sur
les Blockchains, et d’illustrer ce modèle à l’aide d’exemples concrets et innovants afin de
définir les nouveaux principes d’application de la blockchain pouvant s’appliquer à de
nombreux secteurs.
L’objet de cette partie est de présenter les blockchains d’une manière conceptuelle dans un
premier temps, avant de préciser ensuite les mécanismes techniques liés à cette technologie,
en s’appuyant sur la création de la première blockchain : celle du Bitcoin.
La Blockchain est une chaine de blocs de codes informatiques. Chaque bloc contient
des attributs relatifs à une ou plusieurs transactions (expéditeur, destinataire, montant…), ou
autres objets qui seront précisés ultérieurement. Il contient également des informations liées
au bloc prédécesseur sur le Blockchain, et il est encrypté, c’est-à-dire qu’il est sécurisé à
l’aide de procédés cryptographiques (algorithmes informatiques).
Lorsque les transactions récentes sont enregistrées, elles sont regroupées en bloc, et
chaque transaction sera validée par les « mineurs », qui vont analyser la chaîne de blocs
entière. Ci-dessous est présenté un schéma très général correspondant à l’ajout d’un bloc de
données transactionnelles sur le Blockchain.
Diffusion du bloc
dans les nœuds
du réseau
I.2.a. Introduction
Une pièce électronique est définie comme une chaîne de signatures numériques. Un
propriétaire peut transférer cette pièce de cette manière :
1) Vérifier et signer numériquement l’empreinte / hachage de la transaction précédente (1
et 1’)
2) Vérifier et signer numériquement la clé publique du nouveau propriétaire (2)
Ces signatures sont ajoutées en fin de transaction (3). Les bénéficiaires ont la possibilité de
vérifier la chaîne.
des nœuds a établi cet historique (condition qui valide le bloc de transactions), et ceci pour
chaque temps de transaction.
Le concept des transactions repose en réalité sur la cryptographie asymétrique. Cette dernière
lie deux éléments clés : la clé publique et la clé privée. Elles permettent de garantir l’intégrité
des données transmises en chiffrant les données envoyées, ainsi que l’authentification de
l’origine de la transaction.
Lorsque quelqu’un se lance dans le processus de création d’une transaction, il génère, à l’aide
d’un logiciel dédié, une clé publique et une clé privée. La clé privée n’est transmise à
personne et la clé publique est, quant à elle, disponible pour tout le monde.
Présentation succin du concept :
La cryptographie asymétrique repose principalement sur les « fonctions à sens unique », fonctions
mathématiques qui sont quasiment impossible à inverser (cela demande énormément de puissance et de temps de
calcul). Elles ont pour particularité d’avoir cependant une brèche, c’est-à-dire un moyen, pour celui qui l’a
construit, d’inverser la fonction. Cette brèche est appelée clé privée, et la fonction à sens unique, clé publique.
Fonctionnement :
Imaginons que A veuille pouvoir recevoir des messages indéchiffrables de tous sauf lui, de la part de n’importe
qui.
A envoie ainsi à tous la fonction à sens unique (clé publique) et garde pour lui-seul la fonction de décodage. B
reçoit le message et applique la fonction à sens unique, avant d’envoyer le résultat à A.
A a la capacité de décoder le message de B grâce à la fonction de décodage (clé privée). Le message était donc
bien codé pour l’ensemble du réseau, avant d’arriver à A. Par ailleurs, A peut, après avoir déchiffré le message,
envoyer à B une information qui permet d’être sûr que le message a bien été déchiffré. Cette information, c’est
l’identité du message, appelé « hash » et qui sera explicité dans les parties suivantes.
- De chiffrer un message
- D’authentifier l’expéditeur
Plusieurs fonctions à sens unique existent, et certaines sont plus efficaces que d’autres. Il faut s’assurer que ces
fonctions soient suffisamment « sécurisées » (i.e. dont la brèche est difficile à trouver).
- Etape 1 : A possède la fonction à sens unique (ici « fonction ») et la brèche (fonction de décodage). Il
transmet ensuite à B la fonction.
- Etape 2 : B écrit un message, et, à l’aide de la fonction, il chiffre le message, avant de l’envoyer à A. A
utilise donc sa fonction de décodage pour le déchiffrer.
- Etape 3 : A calcule le « hash » (i.e. identité propre à chaque donnée) du message et l’envoie à B. B a
donc la preuve que A a bien réussi à déchiffrer son message et qu’il est donc bien à l’origine de la
fonction à sens unique.
I.2.c L’horodatage
réseau peer-to-peer distribué, la preuve donnée par un message sur un forum Usenet ne
convient pas. Il faut donner une preuve de l’authenticité d’un bloc suffisante. La preuve de
travail est donc l’algorithme permettant le consensus de l’ensemble des nœuds du réseau sur
le bloc qui fait foi.
Ainsi, afin d’être authentifié, une transaction doit être intégrée à un bloc contenant
d’autres transactions. La validation de ce bloc est réalisé par le procédé cryptographique
appelé preuve de travail. Ce procédé a pour but de trouver un double hash en SHA-256
correspondant au bloc en cours, à partir du bloc qui le précède. Un hash correspond à
l’identité, appelée également empreinte d’un fichier. Un bloc possède donc un unique hash.
SHA-256 est une fonction qui, à chaque donnée, associe un unique nombre, qui est l’identité
de ces données. Le moindre bit modifié dans les données de départ change le résultat de la
fonction SHA-256.
Ainsi, afin d’ajouter un nouveau bloc à la chaîne de blocs, les nœuds participant à la
création de la chaîne (les mineurs) doivent lancer un procédé cryptographique : le calcul du
hash du bloc. Ce procédé a pour but de convertir des données en une suite pseudo-aléatoire de
chiffres. Il est impossible de modifier les données en entrée de l’algorithme pour obtenir un
résultat précis. Ceci est dû au caractère aléatoire de l’algorithme.
Voici comment marche un algorithme de Hachage : c’est une fonction mathématique
qui, à partir de données (par exemple, un fichier Word), retourne une chaîne de caractères (64
dans le cas du Bitcoin). A un fichier correspond un unique hash, une unique empreinte, et il
est impossible de retrouver l’information contenue dans le fichier à partir de son hash. Ainsi,
la preuve de travail consiste à demander aux mineurs de calculer le hash des données
constituées du bloc en cours de création (contenant l’empreinte / hash du bloc précédent), des
données du mineur et d’un nombre aléatoire, afin de trouver un hash qui commence par un
nombre de zéros défini.
Dans l’exemple suivant, la complexité (nombre de zéros en début de hash requis pour
attribuer un hash à un nouveau bloc) est de 10. Le schéma ci-dessous montre l’activité des
mineurs pour l’ajout d’un bloc sur la blockchain.
Ainsi l’algorithme proposé est le suivant :
1) Calcul de :
𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛 ℎ𝑎𝑠ℎ (𝐵𝑙𝑜𝑐, 𝑖𝑛𝑓𝑜𝑠 𝑚𝑖𝑛𝑒𝑢𝑟, ℎ𝑎𝑠ℎ 𝑏𝑙𝑜𝑐 𝑝𝑟é𝑐é𝑑𝑒𝑛𝑡, 𝒏𝒃𝒓𝒆 𝒂𝒍é𝒂𝒕𝒐𝒊𝒓𝒆 𝟏) < 𝐶
Afin d’arriver au nombre de zéros requis, le mineur doit réaliser un certain nombre de
fois le calcul du hash de la combinaison bloc + informations liées au mineur + nombre
aléatoire correspondant à l’essai. Une fois que le résultat donne le hash avec la difficulté
requise, le mineur qui a réussi l’opération envoie cette information au réseau distribué.
Si plusieurs mineurs arrivent à un résultat à un temps très proche, une nouvelle
branche pourra être créée :
Dans ce schéma, on peut imaginer que deux mineurs M1 et M2 ont trouvé un résultat
satisfaisant pour le 4ème bloc de cette chaîne, M1 était en avance sur M2 de quelques
millièmes de secondes. L’information de la réussite de M1 n’est pas parvenue à M2 à temps,
et M2 a trouvé également une solution (un autre hash). B4 représente le bloc miné par M2 et
B4 bis, celui miné par M1.
Tableau 1 : Différence de configuration de la blockchain en fonction de la diffusion d'un bloc valide dans le réseau
Dans le cas ci-dessus, il y a 51% de chance qu’un nœud ayant reçu l’information de M1 en
premier mine le bloc suivant, et seulement 49% de chance que ce soit un nœud ayant reçu
l’information de M2 en premier. Lorsqu’il y a un bloc supplémentaire sur une branche plutôt
qu’une autre, alors la branche secondaire est abandonnée, et seule la branche principale
prévaut. Par exemple, imaginons qu’un nœud ayant reçu B4bis en premier réalise le prochain
bloc, ce qui est le plus probable (51% de chance). Il diffusera donc à l’ensemble des nœuds le
nouveau bloc qui aura comme prédécesseur B4bis. Le logiciel du Bitcoin prévoit que seule la
chaîne la plus longue sera gardée. Ainsi, la branche contenant B4 sera supprimée. Il y avait
51% de chance que ce scénario arrive.
A quoi sert donc cet algorithme ?
Imaginons qu’un nœud malintentionné (mineur malveillant) veuille modifier une transaction
validée par un précédent mineur. Il devrait ainsi ajouter une nouvelle branche qui soit plus
longue que celle de la branche principale, contenant l’élément qu’il veut modifier. Ainsi, il
devrait générer suffisamment de blocs pour faire de la branche qu’il crée la branche
principale. Or la chance de réaliser la création de blocs est proportionnelle à la puissance de
calcul des mineurs. Ainsi, un acteur malveillant devrait posséder la majorité de la puissance
de calcul disponible sur le réseau. Cet algorithme ne permet pas de vérifier la validité des
transactions (d’autres règles présentées dans le paragraphe suivant permettent d’éviter ce
problème), mais assure l’impossibilité de modifier les transactions passées d’une part, et la
possibilité d’obtenir un consensus sur la branche à suivre en cas de création de branches
(appelées également forks). En résumé, il permet d’avoir une chaîne de blocs unique et non
modifiable partagée sur le réseau.
D’autre part, la complexité demandée aux mineurs pour les calculs augmente ou diminue
selon la puissance globale des mineurs. En effet, tous les 2016 blocs, la complexité est
recalculée afin que le temps moyen de génération des 2016 blocs suivants soit de 2 semaines.
Un bloc se crée en moyenne toutes les 10 minutes. Les blocs seront donc de plus en plus
difficiles à miner au fur et à mesure que les capacités de calcul augmenteront.
I.2.e Le réseau
Les nœuds accepteront le bloc proposé uniquement si les transactions qu’il contient
sont valides (par exemple, selon l’historique de la blockchain du Bitcoin, il n’y a pas de
transaction de monnaie que l’expéditeur ne possède pas ou plus). L’acceptation d’un bloc
s’effectue via le travail du nœud sur un nouveau bloc, en ayant comme prédécesseur le bloc
qu’il vient d’accepter.
La chaîne la plus longue est toujours la chaîne qu’il convient de conserver et qui est légitime.
I.2.f Incitation
Afin de récompenser le calcul couteux en énergie et en temps effectué par le mineur qui a
réussi la preuve de travail, la première transaction du bloc créé est une transaction spécifique
qui génère une certaine quantité de crypto monnaie appartenant au créateur du bloc. Cette
incitation à réaliser le minage permet de pousser les nœuds à participer au réseau, et permet de
distribuer la crypto monnaie.
On peut également financer les mineurs par des frais de transaction. Ainsi, une fois qu’une
quantité maximale de crypto monnaie déterminée au préalable sera injectée dans le réseau, le
système de frais de transaction sera l’unique modèle économique sur lequel se basera les
mineurs. La récompense délivrée aux mineurs était de 50 Bitcoins (btc) par bloc miné
initialement (en 2008). En 2012, la rémunération a été divisée par 2, soit 25 btc par bloc miné.
Tous les 210 000 blocs minés (soit environ 4 ans), la rémunération est divisée par 2. Ainsi, le
minage rapportera de moins en moins de btc et les frais de transaction seront le principal
moyen de pouvoir générer de nouveaux Bitcoins.
On peut aisément comprendre qu’une blockchain peut prendre des proportions, en termes
de mémoire, assez impressionnantes. Le système de la blockchain du Bitcoin imaginé par
Satoshi Nakamoto prévoit d’économiser de l’espace disque en utilisant des procédés tels que
les arbres de Merkle. Lorsque des transactions sont réalisées et confirmées depuis plusieurs
générations de blocs successifs, ces dernières peuvent être supprimées des nœuds qui
voudraient faire des économies de mémoire. Il existerait ainsi 2 types de nœud différents :
- Un type « nœud complet » qui contiendrait l’ensemble des transactions et des blocs
- Un type « nœud simple » qui contiendrait les derniers blocs validés complets, ainsi
que l’empreinte (hash) des transactions et blocs plus anciens
Cela permettrait de vérifier l’authenticité de la blockchain sans avoir forcément l’ensemble
des données distribuées sur chacun des nœuds du réseau.
On peut considérer que le deuxième nœud correspond à un en-tête de bloc, et non à un bloc
entier, puisqu’il ne contient plus l’ensemble des transactions.
Cette technique permettrait ainsi d’économiser de l’espace mémoire sur les nœuds qui le
souhaitent. Ci-dessous est présenté un graphique représentant la taille de la blockchain du
bitcoin depuis son origine :
Aujourd’hui, cette technique d’économie d’espace disque n’est pas mis en place.
Ainsi, à partir de ce qui a été vu dans la partie précédente, il est possible de vérifier les
transactions en utilisant uniquement les en-têtes des blocs, sur un nœud simple, et non un
nœud complet.
Un utilisateur sur un « nœud simple » pourrait conserver uniquement les en-têtes des
blocs de la chaine la plus longue. Cette opération peut facilement être menée à l’aide de
requêtes réalisées auprès d’autres nœuds du réseau.
Les nœuds simples ne pourront pas vérifier les transactions, mais compte tenu du fait
que les autres les ont acceptées, il considérera que le bloc considéré est valide.
Les identités des personnes réalisant les transactions sont gardées secrètes, malgré une
diffusion publique des transactions elles-mêmes.
Le type d’objets d’une blockchain peut être variée selon sa nature. L’objet déposé sur une
blockchain peut d’ailleurs être autre qu’une transaction (objet dans l’exemple du Bitcoin).
L’exemple le plus connu est sans doute celui des smart-contracts.
Un smart-contract est un programme informatique inséré dans un bloc qui s’exécute
lorsque certaines conditions sont remplies, ou certains évènements se produisent. Cela
implique que le système de la blockchain doit permettre de recueillir des informations qui
peuvent être en dehors de la blockchain, et qui s’assurent des conditions d’un contrat.
On peut par exemple imaginer une personne qui choisit de donner 1 btc à son frère lorsque
ce dernier deviendra père. Ainsi, un smart contract pourra être généré. Un smart contract est
rattaché à un compte. Il existe deux types de compte :
- Des comptes détenus par des tiers, qui sont contrôlés et sécurisés via des clés privées
- Des comptes de contrat, contrôlés et sécurisés uniquement par leur code
Un compte de tiers ne peut effectuer une transaction que « manuellement », c’est-à-dire en
utilisant sa clé privée. En revanche, dans le cas d’un compte de contrat, chaque fois que ce
dernier reçoit un message, son code s’exécute et ses fonctions s’appliquent. Cela peut créer un
nouveau contrat, générer une transaction ou encore appeler un autre contrat.
Ainsi, dans notre exemple de don d’un btc à son frère, il faut, pour remplir les conditions,
vérifier que le frère du créateur du smart contract a un enfant ou non. Il faut donc une entité,
extérieure à la blockchain, qui dépose l’information à une adresse préétablie (dont le contenu
sera vérifié à chaque message envoyé à l’adresse du smart contract). Cette entité est appelée
Oracle.
En effet, du fait de la caractéristique immuable et compte tenu du besoin de sécurité de la
blockchain, cette dernière n’a pas la possibilité d’interagir avec des éléments extérieurs. En
revanche, une entité extérieure peut générer une « transaction » sur la Blockchain. Dans notre
exemple, l’oracle, qui est un organisme externe automatisé ou non, pourra rechercher sur une
base de données regroupant les naissances si le frère a bien un enfant. L’oracle peut très bien
être également une personne tierce, ou le créateur du smart contract. Tout dépend du code lui-
même. Il écrira ensuite à l’adresse prévue le résultat de sa recherche, ce qui conditionnera le
résultat du smart contract.
Le principe de l’oracle et du smart contract peut être schématisé de la manière suivante :
On voit ici que le résultat du smart contract dépend principalement des informations fournies
par l’oracle. En effet, si l’oracle décide de donner une mauvaise information, le smart contract
sera exécuté en prenant en compte cette information erronée. De même, si l’oracle ne délivre
aucune information à l’adresse indiquée dans le code du smart contract, alors les conditions
de ce contrat ne seront jamais remplies. Ainsi, le système repose de nouveau sur un tiers de
confiance.
Plusieurs structures ont ainsi été imaginées afin de parer aux problèmes liés à l’introduction
des oracles dans l’écosystème de la blockchain :
Dans le cas où les données nécessaires sont disponibles sur un serveur, des
organisations proposant des services dits « provable-honest » proposent de rechercher
les données demandées, accompagnées d’une preuve de sa validité. Par exemple, la
société Oraclize, qui fonctionne notamment sur une blockchain appelée Ethereum
(dont la crypto monnaie est l’ether) fonctionne selon le schéma suivant :
Oraclize délivre en plus de la donnée une « preuve d’honnêteté » qui permet de savoir
si la donnée est bien celle disponible sur le serveur. Cette donnée étant déposée sur la
blockchain, elle est facilement vérifiable. Ainsi, si l’oracle donne une information
erronée, la réputation de l’oracle sera mise en jeu. C’est donc sur la fiabilité des
oracles que se fonde ce type d’organisation.
Il existe également des oracles basés sur le consensus. Il s’agit d’un principe similaire
à celui d’un vote. L’information requise par le smart contract est demandée à un grand
nombre de participants, qui sont incités à donner la réponse correcte (par un système
de récompense par exemple). Ce système est décentralisé, et par essence, parfaitement
compatible avec un système de blockchain.
On peut également citer des oracles physiques. Certaines informations peuvent être
relevées de manière automatique sur des données physiques. On peut imaginer un
capteur de température, et un smart contract qui lui est lié. Pour aller plus loin, on
pourrait imaginer un ensemble de capteurs physiques qui puisse, en quelque sorte,
déceler un sinistre localisé. Ainsi, un smart contract pourrait directement indemniser
un assuré ayant souscrit à ce contrat.
On peut trouver également sur la blockchain des organisations particulières, appelées DAO
pour Decentralized Autonomous Organization, qui sont des entités autonomes. Nous pouvons
illustrer le principe de ces entités par un exemple. Une entité telle que celle-ci pourrait, par
exemple, rendre un service d’assurance d’un nouveau type. Tous les participants à cette
organisation pourraient verser des mensualités à cette organisation via des smart contracts.
Lorsqu’un des participants subit un accident et souhaite être indemnisé, il effectue une
demande. Soit le smart contract s’appuie sur des oracles capables de confirmer le sinistre, et
ainsi indemnise automatiquement l’assuré, soit l’indemnisation est soumise au vote de
l’ensemble des assurés, qui décident, si oui, ou non, l’assuré peut toucher l’indemnisation.
Ainsi, chaque participant peut avoir un pouvoir décisionnaire sur les actions des smart
contracts. Ainsi, la gouvernance d’une application telle qu’une DAO dépend du ou des smart
contracts qui ont été codés.
Dans la description des étapes de validation par le réseau, dans le cas du Bitcoin, l’étape de
Proof of Work permet de créer un consensus entre tous les nœuds du réseau pour établir
l’historique valide des transactions. Cela permet de prévenir les attaques malveillantes
éventuelles, et de choisir une branche lorsqu’il y en a deux qui sont créées. La preuve de
travail repose principalement sur le fait qu’il faut prouver qu’on a utilisé assez d’énergie et de
ressources de calcul. Cependant, cette méthode n’est pas la seule proposée par les créateurs de
blockchain.
Une autre méthode répandue, qui n’est pas celle explicitée dans le papier de Satoshi
Nakamoto, s’appelle Proof of Stake, ou preuve d’enjeu. Cette méthode repose sur le fait
d’avoir de la crypto monnaie.
Comparons ces deux méthodes pour mieux expliquer le proof of stake :
- Preuve de travail / Proof of Work : imaginons que chaque nœud ait la même puissance
de calcul que les autres. Chaque nœud lance un dé à la même fréquence que les autres
pour obtenir le chiffre souhaité (imaginons un 6). Lorsqu’un nœud obtient un 6, il le
dit à tous les autres, et son bloc est ajouté à la chaîne. Ainsi, celui qui possède le plus
de nœud possède le plus de chance de réussite. Maintenant, si les nœuds ont des
puissances de calcul différentes, celui qui possède les nœuds, qui, en cumulé, ont le
plus de puissance, aura le plus de chance de réussite (c’est comme s’il augmentait sa
fréquence de lancer). On peut en conclure que la chance d’être le mineur qui réussit
l’ajout d’un bloc est proportionnel théoriquement à la puissance de calcul possédée.
- Preuve d’enjeu / Proof of Stake : de la même manière, le concept de cette méthode est
que la réussite d’obtenir le minage d’un bloc dépend proportionnellement de l’argent
qu’on a sur son compte. Par exemple, si un compte possède 10% de la monnaie totale
dans le système, alors il aura 10% de chance de proposer en premier le bloc à ajouter.
Cette méthode a pour avantage de consommer beaucoup moins d’énergie, cependant
elle est réputée pour être moins sécurisée que le Proof of Work.
Il existe de nombreux autres types de preuves, avec, pour chacune d’entre elles, des avantages
et des inconvénients. Elles ne seront pas présentées ici.
D’autres différences sont aussi remarquables, comme le temps de génération d’un nouveau
bloc (12 s pour Ethereum contre 10 min pour Bitcoin).
Dans le cas du Bitcoin, les récompenses sont divisées par 2 tous les 4 ans environ. Ce principe
n’est pas le cas pour l’ensemble des blockchains. Ethereum récompense de la même manière
tous les ans l’ensemble des mineurs ayant participé à l’ajout de bloc, et ceci pour toujours
(15,6 millions d’éther sont générés tous les ans).
I.3.d Confidentialité
Chaque point dans ce schéma représente un nœud du réseau. On peut y voir la différence
de gouvernance entre les différents types de blockchain (publique, privée, ou de consortium).
Des schémas similaires pourraient être faits pour la blockchain privée ou publique. Pour
une blockchain publique, les consultations sont publiques uniquement.
A partir de l’étude menée dans les précédentes parties, on peut dégager plusieurs
points clés liés à cette nouvelle technologie qu’est la blockchain.
Les éléments clés sont dans un cas général :
Une information répartie entre tous les participants à la blockchain :
o Un historique disponible pour tous (dans le cas d’une blockchain publique)
o L’émission des transactions accessible à tous
o Une validation réalisée par n’importe quel nœud (dans le cas d’une blockchain
publique)
Un système de comptes et de nœuds :
o Des comptes de tiers et des comptes de contrats, les uns sécurisés par une clé
privée, les autres par le code qui les caractérise
o Des nœuds qui participent directement système distribué de la blockchain et
permettent l’ajout de transactions à celle-ci
Un système de preuve à fournir par les nœuds afin d’inscrire un nouveau bloc dans la
blockchain, qui se caractérise par :
o Une résolution d’équation, ou d’inéquation
o Une difficulté (qui peut varier au cours du temps pour s’adapter à la situation)
o Une légitimité à pouvoir déposer un bloc sur la blockchain
Ces principes généraux sont malléables et peuvent être adaptés à des situations particulières.
On peut citer comme exemple la différence entre les blockchains privées, publiques, ou de
consortium.
La partie suivante s’attachera à répondre à la question suivante : en quoi cette technologie,
ainsi que les éléments cités dans la première partie sont disruptifs ? Et quels sont les exemples
qui permettent de déceler de possibles changements radicaux dans le fonctionnement actuel
de certaines activités.
Dans cette partie, nous tenterons de décrire ce que la technologie de la Blockchain pourrait
permettre en termes d’application, en se basant sur des cas d’usage précis. Nous essayerons
par la suite de dégager les grands types d’utilisation théoriques de la blockchain.
Nous allons partir d’un document réalisé par « Let’s Talk Payments » qui a recensé
l’ensemble des use cases associés à la Blockchain :
A partir de ce recensement, nous allons d’abord expliciter chacun des items présents sur cette
représentation avant d’essayer de la synthétiser en grandes idées directrices (voir la partie
II.2).
privée. OneName crée une adresse contenant l’identité sur la blockchain, et à la possibilité de
transmettre cette adresse à un demandeur. OneName a changé de nom, et s’appelle désormais
BlockStack, dont l’architecture et le principe est présenté ci-dessous :
II.1.e Marketplace
D’autre part, la société Symbiont a établi une offre permettant de gérer des
transactions dans le secteur financier de manière automatique, à l’aide des smart contracts. Par
exemple, dès l’émission d’un titre sur le registre de Symbiont, ce dernier devient autonome, et
permet ainsi de se passer de fonctions middle ou back office. Cette société, qui s’est associée
à Gemalto afin de sécuriser et chiffrer les données de transaction, permet ainsi d’automatiser
bon nombre de processus manuels en vigueur encore aujourd’hui dans le secteur financier.
La start-up Factom, spécialisée dans la blockchain, serait prête à signer un contrat avec
le Honduras afin de créer un cadastre officiel et numérique, fondé sur la Blockchain.
D’autres pays sont également très intéressés par cette nouvelle technologie pour y
héberger leur système de gestion du cadastre, notamment pour des raisons de transparence et
de sécurité. Le Ghana est un exemple : près de 90% des terres rurales ne sont pas inscrites
dans un cadastre, et des citadins n’ont pas encore d’adresse officielle. Cette situation pose de
réels problèmes administratifs et économiques, au Ghana ou dans d’autres pays. Par exemple,
l’absence de titres de propriété rend impossible l’hypothèque. Ainsi, le projet Bitland a été
reconnu par le gouvernement ghanéen pour pallier ce problème.
II.1.h Diamonds
Everledger est une jeune société spécialisée dans la protection des diamants. Elle
intéresse notamment les compagnies d’assurance. L’objectif est de créer un registre complet
de toutes les pierres précieuses afin de lutter efficacement contre le vol et la fraude (qui
représente un coût de 50 milliards de dollars chaque année pour les assureurs). Le principe de
fonctionnement d’Everledger est simple : chaque pierre soumise à la société possède un
certain nombre d’informations (numéro de série, informations physiques, identité du
propriétaire…), qui seront enregistrées sur une blockchain. Si un vol est commis, et que le
diamant est retrouvé, il pourra alors être restitué à son propriétaire. 850 000 diamants
devraient être prochainement enregistrée dans la blockchain.
En réalité, ce besoin aurait pu être traité à l’aide d’une base de données commune à
l’ensemble des assureurs. Cependant, cela n’a jamais été fait. La blockchain et l’engouement
pour cette nouvelle technologie est ainsi une opportunité de répondre au besoin des assureurs,
même si le fait d’utiliser la blockchain n’est en rien une nécessité.
Figure 21 : Liste des derniers diamants inscrits sur la Blockchain, disponible sur [Link]
BitShares est une DAC (Decentralized Autonomous Company) qui met en relation des
potentiels vendeurs et acheteurs d’assets financiers. Le principe du BitShares est que les
assets échangés sur les marchés dédiés à ces échanges possède des valeurs qui fluctuent en
fonction des marchés financiers réels.
Prenons un exemple. Un asset échangé par le système de BitShares s’appelle un
BitAssset. Par exemple, le BitUSD représente un US Dollar. Un BitUSD n’est pas un USD.
C’est une crypto-monnaie dont la volatilité du cours est celui de la valeur de référence (ici
l’USD). Pour le BitGold, le cours est calqué sur celui de l’or, pour le BitSilver, sur celui de
l’argent…
Ainsi, les BitAssets sont des actifs financiers fictifs, qui ont une correspondance avec
le BitShares, la crypto-monnaie englobant l’ensemble des assets. Avec des BitShares, on peut
acheter toutes les sortes de BitAssets. L’objectif est donc de faire de la spéculation sur les
assets afin d’augmenter sa quantité de BitAssets ou de BitShares. Ainsi, si suffisamment de
personnes utilisent ce système de BitAssets, la monnaie (le BitShare) pourrait être utilisée lors
de transactions réelles, à l’instar du Bitcoin.
La Blockchain peut également être utilisée afin de recueillir les approbations d’expert
concernant le niveau d’une personne. C’est ce que propose la start-up Asimov. Elle met en
relation, via une plateforme (du type linkedIn par exemple), des personnes qui demandent une
certification de compétence et des experts du domaine. Seul un expert du domaine peut
certifier l’aptitude d’une autre personne à être experte dans ce domaine. Cette start-up en est
pour l’instant à l’état de projet, mais espère récolter des fonds, petit à petit. Ces certifications
passent par une certification dans une blockchain, pour permettre l’assurance d’un historique
fiable et public.
Ainsi, IBM a imaginé de construire une machine à laver capable d’établir son besoin
en détergent en toute autonomie, et de contacter le fournisseur le plus proche afin de se
réapprovisionner. Cela requiert donc un contrat entre le fournisseur et la machine elle-même.
Deux points majeurs permettent ainsi l’autonomie de la machine : la prise de décision, et
l’échange d’information. Ceci peut être géré par des smart-contracts. IBM a également une
plateforme complète permettant de liés les IoT à une blockchain, ce service s’appelle IoT
Watson Blockchain.
Figure 22 : Offre IBM pour la communication des Objets Connectés utilisant la technologie Blockchain ([Link])
des échanges, à l’aide notamment de smart-contracts, qui automatisent la manière dont sont
gérées les transactions.
Figure 23 : Logo d'Ethereum, un des acteurs principaux dans le domaine des Blockchains
Counterparty est une initiative qui ressemble à Ethereum, puisqu’elle offre une
plateforme permettant de créer des Assets, qui possède sa propre monnaie, et qui permet
l’implémentation de smart-contracts dans la chaîne qu’elle utilise : la blockchain du Bitcoin.
Ainsi, Counterparty est une alternative à la plateforme utilisée par Ethereum, mais en utilisant
la blockchain du Bitcoin.
Les transferts de pairs à pairs sont la fonctionnalité initiale prévue par la blockchain du
Bitcoin. C’est en ce sens que certaines entreprises se sont par exemple lancées dans des
activités de Crowdfunding ou de Crowdlending. En effet, l’entreprise BitBond a créé une
interface entre emprunteurs et bénéficiaires. De la même manière [Link] permet de
mettre en contact des start-ups, qui recherchent des investisseurs dans leur projet
entrepreneurial, et des investisseurs potentiels. Cependant, les investisseurs ne feront pas
l’acquisition de parts de l’entreprise qu’ils financent, mais pourront récupérer, en fonction de
leur mise, une part des revenus futurs de l’entreprise. Le système se base également sur
l’utilisation de smart-contracts, qui permet d’assurer la rémunération automatique des
investisseurs si un certain seuil de bénéfice est atteint.
les principaux acteurs du secteur louent leurs Data centers aux entreprises ayant besoin
d’entrepôts de données, de machines virtuelles, ou encore d’applications spécifiques. Le
service proposé par la start-up Storj Lab est d’inscrire les fichiers voulus sur la blockchain
après les avoir encryptés. Elle met également à la disposition de ses clients un panel
d’applications décentralisées. Certaines entreprises ont d’ailleurs déjà utilisé l’API disponible
par Storj Lab pour créer des applications de pdf Viewer, Video & Music player, toutes
disponibles sur le cloud-blockchain.
II.1.r Gaming
II.1.s Others
Figure 28 : Prototype de la plateforme permettant d'afficher l'historique des données médicales grâce à MedRec
A l’aide de l’ensemble des exemples cités ci-dessus, nous allons maintenant pouvoir
détourer les facteurs qui font que la blockchain est utilisée, et quelles sont les caractéristiques-
clés qui permettent aux entreprises utilisant cette nouvelle technologie de se différencier vis-
à-vis d’entreprises aux services similaires, utilisant des méthodes plus traditionnelles.
A l’aide des parties précédentes (partie I technique, et partie II.1 type Benchmark),
nous allons pouvoir présenter les raisons de l’utilisation d’une blockchain dans un projet
professionnel. Ci-dessous est présenté un schéma listant 7 éléments qui caractérisent la
blockchain d’un point de vue business. Cette dernière permet :
possède. L’action consistant à déposer son brevet sur la blockchain permet d’avoir une preuve
non réfutable de l’appartenance du brevet à son propriétaire. De plus, le brevet n’aurait
hypothétiquement plus à être déposé auprès d’un organisme ou d’une institution publique, ou
du moins la preuve de propriété pourrait être justifié par la présence de cette transaction sur la
blockchain.
On peut par ailleurs y voir un avantage supplémentaire : la prévention de la fraude. On
pourrait imaginer également un comptable malintentionné voulant modifier les lignes de
comptes de l’entreprise dans laquelle il travaille. Or, le fait de stocker les documents
financiers d’une entreprise dans la blockchain assurerait des livres de compte non modifiables
et visibles. Ainsi, l’utilisation de la blockchain en comptabilité pourrait pallier certains
problèmes de fraude.
La question de la sécurité et des données personnelles est une interrogation centrale pour un
grand nombre de personnes. Afin de sécuriser la vie privée et les données de chaque
utilisateur, les applications basées sur la blockchain peuvent permettre des services plus
évolués que la plupart des applications traditionnelles.
Prenons le cas d’une application mobile. Généralement, lors de l’installation d’une
application, les données personnelles sont au cœur du processus :
- Lorsqu’il faut accepter les termes d’installation : la propriété des données est
transférée à l’éditeur de l’application, et les permissions qui permettent à l’éditeur
d’utiliser les données sont accordées.
- Tout au long du cycle de vie de l’application, les données ne sont pas traçables par
l’utilisateur.
Dans une application Blockchain, l’utilisation des données serait différente :
- Les utilisateurs peuvent contrôler toutes leurs données, et leur accès. Les utilisateurs
peuvent en être les propriétaires.
- L’accès aux données est transparent, et l’utilisateur peut voir qui a demandé l’accès à
ses données.
- L’utilisateur a la possibilité de donner ou de reprendre la permission d’accès à ses
données personnelles.
L’identité des utilisateurs est protégée par le système de clé privée et de clé publique
expliquée dans la première partie.
La désintermédiation requiert un système innovant sur lequel se baser afin d’avoir une
confiance sûre des données présentes dans la blockchain. Cette confiance est établie par
consensus entre les nœuds du réseau distribué. C’est ainsi qu’on parle de confiance distribuée.
Les DAO sont l’exemple le plus visible d’organisation reposant sur un système de
consensus sur les données partagées. Ce type d’organisation permet d’avoir une chaîne de
blocs persistante, un contrôle qui n’est dû qu’au code qui a été créé originellement, et une
transparence de l’ensemble des transactions effectuées. The DAO est un projet mené par
l’entreprise [Link], ayant pour but d’évaluer des projets qui lui sont soumis, de financer ces
projets ou non, et de distribuer les risques et les récompenses associées, et ceci de manière
collective. Cela ressemble à un système de crowdfunding ou d’investissement. Ce projet
s’appuie sur la Blockchain Ethereum. The DAO possède tout de même une structure,
composée de plusieurs développeurs renommés, qui sont susceptibles d’auditer les
applications, ou projets, soumis à The DAO, afin de vérifier si le code correspond bien au
service qui est rendu et présenter sur la plateforme. Cela pourrait paraître intrusif et
ressembler à une autorité de contrôle, cependant, n’importe qui peut auditer n’importe quel
projet. Cela permet de garantir la sécurité de l’application, sans pour autant promouvoir de
centralisation.
Chaque projet sera ainsi soumis à quatre phases :
- La proposition (nombre d’Ether pour le prestataire, les produits / services proposés…)
- Les votes (chaque personne possédant des jetons pourra investir)
- Développement (une feuille de route est rédigée par smart contract, le prestataire devra
respecter le rendu de livrables à certaines échéances)
- Déploiement (le service / produit est disponible et les avantages conclus
originellement sont donnés)
En 2015, The DAO a cependant connu une situation problématique. Un smart contract a
été validé par the DAO, et ce dernier était mal rédigé, en ce sens qu’il répétait un retrait de
fond sans vérifier que les fonds étaient bien disponibles. Cela a permis au détenteur de ce
contrat de récupérer 50 millions d’Ether. Ainsi, on peut en conclure que la technologie de la
blockchain, et particulièrement les DAO, est une technologie qui n’est pas mature et qui
connait une croissance très rapide, qui demande un contrôle particulièrement intense pour
éviter une perte de confiance partielle ou totale en elle. Les détails de l’attaque sont
disponibles sur internet sur le blog de [Link] ([Link]
613548408dd7#.rdu0c49s4).
types. Nous pouvons notamment relever deux types de transactions : les transactions à
l’international, et les transactions effectuées sur les marchés financiers. Lorsque des
transactions internationales peuvent être effectuées en plusieurs jours, d’autres transactions
(marchés financiers) peuvent être ordonnées en quelques microsecondes.
Ainsi, les caractéristiques de la Blockchain ne permettent pas de vitesse de
transactions très élevées. Par exemple, la Blockchain du Bitcoin ne peut générer un bloc, et
par conséquent les transactions qu’il contient, que toutes les 10 minutes, compte tenu de la
méthode de Proof of Work adoptée. On peut donc en conclure, qu’il n’est aujourd’hui pas
possible de faire du trading haute fréquence basé sur la Blockchain.
Cependant, lorsqu’il s’agit d’échanges internationaux, les transactions sur une
Blockchain peuvent être effectuées beaucoup plus rapidement que ce que proposent les
banques à l’heure actuel. Cette caractéristique peut donc être nuancée selon le type de
transaction effectué.
Conclusion
Dans ce document, nous avons tout d’abord pu étudier le procédé technique sur lequel
repose la Blockchain. Cette innovation informatique permet ainsi d’organiser les échanges de
données sur un réseau distribué, assurant une sécurisation des données par chiffrement, et
faisant participer les nœuds du réseau pour la création de nouveaux blocs de la chaîne.
Nous avons vu dans une seconde partie ce que cette innovation technologique induit,
en termes de changements potentiels, dans différents secteurs d’activités différents, et nous
avons essayé d’en retirer les éléments clés qui font de la blockchain une invention disruptive.
Malgré tout, la blockchain est en phase de pics d’espérances, et a commencé à
connaître quelques désillusions. En effet, la blockchain Ethereum a été « attaquée » en juin
2016. La raison de cette faille a été un code non vérifié contenu dans un smart contract.
Cependant, plusieurs fois par an depuis sa création, des articles présagent la fin du Bitcoin
dans les mois à venir, et la blockchain du Bitcoin n’a, jusqu’à aujourd’hui pas connu de
désillusion. Ainsi, on peut en conclure que la confiance en cette nouvelle technologie n’est
pas entière, et qu’elle lui faut davantage d’expérience et d’initiatives afin de la rendre viable
dans le monde de l’entreprise.
Cette technologie est ainsi confrontée à plusieurs enjeux :
La connaissance du principe de la blockchain est essentielle. Cette notion est aujourd’hui
largement utilisée comme « buzz word », et peu comprennent avec finesse les rouages
techniques sur lesquels est basée la blockchain. Cet enjeu demande une vulgarisation de
termes aujourd’hui trop techniques pour un public non initié à l’informatique.
Un des principes de la blockchain repose sur un réseau suffisamment fourni pour pouvoir
accorder une certaine confiance au réseau. Ainsi, la technologie blockchain doit être
l’objet d’une adhésion suffisante pour assurer son bon fonctionnement
Les initiatives blockchains sont très nombreuses et dispersées. Comme pour la plupart
d’autres technologies informatiques, les blockchains doivent respecter des normes afin de
garantir un fonctionnement considéré comme normal. Ces normes ne sont pas encore
totalement établies et une standardisation est nécessaire.
Certains cas d’usage particuliers entraînent des querelles d’experts soutenues. Cela peut
mener à des divisions au sein des membres les plus connaisseurs de cette technologie. Ces
querelles peuvent aller à l’encontre de l’adhésion de la blockchain auprès de décideurs
éventuels.
Lexique
- Le temps
- La complexité (objectif de difficulté pour la preuve de travail par exemple)
- Nombre aléatoire de taille 32 bits
Ethereum : blockchain publique utilisant les smart contracts et dont la monnaie virtuelle est
l’éther.
Hash (empreinte) : fonction particulière qui permet de convertir une donnée en une suite de
chiffre précise de manière unique. Ce chiffre représente donc l’identité de la donnée.
L’information contenue dans la donnée est, quant à elle, impossible à connaître à partir de son
empreinte uniquement.
Mineur : nœud du réseau dont la particularité est d’utiliser sa puissance de calcul afin
d’ajouter un bloc à la blockchain, en calculant une fonction de hachage précise.
Oracle : entité permettant de récolter des données selon le besoin défini par les codes des
smart contracts. Il existe plusieurs types d’oracles.
Preuve d’enjeu (Proof of Stake) : méthode de résolution d’une inégalité obligatoire
permettant l’ajout d’un bloc par un mineur, qui repose sur la quantité de monnaie qu’un
mineur possède par rapport aux autres.
Preuve de travail (Proof of Work) : méthode de résolution d’une inégalité obligatoire
permettant l’ajout d’un bloc par un mineur, qui repose sur la puissance de calcul qu’un mineur
possède par rapport aux autres.
SHA256 : fonction de hachage particulière. La double SHA256 est la fonction de hashage
utilisée dans la blockchain du Bitcoin, pour vérifier l’inégalité de la preuve de travail.
Signature numérique : moyen de certification et de sécurisation de l’identité d’un compte.
Smart contract : programme informatique associé à un compte de contrat et qui s’exécute
lorsqu’un autre compte (compte de contrat ou compte de tiers) envoie un message au compte
de contrat auquel il est rattaché.
Tiers de confiance : organisme autorisé à utiliser des signatures électroniques. Cet organisme
peut bénéficier de frais de transaction à chaque fois qu’il en certifie une.
Transaction : opération d’échange impliquant plusieurs parties. Dans le cadre de la
blockchain, une transaction peut être définie comme l’ajout d’un objet dans un bloc.
Vérification de paiement simplifié : principe énoncé par Satoshi Nakamoto permettant de
vérifier l’authenticité des blocs sans avoir besoin de l’intégralité des données contenues dans
la blockchain.
Bibliographie
Actance. (2015). La blockchain : de nouveaux business models pour le secteur IT? Récupéré sur
[Link]: [Link]
[Link]
[Link]. (2016). My powers. Récupéré sur [Link]: [Link]
Bernard, P. (2016). La blockchain au service de l'assurance. Récupéré sur [Link]:
[Link]
[Link]. (2016). Bitcoin expliqué par son inventeur. Récupéré sur [Link]:
[Link]
[Link]. (2010). Preuve de travail. Récupéré sur [Link]:
[Link]
[Link]. (2013). En-tête de bloc. Récupéré sur [Link]: [Link]
t%C3%AAte_de_bloc
Blockchain France. (2015). Focus sur la Zooz, le covoiturage version Blockchain. Récupéré sur
[Link]: [Link]
blockchain/
Blockchain France. (2016). Blockchain : Honduras 1 - France 0. Récupéré sur [Link]:
[Link]
Blockchain France. (2016). Des cadastres sur la Blockchain. Récupéré sur [Link]:
[Link]
Blockchain France. (2016). Qu'est ce qu'une DAO? Récupéré sur [Link]:
[Link]
Blockchain use cases II : non-financial and financial use cases. (2015). Récupéré sur
[Link]: [Link]
financial-and-financial-use-cases/
Blockverify. (2016). Blockverify. Récupéré sur [Link]: [Link]
[Link]/. (2015). Blogchain. Récupéré sur [Link]/: [Link]
Bohic, C. (2016). On a testé Onename : une identité sur la blockchain. Récupéré sur [Link]:
[Link]
Catalini, C., & Gans, J. S. (2016). Some Simple Economics of the blockchain. MIT / NBER.
Catalini, C., & Tucker, C. (2016). Seeding the S-Curve ? The role of early adopters in diffusion. MIT.
Cavazza, F. (2016). Définition, usages et enjeux des blockchains. Récupéré sur Fred Cavazza:
[Link]
[Link]. (2015). La blockchain va révolutionner le crowdfunding (déjà!). Récupéré sur
[Link]: [Link]
crowdfunding-deja/
Debune. (2016). What is Debune? Récupéré sur [Link]: [Link]