Qu'est-ce que la blockchain et comment ça marche?

Si vous êtes intéressé par la technologie, il y a de fortes chances que vous ayez probablement entendu les termes Bitcoin, Crypto, Ethereum ou même «registres distribués et décentralisés».

Vous avez probablement entendu des gens parler de crypto-monnaie et d'algorithmes de chiffrement, de la fin des «intermédiaires», etc.

Il est facile de supposer que la crypto-monnaie (par exemple: Bitcoin, Ripple, Ethereum, Litecoin, etc.) est la même que la blockchain. Ils ne sont pas.

Les crypto-monnaies sont une application intelligente d'une technologie beaucoup plus intelligente - la Blockchain.

Dans cet article, je couvrirai certains des concepts de base de la blockchain afin que vous compreniez ce qu'elle est, comment elle doit être conceptualisée et ce qui peut être construit dessus.

Mais comme pour toutes choses, elles ont plus de sens si vous comprenez pourquoi elles ont été inventées, avant d'entrer dans ce qu'elles font. Ce contexte vous aidera à comprendre quel problème la blockchain a été conçue pour résoudre.

Pourquoi utiliser la blockchain?

Excellente question. Tellement content que vous ayez demandé. Asseyons-nous et faisons une petite expérience de pensée.

Que se passe-t-il si vous et votre meilleur ami menez indépendamment et séparément la même campagne de pétition? Disons que c'est pour la cause «Libérez les hamsters».

Disons que vous le conduisez dans un ordre identique dans la même banlieue, mais que vous obtenez différents ensembles de signatures sur la pétition. Quelle version de la pétition signée est la «source de vérité»?

Vous auriez besoin de retracer vos sentiers séparés, une signature à la fois, pour localiser le dernier écart. Et puis vous devrez travailler plus en arrière pour identifier le premier résultat qui a divergé entre vos feuilles de signature. Avant cette divergence de racine, toutes les autres signatures sur les deux listes doivent correspondre.

Vous le savez alors avant cette divergence. Les deux listes sont en accord, donc ces signatures représentent le nombre minimum de personnes qui ont signé pour soutenir la libération des hamsters.

Bien que cela puisse bien fonctionner pour les hamsters et les petites enquêtes de banlieue, cela ne fonctionne pas aussi bien dans le monde numérique. Ou le vote, les opérations bancaires, les transactions financières, le transfert de titres fonciers, l'exécution des obligations contractuelles, etc. Vous avez besoin de «tiers de confiance» indépendants pour vérifier une chaîne d'événements et vous assurer solennellement que la «chaîne de contrôle» n'a pas été interrompue.

Une «chaîne de contrôle» peut parfois aussi être appelée «provenance» - ils signifient tous deux la même chose: la séquence des événements historiques concernant les données en question.

C'est pourquoi vous avez des gouvernements qui ont le dernier mot sur votre identité, et les votes doivent être physiquement comptés et recomptés par des centaines de bénévoles, et les greffiers dans les bureaux miteux tiennent des registres et des certificats pour confirmer si vous êtes ou non propriétaire de votre ferme / clôture blanche bungalow.  

C'est pourquoi vous avez besoin d'intermédiaires financiers pour vous assurer que lorsque vous achetez la poupée Darth Vader de votre objet de collection, à l'aide d'une carte de crédit, l'argent (valeur) est «retiré» de votre compte et «placé» sur le compte du vendeur.

C'est ce qu'on appelle techniquement le «problème de la double dépense» - comment vous assurer que vous ne dépensez pas deux fois le même argent? Sans quelqu'un pour faire cela, vous pourriez dépenser de l'argent et en même temps continuer à conserver cet argent.

C'est donc vraiment un gros problème - la vie moderne exige que nous comptions, fassions confiance et payions pour des intermédiaires tiers «de confiance» pour garantir que la valeur (l'argent) «change de mains» numériquement. C'est pourquoi Visa et MasterCard existent, et pourquoi PayPal et d'autres sont liés à vos comptes bancaires.

Au cœur de la blockchain, pourquoi ce problème: comment savoir qu'une séquence d'événements n'a pas été falsifiée pour modifier l'état actuel?

C'est là que la blockchain s'inscrit. Clair, jusqu'ici?

Comment fonctionne la blockchain

Dans un souci de communiquer un concept avec simplicité, je peux prendre des libertés avec certains des aspects techniques sous le capot de cette technologie. Mon objectif est de vous faire comprendre ce que c'est et d'avoir un modèle mental de son fonctionnement. Pour cela, je devrai peut-être être un peu lâche avec précision afin d'améliorer les chances de compréhension, en particulier pour les anglophones non natifs.

Il est essentiel de se rappeler que la blockchain est une technologie - un code logiciel mathématiquement complexe pour être spécifique. Et Bitcoin (ou Ethereum ou l'un des autres cryptos proposés) ne sont que des applications de cette technologie.

Les principes clés sont donc:

  • Les blockchains sont «minées» (produites par la dépense d'efforts, comme dans l'extraction de l'or) par des ordinateurs puissants et gourmands en ressources - appelés nœuds, qui se trouvent sur le même réseau.
  • Les chaînes d'enregistrements de transactions chiffrés numériquement et horodatés sont regroupées en «blocs», qui sont conservés sur un «registre» par chaque nœud. Au fur et à mesure que les transactions sont ajoutées à un bloc, les blocs sont liés entre eux linéairement et chronologiquement comme des «chaînes». Ensuite, l'intégralité de l'enregistrement / du grand livre est synchronisé sur le réseau de nœuds de sorte que toutes les «chaînes» de blocs sur les nœuds doivent raconter une histoire identique de l'histoire d'une transaction donnée. Ainsi nous obtenons "block + chain = blockchain". C'est une liste chaînée longue et compliquée.
  • Chaque bloc d'une chaîne a son propre identifiant - un hachage cryptographique unique et spécifique à chaque bloc. Ce hachage est également stocké dans le bloc suivant de la chaîne, provoquant un lien. Un bloc peut stocker des milliers de transactions et le moindre changement dans les données de ce bloc entraînerait un nouveau hachage. Donc, si un hachage change mais que le bloc suivant a un hachage différent, nous savons que certaines données du bloc précédent ont été falsifiées.
  • Au fur et à mesure que des centaines de nœuds deviennent des milliers de nœuds (et d'autres sont ajoutés tout le temps), chaque nœud doit «s'accorder» sur l'historique des blocs / registres - c'est ce qu'on appelle le «consensus critique». L'un des moyens par lesquels un consensus est atteint est le hachage cryptographique dont nous avons parlé plus tôt.
  • En cas de divergence dans le grand livre (par exemple, le hachage d'un bloc ne correspond pas à la référence du bloc suivant au hachage du bloc précédent), le grand livre avec la plus longue chaîne de transactions valides incorporée sera le "correct" - le source de vérité. Tous les nœuds travaillant sur d'autres (versions plus courtes) de la chaîne passent à la plus longue. Cela maintient le consensus critique (ce bit est extrêmement simplifié, mais suffisant pour le moment).
  • Toute interception vilaine ou modification d'un registre (encore une fois, par exemple, là où le hachage d'un bloc ne correspond pas) créerait immédiatement un écart avec toutes les autres versions. Il aurait également un «historique» de bloc plus court pour le corroborer, ce qui fait de cette version falsifiée un personnage suspect dans le réseau blockchain où la longueur compte (ahem).
  • La réplication de cet écart sur toutes les versions du grand livre - l'ensemble du réseau blockchain - est une tâche si énorme qu'elle est irréalisable sur le plan du calcul, et ne se produirait que si les méchants avaient soudainement le contrôle de la majorité des nœuds minant la blockchain et les changeaient tous. assez rapidement. Ce type d'attaque coordonnée sur la majorité des nœuds du réseau est souvent appelé l'attaque à 51%.

Fait intéressant, Satoshi Nakamoto dit dans le livre blanc original de Bitcoin,

« En tant que telle, la vérification est fiable tant que les nœuds honnêtes contrôlent le réseau, mais elle est plus vulnérable si le réseau est maîtrisé par un attaquant. "  

Cependant, ailleurs, il / elle / l'organisation (on ne sait pas qui est "Satoshi") souligne calmement que pour modifier les transactions passées en blocs, sur tout le réseau de nœuds, il faudrait que l'attaquant refasse la chaîne de garde dans ces blocs, et tous les blocs ajoutés après cela. Ensuite, ils devraient courir comme des fous pour rattraper et surpasser le travail des nœuds qui ne sont pas sous le contrôle du méchant (afin qu'ils puissent réécrire le registre, pour ainsi dire).

Et pour cette raison, «la probabilité qu'un attaquant plus lent rattrape son retard diminue de façon exponentielle à mesure que les blocs suivants sont ajoutés ».

La complexité programmatique, le rythme et le volume des activités nodales font qu'il est difficile pour les contrefacteurs / attaquants de rattraper, et encore moins de dépasser, les nouveaux blocs exploités en permanence.

Cela a du sens. C'est comme le mensonge que vous dites à un membre de la famille sur les raisons pour lesquelles vous ne pouviez pas assister au récital de flûte de leur enfant. Et puis vous devez chasser follement tous les autres membres de la famille et vous assurer que vous leur avez tous dit le même mensonge afin que lorsque la personne d'origine à qui vous avez menti en parle, tout le monde soit conscient de ce mensonge et joue le jeu. Cela semble épuisant.

Pour conclure, la caractéristique déterminante d'une blockchain est qu'il s'agit d'un registre distribué sur de très nombreux nœuds et qu'il est extrêmement gourmand en calcul (coûteux) d'ajouter des nœuds à ce réseau.

Ainsi, chaque grand livre doit être «conscient» de toutes les transactions et doit avoir une version convenue (qui aura la plus longue «chaîne de contrôle» derrière elle) à travers tout le réseau à laquelle la prochaine transaction sera ajoutée.

Comme Satoshi Nakamoto le déclare dans le livre blanc original de Bitcoin, « La seule façon de confirmer l'absence de transaction est d'être au courant de toutes les transactions. "

Surtout, la blockchain «désintermède» la confiance - nous n'avons donc pas besoin de payer des frais de transaction de «tiers de confiance» pour être dignes de confiance et nous garder, ainsi que les contreparties avec lesquelles nous traitons, honnêtes. La blockchain garantit par programme la vérité (provenance) de l'historique des transactions qu'elle contient.

Donc, pourquoi devrions-nous nous soucier?

Eh bien, en se débarrassant du besoin d '«intermédiaires de confiance», tout intermédiaire qui facture des honoraires modestes pour nous donner le cadeau de la certitude doit trouver un nouvel emploi. Et cela a un impact sur les banques qui offrent traditionnellement de tels services d'assurance.  

Cela signifie également que nous pouvons programmer des «contrats intelligents» entre le promettant et le promettant qui reconnaissent automatiquement (numériquement) si cette promesse a été tenue ou non.

Cela a permis à une artiste vraiment férue de technologie comme Imogen Heap de vendre sa musique directement à son public, et de percevoir ses cotisations directement auprès d'eux plutôt que de perdre l'essentiel des revenus au profit des maisons de disques, des managers et d'autres «intermédiaires de confiance».  

Cela changera probablement la manière dont la propriété intellectuelle est protégée, consultée, partagée, distribuée et développée sur Internet.

Cela pourrait même signifier que la flotte de chauffeurs d'Uber négocie directement avec des personnes qui veulent un trajet plutôt que de compter sur Uber pour coordonner et contrôler le flux d'informations et d'argent.

Cela peut signifier que je pourrais vous envoyer directement de petites sommes d'argent pour pratiquement aucun frais (micro-transactions). Cela pourrait signifier que les millions de personnes non bancarisées dans le monde qui possèdent des smartphones peuvent commencer à effectuer des transactions bien au-delà de leurs frontières physiques traditionnelles.

Merveilleusement, les gouvernements regardent au-delà de la simple crypto-monnaie lorsqu'il s'agit de déployer cette technologie - pour enregistrer la propriété foncière, par exemple.

En effet, nous pourrions créer un monde de véritables transactions numériques peer-to-peer pour le transfert de valeur qui soit distribué, horizontalement, supprime le besoin de s'appuyer sur la confiance et nécessite surtout une puissance de calcul extraordinaire pour trafiquer. Ces transactions peuvent se faire entre des personnes, des machines et des appareils.

Il pourrait donc offrir un nouveau paradigme de sécurité pour la protection des données collectées et transférées via «l'Internet des objets».

Personnellement, je crois que la complexité du monde moderne est obscurcie derrière des écrans tactiles intuitifs. La technologie blockchain sera rapidement intégrée à notre univers technologique sans que nous en soyons pleinement conscients - tout comme nous utilisons l'ADN recombinant de levure pour la production d'insuline synthétique depuis les années 1970.

Les changements et les économies de coûts seront appelés de manière générale des changements technologiques, comme cette «chose interreliée» ou une autre expression vague et globale.

Un hic: cela fonctionnera tant que nous pouvons être sûrs qu'un "système sans confiance" codé et conçu par des humains (en qui nous avons confiance?) Fera avancer la cause du manque de confiance dans un monde peu fiable et peu fiable . Vous devrez peut-être lire cette phrase plusieurs fois.

Emballer

OK - vous devriez maintenant être raisonnablement conscient des bases de la blockchain. Mais il y a beaucoup plus à apprendre si cela vous intéresse.

Vous pouvez débattre pour savoir si la blockchain est utile ou surexcitée, révolutionnaire ou ennuyeuse. Mais il est difficile d'ignorer que c'est plutôt cool en tant que concept.

Voici une vidéo vraiment fantastique d'Anders Brownworth qui explique le tout avec une maquette de blockchain. Je vous recommande fortement de le regarder.

Et comme exercice d'apprentissage, vous pouvez créer votre propre blockchain directement dans votre navigateur ou votre ligne de commande. Voici un tutoriel rapide pour savoir comment créer votre propre blockchain.

Si vous avez des commentaires sur cet article ou pensez que j'aurais pu mieux expliquer certaines parties de celui-ci, Tweetez-moi à @ZubinPratap

De plus, je crois que vos ressources les plus précieuses sont votre temps, vos efforts et votre argent. Parmi celles-ci, la ressource la plus importante est le temps, car les deux autres peuvent être renouvelées et récupérées. Donc, si vous allez passer du temps sur quelque chose, assurez-vous que cela vous rapproche de cet objectif.

Dans cet esprit, si vous souhaitez investir 3 heures avec moi pour trouver votre chemin le plus court pour apprendre à coder (surtout si vous changez de carrière, comme moi), rendez-vous sur mon site de cours personnel et saisissez "Udemy "dans la zone de commentaire et laissez votre e-mail.

Aussi, si vous souhaitez en savoir plus sur mon parcours dans le code, consultez l'épisode 53 du podcast freeCodeCamp, où Quincy (fondateur de FreeCodeCamp) et moi partageons nos expériences en tant que changeurs de carrière qui peuvent vous aider dans votre cheminement. Vous pouvez également accéder au podcast sur iTunes, Stitcher et Spotify.