Autor Original: ORFEO
Fonte original: The SeeDAO
O projeto L2 está mais uma vez em destaque.
Como representante da rota de expansão Rollup em L2, após o airdrop do Arbitrum, o zkSync Era será lançado. Por trás dos infinitos novos designs e roteiros, qual é a principal linha do Rollup e qual é o pensamento evolutivo? Vamos dar uma olhada hoje.
Principais pontos deste artigo:
Para Bitcoin e Ethereum, desde o seu nascimento, existem duas maiores críticas dos usuários comuns:
Essas duas críticas decorrem de dois fatores no design da blockchain:
Se o blockchain pode realmente ser como uma entrada de automóveis, então a solução fundamental é naturalmente alargar a entrada de automóveis e, ao mesmo tempo, cooperar com os meios de preço para guiar a hora de sair e não sair se você não estiver em um pressa.
No entanto, embora ampliar as faixas e aumentar a capacidade do bloco seja uma solução atraente de eficiência de tráfego, é um último recurso no design de blockchain. Porque quanto maior o tamanho do bloco, maiores os requisitos de hardware para os mineradores e menos mineradores que podem atender aos requisitos; de acordo com essa ideia, se você quiser processar milhares de transações por segundo como o Visa, acabará fazendo apenas outro O Visa centralizado vai contra o propósito central da falta de confiança da blockchain.
existe alguma outra solução? Sim, além da orientação de tempo, também podemos otimizar o espaço, incluindo, mas não se limitando a:
Como um ônibus no blockchain, a chave para o Rollup é economizar espaço e gasolina (Gás, trocadilho):
Desta forma, os dois slots de “lento” e “caro” são resolvidos pelo Rollup.
Vamos voltar ao blockchain e ver o plano específico do Rollup.
Em vez de espiar a resposta padrão (para não mencionar que não há), é melhor ter algum suspense e imaginar o que você fará quando for encarregado de projetar o Rollup para Ethereum.
Podemos também partir das duas perspectivas de redução de custos de computação (economia de gasolina) e redução de custos de armazenamento (economia de espaço), e primeiro propor uma solução mais radical chamada Rollup 1.0;.
O Rollup 1.0 consiste em 3 pontos principais:
Simplificando, é coletar regularmente e quantitativamente as solicitações de transação de todos e, após os cálculos fora da cadeia, apenas os resultados do cálculo são solidificados na cadeia.
Esta solução resolve perfeitamente os dois principais pontos problemáticos de “lento” e “caro”, mas parece gerar novos problemas:
Para esses três novos problemas, podemos iterar uma versão do plano.
O problema da motivação é melhor resolvido, e os problemas que podem ser resolvidos com dinheiro não são problemas. O provedor de serviços pode dividir o custo da “carona” igualmente e cobrar uma pequena “gorjeta” extra. Mesmo assim, ainda é uma situação em que todos saem ganhando com a pessoa que “carona”.
O problema da revisão é um pouco mais problemático, mas a solução é muito comum na área de blockchain, que é a descentralização. Um grupo de pessoas são provedores de serviços, o que é melhor do que apenas um provedor de serviços; qualquer um pode ser um provedor de serviços, o que é melhor do que um grupo fixo de pessoas. Na última forma de jogar, se todos os provedores de serviços não forem bons, você também pode ser um provedor de serviços ou ir diretamente para o L1 para iniciar a arbitragem.
A fraude é um pouco mais difícil. Ele pode ser dividido em duas questões: uma é como identificar a fraude e a outra é como evitá-la.
Antes de tudo, para identificar a fraude, precisamos saber os dados da transação (Transaction) de todos, o estado antes da transação (State), para calcular o novo estado (State’) após a transação e compará-lo com o novo estado armazenados na cadeia do prestador de serviço. Se for igual, significa que o prestador de serviço é honesto, caso contrário, significa que mentiu. No entanto, não conhecemos os dados da transação porque eles não estão na cadeia. Como resultado, só podemos ser céticos e incapazes de julgar se o provedor de serviços é honesto ou não.
Então, a melhor forma de prevenir a fraude é impossibilitar a ocorrência de fraude. Isso é relativamente difícil, a menos que o cálculo do prestador de serviço seja conferido toda vez na cadeia, mas dessa forma, não haverá vantagem de " carona solidária". Então, só podemos dar um passo atrás, deixar que o custo da fraude seja muito alto e fazer com que os provedores de serviços tenham pele no jogo, como pagar um depósito (Stake), que será confiscado se a fraude for descoberta. (Esse método é chamado de consenso social, que pertence à segurança baseada em jogos e também é mencionado em “Weekly #3;”.)
O Rollup 2.0 não é ruim, mas o problema de identificar fraudes não foi resolvido.
De acordo com a inferência anterior, para identificar a fraude, devemos conhecer os dados da transação, portanto, essa parte dos dados deve estar na mesma cadeia dos dados de status.
Quem vai descobrir que eles são fraudulentos? Obviamente, é improvável que seja um usuário comum, porque é impossível para todos monitorar todos os movimentos do provedor de serviços 7; x; 24 horas, portanto, só pode ser um “caçador de recompensas” profissional (Validador). Se um “caçador de recompensas” relatar fraude em até 7 dias após o provedor de serviços “enviar o pedido” e verificar que é verdade, a transação será revertida e o provedor de serviços será punido. Claro que, da mesma forma, os “caçadores de recompensas” também precisam de incentivos. Por exemplo, após a descoberta da fraude, uma parte do depósito do prestador de serviços será entregue ao “caçador de recompensas” (apenas uma parte, para evitar conluio entre os prestador de serviços e o caçador de recompensas).
No estágio Rollup 3.0, toda a solução foi capaz de funcionar sem problemas, mas novos custos foram introduzidos. Os custos até agora incluem:
Vamos dar uma olhada em quais custos podem ser otimizados.
Dados de transação
De uma forma específica, múltiplas transações são agregadas, e o espaço ocupado pode ser menor que a soma do espaço ocupado por cada transação.
Tomando como exemplo a transação de transferência ETH mais simples, desmontamos a composição do conteúdo de cada transação e podemos ver que o espaço de assinatura responde pela maior proporção. Podemos combinar as assinaturas de todas as transações em uma (Agregação de Chaves), o que economiza muita sobrecarga de armazenamento (semelhante ao Schnorr no Bitcoin). Além disso, também podemos otimizar outras partes, como livrar-se do Nonce e escolher “gordo e magro” o máximo possível ao “carpooling” e um “carpooling person” que se encaixa perfeitamente para maximizar o uso do "carro " espaço.
fonte:
Apenas três ou duas vezes, o tamanho de cada transação de transferência ETH foi reduzido de 112 bytes para 12 bytes, o que é quase um décimo do anterior; claro, existem outros meios para compactar ainda mais os dados da transação.
Na operação real, podemos instalar tal método no contrato implantado na cadeia:
function storeTxData(bytes calldata data) external {;// não faz nada}
Então, toda vez que o “carpooling” for bem-sucedido, os dados da transação compactados e mesclados serão passados para esse método como calldata. Calldata não precisa ser armazenado permanentemente, e após o Período de Desafio de Publicidade de Consenso Social (Período de Desafio), não importa se for podado (Prune); o preço em si é muito baixo e ficará mais barato com a implementação de EIPs como Danksharding e Data Blob , esta forma de aplicar L1 para distribuição de armazenamento de dados (Data Availability) também será mais formal.
dados de estado
Agora que os dados da transação foram carregados na cadeia, qualquer pessoa pode calcular o estado atualizado por meio dos dados da transação, e os dados do estado não são tão necessários. Podemos manter apenas o Merkel Root dos dados do estado, que é usado para permitir que usuários comuns (“carpoolers”) solicitem saques diretamente ao L1 quando o provedor de serviços não cooperar e confiar no Merkel Proof para provar que eles têm dinheiro em suas contas.
Custos de Arbitragem de Fraude
Quando o “caçador de recompensas” denuncia uma fraude ao provedor de serviços, o cálculo do contrato on-chain (Replay) é feito uma vez e os resultados do status são comparados, o que é teoricamente viável. No entanto, o custo de fazê-lo não é baixo (embora já seja bom), e o segundo é que a soma do Gas das transações incluídas no Rollup “carpooling list” pode ultrapassar o limite de gas do Ethereum, impossibilitando verificar.
Portanto, a arbitragem precisa reduzir o ônus, e a maneira de reduzir o ônus é naturalmente colocar operações de cálculo desnecessárias fora da cadeia. Uma das soluções é chamada Prova Interativa. O processo geral é o seguinte:
(Durante todo o processo, se uma das partes não responder dentro de um tempo limite, a parte falhará.)
Dessa forma, o custo de arbitragem em toda a cadeia é baixíssimo.
Dito isto, construímos completamente uma solução Rollup. Como esse esquema pressupõe que o provedor de serviços é honesto por padrão, a menos que haja um relatório de “caçador de recompensas”, essa facção é chamada de rollup do otimista, o chamado Rollup otimista.
Então, nosso Rollup 4.0 é a melhor solução?
Após nossas várias iterações, o Rollup 4.0 ainda apresenta algumas imperfeições:
Existe uma solução que pode tornar a fraude impossível, tornar a finalização (Finality) mais rápida, fazer com que menos dados precisem ser carregados na cadeia e tornar a expansão uma ordem de grandeza maior? Não quero muito, mas existe um tipo de solução que pode satisfazer quase todas as imaginações - Zero Knowledge Rollup (ZK-Rollup para abreviar).
ZK-Rollup é uma ideia de Rollup usando prova de conhecimento zero (ZKP). O chamado ZKP refere-se à tecnologia que convence a outra parte de que você conhece essas informações sem revelar nenhuma informação sensível. Para explicar o ZKP, há dois dos meus exemplos favoritos:
*Imagine em uma cidade medieval européia e eu tenho um mapa do tesouro com um tesouro marcado nele. Para provar a você que tenho um mapa do tesouro, mas sem deixar você saber a localização exata do tesouro, coloco uma venda em você, arrasto-o para uma carruagem e dirijo pela cidade por meia hora para garantir que você perder o senso de direção, finalmente chegar ao destino, sair do carro, mostrar o tesouro e depois levá-lo de volta. Esta é uma forma ingênua de ZKP.
Em termos menos rigorosos, a ideia central do ZKP é que o provador (Prover) primeiro esconde o conhecimento secreto, “commit” (Commit), e então o verificador (Verifier) inicia um desafio aleatório (Challenge). se ele conseguir passar no desafio com sucesso, há uma grande probabilidade de que ele tenha o conhecimento secreto correspondente.
O ZKP deve atender a 3 requisitos:
Para atender a esses três requisitos, o ZKP usa uma variedade de problemas NP, incluindo a decomposição de números primos mais simples e logaritmos discretos (como o de Schnorr) e assim por diante.
O ZKP não é uma tecnologia nascida para o blockchain, mas pode ser usado para expansão L2, principalmente porque um bom ZKP possui as seguintes características úteis:
Usando esses recursos, nossa solução Rollup pode:
Obviamente, qualquer mecanismo de segurança terá pré-requisitos em potencial e o ZKP não é uma panacéia para o blockchain. O ZKP ainda tem muitas limitações atualmente, que precisam ser superadas passo a passo, como:
fonte:
Por isso, no ZK-Rollup, campo de expansão voltado para o futuro, todo progresso é louvável e gratificante.
fonte:
No que diz respeito ao futuro da expansão de capacidade, o autor acredita que, em comparação com a expansão de capacidade nativa de L1, o design em camadas, incluindo Rollup, é uma ideia mais confiável. Modularização, cada camada resolve as preocupações de cada camada, o que é menos arriscado do que o empilhamento contínuo no já “monolítico” L1; além disso, a descentralização do L1 subjacente devido à expansão da capacidade é teoricamente improvável A camada superior encontra e faz para cima. Além disso, essa ideia de design em camadas tem aplicações aparentemente bem-sucedidas em outros campos além do blockchain. O ponto de vista não é necessariamente correto, mas esta é a cognição atual do autor.
Este artigo tenta resolver os motivos de pensamento e design da solução de expansão Rollup em um tom independente de projeto. Devido ao nível limitado, alguns lugares ainda são um pouco contundentes, o que pode não apenas deixar de explicar no local, mas também aumentar a dificuldade de compreensão; como um campo vertical que muda a cada dia que passa, o autor pode não estar ciente de e levar em conta muitos novos desenvolvimentos no tempo. Sinceramente bem-vindos amigos para corrigir e se comunicar.