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

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

Однако у этой традиции обеспечения прозрачности есть и оборотная сторона. Она создает максимально благоприятные условия для заимствований исходного кода третьими лицами – частично или полностью. Неважно, были ли эти лица ранее частью команды разработчиков или же речь идет о совершенно сторонних субъектах, которые таким образом решили улучшить проект, введя в него изменения и дополнения сообразно собственному видению эффективности и полезности. Так возникает ответвление от базового проекта, которое в блокчейн-индустрии принято называть «форком», что в переводе с английского означает «вилка». С понятием форка мы уже знакомились при рассмотрении возникающих ответвлений в цепочке блоков в моменты, когда различные узлы в один момент времени могли создавать конкурирующие блоки. Но данный тип форков не приводил к появлению новых проектов, поскольку протоколы консенсуса в любом из концептов блокчейн-сетей в обязательном порядке подразумевали выбор истинной цепочки с одновременным отбрасыванием ложных ответвлений.

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

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

Перейти на страницу:

Поиск

Похожие книги