Considérations de sécurité sur la combinaison de zk-SNARKs et Blockchain
Les zk-SNARKs ( ZKP ), en tant que technologie cryptographique avancée, sont de plus en plus adoptés par de nombreux projets Blockchain. Cependant, en raison de la complexité des systèmes, la combinaison des ZKP avec la Blockchain entraîne également de nouveaux défis en matière de sécurité. Cet article explorera les risques potentiels auxquels l'application des ZKP dans la Blockchain pourrait être confrontée du point de vue de la sécurité, afin de fournir des références pour la protection des projets concernés.
Les caractéristiques clés des zk-SNARKs
Un système de zk-SNARKs fiable doit satisfaire simultanément trois caractéristiques clés :
Complétude : Pour une déclaration vraie, le prouveur peut toujours prouver avec succès sa validité au vérificateur.
Fiabilité : les prouveurs malveillants ne peuvent pas tromper les vérificateurs en cas de déclaration erronée.
Propriété de zero-knowledge : pendant le processus de vérification, le vérificateur ne recevra aucune information du prouveur concernant les données d'origine.
Ces trois caractéristiques sont la base de la sécurité et de l'efficacité du système ZKP. Si la complétude n'est pas satisfaite, le système peut rejeter des preuves correctes dans certaines conditions. Si la fiabilité n'est pas satisfaite, un attaquant peut falsifier des preuves pour tromper le vérificateur. Si la propriété de connaissance nulle n'est pas satisfaite, il peut y avoir une fuite des paramètres originaux, entraînant des vulnérabilités de sécurité.
Principales préoccupations en matière de sécurité des projets ZKP
1. Circuit zk-SNARKs
La conception de circuits, la mise en œuvre de primitives cryptographiques et la génération de l'aléatoire sont des aspects à surveiller de près :
Une erreur de conception du circuit peut entraîner un processus de preuve qui ne respecte pas les propriétés de sécurité. Par exemple, Zcash a découvert lors de sa mise à niveau de 2018 une erreur de conception du circuit susceptible de provoquer la création illimitée de jetons contrefaits.
Une erreur dans l'implémentation des primitives cryptographiques peut compromettre la sécurité de l'ensemble du système. Par exemple, le pont inter-chaînes de BNB Chain a entraîné d'énormes pertes en raison d'une erreur dans l'implémentation de la primitive de vérification du merkle tree.
L'absence de randomisation peut compromettre la sécurité de la preuve. Dfinity a découvert une vulnérabilité dans le générateur de nombres aléatoires, ce qui pourrait compromettre les caractéristiques de zk-SNARKs.
2. Sécurité des contrats intelligents
Pour les projets Layer2 ou de monnaies privées, les contrats intelligents jouent un rôle clé dans la migration d'actifs entre chaînes et la vérification des preuves. En plus des vulnérabilités courantes, les problèmes de vérification des messages inter-chaînes et de vérification des preuves peuvent entraîner une perte de fiabilité. Par exemple, la vulnérabilité du contrat Verify de Circom pourrait permettre des attaques de double dépense.
3. Disponibilité des données
Il est nécessaire de garantir que les données hors chaîne peuvent être accessibles et vérifiées de manière sécurisée et efficace. En 2019, la chaîne Plasma avait déjà rencontré des problèmes de disponibilité des données, empêchant les utilisateurs d'effectuer des transactions ou de retirer des fonds. En plus d'utiliser des preuves de disponibilité des données, il est également possible de renforcer la protection de l'hôte et la surveillance de l'état des données.
4. Mécanisme d'incitation économique
Il est nécessaire d'évaluer si le mécanisme d'incitation du projet est raisonnable et s'il peut efficacement inciter toutes les parties à maintenir la sécurité et la stabilité du système. Portez une attention particulière à la conception du modèle d'incitation, à la distribution des récompenses et aux mécanismes de punition.
5. Protection de la vie privée
La mise en œuvre d'une solution de confidentialité d'audit garantit que les données des utilisateurs sont pleinement protégées lors de leur transmission, stockage et vérification. Il est possible d'inférer s'il existe un risque de fuite de données personnelles en analysant le processus de communication du protocole.
6. Optimisation des performances
Évaluer les indicateurs de performance tels que la vitesse de traitement des transactions et l'efficacité du processus de validation, afin de garantir la satisfaction des besoins réels. Auditer les mesures d'optimisation mises en œuvre dans le code.
7. Mécanismes de tolérance aux pannes et de récupération
Stratégies de réponse du système d'audit face à des situations imprévues telles que des pannes réseau ou des attaques malveillantes. Assurez-vous que le système peut se rétablir automatiquement en fonctionnement normal dans la mesure du possible.
8. Qualité du code
Évaluer de manière exhaustive la qualité du code du projet, en se concentrant sur la lisibilité, la maintenabilité et la robustesse. Vérifier s'il existe des pratiques de programmation non conformes, du code redondant ou des erreurs potentielles.
Résumé
Les points de sécurité des projets ZKP varient en fonction des scénarios d'application, mais doivent tous garantir trois caractéristiques majeures : la complétude, la fiabilité et la connaissance nulle. Pour différents types de projets, des stratégies de sécurité ciblées doivent être élaborées pour garantir le bon fonctionnement sécurisé et stable du système.
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.
19 J'aime
Récompense
19
7
Partager
Commentaire
0/400
BankruptcyArtist
· 07-13 09:19
Les programmeurs doivent faire le plus simple.
Voir l'originalRépondre0
LayerZeroHero
· 07-13 00:42
La confidentialité et la sécurité sont difficiles à concilier.
Voir l'originalRépondre0
TeaTimeTrader
· 07-11 08:01
Le code est astucieusement raisonnable
Voir l'originalRépondre0
GasFeeLover
· 07-10 23:39
Pas mieux que de préserver sa vie avec gwei.
Voir l'originalRépondre0
0xLuckbox
· 07-10 23:34
La sécurité est la plus importante, n'est-ce pas ?
Analyse approfondie : les 8 grands défis de sécurité de la combinaison des zk-SNARKs et de la Blockchain
Considérations de sécurité sur la combinaison de zk-SNARKs et Blockchain
Les zk-SNARKs ( ZKP ), en tant que technologie cryptographique avancée, sont de plus en plus adoptés par de nombreux projets Blockchain. Cependant, en raison de la complexité des systèmes, la combinaison des ZKP avec la Blockchain entraîne également de nouveaux défis en matière de sécurité. Cet article explorera les risques potentiels auxquels l'application des ZKP dans la Blockchain pourrait être confrontée du point de vue de la sécurité, afin de fournir des références pour la protection des projets concernés.
Les caractéristiques clés des zk-SNARKs
Un système de zk-SNARKs fiable doit satisfaire simultanément trois caractéristiques clés :
Complétude : Pour une déclaration vraie, le prouveur peut toujours prouver avec succès sa validité au vérificateur.
Fiabilité : les prouveurs malveillants ne peuvent pas tromper les vérificateurs en cas de déclaration erronée.
Propriété de zero-knowledge : pendant le processus de vérification, le vérificateur ne recevra aucune information du prouveur concernant les données d'origine.
Ces trois caractéristiques sont la base de la sécurité et de l'efficacité du système ZKP. Si la complétude n'est pas satisfaite, le système peut rejeter des preuves correctes dans certaines conditions. Si la fiabilité n'est pas satisfaite, un attaquant peut falsifier des preuves pour tromper le vérificateur. Si la propriété de connaissance nulle n'est pas satisfaite, il peut y avoir une fuite des paramètres originaux, entraînant des vulnérabilités de sécurité.
Principales préoccupations en matière de sécurité des projets ZKP
1. Circuit zk-SNARKs
La conception de circuits, la mise en œuvre de primitives cryptographiques et la génération de l'aléatoire sont des aspects à surveiller de près :
Une erreur de conception du circuit peut entraîner un processus de preuve qui ne respecte pas les propriétés de sécurité. Par exemple, Zcash a découvert lors de sa mise à niveau de 2018 une erreur de conception du circuit susceptible de provoquer la création illimitée de jetons contrefaits.
Une erreur dans l'implémentation des primitives cryptographiques peut compromettre la sécurité de l'ensemble du système. Par exemple, le pont inter-chaînes de BNB Chain a entraîné d'énormes pertes en raison d'une erreur dans l'implémentation de la primitive de vérification du merkle tree.
L'absence de randomisation peut compromettre la sécurité de la preuve. Dfinity a découvert une vulnérabilité dans le générateur de nombres aléatoires, ce qui pourrait compromettre les caractéristiques de zk-SNARKs.
2. Sécurité des contrats intelligents
Pour les projets Layer2 ou de monnaies privées, les contrats intelligents jouent un rôle clé dans la migration d'actifs entre chaînes et la vérification des preuves. En plus des vulnérabilités courantes, les problèmes de vérification des messages inter-chaînes et de vérification des preuves peuvent entraîner une perte de fiabilité. Par exemple, la vulnérabilité du contrat Verify de Circom pourrait permettre des attaques de double dépense.
3. Disponibilité des données
Il est nécessaire de garantir que les données hors chaîne peuvent être accessibles et vérifiées de manière sécurisée et efficace. En 2019, la chaîne Plasma avait déjà rencontré des problèmes de disponibilité des données, empêchant les utilisateurs d'effectuer des transactions ou de retirer des fonds. En plus d'utiliser des preuves de disponibilité des données, il est également possible de renforcer la protection de l'hôte et la surveillance de l'état des données.
4. Mécanisme d'incitation économique
Il est nécessaire d'évaluer si le mécanisme d'incitation du projet est raisonnable et s'il peut efficacement inciter toutes les parties à maintenir la sécurité et la stabilité du système. Portez une attention particulière à la conception du modèle d'incitation, à la distribution des récompenses et aux mécanismes de punition.
5. Protection de la vie privée
La mise en œuvre d'une solution de confidentialité d'audit garantit que les données des utilisateurs sont pleinement protégées lors de leur transmission, stockage et vérification. Il est possible d'inférer s'il existe un risque de fuite de données personnelles en analysant le processus de communication du protocole.
6. Optimisation des performances
Évaluer les indicateurs de performance tels que la vitesse de traitement des transactions et l'efficacité du processus de validation, afin de garantir la satisfaction des besoins réels. Auditer les mesures d'optimisation mises en œuvre dans le code.
7. Mécanismes de tolérance aux pannes et de récupération
Stratégies de réponse du système d'audit face à des situations imprévues telles que des pannes réseau ou des attaques malveillantes. Assurez-vous que le système peut se rétablir automatiquement en fonctionnement normal dans la mesure du possible.
8. Qualité du code
Évaluer de manière exhaustive la qualité du code du projet, en se concentrant sur la lisibilité, la maintenabilité et la robustesse. Vérifier s'il existe des pratiques de programmation non conformes, du code redondant ou des erreurs potentielles.
Résumé
Les points de sécurité des projets ZKP varient en fonction des scénarios d'application, mais doivent tous garantir trois caractéristiques majeures : la complétude, la fiabilité et la connaissance nulle. Pour différents types de projets, des stratégies de sécurité ciblées doivent être élaborées pour garantir le bon fonctionnement sécurisé et stable du système.