zk-SNARKs na Blockchain: Desafios de Segurança e Soluções
zk-SNARKs(ZKP) como uma tecnologia criptográfica avançada, está sendo cada vez mais aplicada no campo da Blockchain. Com a adoção da tecnologia ZKP por projetos como protocolos Layer 2 e blockchains especiais, a complexidade do sistema também aumentou, trazendo novos desafios de segurança. Este artigo explorará, do ponto de vista da segurança, as vulnerabilidades que podem surgir no processo de combinação entre ZKP e Blockchain, oferecendo referências para a proteção de segurança de projetos relacionados.
As características principais do ZKP
Um sistema completo de zk-SNARKs precisa atender a três características-chave ao mesmo tempo:
Completude: Para declarações verdadeiras, o provador consegue provar com sucesso ao validador a sua correção.
Confiabilidade: o provador malicioso não pode enganar o verificador sobre declarações incorretas.
Propriedade de zero conhecimento: Durante o processo de verificação, o verificador não receberá nenhuma informação do provador sobre os dados em si.
Estas três características são a base para a segurança e eficácia dos sistemas ZKP. Se a completude não for satisfeita, o sistema pode não ser capaz de fornecer provas corretas sob certas condições, levando a negações de serviço. A falta de confiabilidade pode permitir que atacantes forjem provas, causando sérios problemas de bypass de permissões. A falta de conhecimento zero pode resultar na divulgação de parâmetros originais, permitindo que atacantes construam provas de ataque ou que o provador cometa fraudes. Portanto, durante o processo de serviço de segurança, é necessário prestar especial atenção à garantia dessas características.
Preocupações de segurança do projeto ZKP
1. zk-SNARKs circuito
Os circuitos ZKP são o núcleo de todo o sistema, e é necessário prestar atenção especial aos seguintes aspectos:
Design de circuitos: podem existir erros lógicos que levam a que o processo de prova não cumpra as propriedades de segurança. Por exemplo, o erro de design de circuito encontrado no upgrade Sapling da Zcash em 2018 poderia levar à falsificação ilimitada de tokens.
Implementação de primitivas criptográficas: Se a implementação de funções de hash, algoritmos de criptografia e outras primitivas estiver incorreta, pode comprometer a segurança de todo o sistema.
Garantia de aleatoriedade: O processo de prova depende de geradores de números aleatórios; se a aleatoriedade for insuficiente, pode comprometer a segurança. Como a vulnerabilidade de geração de números aleatórios descoberta pela Dfinity em 2018, que pode prejudicar as características de zk-SNARKs do circuito.
2. Segurança de contratos inteligentes
Para projetos de moedas privadas em Layer 2 ou implementados através de contratos inteligentes, a segurança do contrato é crucial. Além das vulnerabilidades comuns, falhas na validação de mensagens entre cadeias e na validação de provas podem levar diretamente à falha de confiabilidade. Por exemplo, a vulnerabilidade do contrato Verify do Circom pode resultar em um ataque de duplicação de identidade.
3. Disponibilidade de dados
Assegurar que os dados fora da cadeia possam ser acessados e verificados de forma segura e eficiente. O problema de disponibilidade de dados que ocorreu na cadeia Plasma em 2019 impediu os usuários de submeter transações ou retirar fundos, destacando a importância deste problema. Além de usar provas de disponibilidade de dados, também é possível reforçar a proteção do host e o monitoramento do estado dos dados.
4. Mecanismo de incentivo econômico
Avaliar o mecanismo de incentivos do projeto, garantindo que consiga estimular de forma razoável todas as partes envolvidas a manter a segurança e a estabilidade do sistema. Prestar atenção ao design do modelo de incentivos, à distribuição de recompensas e aos mecanismos de penalização.
5. Proteção da Privacidade
Para projetos que envolvem proteção de privacidade, é necessário auditar a implementação do seu plano de privacidade. Garantir que os dados dos usuários estejam adequadamente protegidos durante a transmissão, armazenamento e verificação, mantendo a disponibilidade e a confiabilidade do sistema. É possível inferir se há vazamento de privacidade do provedor através da análise do fluxo de comunicação do protocolo, ou verificar se o validador pode reconstruir o conhecimento do provedor.
6. Otimização de desempenho
Avaliar as estratégias de otimização de desempenho do projeto, incluindo a velocidade de processamento de transações, a eficiência do processo de validação, entre outras. Auditar as medidas de otimização implementadas no código para garantir que atendam às necessidades de desempenho.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de tolerância a falhas e recuperação para projetos de auditoria diante de situações inesperadas (, como falhas de rede, ataques maliciosos, etc. Garantir que o sistema possa se recuperar automaticamente e manter a operação normal sempre que possível.
) 8. Qualidade do código
Avaliar a qualidade geral do código do projeto de auditoria, focando na legibilidade, manutenibilidade e robustez. Avaliar se existem práticas de programação não conformes, código redundante, erros potenciais e outros problemas.
Resumo
Ao discutir a segurança de projetos ZKP, é necessário primeiro esclarecer onde o projeto usará ZKP. Diferentes tipos de projetos ###, como Layer 2, moedas de privacidade e blockchains públicas (, têm diferentes ênfases de segurança. Mas, de qualquer forma, é preciso garantir que as três características principais do ZKP: completude, confiabilidade e a propriedade de zero conhecimento sejam efetivamente protegidas. Somente ao considerar esses fatores de segurança de forma abrangente é que se pode construir um projeto de blockchain ZKP verdadeiramente seguro e confiável.
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
6 Curtidas
Recompensa
6
7
Compartilhar
Comentário
0/400
LiquidationKing
· 07-08 05:58
Eu vi algumas vezes e ainda estou um pouco confuso, zkp é muito complicado, não é?
Ver originalResponder0
gas_fee_therapist
· 07-06 19:06
Quem não sabe fazer circuitos L2 só pode estar a brincar.
Ver originalResponder0
OnChainDetective
· 07-06 17:42
detectou 6 exploits zkp no mês passado... complexidade = vulnerabilidade
Ver originalResponder0
AirdropBuffet
· 07-06 17:33
Está tudo muito complicado. Melhor fazer hodl diretamente.
Ver originalResponder0
GasFeeCrier
· 07-06 17:30
O zkp não estará a falhar até mesmo nas bases, estará?
Ver originalResponder0
WenMoon
· 07-06 17:29
Está novamente a fazer formalismo. O que aconteceu à segurança?
Desafios de segurança do ZKP em Blockchain: Análise de 8 pontos-chave
zk-SNARKs na Blockchain: Desafios de Segurança e Soluções
zk-SNARKs(ZKP) como uma tecnologia criptográfica avançada, está sendo cada vez mais aplicada no campo da Blockchain. Com a adoção da tecnologia ZKP por projetos como protocolos Layer 2 e blockchains especiais, a complexidade do sistema também aumentou, trazendo novos desafios de segurança. Este artigo explorará, do ponto de vista da segurança, as vulnerabilidades que podem surgir no processo de combinação entre ZKP e Blockchain, oferecendo referências para a proteção de segurança de projetos relacionados.
As características principais do ZKP
Um sistema completo de zk-SNARKs precisa atender a três características-chave ao mesmo tempo:
Completude: Para declarações verdadeiras, o provador consegue provar com sucesso ao validador a sua correção.
Confiabilidade: o provador malicioso não pode enganar o verificador sobre declarações incorretas.
Propriedade de zero conhecimento: Durante o processo de verificação, o verificador não receberá nenhuma informação do provador sobre os dados em si.
Estas três características são a base para a segurança e eficácia dos sistemas ZKP. Se a completude não for satisfeita, o sistema pode não ser capaz de fornecer provas corretas sob certas condições, levando a negações de serviço. A falta de confiabilidade pode permitir que atacantes forjem provas, causando sérios problemas de bypass de permissões. A falta de conhecimento zero pode resultar na divulgação de parâmetros originais, permitindo que atacantes construam provas de ataque ou que o provador cometa fraudes. Portanto, durante o processo de serviço de segurança, é necessário prestar especial atenção à garantia dessas características.
Preocupações de segurança do projeto ZKP
1. zk-SNARKs circuito
Os circuitos ZKP são o núcleo de todo o sistema, e é necessário prestar atenção especial aos seguintes aspectos:
Design de circuitos: podem existir erros lógicos que levam a que o processo de prova não cumpra as propriedades de segurança. Por exemplo, o erro de design de circuito encontrado no upgrade Sapling da Zcash em 2018 poderia levar à falsificação ilimitada de tokens.
Implementação de primitivas criptográficas: Se a implementação de funções de hash, algoritmos de criptografia e outras primitivas estiver incorreta, pode comprometer a segurança de todo o sistema.
Garantia de aleatoriedade: O processo de prova depende de geradores de números aleatórios; se a aleatoriedade for insuficiente, pode comprometer a segurança. Como a vulnerabilidade de geração de números aleatórios descoberta pela Dfinity em 2018, que pode prejudicar as características de zk-SNARKs do circuito.
2. Segurança de contratos inteligentes
Para projetos de moedas privadas em Layer 2 ou implementados através de contratos inteligentes, a segurança do contrato é crucial. Além das vulnerabilidades comuns, falhas na validação de mensagens entre cadeias e na validação de provas podem levar diretamente à falha de confiabilidade. Por exemplo, a vulnerabilidade do contrato Verify do Circom pode resultar em um ataque de duplicação de identidade.
3. Disponibilidade de dados
Assegurar que os dados fora da cadeia possam ser acessados e verificados de forma segura e eficiente. O problema de disponibilidade de dados que ocorreu na cadeia Plasma em 2019 impediu os usuários de submeter transações ou retirar fundos, destacando a importância deste problema. Além de usar provas de disponibilidade de dados, também é possível reforçar a proteção do host e o monitoramento do estado dos dados.
4. Mecanismo de incentivo econômico
Avaliar o mecanismo de incentivos do projeto, garantindo que consiga estimular de forma razoável todas as partes envolvidas a manter a segurança e a estabilidade do sistema. Prestar atenção ao design do modelo de incentivos, à distribuição de recompensas e aos mecanismos de penalização.
5. Proteção da Privacidade
Para projetos que envolvem proteção de privacidade, é necessário auditar a implementação do seu plano de privacidade. Garantir que os dados dos usuários estejam adequadamente protegidos durante a transmissão, armazenamento e verificação, mantendo a disponibilidade e a confiabilidade do sistema. É possível inferir se há vazamento de privacidade do provedor através da análise do fluxo de comunicação do protocolo, ou verificar se o validador pode reconstruir o conhecimento do provedor.
6. Otimização de desempenho
Avaliar as estratégias de otimização de desempenho do projeto, incluindo a velocidade de processamento de transações, a eficiência do processo de validação, entre outras. Auditar as medidas de otimização implementadas no código para garantir que atendam às necessidades de desempenho.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de tolerância a falhas e recuperação para projetos de auditoria diante de situações inesperadas (, como falhas de rede, ataques maliciosos, etc. Garantir que o sistema possa se recuperar automaticamente e manter a operação normal sempre que possível.
) 8. Qualidade do código
Avaliar a qualidade geral do código do projeto de auditoria, focando na legibilidade, manutenibilidade e robustez. Avaliar se existem práticas de programação não conformes, código redundante, erros potenciais e outros problemas.
Resumo
Ao discutir a segurança de projetos ZKP, é necessário primeiro esclarecer onde o projeto usará ZKP. Diferentes tipos de projetos ###, como Layer 2, moedas de privacidade e blockchains públicas (, têm diferentes ênfases de segurança. Mas, de qualquer forma, é preciso garantir que as três características principais do ZKP: completude, confiabilidade e a propriedade de zero conhecimento sejam efetivamente protegidas. Somente ao considerar esses fatores de segurança de forma abrangente é que se pode construir um projeto de blockchain ZKP verdadeiramente seguro e confiável.