A Prova de Conhecimento Zero, abreviada como ZKP, é uma maneira inovadora de provar um fato sem vazar nenhuma informação privada. O surgimento da Prova de Conhecimento Zero é uma das coisas mais importantes sobre nós, a proteção dos dados de privacidade. Hoje em dia, a ZKP é amplamente utilizada em muitos projetos de blockchain, que podem efetivamente fornecer uma maneira de autenticar o usuário sem vazar a privacidade do usuário em um ambiente público. Atualmente, há cada vez mais casos de uso que podem utilizar a ZKP para autenticar usuários em nossa vida diária. Por exemplo, se quisermos provar que um estudante já passou no exame, mas não queremos mostrar a nota real do exame. Além disso, quando estamos adquirindo algumas apólices de seguro, queremos apenas mostrar à companhia de seguros que não temos câncer, mas não queremos mostrar mais detalhes sobre nossa saúde, e assim por diante.
Geralmente, a prova não é a mesma que a prova matemática estrita que utiliza axiomas e lógica. A maioria das provas de ZKP é baseada em Probabilidade matemática, o que significa que o resultado pode ser provado do ponto de vista estatístico. O verificador pedirá aleatoriamente ao provador pela prova. Se o provador puder sempre fornecer o resultado correto, após algumas tentativas, embora a possibilidade de falha da prova não seja zero, ela é muito próxima disso. Portanto, tecnicamente, essa pequena chance de falha pode ser ignorada e a prova é considerada bem-sucedida.
Vamos considerar alguns exemplos sobre Prova de Conhecimento Zero. Alice quer provar a Bob que ela tem a chave de uma sala. Como ela pode fazer isso? Claro, ela pode dar a chave a Bob para abrir a porta e, assim, provar que tem a chave. Mas isso permitirá que Bob veja a chave. Se Alice tiver outras informações privadas, como idade ou endereços residenciais na chave, elas também serão reveladas a Bob. O que podemos fazer para permitir que Alice prove o fato sem mostrar a chave a Bob? Uma possível solução pode ser: Alice dirá a Bob que pode pegar algo da sala que Bob conhece e mostrá-lo a Bob, provando indiretamente que ela tem a chave.
Vamos dar uma olhada em outra questão. Alice tem duas bolas que são vermelha e verde. Seu amigo Bob é daltônico e não consegue identificar cores. Como Alice pode provar a Bob que as duas bolas têm cores diferentes? Uma solução pode ser: Bob coloca as duas bolas em suas mãos. Em cada rodada, ele pode escolher aleatoriamente trocar ou não trocar as bolas em sua mão sem deixar Alice ver a ação de troca. Então, ele pedirá a Alice para identificar se ele trocou as bolas. Como Alice não é daltônica, ela pode identificar corretamente a cor das bolas nas mãos de Bob. Após algumas rodadas, se Alice puder sempre responder corretamente, Bob saberá que as duas bolas têm cores diferentes, pois a possibilidade de falha é muito baixa.
O terceiro exemplo de ZKP é a famosa caverna de Ali Baba. A Localização A e a Localização B estão em uma caverna e são separadas por uma porta que pode ser aberta com chaves. Se Alice quiser provar a Bob que tem a chave da porta, o que ela pode fazer para completar a prova sem mostrar a chave a Bob? A solução possível seria: Alice pode escolher aleatoriamente ficar na localização A ou na localização B, e Bob não sabe sua localização. Bob escolherá aleatoriamente um lado, A ou B, e pedirá a Alice para sair pela caverna correspondente. Por exemplo, se Alice estiver na localização A e Bob pedir que ela saia pelo lado B, ela precisará usar a chave para abrir a porta. Após algumas rodadas, Bob acreditará que Alice tem a chave da porta, e Alice não precisará mostrar a chave a Bob.
Atribuição: