Πώς δημιουργείται η ρίζα Merkle;
Ξεκίνα με το ID κάθε συναλλαγής στο block, που είναι από μόνο του hash διπλού SHA-256. Βάλ’ τα στη σειρά, με πρώτη τη συναλλαγή coinbase. Ένωσε τα γειτονικά hash ανά δύο και υπολόγισε το hash κάθε ζεύγους. Τώρα έχεις τα μισά hash. Επανάλαβε μέχρι να μείνει ένα: αυτή είναι η ρίζα Merkle.
Αν ένα επίπεδο έχει περιττό αριθμό από hash, το τελευταίο ζευγαρώνεται με τον εαυτό του. Αν αλλάξεις οποιαδήποτε συναλλαγή, έστω και κατά ένα σατόσι, αλλάζουν όλα τα hash στη διαδρομή της ως την κορυφή, μαζί και η ρίζα. Δοκίμασέ το στην παραπάνω επίδειξη.
Γιατί δέντρο και όχι ένα μεγάλο hash;
Αποδείξεις. Για να δείξεις ότι μια συναλλαγή περιλαμβάνεται σε ένα block, χρειάζεσαι μόνο τα hash κατά μήκος του κλάδου της, όχι ολόκληρο το block. Για ένα block με περίπου 4.000 συναλλαγές, χρειάζεσαι μόλις 12 hash, δηλαδή μερικές εκατοντάδες byte. Η λευκή βίβλος του Satoshi περιγράφει ελαφριά πορτοφόλια που ελέγχουν τις πληρωμές με αυτόν τον τρόπο, κρατώντας μόνο τις κεφαλίδες των block.
Έχει σημασία και για την εξόρυξη. Όταν ένας εξορύκτης αλλάζει το extra nonce στη συναλλαγή coinbase, αλλάζει και η ρίζα Merkle, ενώ η κεφαλίδα του block αποκτά ένα νέο σύνολο nonce για δοκιμή.
Πηγές
- Bitcoin: Ένα ηλεκτρονικό σύστημα μετρητών peer-to-peer · Satoshi Nakamoto, 2008
- Αναφορά στην αλυσίδα των block: κεφαλίδες, δέντρα Merkle, στόχος · Τεκμηρίωση για προγραμματιστές Bitcoin
- Δέντρο Merkle · Bitcoin Wiki
Τα ζωντανά στοιχεία σε αυτή τη σελίδα προέρχονται από το API του CloudMineCrypto και δημόσια δεδομένα του blockchain, ανανεώνονται τακτικά και επισημαίνονται στα σημεία όπου εμφανίζονται. Μόνο για ενημερωτικούς σκοπούς, όχι χρηματοοικονομική συμβουλή.