Технические вызовы
Инженеры-программисты и ученые получают удовольствие, сталкиваясь с техническими проблемами. Это мотивирует их в дальнейшем на попытки решить задачи, как бы они ни были сложны.
Недостаточно развитая экосистема
В качестве отправной точки каждый блокчейн нуждается в собственной технологической инфраструктуре, а также в активной экосистеме вокруг нее, с определенным количеством поддерживающих его участников. Со стороны технологии сам протокол является минимальным требованием, и хотя его необходимо дополнить программными инструментами и сервисами, чтобы сделать полезным, именно экосистема участников, пользующихся этой технологией, напрямую влияет на ход развития блокчейна. Без их одобрения и принятия результата не добиться.
Подобно тому, как интернет работает как экосистема, экосистема блокчейна будет развиваться по тому же направлению, в результате чего получится сеть взаимосвязанных блокчейнов, даже если тем временем выяснится, что в оркестре отсутствует часть музыкантов.
Активная экосистема включает множество игроков в каждом из следующих сегментов:
• Полный набор технологий, включая инфраструктуру, промежуточное ПО и приложения.
• Стартапы, которые занимаются инновациями, создавая новые продукты и формируя новые рынки.
• Поставщики решений и услуг, обеспечивающие сквозную имплементацию для предприятий.
• Финансисты и венчурный капитал, которые рискуют вместе с предпринимателями и учеными.
• Адвокаты, влиятельные лица, аналитики, волонтеры, сторонники, местные сообщества.
• Разработчики и технологи, работающие с ядром блокчейна и его расширенными технологическими элементами.
• Пользователи, которые могут тестировать продукты, выступая одновременно потребителями и корпоративными клиентами.
Нехватка зрелых приложений
Безусловно, когда на сцену выходит новая основополагающая технология, для появления соответствующих приложений требуется время. Прошло немало времени, прежде чем мы смогли увидеть амбициозные и инновационные веб-приложения, причем многие из самых первых были не такими уж инновационными, поскольку пытались повторить то, что уже делалось в реальном мире. Тем не менее репликация – это хороший первый шаг, потому что она позволяет получить некий опыт, когда ожидания еще невысоки.
В крайнем случае, почти любое программное приложение может быть переписано с легким налетом блокчейна и децентрализации, но это не значит, что так и нужно делать.
Возможно, 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-сотрудниками. Поэтому легче разрабатывать варианты использования и проекты за пределами существующих систем, чтобы избежать кошмаров интеграции, по крайней мере, на начальном этапе.
Компромиссы с базами данных
Понимание компромиссов и мудрых предпочтений, связанных с базами данных и блокчейнами, является ключевым навыком, который должен постоянно совершенствоваться. Он начинается с четкого осознания сильных и слабых сторон каждого подхода (см. главы 1 и 2).
Поиски правильного баланса между преимуществами блокчейна и унаследованными выгодами баз данных и существующих приложений – это часть той магии, которой вам предстоит постоянно заниматься. Мы до сих пор изучаем, что собой представляют границы между ними, и, подобно маятнику, мы можем слишком сильно отклоняться то в одну сторону, то в другую, прежде чем найдем точку равновесия.
Наряду с этой темой стоит вопрос хранения данных блокчейнов для транзакционных, исторических, аналитических отчетов и иных потребностей.
Конфиденциальность
В общедоступном блокчейне режимом по умолчанию для любой транзакции является ее открытость и прозрачность. Это означает, что каждый может отследить путь транзакции, а также ее содержание, адрес отправителя и получателя. Этот уровень прозрачности не был реализован в частных имплементациях блокчейнов. Однако теперь можно добиться конфиденциальности в транзакциях, зашифровав их содержание, а также можно скрыть личные данные с помощью схем доказательства с нулевым знанием.
Безопасность
Вопрос о безопасности блокчейнов будет вечным. Мы все еще привыкаем к завершению транзакции консенсусом (вне зависимости от его формы) вместо «фиксации базы данных», которая является более детерминированным методом.
Крупные организации, особенно банки, не слишком заинтересованы в принятии общественных блокчейнов для удовлетворения своих внутренних потребностей, ссылаясь на потенциальные проблемы с безопасностью. Технически аргумент против полной безопасности публичных блокчейнов можно легко состряпать в тот момент, когда вы упомянете тень сомнения по потенциальному сценарию, который может нанести ущерб завершению транзакции. Это опасение само по себе может быть сдерживающим фактором, подтверждающим, что лучше держаться подальше от публичного блокчейна, хотя тот же аргумент мог бы пойти и на пользу их безопасности.
Отсутствие стандартов
Существует старая пословица: стандарты хороши тем, что их много – всегда есть из чего выбрать. В начале своего существования технология блокчейна страдает от противоположной проблемы.
Стандарты обычно возникают двумя способами. Они либо становятся стандартами де-факто в силу их принятия рынком, либо разрабатываются и согласовываются априорно, комитетом по стандартам или группой консорциума.
Стандарты приносят с собой ряд преимуществ, в том числе некоторые сетевые эффекты, более легкую функциональную совместимость, общие знания об имплементации, потенциально более низкие затраты и меньший общий риск. Стандарты могут действовать на разных уровнях, ориентированных на технические, платформенные или связанные с процессом транзакций области.
Блокчейн – это сверхбыстрый поезд, который перемещает цифровые активы.
Но вот предупреждение, касающееся стандартов. Вы вообще не конкурируете по стандартам. Они, как правило, выравнивают игровое поле и позволяют компаниям конкурировать на своих собственных условиях в зависимости от того, как они реализуют эти стандарты. Ваше конкурентное преимущество может заключаться в скорости имплементации или в вашей способности внедрять инновации за пределами этих стандартов. Блокчейн представит те же возможности и предостережения для использования стандартов. Стандарты будут необходимы, но недостаточны.