Агрегированные блокчейны

СреднийFeb 25, 2024
В этой статье мы рассмотрим, что такое агрегирующий слой, как он работает и чем он отличается от общих секвенсоров или валидаторов.
Агрегированные блокчейны

Я хотел бы сделать два заявления:

  1. Ни одна цепочка, будь то L1 или L2, не может поддерживать пропускную способность, необходимую для достижения масштабов Интернета.
  2. Масштабирование блокчейн означает масштабирование доступа к ликвидности и общему состоянию. Добавление пространства блоков с помощью нескольких цепочек не работает, если оно фрагментирует ликвидность.

Это бросает вызов как модульному, так и монолитному взгляду на масштабируемость блокчейна. (1) - это вызов монолитному взгляду, согласно которому единственная высокопроизводительная цепочка - это лучший способ масштабирования. (2) - это вызов модульному взгляду, поскольку он означает, что многоцепочечной или многороликовой экосистемы недостаточно для масштабирования в значимом смысле: увеличение доступа к общему состоянию и ликвидности...

Если (1) и (2) верны, то решение проблемы масштабируемости требует масштабирования доступа к общему состоянию и ликвидности по многим цепочкам. Решение Polygon - это Агрегационный слой, или "AggLayer". AggLayer обеспечивает безопасность практически мгновенных межцепочечных транзакций и позволяет унифицировать состояние и ликвидность цепочек.

В этом посте мы подробно рассмотрим, что такое AggLayer, как он работает и чем отличается от общего секвенсора или провера.

Проблема

Есть проблема с L2: ликвидность и состояние разделены между рулонами и L1.

Это плохо с точки зрения удобства использования, потому что создает сложности, но это также дорого. Фрагментированная ликвидность означает повышенное проскальзывание и худшее исполнение. Оптимистичные сворачивания (OR) требуют от пользователей оплачивать дорогостоящие мосты третьих лиц, чтобы избежать семидневной задержки вывода средств. Даже ZK Rollups (ZKRs) требуют от пользователей обращаться к Ethereum для совершения транзакций, не требующих доверия.

Законченность и действительность

Вот почему транзакции с низкой задержкой и без доверия в кросс-цепочке в настоящее время невозможны.

Предположим, есть два рулона, Цепочка А и Цепочка В, которые имеют общий мост к L1. Алиса, находящаяся в цепи A, хотела бы заплатить Бобу, находящемуся в цепи B, поэтому Алиса блокирует или сжигает жетоны в цепи A, чтобы перевести их в цепь B.

Для того чтобы цепочка B могла безопасно передать эти жетоны Бобу, необходимы две вещи.

  1. Пакет, содержащий транзакцию Алисы, должен быть завершен на Ethereum L1.
  2. Цепочка B должна быть в состоянии проверить, что результирующее состояние цепочки A является действительным после транзакции Алисы.


Если пакет, содержащий транзакции Алисы, не будет завершен в Ethereum, то цепочка А может приравняться к цепочке В и совершить двойную трату, сохранив средства Алисы в цепочке А и перечислив средства Боба в цепочке В. Точно так же, если цепочка В не проверит доказательство валидности для А, то цепочка А может включить недействительную транзакцию и украсть средства у В.

(1) и (2) означают, что транзакции, не требующие доверия, не могут иметь низкую задержку. В настоящее время (1) требует 12 минут, в то время как (2) требует ожидания в течение всего периода вызова в OR и несколько минут для генерации доказательства в ZKR.

Хороший UX несовместим с 20-минутной задержкой. Агрегационный уровень предназначен для решения этой проблемы.

Агрегационный уровень

Polygon - это экосистема L2 на базе ZK, которая осуществляет расчеты с Ethereum. Агрегационный уровень - это децентрализованный протокол, управляемый узлами с закладом, который обеспечивает безопасность транзакций с низкой задержкой, кросс-цепочек и единого моста [1].

В данном контексте "безопасность" означает следующее:

Состояние роллапа не может быть финализировано/урегулировано на Ethereum, если состояние цепочки опирается на недействительное или нефинализированное состояние из другой цепочки, или если оно включает транзакцию из атомарного [2] пакета, которая не была успешно выполнена на всех других цепочках.

Другими словами, состояние цепочки B не может быть финализировано в Ethereum, если оно зависит от недействительного или нефинализированного состояния цепочки A.

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

Как работает уровень агрегации

Агрегационный уровень функционирует в три этапа. Предположим, что цепочка A - это цепочка с ZK, работающая в экосистеме Polygon.

  1. Предварительное подтверждение: Цепочка A отправляет заголовок для нового блока/партии A1 в
  2. AggLayer вместе с легким доказательством клиента. Заголовок включает в себя обязательства перед всеми
  3. Другие блоки и связки, от которых зависит Ar (B1, C1 и т.д.). Когда новая партия будет
  4. принимается без подтверждения достоверности, он считается "предварительно подтвержденным" AggLayer'ом.
  5. Подтверждение: Цепочка A, или любой полный узел A, генерирует доказательство для A1 и отправляет его на AggLayer. После того, как доказательство проверено AggLayer, A1 подтверждается, если все партии, от которых оно зависит, также подтверждены.
  6. Финализация: После подтверждения A1 его доказательство агрегируется вместе с партиями из других ролловеров в единое доказательство, которое публикуется в Ethereum. Агрегированное доказательство гарантирует, что состояния и связки зависимых цепочек являются последовательными.

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

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

Асинхронная совместимость

Возьмем первый пример межцепочечной передачи. Алиса из цепочки A хочет заблокировать или сжечь некоторые токены в блоке A1, чтобы отчеканить и передать токены Бобу из цепочки B. Если цепочка B не дождется, пока A1 будет завершена на Ethereum с действительным доказательством, то цепочка A может дать двусмысленный ответ или передать цепочке B недействительное состояние.

Агрегационный уровень решает эту проблему простым способом. Цепочка B может временно предположить, что A1 действительна и будет финализирована на Ethereum, даже не дожидаясь доказательства. Секвенсор для Цепочки B фиксирует заявленный корень состояния Цепочки A A1 как зависимость в заголовке для B1 (как B1A1 ) перед передачей на Уровень Агрегирования. Время ожидания, необходимое цепочке B для создания B1, уменьшается с 20 минут до, максимум, нескольких секунд.

На этапе Подтверждение уровень агрегации строит граф зависимостей для каждого представленного блока/пакета. Например, если A1 зависит от B1, который, в свою очередь, зависит от B1, то C1 подтверждается, как только представлено доказательство πC1. Но даже если πA1 получено, πA1 подтверждается только при наличии как πC1, так и πB1. Критическим аспектом этой конструкции является то, что схема объединения доказательств обеспечивает согласованность зависимостей. Если B1A1 не соответствует блоку A1, который подает цепочка A, или для A1′ отсутствует доказательство, то B1 не может быть включен в агрегированную партию, завершенную на Ethereum.

Этот механизм гарантирует, что если цепочка A поспорит или представит недействительный блок, скажем, A1′, то любая партия, которая зависит от недействительного или поспоренного корня состояния для цепочки A, не может быть завершена/завершена на Ethereum. Даже если AggLayer сам выскажется неоднозначно, цепочки имеют криптографическую гарантию того, что любой блок, который зависит от недействительного или неоднозначного блока, не может быть завершен, потому что два доказательства для состояний цепочки, которые являются непоследовательными или недействительными, не могут быть объединены в цепь агрегации доказательств. Это гарантирует, что описанное выше свойство безопасности будет сохранено.

Атомная совместимость

Механизм безопасности может быть распространен на атомарный случай. Предположим, что пользователь отправляет атомарный пакет транзакций в несколько цепочек. Эта связка упорядочена, поэтому результат выполнения транзакции на цепочке A передается цепочке B, аналогичным образом обновленное состояние цепочки B передается цепочке C, и т.д. Если все транзакции успешно выполняются во всех цепочках, то пакет включается; в противном случае он отклоняется.

Было бы идеально предоставить возможность включать атомарные транзакции без них:

  1. Требование к оператору цепочки B запустить полный узел для всех остальных цепочек, включенных в связку; или
  2. Принятие риска того, что пакет может быть частично включен в Ethereum (что повредит участвующим цепочкам).

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

К счастью, тот же механизм, что и в случае с async, может быть повторно использован для случая с atomic. Цепочка B выполняет фиксацию пакетов и получает результаты транзакций от других цепочек. Уровень агрегации (и доказательная схема агрегации) проверяет, чтобы пакеты были согласованы между цепочками. Пакет, содержащий связку из цепочки B, может быть завершен/завершен на Ethereum только в том случае, если все транзакции в связке выполнены успешно.

Кросс-цепочечная совместимость

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

Возникающая инфраструктура координации

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

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

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

Экосистема Polygon ставит во главу угла выбор и суверенитет для цепочек. Цепочки могут запускать свои собственные модифицированные среды исполнения, использовать свои собственные токены для ставок и платы за газ, выбирать свои собственные механизмы доступности данных и т.д. Аналогичным образом, цепочки должны решить, как справиться с компромиссом между функциональной совместимостью и риском возникновения неисправностей. Есть несколько вариантов:

  1. Цепочка B может полностью отказаться от быстрой совместимости и уровня агрегатора. Он может просто отправлять партии и доказательства непосредственно в Ethereum, и завершение работы никогда не задерживается.
  2. Цепочка B может принять состояние цепочки A только тогда, когда состояние цепочки A подтверждено AggLayer. Цепочка B будет отложена только в том случае, если AggLayer не согласится.
  3. Цепочка B может принять состояние цепочки A, если цепочка A предварительно подтверждена AggLayer. Цепочка B будет отложена, если AggLayer уклонится от ответа или цепочка A не сможет предоставить доказательство.
  4. Цепочка B может принимать состояние цепочки A в одноранговом режиме, не проверяя, что цепочка A предварительно подтверждена на AggLayer. Цепочка B будет отложена, если цепочка A уклонится от ответа или не сможет представить доказательство.

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

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

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

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

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

Закрытие

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

Агрегация в ЗК по сравнению с оптимистическими системами

Это видение, которое принципиально доступно только для систем на базе ZK. Я расскажу об этом подробнее в одном из следующих постов, но оптимистичные экосистемы, которые хотят обеспечить быструю совместимость, должны полагаться на секвенсоры общей валидности. Это плохая сделка для цепочек: она ограничивает их в перераспределении платы за секвенсоры и MEV, секвенсоры с общей валидностью вынуждают цепочки потенциально принимать ограничения на среду выполнения, а совместимость в системах на основе OR вынуждает цепочки принимать дополнительные предположения о доверии в обмен на низкую задержку.

Кроме того, взаимозаменяемость цепочек является важным свойством для ОР. С одноцепочечными OR любой может запустить полный узел для OR и немедленно подтвердить, что транзакции действительны и завершены, как только они будут опубликованы на L1. В случае с несколькими цепочками это уже не так - теперь необходимо запускать полный узел для каждой цепочки, с которой взаимодействует OR.

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

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

Это будущее Polygon: не монолитный, не полностью модульный, а агрегированный.

[1] Частью обеспечения единой ликвидности является избавление от ужасного UX обернутых синтетических токенов на мостах. Пользователи моста LxLy от Polygon могут беспрепятственно передавать активы по цепочкам, сохраняя их взаимозаменяемость. Однако для того, чтобы сделать это безопасно, нам нужно защититься от слабого звена - или злоумышленника, который повреждает одну цепочку и выкачивает все средства из всех цепочек в мосте. Я расскажу о том, как это сделать, в одном из следующих постов, но AggLayer может использовать шаг агрегирования доказательств для обеспечения учета на уровне цепочки, избегая защиты слабых звеньев.

[2] Когда я упоминаю атомарные межцепочечные транзакции, я имею в виду возможность для пользователя отправить "пакет" или набор транзакций по нескольким цепочкам. Атомарная связка обладает тем свойством, что ее транзакции включаются в каждую соответствующую цепочку тогда и только тогда, когда все транзакции выполняются успешно. Если одна транзакция завершилась неудачно, то пакет не может быть включен ни в одну цепочку.

Самый простой пример - это опять же наша межцепочечная передача. Допустим, Алиса хочет отправить 1 ETH Бобу, но Алиса находится в цепи A, а Боб - в цепи B. Если предположить, что у обоих ролловеров есть общий мост, Алиса может сжечь свой ETH в цепи A и напечатать ETH в цепи B, который будет передан Бобу. Но очень важно гарантировать, что она не сможет майнить ETH, не сжигая его, или наоборот - либо она может потерять свой ETH, либо недозаложить мост.

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

[3] Это тонкий момент, но с точки зрения экосистемы - AggLayer обеспечивает безопасность, но с точки зрения отдельной цепочки, такая конструкция ставит приоритет быстродействия над безопасностью, поскольку цепочка B может зависеть от состояния цепочки из цепочки A, которое является недействительным. В этом случае цепочка B не будет принята AggLayer'ом (что обеспечивается цепью агрегации доказательств), и Вам придется построить новый блок без зависимости от A.

[4] Наш подход в целом во многом обязан проекту Shared Validity Sequencing от Umbra Research.

2/9/24 - Обновите этот проект, чтобы уточнить некоторые сравнения между объединением и совместным секвенированием. Агрегированный тезис зависит от таких механизмов, как общие секвенсоры, реле и строители, чтобы облегчить координацию между цепочками. В свою очередь, слой agg гарантирует безопасность.

Отказ от ответственности:

  1. Эта статья перепечатана с сайта [[Брендан Фармер]], Все авторские права принадлежат автору оригинала[Брендан Фармер]]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Отказ от ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.

Агрегированные блокчейны

СреднийFeb 25, 2024
В этой статье мы рассмотрим, что такое агрегирующий слой, как он работает и чем он отличается от общих секвенсоров или валидаторов.
Агрегированные блокчейны

Я хотел бы сделать два заявления:

  1. Ни одна цепочка, будь то L1 или L2, не может поддерживать пропускную способность, необходимую для достижения масштабов Интернета.
  2. Масштабирование блокчейн означает масштабирование доступа к ликвидности и общему состоянию. Добавление пространства блоков с помощью нескольких цепочек не работает, если оно фрагментирует ликвидность.

Это бросает вызов как модульному, так и монолитному взгляду на масштабируемость блокчейна. (1) - это вызов монолитному взгляду, согласно которому единственная высокопроизводительная цепочка - это лучший способ масштабирования. (2) - это вызов модульному взгляду, поскольку он означает, что многоцепочечной или многороликовой экосистемы недостаточно для масштабирования в значимом смысле: увеличение доступа к общему состоянию и ликвидности...

Если (1) и (2) верны, то решение проблемы масштабируемости требует масштабирования доступа к общему состоянию и ликвидности по многим цепочкам. Решение Polygon - это Агрегационный слой, или "AggLayer". AggLayer обеспечивает безопасность практически мгновенных межцепочечных транзакций и позволяет унифицировать состояние и ликвидность цепочек.

В этом посте мы подробно рассмотрим, что такое AggLayer, как он работает и чем отличается от общего секвенсора или провера.

Проблема

Есть проблема с L2: ликвидность и состояние разделены между рулонами и L1.

Это плохо с точки зрения удобства использования, потому что создает сложности, но это также дорого. Фрагментированная ликвидность означает повышенное проскальзывание и худшее исполнение. Оптимистичные сворачивания (OR) требуют от пользователей оплачивать дорогостоящие мосты третьих лиц, чтобы избежать семидневной задержки вывода средств. Даже ZK Rollups (ZKRs) требуют от пользователей обращаться к Ethereum для совершения транзакций, не требующих доверия.

Законченность и действительность

Вот почему транзакции с низкой задержкой и без доверия в кросс-цепочке в настоящее время невозможны.

Предположим, есть два рулона, Цепочка А и Цепочка В, которые имеют общий мост к L1. Алиса, находящаяся в цепи A, хотела бы заплатить Бобу, находящемуся в цепи B, поэтому Алиса блокирует или сжигает жетоны в цепи A, чтобы перевести их в цепь B.

Для того чтобы цепочка B могла безопасно передать эти жетоны Бобу, необходимы две вещи.

  1. Пакет, содержащий транзакцию Алисы, должен быть завершен на Ethereum L1.
  2. Цепочка B должна быть в состоянии проверить, что результирующее состояние цепочки A является действительным после транзакции Алисы.


Если пакет, содержащий транзакции Алисы, не будет завершен в Ethereum, то цепочка А может приравняться к цепочке В и совершить двойную трату, сохранив средства Алисы в цепочке А и перечислив средства Боба в цепочке В. Точно так же, если цепочка В не проверит доказательство валидности для А, то цепочка А может включить недействительную транзакцию и украсть средства у В.

(1) и (2) означают, что транзакции, не требующие доверия, не могут иметь низкую задержку. В настоящее время (1) требует 12 минут, в то время как (2) требует ожидания в течение всего периода вызова в OR и несколько минут для генерации доказательства в ZKR.

Хороший UX несовместим с 20-минутной задержкой. Агрегационный уровень предназначен для решения этой проблемы.

Агрегационный уровень

Polygon - это экосистема L2 на базе ZK, которая осуществляет расчеты с Ethereum. Агрегационный уровень - это децентрализованный протокол, управляемый узлами с закладом, который обеспечивает безопасность транзакций с низкой задержкой, кросс-цепочек и единого моста [1].

В данном контексте "безопасность" означает следующее:

Состояние роллапа не может быть финализировано/урегулировано на Ethereum, если состояние цепочки опирается на недействительное или нефинализированное состояние из другой цепочки, или если оно включает транзакцию из атомарного [2] пакета, которая не была успешно выполнена на всех других цепочках.

Другими словами, состояние цепочки B не может быть финализировано в Ethereum, если оно зависит от недействительного или нефинализированного состояния цепочки A.

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

Как работает уровень агрегации

Агрегационный уровень функционирует в три этапа. Предположим, что цепочка A - это цепочка с ZK, работающая в экосистеме Polygon.

  1. Предварительное подтверждение: Цепочка A отправляет заголовок для нового блока/партии A1 в
  2. AggLayer вместе с легким доказательством клиента. Заголовок включает в себя обязательства перед всеми
  3. Другие блоки и связки, от которых зависит Ar (B1, C1 и т.д.). Когда новая партия будет
  4. принимается без подтверждения достоверности, он считается "предварительно подтвержденным" AggLayer'ом.
  5. Подтверждение: Цепочка A, или любой полный узел A, генерирует доказательство для A1 и отправляет его на AggLayer. После того, как доказательство проверено AggLayer, A1 подтверждается, если все партии, от которых оно зависит, также подтверждены.
  6. Финализация: После подтверждения A1 его доказательство агрегируется вместе с партиями из других ролловеров в единое доказательство, которое публикуется в Ethereum. Агрегированное доказательство гарантирует, что состояния и связки зависимых цепочек являются последовательными.

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

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

Асинхронная совместимость

Возьмем первый пример межцепочечной передачи. Алиса из цепочки A хочет заблокировать или сжечь некоторые токены в блоке A1, чтобы отчеканить и передать токены Бобу из цепочки B. Если цепочка B не дождется, пока A1 будет завершена на Ethereum с действительным доказательством, то цепочка A может дать двусмысленный ответ или передать цепочке B недействительное состояние.

Агрегационный уровень решает эту проблему простым способом. Цепочка B может временно предположить, что A1 действительна и будет финализирована на Ethereum, даже не дожидаясь доказательства. Секвенсор для Цепочки B фиксирует заявленный корень состояния Цепочки A A1 как зависимость в заголовке для B1 (как B1A1 ) перед передачей на Уровень Агрегирования. Время ожидания, необходимое цепочке B для создания B1, уменьшается с 20 минут до, максимум, нескольких секунд.

На этапе Подтверждение уровень агрегации строит граф зависимостей для каждого представленного блока/пакета. Например, если A1 зависит от B1, который, в свою очередь, зависит от B1, то C1 подтверждается, как только представлено доказательство πC1. Но даже если πA1 получено, πA1 подтверждается только при наличии как πC1, так и πB1. Критическим аспектом этой конструкции является то, что схема объединения доказательств обеспечивает согласованность зависимостей. Если B1A1 не соответствует блоку A1, который подает цепочка A, или для A1′ отсутствует доказательство, то B1 не может быть включен в агрегированную партию, завершенную на Ethereum.

Этот механизм гарантирует, что если цепочка A поспорит или представит недействительный блок, скажем, A1′, то любая партия, которая зависит от недействительного или поспоренного корня состояния для цепочки A, не может быть завершена/завершена на Ethereum. Даже если AggLayer сам выскажется неоднозначно, цепочки имеют криптографическую гарантию того, что любой блок, который зависит от недействительного или неоднозначного блока, не может быть завершен, потому что два доказательства для состояний цепочки, которые являются непоследовательными или недействительными, не могут быть объединены в цепь агрегации доказательств. Это гарантирует, что описанное выше свойство безопасности будет сохранено.

Атомная совместимость

Механизм безопасности может быть распространен на атомарный случай. Предположим, что пользователь отправляет атомарный пакет транзакций в несколько цепочек. Эта связка упорядочена, поэтому результат выполнения транзакции на цепочке A передается цепочке B, аналогичным образом обновленное состояние цепочки B передается цепочке C, и т.д. Если все транзакции успешно выполняются во всех цепочках, то пакет включается; в противном случае он отклоняется.

Было бы идеально предоставить возможность включать атомарные транзакции без них:

  1. Требование к оператору цепочки B запустить полный узел для всех остальных цепочек, включенных в связку; или
  2. Принятие риска того, что пакет может быть частично включен в Ethereum (что повредит участвующим цепочкам).

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

К счастью, тот же механизм, что и в случае с async, может быть повторно использован для случая с atomic. Цепочка B выполняет фиксацию пакетов и получает результаты транзакций от других цепочек. Уровень агрегации (и доказательная схема агрегации) проверяет, чтобы пакеты были согласованы между цепочками. Пакет, содержащий связку из цепочки B, может быть завершен/завершен на Ethereum только в том случае, если все транзакции в связке выполнены успешно.

Кросс-цепочечная совместимость

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

Возникающая инфраструктура координации

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

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

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

Экосистема Polygon ставит во главу угла выбор и суверенитет для цепочек. Цепочки могут запускать свои собственные модифицированные среды исполнения, использовать свои собственные токены для ставок и платы за газ, выбирать свои собственные механизмы доступности данных и т.д. Аналогичным образом, цепочки должны решить, как справиться с компромиссом между функциональной совместимостью и риском возникновения неисправностей. Есть несколько вариантов:

  1. Цепочка B может полностью отказаться от быстрой совместимости и уровня агрегатора. Он может просто отправлять партии и доказательства непосредственно в Ethereum, и завершение работы никогда не задерживается.
  2. Цепочка B может принять состояние цепочки A только тогда, когда состояние цепочки A подтверждено AggLayer. Цепочка B будет отложена только в том случае, если AggLayer не согласится.
  3. Цепочка B может принять состояние цепочки A, если цепочка A предварительно подтверждена AggLayer. Цепочка B будет отложена, если AggLayer уклонится от ответа или цепочка A не сможет предоставить доказательство.
  4. Цепочка B может принимать состояние цепочки A в одноранговом режиме, не проверяя, что цепочка A предварительно подтверждена на AggLayer. Цепочка B будет отложена, если цепочка A уклонится от ответа или не сможет представить доказательство.

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

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

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

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

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

Закрытие

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

Агрегация в ЗК по сравнению с оптимистическими системами

Это видение, которое принципиально доступно только для систем на базе ZK. Я расскажу об этом подробнее в одном из следующих постов, но оптимистичные экосистемы, которые хотят обеспечить быструю совместимость, должны полагаться на секвенсоры общей валидности. Это плохая сделка для цепочек: она ограничивает их в перераспределении платы за секвенсоры и MEV, секвенсоры с общей валидностью вынуждают цепочки потенциально принимать ограничения на среду выполнения, а совместимость в системах на основе OR вынуждает цепочки принимать дополнительные предположения о доверии в обмен на низкую задержку.

Кроме того, взаимозаменяемость цепочек является важным свойством для ОР. С одноцепочечными OR любой может запустить полный узел для OR и немедленно подтвердить, что транзакции действительны и завершены, как только они будут опубликованы на L1. В случае с несколькими цепочками это уже не так - теперь необходимо запускать полный узел для каждой цепочки, с которой взаимодействует OR.

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

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

Это будущее Polygon: не монолитный, не полностью модульный, а агрегированный.

[1] Частью обеспечения единой ликвидности является избавление от ужасного UX обернутых синтетических токенов на мостах. Пользователи моста LxLy от Polygon могут беспрепятственно передавать активы по цепочкам, сохраняя их взаимозаменяемость. Однако для того, чтобы сделать это безопасно, нам нужно защититься от слабого звена - или злоумышленника, который повреждает одну цепочку и выкачивает все средства из всех цепочек в мосте. Я расскажу о том, как это сделать, в одном из следующих постов, но AggLayer может использовать шаг агрегирования доказательств для обеспечения учета на уровне цепочки, избегая защиты слабых звеньев.

[2] Когда я упоминаю атомарные межцепочечные транзакции, я имею в виду возможность для пользователя отправить "пакет" или набор транзакций по нескольким цепочкам. Атомарная связка обладает тем свойством, что ее транзакции включаются в каждую соответствующую цепочку тогда и только тогда, когда все транзакции выполняются успешно. Если одна транзакция завершилась неудачно, то пакет не может быть включен ни в одну цепочку.

Самый простой пример - это опять же наша межцепочечная передача. Допустим, Алиса хочет отправить 1 ETH Бобу, но Алиса находится в цепи A, а Боб - в цепи B. Если предположить, что у обоих ролловеров есть общий мост, Алиса может сжечь свой ETH в цепи A и напечатать ETH в цепи B, который будет передан Бобу. Но очень важно гарантировать, что она не сможет майнить ETH, не сжигая его, или наоборот - либо она может потерять свой ETH, либо недозаложить мост.

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

[3] Это тонкий момент, но с точки зрения экосистемы - AggLayer обеспечивает безопасность, но с точки зрения отдельной цепочки, такая конструкция ставит приоритет быстродействия над безопасностью, поскольку цепочка B может зависеть от состояния цепочки из цепочки A, которое является недействительным. В этом случае цепочка B не будет принята AggLayer'ом (что обеспечивается цепью агрегации доказательств), и Вам придется построить новый блок без зависимости от A.

[4] Наш подход в целом во многом обязан проекту Shared Validity Sequencing от Umbra Research.

2/9/24 - Обновите этот проект, чтобы уточнить некоторые сравнения между объединением и совместным секвенированием. Агрегированный тезис зависит от таких механизмов, как общие секвенсоры, реле и строители, чтобы облегчить координацию между цепочками. В свою очередь, слой agg гарантирует безопасность.

Отказ от ответственности:

  1. Эта статья перепечатана с сайта [[Брендан Фармер]], Все авторские права принадлежат автору оригинала[Брендан Фармер]]. Если у Вас есть возражения против этой перепечатки, пожалуйста, свяжитесь с командой Gate Learn, и они незамедлительно рассмотрят их.
  2. Отказ от ответственности: Мнения и взгляды, выраженные в этой статье, принадлежат исключительно автору и не являются инвестиционным советом.
  3. Перевод статьи на другие языки осуществляется командой Gate Learn. Если не указано, копирование, распространение или плагиат переведенных статей запрещены.
Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!