BetterHash: децентрализованный майнинг биткойнов с новыми протоколами хэширования

  • by

BetterHash: децентрализованный майнинг биткойнов с новыми протоколами хэширования

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

Что сейчас не так с отраслью майнинга биткойнов?

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

Распределение хэшрэйта Биткойн

Общее распределение мощностей среди майнинг пулов по сравнению с внутренним распределением мощностей в Slush Pool

Данная статья призвана осветить текущие модели работы майнинг пулов, исключённые при использовании протоколов BetterHash, работающих, в первую очередь, в интересах самого майнера.

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

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

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

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

Прошлогодняя презентация Мэтта Коралло представляет более технический обзор протоколов BetterHash. Но, для того, чтобы осознать насколько это важно – нет особой необходимости в понимании конкретной реализации кода. Даже просто концептуально – BetterHash объективно лучше существующих решений.

Статус Кво

Для понимания важности перехода на протоколы BetterHash – необходимо рассмотреть все проблемы, связанные с положением дел для майнеров, которых бы не было при условии использования BetterHash.

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

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

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

Что могут пулы?

  • Определять какие транзакции попадут в блок, а какие – нет;
  • Быть подкупленными [коррумпированными и организованными по принципу мафии], что позволит реорганизовать блокчейн на определённых условиях;
  • Откладывать транзакции в мемпул для завышения комиссий;
  • Направлять мощность без ведома и согласия майнеров на различные [сомнительные] форки; [пренебрежение идеологией и элементарной честью ради получения сиюминутной выгоды, что подрывает доверие к криптовалютам в целом в долгосрочной перспективе];
  • Обманывать майнеров, при наличии скрытых мотивов для этого;
  • Подавать ложные сигналы о поддержке майнерами какого-либо предложения или форка.

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

С BetterHash хакеры не смогут контролировать мощность майнеров через пул и не будут иметь на неё прямого влияния.

Атаки на сетевом уровне также важны, не менее чем пулы, использующие мощности своих майнеров. Злоумышленник может отключить часть хэш-мощностей или перенаправить их по своему усмотрению. Атака по BGP довольно проста, а время и ресурсы на её выполнение относительно невелики.

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

Атаки на уровне сети обсуждаются с отметок 5.52 по 9.00

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

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

Пулы определяют – какие транзакции включаются в блок

Часто, при обсуждении возможности атаки 51%, поднимается проблема того, что можно навязать достаточному количеству пулов чёрный список адресов, особенно, если вас как майнера это не волнует. Мотивацией может стать принуждение или просто финансовый стимул, и неважно – вы представитель самого пула или внешний майнер, который платит этому пулу комиссию.

Сценарий #1. Цензура горячего кошелька сервиса

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

Сценарий #2. Цензура транзакций

Цензура транзакций zcash

Возможно, разработчик был таким ленивым, что выдал код, который игнорировал экранированные транзакции [в сети Zcash] …

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

Один пул контролирует 51% мощности сети Zcash

Пулы могут подкуплены для реорганизации блокчейна

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

Некоторые майнеры могут подумать, что получение взятки — в их интересах, если получат часть от неё. Но, стоит понимать, что чем выше доля майнеров в этом деле – тем меньше у пула для этого стимула. [Пулу не выгодно делить полученное с кем-либо].

Дополнительно, подкуп пула [или давление на него], действительно может противостоять последствиям хакерского взлома, но, это внесёт ещё больше неразберихи.

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

Bitmain скоро сможет взять под контроль 51% сети Биткойн

Следующий подкаст [англ] позволит узнать больше нюансов на эту тему, и стоит учитывать, что ни одна из вещей, которую в нём обсуждают — не будет иметь значения при использовании протоколов BetterHash. Ведь, ничего из упомянутого там не стоит внимания в том случае, если блоки будут создавать сами майнеры, а не пулы.

Пулы могут задерживать транзакции для увеличения комиссии

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

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

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

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

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

Мельтем Демирорс: Ничто не децентрализовано

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

Диаграмма ниже наглядно демонстрирует, что на момент её публикации майнеры получили вознаграждение только за ~ 7% транзакций из 50% транзакций, которые находились в ожидании включения в блок.

Mempool Bitcoin

https://www.reddit.com/r/Bitcoin/comments/7lwajx/spamming_the_network_unfortunately_doesnt_result/

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

Иными словами, подобная практика является выгодным делом для любого более или менее крупного пула.

Пулы могут использовать хэшрэйт майнеров ненадлежащим образом

Однозначно, что пулы выбирают с какой цепочкой работать. Пул отдаёт майнерам блок, фактически говоря: «Это мой блок», и майнеры его майнят, пока кто-то его не найдёт, затем пул отдаёт им следующий блок.

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

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

Сценарий:

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

Но, в какой-то момент, Pool_A решает направить ваши мощности на «жизнеобеспечение» другого цифрового актива, который находится в более плачевном состоянии. При этом, он, возможно, вам не по душе или является конкурентом тому варианту, что предпочитаете вы. Пул продолжает платить за мощность ваших майнинг-ригов SHA-256, но при этом, использует её для добычи другого цифрового актива, а не того, который, как вы считаете, вами добывается.

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

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

Пулы могут вести с майнерами нечестную игру

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

Распределение хэш-мощностей Bit
Распределение хэш-мощностей – это то, что пул открыто демонстрирует, но, по факту, это необязательно так

Если пул показывает, что добываются две цепочки – зелёная (80%) и жёлтая (20%), и вы, соответственно, начинаете через них добывать зелёную цепочку, то как вы достоверно убедитесь, что жёлтую цепочку, действительно, добывают только 20% майнеров? Ведь, пул может убедить любого майнера индивидуально, что он в меньшинстве, хотя, это может быть не так.

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

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

Мемпул Биткойна растет по мере того как майнеры переходят на добычу Bitcoin Cash

Пулы могут подавать ложные сигналы о поддержке какого-либо предложения или форка, используя мощности майнеров

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

Даже с учётом того, что подобный сигнал ни к чему не обязывает – остаются сравнительно небольшие риски. Нужно лишь убедить несколько человек, использующих ваш пул, временно сигнализировать о поддержке чего-либо, чтобы двинуть рынок в нужном направлении.

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

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

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

Никто не желает сценария, подобного произошедшему с NO2X, и горстка пулов не должна решать, что действительно достойно поддержки, а что – нет. Возможно, событий, связанных с NO2X, не произошло бы, при условии, существования BetterHash несколько лет назад.

MinerSupport SegWit
Майнеры не подавали сигнала о поддержке Segwit2X – это сделали пулы

Вывод: перспективные вопросы

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

Возможно, сейчас важно подчеркнуть их для читателя:

  1. Я не знал, что пулы обладают такими возможностями.
  2. Это создаёт впечатление, что у пулов гораздо больше контроля, чем есть на самом деле.

Пулы Antpool и BTC.com потеряли лидерство по хэшрейту в сети Биткойна

Теперь о вытекающих соображениях:

Первый человек, вероятно, мало что знает о майнинге и Биткойне в целом, а второй человек вращается в блокчейн-среде, и понимают нюансы, достаточные для более точного понимания подобных сценариев.

Также, можно взглянуть на это под другим углом:

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

Эти реакции действительны – равно как и вытекающие соображения:

Если бы у пулов не было возможностей злоупотребления в этой системе, в соответствии с её нынешними особенностями, то и стимула для разработки более совершенных протоколов также не было бы, и вы бы сейчас это не читали.

И, наоборот – если бы пулы были такой серьёзной угрозой для Биткойна, то они бы уже злоупотребляли своей властью непоправимым образом (см. BCash).

Но, возможно, в качестве альтернативы подобным разнополярным реалиям стоит выбрать именно BetterHash. Он должен быть полностью реализован, т.к. объективно лучше, чем то, что есть сейчас. Злоупотребления со стороны пулов и сетевые атаки не должны быть возможными, и можно смягчить эту проблему, стимулируя майнеров запускать собственные узлы, чтобы они могли создавать собственные блоки, и использовать более совершенный протокол для взаимодействия с пулом, структурированный вокруг этого простого, но, фундаментального изменения.

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

Автор: StopAndDecrypt

Источник

Published at Wed, 04 Mar 2020 06:12:02 +0000