L'article de Vitalik Buterin intitulé " Having a safe CEX : proof of solvency and beyond " met en évidence les difficultés auxquelles sont confrontées les bourses centralisées pour vérifier les actifs des utilisateurs et garantir des réserves suffisantes pour honorer les dépôts des utilisateurs. Par conséquent, les bourses doivent pouvoir prouver qu'elles disposent de suffisamment d'actifs de réserve pour rembourser intégralement ces actifs à la demande des utilisateurs, c'est-à-dire qu'elles doivent démontrer que la valeur de leurs actifs de réserve est supérieure à la valeur des dépôts des utilisateurs. Cette preuve est connue sous le nom de preuve de réserves et est appelée preuve d'audit de 100% des réserves chez Gate.io.
La manière la plus simple de prouver les dépôts est de publier une liste de paires (nom d'utilisateur et solde). Chaque utilisateur peut vérifier si son solde est inclus dans la liste, et n'importe qui peut vérifier la liste complète pour s'assurer que tous les soldes ne sont pas négatifs et que la somme correspond au montant réclamé par l'échange. Toutefois, cela compromet la protection de la vie privée. Pour y remédier, une légère modification est apportée : publication d'une liste de paires (hash(nom d'utilisateur, sel), solde) et envoi privé à chaque utilisateur de sa valeur de sel. Mais même cela révèle des équilibres et des changements d'équilibre. Pour protéger la vie privée, une autre innovation est introduite : l'arbre de Merkle.
(Figure 1Source:https://vitalik.ca/general/2022/11/19/proof_of_solvency.html)
La technique de l'arbre de Merkle organise les données relatives au solde de l'utilisateur sous la forme d'un arbre de Merkle. Dans cette structure arborescente, chaque nœud est constitué d'une paire (balance, hachage). Les nœuds feuilles du bas représentent les soldes individuels des utilisateurs et le hachage salé de leurs noms d'utilisateur. Dans chaque nœud de niveau supérieur, le solde est la somme des deux soldes qui lui sont inférieurs et le hachage est le hachage des deux nœuds qui lui sont inférieurs. La preuve de la somme de Merkle, semblable à une preuve de Merkle, représente une "branche" de l'arbre composée de nœuds frères, de la feuille à la racine. La bourse fournit à chaque utilisateur la preuve de la somme de Merkle de son solde, ce qui lui permet de vérifier que son solde est correctement inclus dans le solde total de la bourse.
Cette conception améliore considérablement la protection de la vie privée par rapport à une liste entièrement publique. En outre, les fuites de confidentialité peuvent être encore réduites en mélangeant les "branches" chaque fois que la "racine" est publiée. Cependant, il reste encore quelques problèmes à résoudre. Par exemple, Charlie apprend que quelqu'un possède 164 ETH et que les soldes de deux utilisateurs s'élèvent à 70 ETH, entre autres informations (voir figure 1). Un attaquant qui contrôle plusieurs comptes peut toujours déduire des informations sensibles sur les utilisateurs de l'échange.
Bien que la preuve de réserves basée sur l'arbre de Merkle ait été efficace pour garantir la sécurité des actifs des utilisateurs, cette approche pose encore certains problèmes :
Les preuves de non-connaissance ont suscité une grande attention dans divers cas d'utilisation en raison de leur capacité à renforcer la sécurité, à protéger la vie privée des utilisateurs et à favoriser l'évolutivité dans les réseaux de la couche 2.
Les preuves à connaissance nulle permettent à une partie de prouver à une autre partie qu'une déclaration est vraie sans révéler d'informations supplémentaires. Ils contribuent à améliorer la confidentialité en réduisant la quantité d'informations partagées entre les participants et favorisent l'évolutivité en permettant de vérifier les preuves plus rapidement sans avoir à valider l'ensemble des données.
zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) est une technologie de preuve à zéro connaissance proposée dans un article commun par Nir Bitansky, Ran Canetti, Alessandro Chiesa, et Eran Tromer en 2012. zk-SNARK permet à une partie de prouver à une autre partie qu'elle connaît un secret sans révéler le secret lui-même, prouvant ainsi l'exactitude d'une expression logique sans exposer la moindre information. Dans les preuves traditionnelles à connaissance nulle, le prouveur doit interagir plusieurs fois avec le vérificateur pour générer la preuve. Cependant, dans zk-SNARK, une fois que les paramètres (en particulier les paramètres publics) et la preuve sont générés, le vérificateur peut vérifier l'exactitude de la preuve sans avoir besoin de multiples interactions avec le prouveur.
Imaginez, par exemple, que vous disposiez d'une carte au trésor qui mène à l'emplacement exact du trésor enterré. Vous voulez prouver à quelqu'un que vous connaissez l'emplacement du trésor sans révéler le contenu de la carte ou l'emplacement réel du trésor. En utilisant la technologie zk-SNARK, vous créez une pièce de puzzle de la carte au trésor. Vous sélectionnez une petite pièce du puzzle (une preuve) et la montrez à l'autre personne, ce qui suffit à la convaincre que vous savez comment le puzzle complet s'assemble, c'est-à-dire l'emplacement du trésor, sans avoir besoin de voir le puzzle dans son intégralité. Toutefois, pour ce faire, vous devez obtenir des marques spéciales auprès d'une imprimerie réputée afin d'authentifier vos pièces de puzzle.
La mise en œuvre de zk-SNARKs est basée sur la cryptographie à courbe elliptique et les mathématiques polynomiales. Cette technique utilise des mappings pour transformer les entrées en polynômes et utilise des concepts mathématiques tels que l'ordre des courbes elliptiques et le logarithme discret pour valider que les contraintes sur les polynômes sont satisfaites. Il exploite des algorithmes spéciaux pour la compression des données, permettant ainsi une exécution efficace des calculs mathématiques.
Par conséquent, l'utilisation de zk-SNARKs peut considérablement rationaliser et améliorer la confidentialité dans les protocoles de preuve de réserve. En incorporant tous les dépôts des utilisateurs dans un arbre de Merkle et en utilisant des zk-SNARK pour attester que tous les soldes sont non négatifs et s'additionnent pour atteindre une valeur déclarée, il est possible d'affirmer qu'une bourse a la capacité de couvrir entièrement ses engagements si les actifs divulgués publiquement sur la blockchain dépassent cette valeur.
L'intégration des zk-SNARK avec les arbres de Merkle facilite la vérification simultanée de l'intégrité et de la cohérence des données tout en préservant la confidentialité des transactions. Les prouveurs peuvent utiliser les zk-SNARK pour démontrer qu'ils possèdent une preuve de Merkle répondant à des conditions spécifiques sans révéler les détails de la preuve. Pour les bourses, cette approche est un moyen de prouver qu'elles disposent de fonds suffisants pour remplir toutes leurs obligations, tout en préservant la vie privée des utilisateurs.
En résumé, la technologie de preuve sans connaissance de Gate.io résout deux problèmes clés liés à la preuve des réserves :
Gate.io a mis à jour sa preuve de réserves en utilisant zk-SNARK, franchissant ainsi une étape importante en tant qu'échange leader dans la protection de la sécurité des actifs des utilisateurs. Grâce à cette mise à jour, les utilisateurs peuvent consulter les preuves de réserve en temps réel, et le premier lot d'actifs pris en charge couvrira les 100 premiers en termes de capitalisation boursière. En tant que leader du secteur, il a ouvert le code et continuera à stimuler le développement du secteur et à explorer un avenir crypté plus sûr et plus respectueux de la vie privée grâce à cette mise à jour à l'épreuve de toute connaissance.
Lectures complémentaires :
L'article de Vitalik Buterin intitulé " Having a safe CEX : proof of solvency and beyond " met en évidence les difficultés auxquelles sont confrontées les bourses centralisées pour vérifier les actifs des utilisateurs et garantir des réserves suffisantes pour honorer les dépôts des utilisateurs. Par conséquent, les bourses doivent pouvoir prouver qu'elles disposent de suffisamment d'actifs de réserve pour rembourser intégralement ces actifs à la demande des utilisateurs, c'est-à-dire qu'elles doivent démontrer que la valeur de leurs actifs de réserve est supérieure à la valeur des dépôts des utilisateurs. Cette preuve est connue sous le nom de preuve de réserves et est appelée preuve d'audit de 100% des réserves chez Gate.io.
La manière la plus simple de prouver les dépôts est de publier une liste de paires (nom d'utilisateur et solde). Chaque utilisateur peut vérifier si son solde est inclus dans la liste, et n'importe qui peut vérifier la liste complète pour s'assurer que tous les soldes ne sont pas négatifs et que la somme correspond au montant réclamé par l'échange. Toutefois, cela compromet la protection de la vie privée. Pour y remédier, une légère modification est apportée : publication d'une liste de paires (hash(nom d'utilisateur, sel), solde) et envoi privé à chaque utilisateur de sa valeur de sel. Mais même cela révèle des équilibres et des changements d'équilibre. Pour protéger la vie privée, une autre innovation est introduite : l'arbre de Merkle.
(Figure 1Source:https://vitalik.ca/general/2022/11/19/proof_of_solvency.html)
La technique de l'arbre de Merkle organise les données relatives au solde de l'utilisateur sous la forme d'un arbre de Merkle. Dans cette structure arborescente, chaque nœud est constitué d'une paire (balance, hachage). Les nœuds feuilles du bas représentent les soldes individuels des utilisateurs et le hachage salé de leurs noms d'utilisateur. Dans chaque nœud de niveau supérieur, le solde est la somme des deux soldes qui lui sont inférieurs et le hachage est le hachage des deux nœuds qui lui sont inférieurs. La preuve de la somme de Merkle, semblable à une preuve de Merkle, représente une "branche" de l'arbre composée de nœuds frères, de la feuille à la racine. La bourse fournit à chaque utilisateur la preuve de la somme de Merkle de son solde, ce qui lui permet de vérifier que son solde est correctement inclus dans le solde total de la bourse.
Cette conception améliore considérablement la protection de la vie privée par rapport à une liste entièrement publique. En outre, les fuites de confidentialité peuvent être encore réduites en mélangeant les "branches" chaque fois que la "racine" est publiée. Cependant, il reste encore quelques problèmes à résoudre. Par exemple, Charlie apprend que quelqu'un possède 164 ETH et que les soldes de deux utilisateurs s'élèvent à 70 ETH, entre autres informations (voir figure 1). Un attaquant qui contrôle plusieurs comptes peut toujours déduire des informations sensibles sur les utilisateurs de l'échange.
Bien que la preuve de réserves basée sur l'arbre de Merkle ait été efficace pour garantir la sécurité des actifs des utilisateurs, cette approche pose encore certains problèmes :
Les preuves de non-connaissance ont suscité une grande attention dans divers cas d'utilisation en raison de leur capacité à renforcer la sécurité, à protéger la vie privée des utilisateurs et à favoriser l'évolutivité dans les réseaux de la couche 2.
Les preuves à connaissance nulle permettent à une partie de prouver à une autre partie qu'une déclaration est vraie sans révéler d'informations supplémentaires. Ils contribuent à améliorer la confidentialité en réduisant la quantité d'informations partagées entre les participants et favorisent l'évolutivité en permettant de vérifier les preuves plus rapidement sans avoir à valider l'ensemble des données.
zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) est une technologie de preuve à zéro connaissance proposée dans un article commun par Nir Bitansky, Ran Canetti, Alessandro Chiesa, et Eran Tromer en 2012. zk-SNARK permet à une partie de prouver à une autre partie qu'elle connaît un secret sans révéler le secret lui-même, prouvant ainsi l'exactitude d'une expression logique sans exposer la moindre information. Dans les preuves traditionnelles à connaissance nulle, le prouveur doit interagir plusieurs fois avec le vérificateur pour générer la preuve. Cependant, dans zk-SNARK, une fois que les paramètres (en particulier les paramètres publics) et la preuve sont générés, le vérificateur peut vérifier l'exactitude de la preuve sans avoir besoin de multiples interactions avec le prouveur.
Imaginez, par exemple, que vous disposiez d'une carte au trésor qui mène à l'emplacement exact du trésor enterré. Vous voulez prouver à quelqu'un que vous connaissez l'emplacement du trésor sans révéler le contenu de la carte ou l'emplacement réel du trésor. En utilisant la technologie zk-SNARK, vous créez une pièce de puzzle de la carte au trésor. Vous sélectionnez une petite pièce du puzzle (une preuve) et la montrez à l'autre personne, ce qui suffit à la convaincre que vous savez comment le puzzle complet s'assemble, c'est-à-dire l'emplacement du trésor, sans avoir besoin de voir le puzzle dans son intégralité. Toutefois, pour ce faire, vous devez obtenir des marques spéciales auprès d'une imprimerie réputée afin d'authentifier vos pièces de puzzle.
La mise en œuvre de zk-SNARKs est basée sur la cryptographie à courbe elliptique et les mathématiques polynomiales. Cette technique utilise des mappings pour transformer les entrées en polynômes et utilise des concepts mathématiques tels que l'ordre des courbes elliptiques et le logarithme discret pour valider que les contraintes sur les polynômes sont satisfaites. Il exploite des algorithmes spéciaux pour la compression des données, permettant ainsi une exécution efficace des calculs mathématiques.
Par conséquent, l'utilisation de zk-SNARKs peut considérablement rationaliser et améliorer la confidentialité dans les protocoles de preuve de réserve. En incorporant tous les dépôts des utilisateurs dans un arbre de Merkle et en utilisant des zk-SNARK pour attester que tous les soldes sont non négatifs et s'additionnent pour atteindre une valeur déclarée, il est possible d'affirmer qu'une bourse a la capacité de couvrir entièrement ses engagements si les actifs divulgués publiquement sur la blockchain dépassent cette valeur.
L'intégration des zk-SNARK avec les arbres de Merkle facilite la vérification simultanée de l'intégrité et de la cohérence des données tout en préservant la confidentialité des transactions. Les prouveurs peuvent utiliser les zk-SNARK pour démontrer qu'ils possèdent une preuve de Merkle répondant à des conditions spécifiques sans révéler les détails de la preuve. Pour les bourses, cette approche est un moyen de prouver qu'elles disposent de fonds suffisants pour remplir toutes leurs obligations, tout en préservant la vie privée des utilisateurs.
En résumé, la technologie de preuve sans connaissance de Gate.io résout deux problèmes clés liés à la preuve des réserves :
Gate.io a mis à jour sa preuve de réserves en utilisant zk-SNARK, franchissant ainsi une étape importante en tant qu'échange leader dans la protection de la sécurité des actifs des utilisateurs. Grâce à cette mise à jour, les utilisateurs peuvent consulter les preuves de réserve en temps réel, et le premier lot d'actifs pris en charge couvrira les 100 premiers en termes de capitalisation boursière. En tant que leader du secteur, il a ouvert le code et continuera à stimuler le développement du secteur et à explorer un avenir crypté plus sûr et plus respectueux de la vie privée grâce à cette mise à jour à l'épreuve de toute connaissance.
Lectures complémentaires :