Технология блокчейн в действии обладает важным свойством – децентрализацией. Оно активно внедряется в повседневную жизнь: уже существуют бета-версии децентрализованного интернета (Substratum), децентрализованные анонимные мессенджеры (DigitalNote), децентрализованные социальные сети (Golos), блокчейн-кошельки. Естественно, популярность набирают децентрализованные приложения (DApps). Под приложением понимается программа, установленная на компьютере или смартфоне. Рассмотрим, чем же децентрализованные блокчейн-приложения отличаются от традиционных, как они взаимодействуют с умными контрактами, и вспомним историю их развития.
Пиринговая сеть (P2P) как основа
Классические программные приложения используют взаимодействие вида «клиент-сервер». К примеру, такую архитектуру имеет Google, Amazon, голосовой поиск VoiceSearch, приложение для распознавания музыки Shazam и большинство существующих на данный момент web-приложений - ПО, взаимодействующих с интернетом. Архитектура ПО определяет, какие элементы будут присутствовать в приложении и каким образом они будут взаимодействовать друг с другом.
В программах с шаблоном архитектуры “клиент-сервер” клиентов много, а управляющий сервер один. В данном случае клиентами являются ПК, смартфоны и ноутбуки. Сервер представляет собой специализированный компьютер, который хранит огромный объем информации, направляет ее и проводит вычисления, через него проходят все данные. Главным недостатком клиент-серверной архитектуры является централизация.
Архитектура приложения «клиент-клиент» чаще называется пиринговой (от англ. peer-to-peer, или p2p). В таком приложении каждый пользователь сочетает в себе функции клиента и сервера одновременно. Также он может связаться с другим пользователем напрямую. Первое пиринговое приложение появилось в 1999 году. Им стала Napster − всемирная платформа для бесплатного обмена файлами. Известным приложением, использующим пиринговую сеть, является Ace Stream P2P Multimedia. Технология пиринговых сетей используется и в блокчейн-приложениях.
Пиринговая сеть стала основой для разработки полностью децентрализованных распределенных приложений.
-
Распределенные web-приложения проводят вычисления на нескольких узлах. К примеру, в сети Bitcoin необходимо проводить криптографические вычисления по алгоритму SHA-256. Такую операцию могут осуществлять следующие узлы: центральные процессоры компьютеров (CPU), графические процессоры видеокарт (GPU) и специализированные ASIC-майнеры.
-
Децентрализованные приложения (DApps) не имеют узлов, которые управляют другими узлами. Все участники децентрализованной системы равноправны.
Очень важно понять, что распределенное приложение может быть централизованным, а вот децентрализованное приложение всегда является распределенным. К примеру, тот же ВКонтакте использует множество серверов для распределения вычислений и хранения данных, но все эти серверы подконтрольны главному. Следовательно, ВКонтакте является распределенным, но не децентрализованным приложением.
Существует еще одна разновидность децентрализованных приложений – частично децентрализованные (гибридные). Такими являются uTorrent и The Onion Router. Они используют сервера, но надежность сети обеспечивают за счет p2p-соединения.
Преимущества децентрализованных приложений
Стоит отметить, что децентрализованные программы входили в список самых скачиваемых приложений еще задолго до появления Bitcoin. Всем известный клиент uTorrent является примером успешного частично децентрализованного приложения.
Протокол BitTorrent решил проблему загрузки объемных данных объединением всех желающих скачать большие файлы быстро и бесплатно. Сеть устроена так, что все клиенты, загружающие файлы, превращаются в раздающих, а само скачивание файла идет не из одного источника, а сразу из нескольких. Поощрение раздачи файлов заключается в том, что все активные раздающие получают бонусы в качестве добавления скорости во время собственных скачиваний. Но разработчики uTorrent не открыли исходный код своего приложения для того, чтобы на нем не смогли нажиться другие программисты.
Для успешной разработки децентрализованных блокчейн-приложений необходимо соблюдать следующие правила:
-
Открытый исходный код. Данное свойство ставит приложение в более выгодную позицию, так как пользователи могут проверить его. Открытый код позволяет разработчикам улучшать приложение, создавая новые доработанные версии. Казалось бы, таким образом можно просто создать новое приложение и забрать прибыль у истинных изобретателей. Но на деле выстреливают только те проекты, которые решают проблемы их предшественников.
-
Мотивация разработчиков и пользователей. Традиционные приложения приносят своим разработчикам прибыль за размещение рекламы, покупку платных услуг или комиссий за транзакции. В приложении с открытым кодом данные функции можно убрать, изменив исходный код. Как же в таком случае получить прибыль за разработку блокчейн приложений? В решении этого вопроса помогают дефицитные токены – внутренняя валюта приложения. Разработчики изначально выдают себе или добывают какое-то количество токенов. Пользователи могут добывать монеты за поддержку приложения, различного рода активность, предоставление вычислительных ресурсов. Чем больше участников подключается к использованию приложения, тем сильнее растет спрос на токены. Как следствие, монета становится более ценной. Хорошим примером являются игры для биткойн-добычи CoinBrawl, MyBitMine, BitCasino. Децентрализованный аналог нашумевшей игры Mineсraft реализовали на платформе Ehthereum – Etheria.
-
Децентрализованный консенсус. Допустим, пользователь залез в код майнинг-игры и добавил себе какое-то количество сатошей. Затем он сохранил код, зашел в игру, но количество сатошей осталось прежним. Дело в цепочке блоков, взломать которую можно, обладая только огромными вычислительными мощностями. Внести изменения в игровой баланс можно единственным легитимным способом − выполнить определенные игровые условия. Так как условия не были выполнены, баланс не изменился. Проверка условий осуществляется с помощью смарт-контрактов. Умный контракт прописан в коде приложения и не может быть изменен. Как внедрить смарт-контракт в свое приложение, рассмотрим в следующих материалах.
-
Отсутствие точки отказа. Приложение не прекратит работу, пока будет существовать хотя бы один узел.
Популярные децентрализованные приложения
Протокол BitTorrent был создан в 2004 году. Он был призван улучшить уже существующие на тот момент приложения Napster и Gnutella. Как известно, в результате получились такие гиганты, как uTorrent и NetFlix. На протоколе BitTorrent также функционирует PopcornTime – приложение, которое позволяет передавать потоковое видео в режиме реального времени.
Еще одним ярким представителем DApps является децентрализованная версия Ebay – OpenBazaar.
Приложение позволяет покупать товары без посредников, расплачиваясь криптовалютами.
Политические события 2014 года в Китае подтолкнули сообщество к созданию приложения, позволяющего смартфонам с операционной системой iOS 7 связываться между собой без посредников. Так появился децентрализованный мессенджер FireChat. Аналогами являются EthetTweet, DigitalNote, Gems.
Приложение Lighthouse сочетает в себе платформу для работы со смарт-контрактами и блокчейн-кошелек Bitcoin. Хороший пример некоммерческого продукта. Создавать собственные блокчейн-приложения позволяет СoinbaseToshi для сети биткойн.
Lazooz является отличным примером децентрализованного блокчейн-приложения. Токены Zooz можно майнить, катаясь на машине, а расплачиваться ими - за услуги такси.
В следующих материалах мы разберем, какую платформу выбрать для разработки собственного децентрализованного блокчейн-приложения.