Blogue
Création d'une infrastructure pour les produits blockchain à connaissance nulle : expérience détaillée de Dysnix-ZKSync

Création d'une infrastructure pour les produits blockchain à connaissance nulle : expérience détaillée de Dysnix-ZKSync

Daniel Yavorovych
August 29, 2023

Une preuve à connaissance nulle (ZK) dans la blockchain

Tout d'abord, précisons que tout fait ou action peut être prouvé sans aucune connaissance. Ce concept a été développé dans début des années 80 dans des articles de mathématiques puis appliqué à de multiples applications, trouvant la meilleure solution dans le domaine de la blockchain. Ici, une preuve à connaissance nulle (ZKP) fait référence à une méthode cryptographique qui permet à une partie de prouver la validité d'une déclaration à une autre partie sans révéler aucune des données sous-jacentes, et les deux parties seront sûres à 100 % que c'est vrai.

« Où est Wally » pour expliquer le ZKP : vous montrez Wally et même une partie des environs (à droite) à vos amis, ce qui prouve que vous savez où il se trouve. Mais cela ne les aide pas de savoir exactement où se trouve Wally (photo complète à gauche).

Ici vous trouverez encore plus de moyens de comprendre le ZKP et de l'expliquer même à un enfant.

Cette méthode, si elle est utilisée correctement de A à Z, offre aux participants un ensemble complet d'avantages liés à la blockchain : sécurité et anonymat renforcés, protection de la sensibilité des données, fiabilité, évolutivité, rapidité, faible coût et liberté d'utilisation. Voici quelques commentaires sur la façon dont ZK Proof fait de n'importe quelle blockchain une véritable identité :

  • Favoriser la confidentialité.
    Les preuves à connaissance nulle permettent de vérifier les transactions sans révéler l'expéditeur, le destinataire ou le montant de la transaction. Il préserve la confidentialité des participants tout en préservant l'intégrité et l'état de la blockchain.
  • Augmenter l'efficacité, réduire les ressources de calcul requises et améliorer l'évolutivité.
    En évitant une règle selon laquelle chaque nœud doit valider chaque transaction, les preuves ZK permettent de décharger certains calculs pour prouver la validité des transactions sans que chaque nœud ait besoin de les exécuter. Ainsi, les réseaux traitent un plus grand nombre de transactions sans augmentation significative des demandes de ressources.
  • Différents types d'épreuves pour un large éventail d'applications.
    ZK-Snarks (arguments de connaissance succincts non interactifs à connaissance zéro), zk-Starks (arguments de connaissance transparents évolutifs à connaissance zéro), SNORK (arguments œcuméniques (universels) succincts et non interactifs), Bulletproofs présentent diverses caractéristiques et applications dans les domaines des transactions anonymes, de la vérification des données, des calculs vérifiables, des contrats intelligents sécurisés, etc.
Attributes STARK SNARK SNORK Bulletproof
Trusted setup No Yes Yes No
Post-quantum security Yes No No No
Prove Actual data Actual data Actual data Range
Universality No No Yes No
Prover-verifier Interaction Multiple times Once Once Depends
Prove Size Large Small Small Small
  • L'absence de confiance en un mot.
    Les preuves ZK préservent la nature décentralisée et fiable des blockchains et permettent aux participants de vérifier eux-mêmes l'exactitude des transactions.
  • Le cœur des projets de blockchain saturés de cryptomonnaies.
    La mise en œuvre de zKP dans les systèmes blockchain est complexe et demande beaucoup de calculs, mais elle est possible pour des développeurs de niveau expert tels que Dysnix. Garantir la sécurité des protocoles cryptographiques sous-jacents, une évolutivité abordable et la stabilité des applications sont les tâches que nous abordons en premier lieu.

Nous avons mentionné quelques manières d'implémenter la preuve ZK dans la blockchain, mais nous allons en développer davantage pour vous donner une vue d'ensemble.

Domaines d'application : dans la blockchain et au-delà

La polyvalence de cette méthode informatique la rend accessible à tous les acteurs de la blockchain et permet de résoudre de nombreuses incertitudes, ce qui rend les zones grises plus fiables et transparentes. Et même s'il est très complexe à première vue, il apporte la percée en termes de fonctionnalités et d'efficacité de nombreux projets Web3 ou alimentés par la blockchain.

La méthode ZKP peut apporter des changements suffisants dans la vie sociale, financière et politique de l'humanité si elle est correctement mise en œuvre.

Transactions préservant la confidentialité

Cet exemple de preuve à connaissance nulle permet des transactions privées sur une blockchain publique et élargit les possibilités pour une seule personne à l'échelle de la blockchain. Les transactions dont la confidentialité est préservée garantissent la confidentialité des montants des transactions, des adresses des expéditeurs et des destinataires, ainsi que d'autres informations sensibles, tout en préservant l'intégrité de la blockchain.

Identification et authentification

Les preuves ZK sont activement utilisées pour créer des méthodes d'authentification sécurisées et anonymes. Il s'agit d'une méthode fiable et sûre pour se connecter ou se connecter sans partager aucune information personnelle avec le service.

DEX

Les échanges décentralisés peuvent utiliser les preuves ZK pour activer les échanges atomiques, permettant aux utilisateurs d'échanger différentes crypto-monnaies sans avoir besoin d'une autorité centrale ni de révéler les détails commerciaux. Plus de liberté pour un seul trader !

C'est un excellent endroit pour mentionner la plateforme PancakeSwap DEX qui est parfaitement familiarisé avec nos solutions.

Contrats intelligents

Utilisez les preuves ZK pour valider certaines conditions ou certains calculs dans le cadre de contrats intelligents tout en préservant la confidentialité des données sous-jacentes. Aucune autre partie n'est requise.

Vérification des données hors chaîne et interopérabilité inter-chaînes

Vous pouvez valider les données hors chaîne et attester de leur exactitude, permettant ainsi aux applications blockchain d'interagir avec le monde extérieur en toute sécurité. Les zKP peuvent faciliter les interactions fiables entre les différentes blockchains, permettant ainsi l'interopérabilité tout en préservant la confidentialité.

Solutions d'évolutivité alimentées par ZK

Cette méthode peut améliorer l'évolutivité de la blockchain en permettant la vérification efficace de calculs complexes hors chaîne tout en fournissant une preuve concise de leur exactitude.

Cryptomonnaies et systèmes de jetons

C'est littéralement le principal moyen d'améliorer la confidentialité et la sécurité des transactions de cryptomonnaies, par exemple en garantissant l'approvisionnement total en jetons sans révéler les soldes des portefeuilles individuels.

Services Oracle à connaissance nulle

Cette méthode peut être utilisée pour créer des services oracle blockchain qui fournissent des données hors chaîne précises aux contrats intelligents sans révéler les données brutes.

Mécanismes de vote

Des élections décentralisées ? Mmmm, ça ressemble à de la démocratie ! C'est le moyen de vaincre la corruption liée au vote grâce à des systèmes de vote vérifiables et anonymes, garantissant que les votes sont comptés avec précision sans compromettre la confidentialité des électeurs.

Chaîne d'approvisionnement et provenance

Lors des ventes aux enchères gouvernementales qui mettent fin à des stratagèmes de corruption à dessein, il est important de préserver l'anonymat des parties, ainsi que de maintenir un contrôle maximal et une répartition stricte des responsabilités en ce qui concerne la qualité des produits. Les preuves ZK peuvent aider à vérifier l'authenticité et l'intégrité des produits dans les chaînes d'approvisionnement sans révéler d'informations exclusives.

Audit et conformité aux normes

Cette méthode peut faciliter les audits en démontrant la conformité à certaines réglementations ou règles sans exposer les données sensibles et la personnalité des auditeurs eux-mêmes.

Partage et agrégation de données

Les ZKP aident les parties à partager des données agrégées (par exemple, des statistiques) sans révéler de points de données individuels, préservant ainsi la confidentialité tout en permettant des décisions fondées sur les données.

Théorie des jeux et mécanismes d'incitation

Les preuves ZK peuvent aider à concevoir des mécanismes d'incitation et des jeux aux résultats vérifiables tout en préservant la confidentialité des stratégies des joueurs. Cette application peut être une avancée pour de nombreux défis encore insolubles.

C'est tout simplement WOW, vous pourriez penser. Le prix à payer pour cette flexibilité et cette universalité est la complexité des mathématiques et du code qui les sous-tendent. Cela vous oblige non seulement à comprendre le concept, mais aussi à adapter ses principes à votre réalité et à le faire fonctionner dans différentes conditions de la même manière attendue.

Nous sommes heureux de partager quelques informations supplémentaires sur notre cas zkSync que nous avons brièvement décrit précédemment. Nous faisons partie des rares entreprises au monde à pouvoir gérer le produit alimenté par ZKP de A à Z en créant le design et l'architecture les mieux adaptés à celui-ci.

Création d'un produit alimenté par ZK à partir de l'exemple zkSync

L'équipe de zkSync n'a eu qu'une idée et a obtenu la mise en œuvre complète de ses objectifs grâce aux technologies les mieux adaptées et à des approches innovantes.

À propos de ZKSync

En 2020, zkSync, l'une des premières sociétés de preuve à connaissance nulle, est devenue une solution de mise à l'échelle de couche 2 pour Ethereum qui utilisait ZK-Rollups, une variante des preuves à connaissance zéro, pour agréger et compresser plusieurs transactions en une seule preuve, qui est ensuite validée en chaîne. Cette approche améliore considérablement le débit des transactions d'Ethereum et réduit les frais. C'était la principale proposition de valeur de ce projet.

Peu de temps après son lancement, zkSync a obtenu de nombreux partenaires importants (DEX, par exemple) et s'est intégré à plus de 200 projets Web3. Il était plus facile de déléguer un certain nombre de transactions à zkSync que de diffuser chaque transaction sur le réseau, de payer des frais, d'attendre la validation, etc. Tout cela se fait sans aucun problème de sécurité grâce aux fonctionnalités de base basées sur la méthode ZKP.

Satisfaire aux exigences

La solution à l'origine de cette plateforme simple, élégante et utile était basée sur l'architecture créée par les ingénieurs de Dysnix. Il se compose de :

  • Plusieurs clusters de serveurs alimentés par Kubernetes qui évoluent en fonction des indicateurs commerciaux des applications du client ;
  • Le noyau de validation, pour l'emballage hors chaîne du flux illimité de transactions et leur préparation pour la preuve en chaîne ;
  • Connexions avec les applications et la blockchain.

L'équipe zkSync a maintenant développé le zkSync Era, le protocole réinventé par rapport à la première version, mais sur la même infrastructure que nous avions créée à l'époque, en 2020. C'est formidable de se rappeler comment nos efforts en matière d'infrastructure ont été harmonisés avec l'architecture d'une solution aussi solide.

Un exemple d'architecture similaire du Nœud séquenceur sécurisé ZKevm Polygon.

À la recherche de la solution de serveur la mieux adaptée

Après une brève présentation des objectifs de notre coopération, nous avons entamé des négociations avec quelques représentants commerciaux de sous-couches populaires : GCP, AWS et Azure Cloud. Nous recherchions une offre rentable de serveurs hautement disponibles qui devraient être accessibles dans de nombreuses variantes et pendant quelques heures : de 10 à 200 sur demande, en fonction de la charge de preuve.

Et GCP a trouvé quelque chose à offrir pour répondre à notre demande. Nous avons convenu d'utiliser les instances ponctuelles qui ne seront utilisées que pendant une courte période, puis seront résiliées. C'était également l'option la moins chère sans nuire à la fonctionnalité. Cette architecture de serveur répond parfaitement à nos besoins car elle n'a été utilisée que lors de la phase d'essai du travail de zkSync. Ils fournissent au projet un débit extrêmement élevé.

Défis liés à la mise à l'échelle

Vous avez peut-être entendu parler de notre produit PredictKube, que nous avons créé sur la base de modèles AI/ML. Nous admettons que nous nous sommes inspirés de projets tels que zkSync pour le réaliser.

Au fait, tu peux essayez-le gratuitement.

Mais la solution de dimensionnement que nous avons conçue pour zkSync n'avait rien à voir avec l'IA ou le ML, car nous avons créé un modèle mathématique solide qui s'adapte à tous les scénarios possibles, sans effort supplémentaire. Il a été implémenté dans le code par l'équipe zkSync et fonctionne sans problème jusqu'à présent.

Mais il y a eu un problème.

Nous avons atteint la limite de débit du centre de données GCP lors du lancement de nombreux nœuds. Dans l'environnement de test, tout fonctionnait plutôt bien : le passage d'un à cinq nœuds s'est déroulé sans problème. Mais du côté de la production, nous avons respecté les limites du centre de données et nos nœuds étaient lancés très longtemps. Pour résoudre ce problème, nos ingénieurs ont décidé d'utiliser le protocole S3 appliqué à GCP Object Storage.

Grâce aux fonctions de parallélisation disponibles via le protocole S3, nous avons géré le flux de données via plusieurs objets et répliques entre le centre de données et notre projet. Nous avons ainsi dépassé la limite de 60 Gbit/s et augmenté la vitesse de lancement du nouveau nœud pour le prover ZKSynx. Cela nous a aidés à changer le schéma d'amorçage des nouveaux nœuds, passant d'un mode itératif, une fois 5, puis 5 autres, à un mode explosif, soit tout ce dont nous avons besoin en même temps et pendant moins d'une heure.

Le rôle du protocole ZK dans ce projet

  1. Sécurité

Chaque transaction est sécurisée et ne peut pas être modifiée après avoir été signée et envoyée à zkSync pour approbation et validation au bloc. Tout cela peut arriver avec TX : il peut (ou ne peut pas) être inclus dans le bloc suivant.

  1. Évolutivité

La solution de l'algorithme mathématique pour la mise à l'échelle couvre tous les besoins du zkSync. Même le volume de transactions élevé n'affectera pas le fonctionnement de la méthode ZKP.

  1. Vitesse accrue

En raison de la haute disponibilité et des capacités opérationnelles, la validation en tant que processus n'a pris que quelques millisecondes pour zkSync. C'est bien plus que ce qu'Ethereum lui-même peut offrir.

  1. Coûts réduits

Grâce à l'architecture de serveur sélectionnée avec soin pour le zkSync, ils offrent littéralement le meilleur prix du marché pour la validation des transactions. Avec la mise en œuvre d'un tel protocole, les coûts opérationnels restent également faibles.

Par où commencer si vous souhaitez appliquer la méthode ZKP dans votre application

Pour assimiler toute cette histoire de prouveur et de vérificateur, vous devez trouver une idée de mise en œuvre. Comme vous le voyez, le domaine d'application est extrêmement vaste, mais cela ne signifie pas pour autant que toutes ces sphères disposent déjà de la solution basée sur la blockchain à connaissance nulle la mieux mise en œuvre.

En vous basant sur l'histoire de zkSync, vous voyez que la bonne idée a un potentiel de développement qui nourrira votre projet avec de nouvelles étapes et la mise en œuvre de produits.

Nous espérons avoir réussi à vous expliquer la signification de la notion de « zéro preuve ». N'hésitez pas à nous demander plus de détails !

Daniel Yavorovych
CTO and Co-founder at Dysnix
Brainpower and problem-solver, meditating and mountain hiking.
Table des matières
Articles connexes
Abonnez-vous au blog
La meilleure source d'informations pour le service client, les conseils de vente, les guides et les meilleures pratiques du secteur. Joignez-vous à nous.
Merci de votre inscription au blog Dysnix
Vous serez désormais le premier à savoir quand nous publierons un nouvel article
J'ai compris
Oups ! Une erreur s'est produite lors de l'envoi du formulaire.
Copié dans le presse-papiers
Collez-le où vous voulez