Cuprins

  • Introducere

  • Ce este standardul ERC-20?

  • Informații rapide despre Ethereum Token

  • Cum sunt generate jetoanele ERC-20?

  • Ce funcții are ERC-20?

    • Stablecoin

    • Jetoane de securitate

    • jeton utilitar

  • Pot participa la mineritul de jetoane ERC-20?

  • Avantajele și dezavantajele jetoanelor ERC-20

    • Avantajele jetoanelor ERC-20

    • Dezavantajele jetoanelor ERC-20

  • Care sunt diferențele dintre ERC-20, ERC-1155, ERC-223 și ERC-721?

  • Rezuma


Introducere

Ethereum a fost fondat de Vitalik Buterin în 2014 și este poziționat ca o platformă open source pentru lansarea de aplicații descentralizate (DApps). Motivația lui Buterin pentru crearea acestui nou blockchain a provenit în mare parte din lipsa de flexibilitate a protocolului Bitcoin.

De la începuturile sale, blockchain-ul Ethereum a atras mulți dezvoltatori, întreprinderi și antreprenori, dând naștere unei industrii emergente a contractelor inteligente și aplicațiilor distribuite lansate de utilizatori.

În acest articol, ne vom uita la standardul ERC-20, care este un cadru important pentru crearea de jetoane. Deși aplicat numai rețelei Ethereum, este inspirația pentru alte standarde blockchain, cum ar fi BEP-2 al Binance Chain.


Ce este standardul ERC-20?

În Ethereum, numele complet al ERC este Ethereum Request for Comments, care este cererea de comentarii Ethereum. Aceste documente tehnice conturează standardele de programare ale Ethereum. Aceasta nu trebuie confundată cu Ethereum Improvement Proposal (EIP), care este similară cu BIP-ul Bitcoin și este o propunere de îmbunătățire a protocolului în sine. Scopul ERC este de a stabili un protocol care facilitează interacțiunea dintre aplicații și contracte.

Dezvoltat și scris în 2015 de Vitalik Buterin și Fabian Vogelsteller, ERC-20 propune un alt format relativ simplu pentru jetoanele bazate pe Ethereum. Atâta timp cât schița este urmată, dezvoltatorii nu trebuie să reinventeze roata și pot construi direct pe ceea ce se întâmplă în industrie.

Când sunt create noi jetoane ERC-20, acestea interoperează automat cu serviciile și software-ul care acceptă standardul ERC-20 (portofele software, portofele hardware, platformele de tranzacționare etc.).

Este important de menționat că standardul ERC-20 a evoluat în EIP (în special EIP-20). În acest moment, au trecut câțiva ani de la propunerea inițială difuzată pe scară largă, dar chiar și după ce au trecut câțiva ani, numele „ERC-20” a rămas.


Informații rapide despre Ethereum Token

Spre deosebire de ETH (criptomoneda nativă a Ethereum), jetoanele ERC-20 nu sunt depuse într-un cont, ci există doar în cadrul contractului, ca o bază de date independentă. Specifică regulile pentru token (adică numele, simbolul, divizibilitatea) și menține o listă de adrese Ethereum care mapează soldurile utilizatorilor.

Pentru a transfera jetoane, utilizatorii trebuie să trimită o tranzacție la un contract inteligent, solicitând contractului să aloce o parte din sold în altă parte. De exemplu, dacă Alice dorește să îi trimită lui Bob 5.000 de jetoane Binance Academy, va apela o funcție din contractul inteligent corespunzător pentru a executa instrucțiunea.


Users interacting with a smart contract


Apelul ei a inclus o tranzacție Ethereum aparent obișnuită, care a plătit 0 ETH la contractul de simbol. Acest apel este inclus printre alte câmpuri ale tranzacției și specifică intenția lui Alice - în acest caz, ea dorește să transfere jetoanele lui Bob.

Chiar și fără a trimite ether, ea trebuie să plătească o taxă specificată pentru ca tranzacția să fie adăugată la bloc. Dacă nu aveți ETH, ar trebui să depuneți în prealabil niște ETH înainte de a vă transfera jetoanele.

Următorul este un exemplu real în Etherscan: cineva apelează la un contract BUSD. Veți vedea că jetoanele au fost transferate și taxa a fost plătită, deși câmpul de valoare arată că a fost trimis 0 ETH.

Apoi, accelerăm ritmul și aruncăm o privire mai atentă asupra structurii contractuale tipice ERC-20.


Cum sunt generate jetoanele ERC-20?


Illustration of an ERC-20 token being created


Conform standardului ERC-20, contractul dumneavoastră trebuie să stabilească șase funcții obligatorii: totalSupply, balanceOf, transfer, transferFrom, aprobare și alocație. În plus, pot fi specificate funcții opționale, cum ar fi numele, simbolul și zecimală. Puteți înțelege funcția pe baza numelui. Nu vă faceți griji dacă nu o înțelegeți. O vom analiza pe rând.

Următoarele sunt funcții prezentate prin limbajul Solidity specific Ethereum.


totalSupply

funcția totalSupply() returnează vizualizarea publică (uint256)

După ce utilizatorul apelează funcția de mai sus, oferta totală de jetoane deținute de contract va fi returnată.


echilibrulOf

funcția balanceOf(address _owner) returnează vizualizarea publică (uint256 sold)

Spre deosebire de totalSupply, balanceOf folosește adrese ca parametri. După apel, sistemul returnează soldul de stocare a jetonului al adresei. Rețineți, conturile din rețeaua Ethereum sunt publice și transparente. Puteți verifica soldul oricărui utilizator atâta timp cât cunoașteți adresa.


transfer

transfer de funcție (adresă _to, uint256 _value) returnări publice (succes bool)

Funcția de transfer îi ajută pe utilizatori să transfere jetoane între ei. Trebuie să furnizați adresa de primire a simbolului și suma transferului.

Când este apelat, transferul declanșează un eveniment (evenimentul „transfer” în acest caz) a cărui funcție de bază este de a spune blockchain-ului să conțină o referință la această funcție.


transfer de la

funcția transferFrom(adresa _de la, adresa _la, uint256 _value) returnări publice (succes bool)

Funcția transferFrom este o alternativă convenabilă la funcția de transfer, îmbunătățind efectiv programabilitatea în aplicațiile descentralizate. Similar cu funcția de transfer, este folosit pentru a muta jetoane, dar aceste jetoane nu aparțin neapărat utilizatorului care apelează la contract.

Cu alte cuvinte, poți autoriza pe altcineva sau alt contract să mute fonduri în numele tău. De exemplu, dacă nu doriți să plătiți manual pentru un serviciu de abonament zilnic/săptămânal/lunar, puteți lăsa programul să facă treaba pentru dvs.

Evenimentele declanșate de această funcție sunt aceleași cu transferul.


aproba

funcția approve (adresă _spender, uint256 _value) returnări publice (bool succes)

Din perspectiva programării, aprobarea este o altă funcție foarte utilă care limitează numărul de jetoane pe care un contract inteligent le poate retrage din sold. Fără aceasta, contractele în execuție pot deveni invalide (sau exploatate) și toate fondurile riscă să fie furate.

Din nou, luați ca exemplu modelul de abonament. Să presupunem că dețineți o cantitate mare de jetoane Binance Academy și doriți să configurați plăți săptămânale recurente pentru DApp dvs. de streaming. Sunt prea ocupat să citesc articolele Academiei Binance pentru a petrece timp creând manual tranzacții în fiecare săptămână.

Soldul mare de jetoane Binance Academy deținute depășește cu mult taxele necesare pentru plata abonamentului. Pentru a împiedica DApp să plătească toate activele, puteți folosi approve pentru a stabili o limită. Presupunând că abonamentul dvs. costă 1 token Binance Academy pe săptămână, abonamentul dvs. va fi plătit automat peste 5 luni dacă limita de aprobare este de 20 de jetoane.

Dacă programul merge prost și DApp încearcă să retragă toate fondurile, veți pierde doar până la 20 de jetoane. În timp ce pierderea jetoanelor este supărătoare, rezultatul este mult mai bun decât pierderea tuturor activelor.

După apelarea acestei funcții, approve va declanșa evenimentul de aprobare, ca și funcția de transfer, va scrie datele în blockchain.


indemnizatie

alocație de funcție (adresă _proprietar, adresă _cheltuitor) returnări de vizualizare publică (uint256 rămase)

alocația poate fi utilizată împreună cu aprobarea. Dacă contractului i se acordă drepturi de gestionare a jetonului, puteți verifica soldul retras al jetonului prin intermediul acestuia. De exemplu, presupunând că serviciul de abonament utilizează 12 din cele 20 de jetoane aprobate, apelarea funcției de permis va returna un total de 8 jetoane.


Alte funcții opționale

Tot ce am discutat mai sus este o funcție obligatorie. Pe de altă parte, numele, simbolul și zecimalul sunt funcții opționale, dar pot face ERC-20 mai complet. Aceste funcții acceptă adăugarea unui nume care poate fi citit de om, setarea simbolului (adică ETH, BTC, BNB) și specificarea numărului de zecimale în care poate fi împărțit simbolul. De exemplu, jetoanele folosite ca monedă sunt mai divizibile și, prin urmare, mai benefice decât jetoanele folosite pentru a reprezenta proprietatea asupra proprietății.


Consultați acest exemplu pe GitHub pentru a vedea cum ar arăta aceste elemente într-un contract real.


Ce funcții are ERC-20?


Illustration of various uses of ERC-20 tokens


Rezumând toate funcțiile de mai sus, obținem un contract ERC-20. Putem interoga oferta totală, vedem solduri, transferăm fonduri și putem autoriza alte DApps să gestioneze jetoanele în numele nostru.

Flexibilitatea jetoanelor ERC-20 este un avantaj imens. Acordul stabilit nu limitează dezvoltarea, iar fiecare parte poate lansa alte funcții și poate stabili parametri specifici în funcție de propriile nevoi.


Stablecoin

Monedele stabile (jetoane legate de monede fiat) folosesc de obicei standardul de token ERC-20. Tranzacția cu contract BUSD menționată mai sus este un exemplu tipic, iar majoritatea stablecoins-urilor folosesc și acest formular.

Pentru monedele stabile susținute de monede fiat principale, emitenții pot deține rezerve în euro, dolari americani etc. și apoi pot emite jetoane pentru fiecare unitate din rezerve. Aceasta înseamnă că dacă 10.000 USD sunt depuși în seif, emitentul poate crea 10.000 de jetoane, fiecare în valoare de 1 USD.

Din punct de vedere tehnic, este ușor de implementat în Ethereum. Emitentul pur și simplu lansează un contract cu 10.000 de jetoane și apoi distribuie jetoanele utilizatorilor, promițând că aceștia pot schimba jetoanele pentru un anumit procent din moneda fiat în viitor.

Utilizatorii își pot folosi jetoanele pentru a efectua o varietate de acțiuni, inclusiv achiziționarea de bunuri și servicii și aplicarea la DApps. Alternativ, emitentului i se poate solicita să răscumpere aceste jetoane imediat. În acest caz, emitentul poate, de asemenea, să distrugă jetoanele returnate (să le lase să expire) și să retragă o sumă echivalentă de fiat din rezervă.

După cum am menționat mai devreme, contractele care guvernează acest sistem sunt relativ simple. Cu toate acestea, lansarea unei monede stabile necesită atenție la mulți alți factori externi (cum ar fi logistica, conformitatea etc.) și mult efort.


Jetoane de securitate

Jetoanele de securitate sunt similare cu monedele stabile și pot fi chiar complet identice la nivel de contract, deoarece ambele funcționează în același mod. Diferența constă în emitent: jetoanele de securitate reprezintă valori mobiliare precum acțiuni, obligațiuni sau active reale. De obicei, deși nu întotdeauna, acordă deținătorului acțiuni într-o afacere sau marfă.


jeton utilitar

Jetonele utilitare sunt probabil cel mai comun tip de jeton în prezent. Spre deosebire de cele două jetoane anterioare, jetoanele de utilitate nu sunt susținute de niciun activ real. Dacă acțiunile companiilor aeriene reprezintă jetoane susținute de active, jetoanele utilitare sunt ca programele de călători frecvent: au anumite funcționalități, dar nu au valoare externă. Jetoanele utilitare pot satisface numeroase nevoi, cum ar fi utilizarea ca monedă în joc, combustibil pentru aplicații descentralizate și puncte de fidelitate.


➠ Doriți să vă începeți călătoria criptomonedei? Bun venit la Binance pentru a cumpăra Ethereum!


Pot participa la mineritul de jetoane ERC-20?

Puteți participa la minerit Ethereum (ETH), dar jetoanele nu pot fi extrase - numim crearea de noi jetoane batere. După începerea contractului, dezvoltatorii vor aloca aprovizionarea conform planurilor și foilor de parcurs,

Acest lucru se face, în general, printr-o ofertă inițială de monede (ICO), o ofertă inițială de schimb (IEO) sau o ofertă de jetoane de securitate (STO). Este posibil să întâlniți mai multe variante ale acestor acronime, dar conceptele sunt foarte asemănătoare. Investitorii trimit eter la adresa contractului și primesc noi token-uri în schimb. Fondurile strânse vor fi folosite pentru a finanța dezvoltarea viitoare a proiectului. Utilizatorii se așteaptă să își poată folosi token-urile (imediat sau mai târziu) sau să le revândă cu profit pe măsură ce proiectul crește.

Emiterea de jetoane nu este neapărat automatizată. Multe campanii de crowdfunding îi ajută pe utilizatori să finalizeze plăți folosind diverse monede digitale (cum ar fi BNB, BTC, ETH și USDT), apoi să distribuie soldul corespunzător la adresa furnizată de utilizator.


Avantajele și dezavantajele jetoanelor ERC-20

Avantajele jetoanelor ERC-20

Interschimbabilitatea

Jetoanele ERC-20 sunt fungibile și toate unitățile pot fi schimbate între ele. Când vine vorba de Binance Academy Tokens, este același, indiferent de monedă specifică pe care o dețineți. Puteți tranzacționa cu alte persoane, iar jetoanele funcționează la fel, similar cu numerarul sau aurul.

Acest lucru este ideal dacă tokenul pe care îl dețineți speră să se dezvolte într-o monedă de orice fel. Jetoanele cu caracteristici distincte își pierd fungibilitatea și nu corespund cerințelor dumneavoastră. Acest lucru poate face ca anumite jetoane să valorize mai puțin sau mai mult decât jetoanele similare, înfrângând scopul inițial.


flexibil

După cum sa discutat în capitolul anterior, jetoanele ERC-20 sunt extrem de personalizabile și soluțiile pot fi adaptate pentru diferite aplicații. Exemplele includ utilizarea ca monedă în joc, puncte de fidelitate pentru programe, obiecte digitale de colecție sau chiar reprezentarea operelor de artă și a proprietății.


ERC-20 câștigă popularitate în domeniul criptomonedei, iar planul bazat pe acesta este foarte convingător. Numeroase schimburi, portofele și contracte inteligente sunt acum compatibile cu diverse jetoane nou lansate. În plus, asistența pentru dezvoltatori și documentația sunt destul de cuprinzătoare.


Dezavantajele jetoanelor ERC-20

Scalabilitate slabă

Aceasta este o problemă comună printre multe rețele de criptomonede, iar Ethereum nu este imun la aceasta. În forma sa actuală, nu se scalează bine. Trimiterea tranzacțiilor în perioadele de vârf implică comisioane mari și întârzieri mari. Dacă sunt utilizate jetoane ERC-20 și provoacă congestionare în rețea, disponibilitatea acestora va fi, de asemenea, afectată.

Aceasta nu este o problemă unică pentru Ethereum, ci un compromis pe care trebuie să-l facă toate sistemele distribuite securizate. Comunitatea intenționează să rezolve aceste probleme după migrarea la Ethereum 2.0 și să implementeze upgrade-uri precum Ethereum Plasma și Ethereum Casper.

Vă rugăm să citiți „Scalabilitate blockchain: lanțuri laterale și canale de plată” pentru a afla mai multe despre problemele de scalabilitate.


Fraudă

Deși nu este nimic în neregulă cu tehnologia în sine, în anumite privințe, ușurința emiterii de jetoane poate fi un dezavantaj. Tokenurile ERC-20 simple sunt ușor de creat, ceea ce înseamnă că oricine poate face acest lucru, dar cu intenții mixte.

Prin urmare, trebuie să investiți cu atenție. Există multe scheme piramidale și scheme Ponzi deghizate în proiecte blockchain. Trebuie să faceți propria cercetare înainte de a investi pentru a confirma dacă oportunitatea de investiție este legitimă.

Care sunt diferențele dintre ERC-20, ERC-1155, ERC-223 și ERC-721?

ERC-20 a fost primul (și de departe cel mai popular) standard de jetoane Ethereum, dar nu este singurul. De-a lungul anilor, au fost dezvoltate multe alte standarde. Cele mai multe dintre ele sunt standarde îmbunătățite ale ERC-20, alții încearcă să atingă obiective complet diferite.

O serie de standarde neobișnuite se aplică jetoanelor nefungibile (NFT). În unele cazuri, jetoanele unice cu proprietăți diferite vă pot face beneficiar. Dacă doriți să tokenizați opere de artă unice, active din joc etc., unul dintre aceste tipuri de contracte poate fi mai atractiv.

De exemplu, standardul ERC-721 este folosit în foarte popularul CryptoKitties DApp. Acest contract oferă un API pentru ca utilizatorii să își creeze propriile jetoane nefungibile și să codifice metadate (imagini, descrieri etc.).

Standardul ERC-1155 poate fi văzut ca o îmbunătățire față de ERC-721 și ERC-20. Acceptă atât standardele de token fungibile, cât și nefungibile într-un singur contract.

Alte opțiuni, cum ar fi ERC-223 sau ERC-621, sunt concepute pentru a îmbunătăți gradul de utilizare. Primul implementează măsuri de protecție pentru a preveni transferurile accidentale de jetoane. Acesta din urmă oferă o funcționalitate suplimentară pentru creșterea sau scăderea ofertei de jetoane.

Pentru a afla mai multe despre NFT, vă rugăm să citiți Ghidul pentru CryptoCollectibles și Non-Fungible Tokens (NFT).


Rezuma

Standardul ERC-20 a fost jucătorul dominant în spațiul cripto-activelor de mulți ani. Motivele sunt evidente: standardul este relativ simplu și oricine poate implementa contracte simple pentru a se potrivi diverselor nevoi (jetoane utilitare, stablecoins etc.). Cu toate acestea, ERC-20 nu are unele caracteristici ale altor standarde, dar rămâne de văzut dacă alte tipuri de contracte îi pot lua locul.