Δίκτυο Bitcoin

Το δίκτυο bitcoin είναι ένα δίκτυο ομότιμων κόμβων (peer-to-peer) πληρωμών που λειτουργεί πάνω από ένα κρυπτογραφικό πρωτόκολλο. Οι χρήστες στέλνουν και δέχονται bitcoins, τις μονάδες του νομίσματος, αναμεταδίδοντας ψηφιακά υπογεγραμμένα μηνύματα στο δίκτυο, κάνοντας χρήση λογισμικού πορτοφολιού κρυπτονομίσματος bitcoin. Οι συναλλαγές είναι καταγεγραμμένες σε μία κατανεμημένη, επαναλαμβανόμενη, δημόσια βάση δεδομένων, γνωστή ως blockchain (αλυσίδα από blocks-κοινοποιήσεις), με την κοινή συναίνεση να πετυχαίνεται από ένα σύστημα απόδειξης εργασίας (proof-of-work) που ονομάζεται εξόρυξη (mining). Ο Σατόσι Νακαμότο (Satoshi Nakamoto), ο σχεδιαστής του bitcoin υποστηρίζει ότι ο σχεδιασμός και υλοποίηση του bitcoin ξεκίνησε το 2007. Το εγχείρημα δημοσιεύτηκε το 2009 ως λογισμικό ανοιχτού κώδικα.
Το δίκτυο απαιτεί μία ελάχιστη υποδομή για να διαμοιράσει τις συναλλαγές. Ένα ad hoc αποκεντρωμένο δίκτυο από εθελοντές είναι επαρκές. Τα μηνύματα αναμεταδίδονται σε βάση καλύτερης προσπάθειας (best effort) και οι κόμβοι μπορούν να αποχωρήσουν ή να συμμετέχουν ξανά στο δίκτυο κατά βούληση. Κατά την επανασύνδεση, ένας κόμβος κατεβάζει και επικυρώνει τα νέα blocks (μπλοκ-κοινοποίηση) από τους άλλους κόμβους ώστε να συμπληρώσει το τοπικό του αντίγραφο του blockchain.

Συναλλαγές

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

Εξόρυξη

Για να σχηματίσει ένα κατανεμημένο διακομιστή στιγμιότυπων ως ένα δίκτυο ομότιμων κόμβων, το bitcoin χρησιμοποιεί ένα σύστημα απόδειξης εργασίας. Αυτή η εργασία καλείται συχνά εξόρυξη bitcoin (bitcoin mining). Η υπογραφή ανακαλύπτεται σε αντίθεση με το να παρέχεται με βάση κάποια γνώση. Αυτή η διαδικασία είναι ενεργοβόρα. Ο ηλεκτρισμός μπορεί να αποτελεί περισσότερο από το 90% του κόστους λειτουργίας για αυτούς που κάνουν εξόρυξη. Ένα κέντρο δεδομένων στην Κίνα, σχεδιασμένο κυρίως για εξόρυξη bitcoin, υπολογίζεται να χρειάζεται έως και 135 μεγαβάτ ενέργειας.
Να απαιτείται μία απόδειξη εργασίας για την παροχή της υπογραφής για το blockchain ήταν και η καινοτομία κλειδί του Σατόσι Νακαμότο. Η διαδικασία εξόρυξης περιλαμβάνει Τον εντοπισμό ενός block το οποίο, όταν υπολογιστεί 2 φορές η συνάρτηση κατατεμαχισμού SHA-256 του, να επιστρέψει ένα νούμερο μικρότερο από τη δοθείσα στοχευμένη δυσκολία. Ενώ η μέση εργασία που απαιτείται αυξάνεται αντιστρόφως της στοχευμένης δυσκολίας, η τιμή κατατεμαχισμού μπορεί πάντα να επαληθευτεί κάνοντας 2 φορές χρήση του SHA-256.
Για το bitcoin δίκτυο στιγμιότυπων, μία έγκυρη απόδειξη εργασίας εντοπίζεται αυξάνοντας έναν αριθμό (nonce) μέχρι η τιμή που θα βρεθεί να δίνει τη τιμή κατατεμαχισμού του block με τον αναγκαίο αριθμό από μηδενικά δυαδικά ψηφία (bits) που προηγούνται. Μόλις η συνάρτηση κατατεμαχισμού παράγει ένα έγκυρο αποτέλεσμα, το block δεν μπορεί να αλλάξει χωρίς να επαναληφθεί η εργασία. Αφού τα επόμενα blocks είναι συνδεδεμένα με αυτό, η εργασία για να αλλάξει το block θα απαιτούσε την επανάληψη της εργασίας για κάθε επόμενο block.
Η συναινετική πλειοψηφία στο bitcoin αντιπροσωπεύεται από την μεγαλύτερη αλυσίδα, η οποία απαιτεί τη μεγαλύτερη προσπάθεια για να παραχθεί. Εάν η πλειοψηφία της υπολογιστικής ισχύς ελέγχεται από ειλικρινείς κόμβους, η ειλικρινής αλυσίδα θα μεγαλώσει γρηγορότερα και θα ξεπεράσει οποιαδήποτε ανταγωνιστική αλυσίδα. Για να αλλάξει ένα προηγούμενο block, ένας επιτιθέμενος θα έπρεπε να επαναλάβει ξανά την απόδειξη της εργασίας για αυτό το block και για όλα τα μετέπειτα blocks και έπειτα να ξεπεράσει την εργασία της ειλικρινούς αλυσίδας. Η πιθανότητα ένας πιο αργός επιτιθέμενος να προλάβει μειώνεται εκθετικά όσο νέα blocks προστίθενται.
Ως αποζημίωση για την αύξηση της ταχύτητας του υλισμικού και την ποικιλία στο ενδιαφέρον για τη λειτουργία ενός κόμβου όσο περνάει ο καιρός, η δυσκολία εύρεσης μιας έγκυρης τιμής κατατεμαχισμού ρυθμίζεται κατάλληλα κάθε δύο εβδομάδες. Εάν τα blocks παράγονται πολύ γρήγορα, η δυσκολία αυξάνεται και περισσότερες τιμές κατατεμαχισμού απαιτούνται για να σχηματίσουν ένα block και να παράγουν νέα bitcoins.

Δυσκολία

Η εξόρυξη bitcoin είναι μία ανταγωνιστική ενασχόληση. Έχει παρατηρηθεί ένας αγώνας δρόμου σχετικά με τις διάφορες τεχνολογίες που χρησιμοποιούνται για την εξόρυξη bitcoins: επεξεργαστές, κάρτες γραφικών τελευταίας τεχνολογίας όπως αυτές που συναντούνται συχνά σε υπολογιστές για παιχνίδια, FPGA και ASIC, όλα έχουν χρησιμοποιηθεί, το καθένα με αποτέλεσμα την μείωση της κερδοφορίας της λιγότερο εξειδικευμένης τεχνολογίας. Τα ASIC που στοχεύουν στα bitcoin είναι αυτή τη στιγμή η κύρια μέθοδος εξόρυξης bitcoin και έχουν ξεπεράσει τη ταχύτητα των καρτών γραφικών μέχρι και 300 φορές. Όσο τα bitcoins γίνονται πιο δύσκολο να εξορυχτούν, οι εταιρίες παρασκευής υλισμικού προβλέπουν αύξηση στην πώληση προϊόντων ASIC τελευταίας τεχνολογίας.
Η υπολογιστική ισχύς συχνά ομαδοποιείται ώστε να μειώσει τη διαφοροποίηση στο εισόδημα αυτών που κάνουν εξόρυξη. Μεμονωμένος εξοπλισμός εξόρυξης συχνά πρέπει να περιμένει μεγάλες περιόδους μέχρι να επαληθεύσει ένα block μιας συναλλαγής και να λάβει πληρωμή. Σε μία  ομάδα (pool), όλοι οι συμμετέχοντες πληρώνονται κάθε φορά που κάποιος από την ομάδα επιλύει κάποιο block. Η πληρωμή εξαρτάται από το ποσό της εργασίας που έχει καταβάλει κάθε μεμονωμένο άτομο στην αναζήτηση του συγκεκριμένου block.
Τα κέντρα δεδομένων bitcoin προτιμούν να κρατούν ένα χαμηλό προφίλ, είναι διάσπαρτα στο κόσμο και προτιμούν να στεγάζονται σε σημεία όπου είναι διαθέσιμος φθηνός ηλεκτρισμός.

Κατανάλωση ενέργειας

To 2013, o Μαρκ Γκίμεϊν (Mark Gimein) υπολόγισε ότι η κατανάλωση ηλεκτρικής ενέργειας ήταν περίπου 40.9 μεγαβάτ (982 μεγαβατώρες την ημέρα). Το 2014, ο Χας ΜακΚούκ (Hass McCook) υπολόγισε 80.7 μεγαβάτ (80.666 kW). Το 2015, η εφημερίδα The Economist υπολόγισε ό,τι ακόμα και όλοι όσοι έκαναν εξόρυξη να χρησιμοποιούσαν σύγχρονες υποδομές, η συνολική ηλεκτρική παραγωγή θα ήταν 166.7 μεγαβάτ (1.46 τεραβάτ ανά ώρες το χρόνο).
Για να χαμηλώσουν το κόστος, όσοι κάνουν εξόρυξη bitcoins, έχουν δημιουργήσει σημεία στην Ισλανδία όπου η γεωθερμική ενέργεια είναι φθηνή και ο κρύος αέρας στην Ανταρκτική είναι δωρεάν. Στη Κίνα χρησιμοποιούν υδροηλεκτρική ενέργεια από το Θιβέτ ώστε να μειώσουν το κόστος του ηλεκτρικού ρεύματος.

Bitcoins που έχουν εξορυχθεί

Ως σύμβαση, η πρώτη συναλλαγή σε ένα block είναι μία ειδική συναλλαγή που παράγει νέα bitcoins για τον κάτοχο του block. Αυτό αποτελεί κίνητρο για να υποστηρίζουν κόμβοι το δίκτυο. Παρέχει το τρόπο για τη μεταφορά νέων bitcoins στην κυκλοφορία. Η ανταμοιβή για την εξόρυξη μειούται κατά το ήμισυ κάθε 210,000 blocks. Ξεκίνησε στα 50 bitcoins, έπεσε στα 25 στα τέλη του 2012 και σε 12.5 το 2016. Αυτή η μείωση είναι προγραμματισμένο να συνεχιστεί για 64 φορές μέχρι η δημιουργία νέων νομισμάτων να παύσει.

Ασφάλεια

Πολλές πιθανές επιθέσεις στο δίκτυο bitcoin και τη χρήση του ως μέσο πληρωμών, τόσο εφαρμόσιμες όσο και θεωρητικές, έχουν συλληφθεί. Το πρωτόκολλο bitcoin περιλαμβάνει πολλά χαρακτηριστικά που το προστατεύουν από μερικές από αυτές τις επιθέσεις, όπως τις μη εξουσιοδοτημένες δαπάνες, διπλές δαπάνες, παραχάραξη bitcoins και την παραβίαση του blockchain. Άλλες επιθέσεις,όπως η κλοπή ιδιωτικών κλειδιών, χρειάζονται φροντίδα από τους χρήστες.

Μη εξουσιοδοτημένες δαπάνες

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

Διπλές δαπάνες

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

Επίθεση αγώνα ταχύτητας

Αν η Εύα προσφερθεί να πληρώσει την Αλίκη ένα bitcoin για μία συναλλαγή αγαθών και υπογράψει την αντίστοιχη συναλλαγή, είναι πιθανό να δημιουργήσει επίσης μία άλλη συναλλαγή ταυτόχρονα, όπου θα στέλνει το ίδιο bitcoin στον Μπομπ. Με βάση τους κανόνες, το δίκτυο αποδέχεται μόνο μία από τις συναλλαγές. Αυτό ονομάζεται επίθεση αγώνα ταχύτητας, από τη στιγμή που υπάρχει ένας αγώνας ταχύτητας ποια συναλλαγή θα γίνει αποδεκτή πρώτη. Η Αλίκη μπορεί να μειώσει το ρίσκο μία τέτοιας επίθεσης θέτοντας ως όρο ότι δε θα παραδώσει τα αγαθά μέχρι η πληρωμή της Εύας να φανεί στο blockchain.
Μία παραλλαγή της επίθεσης αγώνα ταχύτητας (που είναι γνωστή ως επίθεση Φίνεϊ από τον Χαλ Φίνεϊ - Hal Finney) απαιτεί τη συμμετοχή κάποιου που κάνει εξόρυξη. Αντί να στείλει και στις δύο αιτήσεις πληρωμής (για να πληρώσει τον Μπομπ και την Αλίκη με τα ίδια νομίσματα) στο δίκτυο, η Εύα εκδίδει μόνο την πληρωμή προς την Αλίκη στο δίκτυο, ενώ ο συνεργός της προσπαθεί να κάνει εξόρυξη ενός block που περιλαμβάνει την πληρωμή προς τον Μπομπ αντί της Αλίκης. Υπάρχει μία πιθανότητα ο συνεργός να πετύχει πριν το δίκτυο, στην οποία περίπτωση η πληρωμή της Αλίκης δε θα γίνει αποδεκτή. Όπως και στην απλή επίθεση αγώνα δρόμου, έτσι και εδώ, η Αλίκη μπορεί να αποφύγει το κίνδυνο εάν περιμένει μέχρι η πληρωμή να συμπεριληφθεί στο blockchain.

Τροποποίηση του ιστορικού

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

Από-ανονυμωποίηση των πελατών

Η από-ανωνυμοποίηση είναι μία στρατηγική στην εξόρυξη δεδομένων κατά την οποία ανώνυμα δεδομένα διασταυρώνονται με άλλες πηγές δεδομένων ώστε να αναγνωρίσουν εκ νέου την πηγή των δεδομένων. Σε συνδυασμό με την ανάλυση των γράφων των συναλλαγών, η οποία μπορεί να αποκαλύψει συνδέσεις μεταξύ bitcoin διευθύνσεων (ψευδώνυμα), υπάρχει μία πιθανή επίθεση, η οποία συνδέει το ψευδώνυμο ενός χρήστη με την διεύθυνση IP του. Εάν ο ομότιμος κόμβος χρησιμοποιεί Tor, η επίθεση συμπεριλαμβάνει μία μέθοδο για να τον διαχωρίσει από το Tor δίκτυο, αναγκάζοντας τον να χρησιμοποιήσει την πραγματική του IP διεύθυνση για τις υπόλοιπες συναλλαγές. Η επίθεση κάνει χρήση μηχανισμών του bitcoin για την αναμετάδοση διευθύνσεων των ομότιμων κόμβων και προστασία κατά επιθέσεων άρνησης υπηρεσιών. Το κόστος της επίθεσης σε όλο το bitcoin δίκτυο είναι κάτω από 1500 ευρώ το μήνα.

Επαλήθευση πληρωμών

Ο καθένας που κάνει εξόρυξη μπορεί να επιλέξει ποιες συναλλαγές θα εμπεριέχονται ή όχι από κάθε block. Μεγαλύτερος αριθμός συναλλαγών σε ένα block δε αντιστοιχεί σε μεγαλύτερη υπολογιστική ισχύ για την επίλυση του.
Κατά τη λήψη μίας νέας συναλλαγής ένας κόμβος πρέπει να την επαληθεύσει. Συγκεκριμένα, να επαληθεύσει ότι δεν υπάρχει καμία είσοδος συναλλαγής που να έχει ξοδευτεί στο παρελθόν. Για να προχωρήσει με τον έλεγχο ο κόμβος χρειάζεται πρόσβαση στο blockchain. Οποιοσδήποτε χρήστης που δεν εμπιστεύεται τους γείτονές του στο δίκτυο, πρέπει να κρατάει ένα πλήρες τοπικό αντίγραφο, ώστε οποιαδήποτε είσοδος να μπορεί να επαληθευτεί.
Όπως σημειώνεται στη δημοσίευση του Νακαμότο, είναι πιθανό να επαληθεύσεις μία πληρωμή bitcoin χωρίς να τρέχεις έναν πλήρη κόμβο (απλοποιημένη πιστοποίηση πληρωμής, SPV). Ένας χρήστης χρειάζεται μόνο ένα αντίγραφο των κεφαλίδων του block από την μεγαλύτερη αλυσίδα, το οποίο γίνεται διαθέσιμο ρωτώντας τους κόμβους του δικτύου μέχρι να είναι σαφές ότι η μεγαλύτερη αλυσίδα έχει παραληφθεί, έτσι ώστε κάθε είσοδος να μπορεί να επαληθευτεί.