Основы мастернод

Мастерноды когда-то были уникальной особенностью сети Dash, но сейчас приобрели они популярность и в других криптовалютах, так как технология перешла в другие блокчейны посредством форка. Данная документация объясняет принципы и механизмы работы мастернод и той работы, которую они выполняют для сети Dash.

Проще говоря, мастернода это сервер с полной копией блокчейна Dash, в котором обеспечена необходимая производительность и функционал для гарантированного выполнения определённых задач по подтверждению блоков и поддержке InstantSend и PrivateSend- так в Dash называются технологии, обеспечивающие анонимность транзакций и их мгновенность, соответственно. За эту работу мастерноды получают плату, используя концепцию Proof of Service /«доказательство службы»/. Это концепция работает в дополнение к Proof of Work /«доказательство выполненной работы»/, применимой к майнерам, обеспечивающим безопасность блокчейна. Так же мастерноды могут голосовать по вопросам governance /управления и бюджетным предложениям, при этом, каждая мастернода имеет право на один голос (да/нет/воздержался) по каждому предложению, поданному в систему.

Запустить мастерноду может каждый. Смысл этого в обеспечении достаточного уровня децентрализации для предотвращения возможности одного человека контролировать значительную часть мастернод. тем не менее, для предотвращения появления излишнего количества мастернод и появления безответственных владельцев мастернод, существует обязательное требование: наличие 1000 DASH. Эти монеты необходимо хранить определённым образом, который прозрачен для всей сети. Если владелец переместит или потратит эти монеты, то мастернода прекратит свою работу и выплаты прекратятся.

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.

Наличие столь большого числа серверов, хранящих полную копию блокчейна и работающих на монету может быть чрезвычайно полезным. Благодаря системе наград, отсутствует риск недостаточного числа мастернод и разработчики, при желении внедрить новые децентрализованные технологий, могут на них полагаться. Именно в этом истинная сила Dash- сеть финансово стимулируемых децентрализованных серверов, работающих 24х7, дающих возможность Dash более эффективно масштабироваться и внедрять функции, чем блокчейны, работающие исключительно на энтузиазме неоплачиваемых добровольцев. Чем больше мастернод, тем лучше и безопаснее сеть Dash.

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 implements DIP003, which introduces several changes to how a Dash masternode is set up and operated. A list of available documentation appears below:

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. Prepare a ProRegTx transaction
  5. Sign the ProRegTx transaction
  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.

Мастерноды и майнинг

Dash, ровно как Bitcoin и большинство других криптовалют, основывается на технологии распределённого списка транзакций, называемой блокчейном. Блокчейн защищён через механизм консенсуса; в случае Dash и Bitcoin, этот механизм называется Proof of Work (доказательство выполненной работы). При данном консенсусе Miners майнеры пытаются решить сложные криптографические задачи, используя специальное программное обеспечение и/или компьютеры. Когда они решают задачу, то получают право добавить новый блок в блокчейн. Если все остальные люди, у которых запущено соответствующее программное обеспечение, согласны с тем, что задача решена верно, то блок добавляется в блокчейн и майнер получает вознаграждение.

Dash работает несколько иначе, чем Bitcoin, причина этого в двухуровневой сети. Второй уровень сети обеспечивается мастернодами (полными нодами), которые предоставляют финансовую анонимность (PrivateSend), мгновенные транзакции (InstantSend) и децентрализованное управление с бюджетной системой. По этим причинам, второй уровень очень важен. В дополнение к этому, мастерноды получают награды, когда майнеры находят новые блоки. Награды распределяются следующим образом: 45% награды за блок идёт майнерам, 45% идёт мастернодам и 10% резервируется для системы Бюджета (эта часть содержится в ежемесячных суперблоках).

Система мастернод характеризуется как Proof of Service (PoSe), то есть «доказательство службы», поскольку мастерноды предоставляют жизненно важные услуги для сети. Фактически, мастерноды осуществляют наблюдение за работой всей сети и имеют власть отказать неверно сформированным майнерами блокам. Если бы майнер попробовал забрать всю награду за блок себе или попробовал бы работать на старом программном обеспечении Dash, то сеть мастернод определила бы его блок как орфан, то есть блок-сироту, не подходящий для сети и этот блок не был бы добавлен в блокчейн.

Если суммировать, то майнеры представляют собой первый уровень, который ответственнен за получение и отправку средств и предотвращение двойных трат. Мастерноды это второй уровень, предоставляющий возможность использования дополнительных функций, которые и отличают Dash от других криптовалют. Мастерноды не занимаются майнингом, а майнинговые компьютеры не могут работать как мастерноды. Каждая мастернода требует «заблокировать» в ней 1000 DASH. Эти DASH всё время остаются под полным контролем их владельца и их можно потратить в любой момент. Эти средства не заблокированы в полном смысле, тем не менее, если они будут перемещены или потрачены, то соответствующая мастернода перестанет работать и получать награды.

Логика выплат

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.

Выбор кворума

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.

Каждая мастернода, получающая запрос на выделение транзакции InstantSend сравнивает хеш мастерноды, финансирующей эту транзакцию с хешем ввода запроса на выделение. После проверки того, что вводы не потрачены, десять мастернод с самым далёким хешем от этого, передают информацию о принятии выделения.

Все средства введённые для InstantSend должны быть возрастом как минимум в шесть блоков, в противном случае, транзакция будет отвергнута.

Тербования к мастернодам

  • 1000 DASH: пожалуй, самая трудная часть, но это утверждение спорно. Dash можно приобрести на таких биржах как Poloniex, Bittrex, Kraken и Livecoin. Также будет очень удобно воспользоваться ShapeShift.
  • Сервер, работающий на Linux: последние руководства используют Ubuntu 16.04 LTS, Мы рекомендуем VPS сервисы такие как Vultr и DigitalOcean, но подойдёт любой хороший провайдер. В целом, подойдёт система со средними характеристиками, но по мере продвижения по дорожной карте, системные требования будут расти.
  • Выделенный IP адрес: обычно они прилагаются к VPS/серверу.
  • Ещё недавно настройка мастерноды была сложным процессом требовала много времени (и даже смелости), но теперь есть инструменты типа dashman, которые заметно облегчают процесс.

В дополнение к наличию 1000 DASH, мастернода имеет минимальные системные требования. В версии 12.1 эти требования таковы:

  Минимальные Рекомендованные
Процессор 1x 1 ГГц 1x 2 ГГц
Оперативная память 2 Гб 4 GB
Место на жестком диске 20 GB 40 GB
Сетевой траффик 400 Гб/мес 1 Тб/мес

Мастернода передаёт информации порядка 300-500 Гб в месяц и это число будет расти вместе с сетью.

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.