Skip to main content
Change page

Rollup μηδενικής γνώσης

Page last update: 25 Φεβρουαρίου 2025

Τα Zero-knowledge rollups (ZK-rollups) είναι λύσεις κλιμάκωσης επιπέδου 2 που αυξάνουν την απόδοση στο Ethereum Mainnet μετακινώντας τον υπολογισμό και την αποθήκευση κατάστασης εκτός αλυσίδας. Τα ZK-rollup μπορούν να επεξεργαστούν χιλιάδες συναλλαγές σε μια παρτίδα και στη συνέχεια να δημοσιεύσουν μόνο μερικά ελάχιστα συνοπτικά δεδομένα στο Κεντρικό Δίκτυο. Αυτά τα συνοπτικά δεδομένα προσδιορίζουν τις αλλαγές που πρέπει να γίνουν στην κατάσταση Ethereum και κάποια κρυπτογραφική απόδειξη ότι αυτές οι αλλαγές είναι σωστές.

Προαπαιτούμενα

Θα έπρεπε να έχετε διαβάσει και κατανοήσει τη σελίδα μας για την Κλιμάκωση Ethereum και το Επίπεδο 2.

Τι είναι τα zero-knowledge rollup;

Τα Zero-knowledge rollup (ZK-rollup) ή πακέτα ενημερώσεων μηδενικής γνώσης ομαδοποιούν (ή συσσωρεύουν σε ένα πακέτο) συναλλαγές σε παρτίδες που εκτελούνται εκτός αλυσίδας. Ο υπολογισμός εκτός αλυσίδας μειώνει τον όγκο των δεδομένων που πρέπει να αναρτηθούν στο blockchain. Οι χειριστές ZK-rollup υποβάλλουν μια σύνοψη των αλλαγών που απαιτούνται για την αποτύπωση όλων των συναλλαγών σε μία παρτίδα αντί να στέλνουν κάθε συναλλαγή ξεχωριστά. Παράγουν επίσης για να αποδείξουν την ορθότητα των αλλαγών τους.

Η κατάσταση του ZK-rollup συντηρείται από ένα έξυπνο συμβόλαιο που αναπτύσσεται στο δίκτυο Ethereum. Για να ενημερώσετε αυτή την κατάσταση, οι κόμβοι ZK-rollup πρέπει να υποβάλουν μια απόδειξη εγκυρότητας προς επαλήθευση. Όπως αναφέρθηκε, η απόδειξη εγκυρότητας είναι μια κρυπτογραφική διασφάλιση ότι η αλλαγή κατάστασης που προτείνεται από το πακέτο ενημέρωσης είναι ουσιαστικά το αποτέλεσμα της εκτέλεσης της συγκεκριμένης παρτίδας συναλλαγών. Αυτό σημαίνει ότι τα ZK-rollups χρειάζεται μόνο να παρέχουν αποδείξεις εγκυρότητας για την οριστικοποίηση των συναλλαγών στο Ethereum αντί να δημοσιεύουν όλα τα δεδομένα συναλλαγών στην αλυσίδα, όπως τα optimistic rollups.

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

Τα ZK-rollup γράφουν συναλλαγές στο Ethereum ως calldata. Τα calldata είναι εκεί όπου αποθηκεύονται τα δεδομένα που περιλαμβάνονται σε εξωτερικές κλήσεις προς συναρτήσεις έξυπνων συμβολαίων. Οι πληροφορίες στο calldata δημοσιεύονται στην κρυπτοαλυσίδα, επιτρέποντας σε οποιονδήποτε να ανακατασκευάσει ανεξάρτητα την κατάσταση του πακέτου ενημέρωσης. Τα ZK-rollup χρησιμοποιούν τεχνικές συμπίεσης για τη μείωση των δεδομένων συναλλαγών: για παράδειγμα, οι λογαριασμοί αντιπροσωπεύονται από ένα ευρετήριο και όχι από μια διεύθυνση, κάτι που εξοικονομεί 28 byte δεδομένων. Η δημοσίευση δεδομένων στην αλυσίδα είναι ένα σημαντικό κόστος για τα rollups, επομένως η συμπίεση δεδομένων μπορεί να μειώσει τα τέλη για τους χρήστες.

Πώς αλληλεπιδρούν τα ZK-rollups με το Ethereum;

Μια αλυσίδα ZK-rollup είναι ένα πρωτόκολλο εκτός αλυσίδας που λειτουργεί πάνω στην κρυπτοαλυσίδα Ethereum, το οποίο διαχειρίζονται τα έξυπνα συμβόλαια Ethereum εντός της αλυσίδας. Τα ZK-rollup εκτελούν συναλλαγές εκτός του Κεντρικού Δικτύου, αλλά σε περιοδική βάση δεσμεύουν παρτίδες συναλλαγών εκτός αλυσίδας σε ένα συμβόλαιο με πακέτο ενημέρωσης στην αλυσίδα. Αυτό το αρχείο συναλλαγών είναι αμετάβλητο, όπως η αλυσίδα μπλοκ Ethereum, και σχηματίζει την αλυσίδα ZK-rollup.

Η βασική αρχιτεκτονική του ZK-rollup αποτελείται από τα ακόλουθα στοιχεία:

  1. Συμβόλαια επί της αλυσίδας: Όπως αναφέρθηκε, το πρωτόκολλο ZK-rollup ελέγχεται από έξυπνα συμβόλαια που εκτελούνται στο Ethereum. Αυτό περιλαμβάνει το κύριο συμβόλαιο που αποθηκεύει το πακέτο ενημέρωσης του μπλοκ, παρακολουθεί τις καταθέσεις και τις ενημερώσεις κατάστασης. Ένα άλλο συμβόλαιο στην αλυσίδα (το συμβόλαιο επαλήθευσης) επαληθεύει τις αποδείξεις μηδενικής γνώσης που υποβάλλονται από τους παραγωγούς μπλοκ. Έτσι, το Ethereum χρησιμεύει ως το βασικό επίπεδο ή "επίπεδο 1" για το ZK-rollup.

  2. Εικονική Μηχανή (VM) εκτός αλυσίδας: Ενώ το πρωτόκολλο ZK-rollup ζει στο Ethereum, η εκτέλεση συναλλαγών και η αποθήκευση κατάστασης συμβαίνουν σε μια ξεχωριστή εικονική μηχανή ανεξάρτητη από το EVM. Αυτή η εικονική μηχανή (VM) εκτός αλυσίδας είναι το περιβάλλον εκτέλεσης για συναλλαγές στο ZK-rollup και χρησιμεύει ως το δευτερεύον επίπεδο ή «επίπεδο 2» για το πρωτόκολλο ZK-rollup. Οι αποδείξεις εγκυρότητας που επαληθεύονται στο Ethereum Mainnet εγγυώνται τη σωστή λειτουργία των μεταβάσεων κατάστασης στην εικονική μηχανή εκτός αλυσίδας.

Τα ZK-rollups είναι "υβριδικές λύσεις κλιμάκωσης", πρωτόκολλα εκτός αλυσίδας που λειτουργούν ανεξάρτητα αλλά αντλούν ασφάλεια από το Ethereum. Ειδικότερα, το δίκτυο Ethereum επιβάλλει την εγκυρότητα των ενημερώσεων κατάστασης στο ZK-rollup και εγγυάται τη διαθεσιμότητα των δεδομένων πίσω από κάθε ενημέρωση στην κατάσταση του rollup. Ως αποτέλεσμα, τα ZK-rollups είναι σημαντικά ασφαλέστερα από τις καθαρές λύσεις κλιμάκωσης εκτός αλυσίδας, όπως οι πλευρικές αλυσίδες, οι οποίες είναι υπεύθυνες για τις ιδιότητες ασφάλειάς τους ή τα validiums, τα οποία επίσης επαληθεύουν συναλλαγές στο Ethereum με αποδείξεις εγκυρότητας, αλλά αποθηκεύουν δεδομένα συναλλαγών αλλού.

Τα ZK-rollup βασίζονται στο κύριο πρωτόκολλο Ethereum για τα εξής:

Διαθεσιμότητα δεδομένων

Τα ZK-rollups δημοσιεύουν δεδομένα κατάστασης για κάθε συναλλαγή που επεξεργάζεται εκτός αλυσίδας στο Ethereum. Με αυτά τα δεδομένα, είναι δυνατό για άτομα ή επιχειρήσεις να αναπαράγουν την κατάσταση του rollup και να επικυρώσουν οι ίδιοι την αλυσίδα. Το Ethereum καθιστά αυτά τα δεδομένα διαθέσιμα σε όλους τους συμμετέχοντες στο δίκτυο ως calldata.

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

Η πρόσβαση στην αλυσίδα είναι απαραίτητη για τους χρήστες για να αλληλεπιδράσουν με το rollup. Χωρίς πρόσβαση στα δεδομένα κατάστασης, οι χρήστες δεν μπορούν να ρωτήσουν το υπόλοιπο του λογαριασμού τους ή να ξεκινήσουν συναλλαγές (π.χ. αναλήψεις) που βασίζονται σε πληροφορίες κατάστασης.

Οριστικότητα συναλλαγής

Το Ethereum λειτουργεί ως επίπεδο διευθέτησης για τα ZK-rollups: οι συναλλαγές επιπέδου 2 ολοκληρώνονται μόνο εάν το συμβόλαιο επιπέδου 1 αποδεχτεί την απόδειξη εγκυρότητας. Αυτό εξαλείφει τον κίνδυνο οι κακόβουλοι χειριστές να διαφθείρουν την αλυσίδα (π.χ. κλοπή κεφαλαίων rollup) καθώς κάθε συναλλαγή πρέπει να εγκριθεί στο Κεντρικό Δίκτυο. Επίσης, το Ethereum εγγυάται ότι οι λειτουργίες των χρηστών δεν μπορούν να αντιστραφούν μόλις οριστικοποιηθούν στο L1.

Αντίσταση στη Λογοκρισία

Τα περισσότερα ZK-rollups χρησιμοποιούν έναν "υπερκόμβο" (τον χειριστή) για να εκτελέσουν συναλλαγές, να παράγουν παρτίδες και να υποβάλουν μπλοκ στο L1. Παρότι αυτό διασφαλίζει την αποτελεσματικότητα, αυξάνει τον κίνδυνο λογοκρισίας: οι κακόβουλοι χειριστές ZK-rollup μπορούν να λογοκρίνουν τους χρήστες αρνούμενοι να συμπεριλάβουν τις συναλλαγές τους σε παρτίδες.

Ως μέτρο ασφαλείας, τα ZK-rollup επιτρέπουν στους χρήστες να υποβάλλουν συναλλαγές απευθείας στο συμβόλαιο του rollup στο Κεντρικό Δίκτυο, εάν πιστεύουν ότι λογοκρίνονται από τον χειριστή. Αυτό επιτρέπει στους χρήστες να εξαναγκάσουν μια έξοδο από το ZK-rollup στο Ethereum χωρίς να χρειάζεται να βασίζονται στην άδεια του χειριστή.

Πώς λειτουργούν τα ZK-rollups;

Συναλλαγές

Οι χρήστες ενός ZK-rollup υπογράφουν συναλλαγές και υποβάλλουν στους χειριστές L2 για επεξεργασία και συμπερίληψη στην επόμενη παρτίδα. Σε ορισμένες περιπτώσεις, ο χειριστής είναι μια κεντρικοποιημένη οντότητα, ονόματι sequencer, που εκτελεί συναλλαγές, τις συγκεντρώνει σε παρτίδες και τις υποβάλλει στο L1. Το sequencer σε αυτό το σύστημα είναι η μόνη οντότητα που επιτρέπεται να παράγει μπλοκ στο L2 και να προσθέτει συναλλαγές rollup στο συμβόλαιο του ZK-rollup.

Άλλα ZK-rollup μπορούν να εναλλάσουν τον ρόλο χειριστή χρησιμοποιώντας ένα σετ επικύρωσης απόδειξης συμμετοχής. Οι υποψήφιοι χειριστές καταθέτουν κεφάλαια στο συμβόλαιο του rollup, με το μέγεθος κάθε μεριδίου κεφαλαίου να επηρεάζει τις πιθανότητες αυτού που αποθηκεύει κεφάλαιο να επιλεγεί για να παραγάγει το επόμενο πακέτο του rollup. Το δεσμευμένο κεφάλαιο του χειριστή μπορεί να περικοπεί αν ενεργήσει κακόβουλα, γεγονός που τον ωθεί να δημοσιεύει έγκυρα μπλοκ.

Πώς τα ZK-rollup δημοσιεύουν δεδομένα συναλλαγών στο Ethereum

Όπως εξηγήθηκε, τα δεδομένα συναλλαγών δημοσιεύονται στο Ethereum ως calldata. Το calldata είναι μια περιοχή δεδομένων σε ένα έξυπνο συμβόλαιο που χρησιμοποιείται για τη μεταφορά ορισμάτων σε μια συνάρτηση και συμπεριφέρεται παρόμοια με τη μνήμη. Ενώ και αν τα calldata δεν αποθηκεύονται ως μέρος της κατάστασης του Ethereum, παραμένουν στην αλυσίδα ως μέρος των αρχείων καταγραφής ιστορικού(opens in a new tab) της αλυσίδας Ethereum. Το calldata δεν επηρεάζει την κατάσταση του Ethereum, καθιστώντας το έναν φθηνό τρόπο αποθήκευσης δεδομένων στην αλυσίδα.

Η λέξη-κλειδί calldata συχνά προσδιορίζει τη μέθοδο του έξυπνου συμβολαίου που καλείται από μια συναλλαγή και περιέχει εισόδους στη μέθοδο με τη μορφή μιας αυθαίρετης ακολουθίας byte. Τα πακέτα ενημέρωσης ZK χρησιμοποιούν το calldata για να δημοσιεύσουν συμπιεσμένα δεδομένα συναλλαγών στην αλυσίδα. Ο χειριστής του πακέτου ενημέρωσης απλώς προσθέτει ένα νέο σύνολο δεδομένων καλώντας την απαιτούμενη συνάρτηση στο συμβόλαιο του πακέτου ενημέρωσης και περνά τα συμπιεσμένα δεδομένα ως ορίσματα συνάρτησης. Αυτό βοηθά στη μείωση του κόστους για τους χρήστες, καθώς ένα μεγάλο μέρος των τελών των rollup προορίζονται προς την αποθήκευση δεδομένων συναλλαγών στην αλυσίδα.

Δεσμεύσεις κατάστασης

Η κατάσταση του ZK-rollup, η οποία περιλαμβάνει λογαριασμούς και υπόλοιπα L2, αναπαρίσταται ως δέντρο Merkle. Ένα κρυπτογραφικό hash της ρίζας του δέντρου Merkle (ρίζα Merkle) αποθηκεύεται στη σύμβαση στην αλυσίδα, επιτρέποντας στο πρωτόκολλο του πακέτου ενημέρωσης να παρακολουθεί τις αλλαγές στην κατάσταση του ZK-rollup.

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

Εκτός από τον υπολογισμό των ριζών κατάστασης, ο χειριστής ZK-rollup δημιουργεί επίσης μια ρίζα δέσμης, τη ρίζα ενός δέντρου Merkle που περιλαμβάνει όλες τις συναλλαγές σε μια δέσμη. Όταν υποβάλλεται μια νέα δέσμη, το συμβόλαιο rollup αποθηκεύει τη ρίζα δέσμης, επιτρέποντας στους χρήστες να αποδείξουν ότι μια συναλλαγή (π.χ. αίτημα ανάληψης) συμπεριλήφθηκε στη δέσμη. Οι χρήστες θα πρέπει να παράσχουν λεπτομέρειες συναλλαγής, τη ρίζα δέσμης και μια απόδειξη Merkle που θα δείχνει τη διαδρομή συμπερίληψης.

Αποδείξεις εγκυρότητας

Η νέα ρίζα κατάστασης που υποβάλλει ο χειριστής του ZK-rollup στο συμβόλαιο επιπέδου 1 είναι το αποτέλεσμα ενημερώσεων στην κατάσταση του rollup. Ας πούμε ότι η Alice στέλνει 10 token στον Bob, ο χειριστής απλά μειώνει το υπόλοιπο της Alice κατά 10 και αυξάνει το υπόλοιπο του Bob κατά 10. Στη συνέχεια, ο χειριστής κάνει hash τα ενημερωμένα δεδομένα λογαριασμού, ανακατασκευάζει το δέντρο Merkle του πακέτου ενημέρωσης και υποβάλλει τη νέα ρίζα Merkle στο συμβόλαιο της αλυσίδας.

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

Οι αποδείξεις εγκυρότητας επιτρέπουν στα μέρη να αποδείξουν την ορθότητα μιας δήλωσης χωρίς να αποκαλύπτουν την ίδια τη δήλωση. Ως εκ τούτου, ονομάζονται επίσης αποδείξεις μηδενικής γνώσης. Τα πακέτα ZK χρησιμοποιούν αποδείξεις εγκυρότητας για να επιβεβαιώσουν τη σωστή λειτουργία των μεταβάσεων κατάστασης εκτός αλυσίδας χωρίς να χρειάζεται να εκτελέσουν ξανά τις συναλλαγές στο Ethereum. Αυτές οι αποδείξεις μπορούν να έχουν τη μορφή ενός ZK-SNARK(opens in a new tab) (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) ή ZK-STARK(opens in a new tab) (Zero-Knowledge Scalable Transparent Argument of Knowledge).

Τόσο τα SNARK όσο και τα STARK βοηθούν στην επιβεβαίωση της ακεραιότητας του υπολογισμού στα πακέτα ενημέρωσης ZK εκτός αλυσίδας, αν και κάθε τύπος απόδειξης έχει διακριτά χαρακτηριστικά.

ZK-SNARKs

Για να λειτουργήσει το πρωτόκολλο ZK-SNARK, είναι απαραίτητη η δημιουργία μιας κοινής συμβολοσειράς αναφοράς (CRS): η CRS παρέχει δημόσιες παραμέτρους για την απόδειξη και την επαλήθευση αποδείξεων εγκυρότητας. Η ασφάλεια του συστήματος απόδειξης εξαρτάται από τη ρύθμιση CRS. Εάν οι πληροφορίες που χρησιμοποιούνται για τη δημιουργία δημόσιων παραμέτρων πέσουν στα χέρια κακόβουλων δραστών, ενδέχεται να είναι σε θέση να δημιουργήσουν ψευδείς αποδείξεις εγκυρότητας.

Ορισμένα ZK-rollup προσπαθούν να επιλύσουν αυτό το πρόβλημα χρησιμοποιώντας μια τελετή υπολογισμού πολλαπλών μερών (MPC)(opens in a new tab), που περιλαμβάνει αξιόπιστα άτομα, για τη δημιουργία δημόσιων παραμέτρων για το κύκλωμα ZK-SNARK. Κάθε μέρος συμβάλλει με κάποια τυχαιότητα (που ονομάζεται "τοξικά απόβλητα") στη δημιουργία του CRS, το οποίο πρέπει να καταστρέψουν αμέσως.

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

Αφήνοντας κατά μέρος τις υποθέσεις εμπιστοσύνης, τα ZK-SNARK είναι δημοφιλή για τα μικρά μεγέθη απόδειξης και την επαλήθευση σταθερού χρόνου. Καθώς η επαλήθευση απόδειξης στο L1 αποτελεί το μεγαλύτερο κόστος λειτουργίας ενός ZK-rollup, τα L2 χρησιμοποιούν ZK-SNARK για τη δημιουργία αποδείξεων που μπορούν να επαληθευτούν γρήγορα και φθηνά στο Κεντρικό Δίκτυο.

ZK-STARKs

Όπως τα ZK-SNARKs, τα ZK-STARKs αποδεικνύουν τη γνησιότητα ενός υπολογισμού εκτός αλυσίδας χωρίς να αποκαλύπτουν τα εισαγόμενα δεδομένα. Ωστόσο, τα ZK-STARK θεωρούνται βελτίωση των ZK-SNARK λόγω της κλιμακωσιμότητας και της διαφάνειας τους.

Τα ZK-STARKs είναι 'διαφανή', καθώς μπορούν να λειτουργήσουν χωρίς την αξιόπιστη ρύθμιση μιας Κοινής Σειράς Αναφοράς (CRS). Αντίθετα, τα ZK-STARKs βασίζονται σε δημόσια επαληθεύσιμη τυχαιότητα για να ορίσουν παραμέτρους για τη δημιουργία και επαλήθευση αποδείξεων.

Τα ZK-STARK παρέχουν επίσης μεγαλύτερη επεκτασιμότητα επειδή ο χρόνος που απαιτείται για την απόδειξη και επαλήθευση αποδείξεων εγκυρότητας αυξάνεται σχεδόν γραμμικά σε σχέση με την πολυπλοκότητα του υποκείμενου υπολογισμού. Με τα ZK-SNARK, οι χρόνοι απόδειξης και επαλήθευσης επεκτείνονται γραμμικά σε σχέση με το μέγεθος του υποκείμενου υπολογισμού. Αυτό σημαίνει ότι τα ZK-STARK απαιτούν λιγότερο χρόνο από τα ZK-SNARK για απόδειξη και επαλήθευση όταν εμπλέκονται μεγάλα σύνολα δεδομένων, γεγονός το οποία τα καθιστά χρήσιμα για εφαρμογές υψηλού όγκου.

Τα ZK-STARK είναι επίσης ασφαλή έναντι των κβαντικών υπολογιστών, ενώ πιστεύεται ευρέως ότι η Ελλειπτική Καμπύλη Κρυπτογραφίας (ECC) που χρησιμοποιείται στα ZK-SNARK είναι ευάλωτη σε επιθέσεις κβαντικών υπολογιστών. Το μειονέκτημα των ZK-STARKs είναι ότι παράγουν μεγαλύτερα μεγέθη απόδειξης, τα οποία είναι πιο δαπανηρά για επαλήθευση στο Ethereum.

Πώς λειτουργούν οι αποδείξεις εγκυρότητας στα ZK-rollup;

Δημιουργία απόδειξης

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

  • Οι λογαριασμοί αποστολέα και παραλήπτη είναι μέρος του δέντρου κατάστασης.
  • Ο αποστολέας έχει αρκετά χρήματα για να επεξεργαστεί τη συναλλαγή.
  • Η συναλλαγή είναι σωστή και ταιριάζει με το δημόσιο κλειδί του αποστολέα στο rollup.
  • Ο αριθμός nonce του αποστολέα είναι σωστός, κ.λπ.

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

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

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

Αυτή η ρίζα Merkle αντικατοπτρίζει τη μοναδική αλλαγή στην κατάσταση της συλλογής ZK: μια αλλαγή στο υπόλοιπο του αποστολέα και στο nonce. Αυτό είναι δυνατό επειδή η απόδειξη Merkle που χρησιμοποιείται για να αποδειχθεί η ύπαρξη του λογαριασμού χρησιμοποιείται για να προκύψει η νέα ρίζα κατάστασης.

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

Η διαδικασία επαναλαμβάνεται για κάθε συναλλαγή. Κάθε «βρόχος» δημιουργεί μια νέα ρίζα κατάστασης από την ενημέρωση του λογαριασμού του αποστολέα και μια επόμενη νέα ρίζα από την ενημέρωση του λογαριασμού του παραλήπτη. Όπως εξηγήθηκε, κάθε ενημέρωση στη ρίζα κατάστασης αντιπροσωπεύει ένα μέρος του δέντρου κατάστασης του πακέτου ενημέρωσης που αλλάζει.

Το κύκλωμα απόδειξης ZK επαναλαμβάνει ολόκληρο το πακέτο συναλλαγών, επαληθεύοντας την ακολουθία ενημερώσεων που οδηγούν σε μια τελική ρίζα κατάστασης μετά την εκτέλεση της τελευταίας συναλλαγής. Η τελευταία υπολογισμένη ρίζα Merkle γίνεται η νεότερη κανονική ρίζα κατάστασης του ZK-rollup.

Επαλήθευση απόδειξης

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

  • Προ-κατάσταση ρίζας: Η παλιά ρίζα κατάστασης του ZK-rollup (δηλαδή, πριν εκτελεστούν οι συναλλαγές παρτίδας), που αντανακλά την τελευταία γνωστή έγκυρη κατάσταση της αλυσίδας L2.

  • Μετα-κατάσταση ρίζας: Η νέα ρίζα κατάστασης του ZK-rollup (δηλαδή, μετά την εκτέλεση των συναλλαγών σε μορφή παρτίδας), που αντανακλά τη νεότερη κατάσταση της αλυσίδας L2. Η μετα-κατάσταση root είναι η τελική root που προκύπτει μετά την εφαρμογή ενημερώσεων κατάστασης στο κύκλωμα απόδειξης.

  • Ρίζα παρτίδας: Η ρίζα Merkle της παρτίδας, που προκύπτει από τη merklization των συναλλαγών στην παρτίδα και το hashing της ρίζας του δέντρου.

  • Εισαγωγές συναλλαγών: Δεδομένα που σχετίζονται με τις συναλλαγές που εκτελέστηκαν ως μέρος της υποβληθείσας παρτίδας.

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

Είσοδοι και έξοδοι

Οι χρήστες εισέρχονται στο ZK-rollup καταθέτοντας περιουσιακό στοιχείο στο συμβόλαιο του πακέτου ενημέρωσης που είναι αναπτυγμένο στην αλυσίδα επιπέδου 1. Αυτή η συναλλαγή μπαίνει σε ουρά καθώς μόνο οι χειριστές μπορούν να υποβάλουν συναλλαγές στο συμβόλαιο του πακέτου ενημέρωσης.

Εάν η εκκρεμής ουρά καταθέσεων αρχίσει να γεμίζει, ο χειριστής του ZK-rollup θα πάρει τις συναλλαγές κατάθεσης και θα τις υποβάλει στο συμβόλαιο rollup. Μόλις τα κεφάλαια του χρήστη βρίσκονται στο rollup, μπορούν να ξεκινήσουν συναλλαγές στέλνοντας συναλλαγές στον χειριστή για επεξεργασία. Οι χρήστες μπορούν να επαληθεύσουν τα υπόλοιπα στο rollup υπολογίζοντας το hash των δεδομένων του λογαριασμού τους, στέλνοντας το hash στο συμβόλαιο rollup και παρέχοντας μια απόδειξη Merkle για επαλήθευση έναντι της τρέχουσας ρίζας κατάστασης.

Η ανάληψη από ένα ZK-rollup σε L1 είναι απλή. Ο χρήστης ξεκινά τη συναλλαγή εξόδου στέλνοντας τα περιουσιακά του στοιχεία στο πακέτο ενημέρωσης σε έναν συγκεκριμένο λογαριασμό για κάψιμο. Εάν ο χειριστής συμπεριλάβει τη συναλλαγή στην επόμενη παρτίδα, ο χρήστης μπορεί να υποβάλει αίτηση ανάληψης στο συμβόλαιο στην αλυσίδα. Αυτή η αίτηση ανάληψης θα περιλαμβάνει τα εξής:

  • Απόδειξη Merkle που αποδεικνύει τη συμπερίληψη της συναλλαγής του χρήστη στον λογαριασμό καύσης σε μια παρτίδα συναλλαγών

  • Δεδομένα συναλλαγής

  • Batch root

  • Διεύθυνση L1 για τη λήψη κατατεθειμένων χρημάτων

Το συμβόλαιο του rollup κάνει hash στα δεδομένα συναλλαγής, ελέγχει αν υπάρχει η ρίζα παρτίδας και χρησιμοποιεί την απόδειξη Merkle για να ελέγξει εάν το hash της συναλλαγής είναι μέρος της ρίζας παρτίδας. Στη συνέχεια, το συμβόλαιο εκτελεί τη συναλλαγή εξόδου και στέλνει κεφάλαια στη διεύθυνση που επέλεξε ο χρήστης στο L1.

ZK-rollup και συμβατότητα EVM

Σε αντίθεση με τα optimistic rollup, τα ZK-rollup δεν είναι άμεσα συμβατά με το Εικονικό μηχάνημα του Ethereum (EVM). Η απόδειξη γενικής χρήσης υπολογισμού EVM σε κυκλώματα είναι πιο δύσκολη και απαιτεί περισσότερους πόρους από την απόδειξη απλών υπολογισμών (όπως η μεταφορά token που περιγράφηκε προηγουμένως).

Ωστόσο, η προόδος στην τεχνολογία μηδενικής γνώσης(opens in a new tab) πυροδοτεί το ενδιαφέρον για τον υπολογισμό EVM σε αποδείξεις μηδενικής γνώσης. Αυτές οι προσπάθειες στοχεύουν στη δημιουργία μιας υλοποίησης zero-knowledge EVM (zkEVM) που μπορεί να επαληθεύσει αποτελεσματικά τη σωστή εκτέλεση του προγράμματος. Ένα zkEVM αναδημιουργεί τους υπάρχοντες κωδικούς λειτουργίας EVM για απόδειξη/επαλήθευση σε κυκλώματα, επιτρέποντας την εκτέλεση έξυπνων συμβολαίων.

Όπως το EVM, ένα zkEVM μεταβαίνει μεταξύ καταστάσεων μετά την εκτέλεση υπολογισμών σε ορισμένες εισόδους. Η διαφορά είναι ότι το zkEVM δημιουργεί επίσης αποδείξεις μηδενικής γνώσης για να επαληθεύσει τη σωστή εκτέλεση κάθε βήματος στην εκτέλεση του προγράμματος. Οι αποδείξεις εγκυρότητας θα μπορούσαν να επαληθεύσουν τη σωστή εκτέλεση των λειτουργιών που επηρεάζουν την κατάσταση της VM (μνήμη, στοίβα, αποθήκευση) και τον ίδιο τον υπολογισμό (δηλαδή, κάλεσε η λειτουργία τους σωστούς opcode και τους εκτέλεσε σωστά;).

Η εισαγωγή των συμβατών με EVM ZK-rollup αναμένεται να βοηθήσει τους προγραμματιστές να αξιοποιήσουν την επεκτασιμότητα και τις εγγυήσεις ασφάλειας των αποδείξεων μηδενικής γνώσης. Επιπλέον, η συμβατότητα με την εγγενή υποδομή Ethereum σημαίνει ότι οι προγραμματιστές μπορούν να δημιουργήσουν dapp φιλικές προς τη μηδενική γνώση χρησιμοποιώντας οικεία (και δοκιμασμένα) εργαλεία και γλώσσες.

Πώς λειτουργούν τα τέλη των ZK-rollup;

Το ποσό που πληρώνουν οι χρήστες για συναλλαγές στα ZK-rollup εξαρτάται από τη χρέωση gas, όπως και στο Kεντρικό Δίκτυο του Ethereum. Ωστόσο, τα τέλη gas λειτουργούν διαφορετικά στο L2 και επηρεάζονται από τα ακόλουθα κόστη:

  1. Εγγραφή Κατάστασης: Υπάρχει ένα σταθερό κόστος για την εγγραφή στην κατάσταση του Ethereum (δηλαδή, την υποβολή μιας συναλλαγής στην αλυσίδα μπλοκ Ethereum). Τα ZK-rollups μειώνουν αυτό το κόστος με τις συγκεντρώσεις συναλλαγών και τη διανομή σταθερού κόστους σε πολλούς χρήστες.

  2. Δημοσίευση Δεδομένων: Τα ZK-rollup δημοσιεύουν δεδομένα κατάστασης για κάθε συναλλαγή στο Ethereum ως calldata. Τα κόστη calldata διέπονται επί του παρόντος από το EIP-1559(opens in a new tab), το οποίο ορίζει ένα κόστος ύψους 16 gas για μη μηδενικά byte και 4 gas για μηδενικά byte calldata, αντίστοιχα. Το κόστος που καταβάλλεται για κάθε συναλλαγή επηρεάζεται από το πόσα calldata πρέπει να δημοσιευθούν στην αλυσίδα γι' αυτό.

  3. Αμοιβές χειριστή L2: Αυτό είναι το ποσό που καταβάλλεται στον χειριστή του rollup ως αποζημίωση για τα υπολογιστικά κόστη που προκύπτουν από την επεξεργασία συναλλαγών, παρόμοια με τις «αμοιβές προτεραιότητας (φιλοδωρήματα)» συναλλαγών στο Kεντρικό Δίκτυο του Ethereum.

  4. Δημιουργία και επαλήθευση απόδειξης: Οι χειριστές ZK-rollup πρέπει να παράγουν αποδείξεις εγκυρότητας για παρτίδες συναλλαγών, κάτι που απαιτεί πολλούς πόρους. Η επαλήθευση αποδείξεων μηδενικής γνώσης στο Mainnet κοστίζει επίσης gas (~ 500.000 gas).

Εκτός από τις συγκεντρώσεις συναλλαγών, τα ZK-rollups μειώνουν τις αμοιβές για τους χρήστες με τη συμπίεση των δεδομένων συναλλαγών. Μπορείτε να δείτε μια πραγματική εικόνα(opens in a new tab) του κόστους χρήσης των Ethereum ZK-rollups.

Πώς πετυχαίνουν τα ZK-rollup την επέκταση του Ethereum;

Συμπίεση δεδομένων συναλλαγών

Τα πακέτα ενημέρωσης ZK επεκτείνουν την απόδοση στο βασικό επίπεδο του Ethereum μεταφέροντας τον υπολογισμό εκτός αλυσίδας, αλλά η πραγματική ώθηση για την κλιμάκωση προέρχεται από τη συμπίεση δεδομένων συναλλαγών. Το μέγεθος του μπλοκ του Ethereum περιορίζει τα δεδομένα που μπορεί να περιέχει κάθε μπλοκ και, κατ' επέκταση, τον αριθμό των συναλλαγών που υποβάλλονται σε επεξεργασία ανά μπλοκ. Με τη συμπίεση δεδομένων που σχετίζονται με συναλλαγές, τα ZK-rollups αυξάνουν σημαντικά τον αριθμό των συναλλαγών που επεξεργάζονται ανά μπλοκ.

Τα ZK-rollup μπορούν να συμπιέσουν τα δεδομένα συναλλαγών καλύτερα από τα optimistic rollup δεδομένου ότι δεν χρειάζεται να δημοσιεύουν όλα τα δεδομένα που απαιτούνται για την επικύρωση κάθε συναλλαγής. Πρέπει μόνο να δημοσιεύσουν τα ελάχιστα δεδομένα που απαιτούνται για την πιο πρόσφατη κατάσταση λογαριασμών και υπολοίπων στο rollup.

Αναδρομικές αποδείξεις

Ένα πλεονέκτημα των αποδείξεων μηδενικής γνώσης είναι ότι οι αποδείξεις μπορούν να επαληθεύσουν άλλες αποδείξεις. Για παράδειγμα, ένα ενιαίο ZK-SNARK μπορεί να επαληθεύσει άλλα ZK-SNARKs. Τέτοιες «αποδείξεις αποδείξεων» ονομάζονται αναδρομικές αποδείξεις και αυξάνουν δραματικά την απόδοση των ZK-rollups.

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

Ωστόσο, οι αναδρομικές αποδείξεις καθιστούν δυνατή την ολοκλήρωση πολλών μπλοκ με μία απόδειξη εγκυρότητας. Αυτό συμβαίνει επειδή το κύκλωμα απόδειξης συγκεντρώνει αναδρομικά πολλές αποδείξεις μπλοκ έως ότου δημιουργηθεί μία τελική απόδειξη. Ο χειριστής L2 υποβάλλει αυτήν την αναδρομική απόδειξη και εάν το συμβόλαιο την αποδεχτεί, όλα τα σχετικά μπλοκ θα ολοκληρωθούν άμεσα. Με τις αναδρομικές αποδείξεις, αυξάνεται ο αριθμός των συναλλαγών ZK-rollup που μπορούν να ολοκληρωθούν στο Ethereum σε διαστήματα.

Πλεονεκτήματα και μειονεκτήματα των ZK-rollup

ΠλεονεκτήματαΜειονεκτήματα
Οι αποδείξεις εγκυρότητας εξασφαλίζουν τη σωστή εκτέλεση των εκτός αλυσίδας συναλλαγών και αποτρέπουν τους χειριστές από την εκτέλεση μη έγκυρων μεταβάσεων κατάστασης.Το κόστος που σχετίζεται με τον υπολογισμό και την επαλήθευση των αποδείξεων εγκυρότητας είναι σημαντικό και μπορεί να αυξήσει τα τέλη για τους χρήστες του rollup.
Προσφέρει ταχύτερη οριστικοποίηση συναλλαγών καθώς οι ενημερώσεις κατάστασης εγκρίνονται μόλις επαληθευτούν οι αποδείξεις εγκυρότητας στο L1.Η κατασκευή συμβατών με EVM ZK-rollups είναι δύσκολη λόγω της πολυπλοκότητας της τεχνολογίας μηδενικής γνώσης.
Βασίζεται σε μη αξιόπιστους κρυπτογραφικούς μηχανισμούς για την ασφάλεια, όχι στην ειλικρίνεια των κερδοσκοπικών παραγόντων όπως συμβαίνει με τα optimistic rollup.Η παραγωγή αποδείξεων εγκυρότητας απαιτεί εξειδικευμένο υλικό, το οποίο μπορεί να ενθαρρύνει τον κεντρικό έλεγχο της αλυσίδας από λίγα μέρη.
Αποθηκεύει τα δεδομένα που απαιτούνται για την ανάκτηση της εκτός αλυσίδας κατάστασης στο L1, το οποίο εγγυάται την ασφάλεια, την αντοχή στη λογοκρισία και την αποκέντρωση.Οι κεντρικοποιημένοι χειριστές (sequencer) μπορούν να επηρεάσουν τη σειρά των συναλλαγών.
Οι χρήστες επωφελούνται από μεγαλύτερη κεφαλαιακή απόδοση και μπορούν να αποσύρουν κεφάλαια από το L2 χωρίς καθυστερήσεις.Οι απαιτήσεις υλικού μπορούν να μειώσουν τον αριθμό των συμμετεχόντων που μπορούν να αναγκάσουν την αλυσίδα να προχωρήσει, αλλά αυξάνεται ο κίνδυνος κακόβουλοι χειριστές να παγώσουν την κατάσταση του rollup και να λογοκρίνουν τους χρήστες.
Δεν εξαρτάται από τις υποθέσεις επιβιωσιμότητας και οι χρήστες δε χρειάζεται να επικυρώσουν την αλυσίδα για να προστατεύσουν τα κεφάλαιά τους.Ορισμένα συστήματα απόδειξης (π.χ., ZK-SNARK) απαιτούν μια αξιόπιστη ρύθμιση που, εάν γίνει αντικείμενο λανθασμένου χειρισμού, θα μπορούσε ενδεχομένως να θέσει σε κίνδυνο το μοντέλο ασφάλειας ενός ZK-rollup.
Η καλύτερη συμπίεση δεδομένων μπορεί να βοηθήσει στη μείωση του κόστους δημοσίευσης calldata στο Ethereum και στη μείωση των τελών rollup για τους χρήστες.

Μια οπτική επεξήγηση των ZK-rollup

Παρακολουθήστε το Finematics να εξηγεί τα ZK-rollup:

Ποιος χτίζει ένα zkEVM;

Τα έργα που χτίζουν zkEVM περιλαμβάνουν:

  • zkEVM(opens in a new tab) - Το zkEVM είναι ένα έργο που χρηματοδοτείται από το Ίδρυμα Ethereum για την ανάπτυξη ενός συμβατού με EVM ZK-rollup και ενός μηχανισμού για τη δημιουργία αποδείξεων εγκυρότητας για μπλοκ Ethereum.

  • Polygon zkEVM(opens in a new tab) - _ Το Polygon zkEVM είναι ένα αποκεντρωμένο ZK Rollup στο κύριο δίκτυο Ethereum που λειτουργεί σε μια μηχανή εικονικού Ethereum μηδενικής γνώσης (zkEVM) που εκτελεί συναλλαγές Ethereum με διαφανή τρόπο, συμπεριλαμβανομένων έξυπνων συμβολαίων με επικυρώσεις απόδειξης μηδενικής γνώσης._

  • Scroll(opens in a new tab) - Το Scroll είναι μια τεχνολογική εταιρεία που εργάζεται για την κατασκευή μιας εγγενούς λύσης zkEVM Επιπέδου 2 για το Ethereum.

  • Taiko(opens in a new tab) - Το Taiko είναι ένα αποκεντρωμένο, ισοδύναμο με Ethereum ZK-rollup (ένα ZK-EVM Τύπου 1(opens in a new tab)).

  • ZKsync(opens in a new tab) - Το ZKsync Era είναι ένα συμβατό με EVM ZK Rollup που κατασκευάστηκε από τη Matter Labs, με τη χρήση του δικού της zkEVM.

  • Starknet(opens in a new tab) - Το StarkNet είναι μια συμβατή με EVM λύση κλιμάκωσης επιπέδου 2 που κατασκευάστηκε από τη StarkWare.

  • Morph(opens in a new tab) - Το Morph είναι μια υβριδική λύση κλιμάκωσης rollup που χρησιμοποιεί απόδειξη μηδενικής γνώσης για να αντιμετωπίσει το ζήτημα της αμφισβήτησης κατάστασης στο Επίπεδο 2.

Περαιτέρω υλικό ανάγνωσης σχετικά με τα ZK-rollup

Ήταν χρήσιμο αυτό το άρθρο;