Blockchain

Δίκτυο και κανόνες

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

Ιστορία

Η πρώτη ιστορικά εφαρμογή της τεχνολογίας blockchain ήταν το ψηφιακό νόμισμα Bitcoin, του Σατόσι Νακαμότο. Στην εργασία αυτή προτεινόταν μια λύση σε ένα διάσημο πρόβλημα των Μαθηματικών με εφαρμογή της λύσης αυτής στον χρηματοοικονομικό τομέα. Ήταν δυνατόν μία κοινότητα ανθρώπων να κτίσουν ένα δίκτυο από υπολογιστές και μέσω του δικτύου αυτού να εκτελούν χρηματοοικονομικές συναλλαγές μεταξύ τους με μαθηματικώς αποδεδειγμένη ασφάλεια διαφύλαξης των περιουσιών τους και ταυτόχρονα να μην υπάρχει κεντρική εξουσία που να μπορεί να επέμβει με οποιοδήποτε τρόπο θα ήθελε, στους κανονισμούς οι οποίοι διέπουν την πραγματοποίηση ή όχι όλων αυτών των συναλλαγών. Οι κανονισμοί αυτοί σχεδιάστηκαν από τον προγραμματιστή του πρωτοκόλλου αυτού και αποτελούν το πρωτόκολλο συναίνεσης του Bitcoin, το οποίο χρησιμοποιεί έναν αλγόριθμο απόδειξης μόχθου. Σήμερα χρησιμοποιούνται και άλλοι αλγόριθμοι  όπως ο αλγόριθμος απόδειξης μερισμάτων στο ψηφιακό νόμισμα Ethereum.

Λειτουργία

Όλα τα πρόσωπα που συμμετέχουν στην δημιουργία μιας αλυσίδας  κοινοποιήσεων κατέχουν ξεχωριστά και από κοινού ταυτόχρονα ένα πανομοιότυπο αντίγραφο από ένα κοινό αρχείο. Το αρχείο αυτό δεν είναι στατικό σε περιεχόμενο, αλλά εμπλουτίζεται συνεχώς με καινούργιο περιεχόμενο. Η ειδοποιός διαφορά του αρχείου blockchain σε αντίθεση με οποιουδήποτε άλλου είδους αρχείο έγκειται στο ότι σε αυτό απουσιάζει η δυνατότητα διαγραφής δεδομένων σε αυτό.
Πρόκειται για μια αλυσίδα νέων κοινοποιημένων εγγραφών πάνω στο αρχείο αυτό, εγγραφών ομαδοποιημένων σε ομάδες που ονομάζονται τμήματα δεδομένων (datablocks), μπλοκ που αντιστοιχούν και θυμίζουν τους κρίκους μιας αλυσίδας. Και όπως οι κρίκοι μιας αλυσίδας, έτσι και αυτά τα ομαδοποιημένα δεδομένα ή αλλιώς τμήματα (blocks), συγκολλούνται χρονικά το ένα μετά το άλλο δημιουργώντας μια αλυσίδα κατασκευασμένη από κοινού και απευθυνόμενη προς το κοινό, δηλαδή μια αλυσίδα κοινό-ποιήσεων. Η διαδικασία συγκόλλησης επιτυγχάνεται με την λειτουργία μιας συνάρτησης κατακερματισμού πάνω σε ομάδες αυτών, τα λεγόμενα μπλοκ και την δημιουργία κρυπτογραφικών αποτυπωμάτων αυτών.

Η φύση των ομαδοποιημένων δεδομένων (τμημάτων)

Η φύση των δεδομένων που κοινοποιούνται σε μια αλυσίδα κοινοποιήσεων καθορίζεται από την ύπαρξη ή όχι μιας συγκεκριμένης λειτουργίας των δεδομένων αυτών. Υπάρχουν τα δεδομένα που εγγυώνται την διαδικασία με την οποία όλα (συμπεριλαμβανομένων και των ιδίων) τα ομαδοποιημένα δεδομένα ή μπλοκ, συναρμολογούν μια αλυσίδα κοινοποιήσεων και υπάρχουν και τα δεδομένα που δεν έχουν αυτή την ιδιότητα. Ας ονομάσουμε τα πρώτα αυτά “Σημαντικά Δεδομένα” ή “Δεδομένα Ελέγχου”. Τα σημαντικά δεδομένα εγγυώνται την απρόσκοπτη λειτουργία ενός blockchain σύμφωνα με το πρωτόκολλο συναίνεσης που έχει θεσπιστεί για την αλυσίδα αυτή. Τα υπόλοιπα δεδομένα αναφέρονται σε δεδομένα με ανθρώπινο εννοιολογικό περιεχόμενο και για αυτόν ακριβώς τον λόγο αξιόλογα και χρήσιμα για τους κατόχους των δεδομένων αυτών. Ας τα ονομάσουμε “Εννοιολογικά Δεδομένα” ή “Χρήσιμα Δεδομένα”.
Στην περίπτωση του Bitcoin τα δεδομένα αυτά περιγράφουν την κατάσταση ενός από κοινού τραπεζικού χαρτοφυλακίου. Εάν θα μιλάγαμε για δεδομένα που περιγράφουν την καταμέτρηση ψήφων, τότε στο τέλος της, η αλυσίδα αυτή θα περιείχε ένα ανόθευτο εκλογικό αποτέλεσμα, εάν πάλι τα δεδομένα αυτά αναφέρονταν σε περιουσίες ακινήτων, θα μιλάγαμε για την ανόθευτη αλυσίδα κοινοποιήσεων του Εθνικού Κτηματολόγιου. Με εφαρμογές όπως στην από κοινού πιστοποίηση προϊόντων,στην από κοινού διαφύλαξη πολιτιστικών, ιστορικών, δημοσιονομικών εγγράφων, στην από κοινού διεξαγωγή ανόθευτων και συνάμα τυχερών παιχνιδιών, στην από κοινού σύνταξη συμβολαίων παντός είδους και οποιοδήποτε συνθηκών (τα λεγόμενα έξυπνα συμβόλαια), στην ελεύθερη και ταυτόχρονα ελεγχόμενη από κοινού, διακίνηση ιδεών και πληροφοριών.

Ρόλοι και αρμοδιότητες

Σε μια Blockchain τα πρόσωπα διακρίνονται και παίρνουν το όνομά τους με βάση τις αρμοδιότητές τους.  Μία αρμοδιότητα αναφέρεται στην κατοχή και συνεχή ενημέρωση μέρους ή του συνόλου του αρχείου της αλυσίδας και μια δεύτερη αρμοδιότητα αναφέρεται στο δικαίωμα υποβολής υποψηφιότητας νέων block στην αλυσίδα. Όσοι κόμβοι διαφυλάσσουν μέρος της αλυσίδας ονομάζονται απλά κόμβοι, ενώ οι κόμβοι που διαφυλάσσουν το σύνολο της αλυσίδας, ονομάζονται διαχειριστές-κόμβοι (master nodes). Αμφότεροι χρησιμοποιούν τοπικά τον αποθηκευτικό τους χώρο. Όσοι διαχειριστές-κόμβοι εκτελούν και την δεύτερη αρμοδιότητα ονομάζονται εξορύχοι (miners) και η διαδικασία αυτή ονομάζεται εξόρυξη (mining). Όλοι οι κόμβοι είναι επιφορτισμένοι με το καθήκον του ελέγχου νομιμότητας των μπλοκ που διοχετεύονται σε αυτούς και επιπλέον, προώθησης των, στους γειτονικούς τους κόμβους. Χρήστες του δικτύου ονομάζονται όσοι κόμβοι ή μη, δημιουργούν και διοχετεύουν χρήσιμα δεδομένα σε αυτό.

Το μπλοκ. Ορισμός και δομή

Η βασική δομή κάθε μπλοκ περιέχει τις παρακάτω ομάδες δεδομένων.
α) Το κρυπτογραφικό αποτύπωμα του προηγούμενου στην αλυσίδα, μπλοκ (previous block hash). Τα δεδομένα αυτά ανήκουν στην κατηγορία των σημαντικών δεδομένων. Πρόκειται για έναν δείκτη που καθορίζει την μοναδική ταυτότητα του προηγούμενου μπλοκ.
β)Το κρυπτογραφικό αποτύπωμα που προκύπτει από την λειτουργία μιας συνάρτησης κατακερματισμού πάνω στο σύνολο των εισαχθέντων και ξεχωριστών συναλλαγών(transactions) στο εν λόγω μπλοκ, συμπεριλαμβανομένων και αυτών των συναλλαγών. Στην περίπτωση του bitcoin, κάθε ομάδα συναλλαγών αναφέρεται και περιγράφει μία νομισματική συναλλαγή (coin transaction). Οι συναλλαγές ανήκουν στην κατηγορία των χρήσιμων δεδομένων, ενώ το κρυπτογραφικό τους αποτύπωμα ανήκει στην κατηγορία των σημαντικών δεδομένων. Τα δεδομένα αυτά εντάσσονται στο μπλοκ σε μια διάταξη που στην γλώσσα των υπολογιστών ονομάζεται δέντρο Merkle (Merkle tree), και θυμίζει ένα ανεστραμμένο δέντρο. Η κορυφή του ανεστραμμένου αυτού δέντρου ονομάζεται ρίζα Merkle (Merkle root). Η ρίζα Merkle λοιπόν προκύπτει και περιέχει πληροφοριακά το σύνολο των ενταγμένων στο μπλοκ, συναλλαγών. Να σημειωθεί ότι κάθε Κόμβος που λαμβάνει μέρος στη διαδικασία υποβολής νέου μπλοκ προς ένταξη στην αλυσίδα blockchain, δεν συμπεριλαμβάνει απαραίτητα τα ίδια χρήσιμα δεδομένα. Προϋπόθεση για την συμπερίληψης μιας συναλλαγής σε ένα υποψήφιο προς ένταξη στην αλυσίδα,  μπλοκ, είναι η παρουσία των δεδομένων αυτών στον διαχειριστή-κόμβο καθώς και σχετίζεται με το επισυναπτόμενο σε αυτήν, κόμιστρο (transaction fee). Το κόμιστρο είναι κλάσμα του ψηφιακού νομίσματος που χρησιμοποιεί η εκάστοτε αλυσίδα. Όσο υψηλότερο είναι το επισυναπτόμενο από τον χρήστη της συναλλαγής κόμιστρο, τόσο υψηλότερα θα βρίσκεται στην λίστα συμπερίληψης συναλλαγών, αυξάνοντας τις πιθανότητες συντομότερης κοινοποίησης.
γ)Την χρονική του σφραγίδα ή χρόνο-σφραγίδα (timestamp). Πρόκειται για τον αριθμό των δευτερολέπτων που έχουν μεσολαβήσει από την 1η Ιανουαρίου του 1970 μέχρι την στιγμή της παραγωγής της χρονο-σφραγίδας.
δ)Την απόδειξη μόχθου του μπλοκ (cryptographic nonce). Πρόκειται για έναν μοναδικά δημιουργημένο αριθμητικό λέξημα. Είναι μια σειρά σημαντικών δεδομένων άπαξ παραχθέντος με τυχαία διεργασία από τον κόμβο-διαχειριστή. Τα δεδομένα ενός αριθμητικού λεξήματος σε ένα μπλοκ που τηρεί τις προϋποθέσεις ένταξης σε μια αλυσίδα blockchain έχουν την εξής ιδιότητα. Η λειτουργία μιας συνάρτησης κατακερματισμού στο σύνολο των δεδομένων των προηγούμενων τριών ομάδων ενός μπλοκ συμπεριλαμβανομένου  και του αριθμητικού λεξήματος αυτού, δημιουργεί την τελευταία ομάδα δεδομένων του μπλοκ, ήτοι το
ε)Κρυπτογραφικό αποτύπωμα του εν λόγω μπλοκ. Όπως και στην περίπτωση της ομάδας (α) το αποτύπωμα αυτό καθορίζει την μοναδική ταυτότητα του μπλοκ αυτού. Να σημειωθεί ότι εάν ένα υποψήφιο προς ένταξη στην αλυσίδα blockchain, μπλοκ, πετύχει να ενταχθεί σε αυτήν, το κρυπτογραφικό του αποτύπωμα θα αποτελέσει την ομάδα (α) του επόμενου από αυτό, μπλοκ.

Ασφάλεια και ώθηση(κίνητρο)

Στην τρίτη ομάδα δεδομένων ενός μπλοκ, στο αριθμητικό λέξημα δηλαδή, βρίσκεται το κλειδί της σταθερότητας και ασφάλειας λειτουργίας μιας αλυσίδας blockchain. Η εύρεση του κατάλληλου αριθμητικού λεξήματος βασίζεται εξ ολοκλήρου σε τυχαίους παράγοντες και για αυτόν τον λόγο  έχει άμεση εξάρτηση με την υπολογιστική ισχύ του εκάστοτε διαχειριστή-κόμβου. Ο σχεδιασμός του πρωτοκόλλου του bitcoin συγκεκριμένα, επιτρέπει επιπροσθέτως την δημιουργία επεξεργαστών σχεδιασμένων κατάλληλα στην κατεύθυνση βελτιστοποίησης των εργασιών τους. Η ιδιότητα αυτή του πρωτοκόλλου του bitcoin το καθιστά ευάλωτο, δίνοντας ταυτόχρονα υπολογιστική προτεραιότητα στους κατόχους τέτοιων επεξεργαστών δίνοντας τροφή για κριτική του πρωτοκόλλου. Σε άλλα ψηφιακά νομίσματα, όπως για παράδειγμα το ψηφιακό νόμισμα Monero(XMR), η δυνατότητα εύρεσης τέτοιων στοχευμένων αναφορικά με την λειτουργία τους, επεξεργαστών, απομακρύνεται.  Η εύρεση ενός λειτουργικού αριθμητικού λεξήματος αποτελεί την de facto απόδειξη μόχθου στην διαδικασία προσθήκης νέων μπλοκ σε μια αλυσίδα blockchain αφού χρειάζονται αστρονομικά νούμερα παραγωγής και ελέγχου τυχαίων λεξημάτων μέχρι την εύρεση ενός που να λειτουργεί ικανοποιώντας την συνθήκη δυσκολίας του εκάστοτε πρωτοκόλλου. Επιχειρώντας έναν παραλληλισμό, θα λέγαμε ότι η διαδικασία εύρεσης ενός λειτουργικού αριθμητικού λεξήματος μοιάζει με την ρίψη ενός ζαριού με αστρονομικά μεγάλο αριθμό όψεων, από τις οποίες μόνο ένα πολύ μικρό σύνολο, διασκορπισμένων τυχαία, όψεων αυτού, θεωρούνται επιτυχείς. Όσες περισσότερες οι ρίψεις, τόσες μεγαλύτερη η πιθανότητα εύρεσης κατάλληλου αριθμο-λεξήματος. Η διαδικασία αυτή, της προσπάθειας ανεύρεσης κατάλληλου αριθμο-λεξήματος, είναι στην ουσία αυτό που ονομάζεται εξόρυξη(mining), και είναι αναγκαία η κατανόηση της διαδικασίας αυτής για να μπορέσουμε να καταλάβουμε πώς επιτυγχάνεται ισορροπία στην αλυσίδα ταυτόχρονα με την μη ανάγκη ύπαρξης εγγυήσεων αμοιβαίας εμπιστοσύνης μεταξύ των συμμετεχόντων στο δίκτυο. Να σημειώσουμε ότι η διαδικασία αυτή, της εξόρυξης δηλαδή,κοστίζει με όρους πραγματικής οικονομίας. Κίνητρο για τους εξορύχους είναι η απόκτηση κλάσματος του νομίσματος της εκάστοτε αλυσίδας, κλάσμα που ορίζεται από το πρωτόκολλο του δικτύου και αποδίδεται αυτόματα στον κόμβο που επιτυγχάνει την ένταξη του μπλοκ που παρήγαγε, στην αλυσίδα blockchain καθιστώντας το, νόμιμο κομμάτι αυτής. Οι εξόρυχοι επιπροσθέτως καρπώνονται και τα κόμιστρα των συναλλαγών που ενέταξαν στο μπλοκ τους Για ευνόητους λόγους, η πρώτη στην λίστα των χρήσιμων δεδομένων συναλλαγή, περιγράφει την ανταμοιβή του εξορύχου του μπλοκ.