Proof-of-Stake – суть алгоритма, особенности, отличия от PoW


В мире криптовалют есть понятие консенсус, который отвечает за корректную запись данных в блокчейн, обеспечивает эффективную и безопасную работу сети. Алгоритм консенсуса Proof-of-Stake (PoS) в переводе с английского языка означает «доказательство доли». Это один и двух самых распространенных алгоритмов, которые используются в криптовалютных сетях для подтверждения транзакций и майнинга. В некоторых блокчейнах он является дополнением к PoW (доказательство выполнения работы).

Давайте подробно рассмотрим особенности алгоритма PoS и сравним его с широко используемым Proof-of-Work (PoW).

Немного истории о создании и развитии PoS

Популярность добычи Биткоина привела к избыточному электропотреблению и снижению рентабельности майнинга. Данный вопрос долгое время обсуждался на форуме Bitcointalk, который посвящен криптовалютам. Дошло до того, что работа сети Bitcoin начала обходиться сообществу в $15 тыс. ежедневно. В 2011 году разработчики Санни Кинг и Скотт Надаль объединились для решения этой проблемы.

Тогда для майнинга применялся только алгоритм PoW, который требует энергозатратных и длительных вычислений. Популярность Биткоина увеличивалась, а вместе с ней количество майнеров и нагрузка на пулы. Также повышалась сложность майнинга. Пользователи тратили большие деньги на покупку мощностей. Отмечу, что вычисления в результате PoW не характеризуются практичностью, поэтому затраты на электроэнергию ничем не оправданы.

Разработчики изначально ставили цель исключить объемные и сложные вычисления, чтобы снизить уровень потребляемой энергии. В основу подтверждения транзакций заложено общее количество монет на счету.

Летом 2012 года алгоритм появился на криптовалютном рынке под названием стекинг. Он быстро привлек внимание сообщества, поскольку решал главную проблему – низкую рентабельность. Энергоэффективность алгоритма привела к тому, что на его базе разработчики начали выпускать токены.

Последующие годы алгоритм обновляли и совершенствовали, увеличивая тем самым его надежность. Сегодня многие криптовалюты используют сочетания алгоритмов PoS и PoW. Это позволяет оптимизировать механизм подтверждения транзакций, распределять нагрузку между нодами и рассчитывать производительность.

Помимо сочетания этих двух алгоритмов, блокчейны применяют различные варианты PoS, в частности Proof-of-Storage, Proof-of-Space. Это комбинированные механизмы, которые чаще всего используют для создания новых проектов.

Почему Proof of Work продолжает развиваться и существовать?

В то время как PoS определенно лучше своего соперника, мы считаем, что PoW не исчезнет ближайший десяток лет, его потребность во время майнинга будет увеличиваться.PoW предоставляет множество преимуществ для участников и отрасли, которых нет в PoS.

Распределение предложения. Proof of Work намного лучше своего оппонента подходит для распределения продажи валют. Хотя майнерам и платят за свою работу, расходы, связанные с проверкой найденных решений, требуют, чтобы они продавали свой запас монет, а не хранили их. Это создает более равномерное распределение и ликвидность на рынке. Накопление активов не выгодно для майнера, как в алгоритме Proof of Stake, поэтому майнер получит большую прибыль за покупку и продажу, а не за холдинг.

Консенсус и клиенты SPV. В Proof of Work, когда блок-цепочка делится на две цепи из-за проблем социального или технического характера, намного легче определить, какая из них имеет лучшую поддержку майнинга. Майнеры, как правило, следуют за той цепочкой, которая имеет большее количество выполненных работ. Это создает более стойкую блок-цепочку с меньшей вероятностью двойной оплаты или проверки.

Управление инфляцией. Алгоритм Proof of Work отлично подходит для развития раздуваемых валют, он в любой момент может изменить сложность уравнения для корректировки создания новых монет. В алгоритме Proof of Stake не существует никакого сотрудничества между технологиями и рынками для регулирования и поддерживания дефляционного предложения.

Добыча определяется балансами в кошельках обладателей монет. Блоки производятся по установленному графику, распределение новых монет определяется пропорционально, исходя из того, сколько у обладателей криптоактивов есть неизрасходованных монет. По существу, «Proof of Stake» не оставляет возможности рыночному механизму регулировать инфляцию. Теоретически, развитие монет через алгоритм PoS происходит стабильно, независимо от их стоимости и рентабельности, однако это полностью разрушает любые рыночные правила, которые контролируют развитие.

В результате, даже при общей нехватке предложения, ошибки в поставках будут наносить ущерб денежной системе на основе PoS, не оставляя места для стабильности и затрудняя надежный экономический рост.

Качество оборудования. Во время работы с протоколом PoW, сообщество майнеров постоянно совершенствует используемое оборудование и ищет менее энергоемкие решения. Использование наилучшего оборудования часто экспоненциально лучше, чем менее дорогостоящие аналоги при работе через алгоритм PoS.

Уменьшение возможности глобальной атаки. PoW поощряет силы в экосистеме, работающие для улучшения сообщества, стимулируя инвестиции в систему — майнеры, которые используют больше вычислительной аппаратуры для блокчейна, зарабатывают больше криптовалюты. Прежде всего, это стимулирует честность, потому что обеспечение целостности транзакций также гарантирует вознаграждение майнеров.

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

Это значительно усложняется получение достаточной хэш-ставки (51%) для совершения атаки на систему — данное действие становится слишком дорогостоящим для хакера, дает очень мало вознаграждения, особенно по сравнению с майнингом. Сегодня, по оценкам экспертов, такая атака будет стоить более миллиарда долларов.

Безопасность. Алгоритм PoS создает более высокие угрозы безопасности системе, которые не присущи системе PoW. Консенсус PoS не закреплен в физическом мире (с хеширующим оборудованием в PoW). Большинство валют, полагающихся на PoS, также используют дополнительные механизмы для решения проблем безопасности, часто это комбинация как PoS, так и PoW.

Форкинг и двойной платеж. Proof of Stake имеет серьезную проблему: если есть вилка в блочной цепи (случайная или преднамеренная), рациональное поведение пользователей данной сети заключается в разделении блоков на обеих ветвях. С помощью алгоритма PoW такое поведение является иррациональным. Разбивая ресурсы на несколько ветвей, майнер уменьшает вероятность нахождения блока.

Оптимальная стратегия в системе PoW всегда должна выполняться на одной ветви, так как рациональное поведение в системе PoS состоит в том, чтобы отбирать блоки поверх всех ветвей, о которых знает пользователь. Эта проблема позволяет легко осуществлять двойные платежи или другие виды атак, которые приходят с разветвлением цепочки блоков.

Богатые получают больше. В отличие от PoW, где майнер получает деньги за выполнение работы, в мире PoS, чем большим количеством активов вы владеете, тем больше вы зарабатываете. Кроме того, в соответствии с этим алгоритмом, изменения кода протокола не определяются соглашением майнера, они определяются голосованием кошельков. Протокол взвешивает голоса, основываясь на запасах кошельков.

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

Захватив власть в системе, контроль интересов в сети PoS мог бы проголосовать за снятие ограничения на поставку. И поскольку у них есть самые высокие запасы монет, они получают наивысший доход во всей системе — они имеют контроль над всей денежной массой. Такое голосование, по сути, создало бы центральный банк, позволяющий контролерам использовать и распространять недавно выпущенные монеты по своему усмотрению. Другими словами, они могут проводить денежно-кредитную политику центрального банка. Следовательно, экономические циклы, политика и коррупция войдут в систему, превратив основанную на PoS экономику в тотальный хаос.

Апатия участников. В делегированной PoS одной из главных проблем является апатия избирателей. Многие люди голосуют один раз, забывают изменить свой голос или проголосовать за прокси, забывают следить за результатами. Наличие апатии избирателей является признаком того, что стимулы не установлены должным образом в системе.

Когда власть находится в руках пользователей, у которых есть долгосрочная приверженность капитала к проекту, у них есть больше стимулов для голосования, потому что они не могут продавать в течение нескольких месяцев или лет. Согласно существующей системе делегированных доказательств, большинство пользователей предпочитают пассивно принимать решения, принятые другими, а затем голосуют, продавая токен. Когда пользователи имеют возможность «голосовать без обязательств», полностью меняется расклад сил.

Накопление активов. POS поощряет накопление активов, что отлично подходит для спекуляций, но не для развития валют или ех ликвидности. Поскольку PoS вознаграждает людей за количество монет, которые у них есть, естественным было бы держать монеты, а не распространять их. Это означает, что ликвидность уменьшится, и майнеры, имеющие большинство токенов, будут контролировать процесс валидации. Это противоречит всей основе децентрализованной системы и удаляет самую важную часть блокчейна — фактор доверия.

Особенности алгоритма PoS

Proof-of-Stake прошел разные этапы развития. Сейчас алгоритм разделился на несколько вариантов, появились усовершенствованные протоколы DPoS и Casper. Последний используется в сети Ethereum. Рассмотрим их подробнее:

  1. DPoS (Delegated Proof-of-Stake) – протокол достижения консенсуса в децентрализованной среде. Проще говоря, это разделение участников. Владельцы долей не принимают участие в подтверждении транзакций, а лишь голосуют за тех, кто будет формировать блоки. Условия между алгоритмами DPoS и PoS отличаются. В первом случае пользователи должны раскрыть свою личность и заявить о готовности бесперебойно поддерживать сеть.
  2. Casper – оптимизированный протокол сети Эфириум, разработкой которого занимался Виталик Бутерин. Он перевел сеть из механизма PoW на PoS, разновидностью которого он является. При этом алгоритм гибридный, то есть он не вытесняет полностью протокол Proof-of-Work, а объединяет его с чистой версией PoS, где не предусмотрен классический майнинг. Casper имеет структурные отличия от Proof-of-Stake. При верификации блоков происходит блокировка части средств. Если выясняется, что валидатор поддержал форковую пустую цепь, помимо заблокированных средств дополнительно он теряет сумму, аналогичную двойной трате.

На сложность PoS майнинга влияют поставленные задачи и время, затраченное на их обработку. Доход валидаторов зависит от многих факторов: разновидность криптовалюты, ее курс, дальнейшие перспективы, количество монет на счету. Отмечу, что для каждого узла определяется индивидуальный уровень сложности. Он зависит от доли владения. Например, если разработчики проекта создадут пул, где будет находиться более 50 % монет от общей эмиссии, сложность майнинга будет минимальной. Это позволяет спрогнозировать, какой узел создаст новый блок.

PoS майнинг не требует загрузки мощностей, в отличие от стандартной добычи монет на алгоритме PoW. Вознаграждения начисляются из комиссионных сборов, которые пользователи платят за услуги сети. Объем вознаграждений напрямую зависит от «возраста монет».

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

Участников PoS пулов называют форджерами. Они должны владеть большим количеством монет. Такой механизм защищает сеть от «случайных людей», которые хаотично переключают мощности между проектами. Владельцы большого количества токенов заинтересованы в стабильной работе сети и готовы поддерживать монеты на криптовалютных биржах, продвигать проект в социальных сетях и т. д.

Особенность алгоритма PoS заключается в защите от «атаки 51 %». Чтобы достичь лидирующего положения, мошеннику необходимо выкупить большую часть предоставленных активов. Такие манипуляции невыгодны хакерам.

Различия PoS-like консенсусов

Рассмотрим вариации методик доказательства доли владения:

  1. Алгоритм PoS – рассмотрен выше, шанс на открытие блока и получение вознаграждения зависит от доли монет на счету любого пользователя системы.
  2. Leased PoS (LPoS) – механизм, позволяющий пользователям сдавать токены в аренду другим узлам. Переданные в аренду средства увеличивают «вес» ноды, давая ей больше шансов открыть блок и получить вознаграждение. В обмен на токены узел-арендатор делится доходом с арендодателями.
  3. DPoS – Delegated Proof of Stake. Принцип делегированного подтверждения доли подразумевает, что стейкхолдеры выбирают некоторые узлы, которые создают новые блоки и добавляют их в цепочку.
  4. Proof of Importance, или подтверждение важности. Этот принцип был рассмотрен выше, основывается он на комбинации параметров узла – его баланса, активности и сетевого аптайма.
  5. Proof of Authority, или подтверждение полномочности. Вместо стеков токенов валидаторы используют собственную репутацию.
  6. DBFT. Под аббревиатурой скрыто понятие Delegated Byzantine Fault Tolerance, переосмысляющего консенсус PoS. Отказоустойчивый византийский протокол позволяет держателям токенов криптовалюты выбирать т. н. «счетовода» (bookkeeper), а группа нескольких, избранных всей сетью счетоводов будет генерировать новые блоки и отвечать за достижение консенсуса.

Майнинг на алгоритме PoS

К PoS майнингу могут присоединиться все пользователи, которые имеют на счету необходимое количество монет для конкретной сети. Участники с нулевым балансом не могут подтверждать блоки. Создатели каждой платформы самостоятельно устанавливают порог входа для запуска мастерноды. В сети DASH, например, это количество составляет 1000 монет.

Чтобы стать майнером, необходимо:

  • установить ПО сети;
  • пополнить счет;
  • обеспечить постоянный онлайн-режим ноды.

Сам процесс майнинга выглядит так:

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

Справка! Средства на кошельке не должны тратиться. Для совершения транзакций внутри системы необходимо завести отдельный кошелек.

Роль протоколов

Роль консенсусных алгоритмов заключается в достижении уровня надежности сети, построенной на серии узлов (устройств, соединённых с другими устройствами как часть компьютерной сети). Это означает, что, если совершена транзакция, то алгоритм начнет работать — обмениваться данными по сети, чтобы проверить, может ли данное действие иметь место.

Тот же процесс также применяется для создания новых узлов данных в блокчейне или при синхронизации сетевого оборудования, чтобы обеспечить согласованность всего консенсуса.

Консенсусные алгоритмы должны быть достаточно умными, чтобы предвидеть сбои в коммуникации внутри сети.

Алгоритм автоматически предположит, что некоторые процессы и системы будут недоступны и что в результате этого некоторые коммуникации будут потеряны. Чтобы противостоять этому, консенсусный алгоритм должен быть отказоустойчивым и работать для достижения заранее определенного консенсуса или одобрения, по крайней мере, от большинства машин в сети.

Главные отличия между алгоритмами PoS и PoW

В криптовалютном сообществе не утихают споры о преимуществах и недостатках алгоритмов. У каждого протокола есть свои сторонники и противники.

Принцип работы PoS имеет много общего с PoW: отдельные узлы хешируют входящую информацию, стремясь к результату, который меньше установленных значений. Но между алгоритмами есть существенные отличия:

  1. Для PoW майнинга требуется дорогостоящее оборудование, тогда как в системе PoS необходимо только пополнить счет.
  2. Вознаграждение в сети PoW получает тот, кто первым решил вычисление. Proof-of-Stake не предусматривает вознаграждение за блок в принципе. Майнеры получают доход от комиссий за транзакции.
  3. В сети PoW идет соревнование между майнерами в поиске решений. В блокчейнах на базе PoS ноды определяются посредством голосования. При этом PoS майнинг может быть энергоэффективнее в десятки и сотни раз.

Алгоритм PoS не требует мощного оборудования, затраты зависят только от стоимости монет, которые необходимы для полной ноды в том или ином блокчейне.

Видео: Основная разница между алгоритмами PoW и PoS

Watch this video on YouTube

Как осуществляется защита технологии POS

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

Сеть Proof of Stake устроена таким образом, что для взлома хакерам потребуется техника с колоссальной вычислительной мощностью. Затраты на приобретение оборудования не покроют вероятный профит, который можно извлечь из взлома криптовалюты. Bitcoin работает по иному принципу. Для обеспечения безопасности сети, расходуются физические ресурсы и огромные вычислительные мощности.

В перспективе Proof of Stake криптовалюты станут популярнее монет BTC.

Что такое мастерноды

Мастернода (masternode, узел) – это сервер, который используется в децентрализованной сети для выполнения определенных задач. Проще говоря – это пользователь, который, имея необходимую долю монет, участвует в открытии блоков и получает за это вознаграждение.

Мастерноды используются не только в алгоритме PoS. Есть также проекты на основе PoW, которые используют узлы. Правда, их гораздо меньше. Поэтому неверно говорить, что мастернода – часть PoS.

Запуск мастерноды и PoS похожи в том плане, что они предполагают пассивный доход. Все, что нужно – просто заморозить средства на счету.

На уровень заработка влияют такие факторы:

  • разновидность криптовалюты;
  • как эта криптовалюта работает с мастернодой;
  • какой курс криптовалюты, будет ли он расти в ближайшие годы.

Если стоимость монет через несколько лет увеличится, запуск ноды окажется успешным инвестированием в будущее.

Для расчета рентабельности мастерноды существуют специальные сервисы, например, https://masternodes.pro/statistics. Обычно операторы мастернод имеют от 5 до 20 %. Доход зависит от количества монет на счету и курса криптовалют.

Технические моменты

Внимание: в данном разрезе речь идёт именно о «традиционном» PoS в том виде, как он есть в Peercoin, PIVX и их форках.

Надо понимать, что отсутствует какая-либо централизация и учёт «очков». В данном варианте работает всё тот же принцип удачи как и в PoW.

Терминология

Терминология относительно общая, но в различных реализация свои нюансы:

  • PoW target — цель = базовая цель, обычно 2^240 (0x0000ffff…), делённая на сложность блока (увеличивает количество нулей спереди).
  • Block difficulty — сложность блока относительно базовой цели, детерминировано устанавливаемая на основе текущего темпа роста цепи.
  • UTXO — Unspent Transaction Output, пара из хеша транзакции и номер выхода.
  • CoinBase — специальная транзакция с индексом 0 в блоке, где содержится вознаграждение.
  • Stake или CoinStake — специальная транзакция с индексом 1 в блоке.
  • Stake Input — UTXO, который соответствует требованиям для ставки по размеру и возрасту.
  • Stake Modifier — специальный детерминировано вычисляемый параметр для каждого Stake Input.
  • Stake Hash — результат хеширования, который должен быть арифметически меньше Stake Target.
  • Stake Target — то же, что и PoW target, но пропорционально увеличенная суммой Stake Input относительно минимальной ставки.
  • Block Signature — подпись блока.
  • Fork — разветвление цепи.
  • Split — разделение сети.
  • Orphan — отброшенные блоки из-за выбора другой альтернативы.

Анатомия

Процесс генерации:

  1. Находим все UTXO, которые соответствуют требования Stake Input
  2. Находим Stake Modifier.
  3. Умножаем PoW Target на сумму Stake Input
      в миллионных долях по факту — поэтому 1 MH PoW хешрейта экспериментально выходит равным одной монете.
  4. Получаем Stake Hash = H(Stake Modifier, Stake Block Time, UTXO output index, UTXO txid, Current Block Time).
      переменный параметр только Current Block Time
  5. Если Stake Hash >= Stake Target, то пытаемся подобрать Current Block Time в допустимом промежутке.
      нужно учитывать возможность переполнения Stake Target при умножении на сумму Stake Input в зависимости от реализации.
  6. Запихиваем Coinbase в tx[0], а CoinStake в tx[1].
      бенефициар’ом Coinbase является тот же скрипт (адрес), что и у Stake Input.
  7. Подписываем блок.

2.1. Время блока:

Нетрудно заметить, что жульничество со временем может дать некоторую выгоду. Стандартный консенсус ограничивает нижний и верхний предел.

Нижним всегда задаётся среднее время блоков за последние N блоков, обычно за 11. Это допуск на неточность времени на генерирующих узлах.

Исторический верхний предел был задан для PoW пальцем в небо в 2 часа. Увеличение интервалов уменьшает сложность и делает ветку менее привлекательной — поэтому нет смысла. Зато для PoS смысл есть.

PIVX и другие ограничивают время в будущем в максимум 3 минуты. Некоторые ставят более жёсткое ограничение, но это создаёт проблемы у пользователей. Некоторые реализации PoS решили изменить минимальные интервалы Current Block Time с одной секунды до 15-16 секунд.

2.2. Stake Modifier:

Stake Modifier задумывался как средство для затруднения предсказания и строительства цепи наперёд, но что-то пошло не так…

Есть различные варианты его вычисления: последние биты хешей блоков у концов прогрессивно заданных временных интервалов, [неочень] плохо предсказуемые значения из предыдущих блоков и т.п. Местами больше похоже на обфускацию кода чем на что-то вменяемое.

В оригинале берётся промежуток в 64 интервала. Этот промежуток прогрессивно делится на 64 неравные части. Границы округляются к минутам. По границам выбираются существующие блоки и с них берётся по одному последнему биту. Так получается число в 64-бита, чем-то похожее на Nonce.

Интервал в Peercon 20 минут, но ребята из PIVX решили что интервал в 1 минуту, округлённый до минуты — это то, что доктор прописал.

В общем, в некоторых реализациях типа Blackcoin V2+ всё исправлено и Stake Modifier считается от головы, а в Peercoin V03, PIVX, Blackcoin V1 и других от блока Stake Input. Последнее почти полностью уничтожает смысл. Есть предположение что путаница пошла из-за банальной проблемы именования переменных, дальнейших метаморфоз и бездумной копипасты. И сам автор достаточно поздно обнаружил проблему пока всё внимание было сконцентрировано на защите от DoS. Не попадитесь!

2.3. Подпись блока

Поскольку хеш блока больше не служит доказательством работы, а любой может взять подписанную транзакцию CoinStake из чужого блока, то требуется проверить что блок создан владельцом Stake. Поэтому заголовок подписывается тем же приватным ключом, что и CoinStake.

2.4. Скрипт выхода CoinBase и CoinStake

Одни и те же скрипты выхода, или как в народе называют адреса кошельков, требуются для сохранения приватности и избегания связывания отдельных адресов в одном кошельке.

2.5 Что и куда?

Есть разные вариации как распоряжаются с суммами в CoinBase и CoinStake. Логика и мотивация в конкретном случае:

  1. Суммы должны быть раздельны чтобы избежать даже малейшего варианта потери средств пользователя из-за ошибки обработки.
  2. CoinBase сохраняет свои 100 подтверждений, а вот CoinStake может быть потрачен сразу, что конечно оставляет риск двойной траты.
      привязывание к глубине блоков ещё и противоречит цензу по возрасту для использования в качестве Stake Input.
  3. CoinBase и CoinStake никогда не должны попадать в mempool, а все основанные на них транзакции должны удаляться при перестройке цепи.

Полные блоки против заголовков

Вступление полноценного узла в сеть начинается с синхронизации. В Bitcoin, синхронизация идёт в первую очередь на основе заголовков блоков, т.к. в них находится достаточная информация для предварительной проверки на соответствие консенсусу. Сначала вытягиваются и проверяются относительное маленькие заголовки пачками до 2000 штук с одного стороннего узла. Если изначальная проверка прошла успешно, то вытягиваются уже все блоки параллельно со всех подключённых узлов.

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

С PoS такой подход не работает, т.к. для проверки блоков требуется обработать полные предыдущие блоки хотя бы до границы минимального возраста Stake. Просмотренные автором реализации не стали извращаться, а просто отказались от работы с заголовками.

Поэтому автор реализовал параллельное оппортунистическое скачивание блоков вслед за заголовками, что значительно увеличивает скорость синхронизации из-за использования всех соединений. Мелкие задержки возникают только если пиры находятся на разных цепях — тогда соединение разрывается после незначительного таймаута как по стандартной схеме. Как минус, склонность к выбору ложной цепи на момент синхронизации.

К слову, стандартный клиент Bitcoin и его форки достаточно долго набирают минимальное стандартное количество исходящих соединений в 8 штук, если какие-то из них срываются по различным причинам. Это было решено асинхронными исходящими соединениями.

Форки, сплиты и орфаны

При конкуренции создания блоков, альтернативные цепи в 1-2 звена являются относительно обычным явлением. Более длинные форки в развитых сетях естественным путём происходят только при эпичных сбоях в консенсусе из-за ошибки программирования или глобального разрыва интернета.

Даже при наличии разделения, обычно нет угрозы целостности обработки транзакций, т.к. при отсоединении блоков все транзакции попадают обратно в mempool и включаются уже в другие блоки. Mempool — это временное хранилище транзакций после их создания. Сам mempool сохраняется на диск в последних версиях. Награда же за блок уничтожается. Именно поэтому для наград устанавливается минимальное количество подтверждений (глубина).

Бывает что локальные сегменты сети теряют связь с внешним миром и продолжают майнить, предполагая наличие соединения с основной сетью. Такие ветки обычно не представляют угрозы из-за своей естественной слабости.

Главная атака 51% для PoW уже описана выше — она крайне ресурсоёмка, а вот для PoS она становится относительно доступна. По этой причине становится технически возможным плодить множество ветвей из различных звеньев цепи. Одно из классических решений — это запрещать форки ниже определённой глубины.

Основная проблема такой защиты заключается в невозможности узлам из сегментов-отшельников самостоятельно вернуться к основной цепи после перезапуска.

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

При целевом интервале блоков в 1 минуту, критерий старого форк был выбран в 1 час, что примерно соответствует 60% подтверждений CoinBase, а критерий молодости макушки в 15 минут — в 3+ раза выше максимального статистического запаздывания блока.

Хеш блока и сплиты

В PoW хеш блока полностью покрывает все данные. Он же используется для проверки относительно цели. В PoS, Stake Hash является отдельным значением, т.к. необходимо исключить возможность его подбора. Это открывает основную угрозу — возможность плодить неограниченное количество различных версий блока на основе одного и того же совпавшего Stake, которыми легко зафлудить и положить сеть или её отдельные узлы.

Наивные подходы к защите порождают новые ещё более серьёзные уязвимости сплита. Один из таких подходов в разных вариациях — это разрешить использование Stake Input только один раз. Простая атака — послать разные блоки разным узлам, что сразу порождает мягкий сплит.

Ещё более фатально возможно это усугубить DoS-баном, что разделит не только цепи, но и саму сеть на разные сегменты.

Возникают и другие проблемы — невозможность использовать Stake из отброшенного блока.

Поэтому в качестве наиболее безопасного решения был выбран метод дросселя — один и тот же Stake может использоваться не более одного раза в минуту. Логика проста: атака может длиться только в интервале 1 часа (см. старый форк выше), за который возможно зафлудить не более 60 блоков. В лучшем случае, на следующем блоке сеть уже перейдёт на единую цепь. В худшем случае при непрерывной атаке это произойдёт через час. Вероятность самого худшего случая — нахождения нескольких блоков подряд, тает в геометрической прогрессии.

Всё равно остаются некоторые моменты, при которых узлы уязвимы к умеренному флуду до момента полной синхронизации.

Минимальный возраст

У некоторых это ограничение вызывает недоумение, но оно крайне важно для стабильности сети, т.к. данный параметр напрямую связан с максимальной длиной альтернативной сети, которую локальный узел сможет проверить без серьёзных технических извращений.

Как было упомянуто ранее, локальный узел должен обработать все блоки до временной границы возраста чтобы иметь возможность проверить что Stake Input а) имеет место быть b) действительно является UTXO и не был потрачен.

Проверить такое возможно только через функционал т.н. CoinView, который представляет из себя состояние движения монет на момент конкретного блока — верхушки главной цепи в понимании локального узла.

Реализация полноценной проверки альтернативных цепей через временные интервалы или даже специальным образом сохранённые CoinView выглядит малоперспективным, т.к. количество этих альтернативных цепей бесконечно велико.

Слишком большая планка для возрастного ценза UTXO негативно сказывается на пользователях, которые хотят потратить или объединить часть своих монет.

Если указывать эту границу в глубине блоков, то возможна гипотетическая патовая ситуация полной остановки цепи из-за того, что нет подходящего UTXO. В случае же единиц времени происходит хоть какое-то движение.

Поэтому используется сбалансированный и работающий в других сетях выбор в 1 час в абсолютных единицах времени, а не глубине блоков.

Что лучше N UTXO по минимальной сумме или один UTXO с N суммой?

Здесь сама напрашивается аналогия: что лучше одна пушка с точностью 0.9 или три пушки с точностью 0.3, но при вероятностях порядка 1/2^20 результаты таких расчётов казалось бы нивелируются. Немного карты спутывает ценз зрелости.

Бытующее мнение, что много маленьких транзакций находят больше блоков, наверно пошло со времён когда возраст Stake Input тоже учитывался для определения веса. Тогда старые маленькие транзакции действительно имели значительный смысл.

В данный момент на основе практических экспериментов и теоретических расчётов, сгруппированные в большие UTXO суммы приносят больше блоков. Вдобавок, меньшее количество UTXO требует меньше работы CPU. Кто-то утверждает и обратное.

Поэтому думайте сами.

Забегание блоков вперёд

PoS майнеры естественным путём немного опережают время блоков. Это отражается на сложности сети в худшую сторону. Стандартный код Bitcoin выбирает первый полученный блок, невзирая на указанное в нём время. Так же поступает большинство PoS реализаций.

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

Таким путём сеть защищается и от гипотетических преждевременно отосланных блоков, Stake Input которых невозможно использовать в ближайшие 60 секунд с таким же Stake Modifier’ом из-за DoS-защиты. Как бы двойное наказание за жульничество со временем.

Небольшой чеклист

  1. Stake Input должен быть действительным UTXO до fork point:
      в случае главной цепи fork point — это tip,
  2. в случае альтернативной цепи — UTXO после fork point может привести к само-DoS при переключении,
  3. само собой подразумевается, что UTXO не должен быть в mempool’е.
  4. Не принимать CoinStake в mempool при перестройке основной цепи:
      такое же происходит с CoinBase,
  5. это может уничтожить цепь транзакций (маловероятно).
  6. Не принимать форки от старых блоков, если верхушка вполне себе живая.
  7. Возрастной ценз в абсолютных единицах времени для Stake Input необходим для стабильности и безопасности.
  8. Stake Hash должен изменяться только от времени блока.
  9. Stake Modifier не должен быть привязан к блоку Stake Input.
  10. Работа с заголовками блоков требует особой обработки в сети и при переиндексировании.
  11. CoinStake записываются в локальном кошельке и требуют некоторых изменений для корректного отображения орфанов.
  12. PoS майнеры скорее всего имеют достаточно косяков и требуют доработки напильником.
  13. Re-index требует доработки, т.к. работает по аналогии с заголовками — сначала грузит и проверяет только индекс блоков, а потом только пытается обработать блоки.
  14. Если переход на PoS не жёстко задан, а через spork, то его нужно ловить на загрузке, т.к. sporks не сохраняются.
  15. Checkpoints в Dash и Bitcoin практически бутафория и требует очень серьёзной доработки.
  16. Если форк Dash до версии 0.13, то есть проблемы с обработкой данных мастернод в режиме использования простого пользователя.
      При частом перезапуске клиента, представление сети искажается.
  17. Лучше просто игнорировать кеш, если запущен в графическом режиме.
  18. Изменить выбор лучшего блока с учётом времени блока.
  19. В некоторых операциях Bitcoin присутствует неоправданная проверка уже проверенных блоков при чтении с диска.
  20. Кошелёк может пытаться отсылать в сеть и в mempool CoinStake из орфанов.

Преимущества и недостатки PoS

Протокол доказательства владения имеет ряд преимуществ:

  • Не нужно создавать фермы и покупать дорогостоящее оборудование. Нужно иметь только компьютер с кошельком и необходимое количество монет на счету.
  • Не нужно специально отведенное место для оборудования.
  • Стать PoS майнером дешевле, чем добывать монеты на алгоритме PoW. Особенно это касается тех криптовалют, которые добываются на устройствах ASIC со стоимостью в несколько тысяч долларов.
  • Низкий расход электроэнергии, в результате чего вы экономите средства.
  • Нет конкуренции между майнерами за первенство решения математической задачи. Хешрейт ограничивается владением долей монет на кошельке.
  • Защита от «атаки 51 %». Чтобы взломать сеть, мошенники должны владеть 51 % монет от общего числа. Кроме того, в результате атаки сразу же обрушится курс криптовалюты, поэтому хакерам финансово невыгодно взламывать такие платформы.

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

Но есть у алгоритма PoS и определенные недостатки:

  • Растущая централизация. Алгоритм стимулирует пользователей накапливать на своем счету средства.
  • Существует вероятность пустого стека (Nothing-as-Stake). Теоретически мошенники могут использовать несуществующие активы и создать форк в результате атаки «двойного расходования» или отклонения операций.
  • Аккумуляция большого объема средств на счетах может привести к целенаправленным манипуляциям сети узкого круга лиц.

Несмотря на присущие недостатки, алгоритм PoS остается единой альтернативой, когда все монеты намайнены и выпущены в рынок. Стать PoS майнером может только зарегистрированный пользователь, который имеет на счету необходимое количество монет. Такой механизм снижает вероятность недобросовестных участников, которые могут нарушить работу сети. В результате повышается уровень безопасности платформы, и пользователи могут хранить личные данные без особых рисков.

Что такое алгоритм консенсуса?

Консенсус в блокчейне — процесс достижения соглашения по вопросу значения распределенных данных — необходимо, чтобы решение было одно. Это идеально вписывается в структуру распределенного регистра блокчейна.

В отличие от традиционной базы данных, контролируемой администратором, публичная цепочка блоков (блокчейн) представляет собой одноранговую децентрализованную сеть, в которую потенциально может внести свой вклад любой участник. Консенсус необходим для функционирования такой распределенной сети, учитывая потенциально тысячи операторов узлов: все они должны согласовать состояние сети, чтобы она работала должным образом.

Механизм консенсуса — это процесс, с помощью которого сеть надежно и автоматически определяет, какой представленный блок участника — который является записью последних транзакций — будет добавлен в цепочку, таким образом добывая и награждая их новой криптовалютой в процессе.

Что такое Leased Proof-of-Stake

Помимо перечисленных версий PoS хочу отметить также LPoS (арендованное доказательство доли владения). Это улучшенная гибридная версия алгоритма Proof-of-Stake, которая впервые реализована на платформе Waves. Узлы-валидаторы формируют транзакции согласно протоколу LPoS. Вероятность формирования транзакции пропорциональна доле арендованной криптовалюты, которая находится во владении валидатора. Особенность данного алгоритма в том, что пользователи могут сдавать валидаторам криптовалюту в аренду и получать за это вознаграждение.

Каждая транзакция собирается в блоки, которые регламентированы по размеру и записываются по порядку в блокчейн. LPoS не предусматривает формирование новых блоков, вознаграждение начисляется в виде комиссий за проведенные транзакции и запись информации в блокчейн. Никаких сложных вычислений не требуется.

Вывод

Реальность такова, что, хоть алгори справляется с некоторыми проблемами, имеющимися при работе механизма «Proof of Work», он создает несколько новых совершенно разных проблем. В криптовалютном мире алгоритм Proof of Work является наиболее распространенным протоколом.

В мире биткойнов Proof of Work является единственным протоколом. В мире PoS большинство криптоактивов используют комбинацию из двух алгоритмов. Понимание причин, лежащих в основе этого всего, объясняет, почему PoW все ещё остаётся движущей силой блокчейн сообщества.

PoS майнинг на Raspberry Pi

Чтобы максимально снизить затраты на майнинг, пользователи используют компьютеры Raspberry Pi, точнее последнюю версию Raspberry Pi 3 B. Она позволяет практически в 100 раз сократить расходы по сравнению с майнингом на среднем ПК.

Для майнинга необходимо:

  1. Последняя модель Raspberry Pi 3 B, но можно и другие версии.
  2. Карта MicroSDHC (можно на 6 ГБ, но если есть возможность, купите на 16 ГБ).
  3. Адаптер питания или кабель Micro USB. Зарядное устройство RPi, например, будет работать круглые сутки.
  4. USB-адаптер WiFi или Ethernet кабель. Для надежности советую выбирать сетевой кабель.
  5. Кабель HDMI, USB-клавиатура и монитор (если вы планируете установку интерфейса).

Виды протоколов

Не все блокчейны создаются одинаковыми, и многие сильно различаются в зависимости от типа алгоритма консенсуса, который они используют.


изображение кликабельно

Proof-of-Work

Вкратце:

  • Proof-of-Work — это алгоритм консенсуса, который защищает децентрализованную сеть блокчейна биткойн.
  • Биткойн-майнеры пытаются решать сложные математические уравнения с помощью энергоемкого процесса, чтобы генерировать новые блоки и получать вознаграждения в биткойнах.

Самый известный алгоритм консенсуса — Proof-of-Work (PoW). Он представлен такими монетами, как Bitcoin, Ethereum и Litecoin. Подход PoW стал первым подобным алгоритмом и сегодня он продолжает широко использоваться.

PoW — это простая конструкция, которая, как известно, обладает высокой устойчивостью к кибератакам. Этот подход полностью зависит от вычислительных мощностей каждого члена сети для решения проблем и достижения консенсуса при проведении транзакции.

Тот факт, что он требует ввода данных в своей сети, делает PoW очень трудным для взлома (любая успешная атака потребует, по крайней мере, 50% мощности хеширования всей сети), но это также делает его чрезвычайно затратным с точки зрения энергопотребления. По некоторым оценкам, Биткойн использует 32 ТВтч энергии в год, что примерно равно количеству электроэнергии, используемой всей Данией.

В результате, многие отраслевые эксперты считают, что, хотя PoW и является надежным, но этот протокол уже по-немного начинает терять актуальность, и, как говорят, монеты, подобные Ethereum, изучают альтернативные меры по защите своих децентрализованных сетей. К тому же FOTON подсчитали, что вся криптоиндустрия может сэкономить около 36 миллиардов долларов в год, отказавшись от PoW.

Proof-of-Stake

Proof-of-Stake (PoS) рассматривается, по крайней мере Ethereum, как наследник трона блокчейна. PoS действует как гораздо более энергоэффективное и децентрализованное воплощение алгоритма консенсуса.

Переход крипто-гиганта Ethereum из PoW в PoS показывает потенциал, которым обладает альтернативный подход.


перенос Proof-of-Work на Proof-of-Stake

В тех случаях, когда PoW требует участия сети для совместной работы в создании узлов, PoS работает с вероятностями. Совет блокчейн определяет PoS следующим образом:

«Proof of Stake опирается на вероятностную модель для выбора валидаторов, где вероятность того, что валидатор получит блок для решения, прямо пропорциональна количеству монет, внесенных им в качестве залога для защиты сети. Этот залог может быть изъят, если было замечено какое-либо нарушение со стороны валидатора. Основная математическая головоломка похожа на ту, что используется в Proof of Work. Однако ее сложность значительно снижается»

Byzantine Fault Tolerance (BFT)

Byzantine Fault Tolerance (BFT) назван в честь старой математической загадки Задача византийских генералов. В известной загадке несколько византийских генералов окружили город своими армиями — они должны договориться о действиях при атаке или отступлении. Если решение не будет согласовано генералами, то операция приведет к катастрофе.


суть задачи

Создатели алгоритма консенсуса увидели связь между проблемой византийских генералов и проблемой поиска консенсуса в распределенной базе данных блокчейна. В некоторых приложениях, где целостность цепочки является обязательной, как, например, в платформах управления цифровыми активами, создание быстрой связи между сетями является краеугольным камнем использования блокчейна. Этот подход к алгоритму консенсуса основан на массовой координации.

Подробнее читайте в нашей статье.

Преимущества BFT-подхода в том, что это недорогое решение, которое можно масштабировать. Тем не менее, этот подход еще не завоевал доверие сообщества.

PoS пулы

Майнинг на Proof-of-Stake менее затратный, тем не менее участникам необходимо иметь на своем счету большое количество монет. Сумма депозита зависит от условий сети и стоимости монет. Чтобы быстрее набрать нужный стек, сообщество начало объединяться в пулы.

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

Присоединившись к пулу, пользователи получают такие преимущества:

  • запуск мастерноды происходит с высокоскоростного сервиса, который круглосуточно подключен к сети;
  • настройкой нод и другими техническими нюансами занимаются специалисты;
  • можно работать с любого уголка мира, даже если нет постоянного доступа к интернету или случаются перебои с электричеством;
  • поскольку пулы владеют большим количеством общих монет, можно прогнозировать стабильный доход.

Но у пулов есть также недостатки. Этот механизм не имеет должного регулирования. Организаторы пулов руководствуются своими принцами, и никто не защищен от мошенничества. Очень важно выбирать только крупные пулы, которые успели завоевать доверие криптовалютного сообщества.

В последнее время появилось большое количество мультивалютных PoS пулов, которые дают возможность объединять ставки. Рассмотрим самые популярные:

  • SimplePoSPool: https://simplepospool.com/. Полностью автоматизированный пул с прозрачной системой вознаграждения, снятий и депозитов. Общая плата за мастерноды составляет 5 % от каждой награды. Также сервис предлагает четырехуровневую партнерскую программу. Насчитывает 20 Staking и 48 Masternode.
  • Stakecube: https://stakecube.net/. 96 % вознаграждения распределяется между участниками, 1 % поступает в банк для Lottery и Airdrops и регулярно будет возвращаться всем участникам. 2 % идут на покрытие расходов для филиалов, серверов и сотрудников. 1 % идет в команду. Все отчисления прозрачны и детально описаны на официальном сайте сервиса. В листинге находится 24 монеты.
  • Staking.live: https://staking.live/. Сервис снимает 2.5 % от вознаграждения за ставку. Вывод полностью автоматизирован и неограничен. Но задержки зависят от вашего ранга. Обычно это не занимает больше 8 часов. В листинге сервиса находится 32 криптовалюты.
  • Stakinglab: https://stakinglab.io/. Сервис поддерживает более 70 монет. За каждый созданный блок компания забирает 3 % комиссии и еще 0.1 % за вывод ставки.
  • BTCpop: https://btcpop.co/home.php. Это разнообразная платформа, которая подойдет начинающим пользователям. Большое преимущество в том, что средства пользователей хранятся в автономном режиме. Сервис предлагает большое количество монет, быстрый вывод и поддержку.

Чтобы присоединиться к пулу и начать зарабатывать, необходимо выполнить несколько действий:

  1. Выбрать подходящий сервис и пройти регистрацию.
  2. Выбрать монету.
  3. Перевести необходимое количество монет на адрес пула, указав ID аккаунт.
  4. Накопленные монеты вывести на внешний кошелек.

При выходе из пула пользователи платят небольшую комиссию.

Кто и когда создал технологию Пруф оф Стейк

Впервые технология Proof of Stake была описана программистом Санни Кингом, который пытался решить проблему чрезмерного потребления классическим блокчейном электроэнергии. Произошло это в 2011 г. и на тот момент поддержание работы сети биткоина обходилось в сумму около $150 тыс. В следующем 2012 г. предстоял халвинг (снижение вдвое награды за генерацию каждого блока), что еще больше мотивировало Санни и его коллег на создание альтернативного блокчейна. Новая криптовалюта, в которой впервые был применен алгоритм Proof of Stake, получила название Peercoin. Она увидела свет в 2013 г. и использовала не только PoS, но и элементы PoW

В 2013-14 гг. стали появляться первые криптовалюты Proof of Stake, где используется только эта технология. Среди них монеты NXT и Blackcoin, которые решали несколько важных проблем PoS. В этот же период к разработке данной технологии подключился Виталик Бутерин, основатель криптовалюты эфириум. Он поставил цель – полностью перевести свой платформу на Proof of Stake, в результате чего данная технология вскоре стала доминирующей в мире криптовалют. Новая платформа носит имя Ethereum 2.0 и внедряется в несколько этапов.

Доходность PoS майнинга

Многие майнеры не считают форжинг прибыльным занятием, в отличие от PoW майнинга. Это ошибочное мнение. Владельцы больших объемов токенов, которые постоянно держат свои кошельки онлайн, получают ощутимый пассивный доход. Преимущество еще в том, что если вы не захотите продолжать форжинг, вы можете в любой момент продать монеты и возместить затраты на майнинг. Кроме того, свою долю владения можно сдать в аренду другому валидатору, получая за это процент от вознаграждения. Вы просто делегируете свою долю и ждете начислений. Никаких дополнительных действий предпринимать не нужно. Единственное, чего необходимо опасаться в PoS майнинге, – это концентрирование большого объема средств в одних руках. Это чревато централизацией сети.

Для создания уникальных платформ используют разные критерии форжинга. Разработчики криптовалют самостоятельно определяют, сколько монет необходимо иметь на счету, чтобы пользователь мог стать валидатором. В сети Waves, например, нижний лимит составляет 10 000 токенов. В сети Ripple вообще платные адреса кошельков, для активации каждого из них нужно внести 20 XRP, которые блокируются на счету и не подлежат выводу. Таким образом, создавать разные адреса кошельков в сети невыгодно.

Для PoS майнинга проще всего использовать платформу Nxt, которая предлагает сниженный порог входа. Для участия в форжинге необходимо иметь разблокированный (открытый) аккаунт, а первая транзакция должна получить 1440 подтверждений. После этого участник получает право генерировать блоки.

Внедрение в жизнь

Теперь немного о реальной истории. Первые полгода mainnet прекрасно работал на PoW и давление от майнеров не сильно ощущалось, не смотря на то, что маркетинг изначально пытался продавить PoS, предвидя возможные проблемы по своему опыту. PoS был запланирован при переходе на платформу Ethereum после внедрения Casper’а.

Официальный GPU майнер был доведён до ума и даже чем-то превосходил своего донора — ethminer’а. Был сделан официальный пул и несколько сторонних с общим хешрейтом 150-200 GH (ethash). В какой-то момент цена стремительна пошла вверх давление от майнеров стало ощутимым и вопрос досрочного перехода на PoS встал ребром.

В качестве донора была установка взять PoS ядро из PIVX 2.x как «проверенного временем и стабильного». Отсутствие каких-либо автоматических тестов в PIVX должно было насторожить автора сразу, но не тем менее основная головная боль заключалась в необходимости прикрутить всё остальное, описанное выше. Лишь потом автор узнал о всей той боли разработчиков, которые по неосмотрительности брали PIVX 2.x за основу своих проектов. Благо сам проект основывался на Dash и был благополучно обновлён до последней версии ветки 0.12 с множеством изменений из основного Bitcoin’а.

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

Подготовительные работы

Документация

Найти достаточно вменяемую документацию оказалось сложно. В основном это были обрывистые неполные материалы уровня постов на форуме. Поэтому внутренний whitepaper скорее стал продуктом реверс-инженерии.

Первое приближение

В изначальном варианте были перенесены все изменения PoS из PIVX с учётом более новой базовой версии Bitcoin/Dash. Некоторые изменения вроде индикатора CoinStake и сохранения последнего бита хеша в отдельном поле показались чрезмерными. Поэтому было решено максимально сузить PoS логику до отдельного модуля.

В этом процессе был упущен нюанс, что в индексе блока сохраняется Stake Modifier не для Stake Hash текущего блока, а для использования связанных с ним Stake Input в последующих блоках. Из-за этого вышел небольшой каламбур с логикой, но из-за другой упомянутой проблемы PIVX это практически не проявляется.

Динамичные чекпойнты

Первое и главное что вы захотите в своих проектах — это чтобы действительно надёжно работали чекпойнты. Лишь некоторые из проблем:

  1. Они не работают в принципе и могут легко привести к нерабочей базе.
  2. Они не интегрированы на этапе загрузки и соответственно бесполезны.
  3. Отмеченные как некорректные блоки не восстанавливаются — т.е. если старый клиент сломает, то даже новый уже не сможет работать.
  4. При выборе наилучшего блока не учитывается, что где-то в истории может быть некорректный предок, что в лучшем случае приведёт к отказу в работе.

Наличие статичных чекпойнтов не сильно поможет когда действовать нужно решительно и быстро. Для этого функционал spork’ов был расширен динамическими чекпойнтами, что уже подтвердило свою эффективность на практике.

Безусловно, такая сила может быть использована не по назначению. Поэтому принцип контроля spork’ов уже меняется в других проектах.

Переход на PoS не должен быть жёстко зашит

В нашем реальном мире с необходимостью согласованного обновления всех систем под контролем сторонних проектов, жёстко зашивать какие-то изменения консенсуса весьма недальновидно. Единственный разумный способ это всё тот же spork, но надо учитывать, что их значения не сохраняются.

Новая версия протокола

Это обязательно, т.к. после перехода вы захотите отрезать несовместимые узлы сети чтобы не создавать себе лишних проблем. По опыту, лучше сразу заложить такой функционал в виде изменяемого значения.

Публичное тестирование

Более одной недели добровольцы мучили testnet, но благо проблем консенсуса не было выявлено.

Для testnet был установлен ценз возраста в 3 минуты вместо 1 часа для mainnet, что подтвердило предположение о необходимости достаточно большого значения.

Калькулятор доходности

В отличии от PoW хешрейта, с PoS казалось бы сложно сделать какую-то аппроксимацию, но использование миллионных долей монеты как бы само намекает на делитель 1e6 для стандартных приближений по методологии для PoW.

На основе этих данных возможно вычислить среднее время между нахождением блоков. По опыту mainnet оказалось что к нему следует добавить возрастной ценз для Stake Input.

На основе такого уточнённого времени выходят более корректные прогнозы по доходности.

Переход на PoS в жизни

За сутки до часа X был установлен spork с номером первого PoS блока. Из-за ухода майнеров и нестабильности в сложности сети, блок пришёл на два часа раньше.

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

Изначально сформировалось несколько активных цепей, но сеть сама пришла к консенсусу, который был подкреплён динамическими чекпойнтами.

Ложка дёгтя

Обнаруженный после запуска недосмотр в Stake Modifier немного огорчил. Вышла ещё более кривая калька с кривой кальки. С другой стороны PIVX ведь как-то живёт… Безусловно, это необходимо было бы исправить, если бы не переход на кодовую базу Ethereum, чего и всем желается.

Перспективы алгоритма PoS

PoS является альтернативой энергозатратному алгоритму PoW, но в первоначальном виде протокол используется редко. Это происходит по причине растущей централизации сетей. Поэтому большинство криптовалют используют гибридные алгоритмы, которые сочетают механизмы PoS и PoW. Таким образом, Proof-of-Stake постоянно совершенствуется.

Популярные цифровые монеты активно майнятся. В скором времени им понадобится смена алгоритма по причине эмиссии всего объема токенов. Алгоритм PoS постепенно будет адаптирован под большинство проектов. Уже сегодня есть модифицированные версии алгоритма, которые снижают вероятность централизации сети. Одной из такой версий является DPoS.

Со временем PoS может стать новым стандартом криптовалютного мира, подобно токенам ERC-20. Сложность традиционного майнинга регулярно увеличивается, а рентабельность снижается. Разработчики акцентируют внимание на функциональности токенов, отодвигая курс монет на задний план.

В краткосрочной перспективе будет появляться еще больше модифицированных версий PoS, которые позволят добытым криптовалютам продолжать свою работу. Переход сети Ethereum к механизму PoS является хорошим сигналом для разработчиков. С уверенностью можно сказать, что Proof-of-Stake и его модифицированные версии – единственная альтернатива на сегодняшний день. Потребности рынка могут измениться только в том случае, если у алгоритма PoS появится более энергоэффективный конкурент.

Cписок PoS монет 2022

Tezos5G-CASHFXPaySchilling-Coin
WavesSICashNoirSanDeGo
QtumPLEXUptrenndARTAX
Neutrino USDElectra ProtocolBitstarFUNDChains
TON CrystalBoliecoinSwingFivebalance Coin
OrbsRemita CoinSwiftCashIdealCash
PAC ProtocolXChainZQuantisSpectrum Cash
HydraBitcoin AnonymousBitcurrencyAscension
LUKSO TokenKskinPaws FundsBitball Treasure
VerasityMNPoSTreeFesschainCity Coin
Oasis NetworkDrakenKnoxFSAEUR
Function XDataHighwayC2C SystemBEAR Coin
inSure DeFiNodetradeBitWhiteVENJOCOIN
EnergiGICTradeATBCoinSilvercashs
PIVXAeneasPengolinCoinBuyCoinPos
NXTEarnscoinAudaxRAKON
DUSK NetworkMintcoin2X2GENES Chain
I/O CoinWhitecoinZealiumEXOR
PeercoinNuSharesTruckcoinDonu
Sentinel ProtocolClamsAPR CoinSupertron
Sport and LeisureCraveReecoreAvantage
NeblioBitBaySierracoinEXNCE
LikeCoinVPNCoinBlockBurnWaytom
NavCoinRatecoinROIyal CoinBanklife
AXELCryptokenzElectrum DarkSimplicity Coin
ValidityMapCoinDash GreenBispex
BlocknetClubcoinGalilelMAP Protocol
StakecubeGameBetAltbetTachyon Protocol
Bitcoin 2EnergycoinSpectrumXHebeblock
NIXRupeeCryptoHashTank CoinTrading Pool Coin
webdollarInfinity Economics404BITCORN
GhostTokesFIREAsac Coin
BlackCoinGreencoinUSGoldContracoin
RubycoinUnifyINVIZIONWinsor Token
ALQOIgnitionTriipMilesCHBT
Netbox CoinGPU CoinAbosomQUISH COIN
PRCY CoinRide My CarCOVIRMONGO Coin
PetrachorLetItRideYEP CoinPivx Lite
TransfercoinDeviant CoinSpeed CoinBarkis Network
CrownBolttCoinChessCoinBackPacker Coin
VAULTZEON NetworkBitcoinStakingCryptorg Token
Monkey ProjectTokenize XchangePrivacyCipher Core Token
ZeitcoinAction CoinBallotboxRewardiqa
DARKGraviocoinInfinite RicksAkikcoin

А вы знакомы с моделью Proof of Stake? Добываете по этому алгоритму монеты или только торгуете ими?

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]