Você provavelmente já se deparou com as expressões “se é grátis, você é o produto” ou “dados são o novo petróleo” e riu como se isso fosse um ditado bobo. A verdade é que os dados são a força motriz por trás de quase todos os negócios e serviços. Por exemplo, experiências e serviços personalizados, marketing e uma série de outros insights e serviços dependem do volume e da qualidade dos dados fornecidos a eles. A maioria das empresas está ansiosa para acessar dados para ajudar a entender melhor seus clientes, prever padrões de comportamento do cliente e melhorar a qualidade de seus serviços.
O ambiente da internet tradicional sempre esteve sujeito a preocupações em torno de dados e privacidade. Os defensores da privacidade há muito sinalizam preocupações sobre como os dados são armazenados, como são acessados e quem tem acesso a eles. Com o crescimento do ecossistema de criptomoedas e blockchain, preocupações semelhantes também surgiram neste setor. A natureza pública das blockchains introduziu várias preocupações de privacidade para os usuários em relação à proteção de suas informações pessoais. Este artigo examinará mais de perto o problema de privacidade em blockchains e como as provas de Zero Knowledge (ZK) podem mitigá-los.
O que é privacidade de dados?
O aumento do uso da Internet trouxe a questão da privacidade de dados para o mainstream, com quase todos os sites, aplicativos e plataformas de mídia social coletando e armazenando informações pessoais dos usuários para fornecer determinados serviços. No entanto, essas plataformas e sites geralmente não possuem proteções adequadas para proteger os dados coletados, resultando em inúmeras violações de dados.
Com o crescimento da tecnologia blockchain e do ecossistema criptográfico, as preocupações são crescentes sobre a privacidade de usuários institucionais e de varejo. Essas preocupações se devem principalmente à natureza pública das blockchains, com a maioria das opções de Camada 1 e Camada 2 não abordam essas questões. Privacidade de dados refere-se à capacidade dos usuários de determinar, por sua vez, quando e como suas informações são compartilhadas com outras pessoas. Também abrange a capacidade dos usuários de ditar até que ponto seus dados são compartilhados. Essas informações podem incluir seus nomes, localização, informações de contato, comportamento online, o que você gosta, o que não gosta, detalhes de transações e muito mais.
Confiança, Privacidade e Blockchain
Atualmente, o ecossistema de criptomoedas está passando por uma reviravolta considerável após o colapso de grandes projetos como FTX. No entanto, a tecnologia subjacente que suporta criptomoedas tem o potencial de revolucionar a privacidade, a confiança e como ela é alavancada. Isso é crítico na era da Internet, quando milhões navegam e compartilham grandes quantidades de suas informações pessoais para acessar serviços e produtos.
A tecnologia Blockchain vem inerentemente com problemas em torno da privacidade, graças ao seu design. A natureza descentralizada das blockchains significa que os nós que processam as transações ou informações têm acesso aos dados da blockchain. Por exemplo, a blockchain do Bitcoin está disponível publicamente e pode ser acessada por qualquer pessoa que deseje verificar seu histórico de transações até seu bloco de gênese. Agora, lembre-se, Bitcoin é pseudo-anônimo, o que significa “[dados] que não estão diretamente associados a um indivíduo específico [mas onde] várias aparências de [uma] pessoa podem ser ligadas”.
Dados pseudo-anônimos suficientes tornam possível identificar os indivíduos por trás das transações, o que é preocupante para os usuários do blockchain, e há vários motivos para isso. Ao contrário dos dados usados por aplicativos comuns, acessíveis apenas a alguns, os dados do blockchain podem ser examinados por todos, o que também inclui atores e entidades mal-intencionadas que podem explorar as informações da blockchain para seu benefício próprio. Além disso, a natureza imutável da blockchain significa que as transações e os dados estarão permanentemente vinculados ao indivíduo. Isso pode ser feito monitorando a comunicação entre os nós. Além disso, carteiras criptográficas também podem ser analisadas sem acesso a chaves privadas, complicando ainda mais as coisas.
Um exemplo de destaque do uso de dados blockchain para rastrear um indivíduo foi a investigação e prisão de Ross Ulbricht, o indivíduo por trás do infame site darknet “Silk Road”, que foi usado para várias atividades ilegais. As agências de aplicação da lei identificaram Ulbricht como o indivíduo por trás do Silk Road, graças aos dados da blockchain. Além disso, eles poderiam rastrear transações de Bitcoin e determinar que um agente da US Drug Enforcement Administration (DEA) estava lavando BTC conectado ao Silk Road. Nesse caso, as agências de aplicação da lei conseguiram rastrear os dados disponíveis na blockchain para identificar um indivíduo. Mas imagine se entidades maliciosas pudessem rastrear seus dados com tanta facilidade graças à natureza pública do blockchain. Os resultados seriam devastadores.
Apresentando as Provas de Conhecimento Zero (Zero Knowledge ou ZK)
As Provas de Conhecimento Zero foram discutidas pela primeira vez por Silvio Micali,Shafi Goldwasser, e Charles Rackoff em um artigo intitulado “A Complexidade de Conhecimento de Sistemas de Provas Interativas”, e são considerados uma fascinante inovação da criptografia que pode ser utilizada em diversos cenários. No caso da blockchain, pode ajudar a permitir transações seguras e anônimas. O Zero Knowledge Proof (Prova de Conhecimento Zero), também conhecido como Zero Knowledge Protocol, permite que uma parte (o provador) prove à outra parte (verificador) que conhece um determinado valor ou informação (x) sem divulgar nenhuma informação além do fato de conhecer o valor ou informação em questão (x). O desafio quando se trata da Prova de Conhecimento Zero é justificar a posse da informação sem revelá-la ou qualquer outra informação adicional. Uma Prova de Conhecimento Zero deve satisfazer os seguintes critérios.
- Integridade – Vamos supor que a afirmação seja verdadeira. Um verificador honesto, seguindo correta e fielmente o protocolo, será convencido pelas informações fornecidas pelo provador que está seguindo corretamente o protocolo.
- Solidez – Solidez significa que não deve haver maneira de o provador falsificar qualquer informação ou convencer falsamente o verificador. A falsificação deve ser impossível.
- Conhecimento Zero – Se a afirmação do provador for verdadeira, o verificador não aprenderá nada além do fato de que a informação é verdadeira.
As duas primeiras são consideradas propriedades mais gerais de sistemas de prova interativos, com a adição de conhecimento zero transformando o processo de verificação em uma prova de conhecimento zero. Devido a uma pequena possibilidade (erro de solidez) de que um provador malicioso possa convencer o verificador de uma declaração falsa, as provas de conhecimento zero são consideradas provas probabilísticas em vez de provas determinísticas. No entanto, o erro de solidez pode ser mitigado para um valor insignificante.
Uma Prova de Conhecimento Zero deve atender a quais critérios?
Como funciona o ZKP?
Uma Prova de Conhecimento Zero consiste em três ações que ocorrem sequencialmente entre os participantes. Essas ações são chamadas de testemunho, desafio e resposta. Vamos nos aprofundar um pouco mais para entender melhor o papel de cada ação, assumindo que há dois participantes, A e B.
Testemunho – Vamos supor que A conheça um valor ou informação específica, o que também determina um conjunto de perguntas. Essas perguntas sempre podem ser respondidas corretamente por A. Inicialmente, A pode escolher qualquer pergunta aleatória do conjunto, calcular a prova e enviá-la para B.
Desafio – Após a etapa de testemunho, vem a fase de desafio, onde B escolhe uma pergunta do conjunto e pede a A para respondê-la.
Resposta – A então calcula a resposta e a envia de volta para B. Isso permite que B determine se A realmente sabe a resposta.
O processo descrito acima pode ser repetido quantas vezes for necessário até que se estabeleça que A sabe a resposta correta e a probabilidade de palpites tornar-se baixa o suficiente.
O artigo “The Knowledge Complexity of Interactive Proof Systems” foi escrito por
Casos de Uso de ZKP
O ZKP pode ser aplicado em vários cenários.
Sistemas de Autenticação
Os sistemas de autenticação têm desempenhado um papel crucial na promoção da pesquisa em Provas de Conhecimento Zero. Nesses sistemas, uma parte deseja provar sua identidade para uma segunda parte por meio de alguma informação secreta. No entanto, não deseja que a segunda parte obtenha qualquer conhecimento sobre essas informações secretas.
Confidencialidade
Um dos casos de uso mais significativos do ZKP ocorre em transações que exigem total confidencialidade. Vamos entender como. Considere uma blockchain como a do bitcoin. Geralmente, quando ocorre uma transação nesta blockchain, os dados relacionados à transação são registrados na blockchain. Isso significa que qualquer pessoa pode reunir algumas informações sobre a transação analisando os dados na blockchain. Por uma questão de privacidade, é fundamental ocultar alguns detalhes de transações específicas. O ZKP permite ocultar detalhes e, ao mesmo tempo, garantir a validade da transação, adicionando-os a um novo bloco.
Informações pessoais
Digamos que você queira fazer um empréstimo em um banco. Para solicitar o empréstimo, você deve fornecer uma série de documentos compostos por uma quantidade considerável de informações pessoais, disponibilizando-os a terceiros. No caso de obter um empréstimo de um banco, a única informação exigida pelo banco é saber se um indivíduo ganha uma quantia específica suficiente para pagar o empréstimo. O ZKP pode ajudar os bancos a verificar se um indivíduo ganha um valor mínimo predefinido sem revelar nenhuma informação confidencial ao banco ou a terceiros.
ZKP e Blockchain: o caminho a seguir
Vários projetos e criptomoedas utilizam ZKP, como ZCash, SmartCash, Zerocash e ZeroVert. O ZKP foi implementado principalmente por meio de zk-SNARKS e zk-STARKS.. zk-SNARKS foi originalmente desenvolvido pela ZCash. A maioria das blockchains é pseudo-anônima, o que significa que a identidade de um usuário pode ser rastreada até suas transações por meio do estudo dos dados da blockchain. Esta informação está disponível para todos com acesso ao blockchain e pode ser explorada por qualquer entidade maliciosa.
Apesar da reputação da blockchain como o auge da segurança cibernética, essa falha específica é bem conhecida dos usuários. No entanto, o ZKP pode ajudar a corrigir essa vulnerabilidade e garantir total privacidade quando se trata de informações pessoais. Embora o ZKP ainda tenha alguns desafios a serem superados, ele dá aos usuários o controle de seus dados e privacidade, limitando o acesso a terceiros, e desempenhará um papel crucial na melhoria da privacidade quando se trata de blockchains.