Verkle trees
Τα δέντρα Verkle (ένας συνδυασμός ονομάτων από «Vector commitment» και «Merkle Trees») είναι μια δομή δεδομένων που μπορεί να χρησιμοποιηθεί για την αναβάθμιση των κόμβων Ethereum, ώστε να σταματήσουν να αποθηκεύουν μεγάλες ποσότητες δεδομένων κατάστασης, χωρίς να χάσουν τη δυνατότητα επικύρωσης των μπλοκ.
Statelessness
Τα δέντρα Verkle αποτελούν ένα κρίσιμο βήμα προς τους πελάτες χωρίς διατήρηση της κατάστασης του Ethereum. Οι πελάτες χωρίς διατήρηση της κατάστασης, είναι αυτοί που δε χρειάζεται να αποθηκεύουν ολόκληρη τη βάση δεδομένων κατάστασης για να επικυρώνουν εισερχόμενα μπλοκ. Αντί να χρησιμοποιούν το δικό τους τοπικό αντίγραφο της κατάστασης του Ethereum για την επαλήθευση των μπλοκ, οι πελάτες χωρίς κατάσταση χρησιμοποιούν ένα «μάρτυρα» των δεδομένων κατάστασης που συνοδεύει το μπλοκ. Ένας μάρτυρας είναι μια συλλογή μεμονωμένων τμημάτων των δεδομένων κατάστασης που απαιτούνται, για την εκτέλεση ενός συγκεκριμένου συνόλου συναλλαγών και μια κρυπτογραφημένη απόδειξη ότι ο μάρτυρας είναι πραγματικό μέρος του συνόλου των δεδομένων. Ο μάρτυρας χρησιμοποιείται αντί της βάσης δεδομένων κατάστασης. Για να λειτουργήσει αυτό, οι μάρτυρες πρέπει να είναι πολύ μικροί σε μέγεθος, ώστε να μπορούν να μεταδίδονται με ασφάλεια μέσω του δικτύου εγκαίρως, για τους επικυρωτές να τις επεξεργαστούν μέσα σε ένα διάστημα 12 δευτερολέπτων. Η τρέχουσα δομή δεδομένων κατάστασης δεν είναι κατάλληλη επειδή οι μάρτυρες είναι πολύ μεγάλοι. Τα δέντρα Verkle επιλύουν αυτό το πρόβλημα επιτρέποντας μικρούς μάρτυρες, αφαιρώντας ένα από τα κύρια εμπόδια για τους πελάτες χωρίς κατάσταση.
Τι είναι ένας μάρτυρας και γιατί τον χρειαζόμαστε;
Η επαλήθευση ενός μπλοκ σημαίνει την επανεξέταση των συναλλαγών που περιέχονται στο μπλοκ, την εφαρμογή των αλλαγών στο trie κατάστασης του Ethereum και τον υπολογισμό του νέου hash ρίζας. Ένα επαληθευμένο μπλοκ είναι αυτό του οποίου το υπολογισμένο hash ρίζας κατάστασης, είναι το ίδιο με αυτό που παρέχεται με το μπλοκ (επειδή αυτό σημαίνει ότι ο προτείνων του μπλοκ έκανε πραγματικά τον υπολογισμό που ισχυρίστηκε). Στους σημερινούς πελάτες Ethereum, η ενημέρωση της κατάστασης απαιτεί πρόσβαση σε ολόκληρο το trie κατάστασης, το οποίο είναι μια μεγάλη δομή δεδομένων που πρέπει να αποθηκευτεί τοπικά. Ένας μάρτυρας περιέχει μόνο τα κομμάτια των δεδομένων κατάστασης που απαιτούνται για την εκτέλεση των συναλλαγών στο μπλοκ. Ένας επικυρωτής μπορεί στη συνέχεια να χρησιμοποιήσει μόνο αυτά τα κομμάτια για να επαληθεύσει ότι ο προτείνων του μπλοκ έχει εκτελέσει τις συναλλαγές και έχει ενημερώσει σωστά την κατάσταση. Ωστόσο, αυτό σημαίνει ότι ο μάρτυρας πρέπει να μεταφέρεται μεταξύ των ομότιμων στο δίκτυο Ethereum αρκετά γρήγορα, για να ληφθεί και να επεξεργαστεί από κάθε κόμβο με ασφάλεια μέσα σε ένα διάστημα 12 δευτερολέπτων. Εάν ο μάρτυρας έχει μεγάλο μέγεθος, μπορεί να χρειαστεί πολύς χρόνος για ορισμένους κόμβους να το κατεβάσουν και να παρακολουθήσουν την αλυσίδα. Αυτό είναι μια δύναμη κεντρικής διαχείρισης, καθώς σημαίνει ότι μόνο οι κόμβοι με γρήγορες συνδέσεις στο διαδίκτυο μπορούν να συμμετάσχουν στην επικύρωση των μπλοκ. Με τα δέντρα Verkle δεν υπάρχει ανάγκη να αποθηκεύεται η κατάσταση στον σκληρό σας δίσκο. Όλα όσα χρειάζεστε για να επαληθεύσετε ένα μπλοκ περιέχονται μέσα στο ίδιο το μπλοκ. Δυστυχώς, οι μάρτυρες που μπορούν να παραχθούν από τα Merkle tries είναι πολύ μεγάλοι για να μπορούν να υποστηριχθούν από πελάτες χωρίς κατάσταση.
Γιατί τα δέντρα Verkle επιτρέπουν μάρτυρες μικρότερου μεγέθους;
Η δομή ενός Merkle Trie κάνει τα μεγέθη των μαρτύρων πολύ μεγάλα για να μεταδοθούν με ασφάλεια μεταξύ των peers, εντός ενός διαστήματος 12 δευτερολέπτων. Αυτό συμβαίνει επειδή ο μάρτυρας είναι μια διαδρομή που συνδέει τα δεδομένα, τα οποία βρίσκονται στα φύλλα, με το hash ρίζας. Για να επαληθευτούν τα δεδομένα είναι απαραίτητο να έχουμε όχι μόνο όλα τα ενδιάμεσα hashes που συνδέουν κάθε φύλλο με τη ρίζα, αλλά και όλους τους «αδελφούς» κόμβους. Κάθε κόμβος στην απόδειξη έχει έναν αδελφό με τον οποίο συνδυάζεται για να δημιουργήσει το επόμενο hash πάνω στο trie. Αυτό είναι μεγάλος όγκος δεδομένων. Τα δέντρα Verkle μειώνουν το μέγεθος του μάρτυρα μειώνοντας την απόσταση μεταξύ των φύλλων του δέντρου και της ρίζας του και εξαλείφοντας επίσης την ανάγκη παροχής αδελφών κόμβων για την επαλήθευση του hash ρίζας. Ακόμη μεγαλύτερη εξοικονόμηση χώρου θα επιτευχθεί χρησιμοποιώντας ένα ισχυρό σχήμα δέσμευσης polynomial αντί του σχήματος δέσμευσης διανυσμάτων τύπου hash. Η δέσμευση polynomial επιτρέπει στο μάρτυρα να έχει σταθερό μέγεθος ανεξάρτητα από τον αριθμό των φύλλων που αποδεικνύει.
Σύμφωνα με το σχήμα δέσμευσης polynomial, οι μάρτυρες έχουν διαχειρίσιμα μεγέθη που μπορούν εύκολα να μεταφερθούν στο δίκτυο μεταξύ χρηστών. Αυτό επιτρέπει στους πελάτες να επαληθεύουν τις αλλαγές κατάστασης σε κάθε μπλοκ με ελάχιστη ποσότητα δεδομένων.
Ποια είναι η δομή ενός δέντρου «Verkle»;
Τα δέντρα Verkle είναι ζεύγη (key,value)
όπου τα κλειδιά είναι στοιχεία 32 byte που αποτελούνται από έναν stem 31 byte και ένα suffix ενός byte. Αυτά τα κλειδιά οργανώνονται σε κόμβους επέκτασης και εσωτερικούς. Κάθε κόμβος επέκτασης αντιπροσωπεύει ένα μοναδικό στέλεχος για 256 «children» με διαφορετικά επιθήματα. Οι εσωτερικοί κόμβοι έχουν επίσης 256 «children», αλλά μπορούν να είναι και άλλοι κόμβοι επέκτασης. Η κύρια διαφορά είναι ότι τα δέντρα Verkle είναι πολύ πιο «ευρύτερα», δηλαδή έχουν λιγότερους ενδιάμεσους κόμβους που συνδέουν ένα φύλλο με τη ρίζα και επομένως απαιτούν λιγότερα δεδομένα για τη δημιουργία μιας απόδειξης.
Διαβάστε περισσότερα για τη δομή των δέντρων «Verkle»
Τρέχουσα πρόοδος
Υπάρχουν ήδη δοκιμαστικά δίκτυα με δέντρα Verkle σε λειτουργία, αλλά απαιτούνται σημαντικές ενημερώσεις στους πελάτες για να υποστηρίξουν τα δέντρα Verkle. Μπορείτε να βοηθήσετε στην επιτάχυνση της προόδου αναπτύσσοντας συμβάσεις στα δοκιμαστικά δίκτυα ή εκτελώντας εφαρμογές πελάτη σε δίκτυα δοκιμών.
Εξερευνήστε το δίκτυο δοκιμών Verkle Gen Devnet 6
Δείτε την παρουσίαση του Guillaume Ballet για το παλαιότερο δίκτυο δοκιμών Condrieu (σημειώστε ότι το Condrieu χρησιμοποιούσε απόδειξη εργασίας και έχει αντικατασταθεί από το Verkle Gen Devnet 6).
Περισσότερες πληροφορίες
- Verkle Trees για πελάτη χωρίς κατάσταση
- Ο Dankrad Feist εξηγεί τα δέντρα Verkle στο PEEPanEIP
- Δέντρα Verkle για όλους εμάς τους υπόλοιπους
- Ανατομία μιας Απόδειξης Verkle
- Ο Guillaume Ballet εξηγεί τα δέντρα Verkle στο ETHGlobal
- «Πώς τα δέντρα Verkle κάνουν το Ethereum λεπτό και δυνατό» από τον Guillaume Ballet στο Devcon 6
- Η Piper Merriam για τους πελάτες χωρίς κατάστασης από το ETHDenver 2020
- Ο Dankrad Fiest εξηγεί τα δέντρα Verkle και τη μη χρήση κατάστασης στο podcast Μηδενικής γνώσης
- Ο Vitalik Buterin για τα δέντρα Verkle
- Ο Dankrad Feist για τα δέντρα Verkle
- Τεκμηρίωση EIP για τα δέντρα Verkle