Le projet Mina protocol est un des deux projets développés par l’équipe 0(1) Labs basée en Californie. À l’heure actuelle, c’est la blockchain la plus légère du monde : seulement 22 kB, soit l’équivalent de 2 tweets. En comparaison, les blockchains Bitcoin et Ethereum se situent plutôt aux alentours des 300 GB, et leurs tailles augmentent au fur et à mesure du temps. Comment est-ce possible de garder en mémoire toutes les transactions avec une si petite taille, et pourquoi cette technologie est-elle utile ?
Tout le contenu Coin Academy pour Mina protocol (MINA)
Mina protocol : la décentralisation comme point d’honneur
Dans le cas des blockchains Bitcoin et Ethereum, pour opérer un nœud, il faut une capacité de stockage non négligeable pour étudier chaque transaction qu’il y a eu sur le réseau. Ce qui fait que la décentralisation voulue à l’origine par Satoshi et par la plupart des amoureux de cette technologie est mise à mal. Seuls les plus riches peuvent se permettre d’avoir le matériel nécessaire, et le reste du monde doit croire ces intermédiaires sans pouvoir vérifier les informations. Et plus le réseau est utilisé, plus il y a d’informations, donc le nombre de validateurs est amené à diminuer avec le temps.
Pour devenir un nœud actif sur le protocol Mina, c’est infiniment plus simple que sur Bitcoin : les prérequis sont seulement d’avoir un processeur 8 cœurs et au minimum 16gb de RAM. Il suffit ensuite de suivre la procédure indiquée sur le site officiel et de configurer son nœud avec quelques lignes de codes simples sur une machine virtuelle Docker. Il y a aussi la possibilité de passer par le Cloud en lançant son nœud grâce aux services de Google (Google Cloud Platform), Amazon (Amazon Web Service), Microsoft (Azure) ou Digital Ocean. Plus besoin de déléguer sa confiance à une personne tierce, avoir son propre nœud n’a jamais été aussi simple.
Si cette blockchain miniature est aussi efficace, c’est grâce aux preuves à divulgations nulles de connaissance, et dans le cas de Mina, aux Zk-SNARKs. Cette technologie permet aussi au protocole d’affirmer que la taille de la blockchain de 22 kB est fixe et n’augmentera pas.
Zk-SNARKs : La technologie cryptographique qui permet la légèreté et la confidentialité de Mina protocol
Comprendre les preuves à divulgations nulles de connaissance
La preuve à divulgation nulle de connaissance est le fait de démontrer à quelqu’un qu’on connait une information sans lui montrer directement et explicitement cette information. Dans le cas de la blockchain et des cryptos, les preuves que l’on cherche à obtenir sont l’authenticité, l’intégrité et la véracité des transactions.
Sur les blockchains classiques, on vérifie à chaque nouvelle étape toutes les anciennes transactions depuis la création du jeton. Ce qui fait que s’il y a eu 150 transactions, on vérifiera ces 150 transactions pour confirmer la 151ème. Pour éviter cela, on peut générer une preuve qui circule à chaque étape pour que la 151ème personne ait juste à lire cette preuve sans consulter le registre de toutes les transactions précédentes. Mais comment faire pour générer une telle preuve sans divulguer d’informations en tout premier lieu ?
Prenons un exemple concret pour mieux comprendre. Imaginez que vous avez une BD “Où est Charlie”. Si vous ne connaissez pas ce célèbre jeu, le principe est simple: il s’agit de trouver, sur une double page noire de monde, le personnage à lunettes portant un jean bleu, un pull rayé rouge et blanc et un bonnet de la même couleur que le pull.
Si vous voulez montrer à un ami que vous avez trouvé Charlie, vous allez simplement le pointer du doigt, prouvant alors que vous savez où il est sur l’illustration. Mais si vous voulez montrer à cet ami que vous connaissez la position exacte de Charlie sans lui divulguer aucune information pour qu’il puisse jouer ensuite à son tour, il va falloir utiliser une technique un peu plus subtile.
Dans un premier temps, il faudra prendre un support bien plus grand que la BD (un drap, une grande feuille de papier ou un carton par exemple) et recouvrir le livre. Il faudra ensuite positionner la BD au hasard sous ce support et garder en mémoire où elle se situe. Ensuite, vous pourrez faire venir votre ami et découper une toute petite partie du support qui montrera seulement Charlie sans aucun contexte autour. Votre ami sera convaincu que vous connaissez la position du personnage, mais n’aura aucune autre information grâce au support qui recouvre le livre : c’est ce qu’on appelle les preuves à divulgation nulles de connaissance.
Les Zk-SNARKs
Zk-SNARKs signifie “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”, en français, “Argument de connaissance succinct non-interactif à divulgation nulle de connaissance”. Les Zk-SNARKs sont donc des preuves à divulgations nulles de connaissances avec certaines propriétés. Les preuves sont faciles à vérifier et le fournisseur de preuve et le vérificateur n’ont besoin d’échanger qu’une seule fois.
En dehors de la facilité et de la rapidité à vérifier les transactions ou les informations, cela permet aussi d’assurer la confidentialité des données. Les mathématiques concernant ces preuves sont récentes et complexes et ne seront donc pas détaillées dans cet article. Mais si le concept vous intéresse, Vitalik Buterin, le créateur d’Ethereum, est un fan de la technologie et a écrit un article très complet dessus.
Les Zk-SNARKs ont été utilisées pour la première fois par la cryptomonnaie Zcash. C’est maintenant Mina protocol, avec des Zk-SNARKs très légères et un peu différentes dans le fonctionnement par rapport à celles de Zcash, qui semble s’imposer dans ce domaine.
Mina protocol : fonctionnalité et utilité
Avec les zk-SNARKs, les applications basées sur le protocole Mina (appelées SNAPPs, snark-powered decentralized apps) peuvent interagir avec Internet sans avoir les permissions des sites webs. En effet, ces applications ne récupèrent pas directement les données, mais seulement des preuves de celles-ci. Ces applications sont donc des concurrents très sérieux des oracles. Pour rappel, les oracles (comme Chainlink ou Band protocol) apportent des informations du monde extérieur dans la blockchain. Avec Mina, les applications apportent la preuve de cette information sans l’exposer sur la blockchain publiquement.
Mina se démarque par la confidentialité des données. Elle permet aux utilisateurs d’utiliser la blockchain tout en gardant le contrôle de leurs informations privées. Le protocole a aussi pour but de devenir un référent dans la gestion de ses identifiants web. L’objectif est de pouvoir se connecter à n’importe quel site sur internet de façon sécurisée et sans révéler ses données personnelles. L’application Snapp dédiée fournira au site internet l’e-mail de l’utilisateur en garantissant que c’est la bonne personne derrière cet e-mail sans révéler d’informations supplémentaires.
Le jeton Mina est inflationniste et fonctionne sur un système de proof of stake. Au moment de la rédaction de cet article, la capitalisation de Mina est d’environ 1,3 milliard de dollars, elle se classe 94ème au rang CoinMarketCap, et le prix du jeton est de 4,4 dollars. Mina s’achète sur toutes les plateformes habituelles de trading crypto.
Conclusion
Les possibilités d’applications sont infinies et nous sommes à peine au balbutiement de la technologie zk-Snark. Les zk-Snarks n’auront aucune difficulté à fonctionner conjointement avec Ethereum, voir d’autres blockchains, et pourquoi pas sur Bitcoin un jour. Mina semble s’imposer de plus en plus comme le protocole référent utilisant cette technologie, et sera à surveiller de très prêt dans les prochaines années.
Sources
- https://minaprotocol.com/wp-content/uploads/economicsWhitepaper-2.pdf
- https://medium.com/minaprotocol/answering-community-questions-and-whats-ahead-for-mina-d771fa94489b
- https://medium.com/coinmonks/why-zk-snark-is-the-future-of-blockchain-d84f605f0566
- https://academy.binance.com/fr/articles/zk-snarks-and-zk-starks-explained
- https://docs.minaprotocol.com/en