Typologie des noeuds Bitcoin et Lightning

0
373

1. Les Bitcoin nodes

Les premières versions du logiciel Bitcoin (baptisé ensuite Bitcoin Qt puis Bitcoin Core) rassemblaient toutes les fonctionnalités attendues d’un noeud Bitcoin : c’était à la fois un portefeuille, un mineur, une archive complète des blocs et des transactions et un logiciel de validation et de routage. Le logiciel a définitivement cessé d’être utilisé comme mineur avec le développement du minage GPU et les outils se sont spécialisés. Dans un article publié le 13 juillet dernier, Gloria Zhao propose de classer les noeuds Bitcoin en quatre catégories selon les services qu’ils fournissent :

Les nœuds de validation et d’archivage : Il s’agit de nœuds complets (full nodes) qui possèdent une copie de l’historique complet du registre des transactions (la blockchain). Ces nœuds sont capables de vérifier, valider et diffuser les transactions et les blocs entrants, ainsi que d’interroger les données des blocs et des transactions à partir de n’importe quel point de l’historique. Ils ont un rôle crucial car ils permettent aux nouveaux nœuds de rattraper l’historique des blocs pour devenir des nœuds complets. 

Les nœuds de validation sans archivage : Il s’agit également de nœuds complets (full nodes) capables de vérifier, valider et diffuser des transactions et des blocs mais qui ne permettent pas de télécharger l’ensemble de l’historique. Au lieu de chercher dans la base de données des blocs à chaque validation, ces nœuds se contentent de l’ensemble des UTXO (sorties de transaction non dépensées). Les nœuds Bitcoin n’ont pas nécessairement besoin d’une copie complète de la blockchain. Tant qu’ils conservent des métadonnées des blocs et l’ensemble des UTXO à jour ils peuvent valider et diffuser les nouveaux blocs et les nouvelles transactions. Ces nœuds « élagués » téléchargent et traitent les blocs pour créer la base de données nécessaire à la validation, puis éliminent les anciens blocs pour économiser de l’espace disque. Puisqu’ils possèdent toutes les informations nécessaires, ils peuvent vérifier et valider les nouveaux blocs et les nouvelles transactions, il s’agit donc bien de nœuds complets.

Les noeuds d’écriture ou de mining : Ces noeuds écrivent les nouvelles pages et les insèrent dans le registre (= ils produisent les nouveaux blocs). Cela implique de vérifier la validité des transactions en attente de confirmation, de les rassembler dans un bloc et de gagner un concours de preuve de travail. Pour cela, ces noeuds agencent ces transactions de différentes manières et de font varier une valeur aléatoire (le nonce) afin de tenter d’obtenir un hash de bloc inférieur à une certaine difficulté cible. Le noeud gagnant peut alors ajouter une nouvelle page au registre Bitcoin et, comme récompense, gagne la prime de minage ainsi que les frais des transactions validées. La puissance de calcul requise est telle que ces nœuds exploitent aujourd’hui des installations spécifiques (actuellement des coopératives d’ASIC). Certains noeuds de minage sont des noeuds complets, conservant une copie complète de la blockchain, pendant que d’autres sont des noeuds légers faisant partie d’une pool de minage et dépendent du noeud complet du serveur de la pool.

Les clients légers : Cette expression désigne les nœuds qui ne conservent pas l’état nécessaire à la validation des transactions et des blocs (voir une liste d’applications ici) et qui font confiance à des nœuds complets pour faire ce travail à leur place. Un client léger peut conserver une quantité limitée de données afin de vérifier ses propres transactions, sans pour autant valider les blocs. On parle aussi de nœuds de vérification de paiement simplifiée (Simplified Payment Verification ou SPV).

Pour aller plus loin se reporter au chapitre 6 de Mastering Bitcoin d’Andreas Antonopoulos (page 145 « Types et rôles des noeuds » dans la traduction française disponible ici).


2. Les noeuds Lightning

Tous les noeuds du réseau Lightning reposent sur un noeud Bitcoin. Ce noeud leur permet de réaliser les transactions d’ouverture/clôture de canal et de surveiller le registre (la blockchain) afin d’éviter qu’un homologue ne tente de voler des fonds d’un canal en publiant une ancienne transaction ne reflétant pas le dernier état de la balance des comptes. On distinguera :

Les noeuds complets « d’infrastructure » qui sont connectés en permanence afin de relayer les paiements des utilisateurs du Lightning Network (ici celui de Bitcoin.fr). Ces noeuds sont généralement publics et visibles de tous. Il existe trois implémentations différentes : Eclair d’Acinq (à ne pas confondre avec Eclair wallet), C-Lightning de Blockstream et Lightning Network Daemon (LND) de Lightning Labs.

Les noeuds complets de « bout de ligne », utilisés notamment sur les smartphones (mais pas seulement). Il s’agit de véritables noeuds Lightning qui nécessitent d’ouvrir au moins un canal vers un noeud public du réseau. Ces noeuds, souvent intermittents, se contentent cependant d’envoyer et de recevoir leurs propres transactions sans relayer celles des autres. Ni ces noeuds, ni les canaux liés à ces noeuds ne sont publics. Les applications qui les font tourner permettent à la fois de réaliser des transactions Bitcoin onchain (ce sont aussi des wallets SVP) et Lightning. On pourra citer par exemple Eclair wallet, Zap ou Electrum.

Les noeuds partiels qui laissent la pleine propriété des fonds aux utilisateurs mais dépendent d’un serveur ou d’un nœud externe pour fonctionner. On citera BLW (Bitcoin and Lightning Wallet) ou Phoenix qui présente la particularité de rendre invisible la création et la clôture des canaux pour une meilleure expérience utilisateur (moyennant quelques frais supplémentaires).

Nous ne considérerons pas les applications LN custodials comme des noeuds, puisque les utilisateurs se reposent sur le noeud « d’infrastructure » du tiers auquel ils confient leurs fonds. Citons tout de même dans cette catégorie : BlueWallet, Wallet of Satoshi ou encore tippin.me (Voir également : Liste des applications permettant d’accéder au Lightning Network).

Pour aller plus loin lire, sur veriphi.io, cet article de Gustavo J.Flores Echaiz consacré à l’architecture des wallets Lightning.