Τι είναι το Bitcoin mining και πώς λειτουργεί

Πώς λειτουργεί η «εξόρυξη» του bitcoin και γιατί η λέξη δεν περιγράφει την... ουσία. Πώς εξασφαλίζεται η ασφάλεια των συναλλαγών και πώς εξασφαλίζεται ότι το δίκτυο δεν θα δεχτεί επίθεση.

Τι είναι το Bitcoin mining και πώς λειτουργεί
  • του Στέλιου Ράμμου*

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

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

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

Eνδιαφέρουσα πληροφορία: ούτε ο όρος «mining» ούτε ο όρος «blockchain» εμφανίζονται στην πρωτότυπη εργασία του Satοshi Namakoto.

Παρά ταύτα, ο όρος παραμένει ασαφής ως προς τη λειτουργία αυτού του μηχανισμού. Στόχος αυτού του άρθρου είναι να βοηθήσει τον αναγνώστη να καταλάβει πώς λειτουργεί η «εξόρυξη» bitcoin και να εξηγήσει μερικούς όρους, όπως το Proof Of Work (ή PοW), ο κρυπτογραφικός γρίφος (cryptographic puzzle) και η συνάρτηση κατακερματισμού (hash functions) που χρησιμοποιεί. Θα εξηγήσει επίσης τη διαφορά ανάμεσα στην επικύρωση και την επιβεβαίωση μιας συναλλαγής. Τεχνικοί όροι υπογραμμίζονται και εξηγούνται όποτε γίνεται αναφορά τους στο άρθρο.

Τι είναι το bitcoin mining;

Η εξόρυξη bitcoin αποτελείται ουσιαστικά από την επίλυση (ή απόπειρα επίλυσης) ενός απλού κρυπτογραφικού γρίφου, ο οποίος όταν επιλύεται, αποδεικνύει μαθηματικά ότι ένα σύνολο συναλλαγών bitcoin είναι έγκυρο. Είναι, ας πούμε, σαν να ψάχνει κάποιος τον κωδικό μιας κλειδαριάς. Δεν υπάρχει πιθανός συντομότερος τρόπος για τη λύση/εύρεση του κλειδιού που την «ξεκλειδώνει». Πρέπει να δοκιμαστεί κάθε δυνατός συνδυασμός, έως ότου βρεθεί ο σωστός. Αυτή η αναλογία περιγράφει καλά τα χαρακτηριστικά του κρυπτογραφικού γρίφου που χρησιμοποιεί το bitcoin. Έτσι όπως με μια κλειδαριά, η επίλυση του γρίφου είναι χρονοβόρα και, ακόμη, περισσότερο ενεργοβόρα.

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

Αυτή η διαδικασία απόπειρας για διάφορες λύσεις έως ότου βρεθεί η σωστή ονομάζεται Proof of Work (ή PοW). Ο κρυπτογραφικός γρίφος (ή αλγόριθμος PοW) στο πρωτόκολλο του bitcoin χρησιμοποιεί το SHA256 («Secure Hash Algorithm 256»). Δεδομένου ότι οι miners ξοδεύουν τόσο χρόνο και ενέργεια για την επίλυση του γρίφου -και κατ' ακολουθίαν επικυρώνουν τις συναλλαγές στο blockchain-, το πρωτόκολλο τους ανταμείβει για την προσπάθειά τους με τη λεγόμενη «ανταμοιβή εξόρυξης», η οποία απαρτίζεται από τα δύο ακόλουθα μέρη:

1. Την παραγωγή νέων (ψηφιακών κερμάτων) bitcoins: όταν ένας miner επικυρώνει τις συναλλαγές, ομαδοποιούνται σε ένα μπλοκ και προστίθενται στην blockchain του bitcoin. Για κάθε νέο μπλοκ που προστίθεται στην blockchain, δημιουργούνται νέα bitcoin σύμφωνα με τον ρυθμό έκδοσης που καθορίζεται από το πρωτόκολλο τη στιγμή της δημιουργίας του μπλοκ. Τη στιγμή της καταγραφής, η νέα έκδοση εμπεριέχει 6,25 (κέρματα) BTC ανά μπλοκ. Ο αριθμός των νέων BTC ανά μπλοκ είναι προδιαγεγραμμένος από το πρωτόκολλο να μειώνεται στο ήμισυ περίπου κάθε 4 χρόνια (ξεκίνησε με 50 το 2009), και

2. Το σύνολο τελών όλων των συναλλαγών που επικυρώθηκαν στο μπλοκ: όταν δύο μέρη χρησιμοποιούν bitcoins για κάθε συναλλαγή τους, καθορίζουν ένα μικρό μεν ικανό δε ποσό (τέλος), που θα πληρωθεί στον miner για να επικυρώσει τη συναλλαγή τους. Στην πραγματικότητα, όταν ένας miner επικυρώνει ένα σύνολο συναλλαγών, συλλέγει όλα τα τέλη που καταβάλλονται για αυτό το σύνολο συναλλαγών. Δεδομένου του ότι ένα μπλοκ μπορεί να περιλάβει μόνο ένα περιορισμένο νούμερο συναλλαγών, ο miner θα επιλέξει τις συναλλαγές που προσφέρουν το υψηλότερο τέλος και άρα, το μεγαλύτερο εισόδημα για εκείνον. Eωs τώρα, αυτό το ποσό αντιπροσωπεύει ένα μικρό ποσοστό της συνολικής ανταμοιβής, αλλά καθώς μειώνεται ο αριθμός νέων bitcoins ανά έκδοση, τα τέλη θα γίνουν προοδευτικά η πιο σημαντική πηγή εισοδήματος για τους miners.

Πώς εξασφαλίζει ένας κρυπτογραφικός γρίφος την εγκυρότητα μιας συναλλαγής;

Για να απαντήσουμε σε αυτό το ερώτημα, πρέπει να αναφερθούμε στον αλγόριθμο PoW (SHA256) και να εξηγήσουμε τι είναι ένας κατακερματισμός (ή ένα λεγόμενο«hash»).

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

Πώς λοιπόν λειτουργεί το SHA256 και πώς βοηθά τους miners να επιτύχουν συναίνεση σχετικά με την κατάσταση της blockchain; Είναι σημαντικό να υπενθυμίσουμε ποιες πληροφορίες περιλαμβάνονται στα μπλοκ bitcoin και πώς συμπεριλαμβάνονται οι συναλλαγές σε αυτά. Ως επί το πλείστον, οι πληροφορίες που περιέχονται σε ένα μπλοκ αντιπροσωπεύονται από έναν κατακερματισμό. Επίσης, το κάθε μπλοκ συνδέεται με έναν μοναδικό κατακερματισμό. Ας απαριθμήσουμε ορισμένα από τα βασικά στοιχεία που συνδυάζονται για τη δημιουργία του κατακερματισμού ενός bitcoin μπλοκ:

• Κατακερματισμός μιας συναλλαγής: Ο κατακερματισμός της λίστας όλων των συναλλαγών που περιλαμβάνονται στο μπλοκ. Δημιουργείται συνδυάζοντας τα ακόλουθα στοιχεία σε ένα μοναδικό κατακερματισμό: ο κατακερματισμός του αποστολέα, ο κατακερματισμός του παραλήπτη και το ποσό που αποστέλλεται (τα λεγόμενα UTXOs).

• Κατακερματισμός προηγούμενου μπλοκ: Υπολογίζεται με παρόμοιο τρόπο. Μόνο το πρώτο μπλοκ (που ονομάζεται μπλοκ γένεσης) δεν χρησιμοποιεί τον κατακερματισμό του προηγούμενου μπλοκ, επειδή δεν υπάρχει.

• Nonce: Το nonce είναι το κλειδί του γρίφου. Είναι ένας θετικός ακέραιος αριθμός, ο οποίος όταν συνδυάζεται με τα δύο προηγούμενα στοιχεία (κατακερματισμός συναλλαγών + κατακερματισμός προηγούμενου μπλοκ), δημιουργεί τον κατακερματισμό του τελικού μπλοκ.

Στο SHA256, για να διασφαλιστεί η σωστή λύση πρέπει να πληρείται η προϋπόθεση ότι ο κατακερματισμός του μπλοκ ξεκινά με μια σειρά μηδενικών. Δηλαδή, όταν εισάγουμε στη συνάρτηση κατακερματισμού: κατακερματισμός συναλλαγών, κατακερματισμός του προηγούμενου μπλοκ και nonce, ο κατακερματισμός εξόδου πρέπει να ξεκινά με μια σειρά μηδενικών. Είναι το αντίστοιχο της προϋπόθεσης ότι ο σωστός συνδυασμός ξεκλειδώνει μια κλειδαριά.

Η συνάρτηση κατακερματισμού διασφαλίζει ότι υπάρχει μόνο μία λύση (δηλαδή: μόνο ένα nonce που οδηγεί σε ένα τέτοιο κατακερματισμό). Με τον ίδιο τρόπο που υπάρχει μόνο ένας συνδυασμός που ξεκλειδώνει την κλειδαριά στην παραπάνω αναλογία.

Θέσαμε ότι nonce είναι το κλειδί για τον κρυπτογραφικό γρίφο, αλλά το δεδομένο που πραγματικά το καθιστά έναν όμορφο και ασφαλή αλγόριθμο είναι ότι απαιτεί το hash του προηγούμενου μπλοκ ως είσοδο για να βρει τη λύση.

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

Πώς ο αλγόριθμος διασφαλίζει την ασφάλεια και αμεταβλητότητα μιας συναλλαγής;

Ας πάρουμε σαν παράδειγμα τη συναλλαγή όπου η Αλίκη στέλνει 1 BTC στον Ανδρέα. Αφού υπογράψει αυτήν τη συναλλαγή με το ιδιωτικό της κλειδί («private key»), το πορτοφόλι bitcoin της Αλίκης θα το μεταδώσει στο δίκτυο και θα προστεθεί στην ομάδα των μη επιβεβαιωμένων συναλλαγών των miners.Ύστερα, ένας miner θα επιλέξει τη συναλλαγή της Αλίκης μαζί με ένα σύνολο άλλων συναλλαγών και θα προσπαθήσει να βρει το σωστό nonce για να δημιουργήσει το επόμενο μπλοκ.

Η συναλλαγή κατακερματίζεται σε αυτό που θα ονομάσουμε το transaction Hash. Στη συνέχεια, αυτός ο κατακερματισμός χρησιμοποιείται σε συνδυασμό με όλους τους άλλους κατακερματισμούς συναλλαγών σε αυτό που θα ονομάσουμε transactions Hash. Τελικά, ο miner συνδυάζει το transactions Hash με τον κατακερματισμό του προηγούμενου μπλοκ και αναζητά το σωστό nonce που θα εξάγει ένα τελικό κατακερματισμό, ξεκινώντας με μια σειρά μηδενικών, τον οποίο θα αναφέρουμε ως blockHash. Αφού ο miner βρει τη λύση, τη μοιράζεται με το υπόλοιπο δίκτυο και προσθέτει το μπλοκ στο blockchain.

Τώρα ας φανταστούμε ότι η Αλίκη θέλει να εξαπατήσει τον Ανδρέα και αντί να του στείλει 1 BTC, θελήσει να αλλάξει την εγγραφή για 0.5 BTC. Κάνοντάς το, αλλάζει αναπόφευκτα το TransactionHash, το οποίο με τη σειρά του αλλάζει το Transactions Hash και, κατά συνέπεια, το blockHash. Εάν αλλάξει το blockHash, δεν θα ξεκινά πλέον με μια σειρά μηδενικών και το nonce δεν θα είναι πλέον έγκυρο. Επομένως, εάν η Αλίκη ήθελε να επιβάλει αυτή την αλλαγή, θα έπρεπε να εξορύξει ξανά το μπλοκ και να μεταδώσει τη λύση του.

Ωστόσο, στο μεταξύ, άλλοι miners αναζητούν ήδη το επόμενο μπλοκ που χρησιμοποιεί το προηγούμενο μπλοκ κατακερματισμού ως κομμάτι του γρίφου. Εδώ είναι σημαντικό να σημειωθεί ότι, κατά συνθήκη, οι miners χρησιμοποιούν πάντα τη μεγαλύτερη αλυσίδα (blockchain με τα περισσότερα επικυρωμένα μπλοκ) ως έγκυρη αλυσίδα. Αν λοιπόν η Αλίκη θελήσει να αλλάξει το μπλοκ, θα χρειαστεί να εξορύξει το μπλοκ με την αλλαγή και το επόμενο γρηγορότερα από όλους τους άλλους miners, για να παράγει τη μεγαλύτερη αλυσίδα. Όμως, αφού προσπάθησε να τροποποιήσει ένα υπάρχον μπλοκ, η Αλίκη είναι ήδη πίσω σε σχέση με την αποδεκτή blockchain! Στην πράξη, θα αναγκαζόταν να ξοδέψει πολύ περισσότερη ενέργεια για να καλύψει πρώτα τους άλλους miners και στη συνέχεια να παράγει τα επόμενα μπλοκ γρηγορότερα έως ότου γίνει η μακρύτερη blockchain.

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

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

Τι γίνεται αν κάποιος θελήσει να επιτεθεί στο δίκτυο μόνο και μόνο για να το καταστρέψει;

Δείξαμε προηγουμένως ότι το οικονομικό κίνητρο μιας επίθεσης έχει λίγο έως καθόλου νόημα. Αλλά ακόμη και εάν υποθέσουμε πως κάποιος θα ήθελε να επιτεθεί στο Bitcoin με μοναδικό στόχο την καταστροφή του, θα ήταν σχεδόν αδύνατο να το πετύχει. Μια τέτοια επίθεση είναι επίσης γνωστή ως «επίθεση 51%», όπου ο εισβολέας συγκεντρώνει το 51% της συνολικής ισχύος επεξεργασίας όλων των miners. Με την κατοχή περισσότερης από τη μισή ισχύ, ο εισβολέας θα έβρισκε στατιστικά τα μπλοκ γρηγορότερα. Θα μπορούσε ταυτόχρονα να αλλάξει ένα μπλοκ και να παράγει τη μακρύτερη αλυσίδα.

Τη στιγμή της γραφής του άρθρου αυτού, η συνολική ισχύς επεξεργασίας όλων των εξορυκτικών εργασιών, ή «hashrate», είναι 121.087.000 TH/s. Αυτό σημαίνει ότι όλοι οι miners σε συνδυασμό, δοκιμάζουν περισσότερα από εκατό εκατομμύρια τρισεκατομμύρια αριθμούς/nonces ανά δευτερόλεπτο για να βρουν μια σωστή λύση στον γρίφο. Η απόκτηση του 51% αυτού του hashrate είναι ανέφικτη και αδιανόητη, ακόμη και για ένα έθνος. Θα χρειάζονταν τεράστιοι πόροι και κινητοποίηση για την επιτυχή διεξαγωγή μιας τέτοιας επίθεσης. Και με κάθε αύξηση συνολικής ισχύος επεξεργασίας, γίνεται όλο και λιγότερο πιθανό.

Με τόσο υψηλό hashrate, δεν πρέπει να βρεθεί το σωστό nonce πολύ γρήγορα;

Είναι φυσικό κάποιος να διερωτάται πώς είναι δυνατόν η παραγωγή του κάθε μπλοκ bitcoin να παραμένει σταθερή -περίπου κάθε 10 λεπτά-, παρόλο που οι miners προσπαθούν τρισεκατομμύρια nonces ανά δευτερόλεπτο. Δεν θα έπρεπε να βρεθεί μια λύση σχεδόν άμεσα;

Το πρωτόκολλο bitcoin περιλαμβάνει έναν μηχανισμό που ονομάζεται «προσαρμογή δυσκολίας», ο οποίος αποτρέπει να συμβεί κάτι τέτοιο. Η προσαρμογή της δυσκολίας αυξάνει το σύνολο πιθανών nonces, ώστε να είναι λιγότερο πιθανό να βρεθεί το σωστό.

Θα αντιστοιχούσε στην αύξηση του αριθμού των ψηφίων ενός συνδυασμού μιας κλειδαριάς. Εάν 1.000 άτομα αναζητούν έναν πενταψήφιο συνδυασμό, είναι πιθανό να το βρουν πολύ γρήγορα. Αλλά αν αναζητούν έναν συνδυασμό με 100 ψηφία, θα τους πάρει πολύ περισσότερο χρόνο. Έτσι, με βάση το τρέχον hashrate, οι ρυθμίσεις δυσκολίας υπολογίζουν την απαραίτητη δυσκολία για να διατηρηθούν οι χρόνοι παραγωγής περίπου στα 10 λεπτά και συνεπώς διατηρούν τον ρυθμό έκδοσης bitcoin σταθερό όπως καθορίζεται από το πρωτόκολλο.

Ποια είναι η διαφορά μεταξύ επικύρωσης και επιβεβαίωσης συναλλαγής;

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

Αποτελεί καλή αναλογία ο όρος «εξόρυξη bitcoin»;

Οι αναλογίες είναι ιδανικές για την απλοποίηση αφηρημένων εννοιών ή περίπλοκων ιδεών, αλλά συχνά δεν μπορούν να εξηγήσουν τις υποκείμενες διαδικασίες. Ως εκ τούτου, ο όρος «εξόρυξη bitcoin» είναι τόσο καλός όσο για την κατανόηση του σκοπού που εξυπηρετεί (δηλ. τη δημιουργία νέων bitcoin), αλλά φυσικά δεν λέει τίποτε για τον τρόπο λειτουργίας του. Αντίθετα, μπορεί να δημιουργήσει μεγάλη σύγχυση και υπονομεύει τη σημασία της εξόρυξης ως βασικού παράγοντα για την ασφάλεια, την αποκέντρωση και την επεκτασιμότητα του bitcoin.

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

*Ο κ. Στέλιος Ράμμος, απόφοιτος Data Science από το Πανεπιστήμιο του Μάαστριχτ, μέλος του Greek Crypto Community και παθιασμένος με την υπόθεση bitcoin, αφιερώνει σημαντικό κομμάτι του χρόνου του βοηθώντας νέους χρήστες να εξοικειωθούν με τα κρυπτονομίσματα μέσω του CryptoTesters.

ΣΧΟΛΙΑ ΧΡΗΣΤΩΝ

blog comments powered by Disqus
v