Este artigo discute as ideias de evolução e as razões de design da solução de expansão Rollup

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:

  • A ideia de expansão da L1 escrita para o terceiro ano
  • Projete uma solução Rollup do zero
  • Como usar a prova de conhecimento zero para fazer o Rollup evoluir novamente

Começando com uma analogia

Para Bitcoin e Ethereum, desde o seu nascimento, existem duas maiores críticas dos usuários comuns:

  • Lento: A pista é originalmente estreita e, se houver muitos carros, ela será bloqueada.
  • Caro: Pedágios em picos planos não são baratos.Se você quiser passar rapidamente durante o período de pico, você precisa usar a "capacidade de dinheiro" para adicionar dinheiro e deixar os mineiros voarem de helicóptero para chegar até você.

Essas duas críticas decorrem de dois fatores no design da blockchain:

  • Capacidade do bloco: semelhante a uma faixa, quanto maior a capacidade do bloco, mais carros ele pode acomodar e menor a probabilidade de ser bloqueado.
  • Mecanismo de incentivo: por maior que seja a entrada, existe a possibilidade de ser bloqueado. Nesse caso, quem pode passar primeiro? Depende de quem está com pressa, mas não dá para ouvir as palavras das pessoas , depende da disposição de pagar, como chamar uma ambulância, serão várias centenas.

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:

  • Abrir faixas diferentes, uma para caminhões grandes, uma para carros e outra para ônibus, sem interferir umas nas outras — Com base nessa ideia, podemos chegar a algumas correntes principais, correntes laterais ou Plasma com suas próprias forças.
  • Otimize o desenho da rota, desvie o tráfego adequadamente, não vá para a cidade para fazer nada, você tem que pegar esta estrada principal, você tem que passar pelo posto de controle aqui —— Com base nessa ideia, podemos fragmentar.
  • Por que você tem que sair? Não é tarde demais para ter uma reunião remota e chegar a um acordo, e não é tarde demais para assinar um contrato offline——Com base nessa ideia, podemos ter um canal de estado (Canal de Estado).
  • Você não precisa necessariamente dirigir sozinho quando sair, você também pode pegar carona, ou pegar transporte público —— Com base nessa ideia, temos o protagonista deste artigo, o Rollup.

Como um ônibus no blockchain, a chave para o Rollup é economizar espaço e gasolina (Gás, trocadilho):

  • Economize espaço, então não é fácil ficar preso, e o pedágio compartilhado por cada pessoa é muito menor do que dirigir sozinho;
  • A gasolina é economizada, então o preço da passagem fica próximo do povo, e todos podem pagar.

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.

Crie um Rollup do zero;

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;.

Rollup 1.0;

O Rollup 1.0 consiste em 3 pontos principais:

  • Existe um prestador de serviço (Operador) que recolhe as transações de "carpooling" de todos (Transaction), e "envia ordens" quando a carpool está cheia ou não mas o tempo acordado acabou, tendo em conta o preço e pontualidade;
  • Todos os cálculos envolvidos nas transações enviadas por todos são executados fora da cadeia por este provedor de serviços, porque os cálculos fora da cadeia são mais rápidos do que na cadeia, e os cálculos geralmente representam a maior parte dos custos da cadeia, o que pode economizar muito dinheiro;
  • Após o cálculo, obtenha o status atualizado (como o último saldo da sua conta) e armazene-o na cadeia, para que o custo de armazenamento seja muito menor.

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:

  • Incentivo: Quem prestará o serviço de "carona" e quais os benefícios.
  • Problema de revisão (Censura): O provedor de serviços deliberadamente não processa meu pedido (ou desliga ou sai), o que devo fazer;
  • Problema de fraude (Fraud): O que devo fazer se o prestador de serviço trapacear e adulterar o resultado do cálculo, fazendo com que eu transfira dinheiro para outras pessoas, e o dinheiro seja desviado por ele.

Para esses três novos problemas, podemos iterar uma versão do plano.

Rollup 2.0;

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;".)

Rollup 3.0;

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).

Rollup 4.0;

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:

  • Taxas a prestadores de serviços (incluindo custos e “gorjetas”);
  • Custo de armazenamento on-chain de transações e dados de estado;
  • Quando o "Caçador de Recompensas" acredita que o prestador de serviço é fraudulento, o custo computacional de verificar o que ele disse é verdadeiro na cadeia.

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.

Este artigo explora as ideias de evolução e as razões de design da solução de expansão Rollup

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:

  • "Bounty Hunter" paga um depósito, depois relata e divide todo o processo de cálculo em n segmentos em ordem, apontando que o provedor de serviço possui fraude no segmento k (1;≤k≤n);
  • O provedor de serviços detalhou e desmontou o segmento k no segmento k e apontou qual segmento do "caçador de recompensas" estava incorreto;
  • Então, indo e vindo, sabendo que a operação de cálculo não pode mais ser detalhada ou desmontada, por exemplo, quando o "caçador de recompensas" pensa 1+;1;=;2;, o provedor de serviços pensa 1+;1;= ;3;;
  • Neste momento, intervém o contrato da cadeia, calcula 1+;1;, e obtém 2;, determinando assim que o prestador de serviço é fraudulento, confiscando seu depósito, e recompensando uma parte dele ao "caçador de recompensas".

(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?

Reevolução do Rollup

Após nossas várias iterações, o Rollup 4.0 ainda apresenta algumas imperfeições:

  • A fraude precisa ser descoberta por "caçadores de recompensas", mas se não houver fraude por muito tempo, os "caçadores de recompensas" podem fechar as portas porque não são lucrativos, então haverá uma lacuna (embora improvável, por causa do As partes interessadas da cadeia de acúmulo, como fornecedores de aplicativos, provavelmente agirão como "caçadores de recompensas");
  • Para ter certeza de que não há fraude, com base no consenso social, é preciso aguardar vários dias, o que afetará operações como saques;
  • Existem muitos dados na cadeia e o custo ainda está lá;
  • Atualmente contando com uma camada de expansão Rollup, o throughput pode ser aumentado em 10 vezes, é possível ser maior?

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.

  • Outra analogia é mais comum. Suponha que haja um quebra-cabeça de Sudoku, eu sei a resposta, mas você não, mas você não acredita que eu sei; quero provar a você que sei, mas não quero que você saiba a resposta. o que fazer? Posso colocar o Sudoku na mesa com cartas e, em seguida, colocar os números abertos para cima e os números que precisam ser preenchidos para baixo e permitir que você escolha verificar minha resposta por linha ou coluna. Se for por linha, vou agrupar os números em cada linha, separá-los e mostrar que cada linha é de 1 a 9; Não há problema em repetir várias vezes, então você pode acreditar que eu realmente sei a resposta com alta probabilidade. Este é um dos métodos de prova interativa do ZKP (porque é difícil conseguir interação on-chain em tempo real na blockchain, prova não interativa é geralmente usada e desafios aleatórios são gerados pela função Hash).

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:

  • Se o provador estiver mentindo, há uma grande probabilidade de falhar no desafio (Integridade);
  • Se o provador tiver conhecimento, conseguirá passar no desafio (Integridade);
  • Durante a interação entre as duas partes, o provador não divulgará nenhuma informação útil (conhecimento zero).

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:

  • O provador (prestador de serviços) pode fornecer rapidamente uma prova, de modo a garantir que a eficiência de cálculo sob a cadeia seja muito alta e não se torne um gargalo;
  • O tamanho da prova é pequeno, ou pelo menos proporcional à quantidade de cálculo a ser provado, e o impacto da quantidade de dados é o menor possível, para que o custo de armazenamento na cadeia seja baixo;
  • O verificador (contrato L1) pode verificar rapidamente se a prova é válida, portanto, o custo de cálculo na cadeia é baixo.

Usando esses recursos, nossa solução Rollup pode:

  • Não há necessidade de um "caçador de recompensas", o contrato L1 pode detectar fraudes na hora por si só;
  • Desde que a verificação do ZKP seja válida, os saques podem ser feitos imediatamente, e a finalização é reduzida de dias para minutos;
  • Apenas a diferença entre os estados é necessária na cadeia, o espaço é muito pequeno e o custo de armazenamento é muito baixo (um bônus adicional - a privacidade também é aprimorada);
  • Por meio da otimização personalizada de software e hardware do processo de prova e verificação, a capacidade de expansão pode ser aumentada em outra ordem de grandeza.

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:

  • Tome como exemplo o zk-SNARK mais comumente usado no blockchain. Muitos esquemas precisam apresentar o maior número possível de pessoas ou empresas de prestígio no início e fazer uma configuração confiável para gerar um número aleatório verdadeiro e garantir que o processo de geração seja verificável, mas não totalmente público (como na cerimônia do Poder de Tau, desde que uma das partes seja confiável, mas ainda conta como uma falha). É claro que alguns novos esquemas zk-SNARK e zk-STARKs aprimorados posteriormente podem resolver esse problema, mas às vezes novos problemas são introduzidos.
  • Muitos problemas são difíceis de resumir como problemas de ZKP, o que levou ao fato de que a programabilidade não foi bem resolvida por muito tempo. É difícil perceber ZKP que seja totalmente compatível com EVM no Ethereum, ou mesmo que possa ser alcançado, mas outros aspectos (como a eficiência da verificação) serão afetados.

Este artigo explora as ideias de evolução e as razões de design da solução de expansão Rollup

fonte:

Por isso, no ZK-Rollup, campo de expansão voltado para o futuro, todo progresso é louvável e gratificante.

Este artigo explora as ideias de evolução e as razões de design da solução de expansão Rollup

fonte:

escreva no final

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.

Ver original
O conteúdo serve apenas de referência e não constitui uma solicitação ou oferta. Não é prestado qualquer aconselhamento em matéria de investimento, fiscal ou jurídica. Consulte a Declaração de exoneração de responsabilidade para obter mais informações sobre os riscos.
  • Recompensa
  • Comentar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate.io
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)