Τι είναι τα smart contracts και πού κρύβεται το ρίσκο;

Το Ethereum είναι ένα blockchain με ενσωματωμένο υπολογιστή. Ένα smart contract είναι πρόγραμμα που τρέχει πάνω του και ακολουθεί κανόνες γραμμένους σε κώδικα. Το ρίσκο είναι ότι ο κώδικας μπορεί να έχει λάθη, ότι οι συναλλαγές συνήθως δεν αναιρούνται και ότι μπορεί να εγκρίνουμε κάτι που δεν καταλάβαμε.
Όταν ξεκινάς να διαβάζεις για κρύπτο, θα βρεις γρήγορα τη φράση «smart contract». Ακούγεται σαν κάτι πολύπλοκο και νομικό. Στην πραγματικότητα η ιδέα είναι απλή, και αξίζει να την καταλάβουμε μαζί με τα ρίσκα της.
Εδώ εξηγούμε πώς δουλεύει ο μηχανισμός και τι μπορεί να πάει στραβά. Δεν μιλάμε για τιμές, για συγκεκριμένα έργα ή για εφαρμογές.
Τι είναι το Ethereum και σε τι διαφέρει από το bitcoin;
Αν δεν έχεις δει ακόμα τι είναι ένα blockchain, ξεκίνα από το άρθρο μας τι είναι το blockchain. Εδώ υποθέτουμε ότι ξέρεις την ιδέα: ένα κοινό βιβλίο καταγραφών που δεν ελέγχεται από μία κεντρική αρχή.
Το ethereum.org περιγράφει το Ethereum με μία εικόνα: είναι «a blockchain with a computer embedded in it», δηλαδή ένα blockchain με έναν υπολογιστή ενσωματωμένο μέσα του. Σύμφωνα με την ίδια σελίδα, πάνω σε αυτό μπορούν να στηθούν εφαρμογές αποκεντρωμένες, χωρίς να χρειάζεται άδεια από κάποιον και ανθεκτικές στη λογοκρισία.
Η διαφορά με το bitcoin, σε γενική εξήγηση δική μας: το bitcoin χρησιμοποιείται κυρίως ως νόμισμα. Το Ethereum, εκτός από νόμισμα, φιλοξενεί προγράμματα. Για να δεις πώς διαφέρουν τα διάφορα κρυπτονομίσματα μεταξύ τους, δες το άρθρο bitcoin, altcoins και stablecoins.
Τι είναι ένα smart contract;
Σύμφωνα με το ethereum.org, ένα smart contract είναι απλώς ένα πρόγραμμα που τρέχει στο blockchain του Ethereum. Ο κώδικας και τα δεδομένα του βρίσκονται σε μία συγκεκριμένη διεύθυνση του δικτύου.
Για να το καταλάβεις, σκέψου έναν αυτόματο πωλητή. Το ίδιο το ethereum.org χρησιμοποιεί αυτή την αναλογία: ο πωλητής δίνει το προϊόν μόνο αφού πληρωθούν όλες οι προϋποθέσεις.
Ένα υποθετικό παράδειγμα. Βάζεις 2 € και διαλέγεις προϊόν που κοστίζει 2 €. Αν τα χρήματα επαρκούν, το προϊόν πέφτει. Αν όχι, δεν πέφτει τίποτα. Δεν υπάρχει υπάλληλος που θα αποφασίσει, ούτε κάποιος να παρακαλέσεις. Το smart contract λειτουργεί ανάλογα: ακολουθεί τον κανόνα που γράφτηκε στον κώδικα, κάθε φορά με τον ίδιο τρόπο.
Η αναλογία έχει όριο, και είναι σημαντικό. Ο αυτόματος πωλητής έχει ιδιοκτήτη, που μπορεί να τον ανοίξει και να διορθώσει μια βλάβη. Ένα contract συνήθως δεν έχει τέτοιο «κλειδί». Αυτή είναι δική μας εξήγηση, με βάση όσα γράφει το ethereum.org για το ότι οι κανόνες μένουν σταθεροί μετά τη δημιουργία.
Δύο ακόμα στοιχεία από τη σελίδα τεκμηρίωσης του ethereum.org:
- Οποιοσδήποτε μπορεί να γράψει ένα smart contract και να το ανεβάσει στο δίκτυο.
- Τα contracts είναι δημόσια στο Ethereum, και το ethereum.org τα παρομοιάζει με ανοιχτά API, δηλαδή ανοιχτές «πόρτες» που μπορεί να καλέσει οποιοδήποτε άλλο πρόγραμμα. Ένα contract μπορεί επίσης να καλεί ένα άλλο.
Κάτι που μπερδεύει: ένα contract από μόνο του δεν μαθαίνει τι γίνεται έξω από το blockchain. Σύμφωνα με το ethereum.org, χρειάζεται εξωτερικές πηγές δεδομένων, τους λεγόμενους oracles, για κάτι τέτοιο.
Τι είναι το ether και τα dapps;
Το ether (ETH) είναι το εγγενές νόμισμα του Ethereum, δηλαδή το νόμισμα που ανήκει στο ίδιο το δίκτυο. Το ethereum.org γράφει ότι δημιουργεί αγορά για υπολογιστική ισχύ, πληρώνει όσους επαληθεύουν τις συναλλαγές και λειτουργεί ως εγγύηση για τους validators, δηλαδή όσους ελέγχουν και επικυρώνουν τις συναλλαγές.
Δεν εξετάζουμε εδώ αν είναι καλή ιδέα να κατέχει κανείς ether. Περιγράφουμε μόνο τον ρόλο του.
Τα dapps (decentralized apps, δηλαδή αποκεντρωμένες εφαρμογές) στηρίζονται σε smart contracts. Το ethereum.org σημειώνει ότι τα smart contracts συχνά λέγονται και dapps. Η απλή εικόνα: το contract είναι ο κανόνας που τρέχει στο δίκτυο, και η εφαρμογή είναι αυτό που βλέπεις και πατάς.
Μπορεί να χαθεί κάποιος από λάθος σε smart contract;
Ναι, και εδώ βρίσκεται το κύριο ρίσκο. Το ethereum.org εξηγεί τρία πράγματα που δένουν μεταξύ τους:
- Ο κώδικας ενός contract που έχει τεθεί σε λειτουργία συνήθως δεν αλλάζει για να μπει διόρθωση.
- Κατά προεπιλογή ένα contract δεν διαγράφεται, και οι ενέργειες πάνω του δεν αναιρούνται.
- Σύμφωνα με τη σελίδα ασφάλειας, τα περιουσιακά στοιχεία που κλέβονται από smart contracts είναι πολύ δύσκολο να εντοπιστούν και ως επί το πλείστον ανεπίστρεπτα.
Ένα δεύτερο υποθετικό παράδειγμα. Ένα contract «φυλάει» 100 μονάδες και υποτίθεται ότι τις επιστρέφει μετά από συγκεκριμένη ημερομηνία. Ο κώδικας όμως έχει ένα κενό που επιτρέπει ανάληψη νωρίτερα. Κάποιος το εκμεταλλεύεται. Η συναλλαγή του εκτελείται ακριβώς όπως γράφτηκε και δεν ακυρώνεται. Ο κώδικας συνήθως δεν διορθώνεται εκ των υστέρων. Δεν υπάρχει εξυπηρέτηση πελατών να καλέσεις.
Το ethereum.org προσθέτει ότι οι έλεγχοι ασφαλείας (audits) δεν πιάνουν κάθε λάθος και ότι δεν πρέπει να τους βλέπουμε σαν μαγική λύση. Άρα το «έχει ελεγχθεί» δεν σημαίνει «δεν μπορεί να χαλάσει».
Τι σημαίνει «τυφλή υπογραφή»;
Σύμφωνα με το ethereum.org, τυφλή υπογραφή είναι να εγκρίνεις μια συναλλαγή που αλληλεπιδρά με ένα smart contract χωρίς να καταλαβαίνεις τι θα κάνει πραγματικά.
Σκέψου ότι υπογράφεις ένα χαρτί χωρίς να το διαβάσεις, μόνο επειδή σου είπαν «πάτα εδώ». Στο πορτοφόλι σου (δες τι είναι ένα κρυπτοπορτοφόλι) η υπογραφή γίνεται με ένα κλικ. Και επειδή οι συναλλαγές συνήθως δεν αναιρούνται, το κλικ μετράει.
Τι σημαίνει αυτό για σένα;
Οι παρακάτω συμβουλές είναι δική μας γενική λογική, όχι οδηγίες για κάποιο προϊόν:
- Διάβαζε τι υπογράφεις. Αν το πορτοφόλι σου δείχνει μια έγκριση και δεν καταλαβαίνεις τι ζητά, σταμάτα και ψάξε πρώτα.
- Μην εμπιστεύεσαι ένα έργο μόνο επειδή «έχει έλεγχο». Ο έλεγχος είναι μία ένδειξη, όχι εγγύηση.
- Θυμήσου ότι δεν υπάρχει «αναίρεση». Όταν κάτι πάει στραβά, συνήθως δεν γυρίζει πίσω.
- Αν δοκιμάσεις κάτι για να μάθεις, κράτα το ποσό τόσο μικρό ώστε να μη σε πειράξει αν χαθεί. Το πόσο είναι δική σου απόφαση, και δεν το προτείνουμε εμείς.
Λεξικό
- Smart contract: πρόγραμμα που τρέχει σε blockchain και ακολουθεί κανόνες γραμμένους σε κώδικα.
- Ether (ETH): το εγγενές νόμισμα του Ethereum.
- Dapp: αποκεντρωμένη εφαρμογή που στηρίζεται σε smart contracts.
- Validator: συμμετέχων που ελέγχει και επικυρώνει συναλλαγές στο δίκτυο.
- Oracle: εξωτερική πηγή που δίνει σε ένα contract δεδομένα από τον πραγματικό κόσμο.
- Audit (έλεγχος ασφαλείας): εξέταση του κώδικα από ειδικούς για λάθη. Δεν τα εντοπίζει όλα.
- Τυφλή υπογραφή: έγκριση συναλλαγής χωρίς να καταλαβαίνεις τι θα κάνει.
Το άρθρο είναι μόνο για ενημέρωση και εκπαίδευση και δεν αποτελεί επενδυτική συμβουλή. Οι επενδύσεις, και ειδικά τα κρυπτονομίσματα, έχουν υψηλό ρίσκο. Μπορεί να χάσεις μέρος ή όλο το κεφάλαιό σου.
Το άρθρο γράφτηκε με τη βοήθεια AI και τα στοιχεία του ελέγχθηκαν αυτόματα με τις πηγές.
Συχνές ερωτήσεις
Είναι ένα smart contract νομικό συμβόλαιο;
Όχι με τη συνηθισμένη έννοια. Είναι πρόγραμμα, δηλαδή οδηγίες που εκτελούνται αυτόματα όταν πληρούνται οι όροι που έγραψε ο προγραμματιστής. Το όνομα μπερδεύει, γιατί θυμίζει χαρτιά και υπογραφές.
Αν ένα smart contract έχει λάθος, μπορεί να διορθωθεί;
Συνήθως όχι. Σύμφωνα με το ethereum.org, ο κώδικας ενός contract που έχει ήδη τεθεί σε λειτουργία συνήθως δεν αλλάζει για να διορθωθεί ένα κενό ασφαλείας. Γι' αυτό τα λάθη κοστίζουν περισσότερο από ό,τι σε μια συνηθισμένη εφαρμογή.
Αν ένα έργο λέει ότι έχει περάσει «έλεγχο» (audit), είναι ασφαλές;
Όχι απαραίτητα. Το ethereum.org γράφει ότι οι έλεγχοι δεν εντοπίζουν κάθε λάθος και ότι δεν πρέπει να τους βλέπουμε ως μαγική λύση. Ένας έλεγχος είναι μία ένδειξη, όχι εγγύηση.


