Διαφορετικότητα λογισμικού πελάτη
Η συμπεριφορά ενός κόμβου Ethereum ελέγχεται από το λογισμικό πελάτη που εκτελεί. Υπάρχουν αρκετοί πελάτες Ethereum σε επίπεδο παραγωγής, ο καθένας από τους οποίους έχει αναπτυχθεί και διατηρείται σε διαφορετικές γλώσσες προγραμματισμού από ξεχωριστές ομάδες. Οι πελάτες είναι χτισμένοι σε μια κοινή προδιαγραφή που διασφαλίζει ότι οι πελάτες επικοινωνούν απρόσκοπτα μεταξύ τους και έχουν την ίδια λειτουργικότητα και παρέχουν μια ισοδύναμη εμπειρία χρήστη. Ωστόσο, αυτή τη στιγμή η κατανομή των πελατών μεταξύ των κόμβων δεν είναι αρκετά ισόποση ώστε να αξιοποιήσει αυτή την ενίσχυση του δικτύου στο μέγιστο των δυνατοτήτων της. Στην ιδανική περίπτωση, οι χρήστες κατανέμονται περίπου ίσα μεταξύ των διάφορων πελατών για να φέρουν όσο το δυνατόν μεγαλύτερη ποικιλία πελατών στο δίκτυο.
Προαπαιτούμενα
Εάν δεν καταλαβαίνετε τι είναι οι κόμβοι και οι πελάτες, ρίξτε μια ματιά στην ενότητα κόμβοι και πελάτες. Τα επίπεδα (εκτέλεση) και (συναίνεση) ορίζονται στο γλωσσάριο.
Γιατί υπάρχουν πολλοί πελάτες;
Υπάρχουν πολλοί, ανεξάρτητα αναπτυγμένοι και συντηρούμενοι πελάτες, επειδή η ποικιλία των πελατών κάνει το δίκτυο πιο ανθεκτικό σε επιθέσεις και σφάλματα. Οι πολυάριθμοι πελάτες είναι ένα μοναδικό πλεονέκτημα του Ethereum — άλλα blockchain βασίζονται στο αλάθητο ενός και μόνο πελάτη. Ωστόσο, δεν αρκεί απλώς να υπάρχουν πολυάριθμοι διαθέσιμοι πελάτες, αλλά πρέπει να τους υιοθετήσει η κοινότητα και το σύνολο των ενεργών κόμβων να κατανέμεται σχετικά ομοιόμορφα μεταξύ τους.
Γιατί είναι σημαντική η ποικιλία πελατών;
Η ύπαρξη πολυάριθμων ανεξάρτητα αναπτυγμένων και συντηρούμενων πελατών είναι ζωτικής σημασίας για την υγεία ενός αποκεντρωμένου δικτύου. Ας εξερευνήσουμε τους λόγους για τους οποίους ισχύει αυτό.
Σφάλματα
Ένα σφάλμα σε έναν μεμονωμένο πελάτη ενέχει λιγότερο κίνδυνο για το δίκτυο όταν αντιπροσωπεύει μια μειοψηφία κόμβων Ethereum. Με μια περίπου ομοιόμορφη κατανομή των κόμβων σε πολλούς πελάτες, η πιθανότητα οι περισσότεροι πελάτες να πληγούν από ένα κοινό πρόβλημα είναι μικρή και, ως εκ τούτου, το δίκτυο είναι πιο ισχυρό.
Ανθεκτικότητα στις επιθέσεις
Η ποικιλία πελατών προσφέρει επίσης ανθεκτικότητα στις επιθέσεις. Για παράδειγμα, μια επίθεση που ξεγελά έναν συγκεκριμένο πελάτη σε έναν συγκεκριμένο κλάδο της αλυσίδας είναι απίθανο να είναι επιτυχής, επειδή οι άλλοι πελάτες είναι απίθανο να είναι εκμεταλλεύσιμοι με τον ίδιο τρόπο. Συνεπώς, η κανονική αλυσίδα δεν διαφθείρεται. Η χαμηλή ποικιλία πελατών αυξάνει τον κίνδυνο που σχετίζεται με ένα hack στον κυρίαρχο πελάτη. Η ποικιλία των πελατών έχει ήδη αποδειχθεί σημαντική άμυνα έναντι κακόβουλων επιθέσεων στο δίκτυο. Για παράδειγμα, η επίθεση άρνησης υπηρεσίας στη Shanghai το 2016 ήταν δυνατή επειδή οι εισβολείς κατάφεραν να ξεγελάσουν τον κυρίαρχο πελάτη (Geth) ώστε να εκτελέσει μια λειτουργία αργού δίσκου i/o δεκάδες χιλιάδες φορές ανά μπλοκ. Επειδή οι εναλλακτικοί πελάτες ήταν επίσης online και δεν μοιράζονταν την ευπάθεια, το Ethereum μπόρεσε να αντισταθεί στην επίθεση και να συνεχίσει να λειτουργεί όσο διορθωνόταν η ευπάθεια στο Geth.
Οριστικότητα απόδειξης συμμετοχής
Ένα σφάλμα σε έναν πελάτη συναίνεσης που φιλοξενεί πάνω από το 33% των κόμβων Ethereum θα μπορούσε να αποτρέψει την οριστικοποίηση του επιπέδου συναίνεσης, πράγμα που σημαίνει ότι οι χρήστες δεν θα μπορούσαν να είναι σίγουροι ότι οι συναλλαγές δεν θα επαναφερθούν ή δεν θα αλλάξουν κάποια στιγμή. Αυτό θα ήταν πολύ προβληματικό για πολλές από τις εφαρμογές που είναι χτισμένες πάνω από το Ethereum, ιδιαίτερα το DeFi.
Ακόμη χειρότερα, ένα κρίσιμο σφάλμα σε έναν πελάτη με πλειοψηφία δύο τρίτων θα μπορούσε να προκαλέσει λανθασμένο διαχωρισμό και οριστικοποίηση της αλυσίδας, με αποτέλεσμα ένα μεγάλο σύνολο επικυρωτών να κολλήσει σε μια μη έγκυρη αλυσίδα. Εάν θέλουν να ενταχθούν ξανά στη σωστή αλυσίδα, αυτοί οι επικυρωτές έρχονται αντιμέτωποι με περικοπή (slashing) ή αργή και δαπανηρή εθελοντική απόσυρση και επανενεργοποίηση. Το μέγεθος ενός slashing κλιμακώνεται με τον αριθμό των υπαίτιων κόμβων με πλειοψηφία δύο τρίτων slashed κατά το μέγιστο (32 ETH).Αν και αυτά είναι απίθανα σενάρια, το οικοσύστημα του Ethereum μπορεί να μετριάσει τον κίνδυνο εξομαλύνοντας την κατανομή των πελατών στους ενεργούς κόμβους. Στην ιδανική περίπτωση, κανένας πελάτης συναίνεσης δεν θα έφτανε ποτέ μερίδιο ύψους 33% των συνολικών κόμβων.
Επιμερισμένη ευθύνη
Υπάρχει επίσης ανθρώπινο κόστος για την τήρηση πελατών πλειοψηφίας. Μια μικρή ομάδα ανάπτυξης δέχεται υπερβολική πίεση και φέρει μεγάλη ευθύνη. Όσο μικρότερη είναι η ποικιλία των πελατών, τόσο μεγαλύτερο είναι το βάρος της ευθύνης για τους προγραμματιστές που διατηρούν τον πελάτη πλειοψηφίας. Ο επιμερισμός αυτής της ευθύνης σε πολλές ομάδες είναι καλός τόσο για την υγεία του δικτύου κόμβων του Ethereum όσο και για το δίκτυο ανθρώπων του.
Τρέχουσα ποικιλία πελατών
Δεδομένα διαγράμματος από ethernodes.org και clientdiversity.org
Τα δύο παραπάνω κυκλικά διαγράμματα δείχνουν στιγμιότυπα της τρέχουσας ποικιλίας πελατών για τα επίπεδα εκτέλεσης και συναίνεσης (κατά τη στιγμή σύνταξης τον Ιανουάριο του 2022). Στο επίπεδο εκτέλεσης κυριαρχεί σε μεγάλο βαθμό το Geth, με το Open Ethereum να έρχεται δεύτερο με διαφορά, το Erigon τρίτο και το Nethermind τέταρτο, ενώ τα άλλα λογισμικά πελάτες αποτελούν λιγότερο από το 1% του δικτύου. Ο πιο συχνά χρησιμοποιούμενος πελάτης στο επίπεδο συναίνεσης, ο Prysm, δεν είναι τόσο κυρίαρχος όσο το Geth, αλλά εξακολουθεί να αντιπροσωπεύει πάνω από το 60% του δικτύου. Τα Lighthouse και Teku αποτελούν ~20% και ~14% αντίστοιχα, και σπάνια χρησιμοποιούνται άλλοι πελάτες.
Τα δεδομένα του επιπέδου εκτέλεσης ελήφθησαν από Ethernodes στις 23-Ιαν-2022. Τα δεδομένα για πελάτες συναίνεσης ελήφθησαν από τον Michael Sproul. Η απόκτηση δεδομένων μιας εφαρμογής πελάτη συναίνεσης είναι πιο δύσκολη, επειδή τα ίχνη των πελατών του επιπέδου συναίνεσης τα οποία μπορούν να χρησιμοποιηθούν για την αναγνώρισή τους δεν είναι πάντα ξεκάθαρα. Τα δεδομένα δημιουργήθηκαν χρησιμοποιώντας έναν αλγόριθμο ταξινόμησης που μερικές φορές προκαλεί σύγχυση σε ορισμένους από τους πελάτες μειοψηφίας (δείτε εδώ για περισσότερες λεπτομέρειες). Στο παραπάνω διάγραμμα, αυτές οι ασαφείς ταξινομήσεις αντιμετωπίζονται με μια ετικέτα είτε/ή (π.χ. Nimbus/Teku). Ωστόσο, είναι σαφές ότι το μεγαλύτερο μέρος του δικτύου τρέχει τον Prysm. Τα δεδομένα είναι ένα στιγμιότυπο από ένα σταθερό σύνολο μπλοκ [σε αυτή την περίπτωση μπλοκ Beacon στις υποδοχές (slot) 2048001 έως 2164916] και η κυριαρχία του Prysm έχει υπάρξει μερικές φορές υψηλότερη, ξεπερνώντας το 68%. Παρόλο που πρόκειται για απλά στιγμιότυπα, οι αξίες στο διάγραμμα παρέχουν μια καλή γενική εικόνα της τρέχουσας κατάστασης της ποικιλίας των πελατών.
Τα ενημερωμένα δεδομένα ποικιλομορφίας πελατών για το επίπεδο συναίνεσης είναι πλέον διαθέσιμα στο clientdiversity.org.
Επίπεδο εκτέλεσης
Μέχρι τώρα, η συζήτηση γύρω από την ποικιλία των πελατών εστιαζόταν κυρίως στο επίπεδο συναίνεσης. Ωστόσο, ο πελάτης εκτέλεσης Geth αντιπροσωπεύει αυτή τη στιγμή περίπου το 85% όλων των κόμβων. Αυτό το ποσοστό είναι προβληματικό για τους ίδιους λόγους που ισχύουν για τους πελάτες συναίνεσης. Για παράδειγμα, ένα σφάλμα στο Geth που επηρεάζει τον χειρισμό συναλλαγών ή τη δημιουργία φορτίων εκτέλεσης θα μπορούσε να οδηγήσει σε πελάτες συναίνεσης που οριστικοποιούν προβληματικές ή με σφάλματα συναλλαγές. Επομένως, το Ethereum θα ήταν πιο υγιές με μια πιο ομοιόμορφη κατανομή των πελατών εκτέλεσης, ιδανικά χωρίς πελάτη που αντιπροσωπεύει περισσότερο από το 33% του δικτύου.
Χρησιμοποιήστε έναν πελάτη μειοψηφίας
Η επίτευξη ποικιλίας πελατών δεν απαιτεί απλώς από μεμονωμένους χρήστες να επιλέξουν πελάτες μειοψηφίας — απαιτεί από ομάδες εξόρυξης/επικύρωσης και οργανισμούς, όπως τα μεγάλα dapp και ανταλλακτήρια, να αλλάξουν επίσης πελάτες. Ωστόσο, όλοι οι χρήστες μπορούν να συμβάλουν στην αποκατάσταση της τρέχουσας ανισορροπίας και στην ομαλοποίηση της χρήσης όλου του διαθέσιμου λογισμικού Ethereum. Μετά τη Συγχώνευση, όλοι οι χειριστές κόμβων θα πρέπει να τρέχουν έναν πελάτη εκτέλεσης και έναν πελάτη συναίνεσης. Η επιλογή συνδυασμών των πελατών που προτείνονται παρακάτω θα συμβάλει στην αύξηση της ποικιλίας των πελατών.
Προγράμματα εκτέλεσης
Προγράμματα συναίνεσης
Οι τεχνικοί χρήστες μπορούν να βοηθήσουν στην επιτάχυνση αυτής της διαδικασίας καταρτίζοντας περισσότερους οδηγούς και τεκμηρίωση για πελάτες μειοψηφίας και ενθαρρύνοντας τους ομοτίμους τους που λειτουργούν κόμβους να μεταναστεύσουν από τους κυρίαρχους πελάτες. Οδηγοί για τη μετάβαση σε πελάτη με συναίνεση μειοψηφίας είναι διαθέσιμοι στο clientdiversity.org.
Πίνακες ελέγχου ποικιλίας πελατών
Αρκετοί πίνακες ελέγχου (dashboard) παρέχουν στατιστικά ποικιλίας πελατών σε πραγματικό χρόνο για το επίπεδο εκτέλεσης και συναίνεσης.
Συναινετικό επίπεδο:
clientdiversity.org Επίπεδο εκτέλεσης:
Περισσότερες πληροφορίες
- Ποικιλία πελατών στο επίπεδο συναίνεσης του Ethereum
- Συγχώνευση Ethereum: Εκτελέστε τον πελάτη πλειοψηφίαςμε δική σας ευθύνη! – Dankrad Fiest, 24 Μαρτίου 2022
- Σημασία της ποικιλίας των εφαρμογών πελατών
- Λίστα υπηρεσιών κόμβων Ethereum
- «Πέντε γιατί» του προβλήματος της ποικιλίας των πελατών
- Το Ethereum Diversity και πώς να το λύσετε (YouTube)
- clientdiversity.org