Нода: что делают блокчейн-ноды и какие их виды существуют

Нода: что делают блокчейн-ноды и какие их виды существуют

Нода, также называемая биткоин-нодой или блокчейн-нодой, — это компьютер, который подключается к сети Биткоин и обменивается транзакциями и блоками с другими нодами — своими пирами. Сеть построена по принципу peer-to-peer (P2P), то есть компьютеры подключаются напрямую друг к другу и передают данные между собой. Только полные ноды проверяют каждый блок на соответствие правилам консенсуса.

Что делает биткоин-нода в одноранговой сети?

Биткоин-нода запускает на компьютере программное обеспечение Биткоина и поддерживает соединение этого компьютера с его пирами. Биткоин — это криптовалюта, и её транзакции и блоки передаются именно по таким соединениям между нодами.

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

Биткоин-нода подключается не ко всем остальным нодам сети, а лишь к некоторым пирам. Транзакции и блоки распространяются от пира к пиру, поэтому две ноды могут обладать разной информацией в один и тот же момент.

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

Какие типы нод существуют и что проверяет каждая из них?

Ноды различаются тем, сколько данных они проверяют и сколько данных хранят.

Что такое полная нода?

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

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

Что такое усечённая нода (pruned node)?

Усечённая нода — это полная нода, которая удаляет старые данные блоков после того, как они были проверены. Она проверяет каждый блок и каждую транзакцию точно так же, как и полная нода. Она хранит последние блоки и набор непотраченных выходов транзакций (UTXO-набор), поскольку этот набор нужен ей для проверки новых транзакций. Непотраченный выход транзакции — это сумма BTC, записанная в блокчейне, которая ещё не была потрачена.

Усечённой ноде требуется меньше места на диске, и она предоставляет другим нодам только последние блоки, поскольку старые данные у неё уже удалены.

Что такое лёгкий клиент (лёгкая нода, или SPV-клиент)?

Лёгкий клиент — это программа, которая использует сеть Биткоина, не загружая и не проверяя каждый блок и каждую транзакцию. Его также называют SPV-клиентом (от simplified payment verification — упрощённая проверка платежей), тонким клиентом, облегчённым клиентом, облегчённой нодой или лёгкой нодой. В документации разработчиков Биткоина его отделяют от понятия «нода», поскольку лёгкий клиент не ретранслирует блоки и транзакции и не проверяет их все.

Лёгкий клиент загружает заголовки блоков — по 80 байт каждый — и данные, необходимые для проверки платежа. Чтобы проверить платёж, лёгкий клиент запрашивает у полной ноды ветвь Меркле — короткую цепочку хешей, связывающую конкретную транзакцию с блоком, в который она входит. Имея эту ветвь и заголовки, лёгкий клиент может убедиться, что транзакция включена в блок.

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

Тип ноды

Что проверяет

Что хранит

На что полагается

Полная нода

Каждый блок и каждую транзакцию, на соответствие правилам консенсуса

Собственную цепочку, состоящую только из проверенных ею блоков

Не принимает на веру слова других нод о валидности блока

Усечённая нода

Каждый блок и каждую транзакцию, так же как полная нода

Последние блоки и UTXO-набор; старые данные блоков удаляются

Не принимает на веру слова других нод о валидности блока

Лёгкий клиент (SPV-клиент)

Что транзакция включена в блок, но не все правила

Заголовки блоков и данные, необходимые для проверки платежа

На полные ноды — за доказательствами, и на цепочку с наибольшим объёмом работы

Что делает полная нода с транзакцией и с блоком?

Полная нода получает транзакции и блоки от своих пиров и обычно поступает с ними следующим образом.

Когда поступает транзакция, полная нода проходит следующие шаги:

  1. Проверяются входы. Каждый вход должен ссылаться на выход, который всё ещё не потрачен, а его данные — обычно цифровая подпись — должны удовлетворять условию расходования того выхода, который он использует.
  2. Проверяются суммы, поскольку сумма выходов не должна превышать сумму входов.
  3. Нода может сохранить валидную транзакцию в своём мемпуле — зоне ожидания, где нода хранит транзакции, которые ещё не попали в блок, — и передать её своим пирам. Произойдёт это или нет, зависит от политики ретрансляции ноды — набора дополнительных локальных правил. Транзакция, не прошедшая проверку, отбрасывается.

Условный пример с вымышленными числами иллюстрирует проверку сумм. В нём две транзакции, X и Y, каждая тратит один вход в 0,5 BTC. Транзакция X отправляет 0,3 BTC получателю и возвращает 0,1999 BTC отправителю в виде сдачи — той части входа, которую отправитель не тратит на платёж. Транзакция Y отправляет 0,3 BTC получателю и возвращает 0,2001 BTC в виде сдачи.

Транзакция (вымышленная, не настоящая)

Сумма входов (BTC)

Сумма выходов (BTC)

Результат этой проверки

X

0,5

0,4999

Сумма выходов не превышает сумму входов. Разница в 0,0001 BTC — это комиссия за транзакцию. Нода переходит к остальным проверкам.

Y

0,5

0,5001

Сумма выходов превышает сумму входов на 0,0001 BTC. Нода отклоняет транзакцию.

Суммы в этом примере вымышлены и не являются рекомендацией по размеру комиссии; настоящая полная нода также проверяет, что каждый вход всё ещё не потрачен и что каждая подпись действительна, а этот пример данные проверки не показывает.

Блок, поступивший от пира, проходит, среди прочего, следующие проверки:

  1. Проверяется доказательство работы (proof of work). Хеш заголовка блока должен быть равен целевому значению, заданному сетью, или быть ниже него; доказательство работы — это вычислительные усилия, которые майнеры тратят на поиск такого хеша.
  2. Проверяется структура блока. Корень Меркле — хеш в заголовке, вычисленный на основе транзакций блока, — должен соответствовать этим транзакциям, а вес блока, показатель его размера, должен оставаться в пределах лимита, установленного правилами консенсуса.
  3. Проверяются транзакции. Каждая транзакция, кроме первой, должна пройти описанные выше проверки транзакций. Первая транзакция, называемая коинбейс-транзакцией, не имеет входа для проверки, и она может претендовать не более чем на субсидию блока — новые BTC, создаваемые в награде за блок, — плюс комиссии за транзакции этого блока.
  4. Валидный блок добавляется в цепочку ноды. Обычно нода удаляет из мемпула транзакции, вошедшие в блок, и объявляет о блоке своим пирам.

Полная нода отклоняет блок, нарушающий любое из этих правил, например коинбейс-транзакцию, претендующую на сумму больше, чем субсидия плюс комиссии.

Субсидия блока составляет 3,125 BTC за блок по состоянию на октябрь 2026 года — это значение действует с апреля 2024 года, и оно уменьшается вдвое при каждом халвинге.

Почему важно, что каждая полная нода проверяет правила самостоятельно?

Полная нода применяет правила консенсуса к каждому блоку самостоятельно. Она не полагается на слова пира, майнера или компании о том, что блок валиден.

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

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

Чем нода отличается от майнера?

Майнер и нода выполняют разные задачи. Блок майнера собирается из ожидающих транзакций — самим майнером или пулом, в котором он работает, — и майнер тратит вычислительные усилия на доказательство работы. Нода проверяет готовый блок и входящие в него транзакции, и программное обеспечение ноды не занимается майнингом, если только оператор не запускает дополнительно и майнинг-софт.

Один и тот же оператор может одновременно и майнить, и запускать ноду. Соло-майнер, который майнит в одиночку, а не через пул, обычно использует программное обеспечение полной ноды, чтобы получать ожидающие транзакции и транслировать найденный им блок.

Что подразумевает запуск ноды?

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

Новой полной ноде сначала нужно загрузить и проверить все блоки, начиная с самого первого — так называемого генезис-блока — и заканчивая последним. Этот процесс догонки называется начальной загрузкой блоков (initial block download), и то, сколько времени он займёт, зависит от компьютера и качества соединения.

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

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

Чего нода не делает?

Биткоин-нода не хранит чужие BTC. Блокчейн фиксирует, какие выходы существуют, а приватные ключи, позволяющие ими распоряжаться, хранятся в кошельках. Приватный ключ — это секретное число, которое позволяет его владельцу авторизовать расходование средств.

Нода, принимающая или ретранслирующая транзакцию, не подтверждает её тем самым. Транзакция считается подтверждённой, когда её включает в себя блок, и по замыслу биткоин-транзакции становится тем труднее отменить, чем больше блоков добавлено после того, в который она вошла. До этого момента неподтверждённую транзакцию всё ещё можно заменить или отбросить.

В Биткоине субсидия блока и комиссии за транзакции достаются майнеру, чей блок добавлен в цепочку, а собирает их первая транзакция этого блока.

27 ноября 2025 г.

Новости GoMining

Вам может быть интересно: