Что такое Proof-of-Work ?
Proof-of-Work (PoW) буквально означает «доказательство выполнения работы». Это оригинальный алгоритм консенсуса в сети блокчейн.
Данный алгоритм используется для подтверждения операции и последующего воспроизводства новых блоков в данной цепи. Используя PoW, майнеры стараются завершить транзакции в сети быстрее своих конкурентов и получить за это вознаграждение.
Пользователи сети отправляют друг другу цифровые токены. Посредством распределенного реестра, из всех этих транзакций формируются блоки. Однако, подобное подтверждение транзакций и формирование блоков требует проверки.
Данную функцию выполняют специальные узлы — так называемые майнеры, а сам процесс называется майнингом.
Основными принципами работы здесь являются математическая головоломка и возможность с легкостью доказать ее решение.
Что значит «математическая головоломка»?
Это математическая задача, для решения которой требуется большая вычислительная мощность.
Существует множество подобных проблем. Например:
- хэш-функция — как найти вводные данные, зная результат;
- целочисленная факторизация — как представить одно число в виде результата умножения двух других чисел;
- протокол пошагового руководства к головоломке. Если есть подозрения, что сервер подвергся DoS-атаке, ему требуется вычислить хэш-функцию для некоторых узлов в определенном порядке. Иными словами, проблема заключается в том, как именно найти цепь с проблемой в значении хэш-функции.
Решение проблемы PoW или математического уравнения называется хэш.
По мере расширения сети блокчейн проблем становится все больше и больше. Для их решения алгоритмам требуется все больше мощности хэша. Вот почему вопрос сложности задачи является очень важным.
Дело в том, что от этого зависит точность и скорость работы блокчейн-системы.
Тем не менее, решение данной проблемы не должно быть чрезвычайно трудным, поскольку в этом случае процесс генерации блоков займет слишком много времени. Выполнение транзакций, а с ними и работа всей системы, приостановится на неопределенный срок. Если проблему нельзя устранить за определенный промежуток времени, воспроизведение блоков станет практически невозможным.
В то же время, если задача является слишком легкой, в блокчейн-сети могут появиться уязвимости, она может подвергнуться DoS-атакам стать добычей спамеров.
А вот что касается решения головоломки, именно оно и должно быть простым. В противном случае не все узлы смогут проанализировать верность вычислений, и тогда придется полагаться на результаты от других узлов. А это является нарушением одного из наиболее важных принципов блокчейн — прозрачности.
Как этот алгоритм функционирует в блокчейн?
Майнеры решают головоломку, формируют новый блок и подтверждают осуществление транзакций.
Сложность головоломки зависит от количества пользователей, напряжения и загрузки сети. Хэш каждого блока содержит хэш предыдущего блока, что способствует поддержанию должного уровня безопасности и препятствует нарушению последовательности блоков.
Если майнеру удалось решить головоломку, формируется новый блок. В этом случае транзакции помещаются в этот блок и с этого момента считается, что процесс его подтверждения завершен.
Где обычно применяется PoW?
Алгоритм доказательства выполнения работы или Proof-of-Work используется во многих криптовалютах.
Наиболее популярным случаем применения PoW является биткойн. Именно биткойн заложил основу для данного типа консенсуса. Головоломка здесь носит название Hashcash. Этот алгоритм позволяет менять уровень сложности головоломки в зависимости от суммарной нагрузки сети. Среднее время формирования блоков составляет 10 минут. В криптовалютах, созданных на базе биткойна, таких как Litecoin, используется аналогичная система.
Еще одним популярным проектом, где применяется PoW, является сеть Ethereum. В связи с тем, что три из четырех проектов работают именно на этой платформе, можно с уверенностью утверждать, что модель консенсуса PoW используется в большинстве блокчейн-приложений.
Зачем нужен алгоритм консенсуса PoW?
Основным преимуществом применения данного алгоритма является защита от DoS-атак и низкий уровень воздействия на процесс майнинга.
Защита от DoS-атак. PoW ограничивает возможность для осуществления действий в сети. А для проведения атаки требуется множество усилий. Для того, чтобы DoS-атака прошла успешно, необходимо задействовать вычислительные мощности в огромных масштабах, а проведение расчетов займет уйму времени. Таким образом, DoS-атака хоть и возможна, но ее осуществление становится нецелесообразным ввиду слишком большого объема затрачиваемых ресурсов.
Майнинг. Не важно, сколько денег в вашем криптовалютном кошельке. По-настоящему важно то, чтобы вычислительной мощности было достаточно для решения головоломок и формирования новых блоков. Тем самым, обладатели крупных сумм в цифровой валюте не несут ответственности за работу целой сети.
В чем недостаток алгоритма консенсуса PoW?
Главными недостатками являются огромные затраты, «бесполезность» вычислений и атака 51%.
Огромные затраты. Для запуска сложных алгоритмов в процессе майнинга требуется очень дорогое специализированное аппаратное обеспечение. Постепенно намечается тенденция, что майнинг будет доступен только в специальных майнинговых пулах. Для работы такого оборудования требуется огромное количество электроэнергии, а это также делает процесс майнинга дорогим.
«Бесполезность» вычислений. Для генерации блоков майнеры выполняют большой объем работы, кроме того, этот процесс является весьма энергозатратным. Тем не менее, вычисления майнеров больше нигде не применяются. Эти расчеты гарантируют безопасность сети, но их нельзя применять в бизнесе, науке или любой другой сфере.
Атака 51% или атака большинства — это ситуация, когда один или несколько пользователей потребляют основную долю майнинговой мощности.
Получается, что в руках этих «атакующих» сосредоточены возможности для контроля большинства процессов в конкретной сети.
Они способны монополизировать процесс создания новых блоков и получают вознаграждение за то, что не дают другим майнерам завершать процесс генерацию блоков. Кроме того, они могут изменять ход транзакций.
Допустим, Вася отправил Пете деньги через блокчейн. Вася оказалась в ситуации атаки 51%, а Петя нет. Данную транзакцию поместили в блок. Но атакующие не дают перевести деньги. В этом случае в цепи происходит форк — она раздваивается.
Затем майнеры присоединяются к одной из ее ветвей. Поскольку они контролируют большую часть вычислительной мощности, в их цепи будет больше блоков.
В данной сети ветвь, живущая дольше, сохраняется, а более короткая цепь отторгается. В результате, транзакция Пети и Васи так и не осуществляется и Петя денег не получает.
Между тем, атака 51% невыгодна. Она потребляет огромное количество майнинговой мощности. Как только о данной атаке становится известно широкой общественности, такая сеть считается дефективной, что, в свою очередь, ведет к массовому оттоку пользователей. В результате цена криптовалюты неизбежно падает.