Ο αλγόριθμος Proof of Stake με μίσθωση και το πρωτόκολλο Waves-NG
Συντάκτης: Guy Brandon, συντελεστής του δικτύου Waves.
Το δίκτυο Waves λειτουργεί με έναν αλγόριθμο συναίνεσης Proof of Stake με μίσθωση (Leased Proof of Stake, ή LPoS) σε συνδυασμό με το πρωτόκολλο Waves-NG, επιτρέποντας υψηλό βαθμό επεκτασιμότητας και διεκπεραιωτικής ικανότητας συναλλαγών.
Εισαγωγή
Το δίκτυο Waves κυκλοφόρησε το 2016 μετά από ένα Initial Coin Offering (ICO) που συγκέντρωσε 30.000 BTC – περίπου 16 εκατομμύρια δολάρια εκείνη την εποχή. Το έργο αναπτύσσει ένα ολοκληρωμένο οικοσύστημα blockchain για χρήση σε επιχειρηματικές διαδικασίες, με μια ευρεία εργαλειοθήκη που καλύπτει διάφορες ανάγκες, συμπεριλαμβανομένης της εύκολης δημιουργίας προσαρμοσμένων Token κρυπτονομισμάτων, απλές έξυπνες συμβάσεις, συναλλαγές peer-to-peer σε ενσωματωμένο αποκεντρωμένο ανταλλακτήριο (decentralized exchange, ή DEX) και ένα ασφαλές, εύκολο μέσο αλληλεπίδρασης με dApp και υπηρεσίες web μέσω της προσθήκης για προγράμματα περιήγησης Waves Keeper.
Κλιμάκωση
Από την αρχή, το Waves αναγνώρισε ότι η επεκτασιμότητα θα ήταν απαραίτητη για τη μαζική υιοθέτηση του blockchain και έδωσε προτεραιότητα στην ανάπτυξη τεχνολογίας για την αντιμετώπιση των περιορισμών στα υφιστάμενα blockchain. Για παράδειγμα, το Bitcoin είναι εξαιρετικά ασφαλές αλλά σχετικά αργό και μπορεί να υποστηρίξει μόνο περίπου 7 συναλλαγές ανά δευτερόλεπτο (TPS). Ως εκ τούτου, το Bitcoin δεν είναι αρκετά αποτελεσματικό για να χρησιμοποιηθεί παγκοσμίως ως νόμισμα καθημερινής χρήσης. Προκειμένου το Bitcoin να επιτελέσει αυτό τον σκοπό, απαιτούνται λύσεις δεύτερου επιπέδου, όπως το Lightning Network. Το Waves έχει υιοθετήσει μια διαφορετική προσέγγιση, εστιάζοντας αρχικά στην υψηλή επεκτασιμότητα στην αλυσίδα προτού εξετάσει το ενδεχόμενο εφαρμογών δεύτερου επιπέδου.
Εκμίσθωση υπολοίπου
Ο αρχικός αλγόριθμος συναίνεσης του Waves ήταν μια απλή εφαρμογή του Proof of Stake. Τα 100 εκατομμύρια Token WAVES διανεμήθηκαν όλα μετά το ICO και ο όγκος είναι σταθερός: δεν υπάρχει πληθωρισμός, όπως συμβαίνει με τα νομίσματα που εξορύσσονται με τον μηχανισμό Proof of Work (PoW). Επομένως, οι επικυρωτές block του Waves (οι forger, αν και στο οικοσύστημα Waves είναι γνωστοί απλώς ως "εξορύκτες") λαμβάνουν προμήθειες συναλλαγών από τα block που διεκπεραιώνουν, αλλά όχι ανταμοιβές block.
Το σύστημα Proof of Stake με μίσθωση (LPoS) κυκλοφόρησε πλήρως τον Μάιο του 2017, επιτρέποντας στους χρήστες του προγράμματος-Waves lite client – όσους δεν εκτελούσαν πλήρεις κόμβους – να εκμισθώνουν τα Token WAVES τους σε κόμβους εξόρυξης. Τα εκμισθωμένα WAVES είναι κλειδωμένα στο λογαριασμό του χρήστη και δεν μπορούν να μεταφερθούν ή να συναλλαχθούν. Βέβαια, τα Token παραμένουν υπό τον πλήρη έλεγχο του κατόχου του λογαριασμού και οι εκμισθώσεις μπορούν να ακυρωθούν ανά πάσα στιγμή. Δεδομένων των τεχνικών εξόδων που σχετίζονται με τη λειτουργία ενός κόμβου εξόρυξης και της ανάγκης να είναι συνδεδεμένος στο διαδίκτυο 24/7, μόνο ένα σχετικά μικρό ποσοστό της κοινότητας Waves εκτελεί κόμβους (ένας κατάλογος με γεννήτριες block είναι διαθέσιμος στη διεύθυνση https://dev.pywaves.org/generators/).
Τα Token WAVES που εκμισθώνονται σε έναν κόμβο εξόρυξης χρησιμοποιούνται για να αυξήσουν το stakeweight του εξορύκτη, το οποίο, με τη σειρά του, αυξάνει τις πιθανότητες αυτός ο εξορύκτης να βρει το επόμενο block. Το σύστημα Proof of Stake με μίσθωση βελτιώνει την ασφάλεια του δικτύου με τουλάχιστον δύο τρόπους. Πρώτον, όσο περισσότερα WAVES χρησιμοποιούνται για την ασφάλεια του δικτύου, τόσο το καλύτερο, διότι γίνεται δυσκολότερο για έναν εισβολέα να συγκεντρώσει τα Token που απαιτούνται για να πραγματοποιήσει μια επίθεση 51%. Δεύτερον, τα WAVES μπορούν να εκμισθωθούν σε έναν κόμβο από τη διεύθυνση αποθήκευσης σε μη ψηφιακό μέσο ενός χρήστη, αλλά ο ίδιος ο κόμβος – ο οποίος παραμένει συνδεδεμένος στο διαδίκτυο – μπορεί να έχει μόνο ένα μηδαμινό υπόλοιπο. Αυτό μειώνει σημαντικά τον κίνδυνο παραβίασης των Token WAVES από υπολογιστές που είναι συνδεδεμένοι στο διαδίκτυο, καθώς τα εκμισθωμένα κεφάλαια δεν μεταφέρονται στον εξορύκτη.
Μια νέα προσέγγιση στη συναίνεση: Waves-NG
Τον Δεκέμβριο του 2017 πραγματοποιήθηκε μια περαιτέρω αναβάθμιση στο δίκτυο, με την κυκλοφορία του Waves-NG. Αυτό ήταν ένα νέο πρωτόκολλο βασισμένο στην πρόταση Bitcoin-NG του Emin Gün Sirer, καθηγητή πληροφορικής στο Πανεπιστήμιο Cornell.
Το αρχικό πρωτόκολλο του Bitcoin επιλέγει κάθε εξορύκτη αναδρομικά. Αφού προστεθεί ένα block στο blockchain, οι εξορύκτες ανταγωνίζονται για να βρουν ένα έγκυρο hash για το επόμενο block, με βάση την τρέχουσα κατάσταση του blockchain. Εν τω μεταξύ, οι νέες συναλλαγές που δημιουργούνται αποστέλλονται στο pool μνήμης (memory pool, ή mempool), όπου θα παραμείνουν σε εκκρεμότητα έως ότου ένας εξορύκτης τελικά τις συγκεντρώσει και τις επικυρώσει.
Αν και τα πρωτόκολλο Bitcoin και Bitcoin-NG θεωρούνται ανθεκτικά στο πρόβλημα των βυζαντινών στρατηγών (Byzantine Fault Tolerant, ή BFT), το δεύτερο πρωτόκολλο προτάθηκε το 2015 ως μια επεκτάσιμη εναλλακτική λύση που βασίζεται σε διαφορετικό μηχανισμό λειτουργίας. Σε ένα σύστημα Bitcoin-NG, ο επόμενος εξορύκτης επιλέγεται εκ των προτέρων και αυτός ο εξορύκτης δημιουργεί ένα κενό "block-κλειδί" - το οποίο είναι το block που θα προστεθεί τελικά στο blockchain. Σε αυτό το block-κλειδί, προστίθενται, σχεδόν σε πραγματικό χρόνο, μικρά block που ονομάζονται "microblocks" (αποτελούμενα από λίγες συναλλαγές το καθένα). Για να χρησιμοποιήσουμε ένα παράδειγμα από την καθημερινή ζωή, είναι σαν να προσθέτουμε πολλές τσάντες με ψώνια (microblock) σε ένα καρότσι (block-κλειδί), πριν πάμε τελικά ολόκληρο το καρότσι στο ταμείο (προσθήκη στο blockchain). Αυτό σημαίνει ότι οι συναλλαγές μπορούν να προστεθούν στο blockchain μέσα σε λίγα δευτερόλεπτα, με τη μόνη πραγματική καθυστέρηση να είναι ο χρόνος αδράνειας του δικτύου. Το Waves εξέλιξε αυτήν την ιδέα για ένα δίκτυο Proof of Stake, δημιουργώντας το πρωτόκολλο Waves-NG – την πρώτη εφαρμογή του Bitcoin-NG σε ένα ανοιχτό, δημόσιο blockchain.
Μια περαιτέρω προσθήκη στο οικοσύστημα ήταν το MassTransfer. Αυτά επιτρέπουν την ομαδοποίηση έως και 100 μεταφορών σε μία μόνο συναλλαγή, με μειωμένες προμήθειες. Το όριο των 100 μεταφορών ανά MassTransfer επιλέχθηκε, αφενός, ως συμβιβασμός μεταξύ της προσθήκης σημαντικής χωρητικότητας και της ευκολίας και, αφετέρου, για να περιορίσει τη δυνατότητα ταυτόχρονης αποστολής πολύ μεγάλων παρτίδων συναλλαγών χαμηλών ποσών. Εάν πρέπει να γίνουν περισσότερες μεταφορές, μπορούν να υποβληθούν διαδοχικά πολλαπλά MassTransfer.
Με άλλα λόγια, οι χρήστες μπορούν απλώς να επιλέξουν ένα MassTransfer ως διαφορετικό τρόπο "Αποστολής συναλλαγής", επιτρέποντάς τους να συμπεριλάβουν έως και 100 παραλήπτες σε μία μόνο συναλλαγή. Επιπλέον, οι διευθύνσεις των παραληπτών μπορούν να παρέχονται μέσω JSON ή να μεταφορτώνονται από ένα αρχείο CSV, καθιστώντας εύκολη και αποτελεσματική τη διεξαγωγή μεγάλων airdrop ή την εκτέλεση εβδομαδιαίων πληρωμών σε όσους εκμισθώνουν τα WAVES τους σε κόμβους εξόρυξης. Σε συνδυασμό με το πρωτόκολλο Waves-NG, η λειτουργία MassTransfer έχει καταστήσει δυνατή μια πολύ υψηλή διεκπεραιωτική ικανότητα στο δίκτυο.
Στο δίκτυο Waves έχει διεξαχθεί ένας αριθμός δοκιμών αντοχής για να μετρηθεί η διεκπεραιωτική ικανότητα του νέου πρωτοκόλλου. Τον Οκτώβριο του 2018, διεξήχθη μια σημαντική δοκιμή αντοχής στο MainNet. Αυτή κατέδειξε ότι το πρωτόκολλο του δημόσιου, ανοιχτού blockchain (όχι απλώς ένα περιορισμένο και ελεγχόμενο TestNet) θα μπορούσε να υποστηρίξει περισσότερες από 6,1 εκατομμύρια συναλλαγές μέσα σε ένα 24ωρο – κατά μέσο όρο 4.200 συναλλαγές ανά λεπτό ή 71 συναλλαγές ανά δευτερόλεπτο, με τη μέγιστη διεκπεραιωτική ικανότητα να φτάνει τις εκατοντάδες συναλλαγές ανά δευτερόλεπτο.
Συμπεράσματα
Το σύστημα Proof of Stake με μίσθωση έδωσε τη δυνατότητα σε καθημερινούς χρήστες χωρίς τεχνογνωσία να συμβάλλουν στην ασφάλεια του δικτύου Waves, εκμισθώνοντας τα WAVES τους σε πλήρεις κόμβους χωρίς να χάσουν τον έλεγχο των Token τους. Παράλληλα, το Waves-NG κατέστησε δυνατή τη διεκπεραιωτική ικανότητα έως και 100 TPS, που είναι υπερπολλαπλάσια από πολλά blockchain. Οι προμήθειες είναι χαμηλές διότι δεν απαιτείται η πληρωμή των εξορυκτών με ανταμοιβές block για να αποζημιωθούν για το υψηλό κόστος ηλεκτρικής ενέργειας και το ακριβό υλισμικό.
Η επεκτασιμότητα στην αλυσίδα ήταν προτεραιότητα για το δίκτυο Waves, αλλά υπάρχουν όρια στον βαθμό κατά τον οποίο κάθε blockchain μπορεί να κλιμακωθεί με αυτόν τον τρόπο λόγω του απαιτούμενου χώρου αποθήκευσης και εύρους ζώνης. Οι προγραμματιστές του Waves πιστεύουν ότι η τρέχουσα προσέγγιση μπορεί να βελτιστοποιηθεί, ώστε να υποστηρίζει έως και 1.000 TPS προτού υπάρξει ανάγκη για λύσεις περαιτέρω κλιμάκωσης. Το Waves διερευνά επί του παρόντος επιλογές για μια λύση κλιμάκωσης δεύτερου επιπέδου που περιλαμβάνει παράπλευρες αλυσίδες, επιτρέποντας τη διεκπεραίωση μεγάλου αριθμού συναλλαγών σε μια παράλληλη αλυσίδα, οι οποίες τελικώς ασφαλίζονται στο κύριο blockchain του Waves.