Les fondamentaux de la blockchain

12/05/2018
Auteurs : Eric Thea
OAI : oai:www.see.asso.fr:1301:2018-2:22876
contenu protégé  Document accessible sous conditions - vous devez vous connecter ou vous enregistrer pour accéder à ou acquérir ce document.
Prix : 10,00 € TVA 20,0% comprise (8,33 € hors TVA) - Accès libre pour les ayants-droit
 

Résumé

Les fondamentaux de la blockchain

Métriques

12
0
220.79 Ko
 application/pdf
bitcache://5340ccdfadbc3083828f49fd9fe3759ebce2edbc

Licence

Creative Commons Aucune (Tous droits réservés)
<resource  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://datacite.org/schema/kernel-4"
                xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
        <identifier identifierType="DOI">10.23723/1301:2018-2/22876</identifier><creators><creator><creatorName>Eric Thea</creatorName></creator></creators><titles>
            <title>Les fondamentaux de la blockchain</title></titles>
        <publisher>SEE</publisher>
        <publicationYear>2018</publicationYear>
        <resourceType resourceTypeGeneral="Text">Text</resourceType><dates>
	    <date dateType="Created">Sat 12 May 2018</date>
	    <date dateType="Updated">Sun 15 Jul 2018</date>
            <date dateType="Submitted">Mon 15 Oct 2018</date>
	</dates>
        <alternateIdentifiers>
	    <alternateIdentifier alternateIdentifierType="bitstream">5340ccdfadbc3083828f49fd9fe3759ebce2edbc</alternateIdentifier>
	</alternateIdentifiers>
        <formats>
	    <format>application/pdf</format>
	</formats>
	<version>37940</version>
        <descriptions>
            <description descriptionType="Abstract"></description>
        </descriptions>
    </resource>
.

60 ZREE N°2/2018 LA BLOCKCHAIN ET L’ÉNERGIE DOSSIER 1 Introduction La blockchain (chaîne de blocs) est une technologie nouvelle, qui repose sur des éléments techniques anciens et connus. En effet, c’est bien l’assemblage astucieux de mécanismes d’échanges distribués, de consensus et de crypto- graphie, au service d’usages nouveaux, qui crée l’innovation dont on parle tant aujourd’hui. Plus précisément, une blockchain est : s UNESTRUCTUREDEDONNÏESDISTRIBUÏE c’est-à-dire partagée et répliquée par- mi les nœuds d’un réseau, s DONTLECONTENUESTVALIDÏGRÊCEÌUN mécanisme de consensus, s ETQUIESTSÏCURISÏEPARDESOUTILSCRYP- tographiques. Intérêt de la blockchain Avant de plonger dans la description de la technologie, intéressons-nous aux propriétés de la blockchain et aux cas d’usage nouveaux qu’elle permet d’en- gendrer. Propriétés de la blockchain Désintermédiation. C’est la proprié- té la plus connue, à savoir la suppres- sion du tiers de confiance qui se trouve remplacé par la technologie. En réalité, il serait plus exact de dire que la place des tiers de confiance va être déplacée et évoluer, sans toutefois disparaître (cf. la notion « d’oracles » à la section « Technologies et outils de la block- chain »). Un exemple concret de désin- termédiation est l’application blockchain la plus connue : le bitcoin. Il s’agit d’une monnaie électronique qui fonctionne sans passer par les intermédiaires tradi- tionnels que sont les banques. Ainsi, les échanges se font directement de pair- à-pair entre les participants et c’est le RÏSEAUQUIVALIDELESTRANSACTIONSGRÊCE à un mécanisme de consensus. Résilience. La blockchain est parta- gée et répliquée sur tous les nœuds du RÏSEAU 'RÊCE Ì CETTE DÏMULTIPLICATION de l’information, le système apparaît résilient contre certaines pannes : si un nœud du réseau devient défaillant, les autres nœuds restent disponibles et le service continue à être rendu. A l’inverse, dans une architecture centrali- sée, si le nœud central tombe en panne, l’ensemble du système s’écroule. Transparence. Le contenu de la blockchain est validé par des membres DU RÏSEAU GRÊCE Ì UN MÏCANISME DE consensus, ce qui impose une certaine transparence dans le système. Cette transparence n’est toutefois pas com- plétement incompatible avec la notion de confidentialité. Immuabilité. La blockchain est une structure de données dans laquelle on peut rajouter des informations, sans pou- voir en soustraire : une fois qu’une tran- saction est inscrite dans la blockchain, elle ne peut en principe être retirée. C’est l’utilisation d’outils cryptographiques, associée au consensus, qui garantissent cette propriété d’immuabilité. Automatisation. Sans être une pro- priété fondamentale de la blockchain, elle est particulièrement mise en avant dans les nouvelles générations d’implémenta- tions (cf. les smart contracts d’Ethereum, voir la section « Technologies et outils de la blockchain »). Ainsi, les transactions peuvent être automatiquement déclen- chées lorsque des conditions prédéfinies sont remplies, sans intervention humaine et sans possibilité d’en empêcher l’ exé- cution. De nouveaux cas d’usage Le lecteur est invité à se référer à l’ar- ticle de Gilles Deleuze et Sara Tucci pour une cartographie des usages potentiels de la blockchain. Par ailleurs, deux autres ar- ticles détaillent des cas d’usage concrets : celui de l’autoconsommation collective (article de Karl Axel Strang et Caroline Plaza), où l’on voit effectivement bien comment la désintermédiation, la transpa- rence et l’immuabilité permettent ce nou- veau mécanisme d’échanges d’énergie, et celui de la gestion de l’énergie (article de Thierry Chambon) où ces mêmes pro- priétés sont aussi mises à profit. Constituants techniques de la blockchain Repartons de la définition initiale : une blockchain est une structure de données distribuée, dont le contenu Les fondamentaux de la blockchain Eric Thea Architecte Programme, IRT SystemX This paper is a technical introduction to block- chain. We will start with an overview of the blockchain properties and the new use cases that can be enabled. We will then describe the technology building blocks, and focus especially on the consensus mechanism. We will conclude with some implementation considerations. ABSTRACT Cet article est une introduction technique à la blockchain. Après une mise en perspective et une justification de son intérêt pour l’émergence de nou- veaux cas d’usage, l’article décrit les éléments constitutifs de la technologie. Puis une attention particulière est portée aux mécanismes de consensus, avant de conclure par un panorama des technologies et des outils. RÉSUMÉ REE N°2/2018 Z 61 Les fondamentaux de la blockchain EST VALIDÏ GRÊCE Ì UN MÏCANISME DE consensus et qui est sécurisée par des outils cryptographiques. Regardons maintenant chacun de ces éléments constitutifs. Structure de données La structure de données correspond à une liste chaînée de transactions. Ainsi, chaque élément de la liste repré- sente un bloc de plusieurs transactions, et possède un pointeur vers le bloc pré- cédent : chaque nouveau bloc bi qui est ajouté contient effectivement une réfé- rence au contenu du bloc précédent bi-1 . L’ensemble forme donc une chaîne de blocs, ou blockchain. Réseau distribué Nœuds. Les participants d’une blockchain sont des nœuds informa- tiques qui forment un réseau pair-à-pair (peer-to-peer en anglais). Selon l’implé- mentation de la blockchain, le réseau est soit public (tout le monde peut y accéder) soit privé ou semi-privé (seuls les comptes autorisés peuvent parti- ciper, on parle aussi de blockchain de consortium). Chaque nœud possède une copie locale de l’ensemble de la blockchain (ou de ses en-têtes, qui en constituent un « résumé »). Lorsqu’il re- joint pour la première fois le réseau, un nœud peut typiquement récupérer la blockchain et vérifier l’intégrité des blocs qui la constituent. On voit ici bien appa- raître la propriété de transparence de la blockchain. Ce nœud, comme chaque autre nœud, dispose ainsi de l’histo- rique de toutes les transactions qui ont été réalisées dans le réseau depuis son origine jusqu’à ce jour. Il pourra à partir de là maintenir cette copie de la block- chain à jour, le système étant bien sûr conçu de manière à ce que toutes ces copies soient identiques ou convergent vers une vue identique (cf. le méca- nisme de consensus). On note ici que la blockchain est un registre qui croît in- définiment à mesure que les nouvelles transactions y sont enregistrées : cette inflation de la taille de la blockchain est aujourd’hui un verrou technologique et fait l’objet de recherches. Chaque nœud peut émettre des transactions et demander au réseau d’ajouter ces transactions à la block- chain, ces transactions en attente sont ensuite validées par certains nœuds particuliers appelés les « mineurs » (miners en anglais), également appelés générateurs de blocs ou valideurs. Mineurs. Les mineurs sont des nœuds prêts à partager leur puissance de calcul pour valider les transactions et ajouter des blocs à la blockchain, généra- lement en échange d’une rémunération en cryptomonnaie (cas des blockchains publiques). La rémunération dépend de l’implémentation de la blockchain, mais elle peut prendre au moins deux formes non exclusives : soit via des frais de transaction (c’est-à-dire que le nœud qui émet la transaction paie le mineur pour son travail), soit via la création ex- nihilo de valeur (c’est le cas par exemple pour Bitcoin où, à chaque ajout de bloc, le système crée de la cryptomonnaie et l’at- tribue au mineur qui a réalisé cet ajout). Mécanisme de consensus Tous les mineurs sont en compé- tition pour ajouter le prochain bloc à la blockchain mais un seul d’entre eux sera sélectionné pour le faire et lui seul sera rémunéré. Cette sélection est aléatoire pour chaque nouveau bloc. Ce caractère aléatoire est très important pour la sécu- rité de la blockchain: puisque personne ne sait quel mineur sera choisi, un mi- neur malveillant a une faible probabilité d’être sélectionné et a donc peu d’intérêt à attaquer le système puisqu’il a peu de chance de réussir dans son entreprise. Cela conduit à envisager la fameuse attaque des 51% : si plus de la moitié du pouvoir de validation du réseau est détenue par un attaquant, il a alors statis- tiquement plus de chances que son at- taque réussisse qu’elle n’échoue, et donc le réseau peut être considéré comme étant sous son contrôle. Consensus. Il existe différentes façons de réaliser cette sélection aléa- toire des mineurs : ce sont les méca- nismes de consensus. Les blockchains publiques utilisent habituellement un consensus par preuve de travail (Proof of Work, voir la section « Focus sur les mécanismes de consensus »), de sorte que plus la puissance de calcul d’un mi- neur est élevée, plus grande est la pro- babilité qu’il soit sélectionné. Comme la puissance de calcul est coûteuse, le coût d’acquisition de 51% de la puissance totale de calcul du réseau est élevé. C’est une façon de sécuriser le réseau, en rendant le coût d’une attaque dis- proportionnée par rapport au bénéfice. Les blockchains privées dans lesquelles les nœuds appartiennent à une même entité, ou les blockchains semi-privées dans lesquelles les nœuds appartien- nent à un consortium de différents utili- sateurs autorisés, n’ont pas besoin d’un mécanisme de consensus aussi coûteux que le Proof of Work, car les participants Figure 1 : Chaîne de blocs. 62 ZREE N°2/2018 LA BLOCKCHAIN ET L’ÉNERGIE DOSSIER 1 sont connus et de confiance dans une certaine mesure. Dans ce cas, le méca- nisme de consensus utilisé est beaucoup plus simple. Voir ci-dessous pour plus de détails sur différentes implémentations de consensus. Forks. Une fois que le bloc d’un mi- neur a été sélectionné, il est ajouté à la blockchain et l’information est diffusée. En raison d’effets de réseau, il peut exis- ter des cas où plusieurs mineurs sont sélectionnés quasi-simultanément, si bien qu’il existe différentes versions de la blockchain dans différentes régions du réseau. C’est ce qu’on appelle un “fork” (embranchement) : la blockchain se subdivise en branches. Le méca- nisme de consensus doit alors être assez robuste pour résoudre ce scéna- rio. En d’autres termes, tous les nœuds « honnêtes » devraient converger dans le futur, d’une façon ou d’une autre, pour revenir à une seule et unique version de la blockchain [4]. Dans la pratique, le consensus par la preuve de travail atteint cet objectif en obligeant les mi- neurs à travailler sur la branche la plus longue qu’ils rencontrent. En outre, le logiciel des mineurs est parfois mis à jour pour corriger des bugs, modifier des protocoles, ou ajouter des fonctionnalités. Cela peut également créer des forks, car différents nœuds peuvent gérer les transactions différem- ment en fonction de leur version de logi- ciel. Nous distinguons habituellement : s LEShSoft forks” pour lesquelles les tran- sactions considérées comme valides par la nouvelle version sont également valables pour l’ancienne version ; s LES hHard forks” pour lesquelles des transactions jugées invalides par l’an- cienne version peuvent être valables pour la nouvelle version. Outils cryptographiques Des outils cryptographiques sont utilisés pour garantir l’intégrité de la blockchain, l’identité du participant, l’authenticité des transactions et (par- fois) la confidentialité du contenu. Fonction de hachage. La fonction de hachage est notamment utilisée pour chaîner les blocs entre eux. Ainsi, l’en-tête d’un bloc contient le “hash”, résultat de l’application d’une fonction de hachage (hash function)1 du bloc précédent. Ce hash est un élément clé de l’intégrité de la blockchain. Ainsi, si un attaquant du système modifie le contenu d’un bloc bm , n’importe qui peut le détecter en calculant le hash du bloc et en compa- rant ce résultat avec le hash stocké dans le bloc suivant bm+1 pour voir qu’il existe une incohérence. Afin d’éviter d’être détecté, l’attaquant devrait donc changer tous les blocs et leurs hachages, du bloc bm au dernier bloc en cours. Cependant, les blocs ne peuvent pas être facilement modifiés compte tenu du protocole défini pour l’ajout de blocs (voir sec- tion précédente sur « le mécanisme de consensus »). On perçoit donc là une propriété importante de la blockchain : l’immuabilité. Une fois qu’une transac- tion est inscrite dans la blockchain, elle est très difficilement modifiable. 1 Une fonction de hachage (hash function) prend une donnée d’entrée et produit un hash, une donnée de taille fixe qui est spéci- fique à l’entrée, telle une empreinte digitale. Cette fonction permet notamment de vérifier l’intégrité d’une donnée, en comparant le ré- sultat de la fonction de hachage avec le hash d’origine. Figure 2 : Principes (simplifiés) de fonctionnement de Bitcoin. REE N°2/2018 Z 63 Les fondamentaux de la blockchain Identité. Une identité sur la block- chain est définie par une adresse numé- rique, dérivée d’une paire de clés: une clé privée qui n’est connue que par son propriétaire et une clé publique desti- née à être partagée avec d’autres utilisa- teurs. D’un point de vue technique, ces deux clés correspondent à des nombres hexadécimaux et sont liées entre elles par une fonction mathématique. Ces clés sont utilisées pour l’identification et pour la signature des transactions. Perdre sa clé privée revient à perdre son identité sur la blockchain. Signature. Lorsqu’un utilisateur en- registré souhaite ajouter une transaction à la blockchain, il l’envoie au réseau afin que les mineurs puissent la recevoir, la vérifier et l’ajouter à leur bloc. Mais pour être vérifiées, les transactions (qui sont des données) doivent être signées afin que le mineur puisse identifier incon- testablement l’expéditeur. La signature est générée par une fonction cryptogra- phique qui prend en entrée les données d’origine et la clé privée de l’expédi- teur, et fournit en sortie une signature. Cette signature est vérifiable par toute personne utilisant une autre fonction qui vérifie la cohérence entre les don- nées, la signature et la clé publique. Par conséquent, lors de l’envoi de données, l’expéditeur ajoute également la signa- ture correspondante et sa clé publique. Focus sur les mécanismes de consensus Dans cette section, nous décrivons les principaux mécanismes de consen- sus utilisés aujourd’hui dans les block- chains. Il n’existe pas de mécanisme de consensus universel car, comme nous le verrons, chaque mécanisme présente des avantages et des inconvénients. Preuve de travail (Proof of Work ou PoW) Ce mécanisme est notamment utilisé dans les blockchains publiques Bitcoin [1] et Ethereum [2]. Il garantit que chaque mineur fournit en moyenne une quantité suffisante de puissance de calcul avant de valider un bloc. Plus exactement, son pouvoir de validation est proportionnel à la puissance de calcul qu’il met en jeu (on parle de hashrate). Ainsi, dans un réseau distribué avec une puissance de calcul bien répartie, aucun acteur n'est prédominant dans le système et ce mécanisme empêche également les attaques de type déni de service. Pour ajouter un bloc de données dans la blockchain, chaque mineur doit valider les données du bloc courant (i.e. sa cohérence avec les blocs précé- dents) et résoudre un puzzle cryptogra- phique. Le puzzle consiste à trouver un nonce2 parmi N entiers de sorte que le hash des données combinées avec le nonce commence par au moins « p » zéros. La seule stratégie pour résoudre ce puzzle est en pratique de tester tous les nonces possibles. Une fois qu’un mineur a résolu le puzzle, il peut ajouter les données correspondantes avec son hash et son nonce à la blockchain. La complexité de la résolution de ce puzzle est directement fonction du nombre « p » de zéros requis : plus « p » est grand, plus le puzzle est compliqué, i.e. plus le nombre de nonces à tester devra en moyenne être élevé. Ce paramètre permet au système blockchain d’ajuster la difficulté des puzzles pour contrôler le temps moyen de validation d’un bloc (car ce temps est directement corrélé au hashrate global du système). Par exemple, par conception, Bitcoin main- tient un temps moyen de validation d’un bloc de 10 minutes en ajustant ce nombre « p » tous les 2 016 blocs (envi- ron deux semaines). Étant donné que ce protocole est utilisé sur un réseau décentralisé, bien que la probabilité soit faible, deux blocs 2 Dans notre cas, un nonce est simplement un nombre arbitraire. Bi différents peuvent être générés qua- si-simultanément (i.e. pour un même index « i » de bloc) par deux mineurs différents. Cela conduit la blockchain à se subdiviser en deux branches. Dans ce cas, il appartient au mineur validant le bloc suivant Bi+1 de choisir la branche, c’est-à-dire la version du bloc Bi, qu’il décidera d’utiliser. Ensuite, un troisième mineur ayant à valider un bloc devra également choisir une branche, et ainsi de suite. Le protocole demande aux mineurs d’opter pour la branche la plus longue, tandis que les branches sur les- quelles personne ne mine seront peu à peu abandonnées, créant des blocs orphelins. Il est généralement admis sur Bitcoin qu’une branche d’environ six blocs peut être considérée comme la branche principale. Ce qui signifie que pour être sûr qu’une transaction est valide et que le bloc qui la contient ne deviendra pas orphelin, il faut attendre environ une heure sur Bitcoin (c’est-à- dire 6 x 10 minutes). On entrevoit ici les limites de Bitcoin pour le passage à l’échelle de certaines applications [8]. La conséquence de ce mécanisme de consensus est évidente : il repose sur du travail informatique et donc de l’énergie électrique ; d’ailleurs plus la puissance de calcul utilisée dans le réseau est élevée, plus celui-ci est sécurisé. Cela explique les critiques qui sont parfois émises envers Bitcoin, à savoir qu’elle serait une blockchain très énergivore. Proof of Stake (PoS) Ce mécanisme de consensus repose sur l’idée que plus un utilisateur a d’inté- rêts dans la blockchain (par exemple plus il possède de cryptomonnaie), moins il risque d’attaquer le système [3]. Ainsi, il devrait être favorisé dans le choix pour la prochaine génération de blocs. Dans la pratique, il existe de nom- breuses implémentations. Souvent, on combine des cryptomonnaies mises en gage avec un processus aléatoire (ran- 64 ZREE N°2/2018 LA BLOCKCHAIN ET L’ÉNERGIE DOSSIER 1 domization). Un autre exemple est la sélection du valideur basée sur la durée de possession de la cryptomonnaie par son propriétaire. Des propositions alternatives combinent PoS avec d’autres mécanismes de consensus tels que le PoW. Bien que le PoS soit efficace, il a également des limites. Un problème bien connu s’appelle le problème de l’enjeu nul (nothing-at-stake issue). En effet, s’il existe une branche valide A et une autre B, le consensus devrait ame- ner les générateurs de blocs, c’est-à-dire les mineurs, à choisir l’une d’entre elles. Dans le cas du Proof of Work, ce choix est basé sur la branche la plus longue, et les mineurs sont rationnellement incités à faire ce choix : en effet, s’ils travaillent sur la branche la plus courte, ils risquent de dépenser leur énergie en pure perte puisque cette branche sera probablement abandonnée par la suite. Cependant, dans le cas du Proof of Stake, s’il n’y avait aucun coût à choisir l’une ou l’autre, une straté- gie serait de choisir les deux branches afin de maximiser ses chances de gagner de l’argent dans la génération de blocs. Dès lors, des solutions différentes ont été pro- posées pour résoudre ce problème spéci- fique, impliquant généralement un dépôt de garantie qui peut être perdu en cas de mauvais comportement dans le réseau. Practical Byzantine Fault Tolerance (PBFT) PBFT [6] est un algorithme de réplica- tion capable de tolérer les « fautes byzan- tines ». Dit simplement, cet algorithme garantit la cohérence du consensus tant que les deux tiers des nœuds du réseau sont sécurisés (c’est-à-dire qu’ils ne sont ni malveillants, ni défectueux). Ceci est permis par l’application de protocoles pour choisir un leader parmi eux, pour permettre à ce leader d’imposer les transactions valides et enfin de pouvoir changer de leader de manière sécuri- sée. Cependant, cette méthode exige que tous les nœuds générateurs se connaissent et qu’ils doivent communi- quer entre eux. Par conséquent, le ré- seau doit être privé et son échelle limitée pour rester performant [7]. Technologies et outils de la blockchain Smart contract Le concept de smart contract (éga- lement appelé chaincode dans l’implé- mentation Hyperledger) a d’abord été mis en œuvre par Ethereum. Ce sont des programmes informatiques exécu- tés par les mineurs. Leur déploiement et leur exécution sont déclenchés par les utilisateurs via des transactions. Comme toute autre transaction, les exécutions de smart contracts bénéficient égale- ment des propriétés de la blockchain : désintermédiation, immuabilité, trans- parence et disponibilité. Par ailleurs, on peut offrir un service automatisé sur la blockchain à travers un smart contract dont l’exécution est assurée par le ré- seau. Par exemple, un smart contract pourrait représenter la propriété d’un objet que l’on peut vendre ou acheter lors d’une vente aux enchères. Une fois placé sur le marché par son proprié- taire, les acheteurs intéressés émettent leur offre en plaçant de l’argent sur ce contrat. Puis, une fois les enchères terminées, le propriétaire appelle la fonction de vente de son objet. Cette fonction sélectionne alors automatique- ment la meilleure offre et transfère la propriété de l’objet au meilleur ache- teur. Les autres enchérisseurs sont alors automatiquement remboursés de leur mise par le smart contract et le vendeur reçoit automatiquement son argent. De cette façon, toutes les transactions sont sécurisées par le smart contract et le réseau, sans intervention de tiers de confiance. Oracles Dans la section précédente, nous avons vu que les smart contracts per- mettent l’automatisation des transac- tions selon des conditions programmées. Cependant, les conditions sont limitées à des informations internes de la block- chain : les informations sur les transac- tions et le code source du smart contract. C’est ici qu’interviennent les « oracles ». Ils fournissent un service qui permet la communication entre la blockchain et le monde extérieur. De cette façon, un smart contract peut être au courant de la météo, des résultats d’un match de football, des informations de vol d’un avion spécifique, etc. puis utiliser ces informations dans le calcul de son état. Il est également possible de produire des données à destination du monde réel à partir de la blockchain. Par exemple, afin d’informer un utilisateur par courrier électronique de l’exécution du contrat. Organisation autonome décentralisée (Decentralized Autonomous Organization, DAO) Une organisation autonome décen- tralisée, ou DAO, est une organisation qui repose sur les règles mises en œuvre dans des smart contracts. L’exemple de DAO la plus célèbre, mise en œuvre sur Ethereum, s’appelle “the DAO”, qui a été conçue pour financer de manière participative (crowdfunding) des pro- jets à but lucratif. Ce qui l’a rendue si célèbre, c’est que, lancé en mai 2016, ce projet a réussi à collecter l’équivalent d’environ 150 millions de dollars en 28 jours. Malheureusement, un bug dans le programme informatique “the DAO” a été exploité pour détourner une par- tie de cet argent (environ 50 millions de dollars), soulignant ainsi les risques et la faible maturité de la technologie [5]. À la suite de ce bug, le projet a été arrêté et un hard fork de la blockchain Ethereum a permis de rembourser les montants collectés auprès des partici- pants. Malgré cet incident malheureux, le concept général de DAO continue de représenter, à juste titre, une perspec- REE N°2/2018 Z 65 Les fondamentaux de la blockchain tive intéressante pour les applications blockchain. Confidentialité des données La notion de confidentialité englobe deux notions : s UNE TRANSACTION EST CONSIDÏRÏE ANO- nyme si nous ne pouvons pas identi- fier son émetteur/destinataire ; s UNETRANSACTIONESTCONSIDÏRÏEPRIVÏE si l’objet et le montant de la transac- tion sont inconnus. Plusieurs outils cryptographiques peuvent être utilisés pour garantir la confidentialité des données. Citons le chiffrement homomorphe, qui permet de réaliser des calculs sur des données chiffrées sans avoir besoin au préalable de les déchiffrer. Citons également la technique de preuve à divulgation nulle de connaissance (Zero-Knowledge proof), qui permet à un interrogateur de vérifier qu’une information secrète est véridique, sans avoir à connaître réelle- ment le secret. Citons enfin la signature de cercle (Ring Signature), un protocole qui permet à une entité de signer une transaction avec une clé appartenant à un ensemble de clés, sans révéler quelle clé a effectivement signé la transaction. Références [1] S. Nakamoto, “Bitcoin: A peer-to- peer electronic cash system”, May 2009: https://bitcoin.org/bitcoin.pdf [2] Buterin, Vitalik. “A next-generation smart contract and decentralized application platform.” White paper (2014). [3] A. Poelstra. On Stake and Consensus. https://download.wpsoftware.net/ bitcoin/pos.pdf [4] Juan A. Garay, Aggelos Kiayias, Nikos Leonardos: The Bitcoin Backbone Protocol: Analysis and Applications. EUROCRYPT (2) 2015: 281-310: https://eprint.iacr.org/2014/765.pdf [5] N. Atzei, M. Bartoletti, T. Cimoli, A survey of attacks on Ethereum smart contracts, IACR Cryptology ePrint Archive 2016: 1007 (2016) [6] M. Castro, B. Liskov, Practical Byzantine Fault Tolerance, Procee- dings of the Third Symposium on Operating Systems Design and Im- plementation, New Orleans, USA, February 1999 [7] M. Vukolic: The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication. LNCS 9591, Proc. iNetSeC 2015. [8] K. Croman, C. Decker, I. Eyal, A. E. Gencer, A. Juels, A. Kosba, A. Miller, P. Saxena, E. Shi, E. Gün Sirer, D. Song, and R. Wattenhofer, On Scaling Decentralized Blockchains, FC 2016 International Workshops L'AUTEUR Eric Thea est coordinateur tech- nique du programme territoires intelligents de l’IRT SystemX. Il tra- vaille sur les thèmes de la mobilité, de l’énergie et des nouveaux usages basés sur la blockchain dans la ville de demain. Il est diplômé de l’Ecole polytechnique et de l’université de Stanford.