Eκλογή μυστικού ηγέτη
Στον σημερινό μηχανισμό συναίνεσης βασισμένο στην απόδειξη συμμετοχής, η λίστα των επερχόμενων προτείνοντων μπλοκ είναι δημόσια και είναι δυνατόν να αντιστοιχιστούν οι διευθύνσεις IP τους. Αυτό σημαίνει ότι οι επιτιθέμενοι θα μπορούσαν να εντοπίσουν ποιοι επικυρωτές πρόκειται να προτείνουν ένα μπλοκ και να τους στοχεύσουν με μια επίθεση άρνησης υπηρεσίας (DoS) που τους αφήνει ανίκανους να προτείνουν το μπλοκ τους εγκαίρως.
Αυτό θα μπορούσε να δημιουργήσει ευκαιρίες για κέρδος για έναν εισβολέα. Για παράδειγμα, ένας προτείνοντας μπλοκ που επιλέχθηκε για τη θέση n+1
θα μπορούσε να κάνει DoS στον προτείνοντα στη θέση n
, ώστε να χάσει την ευκαιρία του να προτείνει ένα μπλοκ. Αυτό θα επέτρεπε στον επιτιθέμενο στον προτείνοντα μπλοκ να εξαγάγει το MEV και των δύο θέσεων ή να αρπάξει όλες τις συναλλαγές που θα έπρεπε να χωριστούν σε δύο μπλοκ και αντ' αυτού να τις συμπεριλάβει όλες σε ένα, κερδίζοντας όλες τις σχετικές αμοιβές. Αυτό είναι πιθανό να επηρεάσει περισσότερο τους οικιακούς επικυρωτές από τους πιο προηγμένους θεσμικούς επικυρωτές που μπορούν να χρησιμοποιήσουν πιο προηγμένες μεθόδους για να προστατευθούν από επιθέσεις DoS και θα μπορούσε επομένως να αποτελέσει μια κεντρική δύναμη.
Υπάρχουν διάφορες λύσεις για αυτό το πρόβλημα. Μία είναι η Distributed Validator Technology, η οποία στοχεύει στη διάδοση των διάφορων εργασιών που σχετίζονται με τη λειτουργία ενός επικυρωτή σε πολλαπλές μηχανές, ώστε να είναι πολύ πιο δύσκολο για έναν επιτιθέμενο να αποτρέψει την πρόταση ενός μπλοκ σε μια συγκεκριμένη θέση. Ωστόσο, η πιο ισχυρή λύση είναι η Εκλογή απλού μυστικού αρχηγού (SSLE).
Μυστική εκλογή αρχηγού
Στο SSLE, η έξυπνη κρυπτογραφία χρησιμοποιείται για να διασφαλιστεί ότι μόνο ο επιλεγμένος επικυρωτής γνωρίζει ότι έχει επιλεγεί. Αυτό λειτουργεί με κάθε επικυρωτή να υποβάλλει μια δέσμευση σε ένα μυστικό που μοιράζονται όλοι. Οι δεσμεύσεις ανακατεύονται και αναδιαμορφώνονται έτσι ώστε κανείς να μην μπορεί να αντιστοιχίσει τις δεσμεύσεις στους επικυρωτές, αλλά κάθε επικυρωτής γνωρίζει ποια δέσμευση του ανήκει. Στη συνέχεια, επιλέγεται τυχαία μία δέσμευση. Εάν ένας επικυρωτής ανιχνεύσει ότι η δέσμευσή του επιλέχθηκε, γνωρίζει ότι είναι η σειρά του να προτείνει ένα μπλοκ.
Η κορυφαία υλοποίηση αυτής της ιδέας ονομάζεται Whisk. Το οποίο λειτουργεί ως εξής:
- Οι επικυρωτές δεσμεύονται σε ένα κοινό μυστικό. Το σχήμα δέσμευσης έχει σχεδιαστεί έτσι ώστε να μπορεί να συνδεθεί με μια ταυτότητα επικυρωτή, αλλά και να τυχαιοποιηθεί, έτσι ώστε κανένα τρίτο μέρος να μην μπορεί να αναστρέψει τη σύνδεση και να αντιστοιχίσει μια συγκεκριμένη δέσμευση με έναν συγκεκριμένο επικυρωτή.
- Στην αρχή μιας εποχής, επιλέγεται ένα τυχαίο σύνολο επικυρωτών για δείγμα δεσμεύσεων από 16,384 επικυρωτές, χρησιμοποιώντας το RANDAO.
- Για τις επόμενες 8182 θέσεις (1 ημέρα), οι προτείνοντες μπλοκ ανακατεύουν και τυχαιοποιούν ένα υποσύνολο των δεσμεύσεων χρησιμοποιώντας τη δική τους ιδιωτική εντροπία.
- Αφού ολοκληρωθεί το ανακάτεμα, το RANDAO χρησιμοποιείται για τη δημιουργία μιας ταξινομημένης λίστας των δεσμεύσεων. Αυτή η λίστα έχει αντιστοιχιστεί σε θέσεις χρονικών κενών Ethereum.
- Οι επικυρωτές βλέπουν ότι η δέσμευσή τους συνδέεται με μια συγκεκριμένη θέση και όταν φτάσει αυτή η θέση προτείνουν ένα μπλοκ.
- Αυτά τα βήματα επαναλαμβάνονται, έτσι ώστε η ανάθεση δεσμεύσεων σε θέσεις να προηγείται πάντα κατά πολύ από την τρέχουσα θέση.
Αυτό εμποδίζει τους εισβολείς να γνωρίζουν εκ των προτέρων ποιος συγκεκριμένος επικυρωτής θα προτείνει το επόμενο μπλοκ, αποτρέποντας τη δυνατότητα για επιθέσεις DOS.
Μυστική εκλογή μη ενιαίου αρχηγού (SnSLE)
Υπάρχει επίσης μια ξεχωριστή πρόταση που στοχεύει στη δημιουργία ενός σεναρίου όπου ο καθένας από τους επικυρωτές έχει μια τυχαία πιθανότητα να προτείνει ένα μπλοκ σε κάθε θέση, παρόμοια με τον τρόπο με τον οποίο αποφασιζόταν η πρόταση μπλοκ στο πλαίσιο της απόδειξης εργασίας, η οποία είναι γνωστή ως μυστική εκλογή μη ενιαίου αρχηγού (SnSLE). Ένας απλός τρόπος για να γίνει αυτό είναι να χρησιμοποιήσετε τη λειτουργία RANDAO που χρησιμοποιείται για την τυχαία επιλογή επικυρωτών στο σημερινό πρωτόκολλο. Η ιδέα του RANDAO είναι ότι ένας αρκετά τυχαίος αριθμός δημιουργείται με την ανάμειξη των κατακερματισμών που υποβάλλονται από πολλούς ανεξάρτητους επικυρωτές. Στο SnSLE, αυτοί οι κατακερματισμοί θα μπορούσαν να χρησιμοποιηθούν για την επιλογή του επόμενου προτείνοντος μπλοκ, για παράδειγμα μέσω της επιλογής του κατακερματισμού χαμηλότερης τιμής. Το εύρος των έγκυρων κατακερματισμών θα μπορούσε να περιοριστεί για να συντονιστεί η πιθανότητα επιλογής μεμονωμένων επικυρωτών σε κάθε θέση χρονικού κενού. Με τον ισχυρισμό ότι ο κατακερματισμός πρέπει να είναι μικρότερος από 2^256 * 5 / N
όπου N
= αριθμός ενεργών επικυρωτών, η πιθανότητα επιλογής οποιουδήποτε μεμονωμένου εργαλείου επικύρωσης σε κάθε θέση θα ήταν 5/Ν
. Σε αυτό το παράδειγμα, θα υπήρχε πιθανότητα 99,3% τουλάχιστον ένας προτείνων να δημιουργήσει έναν έγκυρο κατακερματισμό σε κάθε θέση.
Τρέχουσα πρόοδος
Το SSLE και SnSLE βρίσκονται και τα δύο στο στάδιο της έρευνας. Δεν υπάρχουν ακόμη οριστικές προδιαγραφές για καμία από τις δύο ιδέες. Το SSLE και το SnSLE είναι ανταγωνιστικές προτάσεις που δεν θα μπορούσαν να εφαρμοστούν ταυτόχρονα. Πριν κυκλοφορήσουν, χρειάζονται περισσότερη έρευνα και ανάπτυξη, δημιουργία πρωτοτύπων και εφαρμογή σε δημόσια δοκιμαστικά δίκτυα.