Υποψήφιο block

Εν συντομία, ένα υποψήφιο block είναι ένα block που προσπαθεί να εξορύξει ένας κόμβος εξόρυξης (εξορύκτης) για να λάβει τις ανταμοιβές block. Συνεπώς, ένα υποψήφιο block μπορεί να περιγραφεί ως ένα προσωρινό block που είτε θα επικυρωθεί είτε θα απορριφθεί από το δίκτυο. Οι εξορύκτες ανταγωνίζονται μεταξύ τους για να επικυρώσουν το επόμενο block και να το προσθέσουν στο blockchain, αλλά πρώτα πρέπει να δημιουργήσουν ένα υποψήφιο block για να συμμετάσχουν στον διαγωνισμό εξόρυξης.
Τα υποψήφια block δημιουργούνται από τους εξορύκτες με τη συλλογή και οργάνωση πολλών μη επιβεβαιωμένων συναλλαγών από το pool μνήμης. Στη συνέχεια, οι συναλλαγές υποβάλλονται σε hashing για να σχηματιστεί μια δομή Merkle tree, η οποία τελικά θα δώσει μια Merkle root (ή root hash). Η Merkle root είναι ένα μοναδικό hash που αντιπροσωπεύει όλα τα προηγούμενα hash του συγκεκριμένου δέντρου και, επομένως, όλες τις συναλλαγές που συμπεριλήφθηκαν στο συγκεκριμένο block.
Το root hash - μαζί με το hash του προηγούμενου block και έναν τυχαίο αριθμό που ονομάζεται nonce - εισέρχεται στη συνέχεια στο block header. Στη συνέχεια, το block header υποβάλλεται σε hashing από τον εξορύκτη, παράγοντας μια εκροή που βασίζεται σε αυτά τα στοιχεία (root hash, hash προηγούμενου block και nonce) καθώς και σε μερικά άλλα στοιχεία. Η προκύπτουσα εκροή είναι το block hash και θα χρησιμοποιηθεί ως μοναδικό αναγνωριστικό του νέου block που δημιουργήθηκε (υποψήφιο block).
Για να θεωρηθεί έγκυρη, η εκροή (block hash) πρέπει να ξεκινά με έναν ορισμένο αριθμό μηδενικών (μικρότερο από μια τιμή-στόχο που ορίζεται από το πρωτόκολλο). Αυτό σημαίνει ότι η διαδικασία εξόρυξης βασίζεται σε πολλές προσπάθειες (δοκιμή και λάθος), καθώς οι κόμβοι εξόρυξης πρέπει να εκτελέσουν πολλές συναρτήσεις hashing με διαφορετικές τιμές nonce μέχρι να προκύψει τελικά ένα έγκυρο block hash. Το block hash που προκύπτει είναι αυτό που αποδεικνύει ότι ο εξορύκτης έκανε τη δουλειά του (από εκεί προκύπτει και το Proof-of-Work (PoW).
Αφού ένας εξορύκτης βρει έναν έγκυρο block hash, το υποψήφιο block του θα μεταδοθεί στους υπόλοιπους κόμβους του δικτύου, οι οποίοι θα επαληθεύσουν τη γνησιότητα του hash. Αν όλα είναι καλά, το υποψήφιο block θα καταχωρηθεί στο blockchain. Σε αυτό το σημείο, κάθε κόμβος επικύρωσης ενημερώνει το αντίγραφο των δεδομένων blockchain ώστε να αποτυπώνει το πρόσφατο block που εξορύχθηκε και ο εξορύκτης θα λάβει την ανταμοιβή block.