Article Index

Το πρόβλημα των βυζαντινών στρατηγών

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

Το "Πρόβλημα των βυζαντινών στρατηγών" περιγράφηκε αρχικά από τους Marshall Pease, Robert Shostak και Leslie Lamport το 1982 και περιέχει μια πολύ στυλιζαριμένη περιγραφή του προβλήματος.

Υπήρξαν αρκετές προσπάθειες επίλυσης της νομισματικής πλευράς του προβλήματος:

  • Chaum, D., 1984. Blind Signature System, in: Chaum, D. (Ed.), Advances in Cryptology. Springer US, pp. 153–153.
  • Chaum, D., Fiat, A., Naor, M., 1990. Untraceable Electronic Cash, in: Proceedings of the 8th Annual International Cryptology Conference on Advances in Cryptology, CRYPTO ’88. Springer-Verlag, London, UK, UK, pp. 319–327.
  • Okamoto, T., Ohta, K., 1992. Universal Electronic Cash, in: Proceedings of the 11th Annual International Cryptology Conference on Advances in Cryptology, CRYPTO ’91. Springer-Verlag, London, UK, UK, pp. 324–337.
  • Wei Dai’s B-Money (Wei Dai, 1998, http://www.weidai.com/bmoney.txt)

Πρ' όλα αυτά, η εργασία που εκδόθηκε τον Νοέμβρη του 2008, υπό το ψευδώνυμο Satoshi Nakamoto, είναι η καλύτερη λύση που έχει προταθεί μέχρι σήμερα σε αυτό το πρόβλημα, Επίσης απολαμβάνει ευρύτερης αποδοχής.


Τι είναι το "Πρόβλημα των βυζαντινών στρατηγών";

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

Μετά την παρακολούθηση του εχθρού πρέπει να αποφασίσουν σε ένα κοινό σχέδιο δράσης.

Όμως κάποιοι από τους στρατηγούς μπορεί να είναι προδότες και να προσπαθούν να εμποδίσουν τους άλλους (νομοταγείς) στρατηγούς να έρθουν σε συμφωνία, Οι στρατηγοί πρέπει να έχουν έναν αλγόριθμο που να εγγυάται ότι
Α - όλοι οι νομοταγείς αποφασίζουν για το ίδιο σχέδιο δράσης
Β - ο μικρός αριθμός των προδοτών δεν θα μπορούν να προκαλέσουν την υιοθέτηση από τους νομοταγείς στρατηγούς ενός κακού σχεδίου δράσης"

Το Πρόβλημα των Βυζαντινών Στρατηγών, 1982

Οι παραπάνω εικόνες απεικονίζουν με ακρίβεια το πρόβλημα.

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


H προσέγγιση στη λύση του προβλήματος μέσω του bitcoin

Το κατάστιχο του Bitcoin: To Blockchain (η αλυσίδα των μπλοκ)

Κατ' αρχήν:

  • Ο χρήστης του Bitcoin κατεβάζει και εγκαθιστά ένα λογισμικό - το Bitcoin Client
  • Το λογισμικό αυτό με τη σειρά του κατεβάζει εσωτερικά όλη την αλυσίδα των επικυρωμένων μπλοκ (blockchain) που περιέχει καταγραμμένες όλες τις συναλλαγές στην ιστορία του Bitcoin και πλέον το κομπιούτερ στο εποίο έχουν εγκατασταθεί αυτά, γίνεται κόμβος του δικτύου του Bitcoin
  • Κάθε Bitcoin client αποθηκεύει την πλήρη ιστορία όλων των συναλλαγών bitcoin όλων των εποχών. Δέν υπάρχει κάποιο κεντρικό αρχείο στο οποίο να καταγράφονται αυτά τα δεδομένα. Αυτά βρίσκονται διανεμημένα σε κάθε ένα από τα εγκατεστημένα Bitcoin Client

Μόλις βρεθεί το blockchain σε ένα κομπιούτερ, προκύπτει το ζήτημα του συγχρονισμού του:

  • Πως τα αντίγραφα του blockchain που βρίσκονται σε κάθε άλλο κόμβο είναι συγχρονισμένα με όλους τους υπόλοιπους κόμβους;
  • Με άλλα λόγια πώς αποκτάται συναίνεση για τα δεδομένα που περιέχουν τα αντίγραφα του blockchain χωρίς την ύπαρξη μιας κεντρικής λειτουργίας που να καθορίζει ακριβώς ποιά πρέπει να είναι τα δεδομένα αυτά;
  • Ή με άλλα πάλι λόγια, ένας κόμβος που λαμβάνει αντικρουόμενες πληροφορίες για τα δεδομένα μιας συναλλαγής, ποιά από αυτά πρέπει να δεχτεί σαν έγκυρα και ποιά να αγνοήσει; Ποιά είναι αξιόπιστα και ποιά αναξιόπιστα;

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

O μηχανισμός συγχρονισμού του blockchain

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

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

   Ο μηχανισμός που χρησιμοποιεί το Bitcoin για να επιβεβαιώσει τις συναλλαγές λύνοντας το βυζαντινό πρόβλημα συνίσταται στην διαδικασία που ονομάζεται "εξόρυξη" (mining)

Συγχρονίζοντας το blockchain: Εξόρυξη

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

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

Η διαδικασία της εξόρυξη έχει τρία στάδια

Πρώτο στάδιο: Οι εξορύκτες (miners) δημιουργούν ένα αρχείο που περιέχει (α) το hash (κατακερματισμός) από το τελευταίο block του υπάρχοντος blockchain, (β) ένα block των νέων συναλλαγών που έχουν πραγματοποιηθεί και μεταδοθεί στο δίκτυο του bitcoin και (γ) ένας τυχαίος αριθμός που επινοείται τυχαία από τον εξορύκτη ο οποίος καλείται "νούντσιος" (nonce). O συνδυασμός των (α) + (β) + (γ) είναι τα δεδομένα που θα εισαχθούν στο δεύτερο στάδιο.

Δεύτερο στάδιο: Οι εξορύκτες εφαρμόζουν μία κρυπτογραφική λειτουργία στα δεδομένα. Οι λεπτομέρειες αυτής της λειτουργίας εξηγούνται εδώ [...] Η πιό σημαντική της λειτουργία είναι ότι δημιουργείται μία μοναδική συμβολοσειρά και οποία (η λειτουργία) δεν μπορεί να αντιστραφεί (δηλαδή το να γνωρίζουμε το αποτέλεσμα της λειτουργίας δεν μας επιτρέπει να ανατρέξουμε στα αρχικά δεδομένα). Αυτή η νέα σειρά δεδομένων ονομάζεται "data hash" (κατακερματισμένα δεδομένα)

Τρίτο στάδιο: Το hash εξετάζεται εάν ταιριάζει με ένα επιθυμητό σχήμα (μοτίβο - pattern). Σε αυτήν την περίπτωση εξετάζεται ο αριθμός των μηδενικών που βρίσκονται στην αρχή του - ένα αποτέλεσμα που είναι ουσιαστικά τυχαίο. Εάν το hash ταιριάζει στο επιθυμητό σχήμα, ο εξορύκτης έχει ένα έγκυρο block και ως εκ τούτου ανταμείβεται με ένα οικονομικό έπαθλο. Εάν το hash δεν ταιριάζει στο μοτίβο, ο εξορύκτης επιστρέφει στο πρώτο στάδιο, επινοεί έναν νέο νούντσιο και επαναλαμβάνει την διαδικασία.

Εξόρυξη: Λήψη ανταμοιβής

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

Οι κόμβοι βεβαιώνουν ότι το hash ταιριάζει με το επιθυμητό σχήμα και αποδέχονται το νέο block.

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

Ο εξορύκτης σαν ανταμοιβή λαμβάνει:

  • τα νέα bitcoin (σε αυτό το χρονικό σημείο 12,5 bitcoin) τα οποία αυξάνουν τον συνολικό αριθμό των υπαρχόντων bitcoin
  • τις χρεώσεις που εφαρμόστηκαν σε όλες τις συναλλαγές που συμπεριλήφθηκαν στο block

Η ανταμοιβή για κάθε block ξεκίνησε από τα 50 bitcoin και μειώνεται κατά το ήμισυ κάθε 210000 block - περίπου κάθε 4 χρόνια.

Η επόμενη μείωση της ανταμοιβής για κάθε καινούργιο block θα συμβεί το 2020. Η ανταμοιβή για κάθε καινούργιο block θα σταματήσει όταν το δίκτυο θα φτάσει στα 6.939.000 block. Aυτό θα συμβεί περίπου κατά τη διάρκεια του έτους 2140. Ο συνολικός αριθμός των bitcoin που θα έχουν εκδοθεί θα είναι περίπου 21 εκατομμύρια.

Αυτορύθμιση της δυσκολίας εξόρυξης

Μετά την ανάγνωση όσων προηγήθηκαν κάποιος μπορεί να ρωτήσει: Γιατί κάποιος δεν φτιάχνει ένα υπερκομπιούτερ ώστε να εξορύξει όλα τα bitcoin;

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

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

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

Ας επιστρέψουμε όμως στο πρόβλημα των βυζαντινών στρατηγών...


Η λύση του προβλήματος των βυζαντινών στρατηγών

Σε αυτό το σημείο κάποιος αναγνώστης μπορεί να σχολιάσει ότι ακόμα δεν έχουμε λύσει τίποτα, απλώς μεταθέσαμε την ευθύνη επίλυσης του προβλήματος στους εξορύκτες: "Τι θα συμβεί εάν δύο από αυτούς μεταδώσουν ο καθένας από ένα block με αντικρουόμενες πληροφορίες; Πώς θα επιλέξουν οι κόμβοι;

Η απάντηση εδώ βρίσκεται στο εξής: "Κερδίζει πάντα η μακρύτερη" (σε όρους Bitcoin ...για να μην παρεξηγούμαστε), δηλαδή η αλυσίδα (blockchain) η οποία έχει τη μεγαλύτερη συνδυασμένη δυσκολία (από τα κατακερματισμένα δεδομένα που χρησιμοποιήθηκαν για την δημιουργία της). Με άλλα λόγια η αλυσίδα για την δημιουργία της οποίας απαιτήθηκε η περισσότερη υπολογιστική ισχύς.

Η κοντύτερη αλυσίδα απορρίπτεται (το "ορφανό" block και οι συναλλαγές που περιέχει, πρέπει να επεξεργαστούν ξανά εφόσον δεν περιέχονται στην μακρύτερη αλυσίδα

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


Εξόρυξη: Απόδειξη της Εργασίας (proof of work)

Η διαδικασία δημιουργίας τυχαίων αριθμών ("απόδειξη της εργασίας") δημιουργεί μεγάλη σύγχιση σε πολλούς εξυπνάκηδες.

Συχνά την χαρακτηρίζουν ως (α) σπατάλη δυνάμεων ή (β) ένδειξη κακού σχεδιασμού του συστήματος ("γιατί να χρειάζεται τόση πολλή δουλειά για να καταγρεφαί μιά συναλλαγή όταν με την βάση δεδομένων που έχω στο λαπιτόπι μπορώ να το κάνω στιγμαία;")

Στην πράξη, βέβαια, αυτό είναι το "σημείο κλειδί" που δίνει στα κατάστιχά μας την απαιτούμενη ασφάλεια, ώστε να μην μπορεί κανείς να τα παραβιάσει και να τα αλλοιώσει.

Τελικά όποιος κάνει τέτοιες ερωτήσεις, δεν έχει καταλάβει στ' αλήθεια πως δουλεύει το Bitcoin.

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

Eξόρυξη: Η επίθεση του 51%

Για να είμαστε ακριβείς, το Bitcoin λύνει το πρόβλημα των βυζαντινών στρατηγών όσο οι τίμιοι εξορύκτες (ή τουλάχιστον οι μή συνεργαζόμενοι μεταξύ τους) κατέχουν τουλάχιστον το 50% της ισχύος κατακερματισμού (hashing power) του συστήματος *

*Θεωρητικά σενάρια επίθεσης στο σύστημα ανεβάζουν αυτό το όριο στο 66.67% [διαβάστε το εδώ]

Όπως τα καζίνο σε βάθος χρόνου βγαίνουν κερδισμένα, έτσι και ένας εξορύκτης εάν κατέχει περισσότερη από το 50% της ισχύος κατακερματισμού, σε βάθος χρόνου, μπορεί να παράγει "μακρύτερη" αλυσίδα, από αυτή που μπορούν να παράγουν όλοι οι υπόλοιποι εξορύκτες συνδυαστικά, έτσι μπορεί να αναστρέψει παρελθούσες συναλλαγές ή και να αρνηθεί να καταγράψει κάποιες άλλες (συνεχίζει βέβαια η αδυναμία του να ξοδέψει τα bitcoin που δεν του ανήκουν - έχει τη δυνατότητα όμως να τα εμποδίσει να ξοδευτούν από τους κατόχους τους)

Αυτό που περιγράφηκε είναι η λεγόμενη Επίθεση του 51% (51% Αttack).

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

Άρα είναι πολύ σηματικό θέμα, για την κοινότητα του Bitcoin, ώστε οι "τίμιοι" εξορύκτες να κατέχουν τουλάχιστον το 50% της υπολογιστικής ισχύος του συστήματος, ή εναλλακτικά, ένας αναξιόπιστος εξορύκτης (ή μια κοινοπραξία τέτοιων) να μην μπορεί να κατέχει περισσότερο από το 50% αυτής.

Σε πολλές περιπτώσεις μέχρι τώρα, κάποιες δεξαμενές εξόρυξης (mining pools - ομάδες συνεργαζόμενων εξορυκτών) έχουν καταφέρει να αποκτήσουν μεγάλυτερα ποσοστά από το 40% της υπολογιστικής ισχύος του συστήματος και (μετά από παράπονα και ενστάσεις της κοινότητας) έχουν εθελοντικά μειώσει την συμμετοχή τους, ακριβώς για να μην προκαλέσουν δυσλειτουργία (αναξιοπιστία) στο σύστημα.

 

H ισοτιμία του bitcoin τώρα

Ανανεώνεται κάθε 10 λεπτά | είναι ο μέσος όρος των ισοτιμιών όλων των ανταλλακτηρίων

News room

  • Το bitcoin θα μπορούσε να πέσει στα 20.000 δολάρια πριν εκτοξευθεί στα 600.000 δολάρια λέει ο CIO της Guggenheim

    Το bitcoin θα μπορούσε να πέσει στα 20.000 δολάρια πριν εκτοξευθεί στα 600.000 δολάρια λέει ο CIO της Guggenheim

    22 Απριλίου 2021 ♦ Η κυριακάτικη οπισθοχώρηση του bitcoin θα μπορούσε

    Read More
  • O Διευθύνων Σύμβουλος της Pantera εξηγεί την σχέση του πλήθους των χρηστών του bitcoin με την τιμή του

    O Διευθύνων Σύμβουλος της Pantera εξηγεί την σχέση του πλήθους των χρηστών του bitcoin με την τιμή του

    16 Απριλίου 2021 ♦ Στην μηνιαία επιστολή του προς τους επενδυτές,

    Read More
  • Η Τουρκία θέτει εκτός νόμου τα κρυπτονομίσματα

    Η Τουρκία θέτει εκτός νόμου τα κρυπτονομίσματα

    16 Απριλίου 2021 ♦ Σε μια κίνηση που προκάλεσε έκπληξη, η

    Read More
  • H Goldman Sachs αναμένει

    H Goldman Sachs αναμένει "σοβαρές εξελίξεις" στην ρύθμιση των κρυπτονομισμάτων

    11 Απριλίου 2021 ♦ Ο Διευθύνων Σύμβουλος της Goldman Sachs David

    Read More
  • Δυσάρεστη έκπληξη από την Εθνική Τράπεζα

    Δυσάρεστη έκπληξη από την Εθνική Τράπεζα

    9 Απριλίου 2021 ♦ Μια έκπληξη περίμενε πολλούς χρήστες των υπηρεσιών

    Read More
  • Η Ledger αντιμετωπίζει την δικαιοσύνη λόγω σοβαρής διαρροής δεδομένων

    Η Ledger αντιμετωπίζει την δικαιοσύνη λόγω σοβαρής διαρροής δεδομένων

    9 Απριλίου 2021 ♦ Η εταιρεία πορτοφολιών κρυπτονομισμάτων Ledger, θα βρεθεί

    Read More
  • O CEO της JPMorgan λέει ότι τα

    O CEO της JPMorgan λέει ότι τα "εμφανιζόμενα ζητήματα" όπως τα κρυπτονομίσματα "πρέπει να αντιμετωπιστούν τάχιστα"

    8 Απριλίου 2021 ♦ Το αφεντικό της JPMorgan, σε επιστολή του

    Read More
  • Η Κίνα μπορεί να χρησιμοποιήσει to bitcoin κατά των ΗΠΑ λέει ο Peter Thiel

    Η Κίνα μπορεί να χρησιμοποιήσει to bitcoin κατά των ΗΠΑ λέει ο Peter Thiel

    8 Απριλίου 2021 ♦ Το bitcoin θα μπορούσε να γίνει ένα

    Read More
  • 1
  • 2

Διάγραμμα BTC/EUR*

   * H εξέλιξη της τιμής από την Coinbase