Dapp — это краткая форма термина «децентрализованное приложение» (другие варианты написания: dApp, DApp или dapp). Dapps — это особый тип автономного приложения, в котором наиболее важные данные и состояния хранятся децентрализованно, а не на одном устройстве — например, смартфоне, компьютере или сервере — как это обычно бывает. Методология хранения, специфичная для Dapp, реализована с использованием децентрализованной сети устройств на основе блокчейна, такой как одноранговая система.
Однако «децентрализованный» в этом контексте не обязательно означает, что вся информация, необходимая для запуска приложения, такая как код или элементы графического представления, также хранится децентрализованным образом. Они часто объединяются в центральном месте, например, на обычном сервере, и доступны оттуда.
Dapps, как правило, основаны на принципе открытого исходного кода: их программный код находится в открытом доступе и может использоваться третьими лицами без ограничений, как правило, бесплатно. Однако с распространением криптовалют в последние годы стали распространяться децентрализованные приложения, исходный код которых является частично или даже полностью проприетарным, т. е. закрытым исходным кодом. В 2019 году около 15% всех DaApp были с открытым исходным кодом по сравнению с примерно четвертью проприетарных DaApp. Однако исследования показывают, что с точки зрения объема передачи децентрализованные приложения с открытым исходным кодом более популярны.
Как работают Dapps
Предпосылкой для того, чтобы децентрализованное приложение могло хранить данные в блокчейне и выполнять действия, являются так называемые смарт-контракты, которые выполняются в децентрализованном приложении как серверный код в фоновом режиме. Смарт-контракт — это не что иное, как «контракт», написанный в виде программного кода между двумя участниками, который обеспечивает необходимые функции. Для реализации смарт-контракта децентрализованные приложения используют токены, которые распределяются среди вовлеченных пользователей с использованием алгоритма через транзакцию. Как только выполняются необходимые условия, автоматически выполняется соответствующий программный код смарт-контракта и инициируется децентрализованная транзакция токена. Смарт-контракты очень часто работают на блокчейне Ethereum, в котором результат инструкции затем хранится децентрализованно в виде неизменяемых блоков.
Через внешний пользовательский интерфейс, который может быть написан на любом распространенном языке программирования, данные и состояния Dapp становятся доступными для конечных пользователей в соответствии со стандартным использованием приложения. Например, в веб-приложении внешний интерфейс может быть написан на HTML, CSS и Javascript и подключен к блокчейну в серверной части через смарт-контракт.
В то время как более сложные Dapps с более сложными функциями часто основаны на нескольких смарт-контрактах, более 75% всех Dapps используют только один смарт-контракт. За реализацию и выполнение транзакций экзаменаторам блокчейна взимаются сборы, размер которых зависит от сложности смарт-контракта.
Разработка Dapps
Смарт-контракты работают по принципу цифрового торгового автомата: определенный ввод вызывает предопределенный вывод. Они часто пишутся на языке программирования Solidity для того, чтобы впоследствии быть зарегистрированными и храниться децентрализованно в блокчейне. Solidity — это объектно-ориентированный язык программирования, имеющий сходство с C++, Python и JavaScript. Он был разработан специально для виртуальной машины Ethereum (EVM) — виртуальной среды, в которой выполняются смарт-контракты. Тем временем, однако, Solidity можно использовать как для блокчейн-платформы Ethereum, так и для других платформ, таких как Tron, Binance Smart Chain или Avalanche C-Chain.
Часть внешнего Dapp, видимая всем, работает непосредственно на компьютерах пользователей. Отсюда децентрализованное приложение получает доступ к смарт-контракту, чтобы представить всю необходимую информацию в графической форме. Это представление происходит в основном через браузер и, соответственно, с помощью обычных веб-технологий.
Преимущества децентрализованных приложений
С одной стороны, смарт-контракты имеют то преимущество, что их нельзя модифицировать впоследствии. Кроме того, они должны исключать человеческие ошибки, будучи неоспоримыми с юридической точки зрения: программный код смарт-контрактов с открытым исходным кодом может быть просмотрен всеми и, таким образом, обеспечивает большее доверие и прозрачность, что является большим преимуществом по сравнению с обычными централизованными приложениями.
Методология децентрализованной транзакции с токенами сильно ограничивает принцип владения и индивидуальные возможности управления приложением. Таким образом, децентрализованные приложения не требуют вмешательства человека, не принадлежат изолированному субъекту и, следовательно, не поддаются контролю. Напротив, данные об использовании не могут быть впоследствии изменены или удалены — действия, которые часто ставят в невыгодное положение пользователей обычных приложений.
Благодаря этой специальной настройке децентрализованные приложения не подвержены государственной цензуре или финансовым манипуляциям со стороны третьих лиц. Однажды запрограммированные кодовые команды выполняются именно в такой форме. В отличие от крупных поставщиков онлайн-услуг, таких как Facebook или YouTube, децентрализованные приложения не рискуют выйти из строя из-за сбоев в подаче электроэнергии, вмешательства правительства или ошибок программирования. Они работают на блокчейне на бесчисленном количестве компьютеров, разбросанных по всему миру, и поэтому не могут выйти из строя.
Недостатки Dapps
Недостатком децентрализованных приложений является их потенциально медленная обработка: меры по обслуживанию и обновления иногда очень затруднены из-за ограниченных возможностей изменения данных. Особенно с Dapps на основе Ethereum, есть также недостаток, заключающийся в том, что скорость выполнения сильно страдает от необходимых подтверждений транзакций аудиторами блокчейна.
Кроме того, значительный объем транзакционных данных и связанная с этим вычислительная нагрузка ухудшают перспективы успешной масштабируемости децентрализованных приложений. Однако попытки обойти это препятствие на блокчейне криптовалюты Eos на основе Ethereum, чтобы обеспечить более быструю обработку, вновь подвергаются критике за ослабление децентрализации.