Comprendre les masternodes

Les masternodes, à l’origine uniques au réseau Dash, sont en train de devenir populaires, au fur et à mesure que la technologie est reprise par d’autres blockchains. Cette section de la documentation décrit les principes et mécanismes des masternodes, ainsi que les services qu’ils fournissent spécifiquement au réseau Dash.

En quelques mots, un masternode est un serveur comportant un exemplaire complet de la blockchain Dash, serveur qui s’engage à un certain niveau minimal de performance et de fonctionnalités, afin d’exécuter certaines tâches relatives à la validation de bloc mais aussi pour opérer les fonctionnalités PrivateSend et InstantSend, noms donnés aux fonctions d’anonymat et de transactions instantanées propres à Dash. Les masternodes sont rémunérés pour ce service, selon un concept connu sous le nom de preuve de service. Cela vient en complément à la preuve de travail assurée par les mineurs pour sécuriser la blockchain. Les masternodes ont aussi un droit de vote sur les les propositions de gouvernance et de financement, chaque masternode recevant un droit de vote (oui/non/abstention) sur chaque proposition soumise au système.

N’importe qui peut opérer un masternode. L’objectif est d’avoir un niveau de décentralisation suffisant pour garantir qu’aucune personne unique ne contrôle une part significative des masternodes. Cependant, pour éviter de surcharger le réseau avec des masternodes non nécessaires et pour décourager les opérateurs malveillants, il y a une condition qui doit impérativement être remplie : la preuve de possession de 1000 dashs. Ces fonds n’ont pas besoin d’être stockés sur le masternode, mais ils doivent être conservés de façon qu’ils soient visibles par le réseau entier. Si leur propriétaire les déplace ou les dépense, le masternode cesse de fonctionner et d’être rémunéré.

Les masternodes sont payés par le réseau pour les services PrivateSend, InstantSend et de gouvernance qu’ils fournissent. 45% de la récompense de bloc est versée aux masternodes, 45% aux mineurs et 10% au budget. En pratique, la moitié de la récompense d’un bloc normal va au mineur et l’autre moitié au masternode. Puis, tous les 16616 blocs (soit tous les 30,29 jours environ), un « superbloc » est créé, contenant le versement entier de 10% aux propositions budgétaires gagnantes. Pour le paiement de chaque bloc (toutes les 2,6 minutes environ), les masternodes sont choisis au hasard dans la file d’attente de tous les masternodes, une fois qu’ils ont atteint les 10% supérieurs de cette liste, puis ils sont rétrogradés au début de la file d’attente après avoir été payés. Au fur et à mesure que sont créés de nouveaux masternodes, la durée entre deux paiements augmente. En raison de l’algorithme de sélection, il y a toujours une part d’aléatoire dans la sélection pour le paiement, mais, sur le long terme, tous les opérateurs de masternode doivent recevoir des paiements similaires. Si la caution d’un masternode est dépensée, ou si un masternode cesse de fournir des services au réseau pendant plus d’une heure, il est retiré de la liste jusqu’à ce que les services normalement attendus reprennent. De cette façon, les masternodes sont incités à fournir des services efficaces et fiables au réseau.

Disposer de tant de serveurs comportant un exemplaire complet de la blockchain et opérant pour le réseau peut être extrêmement utile. Grâce au système de récompense, il n’y a aucun risque de ne pas avoir assez de masternodes, et les programmeurs peuvent compter sur eux pour rendre disponible toute nouvelle fonction décentralisée qu’ils souhaitent implémenter. C’est là que siège véritablement toute la puissance de Dash : un système motivé de milliers de serveurs distribués, disponibles 24 heures sur 24 et 7 jours par semaine, signifie que Dash peut changer d’échelle plus efficacement et fournir de nouveaux services plus rapidement qu’une blockchain entièrement opérée par des volontaires non rétribués. Plus il y a de masternodes, plus le réseau Dash est performant et sûr.

Au mois de mars 2018, le réseau Dash dispose de plus de 4700 masternodes dans plus de 41 pays et hébergés par plus de 100 hébergeurs. La récompense de bloc est d’environ 3,34 dashs, donc le masternode choisi reçoit 1,67 dash par paiement, ou environ 6 dashs par mois. La récompense de bloc décroît d’environ 7,14% une fois par an, donc le retour sur investissement annuel d’un opérateur de masternode est d’environ 7% et diminuera avec le temps tel que calculé ici. Utilisez cet outil pour calculer en temps réel les taux de retour, et ce site pour différentes statistiques en temps réel sur le réseau des masternodes.

Comparaison des masternodes et du minage

Dash, comme Bitcoin et la plupart des autres cryptomonnaies, est basé sur un registre décentralisé de toutes les transactions, connu sous le nom de blockchain. Cette blockchain est sécurisée par un mécanisme de consensus ; dans le cas de Dash comme de Bitcoin, le mécanisme de consensus est la preuve de travail (PoW). Les mineurs travaillent à résoudre des problèmes complexes avec des ordinateurs spécialisés, et, une fois les problèmes résolus, ils reçoivent le droit d’ajouter un nouveau bloc à la blockchain. Si toutes les autres personnes faisant tourner le logiciel s’accordent sur le fait que le problème a été résolu correctement, le bloc est ajouté à la blockchain et le mineur est récompensé.

Cependant Dash fonctionne de manière légèrement différente de Bitcoin, car il dispose d’un réseau à deux niveaux. Le second niveau est constitué des masternodes (nœuds complets), qui rendent possibles la confidentialité financière (PrivateSend), les transactions instantanées (InstantSend), la gouvernance décentralisée et le système budgétaire. Parce que ce second niveau est d’une grande importance, les masternodes sont aussi récompensés quand les mineurs découvrent de nouveaux blocs. La répartition se fait comme suit : 45% de la récompense de bloc va au mineur, 45% au masternode, et 10% sont réservés au système budgétaire (créés tous les mois par un « superbloc »).

On parle de preuve de service (PoSe) dans le cas des masternodes, car ils fournissent des services très importants au réseau. De fait, le réseau entier est surveillé par les masternodes, qui ont le pouvoir de rejeter des blocs mal formés par les mineurs. Si un mineur essayait de conserver pour lui la récompense de bloc entière, ou encore de faire tourner une vieille version du logiciel Dash, le réseau des masternodes isolerait ce bloc, et il ne serait pas ajouté à la blockchain.

Pour résumer, les mineurs constituent le premier niveau, qui permet l’envoi et la réception basiques des fonds et empêche la double dépense. Les masternodes constituent le second niveau, qui fournit les fonctionnalités supplémentaires distinguant Dash des autres cryptomonnaies. Les masternodes ne font pas de minage, et les ordinateurs de minage ne peuvent pas faire office de masternodes. De plus, chaque masternode est « sécurisé » par une somme de 1000 dashs. Ces dashs restent sous le contrôle exclusif de leur propriétaire, à tout moment, et peuvent toujours être librement dépensés par lui. Les fonds ne sont verrouillés en aucune manière. Cependant, si les fonds sont déplacés ou dépensés, le masternode associé passera hors ligne et arrêtera de recevoir des récompenses.

Processus de paiement

Les paiements de masternodes, dans la version 12 de Dash, sont déterminés par une file d’attente déterministe totalement décentralisée, avec sélection probabiliste.

Liste globale

Chaque masternode apparaît dans la liste globale. Sa position dans la liste est déterminée par le temps écoulé depuis le dernier paiement selon le réseau, pas par la blockchain. Les nouveaux masternodes rejoignant le réseau et ceux venant de recevoir un paiement sont placés à la fin de cette liste. Les masternodes actifs et fonctionnels qui sont redémarres avec les commandes RPC « masternode start » ou « masternode start-alias » sont également déplacés à la fin de cette liste. L’utilisation de la nouvelle commande RPC « masternode start-missing » permet d’éviter cela. Au fur et à mesure que les masternodes sont déplacés à la fin de la liste globale, les masternodes restants remontent lentement vers le haut de la liste. Une fois qu’un masternode atteint les 10% supérieurs de la liste, il est éligible à la sélection dans le groupe de sélection.

Le groupe de sélection

Le groupe de sélection est constitué des 10% supérieurs de la liste globale. Sa taille dépend du nombre total de masternodes. Par exemple, s’il existe 4500 masternodes actifs, les 450 premiers masternodes de la liste globale sont éligibles. Une fois dans le groupe de sélection, le choix du paiement se fait par entropie de l’empreinte du bloc. L’empreinte de bloc vieille de 100 blocs permet de déterminer quel masternode sera choisi pour le paiement. Une double empreinte SHA-256 de l’empreinte de la transaction entrante et de l’index, pour tous les masternodes du groupe de sélection, est comparée avec l’empreinte de preuve de travail 100 blocs plus tôt. Le masternode avec la valeur numérique d’empreinte la plus proche de cette empreinte de bloc est choisi pour le paiement.

Probabilités

Parce que le choix se fait par l’entropie de l’empreinte de bloc, il est impossible de prédire quand un paiement aura lieu. Les opérateurs de masternode doivent s’attendre à une variation considérable, avec le temps, des intervalles entre deux paiements. Une fois qu’un masternode est entré dans le groupe de sélection, le paiement devient une probabilité. Les probabilités de cet exemple sont calculées sur la base d’un groupe de 450 (sur 4500 masternodes au total). Les nœuds du groupe de sélection sont choisis au hasard pour la récompense, c’est-à-dire que la probabilité d’être choisi sur un bloc donné est de 1 sur 450.

Le tableau ci-dessous montre la probabilité d’un nœud éligible d’être choisi pour le paiement sur une période de temps donnée. Par exemple, la probabilité qu’un nœud éligible soit choisi sous 12 heures est d’environ 46%. Le tableau ne nous renseigne pas (et ne peut pas le faire) sur la probabilité d’être choisi après une période de temps donnée. Par exemple, si vous n’avez pas été choisi dans les 12 dernières heures — et nous savons par ce tableau qu’il y a 54% de chances que ça arrive —, la probabilité d’être choisi à l’occasion du bloc suivant n’est pas de 46%. Elle reste de 1 sur 450. Pour résumer, si vous avez un nœud éligible et que, disons, 48 heures sont passées sans paiement, alors vous avez été très malchanceux, car il y a moins de 10% de chance que ça arrive. Mais vos chances d’être choisi sur le bloc suivant restent les mêmes que pour chaque bloc, soit 1 sur 450.

Une fois qu’un nœud est choisi pour le paiement, il est déplacé au bas de la liste et ne peut être choisi à nouveau avant d’avoir réintégré le groupe de sélection.

Heures Blocs Probabilité
1 23.07 5.00%
2 46.14 9.76%
3 69.21 14.27%
4 92.28 18.56%
6 138.42 26.50%
8 184.56 33.67%
10 230.70 40.14%
12 276.84 45.98%
18 415.26 60.30%
24 553.68 70.82%
30 692.10 78.56%
36 830.52 84.24%
42 968.94 88.42%
48 1107.36 91.49%
72 1661.04 97.52%
96 2214.72 99.28%

Vous pouvez exécuter le code (dû à Moocowmoo, membre de la communauté) utilisé pour générer le tableau ci-dessus ici.

Sélection par quorum

Les transactions InstantSend dans la version 12 de Dash sont sécurisés par un consensus de masternodes choisis de manière déterministe. Ce jeu de masternodes est appelé « quorum » de manière informelle, et il doit aboutir à un accord majoritaire d’au moins six sur dix pour que soit opéré avec succès le verrouillage des entrées d’une transaction. Plusieurs quorums sont auto-choisis pour chaque entrée d’une transaction InstantSend sur la base de la distance mathématique entre l’empreinte de chaque entrée et celle des transactions de financement du jeu de masternodes.

Chaque masternode qui reçoit la requête de verrouillage d’une transaction InstantSend compare l’empreinte de sa transaction de financement à celle de l’entrée demandant le verrouillage. Après avoir vérifié que les entrées ne sont pas dépensées, les dix masternodes les plus éloignés de cette empreinte diffusent au réseau leur acceptation du verrouillage.

Toutes les entrées InstantSend doivent avoir une ancienneté d’au moins six blocs, ou les transactions seront rejetées.

Caractéristiques minimales d’un masternode

  • 1000 dashs : sans doute la condition la plus difficile. Les dashs peuvent être obtenus sur des plateformes de change telles que Poloniex, Bittrex, Kraken ou LiveCoin. Les services de ShapeShift sont aussi un excellent moyen.
  • Un serveur ou un VPS tournant sous Linux : la plupart des guides récents recommandent Ubuntu 16.04 LTS. Nous recommandons des fournisseurs de VPS tels que Vultr ou DigitalOcean, même si tout fournisseur correct fera l’affaire. En général, un serveur avec des caractéristiques modestes à moyennes devrait faire l’affaire, bien qu’il soit prévu, selon la feuille de route, que les exigences de performance augmentent à terme.
  • Une adresse IP dédiée : elle est en général fournie avec le serveur ou VPS.
  • Un peu de temps et de motivation : les masternodes étaient au départ difficiles à configurer, mais des utilitaires tels que Dashman simplifient désormais beaucoup la procédure.

En plus de la caution de 1000 dashs, les masternodes ont aussi des caractéristiques matérielles minimales. Pour la version 12.1, ces caractéristiques minimales sont les suivantes :

  Minimum Recommandé
Processeur (CPU) 1x 1 GHz 1x 2 GHz
RAM 1 Go 2 Go
Stockage disque 8 Go 16 Go
Réseau 400 Go/mois 1 To/mois

La bande passante d’un masternode est entre 300 et 500 Go mensuels, et augmentera avec l’utilisation du réseau.

Dash Evolution

Les caractéristiques matérielles minimales pour Dash Evolution restent à déterminer, même si certains indices peuvent être trouvés dans la feuille de route et dans ce billet de blog. Il devrait être possible de faire tourner des masternodes Dash sur des serveurs VPS normaux jusqu’à ce que la taille de blocs atteigne environ 20 Mo, après quoi du matériel spécialisé sera nécessaire, tel que des GPU voire des ASIC.