Úvod
Ethereum založil Vitalik Buterin v roce 2014 a staví se jako open-source platforma pro spouštění decentralizovaných aplikací (DApps). Mnoho Buterinových motivací pro vytvoření nového blockchainu pramenilo z nedostatečné flexibility bitcoinového protokolu.
Od svého spuštění přitahuje blockchain Ethereum vývojáře, podniky a podnikatele a vytváří rostoucí průmysl uživatelů spouštějících chytré smlouvy a distribuované aplikace.
V tomto článku se podíváme na standard ERC-20, důležitý rámec pro vytváření tokenů. I když je specifický pro síť Ethereum, rámec také inspiroval další standardy blockchainu, jako je BEP-2 Binance Chain.
Co je standard ERC-20?
V Ethereu je ERC Ethereum Request for Comments. Jedná se o technické dokumenty, které nastiňují standardy pro programování na Ethereu. Nesmí se zaměňovat s návrhy na vylepšení Etherea (EIP), které, stejně jako bitcoinové BIP, navrhují vylepšení samotného protokolu. Cílem ERC je namísto toho vytvořit konvence, které usnadní vzájemnou interakci aplikací a smluv.
ERC-20, jehož autory jsou Vitalik Buterin a Fabian Vogelsteller v roce 2015, navrhuje relativně jednoduchý formát pro tokeny založené na Ethereu. Při dodržení osnovy nemusí vývojáři znovu vynalézat kolo. Místo toho mohou stavět na základech, které se již používají v celém odvětví.
Jakmile jsou nové tokeny ERC-20 vytvořeny, jsou automaticky interoperabilní se službami a softwarem podporujícím standard ERC-20 (softwarové peněženky, hardwarové peněženky, burzy atd.).
Je třeba poznamenat, že standard ERC-20 byl vyvinut do EIP (konkrétně EIP-20). Stalo se tak několik let po původním návrhu kvůli jeho širokému použití. I po letech však název „ERC-20“ zůstal zachován.
Rychlá rekapitulace tokenů Ethereum
Na rozdíl od ETH (nativní kryptoměny Ethereum) nejsou tokeny ERC-20 drženy účty. Tokeny existují pouze uvnitř smlouvy, která je jako samostatná databáze. Specifikuje pravidla pro tokeny (tj. název, symbol, dělitelnost) a vede seznam, který mapuje zůstatky uživatelů na jejich Ethereum adresy.
Aby uživatelé mohli přesunout tokeny, musí do smlouvy odeslat transakci a požádat ji o přidělení části jejich zůstatku jinam. Pokud chce například Alice poslat 5 000 BinanceAcademyTokenů Bobovi, zavolá funkci v inteligentní smlouvě BinanceAcademyToken a požádá ji, aby tak učinila.
Její volání je obsaženo v tom, co vypadá jako běžná transakce Ethereum, která platí 0 ETH do tokenové smlouvy. Hovor je zahrnut v dalším poli transakce, které určuje, co chce Alice udělat – v našem případě převést tokeny Bobovi.
I když neposílá ether, stále musí zaplatit poplatek v něm uvedený, aby byla její transakce zahrnuta do bloku. Pokud nemá žádné ETH, musí nějaké získat, než přenese tokeny.
Zde je reálný příklad výše uvedeného na Etherscan: někdo volá na smlouvu BUSD. Můžete vidět, že byly převedeny tokeny a byl zaplacen poplatek, i když pole Hodnota ukazuje, že bylo odesláno 0 ETH.
Nyní, když jsme v rychlosti, pojďme se podívat pod pokličku, abychom lépe porozuměli struktuře typické smlouvy ERC-20.
Jak se vytvářejí tokeny ERC-20?
Aby vaše smlouva vyhovovala ERC-20, musí obsahovat šest povinných funkcí: totalSupply, balanceOf, transfer, transferFrom, schvalování a povolenka. Kromě toho můžete zadat volitelné funkce, jako je název, symbol a desetinné číslo. Z jejich názvů by vám mohlo být jasné, co tyto funkce dělají. Pokud ne, nebojte se – rozebereme je.
Níže jsou funkce, jak se objevují v účelovém jazyce Solidity společnosti Ethereum.
totalSupply
funkce totalSupply() public view vrací (uint256)
Při volání uživatelem vrátí výše uvedená funkce celkovou zásobu tokenů, které smlouva drží.
zůstatek
funkce balanceOf(adresa _owner) veřejné zobrazení vrací (uint256 balance)
Na rozdíl od totalSupply, balanceOf přebírá parametr (adresu). Když je zavolán, vrátí zůstatek tokenů této adresy. Pamatujte, že účty v síti Ethereum jsou veřejné, takže se můžete dotázat na zůstatek libovolného uživatele, pokud znáte adresu.
převod
funkce transfer(adresa _to, uint256 _value) veřejné návraty (boolův úspěch)
transfer vhodně přenáší tokeny z jednoho uživatele na druhého. Zde zadáte adresu, na kterou chcete odeslat, a částku, kterou chcete převést.
Když je zavolán, přenos spustí něco, čemu se říká událost (v tomto případě přenos události), která v podstatě říká blockchainu, aby na něj zahrnul odkaz.
přenéstZ
function transferFrom(adresa _from, adresa _to, uint256 _value) veřejné návraty (boolův úspěch)
Funkce transferFrom je šikovná alternativa k přenosu, která umožňuje o něco větší programovatelnost v decentralizovaných aplikacích. Stejně jako převod se používá k přesunu tokenů, ale tyto tokeny nemusí nutně patřit osobě, která smlouvu volá.
Jinými slovy, můžete někoho zmocnit – nebo jinou smlouvu – k převodu prostředků vaším jménem. Možný případ použití zahrnuje placení za služby založené na předplatném, kde nechcete ručně posílat platbu každý den/týden/měsíc. Místo toho necháte program, aby to udělal za vás.
Tato funkce spustí stejnou událost jako přenos.
Schválit
funkce schvalovat (adresa _spender, uint256 _value) veřejné návraty (boolův úspěch)
Schválit je další užitečná funkce z hlediska programovatelnosti. Pomocí této funkce můžete omezit počet tokenů, které může chytrá smlouva vybrat z vašeho zůstatku. Bez něj riskujete, že smlouva nebude fungovat (nebo bude zneužita) a ukradnete všechny vaše prostředky.
Vezměte si znovu náš příklad modelu předplatného. Předpokládejme, že máte obrovské množství BinanceAcademyTokenů a chcete nastavit týdenní opakující se platby do streamovací DApp. Jste zaneprázdněni čtením obsahu Binance Academy dnem i nocí, takže nechcete každý týden věnovat čas ručnímu vytváření transakce.
Máte obrovský zůstatek BinanceAcademyTokenů, který daleko přesahuje to, co je potřeba k zaplacení předplatného. Chcete-li zabránit, aby je DApp vyčerpal všechny, můžete nastavit limit se schválením. Předpokládejme, že vaše předplatné stojí jeden BinanceAcademyToken týdně. Pokud jste omezili schválenou hodnotu na dvacet tokenů, můžete si nechat předplatné platit automaticky po dobu pěti měsíců.
V nejhorším případě, pokud se DApp pokusí vybrat všechny vaše prostředky nebo pokud je nalezena chyba, můžete ztratit pouze dvacet tokenů. Možná to není ideální, ale rozhodně je to přitažlivější než přijít o všechny své držby.
Po zavolání, schválit, spustí událost schválení. Stejně jako přenosová událost zapisuje data do blockchainu.
příspěvek
funkce povolena (adresa _vlastník, adresa _utrácitel) návraty veřejného pohledu (zbývá uint256)
příspěvek lze použít ve spojení se schválením. Když jste udělili smlouvě povolení ke správě vašich tokenů, můžete to použít ke kontrole, kolik jich ještě může stáhnout. Pokud například vaše předplatné spotřebovalo dvanáct z dvaceti schválených tokenů, volání funkce povolenek by mělo vrátit celkem osm.
Volitelné funkce
Dříve diskutované funkce jsou povinné. Na druhou stranu název, symbol a desetinné číslo nemusí být zahrnuty, ale mohou vaši smlouvu ERC-20 udělat o něco hezčí. Respektive umožňují přidat pro člověka čitelný název, nastavit symbol (tj. ETH, BTC, BNB) a určit, na kolik desetinných míst jsou tokeny dělitelné. Například tokeny, které se používají jako měny, mohou mít větší užitek z toho, že jsou lépe dělitelné než tokeny, které představují vlastnictví nemovitosti.
Podívejte se na tento příklad na GitHubu, abyste viděli tyto prvky ve skutečné smlouvě.
Co umí tokeny ERC-20?
Spojením všech výše uvedených funkcí jsme získali smlouvu ERC-20. Můžeme se dotazovat na celkovou dodávku, kontrolovat zůstatky, převádět prostředky a udělovat oprávnění jiným DApps, aby za nás spravovaly tokeny.
Velká část přitažlivosti tokenů ERC-20 je jejich flexibilita. Uvedené konvence neomezují vývoj, takže strany mohou implementovat další funkce a nastavit specifické parametry tak, aby vyhovovaly jejich potřebám.
Stablecoiny
Stablecoiny (tokeny navázané na fiat měny) často používají tokenový standard ERC-20. Jedním z příkladů je transakce se smlouvou BUSD, o které jsme se zmiňovali dříve, a většina hlavních stablecoinů je také dostupná v tomto formátu.
Pro typický nekrytý stablecoin má emitent rezervy v eurech, dolarech atd. Poté za každou jednotku ve své rezervě vydá token. To znamená, že pokud by bylo 10 000 $ uzamčeno v trezoru, emitent by mohl vytvořit 10 000 tokenů, každý směnitelný za 1 $.
To je v Ethereu technicky vzato docela snadné implementovat. Emitent jednoduše zahájí smlouvu s 10 000 tokeny. Poté je rozdělí uživatelům s příslibem, že později mohou tokeny vyměnit za úměrnou částku fiat měny.
Uživatelé mohou se svými tokeny provádět řadu věcí – mohou nakupovat zboží a služby nebo je používat v DApps. Případně mohou požádat emitenta, aby je okamžitě vyměnil. V takovém případě emitent spálí vrácené tokeny (učiní je nepoužitelnými) a vybere správné množství fiatů ze svých rezerv.
Smlouva, kterou se tento systém řídí, jak již bylo zmíněno, je poměrně zjednodušená. Spuštění stablecoinu však vyžaduje hodně práce na externích faktorech, jako je logistika, dodržování předpisů atd.
Bezpečnostní tokeny
Bezpečnostní tokeny jsou podobné stablecoinům. Na úrovni smlouvy by obě mohly být dokonce totožné, protože fungují stejným způsobem. Rozdíl nastává na úrovni emitenta. Bezpečnostní tokeny představují cenné papíry, jako jsou akcie, dluhopisy nebo fyzická aktiva. Často (ačkoli tomu tak není vždy) udělují držiteli nějaký podíl v podniku nebo zboží.
Užitkové tokeny
Užitkové tokeny jsou možná nejběžnější typy tokenů, které se dnes vyskytují. Na rozdíl od předchozích dvou nabídek nejsou ničím podloženy. Pokud jsou tokeny kryté aktivy jako akcie letecké společnosti, pak jsou tokeny užitných věcí jako programy pro časté cestující: plní funkci, ale nemají žádnou externí hodnotu. Užitkové tokeny mohou uspokojit nesčetné množství případů použití, slouží jako měna ve hře, palivo pro decentralizované aplikace, věrnostní body a mnoho dalšího.
➠ Chcete začít s kryptoměnou? Kupte si ether na Binance!
Můžete těžit tokeny ERC-20?
Můžete těžit éter (ETH), ale žetony nejsou těžitelné – říkáme, že jsou raženy, když jsou vytvářeny nové. Když je smlouva spuštěna, vývojáři distribuují dodávky podle svých plánů a plánu.
Obvykle se to děje prostřednictvím počáteční nabídky mincí (ICO), počáteční nabídky výměny (IEO) nebo nabídky bezpečnostního tokenu (STO). Můžete se setkat s variacemi těchto zkratek, ale tyto pojmy jsou si dost podobné. Investoři posílají ether na smluvní adresu a na oplátku dostávají nové tokeny. Vybrané peníze jsou použity na financování dalšího rozvoje projektu. Uživatelé očekávají, že budou moci své tokeny použít (buď okamžitě nebo později) nebo je prodat za účelem zisku, jak se projekt vyvíjí.
Distribuce tokenů nemusí být automatizována. Mnoho crowdfundingových akcí umožňuje uživatelům platit řadou různých digitálních měn (jako jsou BNB, BTC, ETH a USDT). Příslušné zůstatky jsou pak přiřazeny na adresy poskytnuté uživateli.
Výhody a nevýhody tokenů ERC-20
Výhody tokenů ERC-20
Zaměnitelný
Tokeny ERC-20 jsou zastupitelné – každá jednotka je zaměnitelná s jinou. Pokud byste měli BinanceAcademyToken, nezáleželo by na tom, jaký konkrétní token máte. Mohli byste je vyměnit za někoho jiného a stále by byly funkčně totožné, stejně jako hotovost nebo zlato.
To je ideální, pokud má váš token za cíl být nějakou měnou. Nechtěli byste jednotlivé jednotky s odlišitelnými vlastnostmi, díky nimž by byly nezaměnitelné. To by mohlo způsobit, že některé tokeny budou více – nebo méně – hodnotné než jiné, což podkope jejich účel.
Flexibilní
Jak jsme prozkoumali v předchozí části, tokeny ERC-20 jsou vysoce přizpůsobitelné a lze je přizpůsobit mnoha různým aplikacím. Mohou být například použity jako herní měna, ve věrnostních bodových programech, jako digitální sběratelské předměty nebo dokonce k reprezentaci výtvarného umění a vlastnických práv.
Oblíbený
Popularita ERC-20 v kryptoměnovém průmyslu je velmi přesvědčivým důvodem, proč jej použít jako plán. Existuje velké množství burz, peněženek a chytrých smluv, které jsou již kompatibilní s nově spuštěnými tokeny. A co víc, podpora pro vývojáře a dokumentace je bohatá.
Nevýhody ERC-20 tokenů
Škálovatelnost
Stejně jako u mnoha sítí kryptoměn, ani Ethereum není imunní vůči rostoucím bolestem. Ve své současné podobě se špatně škáluje – pokus o odeslání transakce ve špičce má za následek vysoké poplatky a zpoždění. Pokud spustíte token ERC-20 a síť se zahltí, může to ovlivnit její použitelnost.
Toto není problém exkluzivně pro Ethereum. Spíše je to nutný kompromis v bezpečných distribuovaných systémech. Komunita plánuje vyřešit tyto problémy při migraci na Ethereum 2.0, která bude implementovat upgrady jako Ethereum Plasma a Ethereum Casper.
Přečtěte si další informace o problémech se škálovatelností v Blockchain Scalability: Sidechains a platební kanály.
podvody
I když nejde o problém se samotnou technologií, snadnost, s jakou lze token spustit, lze v některých ohledech považovat za nevýhodu. Vytvoření jednoduchého tokenu ERC-20 vyžaduje minimální úsilí, což znamená, že by to mohl udělat kdokoli – v dobrém i ve zlém.
Proto byste měli být opatrní s tím, do čeho investujete. Existuje řada pyramidových a Ponziho schémat maskovaných jako blockchainové projekty. Před investováním si proveďte vlastní průzkum, abyste došli k vlastním závěrům o tom, zda je příležitost legitimní.
ERC-20, ERC-1155, ERC-223, ERC-721 – jaký je rozdíl?
ERC-20 byl první (a doposud nejoblíbenější) tokenový standard Ethereum, ale v žádném případě není jediný. V průběhu let se objevilo mnoho dalších, které buď navrhovaly vylepšení ERC-20, nebo se pokoušely dosáhnout zcela jiných cílů.
Některé z méně běžných standardů jsou standardy používané v nezastupitelných tokenech (NFT). Někdy váš případ použití skutečně těží z toho, že máte jedinečné tokeny s různými atributy. Pokud byste chtěli tokenizovat jedinečné umělecké dílo, herní aktivum atd., jeden z těchto typů smlouvy může být přitažlivější.
Standard ERC-721 byl například použit pro nesmírně populární CryptoKitties DApp. Taková smlouva poskytuje uživatelům API pro ražení jejich vlastních nezaměnitelných tokenů a pro kódování metadat (obrázků, popisů atd.).
Standard ERC-1155 lze považovat za vylepšení ERC-721 i ERC-20. Nastiňuje standard, který podporuje zastupitelné i nezaměnitelné tokeny ve stejné smlouvě.
Další možnosti jako ERC-223 nebo ERC-621 mají za cíl zlepšit použitelnost. První z nich implementuje zabezpečení, aby se zabránilo náhodným přenosům tokenů. Ten přidává další funkce pro zvýšení a snížení zásoby tokenů.
Pro více informací o tématu NFT se určitě podívejte na Průvodce kryptografickými sběratelskými předměty a nefunkčními tokeny (NFT).
Závěrečné myšlenky
Standard ERC-20 dominuje prostoru kryptoaktiv po léta a není těžké pochopit proč. S relativní lehkostí může kdokoli nasadit jednoduchou smlouvu tak, aby vyhovovala široké škále případů použití (utilitní tokeny, stablecoiny atd.). To znamená, že ERC-20 postrádá některé funkce přivedené k životu jinými standardy. Zda nahradí další typy smluv, se teprve uvidí.