ERC-20 | ABC standardu tokenów w Ethereum

1 712

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:

  1. Tether (USDT)
  2. Shiba Inu (SHIB)
  3. Uniswap (UNI)
  4. Decentraland (MANA)
  5. Polygon (MATIC)
  6. Aave (AAVE)
  7. Loopring (LRC)
  8. Enjin Coin (ENJ)
  9. 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.

Komentarze