Ένας οδηγός για Merkle Trees

Έχετε ακούσει για τα δέντρα Merkle όταν συζητάτε για την τεχνολογία blockchain; Αυτό συμβαίνει επειδή το δέντρο Merkle βρίσκεται στον πυρήνα της ίδιας της τεχνολογίας. 

Λοιπόν, τι ακριβώς είναι?

Σε αυτό το άρθρο, θα διερευνήσουμε σε βάθος το δέντρο Merkle και θα κατανοήσουμε τον ρόλο του στην επιτυχία της τεχνολογίας blockchain.

Ας αρχίσουμε.

 

Τι είναι ένα δέντρο Merkle?

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

Το Ethereum και το Bitcoin χρησιμοποιούν και τα Merkle Trees.

Το πρόβλημα: Στον πυρήνα του κεντρικού δικτύου, τα δεδομένα είναι προσβάσιμα από ένα μόνο αντίγραφο. Αυτό σημαίνει ότι δεν χρειάζεται να κάνουν πολλά για την αποθήκευση ή την πρόσβαση σε δεδομένα. Ωστόσο, όταν πρόκειται για αποκεντρωμένο δίκτυο blockchain, τα πράγματα πηγαίνουν άσχημα καθώς κάθε δεδομένα αντιγράφεται μεταξύ των κόμβων. Επομένως, αποτελεί πρόκληση η αποτελεσματική πρόσβαση στα δεδομένα. Η πρόκληση είναι επίσης να δημιουργήσετε ένα αντίγραφο των δεδομένων και να τα μοιραστείτε μεταξύ των κόμβων. Επιπλέον, τα κοινόχρηστα δεδομένα πρέπει να επαληθευτούν για καθέναν από τους κόμβους λήψης.

Η λύση: Το Merkle Trees επιτρέπει σε αποκεντρωμένους αποκλεισμούς να μοιράζονται δεδομένα, να τα επαληθεύουν και να τα κάνουν αξιόπιστα. Οργανώνει τα δεδομένα με τέτοιο τρόπο ώστε να μην απαιτείται πολύ δύναμη επεξεργασίας για κοινή χρήση και επαλήθευση δεδομένων. Διευκολύνει επίσης την ασφαλή συναλλαγή χάρη στη χρήση λειτουργιών κατακερματισμού και κρυπτογραφίας.

Ο Satoshi Nakamoto ήταν το πρώτο άτομο που εφάρμοσε Merkle tree στην τεχνολογία blockchain μέσω Bitcoin. Η χρήση του άνοιξε έναν νέο κλάδο της επιστήμης των υπολογιστών όπου δεν υπάρχει ανάγκη για μια κεντρική αρχή. Χρησιμοποίησε επίσης δέντρα Merkle σε υπερβολικό βαθμό και χρησιμοποίησε δέντρα Fast Merkle.

Ωστόσο, η ιδέα παρουσιάστηκε για πρώτη φορά από τον Ralph Merkle, ο οποίος το κατοχύρωσε με δίπλωμα ευρεσιτεχνίας το 1979. Ονομάστηκε από αυτόν.

Διαβάστε επίσης, Hyperledger Cactus: A New Hyperledger Framework


Συναρτήσεις κρυπτογραφικού κατακερματισμού

Πριν συζητήσουμε τα δέντρα Merkle, πρέπει να κατανοήσουμε καλύτερα τη λειτουργία κρυπτογραφικού κατακερματισμού.

Η συνάρτηση κατακερματισμού είναι υπεύθυνη για τη χαρτογράφηση οποιασδήποτε μορφής αυθαίρετων δεδομένων οποιουδήποτε μήκους σε έξοδο σταθερού μεγέθους. Είναι μια κρυπτογραφική λειτουργία και ως εκ τούτου χρησιμοποιείται ευρέως στην κρυπτογραφία.

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

Το κατακερματισμό έχει πολλές χρήσεις, συμπεριλαμβανομένων

  • Προστασία με κωδικό πρόσβασης
  • Έλεγχοι και επαλήθευση ακεραιότητας αρχείων
  • Κρυπτονόμισμα

Υπάρχουν πολλές οικογένειες κατακερματισμού εκεί, συμπεριλαμβανομένων των μηνυμάτων Direct Direct (MD), Secure Hash Function (SHF) και RIPE Message Direct (RIPEMD).

Εάν χρησιμοποιήσετε έναν αλγόριθμο κατακερματισμού SHA256 και περάσετε 101Blockchains ως είσοδο, θα λάβετε την ακόλουθη έξοδο

fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9

Συνοψίζοντας, οι βασικές ιδιότητες των συναρτήσεων κατακερματισμού περιλαμβάνουν:

  • Ντετερμινιστική
  • Ανθεκτικό στην εικόνα
  • Υπολογιστικά αποδοτική
  • Δεν είναι δυνατή η αντιστροφή της μηχανικής
  • Ανθεκτικό σε σύγκρουση

Αν θέλετε να μάθετε περισσότερα σχετικά με τις συναρτήσεις κρυπτογραφικού κατακερματισμού, ρίξτε μια ματιά στα αναλυτικά άρθρα εδώ: 

Πώς λειτουργούν τα δέντρα Merkle?

Τώρα που έχουμε μια κάπως καλή κατανόηση των λειτουργιών Hash, είναι πλέον καιρός να μάθουμε περισσότερα για το Merkle Trees.

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

Αυτό σημαίνει επίσης ότι το δέντρο Merkle είναι ανεστραμμένο όπου οι κόμβοι των φύλλων είναι ο χαμηλότερος κόμβος. 

Για να κατανοήσουμε καλύτερα τι προσπαθώ να μεταφέρω, ας ρίξουμε μια ματιά στο παράδειγμα του Merkle tree:

Πηγή: Wikipedia

Στον πυρήνα των δέντρων Merkle, πρέπει να μάθουμε τρεις σημαντικούς όρους. Είναι ως εξής:

  • Merkle Root
  • Κόμβοι φύλλων
  • Κόμβοι χωρίς φύλλα

Εάν ρίξετε μια ματιά στο δέντρο Merkle στο σύνολό του, είναι ένα ανάποδο δέντρο. Το δέντρο είναι σε θέση να συνοψίζει ένα ολόκληρο σύνολο συναλλαγών από μόνο του. Αυτό σημαίνει ότι ο χρήστης μπορεί να επαληθεύσει εάν μια συναλλαγή είναι μέρος του μπλοκ ή όχι.

Για να λειτουργούν τα δέντρα Merkle, χρησιμοποιείται κατακερματισμός. Κάνει απλά τα ζεύγη κατακερματισμού κόμβων επανειλημμένα έως ότου απομείνει μόνο μία τιμή κατακερματισμού. Η τιμή του αριστερού κατακερματισμού είναι γνωστή ως Merkle Root ή το Root Hash. Το δέντρο δημιουργείται από κάτω προς τα πάνω χρησιμοποιώντας τους κατακερματισμούς των μεμονωμένων συναλλαγών. Οι μεμονωμένες κατακερματισμένες συναλλαγές είναι επίσης γνωστές ως αναγνωριστικά συναλλαγής. 

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

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

 

Ενα παράδειγμα

Ας προσπαθήσουμε να το καταλάβουμε παίρνοντας ένα παράδειγμα.

Παράδειγμα Merkle Tree

Εδώ, βλέπουμε ότι έχουν πραγματοποιηθεί τέσσερις συναλλαγές στο μπλοκ. Αυτές οι συναλλαγές ονομάζονται X, Y, Z και W. Οι συναλλαγές στη συνέχεια κατακερματιστούν και στη συνέχεια αποθηκεύονται σε κόμβους φύλλων που ονομάζουμε Hash X, Hash Y, Hash Z και Hash W.

Μόλις ολοκληρωθεί, οι κόμβοι των φύλλων Hash X, Y, Z και W κατακερματίζονται ξανά και δημιουργούνται σε συνδυασμένο κατακερματισμό XY και ZW. Τέλος, αυτά τα δύο κατακερματισμούς χρησιμοποιούνται για τη δημιουργία του Merkle Root ή του Root Hash.

Η όλη διαδικασία κατακερματισμού μπορεί να γίνει σε ένα πολύ μεγάλο σύνολο δεδομένων που καθιστά τη δομή δεδομένων Merkle Trees χρήσιμη στην περίπτωση αποκεντρωμένων δικτύων.

Όπως συζητήσαμε νωρίτερα, η χρήση αλγορίθμων κατακερματισμού εξαρτάται από την εφαρμογή. Ωστόσο, μία από τις πιο κοινές λειτουργίες κατακερματισμού που χρησιμοποιούνται περιλαμβάνει τη συνάρτηση κρυπτογραφικού κατακερματισμού SHA-2. 

Έτσι, μια συναλλαγή μπορεί να επαληθευτεί εάν οι προηγούμενες συναλλαγές είναι επαληθεύσιμες, χάρη στις τιμές κατακερματισμού.

 

Τι γίνεται με την ακεραιότητα δεδομένων?

Το Merkle tree είναι ιδανικό για ακεραιότητα δεδομένων. Επίσης, δεν χρειάζεται να περάσετε από ολόκληρη τη συναλλαγή για να δείτε την επαλήθευσή της. Οι συναλλαγές μπορούν να επαληθευτούν με τη χρήση των πληροφοριών που είναι αποθηκευμένες στην κεφαλίδα του μπλοκ. Η τιμή ρίζας Merkle αλλάζει επίσης ανάλογα με τις προηγούμενες συναλλαγές.

Αυτό σημαίνει επίσης ότι οι ριζικές τιμές αλλάζουν συχνά και μπορούν να χρησιμοποιηθούν για την επαλήθευση συναλλαγών σχεδόν αμέσως. 

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

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

Δεν χρειάζεται να κατεβάσετε ολόκληρο το δέντρο για να επαληθεύσετε τις συναλλαγές. Αυτό σημαίνει επίσης ότι ολόκληρο το δέντρο μπορεί να χωριστεί σε μικρά μπλοκ δεδομένων τα οποία μπορούν να χρησιμοποιηθούν για την επαλήθευση συναλλαγών σε όλο το δίκτυο. Η ιδέα είναι γνωστή ως Αποδείξεις Merkle.

Μπορείτε επίσης να δείτε το Merkle tree python – μια εφαρμογή Merkle tree στο Python άρθρο.

 

Πώς λειτουργούν τα Merkle Trees στο Bitcoin

Το Bitcoin ήταν το πρώτο κρυπτογράφηση που χρησιμοποίησε αποτελεσματικά τα δέντρα Merkle. Για να διασφαλιστεί ότι οι τιμές κατακερματισμού προστατεύονται και δεν μπορούν να αντιστραφούν εύκολα, χρησιμοποιεί τον περίφημο Αλγόριθμο Ασφαλούς Κατακερματισμού SHA-256. Αυτό σημαίνει επίσης ότι η έξοδος τιμών κατακερματισμού έχει μήκος 256 bit. Στον πυρήνα, τα δέντρα Merkle χρησιμοποιούνται για την αποθήκευση δεδομένων και επίσης για κλαδέματα συναλλαγών.

Διαβάστε επίσης, πώς να ξεκινήσετε με το Blockchain

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

  • Merkle Root Hash
  • Αριθμός έκδοσης αποκλεισμού
  • Χρονική σήμανση
  • Όχι
  • Στόχος δυσκολίας εξόρυξης
  • Προηγούμενο Block Hash

Για να κατανοήσετε καλύτερα, ας ρίξουμε μια ματιά στο παρακάτω διάγραμμα. Λαμβάνεται από το Λευκό χαρτί Bitcoin εαυτό.

Λεζάντα: Merkle tree στο Bitcoin

Όπως μπορείτε να δείτε, απαιτεί από τους ανθρακωρύχους να συμπεριλάβουν τις συναλλαγές στο μπλοκ. Μόλις τελειώσει, κατακερματίζεται και γίνεται μέρος του δέντρου Merkle.

Η χρήση των Merkle Trees, με αυτόν τον τρόπο, μπορεί να οδηγήσει σε πολλαπλά οφέλη. Αυτό περιλαμβάνει ένα αξιοσημείωτο όφελος, δηλαδή την απλή επαλήθευση πληρωμής (SPV). Αυτά τα SVP είναι κόμβοι που μπορούν επίσης να χαρακτηριστούν ως ελαφροί πελάτες. Λοιπόν, τι κάνουν; Απλώς κατεβάζουν τις μεγαλύτερες κεφαλίδες μπλοκ αλυσίδας και ως εκ τούτου δεν χρειάζεται να κατεβάσουν ολόκληρο το blockchain. Για να κάνουν όλα αυτά, πρέπει να επαληθεύσουν εάν έχει τις αποθηκευμένες κεφαλίδες μπλοκ για τη μεγαλύτερη αλυσίδα. Έτσι γίνεται η εφαρμογή του Merkle tree στο bitcoin.

Στο τέλος, ένα SPV μπορεί στη συνέχεια να χρησιμοποιήσει το Merkle Proof of Map και να επαληθεύσει μια συναλλαγή χρησιμοποιώντας το root hash του δέντρου Merkle. 

Πώς χρησιμοποιείται το Merkle Trees στο Ethereum

Το Ethereum blockchain χρησιμοποιεί επίσης δέντρα Merkle. Ωστόσο, η προσέγγιση εδώ είναι διαφορετική από αυτήν του πώς το χρησιμοποίησε το bitcoin. Στο Ethereum, το Merkle Patricia Tree χρησιμοποιείται που είναι μια πολύπλοκη έκδοση του Merkle tree. Αυτό είναι εφικτό επειδή το Ethereum είναι πλήρες Turing.

Αν θέλετε να μάθετε περισσότερα σχετικά με τον τρόπο λειτουργίας των δέντρων Merkle στο Ethereum, ελέγξτε τη λεπτομερή ανάρτηση εδώ.

Άλλη υλοποίηση Merkle Trees: Θήκες χρήσης

Φυσικά, υπάρχουν και άλλες εφαρμογές Merkle tree εκεί έξω. Ένα από τα πιο δημοφιλή είναι το Git – ένα σύστημα ελέγχου διανομής. Χρησιμοποιείται από προγραμματιστές από όλο τον κόσμο για τη διαχείριση των έργων τους. 

Μια άλλη χρήσιμη εφαρμογή φαίνεται στο Διαπλανητικό σύστημα αρχείων – ένα πρωτόκολλο διανομής peer-to-peer. Είναι επίσης ανοιχτού κώδικα και επιτρέπει στις υπολογιστικές συσκευές να ενώνουν και να χρησιμοποιούν ένα πανταχού παρόν σύστημα αρχείων.

Ακόμη και οι αρχές έκδοσης πιστοποιητικών χρησιμοποιούν δέντρα Merkle προς όφελός τους. Το χρησιμοποιούν στον μηχανισμό για τη δημιουργία επαληθεύσιμων αρχείων καταγραφής διαφάνειας πιστοποιητικών. Καθώς το αρχείο καταγραφής είναι τεράστιο, τα δέντρα Merkle επιτρέπουν στους υπολογιστές να το επαληθεύσουν χωρίς να σπαταλούν πολύ χρόνο και προσπάθεια.

Η τελευταία περίπτωση χρήσης που πρόκειται να συζητήσουμε είναι συστήματα βάσεων δεδομένων όπως το Amazon DynamoDB και το Apache Cassandra. Αυτές οι κατανεμημένες βάσεις δεδομένων No-SQL ελέγχουν τις ασυνέπειες χρησιμοποιώντας δέντρα Merkle κατά τη διαδικασία αναπαραγωγής δεδομένων. Εάν υπάρχουν προβλήματα, μπορεί να ενημερώσει ή να επιδιορθώσει τα δεδομένα χρησιμοποιώντας τη διαδικασία επιδιόρθωσης κατά της εντροπίας.

Εν ολίγοις, η χρήση περιπτώσεων δέντρων Merkle περιλαμβάνει

  • Συγχρονισμός δεδομένων
  • Επαλήθευση δεδομένων
  • Επαλήθευση συνέπειας

Οφέλη Merkle Trees

Σε αυτήν την ενότητα, θα ρίξουμε μια γρήγορη ματιά στα οφέλη του Merkle tree.

  • Επικυρώστε την ακεραιότητα των δεδομένων: Μπορεί να χρησιμοποιηθεί αποτελεσματικά για την επικύρωση της ακεραιότητας των δεδομένων.
  • Παίρνει λίγο χώρο στο δίσκο: Το δέντρο Merkle παίρνει λίγο χώρο στο δίσκο σε σύγκριση με άλλες δομές δεδομένων.
  • Μικρές πληροφορίες σε δίκτυα: Τα δέντρα Merkle μπορούν να χωριστούν σε μικροσκοπικές πληροφορίες για επαλήθευση.
  • Αποτελεσματική επαλήθευση: Η δομή των δεδομένων είναι αποτελεσματική και διαρκεί λίγος χρόνος για την επαλήθευση της ακεραιότητας των δεδομένων.

συμπέρασμα

Το δέντρο Merkle είναι μια από τις σημαντικές έννοιες στην επιστήμη των υπολογιστών. Χρησιμοποιείται ευρέως σε πολλές περιπτώσεις χρήσης και η χρήση του σε κρυπτονομίσματα έχει οδηγήσει σε μια επαναστατική τεχνολογία, – blockchain.

Λοιπόν, τι γνωρίζετε για τα δέντρα Merkle; Σχολιάστε παρακάτω και ενημερώστε μας.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map