Sécurité et architecture
La sécurité de ZooBC repose sur des signatures et des hachages, pas sur de l’énergie dépensée. Chaque bloc, chaque transaction, chaque reçu et chaque preuve de graine est signé, et chaque nœud vérifie tout ce qu’il accepte, de sorte qu’aucun nœud n’a à croire un autre sur parole. Autour de ce noyau, l’architecture ajoute quelques limites fermes : l’historique réglé ne peut pas être réécrit, un nouveau nœud peut trouver seul la chaîne authentique, et une signature ne vaut que sur une seule chaîne.
L’attaquant que ZooBC prend en compte
La conception suppose un attaquant capable de faire tourner autant de nœuds et de comptes qu’il le souhaite, qui voit chaque message, exploite toute faille de logique et dispose de grands moyens, mais qui ne peut ni falsifier de signatures, ni trouver de collisions de hachage, ni acheter tous les jetons. Ses objectifs seraient de voler, de censurer, de réécrire l’historique ou de perturber la chaîne. La page consacrée au modèle de menace passe en revue chaque attaque et la réponse qui lui est apportée.
Deux chaînes dans chaque nœud
Chaque nœud conserve deux chaînes. La chaîne principale produit un bloc toutes les 15 secondes et transporte les transactions ; ses blocs sont produits par des nœuds enregistrés tirés au sort (voir preuve de participation). La chaîne dorsale produit un bloc par jour sur le mainnet et ne transporte aucune transaction : chaque bloc est un point de contrôle de la chaîne principale, un relevé des clés de nœud qui ont rejoint ou quitté le registre et les manifestes des derniers instantanés de l’état, le tout cosigné par deux tiers des sièges.
Les couches de défense
| Couche | Ce qu’elle garantit | Article |
|---|---|---|
| validation par chaque nœud | un bloc ne compte que si son producteur tiré l’a signé et si sa preuve de graine, ses transactions et ses reçus sont valides | La preuve de participation |
| sièges égaux, admis à un rythme fixé | le pouvoir ne s’achète pas rapidement : une chance égale par siège, une admission par cycle | Ce contre quoi protège la preuve de participation |
| retour arrière borné | aucun nœud ne revient en arrière de plus de 720 blocs (3 heures) | Finalité et retour arrière |
| points de contrôle de la dorsale | aucun nœud ne se réorganise sous un point de contrôle cosigné par deux tiers des sièges | La chaîne dorsale |
| synchronisation rapide vérifiée | un nouveau nœud charge l’état que nomme la dorsale, vérifie chaque hachage et recoupe un échantillon auprès de ses pairs | Instantanés et synchronisation rapide |
| épingle de version | une nouvelle installation refuse un historique de dorsale qui contredit sa version | L’épingle de version |
| signatures liées à la chaîne | une transaction signée pour une chaîne est refusée sur toutes les autres | Signatures liées à la chaîne |
| décisions aux deux tiers | points de contrôle, transferts du pont, faits d’oracle et vetos de version exigent deux tiers des sièges | Les règles des deux tiers |
| graines imprévisibles | aucun producteur ne peut choisir l’aléa qui désigne le producteur suivant | La graine du bloc (VRF) |
| signalement des doubles signatures | un producteur qui signe deux blocs sur un même parent est confondu par la preuve et sanctionné | La double signature (équivocation) |
Les couches se recouvrent. Une réécriture de l’historique remontant à un an, par exemple, est arrêtée par plusieurs couches dont chacune suffit à elle seule : la limite de retour arrière, le plancher des points de contrôle, les cosignatures de la dorsale et l’épingle de version.
Ce qu’une majorité pourrait faire, et ce qu’elle ne pourrait pas faire
Même un attaquant détenant plus de la moitié des sièges pourrait seulement retarder ou censurer des transactions et remplacer des blocs récents dans la limite des 3 heures. Il ne pourrait ni falsifier de signatures, ni dépenser les pièces d’autrui, ni frapper plus que ne le prévoit le barème de la coinbase, ni descendre sous le point de contrôle de la dorsale, car chaque nœud vérifie lui-même chaque bloc.
Ce sur quoi la sécurité de ZooBC ne repose pas
- Le secret. Le trafic entre pairs circule en gRPC en clair ; la protection vient des signatures et de la vérification.
- L’énergie ou le matériel. Aucune énigme n’est résolue et aucune machine ne confère d’avantage.
- Un tiers de confiance. Aucune fondation ne contresigne les blocs, aucun site web ne se porte garant des instantanés, et un seul pair honnête suffit pour apprendre l’existence de la chaîne la plus lourde.
Voir aussi
Articles de ce thème
- Ce contre quoi protège la preuve de participation
L’attaquant auquel ZooBC est conçu pour résister, et la réponse de la preuve de participation à chaque attaque : pouvoir acheté, sièges Sybil, majorité, manipulation de la graine, réécritures à longue portée et éclipse. - Finalité et retour arrière
Jusqu’où un nœud ZooBC revient en arrière pour suivre une branche plus lourde (720 blocs, 3 heures), pourquoi il ne descend jamais sous le point de contrôle de la dorsale, et comment un nœud isolé se reconstruit. - Instantanés et synchronisation rapide
Comment un nouveau nœud ZooBC rattrape le présent sans rejouer chaque bloc : des instantanés mensuels de l’état, nommés dans la dorsale, vérifiés segment par segment et auprès de ses pairs. - L’épingle de version
L’épingle qu’une version de ZooBC peut embarquer : une ligne publique qui désigne un bloc dorsal par sa hauteur et son hachage, et qu’un nœud vérifie au démarrage pour ne jamais fonctionner sur un historique de dorsale falsifié. - La chaîne dorsale
La seconde chaîne, lente, que conserve chaque nœud ZooBC : un bloc par jour, cosigné par deux tiers des sièges, qui contient des points de contrôle de la chaîne principale, les changements de clés de nœud et des manifestes d’instantanés. - Les règles des deux tiers
Quelles décisions de ZooBC exigent deux tiers des sièges enregistrés (blocs dorsaux, transferts du pont, faits d’oracle, vetos de version, mises à niveau des règles), comment comptent les sièges suspendus, et ce qui ne demande aucun vote. - Signatures liées à la chaîne
Pourquoi une transaction signée pour une chaîne ZooBC ne peut pas être rejouée sur une autre : chaque signature couvre le hachage de genèse de la chaîne, la seule identité dont dispose une chaîne ZooBC.