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), щоб надати приватні ключі для кожного продукту, що дозволяє їх відстежувати.