Перейти к содержанию

Диаграмма блокчейна

Материал из BitcoinWiki
Наглядная схема структуры блокчейна со связанными блоками и сетевыми узлами.
Иллюстрация связей между блоками и узлами в типичной блокчейн-системе.

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

Содержание иллюстрации

Иллюстрация на этой странице объединяет простое изображение цепочки и сетевую схему. Три центральных прямоугольника обозначают блоки. В каждом из них указаны данные, хеш и поле хеша предыдущего блока; последнее представляет криптографическую ссылку, соединяющую блок с его предшественником. Расположенные вокруг значки компьютеров обозначают участников сети.

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

Распространённые виды диаграмм

Одна диаграмма не может объяснить все части блокчейн-системы. На практике диаграммы удобно классифицировать по вопросу, на который они отвечают:

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

Эта классификация помогает читать диаграммы, но не является стандартной нотацией блокчейна. Диаграмма может объединять несколько видов; без различающихся символов или подписей её стрелки могут быть неоднозначными. Например, актуальная документация об архитектуре узла Ethereum различает клиент исполнения, клиент консенсуса и необязательный клиент валидатора, локальный API между клиентами и отдельные одноранговые сети.[2]

Цепочка блоков

На простой диаграмме блоки располагаются последовательно. Как правило, блок содержит криптографическую ссылку на предшественника, поэтому изменение более ранних данных меняет и значение, на которое ссылаются последующие блоки. Это делает изменение заметным. Однако само по себе связывание блоков не делает переписывание реестра невозможным: устойчивость к изменениям зависит также от правил проверки и консенсуса сети.[1]

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

Данные внутри блока

Содержимое блока зависит от протокола. Полезная структурная диаграмма указывает протокол, а не представляет одно расположение полей как универсальное. Например, заголовок блока Bitcoin содержит версию, хеш заголовка предыдущего блока, корень Меркла, вычисленный по транзакциям блока, поле времени, закодированную цель доказательства работы и одноразовое число.[4]

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

Транзакции, сеть и консенсус

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

В Bitcoin одноранговые узлы объявляют о транзакциях и блоках, другие узлы запрашивают отсутствующие данные, а полные узлы самостоятельно проверяют полученную информацию. Майнеры формируют блоки-кандидаты и ищут хеш заголовка, соответствующий цели доказательства работы. Найденный блок распространяется среди узлов, однако распространение и проверка являются разными событиями.[5][3]

В настоящее время Ethereum использует доказательство доли. В его архитектуре клиент исполнения, обрабатывающий транзакции и состояние, отделён от клиента консенсуса, следующего протоколу доказательства доли; если узел выполняет функции валидатора, используется клиент валидатора. Выбранный валидатор предлагает блок, другие валидаторы его проверяют, а правила выбора ветви и финализации определяют принятую историю.[6][2]

В системах с разрешённым доступом последовательность может быть иной. В Hyperledger Fabric клиент отправляет предложение подтверждающим узлам, которые моделируют его выполнение и возвращают подтверждения, не изменяя реестр. Затем клиент передаёт подтверждённую транзакцию службе упорядочивания; позднее узлы проверяют транзакции в доставленных блоках, добавляют блоки и применяют допустимые изменения состояния. Поэтому диаграмме процесса Fabric нужны обозначения ролей и последовательности, которые не подходят для диаграммы майнинга Bitcoin.[7]

Чтение и оценка диаграммы

Перед использованием диаграммы блокчейна следует:

  1. Определить основной вид: структура данных, процесс транзакции, топология сети или роли компонентов.
  2. Проверить указанные протокол, сеть и версию программного обеспечения. Неподписанную общую диаграмму следует считать концептуальной моделью.
  3. Установить значение каждой фигуры. Повторяющиеся значки компьютеров не обязательно означают одинаковые роли всех участников.
  4. Определить направление и значение каждой стрелки. Она может обозначать хеш-ссылку, сообщение протокола, локальное программное соединение или порядок процесса.
  5. Отличать постоянные данные от передаваемых сообщений, а проверку транзакции — от предложения блока, упорядочивания, консенсуса и финализации.
  6. Найти легенду и указанные упрощения. Если объединено несколько видов, разные стили линий или подписи должны пояснять связи.

Этот список является практическим руководством по чтению, а не формальным стандартом построения диаграмм.

Ограничения

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

Примечания

  1. 1,0 1,1 Blockchain Technology Overview, National Institute of Standards and Technology, NISTIR 8202, 2018.
  2. 2,0 2,1 Node architecture, ethereum.org, accessed 3 September 2026.
  3. 3,0 3,1 Bitcoin: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto, 2008.
  4. Block Chain reference, Bitcoin Developer Documentation, accessed 3 September 2026.
  5. P2P Network, Bitcoin Developer Guide, accessed 3 September 2026.
  6. Blocks, ethereum.org, accessed 3 September 2026.
  7. Transaction Flow, Hyperledger Fabric documentation, accessed 3 September 2026.