Cairn · étude de l'existant
Avant d'écrire une ligne du protocole de démarrage léger, il fallait savoir ce que d'autres ont fait, publié et cassé. Voici l'état du terrain, et la position exacte de Cairn dessus.
Cairn n'a pas inventé le problème. Il est documenté depuis des années et chacun le traite à sa façon, sans que personne ne s'en soit débarrassé.
L'ensemble des sorties non dépensées de Bitcoin dépasse aujourd'hui 170 millions d'entrées, pour environ 11 gigaoctets sur disque, et il ne cesse de grandir. Ethereum poursuit depuis des années un chantier appelé statelessness qui, de l'aveu de sa propre documentation, reste à plusieurs années du réseau principal et dépend d'au moins deux autres chantiers pour aboutir.
La conséquence est celle que Cairn met en avant depuis le début : plus une chaîne réussit, plus il devient cher de la vérifier soi-même, et moins il reste de gens capables de le faire.
Chaque encart indique ce que Cairn en reprend, et ce qui l'en sépare. Le trait bleu marque un travail dont nous nous inspirons, le trait vert un endroit où nous divergeons volontairement, le trait ambre une approche que nous refusons.
Remplace l'ensemble des sorties non dépensées par une forêt d'arbres de Merkle parfaits. Onze gigaoctets deviennent moins d'un demi kilooctet. Le dépensier fournit une preuve d'appartenance avec sa transaction. Coût mesuré : environ 25 % de bande passante en plus.
Même objectif avec des accumulateurs RSA : deux engagements de taille constante, l'un sur les sorties créées, l'autre sur les sorties dépensées. Preuves d'appartenance de taille constante, plus courtes que celles d'une forêt d'empreintes.
Chaque bloc porte une preuve à divulgation nulle que toute l'histoire précédente est valide. La chaîne entière tient dans environ 22 kilooctets, constants. C'est la réponse la plus complète au problème que Cairn attaque, et elle fonctionne.
Une boîte inactive depuis quatre ans doit un loyer, environ 0,14 ERG. Depuis le bloc 1 051 200, un mineur peut prélever ce loyer, ou prendre la boîte entière si elle ne le couvre pas.
Un régulateur asservi ajuste, à chaque période de difficulté, un plancher de valeur sous lequel une sortie devient définitivement indépensable. Six à douze mois de grâce pour consolider, puis c'est perdu. L'accueil de la liste a été franchement sceptique.
Un nœud neuf part d'un instantané de l'état plutôt que de l'origine : utilisable en une heure et demie au lieu de dix heures et plus. L'empreinte de cet instantané est écrite en dur dans le code source, et la vérification complète se poursuit ensuite en arrière-plan.
Prouve qu'un travail considérable a eu lieu en ne montrant que les blocs exceptionnellement lourds, dits superblocs. Ressources logarithmiques en la longueur de la chaîne.
Chaque en-tête engage un accumulateur de tous les en-têtes précédents. Un nouveau venu tire au sort un nombre logarithmique d'en-têtes, avec un tirage pondéré par le travail accumulé, et vérifie chacun contre cet engagement. Preuve de synchronisation inférieure à 500 kilooctets sur Ethereum, environ 6 600 fois plus petite qu'une preuve classique. Sécurité établie sous l'hypothèse d'un attaquant contrôlant moins de la moitié de la puissance de calcul.
Une équipe raconte ce qu'implanter FlyClient en production coûte vraiment. Trois constats. Le modèle d'adversaire d'origine, à deux paramètres, n'a pas d'interprétation économique et se prête mal au déploiement ; un modèle à un seul paramètre, le budget de l'attaquant, réduit l'échantillonnage de 37 % à sécurité égale. Les preuves sont dominées par la taille des en-têtes, 1 344 octets chacun sur leur chaîne. Et restructurer les en-têtes pour n'y garder que le nécessaire réduit les preuves de 71 %, au prix d'un changement de consensus.
Chaîne post-quantique lancée cette année, qui emploie les mêmes mots que nous : bounded state, arbre de Merkle creux, accumulateur en ajout seul pour l'historique. Signatures à usage unique, montants contraints à des puissances de deux, machine à covenants.
C'est la découverte importante de cette étude, et il faut la regarder en face plutôt que la ranger en note de bas de page.
Il n'existe aucun point de compromis utile : un système doit soit garder un état global de taille linéaire, soit exiger un rythme quasi linéaire de mises à jour de preuves chez ses utilisateurs.
Le résultat est de théorie de l'information, donc il ne dépend d'aucune hypothèse cryptographique et aucune construction future ne l'annulera. Les auteurs ajoutent une phrase qui nous concerne directement : tant que l'état succinct est trop petit pour contenir l'état complet, l'agrandir n'aide guère.
Traduit : on ne peut pas faire disparaître l'état par la cryptographie. On peut seulement décider qui le porte. Si les validateurs ne le portent plus, ce sont les détenteurs qui doivent tenir leurs preuves à jour, et un utilisateur qui ne fait rien voit malgré tout sa preuve vieillir parce que les autres, eux, transigent.
Cairn tombe de ce côté du dilemme, et l'avait déjà accepté sans savoir que c'était démontré. La cave est succincte, donc les preuves doivent être entretenues. Notre portefeuille le fait à chaque bloc, tout seul, et c'est très exactement le prix que le théorème rend inévitable.
Les auteurs nomment ensuite la seule relaxation praticable : des proof-serving nodes, des tiers qui détiennent l'état complet et fabriquent des preuves à jour pour les autres. Ils appellent à des travaux sur la façon dont ces tiers seraient rémunérés.
Ce sont nos archivistes. Ils sont dans la conception de Cairn depuis le premier jour, avec leur rémunération à la demande, et ils y ont été mis pour une intuition. L'étude montre qu'ils n'étaient pas un confort mais une nécessité structurelle, et que la question de leur modèle économique est ouverte pour tout le monde, pas seulement pour nous.
Il ne fait pas tomber le théorème, et il faut le dire clairement. Ce qu'il change, c'est la population concernée. Les billets récents, qui sont ceux que l'on dépense le plus souvent, sont détenus en entier par tous les nœuds et ne demandent aucune preuve. L'entretien ne pèse que sur ce qui dort depuis longtemps.
Autrement dit : le théorème dit que quelqu'un doit payer. Cairn ne fait pas payer celui qui utilise sa monnaie normalement.
Le tableau ci-dessous ne compare pas des qualités mais des choix. Une colonne seule décide de tout le reste : le plafond est-il une règle du réseau, ou une préférence d'opérateur.
| Système | État plafonné par règle | Rien n'est détruit | Sans cérémonie ni valeur crue | Démarrage sans confiance |
|---|---|---|---|---|
| Bitcoin | Non | Oui | Oui | Intégral, ou instantané cru |
| Utreexo | Non, choix du nœud | Oui | Oui | Intégral |
| CompactChain | Non | Oui | Cérémonie RSA | Intégral |
| Mina | Oui, par la preuve | Oui | Preuve d'enjeu, distribution | Oui, 22 ko |
| Ergo | Non, découragé | Non, loyer | Oui | Intégral |
| Midstate | Non, mémoire seule | Oui | Oui | Instantané plus mille blocs |
| Cairn | Oui, 131 072 billets | Oui | Oui | Prévu, en-têtes gravés |
Aucune de ces quatre pièces n'est une invention cryptographique. Ce sont des choix de protocole, et c'est là que doit être la nouveauté si elle doit être quelque part : la cryptographie de Cairn est délibérément ordinaire et bien connue.
Une réserve de méthode, qui vaut d'être écrite. Une recherche ne prouve pas une absence. Que rien n'ait été trouvé sur le plafond par consensus rend la chose probable, pas certaine, et il restera utile de faire relire cette section par quelqu'un du domaine avant de la publier telle quelle.