Ang Panimula sa mga ERC-20 Token
Ang Panimula sa mga ERC-20 Token
HomeMga Artikulo

Ang Panimula sa mga ERC-20 Token

Intermediya
Published Jul 31, 2020Updated Apr 29, 2021
12m

Panimula

Ang Ethereum ay itinatag ni Vitalik Buterin noong 2014, na ipinoposisyon ang sarili nito bilang isang open-source platform para sa paglulunsad ng mga desentralisadong aplikasyon (DApps). Marami sa mga pagganyak ni Buterin para sa paglikha ng isang bagong blockchain ay nagmula sa Bitcoin na kawalan ng kakayahang umangkop ng protocol.
Mula nang ilunsad ito, ang Ethereum blockchain ay nakakuha ng mga developer, negosyo, at negosyante, na nagpapalabas ng lumalaking industriya ng mga user na naglulunsad ng mga smart contract at namahagi ng mga application.
Sa artikulong ito, titingnan namin ang pamantayan ng ERC-20, isang mahalagang framework para sa paglikha ng mga token. Bagaman ito ay tukoy sa network ng Ethereum, ang framework ay nagbigay inspirasyon din sa iba pang mga pamantayan ng blockchain, tulad ng Binance Chain na BEP-2.


Ano ang pamantayan ng ERC-20?

Sa Ethereum, ang isang ERC ay isang Ethereum Request for Comments. Ito ang mga teknikal na dokumento na naglalahad ng mga pamantayan para sa pagprograma sa Ethereum. Hindi sila malilito sa Mga Proposal ng Pagpapabuti ng Ethereum (EIP), na, tulad ng mga BIP ng Bitcoin, ay nagmumungkahi ng mga pagpapabuti sa mismong protocol. Nilalayon ng mga ERC na magtaguyod ng mga kombensiyon na nagpapadali sa mga aplikasyon at contract na makipag-ugnay sa bawat isa.

Ini-akda nina Vitalik Buterin at Fabian Vogelsteller noong 2015, iminungkahi ng ERC-20 isang medyo simpleng format para sa mga token na batay sa Ethereum. Sa pamamagitan ng pagsunod sa outline, hindi kailangang muling likhain ng mga developer ang gulong. Sa halip, puwede silang bumuo ng isang pundasyon na ginamit na sa buong industriya.

Sa sandaling nalikha ang mga bagong token ng ERC-20, awtomatiko silang magkakaugnay sa mga serbisyo at software na sumusuporta sa pamantayan ng ERC-20 (mga wallet ng software,  mga wallet ng hardware,  mga exchange, atbp.).

Dapat pansinin na ang pamantayan ng ERC-20 ay binuo sa isang EIP (partikular, EIP-20). Nangyari ito ilang taon pagkatapos ng orihinal na panukala dahil sa malawakang paggamit nito. Gayunpaman, kahit na mga taon na ang lumipas, ang pangalang “ERC-20” ay natigil.


Isang mabilis na recap sa mga token ng Ethereum

Hindi tulad ng ETH (native cryptocurrency ng Ethereum), ang mga token ng ERC-20 ay hindi hawak ng mga account. Ang mga token ay nag-exist lang sa loob ng isang contract, na tulad ng isang may sariling-nilalaman na database. Tinutukoy nito ang mga patakaran para sa mga token (ibig sabihin, pangalan, simbolo, pagkakaiba-iba) at pinapanatili ang isang listahan na inilalagay sa mapa ang balanse ng mga user sa kanilang mga Ethereum address.

Upang ilipat ang mga token, ang mga user ay dapat magpadala ng isang transaksyon sa contract na humihiling dito na maglaan ng ilan sa kanilang balanse sa ibang lugar. Halimbawa, kung nais ni Alice na magpadala ng 5,000 BinanceAcademyTokens kay Bob, tumawag siya ng isang function sa loob ng smart contract ng BinanceAcademyToken na hinihiling na gawin ito.



Ang kanyang tawag ay nakapaloob sa loob ng kung ano ang lilitaw na isang regular na transaksyon sa Ethereum na nagbabayad ng 0 ETH sa contract ng token. Ang tawag ay kasama sa isang karagdagang larangan sa transaksyon, na tumutukoy kung ano ang nais na gawin ni Alice – sa aming kaso, ilipat ang mga token kay Bob.

Kahit na hindi siya nagpapadala ng ether, dapat pa rin siyang magbayad ng isang denominasyon sa loob nito upang maisama ang kanyang transaksyon sa isang block. Kung wala siyang ETH, kailangan niyang kumuha ng ilang bago ilipat ang mga token.
Narito ang isang halimbawa sa totoong mundo ng nasa itaas sa Etherscan na may isang taong tumatawag sa contract ng BUSD. Puwede mong makita ang mga token na inilipat, at isang bayarin ang nabayaran, kahit na ipinapakita ng patlang ng Halaga na naipadala na ang 0 ETH.

Ngayong mabilis na tayo, tingnan natin sa ilalim ng hood upang mas maunawaan ang istraktura ng isang tipikal na contract ng ERC-20. 


Paano nilikha ang mga token ng ERC-20?



Upang maging compliant ng ERC-20, kailangang magsama ang iyong contract ng anim na ipinag-uutos na mga function totalSupply, balanseOf, transfer, transferFrom, approve, at allowance. Bilang karagdagan, puwede mong tukuyin ang mga opsyonal na function, tulad ng pangalan, simbolo, at decimal. Puwedeng maging malinaw sa iyo kung ano ang ginagawa ng mga function na iyon mula sa kanilang mga pangalan. Kung hindi, huwag mag-alala – tatalakayin natin sila. 

Nasa ibaba ang mga function sa paglitaw ng mga ito sa Solidity language na binuo ng layunin ng Ethereum.


totalSupply

function totalSupply ()  pampubliko tingnan ang mga return (uint256)
Kapag tinawag ng isang user, ibabalik ng function sa itaas ang kabuuang suplay ng mga token na hawak ng contract.


balanceOf 

function balanseOf (address _owner) public tingnan ang mga return(balanse ng uint256)
Hindi tulad ng totalSupply, ang balanseOf ay tumatagal ng isang parameter (isang address). Kapag tinawag, ibinabalik nito ang balanse ng mga hawak ng token ng address na iyon. Tandaan na ang mga account sa network ng Ethereum ay pampubliko, kaya puwede kang magtanong ng balanse ng sinumang user sa ibinigay mong alam ang address.


paglilipat

function transfer (address _to, uint256 _value) public mga returm (tagumpay sa bool)
Ang paglilipat ay maayos na naglilipat ng mga token mula sa isang user patungo sa isa pa. Dito, ibibigay mo ang address na nais mong ipadala at ang halaga upang ilipat.
Kapag tinawag, ang paglilipat ay nagti-trigger ng isang bagay na tinatawag na kaganapan (paglipat ng kaganapan, sa kasong ito), na karaniwang sinasabi sa blockchain na magsama ng isang sanggunian dito.


transferFrom

function transferFrom (address _from, address _to, uint256 _value) pampubliko mga return (tagumpay sa bool)
Ang function na transferFrom ay isang madaling gamiting alternatibo sa paglilipat na nagbibigay-daan sa kaunting programmability sa desentralisadong mga application. Tulad ng transfer, ginagamit ito upang ilipat ang mga token, ngunit ang mga token na iyon ay hindi kinakailangang kabilang sa taong tumatawag sa contract. 

Sa madaling salita, puwede mong pahintulutan ang sinuman – o ibang contract – upang maglipat ng mga pondo sa iyong ngalan. Ang isang posibleng kaso ng paggamit ay nagsasangkot ng pagbabayad para sa mga serbisyong nakabatay sa suskripsyon, kung saan hindi mo nais na manu-manong magpadala ng isang pagbabayad araw-araw/linggo/buwan. Sa halip, hinayaan mo lang ang isang program na gawin ito para sa iyo.

Ang function na ito ay nag-trigger ng parehong kaganapan bilang paglilipat.


approve

function approve(address _spender, uint256 _value) public mga return (tagumpay sa bool)
Ang approve ay isa pang kapaki-pakinabang na function mula sa isang pananaw ng programmability. Sa function na ito, puwede mong limitahan ang bilang ng mga token na puwedeng bawiin ng smart contract mula sa iyong balanse. Kung wala ito, pinapamahalaan mo ang panganib ng hindi paggana ng contract (o pinagsamantalahan) at pagnanakaw ng lahat ng iyong mga pondo. 
Dalhin muli ang aming halimbawa ng isang modelo ng suskripsyon. Ipagpalagay na mayroon kang isang malaking halaga ng BinanceAcademyTokens, at nais mong i-set up ang lingguhang paulit-ulit na mga pagbabayad sa isang streaming DApp. Abala ka sa pagbabasa ng Binance Academy nilalaman araw at gabi, kaya't hindi mo nais na maglaan ng oras bawat linggo upang lumikha ng isang transaksyon nang manu-mano.
Mayroon kang napakalaking balanse ng BinanceAcademyTokens, higit na lumalagpas sa kung ano ang kailangan upang mabayaran para sa suskripsyon. Upang mapigilan ang DApp na maalis ang lahat ng mga ito, puwede kang magtakda ng isang limitasyon sa pag-approve. Ipagpalagay na ang iyong suskripsyon ay nagkakahalaga ng isang BinanceAcademyToken bawat linggo. Kung na-cap mo ang naaprubahang halaga sa dalawampung token, pagkatapos ay puwede mong awtomatikong mabayaran ang iyong suskripsyon sa loob ng limang buwan.

Sa pinakamasamang kalagayan, kung susubukan ng DApp na bawiin ang lahat ng iyong mga pondo o kung may nahanap na isang bug, puwede kang mawalan ng dalawampung token. Puwedeng hindi ito mainam, ngunit tiyak na mas kaakit-akit ito kaysa sa mawala ang lahat ng iyong mga hawak.

Kapag tinawag, ang approve na nagti-trigger ng kaganapan na pag-apruba. Tulad ng kaganapan na paglilipat, nagsusulat ito ng data sa blockchain.


allowance 

function allowance (address _owner, address _spender) public tingnan ang mga return (natitira na uint256)
Ang allowance ay puwedeng magamit kasabay ng approve. Kapag nagbigay ka ng isang pahintulot sa contract upang pamahalaan ang iyong mga token, puwede mo itong gamitin upang suriin kung ilan pa ang puwedeng mag-withdraw. Halimbawa, kung ang iyong suskripsyon ay gumamit ng labindalawa sa iyong dalawampu't naaprubahang mga token, ang pagtawag sa allowance function ay dapat na magbalik ng walo sa kabuuan.


Ang mga opsyonal na function

Ang dating tinalakay na mga function ay sapilitan. Sa kabilang banda, pangalan, symbol, at decimal Hindi kailangang isama, ngunit puwede nilang gawing mas maganda ang iyong contract sa ERC-20. Gumagalang, pinapayagan ka nilang magdagdag ng isang nababasa ng tao na pangalan, magtakda ng isang simbolo (ibig sabihin, ETH, BTC, BNB), at upang tukuyin kung gaano karaming mga decimal na lugar ang mga token na hindi nahahati. Halimbawa, ang mga token na ginagamit bilang pera ay puwedeng makinabang nang higit pa mula sa higit na mahati kaysa sa isang token na kumakatawan sa pagmamay-ari ng isang pag-aari.


Suriin ang halimbawang ito sa GitHub upang makita ang mga elementong ito sa isang tunay na contract.


Ano ang magagawa ng mga token ng ERC-20?



Sa pagsasama-sama ng lahat ng mga function sa itaas, mayroon kaming isang contract ng ERC-20. Puwede naming tanungin ang kabuuang suplay, suriin ang mga balanse, maglipat ng mga pondo, at magbigay ng mga pahintulot sa iba pang mga DApps upang pamahalaan ang mga token para sa amin.

Ang isang malaking bahagi ng apela ng mga token ng ERC-20 ay ang kanilang kakayahang umangkop. Ang mga kasunduan na itinakda ay hindi nagbabawal sa pag-unlad, kaya ang mga partido ay puwedeng magpatupad ng mga karagdagang tampok at magtakda ng mga tukoy na parameter upang umangkop sa kanilang mga pangangailangan.


Mga Stablecoin

Ang mga Stablecoin (mga token na naka-peg sa mga fiat na currency) ay madalas na gumagamit ng pamantayang ERC-20 token. Ang transaksyon sa contract ng BUSD na na-refer namin nang maaga ay isang halimbawa, at ang karamihan sa mga pangunahing mga stablecoin ay magagamit din sa format na it.

Para sa isang tipikal na suportadong filecoin, ang nagbigay ay nagtataglay ng mga reserba na euro, dolyar, atbp. Pagkatapos, para sa bawat yunit sa kanilang reserbang, naglalabas sila ng isang token. Nangangahulugan ito na kung ang $10,000 ay naka-lock ang layo sa isang vault, ang nagpalabas ay puwedeng lumikha ng 10,000 mga token, bawat isa ay makakakuha ng $1.

Napakadali nitong ipatupad sa Ethereum, sa teknikal na pagsasalita. Ang isang nagbigay ay naglulunsad lang ng isang contract na may 10,000 mga token. Pagkatapos, ipamahagi nila ang mga ito sa mga user na may pangakong makakaya nilang makuha ang mga token sa paglaon ng isang proporsyonadong halaga ng fiat na currency. 

Ang mga user ay puwedeng gumawa ng isang bilang ng mga bagay sa kanilang mga token – puwede silang bumili ng mga kalakal at serbisyo o gamitin ang mga ito sa DApps. Bilang kahalili, puwede nilang hilingin na palitan sila kaagad ng nagbigay. Sa pagkakataong iyon, sinusunog ng nagbigay na ang mga naibalik na token (ginagawang hindi magagamit ang mga ito) at mawi-withdraw ang tamang dami ng fiat mula sa kanilang mga reserba.

Ang contract na namamahala sa sistemang ito, tulad ng nabanggit, ay medyo simple. Gayunpaman, ang paglulunsad ng isang stablecoin ay nangangailangan ng maraming trabaho sa panlabas na mga kadahilanan tulad ng mga logistic, pagsunod sa regulasyon, atbp.


Mga Security token

Ang mga security token ay katulad ng mga stablecoin. Sa antas ng contract, ang pareho ay puwedeng magkapareho ang function nila sa parehong paraan. Ang pagkakaiba ay nangyayari sa antas ng nagbigay. Ang mga security token ay kumakatawan sa mga seguridad, tulad ng mga stock, bond, o pisikal na mga asset. Kadalasan (kahit na hindi palaging ganito), binibigyan nila ang may-ari ng ilang uri ng pag-stake sa isang negosyo o mabuti.


Mga Utility token

Ang mga utility token ay marahil ang pinaka-karaniwang uri ng mga token na matatagpuan ngayon. Hindi tulad ng nakaraang dalawang handog, hindi sila sinusuportahan ng anuman. Kung ang mga token na sinusuportahan ng asset ay tulad ng pagbabahagi sa isang kumpanya ng airline, kung gayon ang mga token ng utility ay tulad ng mga programa na madalas na flyer na nagsisilbi silang isang function, ngunit wala silang panlabas na halaga. Ang mga utility token ay puwedeng magsilbi sa isang napakaraming mga kaso ng paggamit, na nagsisilbing in-game currency , gasolina para sa desentralisadong mga application, loyalty point, at marami pa.



Puwede mo bang mamina ang mga token ng ERC-20?

Puwede kang magmina ng ether (ETH), ngunit ang mga token ay hindi puwedeng mamina – sinabi namin na naka-mint sila kapag nilikha ang mga bago. Kapag ang isang contract ay inilunsad, namamahagi ang mga developer ng suplay alinsunod sa kanilang mga plano at roadmap.
Karaniwan, ginagawa ito sa pamamagitan ng isang Initial Coin Offering (ICO), Initial Exchange Offering (IEO), o Security Token Offering (STO). Puwede kang makahanap ng mga pagkakaiba-iba ng mga acronym na ito, ngunit ang mga konseptong ito ay magkatulad. Nagpadala ang mga namumuhunan ng ether sa address ng contract at, bilang reward, tumatanggap ng mga bagong token. Ang nakolektang pera ay ginagamit upang pondohan ang karagdagang pag-unlad sa proyekto. Inaasahan ng mga user na magagamit ang kanilang mga token (alinman kaagad o sa susunod na petsa) o muling ibebenta ang mga ito para sa isang kita habang umuunlad ang proyekto.

Ang pamamahagi ng token ay hindi kailangang awtomatiko. Pinapayagan ng maraming mga kaganapan sa crowdfunding na magbayad ang mga user ng isang saklaw ng iba't ibang mga digital na pera (tulad ng BNB, BTC, ETH, at USDT). Ang kani-kanilang mga balanse ay pagkatapos ay inilalaan sa mga address na ibinigay ng mga user.


Mga kalamangan at kahinaan ng mga token ng ERC-20

Mga kalamangan ng mga token ng ERC-20

Fungible

Ang mga token ng ERC-20 ay fungible – ang bawat yunit ay puwedeng palitan ng isa pa. Kung naghawak ka ng BinanceAcademyToken, hindi mahalaga kung anong tukoy na token ang mayroon ka. Puwede mo itong ipagpalit para sa iba, at magkatulad din sila ng functionally, tulad ng cash o ginto.

Mainam ito kung ang iyong token ay naglalayong maging isang uri ng pera. Hindi mo gugustuhin ang mga indibidwal na yunit na may makikilalang mga ugali, na kung saan ay gagawing hindi sila kayang magamit. Puwede itong maging sanhi ng ilang mga token na maging mas – o mas mababa – mahalaga kaysa sa iba, na pinapahina ang kanilang layunin.


Flexible

Tulad ng aming pagsisiyasat sa nakaraang seksyon, ang mga token ng ERC-20 ay lubos na napapasadyang at puwedeng maiakma sa maraming iba't ibang mga application. Halimbawa, puwede silang magamit bilang in-game na pera, sa mga programang bilang puntos ng loyalty, bilang mga digital na koleksyon, o kahit na upang kumatawan sa mga karapatan sa sining at pag-aari.


Sikat

Ang kasikatan ng ERC-20 sa industriya ng cryptocurrency ay isang nakakahimok na dahilan upang gamitin ito bilang blueprint. Mayroong isang napakaraming mga palitan, wallet, at mga smart contract na katugma na sa mga bagong inilunsad na mga token. Ano pa, masagana ang suporta at dokumentasyon ng developer. 


Kahinaan ng mga token ng ERC-20

Scalability

Tulad ng maraming mga network ng cryptocurrency, ang Ethereum ay hindi immune sa lumalaking sakit. Sa kasalukuyan nitong porma, hindi ito nasusukat nang maayos – sinusubukan na magpadala ng isang transaksyon sa pinakamataas na oras na nagreresulta sa mataas na bayarin at pagkaantala. Kung maglulunsad ka ng isang token ng ERC-20 at masikip ang network, puwedeng maapektuhan ang kakayahang magamit.

Hindi ito isang problema na eksklusibo sa Ethereum. Sa halip, ito ay isang kinakailangang trade-off na ligtas, naipamahagi na mga system. Plano ng komunidad na tugunan ang mga problemang ito sa paglipat sa Ethereum 2.0, na magpapatupad ng mga pag-upgrade tulad ng  Ethereum Plasmae at Ethereum Casper.
Matuto nang higit pa tungkol sa mga isyu sa kakayahang sumukat sa Mga Blockchain Scalability Sidechain at Payment Channel.


Mga Scam

Habang hindi isang isyu sa teknolohiya mismo, ang kadalian kung saan ang isang token ay puwedeng mailunsad ay puwedeng maituring na isang downside sa ilang mga aspeto. Kailangan ng kaunting pagsisikap upang lumikha ng isang simpleng token ng ERC-20, nangangahulugang puwedeng gawin ito ng sinuman – para sa mabuti o para sa masama.

Dahil dito, dapat kang mag-ingat sa kung saan ka mamumuhunan Mayroong isang bilang ng mga Pyramid at Ponzi scheme na nagkukubli bilang mga proyekto sa blockchain. Gumawa ng sarili mong pagsasaliksik bago mamuhunan upang maabot ang iyong sariling mga konklusyon sa kung ang isang pagkakataon ay lehitimo.

 

ERC-20, ERC-1155, ERC-223, ERC-721 – ano ang pagkakaiba?

Ang ERC-20 ang unang (at, hanggang ngayon, ang pinakasikat) pamantayan sa Ethereum token, ngunit hindi ito nangangahulugang nag-iisa lang. Sa paglipas ng mga taon, maraming iba pa ang lumitaw, alinman sa pagmumungkahi ng mga pagpapabuti sa ERC-20 o pagtatangka upang makamit ang iba't ibang mga layunin sa kabuuan.

Ang ilan sa mga hindi gaanong karaniwang pamantayan ay ang ginagamit sa mga non-fungible token (NFTs). Minsan, ang iyong kaso ng paggamit ay talagang nakikinabang mula sa pagkakaroon ng mga natatanging token na may iba't ibang mga katangian. Kung nais mong ma-tokenize ang isang isang-katangi-tanging-uri ng art, in-game na asset, atbp., Ang isa sa mga uri ng contract na ito ay puwedeng maging mas nakakaakit.
Ang pamantayan ng ERC-721, halimbawa, ay ginamit para sa napakasikat na CryptoKitties DApp. Ang nasabing jontract ay nagbibigay ng isang API para sa mga user na ma-mint ang kanilang sariling mga hindi maiinhawang token at ma-encode ang metadata(mga imahe, paglalarawan, atbp.). 

Ang pamantayan ng ERC-1155 ay puwedeng makita bilang isang pagpapabuti sa parehong ERC-721 at ERC-20. Binabalangkas nito ang isang pamantayan na sumusuporta sa parehong mga fungible at non-fungible na mga token sa parehong contract.

Ang iba pang mga pagpipilian tulad ng ERC-223 o ERC-621 ay naglalayong mapabuti ang kakayahang magamit. Nagpapatupad ang dating ng mga pag-iingat upang maiwasan ang hindi sinasadyang paglipat ng token. Ang huli ay nagdaragdag ng karagdagang mga function para sa pagtaas at pagbawas ng suplay ng token.

Para sa higit pa sa paksa ng mga NFT, tiyaking suriin ang  Ang Gabay sa Mga Crypto Collectible at mga Non-fungible Token (NFTs).


Pangwakas na mga ideya

Ang pamantayan ng ERC-20 ay nangibabaw sa mundo ng crypto asset sa loob ng maraming taon, at hindi mahirap makita kung bakit. Sa pamamagitan ng medyo madali, ang sinuman ay puwedeng maglagay ng isang simpleng contract upang umangkop sa isang malawak na hanay ng mga kaso ng paggamit (mga token ng utility, stablecoin, atbp.) Na sinabi, ang ERC-20 ay kulang sa ilan sa mga tampok na binuhay sa pamamagitan ng iba pang mga pamantayan. Ito ay nananatiling upang makita kung ang mga kasunod na uri ng mga contract ay makuha ang lugar.