ERC-20 tokenite tutvustus
Avaleht
Artiklid
ERC-20 tokenite tutvustus

ERC-20 tokenite tutvustus

Keskmine
Avaldatud Jul 31, 2020VĂ€rskendatud Dec 28, 2022
12m

Sissejuhatus

Ethereumi asutas Vitalik Buterin 2014. aastal, positsioneerides end avatud lÀhtekoodiga platvormina detsentraliseeritud rakenduste (DAppide) kÀivitamiseks. Paljud Buterini motivatsioonid uue plokiahela loomiseks tulenesid Bitcoini protokolli vÀhesest paindlikkusest.

Alates selle kÀivitamisest on Ethereumi plokiahel meelitanud ligi arendajaid, ettevÔtteid ja ettevÔtjaid, tekitades kasvavat kasutajate tööstust, kes kÀivitavad nutilepinguid ja hajutatud rakendusi.

Selles artiklis vaatleme ERC-20 standardit, mis on tokenite loomise oluline raamistik. Kuigi see on Ethereumi vÔrgul spetsiifiline, inspireeris see raamistik ka teisi plokiahela standardeid, nÀiteks Binance Chaini BEP-2.


Mis on ERC-20 standard?

Ethereumis on ERC Ethereumi kommentaaritaotlus – Ethereum Request for Comments. Need on tehnilised dokumendid, mis kirjeldavad Ethereumis programmeerimise standardeid. Neid ei tohi segi ajada Ethereumi tĂ€iustamisettepanekutega (Ethereum Improvement Proposals – EIP), mis sarnaselt Bitcoini BIP-idega soovitavad parandada protokolli ennast. Selle asemel pĂŒĂŒavad ERC-d kehtestada kokkuleppeid, mis hĂ”lbustavad rakenduste ja lepingute omavahelist suhtlemist.

Vitalik Buterin ja Fabian Vogelstelleri poolt 2015. aastal loodud ERC-20 pakub Ethereumil pĂ”hinevate tokenite jaoks suhteliselt lihtsat vormingut. JĂ€rgides ĂŒlevaadet, ei pea arendajad uuesti jalgratast leiutama. Selle asemel saavad nad rajada tööstuses juba arendatud vundamendi peale.

Kui uued ERC-20 tokenid on loodud, on need automaatselt koostalitlusvÔimelised ERC-20 standardit toetavate teenuste ja tarkvaraga (tarkvara rahakotid, riistvara rahakotid, börsid jne).

Tuleb mĂ€rkida, et ERC-20 standard töötati vĂ€lja EIP-ks (tĂ€psemalt EIP-20). See juhtus paar aastat pĂ€rast esialgset ettepanekut selle laialdase kasutamise tĂ”ttu. Kuid isegi aastaid hiljem on nimi „ERC-20“ jÀÀnud.


LĂŒhikokkuvĂ”te Ethereumi tokenitest

Erinevalt ETH-st (Ethereumi natiivne krĂŒptoraha) ei hoita ERC-20 tokeneid kontodel. Tokenid eksisteerivad ainult lepingus, mis on nagu iseseisev andmebaas. See mÀÀrab reeglid tokenitele (st nimi, sĂŒmbol, jagatavus) ja peab nimekirja, mis seob kasutajate saldod nende Ethereumi aadressidega.

Tokenite teisaldamiseks peavad kasutajad saatma lepingule tehingu, milles palutakse osa nende saldost mujale eraldada. NÀiteks kui Alice soovib Bobile saata 5000 BinanceAcademyTokenit, kutsub ta vÀlja funktsiooni BinanceAcademyTokeni nutilepingus, paludes tal seda teha.


Kasutajad, kes suhtlevad nutilepinguga


Tema taotlus sisaldub selles, mis nĂ€ib olevat tavaline Ethereumi tehing, mille eest makstakse tokeni lepingu eest 0 ETH. Taotlus sisaldub tehingus lisavĂ€ljal, mis mÀÀrab, mida Alice teha tahab – antud juhul kanda tokenid Bobile.

Kuigi ta ei saada etherit, peab ta siiski maksma selles sisalduvat teenustasu, et tema tehing plokki kaasata. Kui tal pole ETH-d, peab ta enne tokenite ĂŒlekandmist seda hankima.

Siin on nĂ€ide ĂŒlaltoodust Etherscanis: keegi esitab taotluse BUSD lepingule. NĂ€ed, et tokenid on ĂŒle kantud ja tasu on makstud, kuigi vĂ€ljal VÀÀrtus on nĂ€idatud, et saadetud on 0 ETH-d.

NĂŒĂŒd, kui oleme kursis, heidame pilgu kapoti alla, et paremini mĂ”ista tĂŒĂŒpilise ERC-20 lepingu struktuuri. 


Kuidas luuakse ERC-20 tokeneid?


Illustratsioon loomisel olevast ERC-20 tokenist


Et olla ERC-20-ga ĂŒhilduv, peab sinu leping sisaldama kuut kohustuslikku funktsiooni: totalSupply, balanceOf, transfer, transferFrom, approve ja allowance. Lisaks saad mÀÀrata valikulisi funktsioone, nagu name, symbol ja decimal. Nende funktsioonide nimede pĂ”hjal vĂ”ib olla selge, mida need funktsioonid teevad. Kui ei, siis Ă€ra muretse – me hakkame neid lahkama. 

Allpool on toodud funktsioonid, nagu need kuvatakse Ethereumi spetsiaalselt loodud Solidity keeles.


totalSupply

function totalSupply() public view returns (uint256)

Kui kasutaja seda esile kutsub, tagastab ĂŒlaltoodud funktsioon lepingus sisalduvate tokenite kogupakkumise.


balanceOf 

function balanceOf(address _owner) public view returns (uint256 balance)

Erinevalt totalSupplyst vÔtab balanceOf parameetri (aadressi). Selle kutsumisel tagastab see selle aadressi tokeni varade saldo. Pea meeles, et Ethereumi vÔrgus olevad kontod on avalikud, nii et saad teha mis tahes kasutaja saldo kohta pÀringu, kui tead selle aadressi.


transfer

function transfer(address _to, uint256 _value) public returns (bool success)

transfer asjakohaselt kannab tokenid ĂŒhelt kasutajalt teisele. Siin sisestad aadressi, kuhu soovid saata ja ĂŒlekantava summa.

Kutsumisel kĂ€ivitab transfer selle, mida nimetatakse sĂŒndmuseks event (antud juhul sĂŒndmuse ĂŒlekandmine), mis pĂ”himĂ”tteliselt kĂ€sib plokiahelal lisada sellele viite.


transferFrom

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)

Funktsioon transferFrom on mugav alternatiiv funktsioonile transfer, mis vÔimaldab detsentraliseeritud rakendustes veidi rohkem programmeeritavust. Sarnaselt transferiga kasutatakse seda tokenite teisaldamiseks, kuid need ei pea tingimata kuuluma lepingu esile kutsujale. 

TeisisĂ”nu, saad volitada kedagi – vĂ”i teist lepingut – sinu nimel raha ĂŒle kandma. VĂ”imalik kasutusjuhtum on liitumispĂ”histe teenuste eest tasumine, mille puhul ei soovita iga pĂ€ev/nĂ€dal/kuu kĂ€sitsi makset saata. Selle asemel lased programmil seda sinu eest teha.

See funktsioon kĂ€ivitab sama sĂŒndmuse nagu funktsioon transfer.


approve

function approve(address _spender, uint256 _value) public returns (bool success)

approve on programmeeritavuse seisukohalt veel ĂŒks kasulik funktsioon. Selle funktsiooniga saad piirata tokenite arvu, mida nutileping vĂ”ib sinu saldolt vĂ€lja vĂ”tta. Ilma selleta on sul oht, et leping töötab valesti (vĂ”i vĂ”idakse seda Ă€ra kasutada) ja see varastab kogu sinu raha. 

VÔtame jÀlle nÀite tellimismudelist. Oletame, et sul on tohutul hulgal BinanceAcademyTokeneid ja soovid seadistada iganÀdalasi korduvaid makseid voogesituse DAppile. Oled hÔivatud Binance Academy sisu lugemisega pÀeval ja öösel, nii et sa ei soovi iga nÀdal aega kulutada tehingu kÀsitsi loomiseks.

Sul on tohutu BinanceAcademyTokenite saldo, mis ĂŒletab tunduvalt tellimuse eest tasumiseks vajaliku summa. Selleks, et DApp ei tĂŒhjendaks kogu sinu saldot, saad mÀÀrata piirangu funktsiooniga approve. Oletame, et sinu tellimus maksab ĂŒhe BinanceAcademyTokeni nĂ€dalas. Kui sead heakskiidetud vÀÀrtuse ĂŒlempiiriks kakskĂŒmmend tokenit, vĂ”id saada oma tellimuse viieks kuuks automaatselt tasutud.

Halvimal juhul, kui DApp ĂŒritab kogu sinu raha vĂ€lja vĂ”tta vĂ”i kui ilmneb viga, vĂ”id kaotada vaid kakskĂŒmmend tokenit. See ei pruugi olla ideaalne, kuid kindlasti ahvatlevam kui kogu oma hoiuse kaotamine.

Kutsumisel kĂ€ivitab approve kinnitussĂŒndmuse. Sarnaselt ĂŒlekandesĂŒndmusega kirjutab see andmed plokiahelasse.


allowance 

function allowance(address _owner, address _spender) public view returns (uint256 remaining)

Funktsiooni allowance saab kasutada koos funktsiooniga approve. Kui oled andnud lepingule loa oma tokeneid hallata, vĂ”id seda kasutada selleks, et kontrollida, kui palju see vĂ”ib veel vĂ€lja vĂ”tta. NĂ€iteks kui sinu tellimus on sinu kahekĂŒmnest heakskiidetud tokenist Ă€ra kasutanud kaksteist, peaks allowance'i kutsumine tagastama kokku kaheksa.


Valikulised funktsioonid

Eelnevalt kĂ€sitletud funktsioonid on kohustuslikud. Teisest kĂŒljest ei pea funktsioone name, symbol ja decimal lisama, kuid need vĂ”ivad sinu ERC-20 lepingu pisut ilusamaks muuta. Vastavalt vĂ”imaldavad need lisada inimesele loetava nime, mÀÀrata sĂŒmboli (st ETH, BTC, BNB) ja mÀÀrata, mitme kĂŒmnendkohaga on tokenid jagatavad. NĂ€iteks vĂ”ivad valuutadena kasutatavad tokenid rohkem jagatavast kasu saada kui token, mis tĂ€histab kinnisvara omandiĂ”igust.


Vaata seda nÀidet GitHubis, et nÀha neid elemente pÀris lepingus.


Mida saavad ERC-20 tokenid teha?


Illustratsioon ERC-20 tokeni erinevatest kasutusviisidest


Pannes kokku kĂ”ik ĂŒlaltoodud funktsioonid saame ERC-20 lepingu. Saame teha pĂ€ringu kogupakkumise kohta, kontrollida saldosid, raha ĂŒle kanda ja anda teistele DAppidele loa meie eest tokenite haldamiseks.

Suur osa ERC-20 tokenite atraktiivsusest on nende paindlikkus. VÀljatoodud kokkulepped ei piira arendamist, nii et osapooled saavad rakendada lisafunktsioone ja mÀÀrata oma vajadustele vastavad konkreetseid parameetreid.


Stabiilsusraha

Stabiilsusraha (fiat-rahaga seotud tokenid) kasutavad sageli ERC-20 tokeni standardit. BUSD-lepingu tehing, millele me varem viitasime, on ĂŒks nĂ€ide ja enamik suuremaid stabiilsusrahasid on saadaval ka selles vormingus.

TĂŒĂŒpilise fiat-tagatud stabiilsusraha puhul haldab vĂ€ljastaja eurode, dollarite jne reserve. SeejĂ€rel vĂ€ljastavad nad iga reservis oleva ĂŒksuse kohta ĂŒhe tokeni. See tĂ€hendab, et kui 10 000 dollarit lukustataks varahoidlasse, saaks vĂ€ljastaja luua 10 000 tokenit, millest igaĂŒhte saab lunastada 1 dollari eest.

Seda on tehniliselt Ethereumis ĂŒsna lihtne rakendada. VĂ€ljastaja sĂ”lmib lihtsalt lepingu 10 000 tokeniga. SeejĂ€rel jagavad nad need kasutajatele, lubades, et nad saavad hiljem lunastada tokenid proportsionaalse summa fiat-raha eest. 

Kasutajad saavad oma tokenitega teha mitmeid asju – nad saavad osta kaupu ja teenuseid vĂ”i kasutada neid DAppides. Teise vĂ”imalusena vĂ”ivad nad taotleda, et vĂ€ljastaja vahetaks need kohe vĂ€lja. Sellisel juhul pĂ”letab vĂ€ljastaja tagastatud tokenid (muutes need kasutuskĂ”lbmatuks) ja vĂ”tab oma reservidest vĂ€lja Ă”ige koguse fiati.

Seda sĂŒsteemi reguleeriv leping, nagu eespool mainitud, on suhteliselt lihtsustatud. Stabiilsusraha turule toomine nĂ”uab aga palju tööd vĂ€liste teguritega, nagu logistika, eeskirjade jĂ€rgimine jne.


VÀÀrtpaberitokenid

VÀÀrtpaberitokenid on sarnased stabiilsusrahadega. Lepingu tasandil vĂ”ivad mĂ”lemad olla isegi identsed, kuna need toimivad ĂŒhtemoodi. Eristamine toimub vĂ€ljaandja tasandil. VÀÀrtpaberitokenid tĂ€histavad vÀÀrtpabereid, nagu aktsiad, vĂ”lakirjad vĂ”i fĂŒĂŒsilised varad. Sageli (kuigi see ei ole alati nii) annavad nad omanikule mingisuguse osaluse ettevĂ”ttes vĂ”i kaubas.


Kasutustokenid

Kasutustokenid on ehk tĂ€napĂ€eval kĂ”ige levinumad tokenitĂŒĂŒbid. Erinevalt kahest eelmisest pakkumisest ei ole nad millegagi tagatud. Kui varaga tagatud tokenid on nagu lennufirma aktsiad, siis kasutustokenid on nagu sagedase lendaja programmid: nad tĂ€idavad funktsiooni, kuid neil pole omaette vÀÀrtust. Kasutustokenid vĂ”ivad rahuldada lugematuid kasutusjuhtumeid, toimides mĂ€ngusisese valuutana, detsentraliseeritud rakenduste kĂŒtusena, lojaalsuspunktidena ja palju muud.


➠ Kas soovid alustada krĂŒptorahaga? Osta etherit Binance'ist!


Kas ERC-20 tokeneid saab kaevandada?

Etherit (ETH) saab kaevandada, kuid tokenid ei ole kaevandatavad – me ĂŒtleme, et need vermitakse uute loomisel. Lepingu sĂ”lmimisel jaotavad arendajad tarne vastavalt oma plaanidele ja tegevuskavale.

Tavaliselt tehakse seda esmase mĂŒndipakkumise (ICO), esialgse börsipakkumise (IEO) vĂ”i vÀÀrtpaberitokeni pakkumise (STO) kaudu. VĂ”id kohata nende akronĂŒĂŒmide variatsioone, kuid need mĂ”isted on ĂŒsna sarnased. Investorid saadavad lepingu aadressile etheri ja saavad vastutasuks uued tokenid. Kogutud raha kasutatakse projekti edasise arendamise rahastamiseks. Kasutajad eeldavad, et saavad oma tokeneid kasutada (kas kohe vĂ”i hiljem) vĂ”i neid projekti arenedes kasumi saamiseks edasi mĂŒĂŒa.

Tokenite levitamine ei pea olema automatiseeritud. Paljud ĂŒhisrahastusĂŒritused vĂ”imaldavad kasutajatel maksta mitmesuguste digitaalsete valuutadega (nt BNB, BTC, ETH ja USDT). SeejĂ€rel jaotatakse vastavad saldod kasutajate antud aadressidele.


ERC-20 tokenite plussid ja miinused

ERC-20 tokenite plussid

Vahetatavad

ERC-20 tokenid on vahetatavad – iga ĂŒksus on teise vahel vahetatav. Kui sul oleks BinanceAcademyToken, poleks oluline, milline konkreetne token sul oli. VĂ”id selle vahetada kellegi teise vastu ja need oleksid funktsionaalselt identsed, nagu sularaha vĂ”i kuld.

See on ideaalne, kui sinu tokeni eesmĂ€rk on olla mingit tĂŒĂŒpi valuuta. Sa ei sooviks eristatavate tunnustega ĂŒksikuid ĂŒksusi, mis muudaks need mitte-vahetatavaks. See vĂ”ib pĂ”hjustada selle, et mĂ”ned tokenid muutuvad teistest rohkem vĂ”i vĂ€hem vÀÀrtuslikeks, kahjustades nende eesmĂ€rki.


Paindlik

Nagu me eelmises jaotises uurisime, on ERC-20 tokenid hÀsti kohandatavad ja neid saab sobitada paljude erinevate rakendustega. NÀiteks saab neid kasutada mÀngusisese valuutana, lojaalsuspunktide programmides, digitaalsete kogumisobjektidena vÔi isegi kujutava kunsti ja omandiÔiguste esindamiseks.


Populaarne

ERC-20 populaarsus krĂŒptotööstuses on vĂ€ga mĂ”juv pĂ”hjus selle kasutamiseks kavandina. On palju börse, rahakotte ja nutilepinguid, mis juba ĂŒhilduvad Ă€sja kĂ€ivitatud tokenitega. Pealegi on arendajate tugi ja dokumentatsioon kĂŒlluslikud. 


ERC-20 tokenite miinused

Skaleeritavus

Nagu paljude krĂŒptorahavĂ”rkude puhul, pole ka Ethereum kasvuvalude suhtes immuunne. Praegusel kujul ei skaleeru see hĂ€sti – tehingu tippajal saatmine toob kaasa kĂ”rgeid teenustasusid ja viivitusi. Kui kĂ€ivitad ERC-20 tokeni ja vĂ”rk on ĂŒlekoormatud, vĂ”ib see mĂ”jutada kasutatavust.

See ei ole ainult Ethereumi probleem. Pigem on see vajalik kompromiss turvalistes hajutatud sĂŒsteemides. Kogukond kavatseb nende probleemidega tegeleda ĂŒleminekul Ethereum 2.0-le, mis rakendab selliseid uuendusi nagu Ethereum Plasma ja Ethereum Casper.

Lisateavet skaleeritavuse probleemide kohta leiad artiklist Plokiahela skaleeritavus: kÔrvalahelad ja maksekanalid.


Petuskeemid

Kuigi see ei ole probleem tehnoloogia endaga, vĂ”ib tokeni kĂ€ivitamise lihtsust mĂ”nes mĂ”ttes pidada negatiivseks. Lihtsa ERC-20 tokeni loomine nĂ”uab minimaalset pingutust, mis tĂ€hendab, et igaĂŒks saab sellega hakkama – nii heas kui halvas mĂ”ttes.

SeetĂ”ttu peaksid olema ettevaatlik, millesse investeerid. On mitmeid pĂŒramiidi- ja Ponzi skeeme, mis on maskeeritud plokiahelaprojektideks.  Tee enne investeerimist oma uurimistööd, et teha oma jĂ€reldused selle kohta, kas teenimisvĂ”imalus on Ă”igustatud.

 

ERC-20, ERC-1155, ERC-223, ERC-721 – mis vahe neil on?

ERC-20 oli esimene (ja siiani populaarseim) Ethereumi tokeni standard, kuid see pole sugugi ainus. Aastate jooksul on esile kerkinud palju teisi, kes on teinud ettepanekuid ERC-20 tĂ€iustamiseks vĂ”i pĂŒĂŒdnud saavutada erinevaid eesmĂ€rke.

MĂ”ned vĂ€hemlevinud standardid on need, mida kasutatakse mittevahetatavate tokenite puhul (NFTs). MĂ”nikord on sinu kasutusjuhtumile kasulik, et token oleks erinevate atribuutidega ja unikaalne. Kui soovid tokeniseerida ainulaadset kunstiteost, mĂ€ngusisest vara vms, vĂ”ib mĂ”ni neist lepingutĂŒĂŒpidest olla atraktiivsem.

NÀiteks ERC-721 standardit kasutati tohutult populaarse CryptoKitties DAppi jaoks. Selline leping pakub kasutajatele API-t, et luua oma mitteasendatavaid tokeneid ja kodeerida metaandmeid (pildid, kirjeldused jne). 

ERC-1155 standardit vÔib vaadelda nii ERC-721 kui ka ERC-20 edasiarendusena. See kirjeldab standardit, mis toetab samas lepingus nii vahetatavaid kui ka mittevahetatavaid tokeneid.

Muude valikute (nagu ERC-223 vĂ”i ERC-621) eesmĂ€rk on parandada kasutatavust. Esimene rakendab kaitsemeetmeid juhuslike tokenite ĂŒlekandmise vĂ€ltimiseks. Viimane lisab lisafunktsioone tokenite pakkumise suurendamiseks ja vĂ€hendamiseks.

NFT-teema kohta lisateabe saamiseks loe kindlasti artiklit KrĂŒpto kogutavate esemete ja mittevahetatavate tokenite (NFTs) juhend.


LÔppmÀrkused

ERC-20 standard on krĂŒptovarade ruumis domineerinud aastaid ja pole raske mĂ”ista selle pĂ”hjust. Suhteliselt hĂ”lpsalt saab igaĂŒks kasutusele vĂ”tta lihtsa lepingu, mis sobib paljudele kasutusjuhtumitele (kasutustokenid, stabiilsusrahad jne). Siiski puuduvad ERC-20-l mĂ”ned funktsioonid, mis on muude standarditega ellu viidud. Saab nĂ€ha, kas tulevikus tulevad selle asemele edasised lepingutĂŒĂŒbid.