July 7, 2023

LayerZero: Протокол бездоверительного взаимодействия между всеми цепочками 

Ryan Zarick Bryan Pellegrino Caleb Banister

May 26, 2021

Аннотация

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

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

1 Введение

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

Рисунок 1

Если бы все пользователи и все приложения существовали в едином объединенном блокчейне, то данная статья закончилась бы здесь. Однако, полезность блокчейна привела к появлению множества разнообразных приложений с уникальными тонкостями и требованиями. Потребность в разнообразных функциональностях спровоцировала рост специализированных цепочек (имеется ввиду блокчейнов — chain). Каждая из этих цепочек способствовала огромному развитию приложений в своей собственной экосистеме, но изоляция между этими экосистемами стала ключевым ограничением для принятия блокчейна. Пользователи и разработчики вынуждены делить время, ресурсы и ликвидность между отдельными цепочками. Естественным следствием такого большого количества так называемых Layer 1 блокчейнов (до 109 на момент написания) является необходимость расширения вышеупомянутых трех принципов для охвата взаимодействий между несколькими цепочками одновременно. Один из примеров востребованного взаимодействия между цепочками — передача токенов, о которой мы поговорим позже в данном разделе.

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

Чтобы проиллюстрировать мощный коммуникационный примитив
LayerZero, мы рассмотрим пример передачи токенов от одной цепи к другой. В настоящее время, чтобы конвертировать токены двух цепочек, пользователь должен использовать либо централизованную биржу, либо межцепочечную децентрализованную биржу (DEX) (также известную как межцепочечный мост).
мост), и оба этих варианта требуют компромисса. В случае централизованной биржи, например, Binance.com, пользователь должен доверять бирже, которая отслеживает депозиты и финансирует снятие средств. Эта доверительная связь противоречит основному принципу бездоверительности консенсуса блокчейна и не обладает безопасностью встроенной автоматизированной системы на цепочке системы. Использование DEX, таких как AnySwap или THORChain, облегчает проблему доверия за счет осуществления перевода на цепочке, но существующие реализации DEX требуют преобразования пользовательского токена в специфический для протокола токен, который проходит через их промежуточный уровень консенсуса для достижения консенсуса транзакций. Этот промежуточный уровень консенсуса, хотя обычно реализуется безопасным
образом, требует от пользователя доверия к побочной цепи для
для облегчения передачи токена. Как мы покажем в этой статье,
эта дополнительная нагрузка является излишней.Несмотря на высокий спрос со стороны пользователей, не появилось решения, которое было бы одновременно эффективным, прямым и сохраняло бы основную причину использования блокчейна: бездоверительность. Делая шаг назад, прямые межцепочечные транзакции LayerZero дает разработчикам инструменты для создания именно такого решения.

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

Для того чтобы правильно объяснить возможности LayerZero и его роль в блокчейн-экосистеме, мы сначала представляем формализацию фундаментального примитива коммуникации, необходимого для осуществления межцепочечных транзакций, который мы называем «валидной доставкой» (раздел 3). Затем мы описываем, как LayerZero обеспечивает этот примитив в надежном режиме, тем самым сохраняя обещание безопасности блокчейна. LayerZero является первым надежным межцепочечным протоколом взаимодействия и поддерживает прямую передачу сообщений между цепочками Layer 1 и Layer 2 (рисунок 1).

Рисунок 2: LayerZero гарантирует правильность межцепочечной коммуникации, требуя, чтобы два независимых субъекта, Оракул и Релеер, подтверждали транзакцию.

Межцепочечная транзакция между цепочками A и B состоит из транзакции tA на цепочке A, протокола коммуникации между A и B и сообщения m. «Валидная доставка» утверждает, что сообщение m будет доставлено только в том случае, если транзакция tA является действительной и зафиксированной. Основная идея, лежащая в основе LayerZero, заключается в том, что если два независимых участника подтверждают действительность транзакции (в данном случае, tA), то цепочка B может быть уверена в действительности tA. Рисунок 2 наглядно иллюстрирует это на высоком уровне. При наличии двух независимых участников, не сговорчившихся между собой, если (1) один участник может предоставить заголовок блока, содержащего tA, на цепочке A, (2) другой участник может независимо предоставить доказательство tA на этом блоке (доказательство транзакции), и (3) заголовок и доказательство транзакции совпадают, то протокол коммуникации может доставить сообщение m клиенту на цепочке B с гарантией, что tA устойчиво зафиксирована на цепочке A. Протокол коммуникации LayerZero, описанный в разделе 4, гарантирует, что транзакция на цепочке-получателе будет сопровождаться действительной и зафиксированной транзакцией на цепочке-отправителе без участия промежуточных цепочек. Мы достигаем этого путем сочетания двух независимых сущностей: Оракула, который предоставляет заголовок блока, и Ретранслятора, который предоставляет доказательство, связанное с упомянутой выше транзакцией.

Интерфейсом для LayerZero является легкий клиент на цепочке, который мы называем «точкой доступа LayerZero». На каждой (поддерживаемой) цепочке существует одна точка доступа LayerZero, и любая цепочка с точкой доступа LayerZero может проводить межцепочечные транзакции с любой другой цепочкой, также имеющей точку доступа LayerZero. По сути, это создает полностью связанную сеть, где каждый узел имеет прямое соединение с каждым другим узлом. С помощью небольшого объема кода, поддерживается любая блокчейн. В разделе 5 продемонстрирован этот процесс на примере реализации LayerZero на блокчейне Ethereum.
Возможность выполнять межцепочечные транзакции напрямую с любой другой цепочкой в сети открывает возможности для класса масштабных приложений, которые ранее были невозможны, таких как межцепочечные децентрализованные биржи, агрегаторы доходности на нескольких цепочках и межцепочечное кредитование. Раздел 6 подробно рассматривает несколько таких приложений. С помощью LayerZero пользователи могут свободно перемещать ликвидность между цепочками, позволяя использовать единственный пул ликвидности в нескольких децентрализованных финансовых (DeFi) приложениях на разных цепочках и экосистемах, не прибегая к системам третьих сторон или промежуточным токенам.

2 Основные сведения

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

2.1 Связанные работы

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

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

Ethereum 2.0 представляет собой набор предлагаемых улучшений, которые направлены на решение проблем масштабируемости, безопасности и устойчивости Ethereum. Ethereum 2.0 вводит шардовые цепочки, которые распределяют нагрузку, вместо концентрации всех транзакций на перегруженной основной цепочке Ethereum. Переход от механизма proof-of-work к proof-of-stake устраняет возможность атаки на 51% и снижает энергозатраты на транзакцию. Эти усовершенствования в значительной степени не связаны с LayerZero, за исключением того, что они обязательно повысят популярность Ethereum, создавая ещё больший спрос на удобное и недорогое межцепочечное взаимодействие.

Polygon, ранее известный как Matic Network, является сетью Layer 2, которая решает проблемы пропускной способности и суверенитета Ethereum. Несмотря на то, что Ethereum является самой популярной платформой для разработки блокчейнов, у него наблюдается низкая пропускная способность [10], что делает его неподходящим для некоторых приложений. Polygon предоставляет специализированные боковые цепочки, совместимые с Ethereum, которые объединяют масштабируемость и независимость отдельных цепочек с сообществом и безопасностью Ethereum. Специализированные или высокопропускные приложения могут работать на этих боковых цепочках и периодически сливаться обратно на основную цепочку Ethereum. Кроме этого, LayerZero является нижним уровнем платформы, который обеспечивает прямую межцепочечную коммуникацию и может использоваться для облегчения переводов обратно на цепочку Ethereum без сложностей протокола Polygon.

Polkadot является ранним примером потенциала открытой экосистемы межцепочечного взаимодействия. В Polkadot множество цепочек, специализированных для определенных областей ("парачейны"), соединены общей промежуточной цепочкой, которая обеспечивает поток токенов и данных между ними. Однако, межцепочечная коммуникация всегда проходит через эту промежуточную цепочку, что приводит к дополнительным затратам. LayerZero предоставляет ту же низкоуровневую платформу коммуникации, что и Polkadot, без необходимости дополнительных транзакций, вызванных промежуточным центральным звеном.

THORChain - это децентрализованная биржа (DEX), которая использует пулы ликвидности для передачи токенов между сторонними цепочками. Каждый пул ликвидности связывает определенную стороннюю валюту с внутренним токеном THORChain, называемым RUNE, который действует как общее средство обмена. Однако, использование этого общего средства обмена делает процесс транзакции в THORChain сложным и громоздким. LayerZero предоставляет прямую межцепочечную коммуникацию без проблем масштабируемости, связанных с THORChain, без использования громоздкой промежуточной валюты или тяжеловесного протокола.

AnySwap - это DEX, ориентированный на удобный обмен токенами парами, подобно THORChain. AnySwap использует промежуточный токен, ANY, основанный на системе управления распределенными правами Fusion. Как и в случае с THORChain, использование промежуточного токена ANY приводит к нежелательным затратам, задержкам и дополнительным комиссиям за перевод.

Cosmos - это технология блокчейн-сети, которая позволяет отправлять произвольные сообщения между поддерживаемыми цепочками. Cosmos включает протокол межблокчейнового взаимодействия (IBC), построенный на базе алгоритма Tendermint BFT, чтобы обеспечить обмен сообщениями между цепочками, построенными на основе Cosmos Hub. Cosmos отличается от LayerZero двумя ключевыми аспектами: (1) IBC запускает полноценный легкий узел на цепочке, и (2) IBC обеспечивает только прямую коммуникацию между цепочками с быстрым окончательным подтверждением. Ограничения IBC, включая использование промежуточной цепочки для обеспечения консенсуса, делают его более похожим на Anyswap, THORChain или Polkadot, чем на общий уровень коммуникации, подобный LayerZero. Кроме того, Cosmos предоставляет DEX с аналогичными свойствами, как Anyswap или THORChain, называемым Gravity Bridge. В отличие от Cosmos и IBC, LayerZero обеспечивает надежную межцепочечную коммуникацию и может быть расширен для работы на любой цепочке, включая те, которые обеспечивают вероятностное окончательное подтверждение, такие как Ethereum и Bitcoin.

Chainlink - это фреймворк для создания и подключения к децентрализованным сетям оракулов (DONs). В то время как смарт-контракты недоступны для вмешательства, их он-чейновая природа препятствует основной связности, необходимой для их широкого принятия: смарт-контракт не может получать внешние данные, необходимые для его выполнения, такие как цены на акции, измерения устройств IoT и результаты безопасных вычислений вне цепочки. DON распространяет свойство недоступности для вмешательства смарт-контракта на источники данных и внешние ресурсы, от которых контракт зависит, без доверия к какому-либо центральному субъекту. В DON смарт-контракт пользователя отправляет запрос на цепочку к смарт-контракту интерфейса Chainlink, который публикует событие на нескольких отдельных узлах оракула. Каждый узел оракула запрашивает информацию у нескольких источников данных, агрегирует ее, фильтрует ошибочные или вредоносные источники и при необходимости выполняет надежные вычисления на данных. Узлы оракула отвечают смарт-контракту интерфейса Chainlink, который выполняет второй уровень агрегации для фильтрации ошибочных или вредоносных оракулов. Это двухуровневое фильтрование гарантирует доверие к окончательным данным, не требуя доверия к отдельному оракулу или источнику данных. В результате Chainlink обеспечивает надежную сеть для получения информации, а также безопасное решение для вычислений вне цепочки, которое широко используется в индустрии. Используя фреймворк DON Chainlink, протокол LayerZero получает возможность обеспечить бездоверительную доставку сообщений между различными цепочками.

Рисунок 3: LayerZero является строительным блоком для межцепочечных приложений. На этой схеме показаны архитектурные отличия между централизованной биржей, децентрализованной биржей и межцепочечным мостом, построенным с использованием LayerZero в качестве основного коммуникационного примитива.

2.2 LayerZero на практике

Разработчики могут использовать LayerZero для создания сложных межцепочечных приложений, не отказываясь от доверительности или введения сложных промежуточных цепочек/смарт-контрактов.
На рисунке 3 показана функциональность LayerZero в контексте создания биржи.
Централизованная биржа, изображенная слева, требует от пользователей внести свои токены на депозит к центральному доверенному органу, который ведет учет этого депозита вне цепочки и выдает монеты на других цепочках по запросу пользователя. Полагаться на этот орган противоречит самой цели использования блокчейна, что привело к появлению децентрализованных бирж.

Центральная диаграмма показывает, на высоком уровне, как работает типичная децентрализованная биржа. Путем использования смарт-контракта, управляемого протоколом согласования, для облегчения автоматического выпуска монет на цепочке B, DEX-ы могут преодолеть необходимость в централизованном, доверенном промежуточном звене вне цепочки. Однако, одно из основных ограничений состоит в том, что DEX-ы используют промежуточный токен и промежуточную цепочку, и выпускают только промежуточный или обернутый токен на цепочке B, а не фактический токен, который хочет пользователь. Затем пользователь должен обменять промежуточный токен (например, RUNE) или обернутый токен (например, ANY) на желаемый токен в дополнительной транзакции. Этот промежуточный/обернутый токен, вторая транзакция, а также промежуточная цепочка - все это излишние накладные расходы для того, что идеально должна быть одна безшовная транзакция. Правая часть рисунка 3 показывает, каким будет обмен, построенный на LayerZero. Цепочка A может инициировать единственную межцепочечную транзакцию, которая облегчает локальную транзакцию на цепочке A и уведомляет приложение на цепочке B, что они могут безопасно предоставить токен пользователю. В этом приложении LayerZero обеспечивает чистый и минимальный обмен в рамках одной транзакции, который не включает промежуточные токены. Фактический протокол обмена обрабатывается смарт-контрактами на обеих сторонах межцепочечной транзакции, а LayerZero доставляет сообщения между ними. Это предоставляет большую гибкость и следует принципу end-to-end, при котором большая часть логики обмена на высоком уровне обрабатывается смарт-контрактами на исходной и целевой цепочках.

3. Валидная доставка

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

  1. Каждое сообщение m, отправленное по сети, связано с транзакцией t на цепочке отправителя.
  2. Сообщение m доставляется получателю только в том случае, если связанная с ним транзакция t является действительной и была подтверждена на цепочке отправителя.

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

Альтернативой использованию централизованной биржи является децентрализованная биржа, такая как THORChain или AnySwap. Все существующие децентрализованные биржи используют промежуточный токен, такой как RUNE в случае THORChain или ANY в случае AnySwap, в качестве транзакции t. Поскольку эти промежуточные токены управляются соответствующими протоколами каждой децентрализованной биржи, децентрализованная биржа может гарантировать валидную доставку, так как злоумышленник не может подделать промежуточный токен. Существующие решения децентрализованных бирж не являются идеальными, поскольку они включают две промежуточные транзакции - одну для преобразования токена отправителя в промежуточный токен и одну для преобразования промежуточного токена в желаемый «реальный» токен на цепочке получателя. Кроме того, необходимо, чтобы пользователь полностью доверял промежуточному слою согласования, подтверждающему транзакцию на исходной цепочке и передающему намерение создания токена на целевой цепочке. Хотя существующие биржи позволяют осуществлять межцепочечный перевод токенов, это происходит за счет избыточной сложности и затрат. Недостатки этого подхода проявляются в том, что межцепочечные приложения не получили широкого распространения. Идеальным решением проблемы межцепочечных транзакций является использование единственной транзакции между цепочками без участия доверенной посреднической структуры - с другими словами, бездоверительная валидная доставка. В нашей работе мы реализуем универсальный протокол обмена сообщениями, который обеспечивает бездоверительную валидную доставку произвольных пользовательских данных, а не только токенов. Децентрализованные биржи или другие DeFi-приложения будут реализованы с использованием нашего примитива обмена сообщениями для осуществления межцепочечных транзакций, и гибкость, обеспечиваемая низкоуровневым протоколом обмена сообщениями, позволяет высокоуровневым приложениям реализовать широкий спектр ранее невозможных функций.

4 Дизайн

Основой LayerZero является протокол обмена сообщениями, который обеспечивает бездоверительную валидную доставку. Наш протокол построен на ряде компонентов, описанных в разделе 4.1. Мы обсуждаем поток обмена сообщениями в протоколе передачи в разделе 4.2, описываем, как LayerZero достигает валидной доставки без участия доверенных посреднических служб, в разделе 4.3, и представляем нашу новаторскую разработку низкозатратного конечной точки легкого клиента на основе смарт-контрактов в разделе 4.4.

4.1 Компоненты LayerZero

LayerZero Endpoint - это интерфейс, предназначенный для пользователей. Каждая цепочка в сети LayerZero имеет одну конечную точку LayerZero, реализованную в виде серии смарт-контрактов внутри цепочки. Цель конечной точки LayerZero - позволить пользователю отправить сообщение с использованием протокола LayerZero, гарантируя его валидную доставку.
Конечная точка LayerZero разделена на четыре модуля: Коммуникатор, Валидатор, Сеть и Библиотеки. Модули Коммуникатор, Валидатор и Сеть составляют основной функционал конечной точки (Рисунок 4), а каждая новая цепочка, поддерживаемая LayerZero, добавляется в виде дополнительной библиотеки. Этот дизайн позволяет добавлять поддержку новых цепочек, не изменяя трех основных модулей. Мы объясним функции каждого модуля в разделе 4.4.
Оракул - это сторонний сервис, который обеспечивает механизм для чтения заголовка блока с одной цепочки и отправки его на другую цепочку, независимо от других компонентов LayerZero. В теории, это может быть любой сторонний сервис, предоставляющий такой механизм, но на практике мы планируем использовать Chainlink, который является ведущим представителем децентрализованных сетей оракулов в современной индустрии.

Relayer - это оффчейн сервис, выполняющий функции, аналогичные Оракулу, но вместо получения заголовков блоков получает доказательства для указанной транзакции. Для обеспечения валидной доставки единственным требованием является то, что для любого отправленного сообщения с использованием протокола LayerZero Оракул и Релейер должны быть независимы друг от друга. Сам протокол не требует конкретной реализации Релейера, и в теории пользователи LayerZero могут даже реализовать свой собственный сервис Релейера. Такой дизайн позволяет пользователям быть уверенными в том, что Релейер не может сговориться с Оракулом, и именно эта независимость позволяет нам реализовать бездоверительную валидную доставку, как показано в разделе 4.3. На практике сервис Релейера предоставляется LayerZero, в то время как Оракулом занимается децентрализованная сеть оракулов Chainlink и связанные с ней механизмы согласования.

Рисунок 4: Поток обмена сообщениями в отдельной межцепочечной транзакции LayerZero

4.2 Протокол LayerZero

На рисунке 4 показаны этапы, необходимые для валидной доставки одного сообщения с использованием протокола LayerZero. Каждое обведенное число на рисунке представляет собой шаг протокола и соответствует пункту в данном разделе. В этом разделе мы пройдемся по примеру отправки одного сообщения пользовательским приложением на цепочке A пользовательскому приложению на цепочке B через LayerZero. В разделе 5 мы описываем, как различные компоненты и шаги протокола реализуются в случае отправки сообщений между двумя виртуальными машинами Ethereum.

Шаг 1: Пользовательское приложение на цепочке A (App A) выполняет некоторую серию действий в рамках транзакции T. Мы уникально идентифицируем транзакцию T с помощью идентификатора транзакции t - формат этого идентификатора может варьироваться в зависимости от типа цепочки A. В рамках транзакции T включен шаг передачи сообщения по LayerZero с валидной доставкой, связанной с T. В качестве иллюстрации и без потери общности, мы предполагаем, что в этом сценарии App A использует нашу референсную Relayer. App A отправляет запрос в LayerZero Communicator, содержащий следующую информацию:

- t: Уникальный идентификатор транзакции для T.
- dst: Глобальный идентификатор, указывающий на смарт-контракт на цепочке B.
- payload: Любые данные, которые App A хочет отправить App B.
- relayer args: Аргументы, описывающие информацию о платеже в случае, если App A хочет использовать референсную Relayer.

Шаг 2: Communicator строит пакет LayerZero, содержащий dst и payload, который называется Packet(dst, payload), и отправляет его вместе с t и relayer args в Validator.

Шаг 3: Validator отправляет t и dst в Network. Этот шаг уведомляет Network о необходимости отправки блочного заголовка текущего блока на цепочке A на цепочку B.

Шаг 4: Validator передает Packet(dst, payload), t и relayer args в Relayer, уведомляя Relayer о необходимости предварительной загрузки и, в конечном итоге, отправки доказательства транзакции для T на цепочку B. Это происходит параллельно с Шагом 3.

Шаг 5: Network отправляет dst и идентификатор текущей транзакции блока (cur blk id) в Oracle. Это уведомляет Oracle о необходимости получения блочного заголовка текущего блока на цепочке A и его отправки на цепочку B. В случае, если несколько транзакций LayerZero произошли в одном блоке, Шаг 5 выполняется только один раз.

Шаг 6: Oracle считывает блочный заголовок (blk hdr) с цепочки A.

Шаг 7: Relayer считывает доказательство транзакции, связанное с транзакцией T (proof(t)), с цепочки A и сохраняет его за пределами цепочки. Шаги 6 и 7 происходят асинхронно друг другу.

Шаг 8: Oracle подтверждает, что блок, соответствующий blk hdr, надежно зафиксирован на цепочке A, а затем отправляет blk hdr в Network на цепочке B. Механизм определения этого может отличаться в зависимости от цепочки, но обычно включает ожидание некоторого количества подтверждений блоков.

Шаг 9: Network отправляет хэш блока, обозначенный как blk hdr hash, в Validator.

Шаг 10: Validator передает blk hdr hash в Relayer.

Шаг 11: После получения blk hdr hash, Relayer отправляет список пар (Packet(dst, payload), t, proof(t)), соответствующих текущему блоку. В случае, если несколько пользователей одновременно отправляют сообщения между теми же конечными точками, может быть несколько пакетов и связанных с ними доказательств транзакций в одном блоке.

Шаг 12: Validator использует полученные доказательства транзакций вместе с блочными заголовками, хранящимися в Network, для проверки того, является ли связанная транзакция T действительной и зафиксированной. Если блочный заголовок и доказательство транзакции не совпадают, то сообщение отбрасывается. Если они совпадают, то Packet(dst, payload) отправляется в Communicator.

Шаг 13: Communicator отправляет Packet(dst, payload) в App B.

4.3 Достижение безопасной доставки без доверия

Безопасность отсутствия доверия: В основе дизайна LayerZero лежит идея, что пользователь не должен доверять компонентам LayerZero. Вместо требования доверия, что является сильным условием, мы требуем только слабого условия независимости между Oracle и Relayer. Это требование независимости, а не доверия, является одним из аспектов, позволяющих LayerZero быть эффективным и легким. Если между Oracle и Relayer нет злонамеренного сговора, то LayerZero гарантирует безопасную доставку.

Безопасная доставка: Согласно протоколу LayerZero, представленному в разделе 4.2, сообщение m доставляется Communicator'ом в пользовательское приложение только в том случае, если доказательство транзакции для транзакции t, связанной с m, может быть проверено на шаге 12. Этот шаг проверки будет успешным только в следующих двух сценариях:

  1. Блочный заголовок, предоставленный Oracle, и доказательство транзакции, предоставленное Relayer, являются действительными.
  2. Блочный заголовок, предоставленный Oracle, и доказательство транзакции, предоставленное Relayer, являются недействительными, но по-прежнему совпадают.

Сценарий 2 может произойти только в случае сговора между Oracle и Relayer, так как статистически невозможно отправить доказательство транзакции, которое может быть проверено по блочному заголовку, без знания этого конкретного блочного заголовка и наоборот. Однако дизайн LayerZero исключает возможность сговора, как описано в разделе 1. Таким образом, если сообщение доставлено в пользовательское приложение на стороне получателя, это гарантирует соответствие свойствам безопасной доставки.

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

4.4 Конечная точка LayerZero

Конечная точка LayerZero в настоящее время реализована в виде серии смарт-контрактов на каждой цепочке, включенной в сеть LayerZero. Основные функции конечной точки LayerZero инкапсулированы в трех модулях: Communicator, Validator и Network. Эти модули действуют аналогично сетевому стеку, где сообщения передаются вниз по стеку на стороне отправителя (Communicator -> Validator -> Network), а затем передаются вверх по стеку на стороне получателя.

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

4.5 Масштабируемость стоимости конечной точки LayerZero

Как многие читатели, вероятно, заметят, выполнение смарт-контрактов на цепочках уровня 1 может быть слишком дорогостоящим, особенно при увеличении объема хранимых данных. Чтобы сделать конечную точку LayerZero практической, нам было необходимо разработать наиболее легкий клиент. Ранее проводившиеся исследования по доверительной проверке межцепочечной валидации с использованием репликации состояния межцепочечной машины (SMR), например, Golden Gate, могли потреблять миллионы долларов в день для работы на популярных цепочках уровня 1, таких как Ethereum.

Чтобы решить эту проблему, мы начали разрабатывать наиболее легкий клиент. Наше ключевое наблюдение заключается в том, что репликация и хранение заголовков блоков в клиенте не является необходимым. Вместо этого мы делегируем задачу получения необходимых межцепочечных заголовков и доказательств транзакций внешним сущностям: Оракулу и Релееру. Это делает конечные точки LayerZero невероятно легкими, что делает их экономически эффективными даже на известно дорогостоящих цепочках, таких как Ethereum.

Рисунок 5: Схема расположения пакетов LayerZero для конечных точек EVM

5 Исследование: LayerZero на EVM

В данном разделе мы кратко описываем детали реализации поддержки LayerZero на Ethereum Virtual Machines (EVM). В целях краткости мы фокусируемся на аспектах системы, реализация которых, вероятно, будет различаться для каждой цепочки, и подчеркиваем, как наша реализация обрабатывает специфические требования цепочки Ethereum. Как упоминалось в разделе 4.1, текущая версия LayerZero полагается на Chainlink для предоставления услуги Oracle и ожидает, что пользователи будут использовать предоставляемую нами услугу Relayer.

Пакет LayerZero: Формат пакета LayerZero будет меняться в зависимости от исходной и целевой цепочек. В Figure 5 показан точный макет пакета LayerZero для EVM-узлов. Каждое поле функционирует следующим образом:

  • Chain ID - уникальный идентификатор для каждой цепочки в сети LayerZero.
  • Адрес - адрес смарт - контракта-получателя на целевой цепочке.
  • Аргумент пользователя (0-N) - данные, отправляемые пользовательским приложением, от 0 до N байтов. В среде EVM это может содержать до N байтов аргумента.

Стабильность транзакции на исходной цепочке: Для обеспечения стабильности транзакции сообщения на исходной цепочке мы полагаемся на внутренние свойства децентрализованных сетей оракулов - оракул будет уведомлять целевую цепочку о заголовке блока только после получения определенного количества подтверждений блока, которое в случае Ethereum составляет 15. Точнее говоря, Шаг 8 протокола LayerZero (раздел 4.2) будет выполнен только после того, как оракул получит 15 подтверждений блока на цепочке A.
Endpoint LayerZero: Мы реализуем LayerZero Endpoint в виде серии смарт-контрактов, состоящих из четырех основных модулей, описанных в разделе 4.4. Для большинства существующих блокчейнов, включая блокчейн Ethereum, мы можем реализовать Communicator, Validator и Network как отдельные смарт-контракты. Однако такой дизайн не исключает возможности реализации LayerZero Endpoint на (будущих) цепочках с другими требованиями.
Ключевую роль в поддержке блокчейна Ethereum в данном исследовании играет компонент Library LayerZero Endpoint. Мы реализуем библиотеку для обработки EVM-специфичного пакета LayerZero, показанного на рисунке 5, и обработки кодирования и декодирования информации о адресе смарт-контракта EVM.
Дополнительной ответственностью библиотеки является обработка фактических вычислений, связанных с проверкой доказательства транзакции. Наша библиотека EVM обрабатывает проверку дерева Меркла-Патриции для транзакций на блоке EVM, которую мы основываем на открытом исходном коде реализации Golden Gate.

6 Приложения на LayerZero

Кросс-чейн децентрализованная биржа: Как было кратко описано в разделе 2.2, LayerZero позволяет создавать кросс-чейн DEX (кросс-чейн мост), работающий исключительно с нативными активами. В отличие от существующих проектов DEX, которые выпускают обернутые токены или используют промежуточные побочные цепочки, DEX, построенный с использованием LayerZero для передачи сообщений между цепочками, может быть создан таким образом, что пулы ликвидности существуют на обеих цепочках, и пользователи могут просто внести свои нативные активы в один пул и вывести нативные активы из другого. Примитив сообщений LayerZero достаточно мощный, чтобы обеспечить прямые мосты (ценообразование 1:1), автоматизированное создание рынка (ценообразование ab = k) и любые другие производные (например, аналогичные ценообразованию Curve DAO). Гарантия валидной доставки, которую предоставляет LayerZero, позволяет реализовать широкий спектр децентрализованных биржевых приложений.

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

Мульти-чейн кредитование: В настоящее время пользователи не имеют простого способа воспользоваться возможностями на цепочках, где у них нет активов. Например, предположим, что пользователь, у которого активы сосредоточены в ETH, хочет воспользоваться возможностью на Polygon. Его выбор ограничивается либо (1) переводом всей базы активов на другую цепочку и их конвертацией в нужную валюту, либо (2) предоставлением своих активов в займы на Ethereum, займом желаемого актива, а затем мостом этого актива на целевую цепочку. LayerZero позволяет создать протокол кредитования, который позволит пользователю оставить свою базу активов на Ethereum, предоставить их в займы, а затем получить займ непосредственно в MATIC на Polygon. Это позволяет избежать дополнительных затрат, таких как комиссии за мост и обмен.

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

7 Заключение

В данной статье был представлен дизайн и реализация LayerZero - первой доверительной платформы для межцепной взаимодействия, которая не требует промежуточных транзакций. Мы показали, что, используя два независимых недоверенных внешних элемента - Oracle и Relayer, LayerZero может обеспечить валидную доставку без необходимости затрат на репликацию состояния межцепочечной машины или использования промежуточных токенов. Наш протокол разработан таким образом, чтобы не исключать использование произвольных служб Relayer, что гарантирует отсутствие сговора между Relayer и Oracle. Протокол LayerZero позволяет осуществлять нативные транзакции между поддерживаемыми цепочками, а новый дизайн LayerZero Endpoint может легко расширяться для поддержки любой цепочки. Кроме того, наш дизайн Endpoint достаточно легковесен, чтобы работать на дорогостоящих цепочках Layer 1, таких как Ethereum, без неоправданных затрат.
Мы представили пример внедрения поддержки EVM-основанных цепочек в LayerZero, используя референсную реализацию Relayer в сочетании с децентрализованной оракульной сетью Chainlink для обеспечения межцепных транзакций через LayerZero.
LayerZero является основой, которая свяжет различные отдельные экосистемы блокчейнов и позволит беспрепятственное перемещение ликвидности, данных и идей между цепочками и сообществами.

На этом всё. Спасибо за прочтение! Можете поддержать автора криптовалютой:
0x8A139Bd308f6Cf89C0a13F427Eede662802A73Bf - Ethereum
Так же подписывайтесь на лучший телеграмм канал о криптовалюте - https://t.me/finovision и на мой Twitter Account - https://twitter.com/dark_delarosa

Надеюсь данная статья была для вас полезна! До скорых встреч!!!