В течение долгого времени у меня была идея решить некоторые проблемы, с которыми в настоящее время сталкивается Rollup, посредством мульти-Rollup (мульти-Rollup) дизайна. Около полутора лет я думал, что кто-нибудь ее построит, но никогда особо не вникал и не задумывался о деталях такой системы.
Прошло много времени, и, похоже, не существует ни одной конструкции, которая бы решала проблему, которую я описал в этом посте, поэтому я собираюсь заполнить детали этой системы как можно лучше в надежде, что кто-нибудь Вы можете почерпнуть из него вдохновение или даже из существующего накопительного пакета. Позаимствовать некоторые идеи.
представлять
Сегодня одна из проблем, с которыми сталкивается Rollup, — это взаимодействие с пользователем. Во многих проектах Rollups представляют собой независимые экосистемы с разными характеристиками. Существуют способы взаимодействия, но соединение нескольких разнородных систем является довольно сложной задачей. Кроме того, сложно убедить пользователей подписаться на все эти накопительные пакеты. Им приходится разбираться в каждом роллапе индивидуально, оценивать соответствующие смарт-контракты, подключать свои кошельки к новым конечным точкам RPC, соединять активы с цепочкой и т. д.
Что, если бы существовал дизайн накопительного пакета, обеспечивающий унифицированный интерфейс для всех накопительных пакетов? Как это будет выглядеть?
Я задавал себе этот вопрос и пришел к следующим пяти выводам:
Он должен предоставить единый RPC для запроса и вызова различных смарт-контрактов в Rollup. Смарт-контракты должны иметь уникальный адрес, независимый от накопителя, к которому они принадлежат.
Он должен позволять масштабировать вверх и вниз по мере необходимости. Больше транзакций должно означать большее количество накопительных пакетов для их обработки, а неравномерную нагрузку между накопительными пакетами следует сбалансировать.
Это должно стимулировать сортировщиков в различных накопителях оставаться в сети. Система должна поощрять других сортировщиков заменять автономных сортировщиков.
Он должен поддерживать мгновенные межсетевые переводы. Транзакции должны рассчитываться достаточно быстро, чтобы кросс-чейновые операции имели смысл.
Он должен поддерживать легкий клиент и блокировать функциональность проводника при нескольких слияниях. Обозреватели блоков должны обеспечивать единое представление о блокчейне, а облегченные клиенты должны обеспечивать недорогую проверку.
Принимая все это во внимание, я разработал конструкцию, состоящую из концентратора Rollup и переменного количества дополнительных накопителей. Концентратор Rollup является одновременно центром регистрации и балансировщиком нагрузки всех субагрегатов, но он не выполняет никакой обработки смарт-контрактов. Смарт-контракты обрабатываются в виде подагрегатов.
В следующем разделе я познакомлю вас с черновым проектом, объяснив 5 соображений, упомянутых выше.
Обзор дизайна
Система состоит из двух основных компонентов: концентратора Rollup и субагрегата. Система Rollup Hub состоит из двух основных компонентов: Rollup Hub и суб-Rollup. Концентратор накопительных пакетов — это накопительный пакет, который содержит все реестры смарт-контрактов всех подагрегатов и определяет, какой накопительный пакет отвечает за какой смарт-контракт. Кроме того, концентратор накопительных пакетов содержит реестр всех секвенсоров для другого дочернего накопительного пакета. Дочерние цепочки отвечают за выполнение транзакций для смарт-контрактов, назначенных им концентратором Rollup в реестре смарт-контрактов. Реестр сортировщика содержит два основных компонента для каждой системы сортировки: концентратор сводных данных и дочерний накопительный пакет. Концентратор накопительных пакетов — это накопительный пакет, который содержит все реестры смарт-контрактов всех подагрегатов и определяет, какой накопительный пакет отвечает за какой смарт-контракт. Кроме того, концентратор накопительных пакетов содержит реестр всех секвенсоров для другого дочернего накопительного пакета. Дочерние цепочки отвечают за выполнение транзакций для смарт-контрактов, назначенных им концентратором Rollup в реестре смарт-контрактов. Реестр секвенсора содержит каждую конечную точку RPC секвенсора и адрес DA.
Реестр заказчика действует как глобальный адрес смарт-контракта для сопоставления адресов смарт-контракта. Это используется для маршрутизации вызовов RPC к конкретному RPC заказчика, соответствующему запрошенному или обновленному смарт-контракту.
Реестр смарт-контрактов
Реестр смарт-контрактов действует как сопоставление глобальных адресов смарт-контрактов с адресами смарт-контрактов.
Свернутая цепочка
Дочерние цепочки обычно имеют корень состояния. Этот маршрут состояния можно обновить, вызвав смарт-контракт напрямую или когда концентратор Rollup назначает смарт-контракт другому Rollup. В этом случае смарт-контракт следует удалить и заменить. Он добавляется в другие смарт-контракты.
Единый РПК
Цель: отсутствие необходимости подключаться к новой цепочке для каждого объединения и сделать транзакции между объединениями прозрачными для пользователей.
Унифицированный RPC восстанавливает пользовательский опыт одной цепочки в сети с несколькими объединениями, и пользователям не нужно подключаться к разным сетям, чтобы использовать разные объединения.
Система использует реестр заказчиков Rollup из концентратора Rollup, чтобы найти конечную точку RPC заказчика, соответствующую конкретному смарт-контракту. Затем запрос передается непосредственно этому секвенатору. Несколько транзакций можно выполнить, отправив запросы в разные накопительные пакеты. Для получения более подробной информации ознакомьтесь со следующими разделами.
как работать
Хаб Rollup ведет реестр сортировщиков для всех подцепей.
Когда пользователь хочет отправить новую транзакцию, пользовательский кошелек запрашивает реестр смарт-контрактов, чтобы получить RollupID смарт-контракта, и запрашивает реестр секвенсора, чтобы получить конечную точку RPC секвенсора в том же агрегированном пакете.
Затем транзакция передается в конечную точку RPC секвенсора.
Балансировка нагрузки
Цель: сбалансировать затраты на все объединения.
Балансировка нагрузки позволяет сбалансировать нагрузку в Rollup. Когда система засоряется, могут быть созданы новые накопительные пакеты для обработки нагрузки. Когда пользы мало, Rollup можно удалить для экономии ресурсов. Кроме того, система может избежать скачков комиссий, перемещая смарт-контракты с высоким спросом в транзакциях в накопительные пакеты с большей доступной емкостью.
Каждую эпоху концентратор Rollup оценивает загрузку всех накопителей в системе. Эпохи должны длиться несколько часов (возможно, от 6 до 24 часов), чтобы избежать крупномасштабного перераспределения смарт-контрактов.
Центр накопительных пакетов может решать, какие смарт-контракты перераспределять, а также когда создавать или удалять накопительные пакеты; решение может приниматься автономно с помощью управления или с использованием истории потребления газа различными смарт-контрактами.
Центр Rollup проверяет, имеет ли какой-либо Rollup транзакционную нагрузку выше среднего (т. е. комиссии высокие) или ниже среднего (т. е. комиссии низкие).
Если нагрузка накопительного пакета выше средней, концентратор накопительных пакетов оценивает, какие смарт-контракты потребляют больше всего газа, и перераспределяет их в другой накопительный пакет, который может справиться с дополнительной нагрузкой. Затем смарт-контракт будет удален из исходного состояния объединения хоста.
Если средняя нагрузка всех накопительных пакетов выше средней, концентратор накопительных пакетов создаст новый накопительный пакет и назначит ему несколько смарт-контрактов. Аналогичным образом, если средняя загрузка всех накопительных пакетов ниже средней, концентратор накопительных пакетов удалит накопительный пакет и переназначит его смарт-контракты другим накопительным пакетам.
Цепочки Rollup должны проверять концентратор Rollup каждую эпоху, загружать хранилище для любых новых назначенных им смарт-контрактов и удалять любые смарт-контракты, которые больше не несут за них ответственность.
ПРИМЕЧАНИЕ. Загрузка хранилища некоторых смарт-контрактов может оказаться нетривиальной задачей. Во-первых, состояние недоступно на уровне DA и имеет довольно большой размер. Это ограничивает минимальное время эпохи, требуя льготного периода для подготовки хранилища смарт-контрактов.
Сортировка поощрений
Цель: использовать часть вознаграждений в собственном токене, чтобы стимулировать резервные секвенсоры.
Большинство Rollup сегодня построены на единой цепочке, управляемой только одним или несколькими заказчиками, с целью максимизировать время безотказной работы Rollup. Напротив, в системе с несколькими сводными документами существует несколько независимых дополнительных объединений, каждый из которых должен быть подключен к сети, чтобы оставаться активным во всей системе.
У сортировщиков, естественно, будет стимул присоединиться к Rollup для сбора MEV, но лучше предоставить этим сортировщикам соответствующие вознаграждения, поскольку они более последовательны и не искажают стимулы, такие как MEV. Эти вознаграждения должны исходить от денежно-кредитной политики центра Rollup.
Кроме того, хорошо иметь несколько заказчиков в режиме ожидания и готовых войти: эти заказчики могут присоединиться к системе, когда потребность в транзакциях возрастает, и покинуть систему, когда нет вычислительных ресурсов.
Резервный секвенсор останется в очереди секвенатора и получит небольшое вознаграждение за обеспечение доступности. При обмене в Rollup они получают полную награду. Вознаграждения будут поступать от механизма сжигания комиссий в Rollup Hub.
как использовать
Заказчики могут присоединиться к очереди заказов в Rollup Hub, отправив финансовую гарантию (аналогично текущей системе Rollup).
Сортировщикам в очереди необходимо предоставить доказательства DA о том, что они имеют статус концентратора накопительного пакета и могут в любой момент прочитать данные, чтобы присоединиться к накопительному пакету.
Когда они представят доказательства, они будут частично вознаграждены — собственным токеном системы. Этот токен является дескриптором накопительного центра.
Если центр накопительных пакетов решит, что необходим новый накопительный пакет, они будут назначены и получат полное вознаграждение. Это вознаграждение определяется общей суммой комиссий, потребляемых в системе.
Перекрестные сводные транзакции
Цель: транзакции объединения должны быть мгновенными и прозрачными для пользователей.
Транзакция перекрестного накопительного пакета между накопительным пакетом A и накопительным пакетом B должна состоять из двух частей: 1) транзакция в накопительном пакете A 2) транзакция в накопительном пакете B. Это произойдет только в том случае, если транзакция в накопительном пакете A будет успешной и окончательной.
Для быстрого подтверждения кошельки пользователей могут проверить, была ли транзакция отправлена на базовый уровень DA, и доказать ее действительность с помощью ZK. Если транзакция включена и действительна, то секвенсор должен прийти к такому же выводу для этой конкретной транзакции.
За эту идею надо отдать должное Мустафе Аль-Басаму и Sovereign Labs.
как использовать
Пользователь отправляет транзакцию, содержащую три накопительных пакета, например накопительные пакеты A, B и C.
Давайте подумаем о конкретном примере: Rollup A имеет смарт-контракт стейблкоина, Rollup B имеет DEX, а Rollup C имеет кредитное соглашение. В этом примере пользователи хотят обменять свои стейблкоины на разные токены и свое соглашение о депозитном кредите.
Пользователи должны сначала отправить транзакцию Rollup A для перевода стейблкоинов на DEX в Rollup B.
Затем они могут отправить транзакцию Rollup B DEX, которая обменивает стейблкоин на желаемый токен в Rollup B.
В свою очередь, этот токен должен быть передан в RollupC, поэтому пользователь отправляет третью транзакцию, которая и делает именно это.
Наконец, пользователь отправляет четвертую и последнюю транзакцию, внося токены в протокол кредитования.
Облегченный узел и обозреватель блоков
Цель: легкие узлы должны иметь возможность проверять смарт-контракты в Rollup, а обозреватели блоков должны обеспечивать единое представление цепочки.
Система блокчейна должна позволять любому запускать узел и проверять саму цепочку. В этой многоуровневой конструкции, где смарт-контракты постоянно переназначаются различным подгруппам, должен быть способ отслеживать эти конкретные смарт-контракты. Это сдвиг в мышлении от проверки одной или нескольких цепочек к проверке одного или нескольких смарт-контрактов. Легкие узлы могут использовать доказательства ZK для проверки всех дочерних объединений по низкой цене.
Узлы объединения должны поддерживать режим проверки наряду с режимом секвенсора.
Режим проверки проверяет состояние одного смарт-контракта и не отправляет пакеты транзакций на уровень DA, как в режиме секвенсора.
Если смарт-контракт меняет подкластер, валидаторам нужно только обновить подкластер, который они прослушивают, поскольку у них уже есть хранилище смарт-контракта, пока оно не будет переназначено.
Смарт-контракты должны обрабатываться в одном накопительном пакете за раз. Поскольку они ограничены накопительным пакетом, валидаторы с той же спецификацией должны иметь возможность отслеживать и проверять их.
Легкие узлы могут использовать доказательства ZK для дешевой проверки состояния цепочки.
Обозреватели блоков являются неотъемлемой частью системы блокчейн. Они облегчают запросы баланса для собственных активов, запросы смарт-контрактов и поддерживают историю транзакций от первого блока до текущего блока. В этой системе с несколькими сводными данными обозреватель блоков должен обеспечивать единое представление всех дополнительных объединений.
Обозреватель блоков должен поддерживать запрос баланса концентратора накопительных пакетов (для собственных активов) и истории транзакций всех дополнительных объединений.
Подобно системе единого объединения, обозреватели блоков используют для этого индекс. Система с несколькими сводными данными должна индексировать все сводные данные, чтобы предоставлять услуги запросов для любого смарт-контракта в системе.
Если концентратор объединения решает расширить количество дочерних объединений, обозреватель блоков должен быть готов обработать это. Им следует обеспечить большую емкость дополнительных объединений или иметь систему оркестрации контейнеров (например, Kubernetes) для автоматического масштабирования дополнительных объединений.
Им следует использовать номера блоков из уровня DA для обеспечения единообразия во всех объединениях.
в заключение
Приведенный выше дизайн на данный момент является всего лишь идеей, и я, возможно, никогда не реализую ее дальше, но я надеюсь, что идея вас заинтересует. Если проект пройдет успешно, я ожидаю, что он будет использоваться в проектах Rollup и приблизится к возможностям масштабирования EIP-4844, Celestia или Avail.
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Расширяя будущее: концепция проектирования системы с несколькими накопителями
Автор: АндреасЦионис; Источник: ethresear.ch; Составитель: Ивонн, MarsBit
В течение долгого времени у меня была идея решить некоторые проблемы, с которыми в настоящее время сталкивается Rollup, посредством мульти-Rollup (мульти-Rollup) дизайна. Около полутора лет я думал, что кто-нибудь ее построит, но никогда особо не вникал и не задумывался о деталях такой системы.
Прошло много времени, и, похоже, не существует ни одной конструкции, которая бы решала проблему, которую я описал в этом посте, поэтому я собираюсь заполнить детали этой системы как можно лучше в надежде, что кто-нибудь Вы можете почерпнуть из него вдохновение или даже из существующего накопительного пакета. Позаимствовать некоторые идеи.
представлять
Сегодня одна из проблем, с которыми сталкивается Rollup, — это взаимодействие с пользователем. Во многих проектах Rollups представляют собой независимые экосистемы с разными характеристиками. Существуют способы взаимодействия, но соединение нескольких разнородных систем является довольно сложной задачей. Кроме того, сложно убедить пользователей подписаться на все эти накопительные пакеты. Им приходится разбираться в каждом роллапе индивидуально, оценивать соответствующие смарт-контракты, подключать свои кошельки к новым конечным точкам RPC, соединять активы с цепочкой и т. д.
Что, если бы существовал дизайн накопительного пакета, обеспечивающий унифицированный интерфейс для всех накопительных пакетов? Как это будет выглядеть?
Я задавал себе этот вопрос и пришел к следующим пяти выводам:
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-24cc855280-dd1a6f-6d2ef1)
Принимая все это во внимание, я разработал конструкцию, состоящую из концентратора Rollup и переменного количества дополнительных накопителей. Концентратор Rollup является одновременно центром регистрации и балансировщиком нагрузки всех субагрегатов, но он не выполняет никакой обработки смарт-контрактов. Смарт-контракты обрабатываются в виде подагрегатов.
В следующем разделе я познакомлю вас с черновым проектом, объяснив 5 соображений, упомянутых выше.
Обзор дизайна
Система состоит из двух основных компонентов: концентратора Rollup и субагрегата. Система Rollup Hub состоит из двух основных компонентов: Rollup Hub и суб-Rollup. Концентратор накопительных пакетов — это накопительный пакет, который содержит все реестры смарт-контрактов всех подагрегатов и определяет, какой накопительный пакет отвечает за какой смарт-контракт. Кроме того, концентратор накопительных пакетов содержит реестр всех секвенсоров для другого дочернего накопительного пакета. Дочерние цепочки отвечают за выполнение транзакций для смарт-контрактов, назначенных им концентратором Rollup в реестре смарт-контрактов. Реестр сортировщика содержит два основных компонента для каждой системы сортировки: концентратор сводных данных и дочерний накопительный пакет. Концентратор накопительных пакетов — это накопительный пакет, который содержит все реестры смарт-контрактов всех подагрегатов и определяет, какой накопительный пакет отвечает за какой смарт-контракт. Кроме того, концентратор накопительных пакетов содержит реестр всех секвенсоров для другого дочернего накопительного пакета. Дочерние цепочки отвечают за выполнение транзакций для смарт-контрактов, назначенных им концентратором Rollup в реестре смарт-контрактов. Реестр секвенсора содержит каждую конечную точку RPC секвенсора и адрес DA.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-30f0cf6d9f-dd1a6f-6d2ef1)
Реестр секвенаторов
Реестр заказчика действует как глобальный адрес смарт-контракта для сопоставления адресов смарт-контракта. Это используется для маршрутизации вызовов RPC к конкретному RPC заказчика, соответствующему запрошенному или обновленному смарт-контракту.
Реестр смарт-контрактов
Реестр смарт-контрактов действует как сопоставление глобальных адресов смарт-контрактов с адресами смарт-контрактов.
Свернутая цепочка
Дочерние цепочки обычно имеют корень состояния. Этот маршрут состояния можно обновить, вызвав смарт-контракт напрямую или когда концентратор Rollup назначает смарт-контракт другому Rollup. В этом случае смарт-контракт следует удалить и заменить. Он добавляется в другие смарт-контракты.
Единый РПК
Цель: отсутствие необходимости подключаться к новой цепочке для каждого объединения и сделать транзакции между объединениями прозрачными для пользователей.
Унифицированный RPC восстанавливает пользовательский опыт одной цепочки в сети с несколькими объединениями, и пользователям не нужно подключаться к разным сетям, чтобы использовать разные объединения.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-74756eed1e-dd1a6f-6d2ef1)
Система использует реестр заказчиков Rollup из концентратора Rollup, чтобы найти конечную точку RPC заказчика, соответствующую конкретному смарт-контракту. Затем запрос передается непосредственно этому секвенатору. Несколько транзакций можно выполнить, отправив запросы в разные накопительные пакеты. Для получения более подробной информации ознакомьтесь со следующими разделами.
как работать
Хаб Rollup ведет реестр сортировщиков для всех подцепей.
Когда пользователь хочет отправить новую транзакцию, пользовательский кошелек запрашивает реестр смарт-контрактов, чтобы получить RollupID смарт-контракта, и запрашивает реестр секвенсора, чтобы получить конечную точку RPC секвенсора в том же агрегированном пакете.
Затем транзакция передается в конечную точку RPC секвенсора.
Балансировка нагрузки
Цель: сбалансировать затраты на все объединения.
Балансировка нагрузки позволяет сбалансировать нагрузку в Rollup. Когда система засоряется, могут быть созданы новые накопительные пакеты для обработки нагрузки. Когда пользы мало, Rollup можно удалить для экономии ресурсов. Кроме того, система может избежать скачков комиссий, перемещая смарт-контракты с высоким спросом в транзакциях в накопительные пакеты с большей доступной емкостью.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-632aa78015-dd1a6f-6d2ef1)
как работать
Каждую эпоху концентратор Rollup оценивает загрузку всех накопителей в системе. Эпохи должны длиться несколько часов (возможно, от 6 до 24 часов), чтобы избежать крупномасштабного перераспределения смарт-контрактов.
Центр накопительных пакетов может решать, какие смарт-контракты перераспределять, а также когда создавать или удалять накопительные пакеты; решение может приниматься автономно с помощью управления или с использованием истории потребления газа различными смарт-контрактами.
Центр Rollup проверяет, имеет ли какой-либо Rollup транзакционную нагрузку выше среднего (т. е. комиссии высокие) или ниже среднего (т. е. комиссии низкие).
Если нагрузка накопительного пакета выше средней, концентратор накопительных пакетов оценивает, какие смарт-контракты потребляют больше всего газа, и перераспределяет их в другой накопительный пакет, который может справиться с дополнительной нагрузкой. Затем смарт-контракт будет удален из исходного состояния объединения хоста.
Если средняя нагрузка всех накопительных пакетов выше средней, концентратор накопительных пакетов создаст новый накопительный пакет и назначит ему несколько смарт-контрактов. Аналогичным образом, если средняя загрузка всех накопительных пакетов ниже средней, концентратор накопительных пакетов удалит накопительный пакет и переназначит его смарт-контракты другим накопительным пакетам.
Цепочки Rollup должны проверять концентратор Rollup каждую эпоху, загружать хранилище для любых новых назначенных им смарт-контрактов и удалять любые смарт-контракты, которые больше не несут за них ответственность.
ПРИМЕЧАНИЕ. Загрузка хранилища некоторых смарт-контрактов может оказаться нетривиальной задачей. Во-первых, состояние недоступно на уровне DA и имеет довольно большой размер. Это ограничивает минимальное время эпохи, требуя льготного периода для подготовки хранилища смарт-контрактов.
Сортировка поощрений
Цель: использовать часть вознаграждений в собственном токене, чтобы стимулировать резервные секвенсоры.
Большинство Rollup сегодня построены на единой цепочке, управляемой только одним или несколькими заказчиками, с целью максимизировать время безотказной работы Rollup. Напротив, в системе с несколькими сводными документами существует несколько независимых дополнительных объединений, каждый из которых должен быть подключен к сети, чтобы оставаться активным во всей системе.
У сортировщиков, естественно, будет стимул присоединиться к Rollup для сбора MEV, но лучше предоставить этим сортировщикам соответствующие вознаграждения, поскольку они более последовательны и не искажают стимулы, такие как MEV. Эти вознаграждения должны исходить от денежно-кредитной политики центра Rollup.
Кроме того, хорошо иметь несколько заказчиков в режиме ожидания и готовых войти: эти заказчики могут присоединиться к системе, когда потребность в транзакциях возрастает, и покинуть систему, когда нет вычислительных ресурсов.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-02c28a977e-dd1a6f-6d2ef1)
Резервный секвенсор останется в очереди секвенатора и получит небольшое вознаграждение за обеспечение доступности. При обмене в Rollup они получают полную награду. Вознаграждения будут поступать от механизма сжигания комиссий в Rollup Hub.
как использовать
Заказчики могут присоединиться к очереди заказов в Rollup Hub, отправив финансовую гарантию (аналогично текущей системе Rollup).
Сортировщикам в очереди необходимо предоставить доказательства DA о том, что они имеют статус концентратора накопительного пакета и могут в любой момент прочитать данные, чтобы присоединиться к накопительному пакету.
Когда они представят доказательства, они будут частично вознаграждены — собственным токеном системы. Этот токен является дескриптором накопительного центра.
Если центр накопительных пакетов решит, что необходим новый накопительный пакет, они будут назначены и получат полное вознаграждение. Это вознаграждение определяется общей суммой комиссий, потребляемых в системе.
Перекрестные сводные транзакции
Цель: транзакции объединения должны быть мгновенными и прозрачными для пользователей.
Транзакция перекрестного накопительного пакета между накопительным пакетом A и накопительным пакетом B должна состоять из двух частей: 1) транзакция в накопительном пакете A 2) транзакция в накопительном пакете B. Это произойдет только в том случае, если транзакция в накопительном пакете A будет успешной и окончательной.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-6899964b00-dd1a6f-6d2ef1)
Для быстрого подтверждения кошельки пользователей могут проверить, была ли транзакция отправлена на базовый уровень DA, и доказать ее действительность с помощью ZK. Если транзакция включена и действительна, то секвенсор должен прийти к такому же выводу для этой конкретной транзакции.
За эту идею надо отдать должное Мустафе Аль-Басаму и Sovereign Labs.
как использовать
Пользователь отправляет транзакцию, содержащую три накопительных пакета, например накопительные пакеты A, B и C.
Давайте подумаем о конкретном примере: Rollup A имеет смарт-контракт стейблкоина, Rollup B имеет DEX, а Rollup C имеет кредитное соглашение. В этом примере пользователи хотят обменять свои стейблкоины на разные токены и свое соглашение о депозитном кредите.
Пользователи должны сначала отправить транзакцию Rollup A для перевода стейблкоинов на DEX в Rollup B.
Затем они могут отправить транзакцию Rollup B DEX, которая обменивает стейблкоин на желаемый токен в Rollup B.
В свою очередь, этот токен должен быть передан в RollupC, поэтому пользователь отправляет третью транзакцию, которая и делает именно это.
Наконец, пользователь отправляет четвертую и последнюю транзакцию, внося токены в протокол кредитования.
Облегченный узел и обозреватель блоков
Цель: легкие узлы должны иметь возможность проверять смарт-контракты в Rollup, а обозреватели блоков должны обеспечивать единое представление цепочки.
Система блокчейна должна позволять любому запускать узел и проверять саму цепочку. В этой многоуровневой конструкции, где смарт-контракты постоянно переназначаются различным подгруппам, должен быть способ отслеживать эти конкретные смарт-контракты. Это сдвиг в мышлении от проверки одной или нескольких цепочек к проверке одного или нескольких смарт-контрактов. Легкие узлы могут использовать доказательства ZK для проверки всех дочерних объединений по низкой цене.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-69f308abb1-dd1a6f-6d2ef1)
Как это работает (лёгкий клиент)
Узлы объединения должны поддерживать режим проверки наряду с режимом секвенсора.
Режим проверки проверяет состояние одного смарт-контракта и не отправляет пакеты транзакций на уровень DA, как в режиме секвенсора.
Если смарт-контракт меняет подкластер, валидаторам нужно только обновить подкластер, который они прослушивают, поскольку у них уже есть хранилище смарт-контракта, пока оно не будет переназначено.
Смарт-контракты должны обрабатываться в одном накопительном пакете за раз. Поскольку они ограничены накопительным пакетом, валидаторы с той же спецификацией должны иметь возможность отслеживать и проверять их.
Легкие узлы могут использовать доказательства ZK для дешевой проверки состояния цепочки.
Обозреватели блоков являются неотъемлемой частью системы блокчейн. Они облегчают запросы баланса для собственных активов, запросы смарт-контрактов и поддерживают историю транзакций от первого блока до текущего блока. В этой системе с несколькими сводными данными обозреватель блоков должен обеспечивать единое представление всех дополнительных объединений.
! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-217876ee66-dd1a6f-6d2ef1)
Как это работает (Проводник блоков)
Обозреватель блоков должен поддерживать запрос баланса концентратора накопительных пакетов (для собственных активов) и истории транзакций всех дополнительных объединений.
Подобно системе единого объединения, обозреватели блоков используют для этого индекс. Система с несколькими сводными данными должна индексировать все сводные данные, чтобы предоставлять услуги запросов для любого смарт-контракта в системе.
Если концентратор объединения решает расширить количество дочерних объединений, обозреватель блоков должен быть готов обработать это. Им следует обеспечить большую емкость дополнительных объединений или иметь систему оркестрации контейнеров (например, Kubernetes) для автоматического масштабирования дополнительных объединений.
Им следует использовать номера блоков из уровня DA для обеспечения единообразия во всех объединениях.
в заключение
Приведенный выше дизайн на данный момент является всего лишь идеей, и я, возможно, никогда не реализую ее дальше, но я надеюсь, что идея вас заинтересует. Если проект пройдет успешно, я ожидаю, что он будет использоваться в проектах Rollup и приблизится к возможностям масштабирования EIP-4844, Celestia или Avail.