Documentação

Como funciona o Scuta

Identidade que só você controla, mensagens que só o destinatário lê, e uma rede que ninguém desliga do centro. Escrito para ser lido sem jargão pesado — mas sem esconder os detalhes reais.

🔑

Identidade soberana

Suas palavras-semente BIP-39 derivam, no seu aparelho, o SCUTA-ID e a chave mestra. Sem servidor de autenticação; ninguém bloqueia sua identidade remotamente.

🔒

Criptografia ponta a ponta

O conteúdo é cifrado antes de sair do dispositivo (AES-256-GCM sobre uma chave X25519, assinado com Ed25519). Relay e nós repassam apenas bytes opacos.

🆔

SCUTA-ID determinístico

Um código curto (Crockford Base32) derivado da sua chave pública. Qualquer aparelho calcula o mesmo, offline, sem coordenação central.

📮

Scuta Relay — o carteiro cego

Um binário sem configuração que qualquer voluntário roda. Roteia pacotes cifrados por SCUTA-ID e vê só quem fala com quem — nunca o que é dito.

🕸️

Scuta Node — banco distribuído

Uma rede de nós coordenados por DHT Kademlia que guarda nomes, índice de relays, posts públicos e mídia — replicados, sem ponto central de falha.

🤝

Modelo de confiança

Cada contato tem um nível. Só Favoritos tentam conexão direta P2P; bloqueados são recusados; o resto passa pelo relay, sem expor seu IP.

Identidade: palavras que só você conhece

Na Scuta, não existe cadastro em um servidor. Ao criar sua identidade, o aplicativo gera uma sequência de palavras no padrão BIP-39 — o mesmo esquema de “frase-semente” usado por carteiras de criptomoedas. Dessa semente, o próprio dispositivo deriva duas coisas: o SCUTA-ID (seu endereço público) e a chave mestra (que cifra seu banco de dados local e seus backups). O processo é determinístico e offline: importar as mesmas palavras em qualquer aparelho reconstrói exatamente a mesma identidade. Ninguém — nem a Scuta — guarda uma senha sua. O outro lado da moeda: se você perder as palavras, não há “esqueci minha senha”.

  • A semente vira uma chave de assinatura Ed25519 e uma chave mestra AES-256 derivada com Argon2id (64 MB de memória — proposital para dificultar força bruta).
  • O SCUTA-ID é um código curto em Crockford Base32 (alfabeto sem I, L, O, U, para não confundir ao ditar), calculado a partir da chave pública.
  • Há uma “palavra 25” opcional (passphrase): as mesmas palavras com passphrases diferentes geram identidades diferentes.
  • O app suporta seed de 12, 18 ou 24 palavras BIP-39.

Criptografia ponta a ponta e o papel do Relay

Toda mensagem privada é cifrada no seu dispositivo antes de tocar qualquer servidor. O núcleo usa um envelope inspirado no padrão do Nostr (NIP-59): uma chave de sessão é combinada por Diffie-Hellman (X25519) entre você e o destinatário, o conteúdo é cifrado com AES-256-GCM e assinado com sua chave Ed25519, de modo que o destinatário confirma que a mensagem é sua e não foi adulterada. O Scuta Relay é um message broker WebSocket — não um proxy cego. Ele autentica cada cliente por assinatura e roteia pacotes de um SCUTA-ID para outro.

  • O que o relay enxerga: quem enviou, para quem, e o “tipo” (texto, arquivo, sinal de chamada). O que ele nunca enxerga: o conteúdo.
  • É “burro e leve” por design: encaminha, mede tamanho, deduplica por ID — não monta arquivos nem armazena histórico.
  • Seu IP nunca é exposto a outros usuários quando o tráfego passa pelo relay: todos falam apenas com o relay.
  • Qualquer pessoa pode hospedar um relay numa VPS ou no próprio PC — a rede de relays é voluntária.

Scuta Node: o banco de dados distribuído

Se o relay é o carteiro, o Scuta Node é o “cartório” distribuído da rede — mas sem um cartório central. É uma rede de nós que se coordenam por uma DHT Kademlia (uma tabela de hash distribuída que decide, por distância matemática, qual nó guarda o quê). Cada dado é um evento assinado; nenhum registro entra na rede sem uma assinatura Ed25519 válida do dono. Cada registro é replicado em vários nós (3 por padrão, 6 para conteúdo crítico), então derrubar um nó não apaga nada.

  • Cuida do diretório de nomes (@handles únicos), do índice de relays, de posts e mídia pública, e de ponteiros de backup.
  • Sincronização por “gossip” + árvores de Merkle: nós trocam só um hash por partição e só sincronizam de fato quando divergem.
  • Todo dado repassado é verificado (ID correto, assinatura válida, timestamp sem “futuro” abusivo) antes de ser aceito.
  • Mídia grande é fatiada em pedaços de 256 KB endereçados pelo próprio hash, guardados fora do banco.

Modelo de confiança, P2P e Clubs auto-hospedados

A privacidade da Scuta é “por padrão”: o tráfego passa pelo relay (que esconde seu IP), e conexão direta P2P só é tentada para contatos que você marcou como Favorito. No código, cada contato tem um nível de confiança — Favorito tenta P2P direto; um contato bloqueado tem o envio recusado; os demais vão pelo relay. Assim, expor seu endereço de rede é uma escolha consciente, reservada a quem você confia. Sobre essa base vivem os Clubs: comunidades que qualquer usuário pode hospedar, com registro em diretório de forma voluntária.

  • Favorito → tenta P2P direto; contato comum → relay; Bloqueado → recusado.
  • Clubs são autônomos: hospedagem por qualquer um, listagem no diretório é opt-in.
  • No Scuta Wolf, a segurança é em camadas: objetos selados (Web Components) + sanitização de HTML/CSS + iframe isolado sem acesso ao sistema.
  • Monetização ética: hospedagem, loja de temas e relay premium podem ser pagos; a criptografia nunca é.

Estado do projeto

O Scuta é um projeto em desenvolvimento ativo, com produtos em estágios diferentes de maturidade. O núcleo de identidade e criptografia e o banco cifrado local com modelo de confiança e P2P estão concluídos. O app Scuta Crow (desktop) está avançado, com chamadas e grupos entregues. O Scuta Node tem as etapas centrais implementadas e já roda em servidor real. Uma versão Web/PWA reusando o núcleo via WASM está em construção. Já o Orbis e o Wolf estão em fases iniciais.

  • Crow, Node e Relay — avançados; infraestrutura em operação real.
  • Web/PWA — fase de texto validada no navegador; depende de infraestrutura (wss) de produção.
  • Orbis e Wolf — em fase inicial de desenvolvimento.
  • Itens de roadmap como diretório (Master Server), loja de temas e hospedagem gerenciada ainda são pendentes.

Quer contribuir ou hospedar?

O Scuta é de código aberto (MIT / Apache-2.0). Qualquer pessoa pode rodar um relay ou um nó.