Примечательно, что проект IOTA не использует блокчейн-структуру в ее классическом понимании. То есть в сети отсутствуют блоки как таковые, а есть лишь набор транзакций, которые связаны между собой, образуя так называемые направленные ациклические графы. В этом виде графов отсутствуют циклы, а их ребра всегда однонаправлены. Базируясь на этом принципе, в сети IOTA каждая новая транзакция подтверждает две старые, а из подобных подтверждений формируется целая «паутина» верификаций, защищая сеть от проблемы двойной траты. Криптовалюта сети называется «йота», а ее эмиссия конечна и составляет астрономическую величину в 2 779 530 283 277 761 монет. В силу отсутствия блоков майнинг в сети также не предусмотрен, а все транзакции освобождены от комиссий. Для удобства использования монет йота их считают в миллионах, или в MIOTA. Капитализация проекта на текущий момент составляет около $900 млн.
Рассматривая проекты различных альткоинов, периодически можно столкнуться с реализациями, названия которых являются производными от имен популярных блокчейн-проектов. При этом сами они позиционируются как модифицированные копии своих базовых прообразов, начавшие с какого-то момента жить самостоятельной жизнью. Такие альткоины называются форками проектов. Каким образом они появляются и становятся частью блокчейн-индустрии?
Форки
Случается так, что группа единомышленников, ранее объединенная под эгидой некоего сообщества – творческого, политического, коммерческого или какого-либо иного, в определенный момент утрачивает внутреннее взаимопонимание. Обычно это выражается в констатации серьезного расхождения во взглядах на то, что они сообща пытаются создавать или развивать. И тогда консорциум распадается, реорганизуясь в новые группы, каждая из которых по-своему понимает эффективные пути дальнейшего развития. Так создается разветвление с общей историей, но различным будущим. Процесс этот естественен, бесконечен и даже привычен, поскольку постоянно проявляется в совершенно различных сферах человеческой жизнедеятельности. Блокчейн-индустрия не стала исключением и в этом случае, так как открытая форма представления в ней различных проектов немало способствовала возникновению подобных процессов самым естественным образом.
Действительно, подавляющее большинство проектов на базе технологии блокчейн публикуют исходные тексты своих программ в открытом виде, чтобы с ними могли ознакомиться любые желающие. Причин тому несколько. Обычно открытый код логичен, если речь идет об организации децентрализованной сети с равными правами для участников, где сам разработчик не имеет никаких особенных преференций. Кроме того, наличие открытого кода гарантирует участникам сети полную прозрачность всех происходящих в ней процессов, равно как и их полное соответствие принятым протоколам консенсуса. Наконец, это позволяет любому желающему осуществить проверку кода на наличие вредоносных элементов, которые теоретически могли быть заложены в программу на этапе ее разработки. Другими словами, предоставление разработчиками открытого кода является необходимой мерой, обеспечивающей доверие к проекту со стороны всех его участников.
Однако у этой традиции обеспечения прозрачности есть и оборотная сторона. Она создает максимально благоприятные условия для заимствований исходного кода третьими лицами – частично или полностью. Неважно, были ли эти лица ранее частью команды разработчиков или же речь идет о совершенно сторонних субъектах, которые таким образом решили улучшить проект, введя в него изменения и дополнения сообразно собственному видению эффективности и полезности. Так возникает ответвление от базового проекта, которое в блокчейн-индустрии принято называть «форком», что в переводе с английского означает «вилка». С понятием форка мы уже знакомились при рассмотрении возникающих ответвлений в цепочке блоков в моменты, когда различные узлы в один момент времени могли создавать конкурирующие блоки. Но данный тип форков не приводил к появлению новых проектов, поскольку протоколы консенсуса в любом из концептов блокчейн-сетей в обязательном порядке подразумевали выбор истинной цепочки с одновременным отбрасыванием ложных ответвлений.
Но есть и другой вид форков, и с ними все несколько сложнее, поскольку речь идет о непосредственных изменениях в коде клиентской части блокчейн-проекта. Выделяют два варианта таких форков – мягкий (софтфорк) и жесткий (хардфорк). В большинстве случаев форки инициируются самими разработчиками проекта, когда необходимо внести какие-то изменения в его логику. Если изменения не привели к обязательному требованию замены программного обеспечения узла, то речь идет о софтфорке. При активации софтфорка в сети отсутствует необходимость согласования новых правил со старыми узлами. Софтфорков может быть достаточно много – по сути, они происходят с выходом новых версий программного обеспечения клиентского узла, который не привносит никаких необратимых изменений ни в правила сети, ни в формат хранения данных.
С хардфорками же дело обстоит иначе. В случае если часть узлов не примет новые изменения и не обновит свое программное обеспечение, они более не смогут никаким образом взаимодействовать с узлами, которые согласились на эти фундаментальные модификации. Если число упорствующих достаточно велико, они могут самоорганизоваться в отдельную сеть, которая продолжит исповедовать старые принципы, принятые до масштабных переработок кода проекта. Либо же, наоборот, группа активных узлов сети, желающая внедрить прогрессивные, по их мнению, изменения, наталкивается на консерватизм разработчиков, которые отказываются их интегрировать в код и настаивают на нецелесообразности изменений. В обоих случаях наступают одни и те же последствия – образуется хардфорк, который порождает две базы блоков вместо одной, и каждая из них с этого момента начинает свою собственную жизнь в блокчейн-индустрии.
Образовавшийся в результате хардфорка новый проект получает свою команду разработчиков, сформированную или на базе ранее созданной инициативной группы, или же по воле какого-то предпринимателя, в ряде случаев намеренно инициировавшего разделение. Проект получает новое имя – как правило, производное от базового названия. Локальная криптовалюта также переименовывается и получает отдельный рыночный тикер, то есть сокращенное наименование из нескольких символов. А затем код проекта модифицируется с учетом особенностей, которые и стали основными причинами разделения проектов на два ответвления. В целом подобный процесс аналогичен тем, которые происходят и в обычной бизнес-среде, когда из какой-то компании выделяется команда, создающая собственный бизнес на базе приобретенного опыта и иногда даже части активов, заимствованных на предыдущем месте работы.
Во избежание путаницы, используя в дальнейшем понятие «форк», мы будем иметь в виду именно «хардфорк». Попробуем теперь ответить на вопрос: негативным или позитивным событием является возникновение форков для базовых проектов? Как часто бывает, ситуацию здесь можно рассмотреть с двух сторон. Безусловно, появление конкурирующего проекта, очень схожего по функционалу с базовым, приводит к размытию аудитории пользователей между двумя сетями. В базовом проекте, хотя, как правило, и не сильно, но падает спрос на локальную криптовалюту, а на биржах происходит снижение объемов торговли по ней. Но есть в этом процессе и один положительный момент для держателей, которые владели значительными объемами базовой криптовалюты до разделения проектов. Дело в том, что в момент создания форка база данных блоков копируется в новое ответвление один к одному. И только затем между этими базами появляется рассинхронизация по спискам транзакций, которые начинают создаваться в каждом из ответвлений независимо друг от друга. Что это означает?