Blockchain, le New Kid on the Block

On lit depuis quelques mois que la blockchain est une révolution qui va disrupter la banque. Ca a l’air cool. Mais au fait c’est qui cette chaîne de blocs ?

J’ai donc voulu faire un article pour moi-même afin de résumer les grands principes. Il est volontairement axé sur le fonctionnement de la blockchain, plus sur les cinématiques que sur les usages ou le fonctionnement technique. Pour les usages, vous avez de très nombreuses news qui circulent qui vous vantent les bienfaits de la blockchain. Pour les articles plus techniques, je n’en retiendrai qu’un seul en bas de cette page.

La blockchain qu’est-ce que c’est ?

La blockchain se résume à un grand registre dupliqué sur les noeuds d’un réseau et sur lequel on inscrirait tous les événements que l’on souhaite tracer.

Chaque noeud du réseau est chargé de le tenir à jour et de vérifier les inscriptions qui y sont faites. Chaque noeud dispose du registre au complet. C’est pour cela que le démarrage de Bitcoins est un peu lent. Il faut télécharger la blockchain au complet – environ 1 Go en ce moment.

L’objectif du système de blockchain est d’assurer l’intégrité des informations qui y sont saisies. Pour bitcoin, il s’agit de transactions de monnaie. Mais on pourrait y mettre d’autres choses. skaï’z ze limit.

La transaction

Une transaction, c’est un contrat entre deux personnes sur des termes définis. Afin de rendre ce contrat acceptable entre les parties, les deux représentants de ces parties le signent pour signifier leur accord.

Ainsi chaque utilisateur qui souhaite inscrire une transaction dans le registre dispose d’une clé sécrète et d’une clé publique. La clé secrète sert à apposer la notion d’émetteur – on peut le vérifier avec la clé accessible publiquement – et la clé publique la notion de propriété – seul celui en possession de la clé secrète peut lire le message.

C’est sur ce principe que repose bitcoin pour gérer les transactions. Dans un grand livre de compte réparti au travers du réseau, des transactions sont inscrites avec la date, l’objet de la transaction (le montant pour les bitcoins), l’émetteur, le bénéficiaire ainsi qu’une énigme pour pouvoir réutiliser le contenu de la transaction – les bitcoins en question dans le cas de bitcoin. Souvent il s’agit uniquement de la signature du bénéficiaire, mais on peut très bien imaginer qu’il faille aussi la signature de son conjoint pour pouvoir débloquer le contenu de la transaction et le lier à une nouvelle transaction.

Notre transaction étant constituée, elle est transmise au réseau pour être ajoutée avec d’autres transactions dans un bloc de la chaîne.

Le bloc

Un bloc c’est une page du livre de compte. Les pages du livre de compte sont numérotées. La page 5 est donc située après la page 4.

Techniquement, chaque bloc s’ouvre avec une transaction qui est l’empreinte du bloc précédent – c’est l’équivalent du numéro de page. Le noeud reçoit des transactions des autres noeuds au fil du temps et constitue un bloc avec ceux-ci en les rangeant dans l’ordre de leur arrivée comme on écrirait les transactions sur la page courante.

Un arbre de hashage – Arbre de Merkle – est construit de manière à obtenir la signature de toutes les transactions du bloc dont il est possible de vérifier rapidement l’intégrité.

Blockchain

Blockchain et Arbre de Merkel| Wikimedia, CC BY-SA 3.0

À partir de là il suffirait d’envoyer son bloc dans le réseau pour qu’il soit pris en compte. Sauf qu’avec ce principe rien n’empêche de spammer un réseau ouvert avec des blocs.

Par contre, on peut le rendre tellement coûteux que cela n’en vaut pas la peine.

Ainsi dans chaque bloc, on a introduit un “nonce” qui est un numéro que l’on ajoute dans le bloc, afin de résoudre un défi. L’objectif de ce défi est assez simple puisqu’il s’agit d’obtenir une empreinte du bloc avec beaucoup de zéros consécutifs au début. Autant dire que le processeur est mis à contribution pour arriver à ce résultat. Et c’est justement parce que le bloc a été coûteux à constituer qu’il fait foi auprès du réseau – outre le fait qu’il soit intègre.

A noter que l’opération qui consiste à trouver la “plus petite” empreinte possible s’appelle le minage – et là on raccroche les wagons avec le mining dont on nous rabâche les oreilles depuis des années sur le bitcoin.

Golden Ticket

Golden Ticket |Charlie and the Chocolate Factory, Tim Burton, Warner Bros. Pictures

A ce stade, on a réussi à prouver que le bloc a nécessité une certaine somme de travail et qu’il peut être pris en compte par réseau. il ne s’agit pas d’un spam.

La Blockchain

Évidemment, notre noeud n’est pas le seul à miner et d’autres blocs sont envoyés au réseau. Ces blocs peuvent d’ailleurs contenir des transactions contenues dans notre bloc et d’autres transactions que nous n’avons pas encore reçues. Ils peuvent aussi référencer le même bloc parent ou un autre bloc de la chaîne.

Heureusement le système de blockchains est fait pour qu’il n’y ait qu’une seule chaîne de référence qui fait foi auprès de tous les noeuds.

Quand les blocs arrivent, ils sont vérifiés. S’ils sont bien formés, ils sont ajoutés à la chaîne de bloc et le minage démarre à partir de ce nouveau noeud.

Sauf que parfois, deux ou plusieurs blocs peuvent être générés dans un lapse de temps rapproché et transmis au réseau. Une bifurcation est alors créée pour stocker le second bloc en attendant que l’anomalie soit résolue avec l’arrivée du bloc suivant. Au final c’est la branche la plus longue qui est prise comme référence par tous les noeuds. Cela se résout assez rapidement.

C’est pour cela qu’il faut attendre un peu de temps (6 blocs d’après ce qu’on lira ici et là) pour confirmer une transaction afin d’être sûr que la transaction soit présente sur la chaîne principale.

Pour aller plus loin, il y a le papier original de Satoshi Nakamoto sur le bitcoin

Mais s’il ne fallait retenir qu’un seul article je ne peux que conseiller celui-ci que je viens de découvrir :

https://www.igvita.com/2014/05/05/minimum-viable-block-chain/

On remarquera qu’il y a quelques petites différences par rapport à la blockchain de bitcoin mais tout est décrit dans le détail avec les raisons de chacun des choix. Une référence pour moi.

Image d’entête : Bitcoin Chain, BTC Keychain, CC BY 2.0