Salta al contenuto principale

AI Transparency Ledger — come funziona

Un registro aperto, append-only e verificabile che certifica per ogni articolo e tool di federicocalo.dev la percentuale AI-generated vs human-authored. Pensato come estensione dell'E-E-A-T di Google e come conformità anticipata all'art. 50 del Regolamento UE 2024/1689 (AI Act).

Perché un ledger di trasparenza?

  • Trust moltiplicatore. Il 77% dei lettori che identifica AI-generated content senza disclosure dichiara sfiducia permanente nel publisher (Edelman Trust Barometer 2025).
  • Conformità anticipata AI Act. L'art. 50 del Regolamento UE 2024/1689 impone, dal 2 agosto 2026, il labeling machine-readable di contenuti AI-generated. Il ledger è già compliant.
  • AI citation authority. Perplexity, ChatGPT e Claude iniziano a pesare la provenance dei contenuti. Dichiarare onestamente human vs AI contribution è un ranking signal emergente.

Cosa contiene una entry

Ogni entry del ledger è un record JSON firmato hash-chain. I campi principali:

aiGeneratedPct
Percentuale (0–100) di contributo AI stimata onestamente. 0 = 100% umano. 100 = AI grezzo, zero revisione.
aiProvider
Fornitore/modello usato (es. "cloudflare-llama-3-8b", "claude-opus-4-7"). Null se la generazione è puramente umana.
humanReviewer
Persona che ha validato il contenuto prima della pubblicazione. Default: Federico Calò.
promptHash
SHA-256 del prompt usato — non il prompt stesso (privacy). Permette la verifica: "dato il prompt X, il suo hash coincide?".
outputHash
SHA-256 del contenuto finale pubblicato. Consente verificare che il contenuto letto oggi corrisponde a quello dichiarato.
entryHash
SHA-256 di outputHash || previousEntryHash || generationDate. È l'anello della catena.
previousEntryHash
Link al precedente entry dello stesso contenuto. Se cambio idea e riscrivo un articolo, creo una nuova entry che punta a quella vecchia — la storia è immutabile.

Come verificare un'entry

  1. Fai GET /api/v1/transparency/article/mio-articolo-slug per scaricare la catena completa.
  2. Scarica il contenuto pubblicato e calcolane SHA-256. Deve coincidere con l'ultimo outputHash.
  3. Per ogni entry: calcola SHA-256(outputHash || previousEntryHash || generationDate) e confronta con entryHash. Se uno qualsiasi dei campi è stato modificato a posteriori, la catena si rompe.
# Esempio verifica chain (bash + jq + openssl)

curl -s https://federicocalo.dev/api/v1/transparency/article/mio-slug | jq .data > chain.json

# Verifica outputHash per ogni entry
jq -r '.[].outputHash' chain.json

# Verifica entryHash
jq -r '.[] | "\(.outputHash)\(.previousEntryHash // "")\(.generationDate)"' chain.json \
  | while read concat; do echo -n "$concat" | sha256sum; done

Policy editoriale

  • Ogni articolo pubblicato dopo il 2026-04-22 ha obbligatoriamente una entry.
  • Gli articoli precedenti sono stati backfillati con aiGeneratedPct = 0 (stima conservativa). Federico correggerà manualmente i casi in cui l'AI è stata usata.
  • Una modifica significativa (≥20% del testo) produce una nuova entry. Refusi, link broken, piccoli update SEO non generano nuove entry.
  • La stima di aiGeneratedPct è onesta ma soggettiva. Non pretende di essere metrica scientifica.

FAQ

Il ledger è pubblico?

Sì. Chiunque può leggere qualsiasi entry via API pubblica. Il write-access è riservato a Federico (admin-only).

È un Merkle tree come una blockchain?

No — per l'MVP è un single-linked hash chain (più semplice, sufficiente per il caso d'uso). Una versione futura potrebbe evolvere verso Merkle tree + anchoring su blockchain pubblica (Bitcoin OpenTimestamps, Ethereum L2).

Come posso contribuire o segnalare inesattezze?

Scrivi a [email protected] con oggetto "Transparency Ledger — [titolo]". Dopo la creazione del sistema lead, useremo un canale dedicato.

È conforme GDPR?

Sì. Il ledger registra hash dei prompt (non il contenuto), modello AI usato, nome del reviewer. Nessun dato personale di utenti.