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

Как работает Proof-of-Work

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

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

Роль сложности сети

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

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

Безопасность сети

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

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

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

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