Ești un dezvoltator Ethereum care lucrează la un proiect criptografic? Probabil că dezvoltați noul token folosind standardul ERC20, cu toate acestea, trebuie să cunoașteți eforturile de îmbunătățire. Acest lucru vă va ajuta să luați decizia corectă cu privire la ce standard de jeton ERC să utilizați, prin urmare, voi explica comparația ERC777 vs ERC223 vs ERC20 în acest articol.

Voi începe comparația cu o explicație a ERC 20 și voi explica ulterior dezavantajele acesteia. Apoi voi explica eforturile de îmbunătățire pe care le-a întreprins comunitatea Ethereum, prin ERC 777 și ERC 223.

Comparație între ERC20 vs ERC223 vs ERC777

Ce este ERC 20?

Înainte de a compara ERC 20 vs ERC 223 vs ERC 777, trebuie să explic ce este un ERC și ce reprezintă ERC20. Dezvoltatorii Ethereum depun adesea „Propuneri de îmbunătățire Ethreum” (EIP). Comunitatea Ethereum revizuiește EIP-urile, face comentarii, ceea ce poate declanșa o anumită reelaborare.

După ce comunitatea Ethereum acceptă un EIP, acesta devine un standard și apoi l-am numit „Cerere de comentarii Ethereum” (ERC). ERC 20 este un astfel de standard pentru jetoanele Ethreum.

ERC 20 este cel mai faimos standard de jetoane Ethereum și aproape toate ICO-urile care au folosit platforma Ethereum l-au folosit. Dezvoltatorii îl folosesc în mod implicit pentru a crea jetoane noi, în timp ce portofelele și schimburile acceptă cu ușurință jetoane ERC 20.

Înainte de ERC 20, dezvoltatorii Ethereum trebuiau să stabilească în mod specific reguli pe care token-ul lor le va urma, iar această abordare nu avea standardizare. Acum, cu ERC20, dezvoltatorii Ethereum știu că vor trebui doar să utilizeze standardul ERC 20. Această standardizare a jucat un rol important în alimentarea nebuniei ICO pe care am văzut-o încă din 2017.

Citiți mai multe despre standardul ERC 20 în „Ghid pentru începători: Ce este ERC20?”.

Ce sunt funcțiile standard ERC 20?

Standardul ERC 20 prescrie următoarele funcții atunci când se dezvoltă un simbol Ethereum:

  1. Obțineți rezerva totală de jetoane: trebuie să utilizați funcția „TotalSupply”.
  2. Obțineți soldul simbolic al unui alt cont de proprietar.
  3. Trimiteți jetoane către alt cont de proprietar: trebuie să utilizați funcția „transfer”. Aceste conturi sunt conturi EOA.
  4. Trimiteți jetoane de la o adresă de jeton la alta. Adresele cu jeton sunt adrese contractuale și trebuie să utilizați funcția „transferFrom”.
  5. Permiteți unui alt cont să retragă fonduri din contul dvs. în mod repetat, într-o limită specificată. Pentru aceasta ar trebui să utilizați funcția „aprobare”.
  6. Cheltuielile pot returna jetoanelor neutilizate proprietarilor, folosind funcția „alocație”.

O eroare ERC 20 care arde jetoane

Deși este foarte bine documentat și implementat în general, standardul ERC 20 are o eroare, iar acest lucru a ars deja jetoane în valoare de milioane de dolari SUA. Funcția „transfer” vă permite să trimiteți doar jetoane către alt proprietar, adică un cont EOA.

Dacă doriți să trimiteți fonduri către un cont de contract inteligent, adică cealaltă formă de conturi Ethereum, trebuie să utilizați combinația „aprobă” și „transferFrom”. Dacă trimiteți jetoane la un contract inteligent utilizând funcția „transfer”, veți vedea o tranzacție reușită, dar contractul nu va primi niciodată jetoanele.

Acest lucru arde jetoanele pentru totdeauna și nu le poți prelua. Mai mulți utilizatori au folosit funcția greșită pentru a trimite jetoane la contracte inteligente și și-au pierdut jetoanele definitiv!

Fundația Ethereum știe despre eroare, dar continuă să promoveze standardul ERC 20. Nu știu motivele pentru care au făcut acest lucru. Probabil că nu apreciază importul problemei sau există o rezistență la schimbare.

Standardul de jeton ERC223: o rezoluție propusă pentru eroarea ERC 20

Un dezvoltator Ethereum care poartă numele de utilizator Reddit „Dexaran” a propus EIP 223 cu o soluție la această eroare ERC 20. Înainte de a compara ERC 20 vs ERC 223 vs ERC 777, voi explica mai întâi propunerea sa.

Standardul de jeton ERC223 este încă o versiune preliminară, iar comunitatea Ethereum nu l-a implementat încă. Propune următoarea soluție:

  1. Acesta consideră o tranzacție pe blockchain-ul Ethereum ca un eveniment și folosește conceptul de „gestionare a evenimentelor”.
  2. Dacă utilizatorii folosesc funcția „transfer” pentru a trimite jetoane către un contract inteligent, acesta va genera o eroare și, ulterior, va anula tranzacția.
  3. Utilizatorul plătește Ethereum „prețul gazului”, dar nu pierde niciun indicativ.
  4. Această propunere adaugă un parametru suplimentar funcției „transfer”, pentru a verifica dacă adresa de primire este un cont contractual.
  5. Dacă constată că adresa destinatarului este un cont de contract și nu un cont EOA, atunci presupune că contractul a implementat un „tokenFallback”.
  6. O funcție „tokenFallback” permite apelarea înapoi a jetonului, astfel încât tranzacția nu arde niciun jeton.

În timp ce ERC223 rezolvă într-o mare măsură eroarea ERC 20, această propunere prezintă o slăbiciune. Dacă contractul inteligent al destinatarului nu are o funcție „tokanFallback”, atunci funcția „Fallback” va rula, rezultând pierderea de jetoane.

Doar câteva proiecte utilizează ERC 223, un exemplu este Proiectul AmigoCoin. Puteți citi mai multe detalii despre propunerea ERC 223 în Depozit GitHub EIP 223. Acest standard se mai numește ERC 23.

Standardul ERC777: o propunere îmbunătățită pentru rezolvarea erorii ERC 20

O propunere îmbunătățită pentru a preveni pierderea de jetoane din cauza bug-ului ERC 20 este propunerea ERC 777. Include următoarele:

  1. Funcții noi: „trimitere” în loc de „transfer”, „autorizareOperator” în loc de „aprobare” și „tokenReceived” în loc de „tokenFallback”.
  2. Atât timp platforma Ethereum a avut un dezavantaj, deoarece dezvoltatorii nu au putut identifica ce funcții implementează contractele inteligente. ERC 820, adică un alt standard, a implementat un registru central de contracte în rețea, prin urmare este acum posibil să cunoaștem funcțiile și interfețele pe care le are un contract inteligent. ERC777 îl folosește pentru a identifica interfețele pe care le folosește un contract inteligent. Acum dezvoltatorii vor ști în prealabil dacă un contract are funcțiile necesare pentru a primi jetoane trimise prin anumite funcții.
  3. ERC 777 permite „listarea albă” a operatorilor, astfel încât utilizatorii rețelei Ethereum vor avea acum capacitatea de a respinge plata de pe adrese din lista neagră. O adresă poate fi inclusă pe lista neagră din mai multe motive, de ex. încercarea de a pirata rețeaua, istoricul activităților ilegale.

Puteți vedea în comparația ERC 777 vs ERC 20 vs ERC 223 cum ERC777 oferă opțiuni multiple dezvoltatorilor, astfel încât să poată preveni pierderea de jetoane. Cu toate acestea, standardul ERC777 vine și cu câteva riscuri, după cum urmează:

  1. Unii dezvoltatori Ethereum consideră că funcția „authoriseOperator” este depreciată, prin urmare dezvoltatorii nu ar trebui să o folosească. Această funcție va necesita, de asemenea, mai mult „gaz” și va pune presiune suplimentară pe rețea.
  2. Utilizarea unui registru central al contractelor inteligente pentru a căuta interfețele pe care le folosește un contract este riscantă. Un registru central poate avea erori și orice depinde de acesta va avea un impact negativ.

ERC777 este încă o schiță, totuși ORCA token îl folosește. Citiți propunerea în Depozitul EIP 777 GitHub.

ERC 777 vs ERC 20 vs ERC 223: Protecția fondurilor este importantă

Deși numai timpul va spune ce standard ecosistemul Ethereum va accepta ca „standard de aur”, ca dezvoltator trebuie să vă amintiți că este responsabilitatea dvs. să protejați fondurile comercianților și investitorilor. Dacă luați o astfel de poziție responsabilă, probabil că veți fi de acord că, în ciuda complexității, standardul ERC 777 ar trebui implementat și adoptat.

Notă: Dacă doriți să aflați mai multe despre câteva standarde ERC cheie, citiți „Lista finală a standardelor ERC pe care trebuie să le cunoașteți“. 

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me