proof of stake что это простыми словами

Что такое Proof of Stake простыми словами

Майнинг криптовалюты — это весьма энергоемкий бизнес. Но такого не должно быть.

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

Proof of Stake — это альтернатива доказательству работы (Proof of Work), которое в настоящее время используют Биткоин и Эфириум.

Как Proof of Stake, так и Proof of Work являются примерами механизмов консенсуса.

Механизмы консенсуса в блокчейне

Публичные блокчейны на самом базовом уровне — это просто базы данных.

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

Механизмы консенсуса заставляют сеть работать, следя за тем, чтобы в блоки добавлялись только законные транзакции.

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

Proof of Work

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

Proof of Work был встроен в структуру Биткоина и воспроизведён другими криптовалютами, включая Эфириум. Однако одним из побочных продуктов этой системы является то, что для её решения требуется много электроэнергии и машин, работающих над проблемой.

Proof of Stake

Разработчики Ethereum создали отдельный набор обновлений, Ethereum 2.0, который работает на основе Proof of Stake и в конечном итоге объединяется с основной сетью Ethereum.

Механизм Proof of Stake на Ethereum 2.0 направлен на достижение того же результата, что и Proof of Work — безопасная проверка транзакций на блокчейне.

Но в то время как майнеры Proof of Work выделяют аппаратные ресурсы для защиты сети, валидаторы Proof of Stake выделяют свою криптовалюту. С помощью Proof of Stake, чтобы получить возможность проверить транзакции в блоке и получить связанные с этим сборы — валидаторы должны заблокировать или поставить на карту не менее 32 ETH, которые они не могут потратить. Блокчейн использует эту заблокированную криптовалюту для защиты сети.

Преимущества Proof of Stake перед Proof of Work

Как работает Proof of Stake

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

Они также случайным образом группируются в комитеты из 128 узлов, которые меняются ежедневно. Каждый раз, когда создается новый блок транзакций и добавляется в базу данных блокчейна, механизм консенсуса Proof of Stake выбирает несколько комитетов, чтобы подтвердить правильность предложенного блока.

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

Алгоритм Proof of Stake предназначен для того, чтобы снизить риски любых возможных атак.

Будущее

Ethereum — не первая криптовалюта, использующая Proof of Stake. Algorand, Cardano, Cosmos, EOS, Polkadot и Tezos внедрили Proof of Stake.

Источник

Стекинг: Плюсы и Минусы Proof of Stake (PoS), как Инструмента Пассивного Дохода

Все криптовалютные активы можно поделить на 2 типа исходя из их принципа работы: Proof of Work (PoW) и Proof of Stake (PoS).

1. Использование PoS монет, которые были предварительно намайнены, а далее проданы во время IPO;

2. Использование PoW и PoS гибридов;

3. Использование PoW в качестве метода распределения (до определенного момента).

Давайте более детально познакомимся с системой Proof of Stake (PoS)

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

Проще не бывает! Храните монеты в кошельке с доступом к интернету в режиме 24/7 и получайте вознаграждение за это.

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

Для чего используют Proof of Stake (PoS)?

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

Выгоден ли Стекинг в качестве единственного способа заработка?

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

Также стоит отметить, что «бонус» распределяется среди всех монетодержателей. Например, если у пользователя X есть 1% всех выпущенных монет, то он имеет право на 1% вознаграждения, полученного при обнаружении нового блока. Это очень грубое описание, но оно показывает общий принцип алгоритма PoS.

Основные преимущества использования:

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

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

Наиболее популярные монеты для Стекинга:

Если верить слухам, то одна из самых известных в мире криптовалют Ethereum (ETH) вскоре тоже перейдет на PoS. У монеты уникальный алгоритм поиска консенсуса среди всех криптовалют. Изначально сеть Ethereum начала функционировать через классический Proof-of-Work, постепенно переходя к Proof-of-Stake через серию хардфорков.

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

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

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

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

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

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

Несколько важных моментов которым стоит уделить внимание при выборе крипто-платформы:

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

О ЕХМО: Платформа основана в 2013 году в Лондоне, на данный момент есть представительства в Киеве, Москве, Стамбуле и Лондоне. Биржа EXMO считается # 1 в Восточной Европе и является одной из крупнейших в мире бирж по объему и ликвидности. На платформе зарегистрировано более 1,6 млн пользователей, 50 000 активных трейдеров, и около 315 000 ежедневных посетителей. ЕХМО предоставляет более 160 торговых пар. Большим преимуществом является наличие 6 фиатных валют (RUB, PLN, UAH,TRY, USD, EUR,) на платформе. Среднедневной объем торгов составляет 20–30 млн долларов.

Безопасность: У биржи хорошая репутация касательно безопасности и работоспособности. EXMO никогда не была взломана и исключала из листинга всего 2 монеты.

Инструкция по установке 2FA на EXMO.

Криптовалютная мудрость гласит: чем больше внимания вы уделили защите своего аккаунта, тем крепче вы будете спать

Источник

Как работают Proof-of-Work (PoW) и Proof-of-stake (PoS), алгоритмы достижения консенсуса в блокчейне

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

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

Какую математическую задачу решает PoW?

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

В случае с PoW используется хэширование.

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

Как работает блокчейн и транзакции?

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

Если же проблема решается слишком просто, это делает систему уязвимой для злоупотреблений, спама и DoS-атак.

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

Реализация Proof-of-Work в сети блокчейна

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

Какие алгоритмы используют доказательство выполнения работы PoW?

Преимущества принципа Proof-of-Work

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

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

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

Недостатки алгоритма PoS

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

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

Что такое атака 51% и какова ее угроза?

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

Кроме того, они могут отменять транзакции.

Предположим, Алиса послала Бобу деньги через блокчейн. Алиса участвует в атаке 51%, а Боб — нет. Их транзакция помещается в блок, но атакующие не дают переводу состояться. Происходит раздвоение блокчейна.

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

Сеть устроена так, что принимается более длинная цепочка, а короткая отклоняется, а значит, сделка между Алисой и Бобом не состоялась, и Боб не получил деньги.

Вот таким образом злоумышленники могут отменять транзакции.

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

Принцип работы Proof-of-stake

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

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

proof of stake что это простыми словами. Смотреть фото proof of stake что это простыми словами. Смотреть картинку proof of stake что это простыми словами. Картинка про proof of stake что это простыми словами. Фото proof of stake что это простыми словами

Отличия между Proof-of-Stake и Proof-of-Work

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

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

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

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

Где выгоднее покупать криптовалюту? ТОП-5 бирж

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

Надежность площадки в первую очередь определяется объемом торгов и количеством пользователей. По всем ключевым метрикам, крупнейшей криптовалютной биржей в мире является Binance. Также Binance самая популярная криптобиржа в России и на территории СНГ, поскольку имеет наибольший оборот денежных средств и поддерживает переводы в рублях с банковских карт Visa/MasterCard и платёжных систем QIWI, Advcash, Payeer.

Специально для новичков мы подготовили подробный гайд: Как купить биткоин на криптобирже за рубли?

Рейтинг криптовалютных бирж :

#Биржа:Cайт:Оценка:
1Binance (выбор редакции)https://binance.com9.7
2Huobihttps://huobi.com7.4
3Exmohttps://exmo.me6.9
4OKExhttps://okex.com6.5
5Bybithttps://bybit.com6.3

Критерии по которым выставляется оценка в нашем рейтинге криптобирж :

Источник

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

proof of stake что это простыми словами. Смотреть фото proof of stake что это простыми словами. Смотреть картинку proof of stake что это простыми словами. Картинка про proof of stake что это простыми словами. Фото proof of stake что это простыми словами

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

proof of stake что это простыми словами. Смотреть фото proof of stake что это простыми словами. Смотреть картинку proof of stake что это простыми словами. Картинка про proof of stake что это простыми словами. Фото proof of stake что это простыми словами

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

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