Что такое proof of work?
Определение · Proof of work (PoW)
Система, в которой право добавить блок получает тот, кто первым найдёт хеш заголовка блока ниже цели. Нахождение требует огромного количества попыток, а проверка одного хеша.
Сатоши Накамото описал это в white paper биткоина в 2008 году, опираясь на Hashcash Адама Бэка, более старую идею, как сделать отправку спама по email дорогостоящей. Действительный хеш и есть доказательство. Получить его без выполнения работы невозможно, и любой может убедиться, что она была выполнена.
Остальная часть этой страницы разбирает каждый элемент, а поле выше позволяет попробовать самому: это настоящий формат заголовка биткоина, хешируемый прямо в вашем браузере в реальном времени. Для более полной картины майнинга смотрите наше полное руководство по майнингу биткоина.
Какую проблему решает proof of work?
У биткоина нет компании, банка или сервера, который бы им руководил. Тысячи компьютеров хранят собственную копию реестра, и им нужно договориться о том, какой блок идёт следующим и в каком порядке произошли платежи. Иначе кто-то мог бы потратить одну и ту же монету дважды.
Простое голосование не работает онлайн, потому что любой может запустить тысячу поддельных компьютеров и проголосовать тысячу раз. Это называется атакой Sybil. Proof of work обходит эту проблему: ваш голос измеряется в хешах, а хеши стоят электроэнергии и оборудования.
Кто имеет право голоса при добавлении следующего блока?
Один голос за узел
Один атакующий бесплатно запускает 60 поддельных узлов и перевешивает 12 честных.
Один голос за хеш
честные майнеры 88%атакующий 12%
Те же самые 60 узлов делят между собой реальное оборудование атакующего, поэтому вместе они всё равно весят 12%. Копии бесплатны, хеши нет.
Что находится внутри заголовка блока биткоина?
Майнеры хешируют не весь блок. Они хешируют его 80-байтовый заголовок, который фиксирует всё остальное. Вот шесть полей, которые вы редактировали в поле наверху:
| Поле | Байты | Что оно содержит | Кто его меняет |
|---|---|---|---|
| Версия | 4 | Какому набору правил следует блок | Редко меняется |
| Хеш предыдущего блока | 32 | Хеш предыдущего блока, связывающий цепочку | Новый с каждым блоком |
| Корень Меркла | 32 | Один отпечаток всех транзакций блока | Майнер, при изменении транзакций или дополнительного nonce |
| Время | 4 | Когда, по словам майнера, был создан блок (время Unix) | Майнер, в определённых пределах |
| Bits | 4 | Цель, упакованная в 4 байт | Сеть, каждые 2 016 блоков |
| Nonce | 4 | Свободное число для новой попытки | Майнер, при каждой попытке |
Поскольку заголовок включает хеш предыдущего блока, изменение старого блока меняет его хеш, что нарушает следующий заголовок, и следующий за ним. Мы проверили настоящий блок генезиса от 2009 года тем же кодом, что использует интерактивный пример, на нашем сервере, когда создавалась эта страница:
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Как работает SHA-256 в биткоине?
SHA-256 превращает любые входные данные в 256-битное число, записываемое в виде 64 шестнадцатеричных символов. Биткоин применяет его к заголовку дважды (это называют SHA-256d). Свойства, важные для майнинга, просты:
Одинаковый вход, одинаковый выход
Детерминированный
Один и тот же заголовок всегда даёт один и тот же хеш, на любом компьютере. Именно поэтому проверка работает.
256 бита
Фиксированный размер
Короткая строка или целая книга, хеш всегда содержит 64 шестнадцатеричных символа.
Односторонний
Обратного короткого пути нет
Невозможно вычислить входные данные, которые дадут желаемый хеш. Можно только перебирать варианты.
≈ 50%
Лавинный эффект
Измените один символ, и примерно половина битов переключится. Понаблюдайте за сеткой в интерактивном примере.
Это последнее свойство и есть суть proof of work. Хеш, близкий к цели, ничего не говорит о следующей попытке, поэтому не существует хитрого пути к действительному блоку. Каждый майнер участвует в одной и той же лотерее, и больше хешей в секунду просто покупает больше билетов.
Что такое цель и зачем нужны нули в начале?
Цель это 256-битное число. Блок действителен, если его хеш, прочитанный как число, равен ей или ниже. Поскольку маленькие числа начинаются с нулей, более низкая цель проявляется в виде большего количества ведущих нулей. Каждый дополнительный шестнадцатеричный ноль означает в среднем в 16 раз больше попыток.
Среднее число хешей, необходимое для нахождения одного действительного блока
- Учебный блок в интерактивном примере · 4 ведущих шестнадцатеричных нулей65,536
- Самая простая цель биткоина (2009) · 8 ведущих шестнадцатеричных нулей, bits 1d00ffff4,294,967,296
- Блок биткоина сегодня · примерно 20 ведущих шестнадцатеричных нулей (актуальная оценка)6.0 × 1023
Сеть сдвигает цель каждые 2 016 блоков, примерно раз в две недели, поэтому блоки продолжают появляться примерно каждые десять минут независимо от того, сколько хешрейта присоединяется или уходит. Прямо сейчас сеть работает на скорости около 1003 ЭХ/с (в реальном времени, обновляется каждый час). О том, как работает эта корректировка, рассказано в нашем руководстве по сложности майнинга биткоина, а объяснение хешрейта охватывает единицы измерения.
Что такое nonce и что такое дополнительный nonce?
Nonce («число, используемое один раз») это 4-байтовое поле, которое майнеры меняют при каждой попытке. Это единственное поле, существующее исключительно для того, чтобы его меняли. Проблема в том, что 4 байт дают только около 4,3 миллиарда значений, и современные устройства перебирают их почти мгновенно.
Цикл майнера
- 01
Перебрать каждый nonce
0, 1, 2 и так далее вплоть до 4 294 967 295. Это все значения, которые могут вместить 4 байт.
- 02
Быстро заканчиваются
Одно устройство на 100 ТХ/с перебирает их все примерно за 43 миллионных долей секунды.
- 03
Изменить дополнительный nonce
Майнер редактирует свободное поле в собственной транзакции вознаграждения (coinbase).
- 04
Новый корень Меркла
Эта транзакция изменилась, поэтому корень Меркла меняется, и каждый nonce снова даёт новые хеши.
Поэтому майнеры также меняют дополнительный nonce, несколько свободных байтов в coinbase, первой транзакции блока, выплачивающей вознаграждение майнеру. Новый coinbase означает новый корень Меркла, а это означает миллиарды новых nonce для перебора. В пуле для майнинга пул выдаёт каждому майнеру собственный диапазон дополнительного nonce, чтобы никто не повторял чужую работу.
Почему найти блок дорого, а проверить дёшево?
Чтобы найти блок
≈ 6.0 × 1023 хешей
Вся сеть, все её устройства, около десяти минут перебора.
Актуальная оценка, обновляется каждый час.
Чтобы проверить
1 хеш
Любой узел, даже дешёвый ноутбук, хеширует 80-байтовый заголовок один раз и сравнивает его с целью значительно меньше чем за миллисекунду.
Майнеру приходится перебирать хеши, пока один из них не окажется ниже цели. Всем остальным достаточно захешировать заголовок один раз и сравнить. Именно этот перекос в затратах позволяет тысячам обычных компьютеров проверять цепочку, не доверяя майнерам, которые её построили.
Попробуйте часть с поиском сами ниже. В этом примере используется более простой формат блока, чем в интерактивном примере выше, но это та же самая лотерея с двойным SHA-256, и каждый найденный блок связан с предыдущим.
Интерактив · добудьте блок прямо в браузере
Настоящий proof of work на SHA-256, упрощённый заголовок
Хеш блока (двойной SHA-256)
Измените транзакции: хеш полностью меняется даже от одной буквы.
Попыток: 0
Ваш хешрейт: н/д
Время: 0,0 с
Что такое правило самой длинной цепочки и что такое атака 51%?
Иногда два майнера находят блок почти в один и тот же момент, и в сети на короткое время появляются две версии. Узлы следуют цепочке с наибольшим суммарным объёмом работы. Её называют самой длинной цепочкой, но на самом деле она самая тяжёлая: несколько блоков при высокой сложности могут перевесить большее число блоков при низкой.
Чтобы отменить платёж, атакующему пришлось бы построить более тяжёлую цепочку, чем у всех остальных, начиная с момента до этого платежа. Каждый новый блок сверху (подтверждение) отбрасывает атакующего ещё дальше назад. White paper рассчитал эти шансы; подвиньте ползунок, чтобы их увидеть:
Интерактивно · может ли атакующий наверстать отставание?
Формула из white paper биткоина, раздел 11
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Блоков, на которые отстаёт атакующий (подтверждений). На столбцах используется логарифмическая шкала, от одного шанса из миллиона до почти полной уверенности.
При 10% хешрейта шанс переписать платёж после 6 подтверждений составляет 0,024%, а после 1 подтверждения он равен 20,5%.
При 50% или больше атакующий в итоге побеждает. Это и есть атака 51%. Она серьёзна, но у неё есть пределы:
Обладая большей частью хешрейта, атакующий может
- Заменить недавние блоки своей собственной цепочкой
- Совершить двойную трату монет, которые сами же отправили
- Исключить некоторые транзакции из своих блоков
Даже тогда они не могут
- Потратить монеты из чужих кошельков
- Создать монеты сверх вознаграждения за блок
- Изменить правила биткоина для всех остальных
Именно поэтому биржи ждут несколько подтверждений для крупных депозитов. Шесть это общепринятое эмпирическое правило.
Почему proof of work потребляет так много энергии?
Потому что энергия и есть безопасность. Действительный блок это доказательство того, что была потрачена реальная электроэнергия. Чтобы переписать историю, атакующему пришлось бы потратить как минимум столько же снова, и продолжать тратить, пока честная сеть движется дальше.
Куда уходит энергия и что она покупает
Вознаграждение за блок и комиссии
Новый BTC плюс комиссии за каждый блок, выплачиваемые тому, кто его найдёт.
Устройства и электроэнергия
Майнеры тратят ровно столько, сколько для них стоит вознаграждение.
Хешрейт сети
Все эти затраты проявляются в виде хешей в секунду.
Стоимость переписывания истории
Атакующему приходится тратить больше, чем все остальные вместе взятые, блок за блоком.
Сколько именно это электроэнергии и откуда она берётся это предмет справедливых споров. Индекс Cambridge отслеживает оценки, а наше руководство по энергопотреблению майнинга биткоина подробно разбирает цифры. Каждый халвинг сокращает часть вознаграждения, приходящуюся на новые монеты, поэтому со временем комиссиям приходится нести всё большую часть этого бюджета безопасности.
Proof of work против proof of stake: в чём разница?
Proof of stake (PoS) выбирает производителя следующего блока среди тех, кто заблокировал монеты в качестве депозита, а не среди тех, кто сжигает электроэнергию. Ethereum перешёл с proof of work на proof of stake в 2022 году. Вот честное сравнение:
| Proof of work | Proof of stake | |
|---|---|---|
| Кто добавляет следующий блок | Первый майнер, нашедший хеш ниже цели | Валидатор, выбранный пропорционально его доле |
| Что обеспечивает его безопасность | Электроэнергия и оборудование, потраченные вне сети | Монеты, заблокированные внутри сети, которые можно забрать за мошенничество |
| Энергопотребление | Высокая, специально по замыслу | Низкий |
| Чтобы принять участие | Устройства и дешёвая электроэнергия | Монеты для стейкинга |
| Урегулирование | Становится безопаснее с каждым подтверждением | Явные контрольные точки финализации |
| Главная претензия | Энергопотребление и концентрация майнинга | Концентрация стейка и более сложная конструкция |
| Послужной список | Биткоин, с 2009 года | Ethereum, с 2022 года |
Разработчики биткоина сохранили proof of work, потому что его стоимость находится вне самой системы, поэтому никто не может купить контроль на уже имеющиеся монеты. Сторонники proof of stake указывают на экономию энергии и более быструю финализацию.
Можно ли зарабатывать биткоин от майнинга, не выполняя proof of work самостоятельно?
Да. С CloudMineCrypto вы майните биткоин бесплатно с телефона или браузера, без оборудования, шума или счёта за электроэнергию. Активируйте бесплатный 8-часовой план и добавляйте больше бесплатных планов, смотря рекламу, играя в игры, выполняя офферы и отмечаясь каждый день. Ваш баланс BTC растёт, пока работают ваши планы, а вывод происходит на ваш собственный кошелёк, в том числе через Lightning.
У каждого плана есть хешрейт. Твоё примерное вознаграждение рассчитывается как доля этого хешрейта от хешрейта всей сети, умноженная на 6 блоков в час и награду за блок. Это формула, которую приложение использует для расчёта примерного вознаграждения (действуют правила и ограничения). Хочешь увеличить скорость? Платный план можно подключить по желанию. Он увеличит хешрейт, а цена будет показана перед подтверждением.
Важно знать: вознаграждения это оценки, которые меняются вместе с сетью и не гарантированы, а план не даёт права собственности на какое-либо устройство или пул. К выводу средств могут применяться лимиты или проверка личности. Подробности в правилах вознаграждений и в руководстве по бесплатному майнингу биткоина. Действуют условия.
Часто задаваемые вопросы
Что такое proof of work простыми словами?
Это способ сделать так, чтобы добавление блока требовало реальных усилий. Майнеры хешируют заголовок блока снова и снова, меняя число, называемое nonce, пока результат не окажется ниже цели. Нахождение такого хеша требует огромного количества попыток, но проверить его может любой одним хешем.
Что такое nonce в биткоине?
4-байтовое число в заголовке блока, которое майнеры меняют при каждой попытке. У него около 4,3 миллиарда возможных значений. Когда они заканчиваются, майнеры меняют дополнительный nonce внутри coinbase-транзакции, что даёт новый корень Меркла и новый набор хешей.
Почему биткоин использует SHA-256 дважды?
Биткоин хеширует 80-байтовый заголовок алгоритмом SHA-256, а затем хеширует результат ещё раз. Сатоши никогда не объяснял этот выбор. Обычно это трактуют как защиту от атак удлинения и дополнительный запас надёжности.
Что позволяет сделать атака 51%?
Тот, у кого большая часть хешрейта, может тайно построить более длинную цепочку и заменить недавние блоки, что позволяет ему совершить двойную трату своих же монет или заблокировать некоторые транзакции. Он не может тратить чужие монеты, создавать монеты сверх установленных правил или менять правила для всех остальных.
Лучше ли proof of stake, чем proof of work?
Он потребляет намного меньше энергии, а безопасность обеспечивается монетами, заблокированными в качестве стейка. Proof of work привязывает безопасность к внешним затратам, электроэнергии и оборудованию, и лежит в основе биткоина с 2009 года. У каждого подхода свои компромиссы, поэтому что лучше зависит от того, что вы цените.
Можно ли зарабатывать биткоин от майнинга без собственного оборудования?
Да. В приложении CloudMineCrypto вы активируете бесплатные планы майнинга (бесплатный план, реклама, игры, офферы и ежедневная отметка), и ваш баланс BTC растёт, пока они работают, а затем вы выводите средства на свой собственный кошелёк. Вознаграждения это оценки на основе хешрейта вашего плана и актуальных данных сети, они не гарантированы, и план не даёт права собственности на какое-либо оборудование.
Источники и дополнительное чтение
- Bitcoin: система электронных денег peer-to-peer (белая книга) · Сатоши Накамото, bitcoin.org
- Руководство по блокчейну: заголовки блоков, proof of work, coinbase · документация для разработчиков Bitcoin
- Руководство по майнингу: соло-майнинг, пулы, getblocktemplate · документация для разработчиков Bitcoin
- Сложность · Bitcoin Wiki
- Подтверждение · Bitcoin Wiki
- Cambridge Bitcoin Electricity Consumption Index · Cambridge Centre for Alternative Finance
- Панель майнинга: хешрейт, сложность, недавние блоки · mempool.space
Данные в реальном времени на этой странице (хешрейт сети, награда за блок, цена BTC) поступают из API CloudMineCrypto, обновляются каждый час и помечены там, где появляются. Это руководство носит образовательный характер и не является финансовой консультацией. CloudMineCrypto не является инвестиционным продуктом; награды в приложении это оценки и не гарантированы.
Вы прочитали, как это работает. Теперь посмотрите на это в действии.
Заберите бесплатный 8-часовой тариф в приложении CloudMineCrypto и смотрите, как растёт ваш оценочный BTC на основе данных сети в реальном времени. Без оборудования, без карты.