O que é a prova de conhecimento zero e seu papel no mundo Blockchain?
Publicados: 2020-01-09Nos últimos anos, nos acostumamos com a forma como os grandes bancos e outras empresas acessam e empregam nossas informações pessoais para nos proporcionar uma experiência aprimorada. Com o tempo, demos a eles um 'sinal verde' aos mecanismos que usam nossos detalhes sensíveis para nos ajudar a sustentar de certa maneira.
Mas então entrou na tecnologia Blockchain e mudou tudo totalmente.
A tecnologia Blockchain trouxe várias características como transparência, imutabilidade, descentralização e contabilidade distribuída. Permitiu que os usuários agissem anonimamente e realizassem transações com segurança de ponta.
[Antes de prosseguirmos, recomendamos que você reserve um tempo para entender o básico do Blockchain .]
Blockchain, em termos simples, deu aos usuários o controle de sua privacidade e o futuro de volta.
Mas, o Blockchain realmente conseguiu fazer isso?
Em uma palavra, a resposta é NÃO .
Muitas redes blockchain usam bancos de dados públicos. Assim, qualquer pessoa com conexão à internet pode visualizar a lista do histórico de transações da rede. Eles podem ver todos os detalhes associados à transação e os detalhes da sua carteira, mas o nome do usuário ainda será desconhecido para eles. Em vez disso, eles aparecerão como uma chave pública – o código exclusivo que representa o usuário na rede blockchain.
Desta forma, a chave pública criada através da técnica de criptografia protege sua privacidade até certo ponto. Mas ainda é possível expor você por meio de outras técnicas.
Isso acabou com seu disfarce anônimo; desmascarando o mito do anonimato e privacidade do Blockchain, e fazer você perceber que –
As informações confidenciais do usuário armazenadas em uma rede Blockchain são apenas confidenciais, não anônimas .
Da mesma forma, existem várias redes blockchain regidas por algoritmos de consenso para fornecer privacidade e estabilidade de ponta, mas a descentralização é considerada uma segunda prioridade nesses casos. Em muitos desses casos, as duas partes não confiam uma na outra. [Para ler sobre esses modelos de consenso em detalhes, confira este guia de algoritmo de consenso blockchain .]
Isso, como um todo, dá uma indicação clara de que o Blockchain não é tão anônimo e descentralizado quanto muitos de seus entusiastas acreditam que seja. E ainda dá origem a várias questões, como –
As redes Blockchain realmente precisam ser anônimas? Como o Blockchain pode oferecer mais anonimato e melhor proteção de privacidade para seus usuários?
Nas atuais redes Blockchain, as transações são registradas no livro público e são de natureza transparente. Por causa disso, várias marcas e mercados de renome, como Wall Street, hesitam em adotar a tecnologia de prova de conhecimento zero, pois a confidencialidade do cliente e da transação é uma obrigação para eles. Isso, como um todo, está questionando se o Blockchain web 3.0 será capaz de impactar os negócios .
Chegando à segunda questão, existem vários conceitos e métodos como Coin Mixing, Ringct e Coin Join que estão tornando as transações anônimas no Blockchain, mas o que é muito apreciado é o Zero-Knowledge Proof .
Aquele que abordaremos em detalhes neste artigo.
Então, vamos começar com uma definição simples de blockchain à prova de conhecimento zero .
O que é a prova de conhecimento zero?
Zero-knowledge Proof é um esquema de criptografia proposto pelos pesquisadores do MIT Silvio Micali , Shafi Goldwasser e Charles Rackoff na década de 1980. Nesse método, uma parte (Provador) pode provar que uma declaração específica é verdadeira para a outra parte (Verificador) sem divulgar nenhuma informação adicional.
A Criptografia de Conhecimento Zero garante que ninguém, exceto você (nem mesmo o provedor de serviços ou a agência de desenvolvimento de aplicativos blockchain) possa acessar seus dados protegidos.
Com a definição limpa, vamos dar um exemplo para entender como o ZKP funciona.
Exemplo: crianças e barras de chocolate
Suponha que duas crianças – Bob e Alice, tenham recebido algumas barras de chocolate de uma festa. Bob quer saber se Alice tem o mesmo número de barras de chocolate ou não. Mas, ao mesmo tempo, nenhum deles está pronto para revelar o número exato.
Então, o que eles fazem é que Bob traz quatro caixas com chave em uma sala, supondo que o número de barras de chocolate recebidas seja 10, 20, 30 e 40. Ele rotula cada caixa com um valor correspondente ao número de barras de chocolate.
Então, Bob guarda a chave da caixa que define o número de barras de chocolate que ele recebeu no bolso (digamos que ele tenha 30 barras de chocolate) e joga fora as chaves de todas as outras caixas. E ele sai da sala.
Agora, Alice entra na sala com 4 pequenos pedaços de papel e escreve '+' em um deles enquanto '-' em todos os outros. Aqui, '+' denota o número de barras de chocolate que ela recebeu, enquanto '-' representa todos os outros valores.
Ela desliza o pedaço de papel com o sinal '+' em uma caixa (digamos na que representa 20 barras de chocolate) e '-' no restante das caixas. E ela vai embora.
Agora, Bob entra na sala novamente e abre a caixa cuja chave está em seu bolso. Em seguida, ele verifica se a caixa contém um pedaço de papel com sinal de '+' ou sinal de '-'. Se for um sinal de '+', ele percebe que Alice tem um número igual de barras de chocolate. Enquanto, no outro caso, ela não.
Como sabemos que Alice tem 20 barras de chocolate e Bob tem 30 barras de chocolate, fica claro que Bob encontrará um sinal '-' na caixa com chave cuja chave ele possui. Isso deixará claro que ambos não têm o mesmo número de barras de chocolate.
No mesmo momento, Alice entrará novamente na sala e encontrará um sinal de '-' na mão de Bob e também saberá que eles têm um número diferente de barras de chocolate.
Nota: Por este método, Bob aprenderá que eles não têm um número igual de barras de chocolate. Mas, ele ainda não terá ideia se Alice tem mais ou menos barras de chocolate do que ele, e vice-versa.
Assim, a prova de conhecimento zero ethereum mantém a privacidade das informações confidenciais dos usuários, enquanto faz uma transação (neste caso, a transação é descobrir se eles têm o mesmo número de barras de chocolate ou não).
Embora este exemplo tenha ajudado você a entender exatamente o que é Zero Knowledge Proofs (ZKPs), vamos atualizar o conceito com uma imagem
Agora, como o conceito de provas de conhecimento zero (ZKPs) é explicado, é o melhor momento para analisar o que faz com que todos o prefiram em relação a outras opções disponíveis. Vamos nos aprofundar nos prós e contras da prova de conhecimento zero:
Benefícios das Provas de Conhecimento Zero (ZKPs)
- Simples – Uma das principais vantagens da criptografia de conhecimento zero é que ela não envolve nenhum método de criptografia complexo.
- Seguro – Não exige que ninguém revele qualquer tipo de informação.
- Transações ─ Outro benefício garantido associado aos ZKPs refere-se ao encurtamento das transações no blockchain. Como resultado, os usuários não precisariam se preocupar com o armazenamento de informações para incluir compatibilidade e identidade com diferentes tipos de ativos.
Embora esses sejam os prós da prova de conhecimento zero, o conceito também tem algumas desvantagens. Alguns dos quais são: -
- Longo – Na tecnologia de conhecimento zero , existem cerca de 2k cálculos, cada um exigindo uma certa quantidade de tempo para processar. Este é o principal contra de ir com a prova de conhecimento zero.
- Imperfeito – As mensagens entregues ao verificador/provador podem ser destruídas ou modificadas.
- Limitado – O protocolo de conhecimento zero exige que o segredo seja um valor numérico. Em outros casos, é necessária uma tradução.
Com isso coberto, vamos nos aprofundar nos detalhes técnicos antes de avaliarmos quando e como os protocolos de conhecimento zero podem ser introduzidos no ecossistema Blockchain.
Começando com quais são as principais características de uma prova de conhecimento zero.
Propriedades das Provas de Conhecimento Zero
1. Completude
Se a afirmação for verdadeira e ambos os usuários seguirem as regras religiosamente, o verificador será convencido sem qualquer ajuda externa.
2. Solidez
Se a afirmação for falsa, o verificador não ficará convencido em nenhum cenário (mesmo que o provador diga que a afirmação é verdadeira para uma pequena probabilidade).
3. Conhecimento Zero
Em ambos os casos, o verificador não poderá saber nenhuma informação além de que a afirmação é verdadeira ou falsa.
Embora os princípios do ZKP sejam abordados, vamos falar sobre os diferentes tipos de ZKPs nos quais um entusiasta de negócios pode investir.
Tipos de Provas de Conhecimento Zero
1. Prova interativa de conhecimento zero
Em uma prova interativa de conhecimento zero , um provador realiza uma série de ações sob o mecanismo de probabilidade matemática para convencer o verificador de um determinado fato.
2. Prova Não-Interativa de Conhecimento Zero (NIZKP)
Conforme descrito no nome, a prova de conhecimento zero não interativa não requer um processo interativo. Ou seja, o provador pode gerar todos os desafios de uma vez e o(s) verificador(es) pode(m) responder posteriormente. Isso restringe a possibilidade de conluio. No entanto, requer máquinas e software adicionais para descobrir a sequência dos experimentos.
Observação: é possível fazer uma transição de ZKP não interativo para interativo.
Onde implementar a prova de conhecimento zero no sistema Blockchain?
1. Mensagens
Nas mensagens, a criptografia de ponta a ponta é imprescindível para que ninguém possa ler sua mensagem privada além daquela com a qual você está se comunicando. Para garantir a segurança, as plataformas de mensagens solicitam aos usuários que verifiquem sua identidade no servidor e vice-versa.
Mas, com o advento do ZKP, eles poderão construir uma confiança de ponta a ponta no mundo das mensagens sem vazar nenhuma informação extra. Esta é uma das principais aplicações da prova de conhecimento zero no mundo blockchain.
2. Autenticação
A prova de conhecimento zero também pode facilitar a transmissão de informações confidenciais, como informações de autenticação, com maior segurança. Ele pode construir um canal seguro para os usuários empregarem suas informações sem revelá-las. E desta forma, evite o vazamento de dados nos piores cenários.
3. Proteção de Armazenamento
Outro possível caso de uso de provas de conhecimento zero (ZKPs) está no campo do utilitário de armazenamento.
A prova de conhecimento zero vem com um protocolo que protege não apenas a unidade de armazenamento, mas também as informações contidas nela. Escusado será dizer que os canais de acesso também são protegidos para proporcionar uma experiência perfeita e segura.
4. Enviando Transações Privadas de Blockchain
Ao falar sobre o envio de transações privadas de blockchain, é extremamente importante mantê-lo fora do alcance de terceiros. Agora, enquanto os métodos tradicionais são um pouco protetores, eles têm algumas brechas.
Esta é mais uma área em que o ZKP entra em jogo. O conceito, quando integrado com sabedoria, ajuda a tornar quase impossível hackear ou interceptar as transações privadas de blockchain.
5. Documentação Complexa
Como a prova de conhecimento zero tem o potencial de criptografar dados em pedaços, ela permite controlar certos blocos para fornecer acesso a um usuário específico, enquanto restringe o acesso a outros. Dessa forma, o conceito protege a documentação complexa daqueles não autorizados a vê-la.
6. Controle do Sistema de Arquivos
Outro lugar onde você pode ver uma implementação efetiva à prova de conhecimento zero é o sistema de arquivos.
O conceito adiciona diferentes camadas de segurança aos arquivos, usuários e até logins, o que dificulta bastante a invasão ou manipulação dos dados armazenados.
7. Transmitindo Transações Privadas de Blockchain
A transmissão de trocas privadas de blockchain é um dos avisos conspícuos entre várias execuções eminentes de ZKP em blockchain. As transações privadas de Blockchain devem ser protegidas de terceiros ao enviá-las.
A principal preocupação no envio de transações privadas de blockchain alude às diferentes brechas aparentes nas estratégias regulares. A poderosa integração do ZKP com transações privadas de blockchain pode torná-los versáteis para qualquer tipo de hacking ou interferência.
8. Democratizando a Verificação de Votos
O exemplo mais óbvio de aplicação do ZKP com blockchain alude ao seu papel democrático na verificação de votos. ZKPs podem dar respostas confiáveis para votação auditável registrando os votos em uma blockchain pública (como ethereum).
Posteriormente, os processos de votação não precisariam de confirmação de terceiros, além de excluir a exigência de restrição. Os ZKPs podem permitir que os eleitores demonstrem sua elegibilidade para votar, nesse sentido, evitando a exposição de seus dados pessoais confidenciais. Da mesma forma, os eleitores podem solicitar provas imutáveis para consideração de seu voto na contagem final de votos.
9. Segurança para informações confidenciais
Por último, mas não menos importante, a prova de conhecimento zero também refina a maneira como a tecnologia blockchain está renovando as transações .
O ZKP adiciona um nível de segurança de ponta a cada bloco que contém informações bancárias confidenciais, como detalhes e histórico do seu cartão de crédito, de modo que os bancos precisam manipular apenas os blocos necessários quando um usuário solicita informações. Outros blocos permanecem intocados e, portanto, protegidos.
Por exemplo
ZoKrates (uma caixa de ferramentas digital) é usado por desenvolvedores qualificados para conceber e verificar ZKPs por meio do Solidity - uma linguagem de programação orientada a objetos que é usada para criar contratos inteligentes baseados em Ethereum.
A Aztec está buscando trazer a prova de conhecimento zero do Ethereum para a rede Ethereum existente, desenvolvendo uma pilha de contratos inteligentes focados em privacidade.
Então, esses foram alguns dos casos de uso da prova de conhecimento zero nos serviços de desenvolvimento de blockchain . Para marcar presença no mercado construindo um desses, contrate uma empresa de desenvolvimento de aplicativos blockchain .
E caso você esteja confuso sobre sua implementação no mundo real, verifique os seguintes projetos existentes operando com a convergência de dois.
Exemplos da vida real de convergência de provas de conhecimento zero e Blockchain
1. ZCash
Zcash é uma plataforma blockchain de código aberto e sem permissão que oferece a funcionalidade de manter as transações 'transparentes' e 'protegidas' conforme o requisito.
No primeiro caso, as transações são regidas por um t-addr, assim como as transações de bitcoin. Enquanto no último caso, uma prova de conhecimento zero chamada zk-SNARKs é usada e as transações são controladas por um z-addr.
É o primeiro caso de uso de criptomoeda e aplicação do ZKP no mundo das criptomoedas. É a primeira criptomoeda à prova de conhecimento zero a implantar a tecnologia.
2. ING
O ING é um banco com sede na Holanda que introduziu sua própria blockchain de conhecimento zero. No entanto, eles modificaram seu sistema de conhecimento zero para torná-lo uma prova de alcance de conhecimento zero para diminuir a necessidade de poder computacional.
Dessa forma, eles prepararam seu sistema de conhecimento zero para elevar o impacto do blockchain nas fintechs .
3. ZCoin
A empresa usa o protocolo Zerocoin, baseado na prova de conhecimento zero, para aumentar a segurança e o anonimato no processo de transação. No entanto, o que o diferencia de outros projetos que trabalham nesse conceito é que ele também oferece escalabilidade.
Embora vários atores internacionais tenham começado a mostrar interesse em implementar o conceito de prova de conhecimento zero no blockchain, o ritmo de adoção é muito lento. E a principal razão por trás disso é o seguinte conjunto de desafios associados à adição do ZKP ao ambiente blockchain.
Desafios que você pode enfrentar ao integrar o ZKP ao seu projeto Blockchain
1. Ausência de Padrões
Como a própria tecnologia blockchain está em seu estágio inicial de adoção, não há padrões, sistemas e linguagens homogêneas que permitam que desenvolvedores de aplicativos e prospects de negócios interajam com o conceito de ZKP e aproveitem seu potencial de maneira eficiente.
2. Escalabilidade
Outro desafio que restringe a adoção da prova de conhecimento zero no ambiente blockchain é a escalabilidade, desde que tais algoritmos exijam alta capacidade computacional para operar em alto nível.
Empacotando
Agora que o conceito de ZKP e seu escopo no domínio Blockchain (junto com exemplos da vida real) estão claros para você, esperamos encontrá-lo investindo na aplicação mais ampla do conceito enquanto entra no mundo descentralizado.
Mas, caso você ainda tenha alguma dúvida, conecte-se com nossos consultores Blockchain ou nossos especialistas em serviços de desenvolvimento de aplicativos blockchain EUA.