Čo sú ERC20 tokeny?
Pre úplné pochopenie čo sú ERC20 tokeny, očakávame, že ste znalý konceptom Ethereum blockchainu, smart contracts, DApps, a ICO.
Rýchle zhrnutie: Ethereum blochchain je distribuovaná, open-source platforma postavená na blockchaine. Táto platforma, sieť Ethereum, prevádzkuje decentralizované aplikácie (DApps), ktoré sú vykonávané skrz smart contracts. Všetky transakcie na Ethereum sieti, spolu s výpočtovými požiadavkami na vykonávanie smart contracts, sú vyplácané v kryptomene Ether.
Niektoré, nie však všetky, DApps vyžadujú dodatočnú menu. Tieto DApps preto vytvoria vlastnú menu, token, ktorý používajú na vyberanie prostriedkov od investorov v procese zvanom Initial Coin Offering (ICO).
Ethereum blockchain je postavený pre podporu DApps rôznych druhov. Okrem DApps pre tvorbu, správu a posielanie prostriedkov, existujú i DApps pre platby na internete, kryptomenové debetné karty, či hra s virtuálnymi mačkami.
Všetky tieto DApps skutočne existujú, a 99% všetkých DApps využíva rovnaké ERC20 tokeny.
ERC20 token (Ethereum Request for Comment), je štandartný zoznam programovacích pravidiel pre tokeny postavené na Ethereum blochchaine. Dodržaním tohto programovacieho protokolu, ktorý pozostáva zo 6 funkcií vývojári a ich DApps sú schopné efektívne a jednoducho pracovať so smart contracts.
Predstavujeme Solidity
Najpopulárnejší Ethereum klient je napísaný v Google Go programovacom jazyku, vývojári si poväčšinou vyberajú tie jazyky, ktoré sú pre smart contracts priateľskejšie. Preto si zväčša volia jazyky ako Vyper, Bamboo, Serpent a Solidity.
Zvyšok článku sa bude venovovať Solidity programovaciemu jazyku a jeho syntaxe.
Solidity je programovací jazyk orientovaný na prácu a implementáciu smart contracts. Syntax Solidity, pre technicky zdatnejších, je kombináciou konceptov z Javascript, Python, a C programovacích jazykov. Pre viac info o Solidity navštívte https://solidity.readthedocs.io/en/develop/#
Sprievodca rozhraním ERC20
Je na čase ponoriť sa trochu do hĺbky a zistiť, čo je to presne ten ERC20 štandard a ako funguje. Budeme sa mu venovať z pohľadu Solidity programovacieho jazyku.
Na platforme Ethereum všetko závisí od smart contracts. Dokumentácia Solidity definuje kontrakty ako “kolekciu kódov a dát, ktoré prináležia určitej, špecifickej adrese na Ethereum blockchaine.” Ethereum kontrakty podporujú dedičnosť, tj. jeden kontrakt môže byť príkladom druhého.
Nasledujúc túto logiku, abstraktný kontrakt, ktorý je použitý len pre dedenie, môže byť tiež použitý ako záruka, nakoľko bude definovať čo musí nový kontrakt obsahovať, aby bol funkčný. Tieto abstraktné kontrakty sú tiež známe ako interface kontrakty.
ERC20 štandard je interface kontrakt, ktorý pozostáva zo 6 funkcií, ktoré si teraz predstavíme
Allowance
Funkcia Allowance umožňuje dvom adresám vytvoriť opakovaný jednosmerný transakčný kanál. Adresa Vlastníka a adresa Príjmateľa sú definované ako dve peňaženky, ktoré sa podieľajú na opakovaných transakciách. Presnejšie, Prríjmateľ bude príjmať určitú sumu z peňaženky Vlastníka v určitom intervale- obe tieto premenné musia byť definované.
Approve
Táto funkcia úzko súvisí s predošlou. Umožňuje totiž dvom adresám opakovane uskutočňovať jednosmerné transakcie. Approve je štandartná, jednoduchá funkcia, ktorá majiteľovi peňaženky umožňuje oprávniť transakciu, ktorú uskutočňuje. Táto funkcia vyžaduje dva vstupy, adresu príjmateľa a množstvo tokenov, ktoré má prijať. Výstup pošle booleanovskú hodnotu (0 alebo 1), ktorá určí, či bola transakcia povolená.
BalanceOf
Najjednoduchšie povedané, táto funkcia príjma vstup z adresy na blockchaine, a vracia numerický výstup, ktorý udáva počet tokenov na danom účte. Ethereum blockchain je verejný, preto si ktokoľvek môže zistiť, koľko tokenov sa nachádza na ľubovoľnom účte.
TotalSupply
Táto funkcia je anonymný konštruktor, ktorá bola spustená iba raz, a to na úplnom začiatku pri spustené Ethereum siete. Funkcia, ako už z názvu vyplýva, udáva konečný počet tokenov, ktoré môžu existovať na sieti.
Transfer
Funkcia Transfer je najdôležitejšou funkciou, akú ERC20 tokeny majú. Definuje a implementuje priame presuny tokenov medzi účtami. Nakoľko túto funkciu iniciujú vlastníci peňaženiek, vyžaduje iba dva parametre. Príjmateľovu adresu a množstvo tokenov, ktoré chce odosielateľ poslať. Výstup tejto funkcie je booleanovská hodnota, ktorá určuje čí sa transakcia uskutoční.
TransferFrom
Posledná funkcia, TransferFrom, umožňuje smart kontraktom uskutočniť transakciu na základe požiadaviek majiteľa peňaženky. Nemýlte si to však s predošlou funkciou. Tá slúži len na priame transakcie. Táto funkcia však slúži pre stanovovanie podmienok, pri ktorých sa môže transakcia uskutočniť. Napríklad transakcie na burze, kupovanie a predaj tokenov pri určitej cene sú vykonávané touto funkciou.
TransferFrom funkcia má tri základné vstupné parametre, adresu odosielateľa, príjemcu, a množstov tokenov, ktoré budú prevedené.
Záver
Šesť funkcií, ktoré sme vymenovali, je šesť základných funkcií, ktoré sa nachádzajú v 99% ERC20 tokenov. Okrem pár výnimiek (Golem), sa môžu vývojári vždy spoľahnúť, že pri práci s ERC20 tokenmi na Ethereum blockchaine, budú tieto funkcie pre nich dostupné. To im značne uľahčí prácu pri programované smart kontraktov a interakcii s nimi.