PoW

Материал из Minter Wiki

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

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

Впервые концепция Proof-of- Work была описана в 1993 году в работе «Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology» (авторы – Синтия Дворк и Мони Наор). И хотя сам термин в статье еще не использовался, авторы предложили следующую идею:

Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления

Принцип работы

Hashcash функция используется в Bitcoin для создания блоков. Майнинг каждого блока, по сути, является, поиском решения функции. Сложность этой задачи варьируется для контроля частоты нахождения блоков. Система запрограммирована таким образом, что бы частота нахождения блоков, в среднем, составляла 1 блок в 10 минут.

В виду того, что процесс нахождения блока весьма трудозатратен и случаен, невозможно с точностью предсказать какой Bitcoin-worker (майнер) решит задачу и найдет блок. Для того, что бы система признала блок истинным, необходимо, чтобы его hash составлял значение меньшее по сравнению с текущей целью (target). Таким образом, каждый блок показывает, что была проделана определенная работа по его нахождению.

Каждый блок содержит хеш предыдущего блока, образуя цепь. Изменить блок невозможно – возможно лишь создать блок на той же высоте, который будет содержать в себе hash предыдущего блока. Для проведения такого процесса необходимо проделать работу по нахождению всех предыдущих блоков. Высокая сложность этого процесса защищает цепочку блоков (блокчейн) от несанкционированного доступа и атак типа double spending.

Применение

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

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

Недостатки PoW

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

Смотрите также