Home  Guide  Forum

Τι είναι mining;

Είναι η διαδικασία για να προστεθούν νέες συναλλαγές στο blockchain.


Πώς δουλεύει το mining;

Κάθε node μοιράζεται πληροφορίες για τις νέες συναλλαγές. Αυτές οι πληροφορίες αποθηκεύονται σε μια προσωρινή μνήμη που λέγεται memory pool.



Κάθε node, μπορεί αν θέλει να προσπαθήσει να κάνει mine τις νέες συναλλαγές στο blockchain.




Για να το καταφέρει αυτό θα χρησιμοποιήσει επεξεργαστική ισχύ. (Ή αλλιώς CPU power)




Ας το αναλύσω περισσότερο.

Φαντάσου πως είσαι ένας node. Τρέχεις το bitcoin πρόγραμμα στον υπολογιστή σου και σου έρχονται νέες συναλλαγές στο memory pool.




Εσύ πρέπει να κάνεις hash όλο αυτό το κείμενο που θα δημιουργηθεί (με συναλλαγές κτλπ) και να βγει ως αποτέλεσμα ένα κείμενο που να αρχίζει από πολλά μηδενικά.




Τις περισσότερες φορές δεν θα βρεις hash με τόσα μηδενικά στην αρχή



Κάποια στιγμή όμως, μπορεί να τα καταφέρεις.



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

Μετά θα μεταφέρεις την επιτυχία σου σε όλους τους nodes, για να επιβεβαιώσουν πως πράγματι τα κατάφερες.

Ύστερα, θα σου δωθούν κάποια bitcoins στο address σου ως επιβράβευση. Αυτή η επιβράβευση (ή αλλιώς reward) μειώνεται κάθε 210.000 blocks (= 4 χρόνια) στο μισό. Ξεκίνησε 50 bitcoins, μετά έγινε 25, μετά 12.5 κτλπ.



Να σημειωθεί πως αυτό το «νούμερο των μηδενικών» που πρέπει να υπάρχουν μπροστά είναι ανάλογο με την δυσκολία (difficulty), κάτι που ρυθμίζεται κάθε 2016 blocks για να κρατάει την διαφορά δημιουργίας των blocks ίση με 10 λεπτά. Αν οι miners διπλασιαστούν, η δυσκολία θα ανέβει για να κρατήσει αυτή τη διάρκεια μεταξύ των blocks ίδια.


Γιατί χρειαζόμαστε το mining;

Καλή ερώτηση. Για ποιο λόγο να μην μπαίνουν οι συναλλαγές απευθείας στο blockchain; Γιατί με το mining το δίκτυο αποφασίζει ποιες συναλλαγές είναι σωστές και ποιες απάτη. Έτσι αποκλείουμε το double-spending.

Και τώρα ας το εξηγήσω στα ελληνικά...

Όταν δημιουργείς μια bitcoin συναλλαγή την στέλνεις σε κάποιους nodes αμέσως. Μετά αυτοί το στέλνουν σε άλλους μέχρι όλοι να το έχουν βάλει στο memory pool, δηλαδή στην προσωρινή τους μνήμη.


Ας πάρουμε το παράδειγμα να μην υπάρχει mining. Οι συναλλαγές μπαίνουν αμέσως στο blockchain. Σκέψου όμως πως έτσι, με το που στείλεις τα bitcoins για την μπύρα, μπορείς την ίδια στιγμή να στείλεις bitcoins και για μία πίτσα.
Δες τι θα συμβεί:



Κάποιοι nodes θα διαβάσουν πρώτα την συναλλαγή για την μπύρα και κάποιοι άλλοι πρώτα την πίτσα. Αυτοί απλά μεταφέρουν την πληροφορία που πήραν σε άλλους. Θα φτάσει όμως κάποια στιγμή ο ένας node που έχει λάβει την πίτσα πρώτα να στείλει την συναλλαγή του σε αυτόν που έλαβε την μπύρα πρώτα. Μάντεψε τι θα συμβεί. Αυτός που έχει τη μπύρα θα καταλάβει πως λέει ψέματα ο άλλος γιατί δεν φτάνουν τα bitcoins για να αγοράσει και την μπύρα και την πίτσα. Έτσι θα παραλείψει την συναλλαγή της πίτσας, γιατί θα την θεωρήσει άκυρη. Ποιο είναι το αποτέλεσμα; Όλοι θα έχουν λάβει πως ξόδεψες bitcoins ή για μπύρα ή για πίτσα. Οπότε ενώ αγόρασες και πίτσα και μπύρα, πλήρωσες ή για την πίτσα ή για την μπύρα μόνο.



Το mining λύνει αυτό το πρόβλημα με τον εξής τρόπο. Ο node, που θα έχει αποκλείσει ό,τι τυχόν ψεύτικες συναλλαγές στο δικό του memory pool, θα βάλει τις συναλλαγές στο blockchain και έτσι όλοι θα αποδεχτούμε πως λέει αλήθεια. Ή θα έχει αποκλείσει την μπύρα ή την πίτσα.