Qu’est-ce qu’Halo ?

Halo est une preuve de connaissance zéro récursive et sans confiance (ZKP) découverte par Sean Bowe chez Electric Coin Co. Elle élimine la configuration de confiance et permet une plus grande évolutivité de la blockchain Zcash. Halo a été le premier système de preuve sans connaissance à la fois efficace et récursif largement considéré comme une percée scientifique.

https://electriccoin.co/wp-content/uploads/2021/01/Halo-on-Z-1440x720.png

Composants

Schéma d’engagement polynomial succinct : permet à un committer de s’engager sur un polynôme avec une chaîne courte qui peut être utilisée par un vérificateur pour confirmer les évaluations revendiquées du polynôme engagé.

Polynomial Interactive Oracle Proof : le vérificateur demande au prouveur (algorithme) d’ouvrir tous les engagements à divers points de son choix à l’aide d’un schéma d’engagement polynomial et vérifie que l’identité est vraie entre eux.

Aucune configuration approuvée

Les zkSNARK s’appuient sur une chaîne de référence commune (CRS) en tant que paramètre public pour prouver et vérifier. Ce CRS doit être généré à l’avance par une partie de confiance. Jusqu’à récemment, des calculs multipartites sécurisés (MPC) élaborés comme ceux effectués par le réseau Aztec et Zcash étaient nécessaires pour atténuer le risque encouru lors de cette cérémonie de configuration de confiance.

Auparavant, les piscines blindées Sprout & Sapling de Zcash utilisaient les systèmes de vérification BCTV14 & Groth 16 zk. Bien que ceux-ci soient sécurisés, il y avait des limites. Ils n’étaient pas évolutifs car ils étaient liés à une seule application, les “déchets toxiques” (restes de matériel cryptographique générés lors de la cérémonie de genèse) pouvaient persister, et il y avait un élément de confiance (quoique infime) pour que les utilisateurs jugent la cérémonie acceptable .

En regroupant à plusieurs reprises plusieurs instances de problèmes difficiles ensemble sur des cycles de courbes elliptiques afin que les preuves informatiques puissent être utilisées pour raisonner sur elles-mêmes efficacement (amortissement imbriqué), le besoin d’une configuration de confiance est éliminé. Cela signifie également que la chaîne de référence structurée (sortie de la cérémonie) peut être mise à niveau pour permettre des applications telles que les contrats intelligents.

Halo fournit aux utilisateurs deux garanties importantes concernant la sécurité du système de preuve à grande échelle sans connaissance. Premièrement, il permet aux utilisateurs de prouver qu’aucune personne impliquée dans la cérémonie de genèse n’a créé de porte dérobée secrète pour exécuter des transactions frauduleuses. Deuxièmement, cela permet aux utilisateurs de démontrer que le système est resté sécurisé au fil du temps, même s’il a subi des mises à jour et des modifications.

Explication de Sean Bowes sur Dystopia Labs

Preuves récursives

La composition de preuves récursives permet à une seule preuve d’attester de l’exactitude d’autres preuves pratiquement illimitées, ce qui permet de compresser une grande quantité de calculs (et d’informations). Il s’agit d’un composant essentiel pour l’évolutivité, notamment parce qu’il nous permet de faire évoluer horizontalement le réseau tout en permettant à des poches de participants de faire confiance à l’intégrité du reste du réseau.

Avant Halo, la réalisation d’une composition de preuve récursive nécessitait d’importantes dépenses de calcul et une configuration fiable. L’une des principales découvertes a été une technique appelée “amortissement imbriqué”. Cette technique permet une composition récursive utilisant le schéma d’engagement polynomial basé sur l’argument du produit interne, améliorant considérablement les performances et évitant la configuration de confiance.

Dans l’article Halo, nous avons entièrement décrit ce schéma d’engagement polynomial et découvert qu’il existait une nouvelle technique d’agrégation. La technique permet à un grand nombre de preuves créées indépendamment d’être vérifiées presque aussi rapidement que la vérification d’une seule preuve. Cela seul offrirait une meilleure alternative aux anciens zk-SNARK utilisés dans Zcash.

###Halo 2

Halo 2 est une implémentation zk-SNARK hautes performances écrite en Rust qui élimine le besoin d’une configuration de confiance tout en préparant le terrain pour l’évolutivité dans Zcash.

https://electriccoin.co/wp-content/uploads/2020/09/Halo-puzzle-03-1024x517.jpg

Il comprend une généralisation de notre approche appelée « schéma d’accumulation ». Cette nouvelle formalisation expose le fonctionnement réel de notre technique d’amortissement imbriqué ; en ajoutant des preuves à un objet appelé “accumulateur”, où les preuves raisonnent sur l’état précédent de l’accumulateur, nous pouvons vérifier que toutes les preuves précédentes étaient correctes (par induction) simplement en vérifiant l’état actuel de l’accumulateur.