Россия, Москва, МГОУ, 2007 |
Особенности майнинга
Пулы совместного майнинга
Прежде, чем говорить о пулах майнинга, рассмотрим деятельность отдельного майнера с экономической точки зрения. Допустим, майнер тратит 6000 долларов США на приобретение хорошего нового оборудования для майнинга. После приобретения он надеется на то, что создаст блок через 14 месяцев с помощью данного оборудования. По сегодняшним ценам один созданный блок стоит около 15000 долларов США. Значит, что ожидаемый доход данного оборудования составит около 1000 долларов США в месяц. Возможна такая ситуация, что затраты на электроэнергию и на эксплуатацию оборудования составят 1000 долларов в месяц – тогда не стоило покупать оборудование за 6000 долларов. Но необходимо помнить, что майнинг – это случайный процесс. Майнер никогда не знает, когда сможет создать новый блок, - он может создать его в любое время. Если посмотреть на распределение количества блоков, которые, вероятно, можно создать за первый год с помощью оборудования с мощностью около 1 терахэш, то можно увидеть, что дисперсия довольно высока, то есть ожидаемое количество блоков, невелико. Если просто взглянуть на распределение Пуассона, то можно увидеть, что вероятность того, что в первый год не получится найти ни одного блока составляет более 40%.
Другими словами, на оборудовании за 6000 долларов, потребляющем большой объем энергии, за целый год можно ничего не заработать.
Вероятность того, что за первый год удастся создать один блок , составляет 36%. Еще чуть меньше вероятность того, что получится создать два или более блоков – только в этом случае можно говорить о прибыли от использования этого оборудования.
Все вышесказанное означает, что для отдельного майнера майнинг – это, по сути, большая игра в рулетку.
Как показывает время, когда деятельность малого бизнеса стала связана с большим риском, в поисках путей снижения риска компании объединились и образовали компании взаимного страхования. Таким образом, фермеры объединились и согласились с тем, что если дело одного из фермеров прогорит, то остальные обязуются разделить прибыль с ним, чтобы фермер не обанкротился. Если применить модель взаимного страхования к отдельным биткоин-майнерам, то получится пул совместного майнинга. Майнеры в пуле пытаются создать блок, а новообразованные биткоины отправляются администратору пула, то есть в качестве адреса в "coinbase" указывается его адрес. Управление вознаграждением осуществляется администратором пула. Он распределяет вознаграждение по всем участникам пула пропорционально вкладу каждого участника.
Администратор пула в большинстве случаев взымает определенную плату за управление пулом. Использование пула позволяет снизить дисперсию. Но как администратор пула узнает, какой вклад делает каждый из участников?
Очевидно, администратору нельзя полагаться на "честное слово" участников, так как каждому из них выгодно преувеличивать свой вклад. Существует механизм, с помощью которого майнеры могут вероятностно доказать, какой вклад они вносят, отправляя шары. Шары – это блоки, которые недостаточно хороши, чтобы считаться достоверными. Тогда как довольно редко можно создать действительно достоверный блок, выходной хэш которого начинается с 66 требуемых нулей. Будет попадаться гораздо больше недостаточно хороших блоков, которые начинаются с множества нулей, но не с 66, что необходимо, чтобы блок считался достоверным.
Таким образом, общий размер может быть, например, 40 бит или, возможно, 50 бит зависимости от того, для какого размера образован пул.
Теперь, если майнеры-участники пула отправляют множество почти достоверных блоков, то скорость, с какой и создаются эти почти достоверные блоки, предоставит администратору пула объективную статистическую картину, которая будет отражать вклад каждого участника. Еще одна приятная особенность состоит в том, что не существует способа подделать их. Исходя из свойств хэш-функции, невозможно создать почти достоверные блоки без поиска достоверных блоков на ожидаемой скорости.
Каждый раз после обнаружения предыдущего блока администратор пула, который получает транзакции и собирает блок, сообщает всем участникам о следующем блоке, над которым все будут работать. Они составят дерево транзакций Меркла, которое будет включено в этот блок. И, в частности, они обязательно укажут первой транзакцией в блоке комиссионную транзакцию, которая создает новые монеты и присваивает право собственности на них пулу.
Затем заголовок блока, над которым участникам нужно будет работать, будет отправлен всем участникам пула. И они должны представить доказательства того, что они работали над этим, отправив шары, подтверждающие выполнение работы над этим блоком.
Все майнеры приступают к работе. И все они будут медленно находить почти достоверные блоки или шары до тех пор, пока один из майнеров пула не создаст достоверный блок, который затем будет опубликован.
После того, как это произойдет, все участники пула отправят администратору пула все шары, которые они вычислили. Затем администратор пула распределяет всю сумму вознаграждения, полученную за опубликованный блок, между всеми участниками пула пропорционально вкладу каждого участника.
Обратите внимание на то, что тот майнер, который действительно создал достоверный блок, получает меньше вознаграждения, чем тот, который, в конечном счете, не создал ни одного достоверного блока, но вычислил множество шар.
Таким образом, майнер, создавший достоверный блок, не обладает никаким преимуществом.
Им было бы выгоднее, если бы они занимались майнингом отдельно, так как в этом случае они получали бы весь объем вознаграждения за созданный блок. Но, безусловно, те майнеры, которым не удалось создать достоверный блок, рады быть в составе пула, так как они ничего бы не заработали, если бы занимались майнингом отдельно.
Существует множество видов начисления вознаграждений на основе отправленных шар. Рассмотрим вид начисления вознаграждений PPS, при котором администратор пула сообщает, что за каждую шару выше определенной сложности, которая будет ему отправлена при создании блока, будет установлена фиксированная сумма вознаграждения.
В некоторой степени это самое лучшее решение для майнеров, так как присутствует гарантия. Каждый раз после нахождения шары, майнер будет получать фиксированную сумму вознаграждения. В таком случае весь риск ложится на администратора пула. Как правило, при PPS майнеры платят самые высокие операционные сборы администратору пула.
Другой вид начисления вознаграждений – пропорциональный, при котором вместо оплаты фиксированной суммы вознаграждения за каждую шару награда за шару зависит от того, был ли создан достоверный блок или нет. Таким образом, каждый раз при нахождении достоверного блока, вознаграждение за этот блок будет распределяться между всеми участниками пула пропорционально их вкладу. В этом случае майнеры берут на себя определенный риск пропорционально риску пула в целом.
Таким образом, если пул достаточно крупный, то дисперсия распределения найденных достоверных блоков будет достаточно низкой. Пропорциональный вид начисления награждений может быть хорошим решением. И это снизит риск, лежащий на администраторе пула. На данный вид также не распространяется проблема присущая виду PPS, которая заключается в том, что при оплате за шару у майнеров нет мотивации на то, чтобы отправлять достоверные блоки. У них нет мотивации, но у них есть возможность при нахождении достоверного блока сохранить это в тайне.
Отсутствие мотивации на отправку достоверных блоков вызвано тем, что они в любом случае получат фиксированную сумму вознаграждения за шару. Тогда как при использовании пропорционального вида начисления наград майнеры, безусловно, хотят отправить достоверные блоки, так как это приводит к возвращению им вознаграждения.
И последний вид начисления вознаграждения, который был популярен некоторое время, заключается в том, что администратор не собирает операционные сборы, однако майнеры не могут получить какое-либо вознаграждение до тех пор, пока их баланс не превысит 1 биткойн. Это означает, что новые участники пула некоторое время не смогут зарабатывать. А затем они будут равномерно получать вознаграждение без каких-либо операционных сборов администратору пула.
Участие в пулах с таким видом вознаграждения выгодно, но туда всё сложнее попасть. Пулы достаточно сильно продвинулись в своем развитии. Существует несколько протоколов, чтобы запустить пулы майнинга. Существует мнение, что данные протоколы следует стандартизировать как часть системы Биткойн.
Протоколы для запуска пулов майнинга схожи с протоколами системы Биткойн, которые используются для функционирования одноранговой сети, и представляют собой интерфейс прикладного программирования (API), который используется для осуществления коммуникаций между администратором пула и всеми членами пула. Они позволяют администратору пула сообщать о том, когда необходимо начинать работу над новым блоком, какой блок следует искать, и чтобы майнеры могли отправить администратору пула найденные шары. Некоторые аппаратные устройства для майнинга поддерживают эти протоколы на уровне аппаратного обеспечения.
Достаточно купить такое оборудование для майнинга, подключить к электросети, установить сетевое соединение, выбрать пул. После этого оборудование сразу начнет получать инструкции от пула и майнить. Майнинг-пулы впервые были образованы примерно в 2010 году, в период популярности видеокарт для майнинга, то есть несколько поколений назад. Они быстро завоевали популярность, так как снижали дисперсию распределения созданных блоков для майнеров-участников пула.
Таким образом, к 2014 году подавляющее большинство всех майнеров стали участниками пулов совместного майнинга. Мало кто сейчас занимается майнингом отдельно, не вступая в пулы. В июне 2014 года произошло интересное событие - самый крупный пул GHash.io настолько увеличился, что на него стало приходиться 50% мощности всей системы Биткойн. Это то, чего сообщество Биткоин долгое время боялось, однако, по существу, GHash предлагал такие хорошие условия всем майнерам, вступившим в пул, что все захотели присоединиться. В последствии пул GHash немного уменьшился, так как они сделали свои операционные сборы менее привлекательными, чтобы попытаться снизить количество майнеров пула. Примерно половина мощности сети Биткоин контролируется, в основном, 2 пулами совместного майнинга. Остальная часть приходится на небольшое число других пулов майнинга.
Преимуществом пула майнинга является то, что он делает майнинг более предсказуемым для участников пула. И облегчает процесс вовлечения небольших по мощности майнеров в игру. Дисперсия распределения созданных блоков сделала бы невозможным майнинг по экономическим причинам без существования майнинг-пулов, участвуя в котором, можно на гораздо меньшем по мощности оборудовании зарабатывать деньги.
Еще одно преимущество майнинг-пула состоит в том, что существует один главный администратор пула, который подключен к сети и собирает блоки. Фактически это упрощает обновление сети, так как, при обновлении программного обеспечения администратора майнинг-пула, эффективно обновляется и программное обеспечение всех участников пула.
Безусловным недостатком майнинг-пулов является то, что они ведут к централизации. И остается нерешенным вопрос, какой властью на самом деле обладают управляющий элемент майнинг-пула. Конечно, теоретически майнеры вправе свободно переходить из пула в пул столько, сколько им захочется. Если майнер получает прибыль в одном пуле, он вероятнее всего будет получать столько же и в другом пуле, так как вознаграждение, которое они выплачивают, схожи. Сегодня все они предлагают примерно одно и то же. Но на практике майнеры нечасто меняют пулы просто потому, что им лень, им легче продолжать сотрудничать с пулом, в который они уже вступили.
Еще одним недостатком пулов совместного майнинга является то, что они способствуют снижению количества полных нод. Раньше отдельным майнерам приходилось запускать свою собственную полную ноду. Им всем приходилось хранить полную версию цепочки блоков и верифицировать каждую транзакцию. Сейчас большинство майнеров перекладывают эту задачу на администратора пула.