Εισαγωγή
Όταν σας ζητείται να ενημερώσετε την ψηφιακή τραπεζική εφαρμογή στο smartphone σας, πιθανότατα δεν το σκέφτεστε καν δεύτερη φορά. Ίσως το τηλέφωνό σας κάνει αυτόματα την ενημέρωση, χωρίς να το προσέξετε καν. Είναι μια απαραίτητη διαδικασία, άλλωστε – εάν δεν εγκαταστήσετε την πιο πρόσφατη έκδοση του λογισμικού, διατρέχετε τον κίνδυνο να αρνηθεί την πρόσβαση στις υπηρεσίες του.
Στα κρυπτονομίσματα ανοιχτού κώδικα, τα πράγματα είναι πολύ διαφορετικά. Δεν χρειάζεται να διαβάσετε κάθε γραμμή κώδικα που στηρίζει το Bitcoin για να το χρησιμοποιήσετε, αλλά είναι σημαντικό να έχετε την επιλογή να το κάνετε. Βλέπετε, εδώ δεν υπάρχει ιεραρχία και μια τράπεζα που να μπορεί απλώς να προωθήσει ενημερώσεις και να αλλάξει τα πράγματα όπως επιθυμεί. Ως αποτέλεσμα, η εφαρμογή νέων χαρακτηριστικών σε δίκτυα blockchain μπορεί να αποτελέσει πρόκληση.
Σε αυτό το άρθρο, θα εξερευνήσουμε πώς μπορούν να αναβαθμίζονται τα δίκτυα κρυπτονομισμάτων, παρά την έλλειψη κεντρικής αρχής. Για να το κάνουν, χρησιμοποιούν δύο διαφορετικούς μηχανισμούς: τα hard fork και τα soft fork.
Ποιος παίρνει τις αποφάσεις σε ένα δίκτυο blockchain;
Για να κατανοήσετε πώς λειτουργούν τα fork, είναι σημαντικό να κατανοήσετε πρώτα τους συμμετέχοντες οι οποίοι εμπλέκονται στη διαδικασία λήψης αποφάσεων (ή τη διακυβέρνηση) του δικτύου.
Στο Bitcoin, θα μπορούσατε γενικά να κάνετε τη διάκριση μεταξύ τριών υποσυνόλων συμμετεχόντων – τους προγραμματιστές, τους εξορύκτες και τους χρήστες πλήρους κόμβου. Αυτά είναι τα μέρη τα οποία συνεισφέρουν πραγματικά στο δίκτυο. Οι κανονικοί κόμβοι (δηλαδή τα πορτοφόλια στα τηλέφωνα, τους φορητούς υπολογιστές κ.λπ.) χρησιμοποιούνται ευρέως, αλλά δεν είναι πραγματικά "συμμετέχοντες" όσον αφορά το δίκτυο.
Προγραμματιστές
Οι προγραμματιστές είναι υπεύθυνοι για τη δημιουργία και την ενημέρωση του κώδικα. Για ένα τυπικό νόμισμα, ο καθένας μπορεί να συνεισφέρει σε αυτή τη διαδικασία. Ο κώδικας είναι δημόσια διαθέσιμος, ώστε να μπορούν να υποβάλλουν αλλαγές για τις ελέγχουν άλλοι προγραμματιστές.
Εξορύκτες
Οι εξορύκτες είναι αυτοί που διασφαλίζουν το δίκτυο. Εκτελούν τον κώδικα του κρυπτονομίσματος και αφιερώνουν πόρους για την προσθήκη νέων block στο blockchain. Στο δίκτυο Bitcoin, για παράδειγμα, το κάνουν μέσω του Proof of Work. Ανταμείβονται για τον κόπο τους με τη μορφή ανταμοιβής block.
Χρήστες πλήρους κόμβου
Οι πλήρεις κόμβοι είναι η ραχοκοκαλιά του δικτύου των κρυπτονομισμάτων. Επικυρώνουν, στέλνουν και λαμβάνουν block και συναλλαγές και διατηρούν ένα αντίγραφο του blockchain.
Θα βρείτε ότι αυτές οι κατηγορίες συχνά αλληλοκαλύπτονται. Θα μπορούσατε, για παράδειγμα, να είστε προγραμματιστής και χρήστης πλήρους κόμβου ή εξορύκτης και χρήστης πλήρους κόμβου. Μπορείτε να είστε και τα τρία, ή κανένα από αυτά. Για την ακρίβεια, πολλοί από αυτούς που θεωρούμε ότι είναι χρήστες κρυπτονομισμάτων δεν έχουν κανέναν από αυτούς τους ρόλους. Αντ' αυτού, επιλέγουν να χρησιμοποιούν κανονικούς κόμβους ή κεντρικές υπηρεσίες.
Εξετάζοντας τις περιγραφές παραπάνω, θα μπορούσατε να ισχυρισθείτε ότι οι προγραμματιστές και οι εξορύκτες λαμβάνουν τις αποφάσεις για το δίκτυο. Οι προγραμματιστές δημιουργούν τον κώδικα – χωρίς αυτούς, δεν θα υπάρχει λογισμικό για εκτέλεση και κανένας δεν θα διορθώνει σφάλματα ή θα προσθέτει νέες δυνατότητες. Οι εξορύκτες διασφαλίζουν το δίκτυο – χωρίς υγιή ανταγωνισμό εξόρυξης, η αλυσίδα θα μπορούσε να καταληφθεί, ή να σταματήσει.
Ωστόσο, εάν αυτές οι δύο κατηγορίες προσπαθούσαν να τρομοκρατήσουν το υπόλοιπο δίκτυο ώστε να ακολουθήσει τη θέλησή τους, δεν θα είχε καλή κατάληξη. Για πολλούς, η πραγματική ισχύς συγκεντρώνεται στους πλήρεις κόμβους. Αυτό είναι σε μεγάλο βαθμό αποτέλεσμα της συγκατάθεσης του δικτύου, το οποίο σημαίνει ότι οι χρήστες μπορούν να επιλέξουν το λογισμικό που εκτελούν.
Οι προγραμματιστές δεν θα εισβάλλουν στο σπίτι σας και δεν θα σας αναγκάσουν να κατεβάσετε τα δυαδικά αρχεία του Πυρήνα Bitcoin υπό την απειλή όπλου. Εάν οι εξορύκτες υιοθετήσουν μια στάση "θα γίνει το δικό μου, αλλιώς δεν θα γίνει" για να επιβάλουν στους χρήστες μια αλλαγή που δεν επιθυμούν, οι χρήστες απλώς θα διαλέξουν τη δεύτερη επιλογή.
Αυτά τα μέρη δεν είναι παντοδύναμα – είναι πάροχοι υπηρεσιών. Εάν οι χρήστες αποφασίσουν να μην χρησιμοποιήσουν το δίκτυο, τότε το νόμισμα θα χάσει την αξία του. Η απώλεια αξίας επηρεάζει άμεσα τους εξορύκτες (οι ανταμοιβές τους αξίζουν λιγότερο όταν εκφράζονται νομισματικά σε δολάρια). Όσο για τους προγραμματιστές, οι χρήστες μπορούν απλώς να τους αγνοήσουν.
Βλέπετε, το λογισμικό δεν είναι ιδιόκτητο. Μπορείτε να κάνετε όποιες τροποποιήσεις θέλετε και, εάν κάποιοι άλλοι εκτελούν το τροποποιημένο λογισμικό σας, μπορείτε να επικοινωνείτε. Σε αυτήν την περίπτωση, κάνετε fork στο λογισμικό και ταυτόχρονα δημιουργείτε ένα νέο δίκτυο.
Τι είναι το fork;
Το fork λογισμικού εμφανίζεται σε ένα σημείο στο οποίο το λογισμικό αντιγράφεται και τροποποιείται. Το αρχικό έργο συνεχίζεται, αλλά είναι πλέον ξεχωριστό από το νέο, το οποίο ακολουθεί μια διαφορετική κατεύθυνση. Ας υποθέσουμε ότι η ομάδα του αγαπημένου σας ιστότοπου με περιεχόμενο κρυπτονομισμάτων είχε μια σοβαρή διαφωνία σχετικά με το πώς θα προχωρήσει. Ένα μέλος της ομάδας μπορεί να αναπαράγει τον ιστότοπο σε διαφορετικό τομέα. Αλλά στο εξής, θα δημοσιεύει διαφορετικούς τύπους περιεχομένου από τον αρχικό.
Τα έργα δημιουργούν ένα κοινό έδαφος και μοιράζονται μια ιστορία. Ακριβώς όπως ένας δρόμος που χωρίζεται στα δύο, τώρα υπάρχει μια μόνιμη απόκλιση στην πορεία τους.
Λάβετε υπόψη ότι κάτι τέτοιο συμβαίνει πολύ συχνά σε έργα ανοιχτού κώδικα και έχει συμβεί εδώ και πολύ καιρό, πριν από την εμφάνιση του Bitcoin ή του Ethereum. Ωστόσο, η διάκριση μεταξύ hard fork και soft fork συμβαίνει σχεδόν αποκλειστικά στον χώρο του blockchain. Ας τα αναλύσουμε λίγο περισσότερο.
➠ Θέλετε να ξεκινήσετε το ταξίδι σας στα κρυπτονομίσματα; Αγοράστε Bitcoin στην Binance!
Hard fork ή soft fork
Παρά το γεγονός ότι έχουν παρόμοια ονόματα και τελικά εξυπηρετούν τον ίδιο σκοπό, τα hard fork και τα soft fork έχουν σημαντικές διαφορές. Ας δούμε το καθένα ξεχωριστά.
Τι είναι το hard fork;
Τα hard fork είναι ενημερώσεις λογισμικού οι οποίες είναι ασύμβατες με προηγούμενες εκδόσεις. Συνήθως, αυτά συμβαίνουν όταν οι κόμβοι προσθέτουν νέους κανόνες με τρόπο ο οποίος έρχεται σε αντίθεση με τους κανόνες των παλιών κόμβων. Οι νέοι κόμβοι μπορούν να επικοινωνούν μόνο με άλλους οι οποίοι λειτουργούν τη νέα έκδοση. Ως αποτέλεσμα, το blockchain χωρίζεται, δημιουργώντας δύο ξεχωριστά δίκτυα: ένα με τους παλιούς κανόνες και ένα με τους νέους κανόνες.
Οι κόμβοι γίνονται μπλε όταν ενημερώνονται. Οι παλαιότεροι κίτρινοι κόμβοι τους απορρίπτουν, ενώ οι μπλε συνδέονται μεταξύ τους.
Έτσι, υπάρχουν τώρα δύο δίκτυα που λειτουργούν παράλληλα. Και τα δύο θα συνεχίσουν να διαδίδουν block και συναλλαγές, αλλά δεν εργάζονται πλέον στο ίδιο Blockchain. Όλοι οι κόμβοι είχαν ένα πανομοιότυπο blockchain μέχρι το σημείο του fork (και αυτό το ιστορικό παραμένει), αλλά, στη συνέχεια, θα έχουν διαφορετικά Block και συναλλαγές.
Επειδή υπάρχει αυτό το κοινό ιστορικό, θα καταλήξετε με νομίσματα και στα δύο δίκτυα αν τα διακρατούσατε πριν από το fork. Ας υποθέσουμε ότι είχατε 5 BTC όταν συνέβη ένα fork στο Block 600.000. Θα μπορούσατε να ξοδέψετε αυτά τα 5 BTC στην παλιά αλυσίδα στο Block 600.001, αλλά δεν έχουν δαπανηθεί στο Block 600.001 του νέου blockchain. Υποθέτοντας ότι η κρυπτογράφηση δεν έχει αλλάξει, τα ιδιωτικά σας κλειδιά εξακολουθούν να διακρατούν πέντε νομίσματα στο δίκτυο που έχει πραγματοποιηθεί το fork.
Ένα παράδειγμα hard fork ήταν το fork του 2017, το οποίο οδήγησε στον κατακερματισμό του Bitcoin σε δύο ξεχωριστές αλυσίδες – την αρχική, Bitcoin (BTC) και μια νέα, Bitcoin Cash (BCH). Το fork προέκυψε μετά από ισχυρή διαμάχη για την καλύτερη προσέγγιση αναφορικά με την κλιμάκωση. Οι υποστηρικτές του Bitcoin Cash ήθελαν να αυξήσουν το μέγεθος του Block, ενώ οι υποστηρικτές του Bitcoin αντιτάχθηκαν στην αλλαγή.
Η αύξηση στο μέγεθος του Block απαιτεί τροποποίηση των κανόνων. Αυτό ήταν πριν από το soft fork του SegWit (περισσότερα για αυτό σύντομα), έτσι οι κόμβοι δέχονταν μόνο Block μικρότερα από 1MB. Εάν δημιουργούσατε ένα Block 2 MB, το οποίο ήταν έγκυρο κατά τα άλλα, οι άλλοι κόμβοι θα το απέρριπταν.
Μόνο οι κόμβοι που έχουν αλλάξει το λογισμικό τους για να επιτρέπουν Block άνω του 1 MB σε μέγεθος μπορούν να δεχτούν αυτά τα Block. Φυσικά, αυτό θα τους καθιστούσε ασύμβατους με την προηγούμενη έκδοση, επομένως μόνο οι κόμβοι με τις ίδιες τροποποιήσεις πρωτοκόλλου θα μπορούσαν να επικοινωνούν.
Τι είναι το soft fork;
Το soft fork είναι μια αναβάθμιση συμβατή με προηγούμενες εκδόσεις, το οποίο σημαίνει ότι οι αναβαθμισμένοι κόμβοι μπορούν ακόμα να επικοινωνούν με τους μη αναβαθμισμένους. Αυτό που βλέπουμε συνήθως σε ένα soft fork είναι η προσθήκη ενός νέου κανόνα, ο οποίος δεν έρχεται σε σύγκρουση με τους παλαιότερους κανόνες.
Για παράδειγμα, η μείωση του μεγέθους Block μπορεί να πραγματοποιηθεί με soft fork. Ας βασιστούμε για άλλη μια φορά στο Bitcoin για να αναδείξουμε αυτό το σημείο: αν και υπάρχει όριο στο πόσο μεγάλο μπορεί να είναι ένα Block, δεν υπάρχει όριο στο πόσο μικρό μπορεί να είναι. Εάν θέλετε να δέχεστε Block μόνο κάτω από ένα συγκεκριμένο μέγεθος, απλά πρέπει να απορρίπτετε τα μεγαλύτερα.
Ωστόσο, κάτι τέτοιο δεν σας αποσυνδέει αυτόματα από το δίκτυο. Εξακολουθείτε να επικοινωνείτε με κόμβους οι οποίοι δεν εφαρμόζουν αυτούς τους κανόνες, αλλά φιλτράρετε ορισμένες από τις πληροφορίες που σας διαβιβάζουν.
Ένα καλό παράδειγμα soft fork από την πραγματική ζωή ήταν το προαναφερθέν fork Segregated Witness (SegWit), το οποίο συνέβη λίγο μετά τον διαχωρισμό Bitcoin/Bitcoin Cash. Το SegWit ήταν μια ενημέρωση που άλλαξε τη μορφή των Block και των συναλλαγών, αλλά δημιουργήθηκε έξυπνα. Οι παλιοί κόμβοι μπορούσαν ακόμη να επικυρώνουν Block και συναλλαγές (η μορφοποίηση δεν παραβίαζε τους κανόνες), αλλά απλώς δεν θα τους καταλάβαιναν. Ορισμένα πεδία είναι ευανάγνωστα μόνο όταν οι κόμβοι μεταβαίνουν στο νεότερο λογισμικό, το οποίο τους επιτρέπει να αναλύουν επιπλέον δεδομένα.
Ακόμη και δύο χρόνια μετά την ενεργοποίηση του SegWit, δεν έχουν αναβαθμιστεί όλοι οι κόμβοι. Υπάρχουν πλεονεκτήματα σε αυτό, αλλά δεν είναι πραγματικά επείγον, δεδομένου ότι δεν υπάρχει αλλαγή που διασπά το δίκτυο.
Hard fork ή soft fork – ποιο είναι καλύτερο;
Kαι οι δύο παραπάνω τύποι fork εξυπηρετούν θεμελιωδώς διαφορετικούς σκοπούς. Τα επίμαχα hard fork μπορούν να διχάσουν μια κοινότητα, αλλά τα προγραμματισμένα επιτρέπουν την ελευθερία για τροποποίηση του λογισμικού, με την οποία συμφωνούν όλοι.
Τα soft fork είναι μια πιο ήπια επιλογή. Σε γενικές γραμμές, είστε πιο περιορισμένοι ως προς το τι μπορείτε να κάνετε, καθώς οι νέες αλλαγές σας δεν μπορούν να έρχονται σε αντίθεση με τους παλιούς κανόνες. Με αυτά τα δεδομένα, εάν η ενημέρωση σας μπορεί να δημιουργηθεί με τέτοιο τρόπο ώστε να παραμένει συμβατή, δεν χρειάζεται να ανησυχείτε για τον κατακερματισμό του δικτύου.
Συμπεράσματα
Τα hard fork και τα soft fork είναι ζωτικής σημασίας για τη μακροπρόθεσμη επιτυχία των δικτύων blockchain. Μας επιτρέπουν να κάνουμε αλλαγές και αναβαθμίσεις σε αποκεντρωμένα συστήματα, παρά την έλλειψη κεντρικής αρχής.
Τα fork καθιστούν δυνατή την ενσωμάτωση νέων χαρακτηριστικών στα blockchain και στα κρυπτονομίσματα καθώς αναπτύσσονται. Χωρίς αυτούς τους μηχανισμούς, θα χρειαζόμασταν ένα κεντρικό σύστημα με έλεγχο από την κορυφή προς τη βάση. Διαφορετικά, θα μέναμε με τους ίδιους ακριβώς κανόνες για όλη τη διάρκεια ζωής του πρωτοκόλλου.