Блокчейн, финтех, новая экономика, блэкджек

fork

Форк: разделение блокчейна и возможные результаты

Статьи/Хомякомикон

Многие плохо понимают суть разделений блокчейна и то, как потенциально можно разрешить подобные ситуации. В связи с активной реакцией на предложение Shaolinfry обсудить активируемые пользователями мягкие вилки (User Activated Soft Fork, UASF) следует прояснить ряд моментов, чтобы были понятны последствия разделений блокчейна и их возможные результаты.

Типы вилок

Майнеры могут создавать разделение цепи, «отцепляя» часть блоков, которые по-прежнему важны для некоторых клиентов. Пользователи придерживаются ряда консенсусных правил, соблюдаемых для всех блоков. Если среди пользователей возникают разногласия о наборе этих правил, они расходятся по разным цепям. Чтобы упростить обсуждение, опустим случай, когда относительно консенсусных правил нет разногласий, но майнеры решают отцепить блок по какой-то иной причине, и случаи, когда существует более двух наборов консенсусных правил. В рассмотренных ниже примерах будет два набора правил — Красные и Желтые. Красные правила — оригинальные, обязательные к исполнению в данный момент, Желтые — это модифицированные правила. Оранжевые правила — это комбинация Красных и Желтых (оба набора правил предполагают, что эти блоки действительны).

Несовместимая жесткая вилка

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

Несовместимая жесткая вилка
Несовместимая жесткая вилка

Хардфорк (жесткая вилка) возникает после того, как одни майнеры решают работать по новому набору правил, а другие — придерживаться старых. Блоки, произведенные по новым правилам, недействительны с точки зрения старых правил и наоборот. Пример такого разделения — Ethereum/Ethereum Classic, Bitcoin/Bitcoin Cash. В этом случае цепочки разделяются навсегда, без возможности последующего схождения.

Полусовместимые хардфорки

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

Полусовместимая жесткая вилка
Полусовместимая жесткая вилка

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

Совместимая жесткая вилка

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

Совместимая жесткая вилка
Совместимая жесткая вилка

После расширения правил, как только майнер производит блок по Желтым правилам, цепь разделяется. При таком типе разделения цепи будут оставаться разделенными, пока хэшрейт Желтой цепи будет больше хэшрейта Оранжевой. Но если хэшрейт будет больше в Оранжевой цепи, блоки Желтой цепи перестанут подтверждаться. То есть пользователям Желтой цепи не просто нужно, чтобы большая часть хэш-мощностей была в их цепи на момент запуска, но и чтобы такое состояние сохранялось постоянно. Примеры таких вилок — Bitcoin XT, Bitcoin Classic и Bitcoin Unlimited.

Софтфорк (мягкая вилка)

Софтфорк возникает, когда набор правил сужается и Желтый набор оказывается подмножеством Красного (то есть по сути получаются Оранжевый и Красный наборы правил).

Мягкая вилка
Мягкая вилка

Разделение цепочки происходит, когда майнер производит Красный блок. Пользователи, поддерживающие Красный набор правил, будут следовать этой цепи, а пользователи Желтого набора пойдут по Оранжевой цепи. В этом случае, если большая часть хэш-мощностей начнет выполняться по Оранжевым правилам, Красная цепь будет заброшена. Цепи такого типа случались в истории биткоина множество раз, например при изменениях BIP66, CSV, CLTV, SegWit.

Риск преобразования и риск разделения

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

Угрозу несет и разделение цепи. Стоимость Ethereum снизилась после отделения от Ethereum Classic. Это породило путаницу на рынке (который из Ethereum настоящий? Тот, что по оригинальным правилам, или тот, что по правилам, диктуемым централизованным органом Ethereum Foundation?). Разделение может плохо сказаться на всех пользователях. Но иногда оно необходимо. Когда у двух групп существенно расходятся интересы, им целесообразней следовать собственным предпочтениям, чем искать компромисс.

Смягчение рисков

Пользователи и майнеры в силах снизить опасность большинства вилок.

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

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

В случае совместимой жесткой вилки риску подвергаются только пользователи Желтого набора правил. Для них лучше всего, если большая часть экономики будет на их стороне. Также важно, чтобы их изначально поддерживала большая часть майнеров, иначе блокчейн не разделится. Без большей части экономики на стороне Желтых стоимость Оранжевых блоков окажется выше, майнеры будут стремиться на них заработать, что приведет к существенному преобразованию. Такой сценарий следует проводить с исключительной осторожностью (чего не сделали ни для Bitcoin XT, ни для Bitcoin Classic, ни для Bitcoin Unlimited). В первом случае активация предполагалась при при достижении 75% объема хэша, у Bitcoin Unlimited вообще не было порога для активации.
В случае мягкой вилки риск несут исключительно пользователи Красных правил. Лучшая стратегия для них — удостовериться, чтобы экономика была на их стороне и большая часть майнеров придерживалась Красных правил ИЛИ чтобы большая часть майнеров придерживалась Оранжевых правил. Звучит парадоксально, но если большая часть майнеров будет работать по Оранжевым правилам, они останутся в консенсусе с Оранжевыми пользователями и отрыва блокчейна не будет. Майнеры могут снизить риск, производя блоки только по Оранжевым правилам, отказавшись от Красных.

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

Red and Yellow miners

Эпилог

Многие, включая Джеффа Гарзика, критиковали мягкие вилки, поскольку они-де не дают пользователям выбора. По своей природе биткоин и другие блокчейны на основе proof-of-work не могут помешать майнерам навязать пользователям более строгие правила. Однако и у пользователей есть власть — они могут способствовать созданию несовместимой жесткой вилки. В этом случае пользователи могут вызвать разделение цепи, введя новый набор правил (который может, но не обязан содержать изменения в proof-of-work). Это гарантирует пользователям возможность в любом случае избежать внедрения майнерами нежелательного набора правил. Таким образом, если экономика и пользователи действительно не хотят изменения, ведущего к мягкой вилке, они могут применить давление и потребовать правил, которых хотят. Конечно, это причинит неудобство, но то же можно сказать и о любой интервенции майнеров против пользователей.

Оригинал статьи на английском — здесь.

Понравилась статья?

Подпишись на e-mail рассылку и будь всегда в курсе последних событий
BTC
955430.03%
ETH
3566.02-1.31%
BCH
536.44.25%
XRP
2.56-5.19%
Ту зе МУН