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

Άποψη: 259|Απάντηση: 0

Λεπτομερής επεξήγηση της κωδικοποίησης blockchain Base58, Base58Check, Bech32 και Bech32m

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2025-10-17 09:01:55 | | | |
Τα Base58, Base58Check, Bech32 και Bech32m είναι μορφές κωδικοποίησης που χρησιμοποιούνται συνήθως στην τεχνολογία blockchain, που χρησιμοποιούνται κυρίως για τη βελτίωση της αναγνωσιμότητας, τη μείωση των σφαλμάτων και τη διασφάλιση της ακεραιότητας των δεδομένων. Αυτοί οι τέσσερις κωδικοί έχουν τα δικά τους πλεονεκτήματα στη διασφάλιση της ασφάλειας, της συμβατότητας και των δυνατοτήτων διόρθωσης σφαλμάτων και αποτελούν σημαντικούς ακρογωνιαίους λίθους των σύγχρονων συστημάτων διευθύνσεων blockchain.

Βάση58

Το "Base58" είναι μια μέθοδος κωδικοποίησης που εφευρέθηκε από τον Satoshi Nakamoto, η οποία είναι προσαρμοσμένη από μια γνωστή μέθοδο κωδικοποίησης "Base64". Το σύνολο χαρακτήρων Base64 περιλαμβάνει: όλους τους αριθμούς και κεφαλαία και πεζά γράμματα, καθώς και δύο σύμβολα ("+" και "/"). Συνολικά 64 χαρακτήρες. Ο Satoshi Nakamoto αφαίρεσε τον αριθμό 0, τα κεφαλαία γράμματα I και O, το πεζό γράμμα l και το σύμβολο και έγινε Base58.

Σύνολο χαρακτήρων: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Έλεγχος

Σε σύγκριση με το Base58, η κωδικοποίηση Base58Check έχει μόνο έναν ακόμη υπολογισμό αθροίσματος ελέγχου. Οπως φαίνεται παρακάτω:



Το Base58Check επιλύει τα προβλήματα της επιρρεπούς σε σφάλματα, της δύσκολης αναγνώρισης και της μη επαλήθευσης στις παραδοσιακές μεθόδους κωδικοποίησης, παρέχοντας μια ασφαλή, συμπαγή, φιλική προς τον άνθρωπο και ανίχνευση σφαλμάτων μέθοδο αναπαράστασης για βασικά δεδομένα στο blockchain (όπως διευθύνσεις και ιδιωτικά κλειδιά). Αν και τώρα αντικαθίσταται σταδιακά από το πιο προηγμένο Bech32/Bech32m (για διευθύνσεις SegWit), έπαιξε καθοριστικό ρόλο στο πρώιμο οικοσύστημα Bitcoin.

Μπεχ32

Το "Bech32" είναι μια μέθοδος κωδικοποίησης που ορίζεται από το BIP 0173, το οποίο συντάχθηκε από τους Pieter Wuille και Greg Maxwell. Ωστόσο, αυτή η κωδικοποίηση έχει και την προέλευσή της: Το "Bech" αναφέρεται στο "BCH", έναν κυκλικό αλγόριθμο κωδικοποίησης διόρθωσης σφαλμάτων που εφευρέθηκε από τρεις μαθηματικούς το 1959 και το 1960 αντίστοιχα (το όνομα BCH προέρχεται από τα ονόματα αυτών των τριών μαθηματικών). "32" σημαίνει ότι το σύνολο χαρακτήρων της μεθόδου κωδικοποίησης έχει μόνο 32 χαρακτήρες: πεζά γράμματα και αριθμούς, εξαιρουμένων των αριθμών "1", των γραμμάτων "b", "i" και "o".



Στην αρχή του BIP 0173, οι συγγραφείς επισημαίνουν τις ανεπιθύμητες πτυχές του Base58:

  • Το Base58 χρησιμοποιεί τόσο μεγάλα όσο και μικρά αγγλικά γράμματα, γεγονός που κάνει τα δεδομένα του να αντλούνται σε κωδικούς QR όχι στη λειτουργία μικρότερου "αριθμητικού αλφαβήτου", αλλά μόνο στη λειτουργία μεγαλύτερου "byte data".
  • Η χρήση τόσο της θήκης όσο και της θήκης καθιστά επίσης δύσκολη τη μεταγραφή, την πληκτρολόγηση και την ανάγνωση στο πληκτρολόγιο του τηλεφώνου.
  • Το άθροισμα ελέγχου απαιτούσε δύο διαδοχικές λειτουργίες SHA256, οι οποίες ήταν αργές και δεν είχαν τη δυνατότητα να εντοπίσουν τη λάθος τοποθέτηση.
  • Οι περισσότερες μέθοδοι κωδικοποίησης σφαλμάτων με δυνατότητα τοπικής προσαρμογής λειτουργούν μόνο εάν το μέγεθος του συνόλου χαρακτήρων είναι κύριας ισχύος και το 58 δεν είναι κύρια ισχύς.
  • Το Base58 είναι πιο περίπλοκο στην αποκωδικοποίηση και πιο αργό στην αποκωδικοποίηση.

Ως αποτέλεσμα, η νέα προσέγγιση του Bech32 χρησιμοποιεί μόνο πεζά γράμματα και αριθμούς. Όταν χρειάζεται, όπως όταν σχεδιάζετε έναν κωδικό QR, όλα αυτά τα γράμματα μπορούν να αντικατασταθούν με κεφαλαία γράμματα για μια πιο συμπαγή αναπαράσταση. Μικρότεροι κωδικοί QR, καθώς οι διευθύνσεις Bech32 είναι μοναδικές, μπορείτε να τους κωδικοποιήσετε ως κωδικούς QR χρησιμοποιώντας αλφαριθμητική λειτουργία. Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε έναν πιο συμπαγή κωδικό QR επειδή το Base58 απαιτεί κεφαλαία και πεζά γράμματα (που σημαίνει ότι δεν μπορείτε να χρησιμοποιήσετε την αλφαριθμητική λειτουργία), ενώ το Bech32 όχι. Οπως φαίνεται παρακάτω:



Όπως μπορείτε να δείτε, παρά τη διεύθυνση Bech32Περιέχει περισσότερους χαρακτήρες, αλλά η δυνατότητα χρήσης αλφαριθμητικών μοτίβων σημαίνει ότι οι κωδικοί QR χρησιμοποιούν λιγότερα δεδομένα συνολικά

Ταυτόχρονα, το Bech32 έχει τη δυνατότητα να εντοπίζει σφάλματα: μπορεί όχι μόνο να βρει ότι έχετε κάνει ένα σφάλμα αντιγραφής, αλλά και να επισημάνει ποια bit έχετε αντιγράψει λανθασμένα (αυτή η ικανότητα εύρεσης σφαλμάτων είναι πολύ ανώτερη από το Base58).

Στην πραγματικότητα, ο αλγόριθμος BCH έχει επίσης μια λειτουργία "διόρθωσης σφαλμάτων": μπορεί όχι μόνο να υποδείξει ποια bit έχετε αντιγράψει λανθασμένα, αλλά και ποιους χαρακτήρες πρέπει να είναι. Ωστόσο, οι συντάκτες του BIP 0173 βρήκαν τους εγγενείς κινδύνους του: αφενός, η ενίσχυση της διόρθωσης σφαλμάτων αποδυναμώνει την ικανότητα εντοπισμού σφαλμάτων. Από την άλλη πλευρά, εάν ο χρήστης εμπιστεύεται υπερβολικά τις δυνατότητες διόρθωσης σφαλμάτων του λογισμικού, το λογισμικό μπορεί να διορθώσει τα λανθασμένα δεδομένα που εισήγαγε ο χρήστης σε ένα "έγκυρο αλλά άχρηστο" κομμάτι δεδομένων - αν και είναι έγκυρο ως κομμάτι κωδικοποιημένων δεδομένων BCH. Ωστόσο, είναι πιθανό το αποκατεστημένο σενάριο Bitcoin να μην είναι υπό τον έλεγχο του παραλήπτη ή ακόμα και κανενός. Αυτό είναι εξαιρετικά επικίνδυνο. Επομένως, το BIP 0173 προειδοποιεί: "Εκτός από την υπενθύμιση στους χρήστες ποια bit μπορεί να έχουν αντιγραφεί λανθασμένα, το λογισμικό δεν πρέπει να εφαρμόζει δυνατότητες διόρθωσης σφαλμάτων (να δίνει προτάσεις διόρθωσης)." ”

Επιπλέον, το Bech32 ακολουθεί το μοτίβο που βρίσκεται στην κωδικοποίηση Base58:

1. Τα δεδομένα Bech32 θα ξεκινούν με μια παράγραφο "δεδομένα με νόημα (hrp)", παρόμοια με το πρόθεμα στο Base58, το οποίο μπορεί να υποδεικνύει τι είδους δεδομένα είναι.
Το HRP μπορεί να χρησιμοποιήσει πολύ περισσότερους από 32 χαρακτήρες. Το Bech32 χρησιμοποιεί επίσης τον αριθμό "1" ως διαχωριστικό για να διαχωρίσει το HRP από τα δεδομένα που πρόκειται πραγματικά να αποκωδικοποιηθούν.
Εκτός από το Bitcoin, υπάρχουν πολλά άλλα έργα που έχουν επίσης υιοθετήσει το Bech32. Το HRP χρησιμοποιείται για τη διάκριση δεδομένων από διαφορετικά στοιχεία. Ακολουθεί μια λίστα με εγγεγραμμένα HRP, η οποία είναι πολύ ενδιαφέρουσα (αλλά μόνο ενδιαφέρουσα).
2. Ο Bech32 σχεδίασε επίσης ένα άθροισμα ελέγχου που καταλαμβάνει τους τελευταίους 6 χαρακτήρες των κωδικοποιημένων δεδομένων.

Μπεχ32λ

Το "Bech32m" είναι μια μέθοδος κωδικοποίησης που ορίζεται από το BIP 0350. Σύνδεση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.Προτάθηκε επειδή οι προγραμματιστές ανακάλυψαν μια ευπάθεια στην κωδικοποίηση Bech32:

Όταν ο τελευταίος χαρακτήρας είναι "p", η εισαγωγή ή η αφαίρεση οποιουδήποτε αριθμού "q" μπροστά από αυτόν τον χαρακτήρα δεν θα προκαλέσει σφάλμα αθροίσματος ελέγχου (τα δεδομένα θα εξακολουθούν να θεωρούνται έγκυρα), τότεΟ μηχανισμός αθροίσματος ελέγχου χάνει εντελώς τη λειτουργία τουΤελειώνω.

Εάν δεν προσθέσετε ένα τυποποιημένο σενάριο Bitcoin, αυτό το πρόβλημα μπορεί να λυθεί εύκολα: τόσο η διεύθυνση P2WPKH όσο και η διεύθυνση P2WSH έχουν ένα συγκεκριμένο μήκος, απλώς προσθέστε τον έλεγχο μήκους. Ωστόσο, λαμβάνοντας υπόψη ότι θα προσθέσουμε επίσης νέα τυποποιημένα σενάρια στο μέλλον, το μήκος της διεύθυνσης ενδέχεται να αλλάξει, επομένως είναι απαραίτητο να διορθωθεί αυτό το πρόβλημα.

Το Bech32m διορθώνει αυτό το πρόβλημα αλλάζοντας μια παράμετρο στη γεννήτρια αθροίσματος ελέγχου Bech32.

Προς το παρόν, το Bech32m χρησιμοποιείται μόνο για την κωδικοποίηση διευθύνσεων για σενάρια "P2TR" που προστίθενται με την αναβάθμιση "Taproot". Μπορεί να χρησιμοποιηθεί στην κωδικοποίηση διευθύνσεων άλλων τυποποιημένων σεναρίων στο μέλλον.

Αναφορά:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:tiktok, ο Douyin καταγράφουν το πακέτο και σκοτώνουν το σενάριο Frida, το οποίο μπορεί να εντοπίσει τη θέση της ενημέρωσης κώδικα αρχείου SO
Επόμενος:Εισαγωγή στους τύπους διευθύνσεων Bitcoin Legacy, Nested SegWit, Native SegWit και Taproot
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com