A rolagem impulsionará a onda Layer2? E os circuitos e auditoria zkEVM que você precisa saber

intermediário12/27/2023, 8:47:30 AM
Este artigo fornece uma análise detalhada da arquitetura e tecnologia do Scroll, ajudando os leitores a compreender o status atual da rede e as direções de desenvolvimento futuro do Scroll. Também explica os circuitos e auditorias do Scroll zkEVM.

No dia 10 de outubro, às 14h, a rede principal Scroll da solução Ethereum Layer 2 gerou seu primeiro bloco, marcando o lançamento bem-sucedido da rede principal Scroll. Em 25 de outubro, mais de 7.600 ETH foram conectados à rede Scroll por meio de pontes entre cadeias, e 24 plataformas de negociação descentralizadas foram ativas na rede principal Scroll, com um TVL total de aproximadamente US$ 10 milhões.

Em 17 de outubro, a Scroll anunciou oficialmente o lançamento de sua rede principal, continuando a manter seu compromisso com o código aberto e a descentralização. Na próxima fase, a Scroll se concentrará na construção de uma rede e classificador descentralizado de prova de participação. Neste artigo, forneceremos uma análise detalhada da arquitetura e tecnologia da Scroll para ajudar todos a entender o status atual da rede e a direção de desenvolvimento futuro da Scroll. Também explicaremos o circuito zkEVM da Scroll e o conhecimento de auditoria para fortalecer as medidas de segurança para projetos zk.

Quem é Scroll, a força motriz da onda Layer2?

Scroll é uma solução de escalonamento Ethereum Layer 2 baseada em tecnologia de prova de conhecimento zero, que visa melhorar o rendimento das transações e a velocidade da rede Ethereum. Comparado ao Optimistic Rollup, o Scroll alcança escalabilidade por meio de provas de conhecimento zero e acelera a geração e verificação de provas de conhecimento zero por meio da aceleração de hardware. Ela está comprometida em alcançar compatibilidade EVM em nível de bytecode. Isso significa que os desenvolvedores podem usar diretamente ferramentas de desenvolvimento relacionadas ao Solidity e Ethereum para construir contratos inteligentes e implantá-los no Scroll sem quaisquer modificações.

De acordo com o site oficial da Scroll, existem atualmente 10 membros principais na equipe Scroll, distribuídos pela Ásia, América e Europa. Os membros da equipe têm vasta experiência no desenvolvimento de zkRollup e operações industriais, sendo que a maioria deles se formou em universidades de prestígio e possui doutorado.

Atualmente, o ecossistema Scroll é muito rico, com projetos de infraestrutura incluindo carteiras, ferramentas de desenvolvimento, instalações de segurança e muito mais. O objetivo é fornecer suporte abrangente aos projetos durante todo o ciclo de vida, desde o design, desenvolvimento, operação até a auditoria de segurança. Atualmente, existem mais de 180 projetos de ecossistema na rede principal Scroll.

  1. Carteira
    Scroll atualmente suporta quase todas as carteiras convencionais: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Além disso, a carteira do ecossistema Scroll também inclui OKX Wallet, Versa Wallet e assim por diante.

  2. Ponte Cruzada
    A infraestrutura cross-chain oficial da Scroll inclui Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, etc. Além disso, também inclui protocolo de liquidez cruzada Synapse Protocol, Owlto Finance com foco em pontes cruzadas de Camada 2, ponte de cadeia cruzada Ethereum Layer 1 e Camada 2 Pheasant Network, Symbiosis, Catalyst, etc.

  3. DeFi
    No ecossistema Scroll, existem vários projetos DeFi bem estabelecidos, incluindo protocolo de empréstimo Aave, agregador DEX multi-cadeia DODO, DEX SushiSwap, agregador DEX OpenOcean, protocolo DeFi multi-cadeia iZUMi Finance, DEX Syncswap, protocolo de rendimento Pendle Finance, empréstimo protocolo dForce e alavancagem do agregador de negociação MUX Protocol. Existem também projetos inovadores como o GMX que não foram amplamente adotados.

  4. Outros
    Em termos de NFT, jogos e aspectos sociais, outros projetos no ecossistema Scroll incluem NFTScan, plataforma de tarefas Web3 QuestN, TaskOn, plataforma de assinatura de protocolo eletrônico EthSign, Galaxy Blitz, OmniKingdoms e outros jogos blockchain online.

O que diferencia a tecnologia Scroll das outras?

1. Arquitetura Geral

A arquitetura do Scroll consiste em três componentes:

Scroll Node: Ele gera blocos na rede Scroll com base nas transações do usuário, envia essas transações para a camada base Ethereum e lida com a passagem de mensagens entre Ethereum e Scroll.

Roller: O Roller é responsável por converter contratos inteligentes em circuitos zkEVM e, em seguida, gerar provas para comprovar a veracidade das transações. Existem vários Rollers na rede Scroll, que processam transações em paralelo e aceleram a geração de provas por meio de hardware. Scroll alcança compatibilidade em nível de bytecode com EVM, provando diretamente a exatidão do processamento de bytecode EVM.

Contrato Rollup e Bridge: Esses contratos fornecem disponibilidade de dados para transações Scroll e verificam as provas de validade geradas pelo zkEVM. Pode-se dizer que Scroll está conectado à camada base Ethereum por meio de contratos Rollup e Bridge. Através desses contratos, os usuários podem trocar mensagens arbitrárias entre Ethereum e Scroll e transferir ativos ERC-20 em qualquer direção com a ajuda de contratos de gateway.


fonte: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Scroll é o principal contrato implantado na blockchain Ethereum:

Contrato de proxy de roteamento de gateway (garantindo o mapeamento correto de tokens em operações de cadeia cruzada): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Contrato de proxy de mensagem (transmissão de mensagens entre L1 e L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Vale ressaltar que esses contratos podem ser modificados pelo administrador e proprietário do proxy. Além disso, o Scroll incorporou uma função de lista de permissões que permite o ajuste das taxas de gás para endereços específicos no Scroll. Atualmente, o sequenciador Scroll opera de forma centralizada, o que permite a revisão de mensagens e transações na rede Scroll. Além disso, existe a possibilidade de ignorar qualquer mensagem na fila de mensagens e confirmar diretamente uma mensagem específica.

2. Role o fluxo de trabalho zkEVM

Depois que Scroll gera um bloco, ele passa por um coordenador e vários provadores (Rollers) para gerar provas agregadas. Essas provas são então submetidas ao contrato Ethereum Rollup para verificação. O processo detalhado é o seguinte:

1、O sequenciador recebe novas transações. A máquina virtual lê o bytecode associado a cada transação, gerando um rastreamento de execução e enviando-o ao coordenador. Simultaneamente, o sequenciador envia os dados da transação para o contrato Rollup.

2、Rollers convertem os rastreamentos de execução recebidos do coordenador em circuitos zkEVM. Cada etapa do rastreamento de execução corresponde a um circuito zkEVM. Para funções que não são compatíveis com zk (como hash e Keccak), Scroll constrói tabelas de consulta para mapear as entradas e saídas dessas funções no rastreamento de execução para a tabela de consulta. Circuitos adicionais são usados para verificar a exatidão da tabela de consulta. Os rolos então geram provas para esses circuitos zkEVM.

3、Após gerar as provas, os Rollers as devolvem ao coordenador. A cada poucos blocos, o coordenador atribui aleatoriamente tarefas de agregação a um Roller. O Roller atribuído então agrega provas de vários blocos em uma única prova.

4、Por último, o coordenador submete a prova agregada ao contrato Rollup. O contrato Rollup usa essa prova para verificar a exatidão do estado e dos dados de transação enviados anteriormente, confirmando assim a exatidão do bloco.

Rolar circuitos e auditoria zkEVM

1. Circuitos Principais

zkEVM consiste em vários circuitos, cada um com a tarefa de verificar um aspecto específico do EVM (Ethereum Virtual Machine). Esses circuitos são eventualmente combinados ou agregados para gerar prova de execução da transação. O diagrama abaixo ilustra a relação entre esses circuitos e as tabelas.

Existem subcircuitos menores, como o circuito ECDSA e subcircuitos relacionados ao código de operação, que não interagem com outras tabelas e circuitos de uma forma que afete a combinação do circuito. Esses subcircuitos são omitidos do diagrama para maior clareza.

Circuito EVM

A Máquina Virtual Ethereum (EVM) é uma máquina de estado que estabelece as regras para transições de estado válidas dentro do protocolo Ethereum. Ele executa instruções (opcodes) para realizar essas transições e gera um rastreamento de execução. O objetivo do circuito EVM é criar um sistema de restrições que represente o rastreamento de execução e possa ser verificado usando um sistema à prova de conhecimento zero.

O design de alto nível do circuito EVM é um pouco semelhante ao design do próprio EVM, como o go-ethereum. No go-ethereum, o interpretador itera por todos os opcodes de instrução no rastreamento de execução. Para cada instrução, o intérprete verifica informações de contexto relevantes, como gás, pilha e memória, e então envia o opcode para JumpTable, que fornece instruções detalhadas para executar o opcode.

Da mesma forma, em circuitos EVM, Scroll constrói etapas de execução com base no rastreamento de execução e fornece provas para opcodes e contextos de execução. Para cada etapa de execução, um conjunto de restrições é aplicado para verificar as informações contextuais. Para cada opcode, um conjunto de restrições é aplicado para verificar seu comportamento. Dentro do rastreamento de execução, o mesmo opcode deve ter as mesmas restrições. Scroll usa seletores para “abrir” todas as etapas com o mesmo opcode no rastreamento de execução e usa o sistema de prova de backend para provar seu comportamento.

Circuito Estadual

Durante a execução, todas as operações de leitura e gravação do EVM são registradas na rw_table e ordenadas pela variável rw_counter. O objetivo do circuito de estado é demonstrar a geração precisa da rw_table.

Circuito MPT

A Merkle Patricia Tree (MPT) é uma estrutura de dados chave usada na camada de armazenamento Ethereum. Nos circuitos zkevm de Scroll, o MPT é modificado para zkTrie, que é essencialmente um Merkle Patricia Trie binário esparso. Nos circuitos zkevm, Scroll utiliza a tabela MPT para rastrear as transições de estado das operações MPT passo a passo. A tabela MPT possui o seguinte layout:

O objetivo do circuito MPT é verificar a precisão da tabela MPT mencionada acima. Garante que cada atualização registrada na tabela MPT resulte em uma alteração correta. Isso significa que para cada atualização, o circuito MPT garante que só existe uma forma possível de fazer alterações. Isto evita modificações acidentais ou não autorizadas e garante a integridade e precisão do MPT. Especificamente, quando o MPT sofre alterações devido a atualizações de contas ou de armazenamento, o circuito MPT deve comprovar que essas atualizações são realizadas de acordo com as regras especificadas. Além disso, deve demonstrar que o hash raiz reflete com precisão os resultados de todas as alterações.

Circuito Keccak

Scroll implementou sua própria versão do Keccak256, seguindo a especificação NIST Keccak e a especificação da equipe Keccak.

E o circuito Keccak é usado para provar a exatidão da operação do Keccak256. A implementação deste circuito é complexa, principalmente porque o próprio algoritmo keccak256 é hostil ao zk.

Circuito Tx

O circuito Tx fornece restrições para validar a exatidão de uma transação. Ele verifica principalmente os seguintes aspectos da transação:

  1. A exatidão de CallDataLength e CallDataGasCost cumulativo: Determine a porta personalizada e encontre a última linha de bytes de dados de chamada na tabela tx;

  2. A exatidão dos dados relacionados ao TxSign e TxHash: Pesquise a tabela RLP e a tabela Keccak;

  3. Prove a correção de “se tx_type for L1Msg, então msg_hash”: Verifique pesquisando na tabela RLP;

  4. Execute a assinatura tx corretamente usando ECDSA e recupere corretamente o endereço do chamador a partir da assinatura ECDSA: Verifique pesquisando a tabela sig;

  5. O comportamento transicional correto de tx id, cum_num_txs e call_data_length;

  6. Algumas restrições básicas, como valores booleanos de determinadas variáveis indicadoras.

Circuito de Bytecode

Os circuitos EVM precisam procurar uma tabela de bytecode que contenha as informações corretas de bytecode. Isso garante que os bytes armazenados no contrato correspondam aos bytes carregados da tabela. O objetivo do circuito de bytecode é garantir a correção da tabela de bytecode. Isso inclui:

  1. Restrições relacionadas ao comportamento dos limites com tags (tag): Restrições na primeira e última linhas, conversão de tag == byte para cabeçalho e vice-versa, conversão de cabeçalho para cabeçalho;

  2. Restrições no tamanho do código: Incluindo o cálculo do comprimento do bytecode através da restrição do índice do último byte do bytecode;

  3. Restrições no hash do código: Restringir corretamente o comportamento RLC dos bytes no hash do código e verificar o hash do código consultando a tabela Keccak;

  4. Garantir a correção do comportamento PUSH: is_code = push_data_left == 0 (deve ser um valor booleano) e verificar o tamanho dos dados enviados para PUSH1-PUSH32 consultando push_table;

  5. Garantindo a propagação correta em cada linha de um bytecode.

2. Auditoria de segurança

Diferentes cadeias têm suas próprias funções de módulo de negócios customizadas, que geralmente modificam os contratos e opcodes pré-compilados no EVM. Entre eles, Scroll zkEVM é uma solução de escalonamento de segunda camada baseada em provas de conhecimento zero. Esta solução reconstrói os opcodes relevantes usando circuitos e gera provas com base em rastreamentos de execução. Esta implementação complexa aumenta muito a dificuldade de auditoria. Após avaliação dos especialistas em segurança da Beosin, a auditoria de segurança do zkEVM concentra-se principalmente nos seguintes aspectos:

  1. GAS:Ao gerar provas para o rastreamento de execução do circuito zkEVM, também verifica a exatidão do consumo de gás para transações. Se variáveis livres irrestritas forem frequentemente usadas no circuito de implementação dos opcodes, isso poderá resultar em falha na geração de provas ou outros erros desconhecidos.

  2. Segurança de memória: alguns circuitos zkEVM são baseados em compromissos polinomiais, como o compromisso KZG usado pelo Scroll. No entanto, os cálculos polinomiais não se alinham automaticamente, portanto, se o circuito não tiver restrições, poderá resultar em um intervalo de valores inconsistente com o intervalo de bytes em programas de computador. Em alguns casos, quando os desenvolvedores de contratos permitem a otimização do gás, o arranjo compacto dos dados pode levar a problemas de segurança de memória, como o polinômio constante BYTE_C4096 no Polygon zkEVM. Os polinômios permitem que os valores dos parâmetros excedam o intervalo máximo de valores de bytes de 255, o que pode potencialmente permitir que sequenciadores maliciosos manipulem parâmetros para obter lucro em algumas plataformas de troca que adotam o modelo AMM. Essencialmente, estes tipos de vulnerabilidades surgem de inconsistências entre o intervalo de validade numérica representado pelo circuito e o intervalo de valores variáveis do programa. Um exemplo é a vulnerabilidade CVE-2023-33252 descoberta pelos pesquisadores de segurança da Beosin na biblioteca Snarkjs.

  3. Segurança de Opcode: Ao implementar opcodes zkEVM, existem problemas de segurança comuns, especialmente em relação à precisão. Por exemplo, ao comparar dois números no circuito subjacente, se a precisão da operação de comparação no programa for de 1 byte, as restrições do circuito precisarão especificar o intervalo de valores. Caso contrário, a precisão das operações no circuito excederá a precisão do programa, levando a resultados incorretos.

  4. Suporte para EIPs seguros: Suporte para EIPs com foco em segurança, como EIP-2 e EIP-155.

  5. Problema de centralização no Sequencer: Atualmente todas as provas geradas pelo Scroll dependem do trace de execução gerado pelo Sequencer. Se o Sequencer se comportar de forma maliciosa, o zkEVM não poderá garantir a segurança dos ativos do usuário.

  6. Problema de compatibilidade: zkEVM gera provas de circuito com base no rastreamento de execução e as verifica no contrato. Mesmo pequenas atualizações no Sequencer podem resultar em diferenças significativas no rastreamento de execução gerado no nível da linguagem subjacente.

Perspectiva futura da Scroll

  1. Scroll atualmente adota uma versão KZG de duas camadas do sistema de prova Halo2, usando aceleração de hardware GPU para acelerar a geração de prova. O gargalo agora mudou para a geração de testemunhas e replicação de dados. Além disso, o nível de centralização e os custos operacionais de hardware do Roller também são aspectos que a Scroll precisa considerar para o desenvolvimento futuro de sistemas de prova em vários estágios.

  2. Como o rastreamento de execução do EVM muda dinamicamente, existem várias restrições e escalas de circuito. Atualmente, para acomodar o rastreamento de execução que muda dinamicamente, cada etapa do rastreamento de execução precisa satisfazer a maior escala do circuito, resultando em desperdício adicional de memória.

  3. Atualmente, espera-se que o Scroll's Roller lucre com taxas de transação de rede. No entanto, o número atual de usuários e as taxas de transação na rede Scroll não podem cobrir os custos operacionais do Roller e do sequenciador. No futuro, a forma como a rede Scroll fornece incentivos económicos para atrair utilizadores e manter o funcionamento estável da rede é uma questão que precisa de ser considerada.

Atualmente, a Beosin também apoia a auditoria do projeto zk. Para pesquisas de segurança radicais sobre zk, você pode ler os seguintes artigos: 1. Ataque de maleabilidade de transação da prova Groth16; 2. Explorando o Tornado Cash em profundidade para revelar ataques de maleabilidade em projetos ZKP.

A Beosin, como empresa líder global em segurança de blockchain, estabeleceu filiais em mais de 10 países e regiões em todo o mundo. Nossos serviços abrangem auditorias de segurança de código antes do lançamento do projeto, monitoramento de riscos de segurança, alerta precoce e prevenção durante a operação do projeto, recuperação de ativos para moedas virtuais roubadas e serviços de conformidade seguros, como KYT/AML. Fornecemos uma solução completa para produtos e serviços de segurança blockchain. Atualmente, fornecemos serviços de tecnologia de segurança para mais de 3.000 empresas de blockchain em todo o mundo e auditamos mais de 3.000 contratos inteligentes. Sinta-se livre para nos contatar.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [Beosin]. Todos os direitos autorais pertencem ao autor original [Beosin]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

A rolagem impulsionará a onda Layer2? E os circuitos e auditoria zkEVM que você precisa saber

intermediário12/27/2023, 8:47:30 AM
Este artigo fornece uma análise detalhada da arquitetura e tecnologia do Scroll, ajudando os leitores a compreender o status atual da rede e as direções de desenvolvimento futuro do Scroll. Também explica os circuitos e auditorias do Scroll zkEVM.

No dia 10 de outubro, às 14h, a rede principal Scroll da solução Ethereum Layer 2 gerou seu primeiro bloco, marcando o lançamento bem-sucedido da rede principal Scroll. Em 25 de outubro, mais de 7.600 ETH foram conectados à rede Scroll por meio de pontes entre cadeias, e 24 plataformas de negociação descentralizadas foram ativas na rede principal Scroll, com um TVL total de aproximadamente US$ 10 milhões.

Em 17 de outubro, a Scroll anunciou oficialmente o lançamento de sua rede principal, continuando a manter seu compromisso com o código aberto e a descentralização. Na próxima fase, a Scroll se concentrará na construção de uma rede e classificador descentralizado de prova de participação. Neste artigo, forneceremos uma análise detalhada da arquitetura e tecnologia da Scroll para ajudar todos a entender o status atual da rede e a direção de desenvolvimento futuro da Scroll. Também explicaremos o circuito zkEVM da Scroll e o conhecimento de auditoria para fortalecer as medidas de segurança para projetos zk.

Quem é Scroll, a força motriz da onda Layer2?

Scroll é uma solução de escalonamento Ethereum Layer 2 baseada em tecnologia de prova de conhecimento zero, que visa melhorar o rendimento das transações e a velocidade da rede Ethereum. Comparado ao Optimistic Rollup, o Scroll alcança escalabilidade por meio de provas de conhecimento zero e acelera a geração e verificação de provas de conhecimento zero por meio da aceleração de hardware. Ela está comprometida em alcançar compatibilidade EVM em nível de bytecode. Isso significa que os desenvolvedores podem usar diretamente ferramentas de desenvolvimento relacionadas ao Solidity e Ethereum para construir contratos inteligentes e implantá-los no Scroll sem quaisquer modificações.

De acordo com o site oficial da Scroll, existem atualmente 10 membros principais na equipe Scroll, distribuídos pela Ásia, América e Europa. Os membros da equipe têm vasta experiência no desenvolvimento de zkRollup e operações industriais, sendo que a maioria deles se formou em universidades de prestígio e possui doutorado.

Atualmente, o ecossistema Scroll é muito rico, com projetos de infraestrutura incluindo carteiras, ferramentas de desenvolvimento, instalações de segurança e muito mais. O objetivo é fornecer suporte abrangente aos projetos durante todo o ciclo de vida, desde o design, desenvolvimento, operação até a auditoria de segurança. Atualmente, existem mais de 180 projetos de ecossistema na rede principal Scroll.

  1. Carteira
    Scroll atualmente suporta quase todas as carteiras convencionais: Metamask, TrustWallet, MathWallet, TokenPocket, WalletConnect, Binance Chain Wallet, SafePal Wallet. Além disso, a carteira do ecossistema Scroll também inclui OKX Wallet, Versa Wallet e assim por diante.

  2. Ponte Cruzada
    A infraestrutura cross-chain oficial da Scroll inclui Celer Network, Stargate, Orbiter Finance, Hop Protocol, LI.FI, Connext, etc. Além disso, também inclui protocolo de liquidez cruzada Synapse Protocol, Owlto Finance com foco em pontes cruzadas de Camada 2, ponte de cadeia cruzada Ethereum Layer 1 e Camada 2 Pheasant Network, Symbiosis, Catalyst, etc.

  3. DeFi
    No ecossistema Scroll, existem vários projetos DeFi bem estabelecidos, incluindo protocolo de empréstimo Aave, agregador DEX multi-cadeia DODO, DEX SushiSwap, agregador DEX OpenOcean, protocolo DeFi multi-cadeia iZUMi Finance, DEX Syncswap, protocolo de rendimento Pendle Finance, empréstimo protocolo dForce e alavancagem do agregador de negociação MUX Protocol. Existem também projetos inovadores como o GMX que não foram amplamente adotados.

  4. Outros
    Em termos de NFT, jogos e aspectos sociais, outros projetos no ecossistema Scroll incluem NFTScan, plataforma de tarefas Web3 QuestN, TaskOn, plataforma de assinatura de protocolo eletrônico EthSign, Galaxy Blitz, OmniKingdoms e outros jogos blockchain online.

O que diferencia a tecnologia Scroll das outras?

1. Arquitetura Geral

A arquitetura do Scroll consiste em três componentes:

Scroll Node: Ele gera blocos na rede Scroll com base nas transações do usuário, envia essas transações para a camada base Ethereum e lida com a passagem de mensagens entre Ethereum e Scroll.

Roller: O Roller é responsável por converter contratos inteligentes em circuitos zkEVM e, em seguida, gerar provas para comprovar a veracidade das transações. Existem vários Rollers na rede Scroll, que processam transações em paralelo e aceleram a geração de provas por meio de hardware. Scroll alcança compatibilidade em nível de bytecode com EVM, provando diretamente a exatidão do processamento de bytecode EVM.

Contrato Rollup e Bridge: Esses contratos fornecem disponibilidade de dados para transações Scroll e verificam as provas de validade geradas pelo zkEVM. Pode-se dizer que Scroll está conectado à camada base Ethereum por meio de contratos Rollup e Bridge. Através desses contratos, os usuários podem trocar mensagens arbitrárias entre Ethereum e Scroll e transferir ativos ERC-20 em qualquer direção com a ajuda de contratos de gateway.


fonte: https://scroll.mirror.xyz/nDAbJbSIJdQIWqp9kn8J0MVS4s6pYBwHmK7keidQs-k

Scroll é o principal contrato implantado na blockchain Ethereum:

Contrato de proxy de roteamento de gateway (garantindo o mapeamento correto de tokens em operações de cadeia cruzada): 0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6

Contrato de proxy de mensagem (transmissão de mensagens entre L1 e L2): 0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367

Vale ressaltar que esses contratos podem ser modificados pelo administrador e proprietário do proxy. Além disso, o Scroll incorporou uma função de lista de permissões que permite o ajuste das taxas de gás para endereços específicos no Scroll. Atualmente, o sequenciador Scroll opera de forma centralizada, o que permite a revisão de mensagens e transações na rede Scroll. Além disso, existe a possibilidade de ignorar qualquer mensagem na fila de mensagens e confirmar diretamente uma mensagem específica.

2. Role o fluxo de trabalho zkEVM

Depois que Scroll gera um bloco, ele passa por um coordenador e vários provadores (Rollers) para gerar provas agregadas. Essas provas são então submetidas ao contrato Ethereum Rollup para verificação. O processo detalhado é o seguinte:

1、O sequenciador recebe novas transações. A máquina virtual lê o bytecode associado a cada transação, gerando um rastreamento de execução e enviando-o ao coordenador. Simultaneamente, o sequenciador envia os dados da transação para o contrato Rollup.

2、Rollers convertem os rastreamentos de execução recebidos do coordenador em circuitos zkEVM. Cada etapa do rastreamento de execução corresponde a um circuito zkEVM. Para funções que não são compatíveis com zk (como hash e Keccak), Scroll constrói tabelas de consulta para mapear as entradas e saídas dessas funções no rastreamento de execução para a tabela de consulta. Circuitos adicionais são usados para verificar a exatidão da tabela de consulta. Os rolos então geram provas para esses circuitos zkEVM.

3、Após gerar as provas, os Rollers as devolvem ao coordenador. A cada poucos blocos, o coordenador atribui aleatoriamente tarefas de agregação a um Roller. O Roller atribuído então agrega provas de vários blocos em uma única prova.

4、Por último, o coordenador submete a prova agregada ao contrato Rollup. O contrato Rollup usa essa prova para verificar a exatidão do estado e dos dados de transação enviados anteriormente, confirmando assim a exatidão do bloco.

Rolar circuitos e auditoria zkEVM

1. Circuitos Principais

zkEVM consiste em vários circuitos, cada um com a tarefa de verificar um aspecto específico do EVM (Ethereum Virtual Machine). Esses circuitos são eventualmente combinados ou agregados para gerar prova de execução da transação. O diagrama abaixo ilustra a relação entre esses circuitos e as tabelas.

Existem subcircuitos menores, como o circuito ECDSA e subcircuitos relacionados ao código de operação, que não interagem com outras tabelas e circuitos de uma forma que afete a combinação do circuito. Esses subcircuitos são omitidos do diagrama para maior clareza.

Circuito EVM

A Máquina Virtual Ethereum (EVM) é uma máquina de estado que estabelece as regras para transições de estado válidas dentro do protocolo Ethereum. Ele executa instruções (opcodes) para realizar essas transições e gera um rastreamento de execução. O objetivo do circuito EVM é criar um sistema de restrições que represente o rastreamento de execução e possa ser verificado usando um sistema à prova de conhecimento zero.

O design de alto nível do circuito EVM é um pouco semelhante ao design do próprio EVM, como o go-ethereum. No go-ethereum, o interpretador itera por todos os opcodes de instrução no rastreamento de execução. Para cada instrução, o intérprete verifica informações de contexto relevantes, como gás, pilha e memória, e então envia o opcode para JumpTable, que fornece instruções detalhadas para executar o opcode.

Da mesma forma, em circuitos EVM, Scroll constrói etapas de execução com base no rastreamento de execução e fornece provas para opcodes e contextos de execução. Para cada etapa de execução, um conjunto de restrições é aplicado para verificar as informações contextuais. Para cada opcode, um conjunto de restrições é aplicado para verificar seu comportamento. Dentro do rastreamento de execução, o mesmo opcode deve ter as mesmas restrições. Scroll usa seletores para “abrir” todas as etapas com o mesmo opcode no rastreamento de execução e usa o sistema de prova de backend para provar seu comportamento.

Circuito Estadual

Durante a execução, todas as operações de leitura e gravação do EVM são registradas na rw_table e ordenadas pela variável rw_counter. O objetivo do circuito de estado é demonstrar a geração precisa da rw_table.

Circuito MPT

A Merkle Patricia Tree (MPT) é uma estrutura de dados chave usada na camada de armazenamento Ethereum. Nos circuitos zkevm de Scroll, o MPT é modificado para zkTrie, que é essencialmente um Merkle Patricia Trie binário esparso. Nos circuitos zkevm, Scroll utiliza a tabela MPT para rastrear as transições de estado das operações MPT passo a passo. A tabela MPT possui o seguinte layout:

O objetivo do circuito MPT é verificar a precisão da tabela MPT mencionada acima. Garante que cada atualização registrada na tabela MPT resulte em uma alteração correta. Isso significa que para cada atualização, o circuito MPT garante que só existe uma forma possível de fazer alterações. Isto evita modificações acidentais ou não autorizadas e garante a integridade e precisão do MPT. Especificamente, quando o MPT sofre alterações devido a atualizações de contas ou de armazenamento, o circuito MPT deve comprovar que essas atualizações são realizadas de acordo com as regras especificadas. Além disso, deve demonstrar que o hash raiz reflete com precisão os resultados de todas as alterações.

Circuito Keccak

Scroll implementou sua própria versão do Keccak256, seguindo a especificação NIST Keccak e a especificação da equipe Keccak.

E o circuito Keccak é usado para provar a exatidão da operação do Keccak256. A implementação deste circuito é complexa, principalmente porque o próprio algoritmo keccak256 é hostil ao zk.

Circuito Tx

O circuito Tx fornece restrições para validar a exatidão de uma transação. Ele verifica principalmente os seguintes aspectos da transação:

  1. A exatidão de CallDataLength e CallDataGasCost cumulativo: Determine a porta personalizada e encontre a última linha de bytes de dados de chamada na tabela tx;

  2. A exatidão dos dados relacionados ao TxSign e TxHash: Pesquise a tabela RLP e a tabela Keccak;

  3. Prove a correção de “se tx_type for L1Msg, então msg_hash”: Verifique pesquisando na tabela RLP;

  4. Execute a assinatura tx corretamente usando ECDSA e recupere corretamente o endereço do chamador a partir da assinatura ECDSA: Verifique pesquisando a tabela sig;

  5. O comportamento transicional correto de tx id, cum_num_txs e call_data_length;

  6. Algumas restrições básicas, como valores booleanos de determinadas variáveis indicadoras.

Circuito de Bytecode

Os circuitos EVM precisam procurar uma tabela de bytecode que contenha as informações corretas de bytecode. Isso garante que os bytes armazenados no contrato correspondam aos bytes carregados da tabela. O objetivo do circuito de bytecode é garantir a correção da tabela de bytecode. Isso inclui:

  1. Restrições relacionadas ao comportamento dos limites com tags (tag): Restrições na primeira e última linhas, conversão de tag == byte para cabeçalho e vice-versa, conversão de cabeçalho para cabeçalho;

  2. Restrições no tamanho do código: Incluindo o cálculo do comprimento do bytecode através da restrição do índice do último byte do bytecode;

  3. Restrições no hash do código: Restringir corretamente o comportamento RLC dos bytes no hash do código e verificar o hash do código consultando a tabela Keccak;

  4. Garantir a correção do comportamento PUSH: is_code = push_data_left == 0 (deve ser um valor booleano) e verificar o tamanho dos dados enviados para PUSH1-PUSH32 consultando push_table;

  5. Garantindo a propagação correta em cada linha de um bytecode.

2. Auditoria de segurança

Diferentes cadeias têm suas próprias funções de módulo de negócios customizadas, que geralmente modificam os contratos e opcodes pré-compilados no EVM. Entre eles, Scroll zkEVM é uma solução de escalonamento de segunda camada baseada em provas de conhecimento zero. Esta solução reconstrói os opcodes relevantes usando circuitos e gera provas com base em rastreamentos de execução. Esta implementação complexa aumenta muito a dificuldade de auditoria. Após avaliação dos especialistas em segurança da Beosin, a auditoria de segurança do zkEVM concentra-se principalmente nos seguintes aspectos:

  1. GAS:Ao gerar provas para o rastreamento de execução do circuito zkEVM, também verifica a exatidão do consumo de gás para transações. Se variáveis livres irrestritas forem frequentemente usadas no circuito de implementação dos opcodes, isso poderá resultar em falha na geração de provas ou outros erros desconhecidos.

  2. Segurança de memória: alguns circuitos zkEVM são baseados em compromissos polinomiais, como o compromisso KZG usado pelo Scroll. No entanto, os cálculos polinomiais não se alinham automaticamente, portanto, se o circuito não tiver restrições, poderá resultar em um intervalo de valores inconsistente com o intervalo de bytes em programas de computador. Em alguns casos, quando os desenvolvedores de contratos permitem a otimização do gás, o arranjo compacto dos dados pode levar a problemas de segurança de memória, como o polinômio constante BYTE_C4096 no Polygon zkEVM. Os polinômios permitem que os valores dos parâmetros excedam o intervalo máximo de valores de bytes de 255, o que pode potencialmente permitir que sequenciadores maliciosos manipulem parâmetros para obter lucro em algumas plataformas de troca que adotam o modelo AMM. Essencialmente, estes tipos de vulnerabilidades surgem de inconsistências entre o intervalo de validade numérica representado pelo circuito e o intervalo de valores variáveis do programa. Um exemplo é a vulnerabilidade CVE-2023-33252 descoberta pelos pesquisadores de segurança da Beosin na biblioteca Snarkjs.

  3. Segurança de Opcode: Ao implementar opcodes zkEVM, existem problemas de segurança comuns, especialmente em relação à precisão. Por exemplo, ao comparar dois números no circuito subjacente, se a precisão da operação de comparação no programa for de 1 byte, as restrições do circuito precisarão especificar o intervalo de valores. Caso contrário, a precisão das operações no circuito excederá a precisão do programa, levando a resultados incorretos.

  4. Suporte para EIPs seguros: Suporte para EIPs com foco em segurança, como EIP-2 e EIP-155.

  5. Problema de centralização no Sequencer: Atualmente todas as provas geradas pelo Scroll dependem do trace de execução gerado pelo Sequencer. Se o Sequencer se comportar de forma maliciosa, o zkEVM não poderá garantir a segurança dos ativos do usuário.

  6. Problema de compatibilidade: zkEVM gera provas de circuito com base no rastreamento de execução e as verifica no contrato. Mesmo pequenas atualizações no Sequencer podem resultar em diferenças significativas no rastreamento de execução gerado no nível da linguagem subjacente.

Perspectiva futura da Scroll

  1. Scroll atualmente adota uma versão KZG de duas camadas do sistema de prova Halo2, usando aceleração de hardware GPU para acelerar a geração de prova. O gargalo agora mudou para a geração de testemunhas e replicação de dados. Além disso, o nível de centralização e os custos operacionais de hardware do Roller também são aspectos que a Scroll precisa considerar para o desenvolvimento futuro de sistemas de prova em vários estágios.

  2. Como o rastreamento de execução do EVM muda dinamicamente, existem várias restrições e escalas de circuito. Atualmente, para acomodar o rastreamento de execução que muda dinamicamente, cada etapa do rastreamento de execução precisa satisfazer a maior escala do circuito, resultando em desperdício adicional de memória.

  3. Atualmente, espera-se que o Scroll's Roller lucre com taxas de transação de rede. No entanto, o número atual de usuários e as taxas de transação na rede Scroll não podem cobrir os custos operacionais do Roller e do sequenciador. No futuro, a forma como a rede Scroll fornece incentivos económicos para atrair utilizadores e manter o funcionamento estável da rede é uma questão que precisa de ser considerada.

Atualmente, a Beosin também apoia a auditoria do projeto zk. Para pesquisas de segurança radicais sobre zk, você pode ler os seguintes artigos: 1. Ataque de maleabilidade de transação da prova Groth16; 2. Explorando o Tornado Cash em profundidade para revelar ataques de maleabilidade em projetos ZKP.

A Beosin, como empresa líder global em segurança de blockchain, estabeleceu filiais em mais de 10 países e regiões em todo o mundo. Nossos serviços abrangem auditorias de segurança de código antes do lançamento do projeto, monitoramento de riscos de segurança, alerta precoce e prevenção durante a operação do projeto, recuperação de ativos para moedas virtuais roubadas e serviços de conformidade seguros, como KYT/AML. Fornecemos uma solução completa para produtos e serviços de segurança blockchain. Atualmente, fornecemos serviços de tecnologia de segurança para mais de 3.000 empresas de blockchain em todo o mundo e auditamos mais de 3.000 contratos inteligentes. Sinta-se livre para nos contatar.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [Beosin]. Todos os direitos autorais pertencem ao autor original [Beosin]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!