Proof-of-Work
Proof-of-work (“PoW“, “доказательство работы“, “пруф оф ворк“) — это часть информации, которую было сложно (времязатратно, дорого) произвести для удовлетворения определенных условий. Проверка же этой информации должна быть максимально проста. Назначение 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.
См. также
- Block chain
- Double-spending
- Блок
- Сложность
- Уязвимости Bitcoin
- Proof-of-stake
- Limited Confidence Proof-of-Activity