В Bitcoin Proof of Work показывает, что двойной SHA-256 хеш заголовка удовлетворяет целевому условию. Сложность описывает ожидаемые попытки, а не точное потребление электричества или действительность транзакций.
Proof of Work не подтверждает оплату электричества или действительность блока. Узел проверяет, что числовой хеш заголовка не превышает цель в nBits. Проверка дешева, поиск случаен, а меньшая цель требует в среднем больше попыток. [Bitcoin whitepaper] [Bitcoin Core v29.0: Proof of Work]
ASIC может исчерпать четырёхбайтовый nonce без успеха. Программа затем меняет, например, extra nonce транзакции coinbase, меняя Merkle Root и заголовок следующего поиска. Майнинг не сводится к бесконечному увеличению одного числа. [Bitcoin Developer Guide: Mining]
nBits компактно кодирует цель. Меньшая цель допускает меньше хешей и повышает сложность; это не доля мощности, число нулей или джоулей. Попытки независимы, поэтому даже высокий hashrate не гарантирует следующий блок. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Помимо работы узел проверяет структуру, подписи, непотраченные входы и правила coinbase. Порядок реализации не означает, что всё предшествует проверке хеша. Хеш ниже цели не исправит неверную подпись или двойную трату; действительный кандидат без достаточной работы также не входит в активную цепь. [Bitcoin whitepaper] [Bitcoin Core v29.0: block validation]
Между конкурирующими действительными ветвями узел сравнивает работу, выведенную из целей блоков, а не только длину. Перезапись подтверждённой истории требует альтернативных действительных блоков и достижения и превышения непрерывно растущей работы честной ветви. Это экономический и вероятностный барьер, не мгновенная необратимость. [Bitcoin whitepaper] [Bitcoin Core v29.0: chainwork]
В mainnet Bitcoin Core меняет цель на границах периодов сложности. Сравнивает наблюдаемое и целевое время, ограничивает первое четвертью и четырёхкратной величиной второго, а новую цель — пределом mainnet. Цена BTC, число узлов и голосование майнеров не определяют расчёт. [Bitcoin Core v29.0: Proof of Work]
Пул может использовать более лёгкую внутреннюю цель share для оценки вкладов. Большинство shares не удовлетворяет сетевой цели и не входит в блокчейн. Сетевой успех — другое событие: пул рассылает полный блок-кандидат, а независимые узлы решают, принимать ли его. [Bitcoin Developer Guide: Mining]
Свой узел или открытые данные позволяют сравнить хеш заголовка, bits, цель, высоту и chainwork. Победивший хеш не раскрывает точную энергию, физическую личность майнера или место. Утверждения о безопасности требуют суммы платежа, числа подтверждений и предположения о преобладании честной работы. [Bitcoin Core v29.0: Proof of Work] [Bitcoin whitepaper]
Кандидат также должен удовлетворять Proof of Work
Майнер готовит блок-кандидат и меняет nonce и другие данные, влияющие на заголовок. Он ищет двойной SHA-256 хеш заголовка, числовое значение которого меньше или равно текущему допустимому target. Более высокий hashrate даёт больше попыток, а не право нарушать остальные правила консенсуса; один подходящий хеш ещё не доказывает действительность всего блока.
Для полной картины прочитайте эту статью вместе с Майнинг, Корректировка сложности, Timechain / Blockchain, Full Node, Эмиссионная награда за блок. На эту статью также ссылаются Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.
01Зачем Bitcoin нужен Proof of Work?+
Proof of Work даёт независимым узлам объективный способ сравнивать конкурирующие действительные истории. Чтобы заменить историю, нужно заново выполнить её работу и догнать конкурирующую ветвь. Выбор по накопленной работе не требует центральных часов или реестра голосующих.
02Могут ли майнеры изменить предложение Bitcoin одним лишь hashrate?+
Нет. Hashrate влияет на выбор между действительными историями, а не на правила, которые применяет узел. Full Node отвергает блок, создающий больше bitcoin, чем допускает консенсус, или расходующий монеты без действительного разрешения.