TL;DR
Η εξόρυξη κρυπτονομισμάτων αναφέρεται στη διαδικασία επαλήθευσης και επικύρωσης συναλλαγών στο blockchain. Είναι, επίσης, η διαδικασία που δημιουργεί νέες μονάδες κρυπτονομισμάτων. Η εργασία που καταβάλλουν οι εξορύκτες απαιτεί εντατικούς υπολογιστικούς πόρους, αλλά αυτό είναι που διατηρεί ασφαλές ένα δίκτυο blockchain. Οι ειλικρινείς και επιτυχημένοι εξορύκτες ανταμείβονται για τη δουλειά τους με πρόσφατα δημιουργημένα κρυπτονομίσματα και προμήθειες συναλλαγής.
Εισαγωγή
Η εξόρυξη είναι η διαδικασία μέσω της οποίας οι συναλλαγές κρυπτονομισμάτων μεταξύ χρηστών επαληθεύονται και προστίθενται στο δημόσιο καθολικό του blockchain. Οι εργασίες εξόρυξης είναι, επίσης, υπεύθυνες για την εισαγωγή νέων νομισμάτων στον υπάρχοντα συνολικό δημόσια διαθέσιμο όγκο.
Η εξόρυξη είναι ένα από τα βασικά στοιχεία που επιτρέπουν στο blockchain του Bitcoin να λειτουργεί ως κατανεμημένο καθολικό. Όλες οι συναλλαγές καταγράφονται σε δίκτυο ομότιμης σύνδεσης (peer-to-peer) χωρίς να απαιτείται κάποια κεντρική αρχή. Σε αυτό το άρθρο, θα συζητήσουμε την εξόρυξη όπως γίνεται στο δίκτυο Bitcoin, αλλά η διαδικασία είναι παρόμοια στα altcoin που υιοθετούν τον ίδιο μηχανισμό εξόρυξης.
Πώς λειτουργεί η εξόρυξη;
Καθώς γίνονται νέες συναλλαγές στο blockchain, αποστέλλονται σε μια δεξαμενή που ονομάζεται δεξαμενή μνήμης. Η δουλειά ενός εξορύκτη είναι να επαληθεύει την εγκυρότητα αυτών των εκκρεμών συναλλαγών και να τις οργανώνει σε block. Μπορείτε να σκεφτείτε ένα block ως μια σελίδα του καθολικού του blockchain, στην οποία καταγράφονται πολλές συναλλαγές (μαζί με άλλα δεδομένα).
Πιο συγκεκριμένα, ένας κόμβος εξόρυξης είναι υπεύθυνος για τη συλλογή μη επιβεβαιωμένων συναλλαγών από τον χώρο της δεξαμενής μνήμης και τη συγκέντρωσή τους σε ένα υποψήφιο block. Μετά από αυτό, ο εξορύκτης θα προσπαθήσει να μετατρέψει αυτό το υποψήφιο block σε έγκυρο, επιβεβαιωμένο block. Αλλά για να το κάνει αυτό, πρέπει να βρει μια λύση σε ένα σύνθετο μαθηματικό πρόβλημα. Αυτό απαιτεί πολλούς υπολογιστικούς πόρους, αλλά κάθε block που εξορύσσεται επιτυχώς θα δίνει στον εξορύκτη μια ανταμοιβή block, που αποτελείται από πρόσφατα δημιουργημένα κρυπτονομίσματα και προμήθειες συναλλαγών. Ας ρίξουμε μια πιο προσεχτική ματιά στη διαδικασία εξόρυξης.
Βήμα 1 - Hash συναλλαγών
Το πρώτο βήμα της εξόρυξης ενός block είναι να ληφθούν οι εκκρεμείς συναλλαγές από τον χώρο της δεξαμενής μνήμης και να υποβληθούν, μία προς μία, μέσω μιας συνάρτησης hash. Κάθε φορά που υποβάλλουμε ένα κομμάτι δεδομένων μέσω μιας συνάρτησης hash, θα δημιουργούμε μια εκροή σταθερού μεγέθους που ονομάζεται hash. Στο πλαίσιο της εξόρυξης, το hash κάθε συναλλαγής αποτελείται από μια σειρά αριθμών και γραμμάτων που λειτουργεί ως αναγνωριστικό. Το hash της συναλλαγής αντιπροσωπεύει όλες τις πληροφορίες που περιέχονται στη συναλλαγή αυτή.
Εκτός από το hash και την καταχώρηση κάθε συναλλαγής ξεχωριστά, ο εξορύκτης προσθέτει, επίσης, μια προσαρμοσμένη συναλλαγή, με την οποία στέλνει στον εαυτό του την ανταμοιβή μπλοκ. Αυτή η συναλλαγή αναφέρεται ως συναλλαγή coinbase και είναι αυτή που δημιουργεί ολοκαίνουργια νομίσματα. Στις περισσότερες περιπτώσεις, η συναλλαγή coinbase είναι η πρώτη που καταγράφεται σε ένα νέο block, ακολουθούμενη από όλες τις εκκρεμείς συναλλαγές που ο εξορύκτης θέλει να επικυρώσει.
Βήμα 2 - Δημιουργία Merkle tree
Αφού γίνει hash σε κάθε συναλλαγή, τα hash οργανώνονται σε κάτι που ονομάζεται Merkle tree. Γνωστό και ως hash tree, το Merkle tree σχηματίζεται οργανώνοντας τα hash συναλλαγών σε ζεύγη και, στη συνέχεια, κάνοντας hashing σε αυτά. Στη συνέχεια, οι νέες εκροές hash οργανώνονται σε ζεύγη και υποβάλλονται σε hashing για ακόμα μια φορά και η διαδικασία επαναλαμβάνεται μέχρι να δημιουργηθεί ένα μόνο hash. Αυτό το τελευταίο hash ονομάζεται, επίσης, root hash (ή Merkle root) και ουσιαστικά είναι το hash που αντιπροσωπεύει όλα τα προηγούμενα hash που χρησιμοποιήθηκαν για τη δημιουργία του.
Βήμα 3 - Εύρεση έγκυρου block header (block hash)
Ένα block header λειτουργεί ως αναγνωριστικό για κάθε μεμονωμένο block, που σημαίνει ότι κάθε block έχει ένα μοναδικό hash. Όταν δημιουργούν ένα νέο block, οι εξορύκτες συνδυάζουν το hash του προηγούμενου block με το root hash του υποψήφιου block για να δημιουργήσουν ένα νέο block hash. Αλλά, εκτός από αυτά τα δύο στοιχεία, πρέπει, επίσης, να προσθέσουν έναν αυθαίρετο αριθμό που ονομάζεται nonce.
Έτσι, όταν προσπαθεί να επικυρώσει το υποψήφιο block του, ένας εξορύκτης πρέπει να συνδυάσει το root hash, το hash του προηγούμενου block και ένα nonce και να τα υποβάλει όλα μέσω μιας συνάρτησης hash. Στόχος του είναι να δημιουργήσει ένα hash που να θεωρείται έγκυρο.
Το root hash και το hash του προηγούμενου block δεν μπορούν να αλλάξουν, επομένως οι εξορύκτες πρέπει να αλλάξουν την τιμή nonce αρκετές φορές μέχρι να βρεθεί ένα έγκυρο hash.
Για να θεωρηθεί έγκυρη, η εκροή (block hash) πρέπει να είναι μικρότερη από μια συγκεκριμένη τιμή στόχο, η οποία καθορίζεται από το πρωτόκολλο. Στην εξόρυξη Bitcoin, το block hash πρέπει να ξεκινά με έναν ορισμένο αριθμό μηδενικών. Αυτό είναι που ονομάζουμε δυσκολία εξόρυξης.
Βήμα 4 - Μετάδοση του block που εξορύχτηκε
Όπως μόλις είδαμε, οι εξορύκτες πρέπει να κάνουν hashing στο block header ξανά και ξανά, με διαφορετικές τιμές nonce. Επαναλαμβάνουν αυτήν την εργασία μέχρι να βρουν έναν έγκυρο block hash. Στη συνέχεια, εξορύκτης που το βρήκε θα μεταδώσει το block του στο δίκτυο. Όλοι οι άλλοι κόμβοι θα ελέγξουν εάν το block και το hash του είναι έγκυρα και, εάν είναι, θα προσθέσουν το νέο block στο αντίγραφο του blockchain τους.
Σε αυτό το σημείο, το υποψήφιο block γίνεται επιβεβαιωμένο block και όλοι οι εξορύκτες προχωρούν στην εξόρυξη του επόμενου. Όλοι οι εξορύκτες που δεν μπόρεσαν να βρουν εγκαίρως ένα έγκυρο hash απορρίπτουν το υποψήφιο block τους και ο αγώνας εξόρυξης ξεκινά από την αρχή.
Προσαρμογή της δυσκολίας εξόρυξης
Η δυσκολία εξόρυξης προσαρμόζεται τακτικά από το πρωτόκολλο, διασφαλίζοντας ότι ο ρυθμός με τον οποίο δημιουργούνται νέα block παραμένει σταθερός. Αυτό είναι που κάνει την έκδοση νέων νομισμάτων σταθερή και προβλέψιμη. Η δυσκολία προσαρμόζεται ανάλογα με την ποσότητα της υπολογιστικής ισχύος (hash rate) που αφιερώνεται στο δίκτυο.
Ως εκ τούτου, κάθε φορά που νέοι εξορύκτες εντάσσονται στο δίκτυο και ο ανταγωνισμός αυξάνεται, η δυσκολία του hashing θα αυξάνεται, αποτρέποντας τη μείωση του μέσου χρόνου block. Αντίθετα, εάν πολλοί εξορύκτες αποφασίσουν να εγκαταλείψουν το δίκτυο, η δυσκολία του hashing θα μειωθεί, καθιστώντας λιγότερο δύσκολη την εξόρυξη ενός νέου block. Αυτές οι προσαρμογές διατηρούν σταθερό τον χρόνο block, ανεξάρτητα από τη συνολική ισχύ hash του δικτύου.
Τι γίνεται αν δύο block εξορυχτούν ταυτόχρονα;
Μερικές φορές, δύο εξορύκτες μεταδίδουν ένα έγκυρο block ταυτόχρονα και το δίκτυο καταλήγει σε δύο ανταγωνιζόμενα block. Στη συνέχεια, οι εξορύκτες αρχίζουν να εξορύσσουν το επόμενο block με βάση το block που έλαβαν πρώτο. Αυτό προκαλεί τη διάσπαση (προσωρινά) του δικτύου σε δύο διαφορετικές εκδόσεις του blockchain.
Ο ανταγωνισμός μεταξύ αυτών των block θα συνεχιστεί μέχρι να εξορυχθεί το επόμενο block, πάνω από ένα από τα ανταγωνιζόμενα block. Όταν εξορύσσεται ένα νέο block, όποιο block ήταν το προηγούμενό του θα θεωρηθεί το νικητήριο. Το block που εγκαταλείπεται ονομάζεται orphan block ή stale block, με αποτέλεσμα όλοι οι εξορύκτες που επέλεξαν αυτό το block να επιστρέψουν στην εξόρυξη της αλυσίδας του νικητήριου block.
Μπορούν να εξορυχτούν όλα τα κρυπτονομίσματα;
Το Bitcoin είναι το πιο δημοφιλές και καθιερωμένο παράδειγμα κρυπτονομίσματος με δυνατότητα εξόρυξης, αλλά δεν έχουν όλα τα κρυπτονομίσματα τη δυνατότητα εξόρυξης. Η εξόρυξη Bitcoin βασίζεται σε έναν αλγόριθμο συναίνεσης που ονομάζεται Αποδεικτικό εργασίας (Proof of Work, PoW).
Αποδεικτικό εργασίας (Proof-of-Work, ή PoW)
Το Αποδεικτικό εργασίας (Proof of Work, ή PoW) είναι ο αρχικός μηχανισμός συναίνεσης του blockchain που δημιουργήθηκε από τον Satoshi Nakamoto. Εισήχθη στη λευκή βίβλο του Bitcoin το 2008. Με λίγα λόγια, το PoW καθορίζει πώς ένα δίκτυο blockchain επιτυγχάνει συναίνεση μεταξύ όλων των κατανεμημένων συμμετεχόντων χωρίς τρίτους μεσάζοντες. Αυτό το κάνει απαιτώντας μεγάλη υπολογιστική ισχύ για να αποθαρρύνει τους κακούς παράγοντες.
Όπως είδαμε, οι συναλλαγές σε ένα δίκτυο PoW επαληθεύονται από εξορύκτες. Προκειμένου να κερδίσουν το δικαίωμα εξόρυξης του επόμενου block, οι εξορύκτες ανταγωνίζονται λύνοντας σύνθετους κρυπτογραφικούς γρίφους με εξειδικευμένο υλισμικό εξόρυξης. Ο πρώτος εξορύκτης που θα βρει μια έγκυρη λύση μπορεί στη συνέχεια να μεταδώσει το block συναλλαγών του στο blockchain και να λάβει την ανταμοιβή block.
Το ποσό των κρύπτο σε μια ανταμοιβή block διαφέρει ανάλογα με το blockchain. Για παράδειγμα, στο blockchain του Bitcoin, οι εξορύκτες μπορούν να λάβουν 6,25 BTC ως ανταμοιβή μπλοκ από τον Δεκέμβριο του 2021. Το ποσό BTC σε μια ανταμοιβή block μειώνεται κατά το ήμισυ κάθε 210.000 μπλοκ (περίπου κάθε τέσσερα χρόνια) λόγω του μηχανισμού του μείωσης κατά το ήμισυ.
Διαφορετικές μέθοδοι εξόρυξης κρυπτονομισμάτων
Δεν υπάρχει μία μόνο μέθοδος εξόρυξης κρυπτονομισμάτων. Ο εξοπλισμός και η διαδικασία αλλάζουν καθώς προκύπτει νέο υλισμικό και αλγόριθμοι συναίνεσης. Συνήθως, οι εξορύκτες χρησιμοποιούν εξειδικευμένες μονάδες υπολογιστών για να λύσουν τις περίπλοκες κρυπτογραφικές εξισώσεις. Ας ρίξουμε μια ματιά σε μερικές από τις πιο συνηθισμένες επιλογές εξόρυξης.
Εξόρυξη με CPU
Η εξόρυξη με κεντρική μονάδα επεξεργασίας (Central Processing Unit, ή CPU) έγκειται στη χρήση της CPU ενός υπολογιστή για την διενέργεια των συναρτήσεων hash που απαιτούνται από το PoW. Στις αρχές του Bitcoin, το κόστος και το εμπόδιο εισόδου για την εξόρυξη ήταν χαμηλό. Μια τυπική CPU μπορούσε να αντιμετωπίσει τη δυσκολία της εξόρυξης, οπότε οποιοσδήποτε μπορούσε να προσπαθήσει να εξορύξει BTC και άλλα κρυπτονομίσματα.
Ωστόσο, καθώς περισσότερα άτομα άρχισαν να εξορύσσουν και το hashrate του δικτύου αυξανόταν, η κερδοφόρα εξόρυξη γινόταν όλο και πιο δύσκολη. Επιπλέον, η άνοδος του εξειδικευμένου υλισμικού εξόρυξης με μεγαλύτερη υπολογιστική ισχύ κατέστησε τελικά την εξόρυξη με CPU σχεδόν αδύνατη. Σήμερα, η εξόρυξη με CPU δεν είναι πλέον βιώσιμη επιλογή, καθώς όλοι οι εξορύκτες χρησιμοποιούν εξειδικευμένο υλισμικό.
Εξόρυξη με GPU
Οι μονάδες επεξεργασίας γραφικών (GPU) έχουν σχεδιαστεί για την παράλληλη επεξεργασία ενός ευρέος φάσματος εφαρμογών. Ενώ συνήθως χρησιμοποιούνται για βιντεοπαιχνίδια ή για την απεικόνιση γραφικών, μπορούν, επίσης, να χρησιμοποιηθούν για εξόρυξη.
Οι GPU είναι σχετικά φθηνές και πιο ευέλικτες από το δημοφιλές υλισμικό εξόρυξης ASIC. Κάποια altcoin μπορούν να εξορυχθούν με GPU, αλλά η αποτελεσματικότητα εξαρτάται από τη δυσκολία εξόρυξης και τον αλγόριθμο.
Εξόρυξη με ASIC
Ένα ολοκληρωμένο κύκλωμα για συγκεκριμένες εφαρμογές (ASIC) έχει σχεδιαστεί για να εξυπηρετεί έναν συγκεκριμένο σκοπό. Στα κρυπτονομίσματα, αναφέρεται σε εξειδικευμένο υλισμικό που αναπτύχθηκε για εξόρυξη. Η εξόρυξη με ASIC είναι εξαιρετικά αποδοτική, αλλά ακριβή.
Η εξόρυξη είναι ένας διαγωνισμός. Για να εξορύσσετε επικερδώς, χρειάζεστε ανταγωνιστικό υλισμικό εξόρυξης. Καθώς οι εξορύκτες με ASIC βρίσκονται στην αιχμή της τεχνολογίας εξόρυξης, το κόστος μιας μονάδας είναι πολύ υψηλότερο από τις CPU ή τις GPU. Επίσης, οι συνεχείς εξελίξεις στην τεχνολογία ASIC καθιστούν γρήγορα τα παλαιότερα μοντέλα ASIC οικονομικά ασύμφορα, πράγμα που σημαίνει ότι συχνά χρειάζονται αντικατάσταση. Αυτό καθιστά την εξόρυξη με ASIC έναν από τους πιο ακριβούς τρόπους εξόρυξης, ακόμη και χωρίς να περιλαμβάνεται το κόστος ηλεκτρικής ενέργειας.
Pool εξόρυξης
Καθώς χορηγείται ανταμοιβή block στον πρώτο επιτυχημένο εξορύκτη, η πιθανότητα εύρεσης του σωστού hash είναι εξαιρετικά μικρή. Οι εξορύκτες που διαθέτουν μικρό ποσοστό της ισχύος εξόρυξης έχουν πολύ μικρές πιθανότητες να ανακαλύψουν μόνοι τους το επόμενο block. Οι δεξαμενές εξόρυξης προσφέρουν μια λύση σε αυτό το πρόβλημα.
Οι δεξαμενές εξόρυξης είναι ομάδες εξορυκτών που συγκεντρώνουν τους πόρους τους (ισχύς hash) για να αυξήσουν την πιθανότητα να κερδίσουν ανταμοιβές block. Όταν η δεξαμενή βρει με επιτυχία ένα block, οι εξορύκτες θα μοιράσουν την ανταμοιβή εξίσου σε όλους στη δεξαμενή, ανάλογα με τον όγκο της εργασίας που έχουν συνεισφέρει.
Οι δεξαμενές εξόρυξης μπορούν να ωφελήσουν μεμονωμένους εξορύκτες όσον αφορά το κόστος υλισμικού και ηλεκτρικής ενέργειας, αλλά η κυριαρχία τους στην εξόρυξη εγείρει ανησυχίες για επίθεση κατά 51% στο δίκτυο.
Συμπεράσματα
Η εξόρυξη κρυπτονομισμάτων είναι ένα σημαντικό μέρος του Bitcoin και άλλων blockchain PoW. Είναι ένα από τα πράγματα που κρατούν το δίκτυο ασφαλές και την έκδοση νέων νομισμάτων σταθερή. Η εξόρυξη έχει ορισμένα πλεονεκτήματα και μειονεκτήματα, με το πιο προφανές να είναι τα πιθανά κέρδη που λαμβάνετε από τις ανταμοιβές block. Ωστόσο, τα κέρδη της εξόρυξης μπορεί να επηρεαστούν από διάφορους παράγοντες, όπως το κόστος ηλεκτρικής ενέργειας και οι τιμές της αγοράς. Δεν υπάρχει καμία εγγύηση ότι θα αποκομίσετε κέρδη, επομένως πριν ξεκινήσετε την εξόρυξη κρύπτο, θα πρέπει να κάνετε τη δική σας έρευνα (DYOR) και να αξιολογήσετε όλους τους πιθανούς κινδύνους.