Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πώς το SHA256 και η εξόρυξη προστατεύουν το δίκτυο Bitcoin

Πώς υπερασπίζεται το Bitcoin μέσω ενέργειας; Και τι είναι ένα nonce; Αυτές και άλλες ερωτήσεις απαντώνται μέσα!

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

Πρέπει να ξεκινήσω με συναρτήσεις κατακερματισμού. Χωρίς συναρτήσεις κατακερματισμού, το Bitcoin δεν θα ήταν δυνατό. Επιτρέψτε μου να σας εξηγήσω πρώτα τι είναι, όχι μόνο για να ακούγεστε κουλ στα πάρτι, αλλά και επειδή είναι θεμελιώδες για να κατανοήσετε πώς λειτουργεί το Bitcoin — ιδιαίτερα η εξόρυξη αλλά και οι συναλλαγές — κάτω από το καπό.

Δεν χρειάζεται να κατανοήσετε πώς λειτουργεί το Bitcoin για να επωφεληθείτε από αυτό, όπως ακριβώς δεν χρειάζεται να κατανοήσετε πώς λειτουργεί το TCP/IP για να χρησιμοποιήσετε το Διαδίκτυο. Αλλά συνεχίστε, γιατί είναι αρκετά ενδιαφέρον και θα το κάνω εύκολο να το καταλάβω, το υπόσχομαι.

Λειτουργίες κατακερματισμού

Ας ξεκινήσουμε με ένα σχηματικό που θα εξηγήσω παρακάτω…

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.
(Γραφικός/@jirols_btc)

Αριστερά είναι η είσοδος, το κέντρο είναι η συνάρτηση και δεξιά η έξοδος. Η είσοδος μπορεί να είναι οποιαδήποτε δεδομένα, αρκεί να είναι ψηφιακά. Μπορεί να είναι οποιουδήποτε μεγέθους, με την προϋπόθεση ότι ο υπολογιστής σας μπορεί να το χειριστεί. Τα δεδομένα μεταβιβάζονται στη συνάρτηση SHA256. Η συνάρτηση λαμβάνει τα δεδομένα και υπολογίζει έναν αριθμό με τυχαία εμφάνιση, αλλά με ειδικές ιδιότητες (συζητείται αργότερα).

Ο πρώτος αλγόριθμος ασφαλούς κατακερματισμού (SHA) ήταν αρχικά που αναπτύχθηκε από την NSA και υπάρχουν πολλές διαφορετικές εκδόσεις τώρα (το Bitcoin χρησιμοποιεί το SHA256). Είναι ένα σύνολο οδηγιών για το πώς να ανακατεύετε τα δεδομένα με έναν πολύ περίπλοκο αλλά συγκεκριμένο τρόπο. Οι οδηγίες δεν είναι μυστικό και είναι ακόμη δυνατό να το κάνετε με το χέρι, αλλά είναι πολύ κουραστικό.

Για το SHA256, η έξοδος είναι ένας αριθμός 256-bit (όχι τυχαίο).

Ένας αριθμός 256 bit σημαίνει έναν δυαδικό αριθμό μήκους 256 ψηφίων. Δυαδικό σημαίνει ότι η τιμή αναπαρίσταται με δύο σύμβολα, είτε 0 είτε 1. Οι δυαδικοί αριθμοί μπορούν να μετατραπούν σε οποιαδήποτε άλλη μορφή, για παράδειγμα δεκαδικούς αριθμούς, με τους οποίους γνωρίζουμε.

Αν και η συνάρτηση επιστρέφει έναν δυαδικό αριθμό 256 ψηφίων, η τιμή συνήθως εκφράζεται σε δεκαεξαδική μορφή, μήκους 64 ψηφίων.

Δεκαεξαδικό σημαίνει ότι αντί για 10 πιθανά σύμβολα όπως έχουμε συνηθίσει με το δεκαδικό (0 έως 9), έχουμε 16 σύμβολα (Τα δέκα που έχουμε συνηθίσει, 0-9, συν τα γράμματα a, b, c, d, e, και f· που έχουν τις τιμές 11 έως 15). Για παράδειγμα, για να αναπαραστήσουμε την τιμή του δεκαδικού 15 σε δεκαεξαδικό, γράφουμε απλώς "f" και είναι η ίδια τιμή. Υπάρχουν πολλές διαθέσιμες πληροφορίες στο διαδίκτυο με μια γρήγορη αναζήτηση στο Google, εάν χρειάζεστε περισσότερη επεξεργασία.

Για να δείξω το SHA256 σε δράση, μπορώ να πάρω τον αριθμό 1 και να τον περάσω από ένα ηλεκτρονικός υπολογιστής κατακερματισμού, και έλαβε αυτή την έξοδο (σε δεκαεξαδικό):

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το επάνω πλαίσιο είναι η είσοδος, το κάτω πλαίσιο είναι η προκύπτουσα έξοδος.

Σημειώστε ότι όλοι οι υπολογιστές στον κόσμο θα παράγουν την ίδια έξοδο, υπό την προϋπόθεση ότι η είσοδος είναι η ίδια και χρησιμοποιείται η λειτουργία SHA256.

Η έξοδος του δεκαεξαδικού αριθμού, εάν μετατραπεί σε δεκαδικό, είναι (παρατηρήστε ότι χρειάζονται περισσότερα ψηφία για να γραφτούν):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Και μετατρέπεται σε δυαδικό είναι:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Απλά λόγω ενδιαφέροντος, εδώ είναι η ίδια αξία βάση 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Σημειώστε ότι η μικρότερη δυνατή τιμή που θα μπορούσε να επιστρέψει το SHA256 είναι μηδέν, αλλά το LENGTH εξακολουθεί να είναι 256 bit. Έτσι αναπαρίσταται το μηδέν:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Και η μεγαλύτερη δυνατή τιμή είναι:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Σε δεκαδικό, αυτό είναι:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

Στο δεκαεξαδικό, είναι:

ΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦΦ

Σημειώστε ότι υπάρχουν ακριβώς 64 F.

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

0000000000000000000000000000000000000000000000000000000000000000

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

  • Η είσοδος δεν μπορεί να προσδιοριστεί από την έξοδο
  • Η είσοδος μπορεί να είναι οποιοδήποτε μήκος
  • Η έξοδος είναι πάντα το ίδιο μήκος
  • Η έξοδος θα αναπαράγεται πάντα πανομοιότυπα εάν παρέχετε την ίδια είσοδο.
  • Οποιαδήποτε αλλαγή στην είσοδο, όσο μικρή κι αν είναι, θα προκαλέσει μια απρόβλεπτη και εξαιρετικά διαφορετική έξοδο
  • Η έξοδος είναι φαινομενικά τυχαία, αλλά στην πραγματικότητα είναι ντετερμινιστική (που σημαίνει ότι είναι υπολογισμένη και αναπαραγώγιμη)
  • Η έξοδος δεν μπορεί να προβλεφθεί. Μπορεί να υπολογιστεί μόνο και αυτό απαιτεί ένα μετρήσιμο ποσό εργασίας από έναν υπολογιστή (και ώρες με μολύβι και χαρτί! Μην το κάνετε.)

Τώρα που καταλαβαίνετε τη βασική έννοια του τι είναι το hash, μπορείτε να κατανοήσετε την εξήγηση του πώς λειτουργεί η εξόρυξη Bitcoin.

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

Εξόρυξη

Θα ξεκινήσω παρουσιάζοντας μια έννοια της εργασίας, από όπου προέρχεται η "απόδειξη εργασίας" στο Bitcoin.

Μεταβείτε στην ηλεκτρονική αριθμομηχανή κατακερματισμού και πληκτρολογήστε "Δημιουργώ 50 bitcoins και πληρώνω ο ίδιος αυτό το ποσό".

Πληκτρολογήστε το ακριβώς, με διάκριση πεζών-κεφαλαίων, συμπεριλαμβανομένης της τελείας. Θα πρέπει να λάβετε αυτήν την έξοδο:

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

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

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

Η λέξη "Nonce" υποτίθεται ότι προέρχεται από το "αριθμός που χρησιμοποιείται μόνο μία φορά", αλλά δεν το βλέπω.

Παρατηρήστε παρακάτω πώς η προσθήκη του "Nonce:" ως επιπλέον επικεφαλίδας πεδίου αλλάζει την έξοδο κατακερματισμού.

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Η έξοδος εξακολουθεί να μην ξεκινά με "0", οπότε ας προσθέσουμε μερικές ανοησίες (πρόσθεσα ένα χωρίς νόημα "x"):

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ακόμα δεν ξεκινά με μηδέν. Δοκίμασα μερικούς ακόμη χαρακτήρες μέχρι να ξεκινήσει ο κατακερματισμός με μηδέν:

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εκεί πάμε. Τώρα, σύμφωνα με τους αυθαίρετους κανόνες που έθεσα για αυτήν την προσποιημένη έκδοση του Bitcoin, το κείμενο στο παράθυρο εισαγωγής είναι ένα έγκυρο μπλοκ με μία μόνο συναλλαγή που μου πληρώνει 50 bitcoin.

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

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

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ο κατακερματισμός ξεκινά με ένα "f" και όχι με "0", οπότε θα πρέπει να δοκιμάσω μερικές τιμές στο πεδίο nonce:

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Αυτή τη φορά ήμουν πιο τυχερός και βρήκα ένα κατάλληλο nonce μετά από μόνο τέσσερις προσπάθειες. Θυμηθείτε ότι για το πρώτο μπλοκ χρειάστηκαν 22 προσπάθειες. Υπάρχει κάποια τυχαιότητα εδώ, αλλά γενικά δεν είναι πολύ δύσκολο να βρούμε έναν έγκυρο κατακερματισμό αν το μόνο που προσπαθούμε να πάρουμε είναι ένα μηδέν. Υπάρχουν 16 πιθανές τιμές για το πρώτο ψηφίο κατακερματισμού, επομένως έχω πιθανότητα 1 στις 16 οποιαδήποτε τροποποίηση κάνω στο πεδίο εισαγωγής να έχει ως αποτέλεσμα το πρώτο ψηφίο κατακερματισμού να είναι "0".

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

Θα προσθέσω ένα πεδίο χρόνου στο επόμενο μπλοκ, καθώς το χρειάζομαι για να εξηγήσω την "προσαρμογή δυσκολίας" στη συνέχεια:

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πάνω είναι το μπλοκ νούμερο τρία. Περιλαμβάνει τον κατακερματισμό του προηγούμενου μπλοκ και τώρα άρχισα να συμπεριλαμβάνω και την ώρα. Το nonce που βρήκα έκανε με επιτυχία το hash να ξεκινήσει με μηδέν (απλώς συνέχισα να πληκτρολογώ ένα "1" μέχρι να επιτευχθεί ο στόχος hash).

Υπάρχουν αρκετά εδώ τώρα που μπορώ να αρχίσω να εξηγώ μερικές ενδιαφέρουσες έννοιες σχετικά με το blockchain και την εξόρυξη Bitcoin.

Κερδίζοντας ένα μπλοκ

Η διαδικασία εξόρυξης είναι ανταγωνιστική. Όποιος δημιουργήσει ένα έγκυρο μπλοκ πρώτος θα πληρώσει στον εαυτό του μια καθορισμένη ανταμοιβή μπλοκ. Ένας εξορύκτης που παράγει τον ίδιο αριθμό μπλοκ λίγο αργότερα δεν λαμβάνει τίποτα — αυτό το μπλοκ απορρίπτεται. Το να εξηγήσω γιατί συμβαίνει αυτό θα προκαλέσει υπερβολική εκτροπή τώρα, οπότε θα το εξηγήσω στο παράρτημα.

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

Με κάθε μπλοκ, δημιουργούνται νέα bitcoin και συλλογικά αποτελούν τη συνολική προσφορά μέχρι στιγμής. Εάν υπάρχουν πολλοί miners, τότε στατιστικά θα πρέπει να περιμένουμε ότι τα μπλοκ θα παράγονται γρηγορότερα και επομένως το bitcoin θα δημιουργηθεί πιο γρήγορα. Πρόβλημα, σωστά;

Αναζητώντας μια περιορισμένη προσφορά bitcoin με προβλέψιμη έκδοση με την πάροδο του χρόνου, ο Satoshi Nakamoto σκέφτηκε αυτό το πρόβλημα και εισήγαγε έναν βρόχο αρνητικής ανάδρασης για να διατηρήσει την παραγωγή μπλοκ σε διαστήματα 10 λεπτών κατά μέσο όρο. Πως? Δείτε αν μπορείτε να σκεφτείτε έναν τρόπο. Σταματήστε για λίγο και συλλογιστείτε — δείτε αν μπορείτε να βρείτε την ίδια ιδιοφυή λύση και διαβάστε τη συνέχεια όταν τα παρατήσετε.

Κόμβοι: Αναφέρω «έγκυρα» μπλοκ. Και λοιπόν? Ποιος ελέγχει; Οι κόμβοι Bitcoin είναι. Ένας κόμβος Bitcoin διατηρεί ένα αντίγραφο του blockchain μέχρι στιγμής και ακολουθεί ένα σύνολο κανόνων για να ελέγξει ότι τα νέα μπλοκ είναι εντός των κανόνων και να απορρίψει αυτά που δεν είναι. Πού είναι οι κανόνες; Στον κώδικα. Ένας υπολογιστής που κατεβάζει τον κώδικα Bitcoin είναι ένας κόμβος.

Η Προσαρμογή Δυσκολίας

Ο μέσος χρόνος για τη δημιουργία νέων μπλοκ Bitcoin υπολογίζεται από κάθε κόμβο κάθε μπλοκ 2016 (γι' αυτό χρειάζεται το πεδίο χρόνου). Αυτό είναι μέρος του πρωτοκόλλου και των κανόνων που ακολουθούν οι κόμβοι. Εφαρμόζεται ένας τύπος για την προσαρμογή του αριθμού των μηδενικών από τα οποία πρέπει να ξεκινά κάθε κατακερματισμός μπλοκ για να είναι έγκυρος.

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

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

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

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

Εδώ είναι το επόμενο μπλοκ:

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Παρατηρήστε την ώρα. Πέρασαν περισσότερα από 10 λεπτά από το προηγούμενο μπλοκ (μόλις έφτιαξα το χρόνο για να δείξω). Ο στόχος των 10 λεπτών είναι πιθανολογικός. Δεν είναι ποτέ γνωστό πότε ακριβώς θα βρεθεί το επόμενο μπλοκ.

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

Εάν περισσότερα άτομα συμμετείχαν στην εξόρυξη και τον ανταγωνισμό για νέο bitcoin, τότε τελικά θα απαιτηθούν τρία μηδενικά.

Μόλις αναζήτησα το τελευταίο πραγματικό μπλοκ Bitcoin, το οποίο περιέχει τον κατακερματισμό του προηγούμενου μπλοκ. Το hash ήταν:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Είναι 19 μηδενικά! Υπάρχει 1 στα 1619 πιθανότητα να βρείτε ένα τέτοιο μπλοκ με κάθε προσπάθεια. Οι εξορύκτες Bitcoin κάνουν πολλές, πολλές προσπάθειες ανά δευτερόλεπτο, συλλογικά σε όλο τον κόσμο.

Ο αριθμός των προσπαθειών ανά δευτερόλεπτο είναι γνωστός ως "ρυθμός κατακερματισμού". Επί του παρόντος, ο εκτιμώμενος παγκόσμιος ρυθμός κατακερματισμού είναι λίγο λιγότερο από 200 εκατομμύρια terahash ανά δευτερόλεπτο (ένα terahash είναι ένα τρισεκατομμύριο hash). Με τόσες πολλές προσπάθειες ανά δευτερόλεπτο, ένα μπλοκ με κατακερματισμό που ξεκινά με 19 μηδενικά βρίσκεται περίπου κάθε 10 λεπτά.

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

Το μισό

Όταν ξεκίνησε το Bitcoin για πρώτη φορά, παράγονται 50 bitcoin με κάθε μπλοκ. Οι κανόνες του blockchain Bitcoin προσδιορίζουν ότι μετά από κάθε 210,000 μπλοκ η ανταμοιβή θα μειώνεται στο μισό. Αυτή η στιγμή είναι γνωστή ως «το μισό» και συμβαίνει περίπου κάθε τέσσερα χρόνια. Η κατά το ήμισυ, σε συνδυασμό με τη δυσκολία προσαρμογής διατήρησης μπλοκ σε διαστήματα 10 λεπτών, σημαίνει ότι περίπου το έτος 2140, η ανταμοιβή μπλοκ θα είναι 0.00000001 ή 1 satoshi, η μικρότερη μονάδα ενός bitcoin και δεν μπορεί πλέον να μειωθεί στο μισό. Η εξόρυξη δεν θα σταματήσει, αλλά η ανταμοιβή μπλοκ θα είναι μηδενική. Από εκείνη τη στιγμή, δεν θα δημιουργηθεί κανένα νέο bitcoin στο μέλλον και ο αριθμός του bitcoin είναι μαθηματικά υπολογίσιμος και αρκετά κοντά στα 21 εκατομμύρια νομίσματα. Έτσι είναι γνωστή η συνολική προσφορά — ρυθμίζεται μέσω προγραμματισμού.

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

Πώς ακριβώς κόβεται στο μισό η ανταμοιβή μπλοκ; Είναι στον κώδικα που κρατούν οι κόμβοι. Ξέρουν να απορρίπτουν οποιοδήποτε νέο μπλοκ μετά από 210,000 όπου ένας εξορύκτης πληρώνει πάνω από 25 bitcoin. Και μετά να απορρίψει τυχόν μπλοκ μετά από 420,000 όπου ένας εξορύκτης πληρώνει πάνω από 12.5 bitcoin και ούτω καθεξής.

Τέλη συναλλαγών

Μέχρι στιγμής έχω δείξει μόνο φανταστικά μπλοκ με μία μόνο συναλλαγή — τη συναλλαγή όπου ο εξορύκτης πληρώνεται μια ανταμοιβή. Αυτό ονομάζεται «συναλλαγή coinbase».

Δεν έχει το όνομα της εταιρείας, Conbase, εννοώ Coinbase. Η εταιρεία πήρε το όνομά της από τη συναλλαγή coinbase και όχι το αντίστροφο. Μην μπερδεύεστε.

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

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Δεν μπήκα στον κόπο να βρω ένα πραγματικό κατακερματισμό αυτή τη φορά (Είναι στην πραγματικότητα ο πραγματικός κατακερματισμός που αναφέρεται στο μπλοκ 200,001). Απλώς έφτιαξα για πλάκα, αλλά παρατηρώ ότι ένα μήνυμα μπορεί να ενσωματωθεί εκεί.

Ο Satoshis περιελάμβανε περίφημα τις λέξεις, "Καγκελάριος στο χείλος του δεύτερου προγράμματος διάσωσης για τις τράπεζες" στο πρώτο μπλοκ Bitcoin (The Genesis Block), μετά τον τίτλο της εφημερίδας για την ημέρα.

Πώς το SHA256 και η εξόρυξη προστατεύουν τη νοημοσύνη δεδομένων PlatoBlockchain του δικτύου Bitcoin. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Το θέμα εδώ είναι ότι περιλαμβάνονται 132 συναλλαγές (δεν εμφανίζονται όλες). Δείτε τη συναλλαγή #132 – 2.3 bitcoin από μια διεύθυνση πληρώνει 2.1 bitcoin σε άλλη διεύθυνση και επίσης σε μια δεύτερη διεύθυνση το ποσό 0.1 bitcoin (έχω χρησιμοποιήσει τελείες για να συντομεύσω το μήκος της διεύθυνσης).

Άρα μια πηγή 2.3 bitcoin πληρώνει συνολικά 2.2 bitcoin (2.2 + 0.1 = 2.2). Λείπει 0.1 bitcoin; Όχι, τη διαφορά ισχυρίζεται ο ανθρακωρύχος, όπως θα εξηγήσω.

Ο εξορύκτης επιτρέπεται να πληρώσει στον εαυτό του 25 bitcoin ως ανταμοιβή μπλοκ (επειδή έχουν περάσει 210,000 μπλοκ, επομένως η ανταμοιβή έχει μειωθεί στο μισό από 50 σε 25). Αλλά αν κοιτάξετε, η συναλλαγή coinbase είναι 27.33880022. Το επιπλέον 2.33880022 bitcoin προέρχεται από τις άλλες 132 συναλλαγές στο μπλοκ – οι εισροές θα είναι όλες ελαφρώς μεγαλύτερες από το σύνολο των εξόδων. Έτσι, ο εξορύκτης μπορεί να διεκδικήσει αυτό το «εγκαταλελειμμένο» bitcoin ως πληρωμή στον εαυτό του. Αυτά θεωρούνται τέλη συναλλαγής που καταβάλλονται στον εξορύκτη.

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

Έτσι, όταν η ανταμοιβή μπλοκ μειώνεται σταθερά, μειώνεται στο μισό κάθε τέσσερα χρόνια και τελικά στο μηδέν, οι ανθρακωρύχοι εξακολουθούν να πληρώνονται με αυτόν τον τρόπο.

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

Μπορεί ένα μπλοκ να ξαναγραφτεί;

Αυτό είναι εξαιρετικά απίθανο και αξίζει να καταλάβουμε γιατί. Τότε θα καταλάβετε γιατί οι συναλλαγές Bitcoin είναι αμετάβλητες (αμετάβλητες).

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

Σημειώστε ότι κάθε φορά που αλλάζει ένας κατακερματισμός, χάνετε όλα αυτά τα υπέροχα μηδενικά και θα σας μείνει απλώς ένας κατακερματισμός με τυχαία εμφάνιση — και πρέπει να κάνετε ξανά όλη τη δουλειά για να λάβετε τα μηδενικά πίσω. Εάν το κάνετε αυτό για το μπλοκ που προσπαθήσατε να επεξεργαστείτε, θα πρέπει να επαναλάβετε την εργασία για το επόμενο μπλοκ και το επόμενο μέχρι το πιο πρόσφατο μπλοκ. Δεν μπορείτε απλά να σταματήσετε στο παλιό μπλοκ, επειδή οι κανόνες του Bitcoin είναι τέτοιοι που η μεγαλύτερη αλυσίδα μπλοκ είναι το πραγματικό ρεκόρ Bitcoin. Εάν επιστρέψετε και επεξεργαστείτε ένα μπλοκ πριν από 10 μπλοκ, δεν έχετε πλέον τη μεγαλύτερη αλυσίδα. Πρέπει να προσθέσετε άλλα 10 μπλοκ και μετά λίγο περισσότερα γιατί καθώς δημιουργούσατε αυτά τα 10 μπλοκ, η πραγματική αλυσίδα μάλλον έγινε λίγο μεγαλύτερη. Πρέπει να αγωνιστείτε για να προσπεράσετε την πραγματική αλυσίδα. Εάν είναι επιτυχής, τότε η νέα έκδοση γίνεται η πραγματική έκδοση.

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

Τι θα συμβεί αν δύο ανθρακωρύχοι βρουν ένα μπλοκ ταυτόχρονα;

Αυτό συμβαίνει στην πραγματικότητα κάθε τόσο, και πάντα ταξινομείται ως εξής:

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

Για παράδειγμα, ας ονομάσουμε το ένα από τα μπλοκ μπλε και το άλλο κόκκινο (δεν έχουν χρώμα, απλά αντέξου με).

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

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

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

Παράρτημα

Γιατί το μπλοκ ενός δεύτερου ανθρακωρύχου δεν είναι έγκυρο

Ας υποθέσουμε ότι το μπλοκ 700,000 μόλις εξορύχθηκε από τον MINER-A. Τριάντα δευτερόλεπτα αργότερα, ο MINER-B δημιούργησε επίσης μια διαφορετική έκδοση του μπλοκ 700,000. Όταν ο MINER-B μεταδίδει αυτήν την εναλλακτική, κάθε κόμβος πρόκειται να την απορρίψει επειδή έχει ήδη δει και αποδεχτεί το μπλοκ από τον MINER-A. Επιπλέον, σε αυτά τα 30 δευτερόλεπτα, ας πούμε ότι το MINER-C βρήκε το μπλοκ 700,001. Δεδομένου ότι το ανταγωνιστικό 700,000ο μπλοκ του MINER-B δεν επεκτείνει την τρέχουσα αλυσίδα (η οποία είναι έως και 700,001), απορρίπτεται επίσης για αυτόν τον λόγο.

Ακόμη πιο ενδιαφέρον είναι ότι αν ο MINER-B δούλευε στο μπλοκ 700,001 αντί για μια ανταγωνιστική έκδοση των 700,000, θα είχε τόσες πιθανότητες εξόρυξης ενός έγκυρου μπλοκ 700,001 όσες θα έπρεπε να βρει τελικά ένα εναλλακτικό μπλοκ 700,000. Έτσι, μόλις κάποιος ανθρακωρύχος δει ένα νέο μπλοκ, θα πρέπει να βάλει την προσπάθειά του στο επόμενο μπλοκ.

Εάν, ωστόσο, ο Miner-B βρήκε το μπλοκ 700,000 ένα δευτερόλεπτο μετά το MINER-A, τότε είναι πιθανό ορισμένοι κόμβοι να βλέπουν πρώτο το μπλοκ του MINER-A ενώ άλλοι να βλέπουν πρώτο το μπλοκ του MINER-B, ανάλογα με τις γεωγραφικές τοποθεσίες και τις ταχύτητες διαδικτύου. Σε αυτήν την περίπτωση, υπάρχει ένα προσωρινό πιρούνι και ορισμένοι εξορύκτες θα εργάζονται για να επεκτείνουν τη μία έκδοση ενώ άλλοι εξορύκτες θα εργάζονται για να επεκτείνουν την άλλη. Όπως εξηγήθηκε νωρίτερα χρησιμοποιώντας τους περιγραφείς "μπλε αλυσίδα" και "κόκκινη αλυσίδα", τελικά η μία από τις εκδόσεις θα επεκταθεί πιο πριν από την άλλη και θα γίνει η έγκυρη έκδοση ομόφωνα.

Αυτή είναι μια guest post από τον Arman The Parman. Οι απόψεις που εκφράζονται είναι εξ ολοκλήρου δικές τους και δεν αντικατοπτρίζουν απαραίτητα αυτές της BTC Inc ή Bitcoin Magazine.

Σφραγίδα ώρας:

Περισσότερα από Bitcoin Magazine