Posted in

Hva er ERC-20? Slik fungerer tokens på Ethereum

Illustrasjon av ERC-20 som en felles standard koblet til fem digitale tokens, med teksten «Hva er ERC-20? Slik fungerer tokens på Ethereum».

ERC-20 er den tekniske standarden som de aller fleste tokens på Ethereum-nettverket bygger på. Bak kjente kryptovalutaer som USDT, USDC og en lang rekke tokens fra DeFi- og blokkjedeprosjekter ligger det ett og samme regelverk – nettopp ERC-20. I denne guiden forklarer vi hva ERC-20 er, hvordan standarden fungerer i praksis, hvorfor den ble så viktig for Ethereum, og hva du bør være oppmerksom på når det gjelder sikkerhet, begrensninger og skatt.

Viktige punkter

  • ERC-20 er den tekniske standarden for byttbare (fungible) tokens på Ethereum, formalisert som EIP-20.
  • Foreslått av Fabian Vogelsteller i 2015 og gjort til ferdig standard i 2017.
  • Definerer seks obligatoriske funksjoner, to hendelser og tre valgfrie opplysninger, slik at alle tokens oppfører seg likt.
  • Kjente eksempler er stablecoins som USDT, USDC og DAI, samt tokens som LINK og UNI.
  • Gassgebyr betales alltid i ETH – du trenger ETH i lommeboken for å flytte tokens.
  • Vær forsiktig med ubegrensede approve-tillatelser; de kan misbrukes hvis en kontrakt er ondsinnet.

Hva betyr ERC-20?

ERC står for Ethereum Request for Comments, og tallet 20 er ganske enkelt nummeret på forslaget. Ideen ble lagt fram av utvikleren Fabian Vogelsteller 19. november 2015 som forslag nummer 20 i Ethereums utviklerkanal, med Vitalik Buterin som medforfatter. Den ble senere formalisert som Ethereum Improvement Proposal 20 (EIP-20) og fikk endelig status som ferdig standard i 2017.

En standard betyr her et sett med regler som alle tokens forplikter seg til å følge. Fordi reglene er like, kan lommebøker, kryptobørser og andre applikasjoner håndtere en hvilken som helst ERC-20-token på samme måte, uten å måtte tilpasse seg hvert enkelt prosjekt. Det var dette som gjorde det enkelt å skape nye tokens på Ethereum – og som utløste den store bølgen av tokens fra rundt 2017 og framover.

Det er verdt å skille mellom en coin og en token. Ether (ETH) er Ethereums egen mynt og en integrert del av selve nettverket. En ERC-20-token er derimot ikke en egen mynt, men lever oppå Ethereum som en smartkontrakt – et lite dataprogram som holder styr på hvem som eier hvor mange tokens. Vil du forstå plattformen tokenene bygger på, kan du lese mer om hva Ethereum er.

Slik fungerer en ERC-20-token

En ERC-20-token er i bunn og grunn en smartkontrakt som fører en tabell over saldoer: hvilke adresser som eier hvor mange enheter av tokenen. Standarden beskriver hvilke funksjoner denne kontrakten må inneholde, slik at alle tokens oppfører seg forutsigbart.

Standarden definerer seks obligatoriske funksjoner, tre valgfrie opplysninger og to hendelser (varsler som sendes ut når noe skjer):

Funksjon / elementHva den gjør
totalSupplyOppgir hvor mange tokens som finnes totalt
balanceOfViser saldoen til en bestemt adresse
transferSender tokens fra din egen adresse til en annen
approveGir en annen adresse tillatelse til å bruke et gitt antall av dine tokens
transferFromLar en godkjent adresse flytte tokens på dine vegne
allowanceViser hvor mye en godkjent adresse fortsatt har lov til å bruke
name, symbol, decimals (valgfrie)Navn, forkortelse (f.eks. USDC) og antall desimaler tokenen deles opp i
Transfer / Approval (hendelser)Varsler som sendes ut når tokens flyttes eller en tillatelse gis

Feltet decimals forteller hvor fint en token kan deles opp. De fleste ERC-20-tokens bruker 18 desimaler, akkurat som ETH, mens for eksempel USDC og USDT bruker 6. Det påvirker ikke verdien, bare hvordan tallene vises.

Fungible tokens – og forskjellen fra NFT-er

ERC-20-tokens er fungible, som betyr at hver enhet er identisk med og kan byttes mot en annen. Én USDC er alltid lik en annen USDC, på samme måte som en tikroning er verdt like mye som enhver annen tikroning. Dette er ideelt for penger, poeng og andeler.

Ethereum har også andre tokenstandarder for helt andre formål. ERC-721 brukes til non-fungible tokens (NFT), der hver token er unik og ikke kan byttes én-til-én. ERC-1155 er en nyere, fleksibel standard som kan håndtere både byttbare og unike tokens i samme kontrakt, noe som er praktisk i for eksempel spill.

Sammenligning av tokenstandarder

StandardType tokenByttbar?Typisk brukEksempel
ERC-20FungibleJa, hver enhet er likValuta, stablecoins, styringstokensUSDC, LINK, UNI
ERC-721Non-fungible (NFT)Nei, hver token er unikDigital kunst, samleobjekter, eierbevisKunst- og samler-NFT-er
ERC-1155HybridBåde ogSpillgjenstander, samlinger med både unike og like objekterGjenstander i blokkjedespill

Kjente ERC-20-tokens

Mange av de mest omsatte kryptovalutaene utenom ETH selv er faktisk ERC-20-tokens. De største kategoriene er stablecoins – tokens som er ment å holde en fast verdi rundt én amerikansk dollar – og styrings- og verktøytokens fra ulike protokoller.

TokenTypeHva den brukes til
USDT (Tether)StablecoinDen største stablecoinen på Ethereum målt i sirkulerende mengde
USDCStablecoinNest største stablecoin; USDT og USDC utgjør til sammen størstedelen av stablecoin-mengden på Ethereum
DAIStablecoinDesentralisert stablecoin styrt av en protokoll framfor ett selskap
LINK (Chainlink)VerktøytokenBrukes til å betale for data som hentes inn til smartkontrakter
UNI (Uniswap)StyringstokenGir stemmerett over oppgraderinger i Uniswap-protokollen

At en token er stor eller kjent sier ingenting om hvor trygg eller egnet den er som investering. Størrelsen her er kun ment som en illustrasjon på hvor utbredt ERC-20-standarden er.

Approve og allowance – og risikoen du bør kjenne til

Funksjonene approve og transferFrom er kjernen i hvordan tokens brukes i desentraliserte applikasjoner. Når du for eksempel vil bytte en token på en desentralisert børs, må du først gi børsens smartkontrakt tillatelse (en allowance) til å flytte tokenene dine. Deretter kan kontrakten gjennomføre byttet.

Problemet oppstår med hvor stor tillatelse du gir. Mange applikasjoner ber om en ubegrenset tillatelse, slik at du slipper å godkjenne på nytt hver gang. Ulempen er at hvis kontrakten senere viser seg å være ondsinnet eller blir hacket, kan den tømme hele saldoen din av akkurat den tokenen. Godkjennelsen gjelder kun den enkelte tokenen, men innenfor den er skaden potensielt total.

Slik reduserer du risikoen:

  • Godkjenn helst kun det beløpet du faktisk skal bruke, framfor en ubegrenset tillatelse.
  • Gå gjennom aktive tillatelser jevnlig og trekk tilbake de du ikke lenger bruker, for eksempel via verktøy som viser og fjerner godkjennelser.
  • Vær ekstra skeptisk til nettsteder som ber deg signere en godkjenning uten en tydelig grunn – dette er en vanlig metode i svindelforsøk.

Å ta vare på tilgangen til tokenene dine handler også om oppbevaring. Les mer om trygg lagring i vår guide til Ethereum-lommebok.

Begrensninger ved ERC-20 og nyere standarder

ERC-20 er dominerende, men har enkelte svakheter som senere standarder har prøvd å løse:

  • Tokens kan gå tapt. Standarden har ingen mekanisme som varsler en mottakende smartkontrakt om at den har fått tokens. Sender du tokens til en kontraktsadresse som ikke er laget for å håndtere dem, kan de bli låst for alltid. Betydelige verdier er gått tapt på denne måten.
  • To transaksjoner. Å bruke tokens i en applikasjon krever ofte to steg – først approve, så selve handlingen – noe som koster ekstra i gebyrer.

For å bøte på dette finnes flere utvidelser og alternativer: EIP-2612 («permit») lar deg godkjenne med en signert melding i stedet for en egen transaksjon, mens standardene ERC-777 og ERC-223 forsøker å hindre at tokens går tapt ved sending til kontrakter. Likevel er ERC-20 fortsatt den klart mest utbredte, i stor grad fordi hele økosystemet allerede er bygget rundt den.

Gassgebyr betales alltid i ETH

Selv om du sender en token som USDC eller LINK, betaler du transaksjonsgebyret – det såkalte gassgebyret – i ETH, ikke i tokenen. Grunnen er at det er Ethereum-nettverket som utfører beregningen, og nettverket krever betaling i sin egen mynt. Det betyr at du alltid må ha litt ETH i lommeboken for å kunne flytte ERC-20-tokens, selv om selve tokenen ikke er ETH. Du kan lese mer om hvordan dette regnes ut i vår artikkel om Ethereum-gass.

Skatt og regulering i Norge

ERC-20-tokens behandles skattemessig som andre kryptoeiendeler i Norge. Selve kjøpet med vanlige penger utløser ikke skatt, men når du selger, bytter en token mot en annen eller bruker den som betaling, regnes det som en realisasjon. Da skal gevinst eller tap føres i skattemeldingen, og beholdningen din inngår i formuesskatten ved årsslutt. Renter eller belønninger du mottar i tokens regnes som skattepliktig inntekt. Vår oversikt om skatt på krypto går nærmere inn på reglene.

På reguleringssiden er kryptoeiendeler i EØS omfattet av regelverket MiCA, som blant annet definerer ulike kategorier tokens og stiller krav til tjenestetilbydere. Å eie og oppbevare tokens selv er lovlig, men handel bør skje via aktører som følger regelverket.

Ansvarsfraskrivelse

Denne artikkelen er kun ment som generell og faktabasert informasjon om ERC-20-standarden og utgjør ikke finansiell, juridisk eller skattemessig rådgivning eller en oppfordring til å kjøpe, selge eller investere i kryptoeiendeler. Kryptomarkedet er svært volatilt, og du kan tape hele beløpet du legger inn. Gjør alltid egne undersøkelser og vurder å søke råd hos en kvalifisert rådgiver. Offisiell informasjon om regulering og skatt finner du hos Finanstilsynet og Skatteetaten.

Ofte stilte spørsmål (FAQ)

Hva er forskjellen på ERC-20 og Ethereum (ETH)?

ETH er Ethereums egen mynt og en del av selve nettverket. En ERC-20-token er ikke en egen mynt, men en smartkontrakt som lever oppå Ethereum og følger ERC-20-standardens felles regler.

Trenger jeg ETH for å sende ERC-20-tokens?

Ja. Gassgebyret for enhver transaksjon på Ethereum betales i ETH, også når du flytter en annen token. Derfor bør du alltid ha litt ETH i lommeboken i tillegg til tokenene dine.

Er USDT og USDC ERC-20-tokens?

På Ethereum-nettverket er begge ERC-20-tokens. De samme stablecoinene finnes også på andre blokkjeder med andre standarder, så det avhenger av hvilket nettverk du bruker.

Hva er forskjellen på ERC-20 og ERC-721?

ERC-20 er for byttbare (fungible) tokens der hver enhet er lik alle andre. ERC-721 er for unike tokens, altså NFT-er, der hver token skiller seg fra de andre.

Hvordan oppbevarer jeg ERC-20-tokens trygt?

Oppbevar dem i en lommebok du selv kontrollerer nøklene til, del aldri gjenopprettingsfrasen din, og gå jevnlig gjennom hvilke tillatelser du har gitt til smartkontrakter og trekk tilbake dem du ikke lenger bruker.