Conţinut
Introducere
Ce este standardul ERC-20?
O scurtă prezentare a jetoanelor Ethereum
Cum sunt create jetoanele ERC-20?
Care sunt funcțiile jetoanelor ERC-20?
Monede stabile
Jetoane de securitate
Jetoane utilitare
Este posibil să mine jetoane ERC-20?
Avantajele și dezavantajele jetoanelor ERC-20
Beneficiile jetoanelor ERC-20
Dezavantajele jetoanelor ERC-20
ERC-20, ERC-1155, ERC-223, ERC-721 - care este diferența?
Relua
Introducere
Ethereum a fost fondată în 2014 de Vitalik Buterin și a fost concepută ca o platformă open-source pentru rularea aplicațiilor descentralizate (DApps). La crearea noului blockchain, Buterin a luat în considerare problema lipsei de flexibilitate a protocolului Bitcoin.
De la lansarea sa, blockchain-ul Ethereum a atras mulți dezvoltatori, companii și antreprenori, dând naștere unei industrii în creștere de utilizatori care rulează contracte inteligente și aplicații distribuite.
În acest articol, vom analiza standardul ERC-20, baza pentru crearea de token-uri. Standardul a fost dezvoltat special pentru rețeaua Ethereum, dar a inspirat și alte standarde blockchain, cum ar fi BEP-2 Binance Chain.
Ce este standardul ERC-20?
ERC în Ethereum este o solicitare de comentarii pentru îmbunătățirea rețelei. ERC-urile sunt documente tehnice care prezintă standardele de programare pentru Ethereum. Acestea nu trebuie confundate cu Propunerile de Îmbunătățire Ethereum (EIP), care, la fel ca BIP-urile Bitcoin, propun îmbunătățiri ale protocolului în sine. Scopul ERC este de a stabili acorduri care să faciliteze interacțiunea dintre aplicații și contracte.
ERC-20 a fost creat în 2015 de Vitalik Buterin și Fabian Vogelsteller cu scopul de a oferi un format relativ simplu pentru crearea de token-uri pe Ethereum. Bazându-se pe un standard existent, dezvoltatorii economisesc timp și efort. Cu ERC-20, aceștia pot crea noi token-uri fără a-și face griji cu privire la compatibilitate și securitate.
Noile token-uri ERC-20 vor fi compatibile cu toate serviciile și software-ul care acceptă acest standard (portofele software, portofele hardware, exchange-uri etc.).
Trebuie menționat că un EIP (și anume EIP-20) a fost dezvoltat pe baza standardului ERC-20. Acest lucru s-a întâmplat la câțiva ani după lansare, datorită utilizării pe scară largă a standardului. Dar chiar și după toți acești ani, numele „ERC-20” este încă valabil.
O scurtă prezentare generală a tokenurilor Ethereum
Spre deosebire de ETH (criptomoneda nativă a Ethereum), token-urile ERC-20 nu sunt stocate în conturi. Acestea există doar în cadrul contractului, care este un fel de bază de date autonomă. Contractul definește termenii token-urilor (de exemplu, nume, simbol, divizibilitate). De asemenea, conține o listă care potrivește soldurile utilizatorilor cu adresele lor Ethereum.
Pentru a muta token-uri, utilizatorii trebuie să trimită o tranzacție către contract prin care să solicite mutarea unei părți din soldul lor într-o altă locație. De exemplu, dacă Alice vrea să-i trimită lui Bob 5.000 de token-uri BinanceAcademy, ea rulează o funcție în cadrul contractului inteligent, cerându-i să facă acest lucru.

Cererea ei este plasată într-o tranzacție Ethereum aparent normală, care taxează contractul inteligent cu 0 ETH. Cererea este adăugată într-un câmp suplimentar din tranzacție, care specifică exact ce dorește Alice să facă – în cazul nostru, să transfere token-urile către Bob.
Chiar dacă nu trimite Ether, ea tot trebuie să plătească o taxă, exprimată în Ether, pentru ca tranzacția ei să fie adăugată într-un bloc. Dacă nu are ETH, va trebui să îl cumpere înainte de a efectua tranzacția.
Iată un exemplu real al acestui proces pe Etherscan: cineva face o cerere către un contract în BUSD. Vedem că token-urile au fost transferate și taxa a fost plătită, în ciuda faptului că valoarea acesteia este de 0 ETH.
Acum putem analiza mai profund structura unui contract ERC-20.
Cum sunt create token-urile ERC-20?

Pentru a fi conform ERC-20, contractul dumneavoastră trebuie să includă șase funcții obligatorii: totalSupply, balanceOf, transfer, transferFrom, approve și allowance. În plus, puteți adăuga funcții suplimentare, cum ar fi nume, simbol și zecimal. Numele funcțiilor indică scopul lor. În continuare, vom examina fiecare dintre ele mai detaliat.
Mai jos sunt funcțiile așa cum sunt scrise în limbajul Solidity creat pentru Ethereum.
TotalSupply
funcția totalSupply() returnează (uint256) în vizualizarea publicăLa cererea utilizatorului, funcția de mai sus afișează numărul total de token-uri din contract.
soldOf
funcția balanceOf(adresă _owner) returnează (uint256 sold)Spre deosebire de totalSupply, funcția balanceOf folosește un parametru (adresă). Afișează soldul jetoanelor de adresă la cerere. Rețineți că conturile rețelei Ethereum sunt disponibile publicului, așa că puteți consulta soldul oricărui utilizator atâta timp cât îi cunoașteți adresa.
traducere
funcția transfer(adresă _către, uint256 _valoare) returnează public (bool succes)Funcția de transfer transferă token-uri de la un utilizator la altul. Pentru a-l utiliza, trebuie să specificați adresa destinatarului și suma transferului.
Funcția de transfer declanșează un eveniment (în cazul nostru, transfer de eveniment), care indică blockchain-ului să includă o referință la acesta.
transferDe la
funcția transferFrom(adresă _from, adresă _to, uint256 _value) public returnează (bool succes)Funcția transferFrom este o alternativă mai convenabilă la funcția de transfer, care oferă o programabilitate mai mare în aplicațiile descentralizate. La fel ca transferul, este folosit pentru a muta token-uri, dar acestea nu trebuie neapărat să aparțină persoanei care accesează contractul.
Cu alte cuvinte, puteți autoriza o altă persoană sau un alt contract să transfere fonduri în numele dumneavoastră. Un alt caz de utilizare include plata automată pentru serviciile bazate pe abonament, în cazul în care nu doriți să trimiteți manual plăți în fiecare zi/săptămână/lună. Programul o va face pentru tine.
Această funcție declanșează același eveniment ca și transferul.
aproba
funcția aprobă(adresă _cheltuitor, uint256 _valoare) public returnează (bool succes)„Aprobare” este o altă funcție utilă din punct de vedere al programabilității. Cu ajutorul său, poți limita numărul de token-uri pe care contractul inteligent le poate retrage din soldul tău. Fără aceasta, există riscul utilizării abuzive a contractului: cineva îl poate exploata în scopuri proprii sau vă poate fura toate fondurile.
Să luăm un exemplu cu un model de abonament. Să presupunem că ai o mulțime de BinanceAcademyTokens și vrei să configurezi plăți săptămânale pentru un serviciu de streaming DApp. Deja petreci zile și nopți studiind conținutul Binance Academy și nu vrei să pierzi timpul creând manual o tranzacție în fiecare săptămână.
Să presupunem că deții o cantitate mare de BinanceAcademyTokens, mult mai mare decât taxa de abonament. Pentru a preveni epuizarea serviciului DApp, puteți seta o limită folosind funcția de aprobare. De exemplu, abonamentul tău costă un BinanceAcademyToken pe săptămână. Dacă limitezi suma maximă la douăzeci de token-uri, abonamentul poate fi plătit automat pentru cinci luni.
În cel mai rău caz, dacă DApp-ul încearcă să vă retragă toate fondurile sau apare o eroare neașteptată, veți pierde doar douăzeci de token-uri. Această opțiune nu elimină posibilitatea unor probleme, dar vă protejează de pierderea tuturor activelor.
Când este apelată funcția approve, se declanșează evenimentul de aprobare. La fel ca evenimentul de transfer, scrie date în blockchain.
alocație
funcție alocație(adresă _proprietar, adresă _cheltuitor) vedere publică returnează (uint256 rămase)Funcția de alocație poate fi utilizată împreună cu funcția de aprobare. După ce ați acordat unui contract permisiunea de a gestiona token-urile sale, puteți utiliza această funcție pentru a verifica câte token-uri mai poate fi anulate. De exemplu, dacă abonamentul dvs. a utilizat doisprezece jetoane din cele douăzeci permise, atunci apelarea funcției allowance ar trebui să afișeze numărul opt.
Funcții suplimentare
Caracteristicile pe care le-am discutat mai sus sunt obligatorii. Funcțiile name, symbol și decimal sunt opționale, dar pot îmbunătăți contractul ERC-20. Acestea vă permit să adăugați un nume lizibil, să setați un simbol (de exemplu, ETH, BTC, BNB) și să specificați în câte zecimale pot fi împărțite token-urile. De exemplu, token-urile care sunt folosite ca monedă pot beneficia mai mult de o divizibilitate mai mare decât un token care reprezintă proprietatea.
Puteți vedea aceste elemente într-un contract real în acest exemplu de pe GitHub.
Care sunt funcțiile token-urilor ERC-20?

Dacă combinăm toate funcțiile de mai sus, obținem un contract ERC-20. Poate fi folosit pentru a interoga stocul total de token-uri, a verifica soldurile, a transfera fonduri și a acorda permisiuni altor DApp-uri pentru a gestiona token-uri.
Principalul avantaj al token-urilor ERC-20 este flexibilitatea. Folosindu-le, puteți implementa funcții suplimentare și puteți seta anumiți parametri în funcție de nevoile dvs.
Stablecoins
Stablecoin-urile (token-uri legate de monede fiat) folosesc adesea standardul de token-uri ERC-20. Un exemplu este tranzacția contractuală BUSD la care am făcut referire anterior. Majoritatea stablecoin-urilor sunt disponibile în acest format.
Emitentul unei monede stabile garantate cu fiat deține rezerve în euro, dolari etc. Apoi, pentru fiecare unitate din rezervele sale, creează un token. Asta înseamnă că, dacă 10.000 de dolari ar fi depozitați, emitentul ar putea crea 10.000 de token-uri, fiecare în valoare de 1 dolar.
Acest lucru este destul de ușor de implementat în Ethereum. Emitentul lansează un contract cu 10.000 de token-uri. Acestea vor fi apoi distribuite utilizatorilor cu perspectiva unei răscumpărări ulterioare în monedă fiduciară.
Utilizatorii pot folosi token-uri pentru a plăti pentru bunuri și servicii sau le pot folosi în aplicații DApp. În plus, utilizatorii au opțiunea de a solicita un schimb imediat de tokenuri de la emitent. În acest caz, emitentul arde token-urile returnate (acestea devin indisponibile) și retrage suma echivalentă în monedă fiduciară din rezervele sale.
Contractul care guvernează acest proces, așa cum am mai spus, este relativ simplu. Totuși, lansarea unei criptomonede stabile implică mulți factori externi, cum ar fi logistica, conformitatea legală și de reglementare etc.
Jetoane de securitate
Tokenurile de securitate sunt similare cu stablecoin-urile. La nivel contractual, acestea pot fi considerate identice, deoarece funcționează în același mod. Există însă o diferență semnificativă pentru emitent. Tokenurile de securitate reprezintă valori mobiliare (acțiuni, obligațiuni sau active fizice). Adesea (deși nu întotdeauna) acestea oferă deținătorului un anumit capital în afacere sau produs.
Jetoane utilitare
Tokenurile utilitare sunt cel mai comun tip de tokenuri în prezent. Spre deosebire de cele două opțiuni anterioare, acestea nu sunt susținute de nimic. Dacă token-urile garantate cu active sunt ca acțiunile unei companii aeriene, token-urile pentru utilități sunt mai degrabă ca un program de fidelizare pentru pasageri fideli: servesc unui scop, dar nu oferă nicio altă valoare. Jetoanele utilitare pot avea o mare varietate de utilizări. Astfel, acestea pot acționa ca monedă în joc, combustibil pentru aplicații descentralizate, puncte de loialitate și multe altele.
➠ Ești gata să începi să folosești criptomonedele? Cumpără Ether pe Binance!
Este posibil să minez tokenuri ERC-20?
Utilizatorii pot mina Ether (ETH), dar nu și token-uri - token-urile sunt create. Când este lansat un contract, dezvoltatorii distribuie token-uri conform planurilor existente și a unei foi de parcurs.
Acest lucru se realizează de obicei printr-o ofertă inițială de monede (ICO), o ofertă inițială de schimb (IEO) sau o ofertă de tokenuri de securitate (STO). S-ar putea să întâlniți diferite abrevieri, dar în esență toate sunt destul de apropiate. Investitorii trimit ether la adresa contractului și primesc în schimb noi token-uri. Fondurile primite sunt folosite pentru finanțarea dezvoltării ulterioare a proiectului. Utilizatorii se așteaptă să își poată folosi token-urile (imediat sau mai târziu) sau să le revindă pentru profit pe măsură ce proiectul se dezvoltă.
Procesul de distribuire a tokenurilor nu necesită automatizare. Multe evenimente de crowdfunding permit plata în diverse monede digitale (cum ar fi BNB, BTC, ETH și USDT). Apoi, în conformitate cu suma plătită, soldurile utilizatorilor de la adresele specificate sunt alimentate.
Avantajele și dezavantajele tokenurilor ERC-20
Beneficiile tokenurilor ERC-20
Interschimbabilitate
Monedele fiat sunt fungibile deoarece fiecare unitate nu este diferită de orice altă unitate echivalentă. Dacă dețineți un BinanceAcademyToken, nu contează ce token anume dețineți. Astfel de token-uri pot fi vândute altor utilizatori și vor rămâne funcțional identice cu banii sau aurul.
Acest lucru este foarte convenabil dacă vrei să folosești tokenul ca monedă. În acest caz, nu sunteți mulțumit de unități individuale cu caracteristici distinctive care le fac neinterschimbabile. Diferențele ar putea duce la o valoare mai mare (sau mai mică) a unor token-uri decât a altora, ceea ce, la rândul său, le-ar submina funcția principală.
Rată variabilă
După cum am aflat în secțiunea anterioară, token-urile ERC-20 sunt extrem de personalizabile și pot fi adaptate pentru o gamă largă de cazuri de utilizare. De exemplu, acestea pot fi folosite ca monedă în joc, în programe de fidelitate, ca obiecte digitale de colecție sau chiar ca opere de artă și drepturi de proprietate.
Popular
Popularitatea ERC-20 în industria criptomonedelor a dus la utilizarea acestui protocol ca bază pentru crearea de noi token-uri. De aceea există multe exchange-uri, portofele și contracte inteligente care sunt deja compatibile cu token-urile nou lansate. În plus, li se oferă asistență extinsă pentru dezvoltatori și au toată documentația necesară.
Dezavantaje ale tokenurilor ERC-20
Scalabilitate
Ca multe rețele de criptomonede, Ethereum nu este imun la problemele care apar pe măsură ce rețeaua crește. Rețeaua se confruntă în prezent cu probleme de scalabilitate, așa că încercarea de a trimite o tranzacție în perioadele de vârf duce la taxe mari și întârzieri. Dacă lansați un token ERC-20 atunci când rețeaua este congestionată, acest lucru poate afecta utilizabilitatea tokenului.
Nu doar Ethereum se confruntă cu această problemă. Sistemele distribuite trebuie să facă compromisuri din motive de securitate. Comunitatea intenționează să abordeze această problemă la trecerea la Ethereum 2.0, care va include actualizările Ethereum Plasma și Ethereum Casper.
Aflați mai multe despre problemele de scalabilitate în articolul nostru Scalabilitatea Blockchain - Sidechains și canale de plată.
Fraudă
Deși aceasta nu este o problemă legată de tehnologia în sine, ușurința lansării unui token poate fi considerată un dezavantaj. Crearea unui simplu token ERC-20 necesită un efort minim, ceea ce înseamnă că oricine o poate face, inclusiv în scopuri criminale.
Prin urmare, trebuie să fii foarte atent la ceea ce investești. Există o serie de scheme Ponzi și scheme piramidale deghizate în proiecte blockchain. Înainte de a investi, documentați-vă cu atenție pentru a decide singur dacă proiectul este fiabil.
ERC-20, ERC-1155, ERC-223, ERC-721 – care este diferența?
ERC-20 a fost primul (și încă cel mai popular) standard pentru tokenuri Ethereum, dar este departe de a fi singurul. De-a lungul anilor, au apărut multe alte protocoale care oferă îmbunătățiri ERC-20 sau încearcă să atingă alte obiective.
Unele dintre standardele mai puțin comune sunt folosite pentru a crea token-uri nefungibile (NFT-uri). În funcție de scopul utilizării, s-ar putea să fie util să aveți token-uri unice cu atribute diferite. Dacă vrei să tokenizezi o operă de artă unică, un element de joc etc., poți utiliza unul dintre aceste tipuri de contracte.
De exemplu, standardul ERC-721 a fost utilizat pentru extrem de popularele DApp-uri CryptoKitties. Un astfel de contract oferă utilizatorilor o API pentru a-și crea propriile token-uri nefungibile și a codifica metadate (imagini, descrieri etc.).
Standardul ERC-1155 poate fi considerat o îmbunătățire față de ERC-721, precum și față de ERC-20. Acest standard acceptă atât token-uri fungibile, cât și nefungibile într-un singur contract.
Alte opțiuni, cum ar fi ERC-223 sau ERC-621, vizează îmbunătățirea utilizabilității. ERC-223 implementează măsuri de siguranță pentru a preveni transferul accidental de token-uri. ERC-621 oferă funcții suplimentare pentru creșterea și descreșterea ofertei de tokenuri.
Pentru a afla mai multe despre NFT-uri, consultați Ghidul obiectelor de colecție cripto și al token-urilor nefungibile (NFT-uri).
Relua
Standardul ERC-20 a dominat spațiul activelor cripto timp de mulți ani și nu este o surpriză. Oricine poate implementa cu ușurință un contract simplu pentru diverse scopuri (token-uri de utilități, stablecoin-uri etc.). Cu toate acestea, ERC-20 nu are unele caracteristici prezente în alte standarde. Și încă nu există un răspuns clar la întrebarea dacă alte tipuri de contracte îl vor înlocui în viitor sau nu.



