ERC-20 | ABC standardu tokenów w Ethereum
Jeśli słyszałeś kiedykolwiek o tokenach ERC-20, ale nadal nie wiesz, o co w nich chodzi, ten tekst jest właśnie dla Ciebie.
Ekosystem blockchainu Ethereum zawiera w sobie wiele zmiennych, których zrozumienie i odróżnianie może sprawiać poczatkującym użytkownikom nieco kłopotu. Nie chodzi tu bynajmniej o same fundamenty techniczne, do analizowania których wymagane jest posiadanie choć minimum wiedzy technicznej, ale o sam koncept, który kryje w sobie odpowiedzi na pytania o cel stosowania takich a nie innych rozwiązań.
Przeanalizujmy zatem, czy jest token ERC-20, jak go rozumieć, jakie możliwości daje deweloperom i użytkownikom sieci króla smart kontraktów? Zobaczmy, jakie standard ten ma wady i zalety? W jaki sposób buduje się w oparciu o niego nowe tokeny?
Ethereum i smart kontrakty
Jak zaznaczyliśmy na samym wstępie, cała koncepcja Ethereum i tokena ERC-20 (a także każdego innego standardu), dość szybko może wprowadzić w umyśle początkującego adepta Ethereum niemały chaos. Idea, w myśl której sieć Ethereum ma nie tylko własną kryptowalutę (ETH), ale także tokeny, które same w sobie mogą działać jako waluta, jest dla wielu mylący. Zanim w ogóle zrozumiemy, o co chodzi w tokenach Ethereum, ważne jest, aby usystematyzować kilka podstawowych pojęć w kontekście samej sieci Ethereum.
Cała sieć Ethereum to ogromna liczba połączonych ze sobą węzłów (komputerów). W rzeczywistości, może być ona rozumiana jako jeden „organizm”, „wirtualna maszyna Ethereum” lub w skrócie EVM. Wszystkie transakcje, które miały i będą miały miejsce w tej sieci, są automatycznie aktualizowane i rejestrowane w otwartej i rozproszonej księdze (distributed ledger). Jaka jest tego zaleta? Zanim to wyjaśnimy, ważne jest, aby wiedzieć, czym jest smart kontrakt.
Smart kontrakty służą do wykonywania zadań w ekosystemie Ethereum. Kiedy ktoś w sieci chce wykonać określone zadanie, inicjuje smart kontrakt. Smart kontrakt to zestaw instrukcji napisanych w sieci Ethereum w języku programowania solidity, oparty na logice IFTTT (IF-THIS-THEN-THAT (If-This-That)_. Zasadniczo, gdy pierwszy krok łańcucha instrukcji jest zakończony, wykonywana jest następna funkcja, a później kolejna do momentu, aż zostanie spełniony ostateczny, zadany w kodzie warunek.
Najprostszym sposobem na zrozumienie tego jest wyobrażenie sobie chociażby automatu z napojami. Każdy pojedynczy krok działa jak wyzwalacz dla następnego. To trochę jak efekt domina. Przyjrzyjmy się poszczególnym krokom, jakie wykonujemy podczas interakcji z automatem:
- Krok 1: Wrzucasz do maszyny monety.
- Krok 2: Naciskasz przyciski odpowiadające żądanej pozycji.
- Krok 3: W podajniku pojawia się napój.
Czy któryś z kroków będzie miał miejsce, jeśli poprzedni nie zostanie wykonany? Oczywiście, że nie. Każdy z tych kroków jest bezpośrednio powiązany z poprzednim. Należy wziąć pod uwagę jeszcze jeden czynnik, który jest istotną częścią smart kontraktów. Widać, że cała interakcja z automatem odbywa się (w sposób bezpośredni) wyłącznie z automatem (dostawcą). Żadna strona trzecia nie była zaangażowana (dla uproszczenia całej mechaniku pomijamy w tym miejscu fakt, że Twoje pieniądze „przechodzą” przez bank).
Jak więc wyglądałaby taka transakcja, gdyby miała miejsce w sieci Ethereum? Załóżmy, że właśnie kupiłeś coś z automatu w sieci Ethereum:
- Krok 1: Wpłacasz do sieci trochę środków. Fakt ten jest rejestrowany przez wszystkie węzły w sieci, a transakcja jest aktualizowana w księdze głównej (blockchain).
- Krok 2: Naciskasz przycisk odpowiadający produktowi, który chcesz kupić. Zdarzenie to jest aktualizowane w sieci Ethereum oraz w księdze głównej.
- Krok 3: przedmiot jest wydawany i odbierany. Fakt ten zostaje zarejestrowany przez wszystkie węzły i księgę główną.
Każda transakcja dokonana za pomocą smart kontraktów jest rejestrowana i aktualizowana przez sieć. Skutkuje to tym, że wszystkie strony umowy ponoszą odpowiedzialność za swoje działania. Każda taka akcja jest transparentna dla wszystkich węzłów w sieci. Ale jaki był główny powód, dla którego transakcja została zakończona? W tej chwili do akcji wkracza ether (ETH).
Ether (ETH)
Każdy krok w smart kontrakcie jest transakcją lub skomplikowaną kalkulacją i wiąże się z kosztami mierzonymi w jednostce nazywanej gazem. Cenę gazu inicjator transakcji płaci w ETH. Ether to waluta używana do obsługi wszystkich działań w sieci Ethereum.
Każde polecenie ma określony limit gazu, co zapewnia, że błędny kod nie spowoduje zużycia całej kwoty w portfelu ETH. Zasadniczo głównym powodem, dla którego ludzie wywiązują się z umowy w kontrakcie, jest zachęta do zebrania większej ilości ETH.
Smart kontrakty służą do wykonywania wszelkich zadań w Ethereum.
Ether to waluta używana w sieci Ethereum.
Co to jest token?
Wyjaśnijmy teraz, czym jest token.
Największa różnica między Ethereum a większością innych kryptowalut polega na tym, że nie charakteryzuje jej wyłącznie waluta, ale także cały ekosystem (platforma). Tutaj każdy może skorzystać z technologii blockchain do tworzenia własnych projektów i zdecentralizowanych aplikacji za pośrednictwem smart kontraktów. Jest to bardzo ważna różnica, ponieważ to właśnie ten fakt pokazuje prawdziwy zakres tego, jakie możliwości daje Ethereum.
Pomyśl o Ethereum jak o Internecie, a o wszystkich zdecentralizowanych aplikacjach jak o witrynach, które funkcjonują w jego ramach. Właśnie w ramach tych „witryn”, każdy może stworzyć dedykowany token, który może służyć wielu celom (o tym za chwilę), ale tylko w ramach tej konkretnej zdecentralizowanej aplikacji. Zapewne zwróciłeś już uwagę na fakt, że o ile kryptowaluta posiada swój własny łańcuch bloków, tak token funkcjonuje w ramach wspólnego, nie dedykowanego samemu sobie ekosystemu.
Po co komu tokeny?
Być może zastanawiasz się, dlaczego do wnoszenia opłat w ramach poszczególnych zdecentralizowanych aplikacji nie uzywa się po prostu ETH? Po co nam osobne tokeny dla każdej z „witryn” w Ethereum? Odpowiedź jest dość prosta.
Jeśli chwilę się nad tym zastanowisz okaże się, że nawet w prawdziwym życiu korzystamy z mnóstwa aplikacji i miejsc, w których zamiast gotówki używamy jakiejś formy tokena.
Z pewnością byłeś kiedyś w jakimś w parku rozrywki. Zapłaciłeś za wstęp i dostałeś specjalną opaskę, która umożliwiała Ci skorzystanie ze wszystkich atrakcji. Taka opaska dawała Ci być może możliwość uzyskania posiłku w strefie food court. Coż, w tym przykładzie park wodny to zdecentralizowana aplikacja, twoje pieniądze to ETH, a dedykowana opaska to token.
Co to jest ERC?
ERC to nic innego, jak standard budowy i celów poszczególnych tokenów w sieci Ethereum. Rodzajów tokenów jest w tej sieci doprawdy mnóstwo, a każdy z nich zdefiniowany jest w oparciu o kilka istotnych czynników:
- zasady i warunki zdefiniowane w ramach smart kontraktu
- zasady tworzenia tokenów
- warunki kupna i sprzedaży tokena
- nazwa i symbol tworzonych tokenów
- standardy danych
- standardy portfeli
- inne
W łańcuchu bloków Ethereum funkcjonuje obecnie kilkanaście różnych instancji ERC. Z ich pełną listą i specyfikacją możesz zapoznać się tutaj.
Na potrzeby tego opracowania skupimy się jednak na jednym konkretnym typie tokena – ERC-20.
ERC-20 stanowi standard dla budowy tokenów w Ethereum. Jest niczym „interfejs”, który pozwala programistom budować tokeny na szczycie łańcucha bloków Ethereum.
Co to jest interfejs w językach programowania?
W programowaniu interfejs jest ogólnym opisem zbioru obiektów bez deklarowania zasad, według których się zachowują. Najlepiej będzie wyjaśnić to na prostym przykładzie:
Wyobraź sobie, że mamy ogólną koncepcję o nazwie „pojazd”. Teraz tak:
- Motocykl JEST pojazdem.
- Samochód JEST pojazdem.
- Ciężarówka JEST pojazdem
Teraz, aby opisać nasz „pojazd”, możemy zastosować następujące parametry lub metody:
Przykładowe właściwości
- Sprzęgło: właściwość sprzęgła pojazdu
- Hamulec: właściwość hamowania pojazdu
- Siedzenia: właściwość siedzenia w pojeździe
Przykładowe metody:
- Zapłon: logika uruchamiania pojazdu
- Stop: logika zatrzymywania pojazdu
- Przyspieszenie: logika zwiększania prędkości w pojeździe
- Hamulec: logika hamowania w pojeździe
Motocykle, samochody i ciężarówki mają ten sam zestaw parametrów i metod. Każdy z nich może mieć jednak własną wersję implementacji (funkcjonalność).
Właśnie tutaj pojawia się termin „interfejs”.
Interfejsy określają abstrakcyjną definicję parametrów i metod bez konieczności definiowania charakteryzującej je logiki lub zasad implementacji. Na kolejnym etapie, każdy obiekt może zaimplementować własny interfejs i dodać do niego własną wersję logiki.
W naszym przykładzie oznacza to, że możemy zdefiniować interfejs „pojazd”, a następnie:
- Obiekt „Motocykl” zaimplementuje interfejs „Pojazd” i doda do niego własną logikę
- Obiekt „Samochód” zaimplementuje interfejs „Pojazd” i doda do niego własną logikę
- Obiekt „Ciężarówka” zaimplementuje interfejs „Pojazd” i doda do niego własną logikę
ERC-20 jako interfejs dla tworzenia tokenów
Teraz, gdy znamy koncepcje stojące za ERC i interfejsem, powinno być już dla Ciebie jasne, czym jest token ERC-20.
ERC-20 to interfejs oparty na blockchainie Ethereum, za pomocą którego i programiści mogą budować swoje niestandardowe tokeny. Innymi słowy, ERC-20 to zbiór abstrakcyjnych definicji właściwości i metod charakterystycznych dla każdego rodzaju takiego tokena. Później, w momencie implementacji tokena ERC-20, programiści mogą zaimplementować takie właściwości i metody oraz określić dla stworzonych przez siebie tokenów dedykowane zestawy logiki.
Wiedząc to, przyjrzyjmy się teraz, jaki zestaw parametrów i metod musieli wdrożyć programiści podczas tworzenia i wdrażania tokenów ERC-20.
Obligatoryjne parametry/metody ERC-20
Tokeny ERC-20 posiadają 6 obowiązkowych parametrów/metod:
- totalSupply: limit podaży nowych tokenów
- balanceOf: określa, ile tokenów posiada dany adres
- transfer: pobiera określoną ilość tokenów z całej podaży i przekazuje ją użytkownikowi
- transferFrom: służy do przesyłania tokenów pomiędzy dowolnymi dwoma użytkownikami posiadającymi tokeny
- approve: weryfikuje, czy Twój kontrakt może przekazać określoną liczbę tokenów innemu użytkownikowi, biorąc pod uwagę całkowitą podaż
- allowance: to samo, co approve + sprawdzenie, czy użytkownik ma wystarczające saldo, aby wysłać określoną liczbę tokenów do innego użytkownika
Opcjonalne parametry/metody ERC-20
Tokeny ERC-20 posiadają również możliwość ustawienia 3 opcjonalnych parametrów/ metod:
- Name: nazwa Twojego tokena
- Symbol: symbol (lub ticker) tokena
- Decimals: liczba miejsc dziesiętnych, które powinien obsługiwać token
Zalety tworzenia tokenów za pomocą interfejsu ERC-20
Główne zalety zdefiniowania tokena jako ERC-20 są następujące:
- budowanie aktywa w łańcuchu bloków Ethereum; w ten sposób wykorzystuje główne funkcje oferowane przez ten blockchain,
- minimalne korekty dla nowego kodu oraz wykorzystanie istniejącego kodu i infrastruktury do budowy nowego tokena,
- większe szanse na listing na giełdzie,
- większe szanse na integrację z istniejącymi portfelami.
Wady tworzenia tokenów za pomocą interfejsu ERC-20
Główne wady definiowania tokena jako ERC-20 przedstawiają się następująco:
- zależność od blockchainu Ehtereum. Jeśli coś pójdzie nie tak z Ethereum, wpłynie to również na token,
- wysokie opłaty za gaz za kupno lub sprzedaż tokenów – przynajmniej do czasu, gdy ten problem zostanie rozwiązany przez ETH 2.0,
- szanse na zagubienie lub zamrożenie tokenów z powodu wystąpienia przypadków niekompatybilności smart kontraktów.
Top 10 tokenów ERC-20
W przestrzeni kryptowalut dostępne są już tysiące tokenów ERC-20. Nie trzeba dodawać, że wiele z tych tokenów to oszustwa lub przynajmniej projekty, których nie warto traktować poważnie. Jeśli jednak przejrzysz listę tokenów ERC-20 w miejscach takich jak Bloxy, Cryptonomist czy Eidoo, znajdziesz kilka dobrze znanych nazw:
- Tether (USDT)
- Shiba Inu (SHIB)
- Uniswap (UNI)
- Decentraland (MANA)
- Polygon (MATIC)
- Aave (AAVE)
- Loopring (LRC)
- Enjin Coin (ENJ)
- Basic Attention Token (BAT)
Słowem podsumowania
Podsumowując, ERC-20 to interfejs zasilany przez blockchain Ethereum. Korzystając z tego interfejsu, programiści mogą budować swoje tokeny ERC-20 i wdrażać je na rynku.
✔️ERC-20 to abstrakcyjny interfejs oferowany przez Ethereum. Do tworzenia tokenów ERC-20 programiści muszą dodać własną logikę.
✔️ERC-20 ma 3 opcjonalne i 6 obowiązkowych parametrów/metod.
✔️Tokeny ERC-20 zależą od łańcucha bloków Ethereum. Innymi słowy, nie są osobnym blockchainem i można je uznać za dedykowane Ethereum.
✔️Tokeny ERC-20 korzystają z całej infrastruktury i funkcji oferowanych przez blockchain Ethereum.
✔️Istnieją tysiące wdrożonych (i notowanych na giełdach) tokenów ERC-20. Niektóre z nich znajdują się na liście 100 najlepszych aktywów cyfrowych.
***
Opracowano na podstawie: link, link
Może Cię zainteresować:
Od Redakcji
Niniejszy artykuł ani w całości ani w części nie stanowi „rekomendacji” w rozumieniu przepisów ustawy z dnia 29 lipca 2005 r. o obrocie instrumentami finansowymi czy Rozporządzenia Parlamentu Europejskiego i Rady (UE) Nr 596/2014 z dnia 16 kwietnia 2014 r. w sprawie nadużyć na rynku (rozporządzenie w sprawie nadużyć na rynku) oraz uchylające dyrektywę 2003/6/WE Parlamentu Europejskiego i Rady i dyrektywy Komisji 2003/124/WE, 2003/125/WE i 2004/72/WE oraz Rozporządzenia Delegowane Komisji (Ue) 2017/565 z dnia 25 kwietnia 2016 r. uzupełniające dyrektywę Parlamentu Europejskiego i Rady 2014/65/UE w odniesieniu do wymogów organizacyjnych i warunków prowadzenia działalności przez firmy inwestycyjne oraz pojęć zdefiniowanych na potrzeby tej dyrektywy. Zawarte w serwisie treści nie spełniają wymogów stawianych rekomendacjom w rozumieniu w/w ustawy, m.in. nie zawierają konkretnej wyceny żadnego instrumentu finansowego, nie opierają się na żadnej metodzie wyceny, a także nie określają ryzyka inwestycyjnego.