Форки и меры противодействия

1_okCorYNgQboKEjzj2gGbZw1

Зачастую многие не понимают, что такое разделение цепочки и какие меры можно предпринять в такой ситуаций. Недавнее предложение Shaolinfry, посвящённое User Activated Soft Forks (софт-форкам, которые активируются пользователями), привлекло немало внимания. В связи с этим было бы полезно избавиться от неправильных представлений о форках, чтобы люди чётко понимали последствия этих разделений и знали о возможных вариантах действий в таких случаях.

Типы форков

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

Несовместимый хард-форк

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

1_okCorYNgQboKEjzj2gGbZw1

Несовместимый хард-форк

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

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

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

1_mw1U8_8F6x-gHNncxCSdMQ2

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

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

Совместимый хард-форк

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

1_DZDZQHUl357XqwQKEgHboQ3

Совместимый хард-форк

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

Софт-форк

При софт-форке набор правил ограничивается, а красные правила полностью включают в себя жёлтые (таким образом, остаются только наборы оранжевых и красных правил).

1_arSrMNSAeaysXVijop9X-Q4

Разделение цепочки может произойти, если майнеры начнут добывать красные блоки. Пользователи, которые придерживаются красного набора правил, будут формировать эту цепочку, а пользователи, которых устраивает жёлтый набор, – оранжевую. В этом случае, если в какой-либо момент большая часть майнеров начнёт поддерживать оранжевые правила, красная цепочка будет заброшена. В истории Биткойна было несколько таких форков: BIP66, CSV, CLTV. Сюда же можно отнести предложенный SegWit Soft Fork.

Риски реорганизации и разделения

И масштабные реорганизации, и расколы цепочек представляют опасность для пользователей и майнеров. Масштабная реорганизация может привести к исчезновению ранее принятых транзакций. А из-за этого многие люди гарантированно потеряют средства. Например, год назад вам заплатили 10 BTC за автомобиль, а сейчас эта транзакция исчезает из учётного журнала, и ваша цепочка забрасывается. В итоге у вас нет ни машины, ни биткойнов. Это может серьёзно подорвать доверие к валюте. В зависимости от типа разделения, масштабная реорганизация повлияет только на пользователей, которые поддерживают более широкий набор правил. Тех, кто поддерживает более ограниченный набор правил, реорганизация никогда не затронет.

Разделение цепочки также несёт в себе риски. Цена Эфириума упала после его разделения и появления Эфириума Классик. Из-за этого возникла путаница на рынке (Какой Эфириум настоящий? Тот, где действуют исходные правила, или тот, где правила диктует централизованная организация Ethereum Foundation?). Разделение цепочки негативно влияет на всех пользователей. Иногда разделение предпочтительнее иных вариантов (например, если две группы пользователей преследуют совершенно разные интересы, им лучше идти своим путём, чем искать компромиссы).

Снижение рисков

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

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

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

В случае совместимого хард-форка в зоне риска оказываются только те пользователи, что поддерживают жёлтые правила. Лучшее решение для них – убедиться, что экономическое большинство их поддерживает. Им также стоит убедиться, что большинство майнеров изначально на их стороне, иначе цепочка не разделится. Без поддержки экономического большинства стоимость оранжевых блоков будет выше. Поэтому майнеры, заинтересованные в прибыли, предпочтут добывать их, что приведёт к масштабной реорганизации. Здесь необходимо проявлять особую осторожность (о чём забыли как в случае с Bitcoin XT, Bitcoin Classic, так и Bitcoin Unlimited). Для активации первого требовалось собрать 75 % от общей вычислительной мощности сети, а у Bitcoin Unlimited порога не было.

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

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

1_H1r2CoG80-yMPffiHLzA3w5

Эпилог: обход навязанных майнерами правил

Многие, в том числе и Джефф Гарзик, критикуют софт-форки, потому что они не дают пользователям выбора. Природа Биткойна и других основанных на Proof of Work блокчейнов позволяет майнерам навязывать более ограниченные правила, что может противоречить интересам пользователей. Но пользователи тоже не беззащитны. Они могут поспособствовать проведению несовместимого хард-форка. В таком случае пользователи намеренно разделят цепочку, внедрив новый набор правил (который может включать изменение Proof of Work, но необязательно).

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

Источник



Рубрики:Новичкам, Теория

Метки: , ,

1 reply

  1. 123Форки и меры противодействия — EthereumClassic___123___

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s