Αυτό το άρθρο εξηγεί πώς το proof of work (απόδειξη εργασίας) και το proof of stake (απόδειξη συμμετοχής) αποφασίζουν ποιος προσθέτει το επόμενο μπλοκ σε ένα blockchain, πώς το καθένα κρατά την αλυσίδα ασφαλή και πώς το καθένα δημιουργεί νέα νομίσματα. Το Blocknet, ένα νόμισμα proof of work που μπορείτε να εξορύξετε σε συνηθισμένο υπολογιστή, είναι το παράδειγμα σε όλο το κείμενο.
Ποια είναι η διαφορά ανάμεσα στο proof of work και το proof of stake;
Το proof of work και το proof of stake είναι δύο τρόποι με τους οποίους ένα blockchain αποφασίζει ποιος προσθέτει το επόμενο μπλοκ. Στο proof of work, οι miners ξοδεύουν υπολογιστική ισχύ για να βρουν ένα έγκυρο hash. Στο proof of stake, οι validators κλειδώνουν νομίσματα ως εγγύηση και επιλέγονται για να προτείνουν μπλοκ και να ψηφίζουν γι’ αυτά. Και τα δύο κάνουν την εξαπάτηση ακριβή.
Κάθε blockchain πρέπει να λύσει το ίδιο πρόβλημα. Χιλιάδες υπολογιστές που δεν εμπιστεύονται ο ένας τον άλλον πρέπει να συμφωνήσουν σε ένα ενιαίο ιστορικό πληρωμών, ώστε κανείς να μην μπορεί να ξοδέψει το ίδιο νόμισμα δύο φορές. Κάποιος πρέπει να προτείνει κάθε νέο μπλοκ, και όλοι οι υπόλοιποι χρειάζονται έναν λόγο να το αποδεχτούν. Αυτός ο κανόνας λέγεται μηχανισμός συναίνεσης, και το proof of work και το proof of stake είναι οι δύο πιο γνωστοί σχεδιασμοί.
| Proof of work | Proof of stake | |
|---|---|---|
| Ποιος φτιάχνει ένα μπλοκ | Ο miner που βρίσκει πρώτος ένα hash ίσο ή κάτω από τον στόχο του δικτύου | Ένας validator που επιλέγεται ανάμεσα σε όσους έχουν κλειδώσει νομίσματα |
| Τι δεσμεύουν | Υλικό και ρεύμα | Νομίσματα κατατεθειμένα ως stake |
| Ποια αλυσίδα κερδίζει | Η αλυσίδα με τη μεγαλύτερη συσσωρευμένη εργασία | Η αλυσίδα με τις περισσότερες ψήφους validators, με σημεία ελέγχου οριστικότητας |
| Πού πηγαίνουν τα νέα νομίσματα | Ανταμοιβή μπλοκ στον miner που βρήκε το μπλοκ | Ανταμοιβές σε validators για προτάσεις και ψήφους |
| Τι χρειάζεστε για να συμμετάσχετε | Έναν υπολογιστή που μπορεί να υπολογίζει hashes | Νομίσματα για stake (32 ETH για validator του Ethereum) |
| Παραδείγματα | Bitcoin, Monero, Blocknet | Ethereum από το 2022 |
Πώς επιλέγει το proof of work το επόμενο μπλοκ;
Στο proof of work, οι miners ανταγωνίζονται για να λύσουν έναν γρίφο που είναι δύσκολο να λυθεί και εύκολο να ελεγχθεί. Ένας miner παίρνει το μπλοκ που θέλει να δημοσιεύσει, προσθέτει έναν αριθμό που λέγεται nonce και υπολογίζει το hash του αποτελέσματος. Αν το hash, διαβασμένο ως αριθμός, είναι ίσο ή κάτω από τον στόχο του δικτύου, το μπλοκ είναι έγκυρο. Αν όχι, ο miner αλλάζει το nonce και ξαναδοκιμάζει. Ο μόνος τρόπος να κερδίσει είναι να δοκιμάσει πολλά nonce, οπότε η πιθανότητα ενός miner να βρει το επόμενο μπλοκ αντιστοιχεί στο μερίδιό του στην υπολογιστική ισχύ hashing του δικτύου.
Το άρθρο του Bitcoin που έγραψε ο Satoshi Nakamoto το 2008 το διατύπωσε ως «Το proof of work είναι ουσιαστικά μία CPU, μία ψήφος». Οι κόμβοι ακολουθούν την αλυσίδα στην οποία έχει επενδυθεί η μεγαλύτερη προσπάθεια proof of work, και μια ρύθμιση δυσκολίας ανεβάζει ή κατεβάζει τον στόχο, ώστε τα μπλοκ να συνεχίζουν να έρχονται με σταθερό ρυθμό όση υπολογιστική ισχύς κι αν προστεθεί. Ο οδηγός για το πώς λειτουργεί η εξόρυξη crypto εξηγεί βήμα βήμα τα hashes, τη δυσκολία και τα pools.
Το Blocknet λειτουργεί με τον ίδιο τρόπο, με αριθμούς που ορίζονται στον κώδικα συναίνεσής του:
- Το hash είναι το Argon2id με 2 GiB μνήμης, οπότε κάθε hash χρειάζεται πραγματική μνήμη εκτός από χρόνο επεξεργαστή. Ο οδηγός για το Argon2id δείχνει πώς λειτουργεί.
- Ο στόχος είναι (2^256 − 1) διαιρεμένο με τη δυσκολία, κάτι που κάνει τη δυσκολία περίπου ίση με τον αριθμό hashes που χρειάζεται το δίκτυο για να βρει ένα μπλοκ.
- Ένα μπλοκ έρχεται περίπου κάθε πέντε λεπτά, 288 μπλοκ την ημέρα. Η δυσκολία ακολουθεί τους πρόσφατους χρόνους μπλοκ μέσω ενός σταθμισμένου κινητού μέσου όρου 60 μπλοκ (LWMA).
- Οι κόμβοι ακολουθούν τη βαρύτερη αλυσίδα. Κάθε κόμβος αθροίζει τη δυσκολία κάθε μπλοκ μιας αλυσίδας και μεταβαίνει σε μια ανταγωνιστική αλυσίδα μόνο όταν η συνολική της εργασία είναι μεγαλύτερη.
Πώς επιλέγει το proof of stake το επόμενο μπλοκ;
Το proof of stake αντικαθιστά το hashing με μια κατάθεση. Για να συμμετάσχει, ένας validator κλειδώνει νομίσματα στο πρωτόκολλο, και το πρωτόκολλο επιλέγει validators για να προτείνουν και να εγκρίνουν μπλοκ. Το Peercoin, που κυκλοφόρησε το 2012, ήταν το πρώτο κρυπτονόμισμα που το χρησιμοποίησε, και το Ethereum πέρασε σε αυτό στις 15 Σεπτεμβρίου 2022 με μια αναβάθμιση που ονομάστηκε Merge.
Ο σχεδιασμός του Ethereum δείχνει τα επιμέρους κομμάτια. Από το ethereum.org:
- Ένας validator καταθέτει 32 ETH στο συμβόλαιο καταθέσεων.
- Ο χρόνος χωρίζεται σε slots των 12 δευτερολέπτων, ομαδοποιημένα σε εποχές (epochs) των 32 slots.
- Σε κάθε slot, ένας validator επιλέγεται τυχαία για να προτείνει ένα μπλοκ, και άλλοι ψηφίζουν γι’ αυτό με βεβαιώσεις (attestations).
- Τα σημεία ελέγχου γίνονται οριστικά όταν τα ψηφίζουν validators που κατέχουν τουλάχιστον τα δύο τρίτα όλων των ETH σε stake.
- Ένας validator που προτείνει δύο μπλοκ για το ίδιο slot ή δίνει αντιφατικές ψήφους υφίσταται slashing: μέρος του stake του, έως και ολόκληρο, καταστρέφεται.
Το stake κάνει τη δουλειά που κάνει το ρεύμα στο proof of work. Η παραβίαση των κανόνων κοστίζει στον validator νομίσματα που ήδη κατέχει.
Πώς μένουν ασφαλή το proof of work και το proof of stake;
Και οι δύο σχεδιασμοί κάνουν μια επίθεση να κοστίζει περισσότερο από όσο θα μπορούσε να αποφέρει, και τοποθετούν αυτό το κόστος σε διαφορετικά σημεία.
Στο proof of work, το κόστος είναι συνεχής υπολογισμός. Για να ξαναγράψει ένα παλιό μπλοκ, ένας επιτιθέμενος πρέπει να ξανακάνει την εργασία εκείνου του μπλοκ και κάθε μπλοκ μετά από αυτό και μετά να ξεπεράσει το έντιμο δίκτυο. Ο Nakamoto έδειξε ότι η πιθανότητα να προλάβει ένας πιο αργός επιτιθέμενος μειώνεται εκθετικά με κάθε νέο μπλοκ. Ο έλεγχος της αλυσίδας από εκεί και πέρα σημαίνει να τρέχει κανείς περισσότερη υπολογιστική ισχύ από όλους τους άλλους μαζί, για όσο διαρκεί η επίθεση.
Στο proof of stake, το κόστος είναι κεφάλαιο σε κίνδυνο. Η τεκμηρίωση του Ethereum αναφέρει ότι ένας επιτιθέμενος «θα χρειαζόταν το 51% των ETH σε stake» για να ελέγξει την αλυσίδα, ότι το ένα τρίτο του stake αρκεί για να εμποδίσει τα μπλοκ να γίνουν οριστικά και ότι η αναίρεση ενός οριστικού μπλοκ θα σήμαινε απώλεια τουλάχιστον του ενός τρίτου όλων των ETH σε stake μέσω slashing.
Το Blocknet ορίζει επίσης δύο όρια πάνω από το proof of work του. Το δίκτυο θεωρεί ασφαλείς τις 10 επιβεβαιώσεις, περίπου 50 λεπτά, και οι κόμβοι αρνούνται κάθε αναδιοργάνωση βαθύτερη από 100 μπλοκ, περίπου οκτώ ώρες, οπότε ένα μπλοκ σε βάθος 100 είναι οριστικό.
Πώς εκδίδουν νέα νομίσματα τα δύο μοντέλα;
Τα νομίσματα proof of work πληρώνουν νέα νομίσματα στον miner που βρίσκει κάθε μπλοκ, οπότε όποιος συνεισφέρει υπολογιστική ισχύ μπορεί να κερδίσει νομίσματα χωρίς να έχει ήδη. Τα νομίσματα proof of stake πληρώνουν νέα νομίσματα σε validators ανάλογα με το stake τους, οπότε οι ανταμοιβές πηγαίνουν σε όσους ήδη κατέχουν νομίσματα. Κάθε πρωτόκολλο ορίζει το δικό του χρονοδιάγραμμα.
Στο proof of work, η πρώτη συναλλαγή κάθε μπλοκ δημιουργεί νέα νομίσματα για τον miner που το βρήκε. Το άρθρο του Bitcoin το περιγράφει ως «έναν τρόπο αρχικής διανομής νομισμάτων σε κυκλοφορία, αφού δεν υπάρχει κεντρική αρχή που να τα εκδίδει». Η ανταμοιβή του Bitcoin υποδιπλασιάζεται κάθε 210.000 μπλοκ, περίπου κάθε τέσσερα χρόνια, και η συνολική προσφορά μένει λίγο κάτω από τα 21 εκατομμύρια.
Στο proof of stake του Ethereum, οι ανταμοιβές προστίθενται στα υπόλοιπα των validators μία φορά ανά εποχή για βεβαιώσεις, προτάσεις μπλοκ και συμμετοχή στην επιτροπή συγχρονισμού (sync committee). Η βασική ανταμοιβή μικραίνει όσο μεγαλώνει το συνολικό stake, ενώ η συνολική έκδοση αυξάνεται καθώς προστίθενται validators.
Η έκδοση του Blocknet γίνεται εξ ολοκλήρου μέσω της εξόρυξης. Το μπλοκ γένεσής του δεν περιέχει καμία συναλλαγή, οπότε δεν υπήρχαν νομίσματα πριν ξεκινήσει η εξόρυξη, και η συναίνεση δεν έχει premine, ταμείο ή έξοδο για τους ιδρυτές. Κάθε μπλοκ πληρώνει ολόκληρη την ανταμοιβή του σε μία έξοδο στον miner που το βρήκε. Η ανταμοιβή ξεκίνησε στα 723,25 BNT ανά μπλοκ, μειώνεται κάθε μήνα 30 ημερών ακολουθώντας μια εκθετική καμπύλη για 48 μήνες και μετά μένει μόνιμα στα 2 BNT ανά μπλοκ.
Γιατί το Blocknet χρησιμοποιεί proof of work;
Το Blocknet επέλεξε το proof of work ώστε όποιος έχει υπολογιστή να μπορεί να κερδίζει νέα νομίσματα από το πρώτο μπλοκ, χωρίς να χρειάζεται να αγοράσει πρώτα. Ο daemon του περιγράφει το Argon2id ως «memory-hard PoW για αντίσταση στα ASIC και δίκαιη εξόρυξη» και τρέχει κάθε hash σε ένα μόνο νήμα «για λόγους δικαιοσύνης».
Η απαίτηση μνήμης είναι αυτό που κρατά την εξόρυξη ανοιχτή. Κάθε hash γεμίζει 2 GiB μνήμης, οπότε κάθε νήμα εξόρυξης χρειάζεται περίπου 2 GB RAM, και οι υπολογιστές που ήδη έχει ο κόσμος, επιτραπέζιοι, laptop και διακομιστές, διαθέτουν αυτή τη μνήμη και τους ελεγκτές που την τροφοδοτούν. Το Blocknet ανήκει σε μια οικογένεια νομισμάτων proof of work χτισμένων γύρω από υλικό γενικής χρήσης: το Monero, για παράδειγμα, χρησιμοποιεί από τον Νοέμβριο του 2019 το RandomX, «βελτιστοποιημένο για CPU γενικής χρήσης».
Το proof of work παραμένει στα σχέδια του Blocknet. Η αναβάθμιση Faraday, προγραμματισμένη για περίπου τον Φεβρουάριο του 2027 σύμφωνα με το blocknetcrypto.com, θα φέρει «ένα ελαφρύτερο proof of work» ώστε οι νέοι κόμβοι να συγχρονίζονται ταχύτερα με την αλυσίδα.
Πώς ξεκινάτε εξόρυξη σε ένα νόμισμα proof of work;
Για το Blocknet, χρειάζεστε μια διεύθυνση πορτοφολιού και το seine, τον δωρεάν miner ανοιχτού κώδικα:
- Αποκτήστε διεύθυνση από το επίσημο πορτοφόλι. Ο οδηγός πορτοφολιού σας καθοδηγεί βήμα βήμα.
- Κατεβάστε το seine για Windows, macOS ή Linux και εκτελέστε το.
- Επικολλήστε τη διεύθυνσή σας ή το
@nameσας και αποδεχτείτε το προεπιλεγμένο pool, το bntpool.com.
Το seine επιλέγει τον αριθμό νημάτων με βάση τη RAM σας, συγκρίνει kernels της CPU ενώ κάνει εξόρυξη και κρατά τον ταχύτερο, και στα Windows και το Linux προσθέτει κάθε κάρτα γραφικών NVIDIA μαζί με τον επεξεργαστή. Ο οδηγός εξόρυξης καλύπτει αναλυτικά το υλικό και τις πληρωμές.
Συχνές ερωτήσεις
Το Blocknet είναι proof of work ή proof of stake;
Το Blocknet χρησιμοποιεί proof of work. Οι miners υπολογίζουν hashes Argon2id που το καθένα χρειάζεται 2 GiB μνήμης, ένα νέο μπλοκ βρίσκεται περίπου κάθε πέντε λεπτά και ολόκληρη η ανταμοιβή μπλοκ πηγαίνει στον miner που το βρήκε. Δεν υπάρχει staking. Μπορείτε να το εξορύξετε με το seine σε έναν συνηθισμένο υπολογιστή μέσω του pool bntpool.com.
Πότε πέρασε το Ethereum από το proof of work στο proof of stake;
Το Ethereum πέρασε στο proof of stake με μια αναβάθμιση που ονομάστηκε Merge και εκτελέστηκε στις 15 Σεπτεμβρίου 2022. Από τότε, validators που καταθέτουν 32 ETH προτείνουν μπλοκ και ψηφίζουν γι' αυτά αντί για miners. Το Bitcoin, το Monero και το Blocknet χρησιμοποιούν ακόμη proof of work, όπου τα νέα μπλοκ προκύπτουν από υπολογιστική εργασία.
Τι είναι η επίθεση 51%;
Η επίθεση 51% είναι μια προσπάθεια να ελέγξει κανείς ποια μπλοκ αποδέχεται μια αλυσίδα, κατέχοντας το μεγαλύτερο μέρος του πόρου που το αποφασίζει. Στο proof of work αυτό σημαίνει το μεγαλύτερο μέρος της υπολογιστικής ισχύος hashing του δικτύου. Στο proof of stake σημαίνει την πλειονότητα των νομισμάτων σε stake. Σε κάθε περίπτωση ο επιτιθέμενος πρέπει να δεσμεύσει την πλειονότητα πραγματικών πόρων.
Μπορείτε να κάνετε εξόρυξη σε ένα νόμισμα proof of stake;
Όχι. Ένα καθαρό νόμισμα proof of stake δεν έχει εξόρυξη. Τα νέα νομίσματα πληρώνονται σε validators που κλειδώνουν υπάρχοντα νομίσματα ως stake, οπότε πρέπει να έχετε νομίσματα πριν μπορέσετε να κερδίσετε. Για να κερδίσετε νέα νομίσματα με τον υπολογιστή που ήδη έχετε, χρειάζεστε ένα νόμισμα proof of work όπως το Blocknet.