ERC223 – Upgrade ERC20 propus

Cele 375K motive pentru îmbunătățirea ERC20

Cu jonglerele bazate pe simboluri ERC20, cum ar fi EOS, Token de atenție de bază (BAT) și Storj, este dificil să argumentăm succesul contractului de interfață. Comunitatea Ethereum a adunat în mod clar sprijinul în jurul acestui standard, & atât comunitățile de dezvoltatori, cât și piețele financiare răspund pozitiv. Cu toate acestea, pentru tot succesul său, standardul ERC20 a dus la o eroare nu atât de nesemnificativă:

Standardul de jeton ERC20 duce la pierderi de bani pentru utilizatorii finali, permițându-le utilizatorilor să trimită jetoane ERC20 la adrese de jetoane care nu respectă ERC20.

Atunci când un utilizator trimite un jeton ERC20 către un contract Ethereum care nu recunoaște jetoanele ERC20, utilizatorul își pierde accesul la fondurile sale pentru totdeauna. Exact cât de multe fonduri sunt blocate în prezent din cauza acestei probleme? Din nou, nu o sumă nesemnificativă:

  • 310.067 GNT sunt blocați în contractul Golem (în prezent în valoare de aproximativ 217.000 USD).
  • 242 REP sunt blocați în contractul Augur (în prezent în valoare de aproximativ 15.000 USD).
  • 814 DGD sunt blocați în contractul Digix DAO (în prezent, în valoare de aproximativ 125.000 USD).
  • 14.506 1ST sunt blocați în contractul FirstBlood (în prezent, în valoare de aproximativ 12.000 USD).

Acest lucru depășește peste 370.000 de dolari + de jetoane ERC20 care sunt înghețate în aceste contracte; întrucât lista jetoanelor ERC20 este în creștere, acest număr este cel mai probabil o subestimare conservatoare a cantității totale a acestor jetoane înghețate în contracte. Lista de mai sus nu este deloc exhaustivă – acestea sunt doar câteva dintre cele mai populare jetoane ERC20.

Niciunul dintre contractele de mai sus nu se aștepta să primească niciun jeton ERC20 – așa că atunci când utilizatorii trimit jetoane la aceste adrese, tranzacțiile sunt confirmate de rețea; totuși, contractul de primire nu recunoaște jetoanele. Nu știe ce să facă cu aceste jetoane, ceea ce duce la blocarea fondurilor pentru totdeauna. Din nou, jetoanele nu sunt respinse – sunt doar complet ignorate de contractul de primire.

Majoritatea acestor tranzacții sunt comise neintenționat de către utilizatorii finali care apelează transfer funcție (spre deosebire de funcția de transfer automat de la introdus anterior). Reamintim că ERC20 folosește ambele Transferuri & TransferFrom – după cum se dovedește, unii utilizatori finali folosesc Transfer pentru a trimite direct jetoane ERC20 către contracte care nu așteaptă, & prin urmare, nu recunoașteți jetoanele primite.

În cele din urmă, câțiva membri ai comunității Ethereum au decis să abordeze această problemă direct prin solicitarea unui nou standard de jeton ERC. Numărul de ediție al acestui nou standard token de pe GitHub este numărul nr. 223.

Propunere ERC223

Utilizatorul GitHub Dexaran a sugerat un nou standard ERC (ERC223) în 5 martie 2017, care avea ca scop remedierea acestei probleme de eșec de rezervă. Rezumatul pentru noua sa propunere de token GitHub nr. 223 este următorul:

În cele ce urmează sunt descrise funcțiile standard pe care le poate implementa un contract de token și un contract care lucrează cu tokenul specificat pentru a preveni trimiterea accidentală de jetoane către contracte și pentru a face tranzacțiile cu token să se comporte ca tranzacții eter.


Propunerea de jetoane a lui Dexaran implementează două caracteristici de bază pentru a opri imediat utilizatorii descentralizați de aplicații de la trimiterea accidentală de jetoane la contracte inteligente care nu sunt gata să primească jetoanele menționate:

  1. Consolidarea ERC20 Transfer & TransferFrom funcționează într-o singură Transfer funcție cu trei parametri: (adresa _to, uint _value, bytes data).
  2. primind contract, dacă primește jetoane, trebuie sa conține o TokenFallBack funcție care definește exact cum să gestionați ce tip de jeton de intrare.

Transfer & TransferFrom -> Transfer

O parte cheie a standardului ERC20 care contribuie la această problemă comună este faptul că utilizatorii finali au opțiunea de a utiliza în mod eronat una dintre cele două funcții utilizate pentru transfer (Transfer & TransferFrom).

ERC223 propune înlocuirea ambelor funcții cu o singură Transfer funcţie.

ERC223 permite utilizatorilor finali dapp să trimită jetoane către orice Adresa Ethereum, indiferent dacă acel contract este un portofel sau un contract, cu aceeași funcție de transfer. Logica aici este că prin eliminarea opțiunii pentru utilizatori de a declanșa o funcție de transfer sau o funcție TransferFrom la o singură funcție Transfer, utilizatorii finali nu mai au potențialul de a utiliza funcția incorectă.

Noua funcție de transfer acceptată acceptă trei parametri (anterior acceptă doar doi) și, mai important, pare să invoce o funcție TokenFallback pe adresa de primire. Fără cei trei parametri definiți, funcția Transfer nu reușește să compileze; fără adresa de recepție care conține o funcție TokenFallback, tranzacția funcției de transfer va eșua & nu vor fi transferate jetoane.

funcție tokenFallBack ()

În dezvoltarea Ethereum există un modificator de contract de plătit este folosit pentru a pregăti un contract pentru a primi Ether – acest lucru înseamnă că un contract așteaptă acum moneda digitală. Dacă un contract o face nu conține modificatorul plătibil, tranzacția trimisă este pur și simplu anulată & întors. Nimic extraordinar, acesta este Ethereum 101.

Un mod analog de a gândi despre funcția ERC223 tokenFallback este că modificatorul plătibil este pregătirea unui contract pentru primirea Ether, deoarece funcția tokenFallback este pregătirea unui contract pentru a primi x token.

În acest standard, dezvoltatorii contractuali trebuie sa implementați tokenFallback dacă doresc ca contractele lor să funcționeze cu tokenuri specifice. Dacă destinatarul este o adresă necontractuală, o tranzacție de jeton ERC223 se va executa la fel ca orice transfer de jeton ERC20 curent. Pe de altă parte, dacă destinatarul este un contract, atunci contractul de token ERC223 va încerca mai întâi să apeleze tokenFallback pe contractul de destinatar; dacă nu se găsește nicio funcție tokenFallback, tranzacția va eșua.

Evoluția ERC

În ciuda stării de proiectare dură a ERC223, un alt standard ERC se profilează la orizont – ERC 721. ERC721 se concentrează pe nefungibil active precum CryptoKitties, terenuri Decentraland, & poate chiar active imobiliare de o zi. Progresul ERC 721 poate fi găsit aici: https://github.com/ethereum/eips/issues/721

Totul pentru a arăta că, în timp ce este tânără, comunitatea Ethereum este foarte serioasă în ceea ce privește îmbunătățirea platformei sale de contracte inteligente, punând standardele potrivite în fața unui val în creștere de noi dezvoltatori. Încet, dar sigur, erorile de jeton ERC vor scădea – și atunci întrebarea va deveni cea mai recentă scară standard?

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map