O futuro da expansão da capacidade: conceito de design de sistema multi-Rollup

Autor: AndreasTzionis; Fonte: ethresear.ch; Compilador: Yvonne, MarsBit

Há muito tempo que tive a ideia de resolver alguns dos problemas enfrentados atualmente pelo Rollup através do design multi-Rollup (multi-Rollup). Por cerca de um ano e meio pensei que alguém iria construí-lo, mas nunca me aprofundei ou pensei nos detalhes de tal sistema.

Já faz um tempo e não parece haver um único design que resolva o problema que descrevi neste post, então vou preencher os detalhes deste sistema da melhor maneira possível, na esperança de que alguém pode se inspirar nele ou até mesmo em um Rollup existente. Pegue emprestado algumas ideias.

introduzir

Hoje, um dos problemas que o Rollup enfrenta é a experiência do usuário. Em muitos projetos, os Rollups são ecossistemas independentes com características diferentes. Existem maneiras de interoperar, mas conectar vários sistemas heterogêneos é um grande desafio. Além disso, é difícil atrair usuários para se inscreverem em todos esses rollups. Eles devem entender cada Rollup individualmente, avaliar os contratos inteligentes associados, conectar suas carteiras a novos endpoints RPC, conectar ativos à cadeia, etc.

E se houvesse um design de Rollup que fornecesse uma experiência unificada para todos os Rollups? Como será?

Tenho me feito essa pergunta e obtive os cinco insights a seguir:

Deve fornecer um RPC unificado para consultar e chamar diferentes contratos inteligentes em Rollup. Os contratos inteligentes devem ter um endereço exclusivo que não dependa do Rollup ao qual pertencem.

Deve permitir o aumento e a redução com base na procura. Mais transações devem significar mais Rollups para processá-las, e a carga desigual entre Rollups deve ser equilibrada.

Deve incentivar sequenciadores em diferentes Rollups a permanecerem online. O sistema deve encorajar outros classificadores a substituir o classificador offline.

Deve suportar transferências instantâneas entre cadeias. As transações devem ser liquidadas com rapidez suficiente para que as operações entre cadeias façam sentido.

Deve manter o cliente leve e bloquear a funcionalidade do explorador em várias mesclagens. Os exploradores de blocos devem fornecer uma visão unificada do blockchain, e os clientes leves devem permitir verificação de baixo custo.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-24cc855280-dd1a6f-6d2ef1)

Levando tudo isso em consideração, criei um design que consiste em um hub Rollup e um número variável de sub-Rollups. O hub Rollup é o centro de registro e o balanceador de carga de todos os sub-rollups, mas não realiza nenhum processamento de contrato inteligente. Os contratos inteligentes são tratados em sub-Rollups.

Na próxima seção, apresentarei um projeto básico explicando as 5 considerações que mencionei acima.

Visão geral do projeto

O sistema tem dois componentes principais: hub Rollup e sub-Rollup. O sistema de hub Rollup tem dois componentes principais: Hub Rollup e sub-Rollup. Um hub Rollup é um Rollup que contém todos os registros de contratos inteligentes de todos os sub-Rollups e determina qual Rollup é responsável por qual contrato inteligente. Além disso, o hub Rollup contém um registro de todos os sequenciadores de outro Rollup filho. As cadeias filhas são responsáveis pela execução de transações para contratos inteligentes atribuídos a elas pelo hub Rollup no registro de contratos inteligentes. O registro do classificador contém dois componentes principais para cada sistema de classificação: o hub de rollup e o rollup filho. Um hub Rollup é um Rollup que contém todos os registros de contratos inteligentes de todos os sub-Rollups e determina qual Rollup é responsável por qual contrato inteligente. Além disso, o hub Rollup contém um registro de todos os sequenciadores de outro Rollup filho. As cadeias filhas são responsáveis pela execução de transações para contratos inteligentes atribuídos a elas pelo hub Rollup no registro de contratos inteligentes. O registro do sequenciador contém cada endpoint RPC do sequenciador e endereço DA.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-30f0cf6d9f-dd1a6f-6d2ef1)

Registro de sequenciadores

O registro do sequenciador atua como um mapeamento de endereços de contratos inteligentes globais para endereços de contratos inteligentes. Isso é usado para rotear chamadas RPC para o RPC do sequenciador específico correspondente ao contrato inteligente consultado ou atualizado.

Registro de Contrato Inteligente

O registro de contratos inteligentes atua como um mapeamento de endereços globais de contratos inteligentes para endereços de contratos inteligentes.

Cadeia de acúmulo

Cadeias filhas geralmente têm uma raiz de estado. Essa rota de estado pode ser atualizada chamando o contrato inteligente diretamente ou quando o hub Rollup atribui o contrato inteligente a outro Rollup. Nesse caso, o contrato inteligente deve ser excluído e substituído. Ele é adicionado a outros contratos inteligentes.

RPC unificado

Objetivo: não precisar se conectar a uma nova cadeia para cada rollup e tornar as transações de rollup cruzadas transparentes para os usuários.

O RPC unificado restaura a experiência do usuário de uma única cadeia em uma rede multi-rollup, e os usuários não precisam se conectar a redes diferentes para usar rollups diferentes.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-74756eed1e-dd1a6f-6d2ef1)

O sistema usa um registro de solicitantes Rollup do hub Rollup para encontrar o endpoint RPC do solicitante correspondente a um contrato inteligente específico. A solicitação é então enviada diretamente para esse sequenciador. Várias transações podem ser concluídas enviando solicitações para diferentes Rollups. Confira as seções a seguir para obter mais detalhes.

como trabalhar

O hub Rollup mantém um registro de sequenciadores para todas as cadeias filhas.

Quando um usuário deseja enviar uma nova transação, a carteira do usuário consulta o registro do contrato inteligente para obter o RollupID do contrato inteligente e consulta o registro do sequenciador para obter o terminal RPC do sequenciador no mesmo rollup.

A transação é então enviada ao endpoint RPC do solicitante.

Balanceamento de carga

Objetivo: Equilibrar os custos de todos os rollups

O balanceamento de carga permite equilibrar a carga no Rollup. Quando o sistema fica obstruído, novos rollups podem ser gerados para lidar com a carga. Quando não há muita utilidade, o Rollup pode ser removido para economizar recursos. Além disso, o sistema pode evitar picos de taxas ao mover contratos inteligentes com alta demanda em transações para rollups com mais capacidade disponível.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-632aa78015-dd1a6f-6d2ef1)

como trabalhar

A cada época, o hub Rollup avalia a carga de todos os Rollups no sistema. A época deve durar várias horas (possivelmente de 6 a 24 horas) para evitar realocações massivas de contratos inteligentes.

O hub Rollup pode decidir quais contratos inteligentes realocar e quando gerar ou excluir Rollups, seja usando governança ou usando o histórico de consumo de gás de diferentes contratos inteligentes para decidir de forma autônoma.

O hub Rollup verifica se algum Rollup tem uma carga de transação acima da média (ou seja, as taxas são altas) ou abaixo da média (ou seja, as taxas são baixas).

Se a carga de um rollup for superior à média, o hub de rollup avaliará quais contratos inteligentes consomem mais gás e os realocará para um rollup diferente que possa lidar com a carga extra. O contrato inteligente será então removido do seu estado inicial de rollup do host.

Se a carga média de todos os Rollups for superior à média, o hub Rollup criará um novo Rollup e atribuirá alguns contratos inteligentes ao novo Rollup. Da mesma forma, se a carga média de todos os Rollups estiver abaixo da média, o hub Rollup excluirá um Rollup e reatribuirá seus contratos inteligentes a outros Rollups.

As cadeias de rollup devem examinar o hub Rollup a cada época, baixar o armazenamento para quaisquer novos contratos inteligentes atribuídos a elas e excluir quaisquer contratos inteligentes que não sejam mais responsáveis por eles.

Nota: Baixar o armazenamento para alguns contratos inteligentes pode não ser uma tarefa trivial. Primeiro, o estado não está disponível na camada DA e é bastante grande. Isso limita o tempo mínimo de época e requer um período de carência para preparar o armazenamento de contrato inteligente.

Classificação de incentivos

Objetivo: usar uma parte das recompensas do token nativo para incentivar sequenciadores de backup.

A maioria dos rollups hoje são construídos em uma única cadeia, gerenciada por um ou poucos solicitantes, com o objetivo de maximizar o tempo de atividade do rollup. Por outro lado, em um sistema multi-rollup, existem vários sub-rollups independentes, cada um dos quais deve estar on-line para permanecer ativo no sistema geral.

Os sequenciadores são naturalmente incentivados a participar de Rollups para coletar MEV, mas é melhor fornecer recompensas apropriadas para esses sequenciadores, pois eles são mais consistentes e não têm incentivos equivocados como o MEV. Essas recompensas deveriam vir da política monetária do hub Rollup.

Além disso, é melhor ter vários sequenciadores em espera e prontos para entrar, e esses sequenciadores podem ingressar no sistema quando a demanda de transação aumentar e sair do sistema quando os recursos computacionais não estiverem disponíveis.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-02c28a977e-dd1a6f-6d2ef1)

O sequenciador em espera permanecerá na fila do sequenciador e receberá uma pequena recompensa por compromisso de disponibilidade. Quando eles são trocados em um Rollup, eles serão recompensados integralmente. As recompensas virão do mecanismo de queima de taxas do hub Rollup.

Como usar

Os classificadores podem ingressar na fila de classificadores do hub Rollup enviando um título financeiro (semelhante ao sistema Rollup atual).

Os solicitantes na fila precisam fornecer prova de DA de que possuem status de hub de Rollup e podem ser lidos para ingressar no Rollup a qualquer momento.

Ao enviarem as evidências, receberão parte da recompensa, que são os tokens nativos do sistema. Esse token é um identificador no hub Rollup.

Se o hub Rollup decidir que precisa de um novo Rollup, eles serão atribuídos e receberão a recompensa integral. Essa recompensa é determinada pelo valor total das taxas consumidas no sistema.

Transações de rollup cruzado

Objetivo: as transações de rollup devem ser instantâneas e transparentes para os usuários.

A transação rollup cruzada entre o Rollup A e o Rollup B precisa ter duas partes: 1) a transação no Rollup A 2) a transação no Rollup B. Ela só ocorrerá quando a transação no Rollup A for bem-sucedida e final.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-6899964b00-dd1a6f-6d2ef1)

Para confirmação rápida, as carteiras dos usuários podem verificar se a transação foi enviada à camada DA subjacente e provar que é válida usando ZK. Se a transação estiver incluída e for válida, o sequenciador deverá chegar à mesma conclusão para aquela transação específica.

O crédito vai para Mustafa Al-Bassam e Sovereign Labs por esta ideia.

Como usar

Um usuário envia uma transação que inclui três Rollups, digamos RollupA, B e C.

Vamos pensar em um exemplo concreto, o Rollup A tem um contrato inteligente de stablecoin, o Rollup B tem um DEX e o Rollup C tem um contrato de empréstimo, neste exemplo, os usuários desejam trocar suas stablecoins por tokens diferentes, e seu contrato de empréstimo de depósito.

Os usuários devem primeiro enviar uma transação Rollup A para transferir stablecoins para o DEX no Rollup B.

Eles podem então enviar uma transação Rollup B DEX que troca o stablecoin pelo token desejado no Rollup B.

Por sua vez, esse token deve ser transferido para o RollupC, para que o usuário envie uma terceira transação, que faz exatamente isso.

Por fim, o usuário envia a quarta e última transação, depositando os tokens no protocolo de empréstimo.

Nó leve e explorador de blocos

Objetivo: os nós leves devem ser capazes de verificar contratos inteligentes em todo o Rollup, e os exploradores de blocos devem fornecer uma visão unificada da cadeia.

Um sistema blockchain deve permitir que qualquer pessoa execute um nó e verifique a própria cadeia. Neste projeto multi-rollup, onde os contratos inteligentes são constantemente reatribuídos a diferentes sub-rollups, deve haver uma maneira de acompanhar esses contratos inteligentes específicos. Esta é uma mudança de pensamento da validação de uma ou mais cadeias para a validação de um ou mais contratos inteligentes. Os nós leves podem usar provas ZK para verificar todos os rollups filhos a baixo custo.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-69f308abb1-dd1a6f-6d2ef1)

Como funciona (cliente leve)

Os nós de rollup devem suportar um modo de validação, juntamente com o modo sequenciador.

O modo de verificação verifica o estado de um único contrato inteligente e não envia lotes de transações para a camada DA como o modo sequenciador.

Se um contrato inteligente alterar um subcluster, os validadores só precisarão atualizar o subcluster que estão escutando, uma vez que já possuíam o armazenamento do contrato inteligente até a realocação.

Os contratos inteligentes devem ser processados em um Rollup de cada vez. Como estão limitados a um Rollup, os validadores com a mesma especificação devem ser capazes de rastreá-los e validá-los.

Os nós leves podem usar provas ZK para verificar o estado da cadeia com baixo custo.

Os exploradores de blocos são parte integrante do sistema blockchain. Eles facilitam consultas de saldo para ativos nativos, consultas de contratos inteligentes e mantêm o histórico de transações desde o primeiro bloco até o bloco atual. Neste sistema multi-rollup, o explorador de blocos deve fornecer uma visão unificada de todos os sub-rollups.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-217876ee66-dd1a6f-6d2ef1)

Como funciona (Block Explorer)

O explorador de blocos deve suportar a consulta do saldo do hub Rollup (para ativos nativos) e o histórico de transações de todos os sub-Rollups.

Semelhante a um sistema de rollup único, os exploradores de blocos usam índices para conseguir isso. Um sistema multi-rollup deve indexar todos os rollups para fornecer serviços de consulta para qualquer contrato inteligente no sistema.

Se o hub de rollup decidir expandir o número de rollups secundários, o explorador de blocos deverá estar pronto para lidar com isso. Eles devem fornecer mais capacidade de sub-rollup ou ter um sistema de orquestração de contêineres (como Kubernetes) para aumentar automaticamente os sub-rollups.

Eles devem usar números de bloco da camada DA para manter a consistência em todos os rollups.

para concluir

O design acima é apenas uma ideia no momento e talvez nunca mais o implemente, mas espero que a ideia lhe interesse. Se o projeto for aprovado, espero que possa ser usado no projeto Rollup e se aproximar das capacidades de expansão do EIP-4844, Celestia ou Avail.

Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)