Comment repérer une blockchain à moitié cuite PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Comment repérer une blockchain à moitié cuite

Quand les chaînes et les blocs ne servent à rien

Environ 18 mois se sont écoulés depuis que le secteur financier s'est réveillé, en masse, aux possibilités de blockchains autorisées, ou pour utiliser le terme plus général de «registres distribués». La période écoulée depuis a vu un tsunami d'activités, notamment des rapports de recherche, des investissements stratégiques, des projets pilotes et la formation de nombreux consortiums. Personne ne peut accuser le monde bancaire de ne pas prendre au sérieux le potentiel de cette technologie.

Naturellement, la croissance explosive des projets de blockchain a conduit au développement de plateformes blockchain autorisées, sur lesquelles ces projets sont construits. Par exemple, notre produit MultiChain l'utilisation a triplé au cours de la dernière année, que nous mesurions le trafic Web, les téléchargements mensuels ou les demandes commerciales. Et bien sûr, il existe de nombreuses autres plates-formes, telles que BigChainDB, Chaine, Corde, Crédits, Éléments, Eris, Tissu, Ethereum (déployé dans un réseau fermé), HydraChaîne ainsi que Chaîne ouverte. Sans oublier encore plus de startups qui ont développé une sorte de plateforme blockchain mais ne l'ont pas rendue publique.

Pour les entreprises qui souhaitent explorer et comprendre une nouvelle technologie, une abondance de choix est généralement une bonne chose. Cependant, dans le cas des chaînes de blocs, qui restent encore vaguement définies et mal comprises, cette corne d'abondance présente un inconvénient important: de nombreuses plates-formes de «blockchain» disponibles ne traitent pas réellement le problème principal qu'elles sont censées résoudre. Et quel est ce problème? Permettez-moi de citer le succinct définition vidéo par Richard Gendal Brown, CTO de R3, en entier:

Un registre distribué est un système qui permet aux parties qui ne se font pas entièrement confiance de parvenir à un consensus sur l'existence, la nature et l'évolution d'un ensemble de faits partagés sans avoir à s'appuyer sur un tiers centralisé de confiance.

Pour prendre un exemple extrême, considérons un tas de briques Lego attachées ensemble avec de la ficelle. Si nous utilisons le terme «chaîne de blocs» pour décrire cet article de mode, qui peut dire que nous ne le décrivons pas avec précision? Et pourtant, cette chaîne de blocs particulière n'aidera pas plusieurs parties à partager en toute sécurité et directement une base de données sans intermédiaire central. De même, de nombreuses plateformes de «blockchain» font quelque chose en rapport avec les chaînes de blocs, mais manquent également des propriétés nécessaires pour servir de base à une base de données peer-to-peer.

Comment repérer une blockchain à moitié cuite PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
Une autre chaîne de blocs qui n'aide pas au partage de base de données - la source.

Blockchain viable minimum

Afin de comprendre les exigences de base d'un grand livre distribué, il permet de clarifier en quoi ces systèmes diffèrent des bases de données ordinaires, qui sont contrôlées par une seule entité. Par exemple, considérons un système simple pour suivre qui détient les actions d'une entreprise particulière. Le grand livre, tel qu'implémenté dans une base de données, comporte une ligne pour chaque propriétaire contenant deux colonnes: l'identifiant du propriétaire, tel que son nom, et la quantité correspondante d'actions.

Voici six façons cruciales dont ce système pourrait faire échouer ses utilisateurs:

  • Falsification: Transfert d'actions d'une personne à une autre sans l'autorisation de l'expéditeur.
  • Censure: Refuser de répondre à la demande d'une personne de transférer des actions ailleurs.
  • Renversement: Annuler un transfert qui a eu lieu à un moment donné dans le passé.
  • Illégitimité: Modification de la quantité totale d'actions dans le système sans action correspondante de l'émetteur.
  • Incohérence: Donner des réponses différentes aux demandes de différents utilisateurs.
  • Temps d'arrêt: Ne répond pas du tout aux demandes d'informations entrantes.

En raison de toutes ces possibilités, les actionnaires doivent maintenir un haut niveau de confiance dans la personne qui gère ce grand livre en leur nom. Construire et gérer une organisation digne de cette confiance entraîne des tracas et des coûts considérables.

Les chaînes de blocs ou les registres distribués suppriment la nécessité de ce type d'opérateur de base de données central, en permettant aux utilisateurs d'une base de données d'interagir directement entre eux sur une base d'égal à égal. Dans notre exemple, les actionnaires pourraient en toute sécurité détenir leurs actions sur une blockchain qu'ils gèrent collectivement, et effectuer des transferts entre eux instantanément sur cette chaîne. (L'inconvénient est une perte importante de confidentialité entre les utilisateurs de la chaîne, que nous ne traiterons pas ici, mais je l'ai précédemment longuement discuté.)

Tout cela nous ramène à la question des plateformes blockchain. Afin de servir de base viable pour le partage de base de données peer-to-peer, une blockchain doit protéger ses participants contre les six types de défaillance de la base de données - falsification, censure, annulation, transactions illégitimes, incohérence et temps d'arrêt. Bien que de nombreux produits sur le marché répondent à ces exigences, bon nombre d'entre eux sont insuffisants. J'appelle ces blockchains "à moitié cuites" car elles peuvent répondre quelques de ces risques, mais pas tous. À certains égards au moins, les utilisateurs de la base de données restent tributaires du bon comportement d'un seul participant, ce qui est précisément le scénario que nous voulons éviter.

Ces blockchains à moitié cuites existent dans un certain nombre de variétés, mais trois archétypes se distinguent comme les plus courants ou les plus évidents. Je ne vais pas nommer des produits individuels car, eh bien, je ne veux pas offenser. La communauté des startups blockchain est suffisamment petite pour que la plupart d'entre nous se connaissent lors de conférences et d'autres réunions, et les interactions ont tendance à être positives. Néanmoins, si des blockchains (dans le sens de bases de données peer-to-peer utiles) émergeront jamais comme une catégorie de produits cohérente, il est important de faire la distinction entre les solutions semi-cuites et réelles.

La blockchain d'un seul valideur

Un modèle que nous avons vu à plusieurs reprises est une chaîne de blocs dans laquelle un seul participant peut générer les blocs dans lesquels les transactions sont confirmées. Les transactions sont envoyées à ce nœud unique au lieu d'être diffusées sur le réseau dans son ensemble, leur acceptation est donc soumise aux caprices de ce parti plutôt qu'à une sorte de consensus majoritaire. Pourtant, une fois qu'un bloc a été construit par cette partie centrale, il est diffusé aux autres nœuds du réseau, qui peuvent confirmer indépendamment la validité des transactions à l'intérieur et enregistrer le nouveau bloc localement et en permanence.

Pour revenir à nos six formes de dysfonctionnement de la base de données, ce type de blockchain est loin d'être inutile. Les transactions doivent être signées numériquement par l'entité dont elles déplacent les fonds, afin qu'elles ne puissent pas être falsifiées par la partie centrale. Ils ne peuvent pas être inversés car chaque nœud conserve sa propre copie de la chaîne. Et les transactions ne peuvent pas effectuer des opérations illégales comme la création d'actifs à partir de rien, car chaque nœud valide indépendamment chaque transaction pour l'exactitude. Enfin, chaque nœud conserve sa propre copie de la base de données, de sorte que son contenu est toujours disponible pour la lecture.

Malheureusement, quatre sur six ne suffisent pas. Le nœud de validation peut facilement censurer des transactions individuelles, en refusant de les inclure dans les blocs qu'il crée. Même si les opérateurs de ce nœud sont honnêtes, une défaillance du système ou des communications peut le rendre indisponible, entraînant l'arrêt de tout le traitement des transactions. De plus, selon la configuration, le nœud de validation peut être en mesure de transmettre différentes versions de la blockchain à différents participants. En termes de censure et de cohérence, la base de données contient toujours un point de défaillance unique, sur lequel reposent tous les autres nœuds.

Une plate-forme propose une variante de ce schéma, dans lequel les blocs sont générés de manière centrale par un seul nœud, mais un quorum d'autres nœuds désignés les signe pour indiquer un consensus. En termes de risque d'incohérence, cela aide certainement. Les nœuds du quorum ne prêteront leurs signatures qu'à une seule version de la blockchain, qui peut donc être considérée comme faisant autorité. Néanmoins, les nœuds de quorum ne peuvent pas aider si le générateur de bloc censure les transactions ou perd sa connexion à Internet. En fin de compte, ce type de blockchain utilise toujours une architecture concentrateur et rayon, plutôt qu'un réseau peer-to-peer.

La blockchain d'état partagé

Techniquement parlant, il existe de nombreuses similitudes entre les chaînes de blocs et les bases de données distribuées plus traditionnelles telles que Cassandra et MongoDB. Dans les deux cas, les transactions peuvent être lancées par n'importe quel nœud du réseau et doivent atteindre tous les autres nœuds dans le cadre d'un consensus sur l'état de développement de la base de données. Les chaînes de blocs et les bases de données distribuées doivent faire face à la latence (retards de communication qui découlent de la distance entre les nœuds) et à la possibilité que certains nœuds et / ou liaisons de communication échouent par intermittence.

Les bases de données distribuées existent depuis un certain temps, donc tout développeur de plateforme de blockchain ferait bien de comprendre leurs algorithmes de consensus et les stratégies qu'ils utilisent pour ordonner les transactions à l'échelle mondiale et résoudre les conflits. Néanmoins, il est important de ne pas aller trop loin dans la comparaison, car les blockchains doivent faire face à un défi supplémentaire crucial - une absence de confiance entre les nœuds de la base de données. Alors que les bases de données distribuées se concentrent sur la fourniture d'évolutivité, de robustesse et de hautes performances dans les limites d'une seule organisation, les chaînes de blocs doivent être repensées afin de sécuriser traverser ces limites.

Pour revenir à nos six types de risques de base de données, un nœud dans une base de données distribuée n'a qu'à se soucier des temps d'arrêt, c'est-à-dire de la possibilité que d'autres nœuds deviennent indisponibles. Les nœuds peuvent supposer en toute sécurité que chaque transaction et message sur le réseau est valide et ne sont pas concernés par la contrefaçon, la censure, le renversement, l'illégitimité ou l'incohérence. Leur pire problème est de traiter deux transactions simultanées mais valides, lancées sur des nœuds différents, qui affectent la même donnée. Résoudre ces conflits n'est en aucun cas trivial, mais c'est toujours beaucoup plus facile que de se soucier de "Défauts byzantins», Dans lequel certains nœuds agissent délibérément pour perturber le fonctionnement des autres.

Une base de données ne peut être partagée qu'en toute sécurité à travers approuver les limites si les nœuds traitent toutes les activités du réseau avec un certain degré de suspicion. Par exemple, chaque transaction qui modifie la base de données doit être signée numériquement individuellement car, dans une architecture peer-to-peer, il n'y a pas d'autre moyen de connaître son véritable point d'origine. De même, chaque message entrant, comme l'annonce d'un nouveau bloc, doit être évalué de manière critique pour son contenu et son contexte. Contrairement aux bases de données distribuées, les nœuds ne doivent pas pouvoir modifier immédiatement et directement l'état d'un autre nœud.

Certaines plateformes de «blockchain» ont été développées en commençant par une base de données distribuée, et en saupoudrant certaines fonctionnalités sur le dessus pour les rendre plus blockchainy. Par exemple, en regroupant les transactions en blocs et en stockant les hachages (empreintes digitales) de ces blocs dans la base de données, ils visent à ajouter une forme d'immuabilité. Mais à moins que chaque nœud ne soit sûr que sa liste de hachages ne peut pas être modifiée par un autre nœud, ce type d'immuabilité est facilement joué. La réponse standard à ces critiques est que chaque problème de sécurité peut être résolu avec suffisamment de temps et de codage. Mais c'est un peu comme détenir des prisonniers dans un champ ouvert et essayer de les empêcher de s'échapper avec des fils de sécurité et des fossés. Il est beaucoup plus sûr d'utiliser une structure en béton spécialement conçue, dont les portes sont verrouillées et dont les fenêtres sont barrées.

La blockchain d'un nuage

Le phénomène de loin le plus étrange que j'ai vu est celui des plateformes de blockchain auxquelles on ne peut accéder que via la plateforme en tant que service de leur développeur basée sur le cloud. Pour être clair, nous ne parlons pas de certains des participants d'une blockchain choose pour héberger leurs nœuds sur le fournisseur de cloud de leur choix, comme Microsoft Azure or Amazon Web Services. Il s'agit plutôt d'une blockchain qui peut uniquement être accessible via des API exposées par les serveurs d'une entreprise qui «l'héberge».

Accordons, pour le bien de l'argument, qu'un fournisseur de blockchain centralisé a vraiment un groupe de nœuds fonctionnant sous son contrôle. Quelle différence cela fait-il pour les utilisateurs du système qui envoient des demandes d'API et reçoivent des réponses? Les participants n'ont aucun moyen d'évaluer si les transactions de chacun ont été traitées sans omission ni erreur. Peut-être que le service central fonctionne mal, ou peut-être qu'il censure ou annule délibérément certaines transactions. Et si vous pensez que le fournisseur de blockchain n'a aucune raison de le faire, pourquoi ne pas les utiliser pour héberger une base de données centralisée régulière à la place? Vous obtiendrez un produit plus mature avec de meilleures performances et vous ne subirez aucun des risques de travailler avec de nouvelles technologies. En bref, les blockchains centralisées sont à peu près aussi utiles que Lego sur une chaîne.

Résoudre le mystère

Nous avons maintenant vu trois types de plates-formes qui se vendent comme des «blockchains» et utilisent en fait une chaîne de blocs, mais qui ne résolvent pas le problème fondamental pour lequel ces systèmes sont conçus. Pour récapituler, il s'agit de permettre à une seule base de données d'être partagée en toute sécurité et directement au-delà des frontières de confiance, sans intermédiaire central.

En plus de souligner ce phénomène particulier, je pense qu'il est instructif d'examiner ce qui pourrait le sous-tendre. Pourquoi tant de startups blockchain construisent des produits qui ne remplissent pas la promesse de cette technologie, n'atteignant souvent rien de plus que les bases de données centralisées ou distribuées traditionnelles? Pourquoi tant de gens talentueux perdent-ils autant de temps?

Je peux voir deux classes principales d'explication - technique et commerciale. Pour commencer avec la technique, il est plutôt difficile de créer des systèmes de consensus distribués qui peuvent tolérer qu'un ou plusieurs nœuds se comportent de manière malveillante de manière imprévisible. Dans le cas de MultiChain, nous avons quelque peu triché, en utilisant l'implémentation de référence durcie au combat de Bitcoin comme point de départ, puis en remplaçant la preuve de travail par un algorithme de consensus structurellement similaire appelé «diversité minière». Les équipes développant un nœud de chaîne de blocs à partir de zéro doivent réfléchir profondément aux processus asynchrones et contradictoires - une combinaison dont peu de programmeurs ont l'expérience. Je peux certainement comprendre la tentation de prendre un raccourci, comme l'utilisation d'un seul nœud pour générer des blocs, ou le ferroutage sur une base de données distribuée existante, ou uniquement l'exécution de nœuds dans un environnement approuvé. Le choix de l'un d'eux rend sans aucun doute la vie plus facile pour les développeurs, même si cela sape le point entier.

Quant aux raisons commerciales, chaque startup semble aborder l'opportunité de la blockchain sous un angle différent. Chez Coin Sciences, nous nous concentrons sur le fait de devenir un fournisseur de logiciels (de base de données), nous distribuons donc MultiChain gratuitement tout en développant un nœud premium avec des fonctionnalités supplémentaires. D'autres startups veulent vendre des services d'abonnement, elles vont donc naturellement construire une plateforme que les clients ne peuvent pas héberger eux-mêmes. Certains espèrent contrôler de manière centralisée une blockchain ou aider leurs partenaires à le faire (une ambition étrange pour une technologie de désintermédiation!) Et sont naturellement attirés par les algorithmes de consensus qui reposent sur un seul nœud. Et enfin, il y a des entreprises dont l'objectif principal est de vendre des services de conseil, auquel cas leur plate-forme n'a pas besoin de fonctionner du tout, tant que son site Web attire de gros clients.

Un autre problème est peut-être que certaines sociétés de blockchain sont dirigées par des personnes qui regorgent sans aucun doute de talent, mais qui ne comprennent pas bien la technologie elle-même. Dans les startups qui se forgent un nouveau domaine, il est probablement vital que les décisions stratégiques soient prises par des personnes qui comprennent la nature de ce domaine et en quoi il diffère de ce qui précède. Pas mal de startups blockchain semblent s'être peintes dans un coin en poursuivant une vision de produit qui est attrayante pour leurs clients, mais qui ne peut pas réellement être construite.

En tant qu'utilisateur de blockchains, comment pouvez-vous éviter d'être attrapé par ces erreurs? Lors de l'évaluation d'une plate-forme blockchain particulière, assurez-vous de savoir si elle remplit les six exigences du partage de base de données peer-to-peer en toute sécurité: prévention des temps d'arrêt et des incohérences, ainsi que de la contrefaçon de transaction, de la censure, de l'inversion et de l'illégitimité. Et méfiez-vous des explications qui consistent à marmonner trop ou à agiter la main - elles signifient probablement que la réponse est non.

Veuillez poster vos commentaires sur LinkedIn.

Source : https://www.multichain.com/blog/2016/12/spot-half-baked-blockchain/

Horodatage:

Plus de Multichain