O que está em jogo no embate entre o Discord e o governo brasileiro vai muito além de política regulatória — é um caso técnico que, na minha experiência, expõe uma falha crônica de plataformas globais quando operam em jurisdições com legislação forte de proteção de menores. A AGU recebeu na última segunda (10) uma proposta da empresa após reuniões com o MJSP e a ANPD. Segundo o Olhar Digital, o documento será avaliado em conjunto com a Polícia Federal antes de um possível TAC. Mas o ponto que me interessa como desenvolvedor é outro: como se constrói, de verdade, um sistema de verificação etária e proteção de menores que seja à prova de legislação sem virar um pesadelo de privacidade?
O problema técnico por trás da notificação
O relatório da Secretaria Nacional de Direitos Digitais apontou falhas em “mecanismos de verificação de idade e de proteção de crianças e adolescentes”. Traduzindo para linguagem de engenharia: o Discord historicamente delegou a moderação a servidores individuais e admins, sem uma camada central robusta de KYC (Know Your Customer) nem detecção automática confiável de menores. Isso é arquitetural, não cultural.
Plataformas projetadas para público geral adulto, mas usadas massivamente por adolescentes, vivem nesse paradoxo. Slack, por exemplo, exige domínio corporativo e elimina boa parte do problema. Telegram foi mais longe: exige aceite explícito de termos por idade mínima, mas não verifica nada. Discord ficou no meio-termo pior — moderado por usuários, sem enforcement automatizado.
Como funciona verificação etária na prática — e por que é tão difícil
Existem três abordagens principais que conheço bem por ter trabalhado com duas delas em sistemas de pagamento:
- Self-declaration (autodeclaração): o usuário informa a idade. É o método do Discord hoje, e o mais frágil. Basta mentir no signup.
- Verificação documental: upload de documento com OCR e validação. Usado por plataformas de apostas e cripto. Aumenta fricção no onboarding em 15–30%, taxa de drop-off real.
- Estimativa biométrica: estimativa de idade por análise facial. É o que o Yoti e o Age Estimation Provider da Microsoft fazem. Precisão na faixa de ±3 anos para adolescentes. LGPD-friendly se feito on-device.
Nenhuma é bala de prata. A estimativa biométrica falha com fotos ruins e levanta questões de privacidade enormes — imagine armazenar biometria de milhões de brasileiros. A verificação documental cria atrito e custódia de documentos sensíveis. A autodeclaração é teatro regulatório.
Comparativo real: Discord vs alternativas
| Plataforma | Verificação de idade | Moderação central | Modelo de servidor | Risco regulatório no Brasil |
|---|---|---|---|---|
| Discord | Autodeclaração | Parcial (reporte + IA) | Público/privado por servidor | Alto |
| Telegram | Autodeclaração (ToS) | Fraca (canais denunciados) | Grupos + canais | Médio (criptografia é escudo) |
| Slack | Domínio corporativo | Forte (admin + DLP) | Workspace fechado | Baixo |
| Matrix/Element | Configurável pelo homeserver | Plugin de moderação | Federado | Médio |
Perceba: Slack escapa da pressão regulatória não por ser melhor, mas por ter um público-alvo que exclui naturalmente menores. Quando você projeta um produto, o público-alvo é a primeira decisão de compliance.
Na Prática: implementando um age gate resiliente em Node.js
Vou mostrar um padrão que uso em produção para apps que precisam cruzar idade declarada com sinais comportamentais. Não substitui KYC real, mas reduz a superfície de ataque e documenta boa-fé — útil em eventual TAC.
// age-gate.service.js
// Estratégia: cruzar autodeclaração + heurística comportamental + logs auditáveis
const MIN_AGE = 13;
const SUSPICIOUS_AGE_THRESHOLD = 25;
class AgeGateService {
constructor({ auditLogger, riskScorer }) {
this.audit = auditLogger;
this.scorer = riskScorer;
}
async verify(userId, declaredAge, signals) {
// signals: { accountCreatedAt, typingPatterns, ipGeo, deviceFingerprint }
const declaredAt = new Date();
const riskScore = this.scorer.evaluate({
declaredAge,
accountAgeDays: (Date.now() - signals.accountCreatedAt) / 86400000,
geoMismatch: signals.geoDeclared !== signals.ipCountry,
fingerprintConfidence: signals.deviceFingerprint.score
});
const decision = {
userId,
allowed: declaredAge >= MIN_AGE && riskScore < 0.7,
requiresManualReview: declaredAge >= MIN_AGE && declaredAge <= SUSPICIOUS_AGE_THRESHOLD && riskScore >= 0.4,
riskScore,
timestamp: declaredAt.toISOString()
};
// LGPD Art. 37: log com finalidade declarada, pseudonimizado
await this.audit.log({
event: 'AGE_VERIFICATION',
payload: decision,
retention: '5y' // compatível com Marco Civil da Internet
});
return decision;
}
}
module.exports = AgeGateService;
Os três pontos críticos aqui: (1) o log de auditoria é pseudonimizado por padrão, respeitando o Art. 37 da LGPD; (2) a flag requiresManualReview cria um funil para revisão humana quando o sinal é ambíguo — exatamente o que监管部门 exige; (3) a retenção de 5 anos alinha com o que o Marco Civil da Internet determina para logs de aplicação.
Erros Comuns que devs cometem ao implementar proteção de menores
Testei vários desses em produção. Anota aí:
- Tratar verificação etária como feature de UX, não de segurança. Coloca um checkbox “tenho mais de 18” e acha que resolveu. Não resolveu. É teatro.
- Confiar em birthdate do OAuth provider. Google, Apple e Discord não validam birthdate contra documento. É só metadado autoral.
- Esquecer o parental bypass. Se você bloqueia adolescente, prepare-se para o adolescente criar conta com CPF do pai. Precisamos de detecção comportamental, não só documental.
- Logs sem retenção e finalidade. A ANPD multou empresas em 2024 por logs indefinidos. Toda coleta de dado de menor precisa ter purpose limitation explícito.
- Moderação centralizada como afterthought. O Discord tem 200+ milhões de usuários e ainda depende de moderadores voluntários. O custo de retrofit é brutal — é o que está pagando agora.
O que esperar do TAC e por que devs devem acompanhar
Um Termo de Ajustamento de Conduta não é só papelada jurídica. Ele vira especificação técnica com prazos. Quando o Discord assinar (se assinar), teremos obrigações concretas — provavelmente implementação de: estimativa de idade em tempo de signup, revisão dos algoritmos de recomendação para públicos jovens, painel de transparência com a ANPD, e canais de denúncia com SLA. Tudo isso impacta API, banco, produto.
Na minha visão, o precedente aqui é mais importante que o caso isolado. Se o TAC sair, abre caminho para que o mesmo tratamento seja aplicado a Twitch, Roblox, Telegram e qualquer plataforma com presença massiva de menores no Brasil. Se você trabalha com produto, preste atenção: o custo de adicionar moderação robusta no Mês 1 é 5x menor que retrofitar no Mês 36.
FAQ — perguntas reais que devs fazem sobre isso
Verificação de idade por biometria facial viola a LGPD?
Não necessariamente. O que viola é tratar dado biométrico de menor sem base legal específica, sem finalidade declarada e sem retenção limitada. Se feito on-device (inferência local, sem upload), o risco cai bastante. O STJ já se manifestou nesse sentido em casos de autenticação bancária.
Qual a diferença prática entre TAC e multa?
TAC é acordo: você se compromete a corrigir em prazo e evita a multa. Multa é punição após processo administrativo. Para empresas, TAC quase sempre é melhor — mas o custo de compliance continua existindo, só é distribuído no tempo.
Como detectar conta de menor sem verificação documental?
Padrões comportamentais: horário de uso (escola), vocabulário, velocidade de digitação, engajamento com certos tipos de servidor. É heurístico, gera falsos positivos, mas reduz a superfície. Discord já faz parte disso internamente, pelo que se sabe.
Se eu tenho um SaaS com chat, preciso me preocupar com menores?
Se seu SaaS é B2B puro, menor risco. Se tem qualquer canal público ou comunidade aberta, sim. A tendência mundial (EUA com COPPA 2.0, UK com Age Appropriate Design Code) é regulação crescente. Planeje assumindo que seu app será escaneado por menores eventualmente.
O Discord vai sair do Brasil?
Improvável. Saiu do Irã em 2024 por sanções, mas o Brasil é mercado relevante demais. O mais provável é aceitar o TAC e ajustar a plataforma — caro, mas menos caro que perder 30 milhões de usuários.
Esse é um daqueles temas onde a engenharia precisa sair da bolha técnica e ler o regulatório com a mesma seriedade que lê um RFC. Quando o fizer, vai perceber que muito do que监管部门 cobra já é boa prática de segurança — só nunca foi priorizado no backlog. Quer se aprofundar? Eu costumo destrinchar casos como esse no meu blog, com mais código e menos juridiquês.
Gostou? Me segue no GitHub e deixa um comentário se tiver dúvida ou quiser aprofundar algum ponto.