00:00 Introduction
02:01 Résoudre le consensus byzantin
09:35 Exigences fondamentales d’une blockchain libre
20:31 L’histoire jusqu’à présent
22:44 S’enrichir rapidement aujourd’hui
24:03 Mini Bitcoin 1/3 - Hashage et signature
29:23 Mini Bitcoin 2/3 - Transactions
34:44 Mini Bitcoin 3/3 - Blocs et preuve de travail
44:47 Mise à l’échelle de la blockchain 1/2 - Paysage applicatif
49:07 Mise à l’échelle de la blockchain 2/2 - Blocs plus grands
57:11 Accélérer la blockchain 1/2
59:30 Accélérer la blockchain 2/2
01:06:54 Renforcer la blockchain
01:14:51 Cas d’utilisation : paiements
01:19:25 Cas d’utilisation : traçabilité passive
01:25:33 Cas d’utilisation : traçabilité active
01:32:47 Cas d’utilisation : recyclage incitatif
01:35:40 Cas d’utilisation : sécurité incitative
01:41:30 Assouplissement des exigences
01:44:53 Conclusion
01:49:35 4.21 Blockchains pour la supply chain - Questions ?

Description

Les cryptomonnaies ont attiré beaucoup d’attention. Des fortunes ont été faites. Des fortunes ont été perdues. Les schémas pyramidaux étaient monnaie courante. Du point de vue des entreprises, la “blockchain” est l’euphémisme poli utilisé pour introduire des idées et des technologies similaires tout en établissant une distance avec ces cryptomonnaies. Des cas d’utilisation de la blockchain existent pour la supply chain, mais des défis abondent également.

Transcription complète

Slide 1

Bienvenue dans cette série de cours sur la supply chain. Je suis Joannes Vermorel et aujourd’hui je vais présenter “Blockchains pour la supply chain”. Les cryptomonnaies ont captivé l’imagination du public, des fortunes ont été faites et perdues, certains criminels ont été arrêtés et emprisonnés, et d’autres suivront. Au milieu de toute cette agitation, le terme “cryptomonnaie” est devenu un peu trop chargé pour les grandes entreprises qui ont tendance à être assez conservatrices. Ainsi, le terme “blockchain” a été adopté comme moyen de distancer l’innovation de toute la folie qui se passe dans le monde des cryptos. Cependant, fondamentalement, les blockchains et les cryptomonnaies sont une seule et même chose.

L’objectif de cette conférence est de comprendre techniquement, en profondeur, ce qui se passe avec les blockchains. Si vous avez des compétences en programmation, à la fin de cette conférence, vous devriez être en mesure de réimplémenter votre propre blockchain si vous le souhaitez. Sur la base de cette compréhension technique nouvellement acquise de la blockchain, nous commencerons à examiner les cas d’utilisation de la supply chain et à évaluer leur viabilité en tant que technologies pour résoudre des problèmes et leur valeur ajoutée en termes de ce qu’elles peuvent apporter aux supply chains. Commençons.

Slide 2

L’origine du Bitcoin est juste étrange. En 2008, sous un pseudonyme, Satoshi Nakamoto, qui est probablement un effort d’équipe, un livre blanc a été publié intitulé “Bitcoin: A Peer-to-Peer Electronic Cash System”. Ce document présente un système et une approche pour une nouvelle forme de monnaie électronique. C’est un document relativement court avec quelques parties mathématiques, et même les parties mathématiques sont partiellement incorrectes.

Le document original indique que le système est censé être sûr si au moins la moitié de la puissance de hachage est du bon côté. Cependant, il a été démontré plus tard dans un article ultérieur publié en 2013, “Majority is Not Enough: Bitcoin Mining is Vulnerable”, que pour maintenir la sécurité du réseau, vous n’avez pas besoin que la moitié de la puissance de hachage soit honnête ; vous avez en réalité besoin de deux tiers plus de la puissance de hachage.

Néanmoins, il existe un livre blanc et un logiciel. Le logiciel est open source, et c’est une implémentation de très basse qualité. Le client Satoshi est de très basse qualité, et pendant la première année après la publication du logiciel, les contributeurs open source ont rapidement corrigé de nombreux bugs et problèmes. Certains de ces problèmes étaient difficiles à résoudre en raison de la conception originale et ont eu un effet durable sur l’ensemble de la communauté. Beaucoup des cryptomonnaies qui existent aujourd’hui sont des forks du client Satoshi original et portent encore, dans une certaine mesure, de nombreux problèmes qui n’ont pas pu être résolus au fil des ans.

Ainsi, nous sommes confrontés à une situation très déconcertante où nous avons un livre blanc qui n’est pas de la meilleure qualité et un logiciel qui est sans doute de très basse qualité, et pourtant l’équipe de Satoshi Nakamoto a fait une découverte stupéfiante. Fondamentalement, le problème était connu sous le nom de problème du consensus byzantin. Il s’agit d’un problème de calcul distribué. Imaginez que vous avez des participants, et tous ces participants peuvent voir ce qui est censé être l’état du système, qui dans le monde numérique peut être considéré comme une longue série de zéros et de uns, une charge utile de données. Les participants peuvent mettre à jour l’état du système, inverser certains bits, ajouter un bit, supprimer un bit, et ils peuvent tous le faire en même temps. Les participants peuvent communiquer entre eux, et le problème du consensus byzantin consiste à ce que tous les participants honnêtes se mettent d’accord à un moment précis sur l’état du système, jusqu’au dernier bit.

Le problème est très difficile si vous avez des participants byzantins qui agissent en tant qu’adversaires, essayant de confondre tous les autres participants. La découverte stupéfiante de Bitcoin est que si nous revenons à 2008 et demandons aux experts, ils auraient probablement dit qu’il ne semble pas possible de résoudre le problème du consensus byzantin de manière entièrement décentralisée sans autorité centrale. Cependant, la découverte de Satoshi Nakamoto, le consensus Nakamoto, est qu’ils ont trouvé un moyen de résoudre ce problème.

La solution est très surprenante. Cela ressemble à un problème algorithmique, mais l’essence de la solution derrière Bitcoin est que Satoshi Nakamoto a résolu ce problème en ajoutant des incitations monétaires, une incitation financière. Ce n’est pas seulement une solution algorithmique ; c’est littéralement un algorithme qui ne fonctionne que parce que, à l’intérieur du système, les incitations monétaires sont entrelacées, donnant aux participants des incitations à agir d’une certaine manière.

Si nous voulons avoir ces incitations en place, nous avons besoin d’une monnaie électronique d’une certaine sorte, afin que nous puissions concevoir ces incitations en premier lieu. C’est exactement ce qui est fait dans Bitcoin. Si vous voulez avoir une monnaie électronique, vous avez au moins deux problèmes très difficiles. Le premier problème est le double dépense. Si vous avez une certaine quantité d’argent numérique représentée par quelques bits d’information, qu’est-ce qui vous empêche de faire une copie de cet argent numérique et de dépenser l’argent une fois pour payer quelque chose, puis de dépenser à nouveau le même argent avec votre copie pour payer autre chose ? Ce problème est connu sous le nom de double dépense, et c’est un problème très difficile résolu par Bitcoin.

Le deuxième problème est l’émission de monnaie. D’où vient cet argent ? La chose intéressante est que généralement, lorsque vous avez un problème très difficile que vous voulez aborder, vous adoptez une approche diviser pour régner, subdivisant votre gros problème en sous-problèmes plus simples et pouvant être résolus séparément. Ensuite, le problème total peut être résolu. La chose intéressante avec Bitcoin est qu’il y a deux problèmes distincts et très difficiles : le double dépense et l’émission de monnaie. Au lieu d’utiliser une approche diviser pour régner, Bitcoin utilise une approche unifier et entrelacer, qui était nouvelle à l’époque, pour résoudre les deux problèmes simultanément. La solution, comme nous le verrons plus tard dans cette conférence, est étonnamment simple.

Slide 3

Cette conférence ne traite pas principalement de ce qui fait d’une monnaie numérique une bonne monnaie, car cela mériterait une discussion à part entière. Néanmoins, les blockchains ne fonctionnent pas sans les incitations financières conçues via les monnaies numériques qui soutiennent la blockchain elle-même. Lorsque nous disons que la cryptomonnaie et les blockchains sont très similaires, l’idée est que si vous voulez avoir une blockchain, vous diffuserez des messages, et ces messages seront des transactions avec un flux d’argent impliqué. La perspective de la cryptomonnaie est que l’accent principal est mis sur l’aspect monétaire, tandis que la perspective de la blockchain est plus intéressée par les métadonnées qui sont superposées aux transactions.

Rappelez-vous que tout le modèle de sécurité de ces systèmes blockchain/cryptomonnaie repose sur les incitations économiques conçues au-dessus du système. Vous ne pouvez pas séparer complètement les objectifs économiques et de cryptomonnaie de la blockchain. C’est juste une question de perspective.

Maintenant, jetons un coup d’œil rapide aux exigences qui accompagnent un système blockchain/cryptomonnaie, et comment nous pouvons potentiellement assouplir ces exigences. La première est l’irréfutabilité. L’irréfutabilité signifie qu’en tant que participant, personne ne peut vous empêcher de diffuser une transaction. Personne ne peut empêcher une transaction valide de se produire. C’est très important, car s’il y a un participant capable de le faire, alors vous avez essentiellement une autorité centrale. De même, aucun participant ne peut empêcher une transaction valide de se produire, mais il n’y a également aucun participant qui peut vous refuser la possibilité d’effectuer une transaction car ils peuvent consommer votre propre monnaie ou faire réussir une transaction invalide. C’est la première exigence.

La deuxième exigence est l’anonymat. Techniquement, Bitcoin est un réseau pseudo-anonyme, mais fondamentalement, lorsque je parle de l’exigence d’anonymat, cela signifie qu’il n’y a pas de liste de participants. Dans une véritable blockchain, les participants peuvent apparaître ou quitter le système à tout moment, sans gardien. Comme les participants peuvent rejoindre ou quitter librement, personne ne suit leur identité. Cela ne signifie pas que cela doit être anonyme ; cela signifie simplement que si vous avez une véritable blockchain canonique, l’exigence d’anonymat, où les participants peuvent rejoindre et partir à leur guise, doit être respectée.

Ensuite, je liste la scalabilité de masse comme une exigence, ce qui est particulièrement difficile pour les blockchains car, comme nous le verrons, ces types de systèmes distribués ne sont pas intrinsèquement faciles à mettre à l’échelle. Au contraire, mettre à l’échelle une blockchain est remarquablement difficile. Fondamentalement, il y a un conflit : si vous laissez n’importe quel participant diffuser un nombre arbitrairement élevé de messages, de transactions ou de mises à jour vers le système, un participant peut inonder l’ensemble du réseau et essentiellement spammer l’ensemble du réseau. Ainsi, toutes les blockchains doivent faire face à ce problème de scalabilité, qui est résolu en concevant des incitations financières.

L’idée est de maintenir le coût d’une transaction, qui est le message élémentaire diffusé sur la blockchain, à environ un dixième de centime. C’est très bon marché - imaginez que vous deviez payer un dixième de centime pour envoyer un e-mail. Ce n’est pas gratuit, mais c’est encore très peu coûteux. Donc, si vous avez une utilisation régulière et que vous souhaitez avoir une transaction associée, par exemple, au mouvement d’un produit dans un entrepôt, c’est bien ; le coût est encore très bas. Cependant, en fixant le coût à 0,1 centime, vous rendez ces transactions trop chères pour un attaquant qui souhaiterait inonder le réseau de milliards de transactions, ce qui est très facile à faire si vous n’avez pas de frais. Chaque transaction doit payer des frais pour son existence et pour soutenir sa diffusion ; sinon, un attaquant pourrait inonder le système distribué sans obstacles.

Donc, les frais de transaction sont un autre aspect de l’ingénierie économique visant à maintenir la viabilité de la blockchain. Vous voulez être en mesure de maintenir ces frais de 0,1 centime à n’importe quelle échelle, car un autre problème de refus de la scalabilité de masse est que si nous avons des millions de transactions, le coût des transactions va exploser. C’est un gros problème que nous ne voulons pas. Nous ne voulons pas avoir une situation où un bus avec 100 personnes veut le prendre à un certain moment, mais il n’y a que 50 places. Si cela se produit, il y aura une sorte de mécanisme d’enchères en place, et le prix des billets va exploser. En termes de blockchain, cela signifie que le coût des transactions va exploser. D’ailleurs, ce genre de problèmes se produit actuellement avec plusieurs blockchains. Par exemple, sur le réseau Bitcoin Core, il est très fréquent que le coût d’une transaction dépasse dix dollars, et c’est un très gros problème.

Maintenant, nous voulons également avoir une latence assez faible. Ce que Satoshi Nakamoto a découvert en 2008, le consensus Nakamoto, fonctionne très bien, mais fondamentalement, c’est un processus très lent. Quand je dis très lent, cela signifie que pour que les participants convergent vers l’état du système, cela prend environ une heure. Ce n’est pas dramatiquement lent, mais ce n’est pas très rapide non plus. Si nous voulons faire quelque chose lié à la chaîne d’approvisionnement, où nous voulons effectuer des paiements ou suivre le mouvement des marchandises, ce serait beaucoup mieux si nous pouvions maintenir la latence du système à environ trois secondes ou moins - le même genre de latences que vous attendriez d’un paiement par carte de crédit rapide.

Enfin, l’un des derniers critères est l’infrastructure. Quand je parle de l’infrastructure logicielle qui soutient la blockchain ou la cryptomonnaie, cela doit être un bien public financé par un contrat social convenu. C’est quelque chose que je crois que Satoshi Nakamoto n’a pas prévu en 2008. Si vous voulez exploiter un système distribué mondial très complexe, il faut mettre en place et entretenir une tonne d’infrastructures logicielles. Le problème est que si vous n’avez pas une sorte de moyen socialement accepté de financer tous ces efforts, des adversaires émergent, non seulement en tant qu’adversaires byzantins dans le réseau qui essaient de tromper les autres participants sur l’état du réseau, mais ils émergent également en tant qu’adversaires qui vont prendre le contrôle du code lui-même et faire des choses avec l’infrastructure logicielle qui vont à l’encontre des intérêts de la communauté élargie. Il est arrivé dans l’histoire des cryptomonnaies que des prises de contrôle hostiles se produisent d’une équipe à une autre, les nouvelles équipes ayant des intérêts totalement divergents de ceux de la communauté élargie. C’est une classe d’attaques, plus de nature d’ingénierie sociale, qui n’étaient pas clairement visibles par Satoshi Nakamoto en 2008. Cependant, après une décennie d’exploitation, ces types d’attaques sont maintenant beaucoup plus clairs pour les observateurs du monde de la crypto.

Slide 4

Maintenant, voici l’histoire jusqu’à présent : il s’agit d’une série de conférences sur la supply chain. Nous faisons partie du quatrième chapitre. Dans le premier chapitre, j’ai présenté mes points de vue sur la supply chain en tant que domaine d’étude et en tant que pratique, et nous avons vu qu’elle nécessite des méthodologies très spécifiques. Tout le deuxième chapitre est consacré aux méthodologies de la supply chain qui conviennent pour opérer dans cet espace. La plupart des méthodologies naïves ne survivent pas au contact avec la réalité, surtout lorsqu’il y a des conflits d’intérêts en jeu. D’ailleurs, de nombreux aspects du deuxième chapitre, où je traite des conflits d’intérêts, sont très pertinents pour la conférence d’aujourd’hui, donc j’invite le public, si vous n’avez pas déjà vu les conférences du deuxième chapitre, à y jeter un coup d’œil. Le troisième chapitre est consacré aux problèmes de supply chain, qui sont littéralement des conférences où je me concentre exclusivement sur les problèmes de supply chain, pas sur les solutions. L’idée est de vraiment comprendre le problème avant de commencer à imaginer des solutions.

Le quatrième chapitre est essentiellement une collection de sciences auxiliaires. La blockchain est un sujet marginal que j’ajoute à la fin de ce chapitre, mais fondamentalement, les sciences auxiliaires sont des disciplines qui soutiennent réellement les pratiques modernes de la supply chain. Tout comme on s’attendrait à ce qu’un médecin moderne ait des connaissances en chimie, il n’est pas nécessaire d’être un chimiste brillant pour être un médecin brillant. L’accord général serait que, d’un point de vue moderne sur la science médicale, si vous ne connaissez rien à la chimie, vous ne pouvez pas être un bon médecin selon les normes modernes. Il en va de même pour la supply chain, selon moi. Il existe une série de sciences auxiliaires où vous devez avoir des connaissances de base sur ces sujets si vous voulez avoir une pratique de la supply chain raisonnablement moderne.

Slide 5

Maintenant, pour la conférence actuelle, je présenterai d’abord Mini Bitcoin, qui est une implémentation de blockchain simplifiée. Cela devrait éclairer sur le fonctionnement des cryptomonnaies et sur la principale découverte réalisée par Satoshi Nakamoto en 2008. Cela devrait également clarifier les trois grands défis auxquels nous sommes confrontés lors de la conception de blockchains, à savoir la scalabilité, la latence et l’expressivité. Ces trois défis ont un impact significatif sur le type de cas d’utilisation de la supply chain que nous pouvons avoir basé sur la blockchain. Il est essentiel de comprendre les limitations qui accompagnent les blockchains car elles limitent essentiellement ce que nous pouvons faire en termes de supply chain et le type de valeur que nous pouvons créer. Enfin, dans la deuxième partie de la conférence, je passerai en revue une série de cas d’utilisation de la supply chain où, à des degrés divers, la supply chain a quelque chose à apporter.

Slide 6

L’objectif de Mini Bitcoin est de construire une blockchain simplifiée, une version simpliste de Bitcoin à partir de zéro. Nous ne prêterons pas trop attention à toutes les spécificités techniques car, dans la réalité, la conception d’une blockchain est très souvent une question de prêter attention à de nombreux détails. Ici, je veux simplement présenter la structure générale pour la rendre dramatiquement simplifiée par rapport à la réalité afin que nous puissions comprendre en quelques diapositives ce qui se passe, comment cela est conçu et comment cela fonctionne.

Dans cet exemple très simple, nous allons concevoir une monnaie où chaque pièce vaut exactement un bitcoin. Vous avez un ensemble de pièces, chaque pièce vaut exactement un bitcoin, et la seule chose que vous pouvez faire est essentiellement transférer une pièce d’un participant à un autre. Si un participant possède plusieurs pièces, il peut transférer toutes les pièces, mais nous ne nous intéressons qu’à une monnaie très simple où nous n’avons pas de quantités fractionnaires et d’autres éléments.

Afin de construire ce Mini Bitcoin, nous avons seulement besoin de trois fonctions spéciales : une fonction de hachage, une fonction de signature et une fonction de vérification. Ces fonctions étaient déjà standard en 2008, donc lorsque Bitcoin a été inventé, tous les éléments cryptographiques étaient déjà en place. Satoshi Nakamoto n’a pas inventé ces outils. Ces fonctions cryptographiques spéciales, également connues sous le nom de fonctions de porte dérobée, étaient bien connues, standard et largement utilisées en 2008. L’innovation clé de Satoshi Nakamoto a été d’utiliser ces fonctions d’une manière très spéciale, que nous verrons.

Nous avons ces trois fonctions : la fonction de hachage, dont je ne vais pas entrer dans les détails ici, mais j’en ai discuté lors d’une précédente conférence. Il s’agit d’une version cryptographique de la fonction de hachage, qui peut prendre n’importe quel message, une série de bits de longueur arbitraire, et créer un résumé de 256 bits. La fonction ne peut pas être inversée en pratique. Si vous avez un résumé, la seule façon d’identifier un message qui produit le résumé est de connaître le message à l’avance.

La fonction de signature peut prendre un message, une clé privée, et produire une signature, qui est également de 256 bits. La fonction de signature fonctionne en paire avec une fonction de vérification. Pour ceux qui ne sont peut-être pas familiers avec la cryptographie asymétrique, l’idée est que vous pouvez avoir des mécanismes où vous avez des paires de clés publiques et privées. Avec la clé privée, vous pouvez produire une signature et publier un message sans divulguer votre clé privée. Tout participant peut utiliser la fonction de vérification pour prendre le message, votre signature et votre clé publique pour vérifier que le message a été signé par la clé privée associée à cette clé publique.

Ces fonctions de porte dérobée ne peuvent pas être inversées, donc si vous ne connaissez pas le message d’origine, vous ne pouvez pas revenir de la fonction de hachage, du résumé au message d’origine. La même chose s’applique si vous n’avez pas la clé privée ; vous ne pouvez pas produire une signature par vous-même si vous avez un nouveau message.

Ces trois fonctions spéciales sont disponibles dans pratiquement tous les environnements de programmation modernes, que ce soit en C++, Python, Java, C# ou autres. Il fait partie de l’environnement standard d’avoir accès à ces classes de fonctions cryptographiques.

Slide 7

Maintenant, regardons une situation où je suis censé être le propriétaire de la pièce numéro un. Qu’est-ce que cela signifie ? Cela signifie que dans le cadre de ce consensus byzantin, il y a un accord partagé entre tous les participants de ce réseau Mini Bitcoin que, dans le cadre des UTXO (Unspent Transaction Outputs), cette pièce est réellement présente. Quand je dis cette pièce, je veux dire un message qui inclut la clé publique numéro un et la signature zéro. Je suppose simplement que cela fait partie d’un ensemble de pièces et que tous les participants conviennent que cette pièce existe réellement et est prête à être dépensée. Maintenant, en tant que propriétaire de cette pièce numéro un, comment puis-je réellement dépenser cette pièce pour transférer la propriété de cette pièce à quelqu’un d’autre ?

Slide 8

La façon dont je fais cela est en produisant une signature. La signature est construite comme suit : j’utilise la fonction spéciale “signer” et je vais signer un message. Ce message va simplement être la clé publique numéro un, la signature zéro, puis la clé publique numéro deux. La clé publique numéro deux est littéralement l’adresse à laquelle j’envoie l’argent. Celui qui possède la clé privée associée à cette clé publique numéro deux sera le destinataire de ma transaction. Donc, je signe cette transaction et pour la signer, j’utilise la clé privée numéro un. Le seul participant qui peut réellement produire cette signature numéro un est la personne qui détient le secret, la clé privée numéro un, associée à la clé publique numéro un.

Si je veux informer l’ensemble du réseau que cette transaction a été effectuée, je dois diffuser une transaction. La transaction va simplement être un message qui liste la clé publique numéro un, la signature zéro, la clé publique numéro deux et la signature un que je viens de produire. C’est simplement une liste des éléments qui contribuent à la transaction. Lorsque je publie cette transaction de un à deux, essentiellement, la pièce numéro un quitte le pool de pièces et la pièce numéro deux entre dans le pool de pièces du système. C’est pourquoi il est crucial d’avoir ce consensus byzantin en jeu. Nous avons besoin de ce consensus byzantin car, potentiellement, vous aimeriez pouvoir dépenser de l’argent que vous ne possédez pas et tromper le réseau sur la propriété de certaines pièces. Cependant, si vous pouvez résoudre le problème du consensus byzantin, il y a un accord ferme sur les pièces qui appartiennent réellement au système. Une fois qu’une pièce est dépensée, le propriétaire numéro deux a maintenant une pièce. Une pièce peut sortir du réseau et une nouvelle pièce est créée et entre dans l’état du système.

Slide 9

Le mécanisme peut être répété ; la pièce numéro deux peut être envoyée à la pièce numéro trois en utilisant le même système : produire une signature, diffuser une transaction, et ainsi de suite.

Au fait, chaque fois que j’ai dit que la fonction “signer” était utilisée, implicitement, cela signifie que tous les observateurs peuvent utiliser la fonction “vérifier” pour vérifier que la signature est correcte. Fondamentalement, lorsque les participants vont observer les transactions, la première chose qu’ils feront est d’utiliser la fonction “vérifier” que j’ai introduite précédemment pour vérifier que la transaction est effectivement correcte. Il y a deux vérifications impliquées : chaque participant doit vérifier que la pièce qui est transférée faisait déjà partie de l’état du système, en s’assurant que c’est une pièce valide, et que la transaction est valide selon la signature. Ce que je n’ai pas abordé ici, c’est le problème de la double dépense. Comment empêchons-nous que deux transactions conflictuelles soient effectuées en même temps et comment empêchons-nous le réseau d’être confus si un adversaire essaie de diffuser simultanément deux transactions conflictuelles, envoyant le même argent à deux participants distincts ?

Je n’ai pas non plus précisé d’où viennent ces pièces. Comment sont-elles introduites dans le système en premier lieu ? Le cœur de la découverte de Satoshi Nakamoto et de son consensus Nakamoto est de résoudre ces deux problèmes en même temps.

Slide 10

La proposition de Satoshi Nakamoto est d’introduire une classe spéciale de participants dans le réseau, aujourd’hui surnommés “mineurs”.

Les mineurs écoutent essentiellement le réseau et collectent toutes les transactions qui ont été diffusées. Ils collectent ces transactions diffusées et les mettent dans un conteneur appelé “bloc”. Un bloc est simplement une collection de transactions diffusées par n’importe qui dans le réseau pair à pair.

La toute première transaction d’un bloc va être une transaction spéciale appelée “coinbase”. Une coinbase est une transaction unique qui crée une nouvelle pièce dans cette mini configuration Bitcoin à partir de rien. La première transaction est la coinbase, créant une nouvelle pièce à partir de rien, puis dans le bloc suivent la liste des transactions qui ont été diffusées, telles que perçues par le mineur. Le mineur peut ne pas être en mesure de capturer toutes les transactions du réseau Bitcoin, mais il essaie de le faire.

Slide 11

La coinbase est spéciale, et je vais expliquer comment construire cette coinbase car c’est une transaction unique. Tout d’abord, nous allons produire un hachage du bloc, un hachage partiel (H1a). Ce hachage est essentiellement un hachage d’un message, et ce message commence par un hachage du bloc précédent (H0b), concaténé avec toutes les transactions présentes dans le bloc.

La coinbase est ensuite un tuple qui comprend le hachage H1a, suivi d’un nonce. Un nonce est un nombre aléatoire choisi au hasard par le mineur et a son importance. La coinbase contient également la clé publique du mineur. La coinbase inclut un hachage de tout le contenu du bloc. La coinbase contient un nombre aléatoire et la clé publique du mineur. Cette clé publique sera utilisée par le mineur plus tard pour revendiquer la coinbase en tant que pièce régulière. Dans cette mini configuration Bitcoin, les pièces sont émises à un rythme d’un Bitcoin par bloc. En réalité, sur le réseau Bitcoin Core ou Bitcoin Cash, le processus est plus compliqué, mais la plupart de la complexité peut être simplifiée pour plus de clarté.

L’idée est que pour que le bloc soit considéré comme valide, nous devons produire une coinbase. Cependant, si nous nous arrêtons à ce stade, tous les mineurs pourraient prétendre qu’ils ont un bloc quand ils le veulent, et tous les mineurs auraient intérêt à dire : “Je peux produire un paquet, un résumé de toutes ces transactions. Je peux produire une coinbase. S’il vous plaît, donnez-moi ce Bitcoin supplémentaire.” Comment pouvons-nous trier tous les mineurs qui rivalisent pour que leur version du bloc soit sélectionnée par le réseau et considérée comme le seul vrai bloc ?

Satoshi Nakamoto a introduit le concept de preuve de travail. Le hachage de la coinbase, qui est un grand nombre de 256 bits, doit être supérieur à un seuil de difficulté. Ce processus ressemble à la résolution d’une énigme, et la seule façon de résoudre cette énigme est de trouver une coinbase dont le hachage répond à cette cible de difficulté. Le mineur peut essayer de nombreux nombres aléatoires pour le nonce dans l’espoir d’être le premier à atteindre la difficulté et de revendiquer le bloc pour lui-même.

Dans Bitcoin, la difficulté est adaptative, et le réseau utilise un algorithme de moyenne mobile glorifié pour maintenir la difficulté autour de 10 minutes par bloc. Si les blocs sont trouvés en moyenne plus rapidement que 10 minutes, la difficulté augmentera jusqu’à ce que les blocs soient trouvés en moyenne toutes les 10 minutes. Si les blocs commencent à être trouvés toutes les 11 minutes, la difficulté diminuera pour maintenir le temps moyen de recherche d’un bloc à 10 minutes.

La proposition de Satoshi Nakamoto est que les mineurs suivent toujours la chaîne valide la plus longue. Une chaîne de blocs doit répondre à la cible de difficulté pour être valide. Lors de la construction d’un bloc, vous le construisez toujours sur le dessus d’un bloc préexistant, à l’exception du bloc de genèse, qui est le point de départ par défaut. La règle ne concerne pas seulement la possession de la chaîne la plus longue, mais la possession de la chaîne valide la plus longue. Les autres mineurs vérifieront que toutes les transactions répertoriées dans un bloc sont effectivement valides, en s’assurant que les signatures correspondent et que les pièces dépensées sont éligibles à être dépensées. Ils maintiennent cet état, et c’est exactement ainsi que Bitcoin peut résoudre à la fois le problème de double dépense et le problème d’émission de pièces. Nous avons tout ce dont nous avons besoin pour construire une blockchain.

En réalité, si vous voulez construire une blockchain de qualité de production réelle, il y a des tonnes de choses supplémentaires à prendre en compte. Tout d’abord, vous aimeriez avoir des quantités fractionnaires. Vous ne voulez probablement pas pouvoir avoir seulement un Bitcoin à la fois ; vous voulez quelque chose où vous pouvez transférer des quantités multiples ou fractionnaires de Bitcoins.

En ce qui concerne les pièces, vous aimeriez avoir des transactions qui peuvent consommer de nombreuses pièces en tant qu’entrées à la fois, puis produire de nombreuses pièces à la fois. Il ne s’agira pas de transactions un à un qui relient une pièce à une pièce ; il s’agira de transactions de nombreux à nombreux, avec de nombreuses pièces d’entrée se connectant à de nombreuses pièces de sortie. En passant, c’est ainsi que fonctionnent aujourd’hui divers réseaux Bitcoin.

Vous avez également les frais de transaction dont j’ai parlé. Si vous laissez les gens diffuser des transactions sans fin, ils pourraient envoyer de l’argent d’avant en arrière entre les mêmes adresses et inonder le marché. L’idée est qu’un frais est fondamentalement la notion qu’une certaine partie de la transaction est redirigée vers le mineur. La façon dont cela se fait généralement dans la plupart des variantes de Bitcoin est de dire que l’entrée totale devrait être, en termes de valeur monétaire, légèrement supérieure à la sortie totale. La fraction manquante de valeur, l’écart, est la récompense versée au mineur.

Slide 12

Maintenant, nous avons terminé notre mini Bitcoin. Si vous savez programmer, vous avez tous les éléments nécessaires pour implémenter votre propre blockchain. En passant, vous pouvez également répéter des blocs, et c’est ce que je fais ici. Ce que vous venez de faire pour un bloc, vous pouvez répéter exactement les mêmes formules pour un autre bloc, avec un deuxième code source. C’est exactement comme les transactions ; le même mécanisme est répété encore et encore.

Slide 13

Mettre à l’échelle la blockchain est très difficile. Dans un court livre blanc de 2018, j’ai publié un paysage applicatif de Bitcoin. L’idée est que, selon la quantité de données dans lesquelles vos blockchains sont impliquées, la quantité de données que vous devez traiter et déplacer varie considérablement en fonction de ce que vous faites avec la blockchain. Essentiellement, cela varie d’environ 100 octets à déplacer (l’ordre de grandeur d’une clé privée) jusqu’à 10 ordres de grandeur si vous devez traiter l’ensemble de la blockchain.

Il est difficile de comprendre que, selon ce que vous faites, la quantité de ressources informatiques que vous devrez injecter pour accomplir la tâche varie de 10 ordres de grandeur. Un ordre de grandeur signifie que vous multipliez la quantité de ressources par un facteur de 10, et lorsque vous avez 10 ordres de grandeur, vous pouvez passer de un à 10 milliards. C’est stupéfiant et énorme. Dans ce paysage applicatif, vous verrez qu’il existe deux distinctions principales : les applications on-chain et off-chain. Les applications off-chain sont celles qui ne traitent qu’avec les données générées par vous ou vos partenaires proches. Si vous êtes une grande entreprise, vous pouvez avoir à traiter des millions de transactions, mais il s’agit uniquement de vos propres transactions. En termes de données, cela peut être important, mais c’est gérable car cela concerne directement votre propre entreprise.

En revanche, les applications on-chain traitent toutes les transactions diffusées sur le réseau. Cela peut être beaucoup plus important, surtout si vous êtes un petit acteur et que vous devez gérer toutes les transactions sur un grand réseau, ce qui peut être des millions de fois plus que les transactions qui vous intéressent.

De plus, nous devons distinguer entre les composants qui sont des “cash cogs” et des “cash lands”. Les “cash cogs” sont des composants fondamentaux qui contribuent à la résolution du problème de consensus. Si vous les supprimez, la blockchain cesse de fonctionner car vous n’avez plus de consensus. Les “cash lands”, en revanche, sont des composants facultatifs qui peuvent être construits sur l’infrastructure de la blockchain. Ils ne sont pas strictement nécessaires au fonctionnement de la blockchain.

En général, lorsque nous réfléchissons aux cas d’utilisation de la chaîne d’approvisionnement, nous nous positionnons avec des métadonnées dans le domaine des “cash lands”. Ce que nous faisons n’est pas strictement nécessaire pour que la blockchain continue de fonctionner ; elle peut continuer à fonctionner sans notre cas d’utilisation spécifique.

Slide 14

En ce qui concerne la mise à l’échelle de la blockchain pour de véritables cas d’utilisation de la chaîne d’approvisionnement, il faut prendre en compte que la blockchain doit être capable de gérer des millions de transactions. Les grandes entreprises traitent des millions de transactions chaque semaine, ce qui n’est pas exceptionnel dans le monde de la chaîne d’approvisionnement. Cependant, les blockchains ne sont pas très évolutives, comme en témoigne le fait que les mineurs doivent traiter toutes les transactions de tout le monde.

Pour résoudre ce problème, certaines innovations ont été introduites, comme les solutions discutées précédemment dans la conférence. L’objectif principal est de rendre la technologie de la blockchain plus évolutive et adaptée à la gestion du volume massif de transactions généralement observé dans les applications de chaîne d’approvisionnement. Si vous voulez qu’une blockchain soit utilisée à des fins de chaîne d’approvisionnement, elle doit être capable de gérer non seulement les transactions d’une seule entreprise, mais aussi toutes les entreprises participant à l’initiative blockchain. Cela peut devenir extrêmement important, voire très important, voire excessivement important. C’est ce que nous devons voir, et ici, à la rescousse, il y a essentiellement deux articles notables. Lorsque Satoshi Nakamoto a publié son article, il a déclaré qu’avec les progrès du matériel, ce problème serait résolu et nous pourrions nous adapter autant que nécessaire. Cela se produirait. Cependant, il s’est avéré difficile, et depuis plus d’une décennie maintenant, à peu près tous les acteurs de cet espace de la blockchain et des cryptomonnaies ont du mal en ce qui concerne la scalabilité.

Le premier article notable est ECMH, Elliptic Curve Multiset Hash. C’est un article assez technique, mais l’idée principale est que vous n’avez pas besoin de conserver toutes les transactions; vous devez seulement conserver les pièces prêtes à être dépensées. Cette collection de pièces pouvant être dépensées est techniquement connue dans l’écosystème Bitcoin sous le nom de UTXO. Juste pour donner un ordre de grandeur, le UTXO du réseau Bitcoin Core est actuellement légèrement inférieur à cinq gigaoctets. C’est la taille de l’ensemble de données UTXO, mais si vous regardez la blockchain de Bitcoin Core, la taille de la blockchain est légèrement inférieure à 350 gigaoctets, et la blockchain croît beaucoup plus rapidement que le UTXO.

Ce que l’article ECMH vous donne, c’est une fonction de hachage qui a une affinité avec les multiconjoints. Essentiellement, c’est une fonction de hachage où vous pouvez mettre à jour votre hachage si vous ajoutez ou supprimez des éléments de votre collection. Vous ne conservez pas l’ensemble ou le multiconjoint lui-même, mais vous conservez simplement le hachage, et vous pouvez ajouter ou supprimer des éléments. Cette propriété d’ensemble signifie que vous pouvez effectuer ces ajouts ou suppressions dans n’importe quel ordre et obtenir toujours le même hachage. Ce que vous pouvez obtenir grâce à ECMH, c’est un engagement UTXO, qui permet à la communauté de s’éloigner de la blockchain complète. La plupart de la communauté n’a pas à traiter avec la blockchain complète mais peut seulement traiter avec le UTXO. Je répète, la taille du UTXO du réseau Bitcoin Core est de cinq gigaoctets, et la taille de la blockchain est de 350 gigaoctets, vous gagnez donc essentiellement deux ordres de grandeur. C’est très significatif. Essentiellement, avec ECMH, vous gagnez deux ordres de grandeur sur le stockage de données persistantes, ce qui est une victoire énorme.

Le deuxième article est Graphene, un nouveau protocole de propagation de blocs utilisant la réconciliation d’ensembles. Graphene vous permet de gagner essentiellement deux ordres de grandeur sur les besoins de bande passante maximale. Dans cette configuration mini Bitcoin que je viens de décrire, vous avez des mineurs et des transactions diffusées de pair à pair en permanence pour le réseau. La bande passante est probablement le problème le plus résolu de Bitcoin, mais néanmoins, vous avez un problème en ce qui concerne la bande passante au moment où un bloc est trouvé. Le mineur, pour revendiquer le bloc, doit propager la coinbase, où il dit : “Regardez, j’ai une coinbase qui répond à ma difficulté cible.” Ensuite, tous les autres mineurs doivent télécharger l’intégralité du bloc, et s’il est fait de manière naïve, ils doivent valider que le bloc est effectivement valide, pas seulement que la coinbase répond à la difficulté cible.

Chaque fois qu’un bloc est trouvé, il y a une exigence maximale car vous voulez que le temps nécessaire pour transférer un bloc entier, si vous le faites de manière naïve, soit bien inférieur à l’intervalle de 10 minutes. Dans Bitcoin, le puzzle est réglé en termes de difficulté de manière à ce que le temps moyen entre deux blocs consécutifs soit en moyenne de 10 minutes. Ainsi, vous voulez que le transfert de bloc ne soit qu’une fraction, disons moins de 30 secondes, si vous voulez maintenir le réseau très stable. Cependant, cela signifie que le bloc doit être transféré dans les 30 secondes, ce qui limite votre bande passante maximale. La vitesse à laquelle vous allez transférer votre bloc sera limitée par votre bande passante.

L’idée est qu’avec Graphene, une technique basée sur la compression, vous n’aurez pas besoin de transférer le bloc entier car la plupart de ce que contient le bloc sont en réalité les transactions qui ont déjà été diffusées à travers le réseau. La seule chose que vous voulez diffuser est un ensemble de réconciliation, juste pour donner des informations à vos pairs (autres mineurs) sur les transactions qui ont été incluses ou non dans votre bloc, de manière parfaitement fiable. Si vous faites cela, vous pouvez encore réduire de deux ordres de grandeur la bande passante maximale, ce qui est très significatif.

Cela présente un grand intérêt, par exemple, Graphene fonctionnerait sur les réseaux Bitcoin Cash ou les réseaux eCash plus récents, en raison d’accidents techniques complets. Cela ne fonctionnerait pas sur le réseau Bitcoin Core. Cela faisait partie des choses qui n’avaient pas vraiment été anticipées par Satoshi Nakamoto.

Le dernier critère que j’ai mentionné dans ma liste de critères est que maintenir le logiciel signifie que vous devez avoir un contrat social en place, de sorte que vous ayez des équipes qui peuvent effectuer la maintenance et intégrer les découvertes ultérieures dans votre blockchain. Sinon, vous restez bloqué avec le genre de performances et de stabilité que vous aviez il y a une décennie ou au moment de la création de la blockchain.

Slide 15

Maintenant, nous avons un autre problème : accélérer la blockchain. Le réseau Bitcoin classique a un temps moyen entre les blocs de 10 minutes, et si vous voulez avoir une confiance absolue dans l’état du consensus, vous devez attendre plusieurs blocs. En règle générale, on estime généralement que si vous voulez avoir une confiance absolue, vous devez attendre six confirmations, ce qui vous donne une période d’une heure. L’idée est que nous pourrions raccourcir ce temps entre les blocs. Cependant, le problème est que plus le temps est court, plus les blocs doivent être petits, ce qui compromet la scalabilité. Des blocs peu fréquents signifient que vous pouvez avoir des blocs très volumineux, ce qui est une bonne chose ; cela aide votre réseau à faire face à la masse de transactions.

Compte tenu des retards que vous avez sur le réseau mondial, cette cible de 10 minutes n’est pas optimale, mais elle est dans la fourchette de ce qui est efficace pour exploiter ce type de consensus distribué avec des blocs très volumineux, des blocs pouvant atteindre un téraoctet de taille. Cela semble très volumineux, mais en réalité, si vous regardez l’utilisation à l’échelle de l’humanité, c’est ce qu’il faut. Vous devez maintenir les blocs éloignés dans le temps si vous voulez préserver votre scalabilité. Cependant, vous avez ensuite le problème que le réseau est lent. Une heure pour confirmer une transaction peut être acceptable pour un cas d’utilisation de commerce électronique, où il est acceptable de ne rien faire après le paiement pendant 60 minutes puisque la livraison n’aura pas lieu avant demain de toute façon. Mais si vous voulez avoir quelque chose qui se passerait à l’intérieur d’un entrepôt ou au point de vente, c’est beaucoup trop lent. C’est comme une carte de crédit qui prendrait une heure pour que le paiement soit compensé, ce qui est très lent.

Slide 16

Ce que nous voulons, c’est généralement une cible de trois secondes ou moins. C’est parce que, du point de vue de l’expérience utilisateur humaine, quelque chose qui prend trois secondes pour se terminer sera perçu comme raisonnablement rapide. Pensez à un paiement par carte de crédit ; si vous comptez un-deux-trois lors d’un paiement, c’est bien, c’est raisonnablement rapide. Si vous pouvez être complètement sécurisé dans ce laps de temps, vous pouvez obtenir une expérience utilisateur très satisfaisante pour la plupart des cas d’utilisation. C’est encore trop lent pour la communication machine à machine à faible latence, mais cela suffit pour la plupart des cas d’utilisation impliquant la perception humaine.

Pendant près d’une décennie, de nombreuses solutions ont été présentées pour résoudre ce problème de latence. La grande majorité de ces solutions n’étaient pas très bonnes. Elles avaient toutes différentes limitations qui compromettaient Bitcoin ou sa scalabilité, ou bien elles étaient des solutions naïves qui ont émergé rapidement une fois que Bitcoin a été publié. La plupart de ces solutions reposaient sur l’élection d’un leader, et ce leader agirait comme une autorité centrale temporaire pendant un certain temps, fournissant des services à faible latence. Cependant, le problème avec l’élection d’un leader est que lorsque vous passez d’un leader à un autre, le processus peut être très chaotique, et vous pouvez avoir une situation où, en termes de qualité de service, la plupart du temps c’est quelques secondes, puis parfois c’est en fait une heure. Cela serait perçu par tout le monde comme une période d’indisponibilité du réseau.

Il a fallu une décennie pour qu’une solution qui était, à mon avis, suffisamment bonne, soit publiée. Cette solution est un travail brillant réalisé par une équipe anonyme appelée Team Rocket, publié en mai 2018 : Snowflake to Avalanche, une autre famille de protocoles de consensus métastables pour les cryptomonnaies. Cet article présente une série de trois algorithmes : Snowflake, Snowball et Avalanche. Chaque algorithme est construit sur le précédent, et d’ailleurs, la véritable magie se trouve dans l’algorithme Snowball, qui est précisément celui qui n’apparaît pas dans le titre de l’article.

Fondamentalement, ce qu’ils ont conçu, c’est la métastabilité, et c’est très intéressant. Rappelez-vous, lorsque vous avez des transactions conflictuelles, il n’est pas vraiment important de savoir laquelle est choisie, car améliorer la latence consiste à empêcher les doubles dépenses ou à réduire le délai pendant lequel vous pouvez avoir une ambiguïté concernant les doubles dépenses. L’idée d’avoir quelque chose de métastable est que vous aimeriez avoir un protocole où les participants discutent constamment les uns avec les autres. L’objectif est que s’il y a deux transactions conflictuelles, le réseau atteindra un équilibre métastable. Le réseau convergera rapidement vers une interprétation de la vérité ; peu importe laquelle, il suffit qu’il y en ait une. Donc, s’il y a des objets conflictuels, le réseau discutera et résoudra le conflit.

Snowflake fournit un processus de convergence lent, tandis que Snowball, dans cet article, offre une astuce qui permet une accélération exponentielle, ce qui se traduit par une convergence beaucoup plus rapide. Avalanche apporte certaines propriétés graphiques liées au graphe des transactions. Cependant, ma compréhension personnelle est que la contribution d’Avalanche est beaucoup plus faible ; c’est vraiment Snowball qui fait la magie. Vous voudrez peut-être implémenter Avalanche, mais juste Snowball vous donnera environ 99% de la métastabilité que vous recherchez.

Il y a un inconvénient à cette approche. Avec la preuve de travail et les blocs de Satoshi Nakamoto, n’importe quel observateur peut intervenir et témoigner de ce qui s’est passé, reproduisant l’ensemble du processus et vérifiant tout. La sécurité ne dépend pas du fait que l’observateur soit en ligne. L’observateur peut être en ligne ou hors ligne, cela n’a pas d’importance. C’est un excellent modèle de sécurité qui ne repose pas sur une connexion en direct au réseau.

Avalanche, en revanche, exige que l’observateur surveille constamment les discussions du réseau pour générer la sécurité. Il n’est pas possible pour un observateur tardif de rejoindre et de réévaluer la sécurité des transactions passées. Cependant, cela ne nous préoccupe pas vraiment car si vous êtes en direct sur le réseau, vous évaluez la sécurité des transactions qui se produisent à ce moment-là. Pour les choses qui se sont produites dans le passé lorsque vous n’étiez pas là, la preuve de travail et les blocs fournissent toujours un moyen de valider les transactions.

Avalanche n’est pas en opposition à Bitcoin ; il est complémentaire. L’un des aspects faibles de la solution Snowflake à Avalanche est qu’elle ne fournit pas de solution claire au problème de l’émission de la monnaie. Pour profiter du meilleur des deux mondes, il serait idéal de maintenir une conception similaire à celle de Bitcoin avec une preuve de travail et de grands blocs, tout en superposant cela avec une sécurité à faible latence.

Afin d’éviter certaines classes d’attaques Sybil qui pourraient perturber Avalanche, la preuve d’enjeu pourrait être utilisée. Cela introduit des couches d’entrelacement économique, ce qui est une façon de penser très similaire à celle de Bitcoin. Pour atteindre la sécurité souhaitée, un réseau d’entrelacements économiques devrait être créé pour s’assurer que tout le monde reste honnête. Il existe des moyens d’élaborer des solutions pour obtenir une meilleure latence.

Slide 17

Maintenant, toujours sur le sujet de l’expressivité, nous recherchons plus que de simples transactions financières, car il s’agit de la chaîne d’approvisionnement et de l’utilisation d’une blockchain à des fins de chaîne d’approvisionnement. Les transactions financières sont nécessaires en arrière-plan, mais nous voulons pouvoir faire plus. La question est de savoir comment incorporer cette logique supplémentaire ?

Dans les cercles de la cryptomonnaie, de nombreuses cryptomonnaies ont introduit la notion de contrats intelligents. Un contrat intelligent est fondamentalement un programme qui est exploité par les mineurs eux-mêmes sur la blockchain. Les mineurs vérifient la validité des transactions, mais si vous pouvez inclure un langage de programmation ou un code d’assemblage dans votre transaction, les mineurs peuvent exécuter les programmes et vérifier que les programmes vérifient certaines propriétés. C’est ce qui est généralement fait sur Ethereum, et on parle de contrat intelligent. Il y a cette devise selon laquelle “le code est la loi”, ce qui signifie que nous faisons confiance à l’exécution du programme car il est certifié comme correct par les mineurs eux-mêmes.

Cependant, je pense que cette approche est profondément erronée sur deux fronts très différents. Le premier problème est que vous aggravez le problème de la scalabilité. Mettre à l’échelle une blockchain est déjà très difficile, car vous devez canaliser toutes ces transactions vers les mineurs. Les mineurs n’ont pas grand-chose à faire avec ces transactions ; ils doivent simplement vérifier la signature. Un mineur peut potentiellement traiter une quantité massive de transactions car la quantité de vérifications à effectuer pour chaque transaction est minimale. Maintenant, imaginez si un mineur doit non seulement valider les transactions, mais aussi exécuter des programmes arbitraires de toutes les entreprises. Cela devient très difficile, et c’est exactement ce qui se passe depuis longtemps sur le réseau Ethereum et d’autres cryptomonnaies axées sur les contrats complexes.

Bien que les cryptomonnaies ultérieures comme Ethereum aient bénéficié d’une meilleure ingénierie, elles sont toujours confrontées à un problème de scalabilité massivement plus difficile. Une fois qu’elles atteignent un certain niveau de notoriété et d’activité sur le réseau, elles sont toutes confrontées à d’énormes problèmes de scalabilité. Tout se résume au fait que vous devez exécuter tous ces programmes.

Le deuxième problème majeur avec les contrats intelligents est qu’ils sont fondamentalement des programmes immuables. Lorsque vous mettez des programmes sur la blockchain, l’idée est que vous faites confiance à ces programmes car ils fonctionnent de manière autonome. Par “autonome”, cela signifie qu’il y a des mineurs avec des incitations financières pour exécuter ces programmes pour la communauté, et tout le processus est transparent et vérifiable. Cependant, le gros problème avec les programmes immuables est que si un bogue survient, vous ne pouvez pas le corriger.

L’histoire des contrats intelligents a été une série interminable de violations entraînant des pertes massives pour ceux qui exploitent les contrats. Même Ethereum lui-même a dû subir une bifurcation massive, conduisant à Ethereum et Ethereum Classic, car un contrat violé était si important que les opérateurs ont décidé qu’il était préférable de revenir en arrière et de compromettre la propriété immuable que la blockchain est censée offrir. Il n’y a pas de solution de contournement, et si vous faites quelque chose de non trivial dans un contrat intelligent, vous vous exposez à des violations.

En 2018, j’ai publié une autre approche appelée Tokida qui montre comment vous pouvez avoir des programmes arbitraires fonctionnant aux côtés de la blockchain. Avec Tokida, le programme est open source et fonctionne selon un modèle de “confiance mais vérification”. Toutes les personnes intéressées par le résultat du contrat peuvent le vérifier si elles le souhaitent, et en termes de performances, c’est plus flexible car le reste de la communauté n’a pas besoin d’exécuter votre programme. Si vous souhaitez mettre à jour votre logiciel, vous pouvez toujours le faire à tout moment sans que le reste de la communauté ne soit conscient de ce que vous avez fait.

S’il y a une violation, ce n’est pas un problème important car vous pouvez la corriger, et la communauté peut évaluer que le correctif a été fait de bonne foi. L’idée est que la plupart de ce dont vous avez besoin en termes de modèle de sécurité pour les besoins de la chaîne d’approvisionnement est simplement de faire confiance mais de vérifier. Vous devez simplement vous assurer que si quelqu’un triche, toutes les autres personnes le remarqueront, et cela suffira. Pour la monnaie elle-même, vous voulez empêcher les gens de tricher en premier lieu. Mais pour les contrats intelligents, vous n’avez pas besoin du même degré de sécurité que pour la monnaie elle-même. Être capable de détecter la fraude après coup est suffisant. Si quelqu’un commence à frauder votre entreprise, vous ne ferez tout simplement plus affaire avec ce partenaire, et ce sera la fin de l’histoire. Vous n’avez pas besoin d’avoir quelque chose qui empêche la fraude de se produire en premier lieu. La confiance est essentielle en affaires, et si vous travaillez avec un partenaire, vous avez un certain degré de confiance envers lui.

Slide 18

Maintenant, nous entrons dans la deuxième partie de la conférence, qui couvre les cas d’utilisation. Je crois que le principal cas d’utilisation des blockchains reste les paiements. Payer des fournisseurs, en particulier à l’étranger, peut encore être un défi. Le règlement d’un virement bancaire peut être lent, prenant jusqu’à deux semaines dans certains cas. Les flux de travail de paiement du système bancaire sont loin d’être à jour avec le XXIe siècle, ce qui peut entraîner des erreurs telles que des paiements en double pour de grandes factures.

Je crois qu’il y a de nombreux cas d’utilisation pour les paiements, en particulier lorsqu’il s’agit de mettre en œuvre des mécanismes complexes tels que des paiements différés, des paiements conditionnels ou des pénalités pour des produits qui ne répondent pas aux exigences de qualité ou de délais. Avec de l’argent programmable, vous pouvez mettre en œuvre tous ces schémas de manière qui semblerait de la science-fiction.

Cependant, il y a deux inconvénients à ce cas d’utilisation. Premièrement, les cryptomonnaies sont encore incroyablement volatiles en valeur, ce qui signifie que leur valeur peut fluctuer considérablement au fil du temps. Cette volatilité est un problème continu, mais au cours de la dernière décennie, elle a diminué. La volatilité était encore plus élevée il y a dix ans et elle diminue progressivement depuis lors, mais elle reste encore en dehors de la zone de confort de la plupart des grandes entreprises. Observer des fluctuations quotidiennes de 10% de la valeur de ces cryptomonnaies est encore la norme. Il y a dix ans, c’était autour de 50%. Le deuxième problème pour les paiements est l’existence de milliers de cryptomonnaies, ce qui crée le problème de choisir l’une d’entre elles et de se mettre d’accord avec votre partenaire. Cependant, il existe des classes de systèmes de change automatisés qui peuvent convertir n’importe quelle cryptomonnaie en une autre, en prélevant des frais très bas comme 0,1%, ce qui aide à atténuer ce problème.

Slide 19

Un autre cas d’utilisation est la traçabilité passive. La traçabilité est essentielle dans de nombreuses industries telles que l’aérospatiale, la pharmacie et l’automobile, car il peut s’agir d’une question de vie ou de mort. Les pièces de voiture contrefaites, par exemple, peuvent entraîner des accidents mortels si elles échouent sous contrainte. Les jetons non fongibles (NFT) peuvent être utilisés pour amener la traçabilité à un nouveau niveau. Un NFT est comme un numéro de série transférable. Avec des transactions sécurisées, seul le propriétaire de ce numéro, avec ses clés privées, a le pouvoir de transférer le numéro à un autre participant. L’utilisation de NFT peut empêcher les contrefaçons, même de la part des émetteurs d’origine.

Pour mettre en œuvre la traçabilité basée sur les NFT, vous avez seulement besoin de codes QR et d’un smartphone, ce qui en fait principalement une solution basée sur les logiciels. La technologie blockchain offre un moyen de maintenir une traçabilité transparente de la production au consommateur. Cependant, il y a des défis. Tout d’abord, tout le monde doit être d’accord sur un format et une blockchain. La blockchain transporte des charges binaires, donc si vous voulez l’utiliser à des fins de traçabilité, le format doit être convenu. Cela devient un problème complexe car de nombreuses industries et entreprises ont leurs propres formats et normes uniques.

Ce que les gens ne réalisent pas nécessairement, c’est à quel point les chaînes d’approvisionnement ont tendance à être flexibles dans le monde réel. Par exemple, même dans l’aérospatiale où la traçabilité est absolument excellente, vous remarquerez qu’au point A, le document suivant une pièce est un PDF. Pour l’étape suivante, c’est le même PDF mais scanné, et peut-être pour l’étape suivante, c’est le même scan mais annoté et rescanné. Fondamentalement, vous supposez qu’un humain peut intervenir et déchiffrer les documents. Cependant, si vous voulez opérer sur une blockchain, vous ne pouvez pas avoir un processus aussi lâche. Vous devez spécifier complètement le format binaire pour toutes les données que vous souhaitez exposer sur la blockchain; sinon, vous perdez l’aspect programmatique où vous pouvez travailler avec des outils programmatiques.

Unifier toutes les normes est difficile, et vous devez choisir une blockchain car, pour que la traçabilité fonctionne, vous devez choisir une blockchain partagée par tous les participants, au moins pour une verticale et une région. Le problème est que lorsqu’il s’agit de choisir une blockchain, il y a d’énormes conflits d’intérêts. Étant donné qu’une blockchain ne peut jamais être complètement dissociée de sa cryptomonnaie sous-jacente, si vous investissez dans une cryptomonnaie, vous êtes en conflit d’intérêts dans le sens où vous avez un intérêt financier à vous assurer que l’entreprise choisit la blockchain associée à la cryptomonnaie que vous possédez.

Ces conflits d’intérêts sont omniprésents et difficiles à évaluer car les blockchains sont généralement anonymes. Si vous voulez tester les eaux et obtenir des commentaires sur la blockchain à choisir, vous devez tenir compte des conflits d’intérêts potentiels qui peuvent survenir parmi votre personnel. Les entreprises qui opèrent de grandes chaînes d’approvisionnement ont généralement de nombreuses personnes impliquées, et ces problèmes sont amplifiés.

Slide 20

Maintenant, considérons un exemple plus adversarial. Imaginez des entreprises pharmaceutiques opérant dans des pays très pauvres, comme certains pays africains, où elles sont confrontées à d’importants problèmes de médicaments contrefaits. Le problème est que dans ces pays pauvres, tous les intermédiaires sont corrompus dans une certaine mesure. Les intermédiaires corrompus peuvent prendre une vraie boîte avec de vrais produits, échanger les vrais médicaments contre des médicaments contrefaits, puis vendre la boîte sur le marché. Les personnes qui achètent des médicaments contrefaits peuvent avoir une affection mettant leur vie en danger et avoir vraiment besoin du médicament. C’est un problème très grave dans les pays pauvres, et reproduire l’emballage des médicaments contrefaits est trivial. Une solution potentielle consiste à utiliser des blockchains et des jetons pour une traçabilité active, ce qui rappelle le fonctionnement de la taxe sur la valeur ajoutée (TVA) en Europe. La TVA est une taxe difficile à frauder car elle crée un schéma d’ingénierie sociale où les entreprises sont liées à leurs fournisseurs honnêtes.

L’idée est de prendre le même concept et de l’appliquer à la blockchain. Par exemple, disons que vous êtes une entreprise pharmaceutique produisant un médicament. Vous vendez un paquet du médicament à un intermédiaire ou un grossiste à un prix plus élevé, par exemple 15 $ au lieu du prix réel de 10 $. Le transfert de propriété du jeton a lieu, et le grossiste peut échanger 1 $ de la valeur, ce qui fait baisser son coût à 14 $. Le grossiste vend ensuite le paquet de médicaments au distributeur, et là encore, il y a un transfert de propriété du jeton. Une fois que le distributeur réclame le jeton, il peut échanger 1 $ de la valeur qu’il vient d’acheter, et ainsi de suite, jusqu’au consommateur final.

Lorsque le consommateur final reçoit la boîte de médicaments, il paie 11 $, et en scannant le code QR avec un smartphone, il peut échanger 1 $, qui lui est restitué. L’application fait deux choses: d’abord, elle permet au consommateur final de récupérer son dollar supplémentaire, et surtout, elle vérifie toute la traçabilité et l’affiche au client. Le consommateur final est informé qu’il vient de récupérer le dollar supplémentaire, et le numéro de série est maintenant déclaré comme consommé.

En fin de compte, le consommateur final ne peut pas transférer le jeton à quelqu’un d’autre, et la personne qui vient de recevoir la boîte peut voir sur son application mobile que toute la chaîne de traçabilité a été vérifiée, et que c’est une vraie boîte. L’idée est qu’avec ces incitations financières, il devient très difficile de tricher, car distribuer les médicaments sans le numéro de série associé devient impossible. À la fin de la chaîne, les gens peuvent être pauvres, mais ils veulent quand même s’assurer qu’ils peuvent vérifier si le médicament est légitime, surtout s’il s’agit d’une maladie grave. C’est ce que j’appellerais une traçabilité active, où vous avez un jeton non fongible (NFT) avec un mécanisme financier superposé qui incite tous les acteurs à effectuer certaines actions.

Dans le cas de l’exemple des médicaments, chaque consommateur final a une incitation financière à réclamer le numéro de série. Sans cette incitation, les gens pourraient ne pas déclarer la boîte comme consommée, et des médicaments contrefaits pourraient être réintroduits dans le réseau. En marquant le numéro de série comme consommé, il ne peut être réutilisé par personne. Cependant, cette approche nécessite une coordination et une participation de tous les participants, et tous les intermédiaires devront jouer à ce jeu financier. Bien que cela soit un cas d’utilisation valide, cela nécessite une coordination importante entre de nombreuses parties.

Slide 21

Une autre application potentielle consiste à inciter au recyclage grâce à des systèmes de remboursement des dépôts. Ces systèmes existent depuis longtemps et sont plus ou moins répandus selon les pays. Le fabricant d’origine est généralement le participant le mieux placé dans le réseau pour réutiliser, recycler ou réparer l’équipement descendu dans la chaîne d’approvisionnement. Cependant, il y a des frictions pour mettre en place ces systèmes, et le défi est de réduire encore ces frictions. La blockchain et les cryptomonnaies offrent un moyen de réduire la quantité de friction pour les micropaiements et potentiellement réduire l’infrastructure nécessaire pour garantir que les opérations ne sont pas truquées.

Par exemple, si vous deviez rendre 20 cents chaque fois que les gens rapportent une bouteille en verre, des adversaires pourraient potentiellement gamifier le système en produisant des bouteilles contrefaites et en encaissant la marge qu’ils réalisent en vendant les pièces récupérées. Les blockchains peuvent fournir un moyen simple d’atténuer certaines de ces manigances, mais c’est fondamentalement quelque chose de nature incrémentale. Je ne prétends pas que les systèmes de remboursement des dépôts sont nouveaux ; ils existent depuis longtemps. Il s’agit simplement de réduire un peu la friction afin qu’il puisse y avoir plus de cas d’utilisation.

Slide 22

Un autre cas d’utilisation intéressant est la sécurité, car les chaînes d’approvisionnement sont vulnérables aux cyberattaques. Les chaînes d’approvisionnement sont géographiquement distribuées par conception, ce qui signifie que les systèmes informatiques et les appareils sont répartis partout. Par conception, la surface d’attaque est grande, et il est difficile de faire autrement. Une chaîne d’approvisionnement doit être connectée à des clients, des fournisseurs, des partenaires et des prestataires de logistique tiers, créant ainsi une vaste surface d’attaque. Bien que l’intégration des systèmes, comme l’EDI, puisse être précieuse pour commander auprès des fournisseurs et améliorer les délais de réponse, une intégration plus étroite pose également plus de problèmes de sécurité.

Un exemple de cette vulnérabilité est l’incident du Colonial Pipeline, où un service en apparence mineur lié à la facturation a été piraté, empêchant le fonctionnement de l’ensemble du pipeline pendant une semaine et mettant en danger les infrastructures critiques aux États-Unis. Comment la blockchain peut-elle aider dans ce contexte ? Une approche consisterait à avoir une petite quantité de Bitcoin, d’une valeur d’environ 100 $, dans chaque système et appareil, même les appareils IoT. En rendant public le fait que tous les systèmes et appareils ont cette réserve, vous créez une incitation pour les pirates informatiques à essayer de pénétrer vos systèmes et de voler l’argent.

Cependant, il ne s’agit pas de vol ; c’est considéré comme une prime pour les pirates informatiques qui parviennent à violer votre système. Si un pirate informatique parvient à violer, disons, un appareil IoT, il peut réclamer la somme d’argent à l’intérieur. De plus, s’ils reviennent vers vous et vous disent comment ils ont fait et comment résoudre le problème, vous pourriez payer une deuxième partie de la prime, d’une valeur d’environ 300 $ en Bitcoin. En créant une incitation, vous financez le travail des pirates éthiques qui testent votre sécurité. Si seuls les acteurs malveillants ont une incitation à attaquer vos systèmes, vous découvrirez une violation avec un acteur malveillant, ce qui peut être très désagréable, comme cela s’est produit avec le Colonial Pipeline. Cependant, si vous donnez une incitation aux pirates éthiques et honnêtes pour accéder à votre système, il est fort probable que les personnes qui accéderont à votre système seront des individus honnêtes qui vous diront ensuite comment résoudre votre système pour éviter que des problèmes ne se produisent. La chose intéressante est que ces réserves sont publiques, donc si vous les mettez dans votre réseau, vous pouvez surveiller de manière transparente si vous avez été violé ou non. Vous pouvez également surveiller de manière externe tous les appareils, même si l’appareil IoT n’est pas connecté à Internet. Si vous voyez que les pièces qui étaient à l’intérieur de cet appareil se déplacent, cela signifie que d’une manière ou d’une autre, cet appareil a été violé, et cela est essentiel de le savoir.

Rappelez-vous que dans ces violations de haut niveau qui sont rendues publiques, il arrive généralement que les acteurs soient dans les systèmes pendant des mois avant de décider de réclamer leur rançon. En utilisant ce système de sécurité basé sur la blockchain, vous créez un mécanisme d’alerte précoce. Même si des pirates non éthiques pénètrent dans le système, ils pourraient simplement prendre l’argent et partir, sans passer par le processus de rançon compliqué.

C’est une façon différente de penser à la sécurité et probablement pas le cas d’utilisation auquel vous pensiez pour la blockchain dans votre supply chain. Mais comme vous pouvez le voir, les cas d’utilisation intéressants pour la supply chain incluent toujours une sorte d’incitation monétaire, ce qui est très Bitcoin-esque en termes de réflexion sur la façon d’aborder la blockchain en ce qui concerne les cas d’utilisation de la supply chain.

Slide 23

Maintenant, comme je l’ai mentionné, les blockchains sont très difficiles à concevoir par rapport à pratiquement n’importe quelle autre solution. Vous pouvez vous attendre à ce qu’il soit au moins deux ordres de grandeur plus difficile de concevoir une solution basée sur la blockchain. Donc, chaque fois que vous pensez pouvoir résoudre un problème en consacrant une semaine du temps d’un ingénieur logiciel, multipliez ce nombre par 100, et cela vous donnera l’effort nécessaire pour faire la même chose avec la blockchain. Il y a des situations où cela a du sens ; ce n’est pas parce que c’est cher que cela ne peut pas être rentable, mais c’est fondamentalement difficile, et vous devez en tenir compte. Les coûts sont également beaucoup plus élevés en ce qui concerne les ressources informatiques. En général, la blockchain est très difficile à mettre à l’échelle, et par rapport à une configuration non basée sur la blockchain, vous finissez par dépenser 100 fois plus de ressources informatiques pour tout ce que vous voulez faire avec la blockchain. Dans certaines situations, cela peut ne pas vous déranger, mais dans de nombreuses autres situations, une augmentation de 100 fois du coût de votre matériel informatique est significative.

La question est, comment pouvons-nous essayer des alternatives ? Dans presque toutes les situations où une blockchain est impliquée, il existe une alternative non basée sur la blockchain. En général, cela est réalisé en assouplissant les exigences. En termes de valeur ajoutée, si vous êtes prêt à renoncer à la propriété de non-négation que j’ai décrite au début de cette conférence, vous pouvez nommer un consortium de quelque sorte. Ce consortium utilisera une base de données de points de contrôle, publiera des journaux qui peuvent être vérifiés par des tiers à partir du consortium ou éventuellement par des entreprises ou entités extérieures au consortium. L’un des points critiques sera d’avoir des formats binaires très clairement spécifiés afin que les parties puissent fonctionner de manière programmable. Avec cela en place, vous obtiendrez la plupart de la valeur que vous obtiendriez autrement d’une blockchain.

Un excellent exemple de chaîne d’approvisionnement pour cela serait GS1 pour les codes-barres. GS1 est une entité qui attribue des codes-barres, et ils le font depuis des décennies. Cette organisation a été créée en tant qu’entité distincte, donc à l’époque, ce n’était pas directement IBM qui gérait les codes-barres. GS1 offre la valeur ajoutée d’une blockchain sans utiliser réellement une blockchain. Cependant, cette approche nécessite une autorité centrale ou un consortium en qui vous pouvez avoir confiance. Dans de nombreuses industries très concentrées, comme la pharmacie, l’établissement d’un consortium où il existe déjà une part de marché importante peut ne pas être trop difficile.

Slide 24

En conclusion, le consensus de Satoshi Nakamoto est une découverte stupéfiante. En 2008, si vous aviez demandé aux experts en systèmes distribués s’il était possible de résoudre le problème de consensus byzantin sans recourir à une autorité centrale, la plupart d’entre eux auraient répondu non, car cela ne semblait pas possible. L’idée était tellement en dehors de ce que les gens pensaient être possible qu’ils ne regardaient même pas dans cette direction. À cet égard, c’était une découverte stupéfiante. Comme je l’ai présenté avec le mini Bitcoin, c’est une idée très simple qui a des utilisations au-delà de l’argent, l’argent étant le cas d’utilisation principal.

Ce que nous devons garder à l’esprit, c’est que pour chaque cas d’utilisation de la blockchain, il existe généralement une alternative non basée sur la blockchain qui est beaucoup plus simple à utiliser. Nous devons vraiment évaluer si les frais supplémentaires associés à une blockchain en valent la peine. En conclusion, n’oubliez jamais qu’une blockchain est fondamentalement liée à sa monnaie sous-jacente, ce qui génère le conflit d’intérêts le plus important de tous.

Dans l’une de mes conférences précédentes sur la recherche de marché adversaire, j’ai présenté mes points de vue sur la façon de choisir les fournisseurs d’entreprise et discuté des problèmes liés aux avis. De nombreuses approches intuitives pour aborder ces problèmes sont sapées en raison de conflits d’intérêts. Avec les blockchains et les cryptomonnaies, le problème est mille fois pire. Tout le monde a de gros incitatifs s’ils possèdent du Bitcoin, du Bitcoin Cash, de l’eCash ou d’autres cryptomonnaies. Ils auront un biais significatif en raison de leurs investissements, et si votre entreprise prend une direction favorable à une blockchain spécifique, cela peut également être favorable à leurs investissements.

Je n’ai pas de bonne solution à ce problème, mais je conseille d’être conscient et préparé. La plupart des informations trouvées en ligne sur les cryptomonnaies ne sont pas fiables, car de nombreuses personnes ont un conflit d’intérêts en promouvant leur cryptomonnaie préférée. Ne faites confiance à personne, sauf à des collègues en qui vous auriez confiance pour votre vie. Fiez-vous à votre propre jugement ou au jugement de collègues qui comprennent ce qui se passe. Les conflits d’intérêts avec les blockchains entraînent des comportements inattendus, en particulier dans la chaîne d’approvisionnement, où des relations de longue durée et un haut degré de confiance sont généralement présents.

Les organisations opérant de grandes chaînes d’approvisionnement peuvent ne pas être préparées au niveau de méfiance que l’on trouve dans l’espace des cryptomonnaies. Cela conclut la conférence. Jetons un coup d’œil aux questions.

Slide 25

Question : La blockchain et le Bitcoin ne sont pas la même chose ; l’un est unique tandis que l’autre est une technologie de base.

Oui, la sémantique et la terminologie sont importantes. Je savais en faisant cette conférence qu’il y aurait des personnes soulignant qu’ils ne sont pas exactement la même chose. Cependant, si vous voulez examiner une blockchain pure dans le sens technique, alors un référentiel Git, comme GitHub, est une blockchain. Les référentiels Git existent depuis environ 15 ans et ils n’ont pas rendu le monde fou. Il n’y a pas des milliards d’euros et de dollars qui circulent dans ces référentiels Git.

Le point est que la blockchain ne fonctionne que en termes de valeur ajoutée qu’elle crée. Ce qui différencie Bitcoin de Git, malgré le fait que les deux soient des blockchains, c’est que Bitcoin a des incitations financières intégrées qui débloquent certains aspects de la technologie. C’est le tour de passe-passe. Si vous supprimez tous les aspects monétaires et les incitations qui sont conçus, alors vous avez quelque chose qui est juste une structure de données technique, mais qui n’a aucun intérêt. Oui, c’est une belle structure de données - Git est une belle structure de données - mais cela n’a pas rendu fou tout le marché, et les gens ne diraient certainement pas “Oh, ce référentiel Git vaut des milliards”. Il y a quelque chose de différent. Mis à part les querelles de terminologie, je crois que la raison principale pour laquelle de nombreuses entreprises ont adopté le terme blockchain était d’introduire une certaine distinction dans le discours par rapport à ces cryptomonnaies qui étaient perçues comme le Far West complet.

Question : La blockchain est la technologie qui permet un consensus décentralisé mais avec un coût - retard, évolutivité, etc., et pollution.

Absolument. Au fait, je peux également aborder le cas d’utilisation de la pollution. Le problème est que chaque fois que vous avez un processus d’émission d’argent, peu importe comment l’argent est émis - que ce soit la banque centrale pour l’euro, la Fed pour le dollar, ou autre - si les acteurs économiques peuvent investir pour bénéficier de cette émission d’argent, ils investiront jusqu’au coût marginal. Donc, si la banque centrale imprime 100 et que je peux investir 90 pour récupérer ces 100, je le ferai.

Peu importe comment vous avez un processus d’émission d’argent, les gens vont dépenser jusqu’au coût marginal pour correspondre à l’utilité. Il s’est avéré que parce que Bitcoin Core a pris de la valeur, les gens sont prêts à payer beaucoup en termes d’électricité pour acquérir ces nouveaux Bitcoins. Cependant, le processus diminue de manière exponentielle, ce qui signifie qu’il y a quelques décennies, la quantité de nouveaux Bitcoins émis diminuera presque à néant, et donc la quantité que les gens seront prêts à payer pour la preuve de travail sera presque nulle. C’est un problème transitoire, et pour l’instant, c’est principalement la capacité inutilisée d’électricité qui est utilisée.

Je suis d’accord avec votre conclusion ; cela vous donne un consensus décentralisé dans la perspective du consensus byzantin, et oui, il y a des surcharges massives associées. Absolument, c’est la bonne conclusion.

Question : Pourquoi l’utiliser dans l’industrie de la chaîne d’approvisionnement ? Qu’est-ce que le paradigme décentralisé résout ? Quel problème apporte-t-il ?

J’ai présenté différents cas d’utilisation dans ma conférence. La décentralisation vous dispense de la nécessité de concevoir un consortium. Le problème est que si vous avez une autorité centrale en laquelle vous avez confiance et que cette autorité centrale est honnête, alors tant mieux - vous n’avez pas besoin d’une blockchain. Le tour de passe-passe, c’est que faire quand vous ne l’avez pas ?

Même les domaines qui avaient des autorités centrales, comme par exemple les virements bancaires, sont sous le contrôle d’autorités centrales - il y a des gardiens qui sont les banques, puis les banques centrales. Nous ne sommes pas, je dirais, en pénurie d’autorités centrales, mais néanmoins, en 2021, le règlement d’un paiement avec mes clients à l’étranger prend toujours deux semaines. Nous sommes au 21e siècle ; je peux envoyer un e-mail et il est reçu en quelques secondes par ces clients, mais l’envoi d’un virement bancaire prend des semaines. Donc évidemment, il y a certains problèmes qui sont parfois très difficiles à résoudre parce que peut-être le problème n’est pas que vous n’avez pas d’autorités centrales, mais que vous en avez trop, ou que vous avez des problèmes complexes où vous ne pouvez pas réunir les gens pour trouver une solution.

J’ai décrit certains cas d’utilisation, par exemple, la traçabilité active, où vous opérez dans un pays pauvre où tous les intermédiaires sont corrompus. C’est un autre problème où vous ne pouvez faire confiance à personne. Lorsque vous avez une corruption épidémique, ces problèmes sont très difficiles à résoudre. C’est une situation où la blockchain décentralisée peut vous donner un moyen de concevoir l’honnêteté des participants. C’est le tour de passe-passe : les participants ne sont pas censés être honnêtes ; ils sont conçus pour rester honnêtes pendant qu’ils opèrent la chaîne d’approvisionnement. Si tout le monde est déjà très honnête et que les autorités centrales sont appliquées, alors il y a très peu de valeur ajoutée.

Question : Comment gérez-vous l’existence de matériels ASIC (circuits intégrés spécifiques à une application) spécialisés dans le minage et les fermes pour garantir que personne ne peut facilement détenir 51% du pouvoir des réseaux ?

Historiquement, les ASIC ont été une force positive pour la sécurité du réseau Bitcoin Core. Pourquoi ? Parce qu’il y a un autre problème dans le paysage moderne : les botnets. Les botnets sont de vastes flottes d’ordinateurs compromis contrôlés par des organisations criminelles qui prennent littéralement le contrôle de millions d’appareils du quotidien tels que des ordinateurs, des imprimantes et des caméras de sécurité. Ces organisations ne veulent pas vous empêcher d’utiliser votre appareil, car cela entraînerait des réparations et la suppression des logiciels malveillants.

En termes de sécurité, le paysage dans lequel nous nous trouvons est que les organisations criminelles disposent littéralement de dizaines de millions d’ordinateurs gratuitement. Ces organisations qui exploitent des botnets, si vous regardez les mises à jour de sécurité de Microsoft, vous verrez qu’à plusieurs reprises par an, Microsoft a éliminé des botnets absolument massifs par le passé. Ils communiquaient en disant, par exemple, “Nous avons réussi cette mise à jour Windows, et au fait, nous venons d’éliminer ce botnet de 50 millions de machines.” C’est impressionnant. Ainsi, les ASIC signifient qu’il n’y a aucun intérêt à jouer à ce jeu avec du matériel ordinaire comme celui de vos ordinateurs habituels. Par conséquent, les criminels qui exploitent des botnets ne peuvent pas utiliser ces botnets pour miner des cryptomonnaies, ce qui élimine une possibilité de monétiser ces botnets. Cela force les mineurs à s’engager envers la monnaie.

Vous voyez, les ASIC ne sont pas un problème ; ils sont, au contraire, le genre de solution qui garantit que cette puissance de traitement supplémentaire ne cause pas de ravages ou n’exploite pas la puissance de traitement disponible via les botnets. Les botnets sont déjà un énorme problème pour tout le monde, et nous ne voulons pas renforcer davantage ces botnets.

Question : Quels sont vos avis sur le Telegram Open Network qui n’a pas pu voir le jour en raison des tribunaux américains ? Quels sont vos avis en général sur les cryptomonnaies émises par des messagers ? Est-ce que cela apporte quelque chose de nouveau ?

Eh bien, je pense que la situation est très prévisible pour Telegram et la même chose pour Facebook, et toute entreprise qui souhaite opérer en tant qu’entreprise publique. Il existe des réglementations générales qui disent que si vous êtes une entreprise, il y a des exigences KYC (Know Your Customer), et je ne vais pas rentrer dans les détails. Fondamentalement, si vous êtes une grande entreprise, vous pouvez vous attendre à ce que dans de nombreuses juridictions, il y ait des exigences KYC. Je ne suis pas là pour discuter de savoir si les réglementations sont adéquates ou non ; je dis simplement que les réglementations KYC sont courantes dans de nombreux pays.

Si vous revenez à ce qui fait d’une blockchain une blockchain, comme je l’ai décrit dans la liste des exigences, le deuxième point est que les participants sont anonymes. Ainsi, les exigences KYC entrent en jeu. Si vous voulez exploiter une blockchain, vous devez accepter de préserver une sorte de pseudo-anonymat de tous ceux qui participent à ce réseau, ce qui signifie qu’en termes d’exigences KYC, vous êtes complètement hors jeu.

Je n’étais pas trop sûr de ce que ces entreprises pensaient, mais je ne peux pas imaginer une entreprise qui veut être à la fois publique et répondre aux autorités comme la SEC aux États-Unis ou l’AMF en France, tout en étant capable de s’engager dans un schéma qui va évidemment à l’encontre des réglementations KYC qui sont très courantes pour les grandes entreprises. Je pense fondamentalement qu’elles testaient probablement les eaux pour voir si peut-être les régulateurs assoupliraient les réglementations rien que pour elles, simplement parce qu’elles étaient grandes. Cela n’a peut-être pas fonctionné pour elles, et donc elles se retirent. Fondamentalement, à part cela, je crois que, par exemple, Telegram ou Facebook, s’ils acceptent de simplement promouvoir une cryptomonnaie sans l’exploiter, pourraient réellement donner un énorme coup de pouce à cette cryptomonnaie. Cependant, le problème est que parce qu’ils se contenteraient de la promouvoir, sans l’exploiter, ils auraient peu à gagner pour eux-mêmes, sauf s’ils ont créé un conflit d’intérêts où ils bénéficient de la croissance de la monnaie. Au fait, Elon Musk, je te regarde quand tu commences à tweeter sur Bitcoin et sur le fait que ton entreprise a une position là-dessus. C’est littéralement le jeu qui peut être joué : tu acquiers d’abord une participation dans une cryptomonnaie, puis tu pompes littéralement cette cryptomonnaie en faisant des déclarations très visibles à son sujet. Laisse la valorisation augmenter, puis, une fois qu’elle est plus élevée, vends-la. Au fait, ce processus s’appelle le pump and dump. Probablement, Telegram et Facebook ont réalisé que la seule façon dont ils pouvaient réellement tirer profit de la simple promotion d’une monnaie sans l’exploiter était les pump and dumps, et ils ne voulaient pas que leur réputation soit ternie en faisant ce genre de manigances.

Question : Il y a sept ans, j’ai vu de nombreuses startups introduire la technologie blockchain dans des domaines liés à la chaîne d’approvisionnement. Aucune d’entre elles n’a réussi, du moins à grande échelle. En connaissez-vous une qui a réussi et qui a prouvé son efficacité à grande échelle ?

Bonne question. Je veux dire, tout d’abord, je ne pense pas que quiconque sur la planète dispose d’une blockchain qui soit scalable de manière prouvée et qui fonctionne réellement à grande échelle. Si nous examinons l’expérience de Bitcoin Core, cela ne se passe pas bien. Le réseau est complètement saturé ; il est saturé depuis maintenant quatre ans. C’est vraiment le contraire de la scalabilité. Si vous regardez Bitcoin Cash, c’est une autre blockchain. Ils ont fait quelques progrès, mais ils n’ont jamais vraiment eu le temps ; ils ont eu quelques dissensions internes et n’ont donc jamais terminé tous les derniers détails en termes d’ingénierie pour le faire fonctionner. Il y a une autre fourchette, comme je le mentionnais, appelée eCash qui est essentiellement une fourchette de Bitcoin Cash, où ils essaient à nouveau de faire toutes les choses qui n’ont pas été faites dans le client Satoshi original car la plupart des problèmes de scalabilité peuvent être attribués au client Satoshi original. Il y a un certain espoir qu’ils puissent atteindre une scalabilité massive, mais encore une fois, cela relève davantage d’une perspective théorique. Ce n’est pas prouvé dans le sens où il y a quelque chose qui, à l’heure actuelle, fonctionne à hyperscalabilité, bien que nous ayons des raisons de croire que cela est possible dans une certaine mesure. J’ai d’ailleurs publié là-dessus, si vous voulez consulter ma publication sur les blocs de taille téraoctet pour Bitcoin.

Maintenant, personne n’a réussi à faire évoluer ce genre de choses à grande échelle. C’est très difficile. Mettre à l’échelle la couche de base est le premier défi, et ensuite, évidemment, les startups qui veulent le faire pour la chaîne d’approvisionnement veulent faire quelque chose de encore plus avancé. Ils doivent avoir la couche de base qui peut être mise à l’échelle, et ensuite ils veulent faire quelque chose qui est également à l’échelle de la chaîne d’approvisionnement. Je crois que aucun d’entre eux n’a réussi parce que, comme je le décrivais, oui, il y a des cas d’utilisation pour la chaîne d’approvisionnement, et oui, il y a une certaine marge de valeur ajoutée, mais d’abord, vous devez résoudre ces problèmes très difficiles de scalabilité et de latence. Cela n’a peut-être pas fonctionné pour eux, et vous pouvez voir que les articles que j’ai cités ne sont pas si anciens. Je veux dire, les articles sur Avalanche datent littéralement de quelques années seulement. Il y a eu des percées qui sont encore assez récentes, et cela prendra encore beaucoup de temps. Pour pouvoir mettre à l’échelle, il faut faire des percées au niveau de l’algorithmique théorique, ce qui est très difficile à faire avancer.

Les algorithmes que j’ai décrits, comme Avalanche, sont extrêmement difficiles à implémenter correctement. Il y a beaucoup de détails que vous pouvez mal interpréter, et en termes de blockchain, si vous faites quelque chose de mal, cela signifie que vous serez compromis, attaqué et que de l’argent sera perdu. La gravité des bugs et des problèmes lorsque vous opérez dans le monde de la blockchain est très importante. Ce n’est pas comme un logiciel d’entreprise ordinaire où, s’il plante, vous pouvez le redémarrer, corriger manuellement les données qui ont été affectées et continuer à partir de là. Avec les blockchains, une fois que vous avez une corruption massive, les dommages peuvent être permanents, et c’est un endroit très difficile pour opérer.

Je crois que bon nombre des startups qui se sont lancées dans cet espace n’étaient absolument pas préparées en termes d’état d’esprit d’ingénierie requis pour faire face aux défis de l’exploitation dans le domaine de la blockchain. Une bonne ingénierie ne suffit pas ; il faut vraiment une excellente ingénierie pour réussir.

Cela conclut la section des questions-réponses de cette conférence. La prochaine conférence portera sur l’optimisation mathématique pour la chaîne d’approvisionnement et aura lieu le mercredi 25 août. Je vais prendre quelques jours de congé. Au fait, l’optimisation mathématique, contrairement à la blockchain, est utilisée quotidiennement dans de nombreuses chaînes d’approvisionnement. Les applications sont énormes et les cas d’utilisation sont très concrets. Nous ne parlons pas de cas d’utilisation de niche ; les applications sont massives.

L’optimisation mathématique est très liée à l’apprentissage statistique et à la prise des meilleures décisions de chaîne d’approvisionnement. À la prochaine.