Considerações de segurança na combinação de zk-SNARKs e Blockchain
zk-SNARKs(ZKP) como um sistema de provas, tem sido amplamente utilizado na área de Blockchain nos últimos anos. Com um número crescente de protocolos Layer 2 e blockchains públicos especiais adotando a tecnologia ZKP, a complexidade do sistema também trouxe novos desafios de segurança. Este artigo abordará, do ponto de vista da segurança, as vulnerabilidades que podem surgir no processo de combinação do ZKP com a Blockchain, oferecendo referências para a segurança de projetos relacionados.
Características principais do ZKP
Um sistema de zk-SNARKs eficaz precisa satisfazer simultaneamente três características-chave:
Completude: Para afirmações verdadeiras, o provador consegue sempre provar com sucesso a sua veracidade ao verificador.
Confiabilidade: Para declarações falsas, o provedor malicioso não pode enganar o verificador.
Propriedade de conhecimento zero: durante o processo de verificação, o verificador não obterá nenhuma informação do provador sobre os dados originais.
Estas três características determinam se o sistema é seguro e eficaz, e devem ser especialmente focadas durante o processo de serviço seguro. Se a completude não for satisfeita, o sistema pode entrar em um estado de negação de serviço; se a confiabilidade não for satisfeita, podem surgir problemas de contorno de permissões; se a zero conhecimento não for satisfeita, pode ocorrer a divulgação de parâmetros originais, levando a mais riscos de segurança.
Principais preocupações de segurança
Para projetos de blockchain baseados em ZKP, é necessário prestar atenção às seguintes direções de segurança:
1. zk-SNARKs circuito
Erro de design de circuito: pode levar a um processo de prova que não cumpre as propriedades de segurança. Por exemplo, o erro de design de circuito encontrado na atualização Sapling do Zcash em 2018, que poderia permitir a falsificação ilimitada de tokens.
Erro na implementação de primitivos criptográficos: se houver erros na implementação de funções de hash, algoritmos de criptografia, etc., isso pode afetar a segurança de todo o sistema.
Falta de aleatoriedade: Se houver problemas no processo de geração de números aleatórios, isso pode reduzir a segurança da prova. A Dfinity já encontrou vulnerabilidades desse tipo.
2. Segurança de contratos inteligentes
Além das vulnerabilidades comuns, os contratos dos projetos de ZKP são especialmente importantes em áreas como a transferência de ativos entre blocos e a verificação de provas. As vulnerabilidades na verificação de mensagens entre blocos e na verificação de provas podem afetar diretamente a fiabilidade do sistema.
3. Disponibilidade de dados
É necessário garantir que os dados off-chain possam ser acessados e verificados de forma segura e eficaz. Preste atenção ao armazenamento de dados, mecanismos de verificação, processo de transmissão, entre outros aspectos. Em 2019, a Plasma Chain já teve problemas de disponibilidade de dados, impedindo que os usuários realizassem transações normalmente.
4. Incentivos econômicos
Avaliar se o mecanismo de incentivos do projeto é razoável e se pode efetivamente estimular as partes envolvidas a manter a segurança e a estabilidade do sistema. Focar no design do modelo de incentivos, distribuição de recompensas, mecanismos de penalização, entre outros.
5. Proteção da Privacidade
Implementação do esquema de privacidade do projeto de auditoria, garantindo que os dados dos usuários sejam adequadamente protegidos ao longo de todo o processo. Pode-se inferir se a privacidade do provador foi comprometida 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 de verificação e outros indicadores de desempenho, e verificar se as medidas de otimização relacionadas são razoáveis.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de tolerância a falhas e recuperação do sistema de auditoria em face de falhas de rede, ataques maliciosos, etc., garantindo que possa retornar automaticamente ao funcionamento normal.
8. Qualidade do código
Auditar a qualidade global do código, focando na legibilidade, manutenibilidade e robustez, avaliando se existem não conformidades ou erros potenciais.
Resumo
Ao avaliar a segurança de projetos ZKP, é necessário determinar o foco com base em cenários de aplicação específicos (, como Layer2, moedas de privacidade, blockchains públicas, etc. ) No entanto, de qualquer forma, deve-se garantir que as três características principais do ZKP: completude, confiabilidade e zero conhecimento sejam efetivamente protegidas. Somente considerando esses fatores de segurança de forma abrangente, é possível construir um sistema de blockchain ZKP verdadeiramente seguro e confiável.
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.
18 gostos
Recompensa
18
8
Partilhar
Comentar
0/400
OnChain_Detective
· 57m atrás
vulnerabilidades em todo o lado... mantenha-se alerta anon
Ver originalResponder0
GateUser-c802f0e8
· 07-05 07:49
Há realmente muitas pessoas que jogam zkp.
Ver originalResponder0
ShadowStaker
· 07-05 05:52
o design do circuito parece muito suspeito... mais um dia, mais um buraco de segurança zkp à espera de acontecer smh
Ver originalResponder0
0xOverleveraged
· 07-05 05:49
Ah sim, a privacidade ainda depende dos zk-SNARKs.
Ver originalResponder0
SchrodingerWallet
· 07-05 05:47
Irmão, há muitos buracos na prova de conhecimento zero.
Ver originalResponder0
NFTRegretter
· 07-05 05:39
Quanto tempo vai levar para corrigir esse bug...
Ver originalResponder0
ChainSauceMaster
· 07-05 05:37
Como resolver essa vulnerabilidade? Vamos dar uma olhada.
Análise dos desafios de segurança e das estratégias para a combinação de ZKP com Blockchain
Considerações de segurança na combinação de zk-SNARKs e Blockchain
zk-SNARKs(ZKP) como um sistema de provas, tem sido amplamente utilizado na área de Blockchain nos últimos anos. Com um número crescente de protocolos Layer 2 e blockchains públicos especiais adotando a tecnologia ZKP, a complexidade do sistema também trouxe novos desafios de segurança. Este artigo abordará, do ponto de vista da segurança, as vulnerabilidades que podem surgir no processo de combinação do ZKP com a Blockchain, oferecendo referências para a segurança de projetos relacionados.
Características principais do ZKP
Um sistema de zk-SNARKs eficaz precisa satisfazer simultaneamente três características-chave:
Completude: Para afirmações verdadeiras, o provador consegue sempre provar com sucesso a sua veracidade ao verificador.
Confiabilidade: Para declarações falsas, o provedor malicioso não pode enganar o verificador.
Propriedade de conhecimento zero: durante o processo de verificação, o verificador não obterá nenhuma informação do provador sobre os dados originais.
Estas três características determinam se o sistema é seguro e eficaz, e devem ser especialmente focadas durante o processo de serviço seguro. Se a completude não for satisfeita, o sistema pode entrar em um estado de negação de serviço; se a confiabilidade não for satisfeita, podem surgir problemas de contorno de permissões; se a zero conhecimento não for satisfeita, pode ocorrer a divulgação de parâmetros originais, levando a mais riscos de segurança.
Principais preocupações de segurança
Para projetos de blockchain baseados em ZKP, é necessário prestar atenção às seguintes direções de segurança:
1. zk-SNARKs circuito
Erro de design de circuito: pode levar a um processo de prova que não cumpre as propriedades de segurança. Por exemplo, o erro de design de circuito encontrado na atualização Sapling do Zcash em 2018, que poderia permitir a falsificação ilimitada de tokens.
Erro na implementação de primitivos criptográficos: se houver erros na implementação de funções de hash, algoritmos de criptografia, etc., isso pode afetar a segurança de todo o sistema.
Falta de aleatoriedade: Se houver problemas no processo de geração de números aleatórios, isso pode reduzir a segurança da prova. A Dfinity já encontrou vulnerabilidades desse tipo.
2. Segurança de contratos inteligentes
Além das vulnerabilidades comuns, os contratos dos projetos de ZKP são especialmente importantes em áreas como a transferência de ativos entre blocos e a verificação de provas. As vulnerabilidades na verificação de mensagens entre blocos e na verificação de provas podem afetar diretamente a fiabilidade do sistema.
3. Disponibilidade de dados
É necessário garantir que os dados off-chain possam ser acessados e verificados de forma segura e eficaz. Preste atenção ao armazenamento de dados, mecanismos de verificação, processo de transmissão, entre outros aspectos. Em 2019, a Plasma Chain já teve problemas de disponibilidade de dados, impedindo que os usuários realizassem transações normalmente.
4. Incentivos econômicos
Avaliar se o mecanismo de incentivos do projeto é razoável e se pode efetivamente estimular as partes envolvidas a manter a segurança e a estabilidade do sistema. Focar no design do modelo de incentivos, distribuição de recompensas, mecanismos de penalização, entre outros.
5. Proteção da Privacidade
Implementação do esquema de privacidade do projeto de auditoria, garantindo que os dados dos usuários sejam adequadamente protegidos ao longo de todo o processo. Pode-se inferir se a privacidade do provador foi comprometida 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 de verificação e outros indicadores de desempenho, e verificar se as medidas de otimização relacionadas são razoáveis.
7. Mecanismos de tolerância a falhas e recuperação
Estratégias de tolerância a falhas e recuperação do sistema de auditoria em face de falhas de rede, ataques maliciosos, etc., garantindo que possa retornar automaticamente ao funcionamento normal.
8. Qualidade do código
Auditar a qualidade global do código, focando na legibilidade, manutenibilidade e robustez, avaliando se existem não conformidades ou erros potenciais.
Resumo
Ao avaliar a segurança de projetos ZKP, é necessário determinar o foco com base em cenários de aplicação específicos (, como Layer2, moedas de privacidade, blockchains públicas, etc. ) No entanto, de qualquer forma, deve-se garantir que as três características principais do ZKP: completude, confiabilidade e zero conhecimento sejam efetivamente protegidas. Somente considerando esses fatores de segurança de forma abrangente, é possível construir um sistema de blockchain ZKP verdadeiramente seguro e confiável.