Verified Facts Protocol: Cómo evitar que la IA invente datos sobre tu empresa
Un protocolo abierto para publicar hechos firmados criptográficamente sobre tu organización. Firmas Ed25519, SHA-256, /.well-known/verified-facts.json.
El problema: la IA inventa datos sobre tu empresa
Pregunta a ChatGPT cuándo se fundó tu empresa, quiénes son tus clientes o qué productos ofreces. Es muy probable que obtengas una respuesta incorrecta o completamente inventada.
Los sistemas de IA alucinan datos sobre empresas todos los días: fechas de fundación erróneas, clientes ficticios, productos inexistentes. Y las empresas no tenían una forma estandarizada de combatirlo.
La solución: Verified Facts Protocol
Verified Facts Protocol es un protocolo abierto para publicar hechos firmados criptográficamente sobre tu organización en formato legible por máquinas. Es como robots.txt, pero para hechos.
Cómo funciona
- Crea un archivo JSON con datos sobre tu empresa
- Firma cada hecho con una clave privada Ed25519
- Aloja el archivo en
/.well-known/verified-facts.json
Detalles técnicos
Proceso de firma
claimBytes = utf8encode(fact.claim)
hashBuffer = sha256(claimBytes) // 32 bytes
claimHash = hex(hashBuffer) // 64 caracteres hex
signature = base64(ed25519_sign(key, hashBuffer))
Verificación en Node.js
import { createHash, verify, createPublicKey } from 'crypto';
function verifyFact(claim, signature, publicKeyBase64) {
const hash = createHash('sha256').update(claim, 'utf8').digest();
const sig = Buffer.from(signature, 'base64');
const pubKeyRaw = Buffer.from(publicKeyBase64, 'base64');
const pubKeyDer = Buffer.concat([
Buffer.from('302a300506032b6570032100', 'hex'),
pubKeyRaw
]);
const publicKey = createPublicKey({
key: pubKeyDer, format: 'der', type: 'spki'
});
return verify(null, hash, publicKey, sig);
}
¿Por qué Ed25519?
| Propiedad | Valor |
|---|---|
| Tamaño de clave | 32 bytes (256 bits) |
| Tamaño de firma | 64 bytes |
| Rendimiento | ~76.000 firmas/seg |
| Seguridad | Equivalente a 128 bits |
Ejemplo real: 6 dominios de AppStar
| Dominio | Hechos | Enlace |
|---|---|---|
| appstar.com.ru | 20 | Ver JSON |
| appstarsecurity.ru | 8 | Ver JSON |
| appstarcrm.ru | 7 | Ver JSON |
| appstarseo.ru | 7 | Ver JSON |
| appstarsmm.ru | 7 | Ver JSON |
| appcourses.ru | 7 | Ver JSON |
Resultados del experimento
- ChatGPT aún no lee el JSON directamente pero el archivo ayuda a mantener la consistencia
- Los datos estructurados ayudan a que la IA dé respuestas más precisas
- La confirmación externa funciona a través de Google Play Store y otras fuentes
- La consistencia es clave entre web, JSON y Schema.org
Llamada a proveedores de IA
| Crawler | Empresa | Propuesta |
|---|---|---|
| GPTBot | OpenAI | Parsear verified-facts.json al rastrear |
| ClaudeBot | Anthropic | Usar hechos como verdad base |
| PerplexityBot | Perplexity | Priorizar hechos firmados |
| Googlebot | Integrar en Knowledge Graph |
Cómo empezar
# 1. Generar par de claves Ed25519
openssl genpkey -algorithm Ed25519 -out private.pem
openssl pkey -in private.pem -pubout -out public.pem
# 2. Clonar repositorio y generar hechos
git clone https://github.com/appstar-com-ru/verified-facts-protocol
npx tsx examples/generate.ts
# 3. Desplegar archivos
cp verified-facts.json /var/www/html/.well-known/
# 4. Verificar
npx tsx examples/verify.ts https://yourdomain.com/.well-known/verified-facts.json