Αρχική σελίδα
Άρθρα
Τι είναι το Proof-of-Work (PoW);

Τι είναι το Proof-of-Work (PoW);

Έχει δημοσιευτεί Dec 6, 2018Έχει ενημερωθεί Apr 18, 2024
10m

Κύρια σημεία αναφοράς

  • Το Proof of Work (PoW) είναι ένας μηχανισμός ομοφωνίας που αναπτύχθηκε για την αποφυγή διπλών δαπανών σε ψηφιακά συστήματα πληρωμών.

  • Το PoW είναι ένα βασικό κομμάτι της διαδικασίας εξόρυξης, η οποία περιλαμβάνει την προσθήκη νέων block συναλλαγών στο blockchain και τη δημιουργία νέων μονάδων κρυπτονομίσματος.

  • Το Bitcoin και πολλά άλλα κρυπτονομίσματα χρησιμοποιούν το PoW ως μέθοδο ασφάλισης του δικτύου blockchain και των δεδομένων τους.

Εισαγωγή

Συνοπτικά, το Proof of Work (PoW) είναι ένας μηχανισμός που αναπτύχθηκε για την αποφυγή διπλών δαπανών στα ψηφιακά συστήματα πληρωμών. Το Bitcoin και πολλά άλλα κρυπτονομίσματα χρησιμοποιούν το PoW ως μέθοδο ασφάλισης του δικτύου blockchain και των δεδομένων τους. Τέτοιου είδους μηχανισμοί αναφέρονται συχνά ως αλγόριθμοι ομοφωνίας ή μηχανισμοί ομοφωνίας, επειδή περιλαμβάνουν πολλά μέρη που καταλήγουν σε ομοφωνία χωρίς να χρειάζεται να εμπιστεύονται το ένα το άλλο.

Ο αλγόριθμος Proof of Work ήταν ο πρώτος αλγόριθμος ομοφωνίας που προέκυψε και παραμένει ένας από τους σημαντικότερους μαζί με τον αλγόριθμο Proof of Stake (PoS). Το PoW παρουσιάστηκε από τον Satoshi Nakamoto το 2008 στο whitepaper του Bitcoin, αλλά η ίδια η τεχνολογία είχε επινοηθεί πολύ νωρίτερα.

Το HashCash του Adam Back είναι ένα από τα πρώτα παραδείγματα ενός αλγορίθμου Proof of Work στην εποχή πριν από τα κρυπτονομίσματα. Απαιτώντας από τους αποστολείς να εκτελούν λίγους υπολογισμούς πριν από την αποστολή ενός email, οι παραλήπτες θα μπορούσαν να περιορίσουν την ανεπιθύμητη αλληλογραφία. Αυτός ο υπολογισμός δεν θα κόστιζε σχεδόν τίποτα σε έναν νόμιμο αποστολέα, αλλά θα μπορούσε να αυξηθεί γρήγορα για κάποιον που στέλνει μαζικά email.

Τι είναι η διπλή δαπάνη;

Η διπλή δαπάνη προκύπτει όταν τα ίδια κεφάλαια δαπανώνται περισσότερες από μία φορές. Ο όρος χρησιμοποιείται σχεδόν αποκλειστικά στο πλαίσιο του ψηφιακού νομίσματος – άλλωστε, δύσκολα θα ξοδεύατε τα ίδια μετρητά δύο φορές. 

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

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

Για περισσότερες λεπτομέρειες σχετικά με τη διπλή δαπάνη, ανατρέξτε στο άρθρο Επεξήγηση διπλής δαπάνης.

Γιατί είναι απαραίτητο το Proof-of-Work (PoW);

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

Για παράδειγμα, το blockchain του Bitcoin λειτουργεί ως μια δημόσια βάση δεδομένων συναλλαγών (καθολικό) την οποία μπορεί να δει κάθε χρήστης. Φανταστείτε το κάπως έτσι: εσείς και τρεις φίλοι σας έχετε ένα σημειωματάριο για να παρακολουθείτε τις συναλλαγές Bitcoin. Κάθε φορά που κάποιος από εσάς θέλει να πραγματοποιήσει μια μεταφορά αξίας, τη σημειώνετε:

Η Μαρία πλήρωσε στον Γιάννη 5 BTC. Ο Γιάννης πλήρωσε στη Βούλα 2 BTC, κ.λπ.

Ωστόσο, κάθε φορά που πραγματοποιείτε μια συναλλαγή, ανατρέχετε στη συναλλαγή από την οποία προήλθαν τα κεφάλαια. Επομένως, αν ο Γιάννης πλήρωσε τη Βούλα με 2 BTC, η καταχώριση θα ήταν κάπως έτσι: 

Ο Γιάννης πλήρωσε στη Βούλα 2 BTC τα οποία προήλθαν από την προηγούμενη συναλλαγή με τη Μαρία.

Τώρα, έχουμε έναν τρόπο να παρακολουθούμε τις μονάδες του BTC. Αν ο Γιάννης προσπαθήσει να πραγματοποιήσει άλλη συναλλαγή χρησιμοποιώντας τα ίδια 2 BTC που μόλις έστειλε στη Βούλα, όλοι θα το μάθουν αμέσως. Η ομάδα δεν επιτρέπει την προσθήκη της συναλλαγής στο σημειωματάριο, επειδή αυτά τα 2 BTC έχουν ήδη δαπανηθεί.

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

Εδώ μπαίνει στο παιχνίδι το Proof of Work. Εξασφαλίζει ότι οι χρήστες δεν δαπανούν χρήματα που δεν έχουν το δικαίωμα να δαπανήσουν. Με τον συνδυασμό της θεωρίας παιγνίων και της κρυπτογράφησης, ο αλγόριθμος PoW επιτρέπει σε οποιονδήποτε να ενημερώνει το blockchain σύμφωνα με τους κανόνες του συστήματος.

Πώς λειτουργεί το PoW;

Φανταστείτε ότι το σημειωματάριό μας από το παραπάνω παράδειγμα είναι το blockchain. Αλλά δεν προσθέτουμε συναλλαγές μία προς μία – αντίθετα, τις ομαδοποιούμε σε Block. Ανακοινώνουμε τις συναλλαγές στο δίκτυο και στη συνέχεια οι χρήστες που δημιουργούν ένα block θα τις συμπεριλάβουν σε ένα υποψήφιο block. Οι συναλλαγές θα θεωρούνται έγκυρες μόνο όταν το υποψήφιο block τους μετατραπεί σε επιβεβαιωμένο block, δηλαδή όταν προστεθεί στη βάση δεδομένων του blockchain.

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

Ο μηχανισμός Proof of Work απαιτεί από έναν εξορύκτη (ο χρήστης που δημιουργεί το block) να επενδύει πόρους όπως ηλεκτρική ενέργεια και υπολογιστική ισχύ, ώστε να γίνει hash στα δεδομένα του υποψήφιου block του μέχρι να βρεθεί η λύση ενός γρίφου.

Το hashing των δεδομένων του block σημαίνει ότι τα δεδομένα περνάνε από μια συνάρτηση hashing για να δημιουργηθεί ένα block hash. Το block hash λειτουργεί σαν "δακτυλικό αποτύπωμα" – είναι ένα αναγνωριστικό για τα δεδομένα εισαγωγής και είναι μοναδικό για κάθε block.

Δηλαδή, ένας εξορύκτης πρέπει να επαληθεύσει και να συλλέξει εκκρεμείς συναλλαγές, να τις οργανώσει σε ένα υποψήφιο block και να περάσει τα δεδομένα του block από μια συνάρτηση hashing για να δημιουργήσει ένα έγκυρο hash. Αν καταφέρει να βρει ένα έγκυρο hash για το υποψήφιο block του, το μεταδίδει στο δίκτυο, προσθέτει το block στο blockchain και εισπράττει τις ανταμοιβές εξόρυξης.

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

Παρόλο που χρειάζονται αμέτρητες προσπάθειες hashing για να βρεθεί ένα έγκυρο hash, είναι απλό για οποιονδήποτε να επιβεβαιώσει ότι το hash που παράγεται είναι σωστό. Πρέπει απλώς να υποβάλει τα ίδια δεδομένα εισαγωγής (block δεδομένων) μέσω της συνάρτησης hash και να ελέγξει αν το αποτέλεσμα είναι το ίδιο.

Στο Proof of Work, πρέπει να παρέχετε δεδομένα το hash των οποίων ταιριάζει με ορισμένες προϋποθέσεις. Αλλά δεν ξέρετε πώς να φτάσετε εκεί. Η μόνη σας επιλογή είναι να περάσετε τα δεδομένα σας μέσω μιας συνάρτησης hash και να ελέγξετε αν ταιριάζουν με τις προϋποθέσεις. Αν δεν ισχύει αυτό, θα πρέπει να αλλάξετε λίγο τα δεδομένα σας για να λάβετε ένα διαφορετικό hash. Η αλλαγή έστω και ενός χαρακτήρα στα δεδομένα θα έχει ως αποτέλεσμα ένα τελείως διαφορετικό αποτέλεσμα, οπότε δεν υπάρχει τρόπος να προβλέψετε το αποτέλεσμα.

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

Ανακεφαλαιώνοντας, η εξόρυξη είναι η διαδικασία συλλογής δεδομένων blockchain και hashing μαζί με ένα nonce μέχρι να βρεθεί ένα συγκεκριμένο hash. Αν βρείτε ένα hash που ικανοποιεί τις προϋποθέσεις που ορίζει το πρωτόκολλο, αποκτάτε το δικαίωμα να μεταδώσετε το νέο block στο δίκτυο. Σε αυτό το σημείο, οι υπόλοιποι συμμετέχοντες του δικτύου ενημερώνουν τα blockchain τους για να συμπεριλάβουν το νέο block.

Για τα σημαντικά κρυπτονομίσματα σήμερα, είναι εξαιρετικά δύσκολο να πληρούνται οι προϋποθέσεις. Όσο υψηλότερο είναι το hash rate στο δίκτυο, τόσο πιο δύσκολο είναι να βρεθεί ένα έγκυρο hash. Αυτό συμβαίνει για να διασφαλιστεί ότι τα block δεν θα βρεθούν πολύ γρήγορα.

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

Ας ανακεφαλαιώσουμε όσα γνωρίζουμε μέχρι τώρα:

  • Η εξόρυξη είναι δύσκολη και δαπανηρή, αλλά παρέχει ασφάλεια στο δίκτυο.

  • Οι εξορύκτες που καταφέρνουν να παράγουν ένα έγκυρο block ανταμείβονται με νέα κρυπτονομίσματα και προμήθειες συναλλαγών.

  • Η δημιουργία ενός έγκυρου hash απαιτεί χρόνο, αλλά άλλοι χρήστες μπορούν εύκολα να ελέγξουν την εγκυρότητά του επαναλαμβάνοντας τη διαδικασία hashing.

Μέχρι στιγμής, όλα καλά. Όμως, τι θα γίνει αν προσπαθήσετε να κλέψετε; Τι σας εμποδίζει από το να υποβάλετε ένα σωρό δόλιες συναλλαγές στο block και να παράγετε ένα έγκυρο hash;

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

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

Κάθε block που περιλαμβάνει μια άκυρη συναλλαγή θα απορρίπτεται αυτόματα από το δίκτυο. Είναι ακριβό για εσάς να προσπαθήσετε ακόμη και να κλέψετε. Θα σπαταλήσετε τους δικούς σας πόρους χωρίς καμία ανταμοιβή.

Σε αυτό έγκειται η γοητεία του Proof of Work: κάνει ακριβή την απάτη, αλλά επικερδή την ειλικρινή συμπεριφορά. Κάθε λογικός εξορύκτης θα επιδιώξει απόδοση της επένδυσής του, οπότε είναι αναμενόμενο να συμπεριφέρεται με τρόπο που είναι πιθανότερο να αποφέρει έσοδα.

Proof of Work (PoW) ή Proof of Stake (PoS)

Υπάρχουν πολλοί αλγόριθμοι ομοφωνίας εκτός από το PoW, αλλά ένας από τους δημοφιλέστερους είναι το Proof of Stake (PoS). Η ιδέα ξεκίνησε το 2011 και έχει εφαρμοστεί στο Ethereum και σε πολλά άλλα πρωτόκολλα.

Στα συστήματα Proof of Stake, οι εξορύκτες αντικαθίστανται από επικυρωτές. Δεν απαιτείται εξόρυξη και δεν υπάρχει αγώνας για να μαντέψετε τα hash. Αντίθετα, οι χρήστες επιλέγονται τυχαία – αν επιλεγούν, πρέπει να προτείνουν (ή να "πλαστογραφήσουν") ένα block. Αν το block είναι έγκυρο, θα λάβουν μια ανταμοιβή που αποτελείται από τις προμήθειες συναλλαγών του block.

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

Το Proof of Stake έχει κάποια πλεονεκτήματα σε σχέση με το Proof of Work. Το πιο αξιοσημείωτο είναι το μικρότερο αποτύπωμα διοξειδίου του άνθρακα – αφού δεν υπάρχει ανάγκη για φάρμες εξόρυξης υψηλής ισχύος στο PoS, η ηλεκτρική ενέργεια που καταναλώνεται είναι μόνο ένα κλάσμα αυτής που καταναλώνεται στο PoW. 

Ωστόσο, το PoS δεν έχει το ίδιο ιστορικό με το PoW. Παρόλο που θα μπορούσε να θεωρηθεί ως σπατάλη, η εξόρυξη είναι ο μόνος αλγόριθμος ομοφωνίας που έχει δοκιμαστεί για περισσότερο από μια δεκαετία. Από την κυκλοφορία του, το PoW του Bitcoin έχει εξασφαλίσει συναλλαγές αξίας τρισεκατομμυρίων δολαρίων. Για να πούμε με βεβαιότητα αν το PoS μπορεί να ανταγωνιστεί την ασφάλειά του, το Staking πρέπει να δοκιμαστεί κατάλληλα μακροπρόθεσμα.

Συμπεράσματα

Το Proof of Work ήταν η αρχική λύση στο πρόβλημα των διπλών δαπανών και έχει αποδειχθεί αξιόπιστο και ασφαλές. Το Bitcoin έδειξε ότι δεν χρειαζόμαστε κεντρικές οντότητες για να αποτρέψουμε τα ίδια κεφάλαια από το να δαπανηθούν δύο φορές. Με την έξυπνη χρήση της κρυπτογράφησης, των συναρτήσεων hash και της θεωρίας παιγνίων, οι συμμετέχοντες σε ένα αποκεντρωμένο περιβάλλον μπορούν να συμφωνήσουν σχετικά με την κατάσταση μιας χρηματοοικονομικής βάσης δεδομένων.

Για περαιτέρω ανάγνωση

Αποποίηση ευθυνών: Αυτό το περιεχόμενο παρουσιάζεται σε εσάς "ως έχει" μόνο για γενική ενημέρωση και εκπαιδευτικούς σκοπούς, χωρίς καμία δήλωση ή εγγύηση οποιουδήποτε είδους. Δεν θα πρέπει να ερμηνεύεται ως οικονομική, νομική ή άλλη επαγγελματική συμβουλή, ούτε σκοπεύει να προτείνει την αγορά οποιουδήποτε συγκεκριμένου προϊόντος ή υπηρεσίας. Θα πρέπει να αναζητήσετε μόνοι σας συμβουλές από κατάλληλους επαγγελματίες συμβούλους. Όταν το άρθρο αποτελεί συνεισφορά τρίτου, λάβετε υπόψη ότι οι απόψεις που εκφράζονται ανήκουν στον τρίτο συνεισφέροντα και δεν αντικατοπτρίζουν απαραίτητα εκείνες της Ακαδημίας Binance. Διαβάστε την πλήρη δήλωση αποποίησης ευθυνών εδώ για περισσότερες λεπτομέρειες. Οι τιμές των ψηφιακών περιουσιακών στοιχείων ενδέχεται να είναι ασταθείς. Η αξία της επένδυσής σας μπορεί να μειωθεί ή να αυξηθεί, ενώ είναι επίσης πιθανό να μην σας επιστραφεί το ποσό που επενδύσατε. Έχετε την αποκλειστική ευθύνη για τις αποφάσεις σχετικά με τις επενδύσεις σας και η Ακαδημία Binance δεν φέρει καμία ευθύνη για οποιαδήποτε ζημία που μπορεί να προκύψει. Αυτό το υλικό δεν πρέπει να ερμηνεύεται ως οικονομική, νομική ή άλλη επαγγελματική συμβουλή. Για περισσότερες πληροφορίες, ανατρέξτε στους Όρους χρήσης και στην Προειδοποίηση κινδύνου.