
La Fondation Zcash a publié Zebra 4.5.3 et Zebra 5.0.0 après que les ingénieurs ont découvert et corrigé une faille de cohérence critique dans le circuit d'action Orchard.
La fondation a déclaré que Zebra 4.5.3 a activé un soft fork d'urgence à la hauteur de bloc 3 363 426 sur le réseau principal. La publication a temporairement rejeté les transactions et les blocs contenant des actions Orchard pendant que les ingénieurs préparaient un circuit corrigé.
Le soft fork est entré en vigueur vers 02:00 UTC le 2 juin après qu'une tentative de coordination antérieure a rencontré des problèmes de déploiement de correctifs. La fondation a indiqué qu'une coordination privée avec les mineurs et les exchanges avait débuté le 31 mai afin de réduire les risques d'exploitation avant la divulgation publique.
Zebra 5.0.0 a activé le hard fork NU6.2 à la hauteur de bloc 3 364 600 sur le réseau principal. La mise à niveau a réactivé les actions Orchard avec un circuit corrigé et a acheminé les preuves Orchard vers une nouvelle clé de vérification par circuit. Cette publication a également marqué la deuxième mise à niveau de protocole axée sur la sécurité dans l'histoire de Zcash depuis 2016.
Un hard fork était nécessaire car la correction d'un circuit de preuve à divulgation nulle de connaissance nécessite une nouvelle clé de vérification épinglée.
« Nous exhortons fortement tous les opérateurs de nœuds à mettre à niveau vers Zebra 5.0.0 dès que possible », a déclaré la Fondation Zcash.
Le bug a été découvert le 29 mai par le chercheur en sécurité indépendant Taylor Hornby lors d'un audit de protocole pour Shielded Labs. Les ingénieurs de ZODL Daira-Emma Hopwood, Kris Nuttycombe et Jack Grigg ont confirmé le problème en quelques heures et ont commencé à travailler sur une solution.
La fondation a déclaré que la faille aurait pu permettre des modifications d'état invalides à l'intérieur d'Orchard et un double-spending potentiel au sein de ce pool. Elle a également indiqué que le mécanisme de tourniquet de Zcash a protégé l'approvisionnement total en ZEC, et qu'« Il n'y a aucune preuve de création de valeur non autorisée. » Le code affecté comprenait des versions antérieures de halo2_gadgets, orchard et zcash_primitives, ainsi que les versions 5.0.0 à 6.12.3 de zcashd.
Orchard est le plus récent pool protégé de Zcash et un élément central de son système de confidentialité. Il a été lancé avec NU5 en 2022 et utilise Halo 2, ce qui a éliminé la nécessité d'une configuration de confiance (trusted setup). Cette conception a fait d'Orchard une partie clé de la feuille de route actuelle de Zcash en matière de confidentialité.
La couverture médiatique liée au marché s'est récemment concentrée sur l'augmentation de l'utilisation des transactions Zcash protégées. Un rapport récent a indiqué qu'environ 30% de l'approvisionnement en ZEC était passé dans des pools protégés, Orchard détenant 4,2 millions de ZEC et représentant la majeure partie de la croissance récente.
La fondation a déclaré que la confidentialité des utilisateurs n'a pas été compromise pendant l'incident. Les transactions Sapling et transparentes ont également continué à fonctionner normalement pendant que les actions Orchard restaient suspendues.
Les opérateurs de nœuds sont désormais confrontés à la tâche principale de la mise à niveau vers Zebra 5.0.0, plutôt que de s'appuyer sur des versions antérieures. Les opérateurs qui sont restés sur une fourche incorrecte après NU6.2 pourront avoir besoin de se resynchroniser à partir de zéro ou de restaurer une sauvegarde effectuée avant l'activation.