Что такое Proof-of-Work
Proof-of-Work — это метод защиты цепочки блоков цифровой валюты от разного рода атак. Дословно термин переводится, как «подтверждение работой». Алгоритм гарантирует проверку выполнения определенной последовательности действий конкретным узлом системы (то есть майнером). Данные, которые устанавливает протокол, являются информацией в найденном блоке, где отображены ссылка на предыдущий узел в цепочке и число сохраненных в блоке операций. Шанс того, что система изберет вас узлом, отвечающим за подтверждение транзакции, тем выше, чем мощнее ваше «железо». Поэтому главным критерием успешного майнинга электронных денег, базирующихся на этом алгоритме, выступает производительность оборудования. Данный фактор поспособствовал объединению пользователей в специальные группы, которые получили название «пулы».
Подробнее про алгоритм Proof-of-Work
Proof-of-Work представляет собой защитный алгоритм против атак злоумышленников, используемый в распределенных системах. Основная суть заключается в следующем:
- применение в сложных и длительных процессах;
- простота и оперативность проверки результата.
Для решения задач алгоритма PoW используют высокопроизводительную вычислительную технику. Процесс обработки данных, как правило, длится определенное количество времени. Сам процесс вычислений является более требовательным к ресурсам железа в сравнении с проверкой полученных данных.
История алгоритма Proof-of-Work
В середине 90-х годов прошлого столетия вышла статья под названием «Pricing via Processing or Combatting Junk Mail», в которой авторы впервые выдвинули концепцию Proof-of-Work (подтверждение работой). Смысл идеи состоял в том, что каждый человек, желающий получить доступ к какому-либо сервису, обязан произвести ряд операций весьма сложной и требовательной к ресурсам вычислительной системы функции. При этом процесс должен длиться определенный период времени, который можно назвать приемлемым для ожидания. Вычислительный процесс на клиентской части должен быть более ресурсоемким, чем процесс проверки полученных результатов, запускаемый на серверной стороне.
Предложенная функция должна быть неамортизируемой, поскольку в противном случае длительность процедуры вычисления значительно увеличится. Авторы статьи предположили, что дополнительные математические операции, проводимые на пользовательском компьютере, не являлись бы препятствием для нормальной отправки электронных писем, но стали бы серьезной преградой для спамной рассылки. Подобная система фактически установила бы количественное ограничение на отправку писем за определенный промежуток времени.
Определение «доказательство работы» впервые предложили авторы научного исследования «Proofs of Work and Bread Pudding Protocols», которое было опубликовано в конце девяностых годов.
Спустя 5 лет Хэл Финни предложил усложненный алгоритм, который звучит как «многоразовое подтверждение осуществленной работы» (RPoW), который должен был использоваться в электронных платежных системах. Через пару лет Сатоши Накамото создал первую виртуальную валюту, которая использовала алгоритм PoW. Он решает проблему двойного расходования токенов.
Достоинства и недостатки системы PoW
Основной минус Proof-of-Work, из-за которого и развернулась вся деятельность, касающаяся внедрения альтернативных методов защиты, связан с огромным энергопотреблением в ходе функционирования сети. Суммарные траты платформы иногда могут превосходить расходы какого-нибудь небольшого завода. Впрочем, будет сказано в защиту данного алгоритма, он вполне справляется с обеспечением безопасности площадки и нивелирования действий всякого рода злоумышленников. Именно от этого будет зависеть дальнейшее развитие и продвижение ресурса. Ведь кто станет инвестировать в проект, который не может защитить собственную сеть от хакеров.
Связь между алгоритмом и криптовалютным пространством
В самой первой виртуальной денежной единице PoW необходим для достижения консенсуса в сети. Поскольку в любой момент времени для каждого пользователя может существовать сразу несколько версий блокчейна, алгоритм определяет, какая из них является достоверной. Для реализации своей идеи Накамото воспользовался наработками упомянутого выше проекта Hashcash, несколько модифицировав готовую функцию (добавил механизм изменения ее сложности, который зависит от общей вычислительной мощности всех узлов сети). Готовая функция получила название SHA-256.
Алгоритм PoW необходим для проверки узлами сети факта проведения вычислений майнером. Последний производит расчеты сложных алгоритмов, в результате которых к цепочке блоков добавляется новый сгенерированный блок («ячейка»), хранящий определенное количество записей о проведенных транзакциях. Механизм «доказательство работы» производит попытку поиска хеша заголовка узла, в котором имеется ссылка на прошлую «ячейку» и суммарное значение всех операций, помещенных в только сгенерированный узел. Показатели хеша соответствует установленной степени.
Насколько трудоемки вычисления
Сложность описываемых операций на самом деле достаточно высока, а сам вычислительный процесс может производиться при участии пользователей. Процедура проверки результатов, напротив, является весьма простой и нетребовательной к ресурсам системы. Любой узел может получить доказательство генерации майнером нового блока. Однако ввиду сложности вычислительных процессов, производимых майнерами, весьма трудно определить, который из них справится быстрее остальных.
Для проверки достоверности нового блока производится сравнение значения его хеша с текущей целью. Если оно оказалось меньшим – блок валидный. Так наглядно демонстрируется факт проведения определенной работы для генерации блока.
Структура блокчейна такова, что каждый созданный узел, добавляемый в цепочку, хранит информацию о предыдущем. Модификация «ячеек» невозможна. Можно лишь «присоединить» новую на том же уровне, которая станет хранить хеш прошлого блока. Для этого потребуется выполнение работы по генерации всех предыдущих узлов. Подобная задача является достаточно нетривиальной и ресурсоемкой. Этим обеспечивается надежная защита сети от вмешательства третьих сторон и двойной траты токенов.
Уязвимости систем, использующих алгоритм Proof-of-Work
На данный момент по-прежнему ведутся споры в отношении целесообразности использования PoW. Эксперты установили следующие виды уязвимостей алгоритма:
- 51 % – уязвимость, характерная для Биткоина и прочих виртуальных валют на ранних этапах их развития. Ее суть заключается в том, что при попадании большей частей мощностей сети в руки злоумышленника, последний получает полный контроль над генерацией новых блоков и выполнением транзакций. Также ему предоставляется возможность внесения любых изменений в распределенную базу данных, вплоть до полной перезаписи и создания собственной ветви, которая будет признана валидной. В итоге все средства пользователей исчезнут с их электронных кошельков.
- Двойная трата одних и тех же монет. В этом случае одни и те же активы могут быть использованы несколько раз. Существует несколько разновидностей данного типа атак.
- Контроль над майнерами. Атака возможна со стороны злоумышленников, обладающих оборудованием с вычислительной мощностью менее 50% от общей производительности сети. Это достижимо благодаря использованию методов агрессивной рекламы для привлечения майнеров в пул. Задача злоумышленника – свести к нулю эффективность вычислительных процессов конкурентов (отдельных майнеров и пулов).
Как зарекомендовали себя вычислительные системы, использующие PoW
Кроме очевидных проблем с защитой данных, существуют следующие недостатки рассматриваемого алгоритма:
- Вычислительная мощность используемого майнером оборудования и вероятность генерации нового блока имеют прямопропорциональную взаимосвязь. Поэтому каждый майнер стремится увеличить производительность используемых систем. Результатом таких действий является сильный перерасход энергоресурсов.
- Результаты производимых расчетов имеют значение только внутри сети, иного применения они не имеют. Фактически, сеть обладает огромным вычислительным потенциалом, который не используется для решения полезных (например, производственных) задач.
Поскольку недостатки и проблемы алгоритма были всегда очевидными, постоянно велись работы над их устранением. В результате были предложены новые алгоритмы.
Вклад PoW в блокчейн индустрию
Использование PoW для функционирования Биткоина стало причиной возникновения целой майнинговой индустрии. Были созданы устройства, направленные на решение узкоспециализированных задач по хешированию блоков, с которыми уже с трудом справляются даже мощнейшие в мире суперкомпьютеры.
Майнинг привел к сильнейшей конкуренции в данной сфере. Многие крупные игроки в погоне за прибылью стали наращивать свои вычислительные мощности, что привело к значительному увеличению потребления электроэнергии. В уже далеком 2012 году общая сеть Биткоин превзошла по мощности самый производительный компьютер. Примерно в тот же момент была предложена одна из первых альтернатив используемому на тот момент алгоритму PoW — Proof-of-Stake.