Ir para o conteúdo
HexaTransfer
Voltar ao blog
Analises tecnicas

Provas de Conhecimento Zero em Sistemas de Transferência de Ficheiros

Explore como as provas de conhecimento zero aumentam a privacidade na transferência de ficheiros. Verifique a integridade dos ficheiros sem expor o conteúdo a intermediários.

As provas de conhecimento zero permitem que uma parte prove que uma afirmação é verdadeira sem revelar nada além da veracidade da afirmação em si. Aplicadas à transferência de ficheiros, as ZKPs permitem que um remetente ou servidor prove que um ficheiro corresponde a um hash esperado, foi encriptado com uma chave específica, ou satisfaz uma política como "menor que 10 GB e não está numa lista de bloqueio de malware" — sem revelar o conteúdo do ficheiro. A CNPD, ao aplicar o RGPD, reconhece a minimização de dados como princípio central; as ZKPs são uma das poucas ferramentas criptográficas que permitem verificação sem exposição. A tecnologia, formalizada por Goldwasser, Micali e Rackoff em 1985 e agora prática via zk-SNARKs (Groth16, PLONK) e zk-STARKs, está a mover-se da criptomoeda para sistemas de ficheiros preservadores de privacidade.

O Que "Conhecimento Zero" Significa Neste Contexto

Dois usos colidem no marketing. O primeiro é o sentido criptográfico formal: um protocolo interactivo ou não-interactivo que prova o conhecimento de uma testemunha sem a revelar, como definido no heurístico Fiat-Shamir e construções modernas de zk-SNARK como Groth16 (2016) e PLONK (2019). O segundo é o sentido comercial mais laxo, onde "conhecimento zero" significa que o fornecedor de serviço não consegue desencriptar os dados do utilizador porque não detém as chaves, como usado pelo Proton, Tresorit e Sync.com. Ambos são válidos, mas resolvem problemas diferentes. O sentido comercial é realmente encriptação ponta-a-ponto do lado do cliente; o sentido criptográfico abre novos fluxos de trabalho impossíveis apenas com E2EE.

Provas de Integridade de Ficheiros Sem Divulgação

Imagine um cenário de descoberta legal. Uma parte respondente entrega ficheiros encriptados e quer provar a completude — que nada foi retido — sem revelar o conteúdo. Um compromisso de árvore Merkle combinado com uma prova de conhecimento zero pode demonstrar que cada ficheiro num índice acordado está presente, com hash correcto, e encriptado com a chave partilhada. A parte receptora verifica a prova em milissegundos sem ver o conteúdo até à desencriptação. Ferramentas construídas sobre Halo 2, Circom e Plonky2 permitem que circuitos que expressam estas afirmações corram do lado do cliente em browsers via compilação WebAssembly.

Divulgação Selectiva para Conformidade

Um médico a enviar um estudo DICOM de um paciente para uma segunda opinião pode querer provar, sem revelar a identidade, que o remetente é um médico licenciado numa entidade coberta pelo RGPD. Uma prova de credencial de conhecimento zero usando o Modelo de Dados de Credenciais Verificáveis W3C v2.0 com assinaturas BBS+ pode fazer isto. O destinatário verifica as credenciais do remetente sem ver o nome ou a instituição do remetente. O mesmo padrão aplica-se à conformidade de controlo de exportação: provar que o país de destino do ficheiro é aprovado sem divulgar o ficheiro ou o destino exacto.

Prova de Upload Sem Confiar no Servidor

Um problema comum na transferência de ficheiros: o remetente carrega um ficheiro, o servidor afirma tê-lo recebido, mas como pode o remetente provar o que foi realmente armazenado? Os protocolos baseados em prova de recuperabilidade (PoR) e prova de posse de dados (PDP), formalizados por Juels-Kaliski (2007) e Ateniese et al. (2007), permitem ao servidor provar que detém o ficheiro completo respondendo a desafios aleatórios com provas criptográficas. O armazenamento descentralizado como o Filecoin usa-os para provar que os fornecedores de armazenamento detêm os dados que afirmam. Para um serviço de transferência centralizado, o PoR dá ao remetente confiança sem depender da confiança nos registos de auditoria.

Intersecção Privada de Conjuntos para Deduplicação

Os serviços de transferência de ficheiros frequentemente deduplicam ficheiros idênticos do lado do servidor para poupar armazenamento. Feito de forma ingénua, isto vaza informação: dois utilizadores a carregar o mesmo ficheiro descobrem-se mutuamente. Os protocolos de Intersecção Privada de Conjuntos (PSI) usando funções pseudo-aleatórias oblivious (OPRF) ou encriptação de filtro Bloom permitem ao servidor detectar duplicados criptograficamente enquanto nenhuma das partes nem o servidor aprende quais os ficheiros específicos que correspondem. As bibliotecas PSI como a APSI da Microsoft e a implementação PSI da Google correm em browsers via WASM. Isto importa para sistemas E2EE onde a deduplicação do lado do servidor quebraria de outra forma o modelo de ameaça.

Provar Conformidade de Política Sem Revelar o Payload

Os sistemas de transferência empresarial frequentemente executam verificações DLP (Prevenção de Perda de Dados) para bloquear uploads contendo números de segurança social, números de cartão de crédito ou marcações proprietárias. Uma prova ZK de DLP permitiria ao remetente provar que "este ficheiro não contém strings de 16 dígitos correspondendo a padrões de cartão de crédito válidos por Luhn" sem revelar o ficheiro ao servidor DLP. Os circuitos em Circom ou Noir podem expressar estas verificações. O desempenho é o gargalo: provar que um ficheiro de 100 MB satisfaz uma política complexa pode demorar minutos. A investigação em esquemas de GKR e dobramento como Nova (2022) está a reduzir significativamente o tempo de prova.

zk-SNARKs vs. zk-STARKs para Ficheiros

Os zk-SNARKs (Succinct Non-interactive Arguments of Knowledge) como Groth16 e PLONK produzem provas minúsculas (200 a 500 bytes) verificáveis em milissegundos mas requerem uma cerimónia de configuração fidedigna. Os zk-STARKs (Scalable Transparent Arguments of Knowledge), usados nos sistemas de produção da StarkWare, não precisam de configuração fidedigna e dependem apenas de funções hash, tornando-os seguros pós-quântico — mas as provas são maiores (50 KB a vários MB). Para transferência de ficheiros, as provas SNARK encaixam bem em cabeçalhos HTTP ou pequenos campos de metadados, enquanto as provas STARK são mais volumosas mas evitam premissas de confiança.

Orçamentos de Desempenho para Prova no Browser

Gerar uma prova de que um ficheiro de 1 MB corresponde a um hash específico leva cerca de 100 ms a 2 segundos num browser usando Halo 2 ou snarkjs compilado para WASM, dependendo do tamanho do circuito e do dispositivo. Para provas de integridade de ficheiros no momento da transferência, isto é aceitável. Para afirmações mais complexas como conformidade de política em ficheiros grandes, a prova pode requerer delegação a um servidor ou correr em web workers em segundo plano. A Web Crypto API trata primitivos de hash padrão à velocidade nativa, mas os circuitos ZK personalizados ainda pagam o overhead de interpretação WASM — aproximadamente 2 a 5x mais lento que nativo.

Padrões de Integração com E2EE Existente

As ZKPs encaixam bem por cima da E2EE em vez de a substituir. Um padrão típico: o remetente encripta o ficheiro com AES-256-GCM, calcula um hash SHA-256 do texto simples, e gera uma prova que compromete esse hash. O servidor armazena texto cifrado, o compromisso e a prova. O destinatário recupera os três, desencripta, recalcula o hash do texto simples e verifica a prova. Isto detecta adulteração e também fornece uma asserção de integridade transferível que o destinatário pode mostrar a um terceiro — como a CNPD ou um regulador — sem revelar o ficheiro. O HexaTransfer usa encriptação ponta-a-ponto padrão com AES-256-GCM e troca de chaves X25519 para o modelo de ameaça comum.

Onde as ZKPs Se Encaixam Hoje e Onde Não Se Encaixam

Hoje, as ZKPs encaixam bem para asserções compactas de integridade e autenticidade, deduplicação sem divulgação, e acesso baseado em credenciais a endpoints de transferência. Não se encaixam ainda em verificações conscientes de conteúdo de uso geral em ficheiros grandes — o tempo de prova e o tamanho da prova ainda não chegaram lá. Espere as primeiras funcionalidades de transferência de ficheiros aprimoradas com ZK em produção em 2027 a 2028, provavelmente começando com provas de integridade e deduplicação baseada em PSI em vez de conformidade de política completa.

Experimente em https://hexatransfer.com — gratuito, sem conta, máximo de 10 GB.

Envie arquivos grandes com segurança e criptografia de ponta a ponta

Transfira arquivos de até 10 GB gratuitamente com criptografia de ponta a ponta. Sem necessidade de conta. Seus arquivos são criptografados no navegador antes do envio — ninguém mais pode lê-los.

Enviar um arquivo