Considerações de segurança na combinação de zk-SNARKs e Blockchain
zk-SNARKs(ZKP) como uma tecnologia criptográfica avançada, está sendo adotada por um número crescente de projetos de Blockchain. No entanto, devido à complexidade do sistema, a combinação de ZKP com Blockchain também trouxe novos desafios de segurança. Este artigo irá explorar, do ponto de vista da segurança, os riscos que a aplicação de ZKP em Blockchain pode enfrentar, fornecendo referências para a proteção de segurança dos projetos relacionados.
Características principais do ZKP
Um sistema de zk-SNARKs confiável precisa atender a três características-chave:
Completude: para declarações verdadeiras, o provador consegue sempre provar com sucesso a sua veracidade ao verificador.
Confiabilidade: para declarações falsas, o provador malicioso não consegue enganar o validador.
Propriedade de zero conhecimento: durante o processo de verificação, o verificador não obterá nenhuma informação do provador sobre os dados originais.
Essas três características são a base para a segurança e a eficácia dos sistemas ZKP. Se a completude não for atendida, o sistema pode recusar provas corretas sob certas condições. Se a confiabilidade não for atendida, um atacante pode falsificar provas para enganar o validador. Se a propriedade de conhecimento zero não for atendida, pode haver vazamento de parâmetros originais, levando a vulnerabilidades de segurança.
Principais preocupações de segurança dos projetos de zk-SNARKs
1. zk-SNARKs circuito
O design de circuitos, a implementação de primitivas criptográficas e a geração de aleatoriedade são aspectos que precisam de atenção especial:
Erros de design de circuitos podem levar a um processo de prova que não cumpre as propriedades de segurança. Por exemplo, a Zcash descobriu um erro de design de circuito em sua atualização de 2018 que poderia levar à falsificação ilimitada de tokens.
Erros na implementação de primitivas criptográficas podem comprometer a segurança de todo o sistema. Por exemplo, a ponte cross-chain da BNB Chain sofreu enormes perdas devido a um erro na implementação da primitiva de verificação de merkle tree.
A falta de aleatoriedade pode comprometer a segurança da prova. A Dfinity descobriu uma vulnerabilidade na geração de números aleatórios, que pode levar à destruição da característica zk-SNARKs.
2. Segurança de contratos inteligentes
Para projetos Layer2 ou de moedas de privacidade, os contratos inteligentes desempenham um papel crucial na transferência de ativos entre cadeias e na verificação de provas. Além das vulnerabilidades comuns, problemas na validação de mensagens entre cadeias e na validação de provas podem levar a falhas de confiabilidade. Por exemplo, a vulnerabilidade do contrato Verify da Circom pode permitir ataques de duplicação.
3. Disponibilidade de dados
Deve-se garantir que os dados off-chain possam ser acessados e verificados de forma segura e eficaz. Em 2019, a Plasma Chain enfrentou problemas de disponibilidade de dados que impediram os usuários de negociar ou retirar fundos. Além de adotar provas de disponibilidade de dados, também é possível reforçar a proteção do host e monitorar o estado dos dados.
4. Mecanismos de incentivos econômicos
É necessário avaliar se o mecanismo de incentivo do projeto é razoável e se pode efetivamente incentivar todas as partes a manter a segurança e a estabilidade do sistema. Prestar atenção ao design do modelo de incentivos, distribuição de recompensas e mecanismos de punição.
5. Proteção da Privacidade
A implementação de soluções de auditoria de privacidade garante que os dados dos usuários sejam adequadamente protegidos durante a transmissão, armazenamento e verificação. É possível inferir se há risco de vazamento de privacidade através da análise do fluxo de comunicação do protocolo.
6. Otimização de desempenho
Avaliar a velocidade de processamento de transações, a eficiência do processo de verificação e outros indicadores de desempenho, garantindo que atendam às necessidades reais. Auditar as medidas de otimização na implementação do código.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de resposta do sistema de auditoria a situações imprevistas como falhas de rede e ataques maliciosos. Garantir que o sistema possa se recuperar automaticamente para operação normal sempre que possível.
8. Qualidade do código
Avaliar a qualidade do código do projeto de forma abrangente, focando na legibilidade, manutenibilidade e robustez. Verificar se existem práticas de programação não conformes, código redundante ou erros potenciais.
Resumo
Os pontos de segurança dos projetos ZKP variam de acordo com o cenário de aplicação, mas todos devem garantir as três características principais: completude, confiabilidade e zero conhecimento. Para diferentes tipos de projetos, devem ser elaboradas estratégias de segurança específicas, garantindo assim a segurança e a operação estável do sistema.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
19 gostos
Recompensa
19
7
Partilhar
Comentar
0/400
BankruptcyArtist
· 07-13 09:19
Os programadores devem fazer o mais simples possível.
Análise Profunda: 8 Grandes Desafios de Segurança da Combinação de zk-SNARKs e Blockchain
Considerações de segurança na combinação de zk-SNARKs e Blockchain
zk-SNARKs(ZKP) como uma tecnologia criptográfica avançada, está sendo adotada por um número crescente de projetos de Blockchain. No entanto, devido à complexidade do sistema, a combinação de ZKP com Blockchain também trouxe novos desafios de segurança. Este artigo irá explorar, do ponto de vista da segurança, os riscos que a aplicação de ZKP em Blockchain pode enfrentar, fornecendo referências para a proteção de segurança dos projetos relacionados.
Características principais do ZKP
Um sistema de zk-SNARKs confiável precisa atender a três características-chave:
Completude: para declarações verdadeiras, o provador consegue sempre provar com sucesso a sua veracidade ao verificador.
Confiabilidade: para declarações falsas, o provador malicioso não consegue enganar o validador.
Propriedade de zero conhecimento: durante o processo de verificação, o verificador não obterá nenhuma informação do provador sobre os dados originais.
Essas três características são a base para a segurança e a eficácia dos sistemas ZKP. Se a completude não for atendida, o sistema pode recusar provas corretas sob certas condições. Se a confiabilidade não for atendida, um atacante pode falsificar provas para enganar o validador. Se a propriedade de conhecimento zero não for atendida, pode haver vazamento de parâmetros originais, levando a vulnerabilidades de segurança.
Principais preocupações de segurança dos projetos de zk-SNARKs
1. zk-SNARKs circuito
O design de circuitos, a implementação de primitivas criptográficas e a geração de aleatoriedade são aspectos que precisam de atenção especial:
Erros de design de circuitos podem levar a um processo de prova que não cumpre as propriedades de segurança. Por exemplo, a Zcash descobriu um erro de design de circuito em sua atualização de 2018 que poderia levar à falsificação ilimitada de tokens.
Erros na implementação de primitivas criptográficas podem comprometer a segurança de todo o sistema. Por exemplo, a ponte cross-chain da BNB Chain sofreu enormes perdas devido a um erro na implementação da primitiva de verificação de merkle tree.
A falta de aleatoriedade pode comprometer a segurança da prova. A Dfinity descobriu uma vulnerabilidade na geração de números aleatórios, que pode levar à destruição da característica zk-SNARKs.
2. Segurança de contratos inteligentes
Para projetos Layer2 ou de moedas de privacidade, os contratos inteligentes desempenham um papel crucial na transferência de ativos entre cadeias e na verificação de provas. Além das vulnerabilidades comuns, problemas na validação de mensagens entre cadeias e na validação de provas podem levar a falhas de confiabilidade. Por exemplo, a vulnerabilidade do contrato Verify da Circom pode permitir ataques de duplicação.
3. Disponibilidade de dados
Deve-se garantir que os dados off-chain possam ser acessados e verificados de forma segura e eficaz. Em 2019, a Plasma Chain enfrentou problemas de disponibilidade de dados que impediram os usuários de negociar ou retirar fundos. Além de adotar provas de disponibilidade de dados, também é possível reforçar a proteção do host e monitorar o estado dos dados.
4. Mecanismos de incentivos econômicos
É necessário avaliar se o mecanismo de incentivo do projeto é razoável e se pode efetivamente incentivar todas as partes a manter a segurança e a estabilidade do sistema. Prestar atenção ao design do modelo de incentivos, distribuição de recompensas e mecanismos de punição.
5. Proteção da Privacidade
A implementação de soluções de auditoria de privacidade garante que os dados dos usuários sejam adequadamente protegidos durante a transmissão, armazenamento e verificação. É possível inferir se há risco de vazamento de privacidade através da análise do fluxo de comunicação do protocolo.
6. Otimização de desempenho
Avaliar a velocidade de processamento de transações, a eficiência do processo de verificação e outros indicadores de desempenho, garantindo que atendam às necessidades reais. Auditar as medidas de otimização na implementação do código.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de resposta do sistema de auditoria a situações imprevistas como falhas de rede e ataques maliciosos. Garantir que o sistema possa se recuperar automaticamente para operação normal sempre que possível.
8. Qualidade do código
Avaliar a qualidade do código do projeto de forma abrangente, focando na legibilidade, manutenibilidade e robustez. Verificar se existem práticas de programação não conformes, código redundante ou erros potenciais.
Resumo
Os pontos de segurança dos projetos ZKP variam de acordo com o cenário de aplicação, mas todos devem garantir as três características principais: completude, confiabilidade e zero conhecimento. Para diferentes tipos de projetos, devem ser elaboradas estratégias de segurança específicas, garantindo assim a segurança e a operação estável do sistema.