Proof-of-Work и Proof-of-Stake что это? Что такое Proof-of-Work – от истоков к сути.

  • Перевод

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

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

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

Proof-of-Work - это метод защиты цепочки блоков цифровой валюты от разного рода атак. Дословно термин переводится, как «подтверждение работой». Алгоритм гарантирует проверку выполнения определенной последовательности действий конкретным узлом системы (то есть майнером). Данные, которые устанавливает протокол, являются информацией в найденном блоке, где отображены ссылка на предыдущий узел в цепочке и число сохраненных в блоке операций. Шанс того, что система изберет вас узлом, отвечающим за подтверждение транзакции, тем выше, чем мощнее ваше «железо». Поэтому главным критерием успешного майнинга электронных денег, базирующихся на этом алгоритме, выступает производительность оборудования. Данный фактор поспособствовал объединению пользователей в специальные группы, которые получили название «пулы».

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

  • применение в сложных и длительных процессах;
  • простота и оперативность проверки результата.

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

В середине 90-х годов прошлого столетия вышла статья под названием «Pricing via Processing or Combatting Junk Mail», в которой авторы впервые выдвинули концепцию Proof-of-Work (подтверждение работой). Смысл идеи состоял в том, что каждый человек, желающий получить доступ к какому-либо сервису, обязан произвести ряд операций весьма сложной и требовательной к ресурсам вычислительной системы функции. При этом процесс должен длиться определенный период времени, который можно назвать приемлемым для ожидания. Вычислительный процесс на клиентской части должен быть более ресурсоемким, чем процесс проверки полученных результатов, запускаемый на серверной стороне.

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

Несколько позже был реализован проект Hashcash, воплотивший функцию, суть которой описана в указанной выше статье. Определение «доказательство работы» впервые предложили авторы научного исследования «Proofs of Work and Bread Pudding Protocols», которое было опубликовано в конце девяностых годов.

Спустя 5 лет Хэл Финни предложил усложненный алгоритм, который звучит как «многоразовое подтверждение осуществленной работы» (RPoW), который должен был использоваться в электронных платежных системах. Через пару лет Сатоши Накамото создал первую виртуальную валюту, которая использовала алгоритм PoW. Он решает проблему двойного расходования токенов.

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

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

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

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

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

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

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

  1. 51 % – уязвимость, характерная для Биткоина и прочих виртуальных валют на ранних этапах их развития. Ее суть заключается в том, что при попадании большей частей мощностей сети в руки злоумышленника, последний получает полный контроль над генерацией новых блоков и выполнением транзакций. Также ему предоставляется возможность внесения любых изменений в распределенную базу данных, вплоть до полной перезаписи и создания собственной ветви, которая будет признана валидной. В итоге все средства пользователей исчезнут с их электронных кошельков.
  2. Двойная трата одних и тех же монет. В этом случае одни и те же активы могут быть использованы несколько раз. Существует несколько разновидностей данного типа атак.
  3. Контроль над майнерами. Атака возможна со стороны злоумышленников, обладающих оборудованием с вычислительной мощностью менее 50% от общей производительности сети. Это достижимо благодаря использованию методов агрессивной рекламы для привлечения майнеров в пул. Задача злоумышленника – свести к нулю эффективность вычислительных процессов конкурентов (отдельных майнеров и пулов).

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

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

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

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

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

Майнеры работают 24/7 не только для того чтобы добывать монеты. Основная их задача - записывать текущие транзакции между кошельками в новые блоки. Именно для этого и служат «Proof of work» и «Proof of stake» - алгоритмы для валидации транзакций.

Proof-of-work

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

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

Proof-of-stake

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

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

Немного истории

Принцип PoW впервые был описан в 1993 году в работе «Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology» (авторы – Синтия Дворк и Мони Наор). Авторы предложили следующую концепцию:
«Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления».

Непосредственное применение этот принцип получил в проекте Hashcash, основанном Адамом Бэком в 1997 году. Задача состояла в том, что бы найти такое значение x, что хеш SHA(x) содержал бы N старших нулевых бит. При отправке писем по эл. почте применялось хеширование частичной инверсии и для отправки каждого письма нужно было примерно 252 хеш-вычисления.

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

В 1999 году появляется и сам термин Proof-of-Work – использован он был в статье «Proofs of Work and Bread Pudding Protocols» (авторы – Маркус Якобссон и Ари Джуелс) в журнале Communications and Multimedia Security.

При создании Bitcoin Сатоши Накамото взял за основу принцип PoW, проекта Hashcash, добавив к нему возможность изменения сложности алгоритма - уменьшение или увеличение N (требуемого числа нулей) в зависимости от суммарной мощности участников сети. Вычисляемой функцией стала SHA-256. Механизм PoW был использован как средство подтверждения того, что майнер фактически выполнил работу по нахождению нового блока и добавлению его в блокчейн.

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

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

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

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

Отличия

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

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

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

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

  • Proof of Activity (доказательство активности) - стандартная гибридная схема, совмещающая PoW и PoS;
  • Delegated Proof of Stake (делегированное подтверждение доли) - общий термин, описывающий эволюцию базовых консенсус-протоколов на основе подтверждения доли. DPoS используется в , а также в предложенных алгоритмах, таких как Slasher и Tendermint;
  • Proof of Burn (доказательство сжигания) - «сжигание» происходит путем отправки монет на такой адрес, с которого гарантированно нельзя их потратить. Избавляясь таким образом от своих монет, пользователь получает право на пожизненный майнинг, который также устроен как лотерея среди всех владельцев сожженных монет;
  • Proof of Capacity (доказательство ресурсов) - реализация популярной идеи «мегабайты как ресурсы». Необходимо выделить существенный объем дискового пространства, чтобы включиться в майнинг;
  • Proof of Storage (доказательство хранения) – похожая на предыдущую концепция, при которой выделенное место используется всеми участниками как совместное облачное хранилище.

Видео


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 остаются конкурентами.

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

Что такое Proof-of-Work – от истоков к сути

Первая идея, которую можно отнести к термину Proof-of-Work, появилась в 1993-ем году в работе Синтии Дворк и Мони Наор, которая носила название «Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology». Создатели этой работы выдвинули идею о том, что для получения доступа к общим ресурсам пользователю нужно осуществить определенные сложные вычисления, что позволит защитить данный ресурс от чрезмерного употребления участниками сети. Спустя 4 года был запущен проект Hashcash, который был посвящен системе защиты от спама. Системой было предложено хэширование части инверсии посредством использования ресурсов электронной почты. Чтобы рассчитать конкретный заголовок требовалось 252 вычислений при каждой отправке. При необходимости отправки стандартных писем препятствия не создавались, а вот для рассылки спама пересчет становился очень сложно выполнимой задачей. А для проверки корректности вычисляемого кода не требуется большого количества времени, поскольку применяется специальный тип вычисления SHA-1 при заблаговременно подготовленной метке.
Через два года термин Proof-of-Work (PoW) уже стал официально использоваться, а впервые был официально освещен в статье Якоббсон и Джуэлс на тему протоколов. Через некоторое время принцип работы Proof-of-Work (PoW) был использован для построения сети Bitcoin – протокол позволял достигать консенсуса. Сатоши Накамото, разработчик Биткоина, несколько видоизменил первоначальный вариант Proof-of-Work , добавив к нему механизм изменяющейся сложности, который уменьшал или увеличивал требуемое число нулей относительно общего объема мощностей пользователей биткоин-сети. Полноценную работу системе обеспечила функция SHA-256.


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

Отличительные черты Proof-of-Work: как все это работает

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

То, как работает Proof-of-Work , можно заключить в следующие пункты:

  1. Обязательное выполнение трудоемких вычислений;
  2. Быстрая и легкая проверка результатов.

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

Proof-of-Work vs. Proof-of-Stake: сравнение алгоритмов


Proof-of-Work (PoW) , в переводе с английского доказательство работы, способствует в некоторой степени подверженности криптовалют двойному расходованию. При этом Proof-of-Work (PoW) снижает этот показатель по мере увеличения объемов подтвержденных транзакций в рамках сети, что говорит о зависимости от количества вычислительных мощностей, которые находятся в распоряжении хакера. Как гарантии с использованием Proof-of-Work (PoW) криптовалютами, является снижение рисков двойной траты и пользователи ожидают конкретного количества подтверждений операции, а также используют системы защиты по снижению показателей риска для быстрых платежей.
Возможно тяжело сразу понять, что это Proof-of-Work но простыми словами если проводя параллели между его основным конкурентом PoS, нельзя не отметить, что эти алгоритмы могут быть подвержены аналогичным атакам, однако результат этого бывает разный. Главная опасность для них представлена в лице DoS, или отказа в обслуживании, и Sybill attack, или атаки Сибиллы. Первая атака ориентирована на прерывание нормального функционирования системы, что достигается благодаря переполнению узлов сети. К примеру, хакер может наводнить сеть операциями с низкой стоимостью в колоссальном количестве – вспомним флуд-атаку Биткоин-сети 2 года назад. При использовании атаки Сибиллы работа сети подрывается посредством создания грандиозного количества некорректно функционирующих узлов.
Уровень подверженности алгоритма Proof-of-Work и его конкурента данным атакам имеет зависимость не только от разновидности согласования, которое применяется в рамках сети, но и от детализации сетевого протокола. При этом на сегодня нет внутренних характеристик, которые могли бы сделать тот или иной протокол менее восприимчивым к атакам.


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

Плюсы и минусы Proof-of-Work (PoW)

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