Алгоритм Proof of Stake: особенности схемы работы в сравнении с Proof of Work. Proof-of-Work и Proof-of-Stake: сравнение

Скачать Viber 14.07.2019
Скачать Viber

Proof-of-Work и Proof-of-Stake – это алгоритмы консенсуса, которые используются для проверки новых блоков сети, а также добавления транзакций в них. Соответственно, принцип работы этих систем непосредственно касается майнеров, которые в режиме 24/7 расшифровывают блоки. В чем же заключается разница между двумя алгоритмами и какой из них является более выгодным с точки зрения майнинга? Рассмотрим их принципы работы, а также составим сравнительную характеристику.

Proof-of-Work: принцип работы

Пруф-оф-ворк (Proof-of-Work), или PoW, как его называют сокращенно, с английского переводится как «доказательство работы». Собственно в названии самого алгоритма и заложен принцип его работы. Он дает возможность сети проверить, что майнер фактически выполнил всю работу по вычислению функции SHA-256 или Scrypt, заложенные в основу криптовалют.

Суть PoW состоит в следующем:

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

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

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

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

Proof-of-Stake: принцип работы

До 2012 года PoW являлся единственным алгоритмом, задействованным в криптовалютах, но на горизонте появился конкурент. Им стал алгоритм Пруф-оф-стейк (Proof-of-Stake), или PoS, что в переводе с английского означает «проверка доли». По структуре своей работы он принципиально отличается от «доказательства доли». Если в первом алгоритме для повышения приоритета в сети использовались вычислительные мощности, то в случае с PoS – главную роль играет количество монет в кошельке.

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

Proof-of-Work и Proof-of-Stake: на чьей стороне сообщество?

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

Кроме того, сегодня довольно часто используется гибридный вариант, объединяющий оба алгоритма. Когда осуществляется эмиссия монеты, сеть работает на Proof-of-Work, а когда эмиссия закончена – на Proof-of-Stake. Это вполне логично. Ведь активное участие на этапе проверки работы позволяет накопить достаточное количество монет для того, чтобы «органично» вклиниться в новый этап проверки долей.

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

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

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

Строго говоря, идея PoW была предложена Синтией Дворк и Мони Наор еще в 1993 году, но сам термин появился гораздо позже, в 1999-м, в статье Маркуса Джейкобсона и Ари Джуэлса.

Но вернемся в настоящее. Не будет преувеличением сказать, что Proof-of-Work - главная идея, лежащая в основе биткоина: именно она служит базой для распределенного реестра.

Что такое распределенный реестр?

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

При традиционных методах проведения финансовых операций вы фактически доверяете свои средства третьей стороне (например, Visa, Mastercard, PayPal или банку), которая и осуществляет транзакцию. Третья сторона ведет собственный закрытый реестр транзакций, включающий записи об истории сделок и данные о балансе каждого аккаунта.

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

Proof-of-Work и майнинг

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

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

При транзакции с криптовалютой происходит следующее:

  • Транзакции случайным образом группируются в блоки;
  • Майнеры подтверждают легитимность транзакций в каждом блоке;
  • Для этого им приходится решить сложную математическую задачу, известную как proof-of-work problem;
  • Первый майнер, решивший задачу, связанную с конкретным блоком, получает вознаграждение в виде криптовалюты;
  • Заверенные транзакции добавляются к блокчейну, который доступен каждому участнику системы.

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

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

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

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

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

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

Разработчики Ethereum хотят изменить систему целиком, перейдя к новой системе под названием Proof-of-Stake.

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

Proof-of-Stake - другой способ верифицировать транзакции и обеспечивать distributed consensus.

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

Идея Proof-of-Stake была впервые предложена на форуме bitcointalk еще в 2011 году; год спустя появились первые криптовалюты, использующие этот метод, - Peercoin, ShadowCash, Nxt, BlackCoin, NuShares/NuBits, Qora и Nav Coin.

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

Никакого вознаграждения за блок

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

Сообщество Ethereum и создатель криптовалюты Виталик Бутерин планируют провести хардфорк , чтобы перейти с системы Proof-of-Work на Proof-of-Stake.

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

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

Недавнее исследование показало, что к 2020 году транзакции в сети биткоина будут потреблять столько же электричества, сколько все население Дании.

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

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

Как стать форджером?

Если новый протокол Proof-of-Stake под названием Casper будет применен, в системе появится некий пул валидаторов. Пользователи смогут присоединяться к пулу, чтобы получить возможность войти в число форджеров. Сам Бутерин утверждает:

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

Вознаграждение для валидаторов составит «от 2% до 15% от суммы транзакции», говорит Бутерин, - впрочем, по этому пункту у него пока нет уверенности.

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

Более надежная система?

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

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

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

Системе PoS, напротив, понадобятся дополнительные средства защиты - без этого атаковать ее будет гораздо проще.

Чтобы разрешить этот вопрос, Бутерин создал протокол Casper, -алгоритм, способный определять обстоятельства, при которых неблагонадежный валидатор может потерять свой депозит. Он поясняет: «Casper требует, чтобы валидаторы вносили вклад для участия. Участник теряет депозит, если протокол определяет, что он нарушил некоторый набор правил».

Вывод

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

Таким образом, переход от PoW к PoS может обеспечить следующие преимущества:

  1. Экономия энергии;
  2. Более безопасная сеть, поскольку атаки станут более дорогими: если хакер захочет купить 51% от общего количества монет, рынок отреагирует быстрым повышением цен.

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

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

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

Подготовила Тая Арянова

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

Древняя клинописная табличка для учёта. Когда кто-то должен мне несколько коз

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

В базах данных IOU, маржинальная стоимость добавления дополнительной строки равна нулю . После того, как я решил отразить первичные капиталовложения посредством «заострённой палочки и глиняной таблички» (или 1U сервера и копии MySQL), действительно выяснилось, что стоимость добавления дополнительной строки и отслеживания добавленных активов равна нулю. Причина, по которой мы используем такие инструменты учёта именно в том, что стоимость хранения записи намного меньше, чем цена отслеживаемого актива.

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

В чём отличие Биткойна? Дело в том, что здесь запись в базе данных является активом. Иными словами – это первый цифровой образец облигации. Это «распределённая база данных», разделённая на части, что позволяет ей быть носителем долговых обязательств. Централизованная база данных не может содержать облигации, так как их нельзя оттуда удалять.

Proof of Stake

В основе идеи «Proof of Stake» лежит замена «майнеров» на «дольщиков», «кузнецов» или «валидаторов» – лиц, которые держат монеты, и также как и в «Proof of Work », стремятся максимально увеличить свои доли. Мы будем называть их «валидаторы». Стратегия максимизации прибыли майнеров в Биткойне одновременно обеспечивает как консенсус, так и распределяет активы в виде монет. Биткойн объединяет эти две разные идеи идеи. Давайте разделим их и рассмотрим по отдельности.

Консенсус

Есть масса литературы, освещающая создание баз данных, отказоустойчивых по отношению к задаче византийских генералов (Byzantine Fault Tolerance , BFT) – самой продвинутой из них является BFT медоеда (Honey Badger BFT). Тема в индустрии давно забыта, потому что в принципе, никто не хочет делиться своей базой данных. Таким образом, индустрия в настоящее время предлагает только базы данных, которые толерантны к «не-византийским» отказам, таким как сбои узлов. Эта литература описывает верный способ обработки «византийских» отказов без экономического стимулирования.

Предположение, что стратегия увеличения прибыли может быть применена к монете, подразумевает, что в первую очередь эта монета сколько-то стоит. Но как мы уже говорили, маржинальная стоимость строки базы данных равна нулю, даже если она причудливо криптографически подписана. Максимизация прибыли базы данных, состоящей из набора строк с нулевой стоимостью, эффективно равна нулю. Это экономический способ описания проблемы «Nothing at Stake» (ничего на кону). Расчёт максимизации прибыли налицо – создание блоков с нулевой стоимостью и порождение форков ничего не стоит.

Тот факт, что создание форков ничего не стоит, привёл к тому, что в некоторых монетах были попытки помешать реорганизации цепи. Это либо приводило к запрету реорганизации цепи дальше определённой глубины (720 блоков в NXT), или же к введению «времени обязательства» (bonding time). То есть для того, чтобы стать валидатором, участник должен внести обеспечительный взнос — другими словами, обязательство — и этот взнос блокируется на определённый период времени (для ‘а Ethereum’а предлагается период в четыре месяца). Но это не решает фундаментальную проблему, а только говорит о том, насколько глубок должен быть форк атакующего. Давайте определим это как время форка доли F .

Понятие консенсуса в данном случае также основывается на закольцованной аргументации : у меня был консенсус энное количество (F) блоков назад, и я могу это использовать, чтобы принять решение о консенсусе в отношении определённого блока (F) +1. Этот аргумент является округлённым и логически некорректным. Злоумышленник может просто создать 10000 форков, отступив некоторое количество блоков назад. Удачи в поисках единственно корректного.

Это подтолкнуло некоторых людей в собществе Эфириума принять понятие слабой субъективности, принцип которой означает «Я думаю, что могу проверить последний хэш-блок и найти верный ответ». Но такой аргумент пагубно некорректен, особенно, при наличии 10 000 потенциально допустимых форков. Кроме того, это социально-политическое решение технической проблемы. Допустим, злоумышленники оказались готовы и способны создать поддельные веб-сайты для своих атак, посредством предоставления поддельной истории и несущественных затрат. В этом случае им ничего не будет стоить предоставить ложную историю любыми способами.

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

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

Наконец, есть распространённый аргумент — «Значит ли что существующие монеты в «Proof of Stake» работают?». В действительности Peercoin, NXT, Bitshares и другие функционируют уже в течение многих лет. Тем не менее, есть очень серьезная, негативно стимулирующая проблема. Понятно, что можно стать валидатором, к примеру, на NXT и создать форк длиной 720 блоков. Но при этом я бы получил бы кучу $СкамКойнов, которые не смог бы продать. Правда, такой негативный стимул предохраняет эти монеты от уровня атак, присущх Биткойну. И к тому же, отсутствие доказательства не является доказательством отсутствия.

Распределение монет

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

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

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

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

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

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

Его якорь c реальным миром, если сравнить с тем, как это было изначально в «Proof-of-Work», нормализуется. Любой потенциальный валидатор сможет конкурировать с определённым пулом «Proof-of-Work», и такое валидаторство — игра с нулевой суммой. Поскольку существует ряд аккаунтов, не являющихся валидаторами, система распределения монет превратится в инфляционную передачу активов от «не-валидаторов» к валидаторам. Таким образом, «бомбу сложности» лучше назвать «инфляционной бомбой».

Для тех, кто ниасилил: Резюме

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

Кроме того, даже если бы «Proof of Stake» работал, с точки зрения реальной стоимости такая монета не имела бы устойчивого вознаграждения. Она бы имела нулевую стоимость и нулевое значение. Правильное применение технологии в этих случаях — это использование базы данных BFT и признание того факта, что представленные активы являются долговыми расписками.

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

  • Перевод

Продолжаем переводить крутые статьи с сайта Bytecoin.org . Сегодня - «Alternatives for Proof of Work, Part 1: Proof Of Stake » Рэя Паттерсона (Ray Patterson).
Также читайте перевод «Краткой истории эволюции proof-of-work в криптовалютах»: и .

Критика Proof of Work

Как мы все помним, Proof of Work родился в далеком 1993 году в семье криптографов; родители прочили ему карьеру защитника от DoS и спама . Однако в 2008 году ему поступило заманчивое предложение от некоего анонима с япоским акцентом: стать основой для распределенного сервера меток времени. Схема представлялась простой: узлы сети «голосуют» за свою версию истории транзакций, вкладывая свои мощности в вычисление «редких» хешей. Версия, получившая большинство голосов, принимается другими узлами в качестве эталонной.

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

И это все изменило. В мире криптовалют PoW превратился в монстра, пожирающего электричество в гонке за прибыльностью майнинга. Серьезные претензии появились примерно в 2012 году, когда суммарная мощность Bitcoin-сети «обогнала » по производительности самый мощный суперкомпьютер в мире. «Бесполезная трата энергии!» - раздавались со всех сторон крики. Робкие протесты защитников по поводу защиты от атаки 51% и энерго-аппетитов банковских терминалов игнорировались, благо на горизонте уже была первая альтернатива – Proof of Stake.

Proof of Stake

В качестве идеи появился на свет в одном из постов на bitcointalk еще в 2011 году. Первая реализация увидела свет через год, в 2012, в криптовалюте PPCoin (сейчас называется PeerCoin). В дальнейшем подобные протоколы появились и в других проектах, о них чуть позже.

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

Как работает PPCoin

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

  1. Выбираем свой выход, который был получен как минимум 30 дней назад.
  2. Формируем структуру Kernel , куда входят: детерминированные данные от выхода (время блока, в котором он появился, его номер внутри блока и т.д.), текущее время и т.н. nStakeModifier (периодически пересчитываемый блок псевдослучайных бит).
  3. Хэшируем Kernel и сравниваем полученное значение с текущей целью, которая зависит от текущей сложности сети (выше сложность – меньше цель), «возраста» выхода (больше возраст – больше цель) и его суммы (больше монет – больше цель).
  4. Если хэш оказался больше цели – возвращаемся к п.1, берем следующий выход.
  5. Если же выход оказался «удачным» – мы тратим его в coinbase-транзакции (отправляя себе же), прибавляем награду за блок и комиссии от включенных транзакций и подписываем весь блок ключом, который был связан с потраченным выходом.
  6. Вуаля, блок готов. Начинаем поиски следующего.
Замечания:
  • Проверка блока детерминирована: текущее время берется из заголовка блока, данные выхода – из блокчейна, nStakeModifier тоже однозначно вычисляется для каждого блока.
  • Выход должен быть «старым», чтобы атакующий не мог, пересылая деньги между своими кошельками, получить «хороший» выход, который сразу же позволяет найти блок.
  • nStakeModifier рассчитывается на основе последних блоков, и потому непредсказуем. Благодаря этому майнинг делается еще более непредсказуемым (и более устойчивым к возможным атакам).
  • Текущий Timestamp в п.2 может варьироваться в широких пределах: плюс-минус час. Поэтому по факту для каждого выхода можно проверить 7200 хэшей, а не один.
  • «Возрастной» множитель цели ограничен сверху 90 днями . В противном случае атакующий мог бы, располагая всего несколькими ОЧЕНЬ старыми монетками, с высокой вероятностью сгенерировать несколько блоков подряд.

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

Благодаря этому мы получаем следующий профит:

  1. Бережем энергию. Здесь не поспоришь, хотя и для PoW можно использовать «полезную работу» (см. Primecoin) или ASIC-resistant функции (Cuckoo Cycle, CryptoNigh, Ethash etc.), которые бы ограничили область майнинга персональными ПК.
  2. Отсутствие бесконечной «гонки вооружений»: теперь общий хэшрейт ограничен не правилом Мура и законами термодинамики, а общим числом монет в кошельках участников. С другой стороны, в такой модели сложно понять, в честных ли руках находится крупный процент ресурсов?
  3. Атака становится дороже. Если я захочу купить 51% монет, то рынок отреагирует быстрым ростом цены. Кроме того, какой мне смысл делать атаку на сеть, если все мои ресурсы вложены в виртуальные монеты этой сети?
Кажется, что все замечательно: мы фактически заменили физическую работу неким виртуальным ресурсом. Но не кроется ли именно в этом проблема?

Критика Proof of Stake

Ответьте на вопрос: сколько стоят потраченные деньги? Если кто-нибудь обратится к вам и предложит купить у вас приватные ключи, с которых вы уже давно потратили все деньги, - на какой цене вы договоритесь? Поскольку эти ключи уже ничего не стоят и никому не нужны – предполагаю, что вас устроит любое предложение: это же деньги из ничего!

А теперь представьте, что для какого-то момента Х в прошлом окажется, что 50% (или больше) всех монет лежали на ключах, купленных сейчас атакующим. Для простоты можно считать, что момент X – это время сразу после создания второго блока, и некто купил ключи обоих блоков, т.е. вернись он в прошлое – обладал бы 100% всей денежной массы.

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

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

С такой конкретной атакой, конечно, можно бороться. PeerCoin, например, использует практику регулярных чекпоинтов: блоков, подписанных ключом разработчика, «глубже» которых запрещено перестроение блокчейна. Но это частное решение, которое не избавляет от более общей проблемы – Nothing on stake.

Проблема заключается в том, что майнинг – голосование – ничего не стоит, не требует никаких физических затрат. Если, например, в какой-то момент появятся два блока на одной высоте (форк цепочки), то можно одновременно майнить обе версии цепочки. С PoW такое невозможно в принципе по очевидным причинам: каждый проверенный хэш цепочки А – это непроверенный хэш цепочки Б. PoS же позволяет вам производить перебор во всех «параллельных мирах» сразу, причем на любой высоте (т.е. в том числе и в прошлом).

В PoS вам гораздо легче осуществить атаку double-spend. Достаточно всегда майнить две версии следующего блока: один с транзакцией, переводящей ваши деньги продавцу (который не ждет N подтверждений), а другой – с переводящей их вам. Если случится так, что вы найдете оба блока, то первый вы отправляете продавцу (и получаете свой товар), а второй – всем остальным. С большой вероятностью продолжена будет вторая версия цепочки, и деньги вернутся к вам.

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

Если вам интересна эта проблема, то подробности можно найти

Честно говоря, не встретил в комментариях чего-то близкого к практическим реализациям.
Сейчас есть две основные валюты, поддерживающие PoS: Novacoin и PeerCoin.

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

При старте валюты монеты сначала добывались только с помощью PoW, чтобы не было ситуации, когда у разработчика изначально есть деньги и он якобы их раздает, кому хочет. Первые монеты майнились, "по старинке" видеокартами. Когда первые монеты созрели до 30 дней, подключился уже PoS майнинг. Основная эмиссия и проведение транзакций идут через ПоС для энергоэффективности и, на мой взгляд (мнения разработчиков может отличаться), для того, чтобы монеты попадали не столько PoW майнерам, тут же сливающих монеты на биржах, а заинтересованным в развитии валюты PoS майнерам, хранящим свои деньги в Новакоине. на один PoW блок (обычный майнинг мощностями) приходится 3 блока PoS. Гибридный подход используется не только для выпуска первых монет, но и для повышения безопасности. Биткоин и другие PoW системы уязвимы к атаке 51% PoW: получивший контроль над большей частью мощностей может атаковать сеть даблспендом и т.д. Аналогичная ситуация и в чистой PoS системе: хоть это и выглядит несколько маловероятно, но если найдется в чистой системе ПоС лицо, получившее контроль над 51% деньгами всей валюты, то он теоретически так же может атаковать. Гибридная архитектура эти ситуации кардинально меняет: теоретически, чтобы атаковать сеть, надо одновременно и владеть мощностями и деньгами, что в устоявшейся валюте звучит невозможно. Кроме безопасности, огромным преимуществом является энергоэффективность такой валюты: большая часть транзакций проводится с помощью ПоС майнинга, не требующего трат на оборудование для майнинга и электроэнергию: достаточно обычного кошелька с монетами, работающего в фоне.
Саморегуляция Новакоина продумана так, что посмайнинг в устоявшейся валюте перестает быть средством обогащения богатых: сложность задирается, а если она растет, то награда за блок падает. Ограничения на награду сверху (сейчас 10 монет) создают выравнивающий фактор: 100 монет или 1000 на входе не сделают за раз больше 10 монет. В общем, система не так проста и глупа, как в описано в комментарии выше. При этом нет ситуации, как в биткоине, когда майнинг действительно выгоден только богатым производителям оборудования, владельцем пулов и хозяем датацентров майнерских, появляющихся в Китае и Швеции.



Рекомендуем почитать

Наверх