Ένα hash είναι ένα δακτυλικό αποτύπωμα δεδομένων. Τροφοδοτήστε οποιαδήποτε είσοδο σε μια συνάρτηση κατακερματισμού και θα λάβετε πίσω μια συμβολοσειρά χαρακτήρων σταθερού μήκους. Η ίδια είσοδος παράγει πάντα το ίδιο hash. Αλλάξτε έναν χαρακτήρα στην είσοδο και το hash αλλάζει εντελώς. Αυτή η ιδιότητα καθιστά τα hashes χρήσιμα για επαλήθευση. Μπορείτε να ελέγξετε ότι ένα αρχείο δεν έχει τροποποιηθεί συγκρίνοντας το hash του με μια γνωστή καλή τιμή. Το Bitcoin χρησιμοποιεί SHA-256. Το Ethereum χρησιμοποιεί Keccak-256. Κάθε μπλοκ περιέχει το hash του προηγούμενου μπλοκ, το οποίο συνδέει την αλυσίδα.
Τα hashes είναι μονόδρομα. Δεν μπορείτε να εργαστείτε προς τα πίσω από ένα hash στην αρχική είσοδο. Γι' αυτό χρησιμοποιούνται για κωδικούς πρόσβασης και αποδείξεις. Οι miners ανταγωνίζονται για να βρουν ένα hash κάτω από έναν συγκεκριμένο στόχο. Αλλάζουν μια τιμή nonce, κατακερματίζουν την κεφαλίδα του μπλοκ και ελέγχουν το αποτέλεσμα. Η διαδικασία είναι εικασία-και-έλεγχος σε μαζική κλίμακα. Η εύρεση ενός έγκυρου hash αποδεικνύει ότι έγινε εργασία. Η επαλήθευσή του δεν απαιτεί σχεδόν καμία προσπάθεια. Αυτή η ασυμμετρία είναι το θεμέλιο της απόδειξης εργασίας. Οι συναρτήσεις κατακερματισμού χρησιμοποιούνται επίσης για τη δημιουργία διευθύνσεων πορτοφολιών και την επαλήθευση της ακεραιότητας των συναλλαγών.
Ιδιότητες συνάρτησης κατακερματισμού
- Ντετερμινιστική — η ίδια είσοδος δίνει πάντα την ίδια έξοδο
- Γρήγορος υπολογισμός — η επαλήθευση είναι φθηνή
- Ανθεκτικό σε προεικόνα — δεν μπορεί να αντιστρέψει το hash
- Φαινόμενο χιονοστιβάδας — μικρή αλλαγή εισόδου, εντελώς διαφορετική έξοδος
Ένα hash δεν είναι κρυπτογράφηση. Είναι μια μονόδρομη σύνοψη. Δεν υπάρχει κλειδί και δεν υπάρχει τρόπος αποκρυπτογράφησης.
Comments
No comments yet. Be the first to share a thought.
Leave a comment