Machine Learning, em última análise, é sobre descobrir relacionamentos latentes nos dados. Esses relacionamentos podem ser usados ​​para obter insights e fazer previsões ​​para qualquer negócio.

No entanto, os últimos anos mostraram uma crescente conscientização sobre a propriedade de dados por governos (GDPR na Europa e LGPD no Brasil) e usuários em geral. Hoje, as pessoas não aceitam que seus dados privados sejam usados ​​para análises de acordo com os caprichos e desejos de uma empresa.

Isso leva ao seguinte dilema:

As empresas precisam realizar análises nos dados dos usuários para aperfeiçoar seus serviços. Quanto mais dados as empresas conseguirem, melhores serão seus insights. Isso cria um forte incentivo para adquirir dados de outros usuários ou empresas de terceiros. Há também um forte incentivo monetário para vender dados como um ativo para outras empresas.

Os usuários, por outro lado, percebem que seus dados pessoais podem ser mal utilizados ou vazados para outras empresas. Isso os desincentiva a compartilhar dados com as empresas. 

Como podemos resolver esse dilema?

A Web3.0 traz consigo a ideia de Zero Knowledge Proofs para resolver tais problemas. Conceito baseado na tecnologia Blockchain. Vamos compreender os detalhes sobre isso agora neste artigo.

Boa leitura.

Zero Knowledge Proofs (ZKPs)

As Provas de Conhecimento Zero ou Zero Knowledge Proofs (ZKPs) são úteis em aplicativos onde a privacidade dos dados é primordial. Os ZKPs permitem que um aplicativo prove que um insight dos dados está correto sem revelar os dados.

Um ZKP pode ser entendido como uma interação entre dois jogadores, um Provador e um Verificador (Prover-Verifier).

Provador: Executa um cálculo e quer provar a terceiros que o cálculo foi válido.

Verificador: Verifica se o cálculo feito por outra pessoa foi válido. Isso é feito aceitando uma testemunha do usuário que tem um ponto de dados de teste de amostra com entradas e saídas correspondentes esperadas. Isso é usado pelos usuários para validar a autenticidade de um Provador.

Tanto o Provador quanto o Verificador são implantados em uma rede Blockchain para manter a transparência.

Vamos dar um exemplo de um Sudoku Puzzle para demonstrar o funcionamento de um ZKP.

Bob está tentando resolver um Sudoku e Alice diz que conhece a solução. Bob não tem certeza se Alice realmente conhece a solução. Para dar confiança a Bob, Alice teria que revelar a solução. Mas isso estragaria a diversão de Bob! Existe alguma outra maneira de dar a Bob a confiança de que Alice conhece a solução sem realmente revelá-la? É exatamente isso que um ZKP permite.

Alice pode implantar um ZKP (Prover-Verifier) que recebe uma seção do quebra-cabeça como entrada e fornece uma solução para essa seção. Dessa forma, Bob pode enviar uma seção resolvida juntamente com o resultado esperado como ‘Testemunha’ para o Verificador do ZKP.

O Verificador pode verificar se o Provador de Alice também fornece a mesma solução que a solução esperada de Bob. Isso daria a Bob a confiança de que Alice realmente conhece a solução. Ele pode interagir diretamente com o Provador para obter dicas sobre seções específicas do quebra-cabeça.

Então, como exatamente os ZKPs podem permitir o aprendizado de máquina com preservação da privacidade?

Existem dois cenários distintos em que os ZKPs podem habilitar Machine Learning com preservação da privacidade:

1. Análise de Dados Privados

2. Marketplaces (Mercados) de Dados e de Algoritmos de Machine Learning

Análise de Dados Privados

Aqui os dados são privados, mas o modelo de Machine Learning tem que ser público para dar confiança na natureza dos insights extraídos e para que eles alcancem um público maior.

Usaremos o exemplo de um aplicativo de pontuação de crédito. Aqui, pode-se precisar de detalhes privados de um usuário, como idade, gênero, salário, registros de pagamento de dívidas anteriores, despesas mensais, etc. Estes são então usados ​​para calcular uma pontuação de crédito para o usuário.

Hoje não há como saber com certeza se as empresas que computam a pontuação de crédito respeitam a privacidade do usuário. Elas podem muito bem usar esses dados para outros aplicativos ou vendê-los a terceiros sem o consentimento do usuário. Colocar todo o aplicativo em uma Blockchain pública como o Ethereum permite transparência e protege o consentimento do usuário.

Há um grande problema em colocar todo o aplicativo de pontuação de crédito no Ethereum. A pontuação de crédito calculada pelo modelo de Machine Learning pode ser uma tecnologia proprietária de uma empresa. As empresas não têm incentivo para hospedar em uma Blockchain pública como o Ethereum.

É aqui que os ZKPs entram em cena. Os ZKPs criptografam a lógica principal do algoritmo de Machine Learning em um Prover. Pode-se pensar em um Prover como uma entidade que executa cálculos em uma caixa preta sem revelar o conteúdo da caixa a ninguém. zk-SNARK e zk-STARKs são os métodos de criptografia populares para construir essas caixas pretas (Provers). Você pode ler mais sobre estes aqui.

Continuaremos com o exemplo de pontuação de crédito para entender como algo assim pode ser implementado.

Vamos supor que Alice administre uma empresa que calcula a pontuação de crédito dos dados privados de um usuário. O aplicativo é implantado dentro da estrutura ZKP para garantir a privacidade dos dados do usuário. Qualquer usuário como Bob pode validar a exatidão deste aplicativo ZKP passando uma testemunha composta de valores de teste (idade, renda, despesa) juntamente com o resultado esperado (intervalo de pontuação de crédito) para o Verificador. O Verificador usa esses valores para validar se a saída do Provador corresponde à saída de testemunha esperada.

Uma vez que o usuário está confiante na exatidão do cálculo da pontuação de crédito, ele pode interagir diretamente com o Provador que mantém certas entradas privadas (Idade, Renda) e outras públicas (Despesas). O Provador executa um cálculo e retorna a pontuação de crédito como saída. Dessa forma, deixamos Alice realizar cálculos (Analytics) nos dados de Bob sem comprometer a privacidade. Brilhante.

Marketplaces de Dados

Os modelos de Machine Learning precisam de dados. Isso cria um forte incentivo para as empresas venderem e comprarem dados umas das outras. Hoje não há como validar a qualidade de um conjunto de dados sem realmente compartilhá-lo. É aqui que os ZKPs vêm em socorro novamente.

ZKPs podem ser usados ​​para construir um Prover que usa certos cálculos para ver se os dados atendem a certas restrições ou propriedades como uma verificação de sanidade. O Prover manteria os dados privados e o próprio fato de estar em uma Blockchain pública garantiria que não houvesse negligência no processo de verificação. Isso garante que o comprador tenha confiança na qualidade dos dados antes de comprar o conjunto de dados.

Se Alice for vender um conjunto de dados privado para Bob, ela deve garantir que os dados atendam a certas restrições especificadas por Bob. Um aplicativo ZKP é construído de acordo com as restrições de Bob e implantado em uma rede Blockchain pública. Alice pode então enviar seu conjunto de dados privado como entrada para o Prover e mostrar que seus dados atendem a todas as restrições necessárias.

Marketplaces de Algoritmos de Machine Learning

Às vezes, o problema em questão pode ser vender o algoritmo de Machine Learning e o modelo pré-treinado associado. Aqui também enfrentamos o problema de obter a validação do vendedor. Os ZKPs podem ser usados aqui de maneira muito semelhante ao problema do Data Marketplaces discutido acima.

Podemos implantar um modelo pré-treinado em um Prover via ZKPs. O comprador pode então enviar um conjunto de dados de teste para verificar se o modelo funciona satisfatoriamente no conjunto de teste. Isso garante que o comprador tenha confiança no algoritmo de Machine Learning antes de comprá-lo.

Alice treina e implanta um modelo de Machine Learning na estrutura ZKP. Isso permite que Bob teste o desempenho do modelo em um conjunto de dados de teste personalizado antes de comprar o algoritmo de Machine Learning de Alice.

Incrível novo mundo que está bem a nossa frente na Web 3.0, ao unirmos Dados, Machine Learning e Blockchain. 

Equipe DSA

Referências:

Formação Engenheiro Blockchain

Machine Learning in Web 3.0

ZK Machine Learning

EthDataMarketplace

Web3: The hype and how it can transform the internet

Know The Difference Between Zk-SNARKS Vs. Zk-STARKS