Les smart contracts sont les applications numériques qui s’exécutent sur les réseaux blockchain et permettent de vérifier, d’enregistrer et de stocker les transactions sans intermédiaires tiers. Ils peuvent être utilisés pour presque tout type de transaction, les paiements simples, une location de voiture, les abonnements mensuels et plus encore.
Les contrats intelligents ont le potentiel de changer de nombreuses industries en augmentant la transparence et la confiance entre les parties tout en réduisant le coût d’exécution des obligations contractuelles. Mais un grand pouvoir s’accompagne d’une grande responsabilité. Les contrats intelligents ne sont pas tous parfaits, comme tout outil informatique, des attaquants peuvent comprendre le code du contrat et exploiter cette faiblesse pour voler des fonds aux autres parties ou rompre le contrat d’une autre manière.
Donc dans cet article, nos allons parler des ZKP, et plus précisément des « recursive ZK-STARKs », un nouvel outil qui permet aux développeurs de créer des contrats intelligents très sécurisés, tout en permettant une scalabilité impressionnante.
Les Zero-Knowledge Proofs (ZKP)
Une « Zero-Knowledge Proof » (ZKP) ou preuve à divulgation nulle de connaissance en français, est une méthode par laquelle une partie (l’utilisateur) peut prouver à une autre partie (le vérificateur) qu’une déclaration donnée est vraie sans transmettre tout élément supplémentaire autre que le fait que la déclaration est effectivement vraie.
En d’autres mots, la connaissance zéro vous permet de vous authentifier et de communiquer sur internet sans révéler vos données telles que votre nom, votre mot de passe, votre adresse électronique, votre age etc.
Nous avons un article complet expliquant la preuve à divulgation nulle de connaissance ici.
Les ZK-SNARKs et les ZK-STARKs
Qu’est-ce qu’un ZK-SNARK ?
ZK-SNARK est l’acronyme de « Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. Un protocole permettant de générer des ZKP pour vérifier l’authenticité de certaines informations sans exposer les données sous-jacentes. Un exemple impliquant les SNARKs est l’authentification de l’identité d’un utilisateur. Une personne pourrait prouver une affirmation : « Je suis citoyen français », sans révéler sa carte d’identité ou passeport.
Pour en savoir plus sur les SNARKs, je vous invite à lire notre article sur Polygon ID.
Qu’est-ce qu’un ZK-STARK ?
ZK-STARK est l’acronyme de « Zero-Knowledge Scalable Transparent Argument of Knowledge ». Tout comme les ZK-SNARKs, les ZK-STARKs montrent qu’une affirmation est valide sans rien révéler de l’affirmation elle-même.
À quelques différences près, un ZK-STARK possède les mêmes propriétés qu’un SNARK. La principale différence avec les ZK-SNARKs provient de leurs propriétés évolutives. Les ZK-STARKs sont évolutifs, car la complexité de la preuve et de la vérification évolue de manière quasi linéaire par rapport à la complexité du calcul.
Cela signifie simplement que les protocoles ZK-SNARKs nécessitent plus de temps pour produire et vérifier les preuves que les ZK-STARKs, lorsque le calcul que nous devons vérifier est plus grand. C’est pourquoi les ZK-STARKs sont mieux adaptés aux applications qui traitent de gros volumes de transactions.
Qu’est-ce qu’un recursive ZK-STARK ?
La récursion est une méthode informatique utilisée pour générer des preuves sur une blockchain, en compressant de manière répétée les transactions d’un Layer 2 avant de les soumettre à un Layer 1.
Ce procédé promet de réduire les frais de gaz et d’améliorer la vitesse des transactions. Cette méthode prend plusieurs ZKP qui ont déjà été compressées une fois, puis les compresse encore et encore et les regroupe en une seule preuve qui est ensuite soumise à la blockchain principale, ce qui signifie qu’un ZK-STARK peut vérifier d’autres ZK-STARKs.
Donc un ZK-STARK récursif est différent d’un ZK-STARK normal, car les ZK-STARKs récursifs peuvent vérifier une plus grande quantité de transactions avant de les soumettre dans un bloc de transaction en combinant les ZK-STARKs en une seule preuve de validité qui est soumise ensuite à la chaîne L1.
Exemple de transaction non récursive
Dans une transaction non récursive, les déclarations arrivent au fil du temps, et lorsqu’un certain seuil de capacité est atteint, une grande déclaration combinée est générée. Cette déclaration combinée n’est prouvée que lorsque toutes les déclarations individuelles ont été reçues. Cette preuve prend beaucoup de temps, légèrement moins que la somme du temps nécessaire pour prouver chaque déclaration individuellement.
Prouver des déclarations extrêmement grandes est finalement limité par les ressources de calcul disponibles. Avec cette solution, les ressources matérielles sont effectivement la barrière d’évolutivité des ZK-STARKs.
Exemple de transaction récursive
Dans cet exemple, ces transactions vont être agrégées et ensuite, chaque paire de preuves est validée par une déclaration récursive pour laquelle une preuve est générée. Cette déclaration affirme que toutes les preuves ont été vérifiées comme étant correctes et ensuite, les preuves sont à nouveau fusionnées par une instruction récursive.
Avec ces opérations, il en résulte une preuve attestant de toutes les déclarations originales. Cette preuve, qui regroupe en elle une grande quantité d’autres preuves vérifiées, peut alors être finalement soumise sur la chaîne principale, pour être elle-même vérifiée.
Quels problèmes les ZK-STARKs récursifs résolvent-ils ?
Réduction des coûts sur la chaîne
Les ZK-STARKs récursifs augmentent considérablement le nombre de transactions qui peuvent être traitées, en incluant plusieurs preuves L2 dans une seule preuve soumise à la chaîne L1.
Nous parvenons à comprimer plusieurs preuves en une seule, ce qui implique une réduction du coût de vérification par transaction sur la chaîne, car chaque déclaration peut inclure plusieurs transactions.
La vie privée
Une autre préoccupation des utilisateurs, qui accroit dans le monde post-fusion (The Merge), est la vie privée et le risque de piratage. La Blockchain offre une alternative pseudonyme, qui rend la propriété des données aux individus. Sur un registre distribué public, les données sont répliquées sur plusieurs nœuds non reliés entre eux. Aucun nœud ne peut agir individuellement et prendre le pouvoir de vos données. En ajoutant les ZKP à la décentralisation de la Blockchain, nous disposons d’un outil impressionnant pour créer un instrument de souveraineté numérique très puissant.
Parallélisation et réduction de la latence
Les déclarations entrantes peuvent être prouvées en parallèle. Avec cette solution, il n’est pas nécessaire d’attendre que la dernière déclaration arrive pour commencer à prouver. Au contraire, les preuves peuvent être combinées avec les nouvelles déclarations à mesure qu’elles arrivent. Cela signifie que la latence totale est approximativement le temps nécessaire pour prouver la toute dernière déclaration, plus le temps nécessaire pour valider la preuve récursive.
Faciliter les L3
Le développement des preuves récursives ouvre également la possibilité de soumettre des preuves à des Layer 2, car ces déclarations peuvent être intégrées dans un contrat intelligent du layer 2 précité. Cela permet de construire des déploiements L3 au-dessus du réseau L2, chose qui développe l’idée des réseaux blockchain modulaires tant attendus.
Empreinte informatique réduite
Avec la récursion, il n’est plus nécessaire d’avoir le matériel pour prouver des déclarations extrêmement grandes. Par conséquent, des instances de calcul plus petites, moins coûteuses et plus disponibles peuvent être utilisées.
Cela permet de déployer rapidement encore plus d’instances de vérification qu’auparavant (bien qu’une plus grande quantité d’entre elles puissent être nécessaires en comparaison avec les grands vérificateurs monolithiques).
Conclusion
Les ZK-STARKs récursifs sont l’étape suivante des ZK-SNARKs et les ZK-STARKs. Nous passons d’une technologie dédiée à la protection de la vie privée à une technologie qui peut aussi clairement améliorer la scalabilité des différents réseaux blockchains.
Les avantages de la récursion sont significatifs et se concrétisent progressivement en termes de coût de transactions, de latence, ainsi que de nouvelles opportunités telles que le développement des L3. Encore une innovation qui ne peut faire qu’améliorer cet écosystème.