Ievads

Ethereum 2014. gadā dibināja Vitaliks Buterins, pozicionējot sevi kā atvērtā pirmkoda platformu decentralizētu lietojumprogrammu (DApps) palaišanai. Daudzas no Buterina motivācijām jaunas blokķēdes izveidei izrietēja no Bitcoin protokola elastības trūkuma.

Kopš tās palaišanas Ethereum blokķēde ir piesaistījusi izstrādātājus, uzņēmumus un uzņēmējus, radot augošu lietotāju nozari, kas uzsāk viedos līgumus un izplatītās lietojumprogrammas.

Šajā rakstā mēs apskatīsim ERC-20 standartu, kas ir svarīgs marķieru izveides ietvars. Lai gan tas ir raksturīgs Ethereum tīklam, ietvars iedvesmoja arī citus blokķēdes standartus, piemēram, Binance Chain BEP-2.


Kas ir ERC-20 standarts?

Ethereum ERC ir Ethereum komentāru pieprasījums. Tie ir tehniski dokumenti, kuros izklāstīti Ethereum programmēšanas standarti. Tos nedrīkst sajaukt ar Ethereum uzlabošanas priekšlikumiem (EIP), kas, tāpat kā Bitcoin BIP, liecina par paša protokola uzlabojumiem. Tā vietā ERC mērķis ir izveidot konvencijas, kas atvieglo lietojumprogrammu un līgumu savstarpēju mijiedarbību.

ERC-20, kuru 2015. gadā izveidoja Vitaliks Buterins un Fabians Vogelstellers, piedāvā salīdzinoši vienkāršu Ethereum marķieru formātu. Ievērojot izklāstu, izstrādātājiem nav jāizgudro ritenis no jauna. Tā vietā viņi var izveidot pamatu, kas jau tiek izmantots visā nozarē.

Tiklīdz ir izveidoti jauni ERC-20 marķieri, tie ir automātiski savietojams ar pakalpojumiem un programmatūru, kas atbalsta ERC-20 standartu (programmatūras maki, aparatūras maki, maiņas līdzekļi utt.).

Jāatzīmē, ka ERC-20 standarts tika izstrādāts par EIP (konkrēti, EIP-20). Tas notika pāris gadus pēc sākotnējā priekšlikuma, jo tas tika plaši izmantots. Tomēr arī pēc gadiem vārds “ERC-20” ir pielipis.


Īss kopsavilkums par Ethereum žetoniem

Atšķirībā no ETH (Ethereum vietējās kriptovalūtas), ERC-20 marķieri netiek glabāti kontos. Marķieri pastāv tikai līgumā, kas ir kā patstāvīga datu bāze. Tajā ir norādīti marķieru noteikumi (t.i., nosaukums, simbols, dalāmība) un tiek uzturēts saraksts, kurā lietotāju atlikumi tiek kartēti ar viņu Ethereum adresēm.

Lai pārvietotu marķierus, lietotājiem ir jānosūta darījums uz līgumu, lūdzot daļu no viņu atlikuma piešķirt citur. Piemēram, ja Alise vēlas Bobam nosūtīt 5000 BinanceAcademyTokens, viņa izsauc funkciju BinanceAcademyToken viedā līguma ietvaros, lūdzot to darīt.


Users interacting with a smart contract


Viņas zvans ir ietverts, šķiet, parastā Ethereum darījumā, kas maksā 0 ETH par marķiera līgumu. Zvans ir iekļauts darījuma papildu laukā, kurā norādīts, ko Alise vēlas darīt — mūsu gadījumā pārsūtīt žetonus Bobam.

Pat ja viņa nesūta ēteri, viņai joprojām ir jāmaksā tajā norādītā maksa, lai viņas darījums tiktu iekļauts blokā. Ja viņai nav ETH, pirms žetonu pārsūtīšanas viņai tie jāiegūst.

Šeit ir reāls piemērs iepriekšminētajam pakalpojumā Etherscan: kāds zvana uz BUSD līgumu. Varat redzēt, ka marķieri ir pārsūtīti un maksa ir samaksāta, lai gan laukā Vērtība ir norādīts, ka ir nosūtīts 0 ETH.

Tagad, kad esam tikuši galā, ieskatīsimies zem pārsega, lai labāk izprastu tipiskā ERC-20 līguma struktūru. 


Kā tiek izveidoti ERC-20 marķieri?


Illustration of an ERC-20 token being created


Lai jūsu līgums būtu saderīgs ar ERC-20, jūsu līgumā ir jāiekļauj sešas obligātas funkcijas: totalSupply, balanceOf, transfer, transferFrom, apstiprināšana un pabalsts. Turklāt varat norādīt izvēles funkcijas, piemēram, nosaukumu, simbolu un decimāldaļu. Jums varētu būt skaidrs, ko šīs funkcijas dara, pamatojoties uz to nosaukumiem. Ja nē, neuztraucieties — mēs tos sadalīsim. 

Tālāk ir norādītas funkcijas, kas parādās Ethereum mērķtiecīgi izveidotajā Solidity valodā.


TotalSupply

funkcija totalSupply() publiskā skata atgriež (uint256)

Kad lietotājs to izsauc, iepriekš minētā funkcija atgriež kopējo marķieru piedāvājumu, kas ir līgumā.


atlikumsOf 

funkcija balanceOf(adrese _owner) public view atgriež (uint256 bilance)

Atšķirībā no totalSupply, balanceOf ņem parametru (adresi). Kad tas tiek izsaukts, tas atgriež šīs adreses marķiera krājumu atlikumu. Atcerieties, ka konti Ethereum tīklā ir publiski, tāpēc varat jautāt jebkura lietotāja bilanci, ja zināt adresi.


nodošana

funkcijas pārsūtīšana (adrese _uz, uint256 _vērtība) publiski atgriež (veiksmīgi)

transfer aptly pārsūta marķierus no viena lietotāja citam. Šeit jūs norādiet adresi, uz kuru vēlaties nosūtīt, un pārskaitāmo summu.

Izsaucot, pārsūtīšana aktivizē kaut ko, ko sauc par notikumu (šajā gadījumā notikumu pārsūtīšanu), kas būtībā liek blokķēdei iekļaut atsauci uz to.


pārsūtīšanaNo

funkcija transferFrom(adrese _no, adrese _uz, uint256 _vērtība) publiski atgriežas (veiksmīgs rezultāts)

Funkcija transferFrom ir ērta alternatīva pārsūtīšanai, kas nodrošina nedaudz lielāku programmējamību decentralizētās lietojumprogrammās. Tāpat kā pārsūtīšana, to izmanto marķieru pārvietošanai, taču šiem marķieriem nav obligāti jāpieder personai, kas izsauc līgumu. 

Citiem vārdiem sakot, jūs varat pilnvarot kādu — vai citu līgumu — pārskaitīt līdzekļus jūsu vārdā. Iespējamais lietošanas gadījums ietver maksājumu par abonēšanas pakalpojumiem, kad nevēlaties manuāli sūtīt maksājumu katru dienu/nedēļu/mēnesi. Tā vietā jūs vienkārši ļaujiet programmai to izdarīt jūsu vietā.

Šī funkcija aktivizē tādu pašu notikumu kā pārsūtīšana.


apstiprināt

funkcija apstiprināt(adrese _spender, uint256 _value) publiski atgriežas (veiksmīgs rezultāts)

apstiprināt ir vēl viena noderīga funkcija no programmējamības viedokļa. Izmantojot šo funkciju, varat ierobežot to žetonu skaitu, ko viedais līgums var izņemt no jūsu bilances. Bez tā jūs riskējat, ka līgums nedarbosies nepareizi (vai tiks izmantots) un nozags visus jūsu līdzekļus. 

Vēlreiz izmantojiet mūsu abonēšanas modeļa piemēru. Pieņemsim, ka jums ir milzīgs daudzums BinanceAcademyTokens un jūs vēlaties iestatīt iknedēļas periodiskus maksājumus straumēšanas DApp. Jūs esat aizņemts ar Binance Academy satura lasīšanu dienu un nakti, tāpēc nevēlaties katru nedēļu tērēt laiku, lai manuāli izveidotu darījumu.

Jums ir milzīgs BinanceAcademyTokens atlikums, kas ievērojami pārsniedz to, kas nepieciešams, lai samaksātu par abonementu. Lai neļautu DApp tos visus iztukšot, varat iestatīt ierobežojumu ar apstiprinājumu. Pieņemsim, ka jūsu abonements maksā vienu BinanceAcademyToken nedēļā. Ja jūs ierobežojat apstiprināto vērtību līdz divdesmit žetoniem, jūsu abonements var tikt automātiski apmaksāts piecus mēnešus.

Sliktākajā gadījumā, ja DApp mēģina izņemt visus jūsu līdzekļus vai tiek atrasta kļūda, jūs varat zaudēt tikai divdesmit žetonus. Tas var nebūt ideāls, taču tas noteikti ir pievilcīgāks nekā visu savu īpašumu zaudēšana.

Izsaucot apstiprinājumu, tiek aktivizēts apstiprināšanas notikums. Tāpat kā pārsūtīšanas notikums, tas ieraksta datus blokķēdē.


pabalstu 

funkcijas pabalsts (adrese _īpašnieks, adrese _tērētājs) publiskais skats atgriež (atlicis uint256)

pabalstu var izmantot kopā ar apstiprināt. Kad esat devis līguma atļauju pārvaldīt savus marķierus, varat to izmantot, lai pārbaudītu, cik daudz to joprojām var izņemt. Piemēram, ja jūsu abonements ir iztērējis divpadsmit no jūsu divdesmit apstiprinātajiem marķieriem, izsaucot piemaksas funkciju, kopā jāatgriež astoņi.


Izvēles funkcijas

Iepriekš apspriestās funkcijas ir obligātas. No otras puses, vārds, simbols un decimāldaļa nav jāiekļauj, taču tie var padarīt jūsu ERC-20 līgumu mazliet skaistāku. Respektīvi, tie ļauj pievienot cilvēkam lasāmu nosaukumu, iestatīt simbolu (t.i., ETH, BTC, BNB) un norādīt, ar cik zīmēm aiz komata ir dalāmi marķieri. Piemēram, marķieri, kas tiek izmantoti kā valūtas, var gūt lielāku labumu no tā, ka tie ir dalāmāki, nekā marķieri, kas apzīmē īpašumtiesības uz īpašumu.


Apskatiet šo piemēru vietnē GitHub, lai redzētu šos elementus reālā līgumā.


Ko var darīt ERC-20 marķieri?


Illustration of various uses of ERC-20 tokens


Apvienojot visas iepriekš minētās funkcijas, mēs esam ieguvuši ERC-20 līgumu. Mēs varam pieprasīt kopējo piedāvājumu, pārbaudīt atlikumus, pārskaitīt līdzekļus un dot atļaujas citiem DApps pārvaldīt marķierus mūsu vietā.

Liela daļa no ERC-20 žetonu pievilcības ir to elastība. Izklāstītās konvencijas neierobežo izstrādi, tāpēc puses var ieviest papildu funkcijas un iestatīt konkrētus parametrus atbilstoši savām vajadzībām.


Stabilas monētas

Stabilās monētas (žetoni, kas piesaistīti fiat valūtām) bieži izmanto ERC-20 marķiera standartu. Viens piemērs ir darījums ar BUSD līgumu, uz kuru mēs atsaucāmies iepriekš, un lielākā daļa lielāko stabilo monētu ir pieejamas arī šajā formātā.

Tipiskai stabilai monētai, kas nodrošināta ar fiat, emitents glabā eiro, dolāru utt. rezerves. Pēc tam katrai savā rezervē esošajai vienībai tiek izdots žetons. Tas nozīmē, ka, ja 10 000 ASV dolāru tiktu bloķēti glabātavā, emitents varētu izveidot 10 000 žetonu, no kuriem katru var izpirkt par 1 ASV dolāru.

Tehniski runājot, Ethereum to ir diezgan viegli ieviest. Emitents vienkārši noslēdz līgumu ar 10 000 žetonu. Pēc tam viņi tos izplatīs lietotājiem ar solījumu, ka viņi vēlāk varēs izpirkt žetonus par proporcionālu fiat valūtas summu. 

Lietotāji ar saviem marķieriem var veikt vairākas darbības — viņi var iegādāties preces un pakalpojumus vai izmantot tos DApps. Alternatīvi, viņi var pieprasīt, lai emitents tos nekavējoties apmaina. Tādā gadījumā izdevējs sadedzina atgrieztos žetonus (padarot tos nelietojamus) un izņem no savām rezervēm pareizo fiat daudzumu.

Līgums, kas regulē šo sistēmu, kā minēts iepriekš, ir samērā vienkāršots. Tomēr, lai palaistu klajā stabilu monētu, ir nepieciešams daudz strādāt pie ārējiem faktoriem, piemēram, loģistikas, normatīvo aktu atbilstības utt.


Drošības žetoni

Drošības žetoni ir līdzīgi stabilām monētām. Līguma līmenī abas varētu būt pat identiskas, jo tās darbojas vienādi. Atšķirība notiek emitenta līmenī. Drošības marķieri apzīmē vērtspapīrus, piemēram, akcijas, obligācijas vai fiziskos aktīvus. Bieži (lai gan tas ne vienmēr tā ir) tās īpašniekam piešķir zināmu daļu uzņēmuma vai preces.


Lietderības marķieri

Lietderības marķieri, iespējams, ir visizplatītākie mūsdienās sastopamie marķieru veidi. Atšķirībā no iepriekšējiem diviem piedāvājumiem, tie netiek atbalstīti ar neko. Ja ar aktīviem nodrošināti marķieri ir kā aviokompānijas akcijas, tad lietderības marķieri ir kā bieži lidojošas programmas: tie pilda funkciju, bet tiem nav ārējas vērtības. Lietderības marķieri var nodrošināt neskaitāmus lietošanas gadījumus, kalpojot kā spēles valūta, degviela decentralizētām lietojumprogrammām, lojalitātes punkti un daudz kas cits.


➠ Vai vēlaties sākt darbu ar kriptovalūtu? Pērciet ēteri vietnē Binance!


Vai varat iegūt ERC-20 žetonus?

Jūs varat iegūt ēteri (ETH), taču žetonus nevar iegūt — mēs sakām, ka tie tiek izkalti, kad tiek izveidoti jauni. Kad tiek noslēgts līgums, izstrādātāji izplata piegādi saskaņā ar saviem plāniem un ceļvedi.

Parasti tas tiek darīts, izmantojot sākotnējo monētu piedāvājumu (ICO), sākotnējo apmaiņas piedāvājumu (IEO) vai drošības marķiera piedāvājumu (STO). Jūs varat saskarties ar šo akronīmu variācijām, taču šie jēdzieni ir diezgan līdzīgi. Investori nosūta ēteri uz līguma adresi un pretī saņem jaunus žetonus. Iekasētā nauda tiek izmantota, lai finansētu turpmāko projekta attīstību. Lietotāji sagaida, ka varēs izmantot savus marķierus (vai nu nekavējoties, vai vēlāk) vai pārdot tos tālāk, lai gūtu peļņu, attīstoties projektam.

Tokenu izplatīšanai nav jābūt automatizētai. Daudzi kolektīvās finansēšanas pasākumi ļauj lietotājiem norēķināties ar dažādām digitālajām valūtām (piemēram, BNB, BTC, ETH un USDT). Pēc tam attiecīgie atlikumi tiek piešķirti lietotāju norādītajām adresēm.


ERC-20 žetonu plusi un mīnusi

ERC-20 žetonu plusi

Aizvietojams

ERC-20 žetoni ir aizstājami – katra vienība ir aizvietojama ar citu. Ja jums būtu BinanceAcademyToken, nebūtu svarīgi, kāds konkrēts marķieris jums ir. Jūs varētu to apmainīt pret kādu citu, un tie joprojām būtu funkcionāli identiski, tāpat kā nauda vai zelts.

Tas ir ideāli piemērots, ja jūsu marķiera mērķis ir būt kāda veida valūtai. Jūs nevēlaties atsevišķas vienības ar atšķirīgām iezīmēm, kas padarītu tās neatvietojamas. Tādējādi daži marķieri var kļūt vērtīgāki vai mazāk vērtīgi nekā citi, tādējādi apdraudot to mērķi.


Elastīgs

Kā mēs pētījām iepriekšējā sadaļā, ERC-20 marķieri ir ļoti pielāgojami, un tos var pielāgot daudzām dažādām lietojumprogrammām. Piemēram, tos var izmantot kā spēļu valūtu, lojalitātes punktu programmās, kā digitālos kolekcionējamos priekšmetus vai pat tēlotājmākslas un īpašuma tiesību reprezentēšanai.


Populārs

ERC-20 popularitāte kriptovalūtas nozarē ir ļoti pārliecinošs iemesls, lai to izmantotu kā projektu. Ir daudz apmaiņas, maku un viedo līgumu, kas jau ir saderīgi ar jaunizveidotajiem marķieriem. Turklāt izstrādātāju atbalsts un dokumentācija ir daudz. 


ERC-20 žetonu mīnusi

Mērogojamība

Tāpat kā daudzi kriptovalūtas tīkli, arī Ethereum nav imūna pret augšanas sāpēm. Pašreizējā formā tas nav labi mērogots — mēģinājums nosūtīt darījumu sastrēguma laikā rada lielas maksas un kavēšanos. Ja palaižat ERC-20 marķieri un tīkls kļūst pārslogots, var tikt ietekmēta tā lietojamība.

Tā nav tikai Ethereum problēma. Drīzāk tas ir nepieciešams kompromiss drošās, sadalītās sistēmās. Kopiena plāno risināt šīs problēmas, pārejot uz Ethereum 2.0, kas ieviesīs tādus jauninājumus kā Ethereum Plasma un Ethereum Casper.

Uzziniet vairāk par mērogojamības problēmām sadaļā Blockchain Scalability: Sidechains and Payment Channels.


Krāpniecība

Lai gan problēma nav saistīta ar pašu tehnoloģiju, tokena palaišanas vieglumu dažos aspektos var uzskatīt par mīnusu. Vienkārša ERC-20 marķiera izveide prasa minimālu piepūli, kas nozīmē, ka ikviens to var izdarīt gan labā, gan sliktā labā.

Tāpēc jums vajadzētu būt uzmanīgiem ar to, ko ieguldāt. Ir vairākas piramīdas un Ponzi shēmas, kas ir maskētas kā blokķēdes projekti.  Pirms ieguldīšanas veiciet savu izpēti, lai izdarītu savus secinājumus par to, vai iespēja ir likumīga.

 

ERC-20, ERC-1155, ERC-223, ERC-721 — kāda ir atšķirība?

ERC-20 bija pirmais (un līdz šim populārākais) Ethereum marķiera standarts, taču tas nebūt nav vienīgais. Gadu gaitā ir parādījušies daudzi citi, vai nu ierosinot uzlabojumus ERC-20, vai arī mēģina sasniegt dažādus mērķus.

Daži no retāk sastopamajiem standartiem ir tie, kas tiek izmantoti neatvietojamajos marķieros (NFT). Dažreiz jūsu lietošanas gadījumam patiešām ir priekšrocības, ja jums ir unikāli marķieri ar dažādiem atribūtiem. Ja vēlaties piešķirt simbolisku unikālu mākslas darbu, spēlē ietvertu līdzekli utt., kāds no šiem līgumu veidiem varētu būt pievilcīgāks.

Piemēram, ERC-721 standarts tika izmantots ārkārtīgi populārajai CryptoKitties DApp. Šāds līgums nodrošina API, lai lietotāji varētu izveidot savus neaizvietojamus marķierus un kodēt metadatus (attēlus, aprakstus utt.). 

ERC-1155 standartu var uzskatīt par uzlabojumu gan ERC-721, gan ERC-20. Tajā ir izklāstīts standarts, kas atbalsta gan aizstājamus, gan neaizvietojamus marķierus vienā un tajā pašā līgumā.

Citu iespēju, piemēram, ERC-223 vai ERC-621, mērķis ir uzlabot lietojamību. Pirmais ievieš drošības pasākumus, lai novērstu nejaušu marķieru pārsūtīšanu. Pēdējais pievieno papildu funkcijas marķieru piedāvājuma palielināšanai un samazināšanai.

Lai uzzinātu vairāk par NFT tēmu, noteikti izlasiet rokasgrāmatu par kriptovalūtu kolekcionējamiem un neaizvietojamiem marķieriem (NFT).


Noslēguma domas

ERC-20 standarts gadiem ilgi ir dominējis kriptogrāfijas līdzekļu telpā, un nav grūti saprast, kāpēc. Salīdzinoši viegli ikviens var izvietot vienkāršu līgumu, lai tas atbilstu dažādiem lietošanas gadījumiem (lietderības žetoni, stabilas monētas utt.). Tomēr ERC-20 trūkst dažu funkciju, ko atdzīvina citi standarti. Jāskatās, vai tā vietā tiks pieņemti turpmākie līgumu veidi.