Découvrez les étapes de synchronisation et d’opération d’un nœud complet pour sécuriser le réseau Bitcoin.
Étape 3 : la synchronisation du nouveau nœud avec les autres nœuds du réseau Bitcoin
Maintenant que le logiciel et la connexion au réseau a été effectué par le nœud, il doit désormais se synchroniser avec les autres. Cette synchronisation consiste à télécharger et à vérifier la blockchain complète jusqu’au tout dernier bloc disponible. Pour rappel, chaque nœud doit avoir une copie de la blockchain complète afin de rendre le réseau sécurisé et totalement décentralisé.
Le nœud possède initialement uniquement ce que l’on appelle le bloc “Coinbase”. Soit le bloc initial qui est possédé par tous les nœuds avant d’être connecté au réseau. Le nouveau nœud doit ensuite télécharger tous les autres blocs qui ont été ajoutés à la blockchain après ce bloc initial. C’est donc comme télécharger une mise à jour lorsque l’on ouvre son ordinateur pour la première fois.
Afin que le nouveau nœud puisse participer à la validation du réseau, il doit donc être au courant du panel des UTXOs détenu dans les blocs. Pour rappel, les blocs sont reliés par la racine Merkle, l’ADN de la blockchain. Et ces données sont contenues dans les en-têtes de blocs.
Le nœud doit donc parcourir tous les UTXO contenus dans les blocs historiques de ses nœuds voisins :
“Le processus est le suivant :
-
Téléchargez tous les en-têtes de bloc historiques d’un homologue et vérifiez la preuve de travail.
-
Téléchargez tous les blocs de la chaîne la plus solide à partir de plusieurs pairs en parallèle.”
En d’autres termes, le nouveau nœud envoie un message “getheaders” (qui signifie “envoie-moi les informations des en-têtes de blocs dans le langage du protocole Bitcoin) aux nœuds avec lesquels il communique. Ce dernier envoie alors une liste de 2 000 en-têtes de blocs à la demande du nouveau nœud.
Le nouveau vérifie donc chaque en-tête de bloc et ce processus se renouvelle jusqu’à ce que le nœud du réseau envoie moins de 2000 en-têtes de bloc.
Ensuite le nouveau nœud choisit la branche de la blockchain la plus solide et la télécharge depuis plusieurs nœuds connectés en même temps.
Un processus lent et nécessaire pour éviter les erreurs
La communication se fait maintenant par message “getdata” pour avoir les données de blocs des autres nœuds. Le nouveau nœud télécharge donc tous les blocs jusqu’à ce que chaque nœud lui ait transmis toutes les informations nécessaires.
Au fur et à mesure que le nouveau nœud reçoit des blocs, il vérifie et met à jour ses UTXO et enfin les ajoute à sa propre blockchain.
C’est pourquoi ce processus prend du temps lorsque l’on installe son propre nœud :
“La partie la plus longue de la vérification d’un bloc consiste à vérifier les signatures de transactions. Si vous connaissez un identifiant de bloc faisant partie d’une blockchain, vous pouvez ignorer la vérification des signatures de tous les blocs d’avant incluant ce bloc. Cela accélère considérablement le téléchargement initial de la blockchain jusqu’à ce bloc.
Bien sûr, d’autres choses, comme vérifier qu’aucune double-dépense ne se produit ou que
les récompenses de bloc sont correctes, est toujours nécessaire. Le nœud de synchronisation doit construire son propre ensemble d’UTXO, il doit donc toujours vérifier toutes les transactions pour mettre à jour l’ensemble UTXO en conséquence.”
Etape 4 : l’opération du nœud
Une fois que le nouveau nœud est “sur la même longueur d’onde” que les autres nœuds, il est prêt à opérer. Il peut donc participer à la validation et à la validation du réseau.
En possédant un nœud, vous participez à la propagation des blocs et donc des transactions. Le nouveau nœud est désormais un “full node”, ou un nœud complet comme vu dans les épisodes précédents.
Ces nœuds sont en relation avec les wallets et sont ce qui vous permet de communiquer avec le réseau avec le langage du protocole Bitcoin.
“En bref, en exécutant un nœud, vous aidez le réseau à rester en vie.
Bien entendu, l’avantage de l’augmentation du nombre de nœuds diminue une fois que le réseau atteint une certaine taille. Après tout, s’il existe 10 000 copies de la blockchain réparties dans le monde et que tous les nœuds ont des connexions saines les uns avec les autres, l’ajout d’un autre nœud ne fera pas une énorme différence. Il n’est donc pas crucial que chaque homme, femme et réfrigérateur intelligent fasse de son mieux pour gérer un nœud.
Néanmoins, Bitcoin est un système décentralisé qui n’existe que parce que des personnes se portent volontaires pour gérer des nœuds et, ce faisant, vous contribuez à la vision commune qui le maintient en vie.
Et un réseau n’est jamais trop résilient.”
Sources : Grokking Bitcoin, LearnMeaBitcoin.
Sur le même sujet :