Проблема, которую решает proof of work
Цифровой реестр легко скопировать и легко отредактировать. Если бы любой мог свободно добавлять транзакции, он мог бы также потратить одни и те же монеты дважды — это классическая проблема "двойной траты". В системе без центрального оператора нужен способ, позволяющий независимым участникам договориться о том, какие транзакции произошли и в каком порядке, даже когда некоторые из них нечестны или находятся офлайн.
Более ранние попытки создать цифровые деньги опирались на доверенную сторону, ведущую учёт. Устройство Bitcoin, описанное в whitepaper 2008 года, заменило эту доверенную сторону публичным состязанием: участники расходуют реальные ресурсы, чтобы присоединять блоки, а сеть следует общему правилу выбора побеждающей цепочки. Консенсус возникает из затрат и математики, а не из полномочий.
Что на самом деле вычисляют майнеры
Каждый блок-кандидат содержит пакет транзакций, ссылку на предыдущий блок и небольшое изменяемое число, называемое nonce. Майнеры пропускают эти данные через хеш-функцию SHA-256, которая превращает любой ввод в результат фиксированной длины, выглядящий непредсказуемо. Цель — найти такой ввод, который даёт хеш ниже определённого целевого значения — на практике хеш, начинающийся с определённого количества нулей.
Поскольку результаты хеширования нельзя предсказать или получить обратным путём, единственный способ найти подходящий хеш — это метод проб и ошибок: изменить nonce, снова хешировать, повторить, миллиарды раз в секунду. Этот перебор методом грубой силы и есть "работа". Её намеренно трудно выполнить, но любому другому тривиально проверить — одно вычисление хеша подтверждает, что ответ действителен. Эта асимметрия (трудно создать, легко проверить) и есть суть proof of work.
Сложность и примерно десятиминутный ритм
Bitcoin нацелен на появление нового блока в среднем примерно каждые десять минут. По мере того как к сети присоединяется больше вычислительной мощности (хешрейт), блоки, как правило, появлялись бы быстрее, поэтому протокол периодически корректирует сложность — насколько низким должен быть целевой хеш, — чтобы поддерживать стабильный средний темп. Примерно каждые две недели (2016 блоков) каждый узел заново пересчитывает сложность на основе недавнего времени формирования блоков.
Именно из-за этой самонастройки большая майнинговая мощность со временем не означает более быстрого производства блоков; в основном это означает, что больше работы расходуется на защиту того же стабильного потока блоков. Точное время появления любого отдельного блока случайно, поэтому десять минут — это долгосрочное среднее, а не расписание.
От блоков к консенсусу: самая длинная действительная цепочка
Найти действительный блок — это лишь половина истории. Узлам по-прежнему нужно договориться об одной истории, когда два майнера находят блоки почти в один и тот же момент. Правило состоит в том, что узлы следуют за действительной цепочкой с наибольшим суммарным накопленным proof of work — часто это резюмируют как "самую длинную цепочку", хотя на деле она самая тяжёлая по совокупной работе.
Каждый полный узел независимо проверяет каждый блок на соответствие правилам Bitcoin: действительные подписи, отсутствие двойных трат, правильное вознаграждение за блок и хеш, достигающий цели. Блоки, нарушающие правила, просто отклоняются, независимо от того, сколько работы в них вложено. Временные расхождения (форки) разрешаются, когда следующий блок продлевает одну из ветвей, и честные майнеры сходятся на ней, потому что вознаграждение лежит именно в построении на принятой цепочке.
Почему это защищает сеть
Чтобы переписать прошлую транзакцию, атакующему пришлось бы заново выполнить proof of work для этого блока и каждого блока после него, а затем опередить всю честную сеть, чтобы построить более длинную цепочку. Чем глубже погребена транзакция, тем больше работы пришлось бы переделать — именно поэтому продавцы часто ждут нескольких подтверждений. Затраты масштабируются вместе с общим хешрейтом сети.
Это и есть интуиция, стоящая за "атакой 51%": контроль над большинством хеш-мощности мог бы позволить кому-то переупорядочить или подвергнуть цензуре недавние транзакции. Но приобрести и эксплуатировать такое оборудование дорого, оно не может подделывать подписи или напрямую красть монеты, а видимая атака могла бы подорвать ценность самого актива, на добычу которого атакующий тратит ресурсы. Стимулы выстроены так, что честное участие в целом выгоднее атаки. Безопасность здесь экономическая и вероятностная, а не абсолютная гарантия.
Компромиссы и более широкая дискуссия
Сила proof of work — реальные внешние затраты — является также источником самой распространённой его критики: энергопотребления. Оценки потребления электроэнергии Bitcoin сильно различаются и меняются со временем, а картину усложняет растущая доля изолированной, избыточной или возобновляемой энергии, которую используют некоторые майнеры. Разумные люди расходятся во мнениях, и детали меняются; стоит проверять актуальные и заслуживающие доверия источники, а не полагаться на какую-то одну цифру.
Альтернативные модели консенсуса, такие как proof of stake, защищают некоторые другие сети при гораздо меньших затратах энергии, используя экономический залог вместо вычислений. Они предполагают иные допущения и компромиссы, и честное их сравнение — это отдельная тема. Что касается конкретно Bitcoin, proof of work остаётся его механизмом, и его безопасность и график эмиссии привязаны к нему.