Возможность компоновки смарт-контрактов
Последнее обновление страницы: 13 сентября 2025 г.
Краткое введение
Смарт-контракты общедоступны в Ethereum и могут рассматриваться как открытые API. Вам не нужно писать собственный смарт-контракт, чтобы стать разработчиком децентрализованных приложений, вам просто нужно знать, как с ними взаимодействовать. Например, вы можете использовать существующие умные контракты Uniswap (opens in a new tab), децентрализованной биржи, для обработки всей логики обмена токенов в вашем приложении — вам не нужно начинать с нуля. Ознакомьтесь с некоторыми из их контрактов v2 (opens in a new tab) и v3 (opens in a new tab).
Что такое композиционность?
Композиционность - это объединение отдельных компонентов для создания новых систем или выходов. В разработке программного обеспечения композиционность означает, что разработчики могут многократно использовать существующие компоненты программного обеспечения для создания новых приложений. Хороший способ понять композиционность - это думать о составных элементах, как о блоках Lego. Каждый Lego может быть объединен с другим, позволяя Вам строить сложные структуры путем сочетаний различные Lego.
В Ethereum каждый смарт-контракт представляет собой что-то вроде Lego - Вы можете использовать смарт-контракты из других проектов в качестве строительных блоков для Вашего проекта. Это означает, что Вам не нужно тратить время на изобретение "колеса" или строительство с нуля.
Как работает композиционность?
Смарт-контракты Ethereum похожи на публичные приложения, так любой может взаимодействовать с контрактом или внедрить его в децентрализованные приложения для добавления функциональности. Композиционность смарт-контрактов, как правило, работает на основе трех принципов: модульность, автономность и открытость:
**1. Модульность: это способность отдельных компонентов выполнять определенную задачу. В Ethereum каждый смарт-контракт имеет определенный вариант использования (как показано в примере Uniswap).
**2. Автономность: составные компоненты должны быть способны работать независимо. Каждый смарт-контракт в Ethereum является самоисполняемым и может функционировать, не полагаясь на другие части системы.
**3. Обнаруживаемость: разработчики не могут вызывать внешние контракты или интегрировать программные библиотеки в приложения, если первые не являются общедоступными. По дизайну, смарт-контракты являются открытыми источниками; любой может вызвать смарт-контракт или ответвление базового кода.
Преимущества композиционности
Сокращенный цикл разработки
Композиционность сокращает объем работы, которую разработчикам приходится выполнять при создании децентрализованных приложений. Как говорит Навал Равикант: (opens in a new tab) \
Если существует смарт-контракт, который решает одну проблему, другие разработчики могут повторно использовать его, чтобы им не приходилось решать одну и ту же проблему. Таким образом, разработчики могут брать существующие библиотеки программного обеспечения и добавлять дополнительную функциональность для создания новых децентрализованных приложений.
Больше инноваций
Компонуемость поощряет инновации и эксперименты, поскольку разработчики могут свободно повторно использовать, изменять, дублировать или интегрировать код с открытым исходным кодом для достижения желаемых результатов. В результате команды разработчиков тратят меньше времени на базовую функциональность и могут уделять больше времени экспериментам с новыми функциями.
Улучшенный пользовательский опыт
Функциональная совместимость компонентов экосистемы Ethereum улучшает пользовательский опыт. Пользователи могут получить доступ к большей функциональности, когда децентрализованные приложения интегрируют внешние смарт-контракты, чем во фрагментированной экосистеме, где приложения не могут взаимодействовать друг с другом.
Мы воспользуемся примером из арбитражной торговли, чтобы проиллюстрировать преимущества функциональной совместимости:
Если токен торгуется на бирже А дороже, чем на бирже B, вы можете воспользоваться разницей в цене, чтобы получить прибыль. Однако вы можете сделать это, только если у вас достаточно капитала для финансирования транзакции (т. е. для покупки токена на бирже B и его продажи на бирже A).
В ситуации, когда у вас недостаточно средств для совершения сделки, идеальным вариантом может стать срочный заем. Срочные займы — это очень технически сложная вещь, но основная идея заключается в том, что вы можете заимствовать активы (без обеспечения) и вернуть их в рамках одной транзакции.
Возвращаясь к нашему первоначальному примеру, арбитражный трейдер может взять большой срочный заем, купить токены на бирже B, продать их на бирже A, вернуть капитал + проценты и оставить себе прибыль в рамках одной транзакции. Эта сложная логика требует объединения вызовов к нескольким контрактам, что было бы невозможно, если бы у смарт-контрактов отсутствовала функциональная совместимость.
Примеры компонуемости в Ethereum
Обмен токенов
Если вы создаете децентрализованное приложение, в котором транзакции должны оплачиваться в ETH, вы можете разрешить пользователям платить другими токенами ERC-20, интегрировав логику обмена токенов. Код автоматически конвертирует токен пользователя в ETH до того, как контракт выполнит вызванную функцию.
Управление
Создание индивидуальных систем управления для DAO может быть дорогостоящим и трудоемким. Вместо этого вы можете использовать инструментарий управления с открытым исходным кодом, такой как Aragon Client (opens in a new tab), чтобы запустить свою DAO и быстро создать систему управления.
Управление идентификацией
Вместо создания собственной системы аутентификации или использования централизованных провайдеров, вы можете интегрировать инструменты децентрализованной идентификации (DID) для управления аутентификацией пользователей. Примером может служить SpruceID (opens in a new tab), инструментарий с открытым исходным кодом, который предлагает функцию "Войти через Ethereum", позволяющую пользователям подтверждать свою личность с помощью кошелька Ethereum.
Связанные руководства
- Быстрый старт разработки фронтенда для вашего децентрализованного приложения с помощью create-eth-app — Обзор использования create-eth-app для создания приложений с популярными готовыми смарт-контрактами.
Дополнительные материалы
Знаете ресурс сообщества, который вам пригодился? Измените эту страницу и добавьте его!