Com tantas empresas e serviços coletando nossos dados, quase parece impossível ter privacidade.
Descubra o que Prova de Conhecimento Zero (Zero Knowledge Proof) e como pode resolver o problema da privacidade em blockchains.
O canal Savjee no Youtube, fez um excelente vídeo simplificado explicando, confira abaixo - confira se as legendas estão disponíveis ou se preferir confira a transcrição do vídeo logo abaixo.
Seus dados pessoais, como suas informações de contato, seus gostos ou até mesmo seus padrões de comportamento são muito valiosos. Muitas empresas tentam coletar muitas informações sobre você, para poderem vender mais anúncios, dar-lhe melhor recomendações ou mantê-lo por mais tempo em suas plataformas.
Com tantas empresas e serviços coletando nossos dados, quase parece impossível ter privacidade. Agora, claro, você poderia dizer: não use serviços que coletam dados pessoais. Se você não concorda com a maneira como o Facebook usa seus dados por exemplo, você poderia apenas decidir não se cadastrar ou até mesmo excluir sua conta. Mas não é assim tão simples, nem sempre temos escolhas. Tente, por exemplo, obter um empréstimo de um banco sem revelar seu histórico financeiro.
Nós temos o controle final sobre os nossos dados pessoais, mas na realidade somos frequentemente forçados a revelar mais do que realmente queremos. Então isso me fez olhar para caminhos alternativos de compartilhamento de dados. Existe uma maneira de fornecer às empresas o dados de que precisam, sem revelar os dados em si?
É como provar que algo é verdade sem revelar o que estamos provando... Bem, tal técnica existe e é chamado Zero Knowledge Proof (prova de conhecimento zero). Deixe-me demonstrar como funciona.
Imagine que você tem um amigo daltônico e não consegue ver a diferença entre uma bola verde e vermelha. Para ele, as bolas têm a mesma cor e você quer provar a ele que elas são de fato diferentes. Ele não precisa saber qual é vermelha e qual é verde, apenas se elas são ou não diferente. Então você dá as bolas para o seu amigo e anota qual bola está em qual mão. Então seu amigo coloca as bolas atrás dele e opta por alterná-las ou não.
Depois disso, ele as mostra novamente para você e agora você tem que dizer a ele se bolas trocaram de mãos sim ou não. Se você não é daltônico, isso é muito fácil de fazer, porque você pode ver a diferença na cor. Você pode dizer claramente quando a bola vermelha foi movida da esquerda para a mão direita, por exemplo. Na verdade, podemos determinar isso com precisão de 100%, porque, mais uma vez, vemos a diferença em cores ...
Mas espere!
Seu amigo está suspeito, as bolas parecem as mesmas e ele acha que você está tentando enganá-lo. Afinal, você tem uma chance de 1 em 2 de corretamente adivinhar se ele trocou as bolas. Essas são boas chances, então você decide para executar o experimento novamente. Seu amigo esconde as bolas atrás das costas, escolhe aleatoriamente se alterna ou não, então as apresenta novamente para você.
Mais uma vez, você pode ver imediatamente se ele mudou elas ou não. Mas se as bolas fossem da mesma cor, você teria que adivinhar novamente. E agora suas chances de adivinhar corretamente são reduzidos pela metade e agora são apenas 1 em 4 ou 25%. Repita este processo 10 vezes e a chance de você adivinhar corretamente cai para apenas 0,09%.
Esta probabilidade é pequena o suficiente para convencer seu amigo que as bolas são de fato de diferentes cores, você simplesmente não pode ter essa sorte. Mas é claro que você poderia continuar. Cada vez que você repete o processo, a probabilidade de que você está trapaceando diminui ainda mais.
Então é isso!
Nós "provamos" ao nosso amigo que o bolas têm uma cor diferente. Mas esta prova não transmite a real cor das bolas para o nosso amigo. Daí o nome “conhecimento zero”. Ah, e é interessante ressaltar que uma "prova de conhecimento zero" não dá a você uma prova hermética.
É sobre minimizar a probabilidade de que alguém está mentindo para você.
Existem duas formas de prova de conhecimento zero: interativo e não interativo. O exemplo de você e seu amigo com as bolas coloridas é interativa. Porque você, o provador, teve que executar um série de ações para convencer seu amigo, o verificador, de um determinado fato. É quase como um interrogatório!
No entanto, há uma desvantagem para essa técnica: a prova é limitada em transferibilidade. Nós convencemos o nosso amigo que as bolas têm uma cor diferente, mas se quisermos fazer o mesmo com outra pessoa, que também é daltônico, temos que repetir todo o processo.
A outra forma é “não interativa” e permite que você entregue uma prova de que ninguém pode verificar por si mesmos.
Não há necessidade de fazer malabarismo com as bolas! Na verdade, você pode ter ouvido falar sobre zk-SNARKS, que é usado por algumas criptomoedas para proteger a privacidade de seus usuários. Você vê projetos tradicionais como o Bitcoin tornar todas as transações públicas, ou seja, todos podem ver o saldo de todos e como eles gastam suas moedas. Outros projetos, como o Zcash, usam uma linguagem não interativa, prova de conhecimento zero para esconder tudo isso. É aí que entra o SNARK, que é abreviação de “argumentos não-interativos sucintos de conhecimento".
Para blockchains, temos que usar provas não-interativas porque as transações têm que ser verificáveis por todos os nós da rede. É assim que blockchains alcançam consenso. Seria muito demorado comprovar nossa transações para todos os nós da rede. Essa é uma aplicação pura de prova de conhecimento zero! Mas o que mais?
Bem, aqui estão mais dois exemplos. Além de criptomoedas, bancos tradicionais também poderia fazer uso desta tecnologia. O banco holandês ING construiu uma variação deste conceito chamado "Prova de Faixa de Conhecimento Zero". O sistema é projetado para provar que um número está dentro de um determinado intervalo, sem revelar o número real. A equipe blockchain do ING observa que isso pode ser usado, por exemplo, para verificar se o seu salário é suficiente para obter um empréstimo, sem revelando o quanto você fez. Agora é claro que você tem que escolher um número grande o suficiente, caso contrário, você pode adivinhar com precisão o número real e, em seguida, não é uma prova de conhecimento zero mais.
Técnicas como essa poderiam permitir que mundo abrace a tecnologia blockchain. Neste momento isso é muito complicado para os bancos porque eles têm que atender a muitos requisitos regulatórios, especialmente em relação à privacidade. Com essa questão sendo resolvida, poderíamos ver bancos adotando tecnologia blockchain mais rapidamente, o que poderia tornar seus processos mais rápido, mais eficiente e talvez até mais barato.
O último exemplo que vou dar é um pouco não convencional: desarmamento nuclear. Países poderosos que estão na posse de armas nucleares concordam que eles são perigosos e o número de armas devem ser reduzido. No entanto, o problema é verificar que as armas foram destruídas!
Mas as grandes nações realmente não confiam umas nas outras. Quando alguém diz que eles vão reduzir o número de ogivas nucleares, como o outro pode ter certeza disso? Envio de uma equipe de verificadores "independentes" para confirmar se as armas foram destruídas é complicado. Os desenhos dessas ogivas são frequentemente ultra-secretos para impedir que outros países os copiem. Então é improvável que um país confie um grupo de pessoas para ver e verificar essas ogivas nucleares. Afinal, eles podem vazar os projetos sensíveis para outras nações. Em 2016, no entanto, uma nova técnica foi proposta, ela usa a prova de conhecimento zero para dizer se sim ou não dois objetos são os mesmos, sem revelar sua geometria ou composição.
Esta técnica é uma aplicação física de protocolos de conhecimento zero permitindo nações verificar suas ogivas sem revelar informações confidenciais. Admito, é um caso de uso estranho, mas é legal! Estas são apenas algumas maneiras que você poderia colocar provas de conhecimento zero em uso. É um conceito legal que poderia melhorar muito nossa privacidade, mas há algumas desvantagens como sempre.
Para começar, não pode produzir 100% de prova hermética.
Só pode reduzir infinitamente a probabilidade que alguém está fingindo uma prova. Em segundo lugar, o algoritmo é bastante intensivo, exigindo um grande número de interações entre verificador e provador ou, em caso de SNARK's, exigindo muitos cálculos que poderia impossibilitar a execução em dispositivos lentos ou móveis. Mas essa limitação pode ser superada. A equipe Zcash, por exemplo, tem trabalhado muito para melhorar seu algoritmo para que ele possa também rodar em dispositivos de menor potência, como um smartphone.
E, finalmente, as provas do conhecimento zero são tão bom em guardar segredos que podemos perder acesso a eles completamente. Digamos que apenas 3 pessoas conheçam uma receita secreta. Graças a zero provas de conhecimento eles podem provar uns aos outros que eles realmente sabem a receita. Mas se todos os três morrerem, o segredo é perdido para sempre. Se eles estão usando o SNARK, a única coisa que resta é a prova de que eles sabiam o segredo. Mas o segredo em si é perdido.
Quero mencionar que a prova de conhecimento zero não é uma nova ideia. Hoje em dia está recebendo muita atenção por causa de certos projetos blockchain estão implementando, mas foi proposto pela primeira vez em um documento de 1985 chamado "O Conhecimento da Complexidade de Sistemas de Provas Interativos ”. Pessoalmente estou muito feliz que depois de todos esses anos, finalmente está recebendo um pouco mais de atenção.
Hora de uma conclusão! Prova de conhecimento zero poderia desencadear uma revolução quando se trata da nossa privacidade online. Podemos limitar a quantidade de informação que certa empresa tem sobre nós, enquanto a empresa tem apenas informações suficientes para lhe oferecer um serviço ou para cumprir com regulamentações É perfeito? Não, claro que não, tem certas limitações. Como o fato de usar muitos recursos computacionais. Mas é muito melhor do que dar todos nossos dados e deixá-los ser coletado em enormes bancos de dados.
COMENTÁRIOS