Proof-of-Work


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

Описание PoW

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

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

Принцип работы протокола Proof-of-Work

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

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

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

См. также

Ссылки