Un protocole ouvert pour publier des faits signés cryptographiquement sur votre organisation. Signatures Ed25519, SHA-256, /.well-known/verified-facts.json.

Verified Facts Protocol: Comment empêcher l'IA d'inventer des faits sur votre entreprise
February 22, 202612 min readAppStar

Verified Facts Protocol: Comment empêcher l'IA d'inventer des faits sur votre entreprise

Un protocole ouvert pour publier des faits signés cryptographiquement sur votre organisation. Signatures Ed25519, SHA-256, /.well-known/verified-facts.json.

AIverified-factsed25519cryptographyprotocolSEOanti-hallucination

Le problème : l'IA invente des faits sur votre entreprise

Demandez à ChatGPT quand votre entreprise a été fondée, qui sont vos clients ou quels produits vous proposez. Il y a de fortes chances que vous obteniez une réponse erronée, voire entièrement fabriquée.

Les systèmes d'IA hallucinent des faits sur les entreprises chaque jour : dates de création erronées, listes de clients fictives, produits inexistants.


La solution : Verified Facts Protocol

Verified Facts Protocol est un protocole ouvert pour publier des faits signés cryptographiquement sur votre organisation dans un format lisible par les machines. C'est comme robots.txt, mais pour les faits.

Comment ça marche

  1. Créez un fichier JSON avec les faits sur votre entreprise
  2. Signez chaque fait avec une clé privée Ed25519
  3. Hébergez le fichier à /.well-known/verified-facts.json

Détails techniques

Processus de signature

claimBytes = utf8encode(fact.claim)
hashBuffer = sha256(claimBytes)          // 32 octets
claimHash  = hex(hashBuffer)             // 64 caractères hex
signature  = base64(ed25519_sign(key, hashBuffer))

Vérification 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);
}

Pourquoi Ed25519 ?

PropriétéValeur
Taille de clé32 octets (256 bits)
Taille de signature64 octets
Performance~76 000 signatures/sec
SécuritéÉquivalent 128 bits

Exemple concret : 6 domaines AppStar

AppStar a déployé le protocole sur 6 domaines avec 56 faits vérifiés.

DomaineFaitsLien
appstar.com.ru20Voir JSON
appstarsecurity.ru8Voir JSON
appstarcrm.ru7Voir JSON

Résultats de l'expérience

  1. ChatGPT ne lit pas encore le JSON directement mais la cohérence des données aide
  2. Les données structurées améliorent la précision des réponses IA
  3. La confirmation externe fonctionne via Google Play Store et d'autres sources
  4. La cohérence est essentielle entre le site web, le JSON et Schema.org

Comment démarrer

git clone https://github.com/appstar-com-ru/verified-facts-protocol
npx tsx examples/generate.ts
cp verified-facts.json /var/www/html/.well-known/
npx tsx examples/verify.ts https://yourdomain.com/.well-known/verified-facts.json

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

Related Articles