- Перевод
- Аннотация
- Введение
- Масштабируемые транзакции на L1
- Предыстория
- Схожие проекты
- LayerZero на практике
- Достоверная доставка
- Конструкция
- 4.1 Компоненты LayerZero
- 4.2 Протокол LayerZero
- 4.3 Обеспечение достоверной доставки без доверия
- 4.4 Конечная точка LayerZero
- 4.5 Масштабируемость затрат на конечные точки LayerZero
- Тематическое исследование: LayerZero на EVM
- Приложения на LayerZero
- Заключение
Перевод
Это вольный перевод: layerzero.network/pdf/LayerZero_Whitepaper_Release.pdf
Аннотация
Распространение (технологии) блокчейн предоставило разработчикам множество платформ, на которых можно запускать свои смарт-контракты, основываясь на особенностях приложения. Однако следствием этой свободы является сильная фрагментация: каждая цепочка является изолированной, заставляя пользователей изолировать свою ликвидность и ограничивая возможности перемещения ликвидности и состояния между замкнутыми в стенах экосистемы (приложениями).
В данной статье представлен LayerZero, первый протокол взаимодействия омничейн, не требующий доверия, который обеспечивает мощный низкоуровневый коммуникационный примитив, на основе которого может быть создан разнообразный набор межцепочечных приложений.
Используя этот новый примитив, разработчики могут реализовать бесшовные межцепочечные приложения, такие как кроссчейн DEX или мультичейн агрегаторы доходности без необходимости полагаться на доверенного хранителя и/или промежуточные транзакций.
Проще говоря, LayerZero — первая система, обеспечивающая прямые транзакции между всеми чейнами.
Позволяя транзакциям свободно перемещаться между цепочками, пользователи получают возможность консолидировать разрозненные очаги ликвидности и одновременно в полной мере использовать приложения на отдельных цепочках.
С помощью LayerZero мы предоставляем сетевую структуру, лежащую в основе полностью связанной омничейн-экосистемы будущего.
Введение
В основе концепции блокчейна лежат три столпа: 1) децентрализация, 2) прозрачность и 3) неизменяемость. При этом ни один субъект не контролирует блокчейн, а действия на блокчейне являются проверяемыми и необратимыми.
Эти столпы создают основу, на которой организация может действовать, не доверяя никакой другой организации.
Эта гарантия доверия — одна из причин, почему, например, криптовалюты привлекательны по сравнению с фиатной валютой. Если бы все пользователи и все приложения сосуществовали в одном едином блокчейне, то на этом можно было бы закончить данную статью. Если бы…
Масштабируемые транзакции на L1
Полезность блокчейна привела к появлению множества разнообразных приложений с уникальными особенностями и требованиями. Спрос на разнообразный набор функциональных возможностей подстегнул рост специализированных цепочек. Каждая из этих цепочек способствовала огромному росту приложений в рамках своей экосистемы, но изоляция между этими экосистемами стала ключевым ограничением для (массового) принятия.
Пользователи и разработчики вынуждены делить время, ресурсы и ликвидность между отдельными цепочками. Естественным следствием огромного количества так называемых блокчейнов уровня 1 (на момент написания статьи их было 109) является необходимость расширить вышеупомянутые три столпа чтобы охватить взаимодействие между несколькими цепочками одновременно.
Одним из примеров востребованного взаимодействия между цепочками является передача токенов, которую обсудим далее в этом разделе.
На языке блокчейна единицей работы является транзакция, неизменяемая и безотзывная. Транзакции, объединённые в блоки, составляют основу безопасности в блокчейн-системах. Однако транзакции всегда были концепцией одной цепи: как описано ниже, взаимодействие между цепочками традиционно требует стороннего механизм за пределами обычной криптосистемы блокчейна.
В отличие от этого, в данной статье описывается первый протокол обмена сообщениями. Протокол обмена сообщениями, на основе которого возможны межцепочечные транзакции: LayerZero.
Чтобы проиллюстрировать мощный коммуникационный примитив LayerZero, рассмотрим пример передачи токенов от одной цепи к другой.
В настоящее время для конвертации токенов двух цепочек, пользователь должен прибегнуть либо к централизованной бирже, либо к межцепочечной децентрализованной бирже (DEX) (также известной как межцепочечный (кроссчейн) мост: [Прим. Menaskop: такой подход — в корне не верен]) и в обоих случаях требуется компромисс.
В случае централизованной биржи, например, binance.com, пользователь должен доверять бирже, которая отслеживает депозиты и финансирует снятие средств. Такие доверительные отношения противоречат фундаментальной недоверчивости консенсуса блокчейна и не обладают безопасностью автоматизированной ончейн-системы.
Использование DEXs (в свою очередь), таких как AnySwap или THORChain, облегчает проблему доверия, проводя перевод ончейн, но существующие реализации DEX требуют преобразования пользовательского токена в специфический для протокола
токен, который проходит через их промежуточный уровень консенсуса для для достижения консенсуса транзакций. Этот промежуточный уровень консенсуса, хотя обычно и реализуется безопасным образом, требует от пользователя доверия к побочной цепи для для облегчения передачи токена.
Как покажем в этой статье, эта дополнительная нагрузка является избыточной.
Несмотря на большой спрос пользователей, до сих пор не появилось решения, которое было бы одновременно эффективным, прямым и при этом сохраняло бы основную причину использования блокчейн: отсутствие доверия.
Делая шаг назад, прямые межцепочечные транзакции LayerZero дают разработчикам инструменты для создания именно такого решения.
Важно отметить, что LayerZero и описанные выше обмены работают на двух разных уровнях стека реализации. LayerZero — коммуникационный примитив, который позволяет использовать различные приложения omnichain, в то время как мосты — это один из примеров приложений, которые выиграют от повторной реализации поверх LayerZero.
Чтобы правильно объяснить возможности LayerZero и его роль в экосистеме блокчейна, сначала представим формализацию фундаментального коммуникационного примитива, необходимого для обеспечения межцепочечных транзакций, который называем действительной доставкой (см. раздел 3). Затем опишем, как LayerZero обеспечивает этот примитив без доверия, сохраняя тем самым обещание безопасности блокчейна.
LayerZero — первый бездоверительный уровень совместимости омничейна, который поддерживает обмен сообщениями непосредственно между обеими цепочками.
Кроссчейн транзакция между цепочками A и B состоит из транзакции tA на A, протокола связи между A и B, и сообщения m.
Действительная доставка утверждает, что сообщение m будет доставлено тогда и только тогда, когда tA зафиксировано и действительно. Ключевая идея, лежащая в основе LayerZero, заключается в том, что если два независимых субъекта подтверждают действительность транзакции (в данном случае tA), то цепочка B может быть уверена, что tA действительна.
Учитывая двух субъектов, которые не сговариваются, если один субъект может создать заголовок блока для нужного блока, содержащего tA на цепочке A, а другой субъект может независимо создать доказательство для tA на этом блоке (доказательство транзакции), и заголовок — и доказательство транзакции (при этом) фактически согласуются, то конечная точка коммуникации достигается через смарт-контракт (в) LayerZero.
Протокол (коммуницирования) может доставить m клиенту на цепочке B с гарантией того, что tA стабильно фиксируется на цепочке A. Коммуникационный протокол LayerZero, описанный в Разделе 4, гарантирует, что транзакция на цепочке получателя будет сопряжена с действительной, зафиксированной транзакцией на цепочке отправителя без привлечения каких-либо промежуточных цепочки.
Мы достигаем этого путём объединения двух независимых сущностей: оракула, который предоставляет заголовок блока, и ретранслятора, который предоставляет доказательство, связанное с вышеупомянутой транзакцией.
Интерфейсом к LayerZero является лёгкий ончейн-клиент, который называем конечной точкой LayerZero. Одна конечная точка LayerZero существует в каждой (поддерживаемой) цепочке, и любая цепочка с конечной точкой LayerZero может проводить межцепочечные транзакции с участием любой другой цепи с конечной точкой LayerZero.
По сути, это создаёт полностью связанную сеть, где каждый узел имеет прямое соединение с каждым другим узлом. С небольшим кодовым шаблоном, поддерживается любой блокчейн. Раздел 5 демонстрирует этот процесс на примере реализации LayerZero на блокчейне Ethereum.
Возможность осуществлять межцепочечные транзакции напрямую с любой другой цепочкой в сети открывает возможность для целого класса крупномасштабных приложений, которые ранее были неосуществимы, таких как межцепочечные децентрализованные биржи, мультичейн агрегаторы доходности и кроссчейн кредитование.
В разделе 6 подробно рассматриваются несколько таких приложений. С помощью LayerZero пользователи могут свободно перемещать ликвидность между цепочками, что позволяет единому пулу ликвидности участвовать во множестве децентрализованных финансовых (DeFi) приложений в разных цепочках и экосистемах без необходимости проходить через сторонние системы или промежуточные токены.
Предыстория
Чтобы заложить основу для LayerZero, рассмотрим соответствующие существующие систем, чтобы проиллюстрировать, почему они не удовлетворяют требованиям новых приложений. Обсуждение завершается подробным объяснением преимуществ построения кроссчейн-обмена на базе LayerZero.
Схожие проекты
В этом разделе даётся представление о важных игроках в пространстве кроссчейн-взаимодействия, о том, почему они не соответствуют идеалам бездоверительной доставки достоверных данных, и о том, как LayerZero закрывает этот пробел.
Ethereum — самая популярная платформа для децентрализованных (финансовых) приложений, построенных с помощью смарт-контрактов. Ethereum расширяет лежащий в его основе блокчейн с помощью язык программирования, который позволяет библиотеке децентрализованных приложений использовать мощные свойства безопасности базовой цепи через удобную для разработчиков абстракцию.
Однако низкая скорость транзакций в базовом блокчейне, примерно 15-45 транзакций в секунду, оказалась серьёзным узким местом для масштабирования, что ограничивает популярность приложений, созданных непосредственно для работы в блокчейне. Из-за этой модели программирования и популярности многие методы кроссчейн-взаимодействия вращаются вокруг сопряжения сторонних цепочек с Ethereum.
LayerZero предоставляет возможность прямой передачи состояния в Ethereum и из Ethereum без посредника, позволяя пользователям и приложениям использовать стабильность и надёжность цепочки Ethereum без затрат и узких мест решений, описанных ниже.
ETH2.0 — набор предлагаемых обновлений для устранения недостатков масштабируемости, безопасности и устойчивости Ethereum. Ethereum 2.0 вводит цепочки шардов, которые распределяют нагрузку вместо того, чтобы концентрировать все транзакции на перегруженной главной цепочке Ethereum.
Переход от доказательства работы к доказательству доли устраняет возможность атаки 51% и снижает затраты энергии на каждую транзакцию. Эти достижения в значительной степени ортогональны к LayerZero, за исключением того, что они, несомненно, повысят популярность Ethereum, создавая ещё больший спрос на удобную и дешевую межцепочечную коммуникацию.
Polygon, бывшая Matic Network, — сеть второго уровня, которая решает проблемы пропускной способности Ethereum. Несмотря на то, что Ethereum является самой популярной платформой для разработки блокчейна, он страдает от низкой пропускной способности, что делает его непригодным для определённых приложений.
Polygon предлагает совместимые с Ethereum сайдчейны для конкретных приложений, которые сочетают масштабируемость и независимость отдельных цепочек с сообществом и безопасностью Ethereum.
Специализированные или требовательные к пропускной способности приложения работают на боковых цепочках и периодически консолидируются обратно в основную цепочку Ethereum.
В отличие от этого, LayerZero — платформа более низкого уровня, которая обеспечивает прямую межцепочечную связь и может использоваться для облегчения переводов обратно в цепочку Ethereum без сложностей протокола Polygon.
Polkadot — ранний пример потенциала открытой мультичейн-экосистемы. В Polkadot множество параллельных цепочек («парачейнов«), относящихся к конкретным областям, соединяются через общую ретрансляционную цепочку, которая позволяет передавать токены и данные между ними.
Однако межцепочечная связь всегда пересекает эту ретрансляционную цепочку, что влечёт за собой дополнительные расходы. LayerZero предоставляет низкоуровневую коммуникационную платформу Polkadot без дополнительных транзакций, необходимых для посредника на цепи.
THORChain — DEX, который использует парные пулы ликвидности для передачи токенов между сторонними цепочками.
Каждый пул ликвидности привязывает конкретную валюту третьей стороны к собственному токену THORChain под названием RUNE, который выступает в качестве общего средства обмена.
Без этого общего средства все пары валют нуждались бы в пулах ликвидности, а это значит, что количество пулов увеличивалось бы как квадратично. К сожалению, хотя RUNE и решает эту проблему масштабируемости, он является громоздким накладным элементом в процессе транзакции, который делает простую операцию довольно сложной. Это наглядно проявляется в сложности алгоритма транзакций THORChain.
LayerZero обеспечивает прямую межцепочечную связь без присущего THORChain узкого места масштабируемости, громоздкой промежуточной валюты или тяжеловесного протокола.
AnySwap — DEX, ориентированный на простой парный обмен токенами, аналогичный THORChain. AnySwap опирается на промежуточный токен ANY, основанный на распределённом управлении правами контроля Fusion. Как и в THORChain, использование промежуточного токена ANY влечёт за собой нежелательные накладные расходы, задержки и дополнительные комиссии за передачу.
Cosmos — технология мультичейна, которая позволяет отправлять произвольные сообщения между поддерживаемыми цепочками.
Cosmos включает в себя протокол межблокчейн-коммуникации (IBC), построенный на Tendermint BFT для облегчения обмена сообщениями между цепочками, построенными на Cosmos Hub.
Cosmos отличается от LayerZero двумя ключевыми моментами:
- IBC работает как полноценный узел ончейн-освещения;
- IBC обеспечивает только прямую связь между цепочками.
Эти ограничения IBC в сочетании с использованием промежуточной цепи для облегчения консенсуса делают его похожим на Anyswap, THORChain или Polkadot, а не на общий коммуникационный уровень, как LayerZero.
Cosmos также предоставляет DEX со свойствами, схожими с Anyswap или THORChain, под названием Gravity Bridge. В отличие от Cosmos и IBC, LayerZero обеспечивает бездоверительный обмен сообщениями в омничейне и может быть расширен для работы с любой цепочкой, включая те, которые обеспечивают вероятностно-финансовый характер, такие как Ethereum и Bitcoin.
Chainlink — основа для создания и подключения к децентрализованным сетям оракулов (DON, Decentralized Oracle Networks).
Хотя смарт-контракты защищены от взлома, их ончейн-природа препятствует базовому подключению, которое необходимо для их более широкого применения: смарт-контракт не может получить оффчейн-данные, необходимые для выполнения контракта, такие как цены на акции, измерения IoT-устройств и результаты безопасных оффчейн-вычислений.
DON распространяет свойство защиты смарт-контракта от взлома на источники данных и внешние ресурсы, от которых зависит контракт, не возлагая доверия на какую-либо центральную структуру.
В DON смарт-контракт пользователя делает ончейн-запрос к смарт-контракту интерфейса Chainlink, который посылает событие на множество отдельных узлов-оракулов. Каждый узел-оракул запрашивает множество источников данных для получения запрашиваемой информации, агрегирует её для фильтрации ошибочных и/или вредоносных источников и, по желанию, выполняет вычисления на основе данных с минимальным уровнем доверия.
Узлы оракула отвечают на контракт интерфейса Chainlink, который выполняет второй уровень агрегирования для фильтрации ошибочных или вредоносных оракулов. Такая двухуровневая фильтрация гарантирует доверие к конечным данным, не требуя доверия к какому-либо отдельному оракулу или источнику данных.
В результате Chainlink обеспечивает надёжную информационно-поисковую сеть, а также безопасное решение для оффчейн-вычислений, которое широко используется в отрасли. Применяя структуру Chainlink DON, протокол LayerZero получает возможность обеспечить бесперебойную доставку сообщений между разрозненными цепочками.
LayerZero на практике
Разработчики могут использовать LayerZero для создания сложных кроссчейн приложений без ущерба для надёжности и/или внедрения сложных промежуточных цепочек и смарт-контрактов.
Централизованная биржа , требует от пользователей депонировать свои токены в центральном доверенном органе, который затем отслеживает этот депозит оффчейн и предоставляет монеты на других цепях по запросу пользователя.
Доверие к этому органу противоречит цели использования блокчейна, что привело к появлению DEXs. Однако одно ключевое ограничение заключается в том, что
DEXs вовлекают промежуточный токен и промежуточную цепочку, и майнят только промежуточный или обёрнутый токен на цепочке B, а не фактический токен, который хочет получить пользователь. [Прим. Menaskop: мало того, что это касается лишь бирж-мостов, так ещё и решение этой проблемы уже найдено]. Затем пользователь должен обменять промежуточный токен (например, RUNE) или обёрнутый токен (например, ANY) на желаемый токен в дополнительной транзакции.
Этот промежуточный / обёрнутый токен, вторая транзакция, а также промежуточная цепочка — всё это ненужные накладные расходы на то, что в идеале должно быть единой бесшовной транзакцией.
Правая часть рисунка 3 показывает, как будет выглядеть биржа, построенная на основе LayerZero, с цепочкой A, способной инициировать единую межцепочечную транзакцию, которая облегчает локальную транзакцию на цепочке A и уведомляет приложение на цепочке B о том, что оно может безопасно предоставить транзакцию и выдать токен пользователю.
В этом приложении LayerZero обеспечивает чистый и минималистичный однотранзакционный обмен, который не включает никаких промежуточных токенов.
Фактический протокол обмена обрабатывается смарт-контрактами с обеих сторон кроссчейн-транзакции, а LayerZero доставляет сообщения между ними. Это обеспечивает большую гибкость и соответствует сквозному принципу.
Достоверная доставка
В этом разделе описываем фундаментальные свойства кроссчейн-коммуникации без доверия. Чтобы формально охарактеризовать проблему подтверждения транзакции на другой цепи, определим идею достоверной доставки.
Достоверная доставка — коммуникационный примитив, который обеспечивает кроссчейн-передачу токенов, предоставляя следующие гарантии:
- Каждое сообщение m, отправленное по сети, связано с транзакцией t на цепочке стороны отправителя;
- Сообщение m доставляется получателю тогда и только тогда, когда связанная с ним транзакция t действительна и была зафиксирована на цепочке со стороны отправителя.
Централизованные биржи гарантируют действительную доставку, поскольку соглашение между клиентом и биржей заключается в том, что клиент переводит свой токен из одной цепи в другую, а биржа, получив этот токен, выдаёт некий баланс (не криптовалюту). Этот некриптовалютный баланс затем может быть снят в любой доступной цепочке, что стало возможным благодаря широким пулам ликвидности, поддерживаемых биржей на каждой из поддерживаемых цепочек. Биржа выступает в качестве посредником в этой транзакции и пользователь должен доверять ей в выполнении своей части сделки.
Однако злонамеренная или скомпрометированная биржа может принять токены от клиента, выпустить баланс, а затем отказать в выводе этого баланса из другой цепи, что фактически есть кража токенов у пользователя.
Даже если пользователь готов доверять бирже, в последние годы было много успешных попыток взлома или компрометации криптовалютных бирж, поэтому пользователям лучше использовать решение которое не требует доверенного посредника.
На более высоком уровне, одним из основных принципов криптовалют является их независимость от централизованных организаций, таких как банки, поэтому полагаться на централизованную биржу не имеет смысла.
Альтернативой использованию централизованной биржи является децентрализованная биржа, такая как THORChain или AnySwap. Все существующие DEX используют токен-посредник, такой как RUNE в случае THORChain или ANY в случае AnySwap, в качестве транзакции t. Поскольку эти промежуточные токены управляются соответствующими протоколами каждого DEX, DEX может гарантировать действительную доставку, так как злоумышленник не может подделать промежуточный токен.
Существующие решения DEX не являются идеальными, поскольку они включают в себя две промежуточные транзакции — одна для преобразования токена отправителя в токен посредника и вторая для преобразования токена посредника в желаемый «настоящий» токен в цепочке получателя.
Кроме того, необходимо, чтобы пользователь полностью доверял промежуточному уровню консенсуса, который подтверждает транзакцию на исходной цепи и передаёт намерение “майнить” токен на цепь назначения. Хотя существующие биржи позволяют осуществлять межцепочечную передачу токенов, они делают это ценой излишней сложности и затрат.
Недостатки этого очевидны: межцепочечные приложения не получили широкого распространения.
Идеальным решением проблемы межцепочечных транзакций является такое, которое использует одну транзакцию обмена между цепочками без привлечения доверенного посредника — иными словами, бездоверительная действительная доставка.
В нашей работе мы реализуем общий протокол обмена сообщениями, который обеспечивает надёжную доставку произвольных пользовательских данных, а не только токенов.
DEXs или другие приложения DeFi могут быть реализованы с использованием нашего примитива обмена сообщениями для обеспечения межцепочечных транзакций, а степень гибкости, обеспечиваемая низкоуровневым протоколом обмена сообщениями, позволяет приложениям более высокого уровня реализовать широкий спектр ранее невозможных функций.
Конструкция
Ядром LayerZero является коммуникационный протокол, обеспечивающий беспричинную доставку достоверных сообщений. Наш протокол построен на ряде компонентов, представленных в разделе 4.1. В разделе 4.2 обсудим коммуникационный поток протокола передачи данных, в разделе 4.3 опишем, как LayerZero может достичь действительной доставки без привлечения доверенных посреднических служб, а в разделе 4.4 представим наш новый дизайн для недорогой конечной точки легкого клиента на основе смарт-контракта.
4.1 Компоненты LayerZero
Конечные точки LayerZero являются интерфейсом для пользователя к LayerZero.
Каждая цепочка в сети LayerZero имеет одну конечную точку LayerZero, реализованную в виде серии ончейн смарт-контрактов.
Цель конечной точки — позволить пользователю отправить сообщение, используя протокол LayerZero, гарантируя достоверную доставку.
Конечная точка LayerZero состоит из четырёх модулей:
- Коммуникатор
- Валидатор
- Сеть
- Библиотеки
Рисунок №4:
На сайте Модули Communicator, Validator и Network составляют основную функциональность конечной точки (Рисунок 4), в то время как каждая новая цепочка, поддерживаемая LayerZero, добавляется в качестве дополнительной Библиотеки.
Такая конструкция позволяет нам добавлять поддержку новых цепочек без изменения трёх основных модулей. Мы объясним функции каждого модуля в Разделе 4.4.
Оракул — сторонний сервис, который предоставляет механизм, позволяющий независимо от других компонентов LayerZero считывать заголовок блока из одной цепи и отправлять его в другую цепь. Теоретически, таким оракулом может быть любой сторонний сервис, предоставляющий такой механизм, но на практике предполагаем использовать Chainlink, который в настоящее время является лидером в области децентрализованных сетей оракулов.
Ретранслятор — оффчейн-сервис, который по функциям похож на оракул, но вместо получения заголовков блоков он получает доказательства для определённой транзакции. Для обеспечения достоверной доставки единственным требованием является то, что для любого конкретного сообщения, отправленного по протоколу LayerZero, оракул и ретранслятор должны быть независимы друг от друга.
Сам протокол не требует какой-либо конкретной реализации ретранслятора и теоретически пользователи LayerZero могут даже реализовать свою собственную службу ретранслятора. Такая конструкция позволяет пользователям быть уверенными в том, что ретранслятор не может вступить в сговор с Oracle, и именно эта независимость позволяет нам реализовать бездоверительную подтвержденную доставку, как показано в разделе 4.3.
На практике LayerZero предоставляет услугу Relayer, а Oracle обрабатывается децентрализованной сетью оракулов Chainlink и соответствующими механизмами консенсуса.
4.2 Протокол LayerZero
Рисунок 4 иллюстрирует шаги, связанные с действительной доставкой одного сообщения LayerZero. Каждая обведённая цифра на рисунке представляет собой шаг протокола и соответствует параграфу в этом разделе.
В этом разделе рассматривается пример, когда пользовательское приложение на цепи A посылает одно сообщение пользовательскому приложению в цепи B через LayerZero.
В разделе 5 опишем, как различные компоненты и шаги протокола реализуются в случае отправки сообщений между двумя виртуальными машинами Ethereum.
Шаг 1: пользовательское приложение на цепочке A (App A) выполняет ряд действий в рамках транзакции T. Мы однозначно идентифицируем транзакцию T по идентификатору транзакции t — формат этого идентификатора может варьироваться в зависимости от типа цепочки A. Шаг, включённый в транзакцию T, — это передача сообщения через LayerZero с действительной доставкой, обусловленной T.
Для иллюстрации и без потери общности предполагаем, что в этом сценарии приложение A использует наш эталонный ретранслятор.
Приложение A отправляет запрос на коммуникатор LayerZero, содержащий следующую информацию:
- t: Уникальный идентификатор транзакции T.
- dst: Глобальный идентификатор, указывающий на смарт-контракт в цепочке B
- полезная нагрузка: любые данные, которые приложение A хочет отправить приложению B.
- аргументы ретранслятора: аргументы, описывающие платёжную информацию в случае, если приложение A хочет использовать ретранслятор ссылок.
Шаг 2: коммуникатор формирует пакет LayerZero, содержащий dst и полезную нагрузку, называемый Packet(dst, payload), и отправляет его вместе с t и relayer args на Validator.
Шаг 3: удостоверяющий отправляет t и dst в сеть. Этот шаг уведомляет сеть о том, что заголовок блока для текущего блока в цепи A должен быть отправлен в цепь B.
Шаг 4: валидатор передаёт Packet(dst, payload), t и relayer args ретранслятору, уведомляя ретранслятор о том, что доказательство транзакции для T должно быть пре-получено и в конечном итоге отправлено в цепочку B. Это происходит одновременно с шагом 3.
Шаг 5: сеть отправляет dst и идентификатор блока текущей транзакции (cur blk id) Оракулу. Это уведомляет Oracle о необходимости получить заголовок блока для текущего блока в цепи A и отправить его в цепь B. В случае, если в одном блоке произошло несколько транзакций LayerZero, Шаг 5 выполняется только один раз.
Шаг 6: oracle считывает заголовок блока (blk hdr) из цепочки A.
Шаг 7: ретранслятор считывает доказательство транзакции, связанной с транзакцией T (proof(t)), из цепочки A и сохраняет его, если оно находится вне цепочки. Шаги 6 и 7 выполняются асинхронно друг другу.
Шаг 8: оракул подтверждает, что блок, соответствующий blk hdr, стабильно зафиксирован на цепочке A и затем отправляет blk hdr в Сеть на цепочке В. Механизм определения момента, когда это произойдет, зависит от цепочки, но обычно включает в себя ожидание некоторого количества подтверждений блока.
Шаг 9: сеть отправляет хэш блока, указанный как хэш blk hdr, валидатору.
Шаг 10: валидатор пересылает хэш blk hdr в адрес ретранслятору.
Шаг 11: после получения хэша blk hdr, ретранслятор отправляет список любых кортежей Packet(dst, payload), t, proof(t) кортежей, которые соответствуют текущему блоку. Если несколько пользователей одновременно отправляют сообщения между одними и теми же конечными точками, в одном блоке может быть несколько пакетов и связанных с ними доказательств транзакций.
Шаг 12: валидатор использует полученные доказательства транзакций доказательства транзакций в сочетании с заголовками блоков, сохранёнными в Сети для проверки того, является ли связанная транзакция T действительна и зафиксирована. Если заголовок блока и доказательство транзакции не совпадают, то сообщение отбрасывается. Если они совпадают, то пакет(dst, полезная нагрузка) отправляется коммуникатору.
Шаг 13: Коммуникатор отправляет Packet(dst, полезная нагрузка) в приложение B.
4.3 Обеспечение достоверной доставки без доверия
Недоверие: в основе дизайна LayerZero лежит идея о том, что пользователю не нужно доверять компонентам LayerZero. Вместо того чтобы требовать доверия, которое является сильным условием, мы требуем только более слабое условие независимости между оракулом и ретранслятором.
Это требование независимости вместо доверия является одним из аспектов того, что позволяет LayerZero быть эффективным и лёгким.
До тех пор, пока между оракулом и ретранслятором нет злонамеренного сговора, LayerZero гарантирует достоверную доставку.
Действительная доставка: согласно протоколу LayerZero, показанному в разделе 4.2, сообщение m доставляется коммуникатором пользовательскому приложению тогда и только тогда, когда транзакция доказательство для транзакции t, связанной с m, может быть подтверждено на шаге 12. Этот шаг проверки будет успешным тогда и только тогда, когда заголовок блока и доказательство транзакции совпадают, что произойдёт только в следующих двух сценариях:
- Заголовок блока, предоставленный Оракулом, и доказательство транзакции, предоставленное ретранслятором, действительными.
- Заголовок блока, предоставленный Оракулом, и доказательство транзакции, предоставленное Ретранслятором, недействительны, но всё равно совпадают.
Сценарий 2 может произойти только в случае сговора между оракулом и ретранслятором, поскольку статистически невозможно отправить доказательство транзакции, которое может быть проверено по заголовку блока, не зная конкретного заголовка блока, и наоборот.
Однако конструкция LayerZero исключает [Прим. Menaskop: на самом деле — нет] возможность сговора, как описано в разделе 1.
Таким образом, если сообщение доставляется пользовательскому приложению на стороне получателя, оно гарантированно удовлетворяет свойствам действительной доставки.
Как указано в разделе 3, коммуникационный протокол, который может гарантировать бездоверительную действительную доставку, а именно действительную доставку без доверия к посредническим сущностям или токенам, является идеальным решением для обеспечения межцепочечных транзакций.
LayerZero является первой и единственной системой, которая доказала это свойство. Этот факт будет способствовать принятию пользователями LayerZero в качестве предпочтительного метода кроссчейн-обмена сообщениями.
4.4 Конечная точка LayerZero
В настоящее время конечная точка LayerZero реализована в виде серии смарт-контрактов на каждой цепочке, входящей в сеть LayerZero.
Основная функциональность конечной точки LayerZero Endpoint заключена в трёх модулях: Communication, Validation и Network. Эти модули действуют подобно сетевому стеку, при этом сообщения отправляются вниз по стеку на стороне отправителя: коммуникатор -> валидатор -> сеть, а затем вверх по стеку на стороне получателя.
В дополнение к основным модулям, LayerZero Endpoint может быть расширен с помощью библиотек, которые представляют собой вспомогательные смарт-контракты, определяющие, как должна обрабатываться коммуникация для конкретной цепочки.
Каждая цепочка в сети LayerZero имеет свою библиотеку, и каждая конечная точка включает в себя копию каждой библиотеки. Такая модульная конструкция позволяет быстро и легко расширить сеть LayerZero, чтобы включить в неё новые цепочки по требованию.
Кроме того, для связи между двумя цепочками требуется только наличие соответствующих библиотек на обоих концах, что делает LayerZero полностью связанной сетью с возможностью организации транзакций между любой парой узлов.
4.5 Масштабируемость затрат на конечные точки LayerZero
Как, вероятно, отмечают многие читатели, выполнение смарт-контрактов на цепочках первого уровня может оказаться дорогостоящим, особенно при увеличении объёма хранимых данных.
Чтобы сделать конечную точку LayerZero практичной, нам необходимо было разработать максимально лёгкий клиент. Предыдущие работы по недоверительной кроссчейн-валидации с помощью репликации машины состояний (SMR), такие как Golden Gate, могут стоить миллионы на популярных цепочках первого уровня, таких как Ethereum.
Наше ключевое наблюдение заключается в том, что в репликации и хранении заголовков блоков внутри клиента нет необходимости. Скорее, мы делегируем задачу получения необходимых межцепочечных заголовков и доказательств транзакций оффчейн сущностям: оракулу и ретранслятору. Это приводит к тому, что конечные точки LayerZero невероятно легки, что делает их экономически эффективными даже в таких печально известных дороговизной цепочках, как Ethereum.
Тематическое исследование: LayerZero на EVM
В этом разделе кратко описываем детали того, как реализовали поддержку запуска LayerZero на виртуальных машинах Ethereum (EVM). Для краткости же сосредоточимся на тех аспектах системы, реализация которых, вероятно, будет отличаться в зависимости от цепочки, и подчеркнём, как наша реализация справляется со специфическими требованиями цепочки Ethereum.
Как упоминалось в разделе 4.1, текущая версия LayerZero полагается на Chainlink для предоставления сервиса Oracle и ожидает, что пользователи будут использовать сервис Relayer, который предоставляем мы.
Рисунок №5:
Пакет LayerZero: формат пакета LayerZero будет отличаться в зависимости от источника и назначения цепочки. Мы проиллюстрировали точную схему пакета LayerZero для конечных точек EVM на рисунке 5. Каждое поле функционирует следующим образом:
- Идентификатор цепи :: Уникальный идентификатор для каждой цепочки в сети LayerZero);
- Адрес :: Адрес смарт-контракта-получателя в цепи назначения.
- User Arg :: Полезная нагрузка, отправляемая приложением пользователя 0 — N в EVM (может содержать до N байт аргумента).
Стабильность транзакции цепочки со стороны отправителя: для обеспечения стабильности транзакции ончейн-сообщения источника полагаемся на свойства, присущие децентрализованным сетям оракулов — оракул будет уведомлять цепочку назначения о конкретном заголовке блока только после того, как услышит некоторое количество подтверждений блока, которое в случае Ethereum равно 15. Точнее говоря, шаг 8 протокола LayerZero (раздел 4.2) будет выполнен только после того, как оракул получит 15 подтверждений блока на цепочке A.
Конечная точка LayerZero: мы реализуем конечную точку LayerZero в виде серии смарт-контрактов, состоящих из четырёх основных модулей, которые описали в разделе 4.4.
Для большинства существующих блокчейнов, включая блокчейн Ethereum, можем реализовать коммуникатор, валидатор и сеть в виде отдельных смарт-контрактов. Однако такая конструкция не исключает возможности реализации LayerZero Endpoint на (будущих) цепях с другими требованиями.
Компонент Library конечной точки LayerZero является ключевым для обеспечения поддержки блокчейна Ethereum в данном примере. Мы реализуем библиотеку для создания специфического для EVM пакета LayerZero, показанного на рисунке 5, а также для кодирования и декодирования адресной информации смарт-контрактов EVM.
Дополнительной обязанностью библиотеки является обработка фактические вычисления, связанные с проверкой доказательства транзакции. Наша библиотека EVM обрабатывает метод Меркл-древа для транзакций на EVM, и за основу мы взяли реализацию с открытым исходным кодом от Golden Gate.
Приложения на LayerZero
Межцепочечный децентрализованный обмен: как кратко описано выше, 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, разработчики смогут писать свои приложения, не беспокоясь о различиях в семантике межцепочечных и внутрицепочечных транзакций, и пользователи смогут свободно перемещать ликвидность между чейнами.
Заключение
В данной статье мы представили разработку и реализацию LayerZero, первой платформы для взаимодействия омничейнов без доверия, которая не предполагает никаких промежуточных транзакций.
Мы показали, что благодаря использованию двух независимых, недоверенных кроссчейн-сущностей, оракула и ретранслятора, LayerZero способен обеспечить достоверную доставку без необходимости дорогостоящей репликации кроссчейн-машины состояний или посреднических токенов.
Наш протокол разработан таким образом, что не исключает использование произвольных служб ретранслятора, что гарантирует отсутствие сговора между ретранслятором и оракулом.
Протокол LayerZero позволяет осуществлять собственные транзакции между поддерживаемыми цепочками, а новая конструкция конечной точки LayerZero может быть легко расширена для поддержки любой цепочки.
В дополнение к этому, наша конструкция конечной точки является достаточно лёгкой, чтобы работать на дорогих цепочках первого уровня таких как Ethereum, без запредельных затрат.
Мы представили пример того, как реализовать поддержку для цепочек на основе EVM в LayerZero, используя эталонную реализацию Relayer в сочетании с Chainpoint.
LayerZero — магистраль, которая соединит различные разобщённые экосистемы блокчейна и обеспечит беспрепятственное перемещение ликвидности и данных.
А у меня на этом пока всё — и
До!