Τι είναι το sharding;
Με λίγα λόγια
Το sharding είναι τεχνική που χωρίζει τον φόρτο ενός blockchain σε επιμέρους τμήματα, τα shards, ώστε το δίκτυο να διαχειρίζεται περισσότερα δεδομένα ή συναλλαγές παράλληλα.
Φανταστείτε ένα σούπερ μάρκετ όπου όλοι οι πελάτες περιμένουν στο ίδιο ταμείο: όσο γρήγορος κι αν είναι ο ταμίας, η ουρά έχει όριο. Αν ανοίξουν περισσότερα ταμεία και μοιραστεί η δουλειά, μπορούν να εξυπηρετούνται περισσότεροι πελάτες ταυτόχρονα. Αυτή είναι η βασική ιδέα πίσω από την κατάτμηση (sharding).
Σε ένα blockchain, τα επιμέρους τμήματα λέγονται shards. Ανάλογα με τον σχεδιασμό του δικτύου, μπορούν να μοιράζονται την εκτέλεση συναλλαγών, την αποθήκευση δεδομένων ή την κατάσταση του δικτύου, δηλαδή πληροφορίες όπως τα υπόλοιπα των λογαριασμών. Δεν κάνουν όλα τα συστήματα sharding την ίδια δουλειά.
Σε μια υλοποίηση που μοιράζει την επεξεργασία συναλλαγών, διαφορετικές ομάδες κόμβων μπορούν να αναλαμβάνουν διαφορετικά shards. Έτσι, δεν χρειάζεται κάθε κόμβος να επεξεργάζεται κάθε συναλλαγή. Παραμένει όμως απαραίτητος ένας μηχανισμός συντονισμού, ώστε τα τμήματα να λειτουργούν ως ενιαίο δίκτυο και να συμφωνούν για τις έγκυρες αλλαγές.
Γιατί έχει σημασία
Το sharding επιχειρεί να βελτιώσει την ικανότητα κλιμάκωσης: πόση επιπλέον χρήση μπορεί να αντέξει ένα blockchain χωρίς να απαιτούνται συνεχώς ισχυρότεροι υπολογιστές από κάθε συμμετέχοντα. Για κάποιον που στέλνει crypto ή χρησιμοποιεί αποκεντρωμένες εφαρμογές, αυτό μπορεί να μεταφράζεται σε λιγότερη συμφόρηση και χαμηλότερες χρεώσεις, ανάλογα με τη ζήτηση και την υλοποίηση.
Εμείς θεωρούμε χρήσιμο να ξεχωρίζουμε την τεχνική δυνατότητα από την πραγματική εμπειρία. Περισσότερα shards δεν εγγυώνται αυτόματα γρηγορότερες συναλλαγές ή μικρότερο κόστος. Ο συντονισμός, η κατανομή του φόρτου και οι κανόνες του δικτύου επηρεάζουν το αποτέλεσμα.
Τι να προσέξεις
Το δύσκολο σημείο είναι η ασφάλεια και η επικοινωνία μεταξύ των shards. Αν μια συναλλαγή επηρεάζει δεδομένα σε διαφορετικά τμήματα, χρειάζεται ασφαλής συνεννόηση μεταξύ τους. Αυτό προσθέτει πολυπλοκότητα και μπορεί να δημιουργεί καθυστερήσεις.
Επίσης, όταν οι επικυρωτές (validators) κατανέμονται σε μικρότερες ομάδες, ο σχεδιασμός πρέπει να εμποδίζει έναν επιτιθέμενο να αποκτήσει τον έλεγχο ενός επιμέρους τμήματος. Όταν λοιπόν διαβάζετε ότι ένα project χρησιμοποιεί sharding, κοιτάξτε τι ακριβώς χωρίζει, πώς προστατεύει κάθε shard και αν η λειτουργία αυτή έχει ήδη εφαρμοστεί ή παραμένει σχέδιο.