Papatzis Spotter V3: Όταν η ΠΛΗ10 σου δίνει το 'Κλειδί' για το AI-Forensics

PUBLISHED: 2026-05-025 MIN READ

Current Session Stats

Excitement Level: 110%
Caffeine
12 cups
⏱️
Time Spent
60 hours

Τι είναι ο Αλγόριθμος Jaccard Similarity;

Ο αλγόριθμος Jaccard Similarity είναι ένα μαθηματικό εργαλείο που χρησιμοποιείται για τη μέτρηση της ομοιότητας μεταξύ δύο συνόλων δεδομένων. Στην πράξη, συγκρίνει πόσα κοινά στοιχεία έχουν δύο ομάδες σε σχέση με το συνολικό πλήθος των στοιχείων τους.

Φαντάσου ότι έχεις δύο σακούλες με χρωματιστές μπίλιες. Η Jaccard μετράει:

  1. Πόσες μπίλιες είναι ακριβώς ίδιες και στις δύο σακούλες (το "Κοινό Έδαφος").
  2. Πόσες μπίλιες υπάρχουν συνολικά και στις δύο σακούλες (το "Συνολικό Έδαφος").

Αν διαιρέσεις το "Κοινό" με το "Συνολικό", παίρνεις ένα νούμερο από το 0 έως το 1. Όσο πιο κοντά στο 1, τόσο πιο "αντίγραφο" είναι η μία σακούλα της άλλης. Στον Papatzis Spotter, οι "μπίλιες" είναι τα μοτίβα του κώδικα. Όταν η AI παράγει κώδικα, χρησιμοποιεί τις ίδιες "στατιστικές μπίλιες" ξανά και ξανά, δημιουργώντας μια αφύσικη ομοιότητα που ο αλγόριθμος εντοπίζει αμέσως.

⚠️Robotic Uniformity

Ένας άνθρωπος, όσο κι αν προσπαθήσει, δεν μπορεί να γράψει 10 διαφορετικά modules με την ίδια στατιστική υπογραφή. Η AI όμως, το κάνει κατά συρροή.

Η Ιστορία: Η Εκφώνηση που έγινε Εμμονή

Υπάρχουν στιγμές στις σπουδές που μια εργασία είναι απλά... μια εργασία. Και υπάρχουν στιγμές που ένα λάθος στην εκφώνηση, μια διευκρίνιση ενός καθηγητή και μαύρους κύκλους κάτω από τα μάτια (λόγω αϋπνίας), γεννούν κάτι πολύ μεγαλύτερο.

Όλα ξεκίνησαν στην 4η Γραπτή Εργασία της ΠΛΗ10 στο ΕΑΠ. Το τελευταίο θέμα ζητούσε την υλοποίηση του αλγορίθμου Jaccard Similarity. Όμως, υπήρχε ένα "δημιουργικό" πρόβλημα: η εκφώνηση ήταν λίγο μπερδεμένη, με το παράδειγμα να μην "κουμπώνει" με τις οδηγίες υλοποίησης. Μετά από συνάντηση με τον καθηγητή και τις απαραίτητες διευκρινίσεις, η θεωρία έλαμψε.

Αλλά για μένα, δεν ήταν πια μια άσκηση για τον βαθμό. Ήταν η απάντηση στο Technical Gaslighting που αντιμετωπίζουμε καθημερινά: όταν κάποιος προσπαθεί να σε πείσει ότι έγραψε ο ίδιος έναν κώδικα που "φωνάζει" AI από χιλιόμετρα. Ήταν η απάντηση στο πρόβλημα που με παίδευε στον Papatzis Spotter: Πώς αποδεικνύεις μαθηματικά ότι ο κώδικας είναι "ρομποτικά όμοιος";

Μετά από ατελείωτες ώρες "καψίματος" και ενώ η ίδια η εργασία περιμένει ακόμα στο desktop μου να παραδοθεί, ο Παπατζής αναβαθμίστηκε στην Έκδοση 3.5: The Jaccard Infinity.

Από το "Εμπειρικό" στο "Μαθηματικό"

Στις εκδόσεις V1 και V2, ο Papatzis Spotter βασιζόταν κυρίως σε Heuristics (εμπειρικούς κανόνες). Έψαχνε για "ύποπτα" patterns και συγκεκριμένες δομές που "φώναζαν" AI Slop. Δούλευε καλά, αλλά του έλειπε η μαθηματική στιβαρότητα. Το V3 αλλάζει το παιχνίδι, περνώντας στο επίπεδο του Forensic Analysis.

Η "Τριπλή Απειλή" & το Semantic Echo Mapping

Ο αλγόριθμος Jaccard εφαρμόζεται πλέον σε τρία επίπεδα ταυτόχρονα, αλλά η πραγματική καινοτομία είναι το Semantic Echo Mapping:

  1. Token-Based Jaccard: Συγκρίνουμε το λεξιλόγιο του κώδικα (keywords, operators, naming conventions).
  2. Structural (AST) Jaccard: Με το Tree-Sitter, αναλύουμε το δέντρο της λογικής. Ακόμα κι αν αλλάξεις τα ονόματα των μεταβλητών, η "γεωμετρία" της AI παραμένει η ίδια.
  3. Semantic Echoes (Cosine Similarity): Εδώ χρησιμοποιούμε Cosine Similarity για να εντοπίσουμε "σημαντικές ομοιότητες" στη λογική των συναρτήσεων. Αν η ομοιότητα ξεπερνά το 55%, ο Παπατζής "ακούει" την ηχώ της μηχανής.
  4. Shannon Entropy: Μετράμε τη στατιστική εντροπία του κώδικα. Ο AI κώδικας είναι συχνά "στατιστικά αποστειρωμένος" (πολύ χαμηλή εντροπία), ενώ ο ανθρώπινος κώδικας έχει φυσικό "θόρυβο" και ασυνέπειες.

Exponential Weighting & Dashboard 2.0

Ένα από τα "διαμάντια" του V3.5 είναι ο αλγόριθμος βαθμολόγησης. Χρησιμοποιούμε Exponential Weighting (Score = Severity ^ 1.4) ώστε τα σοβαρά AI patterns να "χτυπάνε" πολύ πιο δυνατά.

Το νέο UI/UX φέρνει μια Industrial αισθητική:

  • Radar Charts: Οπτική αναπαράσταση της "επίθεσης" (Εντροπία, Δομή, Σχόλια).
  • Batch Audit: Μαζικό "Forensic Sweep" σε ολόκληρους φακέλους.
  • Mentor Panel: Live συμβουλές για το πώς να κάνεις τον κώδικά σου πιο "ανθρώπινο".

Forensic Hallucinations: Όταν η AI σου "πουλάει παπά"

Το πιο εντυπωσιακό εύρημα της έκδοσης V3 είναι η ικανότητά της να εντοπίζει ψεύτικα metrics. Η AI, στην προσπάθειά της να φανεί πειστική και "επιστημονική", συχνά εφευρίσκει μεταβλητές όπως ai_confidence_score ή accuracy_metric που δεν έχουν καμία απολύτως λειτουργία στον κώδικα. Είναι καθαρό "eye-candy" για να ξεγελάσει τον διορθωτή.

Ο Papatzis Spotter πλέον "ξεμπροστιάζει" αυτές τις τακτικές:

  • Fake Metric Detection: Εντοπίζει hallucinated μεταβλητές που υπάρχουν μόνο για εντυπωσιασμό.
  • Severity Badges: Ανάλογα με το score, το εργαλείο σου "κολλάει" το ανάλογο label. Αν το score σου είναι χαμηλό αλλά ύποπτο, συγχαρητήρια, μόλις πήρες το badge του "Petty Scammer".
batch_audit_v3
$

papatzis audit ./ge4_submission [SCANNING] 12 files detected... [JACCARD] Cross-file similarity: 0.89 (CRITICAL) [ENTROPY] Low variation in 'math_utils.c'

RESULT: 84% AI Slop Detected. ADVICE: Too much robotic uniformity between modules.

Jaccard: Το "Όπλο" του Cybersecurity

Η δύναμη της Jaccard ξεπερνάει το AI Detection. Στον κόσμο της κυβερνοασφάλειας είναι ένα από τα πιο ισχυρά εργαλεία για Forensic Analysis:

  • Malware Variant Detection: Εντοπισμός νέων ιών που είναι "παραλλαγές" παλιότερων.
  • Threat Intelligence: Σύνδεση διαφορετικών επιθέσεων μέσω κοινών "αποτυπωμάτων" στον κώδικα.
  • Vulnerability Research: Εντοπισμός ευπαθειών που "μοιάζουν" με γνωστά bugs σε τεράστιες βάσεις δεδομένων.

Συμπέρασμα: Η Μαστοριά της Αντικειμενικότητας

Η 4η εργασία της ΠΛΗ10 κατέληξε να μου δώσει το πιο ισχυρό "όπλο" στη φαρέτρα του Papatzis Spotter. Το V3.5 είναι η απόδειξη ότι όταν η ακαδημαϊκή θεωρία συναντά το πείσμα ενός προγραμματιστή, το αποτέλεσμα είναι αντικειμενική επιστήμη. Η εργασία μου για το ΕΑΠ μπορεί να μην έχει παραδοθεί... ακόμα, αλλά ο "Παπατζής" έχει ήδη πάρει το δικό του πτυχίο στο AI Detection.

Μην αφήνεις την AI να γράφει για σένα. Μάθε να την ελέγχεις.


Γίνε μέρος της επανάστασης κατά του Slop στο GitHub.