Proof-of-Work: предтеча всех алгоритмов в криптоиндустрии. Что такое Proof-of-Work и Proof-of-Stake

  • Перевод

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

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

Большинство современных криптовалют, включая Bitcoin и Ethereum, использует алгоритм Proof-of-Work для построения цепочки блоков. Вкратце, процесс PoW можно описать так: майнеры затрачивают вычислительные мощности и электроэнергию, подбирая правильную хеш-сумму, которая означает действительную подпись блока транзакций. Рассчитать обычный хеш для блока не составляет труда, но для защиты цепочки блоков от атаки злоумышленников вид хеш-суммы намеренно усложнён, например её первые четыре цифры обязаны быть нулями. В этом случае, если злоумышленник захочет изменить транзакции внутри блокчейна, ему понадобится затратить время для расчёта правильной хеш-суммы. Но т. к. в блокчейне каждый последующий блок связан с предыдущим, пересчитать хеши придётся по всей цепочке. Это делает блокчейн устойчивым к взлому, а майнерам выплачивается вознаграждение за криптографические расчёты. Более подробно процесс описывается в этом видео:

Однако, некоторые криптовалюты (Peercoin, Novacoin, Bitshares и др.) решили отказаться от концепции Proof-of-Work.

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

(Чарльз Хоскинсон изданию Bitcoin Magazine)

Переход Ethereum на Proof-of-Stake был анонсирован предположительно на конец 2017 года. В планах Ethereum всегда присутствовал переход на модель PoS при помощи ещё не завершённого протокола Casper . Впрочем, решение не окончательное: в дискуссии на Reddit, Виталик Бутерин определил вероятность реализации Casper в 2017 году как больше 50%, но меньше 80%. Но почему разработчики Эфириума колеблятся? Если PoW доказал свою эффективность от атак на примере Bitcoin, то c PoS вскрывается множество проблем с безопасностью.

И, наконец, Etherium Classic не планирует переходить в ближайшее время на PoS:

В сообществе ETC по большей части достигло согласия в том, что нам не следует спешить с переходом на непроверенный и потенциально опасный PoS. Наша команда разработчиков сейчас работает над ‘выпиливанием’ печально известной ‘бомбы сложности’, которая должна принудить к переходу на PoS посредством хард-форка. Как минимум, мы должны дождаться и посмотреть (в течение длительного периода) как произойдет такой переход в ETH, оставив им сомнительную честь тестирования непроверенной концепции на живой системе с капитализацией под миллиард долларов. Это даст нам больше времени и данных, чтобы принять решение относительно долгосрочного механизма ETC консенсуса: остаться ли нам на PoW, перейти на PoS, или на гибридную PoW/PoS схему, которая более теоретически обоснована, чем чистый PoS.

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

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

История создания алгоритма Proof-of-Work

Идея механизма PoW появилась в литературе ещё в далёком 1993 году. Тогда его предложили использовать для защиты электронной почты от спама. Хотя словосочетание Proof-of-Work ещё не прозвучало - термин появился только в 1999.

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

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

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

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

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

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

Особенности Proof-of-Work

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

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

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

Плюсы Proof-of-Work

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

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

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

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

Минусы PoW

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

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

Проблема «прожорливости» PoW усугубляется риском потратить ресурсы «в никуда». Предсказать, какой именно узел найдёт новый блок, невозможно, а вознаграждение получит только «победитель». Все прочие узлы жгли электричество напрасно.

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

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

Использование Proof-of-Work в криптовалютах

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

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

Майнинг криптовалют, использующих Proof-of-Work

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

Популярные криптовалюты на алгоритме Proof-of-Work

Само собой, главная PoW-крипта в мире - это Bitcoin. С него началась история криптовалют и пока что не видно монеты, которая смогла бы сместить биткоин с вершины и отобрать у него звание «цифрового золота».

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

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

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

Monero представляет собой редкий пример успешной валюты, использующей ASIC-защищённый PoW-алгоритм. Протокол, названный CryptoNight, использует встроенные инструкции CPU, исполнение которых на устройствах с низкой частотой и быстрой памятью или специализированном оборудовании очень затратно. Успешность Monero, впрочем, обеспечивается не нововведениями в алгоритме консенсуса, а уникально высокой анонимностью - в отличие от того же биткоина, транзакции в блокчейне Monero не отслеживаемы в принципе.

Какое будущее ждёт алгоритм Proof-of-Work?

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

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

Дешевыми, быстрыми и даже экологически чистыми.

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

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

Cодержание:

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

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

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

Делают это они, конечно, не бесплатно и зарабатывают на комиссиях.

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

Один из них – Proof o Stake (доказательство доли владения).

В чем сыр бор

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

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

Блоки создаются постоянно, и вмещают информацию о .

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

Для это и нужны майнеры, которые добывают блоки.

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

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

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

Этот алгоритм называется Proof of Work (PoW ) – подтверждение выполненной работы.

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

При чем тут Proof of Stake

Все чаще в криптомире звучит идея отхода от Proof of Work и перехода к Proof of Stake .

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

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

Чем больше баланс, тем выше вероятность того, что именно он сгенерирует блок.

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

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

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

Неужели настолько все хорошо?

Есть и скептики концепции Proof of Stake . Один из их аргументов – угроза децентрализации криптовалюты.

Ведь принцип PoS может побудить инвесторов концентрировать все больше криптовалюты в одних руках.

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

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

Разработчики криптовалюты, работающей по принципу PoS нашли компромиссный вариант решения этой проблемы.

Для создания криптовалюты используется PoW . Ее стоимость определяется затратами на производство.

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

По словам основателя Ethereum Виталика Бутерина , после форка криптовалюты потребность в сильно упадет.

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

При этом Бутерин утверждает, что присоединится к проекту сможет любой желающий, а вознаграждение для валидаторов транзакций составит от 2 до 15%.

Узнайте о том, что собой представляет протокол 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 - .