Blockchain

Σκληρά πιρούνια, μαλακά πιρούνια, προεπιλογές και εξαναγκασμός

Ένα από τα σημαντικά επιχειρήματα στον χώρο του blockchain είναι αυτό του εάν τα σκληρά πιρούνια ή τα μαλακά πιρούνια είναι ο προτιμώμενος μηχανισμός αναβάθμισης πρωτοκόλλου. Η βασική διαφορά μεταξύ των δύο είναι ότι τα soft forks αλλάζουν τους κανόνες ενός πρωτοκόλλου κατά μειώνοντας αυστηρά το σύνολο των συναλλαγών που είναι έγκυρο, επομένως οι κόμβοι που ακολουθούν τους παλιούς κανόνες θα εξακολουθούν να μπαίνουν στη νέα αλυσίδα (υπό την προϋπόθεση ότι η πλειονότητα των ανθρακωρύχων/επικυρωτών εφαρμόζει το fork), ενώ τα hard fork επιτρέπουν σε μη έγκυρες συναλλαγές και μπλοκ προηγουμένως να γίνουν έγκυρα, έτσι οι πελάτες πρέπει να αναβαθμίσουν τους πελάτες τους για να παραμείνουν στην σκληρή αλυσίδα. Υπάρχουν επίσης δύο υπο-τύποι σκληρών πιρουνιών: επεκτείνεται αυστηρά hard forks, τα οποία επεκτείνουν αυστηρά το σύνολο των συναλλαγών που είναι έγκυρα, και έτσι ουσιαστικά οι παλιοί κανόνες είναι ένα soft fork σε σχέση με τους νέους κανόνες, και διμερής hard forks, όπου τα δύο σύνολα κανόνων είναι ασύμβατα αμφίδρομα.

Ακολουθεί ένα διάγραμμα Venn για την απεικόνιση των τύπων πιρουνιών:

Τα οφέλη που αναφέρονται συνήθως για τα δύο είναι τα ακόλουθα.
  • Τα σκληρά πιρούνια επιτρέπουν στους προγραμματιστές πολύ μεγαλύτερη ευελιξία στην αναβάθμιση του πρωτοκόλλου, καθώς δεν χρειάζεται να φροντίζουν να βεβαιωθούν ότι οι νέοι κανόνες «ταιριάζουν» στους παλιούς κανόνες
  • Τα μαλακά πιρούνια είναι πιο βολικά για τους χρήστες, καθώς οι χρήστες δεν χρειάζεται να κάνουν αναβάθμιση για να παραμείνουν στην αλυσίδα
  • Τα μαλακά πιρούνια είναι λιγότερο πιθανό να οδηγήσουν σε διάσπαση της αλυσίδας
  • Τα soft forks απαιτούν πραγματικά μόνο συναίνεση από τους εξορύκτες/επικυρωτές (όπως ακόμα κι αν οι χρήστες εξακολουθούν να χρησιμοποιούν τους παλιούς κανόνες, εάν οι κόμβοι που δημιουργούν την αλυσίδα χρησιμοποιούν τους νέους κανόνες, τότε μόνο τα πράγματα που ισχύουν σύμφωνα με τους νέους κανόνες θα μπουν στην αλυσίδα σε κάθε περίπτωση). απαιτούν τα σκληρά πιρούνια opt-in συναίνεση από τους χρήστες

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

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


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

Πρώτα απ 'όλα, ας συζητήσουμε το ζήτημα του εξαναγκασμού. Τα σκληρά πιρούνια και τα μαλακά πιρούνια αλλάζουν το πρωτόκολλο με τρόπους που μπορεί να μην αρέσουν σε ορισμένους χρήστες. κάθε Η αλλαγή πρωτοκόλλου θα το κάνει αυτό εάν έχει λιγότερο από ακριβώς 100% υποστήριξη. Επιπλέον, είναι σχεδόν αναπόφευκτο ότι τουλάχιστον μερικοί από τους διαφωνούντες, σε οποιοδήποτε σενάριο, εκτιμούν το αποτέλεσμα του δικτύου της παραμονής με τη μεγαλύτερη ομάδα περισσότερο από ό,τι εκτιμούν τις δικές τους προτιμήσεις σχετικά με τους κανόνες του πρωτοκόλλου. Ως εκ τούτου, και οι δύο τύποι πιρουνιών είναι καταναγκαστικοί, με την έννοια του δικτυακού αποτελέσματος της λέξης.

Ωστόσο, υπάρχει μια ουσιαστική διαφορά μεταξύ σκληρού πιρουνιού και μαλακού πιρουνιού: Τα σκληρά πιρούνια είναι opt-in, ενώ τα μαλακά πιρούνια δεν επιτρέπουν στους χρήστες να επιλέξουν καθόλου. Για να μπορέσει ένας χρήστης να συμμετάσχει σε μια αλυσίδα σκληρού διχάλου, πρέπει να εγκαταστήσει προσωπικά το πακέτο λογισμικού που εφαρμόζει τους κανόνες του fork και το σύνολο των χρηστών που διαφωνούν με μια αλλαγή κανόνα ακόμη πιο έντονα από ό,τι εκτιμούν τα εφέ δικτύου μπορεί θεωρητικά απλώς να παραμείνει στο παλιά αλυσίδα – και, πρακτικά, ένα τέτοιο γεγονός έχει ήδη συμβεί.

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

Αν έπρεπε να μαντέψω γιατί, παρά αυτά τα επιχειρήματα, τα soft fork συχνά τιμολογούνται ως «λιγότερο καταναγκαστικά» από τα σκληρά πιρούνια, θα έλεγα ότι είναι επειδή αισθάνεται ότι ένα σκληρό πιρούνι «αναγκάζει» τον χρήστη να εγκαταστήσει μια ενημέρωση λογισμικού, ενώ με ένα μαλακό πιρούνι οι χρήστες δεν «πρέπει» να κάνουν απολύτως τίποτα. Ωστόσο, αυτή η διαίσθηση είναι λανθασμένη: αυτό που έχει σημασία δεν είναι αν οι μεμονωμένοι χρήστες πρέπει να εκτελέσουν ή όχι το απλό γραφειοκρατικό βήμα του κλικ σε ένα κουμπί "λήψη", αλλά μάλλον εάν ο χρήστης είναι ή όχι εξαναγκάστηκαν να αποδεχτούν μια αλλαγή στους κανόνες του πρωτοκόλλου που θα προτιμούσαν να μην δεχτούν. Και από αυτήν τη μέτρηση, όπως αναφέρθηκε παραπάνω, και τα δύο είδη πιρουνιών είναι τελικά καταναγκαστικά και είναι τα σκληρά πιρούνια που φαίνεται ότι είναι κάπως καλύτερα στη διατήρηση της ελευθερίας του χρήστη.

Τώρα, ας δούμε τα εξαιρετικά αμφιλεγόμενα πιρούνια, ιδιαίτερα τα πιρούνια όπου οι προτιμήσεις εξόρυξης/επικυρωτή και οι προτιμήσεις χρήστη έρχονται σε αντίθεση. Υπάρχουν τρεις περιπτώσεις εδώ: (i) διμερείς σκληρές περόνες, (ii) αυστηρά επεκτεινόμενες σκληρές περόνες και (iii) τα λεγόμενα «soft forks που ενεργοποιούνται από τον χρήστη» (UASF). Μια τέταρτη κατηγορία είναι όπου οι ανθρακωρύχοι ενεργοποιούν ένα soft fork χωρίς τη συγκατάθεση του χρήστη; θα φτάσουμε σε αυτό αργότερα.

Πρώτον, διμερείς σκληρές περόνες. Στην καλύτερη περίπτωση, η κατάσταση είναι απλή. Τα δύο νομίσματα διαπραγματεύονται στην αγορά και οι έμποροι αποφασίζουν τη σχετική αξία των δύο. Από την υπόθεση ETC/ETH, έχουμε συντριπτικά στοιχεία ότι οι ανθρακωρύχοι είναι πολύ πιθανό να αποδίδουν απλώς το hashrate τους σε νομίσματα με βάση την αναλογία των τιμών προκειμένου να μεγιστοποιήσουν το κέρδος τους, ανεξάρτητα από τις δικές τους ιδεολογικές απόψεις.

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

Υπάρχουν δύο ακραίες περιπτώσεις εδώ. Η πρώτη είναι η πιθανότητα ότι, λόγω ενός αναποτελεσματικού αλγορίθμου προσαρμογής δυσκολίας, η αξία της εξόρυξης του νομίσματος μειώνεται επειδή πέφτει η τιμή, αλλά η δυσκολία δεν μειώνεται για να αντισταθμιστεί, καθιστώντας την εξόρυξη πολύ ασύμφορη και δεν υπάρχουν ανθρακωρύχοι πρόθυμοι να εξορύξουν σε απώλεια να συνεχίσει να σπρώχνει την αλυσίδα προς τα εμπρός έως ότου η δυσκολία της επανέλθει σε ισορροπία. Αυτό δεν συνέβη με το Ethereum, αλλά μπορεί κάλλιστα συμβαίνει με το Bitcoin. Ως εκ τούτου, η αλυσίδα της μειοψηφίας μπορεί απλώς να μην ξεκολλήσει ποτέ από το έδαφος, και έτσι θα πεθάνει. Σημειώστε ότι το κανονιστικό ερώτημα του είτε αυτό είναι καλό είτε όχι εξαρτάται από τις απόψεις σας για τον εξαναγκασμό έναντι της απόσχισης. όπως μπορείτε να φανταστείτε από όσα έγραψα παραπάνω προσωπικά πιστεύω ότι τέτοιοι αλγόριθμοι προσαρμογής δυσκολίας μειοψηφίας-αλυσίδας-εχθρικής είναι κακοί.

Η δεύτερη περίπτωση είναι ότι εάν η διαφορά είναι πολύ μεγάλη, η μεγάλη αλυσίδα μπορεί κατά 51% να επιτεθεί στη μικρότερη αλυσίδα. Ακόμη και στην περίπτωση διαίρεσης ETH/ETC με αναλογία 10:1, αυτό δεν έχει συμβεί. οπότε σίγουρα δεν είναι δεδομένο. Ωστόσο, είναι πάντα μια πιθανότητα εάν οι ανθρακωρύχοι στην κυρίαρχη αλυσίδα προτιμούν τον εξαναγκασμό από το να επιτρέψουν την απόσχιση και ενεργούν με βάση αυτές τις αξίες.

Στη συνέχεια, ας δούμε τα αυστηρά επεκτεινόμενα σκληρά πιρούνια. Σε ένα SEHF, υπάρχει η ιδιότητα ότι η αλυσίδα χωρίς διχάλα είναι έγκυρη σύμφωνα με τους κανόνες της διχάλας, και έτσι εάν το πιρούνι έχει χαμηλότερη τιμή από τη μη διχαλωτή αλυσίδα, θα έχει λιγότερη ισχύ κατακερματισμού από τη μη διχαλωτή αλυσίδα, και οπότε η μη διχαλωτή αλυσίδα θα καταλήξει να γίνει αποδεκτή ως η μεγαλύτερη αλυσίδα από κανόνες αρχικού πελάτη και διχαλωτού πελάτη – και έτσι η διχαλωτή αλυσίδα”θα εκμηδενιστεί".

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

Οι προγραμματιστές της Bitcoin Unlimited προτείνουν την αντιμετώπιση αυτού του προβλήματος με φτιάχνοντας το σκληρό πιρούνι αμφίπλευρα χειροκίνητα αφού συμβεί, αλλά μια καλύτερη επιλογή θα ήταν να ενσωματωθεί η διμερής σχέση. για παράδειγμα, στην περίπτωση του bitcoin, μπορεί κανείς να προσθέσει έναν κανόνα για την απαγόρευση ορισμένων αχρησιμοποίητων κωδικών λειτουργίας και, στη συνέχεια, να πραγματοποιήσει μια συναλλαγή που περιέχει αυτόν τον κωδικό πρόσβασης στη μη διχαλωτή αλυσίδα, έτσι ώστε σύμφωνα με τους κανόνες διχαλωτών η μη διχαλωμένη αλυσίδα θα είναι από τότε θεωρείται για πάντα άκυρη. Στην περίπτωση του Ethereum, λόγω διαφόρων λεπτομερειών σχετικά με τον τρόπο λειτουργίας του υπολογισμού κατάστασης, σχεδόν όλα τα σκληρά πιρούνια είναι αμφίπλευρα σχεδόν αυτόματα. Άλλες αλυσίδες μπορεί να έχουν διαφορετικές ιδιότητες ανάλογα με την αρχιτεκτονική τους.

Ο τελευταίος τύπος πιρουνιού που αναφέρθηκε παραπάνω είναι το μαλακό πιρούνι που ενεργοποιείται από τον χρήστη. Σε ένα UASF, οι χρήστες ενεργοποιούν τους κανόνες soft fork χωρίς να μπαίνουν στον κόπο να επιτύχουν συναίνεση από τους εξορύκτες. Οι ανθρακωρύχοι αναμένεται απλώς να πέσουν στη γραμμή λόγω οικονομικού συμφέροντος. Εάν πολλοί χρήστες δεν συμφωνήσουν με το UASF, τότε θα υπάρξει μια διάσπαση νομισμάτων και αυτό θα οδηγήσει σε ένα σενάριο πανομοιότυπο με το αυστηρά επεκτεινόμενο σκληρό πιρούνι, εκτός από – και αυτό είναι το πραγματικά έξυπνο και δόλιο μέρος της ιδέας – η ίδια πίεση «κίνδυνου εξουδετέρωσης» που δεν ευνοεί έντονα τη διχαλωτή αλυσίδα σε ένα αυστηρά διαστελλόμενο σκληρό πιρούνι, αντί αυτού ευνοεί έντονα τη διχαλωτή αλυσίδα σε ένα UASF. Παρόλο που ένα UASF είναι opt-in, χρησιμοποιεί οικονομική ασυμμετρία για να ωθήσει τον εαυτό του προς την επιτυχία (αν και η μεροληψία δεν είναι απόλυτη· εάν ένα UASF είναι σαφώς μη δημοφιλές, τότε δεν θα πετύχει και απλώς θα οδηγήσει σε διάσπαση της αλυσίδας).

Ωστόσο, τα UASF είναι ένα επικίνδυνο παιχνίδι. Για παράδειγμα, ας υποθέσουμε ότι οι προγραμματιστές ενός έργου θέλουν να δημιουργήσουν μια ενημερωμένη έκδοση κώδικα UASF που μετατρέπει έναν αχρησιμοποίητο κωδικό που αποδεχόταν προηγουμένως όλες τις συναλλαγές σε έναν κωδικό που δέχεται μόνο συναλλαγές που συμμορφώνονται με τους κανόνες κάποιας νέας λειτουργίας, αν και πολιτικά ή τεχνικά αμφιλεγόμενο και οι ανθρακωρύχοι αντιπαθούν. Οι ανθρακωρύχοι έχουν έναν έξυπνο και ύπουλο τρόπο να αντεπιτεθούν: μπορούν να εφαρμόσουν μονομερώς ένα soft fork ενεργοποιημένο από miner που κάνει όλες τις συναλλαγές που χρησιμοποιούν τη δυνατότητα που δημιουργείται από το soft fork πάντα να αποτυγχάνουν.

Τώρα, έχουμε τρία σύνολα κανόνων:

  1. Οι αρχικοί κανόνες όπου το opcode X είναι πάντα έγκυρο.
  2. Οι κανόνες όπου ο κωδικός X είναι έγκυρος μόνο εάν η υπόλοιπη συναλλαγή συμμορφώνεται με τους νέους κανόνες
  3. Οι κανόνες όπου ο κωδικός X δεν είναι πάντα έγκυρος.

Σημειώστε ότι το (2) είναι ένα μαλακό πιρούνι σε σχέση με το (1), και το (3) είναι ένα μαλακό πιρούνι σε σχέση με το (2). Τώρα, υπάρχει ισχυρή οικονομική πίεση υπέρ του (3), και έτσι το soft-fork αποτυγχάνει να επιτύχει τον στόχο του.

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

πηγή: https://vitalik.eth.limo/general/2017/03/14/forks_and_markets.html