Что такое UASF (BIP-148). Шансы на активацию в сети Биткоин и риски сторон

 

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

За подробной технической информацией вы можете обратиться к информационному веб-сайту, созданному сторонниками активируемого пользователями софт-форка (User-Activated Soft Fork, UASF). Если же вы достаточно сведущи в технической стороне вопроса, то рекомендую ознакомиться с самим предложением по усовершенствованию Биткоина BIP-148. Стоит отметить, что существует и другое предложение UASF, BIP-149, однако BIP-148, пожалуй, более актуален, потому что в нём определена важная дата: 1 августа 2017 года.

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

Что именно подразумевает под собой реализация BIP-148?

Для ответа на этот вопрос, в BIP-148 включён код эталонной реализации:

// BIP148 mandatory segwit signalling.
int64_t nMedianTimePast = pindex->GetMedianTimePast();
if ( (nMedianTimePast >= 1501545600) &&  // Tue 01 Aug 2017 00:00:00 UTC
(nMedianTimePast <= 1510704000) &&  // Wed 15 Nov 2017 00:00:00 UTC
(!IsWitnessLockedIn(pindex->pprev, chainparams.GetConsensus()) &&  // Segwit is not locked in
!IsWitnessEnabled(pindex->pprev, chainparams.GetConsensus())) )   // and is not active.
{
bool fVersionBits = (pindex->nVersion & VERSIONBITS_TOP_MASK) == VERSIONBITS_TOP_BITS;
bool fSegbit = (pindex->nVersion & VersionBitsMask(chainparams.GetConsensus(), Consensus::DEPLOYMENT_SEGWIT)) != 0;
if (!(fVersionBits && fSegbit)) {
return state.DoS(0, error(“ConnectBlock(): relayed block must signal for segwit, please upgrade”), REJECT_INVALID, “bad-no-segwit”);
}
}

Даже если вы не знаете C++ и не можете прочитать этот программный код, комментарии к нему и сами по себе достаточно информативны. Для того, чтобы программное обеспечение с поддержкой BIP-148 отклонило блок, который в ином случае был бы признан действительным, он должен удовлетворять каждому из этих условий:

  • Блок должен быть обнаружен в период с 1 августа 2017 года по 15 ноября 2017 года. 1 августа 2017 года указано в BIP-148 в качестве даты начала отказов в подтверждении блоков. 15 ноября 2017 года истекает срок действия текущего предложения по SegWit;
  • SegWit ещё не активирован в сети;
  • Блок не сигнализирует о поддержке SegWit.

Как это повлияет на сеть?

С практической точки зрения, будет сформирован некий блок X – первый блок после наступления 1-го августа 2017, не поддерживающий SegWit – который будет отклонён нодами, поддержавшими BIP-148, и принят нодами, не поддержавшими BIP-148. Для наглядности, обозначим блок, предшествующий X, буквой C. Ноды, поддерживающие BIP-148, будут находиться на блоке C, остальные ноды – на блоке X.

В какой-то момент майнеры, поддерживающие BIP-148, сформируют блок Y, основанный на блоке C.

 

Образуется форк, но на тот момент он будет являться так называемым “софт-форком”. Если же ни один майнер не поддержит BIP-148, то ситуация будет выглядеть следующим образом:

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

Кто может реализовать UASF?

Исходя из сказанного выше, ясно, что, хоть он и называется “активируемым пользователями”, в действительности, форк инициируют майнеры. Для реализации форка необходим, по крайней мере, один майнер, использующий программное обеспечение с поддержкой BIP-148. Фактически, не считая вариантов перехода на Proof-of-Stake или чего-то подобного, никакой возможности реализовать какой бы то ни было форк без участия майнеров не существует.

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

Это означает, что, в случае форка BIP-148, обеспеченного достаточными хэширующими мощностями, SegWit будет активирован, поскольку 100 % их блоков будут сигнализировать о его поддержке, что превышает необходимые 95 %.

Что всё это означает для меня?

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

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

Так почему же этот форк называется “активируемым пользователями”?

Есть две причины, по которым BIP-148 является “активируемым пользователями”.

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

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

Что подразумевает поддержка BIP-148?

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

Статус узла сети даёт вам право отклонять блоки или отдельные транзакции по любым причинам, но это будет совершенно бесполезно, если другие ноды не согласятся с вами. Вот почему сторонники BIP-148 хотят заручиться поддержкой “экономически значимых нод”: майнеров, бирж, сервисов электронных кошельков и предпринимателей. Давайте взглянем на каждый из перечисленных типов нод и подумаем, что может являться для них стимулом.

Пользователи и BIP-148

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

Биржи и BIP-148

С точки зрения биржи, главное, что им нужно сделать – это обеспечить своим пользователям возможность ввода и вывода средств. Если они поддержат BIP-148, то их пользователи, в случае форка, смогут покупать и продавать монеты BIP-148. Но обратите внимание, что это не исключает поддержки и другой цепочки! На самом деле, и для бирж, и для сторонников UASF, выгодна поддержка биржами обеих цепочек, так как многие пользователи захотят обменять монеты одной из них на монеты другой.

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

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

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

Сервисы кошельков и BIP-148

В сфере Биткоина, исходный код электронных кошельков практически всегда открыт. Поддержка BIP-148 означает просто, что кошелёк совместим с определённым программным обеспечением. Если разработчики кошелька не станут поддерживать BIP-148, скорее всего, будет сделана версия кошелька с поддержкой BIP-148, и наоборот. В действительности, желательно иметь кошелёк с поддержкой обоих форков, потому что каждый пользователь захочет управлять балансом своих монет на обеих цепочках. Даже если монеты одной цепочки будут стоить 10 000 долларов, а другой – только 100 долларов, всё равно вам понадобится возможность осуществления транзакций и на цепочке с монетами по 100 долларов, чтобы что-то с ними сделать (хотя бы и обменять на монеты другой цепочки, с более высокой стоимостью).

Предприниматели и BIP-148

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

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

Майнеры и BIP-148

Для всех рассмотренных выше участников, поддержка BIP-148 означает, что, в случае реализации UASF, они смогут поддерживать обе цепочки. Поддержка форка BIP-148 может сулить для них только экономическую выгоду и никаких потерь, за исключением некоторых фиксированных расходов (на запуск ноды, внесение некоторых изменений в программное обеспечение и т.п.). Всем этим действующим лицам экосистемы Биткоина нет необходимости выбирать, какое программное обеспечение использовать – они могут использовать и то, и другое. Собственно, именно так им и следует поступить, если они хотят максимально увеличить имеющуюся ценность.

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

Ставки в игре

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

Это влечёт за собой некоторые значительные последствия.

Можно ожидать, что майнеры будут последними, кто окажет поддержку BIP-148, поскольку они при этом берут на себя наибольшие риски. Похоже на то, что только 1 из 17 крупнейших майнеров поддерживает BIP-148. Да и этот единственный, Bitfury, теперь, похоже, поддержал соглашение с Consensus 2017. Иными словами, более 94 % хэширующих мощностей (а возможно, и намного больше) не поддерживают BIP-148.

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

Заключение

Действительно, для майнеров, единственный способ экономически оправдать свою поддержку BIP-148 – это майнить блоки BIP-148. Все остальные участники сети просто будут пользоваться обеими цепочками, потому что это в их интересах. Оборудование для майнинга в последнее время упало в цене и единственный способ действительно способствовать UASF через BIP-148 – это заняться майнингом самому. Всё прочее – это лишь попытки решить задачу византийских генералов без Proof-of-Work.

Это должно быть интуитивно понятно. Биткоин – децентрализованная система. Если бы в ней можно было произвести значительные изменения при помощи небольшого количества денег, ресурсов или времени, этой возможностью воспользовались бы очень быстро. Изменения имеют свою реальную цену, и эта цена вполне может составлять значительную сумму (более $700) для большого количества (более 1000) людей. Иными словами, изменить Биткоин очень тяжело, и это замечательное его свойство.

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

Биткону Плевать.

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

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

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

Источник

Предыдущая новостьВиталик Бутерин рассказал о масштабировании, краудсейлах и азиатском буме на Ethereum
Следующая новостьТоргово-промышленной палате Оренбургской области – 22 года!