La confidentialité a toujours été considérée comme une fonctionnalité précieuse au sein de la communauté des cryptomonnaies. C’est le précurseur de la fongibilité, nécessaire pour une forme de monnaie largement utilisée. De même, la plupart des détenteurs de crypto-actifs ne souhaitent pas que leurs avoirs et l’historique de leurs transactions soient entièrement publics. Parmi les différentes techniques cryptographiques visant à assurer la confidentialité des blockchains, les preuves zk-SNARK et zk-STARK en sont deux exemples remarquables.
zk-SNARK signifie argument de connaissance succinct et non interactif sans connaissance, et zk-STARK représente un argument de connaissance succinct et transparent sans connaissance. Les preuves zk-SNARK sont utilisées par des projets de crypto-monnaie (tels que Zcash), sur des systèmes de paiement basés sur la blockchain et comme moyen d'authentifier en toute sécurité les clients auprès des serveurs. Mais alors que les zk-SNARK ont fait des progrès significatifs pour être bien établis et adoptés, les preuves zk-STARK sont désormais présentées comme la nouvelle version améliorée du protocole, corrigeant bon nombre des inconvénients précédents des zk-SNARK.
La parabole de la caverne d'Ali Baba
En 1990, un article intitulé « Comment expliquer les protocoles de connaissance zéro à vos enfants » a été publié par le cryptographe Jean-Jacques Quisquater (avec d'autres collaborateurs). L'article introduit le concept de preuves zk avec une parabole impliquant la grotte d'Ali Baba. Depuis sa création, la parabole a été adaptée à plusieurs reprises, et on en connaît désormais de multiples variantes. Pourtant, les informations sous-jacentes sont essentiellement les mêmes.
Imaginons une grotte en forme d’anneau avec une seule entrée et une porte magique qui sépare les deux chemins latéraux. Pour franchir la porte magique, il faut murmurer les bons mots secrets. Considérez donc qu'Alice (jaune) veut prouver à Bob (bleu) qu'elle connaît les mots secrets - tout en les gardant secrets. Pour ce faire, Bob accepte d'attendre dehors le temps qu'elle entre dans la grotte et marche jusqu'au bout d'un des deux chemins possibles. Dans cet exemple, elle décide de suivre le chemin 1.
Au bout d'un moment, Bob passe devant l'entrée et crie de quel côté il veut qu'Alice apparaisse (Chemin 2 dans ce cas).
Si Alice connaît vraiment le secret, elle apparaîtra de manière fiable à partir du chemin nommé par Bob.
L’ensemble du processus peut être répété plusieurs fois afin de confirmer qu’Alice ne choisit pas le bon chemin par hasard.
La parabole de la Caverne d'Ali Baba illustre le concept de preuves sans connaissance, qui font partie des protocoles zk-SNARK et zk-STARK. Les preuves ZK peuvent être utilisées pour prouver la possession de certaines connaissances sans révéler aucune information à leur sujet.
zk-SNARK
Zcash est l'un des premiers exemples de projets utilisant des zk-SNARK. Alors que d'autres projets de confidentialité comme Monero utilisent des signatures en anneau et d'autres techniques, zk-SNARK change fondamentalement la façon dont les données sont partagées. La confidentialité de Zcash découle du fait que les transactions sur le réseau peuvent rester cryptées tout en étant vérifiées comme valides à l'aide de preuves sans connaissance. Ainsi, ceux qui appliquent les règles de consensus n’ont pas besoin de connaître toutes les données sous-jacentes à chaque transaction. Il convient de mentionner que les fonctionnalités de confidentialité de Zcash ne sont pas actives par défaut mais sont plutôt facultatives et dépendent d'une configuration manuelle.
Les preuves sans connaissance permettent à un individu de prouver à un autre qu'une déclaration est vraie sans divulguer aucune information au-delà de la validité de la déclaration. Les parties impliquées sont communément appelées un prouveur et un vérificateur, et la déclaration qu'elles détiennent en secret est appelée un témoin. L'objectif principal de ces preuves est de révéler le moins de données possible entre les deux parties. En d’autres termes, on peut utiliser des preuves de connaissance nulle pour prouver qu’on possède certaines connaissances sans révéler aucune information sur la connaissance elle-même.
Dans l’acronyme SNARK, « succinct » signifie que ces preuves sont de plus petite taille et peuvent être rapidement vérifiées. « Non interactif » signifie qu'il y a peu ou pas d'interaction entre le prouveur et le vérificateur. Les anciennes versions des protocoles à connaissance nulle nécessitent généralement que le prouveur et le vérificateur communiquent dans les deux sens et sont donc considérées comme des preuves ZK « interactives ». Mais dans les constructions « non interactives », prouveurs et vérificateurs n’ont à échanger qu’une seule preuve.
Actuellement, les preuves zk-SNARK dépendent d'une configuration initiale de confiance entre un prouveur et un vérificateur, ce qui signifie qu'un ensemble de paramètres publics est requis pour construire des preuves sans connaissance et, donc, des transactions privées. Ces paramètres sont presque comme les règles du jeu ; ils sont codés dans le protocole et constituent l’un des facteurs nécessaires pour prouver la validité d’une transaction. Cependant, cela crée un problème potentiel de centralisation car les paramètres sont souvent formulés par un très petit groupe.
Bien qu’une configuration initiale fiable soit fondamentale pour les implémentations actuelles de zk-SNARK, les chercheurs s’efforcent de trouver d’autres alternatives afin de réduire le niveau de confiance requis dans le processus. La phase de configuration initiale est importante pour prévenir les dépenses contrefaites, car si quelqu'un avait accès au caractère aléatoire qui a généré les paramètres, il pourrait créer de fausses preuves qui semblaient valables au vérificateur. Dans Zcash, la phase de configuration initiale est connue sous le nom de cérémonie de génération de paramètres.
Passons à la partie « Arguments de connaissance » de l'acronyme. Les zk-SNARK sont considérés comme étant fiables sur le plan informatique, ce qui signifie qu'un prouveur malhonnête a très peu de chances de réussir à tromper le système sans avoir réellement les connaissances (ou le témoin) pour étayer sa déclaration. Cette propriété est connue sous le nom de solidité et suppose que le prouveur dispose d’une puissance de calcul limitée.
Théoriquement, un prouveur doté d'une puissance de calcul suffisante pourrait créer de fausses preuves, et c'est l'une des raisons pour lesquelles les ordinateurs quantiques sont considérés par beaucoup comme une menace pour les zk-SNARK (et les systèmes blockchain).
Les preuves sans connaissance sont rapidement vérifiables et nécessitent généralement beaucoup moins de données qu'une transaction Bitcoin standard. Cela ouvre la voie à l’utilisation de la technologie zk-SNARK à la fois comme solution de confidentialité et d’évolutivité.
zk-STARK
Les zk-STARK ont été créés par Eli-Ben Sasson, professeur à l'Institut de technologie Technion-Israël. En tant que version alternative des preuves zk-SNARK, les zk-STARK sont généralement considérées comme une variante plus efficace de la technologie - potentiellement plus rapide et moins chère, selon l'implémentation. Mais plus important encore, les zk-STARK ne nécessitent pas de configuration initiale fiable (d'où le « T » pour transparent).
Techniquement parlant, les zk-STARK ne nécessitent pas de configuration initiale fiable car ils s'appuient sur une cryptographie plus simple grâce à des fonctions de hachage résistantes aux collisions. Cette approche élimine également les hypothèses de la théorie des nombres des zk-SNARK qui sont coûteuses en calcul et théoriquement sujettes aux attaques des ordinateurs quantiques.
En d’autres termes, les preuves zk-STARK présentent une structure plus simple en termes d’hypothèses cryptographiques. Cependant, cette nouvelle technologie présente au moins un inconvénient majeur : la taille des preuves est plus grande que celle des zk-SNARK. Une telle différence dans la taille des données peut présenter des limites en fonction du contexte d’utilisation, mais c’est probablement quelque chose qui pourra être compris à mesure que la technologie sera testée et étudiée plus en détail.
Pensées finales
Il est clair que les zk-SNARK et les zk-STARK répondent aux préoccupations croissantes concernant la confidentialité. Dans le monde des cryptomonnaies, ces protocoles ont un grand potentiel et pourraient constituer une voie révolutionnaire vers une adoption généralisée.

