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

Протокол майнинга Stratum

Материал из BitcoinWiki
Протокол майнинга Stratum
Протокол майнинга Stratum.

Протокол майнинга Stratum — семейство протоколов для обмена заданиями и результатами proof-of-work между майнерами, прокси и инфраструктурой пулов. Исходный протокол теперь называется Stratum V1 (SV1); Stratum V2 (SV2) — отдельно специфицированный преемник с другим форматом сообщений и моделью безопасности.[1]

Stratum V1

Stratum V1 появился в 2012 году и получил широкое распространение в оборудовании и пулах Bitcoin. Вместо повторных запросов getwork используется постоянное TCP-соединение, по которому пул отправляет новые задания.[1][2] Обычно V1 использует разделённые переводом строки сообщения в стиле JSON-RPC. Исходный интерфейс не был полностью стандартизован, поэтому возникли разные диалекты и расширения.[3]

Основной обмен сообщениями

Типичный сеанс использует следующие сообщения; точные параметры и необязательное поведение зависят от реализации.[4]

Направление Метод Назначение
Майнер → сервер mining.subscribe Начинает или возобновляет сеанс. Ответ обычно содержит идентификаторы, extranonce1 и размер extranonce2.
Майнер → сервер mining.authorize Связывает соединение с именем воркера и, если применяется, паролем.
Сервер → майнер mining.set_difficulty Задаёт сложность шар; изменение применяется последующим заданием.
Сервер → майнер mining.notify Передаёт идентификатор, хеш прошлого блока, части coinbase, ветви Merkle, версию, цель, время и признак сброса старых заданий.
Майнер → сервер mining.submit Отправляет воркер, задание, extranonce2, время и nonce для проверки и принятия либо отклонения.

К распространённым необязательным сообщениям относятся client.reconnect, client.show_message и mining.set_extranonce. BIP 310 определяет mining.configure для согласования version rolling, минимальной сложности и подписки extranonce.[5] Более ранние проекты вроде mining.capabilities не входят в этот механизм, и их поддержку нельзя предполагать.

Ограничения

Базовый V1 передаёт трафик открытым текстом. Исследование 2017 года показало, что пассивный наблюдатель мог оценить хешрейт и доходы, а перехвативший соединение злоумышленник — изменять сообщения.[4] Собственный TLS-туннель пула может уменьшить риск, но не является свойством базового протокола.

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

Stratum V2

Stratum V2 использует точно определённые бинарные сообщения. Спецификация описывает каналы, встроенный version rolling, агрегацию соединений и роли устройств, прокси, пулов, деклараторов заданий и поставщиков шаблонов.[3][6]

Набор включает три подпротокола:[6]

  • обязательный Mining Protocol для выдачи заданий и отправки шар;
  • необязательный Job Declaration Protocol, позволяющий стороне майнера предложить набор транзакций; и
  • Template Distribution Protocol для передачи данных шаблона от узла Bitcoin.

Объявление заданий необязательно. Пул может применять V2 с выбранными им заданиями; при объявлении сторона майнера создаёт шаблон и предлагает его пулу.[6] Это меняет выбор транзакций, но не определяет выплаты и не устраняет доверие к учёту пула.

V2 защищает удалённые соединения аутентифицированным шифрованием. Используются AEAD и рукопожатие на основе Noise; оно обязательно для удалённых восходящих соединений и необязательно в локальной сети между устройством и прокси.[7]

Совместимость и реализации

Прокси-переводчик может принимать соединения V1 от устройств и использовать V2 к пулу. Это мост протоколов, а не нативная поддержка V2 устройством. Нужные расширения и подпротоколы следует проверять у майнера, прокси и пула.

См. также

Ссылки

  1. 1,0 1,1 Проект Stratum V2, «Open Bitcoin mining standard», проверено 14 сентября 2026 года.
  2. Bitcoin Wiki, «Stratum mining protocol», проверено 14 сентября 2026 года.
  3. 3,0 3,1 Спецификация Stratum V2, «Design Goals», проверено 14 сентября 2026 года.
  4. 4,0 4,1 Maria Apostolaki et al., «Hardening Stratum, the Bitcoin Pool Mining Protocol», Proceedings on Privacy Enhancing Technologies, 2017.
  5. BIP 310, «Stratum protocol extensions», проверено 14 сентября 2026 года.
  6. 6,0 6,1 6,2 Спецификация Stratum V2, «Protocol Overview», проверено 14 сентября 2026 года.
  7. Спецификация Stratum V2, «Protocol Security», проверено 14 сентября 2026 года.