zk-SNARKs dans l'application Blockchain : défis de sécurité et solutions
Les zk-SNARKs ( ZKP ), en tant que technologie cryptographique avancée, sont de plus en plus appliqués dans le domaine du Blockchain. Avec l'adoption de la technologie ZKP par des projets tels que les protocoles Layer 2 et les chaînes publiques spéciales, la complexité des systèmes a également augmenté, posant de nouveaux défis en matière de sécurité. Cet article examinera, du point de vue de la sécurité, les vulnérabilités potentielles qui peuvent survenir lors de la combinaison de ZKP et du Blockchain, afin de fournir des références pour la protection de la sécurité des projets concernés.
Les caractéristiques clés des zk-SNARKs
Un système de zk-SNARKs complet doit satisfaire simultanément trois caractéristiques clés :
Complétude : pour une affirmation vraie, le prouveur peut réussir à prouver sa véracité au vérificateur.
Fiabilité : pour les déclarations erronées, le prouveur malveillant ne peut pas tromper le vérificateur.
Caractère de connaissance nulle : durant le processus de vérification, le vérificateur ne recevra aucune information de la part du prouveur concernant les données elles-mêmes.
Ces trois caractéristiques sont les pierres angulaires de la sécurité et de l'efficacité d'un système ZKP. Si la complétude n'est pas satisfaite, le système peut ne pas être capable de fournir une preuve correcte dans certaines conditions, entraînant un refus de service. L'absence de fiabilité peut permettre à un attaquant de falsifier des preuves, entraînant de graves problèmes de contournement des autorisations. L'absence de connaissance zéro peut entraîner la fuite de paramètres originaux, permettant à un attaquant de construire des preuves d'attaque ou à un prouveur de commettre des actes malveillants. Par conséquent, il est essentiel de se concentrer sur la garantie de ces caractéristiques au cours du processus de service de sécurité.
Points de sécurité des projets ZKP
1. Circuits zk-SNARKs
Le circuit ZKP est le cœur de l'ensemble du système, il est nécessaire de se concentrer sur les aspects suivants :
Conception de circuits : il peut y avoir des erreurs logiques qui rendent le processus de preuve non conforme aux attributs de sécurité. Par exemple, une erreur de conception de circuit découverte dans la mise à niveau Sapling de Zcash en 2018 pourrait permettre la contrefaçon illimitée de jetons.
Mise en œuvre des primitives cryptographiques : si les implémentations de fonctions de hachage, d'algorithmes de cryptage et autres primitives sont incorrectes, cela pourrait compromettre la sécurité de l'ensemble du système.
Garantie de la randomité : le processus de preuve dépend d'un générateur de nombres aléatoires, et un manque de randomité peut compromettre la sécurité. Comme l'a découvert Dfinity en 2018, une vulnérabilité dans le générateur de nombres aléatoires pourrait nuire aux caractéristiques zk-SNARKs du circuit.
2. Sécurité des contrats intelligents
Pour les projets de cryptomonnaies axés sur la confidentialité basés sur Layer 2 ou réalisés via des contrats intelligents, la sécurité des contrats est cruciale. En plus des vulnérabilités courantes, les failles dans la validation des messages inter-chaînes et la validation des proof peuvent directement entraîner une défaillance de la fiabilité. Par exemple, une vulnérabilité dans le contrat Verify de Circom pourrait permettre une attaque de double dépense sous pseudonyme.
3. Disponibilité des données
Assurez-vous que les données hors chaîne peuvent être accessibles et vérifiées de manière sécurisée et efficace. Les problèmes de disponibilité des données sur la chaîne Plasma en 2019 ont empêché les utilisateurs de soumettre des transactions ou de retirer des fonds, soulignant l'importance de ce problème. En plus d'utiliser des preuves de disponibilité des données, il est également possible de renforcer la protection des hôtes et la surveillance de l'état des données.
4. Mécanisme d'incitation économique
Évaluer le mécanisme d'incitation du projet pour s'assurer qu'il puisse raisonnablement inciter chaque partie prenante à maintenir la sécurité et la stabilité du système. Se concentrer sur la conception du modèle d'incitation, la distribution des récompenses et les mécanismes de punition.
5. Protection de la vie privée
Pour les projets impliquant la protection de la vie privée, il est nécessaire d'auditer la mise en œuvre de leur solution de confidentialité. Assurez-vous que les données des utilisateurs sont suffisamment protégées lors de leur transmission, de leur stockage et de leur vérification, tout en maintenant la disponibilité et la fiabilité du système. Il est possible de déduire, par l'analyse des flux de communication des protocoles, s'il existe une fuite de la vie privée du prouveur, ou si le vérificateur pourrait reconstituer les connaissances du prouveur.
6. Optimisation des performances
Évaluer les stratégies d'optimisation des performances des projets, y compris la vitesse de traitement des transactions, l'efficacité du processus de validation, etc. Auditer les mesures d'optimisation mises en œuvre dans le code pour garantir qu'elles répondent aux exigences de performance.
7. Mécanismes de tolérance aux pannes et de récupération
Stratégie de tolérance aux pannes et de récupération face aux situations imprévues ( telles que les pannes réseau, les attaques malveillantes, etc. Assurez-vous que le système peut se rétablir automatiquement et maintenir un fonctionnement normal dans la mesure du possible.
) 8. Qualité du code
Évaluer la qualité globale du code d'audit, en se concentrant sur la lisibilité, la maintenabilité et la robustesse. Évaluer s'il existe des pratiques de programmation non conformes, du code redondant, des erreurs potentielles, etc.
Résumé
Lors de la discussion sur la sécurité des projets ZKP, il est d'abord nécessaire de clarifier l'endroit où le projet utilise le ZKP. Les différents types de projets ###, tels que Layer 2, les monnaies privées et les blockchains publiques (, ont des priorités de sécurité différentes. Quoi qu'il en soit, il est essentiel de garantir les trois caractéristiques clés du ZKP : la complétude, la fiabilité et la propriété de connaissance nulle. Ce n'est qu'en tenant compte de ces facteurs de sécurité que l'on peut construire un projet de blockchain ZKP véritablement sûr et fiable.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
6 J'aime
Récompense
6
7
Partager
Commentaire
0/400
LiquidationKing
· 07-08 05:58
J'ai regardé plusieurs fois et je suis toujours un peu confus, zkp est vraiment trop complexe.
Voir l'originalRépondre0
gas_fee_therapist
· 07-06 19:06
Tous les L2 qui ne savent pas faire de circuits sont des escrocs, n'est-ce pas ?
Voir l'originalRépondre0
OnChainDetective
· 07-06 17:42
tracé 6 exploits zkp le mois dernier... complexité = vulnérabilité
Voir l'originalRépondre0
AirdropBuffet
· 07-06 17:33
C'est trop compliqué. Autant faire du hodl directement.
Voir l'originalRépondre0
GasFeeCrier
· 07-06 17:30
Le zkp ne va pas manquer de bases, n'est-ce pas ?
Voir l'originalRépondre0
WenMoon
· 07-06 17:29
Encore en train de faire du formalisme, qu'est-il arrivé à la sécurité ?
Défis de sécurité du ZKP dans la Blockchain : analyse des 8 points clés
zk-SNARKs dans l'application Blockchain : défis de sécurité et solutions
Les zk-SNARKs ( ZKP ), en tant que technologie cryptographique avancée, sont de plus en plus appliqués dans le domaine du Blockchain. Avec l'adoption de la technologie ZKP par des projets tels que les protocoles Layer 2 et les chaînes publiques spéciales, la complexité des systèmes a également augmenté, posant de nouveaux défis en matière de sécurité. Cet article examinera, du point de vue de la sécurité, les vulnérabilités potentielles qui peuvent survenir lors de la combinaison de ZKP et du Blockchain, afin de fournir des références pour la protection de la sécurité des projets concernés.
Les caractéristiques clés des zk-SNARKs
Un système de zk-SNARKs complet doit satisfaire simultanément trois caractéristiques clés :
Complétude : pour une affirmation vraie, le prouveur peut réussir à prouver sa véracité au vérificateur.
Fiabilité : pour les déclarations erronées, le prouveur malveillant ne peut pas tromper le vérificateur.
Caractère de connaissance nulle : durant le processus de vérification, le vérificateur ne recevra aucune information de la part du prouveur concernant les données elles-mêmes.
Ces trois caractéristiques sont les pierres angulaires de la sécurité et de l'efficacité d'un système ZKP. Si la complétude n'est pas satisfaite, le système peut ne pas être capable de fournir une preuve correcte dans certaines conditions, entraînant un refus de service. L'absence de fiabilité peut permettre à un attaquant de falsifier des preuves, entraînant de graves problèmes de contournement des autorisations. L'absence de connaissance zéro peut entraîner la fuite de paramètres originaux, permettant à un attaquant de construire des preuves d'attaque ou à un prouveur de commettre des actes malveillants. Par conséquent, il est essentiel de se concentrer sur la garantie de ces caractéristiques au cours du processus de service de sécurité.
Points de sécurité des projets ZKP
1. Circuits zk-SNARKs
Le circuit ZKP est le cœur de l'ensemble du système, il est nécessaire de se concentrer sur les aspects suivants :
Conception de circuits : il peut y avoir des erreurs logiques qui rendent le processus de preuve non conforme aux attributs de sécurité. Par exemple, une erreur de conception de circuit découverte dans la mise à niveau Sapling de Zcash en 2018 pourrait permettre la contrefaçon illimitée de jetons.
Mise en œuvre des primitives cryptographiques : si les implémentations de fonctions de hachage, d'algorithmes de cryptage et autres primitives sont incorrectes, cela pourrait compromettre la sécurité de l'ensemble du système.
Garantie de la randomité : le processus de preuve dépend d'un générateur de nombres aléatoires, et un manque de randomité peut compromettre la sécurité. Comme l'a découvert Dfinity en 2018, une vulnérabilité dans le générateur de nombres aléatoires pourrait nuire aux caractéristiques zk-SNARKs du circuit.
2. Sécurité des contrats intelligents
Pour les projets de cryptomonnaies axés sur la confidentialité basés sur Layer 2 ou réalisés via des contrats intelligents, la sécurité des contrats est cruciale. En plus des vulnérabilités courantes, les failles dans la validation des messages inter-chaînes et la validation des proof peuvent directement entraîner une défaillance de la fiabilité. Par exemple, une vulnérabilité dans le contrat Verify de Circom pourrait permettre une attaque de double dépense sous pseudonyme.
3. Disponibilité des données
Assurez-vous que les données hors chaîne peuvent être accessibles et vérifiées de manière sécurisée et efficace. Les problèmes de disponibilité des données sur la chaîne Plasma en 2019 ont empêché les utilisateurs de soumettre des transactions ou de retirer des fonds, soulignant l'importance de ce problème. En plus d'utiliser des preuves de disponibilité des données, il est également possible de renforcer la protection des hôtes et la surveillance de l'état des données.
4. Mécanisme d'incitation économique
Évaluer le mécanisme d'incitation du projet pour s'assurer qu'il puisse raisonnablement inciter chaque partie prenante à maintenir la sécurité et la stabilité du système. Se concentrer sur la conception du modèle d'incitation, la distribution des récompenses et les mécanismes de punition.
5. Protection de la vie privée
Pour les projets impliquant la protection de la vie privée, il est nécessaire d'auditer la mise en œuvre de leur solution de confidentialité. Assurez-vous que les données des utilisateurs sont suffisamment protégées lors de leur transmission, de leur stockage et de leur vérification, tout en maintenant la disponibilité et la fiabilité du système. Il est possible de déduire, par l'analyse des flux de communication des protocoles, s'il existe une fuite de la vie privée du prouveur, ou si le vérificateur pourrait reconstituer les connaissances du prouveur.
6. Optimisation des performances
Évaluer les stratégies d'optimisation des performances des projets, y compris la vitesse de traitement des transactions, l'efficacité du processus de validation, etc. Auditer les mesures d'optimisation mises en œuvre dans le code pour garantir qu'elles répondent aux exigences de performance.
7. Mécanismes de tolérance aux pannes et de récupération
Stratégie de tolérance aux pannes et de récupération face aux situations imprévues ( telles que les pannes réseau, les attaques malveillantes, etc. Assurez-vous que le système peut se rétablir automatiquement et maintenir un fonctionnement normal dans la mesure du possible.
) 8. Qualité du code
Évaluer la qualité globale du code d'audit, en se concentrant sur la lisibilité, la maintenabilité et la robustesse. Évaluer s'il existe des pratiques de programmation non conformes, du code redondant, des erreurs potentielles, etc.
Résumé
Lors de la discussion sur la sécurité des projets ZKP, il est d'abord nécessaire de clarifier l'endroit où le projet utilise le ZKP. Les différents types de projets ###, tels que Layer 2, les monnaies privées et les blockchains publiques (, ont des priorités de sécurité différentes. Quoi qu'il en soit, il est essentiel de garantir les trois caractéristiques clés du ZKP : la complétude, la fiabilité et la propriété de connaissance nulle. Ce n'est qu'en tenant compte de ces facteurs de sécurité que l'on peut construire un projet de blockchain ZKP véritablement sûr et fiable.