Provas de conhecimento zero: Ethereum, Zcash e privacidade

As provas de conhecimento zero permitem comprovar fatos sem revelar os dados usados na demonstração. Assim, alguém pode confirmar que tem mais de 18 anos sem informar sua data de nascimento.

Na blockchain, a tecnologia ajuda a conciliar transparência e privacidade. Bitcoin e Ethereum mantêm registros públicos e auditáveis. No entanto, quem associa um endereço a uma pessoa pode acompanhar saldos, transações e protocolos utilizados.

Protocolos específicos usam provas ZK para validar operações sem expor remetente, destinatário ou quantia. Também é possível comprovar o cumprimento de uma regra sem divulgar a identidade completa.

Como funcionam as provas ZK

Todo sistema de conhecimento zero precisa cumprir três propriedades: completude, solidez e conhecimento zero.

Completude: se a afirmação for verdadeira e as partes seguirem o protocolo, o verificador deverá aceitar a prova. Portanto, quem conhece o segredo consegue demonstrar esse conhecimento.

Solidez: se a afirmação for falsa, um agente mal-intencionado não deve convencer o verificador, salvo por uma probabilidade desprezível. Muitas implementações buscam segurança equivalente a 128 bits.

Conhecimento zero: o verificador descobre apenas que a afirmação é válida. A prova não revela o segredo, os cálculos intermediários ou os dados empregados em sua geração.

Assinaturas digitais confirmam que uma chave assinou determinada mensagem, mas não ocultam seu conteúdo. Já compromissos por hash revelam o valor durante a abertura. Em contraste, provas ZK demonstram relações entre informações secretas sem expô-las.

Diferenças entre zk-SNARKs e zk-STARKs

Os sistemas mais conhecidos em blockchain incluem zk-SNARKs e zk-STARKs. Ambos comprovam a execução de cálculos, embora adotem compromissos técnicos diferentes.

zk-SNARKs são argumentos de conhecimento sucintos, não interativos e de conhecimento zero. Eles geram provas pequenas e rápidas de verificar. Uma prova pode ocupar entre 200 e 300 bytes, conforme o sistema.

Na Ethereum, a verificação pode consumir aproximadamente 200 mil a 300 mil unidades de gas. Além disso, o trabalho do verificador pode permanecer praticamente independente do número de operações agregadas na prova.

Historicamente, vários zk-SNARKs exigiram uma configuração confiável. Nessa cerimônia, participantes geram parâmetros aleatórios e descartam os dados secretos. Caso todos preservem essa informação, alguém poderá comprometer a segurança do sistema.

A Zcash utilizou a cerimônia Powers of Tau em seu processo de parâmetros. Centenas de participantes contribuíram, e a segurança depende de pelo menos um deles eliminar corretamente sua parte secreta.

Sistemas posteriores reduziram esse risco. O PLONK permite uma configuração universal, reutilizável entre circuitos. Por sua vez, construções baseadas no Halo 2 podem dispensar a configuração confiável.

zk-STARKs não exigem esse tipo de cerimônia. Em vez de curvas elípticas, eles usam principalmente funções hash. Desse modo, oferecem transparência e resistência teórica a ataques com computadores quânticos.

Em contrapartida, provas STARK podem ocupar dezenas ou centenas de kilobytes. Como a publicação de dados na blockchain consome gas, o tamanho maior pode elevar os custos.

A StarkWare emprega recursão para agregar demonstrações e reduzir o volume final publicado. Na prática, sistemas modernos combinam técnicas das duas famílias. Por isso, velocidade de geração e custo de verificação ganharam maior importância.

Rollups ZK ampliam a escala da Ethereum

Os rollups ZK processam lotes de transações fora da camada principal e enviam à Ethereum uma prova da execução correta. Em seguida, um contrato verificador aceita o novo estado em uma única operação.

A assimetria entre geração e verificação sustenta esse modelo. Uma máquina potente pode levar minutos para provar milhares de transações. Contudo, a rede verifica a demonstração rapidamente e com um custo menos sensível ao tamanho do lote.

O ZKsync Era utiliza uma máquina virtual própria e oferece compatibilidade com Solidity no nível da linguagem. Ela compila contratos para instruções otimizadas para provas ZK. Com isso, desenvolvedores podem adaptar projetos da Ethereum com mudanças limitadas.

A Starknet usa Cairo e provas STARK. A linguagem favorece a computação verificável e pode melhorar o desempenho. Porém, os desenvolvedores precisam aprender um novo ambiente de programação.

A Polygon zkEVM busca equivalência com a EVM e executa o mesmo bytecode da Ethereum. Ainda assim, transformar cada opcode em uma operação comprovável aumenta a complexidade técnica.

A Scroll também prioriza a compatibilidade com a EVM. Dessa maneira, a disputa entre os rollups envolve facilidade de migração, desempenho e custos.

Privacidade e pressão regulatória

Uma transação comum da Ethereum expõe endereços, valores e contratos acionados. Empresas como Chainalysis e Elliptic analisam esses fluxos. Elas associam endereços a identidades por registros de KYC, rótulos conhecidos e padrões de comportamento.

Protocolos privados podem interromper parte dessa visibilidade. O usuário comprova saldo suficiente, impede o gasto duplo e preserva o equilíbrio dos valores. Enquanto isso, remetente, destinatário e montante permanecem ocultos.

A Zcash apresentou uma das primeiras grandes aplicações desse modelo em 2016. A rede oferece transações transparentes e protegidas por zk-SNARKs. Historicamente, porém, grande parte da atividade permaneceu no conjunto transparente.

Projetos mais novos buscam privacidade programável. A Aztec Network desenvolve uma camada 2 da Ethereum com transações privadas. Já a Aleo opera uma blockchain de camada 1 voltada a contratos inteligentes privados.

Essas soluções também podem viabilizar votação sigilosa, comprovação de cidadania sem exposição do passaporte e aplicações privadas de finanças descentralizadas.

Em agosto de 2022, o Escritório de Controle de Ativos Estrangeiros dos Estados Unidos sancionou o Tornado Cash. O protocolo usava provas ZK para romper a ligação pública entre depósitos e saques.

Em maio de 2024, um tribunal holandês condenou o desenvolvedor Alexey Pertsev por lavagem de dinheiro relacionada ao Tornado Cash. A decisão reforçou o debate sobre a responsabilidade de desenvolvedores quando ferramentas de privacidade facilitam atividades ilícitas.

Nesse contexto, alguns projetos adotam mecanismos de divulgação seletiva. O usuário pode comprovar aprovação em KYC ou ausência em listas de sanções sem revelar informações além da exigência verificada.

Os pools de privacidade, conceito formalizado por Vitalik Buterin e outros pesquisadores, formam subconjuntos de depósitos sem endereços ilícitos conhecidos. Assim, alguém pode provar que seu saque integra esse conjunto sem identificar o depósito original.

Custos e cuidados antes de usar protocolos ZK

O custo de geração ainda limita algumas aplicações. Transferências institucionais, grandes posições em finanças descentralizadas e sistemas empresariais conseguem absorver despesas de vários dólares. Aplicações cotidianas, entretanto, precisam de custos menores.

Empresas como Cysic, Ingonyama e Fabric Cryptography desenvolvem hardware para acelerar a criação de provas. Paralelamente, Aztec e Polygon Miden tentam combinar privacidade e escalabilidade, embora essa integração continue complexa.

Antes de usar um protocolo, o usuário deve verificar auditorias dos contratos e circuitos ZK. Um erro pode permitir provas falsas, emissão indevida ou roubo de recursos. A análise deve envolver especialistas em sistemas de conhecimento zero.

Também é necessário identificar quais informações permanecem privadas. Alguns protocolos ocultam valores, mas mostram endereços. Outros fazem o inverso. Metadados, horários, custos de gas e frequência de uso ainda podem ajudar na identificação.

Nos sistemas SNARK, o usuário deve avaliar a configuração confiável. Cerimônias com muitos participantes reduzem a dependência de entidades específicas. STARKs e certas construções baseadas no Halo 2 eliminam essa necessidade.

O risco regulatório permanece relevante. Sanções contra um protocolo podem dificultar a movimentação ou negociação dos recursos. Além disso, a geração de uma prova pode demorar entre 30 segundos e dois minutos em celulares.

Servidores dedicados aceleram o processo, mas podem ter acesso a informações sensíveis. Portanto, o modelo de privacidade depende tanto da matemática quanto da implementação e da infraestrutura utilizada.

Perguntas frequentes

As criptomoedas privadas com ZK são ilegais? Zcash e projetos semelhantes não são inerentemente ilegais na maioria das jurisdições. Entretanto, as regras variam, e algumas exchanges retiraram esses produtos para cumprir normas contra lavagem de dinheiro.

As transações podem se tornar totalmente privadas? Um protocolo pode ocultar endereços, valores e outras informações. Mesmo assim, metadados, falhas operacionais e análises externas podem comprometer o anonimato do usuário.