Dans la première partie, nous avons abordé le concept d'interopérabilité de la blockchain et la façon dont son importance ne fera que croître avec l'émergence d'autres L1, L2 et appchains. L'importance des capitaux déplacés sur les ponts en fait des cibles attrayantes pour les pirates informatiques et, en 2022, nous avons vu 2,5 milliards de dollars perdus à cause des vulnérabilités des contrats multisig et des contrats intelligents. Sur l'ensemble des exploits survenus cette année-là, un pourcentage stupéfiant de 69 % était lié à des ponts.
Au cœur de ces pertes, des défaillances à l'étape de vérification du rapprochement, où le mécanisme de confiance utilisé pour vérifier la validité de la transaction était étayé par des humains & multisigs :
Compte tenu de ces vulnérabilités, l'étape de vérification du processus de rapprochement est bien mieux servie par des méthodes limitant la confiance et reposant sur le code et les mathématiques.
C'est là que les preuves par consensus constituent une solution potentielle. Cette approche repose sur la vérification par un prouveur du consensus de la blockchain de la chaîne source et sur l'utilisation de preuves d'absence de connaissance pour attester de la validité d'une transaction avant de débloquer des fonds pour une destination.
C'est beaucoup à décortiquer, alors définissons d'abord ce que nous entendons par vérification du consensus de la blockchain.
À la base, les blockchains sont des grands livres qui enregistrent les transactions entre des comptes gérés par des nœuds qui ne se font pas confiance. Étant donné que de nombreux nœuds valident un réseau de blockchain, ces validateurs doivent se mettre d'accord sur le bloc le plus récemment ajouté, c'est-à-dire qu'ils doivent parvenir à un "consensus" sur le dernier état.
Source : Adapté de Ethereum EVM illustré
La vérification fiable du consensus de la chaîne source sur la chaîne de destination est essentielle pour le rapprochement, car si vous pouvez vérifier le dernier bloc de la chaîne source en limitant la confiance, vous déterminez la dernière "vérité" et vous êtes alors en mesure d'exécuter une action correspondante sur la chaîne de destination.
Vérifier le consensus de la chaîne de sources pour permettre le pontage
Pour la transition, le protocole doit déterminer qu'une transaction de "dépôt" sur la chaîne source a été effectuée de manière valide. En pratique, il s'agit de vérifier deux choses :
Après vérification de ces deux éléments, la chaîne de destination peut remettre les biens à l'utilisateur.
Voilà, les actifs sont comblés.
En théorie, cela semble simple, mais la partie délicate est l'étape 1 : il n'est pas facile pour un contrat intelligent sur une chaîne de vérifier le consensus d'une autre chaîne (typiquement Ethereum comme chaîne source).
Le premier défi à relever est que les différentes blockchains ont des mécanismes de consensus différents et que la preuve du consensus sur chaque chaîne source nécessite un travail d'ingénierie très spécifique pour être mise en place. Cela signifie que l'étape de vérification du consensus devra être adaptée à chaque chaîne de sources. Pour l'instant, concentrons-nous sur la preuve du consensus Ethereum, étant donné qu'il détient la part du lion de la TVL et qu'il s'agit de la L1 typique à partir de laquelle les utilisateurs font le pont.
Ethereum dispose d'un grand nombre de validateurs (plus de 700 000), dont plus de 21 000 votent sur un bloc dans un créneau. Pour être définitif, un bloc doit obtenir les votes des ⅔ de l'ensemble des validateurs, ce qui équivaut approximativement à 450 000 votes de validateurs. La vérification d'un consensus complet impliquerait de contrôler la validité de 450 000 signatures.
Une méthode moins lourde pour vérifier le consensus d'Ethereum implique le "protocole client léger". Un comité de synchronisation (512 validateurs sélectionnés au hasard toutes les 27,3 heures) atteste que le dernier bloc proposé est valide. Ici, la vérification du consensus consiste à vérifier la validité de 512 signatures agrégées.
Dans un contexte de transition, un contrat intelligent sur la chaîne de destination peut utiliser le protocole de client léger et agir en tant que "client léger" sur la chaîne pour vérifier le dernier état de la chaîne source et s'assurer qu'un "dépôt" a été effectué. S'il est satisfait, le contrat intelligent libère les fonds sur la chaîne de destination.
Vérification du consensus de la chaîne source (sur Ethereum) via le comité de synchronisation
Cette approche n'est pas très pratique car la vérification de 512 signatures agrégées directement dans un contrat intelligent sur la chaîne est d'un coût prohibitif sans précompilation, étant donné que les validateurs Ethereum utilisent des signatures BLS.
Pour que cela soit possible, il faut donc franchir l'étape de la vérification en dehors de la chaîne...
... et c'est là qu'interviennent les preuves par consensus.
Les preuves de connaissance zéro sont apparues comme une solution viable pour aider les blockchains à retirer les calculs coûteux de la chaîne et à vérifier le résultat sur la chaîne. Cela permet à un contrat intelligent de transition sur la chaîne de destination de transférer des calculs coûteux (comme la validation du consensus de la chaîne source) à un prouveur de connaissances zéro hors chaîne :
La vérification à l'aide de zk preuves nous permet de nous rapprocher d'un rapprochement minimisant la confiance.
Après ces deux étapes, le contrat intelligent de destination peut libérer des fonds en toute sécurité sur la chaîne de destination.
L'utilisation de preuves de consensus pour vérifier l'état de la blockchain source est une étape importante vers une passerelle minimisant la confiance, mais le fait de s'appuyer sur le protocole client léger & 512 validateurs présente certaines limites (mises en évidence dans le tableau ci-dessous).
Limites de la vérification du consensus par le comité de synchronisation
C'est pourquoi certaines équipes s'efforcent de prouver l'existence d'un consensus ethereum complet, une tâche complexe qui impliquerait la vérification de 450 000 signatures à l'heure où nous écrivons ces lignes. Ce n'est pas une mince affaire que d'y parvenir dans un circuit de connaissances nul, mais des équipes comme Polyhedra Network et Succinct se sont engagées à y parvenir.
Qu'y a-t-il de mieux que de prouver 512 signatures ? 450 000 signatures !
Polyhedra Network a récemment annoncé qu'il était parvenu à vérifier 21 000 signatures de validateurs qui signent un bloc à un emplacement donné dans ZK et qu'il s'efforçait de vérifier l'ensemble des 450 000 signatures. Vous trouverez plus de détails sur leur approche et leur système de preuve dans leur document sur zkBridge.
Une fois que nous aurons pu vérifier le consensus complet d'Ethereum en connaissance zéro, il devrait être relativement simple de vérifier le consensus d'autres chaînes avec des ensembles de validateurs plus petits en connaissance zéro.
Bien que la technologie de la connaissance zéro & Consensus Proofs résolve le problème de la faillibilité humaine, la discussion serait incomplète si l'on ne reconnaissait pas certains des risques qui découlent de leur utilisation dans le cadre de l'interconnexion.
La technologie zéro connaissance évolue rapidement, car de nouveaux algorithmes et systèmes continuent d'apparaître. Certaines de ces mises en œuvre ne sont pas vérifiées et pourraient contenir des vulnérabilités, ce qui les rend susceptibles d'être exploitées en cas d'incitations importantes. En outre, même après les audits, ces systèmes cryptographiques complexes peuvent contenir des vecteurs d'attaque non découverts qui seront identifiés et rectifiés au fil du temps, afin d'atteindre un état mature et aguerri.
En outre, il reste à voir à partir de quel volume de transactions les dépenses liées à la production et à la vérification des preuves à connaissance nulle sont suffisamment amorties pour être considérées comme rentables.
Pour conclure, nous mettrons en lumière certains des acteurs qui élaborent des solutions dans ce domaine. Bien qu'ils aient des approches et des marchés cibles légèrement différents, ils repoussent les limites de ce que les passerelles basées sur le zk peuvent faire et annoncent l'émergence d'une interopérabilité basée sur la confiance.
Parmi eux, nous avons :
Équipes travaillant sur les preuves par consensus
L'interopérabilité est un élément essentiel de l'infrastructure de la blockchain. Lors des premières étapes du rapprochement, les mécanismes de confiance étaient étayés par des multisigs et compromis par la dépendance à l'égard de l'homme. Nous commençons maintenant à entrer dans le domaine des passerelles sécurisées par la cryptographie et les mathématiques rendues possibles par l'application de preuves à connaissance nulle dans le contexte des passerelles.
Dans cette partie, nous avons vu comment les preuves de consensus aident à résoudre le problème du bridging en vérifiant le dernier consensus finalisé de la blockchain source.
Cette technologie peut toutefois être étendue pour vérifier le consensus historique, ce qui permet des cas d'utilisation inter-chaînes plus flexibles, au-delà du simple pontage pour l'instant. C'est ce que nous explorerons dans la troisième partie de notre série sur l'interopérabilité : Les preuves de stockage & les cas d'utilisation qu'elles débloquent.
Dans la première partie, nous avons abordé le concept d'interopérabilité de la blockchain et la façon dont son importance ne fera que croître avec l'émergence d'autres L1, L2 et appchains. L'importance des capitaux déplacés sur les ponts en fait des cibles attrayantes pour les pirates informatiques et, en 2022, nous avons vu 2,5 milliards de dollars perdus à cause des vulnérabilités des contrats multisig et des contrats intelligents. Sur l'ensemble des exploits survenus cette année-là, un pourcentage stupéfiant de 69 % était lié à des ponts.
Au cœur de ces pertes, des défaillances à l'étape de vérification du rapprochement, où le mécanisme de confiance utilisé pour vérifier la validité de la transaction était étayé par des humains & multisigs :
Compte tenu de ces vulnérabilités, l'étape de vérification du processus de rapprochement est bien mieux servie par des méthodes limitant la confiance et reposant sur le code et les mathématiques.
C'est là que les preuves par consensus constituent une solution potentielle. Cette approche repose sur la vérification par un prouveur du consensus de la blockchain de la chaîne source et sur l'utilisation de preuves d'absence de connaissance pour attester de la validité d'une transaction avant de débloquer des fonds pour une destination.
C'est beaucoup à décortiquer, alors définissons d'abord ce que nous entendons par vérification du consensus de la blockchain.
À la base, les blockchains sont des grands livres qui enregistrent les transactions entre des comptes gérés par des nœuds qui ne se font pas confiance. Étant donné que de nombreux nœuds valident un réseau de blockchain, ces validateurs doivent se mettre d'accord sur le bloc le plus récemment ajouté, c'est-à-dire qu'ils doivent parvenir à un "consensus" sur le dernier état.
Source : Adapté de Ethereum EVM illustré
La vérification fiable du consensus de la chaîne source sur la chaîne de destination est essentielle pour le rapprochement, car si vous pouvez vérifier le dernier bloc de la chaîne source en limitant la confiance, vous déterminez la dernière "vérité" et vous êtes alors en mesure d'exécuter une action correspondante sur la chaîne de destination.
Vérifier le consensus de la chaîne de sources pour permettre le pontage
Pour la transition, le protocole doit déterminer qu'une transaction de "dépôt" sur la chaîne source a été effectuée de manière valide. En pratique, il s'agit de vérifier deux choses :
Après vérification de ces deux éléments, la chaîne de destination peut remettre les biens à l'utilisateur.
Voilà, les actifs sont comblés.
En théorie, cela semble simple, mais la partie délicate est l'étape 1 : il n'est pas facile pour un contrat intelligent sur une chaîne de vérifier le consensus d'une autre chaîne (typiquement Ethereum comme chaîne source).
Le premier défi à relever est que les différentes blockchains ont des mécanismes de consensus différents et que la preuve du consensus sur chaque chaîne source nécessite un travail d'ingénierie très spécifique pour être mise en place. Cela signifie que l'étape de vérification du consensus devra être adaptée à chaque chaîne de sources. Pour l'instant, concentrons-nous sur la preuve du consensus Ethereum, étant donné qu'il détient la part du lion de la TVL et qu'il s'agit de la L1 typique à partir de laquelle les utilisateurs font le pont.
Ethereum dispose d'un grand nombre de validateurs (plus de 700 000), dont plus de 21 000 votent sur un bloc dans un créneau. Pour être définitif, un bloc doit obtenir les votes des ⅔ de l'ensemble des validateurs, ce qui équivaut approximativement à 450 000 votes de validateurs. La vérification d'un consensus complet impliquerait de contrôler la validité de 450 000 signatures.
Une méthode moins lourde pour vérifier le consensus d'Ethereum implique le "protocole client léger". Un comité de synchronisation (512 validateurs sélectionnés au hasard toutes les 27,3 heures) atteste que le dernier bloc proposé est valide. Ici, la vérification du consensus consiste à vérifier la validité de 512 signatures agrégées.
Dans un contexte de transition, un contrat intelligent sur la chaîne de destination peut utiliser le protocole de client léger et agir en tant que "client léger" sur la chaîne pour vérifier le dernier état de la chaîne source et s'assurer qu'un "dépôt" a été effectué. S'il est satisfait, le contrat intelligent libère les fonds sur la chaîne de destination.
Vérification du consensus de la chaîne source (sur Ethereum) via le comité de synchronisation
Cette approche n'est pas très pratique car la vérification de 512 signatures agrégées directement dans un contrat intelligent sur la chaîne est d'un coût prohibitif sans précompilation, étant donné que les validateurs Ethereum utilisent des signatures BLS.
Pour que cela soit possible, il faut donc franchir l'étape de la vérification en dehors de la chaîne...
... et c'est là qu'interviennent les preuves par consensus.
Les preuves de connaissance zéro sont apparues comme une solution viable pour aider les blockchains à retirer les calculs coûteux de la chaîne et à vérifier le résultat sur la chaîne. Cela permet à un contrat intelligent de transition sur la chaîne de destination de transférer des calculs coûteux (comme la validation du consensus de la chaîne source) à un prouveur de connaissances zéro hors chaîne :
La vérification à l'aide de zk preuves nous permet de nous rapprocher d'un rapprochement minimisant la confiance.
Après ces deux étapes, le contrat intelligent de destination peut libérer des fonds en toute sécurité sur la chaîne de destination.
L'utilisation de preuves de consensus pour vérifier l'état de la blockchain source est une étape importante vers une passerelle minimisant la confiance, mais le fait de s'appuyer sur le protocole client léger & 512 validateurs présente certaines limites (mises en évidence dans le tableau ci-dessous).
Limites de la vérification du consensus par le comité de synchronisation
C'est pourquoi certaines équipes s'efforcent de prouver l'existence d'un consensus ethereum complet, une tâche complexe qui impliquerait la vérification de 450 000 signatures à l'heure où nous écrivons ces lignes. Ce n'est pas une mince affaire que d'y parvenir dans un circuit de connaissances nul, mais des équipes comme Polyhedra Network et Succinct se sont engagées à y parvenir.
Qu'y a-t-il de mieux que de prouver 512 signatures ? 450 000 signatures !
Polyhedra Network a récemment annoncé qu'il était parvenu à vérifier 21 000 signatures de validateurs qui signent un bloc à un emplacement donné dans ZK et qu'il s'efforçait de vérifier l'ensemble des 450 000 signatures. Vous trouverez plus de détails sur leur approche et leur système de preuve dans leur document sur zkBridge.
Une fois que nous aurons pu vérifier le consensus complet d'Ethereum en connaissance zéro, il devrait être relativement simple de vérifier le consensus d'autres chaînes avec des ensembles de validateurs plus petits en connaissance zéro.
Bien que la technologie de la connaissance zéro & Consensus Proofs résolve le problème de la faillibilité humaine, la discussion serait incomplète si l'on ne reconnaissait pas certains des risques qui découlent de leur utilisation dans le cadre de l'interconnexion.
La technologie zéro connaissance évolue rapidement, car de nouveaux algorithmes et systèmes continuent d'apparaître. Certaines de ces mises en œuvre ne sont pas vérifiées et pourraient contenir des vulnérabilités, ce qui les rend susceptibles d'être exploitées en cas d'incitations importantes. En outre, même après les audits, ces systèmes cryptographiques complexes peuvent contenir des vecteurs d'attaque non découverts qui seront identifiés et rectifiés au fil du temps, afin d'atteindre un état mature et aguerri.
En outre, il reste à voir à partir de quel volume de transactions les dépenses liées à la production et à la vérification des preuves à connaissance nulle sont suffisamment amorties pour être considérées comme rentables.
Pour conclure, nous mettrons en lumière certains des acteurs qui élaborent des solutions dans ce domaine. Bien qu'ils aient des approches et des marchés cibles légèrement différents, ils repoussent les limites de ce que les passerelles basées sur le zk peuvent faire et annoncent l'émergence d'une interopérabilité basée sur la confiance.
Parmi eux, nous avons :
Équipes travaillant sur les preuves par consensus
L'interopérabilité est un élément essentiel de l'infrastructure de la blockchain. Lors des premières étapes du rapprochement, les mécanismes de confiance étaient étayés par des multisigs et compromis par la dépendance à l'égard de l'homme. Nous commençons maintenant à entrer dans le domaine des passerelles sécurisées par la cryptographie et les mathématiques rendues possibles par l'application de preuves à connaissance nulle dans le contexte des passerelles.
Dans cette partie, nous avons vu comment les preuves de consensus aident à résoudre le problème du bridging en vérifiant le dernier consensus finalisé de la blockchain source.
Cette technologie peut toutefois être étendue pour vérifier le consensus historique, ce qui permet des cas d'utilisation inter-chaînes plus flexibles, au-delà du simple pontage pour l'instant. C'est ce que nous explorerons dans la troisième partie de notre série sur l'interopérabilité : Les preuves de stockage & les cas d'utilisation qu'elles débloquent.