В крайнем случае, почти любое программное приложение может быть переписано с легким налетом блокчейна и децентрализации, но это не значит, что так и нужно делать.
Возможно, 2016 год для блокчейна эквивалентен 1995 году с точки зрения того этапа, на котором мы находились с распространением веб-приложений. В то время виртуальной машины Java еще не было, но ее появление открыло лавину возможностей и упростило создание крупномасштабных веб-приложений. Появление языка программирования Java означало, что приложения Java могли работать на любой виртуальной машине Java (JVM) независимо от архитектуры компьютера. У некоторых блокчейнов, таких как Ethereum, есть аналогичная возможность «виртуальной машины», которая позволяет программам выполняться на блокчейне, не вынуждая разработчиков задумываться о конфигурации компьютера.
Еще одно критическое замечание в адрес блокчейна – отсутствие так называемых «приложений-убийц» (очень качественных приложений, намного превосходящих и. соответственно, делающих ненужными другие приложения. – Прим. перев. ), которые должны были бы вызывать экспоненциальный рост использования блокчейн-приложений среди потребителей. Мы, безусловно, ожидаем, что некоторые приложения станут такими видимыми маяками для пользователей, но есть и другая точка зрения, касающаяся нескольких приложений-убийц, а не только одного. В этом более позднем сценарии важнее пресловутый «длинный хвост» рыночных характеристик.
Дефицит разработчиков
Для «подъема всех лодок» понадобится несколько тысяч разработчиков программного обеспечения. К середине 2016 года было около 5000 разработчиков, посвятивших себя написанию программного обеспечения для криптовалюты, биткоинов или блокчейна в целом (2). Возможно, еще 20 000 пробовали барахтаться с некоторыми из этих технологий или писали интерфейсные приложения, которые так или иначе подключаются к блокчейну. Эти цифры бледнеют по сравнению с 9 миллионами разработчиков Java по всему миру (2016) (3) и около 18,5 миллиона разработчиков программного обеспечения в мире (2014 год) (4).
К счастью, блокчейны программируются на языках и скриптах, похожих на уже популярные, такие как Java, Javascript, C ++, Node.js, Python, Golang или Haskell.(5) Это сходство является положительной характеристикой, которая будет полезна программистам, когда они начнут взаимодействовать с технологиями блокчейна.
Что поможет увеличить количество разработчиков?
• Бо ́льшая осведомленность рынка о блокчейне, стимулирующая более высокий уровень интереса.
• Популярность сертификационных программ, например, от CryptoCurrency Certification Consortium (C4) (6).
• Появление официальных академических степеней по специальностям в этой области, таких как магистр наук о цифровой валюте, предлагаемый университетом Никосии на Кипре.
• Программы обучения провайдеров блокчейнов.
Несовершенное промежуточное ПО и инструментарий
Связующее промежуточное программное обеспечение, связывающее блокчейн и программные средства, действительно важно. Промежуточное программное обеспечение подобно клею между инфраструктурой блокчейна и построением приложений. Средства разработки программного обеспечения облегчают выполнение проектов по разработке программного обеспечения в целом.
До 1998 года писать веб-приложения тоже было не так просто и требовало «ручной сборки» нескольких программных продуктов вместе. В те времена тоже были недостатки, осложнявшие развертывание веб-приложений, среди них – отсутствие надежного управления транзакциями и связанными с состоянием возможностями, масштабируемостью, развертыванием, управляемостью приложений и, конечно же, безопасностью. Затем Netscape представила знаменитый многофункциональный сервер приложений Netscape Application Server – интегрированный набор программных возможностей, включающий разнообразные компоненты и инструменты, готовые к использованию. Это упрощение было благом для программистов, они почувствовали себя, как утки в воде, и начали фокусироваться на написании веб-приложений, вместо того чтобы беспокоиться о сборке необходимых частей вместе и об их совместимости. Те первые дни существования Netscape обозначили начало эпохи архитектуры современных веб-приложений, которая продолжается вплоть до настоящего момента.
Как только мы увидим завершенные, готовые продукты, которые обещают упростить процесс запуска, разработки и развертывания приложений с блокчейном, мы поймем, что начался новый этап.
Масштабируемость
Масштабируемость блокчейнов – это проблема, которая будет продолжать обсуждаться, особенно в отношении публичных блокчейнов и биткоинов. Проблема масштабируемости двоякая:
1. Как правило, существует более одного способа масштабирования любой технологии, и блокчейн в этом смысле ничем не отличается. Соответственно некоторые инженеры могут не согласиться с наилучшим методом масштабирования, что может привести к длительным дискуссиям и отсрочкам реализации.
2. Начиная с 2016 года некоторые аспекты масштабируемости блокчейнов по-прежнему требуют постоянных научных исследований, поскольку это новая приграничная территория вблизи новой границы.
Масштабирование технических систем – это никогда не прекращающийся процесс. Это движущаяся цель, потому что потребности в масштабировании развиваются по мере роста; поэтому вам не нужно решать проблему, которой пока не существует. Обычно вы решаете ее в нужное время, непосредственно перед тем, как она встанет перед вами в полный рост. Вы не создаете решение для одного миллиона пользователей, когда вы все еще обслуживаете только первую тысячу.
Для справки: спустя более тридцати лет после ее первоначального изобретения мы все еще разрабатываем и совершенствуем собственную масштабируемость интернета.
Если посмотреть на ожидаемые 50 миллиардов узлов в 2020 году, то, разумеется, это цифра, о которой и не мечтали в 1983 или 1995 годах. Но сейчас размер сети значительно вырос, и мы преодолели порог в несколько миллиардов пользователей и теперь сможем легче решать новые задачи масштабируемости.
Концептуально масштабирование блокчейнов не будет отличаться от того, как мы продолжаем масштабировать интернет. Есть много умных инженеров, ученых, исследователей и веб-дизайнеров, которые займутся этой задачей и справятся с ней.
Что дополнительно усложняет масштабируемость блокчейнов, так это необходимость соблюдать баланс между децентрализацией и безопасностью. Масштабирование децентрализованной сети с экономической моделью, привязанной к ее безопасности, – это новый рубеж, которого ранее не достигали.
Устаревшие системы
Как правило, существуют две проблемы, относящиеся к устаревшим системам на местах:
1. Интеграция с существующими приложениями.
2. Знание того, какие части нужно заменить.
Технически интеграция с устаревшими или сильно отличающимися приложениями всегда будет проблемой внедрения, стоящей перед IT-сотрудниками. Поэтому легче разрабатывать варианты использования и проекты за пределами существующих систем, чтобы избежать кошмаров интеграции, по крайней мере, на начальном этапе.