Aller au contenu principal
Alethea Protocol

Exemple minimal

Un exemple, parmi tous les possibles.

Cette démo n'est pas le protocole, le protocole est une spec. C'est un exemple minimal de ce qu'un builder pourrait livrer par dessus. Elle couvre les empreintes de contenu, la partie technique la plus difficile.

Deux étapes. Signer un contenu, puis le vérifier. La vérification accepte un upload de fichier ou une URL publique, même action, deux entrées.

Périmètre de la démo

Cette démo couvre le calcul de pHash et le matching robuste aux recompressions et trims vidéo. Elle ne câble pas le KYC, la signature cryptographique, ni l'écriture on-chain. Le registre est ici un fichier JSON, réinitialisé régulièrement. C'est volontaire : nous montrons la partie technique la plus difficile, le reste relève de l'intégration produit et dépend du builder.

Pour comprendre comment livrer un produit complet, voir Construire avec Alethea.

01SIGN

Create a signature

Sign a content into the demo registry. The hashes are computed server-side from your uploaded file, then stored in a shared JSON registry for this public demo.

png, jpg, webp, gif, mp4, mov, webm. Max 50 MB.

In the full protocol, this would be a cryptographic signature bound to a verified identity (eIDAS / NIST / ISO). Here, free text for demonstration.

02VERIFY

Check if a content matches a signature

Two ways to feed the verifier: upload a file (the same one you just signed, or a recompressed version), OR paste a public URL and the verifier downloads it. Either way, perceptual matching looks for the closest signature in the registry.

Same formats as step 01. Try a recompressed, resized, or trimmed version of the file you signed to see perceptual matching at work.

Direct image/video link, or X / YouTube / Instagram public page (download via yt-dlp).

Hamming distance between pHashes. 0 = strictly identical, 8 = tolerates recompressions and resizes, 16+ = permissive (false positives possible).

Comment ça marche

  1. 1Vous chargez un contenu (image ou vidéo). L'API calcule un ou plusieurs pHash via imagehash.phash. Pour les vidéos, ffmpeg extrait une frame par seconde, chaque frame est hashée.
  2. 2Le signataire (label libre dans la démo, identité vérifiée dans la spec complète) est lié à la liste de hashes et au timestamp, écrit dans le registre.
  3. 3À la vérification, le même calcul tourne sur le contenu soumis. L'algorithme cherche le meilleur match dans le registre via une fenêtre glissante (tolérant aux trims, ré-encodages, redimensionnements).
  4. 4Si la distance de Hamming moyenne entre le pHash soumis et le pHash enregistré est sous le seuil (8 par défaut), il y a match. Sinon, pas de match.