Как протоколы P2P пытаются решить проблему централизации майнинга биткойнов PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Как протоколы P2P пытаются решить проблему централизации майнинга биткойнов

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

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

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

Создание пулов для майнинга

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

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

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

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

Централизация майнинг-пула

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

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

Итак, какие решения существуют для решения этой проблемы?

P2Pool: оригинальный децентрализованный майнинг-пул

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

Майнеры в P2Pool берут блоки, которые не соответствуют целевой сложности сети, и эффективно майнят свой собственный блокчейн, состоящий из всех копий единого блока, над которым работает пул. Когда они достигают цели меньшей сложности, когда блок будет превращен в пул, чтобы доказать, что они майнят в централизованной модели, они передают этот блок остальным майнерам. «Сложность обмена» P2Pool была нацелена на то, чтобы майнеры находили общий ресурс примерно раз в тридцать секунд.

Я уверен, что читатели задаются вопросом, как работает выплата отдельным майнерам. Транзакция coinbase структурирована таким образом, что вывод создается для каждого отдельного майнера в P2Pool, разделяя средства непосредственно из транзакции coinbase. Майнеры в P2Pool проверяют правильность всех выплат себе и всем, кто участвует в пуле, и что каждый майнер, внесший акцию в цепочку акций, получает правильную оплату за свою работу в каждой новой добавленной акции. Если какой-то участвующий майнер неправильно структурирует выплаты всем в своей последней доле, тогда все остальные майнеры в P2Pool перестают включать их в свои выплаты и эффективно «выселяют» этого майнера из пула за недобросовестное поведение.

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

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

Это имеет два последствия. Во-первых: майнеры получают небольшие UTXO с низкой стоимостью в каждом блоке, который находит P2Pool, что сопряжено с затратами на объединение этих выходов позже и/или с затратами на гораздо более крупные транзакции, когда они идут тратить свои монеты из-за многочисленные отдельные UTXO, которые они получают, вместо одного при выводе средств через определенный период из обычного пула. Во-вторых: каждый новый выход coinbase занимает блочное пространство, которое может быть использовано транзакциями других людей, и приносит P2Pool больше комиссионных доходов. Это двойная потеря для майнеров, участвующих в протоколе.

Эти две проблемы способствовали тому, что протокол медленно отмирал и в конечном итоге вышел из употребления. Судя по моим усилиям по отслеживанию точной и свежей статистики (многие старые обозреватели блоков, отслеживающие долю майнинг-пула, закрылись за последние годы), кажется, что последний блок, добытый P2Pool, был включен. 12 февраля 2019.

P2Pool с выплатами канала оплаты

В 2017 году, через месяц после активации SegWit, Крис Белчер сделал рассматривается улучшить масштабируемость P2Pool за счет использования односторонних платежных каналов и группы хабов, обрабатывающих выплаты майнерам.

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

Для достижения цели атомарности между транзакцией coinbase и платежными каналами для выплат необходимо настроить сценарий вывода транзакции coinbase. В предложении Белчера он структурирован как многоотраслевой сценарий с тремя условиями расходования средств:

  • Мультиподпись два из двух. Ключ первый: концентратор (Hc). Ключ второй: майнер, нашедший блок (Mc).
  • Один ключ и хешлок. Ключ: ступица (H). Хэшлок: случайное значение, сгенерированное хабом (X).
  • Один ключ и таймлок. Ключ: шахтер, который нашел блок (M). Временная блокировка: относительная временная блокировка CSV на шесть месяцев.

Любое из этих условий расходов может быть использовано для разблокировки выхода транзакции coinbase. Теперь давайте посмотрим на скрипт канала оплаты майнерам, чтобы увидеть, как взаимодействуют эти две вещи:

  • Мультиподпись два из двух. Ключ первый: концентратор (Hc1). Ключ второй: майнер (Mc1).
  • Мультиподпись два из двух и хешлок. Ключ первый: концентратор (Hu1). Ключ второй: майнер (Mu1). Хэшлок: случайное значение, сгенерированное хабом, используемым в базе монет (X).

Теперь давайте рассмотрим, как эти две вещи взаимодействуют друг с другом.

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

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

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

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

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

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

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

Вторая проблема заключается в том, что хаб является центральной точкой, которая может подвергнуться DDoS-атак и принудительно помешать работе P2Pool. Предложение Белчера включает в себя использование нескольких хабов и отправку каждой транзакции coinbase из разных блоков в разные хабы. Однако это требует, чтобы майнеры открывали каналы со всех используемых ими хабов, что, по оценке Белчера, для хаба, требующего в 50 раз больше вознаграждения за блок (около 650 BTC) для обеспечения ликвидности для майнеров, становится невероятно неэффективным с точки зрения капитала.

Брейдпул: еще одна итерация

Enter Брейдпул (предупреждение: ссылка — это прямая загрузка PDF-файла с GitHub). Braidpool — это предложение Боба МакЭлрата и Калприта Сингха, основанное на предложении Белчера с использованием платежных каналов. Внесены два основных изменения, которые улучшают нерешенные вопросы, оставшиеся в предложении Белчера.

Во-первых, это изменение того, как хабы и майнеры общаются друг с другом. Они предлагают, чтобы майнеры привязывали адрес Tor v3 к каждой из шар, которые они транслируют в пул. Таким образом, концентратор может работать, не подвергая опасности какие-либо конечные точки сети, подверженные DoS-атакам.

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

Как протоколы P2P пытаются решить проблему централизации майнинга биткойнов PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.
Источник: Белая книга Брейдпула.

Второе изменение — использование направленного ациклического графа (DAG) вместо цепочки акций. Проблема с цепочкой акций заключалась в том, что при XNUMX-секундном целевом времени обмена сложность, необходимая для обмена, увеличивалась по мере увеличения размера пула, что усложняло задачу для мелких майнеров. Использование DAG, такого как Ethereum, где это не игра с нулевой суммой, когда одна акция попадает в цепочку акций, а другие остаются сиротами, позволяет майнерам динамически устанавливать сложность для акций, которую можно регулировать в зависимости от скорости хэширования, которую они имеют, и от того, как часто они могут найти акции с ним.

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

Помимо этих двух изменений, остальная часть структуры такая же, как и в предложении Белчера, скрипты coinbase и канала такие же.

Заключение

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

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

Это гостевой пост Шиноби. Выраженные мнения являются полностью их собственными и не обязательно отражают мнение BTC Inc или Биткойн-журнал.

Отметка времени:

Больше от Биткойн-журнал