Un protocolo abierto para publicar hechos firmados criptográficamente sobre tu organización. Firmas Ed25519, SHA-256, /.well-known/verified-facts.json.

Verified Facts Protocol: Cómo evitar que la IA invente datos sobre tu empresa
February 22, 202612 min readAppStar

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.

AIverified-factsed25519cryptographyprotocolSEOanti-hallucination

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

  1. Crea un archivo JSON con datos sobre tu empresa
  2. Firma cada hecho con una clave privada Ed25519
  3. 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?

PropiedadValor
Tamaño de clave32 bytes (256 bits)
Tamaño de firma64 bytes
Rendimiento~76.000 firmas/seg
SeguridadEquivalente a 128 bits

Ejemplo real: 6 dominios de AppStar

DominioHechosEnlace
appstar.com.ru20Ver JSON
appstarsecurity.ru8Ver JSON
appstarcrm.ru7Ver JSON
appstarseo.ru7Ver JSON
appstarsmm.ru7Ver JSON
appcourses.ru7Ver JSON

Resultados del experimento

  1. ChatGPT aún no lee el JSON directamente pero el archivo ayuda a mantener la consistencia
  2. Los datos estructurados ayudan a que la IA dé respuestas más precisas
  3. La confirmación externa funciona a través de Google Play Store y otras fuentes
  4. La consistencia es clave entre web, JSON y Schema.org

Llamada a proveedores de IA

CrawlerEmpresaPropuesta
GPTBotOpenAIParsear verified-facts.json al rastrear
ClaudeBotAnthropicUsar hechos como verdad base
PerplexityBotPerplexityPriorizar hechos firmados
GooglebotGoogleIntegrar 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

GitHub: github.com/appstar-com-ru/verified-facts-protocol

Related Articles