Innledning
Ethereum ble grunnlagt av Vitalik Buterin i 2014 og posisjonerte seg som en plattform med åpen kildekode for lansering av desentraliserte applikasjoner (DApps). Mye av Buterins motivasjon for å lage en ny blokkjede kom fra Bitcoin-protokollens mangel på fleksibilitet.
Siden lanseringen har Ethereum-blokkjeden tiltrukket seg utviklere, bedrifter og gründere og har blitt en voksende industri av brukere som lanserer smarte kontrakter og distribuerte applikasjoner.
I denne artikkelen skal vi se på ERC-20-standarden, et viktig rammeverk for å lage tokener. Selv om rammeverket er spesifikt for Ethereum-nettverket, har det også inspirert andre blokkjedestandarder, for eksempel Binance Chains BEP-2.
Hva er ERC-20-standarden?
ERC-20 ble forfattet av Vitalik Buterin og Fabian Vogelsteller i 2015 og kommer med et relativt enkelt format for Ethereum-baserte tokener. Hvis utviklerne følger skissen, trenger de ikke å finne opp hjulet på nytt. Isteden kan de bygge på et grunnlag som allerede brukes i bransjen.
Når nye ERC-20-tokener opprettes, blir de automatisk interoperative med tjenester og programvare som støtter ERC-20-standarden (programvarelommebøker, maskinvarelommebøker, børser osv.).
Det bør nevnes at ERC-20-standarden ble utviklet til en EIP (spesifikt EIP-20). Dette skjedde et par år etter det opprinnelige forslaget på grunn av den utbredte bruken. Men selv mange år senere brukes fortsatt navnet "ERC-20".
En rask oppsummering av Ethereum-tokener
I motsetning til ETH (Ethereums opprinnelige kryptovaluta), holdes ikke ERC-20-tokener av kontoer. Tokenene eksisterer bare inni en kontrakt, som er som en selvstendig database. Den spesifiserer reglene for tokenene (dvs. navn, symbol, delbarhet) og har en liste som kartlegger brukernes saldo opp mot Ethereum-adressene deres.
For å flytte tokener må brukerne sende en transaksjon til kontrakten og be den om å flytte noe av saldoen til et annet sted. For eksempel: Hvis Anne ønsker å sende 5000 BinanceAcademyTokener til Benjamin, påkaller hun en funksjon i BinanceAcademyToken-smartkontrakten og ber den om å gjøre det.
Påkallelsen oppbevares i noe som ser ut til å være en vanlig Ethereum-transaksjon som betaler 0 ETH til tokenkontrakten. Påkallelsen tas med i et tilleggsfelt i transaksjonen som spesifiserer hva Anne vil gjøre – i vårt tilfelle overføre tokener til Benjamin.
Selv om hun ikke sender ether, må hun fortsatt betale et gebyr pålydende i den for å få transaksjonen inkludert i en blokk. Hvis hun ikke har noen ETH, må hun skaffe seg noen før hun overfører tokener.
Her er et eksempel fra virkeligheten på det ovennevnte på Etherscan: Noen påkaller BUSD-kontrakten. Du kan se at tokener ble overført, og et gebyr ble betalt, selv om feltet Verdi viser at 0 ETH ble sendt.
Nå som vi er i gang, kan vi gå litt dypere for å få en bedre forståelse av strukturen til en typisk ERC-20-kontrakt.
Hvordan lages ERC-20-tokener?
Nedenfor er funksjonene slik de vises i Ethereums spesialbygde Solidity-språk.
totalSupply (totalforsyning)
function totalSupply() public view returns (uint256)
balanceOf (saldo på)
function balanceOf(address _owner) public view returns (uint256 balance)
transfer (overfør)
function transfer(address _to, uint256 _value) public returns (bool success)
transferFrom (overfør fra)
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
Du kan med andre ord autorisere en annen person – eller en annen kontrakt – til å overføre penger på dine vegne. Et mulig bruksområde er å betale for abonnementsbaserte tjenester, der du ikke ønsker å sende en betaling hver dag/uke/måned manuelt. Isteden lar du bare et program gjøre det for deg.
approve (godkjenn)
function approve(address _spender, uint256 _value) public returns (bool success)
Ta for eksempel abonnementsmodellen igjen. Sett at du har en enorm mengde BinanceAcademyTokener, og du vil opprette ukentlige faste betalinger til en streaming-DApp. Du er opptatt med å lese Binance Academy-innhold dag og natt, så du vil ikke bruke tid hver uke på å opprette en transaksjon manuelt.
I verste fall, hvis DApp-en skulle prøve å ta ut alle pengene dine eller hvis det oppstår en feil, mister du bare tjue tokener. Det er kanskje ikke ideelt, men det er absolutt bedre enn å miste hele beholdningen.
allowance (tillatelse)
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Valgfrie funksjoner
Hva kan ERC-20-tokener gjøre?
En stor del av det som gjør ERC-20-tokener attraktive, er fleksibiliteten. Konvensjonene som er bestemt, begrenser ikke utvikling, så partene kan implementere tilleggsfunksjoner og angi spesifikke parametere som passer deres behov.
Stablecoins
For en typisk fiat-støttet stablecoin har en utsteder reserver av euro, dollar, osv. Deretter utsteder de et token for hver enhet i reserven. Dette betyr at hvis USD 10 000 ble låst inne i et hvelv, kunne utstederen opprette 10 000 tokener, som hver kan løses inn for USD 1.
Dette er ganske enkelt å implementere i Ethereum, teknisk sett. En utsteder åpner ganske enkelt en kontrakt med 10 000 tokener. Deretter distribueres de til brukere med et løfte om at de senere kan løse inn tokener mot en proporsjonal mengde fiat-valuta.
Brukerne kan gjøre mange ting med tokenene sine – de kan kjøpe varer og tjenester eller bruke dem i DApps. Alternativt kan de be om at utstederen veksler dem med en gang. I et slikt tilfelle brenner utstederen de returnerte tokenene (gjør dem ubrukelige) og tar ut riktig mengde fiat fra reservene.
Kontrakten som styrer dette systemet, er som nevnt ganske enkel. Men det å lansere en stablecoin krever mye arbeid med eksterne faktorer som logistikk, regeloverholdelse, osv.
Verdipapirtoken
Brukstoken
Kan ERC-20-tokener mines?
Tokendistribusjonen trenger ikke å være automatisert. Mange crowdfunding-arrangementer lar brukerne betale med en rekke forskjellige digitale valutaer (som BNB, BTC, ETH og USDT). De respektive saldoene blir deretter fordelt til adressene som er oppgitt av brukerne.
Fordeler og ulemper med ERC-20-tokener
Fordeler med ERC-20-tokener
Fungible
Dette er ideelt hvis tokenet skal fungere som en valuta. Du vil ikke ha individuelle enheter med ulike egenskaper, noe som kan gjøre dem ikke-fungible. Dette kunne føre til at noen tokener blir mer – eller mindre – verdifulle enn andre, og det undergraver formålet.
Fleksible
Som vi så på i forrige del, er ERC-20-tokener lette å tilpasse og kan skreddersys til mange forskjellige formål. For eksempel kan de brukes som valuta i spill, i lojalitetspoengprogrammer, som digitale samleobjekter eller til og med for å representere kunst- og eiendomsrettigheter.
Populære
ERC-20s popularitet innen kryptovaluta er en svært overbevisende grunn til å bruke den som skisse. Det finnes en mengde børser, lommebøker og smarte kontrakter som allerede er kompatible med nylanserte tokener. Dessuten finnes det rikelig med utviklerstøtte og dokumentasjon.
Ulemper med ERC-20-tokener
Skalerbarhet
Som med mange kryptovalutanettverk er ikke Ethereum immun mot voksesmerter. I nåværende form fungerer det ikke så bra å skalere den – prøver man å sende en transaksjon på travle tidspunkter, resulterer det i høye gebyrer og forsinkelser. Hvis du starter et ERC-20-token og nettverket blir overbelastet, kan brukervennligheten bli påvirket.
Svindel
Selv om dette ikke er et problem med selve teknologien, kan det at det er så lett å lansere et token, ses på som en ulempe i visse tilfeller. Det krever minimal innsats å lage et enkelt ERC-20-token, noe som betyr at hvem som helst kan gjøre det – på godt og vondt.
Derfor bør du være forsiktig med hva du investerer i. Det finnes masse pyramide- og Ponzi-opplegg som er forkledd som blokkjedeprosjekter. Gjør egne undersøkelser før du investerer, og trekk dine egne konklusjoner om hvorvidt en mulighet er legitim.
ERC-20, ERC-1155, ERC-223, ERC-721 – hva er forskjellen?
ERC-20 var den første (og til dags dato den mest populære) Ethereum-tokenstandarden, men den er på ingen måte den eneste. Gjennom årene har mange andre dukket opp, enten med forbedringer i ERC-20 eller med hensikt å nå helt andre mål.
Noen av de mindre vanlige standardene er de som brukes i ikke-fungible tokener (non-fungible tokens / NFTs). Noen ganger kan ditt bruksområde ha nytte av unike tokener med forskjellige attributter. Hvis du ønsket å lage tokener for et unikt kunstverk, en eiendel i et spill osv., kan en av disse kontraktstypene være mer fristende.
ERC-1155-standarden kan sees på som en forbedring av både ERC-721 og ERC-20. Den skisserer en standard som støtter både gjensidig fungible og ikke-fungible tokener i samme kontrakt.
Andre alternativer som ERC-223 eller ERC-621 prøver å forbedre brukervennligheten. Førstnevnte implementerer sikkerhetstiltak for å hindre utilsiktede tokenoverføringer. Sistnevnte legger til ekstra funksjoner for å øke og redusere tokenforsyningen.
Avsluttende tanker
ERC-20-standarden har dominert kryptoressursene i årevis, og det er lett å skjønne hvorfor. Ganske enkelt kan hvem som helst distribuere en enkel kontrakt som passer til mange bruksområder (brukstokener, stablecoins, etc.). Når det er sagt, mangler ERC-20 noen av funksjonene som de andre standardene har å by på. Det gjenstår å se om etterfølgende kontraktstyper tar dens plass.