I. Conhecimento Zero (ZK) | por Bits de Aprendizagem
Londres
E se você pudesse demonstrar para uma amiga que tem mais de 5 calças no guarda-roupa, sem informar a quantidade exata ou mostrar alguma foto? Bem, imagine um mundo onde as pessoas possam provar fatos umas às outras sem saber mais nada além do fato real. Embora utópicos, estamos numa era que, felizmente, se inclina para tal cenário.
O conceito que permite a situação acima é chamado de Zero-Knowledge (ZK) - porque você pode compartilhar zero atributos sobre si mesmo além do que você já declarou. Exemplo: Se você quiser comprar vinho, pode criar uma Prova de Conhecimento Zero (ZKP) de que você tem mais de 18 anos. Você envia essa prova para a empresa de vinhos e, por meio de matemática e mágica, a empresa verifica a prova e vende a você o vinho. Você não precisava compartilhar seu nome, sua cidadania, nem mesmo sua data de nascimento. Parece legal, certo?
Divirta-se lendo!
ENTÃO... o que são ZKPs?
Em sua essência, ZKPs é um método pelo qual uma pessoa (o provador) pode demonstrar a outra pessoa (o verificador) que uma afirmação específica é verdadeira sem fornecer informações adicionais além do fato de que a afirmação é verdadeira. A geração e verificação de provas reais envolvem algoritmos criptográficos.
Em outras palavras, os ZKPs são uma maneira muito elegante de compartilhar o mínimo de informações possível de A (o provador) para B (o verificador)¹.
Ou, ainda mais simples, diferentes partes podem verificar a veracidade de uma declaração sua sem que tenham acesso aos dados que compõem sua declaração.
Você sabia disso..?
Um fator essencial para que os ZKPs funcionem é a presença de uma autoridade/fonte confiável. Uma fonte confiável é uma palavra-chave porque, para criar as provas, você precisa de um local confiável para verificar a veracidade de suas declarações.
Por exemplo , se você quiser provar para seus amigos que tem mais de 1k de seguidores no Twitter, o próximo passo é criar um ZKP sobre o número total de seguidores de sua conta e compartilhá-lo com seus amigos. Seus amigos saberão que o resultado está correto porque a prova é gerada sobre uma informação que é inegavelmente verdadeira como
- Você não pode fingir/inventar o número de seguidores no Twitter que você tem,
- As informações vêm de uma fonte confiável (por exemplo, Twitter) e não apenas da mente de alguém.
Mais casos de uso
Aqui estão apenas algumas maneiras pelas quais as Provas de Conhecimento Zero podem ser usadas na vida real:

✔️ Finanças: o ING Bank³ deseja usar ZKPs para permitir que seus clientes provem certos fatos sobre si mesmos sem revelar seus dados reais. Por exemplo, se alguém quiser fazer um empréstimo, pode fazê-lo provando que sua renda está dentro de uma faixa aceita pelo banco.
✔️ Votação online: Você pode votar anonimamente e conferir se seu voto foi contabilizado na contagem final.
✔️Torne a internet segura. Usando o ZKP combinado com a verificação de identidade, os usuários podem provar que são seres humanos únicos nos sites que visitam, sem enviar nenhuma informação pessoal a eles. Isso pode ajudar muito no combate à desinformação, bots nas mídias sociais (você pode usar o Twitter como exemplo⁴), campanhas patrocinadas pelo estado e outros.
✔️ Verificação de informações pessoais . Se continuarmos com o exemplo do vinho acima, vamos imaginar agora que você quer ir a um clube e há uma restrição de idade - ninguém com menos de 25 anos entra. Normalmente, você iria até o guarda-costas e mostraria a ele sua identidade, que contém mais do que apenas sua idade, mas também sua foto, ano de nascimento, provavelmente seu endereço onde você mora e assim por diante. Em vez disso, usando ZKPs, você pode criar uma prova de que possui um documento que é seu e que sua idade é superior a 25 anos. Você mostra essa prova, que pode ser um código QR, por exemplo, o segurança escaneia o código e a tela fica verde se você atender ao requisito de idade. É isso.
Em poucas palavras, aqui estão mais alguns exemplos do que você pode e não pode fazer com ZKPs:

Como OutDID usa ZKPs
O exemplo acima pode refletir nossa solução da seguinte forma: usamos passaportes (fontes autenticadas como o Twitter), que fornecem dados como data de nascimento, cidadania etc. (como o número de seguidores no Twitter), com base nos quais você pode criar evidências como ser maior de 18 anos, cidadão dos EUA etc. (ou ter mais de 1.000 seguidores no Twitter).
De forma mais concreta, nosso aplicativo usa ZKPs para demonstrar que você atende aos requisitos do usuário de um determinado projeto Web3 sem dar mais detalhes. Por exemplo, se você deseja se registrar para um lançamento aéreo, precisa provar que não é cidadão dos EUA. Com o OutDID, você pode criar um comprovante em nosso aplicativo (como aquele QR code do exemplo com o segurança) de que você tem outra cidadania. Depois disso, você pode enviá-lo para o dApp. O projeto pode verificar se a prova que você enviou está correta e você pode receber o airdrop.
Pequeno desafio
Agora que você sabe o que são ZKPs, conte-nos nos comentários porque não podemos aplicar essa tecnologia no exemplo com calças da introdução. :)
E não se esqueça…

Vamos manter contato
Uma vez privado, privado para sempre. Estás dentro?
Site | Telegrama | Linkedin | Twitter | Médio ❤

Recursos:
- https://link.springer.com/content/pdf/10.1007/BF02351717.pdf
- https://www.blockchain-council.org/blockchain/zero-knowledge-proof-protocol/
- https://www.ingwb.com/en/insights/distributed-ledger-technology/ing-launches-major-addition-to-blockchain-technology
- https://www.rand.org/blog/2022/09/elon-musk-may-have-a-point-about-bots-on-twitter.html
- https://www.youtube.com/watch?v=fOGdb1CTu5c
- https://ethereum.org/en/zero-knowledge-proofs/
- https://polygon.technology/blog/a-gentle-introduction-to-zero-knowledge-proofs