Mi az az ERC-20 token?
A mai Webhárom Tudástár cikkünkben az ERC-20 működését mutatjuk be.
Az ERC-20 egy, az Ethereum blokklánc fejlesztői által készített szabvány - pontosabban tokenszabvány, mely a fungible tokenek működését írja le az Ethereum (és más EVM-kompatibilis) blokkláncokon.
A szakszavaktól nem kell megijedni, minden kifejezés világos lesz a cikk végére 😎
Először is: Mi az a token?
A token olyan kriptovaluta, mely egy adott blokkláncon értékmérő szerepet tölt be, de eltér a blokklánc használatától szükséges natív cointól. A coin és a token közötti különbség általánosságban annyi, hogy a coint (mint például BTC, ETH) bányászni vagy stakelni lehet, egy tokent (pl. USDC, LINK) pedig okosszerződésen keresztül létrehozni.
Ennek az okosszerződésnek a szabványát írta le elsőként az Ethereum, az ERC-20 szabvány néven, mely definiálja azokat a tulajdonságokat "interfészt", melynek minden tokennek meg kell felelnie.
Ez egy viszonylag egyszerű és rövid kód, így a részletes bemutatás érdekében álljon itt teljes fényében:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount)
external
returns (bool);
}
Az ERC-20 szabvány tehát a fenti interfészt definiálja, azt az interfészt, melyet konkrétan meg kell valósítania minden egyes, az Ethereum (és hasonló) blokkláncokon létrehozott tokennek.
Egy ERC-20 tokennek tehát az alábbi függvényekkel kell rendelkeznie:
A totalSupply() függvény arra szolgál, hogy definiálja a token maximálisan rendelkezésre álló mennyiségét,
A balanceOf() arra szolgál, hogy az address című tárcából le lehessen kérdezni, a konkrét tárca mennyi (pl. USDC) tokennel rendelkezik
A transfer() az amount-nak megfelelő mennyiséget átutalja az address tárcába
Az approve() engedélyt ad egy másik tárcának egy adott tárca tokeneinek későbbi felhasználására
Az allowance() pedig lekérdezi, létezik-e ez az engedély
A transferFrom() pénzt küld saját tárcából, vagy egy olyan tárcából, melyhez "allowance" hozzáférésünk van.
Mit jelent a fungible szó?
A fungible (kényszeres magyarítással "fungibilitás") egy fizikai vagy digitális valutának az a tulajdonsága, hogy több különálló, egyforma egység van számon tartva, melyek egyenlő értéket képviselnek.
Jó példa erre a forint: egy 100 forintos érmével ugyanannyi terméket tudsz megvásárolni, mint egy másik 100 forintos érmével.
Ellentéte az NFT, azaz a nem fungibilis token, melyből nincs két egyforma. Nem garantált, sőt kifejezetten ritka például, hogy két majmos kép egyenlő értéket képviseljen, különösen az egyedi jellemzői miatt, mint a design, sorszám, ritkaság, stb.
ERC-20 tokent létrehozni bármelyik Ethereum tárca segítségével lehet, a közzétételhet szükséges tranzakciós költség kifizetésével, és persze valamilyen mértékű technikai tudással.
A leggyakrabb esetben Solidity programnyelven importálják és implementálják a fenti interfészt. Így egy új, a tokent leíró okosszerződés készül, melyet a nyilvános (Ethereum vagy más) hálózaton közzétéve bárki számára használhatóvá tesznek.
Ezután a token okosszerződésének ugyanúgy lesz egy hálózati címe a blokkláncon, melynek segítségével meghívhatók a fenti függvények - például lekérdezhető valakinek az egyenlege, vagy átutalható a megadott összeg egy más tárcába.
Az oldalon található cikkek kizárólag a szerző véleményét tükrözik, és nem valósítanak meg a 2007. évi CXXXVIII. törvény szerinti befektetési tanácsadást. A Webhárom kizárja a felelősségét az egyéni befektetési döntésekből fakadó esetleges károk miatt. Tartalmaink szerzői jogvédelem alá tartoznak, felhasználásuk kizárólag a szerző írásos engedélyével lehetséges.