Introduktion
Ethereum grundades av Vitalik Buterin under 2014 och positionerar sig som en öppen källkodsplattform för att lansera decentraliserade applikationer (DApps). Många av Buterins motiv för att skapa en ny blockkedja härrörde från Bitcoin-protokollets brist på flexibilitet.
Sedan lanseringen har Ethereum-blockkedjan attraherat utvecklare, företag och entreprenörer, vilket skapat en växande bransch av användare som lanserar smarta kontrakt och distribuerade applikationer.
I den här artikeln ska vi titta närmare på ERC-20-standarden som är ett viktigt ramverk för att skapa token. Även om det är specifikt för Ethereum-nätverket inspirerade ramverket också andra blockkedjestandarder, såsom Binance-kedjans BEP-2.
Vad är ERC-20-standarden?
ERC-20 skrevs av Vitalik Buterin och Fabian Vogelsteller under 2015 och föreslår ett relativt enkelt format för Ethereum-baserade token. Genom att följa detta format behöver utvecklarna inte uppfinna hjulet på nytt. Istället kan de bygga från en grund som redan används i branschen.
När nya ERC-20-token har skapats är de automatiskt kompatibla med tjänster och programvara som stöder ERC-20-standarden (programvaruplånböcker, hårdvaruplånböcker, börser, osv).
Det bör noteras att ERC-20-standarden utvecklades till en EIP (och specifikt en EIP-20). Detta skedde ett par år efter det ursprungliga förslaget på grund av dess utbredda användning. Men även flera år senare har namnet "ERC-20" stannat kvar.
En snabb sammanfattning av Ethereums token
Till skillnad från ETH (Ethereums egen kryptovaluta) innehas inte ERC-20-token av konton. Token finns bara i ett kontrakt, vilket är som en fristående databas. Den specificerar reglerna för token (det vill säga namn, symbol och delbarhet) och har en lista som mappar användarnas balanser till deras Ethereum-adresser.
För att flytta token måste användarna skicka en transaktion till kontraktet och be den att allokera en del av sina balanser någon annanstans. Om Alice till exempel vill skicka 5 000 Binance Academytoken till Bob, anropar hon en funktion i Binance Academy-tokenens smarta kontrakt och ber den att göra det.
Hennes åtgärd finns i vad som verkar vara en vanlig Ethereum-transaktion som betalar 0 ETH till tokenkontraktet. Åtgärden ingår i ett extra fält i transaktionen som anger vad Alice vill göra – i detta fall överföra token till Bob.
Även om hon inte skickar ether måste hon fortfarande betala en avgift som anges i den för att få sin transaktion inkluderad i ett block. Om hon inte har någon ETH måste hon skaffa detta innan hon överför token.
Här är ett verkligt exempel på ovanstående från Etherscan: Någon anropar BUSD-kontraktet. Du kan se att token har överförts och att en avgift har betalats, även om fältet Värde visar att 0 ETH har skickats.
Nu när vi har fått mer koll på detta kan vi ta en närmare titt för att bättre förstå strukturen för ett typiskt ERC-20-kontrakt.
Hur skapas ERC-20-token?
Nedan finns funktionerna så som de visas i Ethereums specialbyggda Solidity-språk.
totalSupply
function totalSupply() public view returns (uint256)
balanceOf
function balanceOf(address _owner) public view returns (uint256 balance)
transfer
function transfer(address _to, uint256 _value) public returns (bool success)
transferFrom
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
Med andra ord kan du auktorisera någon – eller ett annat kontrakt – att överföra tillgångar åt dig. Ett möjligt användningsområde är att du betalar för abonnemangsbaserade tjänster, där du inte vill skicka en betalning manuellt varje dag/vecka/månad. Istället låter du bara ett program göra det åt dig.
approve
function approve(address _spender, uint256 _value) public returns (bool success)
Ta vårt exempel på en prenumerationsmodell igen. Anta att du har en enorm mängd BinanceAcademyToken och att du vill ställa in veckovisa återkommande betalningar till en strömmande DApp. Du är upptagen med att läsa innehållet på Binance Academy dygnet runt, så du vill inte slösa tid på att skapa en manuell transaktion varje vecka.
Om DAppen i värsta fall försöker ta ut alla dina tillgångar, eller om en bugg hittas, kan du max förlora 20 token. Det kanske inte är idealiskt, men det är definitivt mer tilltalande än att förlora hela ditt innehav.
allowance
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Tillvalsfunktionerna
Vad kan ERC-20-token göra?
En stor del av nyttan med ERC-20-token är deras flexibilitet. Konventionerna som anges begränsar inte utvecklingen, så parterna kan implementera ytterligare funktioner och ställa in specifika parametrar för att passa alla deras behov.
Stablecoin
För ett typiskt fiat-backed stablecoin har en emittent reserver i euro, dollar, etc. För varje enhet i deras reserv utfärdar de sedan en token. Detta innebär att om 10 000 USD låses in i ett kassavalv så kan emittenten skapa 10 000 token och var och en kan lösas in för 1 USD.
Detta är ganska enkelt att implementera i Ethereum, rent tekniskt sett. En emittent lanserar helt enkelt ett kontrakt med 10 000 token. Sedan kommer denne att distribuera dem till användare med löftet att de senare kan lösa in token för en proportionell mängd fiatvaluta.
Användarna kan göra ett antal saker med sina token – de kan köpa varor och tjänster eller använda dem i DApps. Alternativt kan de begära att emittenten byter ut dem på en gång. I det fallet bränner emittenten alla returnerade token (gör dem oanvändbara) och tar ut rätt mängd fiat från sina reserver.
Kontraktet som styr detta system är, som tidigare nämnts, relativt förenklat. Att lansera ett stablecoin kräver dock mycket arbete med externa faktorer som logistik, regelefterlevnad med mera.
Säkerhetstoken
Verktygstoken
Kan man skapa ERC-20-token?
Tokendistributionen behöver inte vara automatiserad. Många crowdfunding-event tillåter användare att betala med en rad olika digitala valutor (som BNB, BTC, ETH och USDT). Respektive balans allokeras sedan till de adresser som användarna tillhandahåller.
För- och nackdelar med ERC-20-token
Fördelar med ERC-20-token
Fungibla
Detta är idealiskt om din token syftar till att vara en valuta av något slag. Du skulle inte vilja ha individuella enheter med särskiljbara egenskaper, vilket skulle göra dem icke-fungibla. Detta kan göra att vissa token blir mer – eller mindre – värdefulla än andra, vilket eliminerar deras syfte.
Flexibla
Som vi utforskade i föregående avsnitt är ERC-20-token mycket anpassningsbara och kan skräddarsys för många olika applikationer. De kan till exempel användas som valuta i spel, i lojalitetspoängprogram, som digitala samlarobjekt eller till och med för att representera konst och äganderätt.
Populära
ERC-20:s popularitet i kryptovalutabranschen är en mycket övertygande anledning till att använda dem som en mall. Det finns massor av börser, plånböcker och smarta kontrakt som redan är kompatibla med nylanserade token. Dessutom finns det gott om stöd och dokumentation för utvecklare.
Nackdelar med ERC-20-token
Skalbarhet
Precis som med många kryptovalutanätverk är Ethereum inte immun mot växtvärk. I sin nuvarande form skalar den inte bra – att försöka skicka en transaktion under högtrafik resulterar i höga avgifter och förseningar. Om du startar en ERC-20-token och nätverket blir överbelastat, kan dess användbarhet påverkas.
Bedrägerier
Även om det inte är ett problem med själva tekniken kan enkelheten med vilken en token kan lanseras anses vara en nackdel i vissa avseenden. Det krävs minimal ansträngning att skapa en enkel ERC-20-token, vilket betyder att vem som helst kan göra det – på gott och ont.
Därför bör du vara försiktig med vad du investerar i. Det finns ett antal pyramid- och ponzi-system förklädda som blockkedjeprojekt. Gör din egen efterforskning innan du investerar för att dra dina egna slutsatser om huruvida en möjlighet är legitim eller inte.
ERC-20, ERC-1155, ERC-223, ERC-721 – vad är skillnaden?
ERC-20 var den första (och hittills den mest populära) Ethereum-tokenstandarden, men inte den enda. Under årens lopp har många andra dykt upp, som antingen föreslår förbättringar av ERC-20 eller försöker uppnå helt olika mål.
Några av de mindre vanliga standarderna är de som används i icke-fungibla token (NFT:er). Ibland gynnas användningsområdet faktiskt av att ha unika token med olika attribut. Om du ville tokenisera ett unikt konstverk, tillgång i ett spel med mera, kan en av dessa kontraktstyper vara mer tilltalande.
ERC-1155-standarden kan ses som en förbättring av både ERC-721 och ERC-20. Den beskriver en standard som stöder både fungibla och icke-fungibla token i samma kontrakt.
Andra alternativ som ERC-223 eller ERC-621 syftar till att förbättra användbarheten. Den första implementerar skyddsåtgärder för att förhindra oavsiktliga tokenöverföringar. Den andra lägger till extra funktioner för att öka och minska tokentillgången.
Sammanfattningsvis
ERC-20-standarden har dominerat kryptotillgångsvärlden i flera år och det är inte svårt att förstå varför. Med relativ lätthet kan vem som helst använda ett enkelt kontrakt som passar ett brett spektrum av användningsområden (verktygstoken, stablecoin, och så vidare). Med det sagt saknar ERC-20 några av de funktioner som har skapats av andra standarder. Det återstår att se om efterföljande typer av kontrakt kommer att ersätta den.