Cadeias de blocos agregadas

Intermediário2/25/2024, 3:48:51 AM
Este artigo irá aprofundar o que é a camada de agregação, como funciona e como difere dos sequenciadores ou validadores partilhados.

Gostaria de fazer duas afirmações:

  1. Nenhuma cadeia isolada, seja L1 ou L2, pode suportar o débito necessário para atingir a escala da Internet.
  2. Dimensionar as cadeias de blocos significa dimensionar o acesso à liquidez e ao estado partilhado. Adicionar espaço de blocos através de várias cadeias não funciona se fragmentar a liquidez.

Isto representa um desafio tanto para a visão modular como para a visão monolítica da escalabilidade da cadeia de blocos. (1) é um desafio à visão monolítica, que defende que uma única cadeia de alto rendimento é a melhor forma de escalar. (2) é um desafio para a visão modular, porque significa que um ecossistema multi-cadeias ou multi-rolos não é suficiente para aumentar a escala num sentido significativo: aumentar o acesso ao estado partilhado e à liquidez...

Se (1) e (2) forem verdadeiras, então para resolver o problema da escalabilidade é necessário escalar o acesso ao estado partilhado e à liquidez em muitas cadeias. A solução da Polygon é a Camada de Agregação, ou "AggLayer". O AggLayer proporciona segurança para transacções quase instantâneas entre cadeias e permite um estado unificado e liquidez entre cadeias.

Este post vai abordar o que é o AggLayer, como funciona e como é diferente de um sequenciador ou provador partilhado.

O problema

Há um problema com as L2: a liquidez e o Estado estão fragmentados entre os rollups e a L1.

Isto é mau do ponto de vista da usabilidade porque introduz complexidade, mas também é dispendioso. A fragmentação da liquidez significa maior derrapagem e pior execução. Os Rollups Optimistas (ORs) exigem que os utilizadores paguem pontes de terceiros dispendiosas para evitar o atraso de sete dias na retirada. Até mesmo os ZK Rollups (ZKRs) exigem que os utilizadores façam uma viagem de ida e volta ao Ethereum para transacções sem confiança entre cadeias.

Finalidade e validade

Eis porque é que as transacções de baixa latência e sem confiança entre cadeias não são atualmente possíveis.

Suponha que existem dois rollups, Cadeia A e Cadeia B, que partilham uma ponte para L1. Alice na cadeia A gostaria de pagar a Bob na cadeia B, por isso Alice bloqueia ou queima fichas na cadeia A para transferir para a cadeia B.

São necessárias duas coisas para que a cadeia B credite com segurança esses tokens ao Bob.

  1. O lote que contém a transação da Alice deve ser finalizado no Ethereum L1.
  2. A cadeia B deve ser capaz de verificar se o estado resultante da cadeia A é válido após a transação da Alice.


Se o lote que contém as transacções de Alice não for finalizado no Ethereum, então a Cadeia A poderia equivocar-se para a Cadeia B e gastar duas vezes, mantendo os fundos de Alice na Cadeia A e cunhando os fundos de Bob na Cadeia B. Da mesma forma, se a Cadeia B não verificar uma prova de validade para A, então a Cadeia A poderia incluir uma transação inválida e roubar fundos de B.

(1) e (2) significam que as transacções sem confiança entre cadeias não podem ter baixa latência. (1) requer atualmente 12 minutos, enquanto (2) requer a espera da duração do período de desafio nas RUP e alguns minutos para a geração de provas nas ZKR.

Uma boa experiência de utilizador é incompatível com uma latência de 20 minutos. A camada de agregação foi concebida para resolver este problema.

A camada de agregação

O Polygon é um ecossistema de L2s alimentados por ZK que se estabelecem no Ethereum. A Camada de Agregação é um protocolo descentralizado operado por nós apostados que garante segurança para transações de baixa latência e entre cadeias e uma ponte unificada [1].

Neste contexto, entende-se por "segurança" o seguinte:

É impossível que o estado de um rollup seja finalizado/liquidado no Ethereum se esse estado da cadeia depender de um estado inválido ou não finalizado de outra cadeia, ou se incluir uma transação de um pacote atómico [2] que não tenha sido executado com sucesso em todas as outras cadeias.

Por outras palavras, um estado da cadeia B não pode ser finalizado no Ethereum se depender de um estado inválido ou não finalizado da cadeia A.

Esta garantia é importante. Permite que a Cadeia B interopere com segurança com a Cadeia A em latência super baixa, antes que o estado da Cadeia A tenha sido finalizado no Ethereum ou que uma prova tenha sido gerada.

Como funciona a camada de agregação

A camada de agregação funciona em três fases. Suponha que a cadeia A é uma cadeia alimentada por ZK que funciona no ecossistema Polygon.

  1. Pré-Confirmação: A cadeia A apresenta um cabeçalho para um novo bloco/lote A1 ao
  2. AggLayer juntamente com uma prova ligeira do cliente. O cabeçalho inclui compromissos com todos
  3. outros blocos e agrupamentos de que Ar depende (B1, C1, etc.). Quando o novo lote é
  4. aceite sem uma prova de validade, é considerado "pré-confirmado" pelo AggLayer.
  5. Confirmação: A cadeia A, ou qualquer nó completo de A, gera uma prova para A1 e submete-a à camada AggLayer. Quando a prova é verificada pelo AggLayer, A1 é confirmada se todos os lotes de que depende também forem confirmados.
  6. Finalização: Depois de A1 ser confirmada, a sua prova é agregada juntamente com lotes de outros rollups numa única prova que é colocada no Ethereum. A prova agregada garante que os estados e os conjuntos de cadeias dependentes são consistentes.

As cadeias podem navegar por si próprias no espaço de compromisso entre latência e garantias de vivacidade. Uma cadeia pode optar por interoperar com outra cadeia após o passo de pré-confirmação para transacções entre cadeias de latência super baixa, mas fundamentalmente, este modelo é compatível com cadeias à espera de confirmação, ou mesmo de finalização.

A garantia de segurança para transacções entre cadeias é aplicada na terceira etapa. Vamos aprofundar a forma como esta conceção permite uma interação segura entre cadeias.

Interoperabilidade assíncrona

Veja o primeiro exemplo de uma transferência entre cadeias. Alice na Cadeia A quer bloquear ou queimar alguns tokens no bloco A1 para cunhar e transferir tokens para Bob na Cadeia B. Se a Cadeia B não esperar até que A1 seja finalizado no Ethereum com uma prova válida, então a Cadeia A pode equivocar-se ou dar à Cadeia B um estado inválido.

A camada de agregação resolve este problema de uma forma simples. A cadeia B pode assumir temporariamente que A1 é válido e será finalizado no Ethereum, sem sequer esperar por uma prova. O sequenciador da cadeia B compromete-se com a raiz de estado A1 da cadeia A reivindicada como uma dependência no cabeçalho de B1 (como B1A1 ) antes de a submeter à camada de agregação. A latência necessária para a cadeia B construir B1 diminui de 20 minutos para, no máximo, alguns segundos.

Na etapa de confirmação, a camada de agregação constrói um gráfico de dependências para cada bloco/lote apresentado. Por exemplo, se A1 depende de B1, que por sua vez depende de B1, C1 é confirmado assim que uma prova πC1 é apresentada. Mas, mesmo que πA1 seja recebida, πA1 só é confirmada com πC1 e πB1. O aspeto crítico desta conceção é o facto de o circuito de agregação de provas impor a consistência entre dependências. Se B1A1 for inconsistente com o bloco A1 que a cadeia A submete, ou se faltar uma prova para A1′, então B1 não pode ser incluído no lote agregado finalizado no Ethereum.

Este mecanismo garante que, se a cadeia A se equivocar ou apresentar um bloco inválido, digamos A1′, então qualquer lote que dependa de uma raiz de estado inválida ou equivocada para a cadeia A não pode ser finalizado/liquidado no Ethereum. Mesmo que o próprio AggLayer se equivoque, as cadeias têm uma garantia criptográfica de que qualquer bloco que dependa de um bloco inválido ou equivocado não pode ser finalizado, porque duas provas para estados da cadeia que sejam inconsistentes ou inválidas não podem ser agregadas no circuito de agregação de provas. Isto garante que a propriedade de segurança descrita acima é preservada.

Interoperabilidade atómica

O mecanismo de segurança pode ser alargado ao caso atómico. Suponha que um utilizador submete um pacote atómico de transacções a várias cadeias. Este pacote é ordenado, pelo que o resultado da execução da transação na Cadeia A é transmitido à Cadeia B e, do mesmo modo, o estado atualizado da Cadeia B é transmitido à Cadeia C, etc. Se todas as transacções forem executadas com êxito em todas as cadeias, o pacote é incluído; caso contrário, é rejeitado.

O ideal seria permitir a inclusão de transacções atómicas sem:

  1. Exigir que o operador da cadeia B execute um nó completo para todas as outras cadeias incluídas num pacote; ou
  2. Aceitar o risco de que o pacote possa ser parcialmente incluído no Ethereum (prejudicando as cadeias participantes).

Isto levanta um problema de segurança semelhante ao do caso assíncrono: A cadeia A pode equivocar-se e submeter um lote que não inclui realmente o pacote atómico, ou enviar um resultado inválido para a cadeia B.

Felizmente, o mesmo mecanismo do caso assíncrono pode ser reutilizado para o caso atómico. A cadeia B faz commits em pacotes e recebe resultados de transacções de outras cadeias. A camada de agregação (e o circuito de agregação de provas) verifica se os pacotes são consistentes entre cadeias. Um lote contendo um pacote da Cadeia B só pode ser finalizado/liquidado no Ethereum se todas as transacções no pacote forem executadas com sucesso.

Composibilidade entre cadeias

A camada de agregação permite a composição de cadeia cruzada de latência super baixa através de chamadas assíncronas de cadeia cruzada. Esta é uma primitiva incrivelmente poderosa: os contratos podem chamar com segurança contratos noutras cadeias com uma latência super baixa, sem esperar pela finalidade do Ethereum. Um utilizador pode entrar na cadeia OKX no Polygon e depositar imediatamente num mercado de empréstimos altamente líquido no Aave, numa cadeia diferente, com um só clique, sem ter de trocar de um ativo sintético.

Infraestrutura de coordenação emergente

A AggregationLayer garante que as interacções quase instantâneas entre cadeias serão seguras [3]. Mas isto é apenas metade da batalha. Como é que os operadores da cadeia partilham e confiam nos estados da cadeia uns dos outros? Como é que coordenam a produção de feixes atómicos?

Um objetivo de conceção para a AggLayer é que seja mínima. O seu objetivo é garantir a segurança e fornecer uma base que permita a qualquer pessoa construir uma infraestrutura de coordenação que ofereça vivacidade numa variedade de cenários diferentes.

Os operadores das cadeias podem escolher livremente entre mecanismos de coordenação emergentes em função dos seus pressupostos de confiança - estes podem incluir retransmissores, infra-estruturas de provadores partilhados ou clusters de sequenciadores de validade partilhados [4]. Estes protegem as cadeias contra problemas de vivacidade quando dependem de outros estados ou pacotes de cadeias.

O ecossistema Polygon dá prioridade à escolha e à soberania das cadeias. As cadeias podem executar os seus próprios ambientes de execução modificados, utilizar os seus próprios tokens para as taxas de staking e de gás, escolher os seus próprios mecanismos de disponibilidade de dados, etc. Do mesmo modo, as cadeias devem decidir como lidar com as soluções de compromisso entre a interoperabilidade e o risco de falhas de vivacidade. Existem várias opções:

  1. A cadeia B pode optar por não participar totalmente na interoperabilidade rápida e na camada agregadora. Pode simplesmente enviar lotes e provas diretamente para o Ethereum e a finalização nunca é atrasada.
  2. A cadeia B só pode aceitar o estado da cadeia A quando o estado da cadeia A for confirmado pela camada AggLayer. A cadeia B só será atrasada se o AggLayer se equivocar.
  3. A cadeia B pode aceitar o estado da cadeia A quando a cadeia A é pré-confirmada pela camada AggLayer. A cadeia B será atrasada se o AggLayer se equivocar ou se a cadeia A não apresentar uma prova.
  4. A cadeia B pode aceitar o estado da cadeia A numa configuração ponto-a-ponto, sem verificar se a cadeia A está pré-confirmada na AggLayer. A cadeia B será atrasada se a cadeia A se equivocar ou não apresentar uma prova.

Um aspeto importante a ter em conta é que os utilizadores não podem causar falhas de vivacidade, apenas as cadeias que se comportam mal ou que funcionam mal. A equívoca e a apresentação de um bloco inválido podem ser fortemente penalizadas, quer através de slashing, quer através da ejeção de cadeias da AggLayer, impedindo a sua capacidade de interoperar sem problemas. Por conseguinte, uma falha de vivacidade deve ser extremamente rara.

As cadeias podem tomar precauções adicionais para minimizar o risco de problemas de liveness, mantendo listas brancas ou negras de outras cadeias com as quais interoperam e definindo limites para o número de cadeias que podem estar coletivamente envolvidas em qualquer lote. Podem confiar em terceiros que gerem nós completos para garantir que, se uma cadeia ficar offline antes de poder produzir uma prova, existe um provador de reserva.

O mecanismo pelo qual as cadeias se coordenam para aceitar feixes atómicos também é flexível. Por exemplo, um subconjunto de cadeias pode interoperar num cluster de sequenciação de validade partilhada para uma latência extremamente baixa, ou pode recorrer a retransmissores.

Um retransmissor com segurança criptoeconómica poderia permitir a interoperabilidade entre as cadeias A e B, executando um nó completo para ambas as cadeias e atestando que os estados de cada cadeia são válidos. Mesmo que a cadeia A ou B pré-confirme um novo lote e depois fique offline, a infraestrutura partilhada do provador pode intervir para gerar uma prova.

Pode imaginar novas infra-estruturas de coordenação a emergir sobre a base de segurança fornecida pela AggLayer, permitindo novas e melhores formas de interoperabilidade e liquidez partilhada. Crucialmente, todo o ecossistema Polygon não precisa de partilhar a mesma infraestrutura ou os mesmos pressupostos de confiança. Não precisa de funcionar com um único sequenciador ou provador de validade partilhado. Esta é uma vantagem extremamente importante em relação às salas de cirurgia.

closing

A camada de agregação permite-nos, fundamentalmente, criar um ecossistema de várias cadeias que dá a sensação de estar a utilizar uma única cadeia. É a síntese das teses monolíticas e modulares: estado unificado, liquidez e capacidade de composição, com a escalabilidade ilimitada de um ecossistema multi-cadeia.

Agregação em ZK vs Sistemas Optimistas

Esta é uma visão que, fundamentalmente, só está disponível para sistemas baseados em ZK. Vou desenvolver este ponto numa publicação futura, mas os ecossistemas optimistas que pretendam permitir uma interoperabilidade rápida devem basear-se em sequenciadores de validade partilhados. Trata-se de um mau negócio para as cadeias: impede-as de redistribuir as taxas dos sequenciadores e do MEV, os sequenciadores de validade partilhada obrigam as cadeias a aceitar potencialmente restrições nos seus ambientes de execução e a interoperabilidade nos sistemas baseados em RUP obriga as cadeias a aceitar pressupostos de confiança adicionais em troca de uma baixa latência.

Além disso, a interoperabilidade entre cadeias quebra uma propriedade importante das RUP. Com os ORs de cadeia única, qualquer pessoa pode executar um nó completo para um OR e confirmar imediatamente que as transacções são válidas e finalizadas assim que são lançadas nos L1s. Isto já não é verdade no caso das cadeias múltiplas - agora é necessário executar um nó completo para cada cadeia com a qual o RUP interage.

Em contrapartida, a visão da Polygon é uma visão em que as cadeias são soberanas. Podem utilizar qualquer ambiente de execução, podem confiar em qualquer sequenciador centralizado ou descentralizado e podem navegar por si próprios nas compensações entre latência e vivacidade da cadeia cruzada.

Esta é uma visão que reflecte a Internet existente. A Internet é um ambiente elasticamente escalável, sem permissões e unificado. Da mesma forma, a AggLayer é escalável e sem permissões - não impõe restrições às cadeias participantes - e permite que os utilizadores movam activos e estado sem problemas através do ecossistema, apresentando uma interface unificada para a camada de valor da Internet.

Este é o futuro do Polygon: não monolítico, não totalmente modular, mas agregado.

[1] Parte da garantia de liquidez unificada é livrar-se da terrível experiência de utilização de tokens sintéticos embrulhados em pontes. Os utilizadores da ponte LxLy da Polygon podem transferir sem problemas activos entre cadeias, preservando a fungibilidade. No entanto, para o fazer de forma segura, precisamos de nos proteger contra a segurança weakest-link - ou um atacante que corrompe uma única cadeia e drena todos os fundos de todas as cadeias na ponte. Discutirei como fazer isto num post futuro, mas o AggLayer pode aproveitar o passo de agregação de provas para impor a contabilidade ao nível da cadeia, evitando a segurança do elo mais fraco.

[2] Quando faço referência a transacções atómicas entre cadeias, refiro-me à possibilidade de um utilizador submeter um "pacote" ou conjunto de transacções em várias cadeias. O pacote atómico tem a propriedade de as suas transacções serem incluídas em cada cadeia relevante se e só se todas as transacções forem executadas com êxito. Se uma única transação falhar, então o pacote não pode ser incluído em nenhuma cadeia.

O exemplo mais básico é novamente a nossa transferência entre cadeias. Digamos que Alice quer enviar 1 ETH para Bob, mas Alice está na Cadeia A e Bob está na Cadeia B. Assumindo uma ponte nativa partilhada para ambos os rollups, Alice pode queimar a sua ETH na Cadeia A e cunhar ETH na Cadeia B que é transferida para Bob. Mas é fundamental garantir que não pode cunhar ETH sem a queimar ou vice-versa - ou pode perder a sua ETH ou subgarantir a ponte.

É por isso que as transacções atómicas são tão importantes. Para permitir interacções de baixa latência entre cadeias e fazer com que a utilização do ecossistema Polygon se assemelhe à utilização de uma única cadeia, são necessárias garantias atómicas.

[3] Trata-se de um ponto subtil, mas na perspetiva do ecossistema - o AggLayer proporciona segurança, mas na perspetiva de uma única cadeia, esta conceção dá prioridade à vivacidade em detrimento da segurança, uma vez que a cadeia B pode depender de um estado da cadeia A que é inválido. Neste caso, a cadeia B não será aceite pela AggLayer (imposta pelo circuito de agregação de provas) e terá de construir um novo bloco sem a dependência de A.

[4] A nossa abordagem, no seu conjunto, deve muito à conceção da Sequenciação de Validade Partilhada da Umbra Research.

2/9/24 - Actualizou este projeto para clarificar algumas comparações entre agregação e sequenciação partilhada. A tese agregada depende de mecanismos como sequenciadores partilhados, retransmissores e construtores para facilitar a coordenação entre cadeias. Por sua vez, a camada de proteção garante a segurança.

Declaração de exoneração de responsabilidade:

  1. Este artigo foi reimpresso de [[Brendan Farmer], Todos os direitos de autor pertencem ao autor original[Brendan Farmer]. Se houver objecções a esta reimpressão, contacte a equipa da Gate Learn, que tratará prontamente do assunto.
  2. Declaração de exoneração de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são da exclusiva responsabilidade do autor e não constituem um conselho de investimento.
  3. As traduções do artigo para outras línguas são efectuadas pela equipa Gate Learn. A menos que seja mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Cadeias de blocos agregadas

Intermediário2/25/2024, 3:48:51 AM
Este artigo irá aprofundar o que é a camada de agregação, como funciona e como difere dos sequenciadores ou validadores partilhados.

Gostaria de fazer duas afirmações:

  1. Nenhuma cadeia isolada, seja L1 ou L2, pode suportar o débito necessário para atingir a escala da Internet.
  2. Dimensionar as cadeias de blocos significa dimensionar o acesso à liquidez e ao estado partilhado. Adicionar espaço de blocos através de várias cadeias não funciona se fragmentar a liquidez.

Isto representa um desafio tanto para a visão modular como para a visão monolítica da escalabilidade da cadeia de blocos. (1) é um desafio à visão monolítica, que defende que uma única cadeia de alto rendimento é a melhor forma de escalar. (2) é um desafio para a visão modular, porque significa que um ecossistema multi-cadeias ou multi-rolos não é suficiente para aumentar a escala num sentido significativo: aumentar o acesso ao estado partilhado e à liquidez...

Se (1) e (2) forem verdadeiras, então para resolver o problema da escalabilidade é necessário escalar o acesso ao estado partilhado e à liquidez em muitas cadeias. A solução da Polygon é a Camada de Agregação, ou "AggLayer". O AggLayer proporciona segurança para transacções quase instantâneas entre cadeias e permite um estado unificado e liquidez entre cadeias.

Este post vai abordar o que é o AggLayer, como funciona e como é diferente de um sequenciador ou provador partilhado.

O problema

Há um problema com as L2: a liquidez e o Estado estão fragmentados entre os rollups e a L1.

Isto é mau do ponto de vista da usabilidade porque introduz complexidade, mas também é dispendioso. A fragmentação da liquidez significa maior derrapagem e pior execução. Os Rollups Optimistas (ORs) exigem que os utilizadores paguem pontes de terceiros dispendiosas para evitar o atraso de sete dias na retirada. Até mesmo os ZK Rollups (ZKRs) exigem que os utilizadores façam uma viagem de ida e volta ao Ethereum para transacções sem confiança entre cadeias.

Finalidade e validade

Eis porque é que as transacções de baixa latência e sem confiança entre cadeias não são atualmente possíveis.

Suponha que existem dois rollups, Cadeia A e Cadeia B, que partilham uma ponte para L1. Alice na cadeia A gostaria de pagar a Bob na cadeia B, por isso Alice bloqueia ou queima fichas na cadeia A para transferir para a cadeia B.

São necessárias duas coisas para que a cadeia B credite com segurança esses tokens ao Bob.

  1. O lote que contém a transação da Alice deve ser finalizado no Ethereum L1.
  2. A cadeia B deve ser capaz de verificar se o estado resultante da cadeia A é válido após a transação da Alice.


Se o lote que contém as transacções de Alice não for finalizado no Ethereum, então a Cadeia A poderia equivocar-se para a Cadeia B e gastar duas vezes, mantendo os fundos de Alice na Cadeia A e cunhando os fundos de Bob na Cadeia B. Da mesma forma, se a Cadeia B não verificar uma prova de validade para A, então a Cadeia A poderia incluir uma transação inválida e roubar fundos de B.

(1) e (2) significam que as transacções sem confiança entre cadeias não podem ter baixa latência. (1) requer atualmente 12 minutos, enquanto (2) requer a espera da duração do período de desafio nas RUP e alguns minutos para a geração de provas nas ZKR.

Uma boa experiência de utilizador é incompatível com uma latência de 20 minutos. A camada de agregação foi concebida para resolver este problema.

A camada de agregação

O Polygon é um ecossistema de L2s alimentados por ZK que se estabelecem no Ethereum. A Camada de Agregação é um protocolo descentralizado operado por nós apostados que garante segurança para transações de baixa latência e entre cadeias e uma ponte unificada [1].

Neste contexto, entende-se por "segurança" o seguinte:

É impossível que o estado de um rollup seja finalizado/liquidado no Ethereum se esse estado da cadeia depender de um estado inválido ou não finalizado de outra cadeia, ou se incluir uma transação de um pacote atómico [2] que não tenha sido executado com sucesso em todas as outras cadeias.

Por outras palavras, um estado da cadeia B não pode ser finalizado no Ethereum se depender de um estado inválido ou não finalizado da cadeia A.

Esta garantia é importante. Permite que a Cadeia B interopere com segurança com a Cadeia A em latência super baixa, antes que o estado da Cadeia A tenha sido finalizado no Ethereum ou que uma prova tenha sido gerada.

Como funciona a camada de agregação

A camada de agregação funciona em três fases. Suponha que a cadeia A é uma cadeia alimentada por ZK que funciona no ecossistema Polygon.

  1. Pré-Confirmação: A cadeia A apresenta um cabeçalho para um novo bloco/lote A1 ao
  2. AggLayer juntamente com uma prova ligeira do cliente. O cabeçalho inclui compromissos com todos
  3. outros blocos e agrupamentos de que Ar depende (B1, C1, etc.). Quando o novo lote é
  4. aceite sem uma prova de validade, é considerado "pré-confirmado" pelo AggLayer.
  5. Confirmação: A cadeia A, ou qualquer nó completo de A, gera uma prova para A1 e submete-a à camada AggLayer. Quando a prova é verificada pelo AggLayer, A1 é confirmada se todos os lotes de que depende também forem confirmados.
  6. Finalização: Depois de A1 ser confirmada, a sua prova é agregada juntamente com lotes de outros rollups numa única prova que é colocada no Ethereum. A prova agregada garante que os estados e os conjuntos de cadeias dependentes são consistentes.

As cadeias podem navegar por si próprias no espaço de compromisso entre latência e garantias de vivacidade. Uma cadeia pode optar por interoperar com outra cadeia após o passo de pré-confirmação para transacções entre cadeias de latência super baixa, mas fundamentalmente, este modelo é compatível com cadeias à espera de confirmação, ou mesmo de finalização.

A garantia de segurança para transacções entre cadeias é aplicada na terceira etapa. Vamos aprofundar a forma como esta conceção permite uma interação segura entre cadeias.

Interoperabilidade assíncrona

Veja o primeiro exemplo de uma transferência entre cadeias. Alice na Cadeia A quer bloquear ou queimar alguns tokens no bloco A1 para cunhar e transferir tokens para Bob na Cadeia B. Se a Cadeia B não esperar até que A1 seja finalizado no Ethereum com uma prova válida, então a Cadeia A pode equivocar-se ou dar à Cadeia B um estado inválido.

A camada de agregação resolve este problema de uma forma simples. A cadeia B pode assumir temporariamente que A1 é válido e será finalizado no Ethereum, sem sequer esperar por uma prova. O sequenciador da cadeia B compromete-se com a raiz de estado A1 da cadeia A reivindicada como uma dependência no cabeçalho de B1 (como B1A1 ) antes de a submeter à camada de agregação. A latência necessária para a cadeia B construir B1 diminui de 20 minutos para, no máximo, alguns segundos.

Na etapa de confirmação, a camada de agregação constrói um gráfico de dependências para cada bloco/lote apresentado. Por exemplo, se A1 depende de B1, que por sua vez depende de B1, C1 é confirmado assim que uma prova πC1 é apresentada. Mas, mesmo que πA1 seja recebida, πA1 só é confirmada com πC1 e πB1. O aspeto crítico desta conceção é o facto de o circuito de agregação de provas impor a consistência entre dependências. Se B1A1 for inconsistente com o bloco A1 que a cadeia A submete, ou se faltar uma prova para A1′, então B1 não pode ser incluído no lote agregado finalizado no Ethereum.

Este mecanismo garante que, se a cadeia A se equivocar ou apresentar um bloco inválido, digamos A1′, então qualquer lote que dependa de uma raiz de estado inválida ou equivocada para a cadeia A não pode ser finalizado/liquidado no Ethereum. Mesmo que o próprio AggLayer se equivoque, as cadeias têm uma garantia criptográfica de que qualquer bloco que dependa de um bloco inválido ou equivocado não pode ser finalizado, porque duas provas para estados da cadeia que sejam inconsistentes ou inválidas não podem ser agregadas no circuito de agregação de provas. Isto garante que a propriedade de segurança descrita acima é preservada.

Interoperabilidade atómica

O mecanismo de segurança pode ser alargado ao caso atómico. Suponha que um utilizador submete um pacote atómico de transacções a várias cadeias. Este pacote é ordenado, pelo que o resultado da execução da transação na Cadeia A é transmitido à Cadeia B e, do mesmo modo, o estado atualizado da Cadeia B é transmitido à Cadeia C, etc. Se todas as transacções forem executadas com êxito em todas as cadeias, o pacote é incluído; caso contrário, é rejeitado.

O ideal seria permitir a inclusão de transacções atómicas sem:

  1. Exigir que o operador da cadeia B execute um nó completo para todas as outras cadeias incluídas num pacote; ou
  2. Aceitar o risco de que o pacote possa ser parcialmente incluído no Ethereum (prejudicando as cadeias participantes).

Isto levanta um problema de segurança semelhante ao do caso assíncrono: A cadeia A pode equivocar-se e submeter um lote que não inclui realmente o pacote atómico, ou enviar um resultado inválido para a cadeia B.

Felizmente, o mesmo mecanismo do caso assíncrono pode ser reutilizado para o caso atómico. A cadeia B faz commits em pacotes e recebe resultados de transacções de outras cadeias. A camada de agregação (e o circuito de agregação de provas) verifica se os pacotes são consistentes entre cadeias. Um lote contendo um pacote da Cadeia B só pode ser finalizado/liquidado no Ethereum se todas as transacções no pacote forem executadas com sucesso.

Composibilidade entre cadeias

A camada de agregação permite a composição de cadeia cruzada de latência super baixa através de chamadas assíncronas de cadeia cruzada. Esta é uma primitiva incrivelmente poderosa: os contratos podem chamar com segurança contratos noutras cadeias com uma latência super baixa, sem esperar pela finalidade do Ethereum. Um utilizador pode entrar na cadeia OKX no Polygon e depositar imediatamente num mercado de empréstimos altamente líquido no Aave, numa cadeia diferente, com um só clique, sem ter de trocar de um ativo sintético.

Infraestrutura de coordenação emergente

A AggregationLayer garante que as interacções quase instantâneas entre cadeias serão seguras [3]. Mas isto é apenas metade da batalha. Como é que os operadores da cadeia partilham e confiam nos estados da cadeia uns dos outros? Como é que coordenam a produção de feixes atómicos?

Um objetivo de conceção para a AggLayer é que seja mínima. O seu objetivo é garantir a segurança e fornecer uma base que permita a qualquer pessoa construir uma infraestrutura de coordenação que ofereça vivacidade numa variedade de cenários diferentes.

Os operadores das cadeias podem escolher livremente entre mecanismos de coordenação emergentes em função dos seus pressupostos de confiança - estes podem incluir retransmissores, infra-estruturas de provadores partilhados ou clusters de sequenciadores de validade partilhados [4]. Estes protegem as cadeias contra problemas de vivacidade quando dependem de outros estados ou pacotes de cadeias.

O ecossistema Polygon dá prioridade à escolha e à soberania das cadeias. As cadeias podem executar os seus próprios ambientes de execução modificados, utilizar os seus próprios tokens para as taxas de staking e de gás, escolher os seus próprios mecanismos de disponibilidade de dados, etc. Do mesmo modo, as cadeias devem decidir como lidar com as soluções de compromisso entre a interoperabilidade e o risco de falhas de vivacidade. Existem várias opções:

  1. A cadeia B pode optar por não participar totalmente na interoperabilidade rápida e na camada agregadora. Pode simplesmente enviar lotes e provas diretamente para o Ethereum e a finalização nunca é atrasada.
  2. A cadeia B só pode aceitar o estado da cadeia A quando o estado da cadeia A for confirmado pela camada AggLayer. A cadeia B só será atrasada se o AggLayer se equivocar.
  3. A cadeia B pode aceitar o estado da cadeia A quando a cadeia A é pré-confirmada pela camada AggLayer. A cadeia B será atrasada se o AggLayer se equivocar ou se a cadeia A não apresentar uma prova.
  4. A cadeia B pode aceitar o estado da cadeia A numa configuração ponto-a-ponto, sem verificar se a cadeia A está pré-confirmada na AggLayer. A cadeia B será atrasada se a cadeia A se equivocar ou não apresentar uma prova.

Um aspeto importante a ter em conta é que os utilizadores não podem causar falhas de vivacidade, apenas as cadeias que se comportam mal ou que funcionam mal. A equívoca e a apresentação de um bloco inválido podem ser fortemente penalizadas, quer através de slashing, quer através da ejeção de cadeias da AggLayer, impedindo a sua capacidade de interoperar sem problemas. Por conseguinte, uma falha de vivacidade deve ser extremamente rara.

As cadeias podem tomar precauções adicionais para minimizar o risco de problemas de liveness, mantendo listas brancas ou negras de outras cadeias com as quais interoperam e definindo limites para o número de cadeias que podem estar coletivamente envolvidas em qualquer lote. Podem confiar em terceiros que gerem nós completos para garantir que, se uma cadeia ficar offline antes de poder produzir uma prova, existe um provador de reserva.

O mecanismo pelo qual as cadeias se coordenam para aceitar feixes atómicos também é flexível. Por exemplo, um subconjunto de cadeias pode interoperar num cluster de sequenciação de validade partilhada para uma latência extremamente baixa, ou pode recorrer a retransmissores.

Um retransmissor com segurança criptoeconómica poderia permitir a interoperabilidade entre as cadeias A e B, executando um nó completo para ambas as cadeias e atestando que os estados de cada cadeia são válidos. Mesmo que a cadeia A ou B pré-confirme um novo lote e depois fique offline, a infraestrutura partilhada do provador pode intervir para gerar uma prova.

Pode imaginar novas infra-estruturas de coordenação a emergir sobre a base de segurança fornecida pela AggLayer, permitindo novas e melhores formas de interoperabilidade e liquidez partilhada. Crucialmente, todo o ecossistema Polygon não precisa de partilhar a mesma infraestrutura ou os mesmos pressupostos de confiança. Não precisa de funcionar com um único sequenciador ou provador de validade partilhado. Esta é uma vantagem extremamente importante em relação às salas de cirurgia.

closing

A camada de agregação permite-nos, fundamentalmente, criar um ecossistema de várias cadeias que dá a sensação de estar a utilizar uma única cadeia. É a síntese das teses monolíticas e modulares: estado unificado, liquidez e capacidade de composição, com a escalabilidade ilimitada de um ecossistema multi-cadeia.

Agregação em ZK vs Sistemas Optimistas

Esta é uma visão que, fundamentalmente, só está disponível para sistemas baseados em ZK. Vou desenvolver este ponto numa publicação futura, mas os ecossistemas optimistas que pretendam permitir uma interoperabilidade rápida devem basear-se em sequenciadores de validade partilhados. Trata-se de um mau negócio para as cadeias: impede-as de redistribuir as taxas dos sequenciadores e do MEV, os sequenciadores de validade partilhada obrigam as cadeias a aceitar potencialmente restrições nos seus ambientes de execução e a interoperabilidade nos sistemas baseados em RUP obriga as cadeias a aceitar pressupostos de confiança adicionais em troca de uma baixa latência.

Além disso, a interoperabilidade entre cadeias quebra uma propriedade importante das RUP. Com os ORs de cadeia única, qualquer pessoa pode executar um nó completo para um OR e confirmar imediatamente que as transacções são válidas e finalizadas assim que são lançadas nos L1s. Isto já não é verdade no caso das cadeias múltiplas - agora é necessário executar um nó completo para cada cadeia com a qual o RUP interage.

Em contrapartida, a visão da Polygon é uma visão em que as cadeias são soberanas. Podem utilizar qualquer ambiente de execução, podem confiar em qualquer sequenciador centralizado ou descentralizado e podem navegar por si próprios nas compensações entre latência e vivacidade da cadeia cruzada.

Esta é uma visão que reflecte a Internet existente. A Internet é um ambiente elasticamente escalável, sem permissões e unificado. Da mesma forma, a AggLayer é escalável e sem permissões - não impõe restrições às cadeias participantes - e permite que os utilizadores movam activos e estado sem problemas através do ecossistema, apresentando uma interface unificada para a camada de valor da Internet.

Este é o futuro do Polygon: não monolítico, não totalmente modular, mas agregado.

[1] Parte da garantia de liquidez unificada é livrar-se da terrível experiência de utilização de tokens sintéticos embrulhados em pontes. Os utilizadores da ponte LxLy da Polygon podem transferir sem problemas activos entre cadeias, preservando a fungibilidade. No entanto, para o fazer de forma segura, precisamos de nos proteger contra a segurança weakest-link - ou um atacante que corrompe uma única cadeia e drena todos os fundos de todas as cadeias na ponte. Discutirei como fazer isto num post futuro, mas o AggLayer pode aproveitar o passo de agregação de provas para impor a contabilidade ao nível da cadeia, evitando a segurança do elo mais fraco.

[2] Quando faço referência a transacções atómicas entre cadeias, refiro-me à possibilidade de um utilizador submeter um "pacote" ou conjunto de transacções em várias cadeias. O pacote atómico tem a propriedade de as suas transacções serem incluídas em cada cadeia relevante se e só se todas as transacções forem executadas com êxito. Se uma única transação falhar, então o pacote não pode ser incluído em nenhuma cadeia.

O exemplo mais básico é novamente a nossa transferência entre cadeias. Digamos que Alice quer enviar 1 ETH para Bob, mas Alice está na Cadeia A e Bob está na Cadeia B. Assumindo uma ponte nativa partilhada para ambos os rollups, Alice pode queimar a sua ETH na Cadeia A e cunhar ETH na Cadeia B que é transferida para Bob. Mas é fundamental garantir que não pode cunhar ETH sem a queimar ou vice-versa - ou pode perder a sua ETH ou subgarantir a ponte.

É por isso que as transacções atómicas são tão importantes. Para permitir interacções de baixa latência entre cadeias e fazer com que a utilização do ecossistema Polygon se assemelhe à utilização de uma única cadeia, são necessárias garantias atómicas.

[3] Trata-se de um ponto subtil, mas na perspetiva do ecossistema - o AggLayer proporciona segurança, mas na perspetiva de uma única cadeia, esta conceção dá prioridade à vivacidade em detrimento da segurança, uma vez que a cadeia B pode depender de um estado da cadeia A que é inválido. Neste caso, a cadeia B não será aceite pela AggLayer (imposta pelo circuito de agregação de provas) e terá de construir um novo bloco sem a dependência de A.

[4] A nossa abordagem, no seu conjunto, deve muito à conceção da Sequenciação de Validade Partilhada da Umbra Research.

2/9/24 - Actualizou este projeto para clarificar algumas comparações entre agregação e sequenciação partilhada. A tese agregada depende de mecanismos como sequenciadores partilhados, retransmissores e construtores para facilitar a coordenação entre cadeias. Por sua vez, a camada de proteção garante a segurança.

Declaração de exoneração de responsabilidade:

  1. Este artigo foi reimpresso de [[Brendan Farmer], Todos os direitos de autor pertencem ao autor original[Brendan Farmer]. Se houver objecções a esta reimpressão, contacte a equipa da Gate Learn, que tratará prontamente do assunto.
  2. Declaração de exoneração de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são da exclusiva responsabilidade do autor e não constituem um conselho de investimento.
  3. As traduções do artigo para outras línguas são efectuadas pela equipa Gate Learn. A menos que seja mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!