От идеи до топа #CoinMarketCap: как создать собственную криптовалюту (рассказываем подробно)

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

В специальном материале для журнала ForkLog CTO компании по разработке блокчейн-решений Inn4Science Сергей Немеш рассмотрел все этапы планирования разработки собственной криптовалюты и решения, которые потребуется принять до старта проекта и в процессе его реализации.

Проанализировать все

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

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

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

Однако уникальность — это еще не гарантия успеха задуманного проекта и не сигнал к началу работы. Жизнеспособность будущей криптовалюты определяется тем, насколько она будет интересна простым пользователям. Уникальная особенность, негативно сказывающаяся на практическом применении криптовалюты, не сделает ее востребованной.

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

Также на этом этапе стоит продумать эмиссию криптовалюты и ее бизнес-логику.

Таким образом, первый этап работ должен быть направлен на:

определение потенциального круга пользователей новой валюты;
конкретизацию структуры и объема используемых данных;
создание бизнес-модели криптовалюты;
разработку системы ценообразования монет.

Платформа — фундамент проекта

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

1. Создать форк биткоина или другой криптовалюты. Фактически, форк является клоном основной криптовалюты, но с добавлением нового функционала или исправлением багов предыдущей версии. На сегодняшний день существует более 50 форков биткоина. Одним из самых популярных среди них является Bitcoin Cash, стоимость которого составляет около $450.

2. Вторым вариантом является построение криптовалюты на основе так называемых платформ-конструкторов. Популярными в таком случае являются решения по типу Ethereum, NEM и Stellar. Они предлагают относительную простоту реализации и известность платформы-фундамента, которая повышает доверие к проекту.

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

3. Большую свободу в реализации идеи дает использование фреймворков для создания собственной криптовалюты.

Примерами таких фреймворков являются Hyperledger Fabric и Exonum, при помощи которых можно разработать собственную криптовалюту, выбирая и комбинируя необходимые модули из предложенных. Фреймворк позволяет бесплатно использовать готовые проверенные наработки, не перегружая проект лишним функционалом, что было бы неизбежным при построении криптовалюты поверх другой платформы. Это дает пространство для внесения модификаций и кастомизации под конкретные задачи.

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

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

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

Ни шагу без архитектуры

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

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

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

Стоит помнить, что любые изменения в архитектуре криптовалюты после начала процесса разработки являются ресурсозатратными.

На основании проведенного анализа и архитектурных решений составляется документация, описывающая продукт, и техническое задание для разработчиков. По сути эта документация является обоснованием жизнеспособности проекта (Proof-of-Concept).

Приватный или публичный?

Наиболее популярные криптовалюты строятся на основе технологии блокчейн, хотя это не единственный возможный вариант. Например, IOTA построена на основе уникальной безблочной технологии Tangle.

Существует два основных типа блокчейна: приватный и публичный.

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

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

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

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

Если же криптовалюта основана на приватном блокчейне, то в любой момент можно переписать консенсус, превратив блокчейн в публичный, избежав нежелательных последствий. Но этот процесс сам по себе является достаточно трудоемким. Это один из способов, который позволяет создать криптовалюту, протестировать ее на реальных пользователях и внести необходимые коррективы, так как она в этом случае является полностью подконтрольной создателям.

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

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

Майнить или не майнить — вот в чем вопрос

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

Подавляющее большинство консенсусов, в которых присутствует майнинг, это достаточно медленные консенсусы Proof-of-Work. Они вряд ли подойдут для быстрых транзакций, но при этом смогут обеспечивать ценность валюты за счет затрачиваемых ресурсов на майнинг.

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

Живая криптовалюта в реальном мире

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

Задача экосистемы — обеспечить и упростить доступ к основным функциям с любого устройства и в любых условиях, при этом сохраняя стабильную надежность и безопасность. Поэтому необходимо реализовать возможность использовать криптовалюты в десктопном приложении, в веб-приложении (обязательно предусмотреть адаптивную версию для десктопа, планшета, мобильного телефона) и в мобильной версии (Android, iOS). Зачастую это отдельные процессы, которые требуют обособленной проработки интерфейсов и дизайна для каждой версии.

Что в себя включает экосистема криптовалюты?

Дизайн и интерфейсы впоследствии накладываются на программное ядро, и в результате мы получаем основные элементы экосистемы криптовалюты.

Как правило, это :

кошельки: веб-, мобильные и десктоп-варианты, которые работают в основных операционных системах;
оракулы — серверы-посредники, которые являются источником достоверных данных за пределами системы для выполнения смарт-контрактов. Без них блокчейн-системы не могут контактировать с внешним миром;
сторонние компоненты, которые, как правило, связаны с банками или биржами, где происходит конвертация конкретной криптовалюты в криптовалюты других производителей, банков или в фиатные деньги;
механизмы KYC (Know Your Customer), обеспечивающие контроль входа и регистрацию новых адресов пользователей криптовалюты.

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

В список таких функций должны входить:

Регистрация новых пользователей в системе;
Совершение покупок или вывод коинов в системе;
Предоставление возможности управления приложением администратору;
Совершение транзакций в системе;
Инструмент просмотра блоков и транзакций;
Сбор статистики работы системы, которая затем используется администратором и частично предоставляется пользователям;
Получение уведомлений на мобильных устройствах о событиях в системе;
Локализация интерфейса для пользователей из разных стран или регионов.

MVP или работающий прототип

После решения вопросов архитектуры и процессов реализации основных функций криптовалюты можно приступать к фазе создания MVP проекта.

MVP — это минимальный работающий прототип, который позволяет продемонстрировать жизнеспособность концепции, а также выявить те проблемы и узкие места, с которыми можно столкнуться, например, если сразу начать реализовывать полноценный продукт.

При создании MVP создается ядро системы (core), проверяется работоспособность основных функций и идей, устраняются проблемы, если они есть. Это оптимальный подход, так как блокчейн еще достаточно молодая технология, для которой в полной мере не сформированы «лучшие практики» (best practices), поэтому часто возникают неожиданные проблемы при реализации нестандартных проектов.

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

В зависимости от бизнес-модели и поставленных задач MVP должен фокусироваться на разных аспектах.

Если задача провести ICO или привлечь инвестора, то упор делается на внешний вид и средства демонстрации инноваций и ценности проекта.

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

Выход на сцену

Как должен происходить запуск криптовалюты? Это тоже зависит от типа блокчейна, который лежит в ее основе.

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

Если блокчейн приватный, необходимо обеспечить его развертывание на серверах. Они отвечают за работу ядра и сторонних компонентов. Эти сервера и являются нодами криптовалюты. После настройки они начинают участвовать в консенсусе и подписывать блоки.

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

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

Выбор подрядчика: пуд соли вместе

Одним из важнейших этапов на пути к созданию криптовалюты является выбор команды разработчиков и планирование необходимых ресурсов.

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

Это сложная задача, потому что в мире блокчейн-разработки квалифицированных программистов меньше, чем необходимо рынку, а их услуги стоят дорого. Из-за высокой популярности этой области появляется много нечестных компаний, которые хотят быстро и легко заработать на доверившихся им клиентах. Большинство таких “псевдо-разработчиков” могут не знать, как написать новый блокчейн, в лучшем случае умеют программировать смарт-контракты в Ethereum и не разбираются в особенностях работы какого-либо из консенсусов.

Выбирая подрядчика на разработку криптовалюты, клиент заключает с ним “пожизненный договор” на ее поддержку, так как это в перспективе будет проще, дешевле и надежней.

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

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

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

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

Заключение

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

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

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

Источник

[ ОБСУДИТЬ НА ФОРУМЕ ]