Οδηγίες για τον έλεγχο των πρωτοκόλλων πονταρίσματος

Οδηγίες για τον έλεγχο των πρωτοκόλλων πονταρίσματος

Ώρα ανάγνωσης: 6 πρακτικά

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

Τι είναι το ποντάρισμα ρευστότητας;

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

Οδηγίες για τον έλεγχο των πρωτοκόλλων στοιχηματισμού PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Για παράδειγμα, έχετε 100 ETH που θέλετε να ποντάρετε στο δίκτυο Ethereum. Αντί να κλειδώνετε το ETH σας για μια καθορισμένη περίοδο, μπορείτε να χρησιμοποιήσετε μια υπηρεσία πονταρίσματος ρευστότητας όπως το Lido για να ποντάρετε το ETH σας και να λάβετε ως αντάλλαγμα ένα υγρό διακριτικό που ονομάζεται stETH. Με το stETH, μπορείτε ακόμα να κάνετε συναλλαγές ή να χρησιμοποιήσετε το πονταρισμένο ETH ενώ κερδίζετε ανταμοιβές πονταρίσματος.

Ας ξεκινήσουμε με τον έλεγχο των συμβολαίων πονταρίσματος:

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

Όταν εξετάζετε το έγγραφο προδιαγραφών ελέγχου για τη σύμβαση πονταρίσματος, αναζητήστε αυτά τα σημεία:

  • Τύποι τελών που βασίζονται και οι υπολογισμοί τους.
  • Μηχανισμός ανταμοιβής για στοιχηματισμένα μάρκες
  • Εξουσίες του ιδιοκτήτη
  • Θα κρατήσει το συμβόλαιο ETH;
  • Τι μάρκες θα περιέχει το συμβόλαιο;
  • Αρχικό συμβόλαιο από το οποίο είναι διχαλωτό

Ελέγξτε ότι οι προδιαγραφές ταιριάζουν με τον κωδικό. Ξεκινήστε με χρεώσεις και tokenomics, ακολουθούμενη από επικύρωση της εξουσίας του ιδιοκτήτη. Βεβαιωθείτε ότι όλες οι αξίες ανταμοιβών και αμοιβών είναι σύμφωνες με την τεκμηρίωση.

Ευάλωτα σημεία για αναζήτηση;

1. Μηχανισμός Απόσυρσης Ανταμοιβής:

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

  • Ελέγξτε εάν κάποιος χρήστης μπορεί να κάνει ανάληψη μεγαλύτερη από την ανταμοιβή του + το πονταρισμένο ποσό.
  • Ελέγξτε για Υπερχείλιση/Υπορροή στον υπολογισμό του ποσού
  • Ελέγξτε εάν ορισμένες παράμετροι μπορούν να έχουν αρνητικό αντίκτυπο στις ανταμοιβές κατά τον υπολογισμό.
  • Εάν χρησιμοποιείται block.timestamp ή block.number σε αυτή τη συνάρτηση. Ελέγξτε εάν μπορεί να γίνει εκμετάλλευση με οποιονδήποτε τρόπο.

2. Λογική χρέωσης:

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

3. Μηχανισμός κοπής/καύσης του LP Token:

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

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

4. Σφάλματα στρογγυλοποίησης:

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

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

5. Διάρκεια πονταρίσματος:

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

6. Εξωτερικές κλήσεις και χειρισμός διακριτικών:

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

7. Έλεγχοι χειρισμών τιμών:

Η χειραγώγηση τιμών μέσω φλας δανείου είναι ένα από τα πιο συχνά hacks σε έργα DeFi. Ενδέχεται να υπάρξουν περιπτώσεις όπου κακόβουλοι παράγοντες μπορούν να χρησιμοποιήσουν δάνεια έκτακτης ανάγκης για να χειραγωγήσουν τις τιμές κατά τη διάρκεια πονταρίσματος ή αφαίρεσης μεγάλων ποσοτήτων μάρκες. Ελέγξτε προσεκτικά τις λειτουργίες πονταρίσματος και αποδέσμευσης για να αποφύγετε σενάρια αιχμής που θα μπορούσαν να οδηγήσουν σε επεισόδια χειραγώγησης τιμών βάσει δανείου και απώλεια κεφαλαίων άλλων χρηστών.

8. Μερικοί πρόσθετοι έλεγχοι:

  • Βρόχοι: Εάν η λογική του συμβολαίου περιλαμβάνει βρόχο πάνω από συστοιχίες, είναι σημαντικό να διασφαλίσετε ότι δεν θα ξεπεραστεί το όριο του μπλοκ αερίου. Αυτό μπορεί να συμβεί όταν το μέγεθος του πίνακα είναι πολύ μεγάλο, επομένως θα πρέπει να διερευνήσετε ποιες λειτουργίες θα μπορούσαν να αυξήσουν το μέγεθος του πίνακα και εάν κάποιος χρήστης θα μπορούσε να τον εκμεταλλευτεί για να προκαλέσει επίθεση DoS. Ελέγξτε αυτό αναφέρουν.
  • Κατασκευές: Τα συμβόλαια πονταρίσματος χρησιμοποιούν τον τύπο struct για την αποθήκευση δεδομένων χρήστη ή συγκέντρωσης. Όταν δηλώνετε ή αποκτάτε πρόσβαση σε μια δομή μέσα σε μια συνάρτηση, είναι σημαντικό να καθορίσετε εάν θα χρησιμοποιήσετε "μνήμη" ή "αποθήκευση". Μπορεί να μας βοηθήσει να εξοικονομήσουμε λίγο αέριο. Για περισσότερες πληροφορίες, ανατρέξτε σε αυτό το άρθρο.
  • Μπροστινό τρέξιμο: Αναζητήστε τυχόν σενάρια όπου οι κακόβουλοι παράγοντες θα μπορούσαν να εκτελέσουν οποιαδήποτε συναλλαγή προς όφελός τους.
  • Έλεγχοι ορατότητας λειτουργίας/ ελέγχου πρόσβασης: Οποιαδήποτε συνάρτηση δηλώνεται ως εξωτερική ή δημόσια μπορεί να έχει πρόσβαση από οποιονδήποτε. Ως εκ τούτου, είναι σημαντικό να διασφαλιστεί ότι καμία δημόσια λειτουργία δεν μπορεί να εκτελέσει ευαίσθητες ενέργειες. Είναι σημαντικό να επαληθευτεί ότι το πρωτόκολλο πονταρίσματος έχει εφαρμόσει κατάλληλους ελέγχους για την αποτροπή μη εξουσιοδοτημένης πρόσβασης τόσο στα πονταρισμένα νομίσματα όσο και στην υποδομή του συστήματος.
  • Κίνδυνοι συγκεντροποίησης: Είναι σημαντικό να μην δίνετε στον ιδιοκτήτη υπερβολικές εξουσίες. Εάν η διεύθυνση διαχειριστή παραβιαστεί, θα μπορούσε να προκαλέσει σημαντική βλάβη στο πρωτόκολλο. Επαληθεύστε ότι τα δικαιώματα κατόχου ή διαχειριστή είναι κατάλληλα και βεβαιωθείτε ότι το πρωτόκολλο έχει ένα σχέδιο για τον χειρισμό καταστάσεων όπου διαρρέουν τα ιδιωτικά κλειδιά ενός διαχειριστή.
  • Χειρισμός ETH / WETH: Τα συμβόλαια συχνά περιλαμβάνουν συγκεκριμένη λογική για το χειρισμό του ETH. Για παράδειγμα, όταν msg.value > 0, ένα συμβόλαιο μπορεί να μετατρέψει το ETH σε WETH ενώ εξακολουθεί να επιτρέπει την απευθείας λήψη του WETH. Όταν ένας χρήστης προσδιορίζει το WETH ως νόμισμα, αλλά στέλνει ETH με την κλήση, αυτό μπορεί να σπάσει ορισμένα αμετάβλητα και να οδηγήσει σε εσφαλμένη συμπεριφορά.

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

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


11 Προβολές

Σφραγίδα ώρας:

Περισσότερα από Quillhash