Comment les Blockchains et les Oracles utilisent la cryptographie et le consensus décentralisé pour générer une vérité immuable ?
16 mars 2022 Chainlink
Cet article est une traduction de l’article orignal que vous pouvez retrouver sur le site officiel de Chainlink : https://blog.chain.link/what-is-cryptographic-truth/
Voici la deuxième partie d’une série de deux articles sur l’avenir de la confiance dans nos sociétés. N’hésitez pas à lire la première partie, sur l’importance et le rôle de la confiance dans la révolution crypto, pour mieux comprendre les problèmes de société que les blockchains, les contrats intelligents et les oracles sont conçus pour résoudre.
Si les technologies basées sur les blockchains possèdent de nombreuses qualités qui les distinguent des autres paradigmes informatiques que nous connaissons actuellement, leur principale proposition de valeur réside dans leur capacité à générer une “vérité cryptographique”. Contrairement aux alternatives actuelles, les blockchains permettent d’obtenir une forme de calcul informatique et d’enregistrement de l’information qui est à la fois fiable, vérifiable par tous, et surtout immuable.
L’émergence de la vérité cryptographique est le fruit d’une infrastructure “à confiance minimisée”, c’est- à-dire d’un code qui fonctionne exactement comme prévu, sans altération possible.
Comment les blockchains permettent-elles d’exécuter des contrats et des échanges dans un cadre de confiance “minimisé” ? Pour y répondre, elles utilisent 2 grands mécanismes :
- L’utilisation de la cryptographie pour sécuriser l’authentification des données et l’enregistrement chronologique des événements ;
- L’utilisation d’un consensus décentralisé pour valider les nouvelles entrées et les conserver de manière immuable.
Grâce à ces mécanismes, les processus d’échanges contractuels peuvent être suivis et exécutés sur une infrastructure partagée, fiable et totalement neutre.
Dans cet article, nous allons explorer :
- La manière dont les blockchains utilisent la cryptographie et le consensus décentralisé pour générer une vérité cryptographique immuable ;
- Le rôle joué par les oracles pour étendre l’utilisation de cette vérité cryptographique à la vérification de tout type d’événement.
Table des matières
- Comprendre la cryptographie et son utilisation dans les blockchains
- Introduction à la cryptographie
- La cryptographie moderne
- Les fonctions de hachage
- Le chiffrement symétrique
- Le cryptage asymétrique
- La cryptographie dans les Blockchains
- Authentification et vérification de transactions
- Production de blocs, résistance Sybil et finalité de consensus
- Stockage de données
- Les autres techniques cryptographiques utilisées dans les blockchains
- La vérité générée à partir d’un consensus décentralisé
- La structure des blockchains issues de la théorie des jeux
- Les modèles d’incitations issus de la théorie des jeux
- Quels sont les résultats de ces modèles de structure et d’incitations construits sur la théorie des jeux ?
- Comment Chainlink utilise la vérité cryptographique pour construire une source de vérité universelle
- Un futur construit sur la vérité cryptographique
Comprendre la cryptographie et son utilisation dans les blockchains
Pour bien comprendre la notion de “vérité cryptographique” et son rapport avec les blockchains, il est important de se familiariser d’abord avec la terminologie et le fonctionnement général de la cryptographie moderne.
Remarque : Si vous comprenez déjà bien la cryptographie, n’hésitez pas à passer directement à la sous-section : La cryptographie dans les Blockchains.
Introduction à la cryptographie
La cryptographie est la science de la communication sécurisée. Dans nos sociétés actuelles, la plupart des gens comprennent le rôle clé que joue la cryptographie dans la confidentialité de leurs communications. Les applications de messagerie cryptées permettent d’authentifier l’origine, de valider l’intégrité et d’établir la communication entre 2 ou plusieurs personnes ; Grâce à la cryptographie, il est facile de : 1) Déterminer si un message provient bien d’une personne spécifique ;2) Vérifier qu’il n’a pas été falsifié.
La cryptographie est utilisée pour convertir un message original en un message inintelligible qui ne peut être interprété (décodé) qu’avec une clé.
Le chiffrement est une fonction bidirectionnelle qui chiffre le message d’origine en un message inintelligible qui ne peut être déchiffré que par le destinataire souhaité. D’autres fonctions cryptographiques sont à sens unique et visent uniquement à prouver l’authenticité d’une information (exemple : la propriété d’une donnée) sans la rendre accessible.
Pour qu’un processus de chiffrement cryptographique bidirectionnelle fonctionne, il faut donc d’une part un algorithme de cryptage ou algorithme de “chiffrement”, et d’autre part, une clé secrète — généralement une chaîne de caractères — qui permet à quelqu’un de décoder le chiffrement.
Il existe deux types de techniques de base utilisées dans les chiffrements : la substitution et la permutation (également appelée transport). La substitution remplace les lettres, chiffres et symboles originaux par d’autres lettres, chiffres ou symboles. La permutation utilisent les lettres du message d’origine mais les réorganisent dans un ordre différent. Ces techniques sont d’ailleurs souvent combinées ou superposées pour créer davantage de complexité. Ci, dessous, un exemple de chaque technique.
À l’époque, les premiers processus de chiffrement étaient directement intégrés dans le matériel. Mais, avec l’avènement des ordinateurs, les algorithmes de cryptage logiciels sont progressivement devenus la norme.
La cryptographie moderne
La cryptographie moderne repose en grande partie sur ce qu’on appelle des hypothèses de dureté de calcul. Alors que la plupart des fonctions cryptographiques sont théoriquement possibles à casser, elles sont, en pratique, quasiment impossible à résoudre du fait des contraintes et limites de l’informatique actuelle.
Les algorithmes cryptographiques modernes cherchent à trouver le juste équilibre entre l’efficacité de calcul et le niveau de sécurité informatique souhaité. Déterminer le “juste équilibre” permet de définir plusieurs paramètres comme, par exemple, la longueur d’une clé de déchiffrement.
De nombreuses fonctions cryptographiques sont construites pour que l’utilisation de la puissance de calcul des systèmes informatiques modernes, soumis à des contraintes temporelles et des contraintes budgétaires, ne permettent pas de trouver la solution. Ces fonctions cryptographiques sont, par exemple, construites sur le problème du logarithme discret, le problème de la factorisation d’entiers ou encore les problèmes théoriques des courbes elliptiques .
Dans le monde moderne, il existe trois catégories générales de cryptographie logicielle : les fonctions de hachage, le chiffrement symétrique et le chiffrement asymétrique.
Les fonctions de hachage
Les fonctions de hachage convertissent les données de n’importe quelle longueur en une longueur fixe, appelée hash. Un hash est un identifiant unique de données semblable à une empreinte digitale, qui permet de vérifier un ensemble de données d’origine. Le hachage des données est couramment utilisé pour indexer les données et les récupérer de manière efficace. Il est également utilisé pour stocker des données en toute sécurité, comme dans le cas de sites Web qui ne stockent qu’un hash des mots de passe des utilisateurs pour éviter les fuites de mots de passe en cas de violation de la base de données.
Les fonctions de hachage n’utilisent pas de clés et sont basées sur des fonctions à sens unique, ce qui signifie qu’il est presque impossible pour quelqu’un qui ne connaît pas le message d’origine de le comprendre à partir du “hash” seul. La seule méthode réaliste pour obtenir le message original est ce qu’on appelle “la force brute” ; c’est-à-dire deviner chaque entrée possible, qui dans le cas des fonctions de hachage correspond à un ensemble quasiment illimité de combinaisons de caractères possibles. Les algorithmes de hachage sont également conçus pour résister à la collusion — autrement dit, il est presque impossible que deux entrées différentes génèrent le même hash. Ces propriétés font en sorte que toute modification dans le message d’entrée, telle que la casse d’une lettre ou l’ajout d’un signe de ponctuation, se traduira par une sortie de hachage complètement différente et aléatoire.
L’algorithme de hachage le plus populaire aujourd’hui est le SHA-256, qui crée des chaînes d’une longueur de 256 bits (c’est-à-dire 256 1 et 0 consécutifs). Les hachages 256 bits sont souvent représentés sous forme de chaîne hexadécimale, ce qui explique qu’ils peuvent comporter 32 ou 64 caractères. SHA-256 fait partie de l’ensemble de fonctions de hachage SHA-2, qui remplace SHA-1 (un algorithme de hachage qui n’est plus considéré comme suffisamment sécurisé). SHA-3 a également été introduit en 2015 sur la base d’une nouvelle fonction de hachage cryptographique, appelée Keccak.
Le chiffrement symétrique
Le chiffrement symétrique (ou chiffrement à clé secrète) implique une clé secrète commune que l’expéditeur et le destinataire utilisent pour chiffrer et déchiffrer les messages. Le chiffrement symétrique est rapide et efficace, mais nécessite de parvenir à partager la clé secrète sur Internet de manière sécurisée. De plus, si la clé secrète est compromise, quiconque l’utilise peut déchiffrer tous les anciens messages, ainsi que les futurs messages. C’est pourquoi de nombreux protocoles Internet qui utilisent le chiffrement symétrique, tels que le TLS, utilisent également des protocoles d’échange de clés pour établir en toute sécurité une clé secrète partagée sans jamais l’envoyer sur Internet.
L’algorithme de chiffrement symétrique le plus populaire est Advanced Encryption System (AES). AES offre des tailles de clé de 128, 192 et 256 bits de longueur, ce qui représente une amélioration substantielle par rapport aux clés de 56 bits utilisées dans la norme précédente, appelée Data Encryption Standard (DES). À titre d’exemple, une clé de 56 bits conduit à 72 quadrillions de clés possibles (2 puissance 56), et peut être piratées en moins de 24 heures par la force brute. Alors que dans AES, la taille de clé la plus courte prendrait des trillions et des trillions d’années pour essayer l’ensemble des combinaisons de clés possibles (2 puissance 128), même en combinant la puissance de calcul de tous les ordinateurs du monde.
Le cryptage asymétrique
Le cryptage asymétrique (ou cryptographie à clé publique) donne à chaque utilisateur une paire de clés publique et privée. La clé publique est visible de tous tandis que la clé privée n’est connue que du propriétaire. Les utilisateurs peuvent chiffrer des messages avec leur clé privée que toute personne disposant de la clé publique peut déchiffrer. C’est ce qu’on appelle une signature numérique, car elle prouve la connaissance d’un secret sans le révéler. Les utilisateurs peuvent également chiffrer des messages avec la clé publique de quelqu’un d’autre que seule la personne possédant la clé privée peut déchiffrer (par exemple pour envoyer des informations confidentielles).
Les algorithmes de chiffrement asymétriques les plus populaires sont RSA (du nom de ses inventeurs Ramis, Shamir et Adleman), ECC (Elliptic Curve Cryptography), Diffie Hellman (protocole d’échange de clés populaire) et DSS (Digital Signature Standard). Certains algorithmes de chiffrement asymétrique sont résistants à la puissance de calcul quantique tandis que d’autres ne le sont pas et devront probablement être mis à niveau ou abandonnés à l’avenir.
La cryptographie dans les blockchains
Les blockchains utilisent deux formes principales de cryptographie : 1) la cryptographie à clé publique et 2) les fonctions de hachage. Toutefois, d’autres techniques cryptographiques sont de plus en plus utilisées pour apporter aux blockchains des solutions en matière de scaling, de confidentialité et de connectivité. Voici ci-dessous quelques-unes des façons dont les blockchains utilisent les fonctions cryptographiques.
Authentification et vérification de transactions
Chaque utilisateur d’une blockchain doit avoir une paire de clés publique/privée et une adresse blockchain afin de soumettre des transactions sur le réseau. La clé privée est utilisée pour générer la clé publique, et la clé publique est utilisée pour générer l’adresse sur la blockchain — il s’agit généralement d’un hachage de la clé publique avec les 20 derniers octets ajoutés à un préfixe tel que 0x. Notez que de nombreux portefeuilles blockchain et échanges traditionnels (CeFi) font abstraction de la génération de la paire de clés publique/privée pour faciliter les interactions de leurs utilisateurs avec les blockchains.
L’adresse blockchain est similaire au nom associé au compte bancaire d’un utilisateur, sauf que sur les blockchains, il s’agit d’une chaîne pseudo-anonyme de chiffres et de lettres. L’adresse blockchain est l’endroit où un utilisateur stocke ses fonds et déploie des contrats intelligents.
La clé privée s’apparente à un mot de passe que l’utilisateur doit saisir pour effectuer des actions sur son compte, telles que transférer des fonds et apporter des modifications aux contrats intelligents.
La clé publique s’apparente au numéro de compte bancaire de l’utilisateur et est utilisée pour vérifier les signatures de la clé privée.
Lorsqu’il soumet des transactions, l’utilisateur envoie un message, de son adresse blockchain au réseau principale, contenant à la fois les données de la transaction et une signature numérique. Les données de la transaction décrivent l’action que l’utilisateur souhaite effectuer sur le réseau tandis que la signature numérique authentifie l’action. La signature numérique est générée à partir de deux entrées : un hachage des données de transaction de l’utilisateur et sa clé privée. La signature numérique est ensuite jointe aux données pour former une transaction signée de manière numérique.
Les mineurs/validateurs et les nœuds complets (full nodes) exécutent un protocole de vérification de signature numérique pour vérifier la validité de la transaction. Le protocole de vérification prendra ensuite les données de la transaction d’origine et les hachera. Il déchiffrera également la signature numérique avec la clé publique de l’utilisateur, ce qui lui permettra d’obtenir un hachage. Si les deux hachages sont identiques, la transaction est considérée comme valide.
Ce qu’il faut retenir, c’est qu’en combinant le hachage et la cryptographie à clé publique pour prendre en charge les signatures numériques, les blockchains garantissent donc que seul le détenteur de la clé privée peut accéder aux fonds stockés à l’adresse blockchain correspondante.
Production de blocs, résistance aux attaques Sybil et finalité de consensus
La production de blocs est le processus par lequel les mineurs/validateurs regroupent les transactions en attente dans des structures de données appelées blocs et les proposent sur le réseau blockchain. Un bloc se compose généralement d’une liste de toutes les transactions faisant partie du bloc et d’un en-tête contenant les métadonnées du bloc. Pour produire un bloc, un mineur/validateur doit générer un hachage de bloc valide, sinon le bloc est rejeté.
Les blockchains Proof-of-Work (PoW) (par exemple Bitcoin) hébergent une compétition ouverte entre les mineurs, où le premier à générer un hachage valide par force brute est sélectionné pour proposer le bloc au registre principale de la blockchain. Les blockchains PoW utilisent des fonctions de hachage dans la production de blocs pour assurer une résistance aux attaques Sybil et donc éviter qu’une seule entité contrôle le processus de production de blocs et usurpe l’identités des utilisateurs. Étant donné que la puissance de hachage est le seul moyen pour un mineur PoW d’augmenter ses chances d’être l’auteur du bloc, obtenir le contrôle d’une plus grande puissance de hachage du réseau entraîne des coûts financiers proportionnels à l’augmentation de la puissance de calculs. Cela empêche non seulement les attaques par déni de service, mais oblige les mineurs à « travailler » pour avoir la chance d’obtenir des récompenses.
Les chaînes de blocs Proof-of-Stake (PoS) comme Ethereum (post-fusion) génèrent également des hachages dans la production de blocs, mais le processus est volontairement conçu pour être facile car il n’y a pas de concurrence entre les validateurs. Au lieu de cela, les validateurs PoS sont généralement choisis comme auteurs de blocs via un processus de sélection aléatoire. Les blockchains PoS créent une résistance aux attaques Sybil en obligeant les validateurs à déposer de la crypto-monnaie dans un contrat bloqué (c’est-à-dire une mise, aussi appelée “staking”) afin de participer à la production de blocs. Ainsi, les validateurs PoS doivent engager des ressources financières pour augmenter leurs chances d’être sélectionnés en tant qu’auteur de bloc. Leur participation est même bien souvent soumise à des pénalités (c’est-à-dire une réduction ou confiscation de leur ressources financières) s’ils enfreignent certaines règles du protocole telles que l’inclusion de transactions invalides dans leur bloc ou la signature parallèle de deux blocs.
En général, pour être considéré comme valide, un hachage de bloc doit avoir les caractéristiques suivantes :
- Une racine merkle — un hachage de toutes les transactions incluses dans le bloc, contenu dans une structure de données en arbre de Merkle.
- Nonce — une combinaison arbitraire de chiffres et de lettres qui produit un hachage valide répondant à l’objectif de difficulté actuel. Les blockchains PoW ajustent périodiquement ce niveau de difficulté pour atteindre une certaine fréquence de blocs (par exemple toutes les dix minutes) tandis que les réseaux PoS rendent les nonces relativement faciles à générer.
- Les métadonnées de bloc — elles varient d’une blockchain à l’autre mais incluent généralement la version actuelle du logiciel de la blockchain, un horodatage, l’objectif de difficulté de minage ou le numéro du bloc actuel.
- Le hash du bloc précédent : le hash correspondant au bloc précédemment validé.
Les blocs comprennent la valeur de hachage du bloc précédent, ce qui permet de les lier cryptographiquement et chronologiquement dans le registre de la blockchain. C’est pour cette raison que les blockchains sont dites quasi-immuables, car il faudrait une puissance de calcul énorme pour défaire et réorganiser des blocs précédemment validés. Si une seule transaction d’un bloc est modifiée, le hachage entier du bloc change, ce qui permet d’être facilement repéré par les nœuds qui valident les blocs.
Notez que toutes les réorganisations de blocs ne sont pas malveillantes ; Les réorganisations au sein du bloc le plus récent, en bout de chaîne, sont même courantes en raison des conditions de réseau asynchrones.
Dans les blockchains PoW, si certains mineurs souhaitent effectuer une attaque de réorganisation de blocs, ils doivent régénérer des hashs valides pour tous les blocs qu’ils souhaitent remplacés pendant que d’autres mineurs dépensent des ressources de calcul pour ajouter de nouveaux blocs au bloc le plus récent. C’est là qu’entre en jeu la logique du consensus de Nakamoto selon laquelle “la version de la chaîne la plus longue avec le plus de travail est la chaîne valide”, car elle fournit aux mineurs un moyen simple de déterminer la version valide du registre.
Cette logique est la raison pour laquelle on dit que les blockchains PoW ont une finalité probabiliste, car plus la tentative d’altération remonte dans le temps, moins l’attaque a de chances de réussir. De la finalité probabiliste vient la notion d’attaque à 51% — qui dit que les mineurs ont besoin d’au moins 51% de la puissance de hachage globale pour lancer une attaque de réorganisation profonde et censurer les blocs d’autres mineurs. La finalité probabiliste est également la raison pour laquelle les échanges centralisés de crypto-monnaie autorisent généralement les utilisateurs à dépenser leurs fonds que lorsqu’un certain nombre de nouveaux blocs ont été minés à la suite du bloc qui comprend leur transaction (par exemple, généralement 6 blocs sur la blockchain Bitcoin, 32 blocs sur la blockchain Ethereum). Cela permet d’éviter les attaques par double dépense, c’est-à-dire lorsque la même unité d’une monnaie est dépensée frauduleusement plus d’une fois.
Dans les réseaux PoS, tout ou partie des validateurs qui ne produisent pas actuellement de blocs sont souvent chargés d’attester de la validité des nouveaux blocs via un mécanisme de vote. Un validateur tentant d’effectuer une réorganisation devra alors mettre en péril une partie, voir l’intégralité de sa mise financière, sachant que la pénalité pour aller à l’encontre du consensus décentralisé (qui requiert généralement au moins 2/3 des validateurs), augmente avec l’amplitude de l’attaque. Ce modèle généralisé de PoS apporte des propriétés crypto-économiques aux algorithmes de consensus tels que le Practical Byzantine Fault Tolerance, Tendermint, Casper et HotStuff .
Certaines chaînes de blocs PoS ont également une limite quant à la date à laquelle le registre de la chaîne de blocs peut être modifié, établissant essentiellement un point de non retour permettant de faire en sorte que chaque transaction antérieure à cette date ait une finalité explicite.
Le processus de fusion entre la “beacon chain” et le réseau Ethereum actuel divisera la production et la vérification des blocs en époques, chaque époque ayant 32 créneaux d’une durée de 12 secondes chacun. Au cours de chaque époque, tous les validateurs sont répartis aléatoirement en comités d’au moins 128 entités. À chaque créneau, un validateur propose un bloc, et les validateurs d’un ou plusieurs comités attestent de l’authenticité du bloc. Ce système est conçu de manière à ce que les validateurs attestent d’un bloc proposé par époque.
À la fin de chaque époque, les blocs de l’époque précédente sont considérés comme fiables si au moins deux tiers de tous les validateurs PoS attestent de leur validité (autrement dit, il faut une “super majorité”). Si deux époques successives sont considérées comme fiables, alors le consensus est finalisé. Dans un cadre de conditions idéales sur le réseau, la finalisation de la transaction a lieu en moyenne en 14 minutes environ. Une fois qu’une époque est finalisée, les règles du protocole empêche tout rétroactivité sans consensus social externe.
Le stockage de données sur la blockchain
Une blockchain est donc avant tout un registre (grand livre) contenant toutes les transactions qui se sont produites sur un réseau dans l’ordre chronologique (bien que certaines blockchains étudient la possibilité d’élaguer les données historiques au delà d’un certain point). Plus la blockchain s’exécute longtemps, plus le registre devient volumineux et plus il est coûteux pour les nœuds de stocker les informations du grand livre et de rester synchroniser entre eux. Par conséquent, des exigences excessives en matière de stockage et de bande passante mettent en péril la décentralisation du réseau d’une blockchain car elles augmentent les exigences matérielles pour exécuter un nœud complet, ce qui pourrait permettre à un petit groupe d’entités de corrompre le réseau.
Pour coder les données du registre principal de manière efficace et sécurisée, les blockchains utilisent des structures de données appelées arbres de Merkle. Dans un arbre Merkle, chaque transaction est hachée, puis liée à la transaction précédente, et le résultat est haché à nouveau, et ainsi de suite. Les hachages sont faits successivement et liés les uns après les autres dans l’arborescence jusqu’à ce qu’il n’y ait qu’un seul hachage de tous les hachages précédents, appelé la racine de Merkle.
Bitcoin utilise un arbre Merkle pour les transactions basées sur le modèle UTXO (Unspent Transaction Output), tandis qu’ Ethereum utilise un modèle différents qui permet de prendre en compte l’utilisation de contrats intelligents.
Les arbres de Merkle sont extrêmement utiles car ils occupent moins d’espace disque par rapport aux autres structures de données et facilitent en même temps la vérification de l’intégrité et la bonne inclusion des données dans le registre de la blockchain. De plus, comme les racines Merkle sont incluses dans les en-têtes de bloc, elles permettent aux clients légers connectés à un nœud complet (full node) de vérifier rapidement et en toute sécurité qu’une transaction spécifique a été incluse dans un bloc sans télécharger l’intégralité de la blockchain.
Les autres techniques cryptographiques utilisées dans les blockchains
Certaines des autres méthodes cryptographiques utilisées dans les blockchains incluent :
- Les preuves sans connaissance (ZKP : Zero knowledge Proof) : ce sont des modèles qui permettent à un utilisateur de prouver à une autre partie qu’il possède des connaissances sur un élément spécifique sans révéler explicitement le contenu de l’information. Par exemple, sur la blockchain Zcash, les nœuds complets peuvent prouver que les transactions sont valides sans connaître l’expéditeur, le destinataire ou le montant de la transaction.
- Les environnements d’exécution de confiance (TEE) : qui sont construits sur l’utilisation de matériel de confiance, tel qu’Intel SGX, pour effectuer des calculs confidentiels, où l’intégrité du calcul peut être prouvée via des attestations cryptographiques. Un bon exemple est la blockchain Oasis, où tous les nœuds de validation utilisent des environnements d’exécution fiables pour fournir une exécution confidentielle et vérifiable pour les contrats intelligents.
- Les schémas de signature à seuil (TSS) — il s’agit d’une forme de génération et de signature de clés distribuées utilisée pour authentifier les calculs effectués par un réseau décentralisé au moyen d’une signature cryptographique unique qui ne nécessite la signature que d’un certain nombre de participants. Par exemple, une transaction que seuls 10 nœuds sur 15 doivent signer pour être considérée comme valide.
La vérité générée à partir d’un consensus décentralisé
La théorie des jeux est une approche stratégique basée sur les mathématiques, qui vise à prédire les actions d’acteurs rationnels dans le cadre d’une compétition donnée. La théorie des jeux est fondée sur l’art d’utiliser des incitations pour atteindre les résultats souhaités dans le cadre d’interactions stratégiques.
Les blockchains tirent parti des mécanismes sous-jacent à la théorie de jeux pour inciter un réseau décentralisé de nœuds rationnels et économiquement intéressés à maintenir un registre précis, immuable, disponible et résistant à la censure. Ce résultat se résume parfois à l’obtention d’une majorité honnête — une majorité de nœuds qui participant honnêtement, permettant aux utilisateurs de faire confiance au système de consensus du réseau.
Voyons comment les blockchains sont structurées et incitées à atteindre et maintenir la vérité sur leurs réseaux.
La structure des blockchains issue de la théorie des jeux
Les blockchains sont des registres transparents alimentés par un logiciel open source, ce qui signifie que tous les participants peuvent consulter l’historique complet du registre et vérifier le fonctionnement du code.
Les participants au réseau blockchain sont divisés en cinq grands groupes :
Les utilisateurs, qui effectuent des transactions sur le réseau, soit pour des raisons personnelles, soit pour héberger des applications. Sur les blockchains sans autorisation, n’importe qui est autorisé à soumettre des transactions au réseau à tout moment.
Les mineurs/validateurs qui étendent le registre de la blockchain en produisant de nouveaux blocs à partir des transactions des utilisateurs. Certaines blockchains permettent à n’importe qui de devenir mineur/validateur tandis que d’autres blockchains sont plafonnés à un nombre limité ou à un ensemble de participants autorisés. Certains compensent cette limitation en permettant aux utilisateurs de voter ou de déléguer leur participation à d’autres validateurs.
Les nœuds complets (ou “full nodes”) ont plusieurs fonctions sur les réseaux blockchains. Premièrement, les nœuds complets fournissent des points de terminaison RPC qui permettent aux utilisateurs de lire et d’écrire dans la blockchain. Les points de terminaison RPC sont possibles via des nœuds auto-hébergés mais peuvent également être rendus disponibles grâce à des fournisseurs tiers (par exemple Infura). Lors de l’écriture de données sur la blockchain (c’est-à-dire la soumission de transactions), les nœuds complets les relaient vers un mempool public ou les conservent dans des pools de transactions privés. En effet, il n’y a pas de pool de transactions unique dans un réseau décentralisé peer-to-peer, chaque nœud complet possède sa propre pool de transactions.
Les nœuds complets vérifient également la validité des transactions des utilisateurs avant de les relayer sur le réseau ou avant de propager les transactions des autres nœuds. Les nœuds complets valident les nouveaux blocs proposés par les mineurs/validateurs, ce qui constitue un moyen d’auto-vérifier le grand livre de la blockchain. S’ils estiment que le bloc est valide, ils l’ajoutent à leur copie du grand livre. S’ils ne le jugent pas valide, ils rejetteront le bloc et ne mettront pas à jour leur grand livre. Le consensus au sein du réseau décentralisé de nœuds complets représente l’état actuel du registre — c’est-à-dire la liste de toutes les adresses sur la blockchain, leurs soldes, les contrats intelligents qui y sont déployés, etc. N’importe qui peut exécuter un nœud complet, bien que la configuration matérielle requise varie d’un réseau à l’autre. Les mineurs/validateurs participent d’ailleurs souvent en tant que nœuds complets (full nodes).
Les fournisseurs de services sont des entités externes qui fournissent des services aux blockchains ou créent des services basés sur le contenu des blockchains. Cela inclut les oracles (comme Chainlink), les protocoles d’indexation (comme The Graph), les échanges centralisés, les clients légers, les nœuds d’archivage, les explorateurs de blocs et bien d’autres. Ces entités ont généralement des modèles économiques qui nécessitent une interaction avec une blockchain. Par exemple, les échanges centralisés fournissent des rampes d’accès et de sortie entre les crypto-monnaies et le système financier traditionnel, les clients légers permettent aux utilisateurs de vérifier les informations envoyées à partir de nœuds complets sans avoir besoin d’une copie complète du registre, et les oracles fournissent des ressources externes aux applications de contrats intelligents.
Les bots MEV sont des entités qui cherchent à influencer la façon dont les transactions sont ordonnées pendant la production de blocs (on parle en générale de mineurs et développeurs MEV). La valeur extractible par le mineur (MEV), également appelée Valeur Extractible Maximale, est basée sur la capacité des mineurs/validateurs à choisir quelles transactions seront incluses dans un bloc et comment ces transactions seront ordonnées. Ils peuvent ensuite utiliser cet avantage asymétrique pour extraire de la valeur, par exemple en capitalisant sur les opportunités de liquidation et d’arbitrage. Les robots MEV fonctionnent généralement via des pools de transactions privées et des système d’enchères d’espace de blocs hors chaîne, bien qu’ils puissent fonctionner de manière indépendante.
Les incitations blockchains issues de la théorie des jeux
Sur la blockchain, les incitations sont divisées en deux grandes catégories : implicites et explicites. Les incitations explicites sont des récompenses ou des pénalités directes pour les actions entreprises, comme un paiement obligatoire pour accéder à un service ou une amende codée en dur pour avoir enfreint une règle de protocole. Les incitations implicites sont des récompenses et des pénalités indirectes, telles que la perte par les participants d’opportunités de revenus futurs ou le fait d’effectuer des dépenses (pour un certain travail) sans contrepartie garantie.
Les incitations les plus connues dans les blockchains sont la récompense de bloc et les frais de transaction payés aux mineurs/validateurs pour la production de blocs approuvés. Les récompenses liées à la production de bloc sont généralement standardisées en quantité tandis que les frais de transaction peuvent fluctuer à la hausse ou à la baisse en fonction de la demande actuelle pour accéder à un espace de bloc. Dans le processus de production de blocs, il existe également des incitations à ordonner des transactions d’une manière particulière, ce dont les bots MEV cherchent à tirer parti afin de maximiser leurs gains financiers.
Les blockchains utilisent également des sanctions financières par le biais de mécanismes résistants aux attaques Sybil tels que PoW et PoS ; c’est-à-dire que les mineurs/validateurs doivent engager une participation informatique ou financière afin d’avoir une chance de gagner des récompenses, qui peuvent être réduites, voire annulées, s’ils vont à l’encontre du consensus du réseau. Le fait d’exiger des producteurs de blocs qu’ils engagent une partie de leurs ressources informatiques ou financières permet également de les inciter à améliorer leur niveau de décentralisation.
Les blockchains paient également les mineurs/validateurs dans leur propre crypto-monnaie native. Cela crée une incitation implicite pour les mineurs/validateurs à participer honnêtement au réseau, car un réseau sécurisé et fiable est susceptible d’attirer plus d’utilisateurs. Plus d’utilisateurs entraînent plus de frais de transaction, ainsi qu’un prix potentiellement plus élevé pour la crypto-monnaie qu’ils gagnent suite à leur travail.
Le bitcoin possède une forme de staking implicite où les mineurs sont récompensés par un actif (BTC) qui ne conserve sa valeur et couvre ses dépenses que si le niveau de sécurité du réseau est maintenu.
Bien qu’il n’y ait généralement pas d’incitation explicite intégrée directement dans le protocole pour gérer un nœud complet, il existe de nombreuses incitations implicites à le faire. Pour commencer, des nœuds complets (full nodes) sont nécessaires pour que le réseau fonctionne, donc au minimum les mineurs doivent les faire fonctionner. Les utilisateurs, les applications et les fournisseurs de services les utilisent également pour soumettre et vérifier l’état des transactions en attente.
Au-delà des incitations financières, les nœuds complets sont essentiels à l’intégrité du registre de la blockchain (grand livre dans lequel toutes les transactions sont inscrites), car un manque de décentralisation peut entraîner la prise de contrôle du réseau par un petit groupe de participants. Un registre compromis affectera alors les fournisseurs de services et les applications décentralisées dont les modèles économiques reposent uniquement sur l’hypothèse de la “majorité honnête” des blockchains.
Un réseau décentralisé de nœuds complets (full nodes) permet également de séparer la génération de blocs de la vérification des blocs, ce qui responsabilise les mineurs/validateurs en réduisant leur capacité à modifier arbitrairement les règles du protocole. Il faut également noter que les entités qui gèrent leur propre nœud complet bénéficient du plus haut niveau de résistance à la censure et de garanties de sécurité, étant donné qu’elles n’ont pas besoin de faire confiance à un tiers pour lire ou écrire sur une blockchain. Ces incitations implicites se combinent pour encourager les utilisateurs et les principaux acteurs économiques à utiliser des nœuds complets.
Quels sont les résultats de ces modèles de structures et d’incitations construits sur la théorie des jeux ?
Dans le cadre des blockchains, l’utilisation de ces structures et incitations conduisent aux résultats initialement souhaités, c’est-à-dire :
- La précision — la décentralisation des blockchains, les coûts implicites/explicites et la facilité de détection des transactions invalides incitent les mineurs/validateurs et les nœuds complets à parvenir à un consensus honnête sur les transactions qui sont valides.
- L’immuabilité — le coût financier et le risque de tenter de modifier un bloc précédemment approuvé rendent cette opération largement indésirable, d’autant plus si un certain nombre de blocs sont déjà au-dessus du bloc cible.
- La disponibilité — des récompenses suffisantes aident à garantir que les mineurs/validateurs génèrent constamment des blocs, tandis que le fait d’avoir une valeur substantielle en jeu encourage les réseaux de nœuds complets à s’étendre au-delà du rôle de mineurs/validateurs.
- La résistance à la censure — Les mécanismes de résistance aux attaques Sybil, les récompenses financières et la possibilité de participer au réseau sans autorisation rendent extrêmement coûteux, pour toute entité centralisée, de tenter de censurer les transactions, en particulier pendant une longue période.
Grâce à ces propriétés fondamentales, les utilisateurs sont davantage incités à interagir avec le réseau d’une blockchain. Plus l’utilisation pourrait augmenter, plus un grand nombre d’utilisateurs deviendront à l’aise pour stocker des quantités importantes de capital sur les blockchains et utiliser leurs actifs sur la blockchain dans des applications de contrat intelligents (comme des applications DeFi par exemple).
Cependant, il convient de noter que si les blockchains sont généralement résistantes à la censure, l’ordre des transactions en termes de temps nécessaire pour être approuvées ou de frais payés ne sont pas garantis en raison du MEV. C’est d’ailleurs pour cette raison que Chainlink développe un service de séquençage équitables (FSS) décentralisé qui permet d’enregistrer les transactions de manière équitable dans les réseaux blockchains en fonction de l’heure à laquelle elles sont reçues.
Les blockchains sont des systèmes gérés par des humains pour servir les humains, donc si tout le monde parvient à un consensus social (c’est-à-dire un accord hors chaîne entre les participants) sur le fait que quelque chose doit être modifié dans la blockchain, alors cela peut être fait. L’exemple le plus clair de consensus social conduisant au changement était un hard fork Ethereum qui a permis de restaurer les fonds volés suite au piratage d’un DAO en 2016. Le consensus social peut également se produire à l’envers, si la majorité des participants de la communauté décident d’empêcher l’implémentation des changements proposés, comme le rejet de Segwit2x pour le réseau Bitcoin et ProgPoW pour le réseau Ethereum.
Cela étant dit, les blockchains sont sans doute les réseaux informatiques les plus efficaces pour se protéger contre les attaques indésirables et les changements qui vont à l’encontre d’une super majorité du consensus social, notamment grâce à leurs mécanismes cryptographiques et économiques.
Comment Chainlink utilise la vérité cryptographique pour créer une source de vérité universelle
Jusqu’à présent, cet article s’est concentré sur la manière dont les blockchains combinent la cryptographie et la théorie des jeux pour former de manière cohérente un consensus honnête — sur la vérité — et la validité des transactions internes. Cependant, comment les événements qui se produisent en dehors d’une blockchain peuvent-ils être vérifiés de manière fiable ? C’est là qu’intervient le réseau Chainlink.
Chainlink est un réseau d’oracle décentralisé conçu pour générer une vérité sur les données externes et le calcul hors chaîne. En ce sens, Chainlink permet de générer une vérité à partir d’environnements largement non déterministes. Le déterminisme est une caractéristique du calcul où une entrée spécifique conduira toujours à une sortie spécifique, c’est-à-dire que le code s’exécutera exactement tel qu’il a été écrit au départ. Les blockchains décentralisées sont dites déterministes car elles utilisent des techniques de minimisation de la confiance qui suppriment ou réduisent à une quasi-impossibilité statistique toutes les variables susceptibles d’empêcher la soumission, l’exécution et la vérification des transactions internes.
Le défi des environnements non déterministes réside dans le fait que la vérité peut être subjective, difficile à obtenir ou coûteuse à vérifier. Prenons un exemple : quel est le prix du Bitcoin ? La réponse est compliquée puisqu’il n’y a pas de prix universel du Bitcoin dans la mesure où celui-ci varie selon les échanges, et que les prix indiqués par chaque échange sont constamment en train de changer.
Prenons un deuxième exemple : imaginons un réseau de nombreux dispositifs IoT extrêmement performants qui permettent d’obtenir un relevé météorologique plus précis qu’un seul capteur isolé, mais qui est également plus coûteux à installer et à exploiter. Est-ce que toutes les entités qui pourraient en bénéficier seront prêtes à payer pour obtenir les données de ce réseau ?
Étant donné que les blockchains ne conservent qu’une seule source de vérité entre tous les utilisateurs et applications, Chainlink est une infrastructure essentielle car elle donne aux utilisateurs la possibilité de créer une vérité définitive — qui repose sur une méthode de génération prédéfinie et pour laquelle toutes les parties prenantes conviennent qu’elle fait autorité dans le but de régler leurs potentiels désaccords. D’autant plus que le mécanisme oracle utilisé pour générer la vérité définitive peut être vérifié, par toutes les parties prenantes, et qu’il repose sur les garanties cryptographiques et le calcul déterministe des blockchains.
En combinant la vérité définitive avec des garanties cryptographiques, les réseaux d’oracles décentralisés peuvent être utilisés dans le cadre de services hors chaîne de manière sécurisée et fiable, tout en prouvant aux utilisateurs qu’ils sont bien conformes aux paramètres prédéfinis.
Les paramètres de consensus que les utilisateurs sont en mesure de définir sur un réseau oracle incluent l’infrastructure du réseau, les sources de données spécifiques utilisées, les modalités du calcul qui sera effectué, les récompenses/pénalités gagnées et la manière dont le réseau oracle prouvera l’intégrité de son travail à la blockchain. Ces paramètres peuvent être personnalisés pour répondre à une large variété de budgets, d’exigences de performance et d’hypothèses de confiance, ce qui permettra à de nombreuses industries de s’accorder sur l’utilisation de paramétrages communs (selon les normes industrielles utilisées) et donc de créer une source de vérité partagée.
Pour minimiser le niveau de confiance nécessaire dans l’interaction entre plusieurs parties, Chainlink utilise plusieurs méthodes semblables à celles employées par les blockchains, telles que :
- La cryptographie — Chaque nœud oracle Chainlink a une adresse de clé publique/privée sur chaque blockchain prise en charge. Les nœuds utilisent ces clés pour générer des signatures numériques sur tous les calculs qu’ils effectuent, les signatures étant vérifiées et stockées sur les blockchains. La signature cryptographique prouve non seulement qui a fourni les données et quel était le calcul, mais elle permet également de mettre en place des systèmes de réputation qui suivent les performances des nœuds sur la blockchain, telles que leur niveau de disponibilité et leur niveau de précision historique. Les données signées par les nœuds oracle et les réseaux oracle peuvent également être utilisées pour déclencher l’émission de récompenses et de pénalités.
- Le consensus décentralisé : Chainlink utilise la décentralisation au niveau de la source de données, du nœud oracle et du réseau oracle pour atténuer tout point de défaillance et contrôler l’approvisionnement, la livraison et le calcul des données. Cela permet aux utilisateurs d’agréger les données d’autant de sources et de nœuds nécessaires afin de prouver avec un degré élevé de certitude la validité d’un événement externe ou d’un calcul hors chaîne.
- Les incitations financières — Les nœuds Chainlink sont payés pour fournir des services oracle. De plus, dans le cadre du modèle de staking, les jetons LINK seront bloqués comme garantie pour encourager encore davantage les services oracle les plus honnêtes à fournir de plus en plus de services. Les LINK qui seront bloqués en staking seront soumis à des pénalités en cas de mauvaises performances ou de comportement malveillant de la part du nœud : comme par exemple la rétention de données, la non-livraison de données à temps ou la fourniture de données qui s’écartent d’un certain pourcentage de la valeur médiane du DON.
Grâce à ces caractéristiques, les oracles permettent de créer des applications hybrides « on chain /off chain » qui étendent considérablement la proposition de valeur des blockchains, car elles permettent au code de contrat intelligent sur la blockchain d’utiliser, de réagir et d’influencer directement les données et les calculs d’environnements externes, tels que les fournisseurs de données, les API Web, les réseaux IoT, les réseaux d’autres blockchains, les infrastructures informatiques traditionnelles, les systèmes de paiement ou tout type de ressource externe.
Chainlink peut donc fournir un cadre sécurisé de bout en bout pour les contrats intelligents hybrides qui souhaitent utiliser une vérité cryptographique basée sur des événements externes.
Un exemple concret concerne le service Chainlink Price Feeds qui utilise une architecture d’agrégation multicouche pour générer une norme de vérité cryptographique universelle concernant les prix des actifs en temps réel, utilisable par l’ensemble de l’industrie.
Avec Chainlink Price Feeds, les données sont agrégées par des sociétés d’agrégation de données professionnelles, qui génèrent des prix moyens pondérés en fonction du volume (VWAP) à partir de données brutes qui proviennent de centaines d’échanges (places de marché). Chaque nœud Chainlink récupère ensuite un VWAP à partir de plusieurs agrégateurs de données et prend une médiane. Les valeurs médianes de chaque nœud Chainlink sont ensuite agrégées dans une médiane pour créer une seule valeur de confiance stockée sur les blockchains. Les valeurs soumises par chaque nœud et le réseau oracle peuvent être vérifiées par n’importe qui via la lecture des données directement sur la blockchain.
Les applications financières traditionnelles et décentralisées utilisent ces prix pour effectuer des opérations critiques, telles que l’émission et la liquidation de prêts, le règlement de contrats dérivés et la fixation de taux de change.
Un futur construit sur la vérité cryptographique
Pour conclure, la vérité cryptographique apporte déterminisme, fiabilité et transparence aux calculs et à la tenue de registres informatiques. En sachant que le code d’application s’exécutera comme prévu et que les enregistrements historiques ont été validés successivement et resteront infalsifiables, nous pouvons imaginer des relations sociales et économiques construites sur des bases de confiance bien plus importantes qu’auparavant. Être en mesure d’accéder à une vérité partagée conduit à une activité économique décuplée et contribue à la mise en place d’une paix sociale durable — un monde que nous voulons tous voir se manifester. C’est pourquoi il nous incombe à tous de construire et d’adopter des technologies blockchain et oracle qui permettent de créer une vérité cryptographique partagée et utilisable par tous.
Nous vous encourageons à lire l’article sur l’importance et le rôle de la confiance dans la révolution crypto, un article de blog examinant le besoin actuel de vérité cryptographique dans nos sociétés.
Si vous souhaitez vous familiariser davantage avec les technologies blockchain et oracle, nous vous encourageons à consulter les nombreux supports pédagogiques sur le blog Chainlink .
Pour en savoir plus sur Chainlink, visitez chain.link , abonnez-vous à la newsletter Chainlink et suivez Chainlink sur Twitter , YouTube et Reddit .
— — —
Cet article est une traduction de l’article orignal que vous pouvez retrouver sur le blog officiel de Chainlink : https://blog.chain.link/what-is-cryptographic-truth/