ΖωντανάΚαθεστώς NEUTRALBTC $64,210 -2.1%F&G 71 απληστίαΠρωινή αναφορά20/9Ενημέρωση 13:52ανανέωση σε 0:30
Εκπαίδευση

Η υπογραφή που αδειάζει το πορτοφόλι αργότερα: πώς λειτουργούν οι απάτες airdrop και approval

Όταν υπογράφετε ένα "approval" στο πορτοφόλι, δεν δίνετε συγκατάθεση για μία συναλλαγή, αλλά συχνά επιτρέπετε σε ένα ξένο συμβόλαιο να κινεί το token σας, ακόμη και μία εβδομάδα ή έναν μήνα αργότερα. Το κλειδί για την άμυνα είναι να μπορείτε να διαβάζετε και να ανακαλείτε αυτές τις εξουσιοδοτήσεις.

Otto
OttoΣύνταξη τεχνητής νοημοσύνης
Έλεγχος γεγονότων
Δημοσιεύτηκε

Τι συμβαίνει στην πραγματικότητα όταν "υπογράφετε" κάπου;

Φανταστείτε ότι στη διεύθυνσή σας φτάνει ένα token που δεν ζητήσατε. Στο πορτοφόλι θα δείτε ίσως "1.000 $REWARD" και μαζί έναν ιστότοπο που υπόσχεται ότι μπορείτε να το παραλάβετε με λίγα κλικ. Ανοίγετε τον ιστότοπο, συνδέετε το πορτοφόλι και πατάτε το κουμπί "Claim". Εμφανίζεται ένα παράθυρο που ζητά υπογραφή. Και εδώ κρίνονται όλα.

Στο crypto υπάρχουν δύο διαφορετικοί τύποι "υπογραφής", που μοιάζουν σχεδόν ίδιοι, αλλά σημαίνουν κάτι διαφορετικό:

  • Η συναλλαγή είναι μία εφάπαξ ενέργεια. Στέλνετε κάτι, ανταλλάσσετε κάτι, και τελείωσε.
  • Το approval (έγκριση) είναι μια μόνιμη εξουσιοδότηση. Λέτε στο έξυπνο συμβόλαιο: "από τώρα επιτρέπεται να χειρίζεσαι αυτό το token από το πορτοφόλι μου."

Το approval από μόνο του δεν κλέβει τίποτα. Είναι απλώς μια εξουσιοδότηση. Τα χρήματα εξαφανίζονται αργότερα, όταν ο επιτιθέμενος χρησιμοποιήσει αυτή την εξουσιοδότηση, ακόμη και πολύ καιρό αφότου έχετε ξεχάσει προ πολλού τον απατηλό ιστότοπο. Γι' αυτό το ονομάζουμε "υπογραφή που αδειάζει το πορτοφόλι αργότερα".

Πώς μοιάζει συγκεκριμένα μια απάτη approval βήμα προς βήμα;

Ας πάρουμε μια πρότυπη διαδικασία. Τα νούμερα είναι ενδεικτικά, στόχος τους είναι να δείξουν τον μηχανισμό, όχι μια πραγματική περίπτωση.

  1. Στο πορτοφόλι σας φτάνει ένα άγνωστο token, για παράδειγμα "AirdropX". Εμφανίστηκε μόνο του, εσείς δεν κάνατε τίποτα.
  2. Το token στο όνομα ή στην "περιγραφή" του παραπέμπει σε έναν ιστότοπο. Ο ιστότοπος μοιάζει με την επίσημη σελίδα του project.
  3. Πατάτε "Claim reward". Το πορτοφόλι εμφανίζει αίτημα για υπογραφή.
  4. Υπογράφετε. Μόνο που αυτό που υπογράψατε δεν ήταν παραλαβή ανταμοιβής. Ήταν approve ή setApprovalForAll, δηλαδή απεριόριστη εξουσιοδότηση σε ξένο συμβόλαιο να διαχειρίζεται το stablecoin σας ή ολόκληρη τη συλλογή NFT σας.
  5. Δεν συμβαίνει τίποτα αμέσως. Το πορτοφόλι φαίνεται κανονικό.
  6. Τρεις μέρες αργότερα ο επιτιθέμενος καλεί τη συνάρτηση transferFrom και στέλνει το υπόλοιπό σας μακριά. Εσείς βλέπετε μόνο ότι τα tokens χάθηκαν.

Η δεύτερη παραλλαγή είναι οι λεγόμενες phishing υπογραφές τύπου Permit. Εκεί δεν υπογράφετε συναλλαγή, αλλά ένα μήνυμα (η υπογραφή είναι δωρεάν, δεν πληρώνετε τέλος γι' αυτήν). Αυτό ακριβώς είναι ύπουλο: επειδή δεν πληρώνετε για την υπογραφή, σας λείπει εκείνη η στιγμή που στο πορτοφόλι εμφανίζεται η τιμή. Για το τέλος και για το γιατί μια συνηθισμένη συναλλαγή κοστίζει χρήματα, γράφουμε στο γλωσσάρι μας στο λήμμα gas-fee.

Γιατί το "approval" είναι πιο επικίνδυνο από μια απλή μεταφορά;

Επειδή η απλή μεταφορά είναι κλειστή. Στέλνετε δέκα tokens, φεύγουν δέκα tokens, τέλος. Στο approval υπογράφετε ένα εύρος για το μέλλον.

Επιπλέον, πολλές εξουσιοδοτήσεις δίνονται ως απεριόριστες (στην πράξη πρόκειται για τον τεχνικά υψηλότερο δυνατό αριθμό). Αυτό σημαίνει ότι το συμβόλαιο μπορεί να αγγίξει όχι μόνο ό,τι έχετε τώρα, αλλά και ό,τι θα σας έρθει την επόμενη φορά. Όταν σε έναν μήνα στείλετε στην ίδια διεύθυνση τον μισθό σας σε stablecoin, η παλιά εξουσιοδότηση εξακολουθεί να ισχύει και ο επιτιθέμενος μπορεί να τον αντλήσει επίσης.

Το ουσιώδες είναι το εξής: η ύπαρξη ενός approval δεν σημαίνει ακόμη κλοπή. Πολλές νόμιμες εφαρμογές (ανταλλακτήρια, exchanges, πρωτόκολλα δανεισμού) χρειάζονται το approval για την κανονική τους λειτουργία. Το πρόβλημα δεν είναι το approval καθαυτό, το πρόβλημα είναι το approval που δόθηκε σε κάποιον που δεν έχετε λόγο να εμπιστεύεστε, ή το approval που από καιρό δεν χρειάζεστε πλέον και το αφήσατε να κρέμεται.

Πώς να ελέγξετε τις εξουσιοδοτήσεις σας και πώς να τις ανακαλέσετε;

Να ανακαλέσετε (revoke) ένα approval σημαίνει να στείλετε μια νέα συναλλαγή που μειώνει την παλιά εξουσιοδότηση στο μηδέν. Από εκείνη τη στιγμή το συγκεκριμένο συμβόλαιο δεν έχει πλέον δικαίωμα να κινεί το token σας.

Η γενική διαδικασία μοιάζει ως εξής:

Βήμα Τι κάνετε Σε τι να προσέξετε
1 Διαπιστώνετε ποιες εξουσιοδοτήσεις έχει η διεύθυνσή σας Χρησιμοποιήστε ένα εργαλείο που διαβάζει δεδομένα απευθείας από το blockchain βάσει της δημόσιας διεύθυνσής σας. Ποτέ μην εισάγετε πουθενά τη seed φράση ούτε το ιδιωτικό κλειδί.
2 Ελέγχετε τη λίστα Ψάχνετε κυρίως απεριόριστες εξουσιοδοτήσεις και εξουσιοδοτήσεις για συμβόλαια που δεν αναγνωρίζετε.
3 Ανακαλείτε την ύποπτη εξουσιοδότηση Η ανάκληση είναι μια ξεχωριστή συναλλαγή, οπότε γι' αυτήν πληρώνετε τέλος δικτύου.
4 Επαληθεύετε το αποτέλεσμα Μετά την επιβεβαίωση η εξουσιοδότηση θα πρέπει να είναι στο μηδέν.

Δύο πράγματα που είναι τίμιο να ειπωθούν ανοιχτά:

  • Η ανάκληση κοστίζει τέλος. Δεν είναι δωρεάν, επειδή είναι μια πραγματική συναλλαγή στο δίκτυο. Πόσο ακριβώς, εξαρτάται από την τρέχουσα κατάσταση του δικτύου, και αυτό δεν το προβλέπουμε εδώ.
  • Η ανάκληση δεν επιστρέφει ό,τι έχει ήδη κλαπεί. Η ανάκληση της εξουσιοδότησης είναι πρόληψη και σταμάτημα της περαιτέρω άντλησης. Αν ο επιτιθέμενος έχει ήδη στείλει το υπόλοιπο, η ανάκληση δεν το φέρνει πίσω.

Πώς αναγνωρίζετε μια ύποπτη υπογραφή πριν την επιβεβαιώσετε;

Δεν υπάρχει εκατό τοις εκατό οπτικό σημάδι, αλλά μερικά σήματα επαναλαμβάνονται:

  • Το κουμπί υπόσχεται "claim" ή "reward", αλλά το πορτοφόλι δείχνει αίτημα για approve, increaseAllowance ή setApprovalForAll. Αυτό είναι αντίφαση.
  • Η υπογραφή είναι "δωρεάν" και πρόκειται για μήνυμα τύπου Permit, ενώ ο ιστότοπος σας πιέζει να βιαστείτε.
  • Το token που σας οδήγησε στην ενέργεια ήρθε αζήτητο.
  • Η διεύθυνση στην οποία η εξουσιοδότηση παραχωρεί δικαιώματα δεν είναι η διεύθυνση της εφαρμογής που πραγματικά χρησιμοποιείτε.

Τα σύγχρονα πορτοφόλια σήμερα προσπαθούν να εμφανίσουν προειδοποιήσεις σε επικίνδυνες υπογραφές και να μεταφράσουν το τεχνικό περιεχόμενο σε ανθρώπινη γλώσσα. Πάρτε το ως βοήθεια, όχι ως εγγύηση. Η απόφαση να υπογράψετε παραμένει δική σας.

Τι θα πρέπει να μπορείτε τώρα, και τι παραμένει αβέβαιο

Μετά από αυτό το μάθημα θα πρέπει να ξεχωρίζετε τη διαφορά μεταξύ μιας εφάπαξ συναλλαγής και ενός μόνιμου approval, να κατανοείτε γιατί το πορτοφόλι μπορεί να αδειάσει με καθυστέρηση, και να γνωρίζετε ότι το approval μπορεί να ελεγχθεί και να ανακληθεί με ξεχωριστή συναλλαγή.

Τι παραμένει αβέβαιο και τι κανείς δεν θα σας υποσχεθεί τίμια:

  • Πόσο θα κοστίσει η ανάκληση. Το τέλος εξαρτάται από το δίκτυο τη δεδομένη στιγμή, δεν αναφέρουμε εδώ κανένα σταθερό ποσό.
  • Αν ένα συγκεκριμένο συμβόλαιο είναι ή δεν είναι απατηλό. Το εργαλείο θα σας δείξει σε ποιον επιτρέψατε τι, αλλά δεν προσθέτει αυτόματα την ετικέτα "κλέφτης" σε αυτό. Η αξιολόγηση της αξιοπιστίας είναι πάντα δική σας.
  • Αν η ανάκληση θα βοηθήσει εγκαίρως. Αν ο επιτιθέμενος κατάχρησε την εξουσιοδότηση πριν προλάβετε να την ανακαλέσετε, η πρόληψη δεν λειτουργεί πλέον.

Αυτό είναι ένα εκπαιδευτικό μάθημα από το charliedesk Classroom. Δεν σας λέμε τι να αγοράσετε ή να πουλήσετε. Δείχνουμε πώς λειτουργεί ο μηχανισμός, ώστε να αποφασίζετε με ανοιχτά μάτια.

Τι ξέρουμε και τι όχι

  • ΑποδεδειγμένοΤο approval είναι μόνιμη εξουσιοδότηση σε έξυπνο συμβόλαιο να διαχειρίζεται ένα token, όχι μια εφάπαξ μεταφορά
  • ΑποδεδειγμένοΤο πορτοφόλι σε μια απάτη approval μπορεί να αδειάσει με καθυστέρηση, επειδή ο επιτιθέμενος χρησιμοποιεί την εξουσιοδότηση αργότερα μέσω transferFrom
  • ΑποδεδειγμένοΟι υπογραφές τύπου Permit μπορούν να υπογραφούν χωρίς πληρωμή τέλους δικτύου, γεγονός που αυξάνει τον κίνδυνο να περάσουν απαρατήρητες
  • ΑποδεδειγμένοΗ ανάκληση ενός approval είναι ξεχωριστή συναλλαγή, για την οποία πληρώνεται τέλος δικτύου
  • ΑποδεδειγμένοΗ ανάκληση δεν επιστρέφει τα κεφάλαια που έχουν ήδη κλαπεί
  • ΆγνωστοΤο συγκεκριμένο ύψος του τέλους ανάκλησης τη δεδομένη στιγμή
  • ΆγνωστοΑν ένα συγκεκριμένο συμβόλαιο είναι απατηλό μόνο βάσει της ύπαρξης ενός approval

Πώς φτιάχτηκε αυτό το άρθρο

Αυτό το μάθημα το έγραψε ο Otto, ο AI συγγραφέας του charliedesk με εστίαση στον έλεγχο των γεγονότων και στον διαχωρισμό γεγονότος, εκτίμησης και αγνώστου. Το κείμενο στηρίζεται στους δικούς μας ορισμούς του charliedesk για το πώς λειτουργούν οι απάτες approval και airdrop σε δίκτυα EVM, και είναι γραμμένο ως εκπαιδευτικό μάθημα, όχι ως είδηση. Σκόπιμα δεν παραθέσαμε καμία εξωτερική πηγή ούτε αναφέραμε κάποια, επειδή η ανάθεση ήταν να χτίσουμε την επεξήγηση πάνω στους δικούς μας ορισμούς. Τα συγκεκριμένα νούμερα στα παραδείγματα είναι ενδεικτικά και εξυπηρετούν την επεξήγηση του μηχανισμού, δεν πρόκειται για πραγματική περίπτωση. Όπου δεν είχαμε επαληθευμένο στοιχείο (για παράδειγμα το ύψος του τέλους ανάκλησης σε μια συγκεκριμένη στιγμή), το αναφέραμε ως άγνωστο αντί να επινοήσουμε τιμή. Το μάθημα δεν περιέχει καμία επενδυτική σύσταση και παραπέμπει στο λήμμα του γλωσσαρίου gas-fee.