pos алгоритм что это

Что такое Proof of Stake в блокчейне?

Последние пару лет термином блокчейн уже мало кого удивишь. Все большие и больше предпринимателей и правительств открываются для технологии блокчейн, а также – для технологии распределенного реестра. Несмотря на растущую популярность, все еще возникает путаница в таких важных понятиях, как «Proof of Stake» (доказательство ставки) и «алгоритм консенсуса в сети блокчейна». Нужно восполнить этот пробел.

Proof of stake (PoS) – это консенсусный алгоритм, в соответствии с которым случайно выбранные ноды валидации (валидаторы) ставят собственные токены (стейкинг) блокчейн-сети, чтобы создать или подтвердить новые блоки в текущем блокчейне. Валидатор получает вознаграждение, успешно добавив блоки в блокчейн.

В этой статье мы разберем важные понятия блокчейна.

Почему механизм консенсуса важен в блокчейне?

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

Механизм консенсуса позволяет блокчейн-сети:

Существуют разные типы алгоритма консенсуса – Proof of Work (PoW), Proof of Stake (PoS), Practical Byzantine Fault Tolerance (PBFT), Proof of Burn (PoB) и другие вариации.

Среди этих алгоритмов консенсуса Proof of Work (PoW) и Proof of Stale (PoS) являются самыми популярными. Неважно новичок вы или профессионал, очень важно понимать разницу между PoW и PoS.

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

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

pos алгоритм что это. Смотреть фото pos алгоритм что это. Смотреть картинку pos алгоритм что это. Картинка про pos алгоритм что это. Фото pos алгоритм что это

Как работает Proof of Stake (PoS)?

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

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

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

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

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

Плюсы и минусы консенсуса PoS

Что же лучше – Proof of Stake или Proof of Work? Наиболее частым ответом на этот вопрос является сравнение преимуществ и ограничений двух протоколов консенсуса.

Proof of StakeProof of Work
Экономия энергииОгромное количество энергии из-за стремления нодов смайнить блок первыми
Требует меньшее количество ресурсовТребует огромный объем вычислительных ресурсов
Нет награды за блок, создатель блока получает комиссию за транзакцииНаграда за успешно созданные блоки
Никакой централизации ресурсов майнеровЦентрализованные майнеры преобладают на блокчейне
Проблема «nothing at stake» может привести к сбою в системе наград. PoS блокчейнам нужно добавить правила, которые предотвратят это.Майнеры обязаны тратить ресурсы, чтобы участвовать в процессе, проблема «nothing at stake» не существует

The Pros of PoS Consensus Плюсы

The Cons of PoS Consensus Минусы

Какие криптовалюты используют консенсус PoS?

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

Другие популярные крипто монеты, использующие PoS или его варианты: Nxt (NXT), Algorand (ALGO), Cosmos(ATOM), Peercoin (PPC), Steem (STEEM) и другие.

Почему Ethereum 2.0 использует Proof of Stake?

Ethereum 2.0 Serenity (PoS обновление Ethereum) – одно из наиболее ожидаемых обновлений в блокчейн сообществе. Beacon Chain выходит в декабре 2020, Ethereum наконец-то расширяет масштабируемость и увеличивает эффективность.

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

Обновление Ethereum 2.0 направлено на дальнейшее повышение скорости форжинга блоков с помощью шардинга, где каждая цепочка шардов будет иметь ту же способность обработки, что и сеть Ethereum 1.0.

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

Будущее Proof of Stake

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

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

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

Источник

Что такое Proof of Stake (PoS): обзор, стейкинг, сравнение с PoW

В статье мы расскажем, как работает алгоритм Proof of Stake (PoS), кто его создал, и чем он отличается от Proof of Work.

4 августа 2020 года команда Ethereum запустила тестовую сеть Medalla, главная задача которой — обеспечить переход платформы на алгоритм Proof of Stake, или PoS.

Что такое Proof of Stake

pos алгоритм что это. Смотреть фото pos алгоритм что это. Смотреть картинку pos алгоритм что это. Картинка про pos алгоритм что это. Фото pos алгоритм что это

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

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

Проверка нового блока происходит так:

Валидатор делает ставку: блокирует часть монет в кошельке. Обычно система устанавливает некий минимальный порог для такой ставки.

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

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

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

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

Как появился Proof of Stake

Впервые о PoS заговорили на форуме bitcointalk.org году в 2011. Пользователь под ником QuantumMechanic создал топик Proof of stake instead of proof of work. Автор писал: «Под доказательством доли я подразумеваю то, что вместо того, чтобы ваш «голос» за принятую историю транзакций взвешивался по доле вычислительных ресурсов, которые вы привносите в сеть, он взвешивается по количеству биткоинов, которыми вы владеете». По мнению QuantumMechanic это даст следующие преимущества:

Более быстрое и определенное подтверждение транзакций.

Не нужно покупать оборудование для майнинга, которое могут конфисковать (тогда статус криптовалют еще был полулегальным).

Более надежная система «права голоса», которая формироваться снизу вверх, а не как сейчас: произвольно и / или централизованно.

PoS предоставит «право голоса» всем участникам путем делегирования их монет (т.е. голосов) доверенным узлам — делегатам.

Идея QuantumMechanic понравилась сообществу bitcointalk, которые не только ее приняли, но и развили. Кроме того, со временем в Proof of Stake увидели ряд других преимуществ, например, снижение потребления электроэнергии и большая выгода в сетях блокчейна, где все монеты уже сгенерированы.

Первое практическое воплощение Proof of Stake произошло в 2012 году в блокчейне Peercoin, который использовал гибридный алгоритм PoW / PoS, где PoW нужен был лишь для эмиссии монет, тогда как PoS отвечал за валидацию транзакций. Детально эта модель консенсуса описана в работе Санни Кинга и Скотта Надаля PPCoin: Peer-to-Peer Crypto-Currency с Proof-of-Stake.

В 2014 году Даниель Люмьер доработал алгоритм, создав механизм Delegated Proof of Stake доказательства доли владения (DPoS). Он был впервые реализован в сети Bitshares и оказался настолько эффективным, что и другие криптовалюты стали постепенно на него переходить. Помимо Bitshares, Люмьер в последующем создал блокчейны Steem и EOS, которые также используют DPoS.

Основные разновидности PoS

DPoS

LPoS

DBFT

Dash, Stratis, BlackCoin, Cardano, NAVCoin

Bitshares, Nano, NEOGAS, Steem, EOS

Сегодня есть много вариаций алгоритма PoS. Самый популярный — Delegated Proof of Stake (DPoS), суть которого в том, что пользователи сети могут делегировать свои монеты другим участникам, мастернодам, голосуя таким образом за валидаторов в обмен на долю от их прибыли. Доход голосующего обычно зависит от размера его вклада в общие голоса мастернодов — чем он больше, тем выше доход.

Другие популярные вариации алгоритма PoS:

Leased PoS (LPoS). Участники могут сдавать свои токены в аренду другим участникам. Переданные в аренду монеты увеличивают «вес» узла, давая ему больше шансов на генерацию нового блока и получение награды. В обмен на токены узлов-арендодателей узел-арендатор делится с ними своей наградой.

Delegated Byzantine Fault Tolerance (DBFT). Отказоустойчивый византийский протокол, когда держатели монет выбирают «счетоводов», которые и отвечают за генерацию новых блоков и достижение консенсуса.

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

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

Proof of Stake Velocity (PoSV). Механизм консенсуса блокчейна Reddcoin, где вознаграждение валидатора зависит не только от доли владения монетами, но и от скорости выполнения работы.

Proof of Stake vs Proof of Work

Proof of Stake

Proof of Work

Транзакции валидатора, который выбирается в зависимости от количества монет в ставке, возраста стейка и активности участника

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

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

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

PoS очень рентабелен для инвесторов, поскольку не нужно покупать мощные вычислительные устройства, ASIC

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

Последнее слово

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

Источник

Что такое алгоритм консенсуса Proof-of-Stake и как работает майнинг на PoS?

pos алгоритм что это. Смотреть фото pos алгоритм что это. Смотреть картинку pos алгоритм что это. Картинка про pos алгоритм что это. Фото pos алгоритм что это

Майнинг у людей далеких от этой темы обычно ассоциируется с крупными дата-центрами, в которых шумят тысячи АСИКов или GPU-ригами на балконе. Но есть и альтернативный способ — это Proof-of-Stake (доказательство доли владения).

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

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

Навигация по материалу:

Как работает алгоритм консенсуса Proof-of-Stake?

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

Первой криптовалютой, принявшей этот алгоритм выработки консенсуса, стал Peercoin, далее его примеру последовали Nxt, Blackcoin и ShadowCoin.

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

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

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

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

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

Кроме биткоина, алгоритм доказательства выполнения работы (POW) используется в лайткоине. В Nxt применяется доказательство наличия ставки. Некоторые криптовалюты, например Peercoin, используют смешанную систему, включающую оба метода.

Сеть Ethereum сейчас находится в процессе полного перехода от доказательства выполнения работы (PoW) к доказательству доли владения (PoS) — Стейкинг в сети блокчейна Ethereum 2.0: когда запустится и какой будет доход?

Ключевые различия механизмов PoS и PoW

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

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

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

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

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

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

Какие монеты доступны для PoS майнинга на 2020 год?

Лучшие монеты для pos майнинга регулярно объявляются специалистами, публикующими соответствующие обзоры. Чтобы определиться, какие монеты для pos майнинга выбрать, рекомендуем изучить следующий список.

Название монетыДата создание и количество биржСайт
1PeercoinТоргуется на 15-ти биржах, дата создания 2012 годhttps://peercoin.net/
2DecredТоргуется на 35-ти биржах, дата создания 2015 годhttps://www.decred.org/
3BlackCoinТоргуется на 5-ти биржах, дата создания 2014 годhttps://blackcoin.org/
4NovacoinНа сайте есть PoS калькулятор. Торгуется на 2-ти биржах, дата создания 2013 годhttp://novacoin.org/
5CardanoЗакрытый приватный PoS майнинг. Торгуется на 85-ти биржах, дата создания 2015 годhttps://www.cardano.org
6EOSТоргуется на 250-x биржах, дата создания 2017 годhttps://eos.io/
7LEOcoinТоргуется на 1-х биржах, дата создания 2016 годhttp://www.leocoin.org/
8StratisТоргуется на 20 биржах, дата создания 2016 годhttps://stratisplatform.com/
9LiskТоргуется на 45-х биржах, дата создания 2015 годhttps://lisk.io/
10DiamondТоргуется на 2-х биржах, дата создания 2014 годhttps://bit.diamonds/
11ICONТоргуется на 45-х биржах, дата создания 2014 годhttps://www.icon.foundation/
12SolarCoinТоргуется на 3-х биржах, дата создания 2014 годhttps://solarcoin.org/
13EmerCoinТоргуется на 5-ти биржах, дата создания 2013 годhttps://emercoin.com/ru
14ReddcoinТоргуется на 10-ти биржах, дата создания 2014 годhttp://www.reddcoin.com/
15PIVXТоргуется на 17-ти биржах, Форк был сделан в 2016 годуhttps://pivx.org/ru/home-ru/

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

Как начать PoS-майнинг?

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

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

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

Заключение

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

До криптозимы проекты PoS находились в тени. Но, в 2020 году EOS, Tezos и Cardano вошли в первую двадцатку рейтинга coinmarketcap. Данный способ заработка цифровых активов набирает популярность, особенно его разновидность стейкинг. Вы просто замораживаете средства на определенный период и получаете проценты. Для привлечения клиентов стейкинг начали активно внедрять торговые платформы.

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

Источник

Proof-of-Stake: взгляд изнутри

pos алгоритм что это. Смотреть фото pos алгоритм что это. Смотреть картинку pos алгоритм что это. Картинка про pos алгоритм что это. Фото pos алгоритм что это

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

Эта статья будет полезной всем разработчикам, кто уже столкнулся с уязвимостями PoS или кому всё ещё только предстоит.

Ужасаемся под катом.

Крупица истории

Алгоритм PoS прошёл несколько стадий развития, кто-то даёт им версии. Сейчас варианты PoS разделились по естественным причинам, появился DPoS. Одним из самых передовых решений является протокол Casper в Ethereum.

Любому блокчейну требуется генерация блоков и за кем-то должно быть право построить новый блок. Если в таком блокчейне как система контроля версий Git это делает автор без особой конкуренции, то в криптовалютах идёт ожесточённая борьба за награду блока в рамках Proof-of-Work (PoW) — нахождение такой комбинации переменных входных параметров путём подбора, которая даёт результат, соответствующий детерминировано заданной цели (добыча, майнинг).

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

Зачем?

Экономия электроэнергии примерно так же важна разработчикам и держателям монет как ограничение выбросов парниковых газов для производителей и потребителей. Жестокая правда в другом:

На живом примере: в ноябре-декабре 2018 были попытки атак; потом в декабре-феврале был ажиотаж как на самую доходную монету для майнинга на видеокартах; курс просел с 2+ до 0.5 USD; после перехода на PoS, курс поднялся до 1 USD уже через неделю и приток инвестиций усилился.

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

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

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

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

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

2. Анатомия

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. Логика и мотивация в конкретном случае:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pos алгоритм что это. Смотреть фото pos алгоритм что это. Смотреть картинку pos алгоритм что это. Картинка про pos алгоритм что это. Фото pos алгоритм что это

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

Теперь немного о реальной истории. Первые полгода 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 это практически не проявляется.

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

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

Наличие статичных чекпойнтов не сильно поможет когда действовать нужно решительно и быстро. Для этого функционал 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 и есть надежда, что это статья поможет укрепить безопасность узлов сети. Автору уж точно не хватало материала в начале.

Примечание: в статье намерено убрано название и какие-то прямые отсылки на ресурсы проекта чтобы избежать ложных обвинений в рекламе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *