Что содержится в 80 байтах?
| Поле | Размер | Для чего он нужен |
|---|---|---|
| Версия | 4 байт | Каким правилам должен соответствовать блок |
| Хеш предыдущего блока | 32 байт | Связывает этот блок с предыдущим |
| Корень Меркла | 32 байт | Один хеш для всех транзакций |
| Время | 4 байт | Когда майнер говорит, что создал блок |
| Биты (цель) | 4 байт | Насколько низким должен быть хеш блока |
| Nonce | 4 байт | Число, которое майнеры постоянно меняют |
Почему майнеры хешируют только заголовок?
Потому что он представляет весь блок. Корень Меркла связан со всеми транзакциями, поэтому любое изменение платежа меняет заголовок. Хеш предыдущего блока связан со всей историей, поэтому правка старого блока нарушит все заголовки после него.
Хешировать 80 байт можно быстро. Майнеры вычисляют двойной SHA-256, сравнивают результат с целевым значением, меняют nonce и повторяют. Так триллионы раз в секунду.
Насколько это мало на самом деле?
В цепочке примерно 969 006 блоков (данные в реальном времени), поэтому все заголовки начиная с 2009 весят около 78 МБ. Поэтому лёгкие кошельки могут скачать все заголовки, проверить доказательство выполнения работы для каждого и при этом поместиться на телефоне. Полные блоки занимают сотни гигабайт.
Источники
- Алгоритм хеширования блока · Bitcoin Wiki
- Справочник по блокчейну: заголовки, деревья Меркла, целевое значение · документация для разработчиков Bitcoin
- Bitcoin: A Peer-to-Peer Electronic Cash System · Сатоши Накамото, 2008
Актуальные данные на этой странице поступают из API CloudMineCrypto и общедоступных данных блокчейна, регулярно обновляются и отмечены в соответствующих местах. Только в образовательных целях, не финансовая рекомендация.