Этот веб-сайт использует файлы cookie, чтобы обеспечить вам лучший опыт
OK

Что такое Децентрализованные приложения (dApp)

Децентрализованное приложение (dapp) - это приложение, построенное на децентрализованной сети, сочетающей в себе умный контракт и клиентскую сторону пользовательского интерфейса. Отметим, что в Ethereum умные контракты общедоступны и прозрачны (как открытые API), поэтому ваше приложение может содержать в себе умные контракты, которые были написаны другими людьми.
Умный контракт - это код, который существует в блокчейне Ethereum и работает в точности так, как он был запрограммирован. После того, как умные контракты развернуты в сети, вы не сможете их изменить. Приложения dapp являются децентрализованными, так как они контролируются алгоритмом, записанным в контракте, а не частным лицом или компанией. Это также означает, что необходимо крайне осторожно разрабатывать контракты и тщательно их тестировать.

У децентрализованного приложения есть бэкенд-код, который работает в децентрализованной одноранговой сети.

Децентрализованное приложение может иметь фронтенд-код и пользовательский интерфейс на любом языке (как и обычное приложение) для запросов к бэкенду. Более того, фронтенд может быть размещен в децентрализованном хранилище, таком как IPFS.
Преимущества разработки DAPP

  • Нулевое время простоя. После развертывания умного контракта в блокчейне сеть в целом всегда сможет обслуживать клиентов, желающих взаимодействовать с контрактом. Следовательно, злоумышленники не смогут запускать атаки типа «отказ в обслуживании», направленные на отдельные децентрализованные приложения.
  • Конфиденциальность. Вам не нужно предоставлять свой реальные личные данные для использования или взаимодействия с dapp.
  • Обеспечение неприкосновенности данных. Данные, хранящиеся в блокчейне, неизменны и неоспоримы благодаря криптографическим примитивам. Злоумышленники не могут подделывать транзакции или другие данные, которые уже были опубликованы.
  • Устойчивость к цензуре. Абсолютно никто в сети не может блокировать отправку транзакций пользователями, написание ими децентрализованных приложений или чтение данных из блокчейна.
  • Вычисления, не требующие доверия, и проверяемое поведение. Умные контракты можно анализировать, и они гарантированно будут выполняться предсказуемым образом без необходимости доверять центральному органу. В традиционных моделях все обстоит иначе: например, при использовании системы онлайн-банкинга мы за неимением выбора должны доверять тому, что финансовые учреждения не будут злоупотреблять нашими финансовыми данными, изменять записи или взламывать наши аккаунты.

Недостатки разработки DAPP

  • Обслуживание. Могут возникать трудности с поддержкой и обслуживанием децентрализованных приложений, так как код и данные, опубликованные в блокчейне, сложнее изменить. Разработчикам сложно обновлять свои децентрализованные приложения (или базовые данные, хранящиеся в децентрализованном приложении) после их развертывания, даже если в старой версии обнаружены ошибки или угрозы безопасности.
  • Удобство пользователя. Может быть сложнее добиться удобства пользователя, потому что среднестатическому пользователю может быть слишком сложно настроить стек инструментов, необходимый для действительно безопасного взаимодействия с блокчейном.
  • Расходы на производительность. Накладные расходы на производительность огромны, и масштабирование действительно затруднено. Чтобы достичь уровня безопасности, честности, прозрачности и надежности, к которому стремится Ethereum, каждый узел запускает и хранит каждую транзакцию. Кроме того, доказательство работы также требует времени. По примерному подсчету оценка накладных расходов примерно в 1 000 000 раз больше по сравнению со стандартными вычислениями, проводимыми в настоящий момент.
  • Централизация. Удобные для пользователя и разработчика решения, построенные на основе базового уровня Ethereum, в любом случае могут оказаться похожими на централизованные службы. Например, такие службы могут хранить ключи или другую важную информацию на стороне сервера, обслуживать интерфейс с использованием централизованного сервера или запускать важную бизнес-логику на централизованном сервере перед записью в блокчейн. Централизация сводит на нет многие (если не все) преимущества блокчейна в сравнении с традиционной моделью.
  • Перегрузка сети. Когда одно децентрализованное приложение использует слишком много вычислительных ресурсов, создается резервная копия всей сети. На текущий момент сеть может обрабатывать только около 10-15 транзакций в секунду; если транзакции отправляются быстрее, чем может обработать сеть, пул неподтвержденных транзакций может быстро увеличиться.
Веб-приложения против Децентрализованные приложения

Trello, Slack и Twitter являются примерами компаний, предлагающих веб-приложения. Удобство использования традиционных веб-приложений зависит от двух элементов:

  • Внешнего интерфейса
  • Внутреннего интерфейса.

Веб-приложения используют программное обеспечение, которое находится на централизованных веб-серверах, а не в локальной операционной системе какого-либо конкретного устройства. Устройства и серверы обмениваются данными посредством кодирования сообщений по протоколу передачи гипертекста (HTTP). Например, когда вы открываете Инстраграмм в своем веб-браузере, отображаемая лента (интерфейс) извлекается из данных, хранящихся на веб-сервере компании (серверная часть).

В то время как Интернет передает огромные объемы данных через массивные централизованные серверы, блокчейн представляет собой сотни или даже тысячи машин, которые разделяют транзакционное бремя по распределенной сети. В интерфейсе децентрализованные приложения и веб-сайты используют одну и ту же технологию для отображения страницы в Интернете.

Однако на внутреннем уровне dApps взаимодействуют со своими соответствующими сетями блокчейнов через кошелек, который служит мостом к экосистеме блокчейнов. Кошельки управляют вашим адресом в блокчейне и криптографическими ключами, необходимыми для идентификации и аутентификации.

Вместо того, чтобы использовать протокол HTTP для связи с блокчейном, кошельки DApp запускают смарт-контракты, которые взаимодействуют с блокчейном и выполняют транзакции. Таким образом, DApp - это пользовательский интерфейс (UI), который взаимодействует со смарт-контрактами, которые совершают транзакции в блокчейне, и в этот момент распределенная сеть узлов, составляющая блокчейн, проверяет и подтверждает данные DApp.

Хорошо продуманный пользовательский интерфейс децентрализованного приложения (UX) может показаться не таким уж отличным от веб-приложения, он отличается от последнего тем, что в нем отсутствуют серверы, HTTP и потенциальная цензура.

Критерии децентрализованных приложений

Хотя очевидно, что архитектура DApp отличается от обычных платформ, что представляет собой DApp, все еще определяется. Тем не менее, DApp обычно соответствует этим четырем основным критериям:

  • Данные DApp должны храниться в децентрализованной цепочке блоков.
  • DApp должен генерировать цифровые активы, которые служат доказательством ценности.
  • DApp - это полностью открытый исходный код, без какой-либо организации, владеющей большинством монет или токенов. Благодаря своей природе с открытым исходным кодом, изменения в протоколе должны приниматься на основе консенсуса пользователей сети.
  • Активы DApp распределяются по сети в качестве вознаграждения.

Основываясь на этом определении, блокчейн биткойнов классифицируется как DApp, потому что он соответствует всем четырем критериям. Давайте рассмотрим критерии DApp для биткойнов:

  • Биткойн работает с открытым исходным кодом, ни одна организация не владеет большей частью биткойнов (BTC) в обращении, а механизм консенсуса Proof-of-Work (PoW) определяет управление.
  • Биткойн и все его данные хранятся в блокчейне.
  • Биткойн генерирует монеты, которые служат доказательством ценности в результате процесса майнинга.
  • Биткойн распределяет криптовалюту биткойн среди майнеров в качестве вознаграждения за майнинг.

Согласно этому определению, многие криптовалюты можно считать рудиментарными версиями dApps, даже без функциональности смарт-контрактов и веб-интерфейсов. Сам блокчейн можно классифицировать как DApp. Блокчейны могут содержать dApps, которые имеют свои собственные блокчейны, такие как биткойн. Или же dApps, которые не основаны на блокчейне, могут быть построены поверх существующего блокчейна, как это происходит со многими dApps, работающими на Ethereum.

Будущее децентрализованных приложений

Хотя Биткойн, возможно, можно назвать первым DApp, Ethereum с тех пор стал основным драйвером роста экосистемы DApp. Во многом это связано с его умными контрактами и пользовательской базой. По мере того, как рынок децентрализованных финансов (DeFi) расширяет свои варианты использования и внедрения, dApps представляют собой важный переход к новым аудиториям, развертывая пользовательские интерфейсы, которые эмулируют обычные веб-приложения, получая доступ к новым возможностям блокчейна.

При этом dApps во многом расширяют функциональность Интернета с помощью блокчейна. Независимо от используемого базового блокчейна, интерес к dApps быстро растет — и движение только началось. Поскольку блокчейн продолжает развиваться быстрыми темпами, вполне вероятно, что финансы, игры, онлайн-рынки и социальные сети станут dApps на основе блокчейна.
Как вам статья?