Введение
В предыдущей статье мы рассмотрели путь, который привел одиночный майнинг к майнингу в составе майнинговых пулов. Работа в пулах позволила перейти к более стабильному доходу. Однако, говоря о прибыльности майнинг-пулов для их владельцев и для майнеров, мы должны отметить, что большая часть рисков была смещена со стороны пользователя в сторону распорядителя. Некоторые методы, описанные в данной статье, призваны разрешить эту проблему.
Также необходимо оценить, насколько важна правильная настройка центрального узла майнинг-пула. Эти настройки определяют, как именно награда распределяется между центром и майнерами. Узнать настройки можно на официальных сайтах пулов из этого списка.
Сложные методы распределения награды
Геометрический метод
Этот метод основан на серьезном математическом базисе и продолжает идею Слаш-метода (Slush method) по борьбе с хопперами. Награда майнера делится на постоянную и переменную части. Постоянная часть одинакового размера выдается майнерам после закрытия блока. Переменная часть зависит от баллов, которые оператор пула выдает себе в самом начале. Со временем вес этих баллов уменьшается, так же как и вес обычных долей майнеров. Таким образом, нет разницы, в какой момент раунда майнить, и нет смысла бросать пул.
Этот метод использует несколько линейных уравнений с коэффициентами. Их можно использовать для балансировки выплат между оператором пула и майнерами. Кроме того, оператор при помощи коэффициентов регулирует распределение вероятности выплат, повышая или понижая тем самым риски для майнеров. Иногда формулу адаптируют с использованием логарифмического параметра для постоянной тонкой настройки баланса выплат.
Выплата за последние Х долей — Pay-per-last-N-shares (PPLNS)
Это не отдельный метод, а целое семейство, зависящее от настроек центрального узла в пуле. В каждом из них авторы отказались от концепции раундов. Вместо подсчета долей от блока до блока они предложили считать доли за определенный период вне зависимости от того, был получен блок или нет. Такой подход позволяет избавиться от концепции “раннего майнинга”, а некоторые варианты PPLNS действительно устойчивы к хоппингу.
Однако и здесь есть недостатки. Например, майнер может использовать знание о предстоящем изменении сложности себе на пользу. Действительно, его доли определяются текущей сложностью, а полученная награда может определяться уже измененной. Для окончательного решения этого вопроса были предложены нелинейные формулы динамического расчета награды в нескольких вариантах.
Двойной геометрический метод
Независимость выплат от времени участия в пуле — основная задача методов, устойчивых к хоппингу. Геометрический метод решает этот вопрос, вводя переменные выплаты. Метод PPLNS, в свою очередь, полностью игнорирует раунды. Двойной геометрический метод пытается использовать нечто среднее между этими решениями. Обновление раунда не игнорируется, но лишь частично влияет на награду. Специальный параметр контролирует точную пропорцию выплат по тому или иному методу. Как и в случае геометрического метода, здесь используются нелинейные уравнения с параметрами.
Метод максимальной выплаты за долю — Maximum pay-per-share (MPPS)
В методе PPS основные риски на себе несет владелец пула. Майнеры при этом практически не рискуют и зачастую находятся в выигрыше. Для компенсации этой особенности потребовалось изменить систему выплат так, чтобы оператор не оставался в проигрышном положении по умолчанию.
Первым предложением было объединить PPS и пропорциональный методы. Для этого одновременно учитывается два баланса. Каждый раз, когда майнер привносит долю, его PPS-баланс увеличивается. Пропорциональный баланс рассчитывается каждый раз после закрытия блока. В результате майнер получает минимальную награду из двух возможных. Таким образом, майнеры не могут использовать хоппинг для смены пула.
Учитывая сравнение прибыльности майнинг-пулов, такой метод выгоден и операторам, и майнерам. К сожалению, его использование снижает среднюю ожидаемую награду для майнера. И чем длиннее раунды между блоками, тем очевиднее это становится.
Метод общей максимальной выплаты за долю — Shared maximum pay-per-share (SMPPS)
Этот метод разработан для компенсации недостатков MPPS. Личный счет каждого майнера заменяется общим счетом майнеров в пуле. Во время удачных раундов общий счет майнеров пополняется. Он же позволяет компенсировать PPS во время неудачных раундов. Когда средства на счету заканчиваются, выплаты по PPS приостанавливаются до прихода достаточного количества средств. Для этого метода разработано большое количество вариантов, и детали применения зависят от конкретных условий.
К сожалению, некоторые реализации такого метода подвержены постоянному истощению общего счета из-за вероятностных особенностей майнинга. На это также влияют и другие факторы — например, двойное нахождение блоков и хоппинг.
Равный метод общей максимальной выплаты за долю — Equalized SMPPS (ESMPPS)
В этом методе небольшие, но постоянные выплаты важнее, чем полноценные. Пул записывает все выплаты и доли майнеров. Если есть возможность провести полную выплату — пул так и делает. В противном случае пул проводит выплаты в ограниченном объеме. При этом менее закрытые доли имеют больший приоритет на получение средств. Таким образом, новые участники достаточно быстро достигают уровня выплат постоянных членов пула.
К сожалению, это не компенсирует общий негативный тренд. Операторы пула, как правило, и не пытаются провести 100% выплат. Примерный процент выплаты на долю, согласно расчетам, составляет 97%.
Альтернативные способы распределения награды
- Метод недавней общей максимальной выплаты за долю (RSMPPS: The Recent Shared Maximum Pay Per Share) смещает приоритет выплат в сторону последних долей в методе SMPPS.
- Способ пула «Eligius». Метод модифицирует подходы PPS и Слаш. Выплаты планируются по получении долей, а выплачиваются только тогда, когда счет майнера достигает определенного размера. Награда почти всегда выплачивается напрямую майнерам без попадания в пул. Если правильный блок был признан опоздавшим, его доли переносятся на следующий раунд.
- Метод полного PPS (Full Pay-per-Share). В этом методе учитываются комиссии за транзакции. Для этого считается их среднее значение за определенный период и добавляется к награде за закрытие блока. В остальном метод полностью копирует PPS.
- Метод выплаты по группам (PPLNSG: Pay Per Last N Groups) слегка модифицирует PPLNS, назначая выплаты не по отдельным долям, а по их группам.
- Метод точечной выплаты (POT: The Pay on Target). В этом методе, помимо самих долей, учитывается сложность, относительно которой доля получена майнером. Сложности майнеров при этом не влияют друг на друга.
- Метод выплаты за недавнюю долю, ограниченный сверху, (CPPSRB: The Capped Pay Per Share With Recent Backpay) развивает идею награды в MPPS, но ограничивает выплаты так, чтобы никогда не уйти в отрицательный баланс по выплатам.
- Подход P2Pool. В этом подходе у пула создается собственный блокчейн, подобный основному. У внутреннего блокчейна сложность слегка понижена относительно основного. В момент нахождения корректного блока выплата происходит на основе закрытых блоков на внутреннем блокчейне.
Заключение
Помимо разнообразных методов, пулы могут майнить сообща, используя различные методы для подстраховки друг друга. Кроме того, пулы могут образовывать иерархию для защиты от хоппинга или частичной компенсации возможных потерь. Вопрос применения того или иного метода полностью лежит на организаторах пула. Разумный координатор не будет перетягивать на себя большую часть прибыли от майнинга, но в то же время и не захочет остаться в убытке. Управление подобным процессом всегда требует поиска баланса, поэтому в будущем могут быть разработаны новые, более гибкие методы распределения награды.