Модуль 7: Как работает блокчейн

Урок 1 Блокчейн изнутри: блоки, цепочка, хэши

9 мин чтения Новичок

Первый модуль Криптобазы дал нам общую картину: что такое биткоин, зачем он появился, что такое блокчейн и почему данные в нём нельзя изменить. Но «нельзя изменить» — это пока просто слова. Почему нельзя? Что именно стоит за этим утверждением?

Второй модуль отвечает на эти вопросы. Мы разбираем блокчейн по деталям — как механизм часов, которые нужно открыть и рассмотреть изнутри. Никакой магии, только математика. И она устроена красиво.

В этом уроке вы узнаешь:

  • Что такое хэш-функция и почему она «необратима»
  • Что конкретно находится внутри каждого блока — поле за полем
  • Как устроено дерево Меркла и зачем оно нужно
  • Почему изменить запись в блокчейне — практически невозможно
  • Что такое орфанные блоки и чем различаются Bitcoin и Ethereum по скорости
  • Чем full node отличается от мобильного кошелька

После урока вы сможете открыть Mempool.space — сайт, который показывает все блоки Bitcoin в реальном времени — и понять каждую строчку на экране. Вот пример реального блока — открой его, посмотри и ничего не пугайся. Разберём всё по порядку.

Хэш-функция: цифровой отпечаток данных

Начнём с эксперимента. Открой наш SHA-256 калькулятор — введи в поле слово Bitcoin. Ты получишь 64-символьную строку из цифр и букв от a до f. Теперь измени одну букву: напиши bitcoin со строчной «b». Строка полностью изменилась — ни одного совпадающего символа.

Это и есть хэш-функция (hash function) в действии — математический алгоритм, который превращает любой текст в строку фиксированной длины. Bitcoin использует алгоритм SHA-256 (Secure Hash Algorithm, 256-bit): что бы вы ни ввёл — одно слово, роман Толстого или файл на гигабайт — на выходе всегда ровно 64 символа.

Слово «хэшировать» просто означает «применить хэш-функцию». Хэшировали транзакцию — значит превратили её данные в 64-символьную строку. Ничего загадочного.

У этой функции четыре свойства, которые делают блокчейн возможным:

  • Одинаковый вход — всегда одинаковый выход. Слово «Bitcoin» даст один и тот же хэш хоть через год, хоть на другом компьютере. Это позволяет любому узлу сети самостоятельно проверить данные.
  • Одна изменённая буква — полностью другой хэш. Это называется лавинный эффект (avalanche effect). Невозможно «немного подправить» данные и получить похожий результат. Попробуй в калькуляторе: добавь один пробел в конце — хэш другой.
  • Из хэша нельзя восстановить исходные данные. Это дорога в одну сторону. Хэш — это цифровой отпечаток, а не зашифрованные данные. Зная отпечаток, исходный текст восстановить невозможно.
  • Невозможно подобрать другой текст с тем же хэшем. Нельзя придумать поддельный текст, который даст такой же хэш, что и оригинал. Это устойчивость к коллизиям (collision resistance).

Если хэши двух наборов данных совпадают — данные идентичны. Это гарантировано математически, а не на доверии. Именно это и лежит в основе всей защиты блокчейна.

Поиграй с калькулятором: переключись на SHA-512 — хэш станет вдвое длиннее (128 символов). Алгоритм другой, принцип тот же. SHA-256 выбран Bitcoin не случайно: он даёт оптимальный баланс между скоростью вычисления и надёжностью защиты.

Анатомия блока: что внутри

Вернись к примеру блока на Mempool.space. Ты видишь: номер блока (944423), хэш, временна́я метка, размер, вес, майнер — это сводная карточка блока. За ней скрывается компактная структура — заголовок блока (block header), всего 80 байт, — которая и содержит всё критически важное для безопасности цепочки.

Вот шесть полей этого заголовка — их нет в сводке, но они существуют в каждом блоке на уровне протокола:

Поле в заголовке Что это такое Зачем нужно
Version Версия правил протокола Bitcoin Говорит сети, по каким правилам составлен блок
Previous Block Hash Хэш предыдущего блока Это «скрепка», соединяющая блоки в цепочку
Merkle Root Один хэш от всех транзакций блока Гарантирует, что ни одна транзакция не изменена
Timestamp Дата и время создания блока Временна́я метка для хронологии цепочки
Bits (Target) Текущая сложность задачи для майнеров Регулирует, насколько трудно найти новый блок
Nonce Число, которое подбирают майнеры Ключ к решению задачи — подробно в уроке 2.2

Теперь прокрути страницу блока вниз — там список транзакций. Первая запись помечена как «No Inputs (Newly Generated Coins)». Это особая coinbase-транзакция.

Что она означает: когда майнер находит новый блок, протокол Bitcoin разрешает ему «создать из воздуха» определённое количество монет и отправить их себе. Это и есть coinbase-транзакция — единственный законный способ появления новых BTC. Все остальные транзакции в блоке — обычные переводы между адресами.

Важная техническая деталь: хэшируется именно заголовок (80 байт), а не весь блок целиком. Почему? Потому что список транзакций уже «упакован» в Merkle Root — одно поле заголовка гарантирует целостность всего содержимого. Эффективно и элегантно.

Coinbase — это технический термин в протоколе Bitcoin (появился в 2009 году), а не название биржи. Биржа Coinbase взяла это имя позже — скорее всего, именно из-за ассоциации с «созданием монет».

Дерево Меркла: умная организация транзакций

Вот задача: в блоке ~2 000 транзакций. Нужно одним числом описать их все так, чтобы изменение любой одной было немедленно заметно. И при этом нужно уметь доказать присутствие конкретной транзакции, не скачивая весь список. Как?

Ответ — дерево Меркла (Merkle Tree). Это структура данных в виде перевёрнутой пирамиды:

На нижнем уровне — хэши каждой из ~2 000 транзакций. Берём их попарно, склеиваем и снова хэшируем. Из 2 000 хэшей получаем 1 000 уровнем выше. Снова попарно — 500. Потом 250, 125… пока не останется один-единственный хэш на вершине. Это Merkle Root — он и хранится в заголовке блока.

Измени хоть одну транзакцию — изменится её хэш, пересчитается вся ветка пирамиды вверх, изменится Merkle Root, изменится хэш всего блока. Обнаружить подделку можно мгновенно.

Второй бонус — Merkle Proof (доказательство включения). Чтобы доказать, что транзакция есть в блоке, не нужно скачивать все 2 000 транзакций. Достаточно ~11 хэшей — путь от вашей транзакции до вершины пирамиды. Именно поэтому мобильные кошельки (Trust Wallet, Exodus) не хранят 600 ГБ данных — им хватает заголовков блоков (~50 МБ для всего Bitcoin) плюс нескольких хэшей для проверки конкретной транзакции.

Такой режим работы называется SPV — Simplified Payment Verification (упрощённая верификация платежей). Это не костыль, а часть изначального дизайна Bitcoin: Сатоши описал SPV ещё в оригинальном whitepaper 2008 года.

Цепочка блоков: почему историю нельзя переписать

Вернись к таблице полей заголовка. Поле Previous Block Hash содержит хэш предыдущего блока. Это и создаёт цепочку. Каждый новый блок «ссылается» на предыдущий, тот — на ещё более ранний, и так до самого первого — Genesis Block (блок «#0», созданный Сатоши Накамото 3 января 2009 года).

Представь конкретную ситуацию: вы хакер, хочешь изменить транзакцию в блоке №500. Меняешь данные → меняется Merkle Root → меняется хэш блока №500. Но поле Previous Block Hash в блоке №501 ссылается на старый хэш блока №500. Блок №501 теперь недействителен. Значит, недействителен и блок №502, и все следующие.

Чтобы атака сработала, нужно пересчитать блок №500 и все ~390 000 блоков после него быстрее, чем честная сеть добавляет новые. Сеть Bitcoin производит около 700 квинтиллионов хэш-вычислений в секунду. Это экономически нереально. Детали — в уроке 2.2.

Каждый новый блок поверх транзакции — одно подтверждение (confirmation). После 6 подтверждений (~60 минут) вероятность успешной атаки — меньше 0,1%. Именно поэтому крупные биржи ждут 6 блоков перед зачислением больших BTC-депозитов.

Транзакция с нулём подтверждений — это ещё не запись в блокчейне. Она попала в mempool (пул ожидающих транзакций), но ещё не включена в блок. Для небольших сумм обычно нормально принять такую транзакцию. Для крупных — ждите минимум 3–6 подтверждений.

Когда два блока появляются одновременно: орфанные блоки

Майнеры по всему миру работают параллельно и не знают о работе друг друга в реальном времени. Иногда два из них находят корректный блок почти одновременно — с разницей в секунды. Сеть временно «раздваивается»: часть нод получила блок A первым, другая часть — блок B.

Ситуация разрешается через правило самой длинной цепи (longest chain rule): сеть принимает ту ветку, которая первой вырвется вперёд. Обычно достаточно одного-двух следующих блоков, чтобы определился победитель. Блок из «проигравшей» ветки становится орфанным (orphan block, буквально «осиротевший»): он не входит в основную цепь.

Майнер орфанного блока теряет всю награду — несмотря на честно выполненную работу. Именно поэтому соло-майнинг рискован, а пулы майнинга так привлекательны. Об этом подробнее в уроке 2.2.

В Bitcoin орфанные блоки случаются редко: примерно 1–2 раза в месяц. Длинный интервал в 10 минут намеренно снижает их вероятность. За 10 минут новый блок успевает «разойтись» по всей сети прежде, чем кто-то другой найдёт следующий.

Block time и скорость: почему Bitcoin намеренно медленный

Block time — это интервал между блоками. В Bitcoin он составляет ~10 минут. Кажется медленным — и это действительно медленно. Но это сделано намеренно.

Чем длиннее интервал, тем меньше вероятность орфанных блоков и тем устойчивее консенсус. Чем короче — тем больше коллизий и тем сложнее поддерживать единое мнение сети. Разные блокчейны выбирают разный баланс:

Сеть Block time Как решаются орфаны Компромисс
Bitcoin ~10 минут Правило длинной цепи Медленно, зато максимально стабильно
Litecoin ~2,5 минуты Правило длинной цепи В 4 раза быстрее Bitcoin, та же архитектура
Ethereum ~12 секунд GHOST-протокол (орфаны частично вознаграждаются) Сложнее консенсус, но быстрее
BNB Chain ~3 секунды Ограниченный набор валидаторов Скорость за счёт децентрализации
Solana ~0,4 секунды Tower BFT + механизм PoH Требует мощного оборудования у валидаторов

Важно понимать: быстрый block time не равно «транзакция быстро подтверждена». Для окончательной необратимости нужно несколько блоков сверху — независимо от сети. Подробнее о финальности транзакций — в уроке 2.5.

Здесь проявляется знаменитая трилемма блокчейна: быстро + дёшево + безопасно — одновременно все три почти невозможно. Bitcoin выбрал безопасность. Это и породило целую индустрию Layer 2-решений — в уроке 2.9.

Частая ошибка: видишь, что транзакция попала в блок — и считаешь её завершённой. На самом деле одно подтверждение ещё не финально. Для крупных сумм в Bitcoin — жди 6 блоков, около 60 минут.

Full Node vs Light Node: нужно ли скачивать весь блокчейн

Слово «нода» (node = узел сети) означает компьютер, который участвует в работе блокчейна. Но участие может быть разным.

Полный узел (full node) хранит всю историю блокчейна с самого первого блока и самостоятельно проверяет каждую транзакцию, не доверяя никому. Bitcoin весит около 600 ГБ (2026). Ethereum в режиме архива — 1–2 ТБ, в обрезанном режиме (pruned) — 50–100 ГБ. Синхронизация с нуля занимает несколько дней. Зато такой узел полностью независим.

Лёгкий узел / SPV (Simplified Payment Verification) хранит только заголовки блоков — 80 байт на блок, ~50 МБ для всего Bitcoin. Для проверки конкретной транзакции запрашивает Merkle Proof у полного узла. Никакого доверия к серверу биржи или кошелька — только к математике дерева Меркла. Именно так работают все мобильные кошельки.

Для обычного пользователя лёгкого узла более чем достаточно — им является любой мобильный кошелёк. Полный узел нужен тем, кто хочет полной независимости или поддерживает децентрализацию сети.

Запустить полный узел Bitcoin можно на обычном компьютере с 1 ТБ SSD — специального железа не нужно. Чем больше независимых полных узлов, тем сложнее кому-либо скомпрометировать сеть. Если вы хотите поддержать Bitcoin — запуск своей ноды делает это напрямую.

Посмотри реальный блок прямо сейчас: block explorers

Теперь у вас есть всё, чтобы прочитать реальный блок. Открой этот блок Bitcoin на Mempool.space. Вот что вы видите в сводке — и что это означает теперь, когда вы знаете устройство блока:

  • Блок 944423 — это высота (block height): порядковый номер в цепочке от Genesis Block (3 января 2009). К 2026 году их более 890 000.
  • Хэш — SHA-256 хэш заголовка этого блока. Именно на него ссылается следующий блок через поле «Previous Block Hash».
  • Временна́я метка — дата и время, когда майнер нашёл блок.
  • Размер / Вес — объём блока. Лимит Bitcoin ~1 МБ / 4 MWU ограничивает ~2 000–4 000 транзакций на блок.
  • Субсидия + комиссии — сумма, которую получил майнер: 3,125 BTC субсидия (после халвинга апреля 2024) плюс комиссии всех транзакций блока.
  • 3 758 транзакций — прокрути вниз. Первая — coinbase (написано «No Inputs, Newly Generated Coins»). Это единственный законный способ появления новых BTC.

Кроме Mempool.space, есть и другие проводники блоков (block explorers). Для разных сетей:

  • Bitcoin — Blockchain.com/explorer: классический, удобен для поиска по адресу или хэшу транзакции.
  • Ethereum — Etherscan.io: стандарт индустрии. Транзакции, смарт-контракты, токены ERC-20.
  • Ethereum (стейкинг) — Beaconchain: данные о валидаторах и наградах Proof of Stake.
  • Solana — Solscan.io: транзакции, токены SPL, NFT.

Блокчейн полностью публичен: любой может посмотреть баланс любого адреса и всю его историю. Отследить транзакцию до конкретного человека — другой вопрос, но сами данные открыты. Именно поэтому вопросы приватности в крипте — отдельная большая тема, которой посвящён модуль «Безопасность и кошельки».

Урок пройден

Закрепите знания

Ответьте на вопросы по уроку — это поможет лучше запомнить материал

1 Какова длина хэша SHA-256 в символах?

2 Что такое Merkle Root?

3 Что такое coinbase-транзакция?

4 Что произойдёт, если изменить транзакцию в блоке №500 при наличии 900 000 блоков?

5 Сколько подтверждений в Bitcoin считаются достаточными для необратимости крупной транзакции?

Не хотите проходить тест?
Зарегистрируйтесь, чтобы прогресс сохранялся на всех устройствах
Поделиться:
Следующий урок
Содержание