TL;DR
Hoje, as soluções de camada 2 sacrificam escalabilidade pela fragmentação de estado. Introduzimos um design de camada 2 (L2), =nil;, que empurra os limites da escalabilidade do Ethereum sem comprometer os benefícios de um ambiente de execução unificado. A solução combina um mecanismo de fragmentação dinâmica com acesso verificável aos dados do Ethereum, garantido por tecnologias de conhecimento zero. Os elementos-chave incluem:
Através de zkSharding =nil; beneficia das vantagens de ambos os designs monolíticos e modulares, incluindo:
Escalabilidade
Ambiente de Execução Unificado
Segurança
Funcionalidade
No nível inferior, o estado de =nil; é particionado no shard primário e em vários shards secundários. O papel do shard principal é sincronizar e consolidar dados dos shards secundários. Usa o Ethereum tanto como sua Camada de Disponibilidade de Dados como verificador para provas de transição de estado, semelhante às operações típicas de zkRollups.
As shards secundárias funcionam como "trabalhadores", executando transações de utilizadores. Estas shards mantêm liquidez e dados unificados através de um protocolo de mensagens entre shards, eliminando qualquer fragmentação entre elas.
Cada fragmentação é supervisionada por um comité de validadores. Há uma rotação periódica destes validadores entre fragmentações. Além disso, as atualizações do estado de uma fragmentação são verificadas na fragmentação principal usando zkEVM.
Para ilustrar o fluxo de transação desde a sua iniciação por um utilizador até à confirmação na Ethereum, considere os seguintes passos:
Este esboço pressupõe que a transação do utilizador não ativa o protocolo de mensagens entre fragmentos. No entanto, neste caso, o fluxo da transação permanece o mesmo com a diferença de que a transação do utilizador pode desencadear a criação de novas transações noutros fragmentos.
Com todas as contas sendo distribuídas entre fragmentos, isso pode parecer semelhante ao problema de fragmentação de dados encontrado na abordagem de rollups específicos da aplicação. No entanto, a diferença chave está em como a comunicação entre fragmentos é tratada: ela é integrada diretamente no protocolo geral, em vez de ser gerida por pontes externas separadas.
Para garantir a segurança de cada fragmentação secundária, o seu comitê validador é obrigado a provar as transições de estado à principal para garantir que não houve fraude dentro de um grupo de validadores menor. Cada comitê de validadores de fragmento tem tarefas adicionais além da manutenção do fragmento. Os validadores são responsáveis por rastrear tipos específicos de eventos, nomeadamente mensagens entre fragmentos, dentro das "fragmentações próximas". As fragmentações próximas são determinadas com base na distância de Hamming nos identificadores de fragmento.
=nil;s zkEVM é um zkEVM Tipo-1 compilado com zkLLVM. Para entender as diferenças entre zkEVMs mais tradicionais e o zkEVM do =nil;, precisamos discutir as limitações associadas ao processo de definição de circuito que sustenta os zkEVMs. O circuito zkEVM é uma parte crítica, responsável por uma prova de transição de estado ser considerada correta, sendo geralmente definida com algum zkDSL personalizado ou simplesmente uma biblioteca. Essa forma de definição de circuito traz problemas relacionados a:
=nil; zkEVM está a abordar eficazmente todos esses desafios por ser:
O zkEVM compilado via zkLLVM é seguro por design, aproveitando o evmone para garantir total consistência com o EVM usado na produção do Ethereum. O zkLLVM (C++ ou Rust) compila automaticamente para o circuito, o que significa que erros humanos são removidos do processo de definição do circuito.
Além disso, porque =nil; zkEVM é compilado via zkLLVM, é naturalmente mais flexível (e, portanto, à prova de futuro) do que circuitos definidos manualmente, pois é facilmente ajustável e a geração de circuitos é automática. Também é mais auditável, o que significa que a sua segurança não vem ao custo de incluir as últimas EIPs adicionadas ao Ethereum.
Como o fragmento primário e o fragmento secundário são diferentes em relação às suas tarefas dedicadas - os fragmentos secundários se concentram no processamento de transações, enquanto o fragmento primário se concentra na sincronização de dados - eles têm abordagens diferentes para a disponibilidade de dados (DA), o que ajuda a recuperar dados de estado em situações de emergência. Isto significa:
Esta disposição é estabelecida lançando dois tipos de fragmentos no início: aqueles com uma solução DA separada e externa e aqueles sem. Nas fases subsequentes, apenas os fragmentos da mesma categoria de DA podem ser fundidos. Isto significa que durante a sua criação, cada conta deve ser mapeada para uma categoria de DA específica.
Além disso, este framework pode ser expandido para incluir outros tipos de DA.
Um dos nossos objetivos principais é otimizar a composição de aplicativos e evitar a fragmentação da liquidez, logo, a abordagem de fragmentação zkSharding seria incompleta sem acesso sem confiança ao estado do Ethereum. Isso significa que =nil; oferece total composabilidade e integração transparente com o Ethereum através do módulo de Provedor de Dados.
O Fornecedor de Dados opera de forma independente do armazenamento de dados do fragmento, sincroniza as suas informações com uma base de dados externa e injeta a impressão digital do Ethereum do último estado monitorado da base de dados (representado pelo hash do bloco do Ethereum) no bloco do fragmento. O estado mais recente desta base de dados recebe validação do módulo de confirmação, que utiliza um zkBridge com a prova de consenso Casper FFG do Ethereum.
=nil; e zkSharding são o culminar de produtos que a Fundação =nil; desenvolveu ao longo dos últimos 4 anos. O seu objetivo é ser a primeira solução componível, escalável e universal de zkRollup de camada 2 do Ethereum. Estamos entusiasmados por partilhar mais detalhes de implementação nos próximos meses. Certifique-se de seguir o nosso Twitter para se manter atualizado com o nosso progresso!
Para os tecnicamente inclinados, desenvolvemos um guia separado e abrangenteque aprofunda os detalhes de =nil; e zkFragmentação. Este manual é a sua porta de entrada para entender as complexidades por trás deste método, equipado com todos os detalhes técnicos e preliminares de que necessita.
Mergulhe agora no nosso guia técnico e junte-se à conversa sobre DiscordeTelegram. Vamos explorar juntos as possibilidades ilimitadas do zkSharding!
TL;DR
Hoje, as soluções de camada 2 sacrificam escalabilidade pela fragmentação de estado. Introduzimos um design de camada 2 (L2), =nil;, que empurra os limites da escalabilidade do Ethereum sem comprometer os benefícios de um ambiente de execução unificado. A solução combina um mecanismo de fragmentação dinâmica com acesso verificável aos dados do Ethereum, garantido por tecnologias de conhecimento zero. Os elementos-chave incluem:
Através de zkSharding =nil; beneficia das vantagens de ambos os designs monolíticos e modulares, incluindo:
Escalabilidade
Ambiente de Execução Unificado
Segurança
Funcionalidade
No nível inferior, o estado de =nil; é particionado no shard primário e em vários shards secundários. O papel do shard principal é sincronizar e consolidar dados dos shards secundários. Usa o Ethereum tanto como sua Camada de Disponibilidade de Dados como verificador para provas de transição de estado, semelhante às operações típicas de zkRollups.
As shards secundárias funcionam como "trabalhadores", executando transações de utilizadores. Estas shards mantêm liquidez e dados unificados através de um protocolo de mensagens entre shards, eliminando qualquer fragmentação entre elas.
Cada fragmentação é supervisionada por um comité de validadores. Há uma rotação periódica destes validadores entre fragmentações. Além disso, as atualizações do estado de uma fragmentação são verificadas na fragmentação principal usando zkEVM.
Para ilustrar o fluxo de transação desde a sua iniciação por um utilizador até à confirmação na Ethereum, considere os seguintes passos:
Este esboço pressupõe que a transação do utilizador não ativa o protocolo de mensagens entre fragmentos. No entanto, neste caso, o fluxo da transação permanece o mesmo com a diferença de que a transação do utilizador pode desencadear a criação de novas transações noutros fragmentos.
Com todas as contas sendo distribuídas entre fragmentos, isso pode parecer semelhante ao problema de fragmentação de dados encontrado na abordagem de rollups específicos da aplicação. No entanto, a diferença chave está em como a comunicação entre fragmentos é tratada: ela é integrada diretamente no protocolo geral, em vez de ser gerida por pontes externas separadas.
Para garantir a segurança de cada fragmentação secundária, o seu comitê validador é obrigado a provar as transições de estado à principal para garantir que não houve fraude dentro de um grupo de validadores menor. Cada comitê de validadores de fragmento tem tarefas adicionais além da manutenção do fragmento. Os validadores são responsáveis por rastrear tipos específicos de eventos, nomeadamente mensagens entre fragmentos, dentro das "fragmentações próximas". As fragmentações próximas são determinadas com base na distância de Hamming nos identificadores de fragmento.
=nil;s zkEVM é um zkEVM Tipo-1 compilado com zkLLVM. Para entender as diferenças entre zkEVMs mais tradicionais e o zkEVM do =nil;, precisamos discutir as limitações associadas ao processo de definição de circuito que sustenta os zkEVMs. O circuito zkEVM é uma parte crítica, responsável por uma prova de transição de estado ser considerada correta, sendo geralmente definida com algum zkDSL personalizado ou simplesmente uma biblioteca. Essa forma de definição de circuito traz problemas relacionados a:
=nil; zkEVM está a abordar eficazmente todos esses desafios por ser:
O zkEVM compilado via zkLLVM é seguro por design, aproveitando o evmone para garantir total consistência com o EVM usado na produção do Ethereum. O zkLLVM (C++ ou Rust) compila automaticamente para o circuito, o que significa que erros humanos são removidos do processo de definição do circuito.
Além disso, porque =nil; zkEVM é compilado via zkLLVM, é naturalmente mais flexível (e, portanto, à prova de futuro) do que circuitos definidos manualmente, pois é facilmente ajustável e a geração de circuitos é automática. Também é mais auditável, o que significa que a sua segurança não vem ao custo de incluir as últimas EIPs adicionadas ao Ethereum.
Como o fragmento primário e o fragmento secundário são diferentes em relação às suas tarefas dedicadas - os fragmentos secundários se concentram no processamento de transações, enquanto o fragmento primário se concentra na sincronização de dados - eles têm abordagens diferentes para a disponibilidade de dados (DA), o que ajuda a recuperar dados de estado em situações de emergência. Isto significa:
Esta disposição é estabelecida lançando dois tipos de fragmentos no início: aqueles com uma solução DA separada e externa e aqueles sem. Nas fases subsequentes, apenas os fragmentos da mesma categoria de DA podem ser fundidos. Isto significa que durante a sua criação, cada conta deve ser mapeada para uma categoria de DA específica.
Além disso, este framework pode ser expandido para incluir outros tipos de DA.
Um dos nossos objetivos principais é otimizar a composição de aplicativos e evitar a fragmentação da liquidez, logo, a abordagem de fragmentação zkSharding seria incompleta sem acesso sem confiança ao estado do Ethereum. Isso significa que =nil; oferece total composabilidade e integração transparente com o Ethereum através do módulo de Provedor de Dados.
O Fornecedor de Dados opera de forma independente do armazenamento de dados do fragmento, sincroniza as suas informações com uma base de dados externa e injeta a impressão digital do Ethereum do último estado monitorado da base de dados (representado pelo hash do bloco do Ethereum) no bloco do fragmento. O estado mais recente desta base de dados recebe validação do módulo de confirmação, que utiliza um zkBridge com a prova de consenso Casper FFG do Ethereum.
=nil; e zkSharding são o culminar de produtos que a Fundação =nil; desenvolveu ao longo dos últimos 4 anos. O seu objetivo é ser a primeira solução componível, escalável e universal de zkRollup de camada 2 do Ethereum. Estamos entusiasmados por partilhar mais detalhes de implementação nos próximos meses. Certifique-se de seguir o nosso Twitter para se manter atualizado com o nosso progresso!
Para os tecnicamente inclinados, desenvolvemos um guia separado e abrangenteque aprofunda os detalhes de =nil; e zkFragmentação. Este manual é a sua porta de entrada para entender as complexidades por trás deste método, equipado com todos os detalhes técnicos e preliminares de que necessita.
Mergulhe agora no nosso guia técnico e junte-se à conversa sobre DiscordeTelegram. Vamos explorar juntos as possibilidades ilimitadas do zkSharding!