Skip to content

Como funciona ​

futuros.xyz/como-funciona é a página que mostramos a parceiros técnicos e institucionais para explicar, etapa por etapa, o que acontece com um dado desde que ele existe em uma agência (ou em uma instituição que o contribui) até aparecer como número citado. É pública, trilíngue e não exige credencial. Esta página documenta o que ela mostra e o que garante.

Dois percursos, um corpus ​

O percurso é escolhido com abas e fica no hash da URL (#publicos ou #aportados), assim um link compartilhado abre direto o percurso certo.

O status de cada etapa ​

Cada etapa leva um selo que deve coincidir com o código na main. A fonte da verdade é src/routes/como-funciona.content.ts; se uma etapa muda de status, muda ali e nesta tabela no mesmo PR.

EtapaStatusO que significa hoje
A1–A5Em produçãoO pipeline completo de dados públicos, descrito em O pipeline de dados e Procedência.
B1 ConsentimentoEm produçãovalidateContribution() exige consent: true; a licença fixa a postura de corpus. Registra-se o compromisso, não o dataset.
B2 Criptografia no clientePróxima faseCriptografia de envelope (AES-256-GCM + HPKE RFC 9180) especificada na fase H. Não construída.
B3 PseudonimizaçãoEm produçãocontributor_id = SHA-256 com o sal secreto TRUST_ID_SALT; sem ele, a produção não emite recibos.
B4 ReciboEm produçãoreceipt_hash SHA-256 sobre o corpo canônico; v2 adiciona HMAC-SHA256 do emissor quando TRUST_RECEIPT_HMAC_KEY existe.
B5 Ledger e revogaçãoEm produçãoO código e o armazenamento compartilhado estão em produção: Redis KV, com os mesmos nomes de ambiente e a mesma precedência do limitador de taxa (KV_REST_API_* primeiro, depois UPSTASH_REDIS_REST_*; #1287). GET /api/contribute responde configured: true. O registro público está no ar e vazio (count 0, conferido em 2026-10-16). A página consulta isso ao vivo.
B6 Sala limpa TEEDesenhoVM confidencial (AMD SEV-SNP / Intel TDX, GPU confidencial) com atestação remota, liberação de chave condicionada e saída só agregada com privacidade diferencial.
B7 Computação na origemDesenhoNó na infraestrutura do contribuinte que executa só manifestos assinados Ed25519; aprendizado federado com agregação segura.
B8 Assinatura pública e ancoragemDesenhoEd25519 sobre receipt_hash + log de Merkle RFC 6962 ancorado com RFC 3161 / OpenTimestamps (fases C e D).

As etapas em desenho nomeiam tecnologias candidatas com o maior detalhe técnico possível, mas nenhuma está construída nem contratada, e a página diz isso em cada uma. A página fecha com um bloco "O que não afirmamos hoje" e com a postura de soberania diante de raízes de confiança de hardware dos EUA.

Duas camadas de leitura ​

Cada etapa mostra primeiro uma linha em linguagem simples e o fluxo "entra → sai". O botão Ver detalhe técnico (ou o interruptor Modo técnico, que abre todas) mostra a especificação, as notas, o modelo de ameaças em duas colunas (o que você pode verificar / o que não é possível) e as referências a esta documentação.

Os laboratórios ​

Nada na página é simulação:

  • Rastreie um número (A3). Pega um citation_id real, decompõe com parseMultiId(), resolve com inferSourceKey() / deepLinkFor() do registro de fontes e busca o registro publicado em public/data/citations/<ISO3>.json.
  • Recalcule um recibo (B3–B4). Recalcula contributor_id, salt_version, contribution_id, o corpo canônico, receipt_hash e a assinatura v2 opcional com Web Crypto, no navegador, sem chamadas de rede. src/lib/trust-receipt-web.ts é um port de server/trust/ledger.ts, e src/lib/trust-receipt-web.test.ts exige paridade byte a byte com makeReceipt() para recibos v1 e v2: se o servidor muda o algoritmo, o build falha antes que a demo se desvie. Usa o sal público de desenvolvimento e declara isso: seus ids nunca coincidem com os de produção.
  • Verificador independente. Aceita qualquer recibo, inclusive um real de /contribuir: remove receipt_hash e a assinatura, canonicaliza o resto e recalcula o SHA-256. Um botão altera um campo para mostrar que o hash deixa de conferir.
  • Visão do atacante. Demonstra o ataque de dicionário contra um contributor_id calculado com o sal público, que é exatamente por que a produção exige TRUST_ID_SALT secreto.
  • Status do ledger (B5). Lê GET /api/contribute e mostra se o armazenamento compartilhado está configurado.

Os números de cabeçalho (observações, registros de citação) são lidos ao vivo de /api/v1/index.json e linkam para esse arquivo.

Relação com outras páginas ​

  • A tese e a mecânica completa do recibo vivem em Fundo Fiduciário de Dados.
  • A sequência criptográfica-alvo (fases C, D, G, H) vive em Procedência: roteiro; /como-funciona a apresenta, não a redefine. Se as duas divergirem, corrige-se a página, não o roteiro.

Cada número com sua fonte — a rastreabilidade é o contrato.