O que faz uma prova de conhecimento zero
Normalmente, provar algo significa mostrar provas: introduzir uma palavra-passe ou entregar um cartão de identificação. Isso pode revelar mais do que a outra pessoa precisa de saber.
Uma prova de conhecimento zero é um método criptográfico que muda isto. Uma pessoa, o provador, demonstra uma afirmação precisa a outra, o verificador, sem revelar o segredo usado para tornar essa afirmação verdadeira. O verificador obtém a resposta de que precisa – por exemplo, que cumpre um requisito de idade – mas não a sua data de nascimento, morada ou número de documento.
Não é uma promessa vaga de privacidade. Uma prova tem de ser concebida para uma afirmação exata, e um bom design torna a batota extremamente improvável.
O exemplo da caverna
Imagine uma caverna com dois caminhos que se encontram atrás de uma porta trancada. A porta só abre com uma palavra secreta. Diz que a conhece, mas não quer dizê-la em voz alta.
Entra por um dos caminhos enquanto o amigo espera lá fora. De seguida, o amigo indica o caminho por onde quer que regresse. Se conhecer a palavra, pode abrir a porta dentro da caverna e regressar por qualquer um dos caminhos. Se estiver só a adivinhar, tem apenas cinquenta por cento de hipóteses de estar do lado pedido.
Repita o teste muitas vezes, com uma escolha nova e imprevisível em cada ronda. Dez rondas bem-sucedidas deixam um blefador com cerca de uma hipótese em 1000 de ter sorte. O amigo obtém provas sólidas de que conhece a palavra, mas nunca chega a ouvi-la.
Da história da caverna ao software real
As provas reais usam matemática em vez de uma caverna, mas o objetivo de privacidade é o mesmo. Podem mostrar que uma transação cumpre as regras sem expor todos os seus detalhes. Também podem permitir que uma pequena prova substitua um grande lote de verificações, o que pode tornar alguns sistemas mais rápidos de verificar.
As credenciais digitais são outro uso prático. Em vez de carregar um documento de identificação completo para cada serviço, uma credencial bem concebida poderia responder apenas à pergunta feita: “Esta pessoa tem mais de 18 anos?” ou “Tem esta qualificação?”
Os detalhes são importantes. Uma prova protege apenas a informação que foi concebida para ocultar. A aplicação em causa pode continuar a recolher dados, identificá-lo ou fazer más escolhas de segurança noutros aspetos.
Prova de conhecimento zero versus encriptação de conhecimento zero
A expressão 'conhecimento zero' também é usada no armazenamento na nuvem. É uma ideia diferente. A encriptação de conhecimento zero significa que o fornecedor de armazenamento não consegue ler os seus ficheiros porque não tem as chaves de desencriptação.
Uma prova de conhecimento zero responde a uma pergunta sem expor o segredo por trás da resposta. A encriptação de conhecimento zero mantém os ficheiros armazenados ilegíveis para um fornecedor. Ambas podem melhorar a privacidade, mas não são intercambiáveis.
Uma lição prática de privacidade
As provas de conhecimento zero são um lembrete útil para partilhar apenas a informação mínima necessária para uma tarefa. Não tornam ninguém anónimo nem protegem todas as partes de uma aplicação. Um serviço pode continuar a saber que se ligou, quando o fez, e outros dados fora do âmbito da prova.
Sealby não precisa de provas de conhecimento zero porque não tem conta nem servidor a pedir que prove seja o que for. Os ficheiros são encriptados no iPhone. Para a privacidade do dia a dia, a pergunta prática é simples: o que é que este serviço precisa mesmo de saber – e conseguirá funcionar com menos?