Spis treści

  • Wstęp

  • Co to jest norma ERC-20?

  • Szybkie fakty dotyczące tokena Ethereum

  • Jak generowane są tokeny ERC-20?

  • Jakie funkcje posiada ERC-20?

    • Stablecoin

    • Tokeny bezpieczeństwa

    • token użytkowy

  • Czy mogę uczestniczyć w wydobywaniu tokenów ERC-20?

  • Zalety i wady tokenów ERC-20

    • Zalety tokenów ERC-20

    • Wady tokenów ERC-20

  • Jakie są różnice między ERC-20, ERC-1155, ERC-223 i ERC-721?

  • Podsumować


Wstęp

Ethereum zostało założone przez Vitalika Buterina w 2014 roku i jest pozycjonowane jako platforma open source do uruchamiania zdecentralizowanych aplikacji (DApps). Motywacja Buterina do stworzenia tego nowego blockchainu wynikała w dużej mierze z braku elastyczności protokołu Bitcoin.

Od samego początku blockchain Ethereum przyciągnął wielu programistów, firm i przedsiębiorców, dając początek powstającej branży inteligentnych kontraktów uruchamianych przez użytkowników i aplikacji rozproszonych.

W tym artykule przyjrzymy się normie ERC-20, która stanowi ważne ramy do tworzenia tokenów. Chociaż ma zastosowanie tylko do sieci Ethereum, jest inspiracją dla innych standardów blockchain, takich jak BEP-2 Binance Chain.


Co to jest norma ERC-20?

W Ethereum pełna nazwa ERC to Ethereum Request for Comments, co oznacza prośbę o komentarz Ethereum. Te dokumenty techniczne przedstawiają standardy programowania Ethereum. Nie należy tego mylić z propozycją ulepszeń Ethereum (EIP), która jest podobna do BIP Bitcoina i stanowi propozycję ulepszeń samego protokołu. Celem ERC jest ustanowienie protokołu ułatwiającego interakcję pomiędzy aplikacjami i umowami.

Opracowany i napisany w 2015 roku przez Vitalika Buterina i Fabiana Vogelstellera, ERC-20 proponuje kolejny stosunkowo prosty format tokenów opartych na Ethereum. Tak długo, jak przestrzegany jest zarys, programiści nie muszą wymyślać koła na nowo i mogą opierać się bezpośrednio na tym, co dzieje się w całej branży.

Kiedy tworzone są nowe tokeny ERC-20, automatycznie współpracują one z usługami i oprogramowaniem obsługującym standard ERC-20 (portfele programowe, portfele sprzętowe, platformy handlowe itp.).

Należy zauważyć, że standard ERC-20 przekształcił się w EIP (w szczególności EIP-20). W tym czasie minęło kilka lat od pierwotnej, szeroko rozpowszechnionej propozycji, ale nawet po kilku latach nazwa „ERC-20” pozostała.


Szybkie fakty dotyczące tokena Ethereum

W przeciwieństwie do ETH (natywnej kryptowaluty Ethereum), tokeny ERC-20 nie są deponowane na koncie, a jedynie istnieją wewnątrz umowy, niczym niezależna baza danych. Określa zasady dotyczące tokena (tj. nazwę, symbol, podzielność) i utrzymuje listę adresów Ethereum, które odwzorowują salda użytkowników.

Aby przenieść tokeny, użytkownicy muszą wysłać transakcję do inteligentnego kontraktu, prosząc kontrakt o alokację części salda gdzie indziej. Na przykład, jeśli Alicja chce wysłać Bobowi 5000 Tokenów Akademii Binance, wywoła funkcję w odpowiednim inteligentnym kontrakcie, aby wykonać instrukcję.


Users interacting with a smart contract


Jej wezwanie obejmowało pozornie regularną transakcję Ethereum, która wpłaciła 0 ETH do kontraktu tokenowego. To wywołanie zalicza się do innych pól transakcji i określa intencję Alicji – w tym przypadku chce ona przekazać tokeny Bobowi.

Nawet bez wysyłania eteru musi uiścić określoną opłatę, aby transakcja została dodana do bloku. Jeśli nie masz ETH, powinieneś zdeponować trochę ETH przed transferem tokenów.

Poniżej znajduje się prawdziwy przykład w Etherscan: ktoś wywołuje kontrakt BUSD. Zobaczysz, że tokeny zostały przesłane i opłata została uiszczona, chociaż pole wartości pokazuje, że wysłano 0 ETH.

Następnie przyspieszamy i przyglądamy się bliżej typowej strukturze kontraktu ERC-20.


Jak generowane są tokeny ERC-20?


Illustration of an ERC-20 token being created


Zgodnie ze standardem ERC-20 w umowie należy ustawić sześć obowiązkowych funkcji: totalSupply, BalanceOf, przelew, transferFro, zatwierdzenie i dodatek. Dodatkowo można określić opcjonalne funkcje, takie jak nazwa, symbol i liczba dziesiętna. Możesz zrozumieć funkcję funkcji na podstawie nazwy. Nie martw się, jeśli jej nie rozumiesz. Przeanalizujemy ją jeden po drugim poniżej.

Poniżej znajdują się funkcje prezentowane w języku Solidity specyficznym dla Ethereum.


całkowita podaż

funkcja totalSupply() zwraca widok publiczny (uint256)

Po wywołaniu przez użytkownika powyższej funkcji zostanie zwrócona cała podaż tokenów posiadanych przez kontrakt.


saldo

funkcja BalanceOf(adres _właściciel) zwraca widok publiczny (saldo uint256)

W przeciwieństwie do totalSupply, BalanceOf używa adresów jako parametrów. Po wywołaniu system zwraca saldo tokena adresu. Pamiętaj, konta w sieci Ethereum są publiczne i przejrzyste. Możesz sprawdzić saldo dowolnego użytkownika, jeśli znasz jego adres.


przenosić

funkcja transfer(adres _to, uint256 _value) zwraca publiczne (bool sukces)

Funkcja transferu umożliwia użytkownikom przesyłanie sobie tokenów. Należy podać adres odbiorcy tokenu oraz kwotę przelewu.

Po wywołaniu transfer uruchamia zdarzenie (w tym przypadku zdarzenie „transfer”), którego podstawową funkcją jest poinformowanie łańcucha bloków, aby zawierał odwołanie do tej funkcji.


przenieść z

funkcja transferFrom(adres _od, adres _do, uint256 _wartość) zwraca publiczne (bool sukces)

Funkcja transferFrom jest wygodną alternatywą dla funkcji przesyłania, skutecznie poprawiając programowalność w aplikacjach zdecentralizowanych. Podobnie jak funkcja transferu, służy ona do przenoszenia tokenów, jednak tokeny te niekoniecznie należą do użytkownika wywołującego kontrakt.

Innymi słowy, możesz upoważnić inną osobę lub inną umowę do przeniesienia środków w Twoim imieniu. Na przykład, jeśli nie chcesz ręcznie płacić za usługę subskrypcji codziennie/co tydzień/co miesiąc, możesz pozwolić programowi wykonać pracę za Ciebie.

Zdarzenia wywołane tą funkcją są takie same jak w przypadku transferu.


zatwierdzić

funkcja zatwierdzenia (adres _spender, uint256 _wartość) zwraca publiczne (bool sukces)

Z punktu widzenia programowania, zatwierdzenie to kolejna bardzo przydatna funkcja, która ogranicza liczbę tokenów, które inteligentny kontrakt może pobrać z salda. Bez tego bieżące umowy mogą utracić ważność (lub zostać wykorzystane), a wszystkie środki są narażone na ryzyko kradzieży.

Ponownie weźmy za przykład model subskrypcji. Załóżmy, że posiadasz dużą liczbę tokenów Binance Academy i chcesz ustawić cykliczne cotygodniowe wypłaty za swój streaming DApp. Jestem zbyt zajęty czytaniem artykułów Akademii Binance, aby co tydzień tracić czas na ręczne tworzenie transakcji.

Duże saldo posiadanych tokenów Binance Academy znacznie przekracza opłaty wymagane do opłacenia subskrypcji. Aby uniemożliwić DApp wypłacenie wszystkich zasobów, możesz użyć opcji zatwierdzenia, aby ustawić limit. Zakładając, że Twoja subskrypcja kosztuje 1 token Binance Academy tygodniowo, Twoja subskrypcja będzie automatycznie opłacana przez 5 miesięcy, jeśli limit zatwierdzeń wyniesie 20 tokenów.

Jeśli program się nie powiedzie i DApp spróbuje wypłacić wszystkie środki, stracisz tylko do 20 tokenów. Chociaż utrata tokenów jest przygnębiająca, wynik jest znacznie lepszy niż utrata wszystkich aktywów.

Po wywołaniu tej funkcji, zatwierdzenie wywoła zdarzenie zatwierdzenia, podobnie jak funkcja przesyłania, zapisze dane do łańcucha bloków.


dodatek

dodatek funkcji (adres _właściciel, adres _sender) zwroty widoku publicznego (pozostało uint256)

dodatek może być używany w połączeniu z zatwierdzeniem. Jeśli do umowy przyznane są uprawnienia do zarządzania tokenem, możesz za jej pośrednictwem sprawdzić saldo wypłaty tokena. Na przykład, zakładając, że usługa subskrypcji wykorzystuje 12 z 20 zatwierdzonych tokenów, wywołanie funkcji zezwolenia zwróci łącznie 8 tokenów.


Inne opcjonalne funkcje

Wszystko omówione powyżej jest funkcją obowiązkową. Z drugiej strony nazwa, symbol i liczba dziesiętna są funkcjami opcjonalnymi, ale mogą sprawić, że ERC-20 będzie pełniejszy. Funkcje te umożliwiają odpowiednio dodanie czytelnej dla człowieka nazwy, ustawienie symbolu (np. ETH, BTC, BNB) oraz określenie liczby miejsc po przecinku, na jakie może zostać podzielony token. Na przykład tokeny używane jako waluta są bardziej podzielne, a zatem bardziej korzystne niż tokeny używane do reprezentowania własności nieruchomości.


Sprawdź ten przykład na GitHubie, aby zobaczyć, jak te elementy będą wyglądać w prawdziwej umowie.


Jakie funkcje posiada ERC-20?


Illustration of various uses of ERC-20 tokens


Podsumowując wszystkie powyższe funkcje otrzymujemy kontrakt ERC-20. Możemy sprawdzać całkowitą podaż, przeglądać salda, przesyłać środki i upoważniać inne DApps do zarządzania tokenami w naszym imieniu.

Elastyczność tokenów ERC-20 jest ogromną zaletą. Zawarta umowa nie ogranicza rozwoju, a każda ze stron może uruchomić inne funkcje i ustawić określone parametry według własnych potrzeb.


Stablecoin

Stablecoiny (tokeny powiązane z walutami fiducjarnymi) zazwyczaj korzystają ze standardu tokenów ERC-20. Wspomniana powyżej transakcja kontraktowa BUSD jest typowym przykładem i większość stablecoinów również korzysta z tej formy.

W przypadku monet stabilnych wspieranych przez główne waluty fiducjarne emitenci mogą utrzymywać rezerwy w euro, dolarach amerykańskich itp., a następnie emitować tokeny dla każdej jednostki w rezerwach. Oznacza to, że jeśli w skarbcu zostanie zdeponowanych 10 000 dolarów, wydawca może utworzyć 10 000 tokenów o wartości 1 dolara każdy.

Z technicznego punktu widzenia jest to łatwe do wdrożenia w Ethereum. Emitent po prostu zawiera kontrakt na 10 000 tokenów, a następnie rozdaje tokeny użytkownikom, obiecując, że w przyszłości będą mogli wymienić tokeny na określony procent waluty fiducjarnej.

Użytkownicy mogą używać swoich tokenów do wykonywania różnych czynności, w tym do zakupu towarów i usług oraz aplikowania do DApps. Alternatywnie wydawca może zostać poproszony o natychmiastową wymianę tych tokenów. W takim przypadku wydawca może również zniszczyć zwrócone tokeny (pozwolić im wygasnąć) i wypłacić z rezerwy równoważną ilość fiatów.

Jak wspomniano wcześniej, kontrakty rządzące tym systemem są stosunkowo proste. Jednak uruchomienie stablecoina wymaga zwrócenia uwagi na wiele innych czynników zewnętrznych (takich jak logistyka, zgodność itp.) i dużego wysiłku.


Tokeny bezpieczeństwa

Tokeny zabezpieczające są podobne do monet stabilnych i mogą nawet być całkowicie identyczne na poziomie kontraktu, ponieważ oba działają w ten sam sposób. Różnica leży w emitencie: tokeny zabezpieczające reprezentują papiery wartościowe, takie jak akcje, obligacje lub aktywa rzeczowe. Zwykle, choć nie zawsze, przyznają posiadaczowi udziały w przedsiębiorstwie lub towarze.


token użytkowy

Tokeny użytkowe są obecnie prawdopodobnie najpopularniejszym typem tokenów. W przeciwieństwie do poprzednich dwóch tokenów, tokeny użytkowe nie są poparte żadnymi rzeczywistymi aktywami. Jeśli akcje linii lotniczych reprezentują tokeny zabezpieczone aktywami, tokeny użytkowe działają jak programy dla osób często podróżujących: mają pewną funkcjonalność, ale nie mają wartości zewnętrznej. Tokeny użytkowe mogą służyć wielu potrzebom, takim jak waluta w grze, paliwo dla zdecentralizowanych aplikacji i punkty lojalnościowe.


➠ Chcesz rozpocząć swoją przygodę z kryptowalutami? Witamy na Binance, aby kupić Ethereum!


Czy mogę uczestniczyć w wydobywaniu tokenów ERC-20?

Możesz uczestniczyć w wydobywaniu Ethereum (ETH), ale tokenów nie można wydobywać – nazywamy to tworzeniem nowych tokenów. Po wejściu w życie kontraktu deweloperzy będą alokować dostawy zgodnie z planami i harmonogramami,

Zwykle odbywa się to poprzez wstępną ofertę monet (ICO), wstępną ofertę wymiany (IEO) lub ofertę tokenu zabezpieczającego (STO). Możesz natknąć się na kilka odmian tych akronimów, ale koncepcje są bardzo podobne. Inwestorzy wysyłają ether na adres kontraktu i w zamian otrzymują nowe tokeny. Zebrane środki zostaną przeznaczone na finansowanie przyszłego rozwoju projektu. Użytkownicy oczekują, że będą mogli wykorzystać swoje tokeny (natychmiast lub później) lub odsprzedać je z zyskiem w miarę rozwoju projektu.

Wydawanie tokenów niekoniecznie jest zautomatyzowane. Wiele kampanii crowdfundingowych umożliwia użytkownikom realizację płatności przy użyciu różnych walut cyfrowych (takich jak BNB, BTC, ETH i USDT), a następnie dystrybucję odpowiedniego salda na adres podany przez użytkownika.


Zalety i wady tokenów ERC-20

Zalety tokenów ERC-20

Zamienność

Tokeny ERC-20 są wymienne i wszystkie jednostki można wymieniać między sobą. Jeśli chodzi o tokeny Akademii Binance, jest tak samo, niezależnie od tego, jaką konkretną monetę posiadasz. Możesz handlować z innymi ludźmi, a tokeny działają tak samo, podobnie jak gotówka lub złoto.

Jest to idealne rozwiązanie, jeśli posiadany token ma nadzieję przekształcić się w pewnego rodzaju walutę. Tokeny o odmiennych cechach tracą swoją zamienność i nie spełniają Twoich wymagań. Może to spowodować, że niektóre tokeny będą warte mniej lub więcej niż podobne tokeny, co będzie sprzeczne z pierwotnym celem.


elastyczny

Jak omówiono w poprzednim rozdziale, tokeny ERC-20 dają ogromne możliwości dostosowywania, a rozwiązania można dostosowywać do różnych zastosowań. Przykładami mogą być wykorzystywanie jako waluta w grach, punkty lojalnościowe w programach, cyfrowe przedmioty kolekcjonerskie, a nawet reprezentowanie dzieł sztuki i własności.


bardzo popularna

ERC-20 zyskuje na popularności w branży kryptowalut, a oparty na niej projekt jest bardzo przekonujący. Liczne giełdy, portfele i inteligentne kontrakty są teraz kompatybilne z różnymi nowo wprowadzonymi tokenami. Ponadto wsparcie dla programistów i dokumentacja są dość obszerne.


Wady tokenów ERC-20

Słaba skalowalność

Jest to częsty problem wielu sieci kryptowalut i Ethereum nie jest na to odporne. W obecnej formie nie skaluje się dobrze. Wysyłanie transakcji w okresach szczytu wiąże się z wysokimi opłatami i dużymi opóźnieniami. Jeśli tokeny ERC-20 zostaną użyte i spowodują przeciążenie sieci, będzie to miało wpływ na ich dostępność.

Nie jest to problem charakterystyczny dla Ethereum, ale kompromis, którego muszą dokonać wszystkie bezpieczne systemy rozproszone. Społeczność planuje rozwiązać te problemy po migracji do Ethereum 2.0 i wdrożyć aktualizacje takie jak Ethereum Plasma i Ethereum Casper.

Przeczytaj „Skalowalność Blockchain: Sidechains i kanały płatności”, aby dowiedzieć się więcej o problemach ze skalowalnością.


Oszustwo

Chociaż nie ma nic złego w samej technologii, w pewnym sensie łatwość wydawania tokenów może być wadą. Proste tokeny ERC-20 są łatwe do utworzenia, co oznacza, że ​​każdy może to zrobić, ale z mieszanymi zamiarami.

Dlatego należy inwestować ostrożnie. Istnieje wiele piramid i programów Ponziego udających projekty typu blockchain. Przed dokonaniem inwestycji należy przeprowadzić własne badania, aby potwierdzić, czy dana możliwość inwestycyjna jest uzasadniona.

Jakie są różnice między ERC-20, ERC-1155, ERC-223 i ERC-721?

ERC-20 był pierwszym (i zdecydowanie najpopularniejszym) standardem tokena Ethereum, ale nie jedynym. Na przestrzeni lat opracowano wiele innych standardów. Większość z nich to ulepszone standardy ERC-20, inne starają się osiągnąć zupełnie inne cele.

Kilka nietypowych standardów ma zastosowanie do tokenów niewymiennych (NFT). W niektórych przypadkach unikalne tokeny o różnych właściwościach mogą sprawić, że będziesz beneficjentem. Jeśli chcesz tokenizować unikalne dzieła sztuki, zasoby w grze itp., jeden z tego rodzaju kontraktów może być bardziej atrakcyjny.

Na przykład standard ERC-721 jest używany w bardzo popularnej aplikacji DApp CryptoKitties. Niniejsza umowa zapewnia interfejs API umożliwiający użytkownikom tworzenie własnych, niezamiennych tokenów i kodowanie metadanych (obrazów, opisów itp.).

Standard ERC-1155 można postrzegać jako ulepszenie w stosunku do ERC-721 i ERC-20. Obsługuje zarówno zamienne, jak i niezmienne standardy tokenów w ramach jednej umowy.

Inne opcje, takie jak ERC-223 lub ERC-621, mają na celu poprawę użyteczności. Ten pierwszy wdraża zabezpieczenia zapobiegające przypadkowym transferom tokenów. Ta ostatnia zapewnia dodatkową funkcjonalność zwiększania lub zmniejszania podaży tokenów.

Aby dowiedzieć się więcej na temat NFT, przeczytaj Przewodnik po przedmiotach kolekcjonerskich i tokenach niepodlegających wymianie (NFT).


Podsumować

Standard ERC-20 od wielu lat jest dominującym graczem w przestrzeni kryptowalut. Powody są oczywiste: standard jest stosunkowo prosty i każdy może wdrożyć proste kontrakty odpowiadające różnym potrzebom (tokeny użytkowe, monety stablecoin itp.). Niemniej jednak w ERC-20 brakuje pewnych cech innych standardów, ale okaże się, czy inne rodzaje umów mogą zająć jego miejsce.