A prova de conhecimento zero é um método de criptografia extremamente inteligente que permite ao provador provar ao verificador que ele realmente conhece a informação sem revelar a informação real.
Diagrama de exemplo de operação de tecnologia à prova de conhecimento zero
Este conceito técnico foi proposto pela primeira vez por pesquisadores do MIT no final da década de 1980. No entanto, foi somente com o surgimento da tecnologia blockchain nos últimos anos que as provas de conhecimento zero foram realmente amplamente utilizadas na prática.
Este artigo revisará brevemente o histórico de desenvolvimento e os princípios básicos da tecnologia à prova de conhecimento zero.
A história do desenvolvimento da criptografia pode ser dividida em três fases: período clássico, período moderno e período moderno. A criptografia clássica originou-se no campo militar e focou em como transmitir informações de forma segura e confiável. A cifra de Vigenère usa múltiplas tabelas de cifras de substituição para obter criptografia, o que aumenta muito a dificuldade de quebra. A criptografia moderna começou a partir da teoria da informação e foi transformada numa forma científica por Shannon e outros. A introdução do algoritmo RSA marcou a entrada na era moderna da criptografia e resolveu o problema de transmissão de chaves.
A proposta de prova de conhecimento zero abriu um novo capítulo na pesquisa moderna em criptografia.
Em 1985, o protocolo gbc publicado por Goldreich, Micali e Wigderson implementou a prova interativa de conhecimento zero. Em 1991, Fiat e Shamir propuseram um método para converter provas interativas de conhecimento zero em provas não interativas. Em 1994, o protocolo PICCS encurtou o comprimento da prova. Diferentes tipos de provas de conhecimento zero, como SNARK e STARK, que nasceram posteriormente, também têm características próprias. Com o surgimento do blockchain, suas aplicações se desenvolveram rapidamente.
A prova de conhecimento zero permite ao provador provar ao verificador que ele realmente conhece a informação sem revelar a informação real. A ideia básica pode ser explicada com um jogo Sudoku. A provadora Alice projeta um problema de Sudoku para o verificador Bob, mas Bob não consegue resolvê-lo. Para provar que tem a resposta, Alice prepara 81 cartões de papel com números de 1 a 9 escritos neles, organizando-os de acordo com os cartões de pergunta com as palavras voltadas para cima e de acordo com os cartões de resposta com as palavras voltadas para baixo em uma Matriz 9×9. Bob seleciona aleatoriamente linhas ou colunas para verificação e Alice reorganiza os cartões de acordo com a escolha de Bob para que Bob verifique se as linhas ou colunas realmente atendem aos requisitos do Sudoku. Repita várias rodadas até que Bob esteja convencido de que Alice tem a resposta.
Historicamente, a tecnologia de prova de conhecimento zero passou pelo processo de desenvolvimento de "sistema de prova interativo" para "sistema de prova não interativo". Os sistemas de prova antecipada exigiam múltiplas rodadas de “perguntas e respostas” entre o provador e o verificador para implementar o processo de prova. Esse tipo de interação é ineficiente e inconveniente. Assim, os pesquisadores propuseram um sistema de prova não interativo, no qual um terceiro confiável gera parâmetros de verificação antecipadamente. O provador só precisa construir uma prova com base nesses parâmetros e enviá-la ao verificador uma vez, sem a necessidade de múltiplas rodadas de interações. . Isso melhora muito a eficiência.
O protocolo de prova de conhecimento zero mais comum atualmente é o zkSNARK. Em última análise, separa completamente a prova e a verificação através de uma série de meios técnicos, como achatamento de código de computador, introdução de sistemas de restrição e uso de criptografia de curva elíptica. O verificador não precisa conhecer a solução para verificar se o provador realizou o cálculo correto conforme necessário.
Mapa conceitual zkSNARK
zkSNARK também derivou uma variedade de algoritmos diferentes em termos de eficiência, volume de dados, etc., como Sonic, Plonk, etc. Com o desenvolvimento de hardware dedicado, espera-se que o custo computacional das provas de conhecimento zero seja significativamente reduzido.
Mapa conceitual zk-STARK
Outro protocolo à prova de conhecimento zero é o zk-STARK. Ao contrário do zkSNARK, que depende de suposições matemáticas específicas para segurança, o zk-STARK é baseado em funções hash criptográficas e sua segurança está mais próxima do determinismo. Mas o tamanho da prova do zk-STARK é maior e menos eficiente. À medida que o algoritmo continua a ser otimizado, o zk-STARK está se desenvolvendo em uma direção prática.
A tecnologia à prova de conhecimento zero é de grande valor na proteção de dados privados. Ele foi aplicado em muitos projetos de blockchain, como a moeda de privacidade Zcash, a solução de Camada 2 zkRollup, etc. À medida que a tecnologia continua a avançar, as provas de conhecimento zero certamente trarão mais possibilidades para o mundo blockchain.
No futuro, podemos esperar que desempenhe um papel em mais cenários, tais como transações financeiras, dados médicos, identidade digital, etc. Também promoverá a expansão do blockchain e o desenvolvimento de arquitetura em camadas. Os desafios atuais incluem a necessidade de configuração confiável, eficiência e limites de uso em larga escala. À medida que os avanços e protocolos de hardware especializados se tornam padronizados, espera-se que as provas de conhecimento zero desempenhem um papel maior no futuro do blockchain.
