Το δίκτυο δοκιμής συγχώνευσης Ethereum Kintsugi χωρίζεται ανά σφάλμα, να γιατί

Το συμβάν συγχώνευσης στο δίκτυο Ethereum είναι η μετάβαση στο συναινετικό μοντέλο Proof-of-Stake από το μοντέλο Proof-of-Work που χρησιμοποιείται επί του παρόντος. Αυτή η συγχώνευση σημαίνει ότι το τρέχον σύστημα mainnet του Ethereum και η νέα αλυσίδα Beacon, που συχνά αναφέρεται ως Ethereum 2.0, θα συγχωνευθούν σε ένα blockchain.

Για τη δοκιμή της συγχώνευσης, το δίκτυο δοκιμής Kintsugi αναπτύχθηκε τον Δεκέμβριο. Ο σκοπός του δικτύου δοκιμών είναι να τρέξει διαφορετικές περιπτώσεις ακμών και να παρατηρήσει πώς συμπεριφέρεται το σύστημα. Ένας από τους προγραμματιστές που συμμετέχουν στην εκτέλεση δοκιμών στο Kintsugi είναι Marius van der Wijden, προγραμματιστής πυρήνων Ethereum που συνεργάζεται με την ομάδα πελατών Geth (Go-Ethereum).

«Το δοκιμαστικό δίκτυο λειτουργούσε άψογα για μερικές εβδομάδες. Την περασμένη εβδομάδα δημιούργησα ένα fuzzer που θα έστελνε μη έγκυρα μπλοκ. Ένα μπλοκ περιέχει πολλές πληροφορίες, όπως τις συναλλαγές, τον κατακερματισμό του προηγούμενου μπλοκ, το όριο αερίου κ.λπ.», λέει ο Marius van der Wijden.

Ορισμένες υλοποιήσεις δεν εκτελέστηκαν και δεν επαληθεύτηκαν το μπλοκ

Το fuzzer είναι ένας κοινός τύπος εργαλείου δοκιμών που χρησιμοποιείται μεταξύ των προγραμματιστών για τη δημιουργία τυχαίων εισαγωγών σε συναρτήσεις ή άλλα κομμάτια κώδικα και για να προσπαθήσει να τα κάνει να σπάσουν με τον ένα ή τον άλλο τρόπο. Πρόκειται για τη δημιουργία εσφαλμένων και απροσδόκητων εισροών και την παρακολούθηση του τι συμβαίνει στο σύστημα.

Το fuzzer που δημιουργήθηκε από τον van der Wijden παράγει ένα έγκυρο μπλοκ και αλλάζει ένα στοιχείο του για να το καταστήσει άκυρο. Μια τεχνική που χρησιμοποιεί είναι η αλλαγή ενός στοιχείου σε ένα άλλο. Σε αυτήν την περίπτωση, το fuzzer άλλαξε το blockhash στο γονικό hash.

«Οι κόμβοι θα πρέπει να απορρίπτουν ένα τέτοιο τροποποιημένο μπλοκ. Ωστόσο, δεδομένου ότι ο γονικός κατακερματισμός έδειξε ένα έγκυρο μπλοκ, ορισμένες υλοποιήσεις δεν εκτέλεσαν και επαλήθευσαν το μπλοκ, αλλά το αναζήτησαν σε μια κρυφή μνήμη. Δεδομένου ότι το προηγούμενο μπλοκ ήταν έγκυρο και στην κρυφή μνήμη, υπέθεσαν ότι το νέο μπλοκ ήταν επίσης έγκυρο», εξηγεί ο van der Wijden.

Διαίρεση δικτύου δύο φορές

Το αποτέλεσμα ήταν ότι το μισό δίκτυο, οι πελάτες Geth, απέρριψαν το μπλοκ, ενώ το άλλο μισό, οι πελάτες Nethermind- και Besu, το αποδέχτηκαν, προκαλώντας τη διάσπαση της αλυσίδας, καθώς τώρα είχαμε δύο διαφορετικές απόψεις για τη σωστή κατάσταση. Για να χειροτερέψουν τα πράγματα, υπήρχε ένα άλλο θέμα στην κορυφή.

Σύμφωνα με τον van der Wijden, οι κόμβοι της αλυσίδας Geth, με τη σειρά τους, που αποτελούνται από Lighthouse-Geth, Prysm-Geth, Lodestar-Geth, Nimbus-Geth και Teku-Geth, χωρίζονται επίσης μεταξύ τους.

«Αυτή η διάσπαση εξακολουθεί να διερευνάται, αλλά φαίνεται ότι ο Teku μπορεί επίσης να έχει κάποιο μηχανισμό προσωρινής αποθήκευσης που απέτυχε», λέει ο van der Wijden.

Δεδομένου ότι υπάρχουν αρκετές διαφορετικές διχάλες του δικτύου δοκιμής Kintsugi τη στιγμή της γραφής, και κάθε κόμβος πιστεύει ότι βρίσκεται σε μια σωστή διχάλα, το δίκτυο δεν οριστικοποιείται πλέον.

«Θα βρούμε κάτι για να επαναφέρουμε το δίκτυο. Έχουμε ήδη ενημερώσει τον πελάτη Nethermind και αυτοί οι κόμβοι βρίσκονται στη σωστή αλυσίδα τώρα. Εξακολουθούμε να χρειαζόμαστε τη διόρθωση στο Teku, καθώς πάνω από το 33 τοις εκατό των κόμβων είναι Teku, διαφορετικά η αλυσίδα δεν θα οριστικοποιηθεί», λέει ο van der Wijden.

Το περιστατικό φέρνει καλό

Σύμφωνα με τον van der Wijden, αυτό το περιστατικό δεν απαγορεύει ή καθυστερεί τις περαιτέρω δοκιμές της συγχώνευσης Ethereum, ούτε καθυστερεί την ίδια τη συγχώνευση. Στην πραγματικότητα, ο van der Wijden λέει ότι το περιστατικό βοηθά στη δοκιμή περιπτώσεων αιχμής που θα ήταν δύσκολο να ελεγχθούν εάν το δίκτυο λειτουργούσε σωστά.

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

«Δεν νομίζω ότι αυτό θα καθυστερήσει τη συγχώνευση, καθώς η συγχώνευση δεν έχει προγραμματιστεί ακόμη. Αλλά δείχνει πόσο σημαντική είναι η δοκιμή. Νομίζω ότι η συγχώνευση προχωρά πολύ καλά. Χρειαζόμαστε μερικές ακόμη εβδομάδες για να φέρουμε το λογισμικό σε αποδεκτή κατάσταση και μετά χρειαζόμαστε μερικούς μήνες για να το δοκιμάσουμε», λέει ο van der Wijden.

Τι γίνεται αν αυτό συμβεί στο mainnet;

Μια ενδιαφέρουσα ερώτηση είναι τι θα είχε συμβεί αν είχε συμβεί ένα σφάλμα σαν αυτό στην κύρια αλυσίδα.

«Ξεκινήσαμε τις δοκιμές αρκετά νωρίς, οπότε περιμέναμε μερικά σφάλματα σαν αυτό. Ωστόσο, ένα τέτοιο σφάλμα στο mainnet θα ήταν αρκετά δυσάρεστο, καθώς θα έπρεπε να βρούμε και να διορθώσουμε το σφάλμα, στο οποίο είμαστε αρκετά καλοί, να απελευθερώσουμε τον κώδικα και μετά να ενημερώσουμε όλους τους συμμετέχοντες ότι πρέπει να ενημερώσουν τους κόμβους τους. Το τελευταίο μέρος είναι το δύσκολο κατά τη γνώμη μου, καθώς ορισμένοι χρήστες δεν παρακολουθούν πολύ στενά την εξέλιξη», λέει ο van der Wijden.

Για περισσότερες λεπτομέρειες, ο ενδιαφερόμενος αναγνώστης ενθαρρύνεται να διαβάσει το έργο του Marius van der Wijden tweets σχετικά με το περιστατικό.

Ενημερωτικό δελτίο CryptoSlate

Περιλαμβάνει μια περίληψη των πιο σημαντικών καθημερινών ιστοριών στον κόσμο της κρυπτογράφησης, του DeFi, των NFT και άλλων.

Πάρτε μια άκρη στην αγορά κρυπτογράφησης

Αποκτήστε πρόσβαση σε περισσότερες πληροφορίες και περιεχόμενο κρυπτογράφησης σε κάθε άρθρο ως πληρωμένο μέλος του CryptoSlate Edge.

Ανάλυση στην αλυσίδα

Στιγμιότυπα τιμών

Περισσότερο πλαίσιο

Εγγραφείτε τώρα για $ 19 / μήνα Εξερευνήστε όλα τα προνόμια

Πηγή: https://cryptoslate.com/ethereum-merge-testnet-kintsugi-split-by-bug-heres-why/