Explicação detalhada da atualização do Boojum: por que o zkSync Era escolheu o sistema de prova STARK

Autor: zkSync; tradução: Jinse Finance xiaozou

Principais pontos deste artigo:

Atualização: o zkSync Era está em transição para um novo sistema à prova de Boojum sem regeneração.

**Desempenho: **Boojum demonstrou desempenho de prova de classe mundial, ajudando o desempenho do classificador zkSync Era, que já pode lidar com mais de 100 TPS.

**Descentralização: **O provador Boojum (certificador) precisa apenas de 16 GB de RAM, que suporta a descentralização em larga escala do provador no futuro.

**Pronto:**A prova de sombra (prova de sombra) foi lançada na rede principal!

Conforme articulamos em nosso manifesto ZK Credo, a missão do zkSync é promover a liberdade pessoal para todos, construindo uma rede blockchain que seja confiável, segura, sem permissão, acessível, fácil de usar, resiliente e infinitamente escalável, tornando a autopropriedade digital geralmente disponível .

Em busca dessa missão, a versão Alpha do zkSync Era foi aberta ao público há mais de três meses e recebeu uma resposta incrível. Vimos muita atividade na web durante esse período.

Destaques da rede:

· $ 577 milhões em valor total bloqueado (fonte: L2Beat).

23,75 milhões de transações processadas nos últimos 30 dias - a maior parte da L2 (fonte: L2Beat).

· Código-fonte 9735 contratos inteligentes verificados.

Em março de 2023, lançamos o zkSync Era, usando um sistema baseado em SNARK para dar suporte ao nosso zkEVM, utilizando a estrutura de circuito comprovada e suportando o zkSync Lite na rede principal por quase três anos. No entanto, sabemos que este não é o fim do sistema de prova zkSync Era, projetamos o sistema para permitir mudanças radicais sem realizar regênese. Isso significa que podemos fazer importantes atualizações de criptografia sem interromper desenvolvedores e usuários.

Há muito tempo trabalhamos em atualizações de criptografia. Hoje, temos o prazer de anunciar nossa primeira atualização de criptografia: zkSync Era está em transição para um novo sistema de prova baseado em STARK**, conhecido como "Boojum". **

1. Introdução ao Boojum

Boojum é o nome da nossa biblioteca de algoritmos e restrições baseada em Rust que usamos para implementar a versão atualizada dos circuitos ZK do zkSync Era e do ZK Stack. O nome Boojum foi inspirado no poema The Hunting of The Snark de Lewis Carroll, e Boojum representa o tipo mais aterrorizante de Snark.

**(1) O que é Boojum? **

O design do Boojum possui vários recursos atraentes:

· Algoritmo do tipo PLONK**: **Para protocolos de conhecimento zero, o algoritmo (aritmetização) é o processo de conversão de cálculos gerais em formas matemáticas. No que diz respeito ao sistema de prova atual, nosso sistema atualizado continua a usar o algoritmo do tipo PLONK. Usando essa abordagem, os circuitos ZK são mais fáceis de escrever do que algumas outras alternativas, e o sistema é mais fácil de desenvolver, auditar, manter e atualizar.

· **Esquema de compromisso poderoso: **O núcleo do Boojum é o esquema de compromisso FRI. O compromisso FRI é um componente chave, que nos permite fazer um compromisso com um polinômio limitado e, em seguida, provar com eficiência que a abertura reivindicada (polinomial) é de fato Pertence a polinômios de baixa ordem.

**Eficiência da parte "boring" do sistema: **Embora a geração de testemunhas às vezes seja ignorada quando as pessoas falam sobre o desempenho do provador, na versão atual do sistema de prova, otimizado O provador GPU é muito eficiente e o tempo de geração de testemunhas é comparável ao tempo de geração de provas. Com o Boojum, fornecemos geração paralela automatizada (se o gráfico de dependência permitir) de testemunhas, ao mesmo tempo em que facilitamos a definição de funções de geração de testemunhas como |(a, b)| a + b.

· Fácil de estender: A abstração básica do sistema de restrição é muito superficial, mas permite que os usuários adicionem seus tipos de restrição de porta personalizados de várias maneiras, como adicionar alguns polinômios especializados ou reutilizar colunas comuns. Depois que os usuários definem uma geometria simples para seu circuito, a interface de extensão oferece a capacidade de gerar automaticamente provadores, verificadores e verificadores recursivos. Isso permitirá um processo de desenvolvimento muito eficiente; se o usuário alterar a estrutura do circuito e optar por usar um tipo diferente de porta, ele poderá chamar a interface novamente e ela regenerará as chaves e garantirá que está usando os programas provadores e verificadores corretos .

· Single-stack: Com o Boojum, todos os itens acima podem ser expressos apenas em Rust idiomático padrão e usar a expressividade de seu sistema de tipos. As partes computacionalmente pesadas do provador de GPU são escritas em CUDA C++, mas fornecemos ligações Rust para a composição.

Por padrão, o Boojum opera em um campo de número primo de tamanho 2^64 - 2^32 + 1 (chamado "Goldilocks field", originalmente proposto por Mike Hamburg, usando parâmetros específicos sugeridos por Hamish Ivey-Law) e fornece o campo correspondente implementações primitivas de ligação de primitivas criptográficas, como a função de hash Poseidon2, e implementações de primitivas criptográficas mais padrão baseadas em tabelas de consulta, como SHA256, Keccak256 e Blake2s.

É importante ressaltar que, na etapa final de nossa implantação, usaremos um SNARK baseado em emparelhamento opaco - essencialmente uma versão ligeiramente atualizada do sistema de prova atual - para envolver a prova STARK, e esse SNARK estará disponível na autenticação Ethereum. Essas provas são muito menores e muito mais baratas de verificar; essa etapa reduz o custo do sistema de prova e, portanto, a própria transação.

Boojum se beneficiou das contribuições de muitas pessoas da comunidade e somos gratos pela variedade de ideias que recebemos. Inspiramo-nos nos documentos subjacentes de STARK, FRI e DEEP-FRI, no avanço das funções hash propostas em Poseidon e Poseidon2 e no desenvolvimento do algoritmo PLONK proposto por Gabizon, Williamson e Ciobotaru. Além disso, a abordagem inovadora do projeto Plonky2 (Farmer, Lubarov, Borgeaud, etc.) - incluindo a escolha de Poseidon MDS e o uso de constantes arredondadas, e os novos insights de quocientes em cache e pesquisa de pesquisa multivariada por Eagen, Fiore, Gabizon , e Haböck. São essas valiosas contribuições que juntas moldam o design do Boojum.

** 2. Por que escolher Boojum? **

Ao projetar o Boojum, nossa decisão considerou dois fatores principais: (1) desempenho comprovado de classe mundial e (2) requisitos de hardware reduzidos para descentralização.

(1) Desempenho de classe mundial

Nosso sistema atual baseado em SNARK, embora esteja funcionando efetivamente, não pode ser dimensionado para transações de alto volume e quase em tempo real que o ZK Stack planeja suportar nos próximos anos. Vislumbramos um futuro para esses sistemas em que as provas possam ser geradas e verificadas de forma barata e rápida, permitindo rápida finalização e interoperabilidade entre hipercadeias.

O desempenho do sistema de provas afeta diretamente o preço que os usuários pagam por suas transações, e esses custos precisam se aproximar de zero ao longo do tempo. A versão atual do sistema de prova é poderosa o suficiente para construir um zkEVM e processar milhões de transações em apenas alguns meses, mas com o Boojum podemos fazer ainda melhor!

Para medir o tempo de geração de provas da rede (e outras métricas importantes relacionadas ao desempenho), fizemos uma parceria com a Celer, equipe com ampla experiência em benchmarking e análise de sistemas multiprova. Você pode ver no gráfico abaixo que o Boojum supera significativamente a maioria dos sistemas. Os resultados falam por si: **Nossa implantação demonstra desempenho de prova de classe mundial, que é, até onde sabemos, o sistema de prova mais rápido em uso. **

Para uma comparação igual, o Celer executou esses benchmarks em um provador baseado em CPU, mas nosso sistema de rede principal usa um provador baseado em GPU mais rápido.

R30sS1Jn4hTAjEo4DBDqmCQrVTg1htiAeyqvkcx5.png

A mudança para um sistema de prova baseado em STARK trará melhorias significativas de desempenho e ajudará a garantir resultados finais de baixa latência e suportar maior atividade no zkSync Era e outros sistemas baseados em ZK Stack.

(2) Reduzir os requisitos de hardware para descentralização

Esses resultados de desempenho são especialmente impressionantes, visto que essa não era a única métrica para a qual estávamos otimizando - queríamos melhorar o desempenho do sistema enquanto reduzíamos os requisitos de hardware para o sistema rodar.

Os sistemas de prova populares de hoje, incluindo nosso sistema de prova atual, são obviamente muito exigentes em hardware. Nosso sistema de verificação atual é executado em um cluster de GPUs A100 com 80 GB de RAM cada. Essa necessidade de máquinas caras e poderosas representa um obstáculo significativo para nosso objetivo de possibilitar um futuro de geração de prova descentralizada e orientada pelo usuário. Para atingir esse objetivo, não basta tornar a geração de prova sem permissão; os usuários também devem não precisar de máquinas caras e centenas de gigabytes de RAM.

Esta é mais uma área em que fizemos grandes progressos! O provador de GPU que usamos no Boojum requer apenas 16 GB de RAM, um limite tão baixo é um passo importante em direção à nossa visão futura. A validação baseada em CPU também é possível com apenas 64 GB de RAM (esperamos que seja de até 32 GB) e pode aproveitar ao máximo os modernos processadores multi-core. Após a migração completa para o novo sistema de provas, divulgaremos mais informações sobre seus planos de descentralização.

Por fim, o sequenciador zkSync Era baseado em Rust já é capaz de processar mais de 100 transações por segundo (TPS). A introdução do novo sistema de prova não apenas melhora o desempenho, mas também reduz os requisitos de hardware, tornando-o um reforço ideal para classificadores. O aumento do desempenho do Boojum também significa que o sistema pode provar transações mais rapidamente, e a redução nos requisitos de hardware dá à rede acesso a máquinas de baixo custo, aumentando a escalabilidade horizontal.

3**, Boojum's Road to Mainnet**

A equipe está trabalhando nessa atualização há meses e estamos empolgados em finalmente trazer o sistema para a rede principal. Também queríamos compartilhar algumas histórias até agora.

(1) Atualize a Era do zkSync

Primeiro, vamos descrever brevemente como realizamos tal atualização. Primeiro, o design do zkSync Era nos permite atualizar cada componente ao longo do tempo, e o sistema de prova não é exceção.

Semelhante ao Ethereum, usamos uma estrutura de dados de árvore Merkle para armazenar informações sobre o estado da rede. Essa informação é necessária para provar o sistema porque estamos provando uma declaração sobre o estado do sistema. Uma decisão-chave de design dessa árvore Merkle (e a maneira como o sistema de prova interage com ela) é o uso de funções hash não algébricas, especificamente Blake2s. Se estivéssemos otimizando apenas para facilitar a geração de provas, usaríamos uma função hash algébrica (por exemplo, Poseidon2), mas essa escolha acoplaria o estado observável aos parâmetros do sistema de prova - como a escolha do campo principal. Qualquer atualização para o sistema de prova exigiria uma regênese completa do estado, o que seria uma experiência extremamente perturbadora para os usuários do zkSync Era. Tudo o que precisamos fazer para atualizar nosso sistema de prova é reimplantar Blake2s dentro do circuito.

(2) Boojum: do design à revisão

Há cerca de um mês, começamos a focar nossos esforços na implementação de uma versão completa end-to-end do novo sistema de provas. Dada a complexidade desta atualização e a importância da correção do sistema, iniciamos uma série de revisões internas e externas auditorias .

O circuito zkEVM e a biblioteca de algoritmos Boojum ainda estavam em desenvolvimento ativo na época, mas trabalhamos com auditores de segurança externos que se concentraram na identificação precoce de possíveis problemas relacionados à confiabilidade do circuito principal e dos componentes Boojum. Trabalhamos juntos para fornecer a eles acesso total ao código-fonte e à documentação enquanto eles revisavam e testavam o circuito zkEVM e as ferramentas relacionadas ao Boojum (usando métodos automatizados e manuais). Por meio dessa parceria, pudemos resolver muitos problemas iniciais.

(3) Boojum: da revisão ao teste

Agora, entramos na próxima etapa do nosso plano: Mainnet Shadow Mode! Estamos entusiasmados por agora poder executar o novo sistema de prova junto com o existente, embora o Boojum esteja apenas na versão beta. Já estamos gerando e validando “provas de sombra” de blocos da rede principal.

A versão mainnet do zkSync Era não requer provas de sombra - continuará a ser alimentada pelo sistema de prova existente. Estamos apenas validando essas provas de sombra para testar e otimizar o sistema, mas usando dados de produção reais da atividade do usuário do zkSync Era.

Também estamos entusiasmados por fazer este teste publicamente, nas próximas semanas você verá links para algumas informações sobre essas provas de sombra no explorador de bloco ao lado das informações de prova existentes, estamos abrindo o código de uma ferramenta CLI que qualquer pessoa pode usar para verificar novas provas.

Agora estamos particularmente focados em testar o novo sistema de prova e não planejamos verificar as provas de sombra no Ethereum ainda. Durante a fase de teste, a verificação das provas de sombra será feita fora da cadeia, procuramos casos extremos e bugs e continuamos a revisar a implementação.

Também estamos abrindo o código base do Boojum hoje. Observe: a base de código ainda é um trabalho em andamento! À medida que o teste avança, você provavelmente também verá vários ajustes, otimizações, correções e melhorias na documentação. Também estamos abrindo vários outros repositórios interessantes nas próximas semanas, incluindo circuitos atualizados e um provador de GPU.

(4) Boojum: Do teste à migração

A segurança é uma prioridade máxima em tudo o que fazemos. Consideraremos a migração apenas quando estivermos totalmente satisfeitos com nossos testes do novo sistema e compartilharemos mais detalhes nas próximas semanas e meses. Também planejamos realizar mais auditorias e análises de segurança, e essa atualização empolgante está prestes a ser totalmente implementada enquanto o sistema de atestado atual está obsoleto.

Acreditamos que o Boojum, juntamente com nosso compromisso com a inovação e o design que prioriza o usuário, é o próximo passo em direção a um zkEVM mais seguro, escalável e eficiente.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 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
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)