Partager cet article

Blockchain, qu'est-ce que tu es ? Définition d'un mot à la mode dans le secteur

Dave Hudson, auteur du blog Hashingit.com, LOOKS sur le livre blanc de Satoshi pour découvrir ce qu'est une blockchain et ce qu'elle pourrait être...

À l'approche de 2016, les discussions sur la « blockchain » semblent interminables. Ce terme est de plus en plus fréquemment cité, même dans la presse grand public, tandis que, dans le seul secteur de la FinTech, de nombreux fournisseurs et utilisateurs potentiels affirment que la « blockchain » révolutionnera de nombreuses applications.

Cet usage désormais courant suggère qu’il doit s’agir de quelque chose de précisément défini et bien compris, mais cela semble être davantage une question de mantra que de compréhension.

La Suite Ci-Dessous
Ne manquez pas une autre histoire.Abonnez vous à la newsletter Crypto for Advisors aujourd. Voir Toutes les Newsletters

Les chambres d'écho d'Internet résonnent dans de nombreuses opinions, mais les tentatives pour trouver une signification précise semblent se heurter à un désaccord consternant. Pour aller au-delà des hyperboles marketing, nous devons absolument répondre à certaines questions.

Qu'est-ce que c'est ? Qu'est-ce que ce n'est T ? Que pourrait-elle être ? Serait-ce quelque chose qui nous permettrait de construire des systèmes nouveaux et durables ? En bref, quelle est l'essence de la blockchain ?

Le livre blanc de Satoshi

Presque toutes les discussions sur les blockchains commencent par leLivre blanc de Satoshi, mais c'est ce fondement même qui nous met sur la voie de la confusion. Ni les termes « blockchain » ni « blockchain » n'y apparaissent ; il y a 67 utilisations de « block » et 27 de « chain », mais aucune de « block chain » ou « blockchain ». Ceci mis à part, voyons où cette origine nous mène.

Le livre blanc est court : il ne compte que neuf pages. La première mention des termes « bloc » et « chaîne » apparaît en bas de la page 2, section 3, où est abordé un serveur d'horodatage de base. Auparavant, le livre blanc décrit une série d'objectifs de conception liés à la conception de Bitcoin , comme la possibilité pour deux parties d'effectuer des transactions sans avoir à faire confiance à un tiers.

L'énoncé des objectifs de conception est fondamental. Il pose les bases d'une mise en œuvre visant à atteindre ces objectifs, où les caractéristiques se superposent, mais il est instructif d'examiner le rôle de chaque nouvelle couche.

Dans notre quête de la nature d’une blockchain, nous devons veiller à rechercher des éléments qui sont ses attributs, plutôt que des caractéristiques de cette première implémentation.

Transactions

La section 1 du livre blanc est une introduction, et c'est la section 2 qui apporte les éléments concrets. Cette section présente une cryptomonnaie, mais elle est décrite comme une chaîne de transactions au cours de laquelle la cryptomonnaie est attribuée à de nouveaux propriétaires. La cryptomonnaie est en réalité une métaphore de l'historique des transactions liées.

Il est intéressant de noter que la section 2 décrit également comment un système centralisé n’a T réellement besoin de faire cela.

Blocs et chaînes

La section 3 nous présente l'essence du modèle de conception qui décrit le mieux les bases d'une blockchain. Elle est définie comme un ensemble de blocs de données incrémentiels, chacun pouvant être identifié par un hachage cryptographique de son contenu. De plus, chaque bloc intègre le hachage cryptographique du bloc précédent pour garantir la construction d'une chaîne.

Les hachages de bloc sont publiés comme preuve largement attestée, démontrant l'existence des données du bloc et du hachage précédent. La modification du prédécesseur ou des autres données du bloc entraînerait une signature de hachage différente, non conforme à la vue largement attestée.

Ces caractéristiques sont toutes fondamentales, et sans elles, rien d'intéressant n'est possible. Ce qui est tout aussi intéressant, cependant, est ce qui n'est pas mentionné comme nécessaire à ce stade. Il n'est fait aucune mention de monnaies, de réseaux peer-to-peer, de minage, ETC Il est plutôt suggéré que la publication des hachages sous une forme largement diffusée serait suffisante, les deux exemples étant donnés comme une publication dans un journal ou une publication sur Usenet.

Bien que nous observions certaines caractéristiques explicites, celles-ci conduisent à quelques caractéristiques implicites :

La publication des hachages n'a de sens que si ces mêmes hachages peuvent être recalculés indépendamment par un observateur externe disposant uniquement des données des blocs de la chaîne. C'est cette caractéristique qui permet aux observateurs de ne pas avoir à faire confiance à l'auteur de la chaîne de blocs ; ils peuvent ainsi comparer eux-mêmes les hachages historiques.

Le recalcul des hachages nécessite que l'algorithme de production des blocs soit déterministe et bien spécifié. Sans cela, notre observateur externe ne peut pas recalculer les hachages.

Activation des opérations peer-to-peer

La section suivante, la section 4, du livre blanc traite de la preuve de travail. La première ligne est intéressante : « Pour implémenter un serveur d'horodatage distribué en pair-à-pair (P2P), nous devrons utiliser un système de preuve de travail similaire à Hashcash d'Adam Back. » La preuve de travail n'est pas nécessaire à la construction d'une blockchain, mais simplement à l'implémentation pair-à-pair du serveur d'horodatage.

Les conceptions ultérieures de Cryptomonnaie ont montré qu'il existe potentiellement d'autres approches qui peuvent également être adoptées ici (par exemple : des formes de preuve d'enjeu ou des hybrides des deux), mais si nous sommes satisfaits d'une approche client-serveur, aucune de ces approches n'est réellement nécessaire.

Cela ne veut pas dire que la preuve de travail ne pourrait pas avoir d’autres utilisations avec une conception de blockchain, mais aucune ne semble fondamentale pour notre quête.

Réseau et au-delà

La section 5 décrit les caractéristiques d'implémentation du réseau Bitcoin . Rien ici n'étend explicitement le concept de blockchain, ni ce qu'il pourrait nécessiter. En effet, ni les sections 6, 7, 8, 9, 10, 11 ni 12 (la dernière section) ne proposent explicitement de nouvelles idées sur ce que pourrait être une blockchain.

Réponses à nos questions

Si le livre blanc de Satoshi est à l'origine de la conception de la blockchain, il reste une définition assez vague, mais c'est peut-être là l'aspect le plus éclairant. Il est très explicite sur les choix de conception et leur finalité, ce qui tend à nous faire comprendre que nombre des affirmations concernant les « blockchains » relèvent en réalité de la mise en œuvre plutôt que de l'architecture.

Posons-nous alors quelques questions précises !

Une blockchain doit-elle contenir des pièces ?

Le livre blanc présente une discussion intéressante sur la nécessité d'inciter les acteurs assurant la sécurité du réseau P2P à rester honnêtes et à introduire des « monnaies » dans le système. Cependant, cette discussion s'inscrit clairement dans le contexte du réseau P2P. Le concept même de monnaies est considéré comme inutile avec une « monnaie de confiance ».

Une monnaie de confiance n'est pas souhaitable dans une Cryptomonnaie, mais il ne semble pas nécessaire d'avoir des pièces pour construire une chaîne de blocs liés cryptographiquement. La confiance est une question intéressante à poser, mais nous y reviendrons plus tard.

Une blockchain doit-elle implémenter des contrats intelligents ?

Du point de vue du livre blanc, cela semble peu probable. Le mot « contrat » n'apparaît nulle part.

Une blockchain pourrait-elle permettre des contrats intelligents ? Oui, bien sûr, mais elle pourrait aussi permettre bien d'autres choses.

Une blockchain doit-elle être programmable ?

Là encore, la réponse semble être non. Ni les mots « programme » ni « script » n'apparaissent dans le livre blanc.

Une blockchain doit pouvoir être interprétée par un ou plusieurs observateurs indépendants ; elle est donc clairement construite à partir ONEune ou plusieurs structures de données bien définies. La structure de données du bloc doit contenir un hachage de bloc précédent, et le hachage cryptographique du bloc doit être effectué de manière très spécifique. Cependant, aucune de ces exigences n'exige que la structure de données contienne une quelconque notion de code exécutable.

Une blockchain peut-elle contenir du code ? C'est une question d'implémentation, et la réponse est oui. Bitcoin inclut un langage de script limité, et d'autres systèmes, tels que Ethereum, ont par la suite tenté de prendre en charge des modèles de programmation plus élaborés.

Le choix de soutenir de tels concepts semble davantage relever soit de l'opportunisme, soit d'objectifs de conception plus ambitieux, mais il semble qu'une blockchain n'ait pas plus besoin d'être « programmable » que n'importe quelle autre structure de données de liste chaînée.

Une blockchain est-elle une base de données ?

Une fois de plus, la réponse semble être non. Comme précédemment, le mot « base de données » n'apparaît pas dans le livre blanc.

À la CORE, une blockchain est une structure de données particulière. Les blocs qu'elle contient contiennent des données, mais cela n'en fait pas une base de données ; au mieux, ils représentent le journal des transactions d'une implémentation de base de données spécifique.

De même, il n'existe pas de sémantique pour interroger une blockchain, pas plus qu'il n'en existe pour interroger une liste chaînée. Une implémentation spécifique pourrait permettre d'interroger l'une ou l'autre, mais elle ne définit pas l'objet lui-même.

À titre de comparaison, les paquets IP des paquets TCP véhiculés dans cet article sont définis comme des structures de données dans une série de documents RFC (Request For Comments) de l'IETF (Internet Engineering Task Force). Ces documents décrivent la forme des paquets et leur comportement lors de leur transport. Les destinataires de ces paquets peuvent déterminer eux-mêmes leur validité, indépendamment de toute implémentation réseau entre eux et l'expéditeur.

L'implémentation d'un routeur/pare-feu peut offrir une fonctionnalité permettant de capturer ces paquets afin de les analyser ultérieurement, et peut permettre d'interroger ces paquets dans une base de données. Cependant, rien dans la nature d'un paquet IP ne le transforme en base de données, et rien dans les RFC ne suggère le contraire. Les fonctionnalités d'implémentation et les spécifications sont deux choses très différentes.

Une blockchain est-elle sans confiance ?

La réponse est non, mais c'est parce que la question est trop vaste. Une blockchain permet certes d'exiger moins de confiance que de nombreux systèmes traditionnels, mais toute mise en œuvre requiert néanmoins un certain niveau de confiance.

Le destinataire de blocs de données doit être sûr que ceux-ci ont été livrés sans compromission par un intermédiaire. La distribution P2P des blocs au sein du Bitcoin et des réseaux similaires vise à minimiser la confiance entre pairs, mais même ce modèle présente des failles potentielles. En voici quelques-unes :

  • Nous sommes convaincus que le logiciel blockchain que nous utilisons n'a pas été compromis pour fournir des données falsifiées.
  • Nous sommes convaincus que le système d'exploitation sous lequel notre logiciel blockchain fonctionne n'a pas été compromis pour fournir des données falsifiées.
  • Nous sommes convaincus que les processeurs réseau assurant la connectivité à notre système n’ont pas été compromis pour fournir des données falsifiées.

« Nous avons confiance dans le code » est un mantra intéressant, mais plus de 30 ans de logiciels malveillants, de logiciels espions, ETC, nous indiquent qu'il s'agit d'une stratégie hautement discutable.

La conception d'une blockchain rend les falsifications plus difficiles pour un adversaire et réduit considérablement le risque d'erreurs accidentelles. Nous pouvons désormais faire confiance tout en vérifiant (dans certaines limites), mais cela représente une amélioration significative par rapport à une confiance aveugle. Plus important encore, aucune de ces caractéristiques minimisant la confiance ne fait partie intégrante de la conception du réseau P2P, mais sont intrinsèques au codage des blocs.

Une blockchain doit-elle être sans autorisation ou peut-elle être sans autorisation ?

Une blockchain n'est qu'une structure de données ; la question est donc absurde. Qui a la capacité de lire ou d'écrire une structure de données est une toute autre question.

Laissons de côté cette subtile distinction pour l'instant et faisons comme si la question avait du sens. Prenons le cas du Bitcoin: qui écrit la blockchain ?

La réponse est que les mineurs (ou plus précisément les créateurs de blocs, comme les opérateurs de pools de minage, et non ceux qui se contentent de hacher des blocs) peuvent écrire de nouveaux blocs. Les opérateurs sur le réseau peuvent proposer des transactions candidates à inclure dans les blocs, mais cela ne garantit pas que les blocs contiendront ces transactions. Avec Bitcoin, on parle de « non-permission », car personne n'a besoin d'autorisation explicite pour devenir Maker de blocs.

Cependant, si l'on considère d'autres utilisations potentielles d'une blockchain, on constate qu'il existe un ensemble souvent très bien défini de participants que l'on souhaiterait voir inscrire dans des blocs de données. Dans de nombreux cas, il peut même s'agir ONEun seul participant.

On critique ces utilisations potentielles de la blockchain : cela ne la rend pas plus performante qu'une base de données, mais une base de données conventionnelle exige une confiance aveugle. Son état interne est généralement inconnaissable. Même dans ses utilisations les plus simples, une blockchain peut au moins fournir un moyen de vérifier l'état d'un tel système, et ce, de manière à valider les historiques. Mais ce n'est qu'un aperçu des possibilités !

La blockchain est-elle l’Internet de l’argent (ou l’Internet de quoi que ce soit d’autre) ?

En réalité, non, ou du moins pas tout seul.

Lorsque nous avons examiné l'argument « pas une base de données », nous avons également abordé les raisons pour lesquelles cette affirmation est T . À première vue, l'argument semble séduisant. L'idée est que nous pouvons développer de nombreuses Technologies sur une blockchain, à la manière d'une pile réseau multicouche.

Cette proposition présente de nombreux problèmes, mais le ONE évident est qu'une blockchain n'est qu'une structure de données. Elle est idéale pour transmettre des informations sur Internet, mais T permet rien en soi.

La séparation de la blockchain et de son transport laisse toutefois espérer que les blockchains permettront des applications financières plus fiables sur Internet. Une séparation claire permet également l'expérimentation à chaque niveau de conception du système, une caractéristique clé qui a permis à Internet de connaître un tel succès.

Grâce à Internet, les candidats à toutes les couches de la pile réseau peuvent être testés, remplacés ou modifiés, permettant ainsi aux meilleures conceptions de WIN. De même, l'approche fondée sur les normes a permis à des implémentations disparates de fonctionner ensemble sans entraver la recherche et la monétisation d'avantages commerciaux.

Dans le cas des blockchains, nous avons déjà vu qu’il existe une exigence de prise en charge des observateurs externes et cela impose un niveau d’interopérabilité.

Dernières pensées

Nous avons examiné ce que pourrait être une blockchain, et peut-être entrevu quelques indices de ce qu'elle pourrait permettre. La Technologies qui sous-tend le Bitcoin peut servir à de nombreuses constructions, et l'héritage du bitcoin ne devrait pas se limiter au Bitcoin lui-même ; il a démontré la viabilité de quelque chose de bien plus fondamental.

Le débat sur ce qui constitue une blockchain ne s'arrêtera T là, mais nous devons faire avancer la discussion et résister à l'envie de la laisser devenir simplement un autre mot à la mode en matière de marketing.

Pour y parvenir, nous avons besoin d'une terminologie claire et d'un usage raisonné. Nous devons éviter de confondre des idées différentes et veiller à ce que les revendications Technologies soient réalistes et réalisables. Si nous échouons, le terme « blockchain » finira par perdre tout son sens et devra être remplacé. Cela me semble être une issue défavorable.

Si nous réussissons, l'idée de la blockchain ne sera pas la fin de l'histoire. Au contraire, elle constituera une couche sur laquelle des systèmes toujours plus performants et utiles pourront être construits.

Cet article a été republié avec la permission deHashingit.com. Vous pouvez Réseaux sociaux Dave sur Twitter à @hashingitcom.

Imagevia Shutterstock

Remarque : Les opinions exprimées dans cette colonne sont celles de l'auteur et ne reflètent pas nécessairement celles de CoinDesk, Inc. ou de ses propriétaires et affiliés.

Dave Hudson

Dave Hudson est vice-président de l'architecture logicielle chez Peernova et concepteur de systèmes d'exploitation, de Stacks réseau, de compilateurs et de bases de données. Pour le plaisir, il analyse Bitcoin et les « systèmes de registres cryptographiques » sur son blog hashingit.com. Il est basé à Bangor, au Pays de Galles, et à San José, aux États-Unis.

Picture of CoinDesk author Dave Hudson