Глоссарий / Протокол и обновления
Форк
- Что такое форк?
- Форк означает любую точку, где история биткоина или его правила разделяются надвое, поэтому этим словом называют три разных события, которые разрешаются в совершенно разных временных масштабах.
Большинство форков являются случайностями, которые длятся один блок: два майнера публикуют блок на одной и той же высоте, и сеть выбирает победителя за считаные секунды. Немногие представляют собой намеренные изменения правил, и один из таких споров закончился тем, что вторая цепочка отделилась на блоке 478 558 1 августа 2017 года. Когда в заголовке говорят, что биткоин форкнулся, первый полезный вопрос: что именно из этого произошло на самом деле.
Как это работает
Форк представляет собой ветвь, и у биткоина ветви вырастают тремя несвязанными способами, у которых нет ничего общего, кроме названия.
Первый способ: форк цепочки, и это обычная неудача. На поиск блока уходит примерно десять минут, а на то, чтобы достичь другого конца сети, от одной до двух секунд, поэтому время от времени два майнера находят блок на одной и той же высоте, и каждая половина сети первой видит свой блок. Оба блока действительны. Оба строятся на одном и том же родительском блоке. Ничья разрешается, когда следующий блок встает на одну из ветвей, и проигравший становится устаревшим блоком, вознаграждение которого исчезает. Никто не голосует, никто не ведет переговоры, и эпизод обычно заканчивается раньше, чем вы успеете обновить обозреватель блоков.
Второй способ: форк правил, и именно это имеют в виду, когда спорят о форках. Разделение здесь происходит не в цепочке, а в определении действительного блока, которое дает программное обеспечение. Ужесточите правила, и старые узлы по-прежнему принимают все, что производит новое программное обеспечение: это мягкий форк (soft fork), и биткоин применял его неоднократно, от pay to script hash 1 апреля 2012 года до Taproot на блоке 709 632 14 ноября 2021 года. Ослабьте правила, и старые узлы начнут отвергать блоки, которые новое программное обеспечение считает законными: это жесткий форк (hard fork), и он позволяет избежать постоянного разделения, только если обновится практически каждый.
Третий способ: форк кода, который вообще не касается консенсуса. Любой может скопировать репозиторий Bitcoin Core, изменить его и опубликовать результат. Bitcoin Knots представляет собой именно это: отдельный проект, который поддерживает другой разработчик и который намеренно сохраняет те же правила консенсуса, поэтому его блоки и блоки Core взаимозаменяемы. Тысячи репозиториев на GitHub являются форками биткоина в этом смысле, и почти ни один из них никогда не производит блок.
Только средний вид способен создать новый актив, и только когда разногласие достаточно глубоко, чтобы майнеры бесконечно продолжали строить обе ветви.
Почему это важно, когда вы покупаете биткоин
Форки доходят до обычного покупателя как операционные события на бирже, а не как события протокола.
Вокруг любого спорного изменения правил платформы замораживают те части своей деятельности, которые исходят из стабильности цепочки. Пополнение и вывод средств останавливаются, иногда на несколько дней, пока инженеры ждут, когда ситуация успокоится, и решают, существует ли теперь второй актив. Именно эта заморозка обходится вам дорого, потому что она обычно приходится ровно на то время, когда движется цена. Если вы храните биткоины на какой-либо из бирж, которые рассматривает этот сайт, и у спорного изменения есть известная дата активации, выведите их в кошелек, который вы контролируете, задолго до этой даты, а не в сам этот день.
Второе, что стоит знать: форк правил ничего от вас не требует. Каждый мягкий форк, который активировал биткоин, оставлял старые кошельки работающими. Сид-фраза из двенадцати слов, записанная в 2016 году, по-прежнему восстанавливает кошелек, по-прежнему выводит те же адреса и по-прежнему позволяет тратить. Никому никогда не приходилось перемещать биткоины, чтобы их сохранить.
Третье: «бесплатная криптовалюта из форка» является сценарием мошенничества с 2017 года и никогда не переставало им быть. Никакое подлинное разделение цепочки не требует вашей сид-фразы, вашего приватного ключа или небольшого депозита, чтобы что-то разблокировать. В нашем руководстве по распространенным схемам мошенничества разобрана точная формулировка, которую используют такие сообщения.
Три вещи, которые заголовок может подразумевать под словом "fork"
Возьмите три события, о которых сообщали как о форках, и обратите внимание, как мало у них общего.
11 марта 2013 года ограничение базы данных заставило узлы версии 0.7 отвергнуть блок, который принимали узлы версии 0.8, и цепочка работала как две ветви около шести часов, пока разработчики не попросили пулы откатиться к прежней версии. Это был случайный жесткий форк, вызванный ошибкой, и он закончился тем, что все вернулись на одну цепочку и к одному активу.
1 августа 2017 года группа, которая хотела более крупные блоки, начала применять несовместимый набор правил на блоке 478 558 и продолжала его майнить. Это был намеренный жесткий форк. Он породил Bitcoin Cash, отдельный актив со своей ценой, своими майнерами и своей историей от этого блока и далее, у которого все балансы, записанные до этого блока, общие с биткоином.
Bitcoin Knots, форкнувший кодовую базу Bitcoin Core, тем временем не разделил совершенно ничего. Это те же правила консенсуса в другой упаковке, поэтому узел Knots и узел Core находятся в одной цепочке и согласны по каждому блоку.
Форк vs устаревший блок
Форк является ветвью; устаревший блок представляет собой остаток проигравшей ветви. Каждый случайный форк цепочки оставляет ровно один устаревший блок на каждую проигравшую ветвь, и этот блок не недействителен, а просто неудачлив: он удовлетворял каждому правилу консенсуса и просто оказался на неправильной стороне гонки. Обозреватели блоков, которые его показывают, пометят его как устаревший или, менее точно, как осиротевший, а вознаграждение внутри него так и не стало доступным для траты.
Форк vs реорганизация цепочки
Форк представляет собой момент, когда существуют две ветви; реорганизация является тем, что делает с этим ваш узел. Ваш узел может вообще не наблюдать форк, если ему случилось получить только победивший блок. Если он сначала получил проигравший блок, он реорганизуется: отключает этот блок, подключает ветвь с большей работой и продолжает. Одно является свойством сети, другое представляет собой событие в вашем собственном отладочном журнале.