ERC 20 versus ERC 223 versus ERC 777: een vergelijking tussen Ethereum-tokenstandaarden

Ben je een Ethereum-ontwikkelaar die aan een cryptoproject werkt? U ontwikkelt waarschijnlijk het nieuwe token met behulp van de ERC20-standaard, maar u moet de verbeteringsinspanningen kennen. Dit zal u helpen de juiste beslissing te nemen over welke ERC-tokenstandaard u moet gebruiken, daarom zal ik de ERC777 versus ERC223 versus ERC20-vergelijking in dit artikel uitleggen.

Ik zal de vergelijking beginnen met een uitleg van ERC 20, en daarna zal ik de nadelen ervan toelichten. Vervolgens zal ik de verbeteringsinspanningen uitleggen die de Ethereum-gemeenschap heeft ondernomen, via ERC 777 en ERC 223.

Vergelijking tussen ERC20 versus ERC223 versus ERC777

ERC 20 versus ERC 223 versus ERC 777

Wat is ERC 20?

Voordat ik ERC 20 versus ERC 223 versus ERC 777 vergelijk, moet ik uitleggen wat een ERC is en waar ERC20 voor staat. Ethereum-ontwikkelaars dienen vaak ‘Ethreum Improvement Proposals’ (EIP’s) in. De Ethereum-gemeenschap beoordeelt EIP’s, maakt opmerkingen, wat kan leiden tot wat herwerk.

Nadat de Ethereum-gemeenschap een EIP heeft geaccepteerd, wordt het een standaard en hebben we het een ‘Ethereum Request for Comments’ (ERC) genoemd. ERC 20 is zo’n standaard voor Ethreum-tokens.

ERC 20 is de bekendste Ethereum-tokenstandaard en bijna alle ICO’s die het Ethereum-platform hebben gebruikt, hebben deze gebruikt. Ontwikkelaars gebruiken het standaard om nieuwe tokens te maken, terwijl wallets en exchanges ERC 20-tokens gemakkelijk accepteren.

Vóór ERC 20 moesten Ethereum-ontwikkelaars specifiek regels opstellen die hun token zullen volgen, en deze aanpak ontbrak aan standaardisatie. Nu met ERC20 weten Ethereum-ontwikkelaars dat ze gewoon de ERC 20-standaard zullen moeten gebruiken. Deze standaardisatie speelde een grote rol bij het aanwakkeren van de ICO-rage die we sinds 2017 hebben gezien.

Lees meer over de ERC 20-standaard in “Beginnershandleiding: wat is ERC20?”.

Wat zijn de standaardfuncties van ERC 20?

De ERC 20-standaard schrijft de volgende functies voor bij het ontwikkelen van een Ethereum-token:

  1. Verkrijg de totale voorraad tokens: U moet de functie “totalSupply” gebruiken.
  2. Haal het symbolensaldo van een andere eigenaar op.
  3. Stuur tokens naar een ander eigenaarsaccount: U moet de “transfer” -functie gebruiken. Deze accounts zijn EOA-accounts.
  4. Stuur tokens van het ene tokenadres naar het andere. Tokenadressen zijn contractadressen en u moet de functie “transferFrom” gebruiken.
  5. Sta een ander account toe om herhaaldelijk geld van uw account op te nemen, binnen een bepaalde limiet. Hiervoor dient u de functie “goedkeuren” te gebruiken.
  6. Uitgevers kunnen ongebruikte tokens aan eigenaars teruggeven met behulp van de “allowance” -functie.

Een ERC 20-bug die tokens verbrandt


Hoewel over het algemeen zeer goed gedocumenteerd en geïmplementeerd, heeft de ERC 20-standaard een bug en hierdoor zijn al tokens verbrand ter waarde van miljoenen dollars. Met de “transfer” -functie kunt u alleen tokens naar een andere eigenaar sturen, d.w.z. een EOA-account.

Als u geld naar een smart contract-account wilt sturen, d.w.z. de andere vorm van Ethereum-accounts, moet u de combinatie “goedkeuren” en “transferFrom” gebruiken. Als u tokens naar een smart contract verzendt met behulp van de “transfer” -functie, ziet u een succesvolle transactie, maar het contract zal de tokens nooit ontvangen.

Hierdoor worden die tokens voor altijd verbrand en kun je ze niet meer terughalen. Verschillende gebruikers hebben de verkeerde functie gebruikt om tokens naar slimme contracten te sturen en zijn hun tokens voorgoed kwijtgeraakt!

De Ethereum Foundation is op de hoogte van de bug, maar blijft de ERC 20-standaard promoten. Ik weet niet waarom ze dat doen. Ze waarderen het belang van het probleem waarschijnlijk niet, of er is weerstand tegen verandering.

De ERC223-tokenstandaard: een voorgestelde oplossing voor de ERC 20-bug

Een Ethereum-ontwikkelaar die de Reddit-gebruikersnaam “Dexaran” gebruikt, stelde de EIP 223 voor met een oplossing voor deze ERC 20-bug. Voordat ik ERC 20 versus ERC 223 versus ERC 777 vergelijk, zal ik eerst zijn voorstel toelichten.

De ERC223-tokenstandaard is nog een concept en de Ethereum-gemeenschap heeft deze nog niet geïmplementeerd. Het stelt de volgende oplossing voor:

  1. Het beschouwt een transactie op de Ethereum-blockchain als een evenement en gebruikt het concept ‘event-handling’.
  2. Als gebruikers de “transfer” -functie gebruiken om tokens naar een smart contract te sturen, wordt er een fout gegenereerd en wordt de transactie vervolgens geannuleerd.
  3. De gebruiker betaalt de Ethereum “Gasprijs”, maar verliest geen token.
  4. Dit voorstel voegt een extra parameter toe aan de “transfer” -functie, om te controleren of het ontvangende adres een contractrekening is.
  5. Als het vaststelt dat het adres van de ontvanger een contractaccount is en geen EOA-account, gaat het ervan uit dat het contract een “tokenFallback” heeft geïmplementeerd.
  6. Met een “tokenFallback” -functie kan het token worden teruggeroepen, zodat de transactie geen token verbrandt.

Hoewel de ERC223 de ERC 20-bug grotendeels oplost, zit er een zwak punt in dit voorstel. Als het slimme contract van de ontvanger geen ‘tokanFallback’-functie heeft, wordt de’ Fallback’-functie uitgevoerd, wat resulteert in het verlies van tokens.

Slechts een paar projecten gebruiken de ERC 223, een voorbeeld is de AmigoCoin-project. U kunt meer details over het ERC 223-voorstel lezen in het GitHub EIP 223-opslagplaats. Deze standaard wordt ook wel de ERC 23 genoemd.

De ERC777-standaard: een verbeterd voorstel om de ERC 20-bug op te lossen

Een verbeterd voorstel om het verlies van tokens als gevolg van de ERC 20-bug te voorkomen, is het ERC 777-voorstel. Het bevat het volgende:

  1. Nieuwe functies: “verzenden” in plaats van “overdracht”, “authoriseOperator” in plaats van “goedkeuren” en “tokensReceived” in plaats van “tokenFallback”.
  2. Het Ethereum-platform had zo lang een nadeel omdat ontwikkelaars niet konden identificeren welke functies slimme contracten implementeren. ERC 820, d.w.z. een andere standaard, heeft een centraal register van contracten op het netwerk geïmplementeerd, waardoor het nu mogelijk is om de functies en interfaces te kennen die een smart contract heeft. ERC777 gebruikt het om interfaces te identificeren die een slim contract gebruikt. Nu weten ontwikkelaars van tevoren of een contract de functies heeft die nodig zijn om tokens te ontvangen die via bepaalde functies worden verzonden.
  3. ERC 777 maakt ‘whitelisting’ van operators mogelijk, zodat de Ethereum-netwerkgebruikers nu de mogelijkheid hebben om betalingen van op de zwarte lijst geplaatste adressen te weigeren. Een adres kan om verschillende redenen op de zwarte lijst worden geplaatst, bijvoorbeeld poging om het netwerk te hacken, geschiedenis van illegale activiteiten.

U kunt in de vergelijking tussen ERC 777 en ERC 20 en ERC 223 zien hoe de ERC777 ontwikkelaars meerdere opties biedt, zodat ze het verlies van tokens kunnen voorkomen. De ERC777-standaard brengt echter ook enkele risico’s met zich mee:

  1. Sommige Ethereum-ontwikkelaars zijn van mening dat de functie “authoriseOperator” verouderd is, en daarom mogen ontwikkelaars deze niet gebruiken. Voor deze functie is ook meer “Gas” nodig en wordt het netwerk extra belast.
  2. Het gebruik van een centraal register van slimme contracten om de interfaces op te zoeken die een contract gebruikt, is riskant. Een centraal register kan bugs bevatten en alles wat ervan afhangt, heeft een negatieve impact.

ERC777 is nog een concept, maar het ORKA token gebruikt het. Lees het voorstel in het EIP 777 GitHub-opslagplaats.

ERC 777 vs ERC 20 vs ERC 223: Bescherming van fondsen is belangrijk

Hoewel alleen de tijd zal uitwijzen welke standaard het Ethereum-ecosysteem zal accepteren als de ‘gouden standaard’, moet u als ontwikkelaar niet vergeten dat het uw verantwoordelijkheid is om de fondsen van handelaren en investeerders te beschermen. Als u een dergelijke verantwoordelijke positie inneemt, bent u het er waarschijnlijk mee eens dat ondanks de complexiteit de ERC 777-standaard moet worden geïmplementeerd en aangenomen.

Opmerking: als u meer wilt weten over enkele belangrijke ERC-standaarden, lees dan “De ultieme lijst van ERC-standaarden die u moet kennen”.

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