Що таке ERC-20? Стандарт токенів, який керує економікою Ethereum

Що таке ERC-20? Стандарт токенів, який керує економікою Ethereum

У моєму гаманці MetaMask я тримаю USDT. Також трохи LINK, трохи UNI зі свопу минулого тижня та токен-дог, який мені хтось видав через airdrop, і який я постійно забуваю продати. Ці токени виконують зовсім різні функції. Tether — це стейблкоїн, забезпечений готівкою та казначейськими облігаціями. Chainlink керує мережами оракулів, які передають реальні дані до смарт-контрактів. Uniswap керує найбільшою децентралізованою біржею на Ethereum. Токен-дог не робить нічого корисного. Але мій гаманець відображає їх усі в одному списку, дозволяє мені надсилати їх однією кнопкою, і кожен DeFi-протокол, який я використовую, приймає їх без будь-якого спеціального налаштування.

Це працює лише тому, що всі чотири дотримуються однакових правил. Це токени ERC-20. Той самий інтерфейс, ті самі функції, той самий сценарій. І розуміння того, що насправді означає ERC-20, — це перший крок до розуміння того, як Ethereum працює як економіка.

Фабіан Фогельстеллер написав пропозицію в листопаді 2015 року. Він дав їй нудну назву: Ethereum Request for Comment number 20 (Запит на коментарі щодо Ethereum номер 20). Віталік Бутерін був співавтором остаточної версії. До 2017 року її було офіційно прийнято, а потім бум ICO вдарив, як вантажівка. Тисячі проектів запустили токени за одну ніч, тому що ERC-20 зробив їх майже безкоштовними. Півмільйона контрактів на токени пізніше, стандарт все ще керує процесом. Ось що він робить, і чому вам варто звернути на нього увагу, навіть якщо ви ніколи не плануєте написати ні рядка про Solidity.

Як працює стандарт ERC-20

Назва кумедніша, ніж потрібно. ERC = Запит на коментар до Ethereum. 20 = номер пропозиції. Ось і все. Розробник на ім'я Фабіан сказав: «Ось правила, яких повинен дотримуватися кожен токен», і дав своїй пропозиції номер 20, бо це був наступний доступний слот. Не двадцять правил. Не двадцять токенів. Просто пропозиція №20 у черзі покращення Ethereum.

Що кажуть ці правила: якщо ви хочете створити взаємозамінний токен на Ethereum, ваш смарт-контракт повинен включати ці конкретні функції. «Взаємозамінний» означає, що кожна одиниця токена ідентична. Один USDC такий самий, як і всі інші USDC. Вам не важливо, який саме токен UNI ви тримаєте, оскільки всі вони взаємозамінні. NFT — це протилежність. Кожен з них унікальний. Різний стандарт. Різний артикул.

Стандарт ERC-20 визначає шість функцій та дві події. Кожен відповідний токен-контракт, від USDT з його ринковою капіталізацією в 140 мільярдів доларів до мемкойну, який хтось запустив тридцять секунд тому, реалізує ті самі виклики:

Функція Проста англійська версія
totalSupply() "Скільки таких жетонів існує у світі?"
баланс(адреса) "Скільки штук у цьому конкретному гаманці?"
переказ (на, сума) "Надіслати X токенів з мого гаманця цій іншій особі"
затвердити (витрачальник, сума) "Дозвольте цьому DeFi-протоколу витратити до X моїх токенів"
переказЗ(з, до, сума) "У мене є дозвіл на переміщення токенів з гаманця A до гаманця B"
допомога (власник, розпорядник) "Скільки коштів цей споживач ще може використати з ліміту?"

Дві події реєструються в ланцюзі щоразу, коли щось відбувається. Передача відбувається щоразу, коли токени переміщуються між гаманцями. Схвалення відбувається, коли хтось дає дозвіл на витрати. Дослідники блокчейну, такі як Etherscan, використовують ці події для створення історії транзакцій, яку ви бачите, коли шукаєте токен.

Три необов'язкові поля додають індивідуальності: name надає токену зрозумілу для людини назву ("Chainlink"), symbol – це тікер ("LINK"), а decimals визначає, наскільки детально можна поділити токен (майже всі використовують 18 для порівняння ETH, хоча USDT використовує 6, і це спричинило більше помилок, ніж хтось хоче визнати).

Шість функцій. Дві події. Три необов'язкові поля. Це буквально вся специфікація. Я міг би надрукувати її на серветці, залишивши місце для кавових плям. І все ж ця специфікація розміром із серветку керує економікою токенів вартістю сотні мільярдів доларів. MetaMask зчитує ці функції, щоб показати ваш баланс. Uniswap викликає їх для виконання свопів. Aave використовує їх для управління кредитуванням. Кожен DeFi-протокол, який ви коли-небудь використовували, спілкується з токенами через цей самий інтерфейс. Головне — простота.

erc-20

Чому ERC-20 змінив усе про Ethereum

Я працював у криптовалюті у 2016 році, ще до того, як цей стандарт з'явився. Це був хаос. Кожен токен був індивідуальним завданням. Хтось створював контракт токена з власними назвами функцій, власною логікою переказу, власним способом перевірки балансів. MetaMask гадки не мав, що собою являє половина цих токенів. Біржам знадобилися місяці, щоб додати підтримку для нового токена, оскільки кожен з них вимагав спеціального коду інтеграції. Створення DEX? Забудьте про це. Вам довелося б писати обробники для кожної окремої реалізації токена.

ERC-20 поклав край цьому божевіллю. Після прийняття стандарту новий токен з'являвся в MetaMask щойно ви вставляли адресу контракту. Uniswap міг розмістити його без будь-якого дозволу. Aave міг прийняти його як забезпечення, не написавши жодного рядка власного коду. Один стандарт, універсальна сумісність.

Хвиля ICO 2017 року стала тому доказом. Якась дитина в гуртожитку могла розгорнути токен ERC-20 після обіду, створити веб-сайт з офіційним документом і приймати ETH від інвесторів до півночі. Я спостерігав, як це відбувається в режимі реального часу. Проекти залучали мільярди. Деякі були легітимними та створювали реальні продукти. Більшість були сміттям. Дехто був відвертим шахрайством. Але технологія, що лежала в основі? Вона працювала бездоганно. Стандарт робив саме те, для чого був розроблений: зробив створення токенів та взаємодію з ними тривіально простими.

Масштаби зараз вражають. У мережі Ethereum налічується понад 500 000 контрактів токенів ERC-20. Загальна ринкова капіталізація токенів ERC-20 сягає сотень мільярдів. Тільки USDT перевищив 140 мільярдів доларів. Додайте USDC, LINK, UNI, DAI, SHIB, MKR та решту, і ви побачите, що більша частина всієї економічної вартості Ethereum знаходиться всередині контрактів ERC-20.

Найкращі токени ERC-20 Категорія Ринкова капіталізація (приблизно)
USDT (Tether) Стейблкоїн понад 140 млрд доларів США
USDC (Коло) Стейблкоїн понад 60 млрд доларів США
LINK (ланцюгова ланка) Мережа Oracle понад 8 млрд доларів США
UNI (Uniswap) Управління DEX понад 4 млрд доларів США
DAI (Maker) Децентралізований стейблкоїн понад 5 млрд доларів США
ААВЕ Протокол кредитування понад 2 млрд доларів США
ШІБ (Шіба-іну) Мемкойн понад 6 млрд доларів США
MKR (Виробник) Управління понад 1,5 млрд доларів США

Створення токена ERC-20: простіше, ніж ви думаєте

Одного разу я спостерігав, як хтось розгорнув токен ERC-20 у прямому ефірі на YouTube. Це зайняло 14 хвилин. Включаючи час, який він витратив на пояснення того, що він робить, у чаті.

Це не натякає на те, наскільки розумним був стрімер. Це твердження про те, наскільки легко OpenZeppelin це зробив. OpenZeppelin — це бібліотека перевіреного, загартованого в битвах коду Solidity, яка виконує всю важку роботу. Ви обираєте назву свого токена («MyToken»), свій символ («MTK»), десяткові дроби (18, як і ETH) та початкову пропозицію. Бібліотека обробляє шість функцій ERC-20, події, перевірки безпеки. Ви копіюєте шаблон, змінюєте чотири змінні, розгортаєте в Ethereum, і у вас є справжній токен.

Вартість пального для розгортання коливається. Тиха мережа? Можливо, $20-50. Пікове перевантаження, як у день монетного двору NFT? $200-500. Розгортайте на Arbitrum або Base замість основної мережі Ethereum, і ціна знизиться до кількох доларів. Фінансовий бар'єр близький до нуля.

Ось темна сторона такої доступності. Блокчейн Ethereum не перевіряє легітимність токен-контракту. Він не верифікує команди, не проводить аудит коду та не оцінює бізнес-моделі. Якщо ви можете сплатити комісію за газ, ви можете розгорнути токен. Ось чому Etherscan перераховує сотні тисяч токен-контрактів, і більшість з них є або покинутими експериментами, або активними шахрайськими схемами. Стандарт ERC-20 гарантує сумісність. Він абсолютно нічого не гарантує щодо того, чи варто тримати токен.

ERC-20 проти інших стандартів токенів Ethereum

Люди запитують мене: «Чи ERC-20 — єдиний стандарт токенів?» Ні. Навіть близько не. Але це був перший, який спрацював, а інші, що з'явилися після нього, вирішили проблеми, які залишив невирішеними ERC-20.

Прийшов ERC-721 і дав нам NFT. У той час як кожен токен ERC-20 є взаємозамінним (ваш USDC такий самий, як мій USDC), кожен токен ERC-721 має унікальний ідентифікатор. Bored Ape #4293 — це зовсім інший актив, ніж Bored Ape #7810. Подібні назви функцій «під капотом», але логіка працює з окремими елементами, а не з загальними сумами. Ви не можете відправити половину Bored Ape. Це все або нічого.

ERC-1155 виник завдяки розробникам ігор, яким набридло розгортати окремі контракти для кожного типу предмета. Один контракт обробляє золоті монети (взаємозамінні, як ERC-20), залізні мечі (напіввзаємозамінні, 50 ідентичних копій) та унікальний легендарний шолом (невзаємозамінний, одна копія). Пакетні передачі економлять пальне. Одна транзакція переміщує 100 різних предметів замість 100 окремих транзакцій.

BEP-20 – це те, що Binance Smart Chain називає своєю версією. Ті ж функції, ті ж події, інший блокчейн. Скопіюйте та вставте ERC-20 у дешевшу мережу. Стандарт SPL від Solana виконує ту саму роботу з зовсім іншою архітектурою, оскільки Solana не була розроблена для сумісності з Ethereum.

Стандартний Тип токена Взаємозамінний? Варіанти використання Мережа
ERC-20 Взаємозамінний токен Так Валюти, управління, корисність Етереум
ERC-721 Невзаємозамінний токен Ні (унікальні ідентифікатори) NFT, цифрове мистецтво, колекційні предмети Етереум
ERC-1155 Мультитокен Обидва Ігри, змішані типи активів Етереум
БЕП-20 Взаємозамінний токен Так Те саме, що й ERC-20 Мережа BNB
ШПЛ Взаємозамінний + NFT Обидва Екосистема Солани Солана

Токени ERC-20 у DeFi: чому стандарт забезпечує децентралізовані фінанси

Заберіть ERC-20, і DeFi зазнає краху за одну ніч. Не «боротьби». Крах. Кожен елемент системи припускає, що токени розмовляють однією мовою.

Uniswap об'єднує два токени ERC-20 в пул і дозволяє вам обмінюватися між ними. Працює для USDC. Працює для SHIB. Працює для того мемкоїна, який ваш друг запустив о 2-й ночі. DEX не хвилює, що робить токен. Йому байдуже лише те, що контракт реалізує transfer() та approve(). Додайте пул ліквідності, і торгівля розпочнеться. Без заявки на лістинг. Без перевірки біржею. Без періоду очікування.

Aave та Compound позичають токени ERC-20. Протокол викликає balanceOf(), щоб побачити, скільки ви внесли. Викликає transfer() для переміщення токенів. Використовує approve() та transferFrom(), коли ви погашаєте позики. Ринок позик для нового токена може розкрутитися в день його розгортання, оскільки інтерфейс вже відомий.

Потім виникає дивна проблема з ETH. ETH існував до ERC-20, тому він не відповідає стандарту. Це порушує компонуємість. Рішення: WETH. Wrapped Ether — це обгортка ERC-20 навколо рідного ETH. Внесіть 1 ETH, отримайте 1 WETH, який DeFi-протоколи можуть обробляти нормально. WBTC робить те саме для Bitcoin, вносячи цінність BTC в екосистему Ethereum як токен ERC-20, підкріплений реальним Bitcoin у співвідношенні 1:1.

Практичний результат: я можу створити DeFi-протокол сьогодні, який працюватиме з кожним токеном ERC-20, коли-небудь створеним, включаючи токени, яких ще не існує. Моєму коду не потрібно знати щось конкретно про USDT. Йому не потрібно оновлюватися, коли хтось завтра запускає новий стейблкоїн. Інтерфейс обробляє все. Ця компонування є причиною того, що Ethereum має більше DeFi-активності, більше TVL та більше інструментів для розробників, ніж будь-який інший блокчейн. Стандарт ERC-20 є основою, на якій базується все інше.

Ризики безпеки та поширені проблеми ERC-20

Дозвольте мені розповісти вам про помилку схвалення, яка коштувала користувачам DeFi мільйонів і яку майже ніхто не розуміє, поки вона їх не вкусить.

Коли ви обмінюєте токени на Uniswap або вносите депозит в Aave, dApp просить вас «схвалити» витрати ваших токенів. Більшість dApp за замовчуванням мають необмежене схвалення. Звучить безневинно, поки ви не зрозумієте, що це означає: цей смарт-контракт може витрачати кожен токен цього типу у вашому гаманці будь-коли та назавжди, доки ви явно не скасуєте дозвіл. Якщо контракт буде зламано через шість місяців, зловмисник використає ваше старе схвалення, щоб витягти токени, до яких ви забули, що коли-небудь надавали доступ.

Таке траплялося. Не раз. Виправлення просте, але дратує: схвалюйте лише точну суму, яка вам потрібна для кожної транзакції. Або використовуйте Revoke.cash, щоб очистити старі схвалення, про які ви забули. Я перевіряю свої кожні кілька місяців. Вони завжди гірші, ніж я очікував. ERC-2612 — це новіший стандарт, який замінює схвалення в мережі підписаними дозволами, що зменшує цей ризик. Але більшість dApps все ще використовують старий шаблон.

Підроблені токени потрапляють під призму шахраїв щотижня. Шахрай використовує контракт ERC-20 під назвою "Uniswap" або "Chainlink" з дещо іншою адресою контракту. Ви шукаєте його на DEX, бачите знайому назву та купуєте підробку. Ваші гроші йдуть прямо на гаманець шахрая. Справжня адреса контракту LINK — 0x514910771AF9Ca656af840dff83E8264EcF986CA. Підробка може бути 0x514910... щось інше. Завжди копіюйте адресу з CoinGecko або офіційного сайту проекту. Ніколи не шукайте лише за назвою.

А ще є токени з прихованими хитрощами. На перший погляд, контракт виглядає як стандартний ERC-20. Під ним розробник додав функцію, яка дозволяє їм створювати необмежену кількість нових токенів. Або податок з продажу, який стягує 99% ваших токенів під час спроби обміну. Або чорний список, який забороняє продавати будь-кому, окрім розробника. Стандарт ERC-20 нічого не говорить про те, чого не може робити контракт. Він лише визначає мінімальні функції. Все інше залежить від розробника. Аудит токенів, DextScore та перевірені контракти на Etherscan існують саме через цю розбіжність між простотою стандарту та креативністю шахраїв.

Які-небудь питання?

Так. Будь-хто може розгорнути токен ERC-20 на Ethereum за допомогою Solidity та таких інструментів, як OpenZeppelin та Remix IDE. Технічний бар`єр низький. Створення базового токена займає менше години, а його розгортання коштує від 20 до 500 доларів США за газ залежно від умов мережі. Найскладніше — це не створення токена, а створення чогось, заради чого варто створювати токен.

На Ethereum було розгорнуто понад 500 000 контрактів токенів ERC-20. Більшість з них неактивні, покинуті або шахрайські. Кілька тисяч мають значний обсяг торгів та реальне використання. Найкращі токени ERC-20 за ринковою капіталізацією (USDT, USDC, LINK, UNI, DAI) становлять переважну більшість від загальної вартості.

Ні. ERC-20 – це технічний стандарт (план). USDT – це специфічний стейблкоїн, який використовує стандарт ERC-20. Уявіть собі ERC-20 як специфікацію USB, а USDT – як специфічний USB-пристрій. USDT також існує на інших блокчейнах (Tron, Solana, Avalanche), які використовують відповідні стандарти токенів, але версія Ethereum – це токен ERC-20.

Будь-який гаманець Ethereum, який підтримує власні токени, є гаманцем ERC-20. MetaMask, Trust Wallet, Coinbase Wallet, Rainbow, Plisio, Trezor та Ledger відображають та керують токенами ERC-20. Коли ви додаєте адресу контракту токена до MetaMask, він зчитує функції ERC-20 (balanceOf, symbol, decimals), щоб відобразити ваш баланс. Вам не потрібен спеціальний гаманець для токенів ERC-20. Працює будь-який гаманець, який підключається до Ethereum.

Ні. Coinbase — це криптовалютна біржа. Однак Coinbase підтримує токени ERC-20 для депозитів та виведення коштів через мережу Ethereum. Coinbase також створила Base, мережу другого рівня на Ethereum, де токени ERC-20 можна використовувати з нижчими комісіями за газ. Якщо ви надсилаєте токен ERC-20 на свій обліковий запис Coinbase, переконайтеся, що ви обрали мережу Ethereum (або правильний рівень другого рівня), щоб уникнути втрати коштів.

Ні. ETH – це рідна криптовалюта Ethereum. Вона існує на рівні протоколу та передує стандарту ERC-20. Токени ERC-20 створюються на основі Ethereum за допомогою смарт-контрактів. ETH не дотримується правил ERC-20, тому існує WETH (Wrapped ETH), щоб надати ETH формат, сумісний з ERC-20, для використання в DeFi. Коли ви взаємодієте з більшістю протоколів DeFi, ваш ETH автоматично обгортається в WETH за лаштунками.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.