ERC 20 vs ERC 223 vs ERC 777: En jämförelse mellan Ethereum-tokenstandarder

Är du en Ethereum-utvecklare som arbetar med ett kryptoprojekt? Du kommer troligen att utveckla den nya token med ERC20-standarden, men du måste känna till förbättringsarbetet. Detta hjälper dig att fatta rätt beslut om vilken ERC-tokenstandard du ska använda, därför kommer jag att förklara ERC777 vs ERC223 vs ERC20-jämförelse i den här artikeln.

Jag kommer att börja jämförelsen med en förklaring av ERC 20 och därefter förklara nackdelarna med den. Sedan kommer jag att förklara de förbättringsinsatser som Ethereum-communityn genomförde, via ERC 777 och ERC 223.

Jämförelse mellan ERC20 vs ERC223 vs ERC777

Vad är ERC 20?

Innan jag jämför ERC 20 vs ERC 223 mot ERC 777 måste jag förklara vad som är en ERC och vad representerar ERC20. Ethereum-utvecklare skickar ofta in ” Ethreum Improvement Proposals ” (EIP). Ethereum-communityn granskar EIP: er, gör kommentarer, vilket kan utlösa viss omarbetning.

Efter att Ethereum-communityn har accepterat en EIP blir den en standard, och vi kallade den sedan en ”Ethereum Request for Comments” (ERC). ERC 20 är en sådan standard för Ethreum-tokens.

ERC 20 är den mest kända Ethereum-tokenstandarden och nästan alla ICO: er som använde Ethereum-plattformen har använt den. Utvecklare använder det som standard för att skapa nya tokens, medan plånböcker och utbyten accepterar ERC 20-tokens enkelt.

Innan ERC 20 fick Ethereum-utvecklare specifikt ställa in regler som deras token ska följa, och detta tillvägagångssätt saknade standardisering. Nu med ERC20 vet Ethereum-utvecklare att de bara måste använda ERC 20-standarden. Denna standardisering spelade en stor roll för att driva upp ICO-mani som vi såg sedan 2017.

Läs mer om ERC 20-standarden i “Nybörjarhandbok: Vad är ERC20?”.

Vad är ERC 20 standardfunktioner?

ERC 20-standarden föreskriver följande funktioner när du utvecklar en Ethereum-token:

  1. Få det totala utbudet av tokens: Du måste använda funktionen “totalSupply”.
  2. Hämta ett annat saldo på ett annat ägarkonto.
  3. Skicka tokens till ett annat ägarkonto: Du måste använda funktionen “överför”. Dessa konton är EOA-konton.
  4. Skicka tokens från en tokenadress till en annan. Token-adresser är kontraktsadresser och du måste använda funktionen “transferFrom”.
  5. Låt ett annat konto ta ut pengar från ditt konto upprepade gånger inom en angiven gräns. Du bör använda funktionen “godkänn” för detta.
  6. Spendrar kan returnera oanvända tokens till ägare med hjälp av funktionen “tillägg”.

Ett ERC 20-fel som bränner tokens

Även om det är väldokumenterat och implementerat övergripande har ERC 20-standarden en bugg, och detta har redan bränt tokens till ett värde av miljoner dollar. Med funktionen “överför” kan du bara skicka tokens till en annan ägare, dvs EOA-konto.

Om du vill skicka pengar till ett smart kontokonto, dvs den andra formen av Ethereum-konton, måste du använda kombinationen “godkänna” och “transferFrom”. Om du skickar tokens till ett smart kontrakt med funktionen “överför” ser du en lyckad transaktion, men kontraktet kommer aldrig att få tokens.

Detta bränner dessa tokens för alltid, och du kan inte hämta dem. Flera användare har använt fel funktion för att skicka tokens till smarta kontrakt och förlorat sina tokens för gott!

Ethereum Foundation känner till felet men fortsätter att marknadsföra ERC 20-standarden. Jag vet inte deras skäl till det. De uppskattar antagligen inte importen av problemet, eller det finns ett motstånd mot förändring.

ERC223-tokenstandarden: En föreslagen upplösning för ERC 20-felet

En Ethereum-utvecklare som har Reddit-användarnamnet “Dexaran” föreslog EIP 223 med en lösning på detta ERC 20-fel. Innan jag jämför ERC 20 vs ERC 223 mot ERC 777 kommer jag först att förklara hans förslag.

ERC223-tokenstandarden är fortfarande ett utkast och Ethereum-communityn har inte implementerat den ännu. Den föreslår följande lösning:

  1. Det betraktar en transaktion på Ethereum blockchain som en händelse och använder konceptet ” event-handling ”.
  2. Om användare använder funktionen “överför” för att skicka tokens till ett smart kontrakt, kommer det att kasta ett fel och kommer därefter att avbryta transaktionen.
  3. Användaren betalar Ethereum ”Gaspris”, men tappar ingen symbol.
  4. Detta förslag lägger till en ytterligare parameter i “överför” -funktionen för att kontrollera om den mottagande adressen är ett kontraktskonto.
  5. Om den finner att mottagaradressen är ett kontraktskonto och inte ett EOA-konto, antar det att kontraktet har implementerat en “tokenFallback”.
  6. En “tokenFallback” -funktion gör att du kan återkalla token, så att transaktionen inte bränner någon token.

Medan ERC223 löser ERC 20-buggen i stor utsträckning finns det en svaghet i detta förslag. Om mottagarens smarta kontrakt inte har en “tokanFallback” -funktion, körs “Fallback” -funktionen, vilket resulterar i förlust av tokens.

Endast ett fåtal projekt använder ERC 223, ett exempel är AmigoCoin-projekt. Du kan läsa mer information om ERC 223-förslaget i GitHub EIP 223-förvar. Denna standard kallas också ERC 23.

ERC777-standarden: Ett förbättrat förslag för att lösa ERC 20-felet

Ett förbättrat förslag för att förhindra förlust av tokens på grund av ERC 20-felet är ERC 777-förslaget. Den innehåller följande:

  1. Nya funktioner: “skicka” istället för “överföra”, “authoriseOperator” istället för “godkänna” och “tokensReceived” istället för “tokenFallback”.
  2. Så länge hade Ethereum-plattformen en nackdel eftersom utvecklare inte kunde identifiera vilka funktioner smarta kontrakt implementerar. ERC 820, det vill säga en annan standard, har implementerat ett centralt register över kontrakt i nätverket, så det är nu möjligt att känna till de funktioner och gränssnitt som ett smart kontrakt har. ERC777 använder den för att identifiera gränssnitt som ett smart kontrakt använder. Nu vet utvecklare i förväg om ett kontrakt har de funktioner som krävs för att ta emot polletter som skickas via vissa funktioner.
  3. ERC 777 möjliggör ”vitlistning” av operatörer, så Ethereum-nätverksanvändarna har nu möjlighet att avvisa betalning från svartlistade adresser. En adress kan svartlistas av många anledningar, t.ex. försök att hacka nätverket, historia om olagliga aktiviteter.

Du kan se i ERC 777 vs ERC 20 vs ERC 223 jämförelse hur ERC777 ger flera alternativ till utvecklare så att de kan förhindra förlust av tokens. Emellertid kommer ERC777-standarden också med några risker, enligt följande:

  1. Vissa Ethereum-utvecklare tror att funktionen “authoriseOperator” är utfasad, därför bör utvecklare inte använda den. Denna funktion kommer också att kräva mer ”gas” och det kommer att lägga ytterligare belastning på nätverket.
  2. Användningen av ett centralt register över smarta kontrakt för att leta efter gränssnitten som ett kontrakt använder är riskabelt. Ett centralt register kan ha fel, och allt beror på det kommer att ha en negativ inverkan.

ERC777 är fortfarande ett utkast, dock SPÄCKHUGGARE token använder det. Läs förslaget i EIP 777 GitHub-förvar.

ERC 777 vs ERC 20 vs ERC 223: Skydd av medel är viktigt

Medan bara tiden kommer att visa vilken standard Ethereum-ekosystemet accepterar som “guldstandarden”, måste du som utvecklare komma ihåg att det är ditt ansvar att skydda handlarnas och investerarnas medel. Om du tar en sådan ansvarsfull ställning kommer du antagligen att vara överens om att ERC 777-standarden trots implementering och komplicering bör implementeras och antas.

Obs! Om du vill lära dig mer om några viktiga ERC-standarder, läs “Den ultimata listan över ERC-standarder du behöver veta”. 

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