escrito por Alejandro Ranchal-Pedrosa.
Gostaríamos de agradecer a Luca Donno e Jonas Theis por suas análises e comentários atenciosos sobre o rascunho inicial deste post.
Os rollups alcançam uma escalabilidade incrível processando transações fora da cadeia e enviando periodicamente provas sucintas de correção para a Camada 1 (L1). Embora isso garanta finalidade rápida na cadeia—finalidade verificável por contratos inteligentes L1, os usuários exigem cada vez mais finalidade rápida fora da cadeia—a confiança de que as transações confirmadas pelo sequenciador de rollup não serão revertidas, mesmo antes de os dados serem totalmente confirmados e comprovados no L1.
O desafio da finalidade rápida fora da cadeia
Fornecer aos usuários uma finalidade rápida fora da cadeia apresenta desafios inerentes:
- Preocupações de segurança: Os usuários que dependem de confirmações rápidas correm o risco de ataques de gasto duplo se confiarem no sequenciador antes que um comprometimento irreversível dos dados da transação esteja disponível em L1.
- Custos de alta disponibilidade de dados (DA): O compromisso imediato dos dados de transação para L1 garante a finalidade fora da cadeia, mas aumenta significativamente os custos operacionais.
Assim, os projetos atuais acoplam a finalidade fora da cadeia diretamente à publicação imediata do DA, forçando um compensação entre latência, segurança e custo: a segurança tem um alto custo de DA ou alta latência.
A demanda por blobs tem aumentado constantemente ao longo do tempo, conforme exemplificado no gráfico a seguir do número de blobs por dia (o aumento recente foi motivado pela nova meta de 6 blobs da atualização do pectra).
Com o tempo, juntamente com a maior demanda por rendimento no ecossistema Ethereum, a demanda por blobs de múltiplos rollups continuará aumentando constantemente e, junto com eles, o preço dos blobs devido ao congestionamento, agravando o trade-off entre os custos de DA e a finalidade fora da cadeia.
Apresentando Subcompromissos
Subcompromissos quebram esse trade-off fornecendo finalidade rápida fora da cadeia sem ter que publicar o DA na cadeia. Os subcompromissos são publicados adicionalmente aos compromissos regulares e menos frequentes (que publicam o DA on-chain). Os subcompromissos carregam representações sucintas do razão L2, de modo que os usuários que possuem os dados localmente correspondentes à transição de estado L2 possam verificá-los de forma independente, alcançando uma finalidade fora da cadeia rápida e segura.
Há dois benefícios principais derivado de subcompromissos graças à eliminação do compromisso entre custos de DA, segurança e latência:
1. Taxas de transação mais baratas:
- Graças à capacidade de obter finalidade imediata fora da cadeia sem ter que pagar por blobs, o DA agora é necessário apenas para finalidade na cadeia. Como resultado, o sequenciador pode ter flexibilidade para decidir quando comprometer dados completos em momentos ideais, aproveitando preços de blob mais baratos e melhor compactação de dados (ou seja, mais transações em um blob por vez, onde as taxas de blob são mais baratas significam taxas mais baratas por transação L2 e/ou maiores margens para o rollup).
- Espera-se que a eficiência da compressão ao longo de vários minutos/horas cresça superlinearmente no número de transações L2 para dados de transação completos, ainda mais para a maioria dos casos se o DA consistir em submeter o State Diff.
- Esse recurso é importante para rollups zk, já que rollups otimistas estão sob pressão para comprometer dados tx completos o mais rápido possível para iniciar o período de desafio o mais rápido possível e não atrasar ainda mais a finalização na cadeia, um requisito que não existe em rollups zk. Os subcompromissos são, portanto, uma nova arma que os zk rollups podem usar para competir em termos de preços com rollups otimistas, ao mesmo tempo que obtêm a mesma latência para finalidade fora da cadeia e significativamente menor para finalidade na cadeia.
2. Maior segurança:
- Os usuários podem ancorar estados verificados de forma independente em L1 (enviando eles próprios subcompromissos), mitigando a dependência do sequenciador ou ficando vinculados à frequência de finalidade fora da cadeia padrão do sistema L2. Embora isso possa ser feito com o design apropriado pelos usuários que enviam o DA diretamente, não é razoável exigir esse custo extra aos usuários interessados em maior segurança com menor latência. Os subcompromissos permitem efetivamente esse recurso a um custo razoável e constante, independentemente do tamanho do DA associado à transição de estado que está sendo ancorada.
Como funcionam os subcompromissos
Subcompromissos são metadados sucintos (normalmente um hash criptográfico) que representam exclusivamente uma transição de estado L2 (por exemplo, o hash de uma sequência de blocos L2). O sequenciador envia esses subcompromissos periodicamente (por exemplo, a cada 30 minutos), significativamente mais frequentemente do que os compromissos completos do DA (por exemplo, a cada 12 horas).
Alternativamente, o sequenciador também pode oferecer subcompromissos como serviço: assinando os metadados de um subcompromisso e distribuindo os metadados e assinatura fora da cadeia, os usuários são livres para enviar subcompromissos assinados pelo próprio sequenciador e obter finalização off-chain de latência ainda mais baixa do que a oferecida por padrão pelo sistema (por exemplo, um aplicativo movimentando muitos fundos e não confiando no sequenciador, querendo oferecer a seus usuários o nível de segurança e latência com os quais estão acostumados, pode decidir subcomprometer 10 minutos após os subcompromissos anteriores ou 3x mais rápido que o subcompromisso padrão enviado pelo sequenciador).
Bom caso. Como tal, o protocolo para subcompromissos no caso bom em que o sequenciador é honesto é o seguinte:
- O sequenciador envia subcompromissos periodicamente ou os usuários enviam subcompromissos assinados, distribuídos e assinados fora da cadeia pelo sequenciador.
- Os usuários que observam um subcompromisso em L1 e o verificam em relação aos seus dados locais podem confiar com segurança no estado fora da cadeia associado.
- Compromissos e provas completas de dados de transação vêm depois, otimizados para taxas de blob mais baixas e melhor compactação.
Mau comportamento do sequenciador. Os compromissos podem ser usados para fins fora da cadeia porque fornecem garantias de segurança mesmo se o sequenciador estiver com defeito. Dessa forma, para que os subcompromissos forneçam finalidade fora da cadeia, precisamos levar em conta o mau comportamento do sequenciador. Se o sequenciador está com defeito, pode corromper o bom caso por (i) não enviar subcompromissos ou (ii) enviar subcompromissos incorretos (cujos dados não estão disponíveis para ninguém ou estão disponíveis apenas para o sequenciador)
Se o sequenciador não enviar subcompromissosentão o rollup simplesmente opera em seu frequência habitual para compromissos. Da mesma forma, os mesmos mecanismos que já são conhecidos para evitar esse mau comportamento do sequenciador (lotes forçados, compromissos descentralizados, etc.) também podem ser usados para subcompromissos.
Se o sequenciador enviar subcompromissos incorretoso rollup enfrenta um problema: esses subcompromissos defeituosos não correspondem a nenhum dado de transação conhecido por ninguém que não seja o sequenciador. Como os compromissos e as provas devem corresponder aos subcompromissos, o rollup não poderá prosseguir até que o problema seja resolvido. Este cenário leva ao caso extremo crítico em que subcompromissos podem precisar ser revertidos.
Revertendo subcompromissos: Para lidar com subcompromissos incorretos, o protocolo deve definir um período de tempo limite claro. Se o sequenciador não conseguir confirmar e provar a transição de estado dentro desse tempo limite, o subcomprometimento problemático poderá ser revertido com segurança. Em condições normais, esse tempo limite não é atingido porque os compromissos e as provas adequadas são fornecidos prontamente.
Prevenindo o uso indevido do sequenciador: Permitir a reversão de subcompromissos introduz um novo risco: sequenciadores maliciosos (em coordenação com provadores maliciosos) podem reverter intencionalmente transações válidas, causando problemas de gastos duplos. Para resolver isso, o protocolo inclui um período de tempo limite mais curto dentro do qual qualquer pessoa pode enviar compromissos e/ou provas válidas. Este mecanismo garante que, mesmo que o sequenciador se comporte mal, a rede permaneça segura e as transações ainda possam chegar ao fim, se o subcompromisso estiver correto. O sequenciador também pode sofrer uma redução no valor da aposta se não se comprometer antes do início do período de compromisso descentralizado, o que pode ser usado para subsidiar e até mesmo recompensar os committers descentralizados. Em vez de compromisso e comprovação descentralizados, o modo imposto também pode servir como proteção contra esse ataque.
Essa estrutura de tempo limite de dois níveis – tempos limites mais curtos para intervenção descentralizada e tempos limites mais longos para reversão de subcompromissos – equilibra a segurança e a robustez operacional.
Conclusão
Os subcompromissos representam uma melhoria significativa na tecnologia de rollup, fornecendo aos zk-rollups uma vantagem competitiva crucial: a dissociação dos custos de DA da finalidade rápida fora da cadeia. Esta inovação permite custos mais baixos, maior segurança e flexibilidade, posicionando os zk-rollups favoravelmente em relação a alternativas otimistas. Em última análise, os subcompromissos permitem que usuários e aplicativos aproveitem com segurança e eficiência todo o potencial do escalonamento do Ethereum.
Fontesethresear



