Johdanto
Vitalik Buterin perusti Ethereumin vuonna 2014, ja se asettui avoimen lähdekoodin alustaksi hajautettujen sovellusten (DApps) luomiseen. Monet Buterinin motiivit uuden lohkoketjun luomiseen johtuivat Bitcoin-protokollan joustavuuden puutteesta.
Lanseerauksestaan lähtien Ethereum-lohkoketju on houkutellut kehittäjiä, yrityksiä ja yrittäjiä ja synnyttänyt kasvavan teollisuudenalan käyttäjille, jotka luovat älysopimuksia ja hajautettuja sovelluksia.
Tässä artikkelissa tarkastellaan ERC-20-standardia, joka on tärkeä viitekehys tokenien luomiselle. Vaikka standardi liittyy Ethereum-verkkoon, se on tarjonnut inspiraatiota myös muille lohkoketjustandardeille, kuten Binance Chainin BEP-2-standardille.
Mikä on ERC-20-standardi?
Vitalik Buterinin ja Fabian Vogelstellerin vuonna 2015 kirjoittama ERC-20 ehdottaa suhteellisen yksinkertaista muotoa Ethereum-pohjaisille tokeneille. Kehittäjien ei tarvitse keksiä pyörää uudelleen, jos he noudattavat pääpiirteitä. Sen sijaan he voivat rakentaa koko alalla jo käytetyn perustan päälle.
Kun uudet ERC-20-tokenit on luotu, ne ovat automaattisesti yhteentoimivia ERC-20-standardia tukevien palveluiden ja ohjelmistojen kanssa (ohjelmistolompakot, laitteistolompakot, pörssit jne.).
On huomattava, että ERC-20-standardi kehitettiin EIP:ksi (erityisesti EIP-20:ksi). Tämä tapahtui pari vuotta alkuperäisen ehdotuksen jälkeen sen laajan käytön vuoksi. Nimi "ERC-20" on kuitenkin vuosia myöhemmin edelleen käytössä.
Lyhyt yhteenveto Ethereum-tokeneista
Toisin kuin ETH:iä (Ethereumin alkuperäinen kryptovaluutta), ERC-20-tokeneita ei ole tilien hallussa. Tokenit ovat olemassa vain sopimuksen sisällä, joka on kuin itsenäinen tietokanta. Se määrittelee säännöt tokeneille (eli nimen, symbolin, jaettavuuden) ja ylläpitää luetteloa, joka kartoittaa käyttäjien saldot heidän Ethereum-osoitteisiinsa.
Tokenien siirtämiseksi käyttäjien on lähetettävä transaktio sopimukseen ja pyydettävä sitä kohdistamaan osa heidän saldostaan muualle. Jos Alice esimerkiksi haluaa lähettää 5 000 BinanceAcademyTokenia Bobille, hän kutsuu BinanceAcademyToken-älysopimuksen sisällä olevaa toimintoa ja pyytää sitä tekemään niin.
Alicen kutsu sisältyy tavalliselta näyttävään Ethereum-transaktioon, joka maksaa 0 ETH:iä token-sopimukseen. Kutsu sisältyy transaktion lisäkenttään, joka määrittää, mitä Alice haluaa tehdä; meidän tapauksessamme siirtää tokeneita Bobille.
Vaikka Alice ei lähetä etheriä, hänen on silti maksettava siinä määrätty maksu saadakseen transaktionsa lohkoon. Jos hänellä ei ole ETH:iä, hänen on hankittava niitä ennen tokenien siirtämistä.
Tässä on tosielämän esimerkki yllä olevasta Etherscanissä: joku kutsuu BUSD-sopimusta. Näet, että tokeneita on siirretty ja maksu on maksettu, vaikka Arvo-kentässä näkyy, että 0 ETH:iä on lähetetty.
Nyt kun olemme vauhdissa, katsotaanpa konepellin alle ymmärtääksemme paremmin tyypillisen ERC-20-sopimuksen rakenteen.
Miten ERC-20-tokenit luodaan?
Alla on toiminnot sellaisina kuin ne näkyvät Ethereumissa käytettäväksi luodussa Solidity-kielessä.
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)
Toisin sanoen voit valtuuttaa jonkun – tai muun sopimuksen – siirtämään varoja puolestasi. Mahdollinen käyttötapaus on tilauspohjaisten palveluiden maksaminen, jolloin et halua lähettää manuaalisesti maksua joka päivä/viikko/kuukausi. Sen sijaan annat ohjelman hoitaa sen puolestasi.
approve
function approve(address _spender, uint256 _value) public returns (bool success)
Käytetään esimerkkinä jälleen edellä mainittua tilauspohjaista mallia. Oletetaan, että sinulla on valtava määrä BinanceAcademyTokeneja ja että haluat määrittää viikoittaiset toistuvat maksut suoratoisto-DAppiin. Luet Binance Academyn sisältöä yötä päivää, joten et halua käyttää joka viikko aikaa transaktion luomiseen manuaalisesti.
Pahimmillaan, jos DApp yrittää nostaa kaikki varat tai jos esiintyy virhe, voit menettää vain kaksikymmentä tokenia. Tämä ei ehkä ole ihanteellista, mutta varmasti houkuttelevampaa kuin koko omaisuuden menettäminen.
allowance
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
Valinnaiset toiminnot
Mitä ERC-20-tokenit voivat tehdä?
Suuri osa ERC-20-tokenien houkuttelevuudesta on niiden joustavuudessa. Esitetyt käytännöt eivät rajoita kehitystä, joten osapuolet voivat ottaa käyttöön lisäominaisuuksia ja asettaa erityisiä parametreja tarpeidensa mukaan.
Stablecoinit
Tyypillisten fiatiin sidottujen stablecoinien liikkeeseenlaskija pitää hallussaan euroja, dollareita jne. Se luo sitten jokaista hallussaan olevaa yksikköä vastaavan tokenin. Tämä tarkoittaa, että jos liikkeeseenlaskijan holvissa on 10 000 dollaria, se voi luoda 10 000 tokenia, joista jokainen voidaan lunastaa 1 dollarilla.
Tämä on teknisesti melko helppo toteuttaa Ethereumissa. Liikkeeseenlaskija tekee yksinkertaisesti sopimuksen 10 000 tokenille. Sitten liikkeeseenlaskija jakaa ne käyttäjille ja lupaa, että nämä voivat myöhemmin lunastaa tokenit suhteellisella määrällä fiat-valuuttaa.
Käyttäjät voivat tehdä useita asioita tokeneillaan – he voivat maksaa tavaroita ja palveluita tai käyttää tokeneita DAppeissa. Vaihtoehtoisesti he voivat pyytää liikkeeseenlaskijaa vaihtamaan ne välittömästi. Tässä tapauksessa liikkeeseenlaskija polttaa palautetut tokenit (tekee ne käyttökelvottomiksi) ja poistaa oikean määrän fiatia varannoistaan.
Kuten edellä mainittiin, tätä järjestelmää ohjaava sopimus on suhteellisen yksinkertainen. Stablecoinin lanseeraaminen vaatii kuitenkin paljon työtä ulkoisten tekijöiden, kuten logistiikkaan, säädöstenmukaisuuteen jne., liittyen.
Arvopaperitokenit
Hyötytokenit
Voiko ERC-20-tokeneita louhia?
Tokenien jakelua ei tarvitse välttämättä automatisoida. Monet joukkorahoitustapahtumat antavat käyttäjille mahdollisuuden maksaa useilla eri digitaalisilla valuutoilla (kuten BNB, BTC, ETH ja USDT). Vastaavat saldot allokoidaan sitten käyttäjien antamiin osoitteisiin.
ERC-20-tokenien hyvät ja huonot puolet
ERC-20-tokenien hyvät puolet
Vaihdettava
Tämä on ihanteellista, jos tokenisi on tarkoitus olla jonkinlainen valuutta. Et halua yksittäisiä yksiköitä, joilla on erotettavia piirteitä, mikä tekisi niistä ei-vaihdettavia. Tämä voisi aiheuttaa sen, että joistakin tokeneista tulisi enemmän tai vähemmän arvokkaita kuin toisista, mikä heikentäisi niiden tarkoitusta.
Joustava
Kuten edellisessä osiossa tutkimme, ERC-20-tokenit ovat erittäin suuressa määrin muokattavia ja ne voidaan räätälöidä moniin eri sovelluksiin. Niitä voidaan käyttää esimerkiksi pelin sisäisenä valuuttana, kanta-asiakaspisteohjelmissa, digitaalisina keräilyesineinä tai jopa edustamaan taideteosten ja kiinteistöjen omistusoikeuksia.
Suosittu
ERC-20:n suosio kryptovaluuttateollisuudessa on erittäin pakottava syy käyttää sitä perustana. On olemassa lukuisia pörssejä, lompakoita ja älysopimuksia, jotka ovat jo yhteensopivia uusien tokenien kanssa. Lisäksi tarjolla on runsaasti tukea ja dokumentaatiota kehittäjille.
ERC-20-tokenien huonot puolet
Skaalautuva
Kuten monet kryptovaluuttaverkot, Ethereum ei ole immuuni ongelmille. Nykyisessä muodossaan se ei skaalaudu hyvin – transaktion lähettäminen ruuhka-aikoina johtaa korkeisiin maksuihin ja viivästyksiin. Jos luot ERC-20-tokenin ja verkko ruuhkautuu, tämä voi vaikuttaa sen käytettävyyteen.
Huijaukset
Vaikka tämä ongelma ei liity itse tekniikkaan, tokenin luomisen helppoutta voidaan pitää jossain suhteessa haittapuolena. Yksinkertaisen ERC-20-tokenin luominen vaatii vain vähän vaivaa, mikä tarkoittaa, että kuka tahansa voi tehdä sen – hyvässä tai pahassa tarkoituksessa.
Siksi sinun tulee olla varovainen sijoituksiesi kanssa. Markkinoilla on useita lohkoketjuprojekteiksi naamioituja pyramidi- ja Ponzi-huijauksia. Tutustu projekteihin huolellisesti ennen sijoittamista tehdäksesi omat johtopäätöksesi siitä, ovatko projektin voitontuottomahdollisuudet oikeita.
ERC-20, ERC-1155, ERC-223, ERC-721 – mitä eroa niillä on?
ERC-20 oli ensimmäinen (ja tähän mennessä suosituin) Ethereum-tokenstandardi, mutta se ei suinkaan ole ainoa. Vuosien varrella on ilmaantunut monia muita standardeja, jotka ovat joko ehdottaneet parannuksia ERC-20:een tai yrittäneet saavuttaa kokonaan erilaisia tavoitteita.
Jotkin vähemmän yleisistä standardeista ovat niitä, joita käytetään non-fungible tokeneissa (NFT). Joskus projekti hyötyy siitä, että on olemassa ainutlaatuisia tokeneita, jotka tarjoavat erilaisia piirteitä. Jos haluat tokenisoida ainutlaatuisen taideteoksen, pelin sisäistä materiaalia jne., jokin näistä sopimustyypeistä saattaa olla houkuttelevampi.
ERC-1155-standardi voidaan nähdä parannuksena sekä ERC-721- että ERC-20-standardiin. Siinä hahmotellaan standardi, joka tukee sekä vaihdettavia että ei-vaihdettavia tokeneja (NFT) samassa sopimuksessa.
Muut vaihtoehdot, kuten ERC-223 tai ERC-621, pyrkivät parantamaan käytettävyyttä. Edellinen toteuttaa suojatoimia vahingossa tapahtuvien tokenien siirtojen estämiseksi. Jälkimmäinen lisää ylimääräisiä toimintoja tokenien tarjonnan lisäämiseksi ja vähentämiseksi.
Yhteenveto
ERC-20-standardi on hallinnut krypto-omaisuuksien alaa jo vuosien ajan, eikä ole vaikea ymmärtää miksi. Suhteellisen helposti kuka tahansa voi ottaa käyttöön yksinkertaisen sopimuksen, joka sopii monenlaisiin käyttötarkoituksiin (arvopaperitokenit, stablecoinit jne.). ERC-20:stä puuttuu kuitenkin joitakin muiden standardien tuomia ominaisuuksia. Nähtäväksi jää, korvaavatko myöhemmät sopimustyypit sen.