Leçons 1/4 · 20 min
Les rôles : ce qu'ils gardent et ce qu'ils vérifient
Une question de départ
Votre ami dit : « Mon application interroge un nœud, donc elle ne fait confiance à personne. » Est-ce vrai ? Cela dépend entièrement du nœud. Pour répondre, il faut deux questions pour chaque rôle du réseau :
- Que stocke-t-il ? (tout l'historique, seulement l'état récent, seulement les en-têtes de blocs)
- Que vérifie-t-il lui-même ? (chaque transaction et chaque transition d'état, ou seulement des preuves et des signatures)
Rappel de l'atelier 110 : un bloc a un en-tête (hauteur, empreinte du bloc précédent, racines de Merkle) et un corps (les transactions). L'état est le tableau des soldes et des données après chaque bloc ; l'en-tête en contient une empreinte, la racine d'état.
Les rôles, un par un
- Nœud complet (full node) : télécharge les blocs, rejoue chaque transaction et vérifie les règles du protocole. Il refuse un bloc invalide même si tout le monde le signe. Il conserve l'état récent et, selon sa configuration, peut élaguer (supprimer) les états anciens.
- Nœud d'archive : un nœud complet qui ne supprime rien : il peut répondre à « quel était le solde de ce compte au bloc 1 200 000 ? ». Il est donc beaucoup plus gros.
- Client léger (light client) : ne garde que les en-têtes (ou même seulement un en-tête récent de confiance). Pour une donnée précise, il demande une preuve de Merkle à un nœud complet et la compare à la racine de l'en-tête. Il ne rejoue pas les transactions.
- Validateur (preuve d'enjeu) ou mineur (preuve de travail) : participe à la production et au vote des blocs. Il doit, pour sa propre sécurité et celle du réseau, être un nœud complet : il ne devrait pas voter sur ce qu'il n'a pas vérifié (le protocole ne l'impose pas toujours : certains mineurs de pool travaillent sur un modèle de bloc fourni par l'opérateur). Il détient en plus une clé de signature qui engage ses fonds.
- Collateur (collator) : terme propre à Polkadot et à ses parachaînes. Il rassemble les transactions d'une parachaîne et prépare les blocs candidats que les validateurs de la chaîne relais vérifient. Il ne sécurise pas la chaîne relais lui-même. Ailleurs, le mot n'existe pas ou désigne autre chose : vérifiez le vocabulaire de chaque réseau.
- Nœud RPC : un nœud complet (ou d'archive) dont l'interface JSON-RPC est ouverte à des applications. C'est un usage du nœud, pas un type de données.
Tableau de synthèse
| Rôle | Garde | Vérifie lui-même | Peut répondre à l'historique ancien ? |
|---|---|---|---|
| Client léger | En-têtes | Signatures/travail des en-têtes, preuves de Merkle | Non, sans aide |
| Nœud complet (élagué) | Blocs + état récent | Toutes les transactions | Seulement la période conservée |
| Nœud d'archive | Tout, y compris les états passés | Toutes les transactions | Oui |
| Validateur | Comme un complet + clé de signature | Toutes les transactions, puis vote | Dépend de sa configuration |
Exemple détaillé : qui peut répondre ?
Un réseau fictif a 2 000 000 de blocs. Trois questions : (a) « Ce paiement figure-t-il dans le bloc 1 999 990 ? » (b) « Quel était le solde du compte X au bloc 500 000 ? » (c) « Cette transaction respecte-t-elle les règles ? »
- (a) Un client léger peut y répondre avec une preuve de Merkle contre l'en-tête.
- (b) Seule une archive a immédiatement l'état du bloc 500 000 ; un nœud complet élagué l'a supprimé (s'il a gardé les blocs, il pourrait le recalculer en les rejouant, lentement). Un client léger ne peut que demander, et devra croire la réponse sauf si elle vient avec une preuve contre la racine d'état de cet en-tête.
- (c) Seul un nœud qui rejoue la transaction (complet, archive, validateur) la vérifie vraiment.
Ce que cela ne garantit PAS
- Lancer un nœud complet ne vous rend pas validateur : il n'y a ni vote ni récompense sans clé de validation et, en preuve d'enjeu, sans enjeu déposé.
- Un nœud complet ne vous protège pas d'une chaîne valide selon les règles mais fausse : s'il est connecté seulement à des pairs malveillants (attaque d'éclipse), il peut suivre une branche que le reste du réseau ne suit pas. Il vérifie les règles, pas la vérité du monde.
- Les noms ne sont pas normalisés : deux projets peuvent appeler « léger » deux choses différentes.
À retenir
Un rôle se définit par ce qu'il garde et ce qu'il vérifie. Moins il vérifie, plus il délègue de confiance ; moins il garde, moins il coûte.
