06 / 736PoW

Proof of Work

доказательство вычислительной работы

Механизм, с помощью которого Bitcoin превращает электричество и вычислительную мощность в легко проверяемое доказательство и упорядочивает действительную историю блоков по накопленной работе.

Благодаря Proof of Work создавать блоки Bitcoin затратно, а проверять их легко. Майнеры соревнуются, выполняя вычисления, результаты которых не могут предсказать. Они ищут хеш — цифровой отпечаток заголовка блока, числовое значение которого не превышает границу, называемую target. Остальные могут быстро проверить успешный результат. Full Node, компьютер, который самостоятельно проверяет правила Bitcoin, отдельно проверяет и транзакции: одного доказательства работы недостаточно, чтобы блок был действительным.

Представьте лотерею, где выигрышный билет нельзя заранее вычислить хитрой формулой. Майнеры многократно меняют данные блока-кандидата и считают хеш. Почти все результаты не подходят. Лишь хеш с числовым значением не выше текущего target может быть Proof of Work блока. Найти его трудно, а быстро проверить может каждый. Bitcoin доказывает не полезность вычисления в обычном смысле, а то, что для конкретного Block Header был проведён затратный поиск. [1] [2]

Block Header содержит основные данные блока, а Merkle Root — общий цифровой отпечаток его транзакций. Nonce — число, которое майнеры могут менять при поиске. ASIC — чип для определённой вычислительной задачи; здесь он многократно применяет хеш-функцию SHA-256. Сначала майнер собирает блок-кандидат: выбирает транзакции, создаёт Coinbase Transaction с наградой и вычисляет Merkle Root. Эти значения вместе со ссылкой на предыдущий блок, временем, target и nonce образуют Block Header. Специализированный ASIC считает двойной SHA-256 множества вариантов. Это не загадка с постепенным приближением к ответу. Каждая попытка даёт новый случайно выглядящий результат, и предыдущая неудача ничего не говорит о следующей. [3] [1]

Hash можно читать как очень большое число. Сетевой target — наибольшее значение, которое ещё допускают правила. Чем он ниже, тем меньшая доля возможных хешей подходит и тем больше ожидается попыток. nBits хранит target в заголовке компактно. Difficulty лишь относительно выражает строгость цели. Это не число нулей, не количество джоулей и не доля мощности майнера. Блок может появиться сразу или после долгого ожидания: правила задают результат, а не фактическое число попыток. [2] [1]

Nonce в Block Header занимает только четыре байта, поэтому быстрый ASIC может исчерпать весь диапазон без успеха. Mining — не бесконечное увеличение одного числа. Программа может изменить extra nonce в Coinbase Transaction, выбор и порядок транзакций и другие допустимые данные. Это меняет Coinbase Transaction, Merkle Root и весь заголовок, открывая новые кандидаты. Pool также распределяет разную работу между устройствами, чтобы они не проверяли одинаковые варианты. [3]

Хеш, не превышающий target, выполняет одно важное условие, а не все правила Bitcoin. Full Node также проверяет размер и структуру, происхождение, Coinbase Transaction, разрешённую награду, подписи, скрипты и то, ссылаются ли входы на существующие, ещё не потраченные средства. Дорогие вычисления не заставят других принять лишние bitcoin или двойную трату. Недействительный блок остаётся таким независимо от энергии. И наоборот, кандидат с правильными транзакциями без достаточного Proof of Work не продолжит активную цепочку. [4] [1]

Два майнера могут почти одновременно опубликовать разные действительные блоки на одной высоте, и ненадолго возникают две ветви. Среди действительных кандидатов узлы следуют ветви с наибольшей накопленной работой, представленной в Bitcoin Core как chainwork. Это не всегда простой подсчёт блоков, поскольку значения target могли различаться. Переписывание подтверждённого платежа требует создать альтернативную действительную историю, догнать и превзойти работу обычной ветви. Подтверждения обычно повышают цену атаки, но не создают мгновенной математической необратимости. [5] [1]

Hashrate показывает число попыток хеширования в секунду. При неизменном target рост Hashrate ускорял бы блоки, а потеря мощности замедляла. Поэтому mainnet Bitcoin пересчитывает target после интервалов по 2 016 блоков, возвращая долгосрочное среднее примерно к десяти минутам. Расчёт сравнивает фактическую длительность с запланированными двумя неделями и ограничивает изменение границами протокола. Retarget не реагирует напрямую на цену BTC, число пользователей или голосование майнеров за правила. Десять минут — целевое среднее, а не расписание следующего блока. [2]

Одиночный майнер может долго ждать действительный блок, поэтому многие устройства используют mining pool. Pool задаёт более лёгкий внутренний share target и по принятым shares оценивает вклад участников. Большинство не достигает строгого сетевого target и никогда не попадает в Blockchain. Если результат выполняет и сетевой target, pool распространяет полный блок-кандидат. Принимает его не pool и не размер Hashrate, а независимая проверка каждого узла. [3]

Физические устройства потребляют электричество и выделяют тепло во время поиска, но Bitcoin не хранит энергетическую квитанцию в блоке. Выигрышный хеш не показывает точное число попыток, киловатт-часы, источник энергии или место. Proof of Work экономически защищает историю, потому что новые попытки имеют реальную цену, однако большее потребление само по себе не означает идеальной безопасности или более чистой работы. Безопасность требует учёта проверки, распределения Hashrate и угрозы; энергетическое влияние — источника, времени, эффективности и альтернативы. [1] [2]

Full Node сам проверяет предыдущий хеш, nBits, выведенный target и хеш заголовка каждого блока. Данные позволяют сравнить height, difficulty и chainwork, но выигрышный хеш не раскрывает личность или точную энергию. Фразе «безопасно после шести подтверждений» нужен контекст: сумма, возможности противника, распределение работы и готовность ждать. Proof of Work — не маркетинговая метка и не голос майнеров за правила, а точно определённый и легко проверяемый вход для выбора среди действительных историй. [2] [3] [5]

Для полной картины прочитайте эту статью вместе с Майнинг, Difficulty Adjustment, Timechain / Blockchain, Full Node, Block Subsidy. На эту статью также ссылаются Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.

DOC · 001Bitcoin whitepaperПервичный источник DOC · 002Bitcoin Core v29.0: Proof of WorkПервичный источник DOC · 003Bitcoin Developer Guide: MiningДокументация DOC · 004Bitcoin Core v29.0: block validationПервичный источник DOC · 005Bitcoin Core v29.0: chainworkПервичный источник
Обновлено: Сначала источники · Не является инвестиционной рекомендацией