Comment zk-SNARK améliore les performances de Gate.io Preuve des réserves

AvancéOct 12, 2023
Gate.io, l'un des pionniers du secteur à introduire la preuve de réserves, adoptera la technologie zk-SNARK pour améliorer sa preuve de réserves, offrant aux utilisateurs une sécurité des actifs et une protection de la vie privée supérieures.
Comment zk-SNARK améliore les performances de Gate.io Preuve des réserves

Avec plus de 13 millions d'utilisateurs, Gate.io connaît parfaitement l'importance de la sécurité des fonds et a été le premier à prendre des mesures efficaces. Gate.io a été l'un des premiers échanges à mettre en œuvre la preuve de réserves (PoR), révélant sa PoR dès mai 2020. Ce n'est qu'après que FTX a détourné les actifs des utilisateurs en 2022, entraînant une crise de liquidité et la faillite qui s'en est suivie, que la preuve des réserves a été largement reconnue comme une solution pour garantir la sécurité des fonds des utilisateurs et renforcer la fiabilité de la plateforme.

Suite à l'incident FTX, Gate.io a rapidement publié sa deuxième preuve de réserves. Peu après sa sortie, le fondateur d'Ethereum, Vitalik Buterin, a publié un article intitulé "Having a safe CEX : proof of solvency and beyond", dans lequel il explique comment les bourses peuvent mieux démontrer leur solvabilité. L'article suggère l'intégration de technologies avancées telles que zk-SNARK en plus des preuves de réserves traditionnelles afin de garantir une preuve de réserve plus publique, plus transparente et plus authentique. Gate.io prévoit d'utiliser la nouvelle technologie mentionnée dans l'article pour améliorer sa preuve de réserves, offrant aux utilisateurs une meilleure confidentialité et une véritable sécurité des actifs.

Qu'est-ce que la preuve des réserves ?

La preuve des réserves (PoR) fait référence à l'examen des soldes détenus par les bourses de crypto-monnaies ou d'autres institutions financières, en vérifiant si le montant de l'actif enregistré par la société correspond aux actifs réels détenus. Si le montant des actifs dans les réserves dépasse le montant des actifs déposés par les utilisateurs, c'est-à-dire si le ratio de garantie est supérieur à 100 %, cela prouve que les fonds des utilisateurs sont garantis par des actifs réels sur une base de 1:1.

Avant l'émergence du PoR, il y avait également des propositions de transfert d'actifs et de preuve de passif pour démontrer que les échanges disposaient de fonds suffisants.

Transfert d'actifs - Démontrer que l'échange dispose d'actifs suffisants

En 2011, MtGox, qui était alors la plus grande bourse d'échange de bitcoins, a prouvé qu'elle détenait certains fonds en exécutant une transaction qui transférait 424 242 BTC vers une adresse déjà annoncée. Cette méthode ne pouvait que valider les actifs et ne pouvait pas prouver les passifs de l'échange.

Preuve de responsabilité

Le passif d'une bourse est constitué des actifs déposés par ses utilisateurs. La manière la plus simple de prouver les avoirs des utilisateurs est de publier une liste contenant les comptes et les soldes des utilisateurs. Chaque utilisateur peut accéder à cette liste et vérifier si le solde de son compte est correct. Toutefois, cette méthode présente des inconvénients évidents :

  1. Il n'y a aucune garantie que la liste fournie par la bourse soit authentique.

  2. Au cours de ce processus, les informations relatives au compte et au solde de l'utilisateur sont divulguées.

Cette méthode pourrait également utiliser une structure de données telle que Merkle pour minimiser l'exposition des informations de l'utilisateur, ce qui a conduit au concept actuel de PoR.

Comme illustré, un arbre de Merkle est une structure de données arborescente. Les données de la couche inférieure sont appelées "nœuds feuilles" et celles de la couche intermédiaire "nœuds intermédiaires". Deux nœuds feuilles peuvent subir un hachage (traitement de toute valeur d'entrée pour obtenir une valeur spécifique) afin de produire la valeur d'un nœud intermédiaire. Deux nœuds intermédiaires sont ensuite hachés pour obtenir une valeur de sortie unique pour le nœud de niveau suivant. Après des couches successives de traitement, le nœud racine (Root) de l'arbre de Merkle est finalement obtenu. Cette valeur est unique et tout changement dans un nœud feuille entraînera un changement dans le nœud racine.

Preuve de réserve dans les arbres de Merkle (Source : Vitalik)

Dans cette méthode, le total des actifs détenus par une bourse pour le compte de ses utilisateurs est déterminé en accumulant les valeurs couche par couche. Cependant, même après avoir inséré le compte d'utilisateur et les données de solde directement dans les nœuds feuilles, il subsiste un risque mineur de fuite d'informations. Si l'on prend l'exemple de l'illustration, l'utilisateur marqué en vert (Charlie) peut accéder à des informations partielles sur David, ainsi qu'aux soldes d'Alice et de Bob sur le côté gauche. Par conséquent, des améliorations techniques ont été apportées aux nœuds foliaires :

  1. Comme le montre l'illustration, l'identifiant du compte d'utilisateur est haché avec une valeur spécifique.

  2. Les soldes des utilisateurs sont dispersés. Par exemple, les 10ETH de Charlie pourraient être divisés en deux montants de 5ETH et placés dans deux nœuds feuilles différents.

  3. L'identifiant de l'utilisateur et le solde sont hachés séparément, puis les valeurs résultantes sont hachées une nouvelle fois. La preuve du fonds de réserve de Gate.io utilise cette méthode.

Malgré ces avancées au niveau du nœud feuille, un problème reste en suspens : les soldes négatifs. Dans la pratique, après avoir déposé des crypto-monnaies, les utilisateurs s'engagent dans des produits d'échange tels que les opérations à effet de levier et les contrats à durée indéterminée. En cas de perte, la perte maximale doit être de 100 % du capital, ce qui signifie que le solde du compte de l'utilisateur doit toujours être supérieur ou égal à zéro.

Généralement, les soldes négatifs sont initiés par des échanges malveillants. Par exemple, si une bourse détourne 500ETH, selon les calculs habituels, les actifs que la bourse détient réellement pourraient être inférieurs à la garantie requise, voire inférieurs à 100 %, ce qui révélerait le détournement. Cependant, la bourse peut créer un compte, comme celui nommé Henry avec un solde de -500ETH dans l'illustration donnée, pour rendre la valeur totale des actifs de l'arbre de Merkle égale ou inférieure aux actifs que la bourse détient après le détournement, créant ainsi l'illusion d'un taux de garantie supérieur à 100 %.

Impact des comptes à valeur négative sur l'illustration des arbres de Merkle (Source : Vitalik)

Pour résoudre ce problème, des bourses comme Gate.io ont commencé à utiliser la technologie de preuve à connaissance nulle zk-SNARK pour améliorer leurs preuves de réserve.

Que sont les preuves à zéro connaissance et les zk-SNARK ?

Une preuve à connaissance nulle est une technique par laquelle une partie peut prouver quelque chose à une autre partie sans révéler d'informations confidentielles. Illustrons ce concept par un exemple simple : Si l'utilisateur A connaît le numéro de téléphone de l'utilisateur B et que l'utilisateur C demande si l'utilisateur A le connaît, l'utilisateur A peut composer le numéro de B sur-le-champ pour vérifier qu'il l'a bien, sans divulguer le numéro réel à l'utilisateur C. Ce processus, qui préserve la vie privée de l'utilisateur tout en confirmant la connaissance, est un exemple de mécanisme de "preuve à connaissance nulle".

Dans le domaine des crypto-monnaies, les preuves à connaissance nulle permettent aux utilisateurs de démontrer qu'ils sont propriétaires d'une clé privée sans exposer la clé elle-même ou une signature électronique. Les plateformes d'échange de crypto-monnaies espèrent valider l'état de leurs fonds de réserve sans divulguer d'informations sensibles sur les utilisateurs, comme les soldes des comptes individuels.

zk-SNARK est une technique de preuve succincte et non interactive à zéro connaissance. Il subit une "configuration initiale de confiance" pour produire une chaîne de référence commune (CRS) à laquelle tous les prouveurs peuvent accéder directement. Ce système est analogue à un système de notation d'examen dans lequel zk-SNARK télécharge directement les bonnes réponses. Les candidats peuvent ensuite vérifier leurs réponses (en envoyant leur solution à une question à un système dorsal, qui fournit immédiatement le résultat correct ou incorrect), ce qui rend le processus très efficace.

Avec zk-SNARK, les utilisateurs peuvent attester qu'ils connaissent la valeur originale qui a été hachée sans révéler le contenu réel de cette valeur. Sans divulguer de montants, de valeurs ou d'adresses spécifiques, les utilisateurs peuvent également vérifier la validité d'une transaction. Il est couramment utilisé dans les transactions privées. Lors de la conception des preuves de réserve, zk-SNARK peut prédéfinir les contraintes, éliminer les comptes non nuls et garantir la confidentialité de l'utilisateur.

Comment Gate.io utilise zk-SNARKs pour améliorer les preuves de réserve

Gate.io intègre la technologie zk-SNARK aux arbres Merkle pour créer des preuves de réserve plus transparentes, plus respectueuses de la vie privée et plus infalsifiables.

Processus de mise en œuvre

  1. Autorisation des portefeuilles froids
    Tous les portefeuilles froids et chauds transfèrent un montant aléatoire spécifique à une adresse désignée par la société d'audit pour en vérifier la propriété. Le cabinet d'audit récapitule ensuite les soldes de ces adresses pour déterminer le montant total contrôlé par l'échange (y compris les fonds d'utilisateurs et les fonds propres).

  2. Instantané du solde de l'utilisateur
    À un moment précis, un instantané est pris des soldes des utilisateurs sur la plateforme. Les avoirs en compte réels sont calculés à partir de données telles que les ordres en cours, les montants empruntés, les intérêts dus et les profits/pertes non réalisés.

  3. Exportation des soldes
    L'UID crypté et le solde de chaque utilisateur sont fournis à la société d'audit afin de calculer l'ensemble des actifs de l'utilisateur et de publier un numéro Merkle.

  4. Traitement par lots des avoirs des utilisateurs
    L'actif net de la bourse est confirmé comme étant la somme des actifs nets de chaque utilisateur. Un arbre de Merkle est ensuite construit sur la base des actifs nets des utilisateurs.
    (La raison principale du traitement par lots est que Gate.io compte 13 millions d'utilisateurs. Le traitement simultané de toutes les données des utilisateurs imposerait des exigences extrêmes au matériel et aux logiciels. Le traitement par lots est plus rapide et plus économique sans compromettre la sécurité ou la confidentialité des données).

  5. Mise en œuvre des contraintes de circuit
    ① Avant que le patrimoine net d'un utilisateur ne soit inséré dans l'arbre de Merkle, le nœud correspondant à l'identifiant de cet utilisateur est vide.
    ② Sur la base de la liste des actifs de l'utilisateur et du prix de chaque actif, calculez le total des actifs/passifs de l'utilisateur. Le total des actifs doit toujours être supérieur au total des passifs.
    ③ Ajouter les actifs/passifs de l'utilisateur aux actifs/passifs de la bourse.
    ④ En utilisant l'identifiant de l'utilisateur, le total des actifs/passifs et la liste des actifs, calculez le hachage de l'état de l'utilisateur. Insérez le statut de l'utilisateur dans l'arbre de Merkle pour obtenir une nouvelle racine de Merkle.
    ⑤ Avant de créer une opération pour un utilisateur, la valeur de hachage de la racine de l'arbre doit correspondre à la valeur de hachage du nœud racine après la création d'une opération pour l'utilisateur suivant.
    (La contrainte ① empêche les données non véridiques sur les nœuds, ② empêche les comptes avec des valeurs négatives et ⑤ garantit que les données de l'utilisateur restent inchangées avant et après les opérations).

  6. Génération d'une preuve de réserve
    À l'aide du circuit zk-SNARK, déterminez le nombre de biens de l'utilisateur, puis émettez un rapport de preuve de réserve.

Pour une explication plus détaillée du processus de calcul des réserves et de la mise en œuvre du code, cliquez ici.

Performance

Sur une machine dotée de 32 cœurs et de 128 Go de mémoire vive, il faut 15 jours pour calculer les preuves d'actifs pour 10 millions d'utilisateurs. Les calculs de la preuve de réserve peuvent être parallélisés ; ainsi, avec 10 machines, cela ne prend que 1,5 jour.

Conclusion

L'introduction de zk-SNARKs est une mise à jour importante pour le système de gestion de Gate.io. les preuves de réserve et une étape essentielle dans la protection des biens des utilisateurs. Cette protection supérieure de la sécurité et de la confidentialité renforce la confiance des utilisateurs et établit une nouvelle norme pour le secteur des crypto-monnaies. En tant que leader du secteur, Gate.io a ouvert son code, dans l'espoir de promouvoir des développements plus transparents et plus sûrs dans le secteur. À l'avenir, Gate.io poursuivra son esprit d'innovation, en explorant et en ouvrant la voie à un avenir cryptographique plus sûr, plus complet et plus respectueux de la vie privée, aux côtés de ses utilisateurs.

Références

ผู้เขียน: Wayne
นักแปล: Piper
ผู้ตรวจทาน: Edward、KOWEI、Elisa、Ashley He、Joyce
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย
เริ่มตอนนี้
สมัครและรับรางวัล
$100
ลงทะเบียนทันที