Social Media

Στο πρώτο μέρος του άρθρου αναφερθήκαμε στο τι είναι το Blockchain, τι ακριβώς κάνει και στο πως γίνεται η κρυπτογράφηση (Hash).
Εάν δε το διαβάσατε πατήστε εδώ.

Στο δεύτερο μέρος θα επικεντρωθούμε στις έννοιες των Nodes (Κόμβων) και στο Block για να εξηγήσουμε τις αρχές του Blockchain και πως μπορεί αυτή τη τεχνολογία να επηρεάσει τη ζωή μας.

Nodes (Κόμβοι)

Συνεχίζοντας με το παράδειγμα του πρώτου μέρους…

Ο Γιώργος συνειδητοποίησε ότι υπήρχαν πάρα πολλά αρχεία και ότι δε μπορούσε να κρατήσει το ημερολόγιο για πάντα γιατί απλά γινόταν ένας μεσάζοντας, μία τράπεζα. Έτσι, όταν έγραψε 2.000 συναλλαγές, τις μετέτρεψε σε ένα υπολογιστικό φύλλο μιας σελίδας και τις έδωσε στη Μαρία. Η Μαρία έλεγξε ότι όλες οι συναλλαγές και τις βρήκε σωστές.

Ο Γιώργος εξάπλωσε το ημερολόγιο σε πάνω από 5.000 υπολογιστές, οι οποίοι ήταν σε όλο τον κόσμο. Αυτοί οι υπολογιστές ονομάζονται Nodes (κόμβοι). Κάθε φορά που πραγματοποιείται μια συναλλαγή, αυτή αποστέλλεται σε όλους τους κόμβους και θα πρέπει να εγκριθεί από αυτούς. Ο κάθε κόμβος (nodes) ελέγχει την εγκυρότητα της συναλλαγής. Μόλις ένα node ελέγξει μια συναλλαγή που δημιουργείται, υπάρχει ένα είδος ηλεκτρονικής ψηφοφορίας, καθώς ορισμένοι κόμβοι μπορεί να πιστεύουν ότι η συναλλαγή είναι έγκυρη και άλλοι θεωρούν ότι είναι απάτη.

Οι κόμβοι που αναφέρονται παραπάνω είναι υπολογιστές. Κάθε Node έχει ένα αντίγραφο του ψηφιακού ημερολογίου, με άλλα λόγια του Blockchain. Κάθε Node ελέγχει την εγκυρότητα κάθε συναλλαγής. Εάν η πλειοψηφία των κόμβων λέει ότι μια συναλλαγή είναι έγκυρη, τότε εγγράφεται σε ένα block (μπλοκ). Έτσι, τώρα το θέμα γίνεται πολύ πιο ασφαλές αλλά και πολύ πιο ελεύθερο. Εάν ο Δημήτρης που κατέχει και αυτός ένα Node, αλλάξει μία είσοδο, όλοι οι άλλοι υπολογιστές που έχουν το αρχικό hash, θα έβλεπαν την αλλαγή. Δεν θα επέτρεπαν την αλλαγή να συμβεί, αφού η πλειοψηφία θα έλεγε ότι δεν είναι σωστό και ο Δημήτρης θα αποκλειόταν από το δίκτυο των Node.

Block

Αυτό το υπολογιστικό φύλλο που δημιούργησε ο Γιώργος ονομάζεται block (μπλοκ). Κάθε Block περιέχει 2.000 εγγραφές. Όταν δηλαδή οι εγγραφές φτάσουν τις 2000 το block γεμίζει, κλείνει, σφραγίζεται και τοποθετείται αμέσως μετά το προηγούμενο Block. Επεξηγηματικότερα, σχηματίζει μία αλυσίδα (chain) με όλα τα προηγούμενα Block που υπάρχουν από την αρχή της γέννεσης του νομίσματος. Ταυτόχρονα, δημιουργείται ένα νέο κενό Block. Όλη η οικογένεια των Block είναι το blockchain (η αλυσίδα με τα μπλοκ). Κάθε Node έχει ένα αντίγραφο του Blockchain.

Το Blockchain ενημερώνεται κάθε δέκα λεπτά. Αυτό γίνεται αυτόματα. Κανένας κύριος ή κεντρικός υπολογιστής δεν καθοδηγεί τους υπολογιστές να το κάνουν αυτό.

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

Τι γίνεται αν αυτοί που θέλουν να κλέψουν είναι πολλοί; Αν οι αφερέγγυοι τύποι στο παράδειγμά μας, που είναι όλοι Node και ο καθένας κατέχει ένα αντίγραφο των συναλλαγών, γίνουν τρεις (πάνω από τους μισούς), τότε το πρωτόκολλο θα καταρρεύσει. Το σκηνικό είναι γνωστό ως “51% Attack”. Στην περίπτωση που η πλειοψηφία των κόμβων του δικτύου αποφασίσει να κλέψει το υπόλοιπο δίκτυο, το πρωτόκολλο θα αποτύχει στη βάση του σχεδιασμού του, γιατί απλά βασίζεται στην πλειοψηφία. Το blockchain δε θα είναι το σωστό, αλλά θα είναι τροποποιημένο προς το συμφέρον των κακόβουλων. Παρότι πρόκειται για μικρής πιθανότητας σενάριο, είναι και ένα από τα λίγα κενά ασφαλείας (αν όχι το μοναδικό) του Blockchain.

Σφράγιση του block και απόδειξη της εργασίας

Με το γέμισμα ενός block με συναλλαγές, οι κόμβοι θα πρέπει να το σφραγίσουν πριν το εντάξουν στο blockchain. Έτσι, και οι 5 nodes του παραδείγματός μας μόλις αντιληφθούν ότι ένα block γέμισε, προσπαθούν να βρουν ένα συγκεκριμένο αριθμό (nonce), ο οποίος όταν επισυναφθεί στη λίστα των συναλλαγών του block μαζί με το hash του προηγούμενου block και όλο αυτό δοθεί στην είσοδο της hash συνάρτησης, θα δώσει ένα αποτέλεσμα ώστε το δημιουργημένο hash να τελειώνει σε δύο μηδενικά.

Δεν είναι εύκολη διαδικασία και απαιτεί υπολογιστική ισχύ και κατανάλωση ρεύματος. Μόλις κάποιος από τους 5 βρει αυτό το νούμερο το ανακοινώνει και στους υπόλοιπους 4. Αυτοί ελέγχουν το νούμερο και αν συμφωνούν το τοποθετούν όλοι στο υπολογιστικό τους φύλο, σφραγίζουν το Block και το προσαρμόζουν στο Blockchain. Η εργασία εύρεσης και η επαλήθευση αυτού ονομάζεται ”Proof of Work” ή σαν ακρώνυμο PoW. Τι γίνεται όμως αν κάποιος διαφωνήσει; Απλά κερδίζει η πλειοψηφία και αυτός που διαφωνεί οφείλει να διαγράψει το δικό του λανθασμένο block, να κατεβάσει το block από τους άλλους και να το αποθηκεύσει στον εαυτό του.

Αυτός που βρήκε τον ειδικό αριθμό κερδίζει μία ανταμοιβή αποζημιώσεως για την υπολογιστή ισχύ, η οποία σήμερα ανέρχεται σε 12,5 BTC, και έτσι γίνονται οι πρώτοι ανθρακωρύχοι (miners). Γι’ αυτό και όλοι οι nodes δεν περιμένουν έτοιμο το nonce, αλλά προσπαθούν με mining να κερδίσουν την ανταμοιβή.

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

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

Αρχές του Blockchain

Διαμοιρασμένη βάση δεδομένων

Το Blockchain είναι ουσιαστικά μία βάση δεδομένων και κάθε node (κόμβος) του Blockchain έχει πρόσβαση σε ολόκληρο το Blockchain. Κανένας κόμβος ή υπολογιστής δε ρυθμίζει τις πληροφορίες που περιέχει. Κάθε κόμβος είναι σε θέση να επικυρώσει τις εγγραφές του Blockchain. Όλα αυτά γίνονται χωρίς έναν ή περισσότερους μεσάζοντες να ελέγχουν τα πάντα.

Είναι αρχιτεκτονικά αποκεντρωμένο και δεν υπάρχει περίπτωση για ένα ή περισσότερα σημεία αποτυχίας που θα κατέστρεφε το Blockchain.

Μεταβίβαση Peer-to-peer (P2P)

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

Διαφάνεια αλλά ψευδώνυμο

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

Εγγραφές

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

Γιατί είναι αδύνατο να απενεργοποιήσετε το Blockchain;

Δεδομένου ότι υπάρχουν κόμβοι σε όλο τον κόσμο, είναι σχεδόν αδύνατο να καταληφθεί ολόκληρο το δίκτυο.

About Συμεών Σιδέρης

Ονομάζομαι Συμεών Σιδέρης, μεγάλωσα και ζω στη Θεσσαλονίκη. Είμαι τελειόφοιτος στο Τμήμα Μηχανικών Παραγωγής και Διοίκησης του ΔΙΠΑΕ. Εργάζομαι στο ΑΠΘ ως Ερευνητικός Συνεργάτης. Τα ερευνητικά ενδιαφέροντα μου αφορούν γενικότερα τη τεχνολογία περισσότερο όμως τα αυτοοδηγούμενα συστήματα και τη βιομηχανική πληροφορική.