Et si la blockchain pouvait garder un secret ?

L'auteur invité M. Haysberg explique comment Midnight utilise des preuves à divulgation nulle de connaissance pour vérifier des transactions sans révéler de données privées.

By SongMarketCap

Midnight News - Et si la blockchain pouvait garder un secret ?

Imaginez que votre compte bancaire fonctionne ainsi : chaque paiement que vous avez jamais effectué, chaque salaire que vous avez reçu, chaque solde, visible pour toute personne disposant d'une connexion internet.

Votre voisin. Votre patron. Un inconnu qui veut vous cambrioler.

C'est ainsi que la plupart des blockchains fonctionnent aujourd'hui.

Le 4 novembre, @MidnightNtwrk a publié une courte phrase qui à mon avis résume la direction prise : vous n'avez plus à choisir entre public et privé. Il existe une troisième option.

Cet article explique cette option avec des mots simples. Si vous découvrez la crypto, vous comprendrez. Si vous construisez, chaque section comporte aussi une couche plus avancée pour vous.

Le problème : deux mauvais choix

Pendant des années, les blockchains vous donnaient deux options.

  • Chaînes publiques : tout le monde peut vérifier que tout est équitable. Excellent pour la confiance. Mais toute votre vie financière est exposée, pour toujours.

  • Systèmes privés : vos données sont cachées. Mais vous devez alors faire confiance à celui qui gère le système, et vous perdez l'ouverture qui faisait l'utilité de la blockchain au départ.

Choisissez l'ouverture ou choisissez la confidentialité. C'était le marché.

La troisième option

Midnight scinde le problème en deux.

Le réseau lui même reste public. Tout le monde peut le vérifier, et son jeton NIGHT reste public aussi. Vos données personnelles restent sur votre propre appareil. Elles ne sont jamais publiées sur la chaîne.

Au lieu de vos données, la chaîne reçoit une preuve : un petit bout de mathématiques qui dit "les règles ont été respectées" sans montrer ce qu'il y avait dedans.

L'application décide ce qui peut être révélé, et à qui. Une banque, un auditeur, un partenaire. Uniquement ce qui est nécessaire.

Une image simple pour l'illustrer : montrer à un videur que vous avez plus de 18 ans sans montrer votre nom, votre adresse, ni votre date de naissance exacte.

Pour les avancés : cette preuve est une preuve à divulgation nulle de connaissance. Le consensus et NIGHT vivent sur le registre public, tandis que l'état de l'application peut être scindé en parties publique et privée, et seules les preuves relatives à la partie privée touchent la chaîne.

Elegantna autorska kartica za Midnight News

Compact : le langage derrière

Pour créer des applications comme celle ci, les développeurs ont besoin d'un moyen de dire "cette partie est publique, cette partie est privée". Sur Midnight, cet outil est un langage de programmation appelé Compact. Je l'ai couvert en détail dans Private by Default Ep. 4.

Ce qui compte pour tout le monde :

  • Il ressemble beaucoup à TypeScript, l'un des langages les plus populaires au monde, donc les développeurs ne partent pas de zéro.

  • Vous n'avez pas besoin d'être cryptographe. Vous marquez ce qui est privé et ce qui est public, et les outils gèrent les calculs lourds.

  • Il est open source, donc tout le monde peut l'inspecter.

Pour les avancés : Compact est fortement et statiquement typé et borné, donc les contrats ne peuvent pas boucler indéfiniment. Les versions publiques sont sur github.com/midnightntwrk/compact.

Comment fonctionne une application Midnight : le restaurant

Chaque contrat Compact a trois parties. La façon la plus simple de les imaginer est un restaurant.

  • La vitrine du magasin (registre). Ce que tout le monde peut voir depuis la rue. Des informations publiques, stockées sur la chaîne.

  • La recette secrète (témoins). Verrouillée dans la cuisine. Informations privées qui restent sur votre appareil.

  • Les règles de la cuisine (circuits). Le processus qui transforme les ingrédients en un plat. Sur Midnight, ces règles deviennent des preuves, ainsi les clients peuvent avoir confiance que le plat a été correctement préparé sans jamais voir la recette.

Les développeurs de Midnight résument en une phrase : la logique est publique, les données sont privées, et le résultat peut être vérifié par n'importe qui.

Privé par défaut

Voici la partie que je préfère. Dans Compact, tout est privé sauf si vous en décidez autrement.

Si un développeur veut qu'une information devienne publique, il doit le dire volontairement. S'il oublie, le programme refuse de se compiler et indique l'endroit exact où les données fuiraient.

Pour les avancés : ceci est fait avec disclose(). Toute valeur issue d'un témoin ou d'un argument de circuit qui s'écoule vers l'état du registre public, une valeur de retour d'un circuit exporté, ou un autre contrat doit être enveloppée dans disclose(), sinon le compilateur la rejette. La documentation de Midnight appelle en plaisantant cela le Witness Protection Program.

La confidentialité est la ceinture de sécurité. Rendre public est un choix conscient.

Pourquoi la confidentialité est en fait de la sécurité

Le 5 novembre, Sebastien Guillemot (@SebastienGllmt), CTO de la Midnight Foundation, a publié un billet de blog avec une idée forte : sur une blockchain, la confidentialité n'est pas un luxe. C'est de la sécurité.

Réfléchissez à ce qu'une chaîne totalement publique offre à un criminel :

  • Une liste des portefeuilles les plus riches.

  • L'historique complet de toute personne qu'ils veulent cibler.

  • Des indices pour des messages d'hameçonnage qui paraissent réels parce qu'ils savent ce que vous avez fait.

Si personne ne peut voir votre solde, personne ne peut vous cibler pour cela.

Comment Midnight cache votre argent

Vous pourriez penser : il suffit de brouiller le solde et c'est fini. Pas tout à fait. Si vous brouillez le nombre 1000 de la même façon à chaque fois, un attaquant peut brouiller à l'avance des nombres courants et simplement faire une correspondance.

Midnight fait donc quelque chose de plus intelligent.

Votre argent est divisé en billets séparés, comme des billets dans un portefeuille, plutôt qu'un grand total unique. Chaque billet est scellé avec son montant, le type de jeton, la clé du propriétaire, et un immense secret aléatoire. Ce sceau est appelé un engagement de note.

Pour quiconque regarde, chaque sceau ressemble à du bruit aléatoire. Un billet qui vaut 1 jeton et un billet qui vaut 1 million se ressemblent.

Pour les avancés : l'engagement est un hachage sur la valeur, le type de jeton, la clé du propriétaire et un grand nonce aléatoire, ainsi la même valeur faciale produit de nombreux engagements uniques et les attaques par pré calcul échouent.

[NEWSBREAK]

Dépenser sans rien montrer

Si tout est caché, comment le réseau empêche t il quelqu'un de dépenser le même argent deux fois ? Deux outils :

  • Une preuve de propriété. Quand vous dépensez, vous prouvez que vous possédez un billet valide sans révéler lequel, combien il contient, ni qui vous êtes.

  • Un cachet à usage unique appelé un nullifier. Chaque billet en a un. Quand vous dépensez, le cachet est publié. Le réseau vérifie qu'il n'a jamais été utilisé auparavant, ainsi le même billet ne peut jamais être dépensé deux fois. Et personne ne peut relier le cachet au billet d'origine.

Imaginez un bracelet de festival qui est poinçonné à la porte. Le garde sait qu'il a été utilisé. Le garde ne sait pas qui vous êtes.

Clés de visualisation : utiles, mais à protéger

Midnight a aussi des clés de visualisation.

Une clé de visualisation vous laisse voir l'argent entrant. Elle ne montre pas ce que vous avez dépensé ni votre solde total. Elle ne peut pas déplacer vos fonds.

Traitez la tout de même comme un mot de passe et ne la partagez qu'avec des applications de confiance.

La version courte

  • Un réseau public que tout le monde peut vérifier.

  • Vos données restent avec vous.

  • La chaîne voit des sceaux, des preuves et des cachets, pas votre solde ni votre historique.

  • Les développeurs décident exactement où se situe la ligne entre public et privé, et les outils empêchent les fuites accidentelles.

Ni public. Ni privé. Une troisième option.

Auteur invité · M. Haysberg (Vision & Vibe, @visionandvibehq)

Écouter : Private by Default Ep. 4, à propos de Compact

Regarder sur YouTube