Code Fingerprints: Disentangled Attribution of LLM-Generated Code

Il paper presenta DCAN, una rete di attribuzione che disentangola le informazioni semantiche da quelle stilistiche per identificare con successo quale specifico modello LLM ha generato un frammento di codice, supportato da un nuovo dataset su larga scala per la valutazione.

Jiaxun Guo, Ziyuan Yang, Mengyu Sun, Hui Wang, Jingfeng Lu, Yi Zhang

Pubblicato 2026-03-05
📖 5 min di lettura🧠 Approfondimento

Each language version is independently generated for its own context, not a direct translation.

Ecco una spiegazione semplice e creativa del paper "Code Fingerprints", immaginata come se stessi raccontando una storia a un amico.

🕵️‍♂️ L'Investigatore del Codice: Chi ha scritto questo programma?

Immagina di essere un detective. Ti viene consegnato un foglio con un codice di programmazione scritto da un'intelligenza artificiale (una di quelle che scrivono codice, come ChatGPT o Claude). Il problema? Non c'è la firma dell'autore.

Oggi, molti ricercatori si limitano a chiedersi: "È stato scritto da un umano o da un robot?". Ma questo non basta più. Se c'è un bug, una falla di sicurezza o un problema di copyright, dobbiamo sapere esattamente quale robot lo ha scritto. È stato ChatGPT? O forse DeepSeek? O Qwen?

Questo paper introduce un nuovo metodo per risolvere questo mistero, chiamandolo DCAN (una sorta di "super-detective" per il codice).


🧩 Il Problema: Tutti i robot risolvono lo stesso modo (quasi)

Se chiedi a quattro robot diversi di risolvere un problema matematico (ad esempio, "calcola la somma dei numeri da 1 a 100"), tutti ti daranno la risposta giusta. È come se quattro cuochi diversi dovessero preparare una pasta al pomodoro: il risultato finale (il sapore) è lo stesso, ma...

  • Il Cuoco A usa sempre il coltello in modo molto preciso.
  • Il Cuoco B taglia le cipolle in modo leggermente diverso.
  • Il Cuoco C scrive le ricette con parole molto specifiche.
  • Il Cuoco D usa sempre lo stesso tipo di pentola.

Questi piccoli dettagli sono le "impronte digitali" (o fingerprints) del robot. Il problema è che, quando guardi il piatto finito (il codice), il sapore (la logica del programma) è così forte che ti copre i dettagli del modo in cui è stato cucinato.

🧠 La Soluzione: Il "Separatore di Pensieri"

Gli autori del paper hanno creato un sistema intelligente che fa una cosa magica: separa il "cosa" dal "come".

Immagina di avere un bicchiere di succo di frutta misto.

  • Il succo è il significato del codice (la logica, cosa fa il programma). Questo è uguale per tutti i robot che risolvono lo stesso compito.
  • Il gusto specifico è lo stile del robot (come scrive le variabili, quanto usa i commenti, come indenta le righe).

Il sistema DCAN agisce come un filtro magico:

  1. Prende il codice.
  2. Estrae il "succo" (la logica comune) e lo mette da parte, dicendogli: "Tu non ci servi per capire chi è l'autore".
  3. Tiene solo il "gusto specifico" (lo stile unico).
  4. Confronta questo "gusto" con una libreria di stili noti (ChatGPT, Claude, ecc.) per dire: "Ehi! Questo sapore assomiglia esattamente a quello di DeepSeek!".

📊 La Prova: Hanno creato un laboratorio gigante

Per insegnare al loro detective a riconoscere questi stili, gli autori hanno creato il primo grande "laboratorio di prova" al mondo:

  • Hanno chiesto a 4 robot famosi (DeepSeek, Claude, Qwen, ChatGPT) di scrivere 91.000 programmi.
  • Li hanno fatti scrivere in 4 lingue diverse (Python, Java, C, Go).
  • Li hanno fatti scrivere in due modi: senza note (solo codice) e con note (codice con spiegazioni scritte).

È come se avessero fatto cucinare a questi 4 cuochi 91.000 piatti diversi, per vedere se riuscivano a riconoscere chi aveva cucinato cosa solo guardando il piatto.

🏆 I Risultati: Il detective è infallibile

I risultati sono stati sorprendenti:

  1. Ogni robot ha un "personaggio" unico: Anche se risolvono lo stesso problema, ChatGPT tende a essere più verboso, mentre Qwen è più conciso. Claude usa nomi di variabili molto descrittivi, mentre DeepSeek ama certe strutture specifiche.
  2. Il metodo funziona benissimo: Il sistema DCAN ha indovinato l'autore corretto nel 93-98% dei casi (a seconda delle condizioni). È molto meglio dei metodi precedenti.
  3. Funziona anche senza note: Anche se togli i commenti (le spiegazioni scritte), il sistema riesce a riconoscere l'autore guardando solo la struttura del codice. Ma se ci sono i commenti, l'accuratezza sale quasi al 100%, perché anche il modo di scrivere le spiegazioni è unico per ogni robot.
  4. È intelligente: Se addestri il sistema su una lingua (es. Python) e lo fai testare su un'altra (es. Java), riesce ancora a riconoscere l'autore! Questo significa che ha imparato lo "stile" del robot, non solo la grammatica della lingua.

💡 In sintesi

Questo paper ci dice che ogni Intelligenza Artificiale ha una "firma" invisibile nel modo in cui scrive codice, proprio come ogni umano ha una calligrafia unica.

Il sistema proposto è come un rilevatore di impronte digitali che, invece di guardare le dita, guarda il modo in cui il codice è "pensato" e "scritto", separando la logica (che è uguale per tutti) dallo stile (che è unico per ogni robot). Questo è fondamentale per la sicurezza, per capire chi è responsabile di un errore e per rispettare le regole sul copyright nel mondo del software.