Proof-Of-Work

Материал из Bitcoin Wiki
(перенаправлено с «Proof-of-work»)
Перейти к: навигация, поиск

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

Назначение

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

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

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

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

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

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

См. также

Ссылки