Qu'est-ce que la preuve Zero-Knowledge et son rôle dans le monde de la blockchain ?
Publié: 2020-01-09Au cours des dernières années, nous nous sommes habitués à la manière dont les grandes banques et autres entreprises accèdent à nos informations personnelles et les utilisent pour nous offrir une expérience améliorée. Au fil du temps, nous leur avons donné un «signal vert» aux mécanismes qui utilisent nos détails sensibles pour nous aider à nous maintenir d'une certaine manière.
Mais ensuite est entré la technologie Blockchain et cela a totalement changé tout.
La technologie Blockchain a apporté diverses caractéristiques telles que la transparence, l'immuabilité, la décentralisation et le grand livre distribué. Il a permis aux utilisateurs d'agir de manière anonyme et d'effectuer des transactions avec une sécurité haut de gamme.
[Avant d'aller plus loin, nous vous recommandons vivement de prendre le temps de comprendre les bases de la Blockchain .]
La blockchain, en termes simples, a donné aux utilisateurs le contrôle de leur vie privée et de leur avenir.
Mais, Blockchain a-t-il vraiment réussi à le faire ?
En un mot, la réponse est NON .
De nombreux réseaux blockchain utilisent des bases de données publiques. Ainsi, toute personne disposant d'une connexion Internet peut consulter la liste de l'historique des transactions du réseau. Ils peuvent voir tous les détails associés à la transaction et les détails de votre portefeuille, mais le nom de l'utilisateur leur sera toujours inconnu. Au lieu de cela, ils apparaîtront comme une clé publique - le code unique représentant l'utilisateur sur le réseau blockchain.
De cette façon, la clé publique créée via la technique de cryptographie protège dans une certaine mesure votre vie privée. Mais, il est toujours possible pour quelqu'un de vous exposer via d'autres techniques.
Cela a fait sauter votre couverture anonyme; démystifier le mythe de l'anonymat et de la confidentialité de Blockchain, et vous faire réaliser que -
Les informations sensibles de l'utilisateur stockées sur un réseau Blockchain sont uniquement confidentielles et non anonymes .
De même, il existe divers réseaux de chaînes de blocs régis par des algorithmes de consensus pour offrir une confidentialité et une stabilité haut de gamme, mais la décentralisation est considérée comme une deuxième priorité dans de tels cas. Dans de nombreux cas, les deux parties ne se font pas confiance. [Pour en savoir plus sur ces modèles de consensus, consultez ce guide d'algorithme de consensus blockchain .]
Ceci, dans son ensemble, donne une indication claire que Blockchain n'est pas aussi anonyme et décentralisé que beaucoup de ses passionnés le pensent. Et donne même naissance à diverses questions, telles que –
Les réseaux Blockchain doivent-ils vraiment être anonymes ? Comment Blockchain peut-il offrir plus d'anonymat et une meilleure protection de la vie privée à ses utilisateurs ?
Dans les réseaux Blockchain actuels, les transactions sont enregistrées dans le grand livre public et sont de nature transparente. Pour cette raison, diverses marques et marchés réputés comme Wall Street hésitent à adopter une technologie sans preuve de connaissance car la confidentialité du client et de la transaction est un must pour eux. Ceci, dans son ensemble, pose la question de savoir si Blockchain Web 3.0 pourra avoir un impact sur les entreprises .
En ce qui concerne la deuxième question, il existe divers concepts et méthodes comme le mélange de pièces, Ringct et Coin Join qui rendent les transactions anonymes dans Blockchain, mais celui qui est très apprécié est Zero-Knowledge Proof .
Celui que nous aborderons en détail dans cet article.
Alors, commençons par une définition simple de la blockchain sans connaissance .
Qu'est-ce que la preuve zéro connaissance ?
Zero-knowledge Proof est un schéma de chiffrement proposé par les chercheurs du MIT Silvio Micali , Shafi Goldwasser et Charles Rackoff dans les années 1980. Dans cette méthode, une partie (Prover) peut prouver qu'une déclaration spécifique est vraie à l'autre partie (Verifier) sans divulguer d'informations supplémentaires.
Zero Knowledge Encryption garantit que personne d'autre que vous (pas même le fournisseur de services ou l'agence de développement d'applications blockchain) ne peut accéder à vos données sécurisées.
La définition étant clarifiée, prenons un exemple pour comprendre le fonctionnement de ZKP .
Exemple : enfants et barres chocolatées
Supposons que deux enfants, Bob et Alice, aient reçu des friandises lors d'une fête. Bob veut savoir si Alice a le même nombre de barres chocolatées ou non. Mais, en même temps, aucun d'entre eux n'est prêt à révéler le nombre exact.
Donc, ce qu'ils font, c'est que Bob apporte quatre boîtes verrouillables dans une pièce, en supposant que le nombre de barres chocolatées reçues sera de 10, 20, 30 et 40. Il étiquette chaque boîte avec une valeur correspondant au nombre de barres chocolatées.
Ensuite, Bob garde la clé de la boîte qui définit le nombre de barres chocolatées qu'il a reçues dans sa poche (disons qu'il a reçu 30 barres chocolatées) et jette les clés de toutes les autres boîtes. Et il quitte la pièce.
Maintenant, Alice entre dans la pièce avec 4 petits morceaux de papier et écrit '+' sur l'un d'eux tandis que '-' sur tous les autres. Ici, "+" indique le nombre de barres chocolatées qu'elle a obtenues, tandis que "-" représente toutes les autres valeurs.
Elle glisse le morceau de papier avec le signe '+' dans une case (disons dans celle représentant 20 barres chocolatées) et '-' dans le reste des cases. Et elle part.
Maintenant, Bob entre à nouveau dans la pièce et ouvre la boîte dont la clé est dans sa poche. Ensuite, il vérifie si la boîte contient un morceau de papier avec le signe '+' ou le signe '-'. Si c'est un signe '+', il se rend compte qu'Alice a un nombre égal de barres chocolatées. Alors que, dans l'autre cas, elle ne le fait pas.
Comme nous savons qu'Alice a 20 barres chocolatées et Bob 30 barres chocolatées, il est clair que Bob trouvera un signe '-' dans la boîte verrouillable dont il a la clé. Cela lui fera comprendre qu'ils n'ont pas tous les deux le même nombre de barres chocolatées.
Au même moment, Alice rentrera dans la pièce et trouvera un signe "-" dans la main de Bob et elle apprendra également qu'ils ont un nombre différent de barres chocolatées.
Remarque : Par cette méthode, Bob apprendra qu'ils n'ont pas le même nombre de barres chocolatées. Mais, il n'aura toujours aucune idée si Alice a plus ou moins de barres chocolatées que lui, et vice versa.
Ainsi, l' éthereum à preuve zéro connaissance préserve la confidentialité des informations sensibles des utilisateurs, tout en effectuant une transaction (dans ce cas, la transaction consiste à déterminer s'ils ont le même nombre de barres chocolatées ou non).
Bien que cet exemple vous ait aidé à comprendre ce qu'est exactement Zero Knowledge Proofs (ZKP), rafraîchissons le concept avec une image-
Maintenant, comme le concept de preuves à connaissance nulle (ZKP) est expliqué, c'est le meilleur moment pour examiner ce qui fait que tout le monde le préfère aux autres options disponibles. Examinons les avantages et les inconvénients de la preuve zéro connaissance :
Avantages des preuves de connaissance zéro (ZKP)
- Simple - L'un des principaux avantages de la cryptographie à connaissance nulle est qu'elle n'implique aucune méthode de cryptage complexe.
- Sécurisé - Il n'est pas nécessaire que quiconque révèle toute sorte d'informations.
- Transactions ─ Un autre avantage assuré associé aux ZKP fait référence au raccourcissement des transactions sur la blockchain. En conséquence, les utilisateurs n'auraient pas à se soucier du stockage des informations pour inclure la compatibilité et l'identité avec différents types d'actifs.
Bien que ce soient les avantages de la preuve à connaissance zéro, le concept présente également certains inconvénients. Certains d'entre eux sont : -
- Long - Dans la technologie de la connaissance zéro , il y a environ 2 000 calculs, chacun nécessitant un certain temps de traitement. C'est le principal inconvénient d'aller avec une preuve de connaissance zéro.
- Imparfait – Les messages transmis au vérificateur/prouveur peuvent être détruits ou modifiés.
- Limité – Le protocole de connaissance zéro exige que le secret soit une valeur numérique. Dans d'autres cas, une traduction est requise.
Ceci étant couvert, approfondissons les aspects techniques avant d'évaluer quand et comment les protocoles à connaissance zéro peuvent être introduits dans l'écosystème Blockchain.
En commençant par quelles sont les caractéristiques essentielles d'une preuve à connaissance nulle.
Propriétés des preuves à connaissance nulle
1. Complétude
Si la déclaration est vraie et que les deux utilisateurs suivent religieusement les règles, alors le vérificateur serait convaincu sans aucune aide extérieure.
2. Solidité
Si l'énoncé est faux, le vérificateur ne sera convaincu dans aucun scénario (même si le prouveur dit que l'énoncé est vrai pour une petite probabilité).
3. Zéro-Connaissance
Dans les deux cas, le vérificateur ne pourra connaître aucune information au-delà du fait que la déclaration est vraie ou fausse.
Bien que les principes du ZKP soient couverts, parlons des différents types de ZKP dans lesquels un passionné d'affaires peut investir.
Types de preuves de connaissance zéro
1. Preuve interactive sans connaissance
Dans une preuve interactive à connaissance nulle , un démonstrateur effectue une série d'actions sous le mécanisme de la probabilité mathématique pour convaincre le vérificateur d'un fait particulier.
2. Preuve de connaissance nulle non interactive (NIZKP)
Comme l'illustre son nom, la preuve de connaissance zéro non interactive ne nécessite pas de processus interactif. Cela signifie que le prouveur peut générer tous les défis en même temps et que le ou les vérificateurs peuvent répondre plus tard. Cela limite la possibilité de collusion. Cependant, il faut des machines et des logiciels supplémentaires pour connaître la séquence d'expériences.
Remarque : Il est possible d'effectuer une transition du ZKP non interactif au ZKP interactif.
Où implémenter la preuve Zero-Knowledge dans le système Blockchain ?
1. Messagerie
Dans la messagerie, le cryptage de bout en bout est impératif afin que personne ne puisse lire votre message privé en dehors de celui avec qui vous communiquez. Pour assurer la sécurité, les plateformes de messagerie demandent aux utilisateurs de vérifier leur identité auprès du serveur et vice-versa.
Mais, avec l'avènement de ZKP, ils pourront établir une confiance de bout en bout dans le monde de la messagerie sans divulguer d'informations supplémentaires. C'est l'une des principales applications de la preuve de connaissance zéro dans le monde de la blockchain.
2. Authentification
La preuve à connaissance nulle peut également faciliter la transmission d'informations sensibles telles que les informations d'authentification avec une meilleure sécurité. Il peut créer un canal sécurisé permettant aux utilisateurs d'utiliser leurs informations sans les révéler. Et de cette façon, évitez les fuites de données dans les pires scénarios.
3. Protection du stockage
Un autre cas d'utilisation possible des preuves à connaissance nulle (ZKP) est dans le domaine de l'utilitaire de stockage.
La preuve sans connaissance est fournie avec un protocole qui protège non seulement l'unité de stockage, mais également les informations qu'elle contient. Inutile de dire que les canaux d'accès sont également protégés pour offrir une expérience transparente et sécurisée.
4. Envoi de transactions Blockchain privées
Lorsqu'il s'agit d'envoyer des transactions de blockchain privées, il est extrêmement important de le garder hors de portée des tiers. Maintenant, alors que les méthodes traditionnelles sont quelque peu protectrices, elles ont quelques failles.
C'est encore un autre domaine où ZKP entre en jeu. Le concept, lorsqu'il est intégré judicieusement, contribue à rendre presque impossible le piratage ou l'interception des transactions privées de la blockchain.
5. Documentation complexe
Étant donné que la preuve à connaissance nulle a le potentiel de chiffrer les données en morceaux, elle permet de contrôler certains blocs pour fournir l'accès à un utilisateur particulier, tout en limitant l'accès pour les autres. De cette façon, le concept protège la documentation complexe de ceux qui ne sont pas autorisés à les consulter.
6. Contrôle du système de fichiers
Le système de fichiers est un autre endroit où vous pouvez voir une implémentation efficace de la preuve sans connaissance .
Le concept ajoute différentes couches de sécurité aux fichiers, aux utilisateurs et même aux connexions, ce qui rend assez difficile le piratage ou la manipulation des données stockées.
7. Transmission de transactions Blockchain privées
La transmission d'échanges privés de blockchain est l'un des avis les plus remarquables parmi diverses exécutions éminentes de ZKP dans la blockchain. Les transactions Blockchain privées doivent être protégées de tout tiers lors de leur envoi.
La principale inquiétude liée à l'envoi de transactions de blockchain privées fait allusion aux différentes lacunes apparentes dans les stratégies habituelles. La puissante intégration de ZKP avec les transactions de blockchain privées peut les rendre polyvalentes pour tout type de piratage ou d'interférence.
8. Démocratiser la vérification des votes
L'exemple le plus évident d'application de ZKP avec la blockchain fait allusion à leur rôle démocratique dans la vérification des votes. Les ZKP peuvent donner des réponses fiables pour un vote auditable en enregistrant les votes sur une blockchain publique (comme Ethereum).
Par la suite, les processus de vote n'auraient besoin d'aucune confirmation de tiers en plus d'exclure l'exigence de restriction. Les ZKP peuvent permettre aux électeurs de démontrer leur éligibilité pour voter, dans ce sens, empêchant l'exposition de leurs données personnelles sensibles. De même, les électeurs peuvent demander des preuves immuables pour la prise en compte de leur vote lors du décompte final des voix.
9. Sécurité des informations sensibles
Enfin et surtout, la preuve Zero-knowledge affine également la façon dont la technologie blockchain réorganise les transactions .
ZKP ajoute un niveau de sécurité haut de gamme à chaque bloc contenant des informations bancaires sensibles telles que les détails et l'historique de votre carte de crédit, de sorte que les banques n'ont besoin de manipuler que les blocs requis lorsqu'un utilisateur demande des informations. D'autres blocs restent intacts et donc protégés.
Par example
ZoKrates (une boîte à outils numérique) est utilisé par des développeurs qualifiés pour concevoir et vérifier les ZKP via Solidity, un langage de programmation orienté objet utilisé pour créer des contrats intelligents basés sur Ethereum.
Aztec cherche à apporter une preuve de connaissance Ethereum Zero au réseau Ethereum existant en développant une pile de contrats intelligents axés sur la confidentialité.
Voici donc quelques-uns des cas d'utilisation de la preuve de connaissance zéro dans les services de développement de la blockchain . Pour rendre votre marque présente sur le marché en créant l'un d'entre eux, engagez une société de développement d'applications blockchain .
Et au cas où vous seriez confus quant à sa mise en œuvre dans le monde réel, vérifiez les projets existants suivants fonctionnant avec la convergence de deux.
Exemples concrets de convergence de Zero Knowledge Proofs et Blockchain
1. ZCash
Zcash est une plate-forme de blockchain open source et sans autorisation qui offre la fonctionnalité permettant de maintenir les transactions "transparentes" et "protégées" selon les besoins.
Dans le premier cas, les transactions sont régies par un t-addr, tout comme les transactions bitcoin. Alors que dans ce dernier cas, une preuve à connaissance nulle appelée zk-SNARKs est utilisée et les transactions sont contrôlées par un z-addr.
Il s'agit du premier cas d'utilisation de crypto-monnaie et de l'application de ZKP dans le monde de la cryptographie. Il s'agit de la première crypto-monnaie sans preuve de connaissance à déployer la technologie.
2. ING
ING est une banque basée aux Pays-Bas qui a introduit sa propre blockchain sans connaissance. Cependant, ils ont modifié leur système à connaissance zéro pour en faire une preuve de gamme de connaissances à connaissance zéro afin de réduire le besoin de puissance de calcul.
De cette façon, ils ont préparé leur système de connaissance zéro pour augmenter l' impact de la blockchain dans la fintech .
3. ZCoin
La société utilise le protocole Zerocoin, qui est basé sur une preuve de connaissance zéro, pour renforcer la sécurité et l'anonymat dans le processus de transaction. Cependant, ce qui le distingue des autres projets travaillant sur ce concept, c'est qu'il offre également une évolutivité.
Bien que divers acteurs internationaux aient commencé à s'intéresser à la mise en œuvre du concept de preuve de connaissance zéro dans la blockchain, le rythme d'adoption est trop lent. Et la principale raison derrière est l'ensemble suivant de défis associés à l'ajout de ZKP dans l'environnement de la blockchain.
Défis auxquels vous pourriez être confronté lors de l'intégration de ZKP dans votre projet Blockchain
1. Absence de normes
Étant donné que la technologie blockchain elle-même en est à ses débuts, il n'existe pas de normes, de systèmes et de langages homogènes permettant aux développeurs d'applications et aux prospects commerciaux d'interagir avec le concept de ZKP et d'exploiter son potentiel de manière efficace.
2. Évolutivité
Un autre défi qui limite l'adoption de la preuve à connaissance nulle dans l'environnement de la blockchain est l'évolutivité, à condition que de tels algorithmes nécessitent une capacité de calcul élevée pour fonctionner à un niveau élevé.
Emballer
Maintenant que le concept de ZKP et sa portée dans le domaine Blockchain (ainsi que des exemples concrets) sont clairs pour vous, nous nous attendons à ce que vous investissiez dans l'application plus large du concept tout en entrant dans le monde décentralisé.
Mais, au cas où vous auriez encore des questions, contactez nos consultants Blockchain ou nos experts en services de développement d'applications blockchain aux États-Unis.