Privacidade 3.0 (parte 3): anonimização e manutenção de privacidade
Este é o terceiro entre três textos que explica as inúmeras ferramentas e abordagens criptográficas para a privacidade no blockchain.
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.
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.
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.
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!