Bitcoin и его Forks
04.10.2021

Bitcoin и его Forks

By bit.team

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

Что такое форк?

Слово fork — это английское слово, означающее «ветвь», или «вилка». Термин особенно используется при разработке программного обеспечения для обозначения программы, полученной из исходного кода: например, LibreOffice является ответвлением OpenOffice.

В мире криптовалюты слово «форк» иногда также можно понимать в смысле: Litecoin и Dash являются вилками исходного кода Bitcoin. К сожалению, этот термин охватывает и два других значения, и все это может сбивать с толку.

«Fork» — это ветвь цепи

Первое значение слова fork — ответвление от блокчейна. Этот тип ветвления происходит регулярно в Биткойне, и является совершенно нормальным и безопасным, особенно когда два майнера одновременно находят блок на своей стороне. Два найденных блока полностью действительны, но узлы сети (учитывая, например, что только первый полученный блок является правильным), не имеют одинакового видения цепочки, что создает конфликт в сети и мгновенно разделяет ее.

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

Сетевой конфликт, вызванный общей ветвью цепочки

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

Изменение правил консенсуса

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

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

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

Неконфликтные вилки

Форки консенсуса можно разделить на три разные категории: они могут возникать случайно, они могут быть обновлены с почти единодушного согласия сообщества, или могут вызывать споры, когда они являются предметом обсуждения. Все эти форки вы найдете на Coinmarketrate.com, в подробнейшем описании.

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

Случайное ветвление

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

Первая случайная ветвь была датирована 15 августа 2010 г. и известна как «value overflow incident overflow». Это проявилось как ошибка переполнения памяти, которая позволила создать несколько миллиардов ВТС за одну транзакцию! Впоследствии проблема была решена с помощью софт-форка, который аннулировал блок, содержащий ошибочную транзакцию.

Таким образом, около 51 блока были бы признаны недействительными из-за применения патча: следовательно, эта ветвь длилась бы около 8 часов 30 минут.

Второе случайное ветвление произошло 11 марта 2013 г. в результате обновления системы баз данных, перенесшего из Berkeley DB в LevelDB. BerkeleyDB использовал лимит по умолчанию («предел блокировки»), который LevelDB не соблюдал: поэтому миграция, к сожалению, была хард-форком.

Обновления

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

Прежде всего, одним из первых крупных обновлений BTC является уменьшение предела размера блока, который изначально был негласно установлен на уровне 32 МБ, а с 12 сентября 2010 года был уменьшен до 1 МБ самим Сатоши Накамото.

Затем, немного позже, культовым обновлением стало то, что в ВТС был интегрирован тип адреса P2SH (BIP16): этот формат облегчает реализацию смарт-контрактов. Это первый софт-форк, активированный майнерами (MASF), чье приложение зависит от отчетности.

Затем, чтобы проиллюстрировать тот факт, что апдейт не всегда проходит идеально, мы можем обратиться к софт-форку, требующий соблюдения стандарта кодирования подписей «Особые правила кодирования» (BIP66), который был применен 4 июля 2015 года.

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

Наконец, было проведено 3 основных апдейта, которые в конечном итоге облегчили внедрение сети Lightning. Код операции OP_CHECKLOCKTIMEVERIFY (BIP65) был реализован в 2015 году, чтобы позволить использовать блокировки абсолютного времени в языке программирования Биткойн.

В 2016 году настала очередь кода OP_CHECKSEQUENCEVERIFY и других улучшений (BIP68, BIP112, BIP113) для интеграции блокировок относительного времени. Версия SegWit (BIP141), исправляющее гибкость транзакций, было наконец реализовано 24 августа 2017 года.

Очередной апдейт — Taproot, ожидается в ноябре текущего года.

Форки для судебных разбирательств

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

Эти расколы возникли, в частности, из-за дебатов о масштабируемости актива. В период с 2013 по 2017 год возник вопрос о том, как должно происходить масштабирование: должно ли оно происходить в основном в цепочке (как обсуждалось с самого начала) или должно происходить в основном за пределами цепочки с помощью наложенных решений, таких как сеть Ligthning?

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

Эффективные расколы

Давайте теперь перейдем к собственно расколу. Самым известным примером, вероятно, является Bitcoin Cash, который 1 августа 2017 года отделился от основной сети из-за отказа перейти на SegWit (что считается слишком сложным), и из-за желания значительно увеличить транзакционную емкость цепи.

Этот двусторонний хард-форк, получивший название «активированный пользователем хард-форк» (UAHF), позволил увеличить лимит размера до 8 МБ и изменить метод подписи. За ВСН-протоколом последовали две основные реализации: Bitcoin ABC у источника форка и Bitcoin Unlimited, адаптированный к этому новому набору правил.

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

Но на этом раскол не закончился: через 11 месяцев сеть ВСН снова подверглась расколу. Она продолжала существовать, но, с другой стороны, родился Bitcoin SV («Bitcoin Satoshi Vision»).

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

Так родился BSV. Эта ветвь Биткойна, представленная яркой и до безобразия скандальной личностью Крейгом Райтом, направлена на восстановление предполагаемого «видения Сатоши Накамото», путем восстановления базового протокола. Его сторонники, убежденные в том, что протокол идеально масштабируется с самого начала, и выступают против сторонников ВСН которые считают, что протокол должен быть значительно изменен, чтобы у него был шанс масштабироваться.

Обратите внимание, что эти различные разделения далеки от того, чтобы равняться Биткойну с экономической точки зрения: цена BCH сегодня составляет 3% от цены BTC, а цена BSV составляет 1,5%.

Оппортунистические вилки

Наблюдая за успехом ВСН, за два года произошло множество «оппортунистических» форков Биткойн. Первый из них — Bitcoin Gold, созданный 24 октября 2017 года. В отличие от BCH и BSV, Bitcoin Gold — это система, которая взяла на себя базовый код и реестр владельцев Биткойнов на блоке 491 407.

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

После было еще несколько форков, но они не увенчались успехом.

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