ERC-20 Токени: Пояснення
Що таке ERC-20 токени?
ERC-20 токени – це токени, які розроблені та використовуються виключно на платформі Ethereum.
Вони дотримуються списку стандартів, щоб їх можна було ділити, обмінювати на інші токени або передавати в криптовалютні гаманці.
Спільнота Ethereum створила ці стандарти з трьома необов’язковими правилами та шістьма обов’язковими.
Необов’язкові
- Назва токена
- Символ
- Десятичний формат (до 18)
Обов’язкові
- totalSupply
- balanceOf
- transfer
- transferFrom
- approve
- allowance
Заплуталися? Давайте відступимо трохи назад.
Що таке Ethereum?
Ethereum – це децентралізована мережа комп’ютерів з двома основними функціями. Це: блокчейн, який може записувати транзакції, та віртуальна машина, яка може виробляти смарт-контракти.
Завдяки цим двом функціям, Ethereum здатен підтримувати децентралізовані програми (DApps). Ці DApps створюються на основі існуючого блокчейна Ethereum, використовуючи його технологію. Натомість, Ethereum стягує з розробників плату за обчислювальні ресурси у своїй мережі, яку можна оплатити тільки Ether, єдиною міжплатформенною валютою.
В залежності від її призначення, DAPP можуть створювати ERC-20 токени для функціонування як валюти, частки компанії, бали у програмі лояльності або навіть доказ володіння, скажімо, певною кількістю золота або правом власності на будинок.
Яку роль відіграють смарт-контракти в усій цій історії?
Смарт-контракти використовуються для створення ERC-20 токенів.
Вони також використовуються для сприяння транзакціям токенів та запису залишків токенів на рахунку.
Смарт-контракти написані на мові програмування “Solidity” на основі логіки If-This-Then-That (IFTTT).
Думайте про це як про автомат з продажу товарів.
Що відбувається після того, як смарт-контракт створює токен?
Ось тут і вступає в справу ERC-20.
Після створення токена, його можна обмінювати, витрачати або передавати іншим особам.
ERC-20 – це універсальна мова, яку використовують всі токени в мережі Ethereum. Вона дозволяє обмінювати один токен на інший.
Уявімо, що ми хочемо створити крипто-казино. Так само, як у звичайному казино, ми хочемо, щоб наші гравці використовували наші фішки, для спрощення.
Отже, гравець обмінює свої фіатні гроші на наші токени і прямує до покерного столу.
Зрозуміли аналогію, але як це насправді працює?
Давайте розглянемо кожне правило для ERC-20 в нашому прикладі з “крипто-казино”.
Вони дуже важливі для дотримання розробниками.
Розпочнемо з необов’язкових правил:
Назва токена: Blu Chip
Символ: BLU
Десятковий формат: 2*
*Ми хочемо, щоб наші токени були ділимо, тому мінімальна ставка гравця становить 0.01 BLU. Ми могли б залишити десятковий формат на 0 та встановити 1 BLU як мінімум, або збільшити десятковий формат до 18, що призведе до .000000000000000001 BLU як найменшої можливої частини, але давайте залишимо це простим.
Тепер до обов’язкових правил: що таке [totalSupply]?
[totalSupply] визначає загальну кількість створених токенів ERC-20.
Перше, що нашому казино потрібно мати, – це підрахунок, скільки токенів BLU знаходиться в обігу. Припустимо, наш покерний стіл має в загальному 10 BLU з десятьма гравцями.
Що з [transfer]?
[transfer] дозволяє переказати певну кількість токенів з загальної пропозиції на рахунок користувача.
Перед тим, як гра може початися, гравці повинні отримати свої BLU від дилера.
Кожен гравець отримує 1 BLU.
Що робить функція [balanceOf]?
Коли виконується функція [balanceOf], вона повертає кількість токенів, які має певна адреса в своєму обліковому записі.
В першій роздачі нашого покерного гри 5 гравців подивилися на свої карти і вирішили не грати. Кожен з залишилися 5 гравців вирішив поставити 0.5 BLU. Використовуючи [balanceOf], ми бачимо, що п’ятеро гравців мають по 1 BLU, а п’ятеро – по 0.5 BLU.
Як я можу отримати ERC-20 токени від інших користувачів?
[transferFrom] – це функція, яка дозволяє користувачеві перевести токени іншому користувачеві.
Хороші новини! Ви виграли першу роздачу і отримали 2.5 BLU від інших гравців.
Але щоб забрати їх у них, вам потрібен [transferFrom]. Без цього, що заважає комусь іншому вкрасти ваші BLU?
Чи є спосіб зробити підроблені токени?
Не зовсім, тому що [approve] перевіряє транзакцію з загальною пропозицією токенів.
Це забезпечує, щоб не було відсутніх чи зайвих токенів.
Інший спосіб захистити цілісність нашої гіпотетичної гри в покер – це забезпечити, щоб ніхто не приніс зайвих BLU до столу. Отже, [approve] дозволяє обмін, перевіряючи, що загальна кількість BLU на столі дорівнює 10.
Які переваги має ERC-20?
В основному, це робить усе простішим.
До токенів ERC-20 розробники могли використовувати іншу термінологію в коді — наприклад, один токен використовує [totalAmount], тоді як інший використовує [totalNumber].
Біржі та гаманці повинні були створювати свої платформи, щоб враховувати код кожного з токенів.
Завдяки універсальному стандарту, нові токени можуть автоматично бути додані на біржу або передані в гаманець, як тільки вони будуть створені.
ERC-20 також робить створення нових токенів надзвичайно простим, і тому Ethereum став найпопулярнішою платформою для ICO у 2017 році.
Чи є проблеми з ERC-20?
ERC-20 не ідеальний.
Є деякі проблеми, які стандарти токенів ERC-20 не вирішують.
Є ситуації, коли токени можуть бути ненавмисно знищені, коли їх використовують як платіж для смарт-контракту, замість того, щоб використовувати Ether. Приблизно $3 мільйони було втрачено через це.
Щоб виправити цей баг, спільнота Ethereum наразі працює над новим стандартом
під назвою ERC-223. Ці стандарти не є сумісними з ERC-20, проте, тому розробникам рекомендується продовжувати використовувати ERC-20, поки не буде реалізована сумісність.
В квітні 2018 року низка бірж призупинила депозити та зняття токенів, заснованих на Ethereum, через баг batchOverflow. Це описується як ‘класичне питання цілочисельного переповнення’ і може потенційно дозволити зловмиснику ‘володіти величезною кількістю токенів’. Було зазначено, що наразі немає традиційного підходу до безпеки для виправлення цих вразливостей.
Чи є у світі реальний приклад?
Кожен токен на платформі Ethereum є токеном ERC-20.
На момент публікації їх налічується 82815, давайте поглянемо на деякі з них.
EOS (EOS), який наразі є 5-ю найбільшою криптовалютою з ринковою капіталізацією майже $12 мільярдів, намагається створити мережу, яка може використовувати міжблокчейнну комунікацію і
TRON (TRX) займає 10-ту позицію серед усіх криптовалют на момент написання і описується як ‘відкритий протокол для індустрії цифрових розваг.’ Він намагається запустити платформу для контенту з екосистемою, що з’єднує всіх людей, які створюють різні види контенту.
‘Публічна блокчейн-платформа рівня підприємства’ VeChain (VEN), 15-та криптовалюта за ринковою капіталізацією, планує впровадити технологію Інтернету речей (IoT), щоб надати приватні ключі для кожного продукту, що дозволяє їх відстежувати.