Comprendre les masternodes#

Overview#

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 CoinJoin et InstantSend, noms donnés aux fonctions de confidentialité 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.

Anyone can run a masternode. The objective is to have enough decentralization to ensure that no single person controls a significant fraction of the masternodes. However, to avoid bloating the network with unnecessary masternodes or encouraging reckless operators, there is one condition that needs to be fulfilled: proof of ownership of DASH collateral. The coins don’t need to be in the masternode, but they need to be kept in a certain way that is transparent to the entire network. If the owner moves or spends those coins, the masternode stops working and payment ceases.

Masternodes are paid by the network for the InstantSend, CoinJoin and governance services they provide. 20% of the block subsidy goes to the budget with the remaining 80% split between miners and masternodes per this block reward reallocation table. Then, every 16,616 blocks (approximately 30.29 days), a superblock is created that contains the entire 20% payout to the budget proposal winners. Masternodes are selected for payment in each block (approximately every 2.6 minutes) from a deterministic masternode list, and moved to the back of the list after payment. As more masternodes are created, the duration between payments increases. If the collateral behind a masternode is spent, or if a masternode stops providing services to the network for more than one hour, it is removed from the list until normal service resumes. In this way, masternodes are given incentive to provide efficient and reliable services to the network.

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.

As of September 2023, the Dash network has almost 3500 masternodes located in 19 countries and hosted on over 140 ISPs. The block reward is approximately 2.310 Dash, so the selected masternode receives 1.344 Dash per payment or approximately 6 Dash per month. The block reward decreases by 7.14% approximately once per year, so the annual earnings for a masternode owner is approximately 7% of the collateral, and will decrease over time as calculated here. See this tool to calculate real-time payment rates, and this site for various real-time statistics on the masternode network.

Evolution Masternodes (evonodes)#

Evolution Masternodes (evonodes) are a subset of masternodes that have been created to host Dash Platform. An evonode is a lot like a regular masternode with the following differences:

Masternode

Evonode

Caution

1000 DASH

4000 DASH (4X the collateral for normal masternodes)

Specs

Lesser than evonode

Higher than normal masternodes

Service

Only Dash Core

Both Dash Core and Platform

Voting Weight

1 node gets 1 vote

Has 4 times the voting power of a normal masternode

Masternode Concepts#

A list of available documentation appears below:

Important concepts:

  • Masternodes are « registered » and begin offering services when a ProRegTx special transaction containing a particular key is written to the blockchain.

  • The ProRegTx references the transaction id (txid) and index holding the collateral. The IP address and port of the masternode are also defined in this transaction.

  • La transaction ProRegTx spécifie 2 adresses Dash (également appelées clés publiques) et 1 clé publique BLS, qui représentent 3 rôles différents dans le masternode et définissent les droits de mise à jour et de vote. Ces clés sont :

    1. ownerKeyAddr : il s’agit d’une adresse Dash (clé publique) contrôlée par le propriétaire du masternode. Elle est distincte de l’adresse où est stockée la caution. Le propriétaire utilise la clé privée associée à cette adresse pour émettre des transactions ProUpRegTx, elle doit donc être unique et propre à chaque masternode.

    2. operatorPubKey : il s’agit de la clé publique BLS de l’opérateur du masternode. Seul l’opérateur est autorisé à émettre des transactions ProUpServTx. La clé de l’opérateur est utilisée au cours des opérations sur le masternode pour signer des messages pair-à-pair relatifs au masternode, des messages relatifs au quorum et aux votes de gouvernance. C’est pourquoi la clé BLS doit être unique et propre à chaque masternode.

    3. votingKeyAddr : il s’agit d’une adresse Dash (clé publique) utilisée pour voter sur les propositions budgétaires. Les votes sont signés avec la clé privée correspondante et sont valides tant que le masternode est inclus dans la liste des masternodes enregistrés.

  • Masternode owners should specify an address different from the collateral to receive payments in the ProRegTx. The owner may optionally specify a non-zero percentage as payment to a separate masternode operator, if applicable.

  • La configuration de masternode peut être mise à jour ultérieurement au moyen de transactions ProUpServTx, ProUpRegTx et ProUpRevTx. Pour en savoir plus, voir Mise à jour de la configuration de masternode dans la DIP003 et Mise à jour des informations du masternode dans la présente documentation.

Le processus pour mettre en place ou à jour un masternode est le suivant :

  1. Configurez votre serveur et votre système d’exploitation

  2. Installez le logiciel Dash et synchronisez-le avec la blockchain

  3. Générez une paire de clés BLS et indiquez la clé privée à votre masternode

  4. Préparer une transaction ProRegTx

  5. Signer la transaction ProRegTx

  6. Soumettez la transaction ProRegTx signée

L’étape 1 peut être omise si vous avez déjà un serveur existant. Les étapes 2 et 3 impliquent un accès direct au masternode. Les étapes 3 et 4 impliquent l’accès à un portefeuille Dash (ou à DashMasternodeTool). L’étape 5 implique l’accès au portefeuille qui détient effectivement la caution. L’étape 6 implique d’avoir un solde Dash positif afin de régler les frais de transaction.

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é.

Dash works a little differently from Bitcoin, however, because it has a two-tier network. The second tier is powered by masternodes (Full Nodes), which enable financial privacy (CoinJoin), instant transactions (InstantSend), and the decentralized governance and budget system. Because this second tier is so important, masternodes are also rewarded when miners discover new blocks. The breakdown is as follows: 80% of the block subsidy is split between the miner and a masternode per the distribution found here, while 20% is reserved for the budget system (created by superblocks every month).

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.

In short, miners power the first tier, which is the basic sending and receiving of funds and prevention of doublespending. Masternodes power the second tier, which provide the added features that make Dash different from other cryptocurrencies. Masternodes do not mine, and mining computers cannot serve as masternodes. Additionally, each masternode is “secured” by DASH collateral. Those DASH remain under the sole control of their owner at all times, and can still be freely spent. The funds are not locked in any way. However, if the funds are moved or spent, the associated masternode will go offline and stop receiving rewards.

Processus de paiement#

Since Dash version 0.13.0, masternode payments are entirely deterministic and based on a simple list sort algorithm. Dash version 0.13.0 implemented DIP003 which defines two sets of masternodes.

  1. Le groupe complet, qui contient tous les masternodes enregistrés qui n’ont pas dépensé leur caution.

  2. Le groupe valide, qui est un sous-groupe du groupe complet, et qui contient tous les masternodes qui ne sont pas marqués comme étant bannis de la preuve de service (PoSe).

Chaque masternode du groupe de masternodes valides, identifié par son identifiant de transaction d’enregistrement, est associé au bloc où il a reçu son plus récent paiement. S’il n’a jamais été payé ou s’il a été banni pour ne pas avoir rempli les conditions de la preuve de service (PoSe), il est identifié à la place par le bloc où il a été enregistré pour la première fois, ou par celui où le service a été rétabli. La liste est classée par ordre ascendant de hauteur de bloc et d’empreinte de hachage ProRegTx (pour départager deux masternodes dans le cas où ils ont été enregistrés dans un même bloc), et son premier élément est sélectionné pour le paiement.

Evonode Payment Logic#

Because the reward distribution percentages are fixed, the number of evonodes is expected to stabilize around a fixed number based on the total number of masternodes (considering the current number of ~3850 Masternodes, ~450 evonodes are expected). This is because if there are more than that fixed number of evonodes, running a regular MN will be more profitable than running an evonode, and hosts will convert their evonodes into MNs.

Evonodes will receive 100% of the fees generated from Platform and 37.5% of the masternode portion of Core block rewards. Regular MNs will receive the remaining 62.5% of the masternode portion of Core block rewards and 0% of Platform fees.

Preuve de service#

La preuve de service (PoSe) est un système de note utilisé pour déterminer si un masternode fournit des services au réseau de manière honnête. Un certain nombre de paramètres sont utilisés pour son calcul, et il n’est donc pas possible de tromper le système en faisant en sorte que des masternodes soient bannis de la preuve de service parce qu’ils ne répondraient pas aux requêtes de ping, par exemple par une attaque DDoS juste avant un paiement. Chaque échec à fournir un service entraîne une augmentation de la note PoSe, relative à la note maximale qui est égale au nombre de masternodes enregistrés. Si la note atteint le nombre de masternodes enregistrés, un bannissement PoSe est instauré, et le masternode doit être reconfiguré pour s’assurer qu’il fournisse un service fiable, puis enregistré à nouveau dans la liste au moyen d’une transaction ProUpServTx. Les règles actuelles de notation, en vigueur avec Dash 0.14, sont :

  • Absence de participation à DKG= sanction de 66%

  • Chaque bloc consécutif réduit la note PoSe de 1

Sélection par quorum#

Dans des versions antérieures de Dash, des quorums de 10 masternodes se formaient spontanément pour verrouiller les transactions InstantSend. Depuis Dash v. 0.14, les quorums sont formés de manière déterministe, contiennent davantage de masternodes et demeurent actifs pendant un temps plus long. Ils restent responsables des transactions InstantSend, mais le mécanisme de verrouillage a évolué et essaie automatiquement de verrouiller la plupart des transactions du réseau, selon les conditions décrites ici. Les masternodes sont également chargés de davantage de fonctions de consensus réseau, telles que ChainLocks. Les quorums de masternodes sont formés par un processus de génération de clé distribuée (DKG). L’échec de participation à une DKG entraîne un bannissement au titre de la preuve de service (PoSe), tel que décrit ci-dessus.

Caractéristiques minimales d’un masternode#

  • DASH collateral: Hosting a master node requires a large amount of DASH collateral. Arguably the hardest part. Dash can be obtained from exchanges such as Poloniex, Bittrex, Kraken and LiveCoin. Shapeshift’s service is also an excellent way.

  • Un serveur ou un VPS tournant sous Linux : la plupart des guides récents recommandent Ubuntu 20.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.

In addition to the DASH held in collateral, masternodes also have minimum hardware requirements. For Dash versions 20.0 and higher, these requirements are as follows:

Minimum

Recommandé

Processeur (CPU)

2x 2 GHz

3x 2 GHz

RAM

4 Go + swap de 2 Go

8 GB + 4 GB swap

Stockage disque

60 Go

80 GB

Réseau

750 GB/mth

1 To/mois

Masternode bandwidth use ranges between 600-900 GB per month and will grow as the network does.

Dash Evolution#

Les caractéristiques matérielles minimales pour les masternodes 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.