Votre amorce de confidentialité Blockchain

Tout comme Zuck, nous pensons que la confidentialité est un élément crucial du bon fonctionnement de l’avenir d’Internet. C’est pourquoi ce mois-ci, nous allons nous attaquer aux pièces privées.

Crédit: AFP, sites Web Privacy Coin

La course à l'évolutivité

Il est bien connu sur le marché de la cryptographie que l’évolutivité reste un obstacle non résolu à l’adoption sur le marché de masse. Bitcoin et Ethereum, les deux plus importants cryptoassets par capitalisation boursière, atteignent environ 7 transactions par seconde (tps) et 15 tps, respectivement. Pour mettre cela en contexte, les utilisateurs citent souvent la capacité du réseau Visa à traiter plus de 24 000 tps comme une référence. CryptoKitties, une application décentralisée où vous pouvez collecter et échanger des chatons numériques, a presque écrasé Ethereum à la fin de 2017 en raison de la congestion dans les métiers de traitement. Sans évolutivité, les blockchains ne peuvent pas fonctionner.

Donc, qu'est-ce qui empêche les blockchains de devenir aussi évolutifs que le réseau de Visa? Leur nature décentralisée.

Bitcoin et Ethereum sont sans confiance, car des milliers de nœuds indépendants répartis dans le monde, gérés par des sociétés et des individus indépendants, assurent la sécurité du réseau. Plus il y a de nœuds, plus il est difficile pour un nœud / personne / pays / entreprise d'attaquer le réseau. Cependant, plus il y a de nœuds, plus les décisions des serveurs sont traitées, et donc plus il est long de se mettre d'accord sur une décision. Une démocratie directe est une bonne analogie ici: combien de temps faudrait-il pour adopter un projet de loi si chaque citoyen américain devait voter sur chaque projet de loi proposé en tant que nouvelle loi?

Vitalik Buterin, cofondateur d'Ethereum, a inventé ce problème majeur le «trilemme de l'évolutivité»: comment les chaînes de blocs peuvent-elles être évolutives, sécurisées ET décentralisées? ¹ La résolution de ce trilemme reste le principal objectif de l'industrie. Si nous ne pouvons pas trouver de solutions, l’adoption ne décollera jamais et les problèmes complexes que notre industrie doit relever, tels que l’argent non souverain, la possession de données individuelles ou la gestion bancaire des personnes non bancarisées, pourraient ne jamais être résolus.

Pour le moment, il existe quelques idées clés² pour résoudre le trilemme de l’évolutivité:

  1. Remplacer l'approche de «démocratie directe» utilisée par les blockchains pour la gouvernance par une démocratie représentative. Les nœuds indépendants du monde entier élisent un sous-ensemble de nœuds pour gérer le réseau. De cette façon, les décisions ne doivent passer que par les délégués et peuvent être prises beaucoup plus rapidement. Trois des plus grandes chaînes de blocs par capitalisation boursière, EOS (n ° 5), Tron (n ° 10) et Tezos (n ° 22) utilisent la gouvernance déléguée. Les détracteurs des chaînes de blocs déléguées affirment qu'avec moins de machines, le réseau sera moins sécurisé. De plus, ces «élections» sont sujettes à des manipulations, ce qui augmente le risque de corruption.
  2. Utilisez un plus petit nombre de nœuds de confiance gérés par des sociétés ayant une réputation en jeu
  3. Maintenir l'approche totalement décentralisée (démocratie directe); comptez plutôt sur des améliorations technologiques pour accroître l'efficacité de la communication entre les nœuds dans le temps et dans l'espace.
  4. Etant donné que toutes les transactions ne nécessitent pas un niveau de sécurité aussi élevé, nous pouvons déplacer / valider les transactions dont les exigences de sécurité sont moins strictes, hors chaîne ou de manière latérale.

Les deux dernières options sont complexes. Des dizaines d'entreprises tentent de résoudre ce problème au niveau du protocole en utilisant une technologie telle que le sharding ou le calcul complexe. Il existe de nombreuses autres solutions concernant l'évolutivité via des solutions hors chaîne et side-chain telles que les canaux de paiement (Lightning Network, Raiden) et d'autres canaux publics, le plasma. Aucun d'entre eux n'est encore opérationnel avec succès à l'échelle. Vous pouvez estampiller le secteur dans une «course à l'évolutivité».

Mais qu'est-ce que cela a à voir avec la vie privée?

Beaucoup de passionnés de cryptographie étaient à l’origine attirés par Bitcoin parce qu’ils croyaient que c’était anonyme. Ce n'est pas vrai; contrairement à la croyance populaire, Bitcoin est loin d'être anonyme. Bien que les identités du monde réel ne soient pas révélées, lorsque les utilisateurs s’engagent dans une transaction Bitcoin, leurs clés publiques (adresse publique) et les montants de transaction sont diffusés dans le grand livre. Quiconque a obtenu un enregistrement de la blockchain au fil du temps peut facilement consulter les adresses de portefeuille de ces utilisateurs pour voir combien de Bitcoin ils possèdent .³ ⁴ En outre, une fois que la transaction a eu lieu avec une contrepartie, elle apprend l'une des clés publiques de la contrepartie, puis peut tracer les avoirs liés à cette clé publique. En fait, les forces de l’ordre ont déjà utilisé la perception erronée de la transparence de Bitcoin par les utilisateurs finaux. Kathryn Haun, associée commanditaire chez Andreessen Horowitz, a déjà dirigé une conférence Ted expliquant comment le gouvernement américain avait utilisé des nœuds entiers sur Bitcoin pour retracer 13,4 M $ de Ross Ulbricht, le cerveau derrière le premier marché moderne du réseau noir, Silk Road.

Néanmoins, plusieurs blockchains ont été conçus pour être privés. Les principaux, basés sur leurs compétences techniques⁵ et la capitalisation boursière des crypto-monnaies associées, sont Monero (n ° 13) et Zcash (n ° 21). En outre, deux nouvelles pièces de confidentialité, Grin and Beam, ont été lancées en janvier 2019 et suscitent un engouement récent dans l'industrie. La recherche sur la confidentialité reste au premier plan de l’espace cryptographique, comme nous l’avons vu dans le dernier livre blanc sur Zether, publié à la fin du mois de février 2019, en collaboration avec les équipes de recherche de haut niveau en cryptographie appliquée de l’Université de Stanford et de Visa.

Le but de ces blockchains est explicite: vous pouvez acheter / vendre / échanger de la valeur et enregistrer la transaction sur la blockchain de manière anonyme. Beaucoup considèrent les pièces privées comme une technologie qui prend en charge le Web sombre; Cependant, la confidentialité est importante pour tous les utilisateurs si les paiements cryptés doivent devenir la norme. Voulez-vous que vos collègues sachent combien vous avez dépensé pour le cadeau d'anniversaire de votre petite amie? Ces blockchains travaillent sur des protocoles qui protègent fondamentalement les informations personnelles des personnes, mais peuvent également être audités / examinés par les forces de l’ordre si des activités néfastes sont suspectées.

Alors, qu'est-ce que la confidentialité a à voir avec la course à l'évolutivité? Pensez-y de cette façon: lorsque vous ne dites pas tout le monde, vous pouvez théoriquement gagner du temps et de l’espace. Capitalisant sur cet axiome intéressant, les développeurs de chaînes de blocs ont travaillé dur pour implémenter des preuves «sans connaissance», qui sont des protocoles au sein du code de la chaîne de blocs permettant aux nœuds indépendants de vérifier des transactions dans un bloc sans identifier les participants impliqués, ni les entrées et les sorties du système. transactions. Il existe différentes manières, en utilisant les mathématiques, de rendre cela possible, ce qui est un concept étonnant et potentiellement révolutionnaire. »Ainsi, les chaînes de chaînes de confidentialité et les progrès en matière d'évolutivité sont intimement liés.

Au cours des prochaines semaines, nous publierons des analyses sur les pièces à la pointe de la vie privée. Aujourd'hui, nous commençons avec deux des plus anciennes et des plus grandes pièces de confidentialité par capitalisation boursière - Monero et Zcash.

Avertissement: Ce sont des rapports détaillés qu'il faudra du temps pour lire, mais j'espère que vous en apprendrez beaucoup. Notre recommandation: choisissez un dimanche après-midi, bottez vos pieds et amusez-vous.

Monero

Monero est la plus ancienne pièce majeure de la vie privée. Il a été créé en 2014 par le biais d'un protocole du protocole Bytecoin. L'anonymisation est obligatoire pour Monero, de par la conception du protocole. Le protocole s'appuie sur trois méthodes pour y parvenir (et une quatrième est en cours):

1. Signatures de l'anneau

Les signatures en anneau protègent l'anonymat de l'expéditeur (de tout le monde à l'exception du destinataire). De manière générale, lorsqu'un expéditeur initie une transaction avec un destinataire dans un réseau blockchain, il signe numériquement, avec sa clé privée, la valeur qu'il envoie pour prouver au destinataire qu'il accepte la valeur qu'il transfère. C’est l’équivalent technique des signatures que nous fournissons aujourd'hui lorsque nous acceptons une transaction, c’est-à-dire que nous signons le chèque. Le destinataire utilise la clé publique de l'expéditeur pour décompresser la signature numérique de l'expéditeur et confirmer, en fonction de ce que dit la signature numérique décompressée, que l'expéditeur avait l'intention d'envoyer ce qui a été envoyé. De nos jours, la plupart des blockchains sont des protocoles à signatures multiples, ce qui signifie que plusieurs entités doivent signer la transaction au nom de l'expéditeur avant de la soumettre au destinataire. Le destinataire peut ensuite utiliser les clés publiques de toutes les entités qui ont signé la transaction pour déchiffrer la signature numérique et confirmer son exactitude.

Les signatures en anneau sont un type spécifique de signatures multiples où au moins six parties leurres, qui détiennent chacune la même quantité de transactions Monero dans leur portefeuille, sont sélectionnées au hasard pour signer une transaction en plus du véritable expéditeur. Vous pouvez vérifier la validité de la transaction en utilisant les clés publiques des parties, mais vous ne pouvez pas savoir quel membre a envoyé les fonds et quels sont les cosignataires leurres. Comme le dit le site Web parrainé par Monero: «Dans un« cercle »de signataires possibles, tous les membres du cercle sont égaux et valides. Il est impossible pour un observateur externe de déterminer lequel des signataires possibles appartenant à un groupe de signatures appartient à votre compte. »Cependant, Monero avait initialement des problèmes pour garantir l'anonymat avec des signatures en anneau car les observateurs, qui avaient accès aux clés publiques des comptes aléatoires choisis , pourrait explorer l’historique des transactions de chacune des clés publiques et éliminer les clés publiques inactives, ce qui signifie qu’elles n’avaient pas traité Monero depuis un moment. En fait, le compte avec le portefeuille le plus récent ou le plus actif était généralement l'expéditeur. [Vous pouvez en lire plus à ce sujet ici]. De plus, l'ajout d'au moins six signatures leurres à chaque transaction augmente considérablement la taille de la transaction et, finalement, la blockchain de Monero. Étant donné que les nœuds complets doivent analyser la chaîne de blocs complète pour valider les transactions, plus la taille de la chaîne est grande, plus la validation des transactions est longue et plus il sera coûteux pour les nœuds d'analyser la chaîne de blocs.

2. RingCT

RingCT, adopté par Monero en janvier 2017, anonymise le montant envoyé entre l'expéditeur et le destinataire. RingCT implémente l'algorithme de transactions confidentielles développé par Gregory Maxwell, un type de preuve «sans connaissance» qui permet de masquer complètement le montant transféré à toutes les personnes en dehors de l'expéditeur et du destinataire. La mise en œuvre de transactions confidentielles reflète les progrès réalisés par le secteur en ce qui concerne la mise en œuvre de preuves de non-connaissance au cours des deux dernières années.

Voici comment fonctionne l’algorithme: avant que la transaction ne soit soumise à la blockchain, l’émetteur et le destinataire choisissent chacun leur propre «facteur d’aveuglement». Un facteur aveuglant est une chaîne aléatoire de lettres et de chiffres multipliée par la valeur traitée pour empêcher le réseau de savoir quelle quantité est réellement transférée. En multipliant le facteur aveuglant par la valeur en cours de transfert, vous obtenez une nouvelle clé publique appelée «engagement de Pedersen». L’émetteur et le destinataire créent chacun leur propre engagement Pedersen et soustraient l’engagement du récepteur Pedersen de l’émetteur (sortie - entrée). Lorsque la transaction est publiée dans la blockchain, les nœuds de validation ne voient que l’engagement de Pedersen obtenu.

Comme les validateurs ne connaissent pas les facteurs d’aveuglement aléatoires de l’émetteur et du destinataire, ils n’ont aucun moyen de dénouer l’engagement de Pedersen résultant et de déterminer la valeur transférée. Mais les validateurs ne doivent rien dérouler pour approuver la transaction. C’est la preuve de la connaissance zéro: le seul élément qui diffère entre l’engagement de l’émetteur et celui du destinataire de Pedersen est la différence de valeur de leurs facteurs aveuglants. Ainsi, tant que l’engagement du destinataire Pedersen - l’engagement de Pedersen de l’émetteur est égal à la différence de facteurs aveuglants, les nœuds de validation peuvent approuver la transaction et l’envoyer au bloc suivant. "

Vous vous demandez peut-être: comment les validateurs peuvent-ils être certains que l’engagement de Pedersen qui en résulte est égal à la différence de leurs facteurs aveuglants? Pour tester cela, avant que les validateurs n'approuvent la transaction, ils pourraient demander aux parties impliquées de refaire leur transaction avec des facteurs aveuglants factices fournis par les validateurs et voir si l'engagement résultant de Pedersen correspond à ce que les validateurs anticipent. En fin de compte, le protocole peut tester la «solidité» d'une preuve à connaissance zéro sans rompre avec le principe de la connaissance à zéro. Celles-ci sont appelées épreuves de distance et constituent une série de preuves qui prouvent qu'un facteur aveuglant se situe dans un certain intervalle ou «intervalle» de nombres connus. Un test de portée courant consiste à prouver que la valeur de la transaction est non négative, car le transfert de valeurs négatives permettrait à l'expéditeur de créer de la valeur à partir de rien. Les transactions confidentielles exigent que chaque transaction contienne une ou des preuves de distance et que inclus dans le bloc avec les données de transaction. Pour ceux qui sont intéressés, vous pouvez en apprendre plus sur les résistances de distance de Monero ici.

En outre, en masquant les valeurs de transaction, l’adoption de RingCT a minimisé la vulnérabilité de détection de l’expéditeur véritable dans Ring Signatures, car elle supprime la nécessité pour chacun des leurres de posséder la valeur transférée, augmentant ainsi massivement le pool de leurres.

Bulletproofs

Bien que les preuves à zéro connaissance puissent constituer le cœur de la vérification sécurisée dans les systèmes décentralisés, les premières implémentations ont été à la fois gourmandes en ressources informatiques et coûteuses. Cela peut être attribué aux tests de portée, qui représentent la grande majorité des données des blocs qui les utilisent. Par conséquent, en octobre 2018, Monero a modifié son protocole et reconstruit les transactions confidentielles en un standard de preuve à l'épreuve des balles et beaucoup plus efficace. Selon le standard de preuve zéro à l'origine pour les transactions confidentielles, chaque taille de transaction dans un bloc était mise à l'échelle de manière linéaire (1 sortie = 7 Ko, 2 sorties = 13 Ko). Sous bulletproofs, les tailles de transaction sont plutôt logarithmiques (ex: 1 sortie = 2 Ko, 2 sorties = 2,5 Ko). Selon Monero, cela représente une réduction de 80% de la taille de la transaction. Par conséquent, l'intégration de normes à l'épreuve des balles dans des algorithmes à connaissance nulle pourrait potentiellement assurer la durabilité de la chaîne de blocs de Monero.

3. Adresses furtives

Les adresses furtives protègent l'anonymat du destinataire (de tout le monde à l'exception de l'expéditeur). Avant de terminer la transaction, l'expéditeur crée une nouvelle adresse publique unique pour le destinataire en multipliant son adresse privée par l'adresse publique du destinataire, créant ainsi une adresse furtive. Cette adresse furtive correspond à ce que le destinataire envoie au bloc lorsque la transaction est en attente.

Les adresses furtives protègent l'anonymat de l'expéditeur et du destinataire:

  • Dans la mesure où une adresse de sortie hachée ne révèle rien de ses entrées, le destinataire n’apprend pas la clé privée de l’expéditeur au cours de ce processus.
  • Etant donné qu'aucun des validateurs ne connaît la clé privée de l'expéditeur, ils ne peuvent pas établir de connexion entre la clé publique du destinataire et son adresse furtive.
  • Dans la mesure où une nouvelle adresse furtive est créée pour chaque transaction, cela limite la capacité de chaque expéditeur à suivre l'activité du destinataire jusqu'à sa transaction.

4. Kovri

Pour comprendre Kovri, il est important de savoir qu’il existe deux couches pour la confidentialité des chaînes de blocs. Le premier, que Ring Signatures, RingCT et Stealth Addresses tentent de protéger, est la confidentialité de la validation: le réseau peut vérifier la transaction sans exposer les détails personnels / privés des parties impliquées. La seconde est la confidentialité de la transmission.

Pour comprendre la confidentialité de la transmission, nous devons expliquer brièvement le fonctionnement de la transmission de données sur Internet. Le transfert de données sur Internet, que ce soit via une blockchain ou une autre, fonctionne fondamentalement de la même manière: les données sont créées et envoyées à partir d'un ordinateur, appelé nœud «client» .¹ Le nœud client est associé à une adresse publique. qui représente son emplacement sur Internet, appelé adresse IP. Que nous le sachions ou non, les données envoyées et reçues en ligne sont toujours déclenchées par une commande du poste client via un navigateur Internet, telle que "envoyez-moi à ESPN.com" ou "envoyez ce message à cette adresse e-mail. ”Ou“ envoyer 3 BTC à Alice ”. Basé sur TCP / IP, le protocole de communication pour Internet, la commande de l'expéditeur indique à son nœud client ce que le nœud de destination est censé être pour les données.¹¹ Presque toujours, sauf si le client et les nœuds de destination se trouvent sur le même réseau local, le nœud client ne connaît que le nom de domaine de la destination, tel que espn.com ou une adresse électronique. En d’autres termes, l’expéditeur ne connaît pas l’adresse IP du destinataire. En conséquence, les données transitent par le nœud client via Internet, via un chemin de nœuds, appelé nœuds «relais», à la recherche d'un serveur DNS contenant le nom de domaine dans sa base de données et l'adresse IP associée.

C’est un point essentiel à comprendre: les données elles-mêmes ne se déplacent pas à la recherche du bon serveur DNS. Si tel était le cas, les données transiteraient et seraient exposées à un ensemble de nœuds inutiles. Au lieu de cela, le chemin le plus court entre l’adresse de l’expéditeur et celui du destinataire inconnu est résolu, comme un puzzle, à l’aide de l’algorithme de Dijkstra¹¹. Une fois le chemin le plus court déterminé, les données transitent par les nœuds relais. Par conséquent, les nœuds inutiles ne touchent pas les données.

Voici d'autres conséquences de cette configuration:

  • Comme l’algorithme de Dijkstra détermine la voie de transmission avant le transfert des données, chaque nœud ne connaît que le nœud précédent et le nœud suivant dans la voie de transmission. L'expéditeur est le seul ordinateur à connaître l'adresse IP émettrice et l'ordinateur destinataire les adresses IP destinataires.
  • Le serveur DNS est interrogé sur l’adresse IP de l’ordinateur de destination, mais comme l’algorithme de Dijkstra est calculé avant le transfert des données, il n’apprend rien sur les informations / valeurs en cours de transfert.
  • Les données transférées ne contiennent aucune information sur l'expéditeur et le destinataire. Encore une fois, les nœuds de relais n'apprennent rien sur l'expéditeur et le destinataire.
  • Les protocoles Internet et TCP / IP utilisent des noms de domaine pour la navigation plutôt que des adresses IP car cela ajoute une couche d'obscurcissement critique.

Donc, en tenant compte de tout cela, où est la vulnérabilité? Notre description a peut-être fait paraître TCP / IP fortifié, mais il existe en réalité plusieurs moyens de «cyberattaquer» via Internet. Toute une industrie (Cybersecurity) se consacre à la lutte contre cette poursuite. De manière générale, le premier type d’attaque est constitué d’attaques destructives - nombre d’entre elles, telles que DDos, submergent et suppriment les fonctionnalités d’un client ciblé. La seconde est une attaque d'espionnage - par laquelle les attaquants peuvent accéder à l'expéditeur, au destinataire et aux données en cours de transfert¹¹.

Alors, comment les nœuds blockchain peuvent-ils éviter la gamme de cyberattaques possibles? Il est tout à fait possible d'éviter les contournements garantis, sauf si les nœuds restent hors ligne, car lorsque vous interagissez avec d'autres nœuds, vous assumez le risque que la contrepartie soit infectée par un virus qui, lors de son interaction, pourrait endommager votre ordinateur. Là encore, c’est simplement la façon dont Internet fonctionne, car c’est une relation empirique entre homologues / nœud à nœud. Toutefois, si l’attaque ne provient pas de votre contrepartie, mais plutôt d’un tiers, une solution est proposée pour éviter les attaques: obscurcissez votre emplacement ou votre voie de transmission.

La vie privée, la forme de cryptographie, frappe à nouveau. Les systèmes de communication P2P anonymes sont l’une des principales propositions en matière de sécurité de la transmission. Entendu parler de Tor? Tor, ou The Onion Router, est le premier système de communication P2P anonyme commercialisé, mis au point au milieu des années 90 par la marine américaine pour protéger les communications en ligne du renseignement américain¹¹. L'objectif de Tor est de permettre la transmission anonyme de données sur Internet. Les nœuds du réseau Tor ont essentiellement téléchargé le logiciel Tor qui leur permet de décrypter les transmissions de données cryptées. Le réseau Tor est composé de l'utilisateur / client, du nœud de relais interne et des nœuds de sortie, dernier nœud en transmission avant que les données ne sortent du réseau Tor et soient envoyées au récepteur, qui se trouve probablement en dehors de la bulle Tor. De plus, et aussi populaire, il y a Invisible Internet Project (I2P), qui renforce l'anonymat. I2P, initialement publié en 2003, est un Internet crypté au sein d’Internet; l'expéditeur et les destinataires font partie du réseau I2P et les données protégées ne quittent jamais la bulle. Pour cette raison, certains se réfèrent à I2P en tant que vrai darknet. I2P et Tor sont des logiciels gratuits et à code source ouvert. Vous pouvez en savoir plus sur le fonctionnement de Tor et I2P, leurs similitudes et leurs différences en tant que réseaux de cryptage P2P ici.

Une équipe de développement de Monero, dirigée par le développeur principal de Monero, «Anonimal», travaillait à l'intégration d'I2P pour Monero, Kovri. En termes simples, I2P est programmé en Java et Kovri a été proposé comme une implémentation améliorée en C ++. Kovri n'est actuellement pas en ligne et les mises à jour d'Anonimal sont rares. Le 25 décembre 2018, Anonimal a publié un livre blanc sur Sekreta, qui pourrait être une version mise à jour de Kovri et qui fait référence au protocole I2P de Kovri tout au long de son analyse. Dans l’ensemble, l’intention de Kovri / Sekreta est de coupler la confidentialité des transmissions avec la confidentialité des validations plus couramment adressée. Nous fournirons des mises à jour si des progrès sont annoncés sur la solution I2P de Monero.

En résumé, Monero a obligatoire l’anonymisation et utilise une combinaison d’algorithmes de connaissance zéro et de mélange de signatures basé sur la communauté pour préserver la confidentialité des utilisateurs. Les développeurs de Monero travaillent sur un projet parallèle intéressant pour sécuriser la confidentialité de la transmission, mais ce projet est toujours en développement.

Zcash

Zcash n’est pas la plus ancienne blockchain de la protection de la vie privée (elle a officiellement été lancée comme un fork de Bitcoin en octobre 2016), mais son équipe et sa technologie ont montré l’exemple. Conçu à l'origine par des cryptographes de grandes institutions universitaires (MIT, Technion, John Hopkins, Université de Tel Aviv et UC Berkeley), l'anonymisation de Zcash est entièrement basée sur zk-SNARKs (argument de connaissance non interactif succinct, Zero-Knowledge), ce qui permet à Zcash de cacher presque toutes les données des validateurs de son réseau (informations sur l'expéditeur, informations sur le destinataire et montants des transactions) à l'exception des horodatages et des frais de transaction. Beaucoup appellent l’algorithme zk-SNARK de Zcash «calcul mathématique», en raison de sa complexité incroyable. Zcash a deux caractéristiques principales qui le rendent remarquable:

  1. Sa technologie zk-SNARKs
  2. Son anonymisation est sélective

Zcash permet aux utilisateurs, expéditeurs et destinataires, de choisir s'ils souhaitent que leurs informations de transaction soient transparentes ou protégées. Une transaction totalement transparente, dans laquelle l'expéditeur et le destinataire choisissent de ne pas cacher leurs informations, est similaire à celle de Bitcoin et fonctionne de manière similaire. Toutefois, si une partie de la transaction est protégée, Zcash utilise son algorithme zk-SNARK pour vérifier la transaction. L'utilisation d'un algorithme de connaissance zéro plutôt que le mélange de signatures permet à Zcash de se conformer plus facilement aux lois, car les utilisateurs peuvent révéler à un tiers l'historique de leurs transactions pour une adresse protégée en fournissant leur «clé de vue» .¹ Zcash contient également un mémo. Champ pour les transactions protégées, que vous pouvez considérer comme la ligne de description d'un chèque que seul l'utilisateur, le destinataire, et le tiers à qui vous avez envoyé votre "clé de vue" peuvent voir.

Quelle est la différence entre le zk-SNARK de Zcash et le pare-balles RingCT de Monero? Ce sont différents algorithmes à connaissance nulle qui impliquent des compromis basés sur le temps, la taille et le coût. L'exploration des compromis peut devenir assez technique et sort du cadre de ce document. (Pour les ambitieux parmi vous, vous pouvez commencer ici). Néanmoins, il est important d'explorer un aspect de la comparaison: l'implémentation de zk-SNARK de Zcash a, comme le décrit son fondateur Zooko Wilcox, une «faille dans le calcul mathématique», nécessitant une configuration sécurisée, alors que les pare-balles de Monero ne .

La configuration de confiance de Zcash est similaire à la sélection par un émetteur et le destinataire d’un «facteur de dissimulation» ou d’une clé secrète dans Ringero de Monero. Cependant, Zcash a une clé secrète et elle a beaucoup plus d'importance. Étant donné que les zk-SNARK alimentent l’ensemble du protocole, Zcash utilise son facteur aveuglant pour générer la devise Zcash et lancer sa chaîne de blocs. D’une part, il est efficace que le facteur d’aveuglement ne soit choisi qu’une fois, et non par transaction comme Monero. D'autre part, la sécurité de l'ensemble du réseau repose sur ce facteur aveuglant. Si quelqu'un s'en empare, il peut fabriquer des jetons Zcash contrefaits. Et en raison des fonctions de confidentialité de Zcash, ces jetons contrefaits pourraient ne pas être détectés. Tu parles d'un cauchemar.

Alors, comment Zcash a-t-il généré ce facteur aveuglant afin que a) personne ne puisse le voler lors de sa création et b) il puisse prouver à tous les futurs utilisateurs potentiels de Zcash que personne ne savait, ne voyait, apprenait ou altiait ce nombre? Les membres fondateurs ont organisé une cérémonie juste avant le lancement de la blockchain du 22 au 23 octobre 2016, au cours de laquelle six équipes indépendantes réparties dans le monde entier ont généré et transmis un fragment ou une "partition" de la clé privée, à l'insu des autres. . La «Cérémonie de la germination» originale de Zcash était assez élaborée. Pour en connaître les détails, voici le récit divertissant et passionnant du journaliste de la caisse, Morgan Peck.

Malheureusement pour Zcash, leurs jours de cérémonie ne sont pas derrière eux. Chaque fois que Zcash veut imposer son protocole, il doit créer une nouvelle clé aveuglante et organiser une autre cérémonie. Le 13 avril 2018, Zcash a achevé sa deuxième «Cérémonie du pouvoir du tau», qui a été publique et qui a rassemblé des centaines de participants du monde entier ¹⁷ en préparation de leur fourchette dure Sapling.

L'un des problèmes majeurs des fonctionnalités de confidentialité optionnelles de Zcash est que, si la majorité du réseau choisit de ne pas utiliser la fonctionnalité de confidentialité, il devient plus facile pour les enquêteurs de suivre les utilisateurs privés. Il est donc dans l’intérêt de Zcash que davantage d’utilisateurs optent pour la confidentialité.

Le désintérêt initial des utilisateurs de Zcash pour la protection des transactions pourrait être attribué à son intensité / coût de calcul et à sa latence. À l’origine, le protocole Sprout de Zcash nécessitait plusieurs gigaoctets de mémoire et plus de 30 secondes pour créer une transaction protégée. Sous Sapling, une transaction blindée peut être créée en quelques secondes et utiliser seulement 40 mégaoctets de mémoire, ce qui permet aux utilisateurs d'effectuer des transactions régulières avec une adresse protégée. En fait, cette réduction significative des coûts et de la latence pousse Zcash à se rapprocher de sa capacité à effectuer des transferts protégés sur des smartphones / appareils mobiles. Cependant, le réseau Zcash n’a pas encore récolté les fruits de la main-d’œuvre des développeurs, 15% seulement de toutes les transactions sur la blockchain de Zcash au cours du mois écoulé ayant été partiellement ou totalement protégées.

Dans l’ensemble, la conception du protocole de Zcash est illustrée par un exemple technique. Cependant, leurs configurations sécurisées restent un casse-tête et la sécurité sous-jacente du réseau reste menacée si quelqu'un obtenait ce facteur aveuglant. Cela capture le compromis entre Zcash et Monero. L'un utilise un protocole sans confiance (zk-SNARK) reposant sur une configuration sécurisée. L'autre a des fonctionnalités sans confiance, mais ne l'est pas, mais repose sur des astuces d'obscurcissement dont le succès est en corrélation avec la taille de son réseau. Ni sont parfaits, ce qui explique pourquoi d'autres pièces de la vie privée (Grin et Beam) ont continué à lancer.

Tout le matériel présenté dans cet article représente l'analyse de recherche et les opinions de l'auteur. Rien dans cet article ne doit être interprété comme un conseil en investissement.

¹ Zooko Wilcox, fondateur de Zcash, référencé dans la section Zcash suivante, a inventé Zooko’s Triangle, un trilemme similaire autour de la création d’un système sécurisé, décentralisé et utilisant un schéma de dénomination réellement significatif / mémorable pour l’utilisateur final. Lire la suite ici.

² Il existe une approche supplémentaire, qui consiste à autoriser la blockchain. Les blockchains autorisés, également appelés blockchains du consortium, sont entièrement décentralisés, mais les nœuds doivent être invités à participer. Du point de vue de la gouvernance, il s’agit essentiellement de démocraties directes à sources fermées. De nombreuses entreprises explorent les chaînes de blocs de consortium comme alternative à leur infrastructure de base de données centralisée existante. Voir JPM Coin et Quorum comme exemple ici.

³ Par défaut, le portefeuille de Bitcoin est conçu de manière à ce que chaque fois que vous recevez un paiement, votre adresse publique soit mise à jour avec une nouvelle adresse unique afin d’éviter la traçabilité des observateurs. Toutefois, Ethereum ne le fait pas par défaut. Vous pouvez donc suivre l’activité d’un utilisateur en suivant sa clé publique sur la blockchain. Lisez plus sur ceci ici. Bitcoin a développé de nombreuses méthodes de confidentialité (mixage centralisé, Tumblebit, CoinJoining, Transactions confidentielles, adresses furtives, solutions hors chaîne telles que Lightning Network), mais elles ne font pas partie du protocole par défaut car elles impliquent des tiers pour travailler n'a pas encore été mis en œuvre. En savoir plus sur ce ici.

Il existe une demande pour les start-up de suivi de chaînes de blocs dont l'objectif est simplement de surveiller les portefeuilles et les transactions sur les chaînes de blocs afin de détecter les activités criminelles.

Cette déclaration est basée sur le fait que la majorité des principales publications de l'industrie des chaînes de blocs qui ont publié des primers sur les chaînes de confidentialité ont concentré leur analyse sur Monero et Zcash.

⁶ En fait, les preuves à zéro connaissance ont été inventées en 1985 par les chercheurs du MIT, Shafi Goldwasser et Silvio Micali, et le chercheur de l’Université de Toronto, Charles Rackoff. Voir le document original ici. Dans les systèmes de preuve entre un prouveur (expéditeur) et un vérificateur (destinataire), les recherches ont traditionnellement porté sur la protection du système contre les intentions malveillantes du prouveur. L'équipe s'est plutôt concentrée sur la protection du système contre les intentions malveillantes du vérificateur. Alors que nous essayons de rendre Internet plus sécurisé pour les utilisateurs, les preuves à zéro connaissance prennent de l'ampleur aujourd'hui. Lisez plus de Matthew Green, l'un des scientifiques fondateurs de Zcash, ici.

⁷ En outre, plus il sera coûteux pour les nœuds d'analyser la blockchain, plus les frais de mineur seront élevés. Les frais des mineurs ne sont pas au centre de ce rapport, mais vous en saurez plus ici.

Proof Cette preuve fonctionne en raison des propriétés homomorphes des Engagements de Pedersen.

Par exemple, si l'expéditeur a envoyé 2 Monero au destinataire et a conservé -1 Monero dans son portefeuille en guise de changement, l'expéditeur a essentiellement envoyé 1 Monero au destinataire qu'il ne possédait pas.

¹⁰ Le poste client peut être un ordinateur personnel, un smartphone, un serveur, etc., n’importe quel type d’ordinateur.

¹¹ Pour ceux qui s'intéressent à une illustration visuelle de l'évolution d'Internet, voir ici.

¹² Cela ressemble-t-il au fonctionnement du GPS? Vous ne conduisez pas sans but, et le chemin est prédéterminé? L'algorithme de Dijkstra et ses variantes sont également utilisés pour les systèmes GPS.

¹³ Pour plus d'informations sur les types de cyberattaques courants, lisez ce lien.

¹⁴ L’idée d’un système de communication anonyme a été proposée par le cryptographe David Chaum en 1981, qui est rapidement devenue par la suite eCash, un système électronique de paiement électronique P2P anonyme que beaucoup considèrent comme le précurseur original de Bitcoin. Lire la suite ici.

¹⁵ Monero offre également une fonctionnalité de touche d’affichage, mais elle ne permet qu'aux tiers de consulter les informations sur le destinataire (affiche l'adresse publique associée à l'adresse furtive), ce qui n'est pas très utile.

¹⁶ En fait, Zcash a annoncé en février 2019 qu'il avait découvert une vulnérabilité de contrefaçon dans le système 17 mois après son lancement, qui avait été corrigée par la mise à niveau Sapling d'octobre 2018.

¹⁷ En fait, l’ajout de centaines de participants a renforcé la sécurité de la cérémonie, puisqu’un attaquant aurait dû apprendre tous les centaines de fragments pour voler le facteur aveuglant, au lieu de six. De plus, plusieurs algorithmes de mélange ont été utilisés pour randomiser les fragments, contrairement à la première cérémonie qui n'en utilisait qu'un.