С каждым годом в криптоиндустрии появляется все больше новых всевозможных dApp — работающих на блокчейне децентрализованных приложений, у которых нет единого субъекта, контролирующего работу.
Что такое dApp
Обычно под dApp (decentralized application) понимают приложение, которое базируется на технологии блокчейн и использует распределенное выполнение программных инструкций. В отличие от обычных мобильных приложений, где код и данные обрабатываются централизованной инфраструктурой, ключевые операции dApp выполняют участники блокчейн-сети в соответствии с четко заданными протоколом правилами.
Наиболее распространенный механизм реализации dApp — смарт-контракты. Это программы, код которых размещается в блокчейне, а результаты работы приводят к проверяемым изменениям состояния сети.
Само понятие «децентрализации» является не всегда однозначным: разные приложения могут использовать распределенные технологии в разной степени, а значит, иногда разительно отличаются друг от друга. Поэтому границы понятия dApp не так очевидны, как может показаться из названия.
Откуда взялся термин
Идея приложений, работающих на основе распределенных сетей, появилась даже раньше блокчейна. Однако в первой половине 2010-х стала активно обсуждаться применительно к криптовалютам. В ранних криптопроектах обсуждались distributed applications или decentralized applications, а также близкие концепции DAC (децентрализованных автономных корпораций) и DAO (децентрализованных организаций).
Автором термина dApp часто называют соучредителя BitAngels Дэвида Джонстона (David Johnston). Однако считать его единоличным изобретателем концепции было бы не совсем верно. К моменту публикации работы Джонстона 2014 года с первым упоминанием dApp, идеи децентрализованных приложений активно обсуждались в криптовалютном сообществе, а само слово «Dapp» уже встречалось в сети. Тем не менее, именно Джонстон с соавторами провели важную систематизацию всех замысловатых представлений в работе The General Theory of Decentralized Applications, Dapps, предложив формальное определение dApp и разработав критерии.
Интересный факт: Джонстон и соавторы предложили произносить dApp как «ди-эпп», по аналогии с e-mail — «имейл». В современном употреблении, однако, более распространено произношение «дапп» в один слог.
Критерии dApp
Джонстон и соавторы сформулировали четыре критерия, которым должно соответствовать децентрализованное приложение.
-
Во-первых, dApp должно быть полностью открытым (open-source) и автономным, а контроль над большинством его токенов не должен принадлежать одному субъекту. Изменения протокола допускаются, но они должны приниматься консенсусом.
-
Во-вторых, данные и записи работы приложения должны храниться в публичном децентрализованном блокчейне.
-
В-третьих, приложение должно использовать криптографический токен, а участники, вносящие вклад в работу системы, — получать вознаграждение этими токенами.
-
Наконец, выпуск токенов должен происходить по определенному криптографическому алгоритму, который подтверждает вклад участников в работу системы. В качестве примера авторы приводят Биткоин с его алгоритмом Proof-of-Work.
Таким образом, первоначальное представление о dApp было довольно строгим: это не просто приложение, использующее блокчейн, а открытая автономная система с децентрализованным хранением данных, собственным токеном и встроенным механизмом эмиссии.
Современное понимание
Представим приложение, в котором все операции выполняются через смарт-контракт в блокчейне, но команда разработчиков сохраняет право единолично менять правила работы. Это dApp или нет?
Сегодня это вполне могут назвать dApp. Подобная архитектура вполне распространена, хотя явно не соответствует исходному требованию полной автономности и управления через консенсус пользователей.
То же происходит и с другими критериями. Часть данных может храниться вне блокчейна, а собственный токен и механизм его выпуска могут отсутствовать вовсе. Получается, современное dApp далеко не обязательно соответствует всем требованиям первоначального определения.
Причина в самой архитектуре блокчейн-приложений. Блокчейн хорошо подходит для хранения состояния и выполнения определенных операций, но хранить в нем большие объемы данных обычно дорого и неэффективно. Поэтому современные dApp могут сочетать децентрализованные и централизованные компоненты, не обеспечивая радикальную децентрализацию на всех уровнях.
Возникает резонный вопрос: где проходит граница между dApp и обычным приложением, которое просто использует блокчейн?
Что правильно считать децентрализованным приложением
С распространенными примерами dApp наподобие Uniswap или Aave все более-менее понятно: ключевая логика реализована в смарт-контрактах, блокчейн хранит критически важное состояние системы. Впрочем, если вдаваться в детали, и тут можно найти централизованные элементы.
Обычный интернет-сервис может, например, использовать стейблкоины для оплаты, но при этом все остальные функции — регистрацию, хранение данных, расчеты и принятие решений — выполнять централизованно. Называть такой сервис dApp уже сложнее. То же касается кошельков: взаимодействие с блокчейнами само по себе не делает программу децентрализованной. Поэтому самого факта использования блокчейна недостаточно.
Если блокчейн применяется только для платежей, перед нами, скорее всего, обычное приложение с криптовалютной функцией. Если же смарт-контракты определяют ключевые правила системы, блокчейн хранит ее критически важное состояние, а пользователь может взаимодействовать без необходимости доверять централизованному оператору, — да, перед нами dApp.
В ситуации, когда практически любое приложение может назвать себя dApp, сам по себе этот ярлык мало что говорит о степени децентрализации. Важно смотреть на архитектуру системы и искать централизованные точки отказа и контроля. Такая точка может найтись не только в смарт-контрактах или системе хранения данных на блокчейне, но и, например, в интерфейсе — если единый сайт, через который пользователи взаимодействуют с приложением, контролируется одной компанией, это уже само по себе создает зависимость от централизованной инфраструктуры.
Виды dApp
Хотя термин достаточно условный, в прикладном смысле dApp часто делят по категориям в зависимости от назначения. Можно выделить несколько часто упоминаемых разновидностей в качестве примера:
-
Децентрализованные биржи (DEX) — приложения для обмена цифровыми активами без необходимости передавать средства централизованной бирже. Сделки и правила исполнения определяются смарт-контрактами. К наиболее известным примерам относится Uniswap.
-
Лендинг-протоколы — позволяют выдавать и получать займы криптовалютой без посредника в виде банка. Такие системы автоматически рассчитывают условия кредитования, размер залога на основе правил, заложенных в смарт-контрактах. Один из наиболее известных примеров — Aave.
-
Отдельную категорию составляют dApp для игр, NFT и других цифровых активов, где блокчейн используется для хранения информации о владении объектами, проведения операций с этими объектами или реализации игровой логики. Например, популярная игра на блокчейне Ethereum — CryptoKitties.
Существует множество других dApp, созданных для решения совершенно разных задач. В целом объединяет их не столько конкретная функция, сколько использование блокчейна и смарт-контрактов для выполнения хотя бы части ключевой логики приложения.
Вывод
Понятие dApp сегодня — это скорее условный термин, чем строго определенная категория приложений. При оценке конкретного проекта важно смотреть на его архитектуру: кто контролирует ключевые правила работы системы и есть ли в ней централизованные компоненты, отказ, изменение или отключение которых может нарушить всю работу.