Ολοκληρώθηκε το Turing: τι σημαίνει, γιατί το χρειαζόταν το Ethereum και γιατί το Bitcoin επέλεξε να το αποφύγει
Ένας φίλος που εργάζεται στον παραδοσιακό χρηματοοικονομικό τομέα με ρώτησε κάποτε γιατί το Ethereum μπορεί να εκτελεί ολόκληρες οικονομικές εφαρμογές στο blockchain του, ενώ το Bitcoin μπορεί ουσιαστικά να στέλνει χρήματα μόνο από τη μία διεύθυνση στην άλλη. «Και τα δύο είναι blockchains», είπε. «Ποια είναι η πραγματική διαφορά;»
Προσπάθησα να εξηγήσω την πληρότητα του Τούρινγκ και παρακολούθησα τα μάτια του να γυαλίζουν. Έτσι προσπάθησα ξανά με μια αναλογία. Το Bitcoin είναι ένα μηχάνημα αυτόματης πώλησης. Βάζεις χρήματα, πατάς ένα κουμπί, βγάζεις ένα συγκεκριμένο αντικείμενο. Κάνει αυτό για το οποίο κατασκευάστηκε και τίποτα άλλο. Το Ethereum είναι μια κουζίνα με έναν σεφ. Δώστε στον σεφ οποιαδήποτε συνταγή και αρκετά υλικά και μπορούν να φτιάξουν οτιδήποτε. Βρόχοι («ανακατέψτε μέχρι να πήξει»), αποφάσεις («αν είναι πολύ αλμυρό, προσθέστε νερό»), δημιουργικότητα («αυτοσχεδιάστε ένα επιδόρπιο από ό,τι έχει απομείνει»). Ο σεφ μπορεί να ακολουθήσει οποιαδήποτε οδηγία. Το μηχάνημα αυτόματης πώλησης δεν μπορεί.
Αυτή η αναλογία δεν είναι τέλεια. Ένας επιστήμονας υπολογιστών θα επεσήμαινε πολλά πράγματα που εγώ υπεραπλούστησα. Αλλά αυτό έκανε τον φίλο μου να θέσει τη σωστή ερώτηση: "Γιατί λοιπόν κάποιος να επιλέξει να είναι αυτόματος πωλητής;"
Αυτό το ερώτημα αποτελεί ολόκληρη τη συζήτηση περί πληρότητας Turing στα κρυπτονομίσματα. Ασφάλεια έναντι ευελιξίας. Προβλεψιμότητα έναντι ισχύος. Bitcoin έναντι Ethereum. Και η απάντηση, ενοχλητικά, είναι ότι και οι δύο πλευρές έχουν δίκιο.
Από πού προέρχεται αυτή η ιδέα και γιατί μια εργασία στα μαθηματικά του 1936 εξακολουθεί να έχει σημασία
Ο Άλαν Τούρινγκ δημοσίευσε μια εργασία με τίτλο «Σχετικά με τους Υπολογίσιμους Αριθμούς» το 1936. Ήταν 23 ετών. Σε αυτήν, περιέγραφε μια μηχανή τόσο απλή που ακούγεται σαν παιχνίδι. Μια λωρίδα ταινίας χωρισμένη σε κελιά. Μια κεφαλή που διαβάζει και γράφει σύμβολα. Κανόνες που λένε στην κεφαλή τι να κάνει με βάση αυτά που διαβάζει. Ταινία, κεφαλή, κανόνες. Αυτή είναι ολόκληρη η μηχανή.
Να το σημείο που ακόμα μου προκαλεί ρίγη. Ο Τούρινγκ απέδειξε ότι αυτή η εξωφρενικά απλή μηχανή μπορεί να υπολογίσει οτιδήποτε θα υπολογίσει ποτέ οποιοσδήποτε υπολογιστής. Όχι κάποια πράγματα. Οτιδήποτε. Το τηλέφωνό σας εκτελεί λειτουργίες ταινίας και κεφαλής αυτή τη στιγμή. Το ίδιο και ο διακομιστής που εκτελεί το ChatGPT. Το ίδιο και το τσιπ στο αυτοκίνητό σας. Απέδειξε όλα αυτά το 1936, πριν καν υπάρξει ένας μόνο ηλεκτρονικός υπολογιστής στη γη. Η εργασία είναι σχεδόν 90 ετών και κάθε τμήμα πληροφορικής στον πλανήτη εξακολουθεί να τη διδάσκει στο πρώτο εξάμηνο.
Όταν κάποιος λέει ότι ένα σύστημα είναι «ολοκληρωμένο κατά Turing», εννοεί ότι μπορεί να προσομοιώσει την ταινία ταινιών του Turing. Μπορεί να εκτελεί βρόχους, να λαμβάνει αποφάσεις με βάση δεδομένα, να αποθηκεύει πράγματα στη μνήμη και να εκτελεί οποιονδήποτε αλγόριθμο. Ο φορητός υπολογιστής σας είναι ολοκληρωμένος κατά Turing. Μια αριθμομηχανή τσέπης δεν είναι. Και να ένα διασκεδαστικό γεγονός που μου αρέσει να λέω στον κόσμο: Τα κυκλώματα Redstone του Minecraft είναι τεχνικά ολοκληρωμένα κατά Turing. Οι άνθρωποι έχουν κατασκευάσει λειτουργικούς υπολογιστές μέσα στο παιχνίδι. Όχι χρήσιμους υπολογιστές. Αλλά λειτουργικούς υπολογιστές.

Πώς συμβαίνει αυτό στο Bitcoin: γιατί ο Satoshi επέλεξε τον περιορισμό
Ο Satoshi δημιούργησε το Bitcoin με μια γλώσσα προγραμματισμού που ονομάζεται Bitcoin Script, η οποία είναι σκόπιμα χαζή. Επίτηδες. Επαληθεύει υπογραφές, χειρίζεται πορτοφόλια πολλαπλών υπογραφών, κλειδώνει κεφάλαια με χρονικές συνθήκες και αυτό είναι όλο. Χωρίς βρόχους. Χωρίς πολύπλοκες διακλαδώσεις. Χωρίς κατάσταση που μεταφέρεται μεταξύ συναλλαγών.
Την πρώτη φορά που κατάλαβα γιατί αυτό έχει σημασία, διάβαζα για το hack DAO στο Ethereum (θα αναφερθώ σε αυτό). Μια κλήση αναδρομικής συνάρτησης αφαίρεσε 150 εκατομμύρια δολάρια από ένα έξυπνο συμβόλαιο επειδή ο κώδικας μπορούσε να καλέσει τον εαυτό του σε έναν άπειρο βρόχο που οι προγραμματιστές δεν είχαν προβλέψει ποτέ. Στο Bitcoin, αυτό το hack είναι αδύνατο. Όχι απίθανο. Αδύνατο. Το Bitcoin Script δεν μπορεί να καλέσει τον εαυτό του. Δεν μπορεί να επαναληφθεί. Δεν μπορεί να επαναληφθεί. Η γλώσσα είναι πολύ περιορισμένη για να εκφράσει το είδος του σφάλματος που κόστισε στο Ethereum 150 εκατομμύρια δολάρια.
Αυτός ο περιορισμός είναι το χαρακτηριστικό. Κάθε Bitcoin Script τερματίζεται προβλέψιμα. Μπορείτε να το διαβάσετε και να ξέρετε ακριβώς τι θα κάνει. Χωρίς εκπλήξεις. Χωρίς απροσδόκητη συμπεριφορά. Όταν ασφαλίζετε ένα δίκτυο αξίας άνω του ενός τρισεκατομμυρίου δολαρίων, το «βαρετό και προβλέψιμο» δεν είναι αδυναμία. Είναι μια επιλογή σχεδιασμού.
Τι έχτισε ο Vitalik και γιατί άλλαξε τα πάντα
Ο Βιτάλικ Μπουτέριν ήταν 19 ετών όταν δημοσίευσε το whitepaper για το Ethereum το 2013. Το ερώτημά του ήταν απλό και ριζοσπαστικό: τι θα γινόταν αν το ίδιο το blockchain μπορούσε να εκτελέσει οποιοδήποτε πρόγραμμα; Όχι απλώς να «στείλει κέρματα από το Α στο Β», αλλά οτιδήποτε μπορεί να κάνει ένας υπολογιστής;
Ήμουν στο κολέγιο όταν κυκλοφόρησε η λευκή βίβλος για το Ethereum. Την διάβασα σε ένα PDF που κάποιος κοινοποίησε σε ένα φόρουμ Bitcoin. Οι μισές απαντήσεις έλεγαν ότι ο Vitalik ήταν ιδιοφυΐα. Οι άλλες μισές έλεγαν ότι έφτιαχνε ένα σύστημα που θα γινόταν αμέσως αντικείμενο χάκερ. Και οι δύο είχαν δίκιο.
Το Ethereum κυκλοφόρησε το 2015 με δύο κομμάτια που το καθιστούσαν ολοκληρωμένο κατά Turing. Η Solidity είναι η γλώσσα προγραμματισμού για τη σύνταξη έξυπνων συμβολαίων. Διαθέτει βρόχους, υποθετικούς όρους, αποθήκευση κατάστασης, κλήσεις συναρτήσεων. Όλα όσα χρειάζεστε. Η Εικονική Μηχανή Ethereum εκτελεί αυτά τα συμβόλαια σε κάθε κόμβο του δικτύου ταυτόχρονα. Μαζί, επιτρέπουν στους προγραμματιστές να αναπτύξουν οποιονδήποτε κώδικα μπορούν να γράψουν.
Αυτή η μία απόφαση είναι ο λόγος ύπαρξης του DeFi. Γιατί υπάρχουν τα NFT. Γιατί υπάρχουν τα DAO. Γιατί δισεκατομμύρια δολάρια ρέουν μέσω προγραμμάτων που δεν ελέγχονται από καμία εταιρεία. Κάθε ενδιαφέρουσα εφαρμογή στα κρυπτονομίσματα, από το Uniswap έως το Aave και το OpenSea, είναι δυνατή μόνο επειδή το Ethereum μπορεί να εκτελέσει αυθαίρετο κώδικα.
Αλλά ο Βιτάλικ έβαλε ένα στοίχημα. Πόνταρε ότι η δύναμη της ευελιξίας θα υπερίσχυε του κινδύνου της πολυπλοκότητας. Το hack στο DAO το 2016 δοκίμασε σκληρά αυτό το στοίχημα. Τα exploits του DeFi που κοστίζουν δισεκατομμύρια κάθε χρόνο συνεχίζουν να το δοκιμάζουν. Και η κοινότητα του Bitcoin συνεχίζει να επισημαίνει αυτές τις απώλειες και να λέει «γι' αυτό μείναμε απλοί». Και οι δύο πλευρές έχουν δίκιο.
Το πρόβλημα της αναστολής και οι λόγοι για τους οποίους υπάρχουν τέλη φυσικού αερίου
Να το σημείο που με κράτησε ξύπνιο τη νύχτα όταν το κατάλαβα για πρώτη φορά.
Ο Τούρινγκ απέδειξε κάτι δυσάρεστο στην ίδια εργασία του 1936: κανένας αλγόριθμος δεν μπορεί να εξετάσει ένα αυθαίρετο πρόγραμμα και να προσδιορίσει αξιόπιστα αν θα ολοκληρώσει την εκτέλεσή του ή θα επαναληφθεί για πάντα. Αυτό δεν είναι ένα τεχνολογικό πρόβλημα που δεν έχουμε λύσει ακόμα. Είναι μια μαθηματική αδυναμία. Αποδεδειγμένη. Έγινε. Κανένας υπολογιστής, όσο προηγμένος κι αν είναι, δεν μπορεί να λύσει το πρόβλημα τερματισμού για όλα τα προγράμματα.
Στο φορητό υπολογιστή μου, ένας άπειρος βρόχος είναι ενοχλητικός. Πατάω Ctrl-C. Η ζωή συνεχίζεται. Σε ένα blockchain, ένας άπειρος βρόχος είναι καταστροφικός. Κάθε κόμβος εκτελεί κάθε έξυπνο συμβόλαιο. Αν ένα συμβόλαιο δεν σταματήσει ποτέ, κάθε κόμβος στον πλανήτη που εκτελεί αυτό το blockchain παγώνει. Το δίκτυο είναι νεκρό.
Η λύση του Ethereum είναι άμεση αλλά αποτελεσματική: αέριο. Κάθε υπολογισμός κοστίζει αέριο. Συνδέετε αέριο στη συναλλαγή σας. Όταν το αέριο εξαντληθεί, ο κώδικας σταματά. Δεν έχει σημασία αν ολοκληρώθηκε. Δεν έχει σημασία αν ήταν στη μέση της μεταφοράς των χρημάτων σας. Το αέριο μηδενίζεται, η εκτέλεση τελειώνει. Γι' αυτό οι χρεώσεις αερίου ETH ποικίλλουν. Μια απλή μεταφορά: 21.000 αέριο. Μια σύνθετη ανταλλαγή DeFi: 200.000. Ένα νομισματοκοπείο NFT με τέχνη στην αλυσίδα: μισό εκατομμύριο. Πληρώνετε για τον υπολογισμό που πρέπει να εκτελέσει κάθε κόμβος.
Το Bitcoin εξέτασε αυτό το πρόβλημα και είπε «όχι». Δεν μπορεί να γράψει έναν βρόχο, δεν μπορεί να κολλήσει σε έναν. Κάθε σενάριο τερματίζεται. Δεν χρειάζεται μηχανισμός αερίου. Η γλώσσα είναι πολύ περιορισμένη για να εκφράσει τη λέξη «για πάντα».
Ιούνιος 2016: όταν η θεωρία έγινε πραγματικότητα για 150 εκατομμύρια δολάρια
Κάθε συζήτηση σχετικά με την πληρότητα Turing στα κρυπτονομίσματα φτάνει τελικά σε αυτή τη στιγμή.
Το DAO ήταν ένα επενδυτικό ταμείο αξίας 150 εκατομμυρίων δολαρίων που λειτουργούσε με Ethereum. Έξυπνο συμβόλαιο. Διακυβέρνηση της κοινότητας. Τα χρήματα εισέρχονται, οι ψήφοι καθορίζουν πού εξέρχονται. Ο κώδικας ήταν πολύπλοκος. Είχε βρόχους, υποθετικούς όρους, κλήσεις μεταξύ συμβολαίων, κατάσταση που άλλαζε κατά τη διάρκεια της εκτέλεσης. Όλα όσα επιτρέπει η πληρότητα Turing.
Κάποιος βρήκε ένα κενό. Η συνάρτηση ανάληψης έστειλε πρώτα ETH και ενημέρωσε το υπόλοιπο δεύτερο. Ο εισβολέας κάλεσε την ανάληψη, πληρώθηκε και πριν ενημερωθεί το υπόλοιπο, η συνάρτηση κάλεσε τον εαυτό της ξανά. Και ξανά. Και ξανά. Επανείσοδος. Ένας βρόχος που οι προγραμματιστές δεν είχαν ποτέ σκοπό, που εξαντλούσε χρήματα με κάθε κύκλο.
Θα μπορούσε αυτό να συμβεί στο Bitcoin; Όχι. Το Bitcoin Script δεν μπορεί να καλέσει τον εαυτό του. Δεν μπορεί να καλέσει άλλα scripts. Δεν μπορεί να επαναληφθεί. Αυτό που κάνει το Bitcoin βαρετό είναι το ίδιο πράγμα που καθιστά αδύνατη αυτή τη συγκεκριμένη επίθεση.
Η κοινότητα του Ethereum ψήφισε να διαχωρίσει την αλυσίδα και να αντιστρέψει την κλοπή. Αυτή η διάσπαση δημιούργησε το Ethereum Classic. Οι προγραμματιστές έμαθαν. Οι φρουροί επανεισόδου έγιναν στάνταρ. Το μοτίβο "έλεγχοι-επιδράσεις-αλληλεπιδράσεις" έγινε ευαγγέλιο. Αλλά η θεμελιώδης αλήθεια δεν άλλαξε: Ο κώδικας Turing-complete μπορεί πάντα να περιέχει σφάλματα που οι δημιουργοί του δεν προέβλεψαν. Αυτό δεν είναι ελάττωμα στο Ethereum. Αυτή είναι συνέπεια των μαθηματικών.

Το Bitcoin γίνεται λιγότερο περιορισμένο: Taproot και BitVM
Η διαχωριστική γραμμή μεταξύ ολοκλήρωσης και μη ολοκλήρωσης του Turing δεν είναι τόσο έντονη όσο ήταν παλιά για το Bitcoin.
Το Taproot κυκλοφόρησε τον Νοέμβριο του 2021 και επέκτεινε τις δυνατότητες του Bitcoin Script. Πιο σύνθετες υπό όρους δαπάνες, καλύτερο απόρρητο μέσω υπογραφών Schnorr, Merkelized Abstract Syntax Trees που κρύβουν τις συνθήκες μιας συναλλαγής μέχρι να εκτελεστούν. Ακόμα δεν έχει ολοκληρωθεί η Turing. Αλλά είναι πιο εκφραστικό από πριν.
Το BitVM, που προτάθηκε το 2023, πηγαίνει ένα βήμα παραπέρα. Περιγράφει ένα σύστημα για την εκτέλεση αυθαίρετων υπολογισμών εκτός αλυσίδας και στη συνέχεια την επαλήθευση του αποτελέσματος στο Bitcoin. Σκεφτείτε το ως εξής: ο πραγματικός υπολογισμός γίνεται αλλού και το Bitcoin παρεμβαίνει μόνο εάν κάποιος αμφισβητήσει το αποτέλεσμα. Θεωρητικά, αυτό καθιστά το Bitcoin πρακτικά ολοκληρωμένο για συγκεκριμένες περιπτώσεις χρήσης χωρίς να αλλάζει η ίδια η γλώσσα σεναρίου.
Έχω μιλήσει με προγραμματιστές Bitcoin για το BitVM και η αντίδραση είναι ενδιαφέρουσα. Είναι ενθουσιασμένοι με τη δυνατότητα, αλλά τρομοκρατημένοι με τον κίνδυνο. Ένας από αυτούς μου είπε: «Δεν πρόκειται να βιαστούμε. Οι άνθρωποι κρατούν ένα τρισεκατομμύριο δολάρια σε αυτό το πράγμα. Αν το σπάσουμε προσπαθώντας να το κάνουμε πιο φανταχτερό, κανείς δεν μας συγχωρεί». Αυτή η προειδοποίηση είναι απογοητευτική αν θέλετε Bitcoin DeFi αύριο. Είναι καθησυχαστική αν είστε το άτομο με ένα τρισεκατομμύριο δολάρια στο σύστημα.
Η κατεύθυνση είναι προς μεγαλύτερη εκφραστικότητα ανεξάρτητα από αυτό. Το Taproot έχει ήδη επεκτείνει ό,τι είναι δυνατό. Το BitVM θα το επεκτείνει περαιτέρω. Αλλά μην περιμένετε ότι το Bitcoin θα γίνει Ethereum. Οι κουλτούρες είναι πολύ διαφορετικές για κάτι τέτοιο.
Γιατί κάθε νέο blockchain επέλεγε ούτως ή άλλως την πληρότητα Turing
Να τι διευθέτησε τη συζήτηση στην πράξη: κανείς δεν κατασκευάζει πλέον ατελείς μπλοκ αλυσίδων Turing. Solana, Cardano, Polkadot, Avalanche, BNB Chain. Όλες ολοκληρωμένες με Turing. Όλες ικανές να εκτελούν αυθαίρετα προγράμματα. Η αγορά αποφάσισε ότι η προγραμματισμός κερδίζει και το μόνο ερώτημα τώρα είναι πώς να γίνουν τα συστήματα Turing-complete ταχύτερα, φθηνότερα και ασφαλέστερα.
Κάθε αλυσίδα έκανε διαφορετικούς συμβιβασμούς. Το Ethereum επέλεξε το EVM και το Solidity (το μεγαλύτερο οικοσύστημα, οι υψηλότερες χρεώσεις στο L1). Ο Solana δημιούργησε το Sealevel για παράλληλη εκτέλεση χρησιμοποιώντας το Rust (γρήγορο αλλά πιο δύσκολο στην ανάπτυξη). Ο Cardano επέλεξε το Haskell και την επίσημη επαλήθευση (μαθηματικά αυστηρή, πιο αργή υιοθέτηση). Αλλά όλοι είπαν ναι στην πληρότητα Turing επειδή όλοι ήθελαν να εκτελέσουν έξυπνα συμβόλαια, DeFi, NFT, DAO και οτιδήποτε άλλο απαιτεί προσαρμοσμένη λογική.
Τα προβλήματα ασφαλείας είναι πραγματικά. Τα DeFi exploits κοστίζουν δισεκατομμύρια κάθε χρόνο. Το hack στο DAO ήταν μόνο η αρχή. Αλλά ο κλάδος κατέληξε στο συμπέρασμα ότι τα οφέλη της προγραμματισιμότητας υπερτερούν των κινδύνων. Ακόμα και το Bitcoin, η αρχική σκόπιμα περιορισμένη αλυσίδα, κινείται προς μεγαλύτερη εκφραστικότητα με το Taproot και το BitVM.
Ασχολούμαι με τα κρυπτονομίσματα για αρκετό καιρό, ώστε να έχω χρησιμοποιήσει εκτενώς και τους δύο τύπους αλυσίδων. Έχω στείλει συναλλαγές Bitcoin που επιβεβαιώνονταν ακριβώς όπως αναμενόταν κάθε φορά. Έχω επίσης αναπτύξει έξυπνα συμβόλαια Ethereum που έκαναν πράγματα που δεν είχα προβλέψει, επειδή το Solidity σάς επιτρέπει να γράφετε κώδικα αρκετά πολύπλοκο ώστε να εκπλήσσετε τον εαυτό σας. Και οι δύο εμπειρίες διαμόρφωσαν την άποψή μου.
Η συζήτηση αφορά λιγότερο το αν η πληρότητα Turing είναι καλή ή κακή και περισσότερο το τι χρειάζεστε. Αν θέλετε ένα ψηφιακό σύστημα πληρωμών που είναι στο έπακρο ασφαλές και προβλέψιμο, ο σχεδιασμός του Bitcoin έχει νόημα. Αν θέλετε να δημιουργήσετε οικονομικές εφαρμογές, παιχνίδια, συστήματα ταυτότητας ή οτιδήποτε χρειάζεται προσαρμοσμένη λογική, χρειάζεστε την πληρότητα Turing. Τα περισσότερα από αυτά που κάνουν τα κρυπτονομίσματα ενδιαφέροντα αυτή τη στιγμή ήταν δυνατά μόνο επειδή ένας 19χρονος αποφάσισε ότι το ρίσκο άξιζε τον κόπο.
Το σκέφτομαι αυτό κάθε φορά που χρησιμοποιώ το Uniswap ή το Aave ή οποιοδήποτε πρωτόκολλο DeFi. Κάθε swap που κάνω εκτελείται κώδικας σε μια εικονική μηχανή Turing-complete. Κάθε συναλλαγή φέρει τον θεωρητικό κίνδυνο ότι κάποιο σφάλμα που κανείς δεν περίμενε θα μπορούσε να εξαντλήσει ολόκληρο το συμβόλαιο. Χρησιμοποιώ αυτά τα πρωτόκολλα ούτως ή άλλως επειδή η χρησιμότητα αξίζει το ρίσκο για μένα. Αλλά ποτέ δεν ξεχνάω ότι το ρίσκο υπάρχει. Και ποτέ δεν ξεχνάω ότι το Bitcoin επέλεξε μια διαφορετική πορεία, και αυτή η πορεία έχει το δικό της είδος σοφίας. Το αυτόματο μηχάνημα αυτόματης πώλησης δεν κλέβει ποτέ τα χρήματά σας. Ο σεφ μπορεί να κάψει την κουζίνα.