Trois questions qu'une revue extérieure a posées, et la position prise sur chacune.
Une revue de conception extérieure a relevé trois choses qu'une monnaie doit traiter et que nos documents n'avaient jamais traitées. Rien ne casse, rien ne fuit : ce sont des silences. Après vérification contre le code, la revue a raison sur les trois.
Les trois : ce que la chaîne montre de ses utilisateurs ; ce qu'un ordinateur quantique pourrait un jour lui prendre ; et de qui dépend l'épargnant qui revient après des années d'absence. La revue place les deux premières au premier ordre, et juge la troisième plus grave que nos papiers ne le disent.
La règle de ce document est celle de tous les autres : ce qui suit est établi depuis le code, pas depuis nos propres papiers, chaque chiffre est mesuré ou compté, et ce qui n'est pas su est écrit comme tel. Un lecteur doit apprendre une faiblesse de nous, pas contre nous.
Pour chaque question : ce qui est vrai aujourd'hui, ce que le terrain a déjà essayé et à quel prix, ce que cela coûterait ici, la position prise, et ce qu'elle change au format du billet. Ce dernier point n'est pas un détail. Une règle peut changer à une hauteur annoncée, mais un billet déjà créé garde pour toujours la forme qu'il avait en naissant : ce qui se décide du format aujourd'hui vaut pour toute la valeur qui se posera dessus.
Aujourd'hui, Cairn protège moins bien la vie privée que Bitcoin. Non par un choix assumé : par silence. C'est la phrase que nos documents devaient contenir et ne contenaient pas.
L'adresse est la clé publique elle-même. Elle est écrite sur la chaîne à la création du billet, en clair, à côté du montant. Un paiement ordinaire pèse 191 octets et chacun d'eux se lit : quels billets meurent, quels billets naissent, pour qui, pour combien, et la différence entre les deux, qui est le frais. Rien n'est chiffré nulle part.
Le portefeuille aggrave ce que le protocole expose. Il tient une clé par fichier, donc une adresse par personne, réutilisée à chaque paiement : le salaire, le loyer et les dons arrivent au même endroit, et quiconque connaît l'adresse lit le solde et toute l'histoire. Le papier d'origine de Bitcoin recommandait déjà une clé neuve par transaction, et les portefeuilles de ce réseau le font par défaut depuis des années. Le nôtre ne le fait pas.
L'explorateur, enfin, industrialise la lecture. Il tient pour chaque propriétaire tout ce qu'il a reçu et dépensé, à quelle hauteur, le solde qui en découle, et il publie les cinquante détenteurs les plus riches. C'est un programme séparé que personne n'est obligé de faire tourner, et cette séparation est réelle du côté du coût des nœuds ; du côté de la vie privée elle ne protège de rien, car n'importe qui peut construire le même index depuis ce que le réseau diffuse de toute façon. Un nœud oublie ; le monde, non. Ce qui a été diffusé une fois est public pour toujours.
| Réseau | Ce qui est caché | Le prix payé |
|---|---|---|
| Bitcoin | Rien, mais l'adresse est l'empreinte de la clé et une clé neuve par paiement est la norme | L'analyse du graphe reste efficace ; des sociétés entières en vivent |
| Monero | L'expéditeur, le destinataire, le montant | Environ 2 ko par transaction, dix fois le nôtre ; chaque sortie jamais créée et un reçu par dépense gardés pour toujours, donc un état qui grandit sans borne |
| Zcash | Tout, dans la partie protégée | Des transactions de plusieurs kilooctets ; un reçu par dépense gardé pour toujours ; retrouver son propre argent oblige à essayer de déchiffrer chaque sortie de la chaîne |
| Mimblewimble | Les montants, et le graphe se compacte | Des paiements interactifs, les deux portefeuilles doivent se parler ; une centaine d'octets par transaction gardés pour toujours |
| Cairn aujourd'hui | Rien, et l'adresse est la clé elle-même, réutilisée | La lecture est gratuite, pour tout le monde, pour toujours |
Un motif traverse cette table, et il n'est pas un accident. Cacher qui dépense quoi oblige le réseau à se souvenir de quelque chose par dépense, pour toujours : Monero garde une image de clé, Zcash un jeton de dépense, Mimblewimble un noyau. Ou bien il oblige l'utilisateur à porter l'histoire : les leurres de Monero se tirent parmi toutes les sorties passées, et un portefeuille Zcash qui revient d'absence essaie de déchiffrer tout ce qu'il a manqué. Une mémoire éternelle chez les nœuds, ou l'histoire chez les utilisateurs : les deux sont exactement le coût qui grandit que ce projet existe pour refuser.
Une nuance, parce qu'elle est vraie : notre accumulateur sait prouver l'absence, donc un ensemble de reçus de dépense tiendrait chez chaque nœud en soixante-quatre empreintes, comme la cave. Ce qui ne tient pas, c'est l'entretien. La preuve d'absence d'un reçu encore secret ne peut être rafraîchie que par son propriétaire, qui ne peut la confier à personne sans se désigner. Le fardeau de mise à jour que ce projet a accepté pour les billets s'étendrait à des chemins que nul ne peut surveiller pour vous. Personne n'a résolu cela, nous non plus, et ce document ne prétend pas le contraire.
Enfin, tout ce que le terrain déploie pour cacher, montants engagés, signatures en anneau, preuves à divulgation nulle, repose sur le logarithme discret, que l'adversaire de la section suivante casse.
Ce que cette position change au format du billet : rien pour les montants, qui restent huit octets en clair. Pour l'adresse, le changement vient de la section suivante, décidé pour une autre raison, et il sert aussi ici.
La promesse du projet se compte en décennies, et c'est exactement l'horizon où les estimations publiques placent un ordinateur quantique capable de casser ces clés. La revue a raison : une ligne en aparté ne suffisait pas.
Il y a deux familles de cryptographie dans Cairn, et elles ne tombent pas ensemble. La structure, le sceau, les deux forêts, la preuve de travail, les identifiants, est faite de fonctions de hachage, que l'ordinateur quantique n'entame pas de façon utile. Ce point était déjà dans le document de conception, et il tient : l'état, le sceau qui l'engage et l'histoire des en-têtes n'ont rien à craindre.
Les fonds, si. Un billet est verrouillé par une signature Ed25519, dont la clé secrète se retrouve depuis la clé publique sur un ordinateur quantique assez grand. Et l'adresse étant la clé publique elle-même, la clé de chaque billet non dépensé est en clair sur la chaîne depuis sa création. Un tel adversaire n'a pas besoin d'attraper une transaction au vol : il lit la chaîne, à son heure, et chaque billet dormant est une cible immobile. L'épargnant, précisément celui que ce projet met en avant, est le plus exposé.
Bitcoin fait mieux, et il vaut la peine de dire pourquoi. Une sortie ordinaire y porte l'empreinte de la clé, et la clé ne paraît qu'au moment de dépenser : un billet jamais dépensé, d'une adresse jamais réutilisée, n'offre rien à casser, et la fenêtre d'attaque se réduit aux minutes entre la diffusion d'un paiement et son enfouissement. Le bouclier est imparfait, les recensements publics situent autour du quart de l'offre de Bitcoin ce qui est déjà à découvert, clés réutilisées et sorties des premières années, et le format le plus récent, Taproot, y renonce en remettant la clé dans la sortie. Mais la norme protège. Cairn n'a pas la norme : chez nous, cent pour cent de l'offre est à découvert, par construction.
Les schémas standardisés existent, publiés en 2024 ; un quatrième, Falcon, attend encore sa version finale au moment d'écrire. Aucun ne rend les 64 octets d'Ed25519 : une signature post-quantique se compte en kilooctets, et c'est un problème particulier pour une conception dont tout l'intérêt est d'être petite. Mesuré contre notre format, un paiement ordinaire, un billet dépensé, deux créés, dans un bloc de 128 ko :
| Schéma | Clé publique | Signature | Un paiement | Par bloc | Par seconde |
|---|---|---|---|---|---|
| Ed25519, adresse = clé (aujourd'hui) | 32 o | 64 o | 191 o | 686 | 11,4 |
| Ed25519, adresse en empreinte | 32 o | 64 o | 223 o | 587 | 9,8 |
| Falcon-512 | 897 o | 666 o | 1 690 o | 77 | 1,3 |
| ML-DSA-44 | 1 312 o | 2 420 o | 3 859 o | 33 | 0,55 |
| SLH-DSA-128s | 32 o | 7 856 o | 8 015 o | 16 | 0,27 |
Le bloc n'est pas la seule victime, et c'est le chiffre qui décide tout. Tant que l'adresse est la clé, la clé vit dans le billet, et le billet vit dans le tiroir que chaque nœud porte : sous ML-DSA-44, chaque billet chaud grossit de 1 280 octets, le tiroir passe d'environ 68 Mo à environ 236 Mo, et le téléphone, qui est la raison d'être du chiffre, ne suit plus. Avec l'adresse en empreinte, le billet garde ses quarante octets quel que soit le schéma : la clé ne paraît que sur le fil, à la dépense, et le tiroir ne bouge pas. C'est la différence entre une migration coûteuse et une migration impossible.
Sur le choix du schéma lui-même : SLH-DSA est le seul qui repose sur les mêmes hypothèses que notre structure, du hachage et rien d'autre, et c'est le plus lourd du tableau. Falcon est le plus petit et le plus délicat à implémenter correctement. Les schémas en treillis sont jeunes à l'échelle où ce projet compte. Il n'y a aucune urgence à trancher, à une condition : que le format n'ait plus à changer le jour où l'on tranche.
La cave n'est pas une perte, disent nos documents, puisqu'un archiviste peut toujours reconstituer une preuve. La revue répond : et s'il n'y en a pas ? Elle a raison de poser la question à cette hauteur, car le personnage le plus concerné est celui que ce projet met en avant, l'épargnant hors ligne depuis des années.
Le tiroir tient 131 072 billets, et le plus ancien tombe quand il est plein. À blocs pleins, un billet qui ne bouge pas descend à la cave en 3,2 heures ; à un dixième du trafic, en 32 heures ; à un centième, en treize jours. La fenêtre qui suit la chute, pendant laquelle il se dépense encore sans preuve, dure douze minutes à pleine charge. La cave est donc l'état normal de toute épargne, pas un cas rare, et le document de conception le disait déjà.
Trois situations, et elles n'appellent pas le même service. Un portefeuille allumé ne remarque rien : chaque bloc porte de quoi rafraîchir ses preuves, il ne demande rien à personne, et une preuve pèse 685 octets en moyenne à un million de billets tombés, de l'ordre du kilooctet à trente ans de chaîne pleine. Un portefeuille éteint quelques jours se rattrape en relisant les blocs manqués, que les nœuds gardent pour cela : un gigaoctet par défaut, environ cinq jours de chaîne pleine.
Au-delà, tout dépend de ce qui a survécu. Celui qui a gardé son carnet, quels billets, à quelle position de la forêt, n'a besoin que d'une preuve fraîche. La produire demande l'archive de la cave, 64 octets par billet tombé ; cela coûte quelques microsecondes et une réponse d'un kilooctet, et le portefeuille vérifie seul le résultat contre les racines que tout nœud tient. La confiance demandée est nulle : un archiviste ne peut pas mentir, il peut seulement se taire. Celui qui a tout perdu sauf sa clé doit d'abord retrouver ce qu'il possède, et cela, l'archive ne le sait pas, car elle tient des empreintes, pas des noms. Retrouver demande l'histoire des blocs, ou un index par propriétaire comme celui de l'explorateur.
Et personne n'est payé pour tenir l'un ou l'autre. Voilà l'omission, énoncée depuis le code : la deuxième garantie du document de conception, reconstituable pour toujours, repose sur un rôle que le protocole ne rémunère pas, dont le réseau ne dépend pas, et dont l'épargnant, lui, dépend entièrement.
| La chaîne est | Paiements / s | L'archive, pour prouver | L'histoire, pour retrouver |
|---|---|---|---|
| pleine à 1 % | 0,1 | 6,0 Go | 20,7 Go |
| pleine à 10 % | 1,1 | 68,6 Go | 206,7 Go |
| pleine | 11,4 | 692,3 Go | 2,1 To |
Même au pire, l'archive tient sur un seul disque ordinaire. C'est un rôle de bénévole au sens où l'archive complète de Bitcoin en est un, à deux différences près : là-bas, tout nouveau venu dépend d'elle, ici seul l'épargnant sans carnet en dépend ; et là-bas elle pèse des téraoctets dès aujourd'hui. Le risque n'est donc pas le prix du service. Le risque est qu'une année calme d'une petite chaîne n'ait personne pour le rendre, et un protocole ne fabrique pas des volontaires. Ce qu'il peut faire : les multiplier, les rendre vérifiables, et les rendre payables.
Deux morceaux sont déjà dans le code. L'explorateur garde la cave entière par défaut, en plus de son index : chaque explorateur public est donc déjà, matériellement, un point de reconstitution complet, l'index pour retrouver et l'archive pour prouver. Et un nœud ordinaire accepte un drapeau qui lui fait garder la cave. Ce qui manque est le chemin : aucun message du protocole réseau ne permet aujourd'hui de demander une preuve à qui que ce soit, et rien ne permet de payer celui qui la rend.
Ce qui reste vrai après tout cela, et qui doit être écrit plutôt que contourné : la reconstitution repose sur au moins un volontaire portant un ensemble qui grandit. Le protocole rend ce volontaire bon marché, découpable, vérifiable et payable ; il ne peut pas le faire exister. Le testnet est l'expérience qui dira si cela suffit, et ce document sera corrigé par ce qu'elle montre.
Sur trois questions, une seule chose devait entrer dans le format du billet avant qu'une chaîne de valeur existe : le propriétaire d'un billet devient l'empreinte d'une clé, plus jamais une clé. Trente-deux octets inchangés dans le billet, trente-deux de plus par dépense, et cela achète le bouclier quantique de Bitcoin, un schéma de signature remplaçable sans toucher au format, et une porte ouverte aux clés à usage unique si la vie privée au niveau du protocole devient un jour tenable. Tout le reste, clés dérivées d'une graine, carnet exporté, marché de la reconstitution, est du logiciel autour du format, remplaçable à loisir.
Ce qui reste ouvert, par ordre de certitude décroissante sur ce que nous en savons :
La revue demandait que trois silences deviennent trois positions. Les voici : datées, chiffrées, et prises pour être contredites par écrit.