En Janvier dernier, l’Electronic Coin Company présentait Halo un nouvel algorithme zk-SNARK. Halo permet de résoudre 2 problématiques majeures: le « Trusted Setup » et la scalabilité (augmentation du nombre de transactions par seconde). Plus récemment, ECC annonça Halo Arc, des évolutions intégrables dans la blockchain Zcash lors de la prochaine mise à jour, le 1er Octobre 2021. Nous vous proposons un petit tour d’horizon de ces évolutions.
Halo : confiance et scalabilité avant Halo Arc
Trusted Setup
Une des plus grandes critiques faite au Zcash est la nécessité d’un «Trusted Setup». Il s’agit d’une cérémonie de création de clés de chiffrements qui initialisent la pool contenant les Zcash dit «Shielded» (confidentiels).
Le premier Trusted Setup s’est déroulé à huis clos avec un nombre limité de participants. Celui-ci a permis la génération des paramètres pour la pool sécurisée «Sprout». Malgré la vigilance des participants, il fallait faire confiance pour qu’au moins l’un d’entre eux ai supprimé les clés privées ayant servi à l’initialisation. C’est la condition pour obtenir un pool réellement sécurisé.
Pour la deuxième cérémonie (Sapling), et afin de mieux mitiger le risque, Zcash augmenta sensiblement le nombre de participants. Ils s’élevaient cette fois-ci à 95 et Zcash FR en faisait partie. Comme nous savons que nous avons, nous-même, pris soin de supprimer l’ensemble des informations sensibles, nous garantissions le résultat final. En effet, tout comme le premier Trusted Setup, une seule personne de bonne foi assure la sécurité de l’initialisation. Ce protocole constituait une amélioration substantielle, mais nécessitait encore une fois la confiance d’un tiers.
C’est pourquoi Halo propose aujourd’hui un mécanisme de type zk-SNARK sans Trusted Setup. Ainsi, nul besoin de faire confiance pour profiter de la confidentialité des transactions proposées par Zcash. La blockchain Zcash sera par nature fiable et de confiance. Une évolution majeur pour une adoption de masse du Zcash.
Scalabilité
La seconde problématique pour Zcash (et pour un grande nombre de blockhains) concerne la capacité à monter en charge. Lors de l’ajout d’un noeud sur le réseau, la synchronisation de ce dernier avec la blockchain est long. Le délai augmente d’ailleurs proportionnellent avec la taille de la chaine. Halo apporte un système de preuve récursive qui permettra de valider l’ensemble de la blokchain en vérifiant uniquement son état final et non plus chaque transaction une à une. Un tel mécanisme permettra une scalabilité horizontale (augmentation du nombre de noeuds) facile et à grande échelle.
La suite du produit Halo Arc
Halo Arc complète Halo avec des évolutions techniques majeures qui offriront une meilleure évolution, ainsi qu’une adoption plus large du Zcash :
- Noeud Zcashd compatible avec la mise à jour 5 du réseau (NU5) : Zcashd est le nœud de consensus pour Zcash. Zcashd prendra en charge la prochaine mise à niveau du réseau. Celle-ci comprend le protocole Orchard Shielded basé sur Halo (ZIP 224), les identifiants de transaction non malléables (ZIP 244), un nouveau format de version de transaction (ZIP 225) et les adresses unifiées (ZIP 316).
- ECC porte-monnaie de référence : ECC Reference Wallet est une implémentation de référence Open Source d’un porte-monnaie Zcash pour Android et iOS.
- SDK des porte-monnaie compatible NU5 : ECC maintient des SDK de porte-monnaie pour Android et iOS. Ces SDK prendront en charge la prochaine mise à niveau du réseau, c’est à dire le nouveau format de transaction, la pool confidentielle Orchard et les adresses unifiées.
- Fonctionnalité d’auto-shielding : L’auto-shielding permet au porte-monnaie de déplacer automatiquement des fonds d’une adresse transparente vers la pool Zcash confidentielle. L’auto-shielding, ainsi que les adresses unifiées, permettront d’accroître la confidentialité des utilisateurs tout en améliorant leur expérience globale.
- Fonctionnalité d’auto-migration : Il s’agit d’un mécanisme permettant aux portefeuilles de transférer automatiquement les fonds vers la pool protégée la plus moderne prise en charge par ce dernier. Cette fonctionnalité facilitera également la dépréciation des anciennes pools.
- Gestion améliorées des notes : La gestion améliorée des notes réduit le temps d’attente lors de l’envoi des transactions. Cela signifie que les clients légers seront en mesure d’envoyer une succession de transactions immédiatement l’une après l’autre.
Des pools confidentiels, une adresse unique
Le NU5 apporte une fonctionnalité intéressante, la notion d’adresse unique. En effet, la blockchain Zcash se compose aujourd’hui d’adresses T (dites transparentes) et d’adresses Z (dites confidentielles). Les adresses Z appartiennent elles-mêmes à deux catégories: les adresses commençant par «Zc» (sprout) et celles débutant par «Zs» (sapling). Avec l’arrivé de la pool Orchard basée sur Halo, nous voilà maintenant avec des adresses de type «Zu» en plus.
Les adresses «Zu» ne seront pas des adresses dédiées comme ont pu l’être les précédentes adresses Z. Il s’agira d’adresses dites unifiées qui créées le lien entre la pool transparente et la pool confidentielle.
On génère les adresses unifiées à partir d’un ensemble d’adresses Zcash (par exemple: adresses transparentes, Sapling et Orchard). Pensez aux adresses unifiées comme à un adaptateur universel de voyage qui vous permet de vous brancher sur différentes prises. Par défaut, elles permettent aux portefeuilles de migrer facilement les fonds vers la dernière pool confidentielle tout en dépréciant progressivement les anciennes technologies.