Децентрализованное приложение
Децентрализо́ванное приложе́ние (фр. application décentralisée, часто используется сокращение DApp, dApp, Dapp или dapp) — это программное приложение, способное работать автономно, обычно с использованием умных контрактов, которые исполняются на децентрализованной вычислительной системе, блокчейне или другой системе распределённого реестра[1].
Подобно традиционным приложениям, децентрализованные приложения предоставляют различные сервисы пользователям, однако, в отличие от классических решений, DApp функционируют без участия человека и не принадлежат определённой организации. DApp используют токены, олицетворяющие права собственности. Эти токены распределяются пользователям системы по запрограммированному алгоритму, что приводит к размытию собственности и контроля над DApp и обеспечивает децентрализованный характер[1].
Децентрализованные приложения получили широкое распространение благодаря технологиям распределённых реестров, например, блокчейнам Ethereum или Cardano, поверх которых и строятся такие решения[2].
DApp подразделяются на множество категорий: криптовалютные биржи, бизнес-приложения, азартные игры, игры, финансы, инструменты для разработчиков, системы хранения данных, кошельки, системы управления, торговые платформы, решения по идентификации и безопасности, медиа, социальные приложения, страхование, здравоохранение и другие.
Определение
Чтобы приложение считалось децентрализованным (DApp), оно должно соответствовать ряду критериев.
Классические определения DApp требуют, чтобы такие приложения были открытым исходным кодом, то есть функционировали автономно и не контролировались централизованной организацией, владеющей большинством токенов, связанных с этой DApp[1]. Кроме того, у DApp имеется публичный, децентрализованный блокчейн, используемый для хранения криптографических данных, включая историю транзакций[1].
Хотя традиционно DApp были преимущественно с открытым кодом, с развитием криптовалютной сферы появились и приложения с закрытым исходным кодом. По данным на 2019 год, лишь 15,7 % DApp полностью открыты, тогда как 25 % имеют закрытый код. Другими словами, число DApp с доступным кодом меньше, чем число DApp с недоступным кодом. Как правило, у DApp с открытым исходным кодом объём транзакций выше, чем у аналогов с закрытым кодом.
Биткойн, первая криптовалюта, также считается примером DApp[3].
Применение
DApp подразделяют в зависимости от того, функционируют ли они на собственном блокчейне или используют блокчейн другого децентрализованного приложения.
Умные контракты используются разработчиками для хранения данных в блокчейне и выполнения операций. Для одной DApp могут быть написаны несколько умных контрактов для поддержки сложной бизнес-логики: более 75 % DApp используют только один умный контракт, остальные — несколько.
DApp генерируют так называемый «газ» — комиссионные, выплачиваемые валидаторам блокчейна за развёртывание и исполнение умных контрактов. Количество газа, необходимого для работы DApp, зависит от сложности используемых контрактов. Слишком дорогой в исполнении контракт может не быть развёрнут в сети Ethereum, что ограничивает пропускную способность и приводит к задержкам.
DApp используют различные механизмы достижения консенсуса в сети. Два наиболее распространённых механизма — доказательство работы и доказательство доли.
Доказательство работы использует вычислительную мощность участников сети для обеспечения достижения консенсуса через процесс майнинга. Биткойн применяет данный механизм. Доказательство доли полагается на валидаторов, которые обеспечивают безопасность сети за счёт хранения доли токенов и участия в управлении сетью.
Распределение токенов DApp происходит тремя основными способами: посредством майнинга, сбора средств и разработки. При майнинге токены выдаются по предопределённому алгоритму в качестве награды за подтверждение транзакций и поддержание сети. Они могут распространяться и через сбор средств: токены распределяются за финансирование проекта на ранних этапах разработки, например, в ходе ICO. Разработчикам также может выделяться часть токенов согласно заранее установленному графику.
В развитии любой DApp выделяют три ключевых этапа: публикация white paper, первичное распределение токенов и формирование структуры собственности. Сначала публикуется технический документ (white paper), описывающий протоколы, функциональность и специфику реализации DApp. Затем необходимые программы и скрипты предоставляются майнерам и стейкхолдерам, участвующим в поддержке и финансировании сети. В качестве поощрения им выдаются первые токены из выпуска. По мере подключения новых участников через использование DApp или вложения в её развитие структура управления становится всё менее централизованной.
Технические особенности
Бэкэнд-код DApp выполняется на peer-to-peer децентрализованной сети, в отличие от типовых приложений с размещением серверной части на централизованных серверах. Фронтенд и интерфейс пользователя могут быть написаны на любом языке программирования, способном обращаться к бэкэнду DApp.
DApp активно применяются в децентрализованных финансах (DeFi), обеспечивая выполнение финансовых операций на базе блокчейна[4]. DeFi реализует качественно иной способ подтверждения p2p-транзакций, что позволяет снизить издержки[5].
Производительность DApp определяется латентностью, пропускной способностью и последовательной производительностью. Например, система подтверждения транзакций биткойна рассчитана так, чтобы среднее время на добычу одного блока составляло 10 минут. Для Ethereum время блока составляет около 15 секунд. Для сравнения: Visa обрабатывает около 10 000 транзакций в секунду[6]. Новейшие проекты, такие как Solana, стремятся превзойти эти показатели[7].
Для работы блокчейн-систем, включая DApp, требуется доступ к интернету. Высокая стоимость транзакций также затрудняет применение: комиссия за перевод малых сумм может составлять значительную часть платежа. Повышение спроса на DApp ведёт к росту комиссии за счёт увеличения сетевого трафика[8], что создаёт проблемы для Ethereum, где это явление связано с загрузкой блокчейна приложениями типа NFT[8]. На размер комиссии влияют как сложность умных контрактов DApp, так и особенности конкретной блокчейн-платформы.
Тенденции
Блокчейн Ethereum занимает ведущие позиции по числу запущенных на нём DApp. Первая DApp появилась в этой сети 22 апреля 2016 года. С мая 2017 года темпы появления новых DApp существенно ускорились, а с февраля 2018 года их публикация происходит ежедневно. Меньше одной пятой всех DApp привлекают почти всех пользователей на платформе Ethereum. Около 5 % приложений обеспечивают 80 % транзакций в сети Ethereum. 80 % DApp используются менее чем 1 000 человек каждой. По объёму транзакций на Ethereum на долю криптобиржевых DApp приходится 61,5 %, финансовых — 25,6 %, игровых — 5 %, высокорисковых — 4,1 %, обычных игр — 2,5 %.
По состоянию на 2020 год DApp не получили массового признания: многие потенциальные пользователи не обладают знаниями для различения DApp и обычных приложений и не всегда ценят новизну подхода. Кроме того, получить необходимые навыки и знания затруднительно для широкой аудитории, а пользовательский опыт DApp часто страдает из-за приоритета технической функциональности, поддержки и надёжности[9].
Примеры
Наиболее известный пример DApp — игра CryptoKitties, созданная на платформе Ethereum. В 2017 году, на пике популярности, проект вызвал значительное замедление работы сети Ethereum из-за перегрузки транзакциями, что наглядно продемонстрировало ограничение масштабируемости публичных блокчейнов[10][11][12].
Среди других заметных проектов:
- Augur — платформа рынка предсказаний[13];
- Stacks — платформа для разработки децентрализованных приложений[14];
- платформа для фрилансеров на базе умных контрактов;
- Steemit — блоговая и социальная сеть;
- Uniswap — децентрализованная криптовалютная биржа[15].


