Введение в децентрализованные приложения
Последнее редактирование: @ViktorOn(opens in a new tab), 23 апреля 2024 г.
Децентрализованное приложение (dapp) — это приложение, построенное на децентрализованной сети, сочетающей в себе умный контракт и клиентскую сторону пользовательского интерфейса. Отметим, что в Ethereum умные контракты общедоступны и прозрачны (как открытые API), поэтому ваше приложение может содержать в себе умные контракты, которые были написаны другими людьми.
Прежде чем начать
Перед изучением децентрализованных приложений вам следует прочитать об основах блокчейна, а также о сети Ethereum и о том, как она децентрализована.
Что такое децентрализованное приложение
У децентрализованного приложения есть бэкенд-код, который работает в децентрализованной одноранговой сети. Сравните это с приложением, бэкенд-код которого работает на централизованных серверах.
Децентрализованное приложение может иметь фронтенд-код и пользовательский интерфейс на любом языке (как и обычное приложение) для запросов к бэкенду. Более того, фронтенд может быть размещен в децентрализованном хранилище, таком как IPFS(opens in a new tab).
- Децентрализованные: децентрализованные приложения работают в Ethereum — на открытой публичной децентрализованной платформе, над которой ни одно лицо или группа не имеет контроля
- Детерминированные: децентрализованные приложения выполняют ту же функцию независимо от среды, в которой они выполняются
- Полные по Тьюрингу: децентрализованные приложения могут выполнять любые действия при наличии необходимых ресурсов
- Изолированные: децентрализованные приложения выполняются в виртуальной среде, известной как Ethereum Virtual Machine, и ошибка в умном контракте не помешает нормальному функционированию блокчейн-сети
Умные контракты
Чтобы внедрить децентрализованные приложения, нам нужно ввести умные контракты (можно сказать, что это бэкенд децентрализованного приложения). Чтобы получить подробный обзор, перейдите в наш раздел, посвященный умным контрактам.
Умный контракт — это код, который существует в блокчейне Ethereum и работает в точности так, как он был запрограммирован. После того, как умные контракты развернуты в сети, вы не сможете их изменить. Приложения dapp являются децентрализованными, так как они контролируются алгоритмом, записанным в контракте, а не частным лицом или компанией. Это также означает, что необходимо крайне осторожно разрабатывать контракты и тщательно их тестировать.
Преимущества разработки dapp
- Нулевое время простоя. После развертывания умного контракта в блокчейне сеть в целом всегда сможет обслуживать клиентов, желающих взаимодействовать с контрактом. Следовательно, злоумышленники не смогут запускать атаки типа «отказ в обслуживании», направленные на отдельные децентрализованные приложения.
- Конфиденциальность. Вам не нужно предоставлять свой реальные личные данные для использования или взаимодействия с dapp.
- Устойчивость к цензуре. Абсолютно никто в сети не может блокировать отправку транзакций пользователями, написание ими децентрализованных приложений или чтение данных из блокчейна.
- Обеспечение неприкосновенности данных. Данные, хранящиеся в блокчейне, неизменны и неоспоримы благодаря криптографическим примитивам. Злоумышленники не могут подделывать транзакции или другие данные, которые уже были опубликованы.
- Вычисления, не требующие доверия, и проверяемое поведение. Умные контракты можно анализировать, и они гарантированно будут выполняться предсказуемым образом без необходимости доверять центральному органу. В традиционных моделях все обстоит иначе: например, при использовании системы онлайн-банкинга мы за неимением выбора должны доверять тому, что финансовые учреждения не будут злоупотреблять нашими финансовыми данными, изменять записи или взламывать наши аккаунты.
Недостатки разработки dapp
- Обслуживание. Могут возникать трудности с поддержкой и обслуживанием децентрализованных приложений, так как код и данные, опубликованные в блокчейне, сложнее изменить. Разработчикам сложно обновлять свои децентрализованные приложения (или базовые данные, хранящиеся в децентрализованном приложении) после их развертывания, даже если в старой версии обнаружены ошибки или угрозы безопасности.
- Расходы на производительность. Накладные расходы на производительность огромны, и масштабирование действительно затруднено. Чтобы достичь уровня безопасности, честности, прозрачности и надежности, к которому стремится Ethereum, каждый узел запускает и хранит каждую транзакцию. Кроме того, консенсус с доказательством владения также требует времени.
- Перегрузка сети. Когда одно децентрализованное приложение использует слишком много вычислительных ресурсов, создается резервная копия всей сети. На текущий момент сеть может обрабатывать только около 10-15 транзакций в секунду; если транзакции отправляются быстрее, чем может обработать сеть, пул неподтвержденных транзакций может быстро увеличиться.
- Удобство пользователя. Может быть сложнее добиться удобства пользователя, потому что среднестатическому пользователю может быть слишком сложно настроить стек инструментов, необходимый для действительно безопасного взаимодействия с блокчейном.
- Централизация. Удобные для пользователя и разработчика решения, построенные на основе базового уровня Ethereum, в любом случае могут оказаться похожими на централизованные службы. Например, такие службы могут хранить ключи или другую важную информацию на стороне сервера, обслуживать интерфейс с использованием централизованного сервера или запускать важную бизнес-логику на централизованном сервере перед записью в блокчейн. Централизация сводит на нет многие (если не все) преимущества блокчейна в сравнении с традиционной моделью.
Больше любите видео?
Инструменты для создания децентрализованных приложений
Scaffold-ETH — быстрый опыт использования Solidity с помощью интерфейса, который адаптируется к вашему умному контракту.
Создание приложения Eth — создавайте приложения на базе Ethereum с помощью одной команды.
One Click Dapp — FOSS-инструмент для создания интерфейсов dapp с .
Etherflow — FOSS-инструмент для разработчиков Ethereum, позволяющий тестировать свои узлы, а также составлять и отлаживать RPC-вызовы из браузера.
thirdweb – SDK на каждом языке, смарт-контракты, инструменты и инфраструктура для разработки Web3.
Crossmint — платформа разработки Web3 корпоративного уровня для развертывания смарт-контрактов, платежей по кредитным картам и кроссчейн-платежей, а также создания, распространения, продажи, хранения и редактирования NFT посредством API.
Дополнительные ресурсы
- Просмотреть децентрализованные приложения
- Архитектура приложения Web 3.0(opens in a new tab) — Прити Касиредди
- Руководство 2021 года по децентрализованным приложениям(opens in a new tab) — LimeChain
- Что такое децентрализованные приложения?(opens in a new tab) — Gemini
- Популярные децентрализованные приложения(opens in a new tab) — Alchemy
Знаете ресурс сообщества, который вам пригодился? Измените эту страницу и добавьте его!