CryptoTimes

Privacidade 3.0 (parte 3): anonimização e manutenção de privacidade

07 mar 2020, 13:00 - atualizado em 05 mar 2020, 8:36
Um contrato inteligente pode implementar um registro, um sistema de votação, um jogo, dentre outros. As possibilidades são infinitas e isso faz parte da empolgação sobre o blockchain (Imagem: Freepik)

Este é o terceiro entre três textos que explica as inúmeras ferramentas e abordagens criptográficas para a privacidade no blockchain.

Parte 1 / Parte 2

CONTINUA DEPOIS DA PUBLICIDADE

Anonimização da camada de computação da Ethereum

O registro é uma das possíveis aplicações do blockchain. Então se um blockchain não é um registro, o que realmente ele é?

Projetos como a Ethereum tornam esse protocolo programável. Ethereum acrescenta uma camada de computação por meio de contratos inteligentes e da Ethereum Virtual Machine.

Um contrato inteligente pode implementar um registro, um sistema de votação, um jogo, dentre outros. As possibilidades são infinitas e isso faz parte da empolgação sobre o blockchain.

Blockchain é um protocolo de reprodução de máquina de estado que produz um log linearmente ordenado entre várias pessoas.

No entanto, as coisas ficam mais complicadas ao darmos atenção à privacidade para essa camada de computação.

Ofuscar a execução de contratos inteligentes parece ser algo ideal, mas pode não ser algo prático (Imagem: Freepik/macrovector)

Temos duas formas de observar isso: ou computar à luz do dia (e certificar que o executor de um computador não possa entender o que está sendo computado) ou computar fora do blockchain e provar que fizemos tudo certo.

Esses problemas vêm sendo estudados há 30 anos e envolvem diversos tópicos:

Computação segura multiparte (SMPC);
Ambiente de execução confiável (TEE);
Verificação de computação;
Criptografia homomórfica completa (FHE)
Ofuscação Indistinguível;
Provas de conhecimento-zero.

Ofuscar a execução de contratos inteligentes parece ser algo ideal, mas pode não ser algo prático.

Por exemplo, computar um simples zk-SNARK (argumento de conhecimento sucinto não interativos de conhecimento-zero) pode demorar um minuto.

Verificar a prova na rede Ethereum pode custar um milhão + gás. Isso é o equivalente a US$ 3 em taxas de transações.

Uma chave pública de FHE pode fornecer propriedades de segurança similares conforme chaves RSA de 2048 bits pesa cerca de 2 GB. O texto criptografado é afetado e isso pode ser um problema.

Enigma é um protocolo descentralizado e de código aberto que permite que qualquer um programe dados criptografados, trazendo privacidade para contratos inteligentes e blockchains públicos (Imagem: Enigma)

Teoricamente, a abordagem que mais parece afetar o texto seria o TEE. Vários projetos no universo cripto (como Enigma, Corda e Sawtooth) escolheram priorizar o Software Guard Extensions (SGX) da Intel.

A ofuscação de contratos inteligentes seria possível ao confiar em um hardware que escondesse o que está fazendo (até mesmo para seu dono) e fornecesse um atestado de qual programa está executando.

Atualmente, é necessário contatar os servidores da Intel para verificar esse atestado. TEE é um aspecto empolgante e queremos ver sua evolução após vulnerabilidades terem acontecido — ataques a “caches”, Spectre (alguém precisa de um pacote de correção?).

Métodos existentes de manutenção de privacidade

Quão práticos são os esquemas de manutenção de privacidade? Como falham em relação à criptografia com fio e em repouso, além da análise da rede e dos metadados? São adequados para redes públicas ou privadas? Vamos analisar:

Serviços de “mixing”

A ideia geral por trás dos serviços de mixing é que, se muitas pessoas concordarem em juntar as saídas e entradas na mesma transação, ninguém pode dizer qual entrada é relacionada a qual saída.

Vários protocolos criados em serviços de mixing incluem Blindcoin, CoinJoin, CoinShuffle, XIM e TumbleBit.

Uma forma de resolver a privacidade é não usar a rede principal para realizar transações confidenciais (Imagem: Freepik/vectorpouch)

Esquemas anônimos de cripto

Essas esquemas podem ocultar a origem, o destino e a quantia de transações por meio de ferramentas criptográficas como Provas de Conhecimento-Zero, Compromissos de Pedersen e Assinaturas em Anel. Abordagens criptográficas no blockchain incluem Zerocash, MimbleWimble e o protocolo Monero.

Computação segura multiparte (SMPC)

Em uma SMPC, um dado número de participantes (p1, p2,…, pN) possui dados privados (d1, d2,…, dN), respectivamente. Participantes querem computador o valor de uma função pública nesses dados privados: F(d1, d2,…, dN) enquanto mantêm ocultas suas próprias entradas.

Uma maneira que isso pode ser aplicado à execução de contratos inteligentes é expressar a computação como um circuito booleano usando portas “AND” (“E”) e “NOT” (inversora). O circuito funcionaria com dados criptografados e produziria um resultado legível por uma única parte.

Técnicas sob esse guarda-chuva incluem esquemas de compartilhamento secreto, Enigma, Hawk ou Criptografia Homomórfica Completa. TrueBit almeja corrigir computação por meio de incentivos econômicos, mas não soluciona a questão de privacidade.

Criações off-chain

Uma forma de resolver a privacidade é não usar a rede principal para realizar transações confidenciais. Se muitas partes querem realizar transações de forma privada, eles podem fazê-lo em uma rede privada e negociar na rede principal caso necessário.

Canais de estado, Plasma (solução de escalabilidade da Ethereum), “sharding” (partição de dados) e redes privadas de consórcio ou sidechains (blockchains paralelos) se encaixariam nessa descrição. A computação acontece em uma rede separada e o resultado aparece na rede principal.

Assim como uPort explicou, criações off-chain também mitigar o risco de ataques futuros. Um blockchain é permanente: dados criptografados com algoritmos atuais podem estar em risco daqui a uma década!