Стек Web3 для тех, кто спешит

Стек Web3 для тех, кто спешит

27 апреля 2022 г.

Web3 — это модное слово, о котором все слышали, но редко понимают. На самом деле, многие [дискредитируют] (https://businesstechguides.co/why-does-everyone-hate-web3) Web3 просто потому, что не могут понять, чем он отличается от Web2.


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


Это руководство предлагает введение в ландшафт технологий Web3. Планируете ли вы использовать стек Web3 или просто хотите посмотреть, как децентрализованные технологии работают внутри, это хорошее место для начала.


Что такое Web3 и почему это важно?


Прежде чем погрузиться в стек Web3, важно понять значение Web3. Большая часть того, что мы знаем о Web3, взята из этой [статьи] 2014 года (https://gavwood.com/dappsweb3.html) Гэвина Вуда, соучредителя Ethereum и генерального директора Parity Technologies.


Для краткого введения в тему: Web3 — это, по сути, набор технологий, которые обеспечивают разработку [децентрализованных приложений] (https://businesstechguides.co/decentralised-applications) (dApps). Среди прочего, dApps выигрывают от децентрализованного управления и распределенной инфраструктуры, предлагая пользователям больший контроль над идентификацией и ценностью.


Web3 — это видение децентрализованного Интернета, построенного на технологии блокчейн. Нынешняя модель Интернета сильно централизована и более несовершенна, чем многие думают.


Например, пользователи должны иметь дело с утечками данных, привязкой к поставщику, плохим пользовательским интерфейсом и множеством проблем, связанных с централизованная инфраструктура.


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


[Источник изображения]


Небольшое введение в стек Web3


Хотя Web3 отдаленно похож на Web2, такое сходство мимолетно. Во всяком случае, стек Web3 бесконечно сложен, потому что блокчейны, на которых построен Web3, представляют собой сложные механизмы.


Тем не менее, мы попытаемся разобрать архитектуру приложения Web3. В этом разделе будут рассмотрены следующие строительные блоки децентрализованных приложений и то, как эти системы объединяются для обеспечения децентрализованной сети:


  • Блокчейны

  • Смарт-контракты

  • Узлы

  • Инфраструктурные примитивы

  • Фронтенд-библиотеки

  • Конечные точки связи

  • Точки доступа (браузеры и кошельки)

Уровень 1 (Блокчейны)


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


Помимо работы в качестве распределенного реестра, блокчейны также служат «машинами перехода состояний». Машина перехода состояний может вычислять бесконечное количество состояний, но может находиться только в одном состоянии за раз.


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


Блокчейны являются критически важной инфраструктурой для децентрализованной сети, поскольку они облегчают хранение и выполнение смарт-контрактов (подробнее об этом позже). Например, Ethereum — популярный блокчейн для dApps — предоставляет среду выполнения ([Виртуальная машина Ethereum] (https://businesstechguides.co/what-is-the-ethereum-virtual-machine)), которая позволяет разработчикам разрабатывать блокчейн. на основе приложений.


Другие блокчейны (машины перехода состояний), полезные для выполнения децентрализованных приложений, включают:


  • В горошек

  • ОКОЛО

  • Солана

  • ЭОС

  • Умная сеть Binance

  • Лавина

[Источник изображения]


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


Чтобы обойти эту проблему, разработчики создали несколько решений масштабирования для достижения масштабируемости при сохранении безопасности и децентрализации. Эти решения «[Уровень 2] (https://businesstechguides.co/what-is-layer-2-blockchain)» предназначены для обеспечения более быстрых транзакций и более высокой пропускной способности для поддержки более широкого использования.


Примеры включают:


  • Полигональная сеть

  • Оптимизм

  • Арбитр

  • зкСИНХР

Уровень 2 (смарт-контракты)


Чуть выше блокчейнов в стеке Web3 находятся смарт-контракты. Смарт-контракты относятся к программам, работающим на блокчейне.


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


В контексте Web3 смарт-контракты функционируют как серверная часть приложения. Смарт-контракт определяет логику приложения и контролирует общую функциональность приложения.


Каждый раз, когда вызывается функция смарт-контракта, это вызывает изменение состояния сети блокчейна. После этого изменение состояния принимается и передается по всей сети узлов.


В этом Web3 отличается от Web2. Традиционные приложения используют клиент-серверный подход, при котором код, управляющий приложениями, контролируется компанией и может быть изменен по желанию.


[Источник изображения]


Поскольку каждый смарт-контракт находится в блокчейне, его нельзя удалить или остановить. Это означает, что децентрализованные приложения устойчивы к цензуре и не могут быть удалены властями в одностороннем порядке.


Смарт-контракты написаны на разных языках, таких как Solidity и Vyper (цепочки, совместимые с Ethereum и EVM) или Rust (Solana, NEAR, Polkadot).


Чтобы взаимодействовать со смарт-контрактами, пользователям необходимо отправить транзакцию в сеть, и именно здесь в игру вступают узлы.


Уровень 3 (узлы)


Как объяснялось ранее, блокчейн — это, по сути, сеть p2p, поддерживаемая глобально распределенными компьютерами (узлами). Каждый узел проверяет транзакции, проверяет состояние сети и хранит историю блокчейна. Что еще более важно, узлы могут анализировать данные в цепочке, а также отправлять данные в блокчейн.


Чтобы децентрализованное приложение могло подключаться к блокчейну (и взаимодействовать со смарт-контрактами), оно должно подключаться к узлу. Как правило, здесь есть разные варианты:


  • Запустить узел

  • Подключиться к общедоступному узлу

  • Используйте поставщик узлов

Каждый метод имеет компромиссы. Например, запуск узла может быть полезен с точки зрения децентрализации (вы можете проверить данные самостоятельно и уменьшить зависимость от посредников). Однако запуск узла может быть дорогим, особенно с учетом того, что блокчейн продолжает расти в размерах.


По этой причине многие разработчики блокчейнов выбирают поставщиков узлов, таких как [Infura] (https://infura.io/) и [Alchemy] (https://www.alchemy.com/). Помимо снижения накладных расходов, поставщики узлов берут на себя управление инфраструктурой, позволяя вам сосредоточиться на создании своего децентрализованного приложения.


На каждом узле работает клиентское программное обеспечение, которое представляет собой просто протокол, обеспечивающий взаимодействие с данными блокчейна. Например, у Ethereum есть разные клиенты, включая Go Ethereum (Geth), OpenEthereum и Parity.


Уровень 4 (технологические примитивы)


Узлы, смарт-контракты и блокчейны в основном формируют базовую структуру для блокчейн-приложений. Однако существует еще один уровень критической инфраструктуры. Это включает в себя децентрализованное хранилище файлов, потоки данных и управление идентификацией.


  1. Децентрализованное хранилище

В Web2 99,9% данных приложений хранятся в централизованной базе данных. Возьмем, к примеру, приложение Web2, такое как Twitter. Данные, которые генерируют пользователи — твиты, видео, изображения, лайки и информация об учетной записи — должны где-то храниться.


Но централизованное хранение данных проблематично по многим причинам. Это способствует неправомерному и несанкционированному использованию пользовательских данных, подвергает личную информацию риску кражи и создает риск цензуры.


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


Именно здесь в игру вступают [децентрализованные сети хранения] (https://businesstechguides.co/decentralized-storage-networks). Платформа децентрализованного хранения распределяет файлы по одноранговой сети, обеспечивая безопасность и неизменность информации. В отличие от традиционных баз данных, службы децентрализованного хранения сложнее отключить и защитить конфиденциальность и контроль над личной информацией.


Таким образом, приложения Web3 решают проблему управления данными за счет интеграции с решениями для децентрализованного хранения:


  • Арткать

  • ИПФС

  • Файлкойн

  • Сторж

  • Сиа

  1. Потоки данных

Dapps — это здорово, но их реальная функциональность часто ограничена. Это связано с тем, что смарт-контракты, на которых работают эти приложения, могут получать доступ только к данным в сети (например, к остаткам на счетах).


Например, создание децентрализованного рынка прогнозов будет затруднено, поскольку децентрализованное приложение не может извлекать информацию о результатах событий.


Чтобы решить эту проблему, разработчики блокчейна используют «оракулов» — сущности, которые собирают реальную информацию из разных источников и передают ее в смарт-контракты. Это позволяет смарт-контрактам выполняться на основе получаемых ими входных данных.


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



  1. Управление идентификацией

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


В Web3 управление идентификацией децентрализовано. Вместо того, чтобы просить пользователей передать личную информацию, аутентификация выполняется с помощью криптографических ключей. Чтобы использовать децентрализованное приложение, пользователям нужно будет только подключить свои кошельки или использовать службу идентификации на основе кошелька, например [SpruceID] (https://www.spruceid.com/).



Уровень 5 (Внешние библиотеки)


Каждое приложение имеет внешний интерфейс, интерфейс, из которого пользователи могут активировать функциональные возможности приложения. Интерфейс также описывается как пользовательский интерфейс (UI) и определяет, что происходит, когда вы взаимодействуете с различными элементами.


Говоря языком разработчика, внешний интерфейс «разговаривает» с внутренним и инициирует определенные функции, которые вы запросили. Давайте использовать Twitter в качестве примера:


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


Многие приложения Web3 похожи на приложения Web2 тем, как построен их внешний интерфейс. Например, многие разработчики блокчейнов используют фреймворки на основе JavaScript, такие как [React.js] (https://github.com/NoahZinsmeister/web3-react), для создания внешнего интерфейса своего децентрализованного приложения.


Основное различие заключается в том, как внешние приложения в Web3 взаимодействуют с внутренними. Поскольку приложения Web3 построены на новой архитектуре (блокчейны), им требуются другие протоколы связи.


Уровень 6 (конечные точки связи)


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


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


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


Для взаимодействия с блокчейном большинство децентрализованных приложений используют более новые конечные точки связи, такие как ethers.js и web3.js библиотеки. Эти библиотеки помогают интерфейсным приложениям взаимодействовать с блокчейном и выполнять транзакции чтения/записи. Это позволяет пользователям запускать функции смарт-контракта с помощью внешнего интерфейса приложения.


Уровень 7 (Браузеры и кошельки)


Браузеры и кошельки Web3 служат точками входа для взаимодействия пользователей с децентрализованными приложениями.


  1. Браузеры Web3

Среднее приложение блокчейна обычно доступно в виде веб-приложения, поэтому вы можете получить к ним доступ только через браузеры. Однако обычный браузер — скажем, Google Chrome — не может взаимодействовать с децентрализованным приложением по причинам, объясненным ранее.


Чтобы решить эти проблемы, пользователи полагаются на браузеры для децентрализованных приложений, такие как [Brave] (https://brave.com/), [Status] (https://status.im/) и [Opera] (https:// www.opera.com/crypto/next) или расширения браузера, такие как MetaMask. Эти браузеры имеют встроенную поддержку анализа информации о блокчейне, поэтому вы можете читать/записывать транзакции из своего браузера.


Например, MetaMask — это расширение для браузера, которое внедряет web3.js на каждую веб-страницу, позволяя получать данные по цепочке, а также отправлять транзакции из вашего браузера.


[Источник изображения]


  1. Кошельки

Хотя вы можете легко читать данные блокчейна из своего браузера децентрализованного приложения, для отправки транзакций требуется подпись с закрытым ключом. Таким образом, кошельки имеют решающее значение для взаимодействия с приложениями блокчейна.


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


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



Последние мысли


Этот список ни в коем случае не является исчерпывающим — ландшафт Web3 постоянно меняется, и постоянно появляются новые инструменты. Тем не менее, компоненты, обсуждаемые в этой статье, составляют основную инфраструктуру стека разработки Web3.


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


Также опубликовано [Здесь] (https://businesstechguides.co/what-is-the-web3-stack)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE