tokens, tokens, tokens, όλα είναι tokens
Τα τουβλάκια lego του web3. (τουβλάκια, όχι σουβλάκια! 😆)
Αυτό το άρθρο μπορεί να φανεί λίγο κουραστικό, αλλά είναι σημαντικό για να καταλάβει κανείς τι είναι τα tokens για τα οποία μιλάμε συνεχώς. Προσπάθησα πολύ να αποφύγω τεχνικές λεπτομέρειες και σε μεγάλο βαθμό τα κατάφερα νομίζω.
Αν κάπου αισθανθείς ότι σε κουράζει, αφήσέ το ή διάβασέ το διαγώνια. Αν στο μέλλον θες να μάθεις περισσότερα για τα tokens, το κοιτάς ξανά.
Τα tokens, λοιπόν
Συνήθως μεταφράζω τους όρους που χρησιμοποιώ (όταν η μετάφραση δεν είναι καταστροφική), δυσκολεύομαι πολύ όμως να αποδώσω τον όρο token1 που στο web3 είναι πολύ συνηθισμένος.
Σε αυτό το περιβάλλον, η πιο κοντινή ερμηνεία το “token coin” όπως το ορίζει η Wikipedia, αλλά δεν περιορίζεται σε αυτή: “αντικείμενα που μοιάζουν με νομίσματα και χρησιμοποιούνται αντί για νομίσματα”.
Η γλώσσα προγραμματισμού που χρησιμοποιείται στο Ethereum2, κάνει πολύ εύκολο το να δημιουργήσουμε τέτοια “tokens” και να τους δώσουμε συγκεκριμένα χαρακτηριστικά και ιδιότητες ανάλογα με τις ανάγκες μας.
Για παράδειγμα έχουμε τα λεγόμενα “governance tokens”, τα οποία δήμουν δυνατότητα συμετοχής σε μία ψηφοφορία. Π.χ. αν έχω τουλάχιστον ένα UNI token στο wallet μου, μπορώ να ψηφίσω σε ψηφοφορίες που σχετίζονται με το Uniswap protocol.
Ή να έχουμε tokens που έχουν μία ορισμένη αξία, όπως τα λεγόμενα “stable coins”: το DAI, το USDC, το USDT κ.α. έχουν φτιαχθεί ώστε να αντιστοιχούν (το πως, σε άλλο άρθρο, είναι ενδιαφέρον θέμα) σε ένα δολάριο Αμερικής.
Ή τα NFTs, που όπως λέει το όνομά τους, tokens είναι και αυτά.
👉 Δες και το άρθρο: Τι είναι τα NFTs (και τι δεν είναι)
Και γενικά, σχεδόν για ό,τι κάνουμε στο web3, φτιάχνουμε ένα token.
Ένα token είναι πάντα μέσα σε ένα smart contract.
Τεχνικά, ένα τέτοιο token “γεννιέται, ζει και πεθαίνει”, μέσα σε ένα smart contract.
👉 Δες και το άρθρο: τι στο καλό είναι τα smart contracts;
Μπορεί να λέμε “έχω 100 USDC στο wallet μου”, αλλά αυτό δεν είναι ακριβές. Το ακριβές είναι ότι μέσα στο smart contract που υλοποιεί το USDC, υπάρχει η πληροφορία ότι στην διεύθυνση του wallet μου αντιστοιχούν 100 USDC —και μόνο εκεί.
Ένας παραλληλισμός θα ήταν ότι τα χρήματα που έχω στην τράπεζα, δεν τα έχω στο πορτοφόλι μου: Κάπου σε κάποια βάση δεδομένων της τράπεζάς μου υπάρχει μία εγγραφή που λέει ότι ο Παναγιώτης έχει 100 Ευρώ. Σε μία άλλη τράπεζα μπορεί να υπάρχει μία άλλη εγγραφή που λέει ότι σε εκείνη έχω 150 δολάρια.
Σε αυτή την περίπτωση, με όρους web3, το smart contract “τράπεζα”, μου δίνει και κάποιες λειτουργίες για το token “Ευρώ”. Π.χ. μου δίνει την λειτουργία “μεταφορά ποσού”, που μου επιτρέπει να δηλώσω έναν άλλο λογαριασμό και ένα ποσό και να χρεώσει το ποσό από στον δικό μου λογαριασμό και να το πιστώσει στον άλλο.
Αντίστοιχα, το smart contract του USDC (είπαμε, 1 USDC = $1) έχει μία λειτουργία (function) που ορίζεται κάπως έτσι
transfer(to_address, amount)
και όταν το wallet μου την “χρησιμοποιήσει” (method call), το smart contract USDC χρεώνει την δική μου διεύθυνση και πιστώνει την διεύθυνση του παραλήπτη, στην βάση του.
Η μόνη εξαίρεση είναι το ίδιο το ETH, που η ύπαρξη του σε μία διεύθυνση δεν εξαρτάται από κάποιο smart contract, αφού είναι το native token του Ethereum network.
ERC-τί;;;
Θα δεις συχνά να αναφέρονται οι όροι ERC-20, ERC-721 και ERC-1155. Αυτοί δεν είναι τίποτα άλλο από μία τυποποίηση των smart contracts.
Δηλαδή, για να μην ψάχνουμε κάθε φορά αν το token Χ έχει μία λειτουργία transfer() ή όχι, μήπως την ονομάζει metafora() ή κάπως αλλιώς, αν περιμένει το ποσό να είναι ακέραιο ή δεκαδικό κ.λ., τα τυποποιήσαμε και είπαμε ότι αν ένα smart contract υλοποιεί το ERC-20 κάνει αυτά με αυτό τον τρόπο, αν υλοποιεί το ERC-721 τα άλλα με εκείνο τον τρόπο, κ.λ.
Μπορείς να δεις τις τεχνικές λεπτομέρειες του κάθε ενός εδώ (ναι, ναι, τα λέμε ERC και τα γράφουμε EIP, αγνόησε το, το ίδιο είναι):
Αυτό που αξίζει να κρατήσεις, μπακαλίστικα, είναι:
ERC-20: Fungible3 tokens. Δηλαδή αφαιρώ 10 από τον λογαριασμό του Παναγιώτη και προσθέτω 10 στον λογαρισμό της Μαρίας και είμαστε ΟΚ.
ERC-721: Non-fungible tokens (unique). Δηλαδή, το smart contract κρατάει ότι το έργο #123 του καλλιτέχνη το έχει η δική μου διεύθυνση και αν το μεταφέρω, πρέπει να σημειώσει “δίπλα του” ότι το έχει η νέα διεύθυνση.
ERC-1155: Non-fungible tokens (limited edition). Δηλαδή σαν τα NFTs του ERC-721, αλλά κάθε NFT μπορεί να είναι σε συγκεκριμένο αριθμό αντιτύπων.
Το ότι ένα token υλοποιεί ένα από τα παραπάνω standards, δεν σημαίνει ότι κάνει μόνο αυτό.
Για παράδειγμα, στο ENS (Ethereum Name Service) κάθε token είναι ένα domain name και έχει λειτουργίες σχετικές με subdomains, με το πότε κάνει expire κ.λ. Αλλά για να τα κάνουν πιο ευκολοδιαχειρίσιμα για τους χρήστες, υλοποίησαν και το ERC-721 (NFT). Οπότε π.χ. το vrypan.eth πέρα από τα domain-specific πράγματα που κάνει, μπορώ να το δω στο wallet μου ή να το πουλήσω στο OpenSea, όπως θα έκανα με κάθε άλλο NFT.
Το tokenisation είναι τρόπος σκέψης
Τα tokens δεν είναι μόνο τεχνικό θέμα, είναι ένας τρόπος σκέψης και αντίληψης του κόσμου (που ναι, βολεύει και τεχνικά σε αυτή την περίπτωση).
Αν περιγράψεις ένα πρόβλημα σε έναν προγραμματιστή που χρησιμοποιεί σχεσιακές βάσεις δεδομένων, θα αρχίσει να το σκέφτεται με την μορφή πινάκων και στηλών. Αν το περιγράψεις σε κάποιον που χρησιμοποιεί αντικειμενοστρεφή προγραμματισμό, θα αρχίσει να το σκέφτεται με αντικείμενα και κλάσεις.
Ε, αν περιγράψεις το ίδιο πρόβλημμα σε κάποιον που γράφει smart contracts για το Ethereum, θα αρχίσει να το σκέφτεται με όρους tokens.
Οπότε… tokens παντού, όλα είναι tokens.
Το ωραίο με αυτή την προσέγγιση είναι πως όταν “όλα είναι tokens”, και μάλιστα τυποποιημένα, μπορούμε να τα χρησιμοποιήσουμε σαν τουβλάκια lego για να χτίσουμε πιο πολύπλοκα μοντέλα. Θα δούμε αρκετά τέτοια παραδείγματα σε μελλοντικά άρθρα. ◼️
Ο ορισμός που δίνει το Miriam-Webster είναι αρκετός για να καταλάβει κανείς το εύρος των εννοιών που καλύπτει.
Το web3 δεν είναι απαραίτητο ότι θα αναπτυχθεί με βάση το Ethereum. Υπάρχουν πολλά άλλα blockchains που υποστηρίζουν smart contracts και θα μπορούσαν τελικά να επικρατήσει κάποιο άλλο. Ή θα μπορούσε το μέλλον του web3 να είναι ένα μέλλον με πολλά blockchains. Προσωπικά, πιστεύω πως τοEthereum έχει αποκτήσει τέτοια κρίσιμη μάζα που θα επικρατήσει σε αυτό τον τομέα. Για αυτό και σε όλα τα άρθρα, εκτός κι αν το διευκρινίζω, θα μιλάω για το Ethereum. Έτσι κι αλλιώς οι βασικές ιδέες δεν αλλάζουν και πολύ.
Αν δεν σου λέει τίποτα το fungible, non-fungible, δες την εισαγωγή του άρθρου για τα NFTs!