


Εισαγωγή στη σειρά
Καλώς ήρθες σε μια νέα σειρά: Zero to Zero Knowledge!
Σε αυτή τη σειρά θα μάθουμε τα βασικά στοιχεία ενός ευρέος φάσματος τεχνολογιών που ενσωματώνονται στα πρωτόκολλά μας που διατηρούν την ιδιωτικότητα.
Σήμερα ξεκινάμε με τις συναρτήσεις κατακερματισμού — ένα βασικό κομμάτι της κρυπτογραφίας που χρησιμοποιείται στα blockchain. Αργότερα σε αυτή τη σειρά θα καλύψουμε ορισμένα θέματα που βασίζονται στις ιδιότητές τους.
Οι συναρτήσεις κατακερματισμού δέχονται μια είσοδο οποιουδήποτε μήκους και παράγουν μια έξοδο σταθερού μήκους.

Ας το κατανοήσουμε πρακτικά χρησιμοποιώντας αυτό το εργαλείο!
Εισήγαγε οποιοδήποτε αυθαίρετο κείμενο για να παραγάγεις μια έξοδο σταθερού μήκους. Παρατήρησε πώς η έξοδος μεταβάλλεται ανάλογα με τον διαφορετικό αλγόριθμο κατακερματισμού.
Δοκίμασέ το: https://cryptii.com/pipes/hash-function
Οι κρυπτογραφικές συναρτήσεις κατακερματισμού πρέπει να έχουν αυτές τις 3 ιδιότητες:
Υπάρχουν αρκετές κατηγορίες συναρτήσεων κατακερματισμού. Μερικά παραδείγματα:
Μια εισαγωγή στο BLAKE2: https://www.blake2.net
Οι έλεγχοι ακεραιότητας δεδομένων είναι ένα παράδειγμα «κατακερματισμού ακεραιότητας». Χρησιμοποιούνται για την παραγωγή αθροισμάτων ελέγχου σε αρχεία δεδομένων και παρέχουν σε έναν χρήστη διαβεβαίωση ορθότητας.

Ένα δέντρο κατακερματισμού ή δέντρο Merkle αποτελείται από κλαδιά και κόμβους-φύλλα που επισημαίνονται με τον κρυπτογραφικό κατακερματισμό ενός μπλοκ δεδομένων.

Τα δέντρα Merkle αποτελούν παράδειγμα ενός σχήματος κρυπτογραφικού commitment. Η ρίζα του δέντρου θεωρείται commitment και αποδεικνύεται ότι οι κόμβοι-φύλλα αποτελούν μέρος του αρχικού commitment.
Επαληθεύουν δεδομένα που αποθηκεύονται ή μεταφέρονται σε P2P δίκτυα, διασφαλίζοντας ότι τα δεδομένα που λαμβάνονται από ομότιμους δεν έχουν αλλοιωθεί.
Στα θωρακισμένα pools του Zcash Sapling & Orchard, το δέντρο commitment των note χρησιμοποιείται για να επαληθεύει ότι οι συναλλαγές είναι έγκυρες σύμφωνα με τη συναίνεση, ενώ αποκρύπτει πλήρως τον αποστολέα, τον παραλήπτη και τα ποσά που δαπανώνται.
Το SHA256 είναι ένα παράδειγμα «κατακερματισμού υπογραφής» που χρησιμοποιείται για την επιβολή της αμεταβλητότητας κάθε μπλοκ στην αλυσίδα του Bitcoin. Οι εξορύκτες χρησιμοποιούν τον κατακερματισμό του προηγούμενου μπλοκ + έναν κατακερματισμό όλων των συναλλαγών στο τρέχον μπλοκ (hashMerkleRoot) + χρονική σήμανση + τυχαία τιμή / δυσκολία δικτύου για νέα μπλοκ.

Το Equihash είναι ο αλγόριθμος κατακερματισμού που χρησιμοποιείται στην εξόρυξη Zcash. Χρησιμοποιείται επίσης από δίκτυα όπως τα Komodo & Horizen.
Equihash: Ασύμμετρη απόδειξη εργασίας βασισμένη στο γενικευμένο πρόβλημα γενεθλίων (Biryukov and Khovratovich): https://eprint.iacr.org/2015/946
Για να κατανοήσεις καλύτερα τους διαφορετικούς τύπους συναρτήσεων κατακερματισμού και τις σχετικές χρήσεις τους, αυτός είναι ένας εξαιρετικός πόρος:
https://en.wikipedia.org/wiki/Hash_function
Νήμα από τον/την ZecHub (@ZecHub)
Αρχικό νήμα στο X: https://x.com/ZecHub/status/1621240109663227906
Αυτή η σελίδα συντάχθηκε από το αρχικό νήμα του/της Zero to Zero Knowledge για το wiki του ZecHub.