Αμοιβές, μέγεθος συναλλαγών και μπλοκ

Στο πρόσφατο συνέδριο Bitcoin 2014 που διοργανώθηκε στο Αμστερνταμ, ο core developer Gavin Andresen έκανε αναφορά σε δύο θέματα «κόστος συναλλαγών» και μέγεθος των μπλοκ, που απαιτούν εκτενή επεξήγηση, για να κατανοήσουμε τους κινδύνους που ελλοχεύουν.

Μέγεθος μπλοκ

Όπως έχουμε εξηγήσει, η αλυσίδα των μπλοκ είναι η ραχοκοκαλιά του Bitcoin. Κάθε νέο μπλοκ που δημιουργείται, περιέχει κάποιες ή όλες τις πρόσφατες συναλλαγές που ελέχθησαν για την ορθότητά τους και βρέθηκαν σωστές. Τί μέγεθος όμως έχει ένα μπλοκ και πόσες συναλλαγές μπορεί να περιέχει; Προς το παρόν, το μέγεθος κάθε μπλοκ έχει προσδιοριστεί στο 1 MegaByte. Το πλήθος των συναλλαγών που μπορούν να «στριμωχτούν» μέσα σε αυτό το 1MB εξαρτάται από το μέγεθος της κάθε συναλλαγής. Να σημειώσουμε ότι όταν αναφερόμαστε στο μέγεθος της συναλλαγής, δεν εννοούμε το αριθμητικό ποσό των Bitcoin που μεταφέρονται, όπως αναλύουμε παρακάτω.

Μέγεθος συναλλαγής

Το μέγεθος μιας συναλλαγής υπολογίζεται με βάση τις συναλλαγές «εισόδου» κι «εξόδου» (input/output).  Η συναλλαγές εισόδου είναι αυτές που φέρνουν νομίσματα στο πορτοφόλι ενώ εξόδου αυτές που τα ξοδεύουν. Στις περισσότερες των περιπτώσεων, μια συναλλαγή εξόδου συνδυάζει πολλές συναλλαγές εισόδου. Για παράδειγμα, έστω ότι λαμβάνουμε κάθε μήνα 2 Bitcoin ως μισθό. Σε έξι μήνες, θα έχουμε 6 συναλλαγές, των δύο Bitcoin η κάθε μία και σύνολο νομισμάτων 12. Αν θέλουμε να αγοράσουμε κάτι αξίας 11 Bitcoin, η συναλλαγή που θα πραγματοποιήσουμε θα έχει 6 εισόδους (inputs) και μια έξοδο (output).

Επειδή κάθε συναλλαγή που πραγματοποιούμε έχει εισόδους κι εξόδους, οι συναλλαγές εισόδου με τις οποίες λαμβάνουμε τον μισθό μας, αποτελούν την έξοδο μιας άλλης συναλλαγής (που έγινε στο πορτοφόλι του αποστολέα)  που αντίστοιχα είχε άλλες εισόδους Κ.Ο.Κ. Έτσι περιγράφεται όλη η «ιστορικότητα» των νομισμάτων και πάει πίσω μέχρι το σημείο της παραγωγής τους. Σημείωση: η συναλλαγή δημιουργίας Bitcoin δεν έχει Inputs. Για να περιγραφεί όμως όλη αυτή η ιστορικότητα απαιτείται αποθηκευτικός χώρος. Ο αποθηκευτικός χώρος που απαιτείται για μια συναλλαγή, αποτελεί το μέγεθος της συναλλαγής και μετριέται σε Kilobytes.

ΔΙΑΦΗΜΙΣΗ - CoinMedia

Προτεινόμενη αμοιβή συναλλαγής

Το πρόγραμμα Bitcoin Core ελέγχει το μέγεθος της συναλλαγής και με βάση αυτό υπολογίζει την αμοιβή που θα χρειαστεί.  Ο αναλυτικός αλγόριθμος υπολογισμού της αμοιβής είναι

148 * αριθμός εισόδων + 34 * αριθμός εξόδων + 10

Αν το αποτέλεσμα της πράξης είναι μικρότερο από 10.000 bytes και η συναλλαγή είναι υψηλής προτεραιότητας, τότε μπορεί να γίνει χωρίς αμοιβή. Σε διαφορετική περίπτωση χρειάζεται αμοιβή, η οποία έχει καθοριστεί στα 0,0001 bitcoins ανά 1000 bytes.

Ο παραπάνω κανόνας δεν αποτελεί μέρος του πρωτοκόλλου Bitcoin κι άρα είναι προαιρετικό το αν κάποιος Miner ή πρόγραμμα Bitcoin θα τον ακολουθήσει. Η μη συμπερίληψη αμοιβής σε μια Bitcoin συναλλαγή, εμπεριέχει τον κίνδυνο να καθυστερήσει πολύ η επιβεβαίωσή της και τοποθέτησή της σε κάποιο μπλοκ.

Επιλογή συναλλαγών στο μπλοκ

Από τα παραπάνω προκύπτει ότι το πόσες συναλλαγές θα χωρέσουν μέσα στο κάθε μπλοκ, εξαρτάται από το μέγεθος των συναλλαγών. Τί γίνεται όμως αν το συνολικό μέγεθος του πλήθους των συναλλαγών ξεπερνάει το 1MB του μεγέθους του μπλοκ; Είναι προφανές ότι επειδή δε θα χωρέσουν όλες, κάποιες θα μείνουν εκτός. Σε μια τέτοια περίπτωση, οι Miners επιλέγουν να ενσωματώσουν στο νέο μπλοκ τις συναλλαγές αυτές που έχουν τις υψηλότερες αμοιβές. Αν υποθέσουμε ότι αυξάνεται η δημοτικότητα του Bitcoin τόσο ώστε να υπάρχει συνεχώς πλήθος συναλλαγών που να μη χωράνε σε ένα μπλοκ, οι συναλλαγές χωρίς αμοιβή μπορεί να μην συμπεριληφθούν ποτέ. Όσο το πρόβλημα θα μεγαλώνει, σιγά-σιγά θα σταματήσουν να συμπεριλαμβάνονται και οι συναλλαγές με αμοιβή, γιατί θα υπάρχουν άλλες συναλλαγές με μεγαλύτερη αμοιβή, δημιουργώντας έτσι μια κούρσα άτυπης αύξησης της χρέωσης των συναλλαγών ως μέτρο σιγουριάς ότι η συναλλαγή θα εκτελεστεί. Αυτό όμως αποτελεί μεγάλο δυνητικό πρόβλημα, το οποίο απειλεί ή θα απειλήσει κάποια στιγμή το Bitcoin.

Η προτεινόμενη λύση κι ένα κρυφό πρόβλημα

Για να αποφευχθεί αυτό το πρόβλημα, ο Gavin Andresen πρότεινε δύο λύσεις: α) να αυξηθεί το μέγεθος του μπλοκ και να πεισθούν οι Miners να «στριμώχνουν» περισσότερες συναλλαγές σε κάθε ένα ή β) να παράγονται πιο γρήγορα τα μπλοκ. Από αυτά τα λεγόμενα όμως προκύπτει κι ένα ακόμα πρόβλημα που δεν είναι αμέσως εμφανές: Το πρόβλημα των άπληστων Pool.

Το πρόβλημα των άπληστων Pool

Όπως είναι γνωστό, η εύρεση ενός νέου μπλοκ αποτελεί αγώνα ενάντια στο χρόνο για όλα τα mining pools. Όποιος βρει πρώτος το επόμενο μπλοκ κερδίζει τα νομίσματα της δημιουργίας του μπλοκ συν τις αμοιβές των συναλλαγών που ενσωμάτωσε. Σε ορισμένες περιπτώσεις, αυτός ο αγώνας κρίνεται στην κυριολεξία στο δευτερόλεπτο. Όταν ένα Pool βρει το νέο μπλοκ, θέλει να το ανακοινώσει στο δίκτυο όσο το δυνατόν ταχύτερα. Η ενσωμάτωση όμως των συναλλαγών μέσα στο μπλοκ χρειάζεται κάποιο χρόνο. Για αυτό κάποια Pool επιλέγουν να μην ενσωματώσουν συναλλαγές που είτε δεν έχουν αμοιβή είτε τη θεωρούν χαμηλή. Αυτή η συμπεριφορά εντείνει πολύ περισσότερο το αρχικό πρόβλημα της μη ενσωμάτωσης έγκυρων συναλλαγών σε μπλοκ που περιγράψαμε παραπάνω, αλλά αυτή τη φορά όχι για λόγους χώρου αλλά για λόγους αυθαίρετης επιλογής.

Συστάσεις

Για να αποφευχθεί το πρόβλημα των άπληστων Pool, καλό θα ήταν οι Miners να κάνουν πρώτα μια σχετική έρευνα, για την αξιοπιστία του Pool στο οποίο θέλουν να συμμετέχουν. Σαν ιδανική λύση, που είναι και πιο κοντά στην αποκεντρωμένη φιλοσοφία του Bitcoin, προτείνουμε η εξόρυξη να γίνεται στο αποκεντρωμένο δίκτυο P2Pool.

Μοιραστείτε το!

      
ΔΙΑΦΗΜΙΣΗ - CoinMedia