ERC 20 vs ERC 223 vs ERC 777: En sammenligning mellom Ethereum-tokenstandarder

Er du en Ethereum-utvikler som jobber med et kryptoprosjekt? Du utvikler sannsynligvis det nye tokenet ved hjelp av ERC20-standarden, men du må vite forbedringsarbeidet. Dette vil hjelpe deg med å ta den riktige avgjørelsen om hvilken ERC-tokenstandard du skal bruke, derfor vil jeg forklare ERC777 vs ERC223 vs ERC20-sammenligning i denne artikkelen.

Jeg vil starte sammenligningen med en forklaring på ERC 20, og vil deretter forklare ulempene med den. Deretter vil jeg forklare forbedringsarbeidet som Ethereum-samfunnet gjennomførte, via ERC 777 og ERC 223.

Sammenligning mellom ERC20 vs ERC223 vs ERC777

Hva er ERC 20?

Før jeg sammenligner ERC 20 vs ERC 223 vs ERC 777, må jeg forklare hva som er en ERC, og hva representerer ERC20. Ethereum-utviklere sender ofte ‘Ethreum Improvement Proposals’ (EIPs). Ethereum-fellesskapet vurderer EIP-er, kommer med kommentarer, som kan utløse litt omarbeid.

Etter at Ethereum-fellesskapet har akseptert en EIP, blir den en standard, og vi kalte den en ‘Ethereum Request for Comments’ (ERC). ERC 20 er en slik standard for Ethreum-tokens.

ERC 20 er den mest kjente Ethereum-tokenstandarden, og nesten alle ICO-er som brukte Ethereum-plattformen har brukt den. Utviklere bruker den som standard for å opprette nye tokens, mens lommebøker og sentraler godtar ERC 20-tokens enkelt.

Før ERC 20 måtte Ethereum-utviklere spesifikt sette regler som token deres skulle følge, og denne tilnærmingen manglet standardisering. Nå med ERC20 vet Ethereum-utviklere at de bare må bruke ERC 20-standarden. Denne standardiseringen spilte en stor rolle i å øke ICO-mani vi så siden 2017.

Les mer om ERC 20-standarden i “Beginner’s Guide: What is ERC20?”.

Hva er ERC 20 standardfunksjoner?

ERC 20-standarden foreskriver følgende funksjoner når du utvikler et Ethereum-token:

  1. Få den totale tilgangen på tokens: Du må bruke funksjonen “totalSupply”.
  2. Hent token-saldoen til en annen eierkonto.
  3. Send tokens til en annen eierkonto: Du må bruke “overfør” -funksjonen. Disse kontoene er EOA-kontoer.
  4. Send tokens fra en token-adresse til en annen. Token-adresser er kontraktadresser, og du må bruke funksjonen “transferFrom”.
  5. Tillat at en annen konto trekker penger fra kontoen din gjentatte ganger, innenfor en spesifisert grense. Du bør bruke “godkjenne” -funksjonen for dette.
  6. Tilbringere kan returnere ubrukte tokens til eiere ved hjelp av “kvote” -funksjonen.

En ERC 20-feil som brenner tokens

Selv om det er veldig godt dokumentert og implementert generelt, har ERC 20-standarden en feil, og dette har allerede brent tokens til en verdi av millioner av amerikanske dollar. Med “overføring” -funksjonen kan du bare sende tokens til en annen eier, dvs. EOA-konto.


Hvis du vil sende penger til en smart kontraktkonto, dvs. den andre formen for Ethereum-kontoer, må du bruke kombinasjonen “godkjenne” og “overføre fra”. Hvis du sender tokens til en smart kontrakt ved hjelp av “overførings” -funksjonen, vil du se en vellykket transaksjon, men kontrakten vil aldri motta tokens.

Dette brenner disse tokens for alltid, og du kan ikke hente dem. Flere brukere har brukt feil funksjon for å sende tokens til smarte kontrakter og mistet tokens for godt!

Ethereum Foundation vet om feilen, men fortsetter å markedsføre ERC 20-standarden. Jeg vet ikke årsakene til det. De setter sannsynligvis ikke pris på importen av problemet, eller det er motstand mot endring.

ERC223-tokenstandarden: En foreslått oppløsning for ERC 20-feilen

En Ethereum-utvikler som går under Reddit-brukernavnet “Dexaran” foreslo EIP 223 med en løsning på denne ERC 20-feilen. Før jeg sammenligner ERC 20 vs ERC 223 vs ERC 777, vil jeg forklare hans forslag først.

ERC223-tokenstandarden er fortsatt et utkast, og Ethereum-samfunnet har ikke implementert den ennå. Den foreslår følgende løsning:

  1. Den anser en transaksjon på Ethereum blockchain som en begivenhet og bruker konseptet ‘event-handling’.
  2. Hvis brukere bruker “overfør” -funksjonen til å sende tokens til en smart kontrakt, vil det kaste en feil, og vil deretter avbryte transaksjonen.
  3. Brukeren betaler Ethereum “Bensinpris”, men mister ikke noe token.
  4. Dette forslaget legger til en ekstra parameter for “overførings” -funksjonen, for å sjekke om mottaksadressen er en kontrakonto.
  5. Hvis den finner ut at mottakeradressen er en kontrakonto og ikke en EOA-konto, antar den at kontrakten har implementert en “tokenFallback”.
  6. En “tokenFallback” -funksjon tillater å ringe tilbake tokenet, slik at transaksjonen ikke brenner noe token.

Mens ERC223 i stor grad løser ERC 20-feilen, er det en svakhet i dette forslaget. Hvis mottakerens smarte kontrakt ikke har en “tokanFallback” -funksjon, vil “Fallback” -funksjonen kjøre, noe som resulterer i tap av tokens.

Bare noen få prosjekter bruker ERC 223, et eksempel er AmigoCoin-prosjekt. Du kan lese mer informasjon om ERC 223-forslaget i GitHub EIP 223-depot. Denne standarden kalles også ERC 23.

ERC777-standarden: Et forbedret forslag for å løse ERC 20-feilen

Et forbedret forslag for å forhindre tap av tokens på grunn av ERC 20-feilen er ERC 777-forslaget. Det inkluderer følgende:

  1. Nye funksjoner: “send” i stedet for “transfer”, “authoriseOperator” i stedet for “godkjenne” og “tokensReceived” i stedet for “tokenFallback”.
  2. Så lenge hadde Ethereum-plattformen en ulempe fordi utviklere ikke kunne identifisere hvilke funksjoner smarte kontrakter implementerer. ERC 820, dvs. en annen standard, har implementert et sentralt register over kontrakter i nettverket, og det er nå mulig å kjenne til funksjonene og grensesnittene en smart kontrakt har. ERC777 bruker den til å identifisere grensesnitt som en smart kontrakt bruker. Nå vil utviklere vite på forhånd om en kontrakt har funksjonene som kreves for å motta poletter sendt via visse funksjoner.
  3. ERC 777 muliggjør “hviteliste” av operatører, slik at brukerne av Ethereum-nettverket nå har muligheten til å avvise betaling fra adresser på svartelisten. En adresse kan være svartelistet av mange grunner, av f.eks. forsøk på å hacke nettverket, historien om ulovlige aktiviteter.

Du kan se i ERC 777 vs ERC 20 vs ERC 223 sammenligning hvordan ERC777 gir flere alternativer til utviklere, slik at de kan forhindre tap av tokens. Imidlertid kommer ERC777-standarden også med noen få risikoer, som følger:

  1. Noen Ethereum-utviklere mener at “autoriseOperator” -funksjonen er avviklet, og derfor bør utviklere ikke bruke den. Denne funksjonen vil også kreve mer “gass” og det vil legge ekstra belastning på nettverket.
  2. Bruken av et sentralt register over smarte kontrakter for å se etter grensesnittene en kontrakt bruker er risikabelt. Et sentralt register kan ha feil, og alt avhengig av det vil ha en negativ innvirkning.

ERC777 er fortsatt et utkast, men ORCA token bruker det. Les forslaget i EIP 777 GitHub-depot.

ERC 777 vs ERC 20 vs ERC 223: Beskyttelse av midler er viktig

Mens bare tiden vil vise hvilken standard Ethereum-økosystemet vil akseptere som “Gullstandarden”, må du som utvikler huske at det er ditt ansvar å beskytte næringsdrivendes og investorers midler. Hvis du tar en så ansvarlig stilling, vil du sannsynligvis være enig i at til tross for kompleksiteten, bør ERC 777-standarden implementeres og vedtas.

Merk: Hvis du vil lære mer om noen få viktige ERC-standarder, kan du lese “Den ultimate listen over ERC-standarder du trenger å vite”. 

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