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

Masternodes are paid by the network for the PrivateSend, InstantSend and governance services they provide. 45% of the block reward is paid out to the masternodes, 45% to miners and 10% to the budget. In practice, half of the reward from a normal block goes to the miner and half to the masternode. Then, every 16,616 blocks (approximately 30.29 days), a superblock is created that contains the entire 10% 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 November 2018, the Dash network has over 5000 masternodes located in over 45 countries and hosted on over 140 ISPs. The block reward is approximately 3.34 Dash, so the selected masternode receives 1.67 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.

DIP003 Masternode Changes

Dash 0.13.0 met en œuvre la DIP003, qui introduit certains changements dans la façon d’installer et de gérer un masternode. Veuillez trouver ci-dessous une liste de la documentation disponible :

Important concepts and changes:

  • It is possible to upgrade an existing masternode in-place without starting a new server and without moving your 1000 DASH collateral.
  • A masternode was previously « started » using the masternode start-alias command based on a masternode.conf file. Under DIP003, this file is no longer used, and masternodes are « registered » instead of « started ». Masternodes begin offering services when a ProRegTx special transaction containing a particular key is written to the blockchain.
  • As before in masternode.conf, 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.
  • The ProRegTx contains 2 Dash addresses (also called public keys) and one BLS public key, which represent 3 different roles in the masternode and define update and voting rights. The keys are:
    1. ownerKeyAddr: This is a Dash address (public key) controlled by the masternode owner. It is different from the address used for the collateral. Because the owner uses the private key associated with this address to issue ProUpRegTx transactions, it must be unique for each masternode.
    2. operatorPubKey: This is the BLS public key of the masternode operator. Only the operator is allowed to issue ProUpServTx transactions. Because the operator key is used during live masternode operation to sign masternode-related P2P messages, quorum-related messages and governance trigger votes, the BLS key must be unique for each masternode.
    3. votingKeyAddr: This is a Dash address (public key) used for proposal voting. Votes signed with this key are valid while the masternode is in the registered set.
  • Masternode payments were previously sent to the address holding the collateral. Under DIP003, the owner should specify a different address to receive payments in the ProRegTx. The owner may optionally specify a non-zero percentage as payment to a separate masternode operator, if applicable.
  • The masternode configuration can later be updated using ProUpServTx, ProUpRegTx and ProUpRevTx transactions. See Updating Masternode Information in DIP003 and Updating Masternode Information in this documentation for more details.
  • All functions related to DIP003 will only take effect once Spork 15 is enabled on the network. Until then, it is necessary to set up the masternode following the old process and then work through the upgrade procedure. In this state, the masternode will continue to function in compatibility mode, and all DIP003 related functions, such as payments to a separate address or percentage payments to operators, will not yet have any effect. The ownerKeyAddr and votingKeyAddr must also be identical until Spork 15 is enabled.

The process of setting up or upgrading a masternode is as follows:

  1. Set up your server and operating system
  2. Install the Dash software and synchronize the blockchain
  3. Generate a BLS key pair and enter the private key on the masternode
  4. Préparer une transaction ProRegTx
  5. Signer la transaction ProRegTx
  6. Submit the signed ProRegTx transaction

Step 1 can be omitted if you have an existing server. Steps 2 and 3 require direct access to the masternode. Steps 3 and 4 require access to a Dash Wallet (or DMT). Step 5 requires access to the wallet actually holding the collateral. Step 6 requires a Dash balance to pay the transaction fee.

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

Masternode paymentss in Dash version 0.13.0 are entirely deterministic and based on a simple list sort algorithm. For documentation of version 0.12.0 payment logic, see the legacy masternode payment documentation. Dash version 0.13.0 implements DIP003 and defines two sets of masternodes.

  1. The full set, which contains all registered masternodes that have not spent their collateral funding transactions.
  2. The valid set, a subset of the full set which contains all masternodes which are not marked as Proof of Service (PoSe) banned.

Each masternode in the set of valid masternodes is identified by the block at which it was last paid. If it has never received payment or was banned for failing to meet the PoSe requirements, then the block at which it was first registered or at which PoSe was restored is used instead. The list is sorted in ascending order, and the first entry is paid. If this results in more than one masternode, then the hash of the masternode ProRegTx is sorted to break the tie.

Sélection par quorum

InstantSend transactions in Dash version 0.13.0 are secured using a consensus of deterministically selected masternodes. This set of masternodes is informally termed a quorum and must be in a majority agreement, at least six out of ten, for a successful lock of the transaction inputs. Multiple quorums are self-selected for each input in an InstantSend transaction using the mathematical distance between the hash of each input and of the set of masternode funding transactions.

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 2 Go 4 GB
Stockage disque 20 GB 40 GB
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

The exact hardware requirements for Dash Evolution masternodes have yet to be determined, although some pointers can be taken from the roadmap and this blog post. It should be possible to run Dash masternodes on normal VPS servers until the block size reaches approximately 20 MB, after which custom hardware such as GPUs and eventually ASICs may be required.