|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zéro cumul de connaissances
Que sont les cumuls sans connaissances (ZK Rollups) ?
En termes simples, les cumuls sans connaissance ou zk-rollups sont une solution d'évolutivité de couche 2 qui permet aux blockchains de valider les transactions plus rapidement tout en garantissant que les frais de gaz restent minimes. Les Zk-rollups parviennent à mieux fonctionner que les blockchains traditionnelles de couche 1 car ils combinent des processus en chaîne et hors chaîne.
Alors que le réseau principal Ethereum utilise explicitement des activités en chaîne pour traiter les transactions et valider les blocs, les solutions zk-rollup de couche 2 introduisent également des fonctionnalités hors chaîne. L'un des principaux composants qui leur permettent de valider avec succès les transactions plus rapidement que les blockchains de couche 1 sont les Merkle Trees.
Merkle Tree est une structure mathématique importante qui permet aux blockchains de garantir que personne ne peut falsifier les données sur les enregistrements en chaîne d'un zk-rollup. Habituellement, un zk-rollup se compose de deux arbres Merkle qui sont tous deux stockés sur un contrat intelligent, ou en d'autres termes, en chaîne. Une arborescence est dédiée au stockage des comptes, tandis que l'autre stocke tous les soldes. Tout autre type de données généré et utilisé par le zk-rollup est stocké hors chaîne.
Les Zk-rollups deviennent de plus en plus populaires à la fois parmi les développeurs qui cherchent à améliorer la convivialité et parmi les investisseurs et les traders à la recherche d'un traitement des transactions plus rapide et moins cher.
Explication des cumuls ZK
Un zk-rollup est une solution de mise à l'échelle de couche 2 qui augmente le débit d'Ethereum en traitant les transactions en dehors du réseau principal Ethereum. Il réduit la congestion sur la couche de base et renforce l’évolutivité.
Les trois principaux composants d'un cumul de connaissances nulles comprennent un contrat intelligent sur Ethereum, un prouveur et un ensemble de vérificateurs. Les interactions entre chaînes sont gérées par le contrat intelligent. Un prouveur tiers génère des preuves cryptographiques de validité des transactions sur la chaîne de couche 2, tandis que les vérificateurs sont un groupe de nœuds chargés de confirmer ces preuves et de les soumettre au contrat intelligent.
Les utilisateurs signent les transactions et les soumettent au prouveur, qui les vérifie et les met en file d'attente. Périodiquement, le prouveur regroupe des milliers de transactions de la file d'attente dans un bloc et génère une preuve sans connaissance de leur validité. Cette preuve est une donnée concise qui peut être vérifiée en quelques millisecondes seulement sans révéler aucune information sur la transaction. Le prouveur soumet ensuite la preuve et une petite quantité de données – telles que la racine de l’état et la racine de la transaction – à Ethereum en une seule transaction. Le contrat intelligent vérifie la preuve et met à jour son état en conséquence.
Le retrait de fonds nécessite une demande de sortie, qui est soumise à un bloc Ethereum. Le contrat intelligent débloque et transfère ensuite les fonds. Aucun délai d'attente n'est requis pour les retraits, car ils sont vérifiés par des justificatifs.
Une caractéristique clé des zk-rollups est leur utilisation de preuves sans connaissance pour vérifier les transactions en chaîne sans nécessiter aucune interaction ou confiance. Cela permet une évolutivité élevée, une faible latence et des fonctionnalités de confidentialité.
Types de cumul de connaissances nulles (ZK Rollup)
Les facteurs qui différencient les différents types de cumuls sans connaissance comprennent :
Système de preuve : fait référence au type de preuve sans connaissance utilisée pour vérifier les transactions en chaîne. Différents systèmes de preuve possèdent des propriétés et des compromis distincts, tels que la taille de la preuve, le temps de vérification, le temps de preuve ou la configuration fiable. Les systèmes de preuve populaires incluent les zk-SNARK, les zk-STARK, le PLONK et les Bulletproofs. Des exemples de zk-rollups utilisant différents systèmes de preuve sont zkSync (PLONK), StarkWare (zk-STARKs) et Aztec (zk-SNARKs).
Conception de circuits : concerne le codage et l'exécution des transactions sur la chaîne de couche 2. Différentes conceptions de circuits ont des implications en termes d'évolutivité, de convivialité et de compatibilité. Les conceptions de circuits primaires incluent celles basées sur un compte, sur UTXO et sur ZKVM.
Des exemples de zk-rollups utilisant différentes conceptions de circuits sont zkSync (basé sur un compte), StarkWare (basé sur UTXO) et ZkPorter (basé sur ZKVM).
Solution de disponibilité des données : fait référence au stockage et à l'accès à des données en bloc complet hors chaîne. Différentes solutions de disponibilité des données offrent divers avantages et inconvénients, tels que les réseaux de stockage décentralisés (comme IPFS), les comités de disponibilité des données (comme Celestia) ou l'échantillonnage de disponibilité des données (comme Validium). Des exemples de zk-rollups utilisant différentes solutions de disponibilité des données sont zkSync (IPFS), StarkWare (Validium) et ZkPorter (Celestia).
Que signifie « zéro connaissance » pour les ZK-Rollups ?
Dans les zk-rollups, le terme « zéro connaissance » fait référence à l'utilisation de preuves sans connaissance pour la vérification des transactions en chaîne sans nécessiter d'interaction ou de confiance. Les preuves sans connaissance sont des preuves cryptographiques qui peuvent démontrer la véracité d'une déclaration sans divulguer aucune information sur la déclaration elle-même.
Avantages des ZK-Rollups
Frais de gaz réduits : en générant des preuves sans connaissance pour les lots de transactions et en soumettant un minimum de données en chaîne, les zk-rollups augmentent l'efficacité et réduisent les coûts de gaz.
Débit plus élevé : en contournant la congestion et les limitations de la couche de base, les zk-rollups atteignent des vitesses de transaction plus rapides et des délais de confirmation réduits. Certaines estimations suggèrent que les zk-rollups peuvent augmenter le débit jusqu'à 100 fois.
Délais de confirmation plus rapides : les utilisateurs n'ont plus besoin d'attendre les confirmations de blocage sur la couche de base, ce qui peut prendre plusieurs minutes ou heures selon les conditions du réseau. Au lieu de cela, ils reçoivent un retour immédiat et une finalité sur la chaîne de couche 2.
Fonctionnalités de confidentialité : les Zk-rollups améliorent la confidentialité des transactions en utilisant des preuves sans connaissance pour les vérifier en chaîne sans divulguer aucune information. Cela signifie qu'un minimum de données est publiée sur la chaîne et qu'aucune information sur les transactions n'est divulguée. Les Zk-rollups offrent également des fonctionnalités de confidentialité, telles que la dissimulation des montants des transactions ou des destinataires.
Sécurité et intégrité : les Zk-rollups héritent de la robustesse et du manque de confiance du mécanisme de consensus et du réseau de validateurs d'Ethereum. Les utilisateurs n'ont pas besoin de faire confiance à des tiers ou à des intermédiaires pour traiter leurs transactions ou stocker leurs données.
Défis ou limites des ZK-Rollups
Coût de génération de preuve : le coût de génération d'une preuve sans connaissance pour un lot de transactions dépend de la complexité des transactions, du système de preuve et de la conception du circuit. Les coûts de génération de preuves peuvent être élevés pour certains cas d'utilisation, affectant potentiellement l'évolutivité et la convivialité des zk-rollups. Réduire les coûts de génération de preuves implique d’utiliser des systèmes de preuve ou des conceptions de circuits plus efficaces, ou encore de subventionner ou d’inciter les prouveurs.
Complexité du circuit : cela fait référence à la complexité du codage et de l'exécution des transactions sur la chaîne de couche 2, en fonction de la conception du circuit et de la fonctionnalité de la transaction. Une complexité élevée des circuits peut affecter l'évolutivité et la convivialité des zk-rollups pour certains cas d'utilisation. Réduire la complexité des circuits implique d’utiliser des conceptions de circuits plus optimisées ou spécialisées ou de simplifier ou de normaliser les transactions.
Problèmes de compatibilité : les Zk-rollups ne sont pas entièrement compatibles avec les contrats intelligents et les outils existants fonctionnant sur Ethereum, ce qui nécessite des modifications ou des adaptations. Les développeurs peuvent avoir besoin d'utiliser différents langages, frameworks, bibliothèques ou normes pour rédiger des contrats intelligents pour les zk-rollups. Les utilisateurs peuvent également avoir besoin de différents portefeuilles, navigateurs ou interfaces pour interagir avec les zk-rollups. Résoudre les problèmes de compatibilité implique d’utiliser des solutions plus interopérables ou universelles ou de fournir une formation et une assistance aux développeurs et aux utilisateurs.