Почему компонуемость важна для Web3
6 мая 2022 г.Многие разработчики Web2 знакомы с компоновкой — идеей создания многократно используемых программных компонентов, которые можно использовать для создания отдельных приложений. Компонуемость берет свое начало в движении за технологии с открытым исходным кодом и имела решающее значение для раннего роста Интернета.
Несмотря на то, что он лучше, чем Web2 Internet, Web3 нуждается в возможности компоновки, чтобы раскрыть ценность для пользователей и способствовать инновациям. В этой статье описываются принципы компонуемости, преимущества компонуемой системы и то, как она вписывается в инфраструктуру Web3.
Что означает компонуемость?
В разработке приложений компонуемость означает возможность комбинировать существующие компоненты и собирать их заново для создания новых продуктов. В компонуемой архитектуре каждый компонент имеет определенный вариант использования. Затем разработчики могут комбинировать эти компоненты и добавлять новые функции для создания приложений — без необходимости изобретать велосипед или создавать с нуля.
Как объяснялось ранее, компонуемость была и остается особенностью технологии с открытым исходным кодом. Любой может создавать программное обеспечение с открытой лицензией, которое другие разработчики могут использовать в своих продуктах, не опасаясь судебных разбирательств или проблем с нарушением патентных прав.
Первые дни Интернета были построены на этой идее коллективного доступа к технологиям. Например, CERN [известно выпущенное программное обеспечение] (https://home.cern/science/computing/birth-web) для World Wide Web.
Однако гиганты Big Tech подорвали компонуемость, чтобы сохранить прибыль компании. Такие компании, как Google, Facebook и Amazon, теперь защищают программное обеспечение, чрезмерно усердно защищая патенты, защищая данные и преднамеренно разрабатывая продукты с использованием несовместимых технологических стеков.
Более того, компании Web2 привязывают пользователей к платформам и предотвращают использование конкурирующих платформ за счет высоких затрат на переключение. В результате получается фрагментированная система, в которой невозможно объединить каждый компонент для создания большей ценности.
Компонуемость в технологии блокчейн
Взрыв в области децентрализованных технологий (Web3) вызвал новый интерес к компонуемости программного обеспечения. Как технологии с открытым исходным кодом, блокчейн-приложения обладают высокой функциональной совместимостью и могут использовать существующие библиотеки для создания новых возможностей для пользователей.
В контексте [Web3] (https://businesstechguides.co/what-is-the-web3-stack) компонуемость — это способность приложений блокчейна, таких как децентрализованные биржи (DEX), [децентрализованные приложения] (https:/ /businesstechguides.co/decentralized-applications) (dApps) и децентрализованные автономные организации (DAO) для общения и работы друг с другом.
В частности, компонуемость в технологии блокчейна означает, что разработчики могут свободно использовать и интегрировать код из других приложений в свои продукты. Это связано с тем, что смарт-контракты, управляющие логикой приложения, имеют открытый исходный код и общедоступны.
Компонуемость в технологии блокчейна помогает сократить цикл разработки децентрализованных приложений (dApps). Раньше разработчикам приходилось разрабатывать каждую функцию приложения с нуля. Но возможность компоновки позволяет разработчикам изменять библиотеки кода из существующих dApps для создания новых приложений, сокращая время, затрачиваемое на написание строк кода.
Область технологии блокчейна, которая извлекает выгоду из компонуемого программного обеспечения, — это децентрализованные финансы (DeFi). Например, SushiSwap [запустил свою децентрализованную биржу] (https://messari.io/asset/sushiswap/profile), скопировав кодовую базу Uniswap и добавив дополнительные функции, такие как токен управления и майнинг ликвидности.
В Web3 есть еще больше примеров компонуемости, которые я рассмотрю в следующем разделе.
Как компоновка раскрывает ценность Web3
Компонуемость необходима для создания интероперабельной системы, в которой разрозненные элементы могут беспрепятственно соединяться. Компоненты технологии блокчейна, такие как dApps, DEX и DAO, являются составными по своей природе, что позволяет их повторно собирать, дублировать или интегрировать друг в друга.
Компонуемость блокчейна обычно происходит либо на уровне смарт-контракта, либо на уровне проекта. Это позволяет разработчикам комбинировать мощные компоненты для разработки новых приложений и открывать больше возможностей для пользователей.
Синтаксическая компонуемость
Синтаксическая компонуемость означает реализацию нескольких компонентов таким образом, что их можно соединить для формирования совершенно новых систем. Согласно [статье] (https://ionic.io/resources/articles/what-is-composability) Ionic, синтаксическая компонуемость процветает благодаря трем критическим компонентам:
Модульность: каждый компонент компонуемой инфраструктуры должен решать определенную проблему и делать это хорошо. Это позволяет разработчикам собирать модульные компоненты в один продукт, при этом разные элементы решают разные задачи.
Автономность: Компоненты компонуемой архитектуры должны работать независимо, не полагаясь на другие компоненты в плане функциональности. Это также означает, что каждый элемент можно изменить, не влияя на общую структуру.
Обнаруживаемость: возможность компоновки позволяет разработчикам использовать репозитории повторно используемых программных фреймворков и библиотек. Но эти библиотеки и фреймворки должны быть доступны для использования другими. Другими словами, код должен быть с открытым исходным кодом и доступным для неограниченного изменения и использования.
Эфириум — классический пример того, как синтаксическая компонуемость работает в технологии блокчейна: смарт-контракты функционируют как многократно используемые элементы, которые может использовать каждый. Это означает, что команды разработчиков могут повторно использовать базовый код контракта и сосредоточиться на создании базовой инфраструктуры для dApps.
Веб-сайт Ethereum.org излагает это так:
- Смарт-контракты общедоступны в Ethereum и могут рассматриваться как открытые API. Вам не нужно писать собственный смарт-контракт, чтобы стать разработчиком децентрализованных приложений, вам просто нужно знать, как с ними взаимодействовать. Например, вы можете использовать существующие смарт-контракты Uniswap, децентрализованной биржи, для обработки всей логики обмена токенами в вашем приложении — вам не нужно начинать с нуля.*
В экосистеме Ethereum смарт-контракты — это строительные блоки, которые разработчики могут применять для создания еще более сложных приложений. Упомянутый ранее пример SushiSwap-Uniswap показывает, как разные проекты могут использовать одинаковые кодовые базы для достижения разных целей.
Другие приложения блокчейна также выигрывают от синтаксической компоновки. Например, для нового DAO создание индивидуальной системы управления может оказаться дорогостоящим и трудоемким. Но он может просто использовать библиотеку инструментов управления, например [Клиент Aragon] (https://client.aragon.org/), для запуска и масштабирования пригодной для использования системы управления.
Атомарная компонуемость
«Атомарность» — это концепция технологии блокчейн, которая вводит идею объединения нескольких действий в одну транзакцию. Эта транзакция может быть чем угодно: от обмена токенами между двумя людьми до вызовов смарт-контрактов.
Принцип атомарности утверждает, что каждое действие в транзакции должно быть правильным и возможным, чтобы оно работало. Если одна часть транзакции терпит неудачу, то вся транзакция также терпит неудачу.
Таким образом, атомарная компонуемость — комбинация атомарности и компонуемости — заключается в том, что одна транзакция может включать вызовы разных смарт-контрактов. Сбой одной части транзакции приводит к сбою транзакции: транзакция либо завершается успешно, либо вместе терпит неудачу.
Более того, атомарная компоновка возможна только в том случае, если части, участвующие в транзакции, размещены на одном и том же уровне выполнения. Было бы невозможно провести сложную транзакцию, включающую использование децентрализованных приложений, работающих в разных цепочках — скажем, Ethereum (уровень 1) и Polygon ([уровень 2] (https://businesstechguides.co/what-is-layer-2-). блокчейн)).
Лучшие примеры атомарной компонуемости взяты из экосистемы DeFi. Вот несколько примеров атомарной компонуемости в действии:
Быстрые кредиты
Для тех, кто не углубился в дебри криптографии и DeFi, быстрый кредит может показаться футуристической концепцией. Однако быстрые кредиты следуют простой схеме и работают благодаря атомарной компонуемости:
Идея мгновенного кредита проста: вы берете кредит и возвращаете его в рамках одной транзакции. Флэш-кредиты работают по атомарным принципам, то есть кредиторы вернут свои деньги, если транзакция не удастся. Это открывает путь для беззалоговых кредитов, поскольку заемщики не могут (теоретически) не выполнять свои обязательства по погашению.
Атомарная компонуемость означает, что быстрый кредит может включать в себя различные действия, выполняемые на разных платформах (при условии, что эти действия генерируют достаточное количество токенов для погашения кредита). Вот пример, взятый из арбитражной торговли, для пояснения концепции:
Скажем, токен (MKR) торгуется выше на одной бирже (Uniswap), чем на другой бирже (Kyber). Арбитражному трейдеру (Бобу) не хватает средств, чтобы купить MKR на Kyber и продать на Uniswap с целью получения прибыли, поэтому он берет экспресс-кредит.
Вот самое интересное:
Боб может использовать кредит, чтобы купить MKR на Kyber, продать токены MKR на Uniswap, получить прибыль и вернуть первоначальный капитал кредитору. И все эти действия происходят в одной транзакции. Если одна часть терпит неудачу, то вся сделка проваливается, и кредитор получает свой капитал.
Получение кредита в реальном мире потребовало бы мучительной работы с документами и траты большого количества времени, что препятствовало бы эффективному арбитражу. Благодаря атомарной компонуемости быстрые кредиты упрощают арбитражную торговлю, позволяя получать выгоду от более высокой ликвидности и получения прибыли.
Автоматические маркет-мейкеры (AMM)
Автоматизированные маркет-мейкеры (AMM) — это протоколы, которые обеспечивают автоматическую торговлю крипто-токенами без доверия. Вы можете думать об AMM как о роботизированном «управляющем портфелем», который принимает инвестиционные решения на основе анализа текущих рыночных условий.
Yearn — пример популярного AMM среди энтузиастов DeFi. Yearn AMM может автоматически сканировать различные платформы DeFi и перемещать ваши токены туда, где вы получите наибольшую прибыль (например, за счет торговых комиссий).
Однако Yearn может работать только по двум причинам:
1. Он может получить доступ к данным о ценах на токены на разных платформах DeFi. Если бы каждая платформа защищала данные платформы, алгоритм Yearn не смог бы сравнивать цены токенов.
2. Различные компоненты экосистемы DeFi можно быстро комбинировать в рамках одной транзакции. Например, торговый бот Yearn может использовать ETH в качестве залога для заимствования стейблкоинов DAI у MakerDAO, использовать DAI для заработка токенов CRV на Curve, продавать CRV за ETH и возвращать ETH MakerDAO в качестве залога.
Децентрализованная идентификация и компонуемость
Другое применение компонуемости в Web3 — управление идентификацией. В настоящее время структуры идентификации вряд ли можно компоновать, поскольку каждая платформа должна разработать свою систему для сбора и управления идентификаторами пользователей.
Одним из самых больших улучшений Web3 является возможность пользователей передавать свою личность через dApps. Пользователи могут хранить идентификаторы в своих кошельках и предоставлять доступ только для чтения к системам аутентификации dApp. Это означает, что вам не нужно запоминать длинные пароли или предоставлять одни и те же данные десяткам приложений.
Это контрастирует с централизованным Интернетом, где разные провайдеры не могут обмениваться идентификационной информацией. Вот почему у вас разная информация об учетной записи для Facebook, Twitter, LinkedIn и т. д., даже если эта информация более или менее одинакова.
Препятствия для компоновки Web3
Хотя компонуемость — благородная идея, реализовать ее может быть сложно по многим причинам:
Вопросы безопасности
Большая часть компонуемости блокчейна проистекает из способности смарт-контрактов вызывать другие контракты. Именно это делает возможными сложные транзакции, включающие различные контракты.
Однако вызов внешних контрактов — не всегда лучшая идея. Например, вызов вредоносного контракта может привести к эксплойтам, особенно [атакам с повторным входом] (https://quantstamp.com/blog/what-is-a-re-entrancy-attack).
Чтобы компонуемость стала стандартом, важно усилить безопасность смарт-контрактов. Это упрощает разработчикам безопасную интеграцию логики из других контрактов в свои контракты.
Защита интеллектуальной собственности (ИС)
До сих пор технология блокчейна процветала благодаря идеалам технологии с открытым исходным кодом и кодовых баз как «общественного блага». Но есть признаки того, что это может измениться раньше, чем ожидалось.
После инцидента с SushiSwap Uniswap [создал пункт] (https://www.coindesk.com/tech/2021/03/23/uniswap-v3-introduces-new-license-to-spoil-future-sushis/?outputType =amp) в версию v3 своего программного обеспечения для предотвращения несанкционированного использования или разветвления. Несмотря на то, что такие шаги разумны, они могут вновь ввести «обнесенные стеной сады» Web2, где организации отдают предпочтение самосохранению, а не коллективному росту и инновациям.
Если проекты начнут регистрировать смарт-контракты или запрещать их использование, компонуемость будет умирать медленной смертью. Как объяснялось ранее, компонуемость требует, чтобы программное обеспечение было с открытым исходным кодом и доступным для использования и модификации.
Неадекватная стандартизация
Компонуемость в блокчейне выигрывает от стандартов. Например, Ethereum обеспечил интероперабельность, создав стандарты, известные как Ethereum Requests for Comments (ERC) для интерфейсов смарт-контрактов.
Например, стандарт ERC-20 определяет, как должен работать взаимозаменяемый токен. Это гарантирует его совместимость с другими компонентами экосистемы Ethereum, такими как кошельки, DEX, dApps и так далее.
Однако с бурным развитием блокчейнов может быть сложно создать стандарты, которые обеспечат компонуемость и интероперабельность. Важно договориться об отраслевых стандартах, иначе Web3 сам станет коллекцией обнесенных стеной садов.
Последние мысли
Первоначально я думал назвать эту статью «Что общего у оркестров и Web3?». Подобно оркестру, Web3 выигрывает от объединения разрозненных, но составных элементов для создания новых результатов.
Хотя в этой статье подробно рассматривается компонуемость, в Web3 есть и другие приложения компонуемой инфраструктуры. Со временем разработчики найдут способы адаптировать уже существующие компоненты для создания новых систем, обеспечивающих исключительную функциональность.
Однако еще неизвестно, будет ли Web3 и дальше поощрять компонуемость. Для создания действительно компонуемой экосистемы Web3 необходимы лучшая безопасность смарт-контрактов, более тесное сотрудничество между командами разработчиков и более высокая стандартизация.
Фото на обложке Ryan Quintal на Unsplash
Оригинал