Mining Pool распределяет работу и ведёт учёт вознаграждений. Пул назначает задания, а майнеры отправляют shares, удовлетворяющие более лёгкому целевому порогу пула, как статистические данные для оценки выполненной работы. Лишь редкий результат удовлетворяет также сетевому порогу и позволяет представить блок-кандидат; этот блок должен соответствовать всем правилам консенсуса. Обычный share не является блоком Bitcoin, а управление заданиями не даёт пулу права менять консенсус.
Solo Mining отличается высокой дисперсией: майнер получает весь доход от блока, когда находит принятый блок, а иначе — ничего. Пул объединяет многих майнеров и распределяет доход по оценённой доле работы. Он не снижает сложность сети, а статистически сглаживает выплаты. [Bitcoin Developer Guide — Mining] [Meni Rosenfeld — Analysis of Bitcoin Pooled Mining Reward Systems]
Задание майнинга основывается на Block Template или аналогичном построении блока-кандидата. BIP22 описывает getblocktemplate, а BIP23 — его расширения для майнинга в пуле. Протокол пула передаёт воркерам нужные поля, данные транзакции coinbase и пространство поиска. ASIC Miner перебирает заголовки; хеш заголовка представленного блока должен удовлетворять сетевому порогу Proof of Work, а сам блок — остальным правилам консенсуса. [BIP 22 — getblocktemplate] [BIP 23 — getblocktemplate pooled mining] [Bitcoin Core mining RPC — getblocktemplate]
Mining Share — отправленный результат, хеш которого удовлетворяет порогу пула, обычно значительно более лёгкому, чем сетевой. По принятым shares и их сложности пул статистически оценивает вклад каждого воркера, а не точно считает его попытки. Обычный share, удовлетворяющий только порогу пула, не становится блоком в блокчейне и не создаёт подтверждения. Он служит учётной мерой производительности. [Meni Rosenfeld — Analysis of Bitcoin Pooled Mining Reward Systems] [Stratum V2 — Mining Protocol]
Пул задаёт более лёгкий порог shares, чтобы получать результаты достаточно часто для измерения. Порогу сети Bitcoin соответствовать гораздо труднее. Share, удовлетворяющий только порогу пула, даёт учётное зачисление; если тот же хеш удовлетворяет сетевому порогу, можно представить блок-кандидат. VarDiff меняет сложность shares и тем самым их частоту, а не консенсусную Difficulty Bitcoin. [Stratum V2 — Mining Protocol]
PPS выплачивает установленную ожидаемую стоимость за принятый share соответствующей сложности и переносит риск случайных колебаний находок блоков на пул. FPPS обычно добавляет оценку дохода от комиссий за транзакции к ожидаемой субсидии. PPLNS распределяет доход от действительно найденных блоков по shares в недавнем рабочем окне, оставляя майнеру больше дисперсии. Конкретные формулы, комиссии и учёт Stale Block зависят от правил пула. [Meni Rosenfeld — Analysis of Bitcoin Pooled Mining Reward Systems] [Braiins Academy — Rewards and Payouts]
В обычном пуле оператор, как правило, составляет Block Template и определяет получателя выхода coinbase. Майнер преимущественно перебирает выделенное пространство. Это даёт пулу влияние на выбор транзакций, но не возможность навязать недействительный блок: каждый Full Node независимо проверяет блок. [Bitcoin Developer Guide — Mining] [Stratum V2 — Protocol Overview]
Stratum V1 служит для назначения работы, а контроль шаблона обычно остаётся у пула. Stratum V2 яснее разделяет роли и поддерживает зашифрованную и аутентифицированную связь. Необязательный Job Declaration Protocol позволяет майнеру представлять собственный шаблон со своим выбором транзакций, если нужные компоненты поддерживают и майнер, и пул. Mining Protocol в Stratum V2 может работать без этой возможности; сама отметка Stratum V2 не гарантирует независимого выбора транзакций. [Stratum V2 — Protocol Overview]
Концентрация пулов важна, поскольку небольшое число координаторов может влиять на включение транзакций, внедрение ПО и краткосрочное распределение Hashrate. Hashrate пула не равнозначен владению оборудованием: операторы ASIC могут перенаправлять устройства. Риск растёт, если затраты на смену пула, договоры или прошивка ограничивают такую возможность. [Bitcoin Developer Guide — Mining] [Stratum V2 — Protocol Overview]
Share может быть отклонён как устаревший (stale), дублирующийся, неправильно сформированный или не соответствующий назначенному заданию. Большая задержка между майнером и пулом, медленные обновления заданий и сбои сети увеличивают потери работы. Доля stale shares характеризует эффективность соединения майнера с пулом; это не то же самое, что Stale Block в блокчейне. [Stratum V2 — Mining Protocol]
Майнеру следует проверить комиссии пула, модель вознаграждения, минимальную выплату и правила выплат, Share Difficulty, доли отклонённых и stale shares, серверы и резервные подключения, совместимость прошивки и то, кто управляет выбором транзакций. При существенных доходах полезно сопоставлять панель пула с принятыми shares и его блоками в блокчейне. [Braiins Academy — Rewards and Payouts] [Stratum V2 — Mining Protocol]
Для полной картины прочитайте эту статью вместе с Майнинг, Hashrate, Braiins Pool, Stratum V2, Mining Share, Pay Per Share. На эту статью также ссылаются Coinbase-транзакция, ASIC Miner, Hashrate, Nonce.