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

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

Simply put, a masternode is a server with a full copy of the Dash blockchain, which guarantees a certain minimum level of performance and functionality to perform certain tasks related to block validation, as well as InstantSend and CoinJoin, as the and instant transaction and privacy features in Dash are called. The masternodes are paid for this service, using a concept known as Proof of Service. This is in addition to the Proof of Work done by miners to secure the blockchain. Masternodes are also allowed to vote on governance and funding proposals, with each masternode receiving one vote (yes/no/abstain) on each proposal submitted to the system.

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

Masternodes are paid by the network for the InstantSend, CoinJoin 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.

По состоянию на ноябрь 2018 сеть Dash насчитывает более 5000 мастернод, которые расположены в более чем 45 странах, а их хостинг обеспечивает более более 140 провайдеров. Награда за блок составляет приблизительно 3,34 DASH, таким образом, одна мастернода получает выплату в 1,67 DASH за раз или около 6 DASH в месяц. Награда за блок уменьшается на 7,14% примерно раз в год, таким образом, за год владелец мастерноды зарабатывает примерно 7% от суммы залога, но это значение со временем будет падать, как показано в подсчётах здесь. Для подсчётов наград в реальном времени используйте этот инструмент, и этот сайт для получения различной текущей статистики по сети мастернод.

Изменения для мастернод DIP003

В версии Dash 0.13.0 реализовано предложение по улучшению DIP003, в которое внесены несколько изменений по настройке и управлению мастернодой Dash. Список имеющейся документации приведён ниже:

Важные концепции и изменения:

  • Возможно обновление существующей мастерноды на месте без необходимости запуска нового сервера и без перемещения залога в размере 1000 DASH.

  • Ранее мастернода «запускалась» с использованием команды masternode start-alias, расположенной в файле masternode.conf. После обновления DIP003 этот файл больше не используется и мастерноды теперь «регистрируются», а не «запускаются». Сервисы мастернод начинают работать, если ProRegTx специальная транзакция содержит конкретный ключ, который записан в блокчейне.

  • Как и раньше, в файле masternode.conf, ProRegTx ссылается на идентификатор (txid) и индекс транзакции, на которой удерживается залог. В этой транзакции также определены IP-адрес и порт мастерноды.

  • ProRegTx содержит 2 адреса Dash (которые ещё называют публичными ключами) и один публичный ключ BLS, который представляет 3 различных роли в мастерноде и определяет права на обновление и голосование. Ключами являются:

    1. ownerKeyAddr: Это адрес Dash (публичный ключ), который контролируется владельцем мастерноды. Он отличается от адреса, используемого для хранения залога. Так как владелец использует приватный ключ, который связан с этим адресом для проведения транзакций ProUpRegTx, он должен быть уникальным для каждой мастерноды.

    2. operatorPubKey: Это публичный ключ BLS оператора мастерноды. Только оператору разрешено проводить транзакции ProUpServTx. Поскольку ключ оператора используется во время работы мастерноды в реальном времени для подписи P2P-сообщений, связанных с мастернодой, сообщений о кворуме и триггера голосов управления, ключ BLS должен быть уникальным для каждой мастерноды.

    3. votingKeyAddr: Это адрес Dash (публичный ключ), который используется для голосований по предложениям. Голоса, подписанные соответствующим приватным ключом, действительны, пока мастернода находится в зарегистрированном наборе.

  • Платежи мастернод раньше отправлялись на адрес, на котором удерживался залог. В версии DIP003 владелец мастерноды должен указать другой адрес для получения платежей ProRegTx. По желанию и, если это приемлемо, владелец может указать ненулевой процент оплаты отдельному оператору мастерноды.

  • Конфигурацию мастерноды можно обновить со временем, используя транзакции ProUpServTx, ProUpRegTx и ProUpRevTx. Для получения более подробных сведений смотрите Обновление информации о мастернодах в DIP003 и Информация по обновлению мастеноды в этой документации.

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

Процесс настройки или обновления мастерноды заключается в следующем:

  1. Настройте свой сервер и операционную систему

  2. Установите программное обеспечение Dash и синхронизируйте блокчейн

  3. Сгенерируйте пару BLS-ключей и введите приватный ключ для мастерноды

  4. Подготовка транзакции ProRegTx

  5. Подписание транзакции ProRegTx

  6. Подтвердите подписанную транзакцию ProRegTx

Шаг 1 можно пропустить, если у вас есть существующий сервер. Шаги 2 и 3 требуют прямого доступа к мастерноде. Для шагов 3 и 4 требуется доступ к кошельку Dash (или DMT). Шаг 5 требует доступа к кошельку, на котором удерживается залог. Шаг 6 требует информации о балансе Dash для оплаты транзакционных комиссий.

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

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

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: 45% of the block reward goes to the miner, 45% goes to masternodes, and 10% is reserved for the budget system (created by superblocks every month).

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

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

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

Платежи мастернод в версии Dash 0.13.0 являются полностью детерминированными и основаны на простом алгоритме сортировки списка. Документация о принципах оплаты в версии 0.12.0 приведена в документации по оплате для старых версий мастернод. В версии Dash 0.13.0 реализован DIP003, в котором определено два набора мастернод.

  1. Полный набор, который содержит все зарегистрированные мастерноды, не потратившие своё залоговое подтверждение.

  2. Допустимый набор является подмножеством полного набора, который содержит все мастерноды, у которых нет метки бана Proof of Service (PoSe).

Каждая мастернода в наборе допустимых мастернод имеет свой ID, присвоенный ей при регистрационной транзакции и ассоциируется с блоком, в котором мастернодой последний раз была получена выплата. Если мастернода ни разу не получала выплату или была заблокирована за несоблюдение требований PoSe, то вместо блока последней выплаты используется блок, в котором мастернода была впервые зарегистрирована или в котором была восстановлена блокирования. Список сортируется в порядке возрастания по высоте блока и хешу ProRegTx (в качестве идентификатора для случаев, когда две мастерноды были зарегистрированы в одном блоке), и выплата отравляется первой записи в нём.

Доказательство предоставления услуги

Proof of Service (PoSe) is a scoring system used to determine if a masternode is providing network services in good faith. A number of metrics are involved in the calculation, so it is not possible to game the system by causing masternodes to be PoSe banned for failing to respond to ping requests by e.g. a DDoS attack just prior to payment. Each failure to provide service results in an increase in the PoSe score relative to the maximum score, which is equal to the number of registered masternodes. If the score reaches the number of registered masternodes, a PoSe ban is enacted and the masternode must be repaired to ensure it provides reliable service and registered in the list again using a ProUpServTx. The current scoring rules as of Dash 0.14 are:

  • Проблемы при участии в DKG= 66% наказания

  • Каждый последующий блок снижает количество баллов PoSe на 1

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

In past versions of Dash, quorums of 10 masternodes were formed spontaneously to lock InstantSend transactions. As of Dash 0.14, quorums are deterministically formed, contain more masternodes and remain alive for a longer period of time. While they remain responsible for InstantSend transactions, the locking mechanism has changed to automatically attempt locks on most network transactions according to the requirements described here. Masternodes are now also responsible for more network consensus functions, such as ChainLocks. Masternode quorums are formed through a process of distributed key generation. Failure to participate in DKG will eventually result in a PoSe ban as described above.

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

  • 1000 DASH: пожалуй, самая трудная часть, но это утверждение спорно. Dash можно приобрести на таких биржах как Poloniex, Bittrex и Kraken. Также будет очень удобно воспользоваться ShapeShift.

  • A server or VPS running Linux: Most recent guides use Ubuntu 20.04 LTS. We recommend VPS services such as Vultr and DigitalOcean, although any decent provider will do. Generally an instance with low to average specifications will do, although performance requirements will increase according to this roadmap.

  • Выделенный IP адрес: обычно они прилагаются к VPS/серверу.

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

Минимальные

Рекомендованные

Процессор

1x 1 ГГц

1x 2 ГГц

Оперативная память

2 GB + 2 GB swap

4 GB + 2 GB swap

Место на жёстком диске

40 ГБ

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