Зміст
вступ
Що таке стандарт ERC-20?
Короткі факти про токени Ethereum
Як генеруються токени ERC-20?
Які функції має ERC-20?
Стайблкойн
Жетони безпеки
маркер корисності
Чи можу я брати участь у майнінгу токенів ERC-20?
Переваги та недоліки токенів ERC-20
Переваги токенів ERC-20
Недоліки токенів ERC-20
Які відмінності між ERC-20, ERC-1155, ERC-223 і ERC-721?
Підведіть підсумки
вступ
Ethereum був заснований Віталіком Бутеріним у 2014 році і позиціонується як платформа з відкритим кодом для запуску децентралізованих програм (DApps). Мотивація Бутеріна для створення цього нового блокчейну здебільшого виникла через відсутність гнучкості в протоколі Bitcoin.
З моменту свого створення блокчейн Ethereum привернув увагу багатьох розробників, компаній і підприємців, породивши індустрію смарт-контрактів, що запускаються користувачами, і розподілених програм.
У цій статті ми розглянемо стандарт ERC-20, який є важливою структурою для створення токенів. Хоча він застосовується лише до мережі Ethereum, він є джерелом натхнення для інших стандартів блокчейну, таких як BEP-2 Binance Chain.
Що таке стандарт ERC-20?
В Ethereum повна назва ERC – Ethereum Request for Comments, тобто запит на коментарі Ethereum. Ці технічні документи описують стандарти програмування Ethereum. Це не слід плутати з пропозицією щодо покращення Ethereum (EIP), яка схожа на BIP біткойна та є пропозицією щодо вдосконалення самого протоколу. Метою ERC є створення протоколу, який полегшує взаємодію між заявками та контрактами.
Розроблений і написаний у 2015 році Віталіком Бутеріним і Фабіаном Фогельстеллером ERC-20 пропонує інший відносно простий формат для токенів на основі Ethereum. Поки дотримуються плану, розробникам не потрібно заново винаходити велосипед і вони можуть спиратися безпосередньо на те, що відбувається в галузі.
Коли створюються нові токени ERC-20, вони автоматично взаємодіють із службами та програмним забезпеченням, які підтримують стандарт ERC-20 (гаманці програмного забезпечення, апаратні гаманці, торгові платформи тощо).
Важливо зазначити, що стандарт ERC-20 перетворився на EIP (зокрема EIP-20). На той час минуло кілька років після оригінальної широко поширеної пропозиції, але навіть через кілька років назва "ERC-20" залишилася.
Короткі факти про токени Ethereum
На відміну від ETH (рідної криптовалюти Ethereum), токени ERC-20 не вносяться на рахунок, а існують лише всередині контракту, як незалежна база даних. Він визначає правила для токена (тобто назва, символ, подільність) і підтримує список адрес Ethereum, які відображають баланси користувачів.
Щоб передати токени, користувачі повинні відправити транзакцію в смарт-контракт, попросивши контракт розподілити частину балансу в іншому місці. Наприклад, якщо Аліса хоче надіслати Бобу 5000 токенів Binance Academy, вона викличе функцію у відповідному смарт-контракті для виконання інструкції.

Її дзвінок включав, здавалося б, звичайну транзакцію Ethereum, яка сплачувала 0 ETH за контракт токена. Цей виклик включений серед інших полів транзакції та визначає намір Аліси - у цьому випадку вона хоче передати токени Бобу.
Навіть без надсилання ефіру вона повинна сплатити певну комісію, щоб транзакція була додана до блоку. Якщо у вас немає ETH, вам слід попередньо внести трохи ETH перед передачею ваших токенів.
Нижче наведено реальний приклад в Etherscan: хтось викликає контракт BUSD. Ви побачите, що токени було передано та комісія сплачена, хоча поле значення показує, що було надіслано 0 ETH.
Далі ми переходимо до хвилин і занурюємося в типову структуру контракту ERC-20.
Як генеруються токени ERC-20?

Згідно зі стандартом ERC-20, у вашому контракті має бути встановлено шість обов’язкових функцій: totalSupply, balanceOf, transfer, transferFrom, approve та accountance. Крім того, можна вказати додаткові функції, такі як ім’я, символ і десяткове число. Ви можете зрозуміти функцію на основі назви. Не хвилюйтеся, якщо ви її не розумієте. Нижче ми розглянемо її по черзі.
Нижче наведено функції, представлені мовою Solidity для Ethereum.
totalSupply
функція totalSupply() публічний перегляд повертає (uint256)Після того, як користувач викличе наведену вище функцію, буде повернено загальний запас токенів, які зберігаються контрактом.
balanceOf
функція balanceOf(address _owner) публічний перегляд повертає (uint256 баланс)На відміну від totalSupply, balanceOf використовує адреси як параметри. Після виклику система повертає баланс токенів адреси. Пам’ятайте, що облікові записи в мережі Ethereum є публічними та прозорими. Ви можете перевірити баланс будь-якого користувача, якщо вам відома адреса.
передача
функція transfer(address _to, uint256 _value) public повертає (bool успіх)Функція передачі дозволяє користувачам передавати маркери один одному. Потрібно вказати адресу отримання токена та суму переказу.
Під час виклику transfer запускає подію (подія «transfer» у даному випадку), основна функція якої полягає в тому, щоб повідомити блокчейну містити посилання на цю функцію.
передачаВід
функція transferFrom(адреса _від, адреса _до, uint256 _значення) публічне повернення (логічний успіх)Функція transferFrom є зручною альтернативою функції передачі, ефективно покращуючи програмованість у децентралізованих програмах. Подібно до функції передачі, він використовується для переміщення токенів, але ці токени не обов’язково належать користувачеві, який викликає контракт.
Іншими словами, ви можете уповноважити когось іншого або інший договір переміщувати кошти від вашого імені. Наприклад, якщо ви не хочете вручну оплачувати послугу передплати щодня/щотижня/щомісяця, ви можете дозволити програмі виконувати цю роботу за вас.
Події, що запускаються цією функцією, такі ж, як і передача.
затвердити
функція approve(address _spender, uint256 _value) публічне повернення (bool успіх)З точки зору програмування, approve — ще одна дуже корисна функція, яка обмежує кількість токенів, які смарт-контракт може вилучити з балансу. Без цього поточні контракти можуть стати недійсними (або використаними), а всі кошти ризикують бути вкраденими.
Знову ж таки, візьмемо модель підписки як приклад. Припустімо, ви володієте великою кількістю токенів Binance Academy і хочете налаштувати регулярні щотижневі виплати для свого потокового DApp. Я надто зайнятий читанням статей Binance Academy, щоб щотижня витрачати час на створення угод вручну.
Великий баланс токенів Binance Academy значно перевищує комісії, необхідні для оплати підписки. Щоб запобігти виплаті DApp усіх активів, ви можете використовувати approve, щоб установити ліміт. Якщо припустити, що ваша підписка коштує 1 токен Binance Academy на тиждень, ваша підписка автоматично оплачуватиметься протягом 5 місяців, якщо ліміт схвалення становить 20 токенів.
Якщо програма піде не так і DApp спробує вивести всі кошти, ви втратите лише до 20 токенів. Хоча втрата ваших токенів засмучує, результат набагато кращий, ніж втрата всіх ваших активів.
Після виклику цієї функції approve ініціює подію затвердження, як і функція передачі, вона записує дані в блокчейн.
надбавка
функція надбавка (адреса _власник, адреса _spender) повертає публічний перегляд (залишилося uint256)надбавку можна використовувати разом із затвердити. Якщо для контракту надано права керування токеном, ви можете перевірити баланс токена, який можна зняти, через нього. Наприклад, якщо припустити, що служба підписки використовує 12 із 20 схвалених токенів, виклик функції дозволу поверне загалом 8 токенів.
Інші додаткові функції
Все вищесказане є обов'язковою функцією. З іншого боку, ім’я, символ і десяткова дробова частина є необов’язковими функціями, але вони можуть зробити ERC-20 більш повним. Ці функції відповідно підтримують додавання зрозумілого для людини імені, встановлення символу (тобто ETH, BTC, BNB) і визначення кількості знаків після коми, на які можна розділити токен. Наприклад, токени, які використовуються як валюта, більш подільні і, отже, більш вигідні, ніж токени, які використовуються для представлення права власності на власність.
Перегляньте цей приклад на GitHub, щоб побачити, як ці елементи виглядатимуть у реальному контракті.
Які функції має ERC-20?

Узагальнюючи всі перераховані вище функції, ми отримуємо контракт ERC-20. Ми можемо запитувати загальну пропозицію, переглядати баланси, переказувати кошти та авторизувати інші DApps для керування токенами від нашого імені.
Гнучкість токенів ERC-20 є величезною перевагою. Встановлена угода не обмежує розвиток, і кожна сторона може запускати інші функції та встановлювати конкретні параметри відповідно до власних потреб.
Стайблкойн
Стайблкойни (токени, прив’язані до фіатних валют) зазвичай використовують стандарт токенів ERC-20. Згадана вище контрактна транзакція BUSD є типовим прикладом, і більшість стейблкоїнів також використовують цю форму.
Для стейблкойнів, забезпечених основними фіатними валютами, емітенти можуть зберігати резерви в євро, доларах США тощо, а потім випускати токени для кожної одиниці в резервах. Це означає, що якщо в сховище буде внесено 10 000 доларів США, емітент може створити 10 000 токенів, кожен вартістю 1 долар США.
З технічної точки зору це легко реалізувати в Ethereum. Емітент просто запускає контракт із 10 000 токенів, а потім роздає токени користувачам, обіцяючи, що вони зможуть обміняти токени на певний відсоток фіатної валюти в майбутньому.
Користувачі можуть використовувати свої токени для виконання різноманітних дій, включаючи покупку товарів і послуг і подання заявок на DApps. Крім того, від емітента можна вимагати негайно викупити ці токени. У цьому випадку емітент також може знищити повернуті токени (нехай термін їх дії закінчиться) і вилучити еквівалентну кількість фіатних грошей із резерву.
Як згадувалося раніше, контракти, які регулюють цю систему, відносно прості. Однак запуск стейблкойна вимагає уваги до багатьох інших зовнішніх факторів (таких як логістика, відповідність тощо) і великих зусиль.
Жетони безпеки
Токени безпеки схожі на стейблкойни і навіть можуть бути повністю ідентичними на рівні контракту, оскільки обидва працюють однаково. Різниця полягає в емітенті: токени безпеки представляють такі цінні папери, як акції, облігації або реальні активи. Зазвичай, хоча і не завжди, вони надають власнику акції в бізнесі чи товарі.
маркер корисності
Утилітарні токени є, мабуть, найпоширенішим типом токенів сьогодні. На відміну від двох попередніх токенів, корисні токени не забезпечені реальними активами. Якщо акції авіакомпаній представляють токени, забезпечені активами, токени корисності схожі на програми для часто літаючих пасажирів: вони мають певну функціональність, але не мають зовнішньої цінності. Утилітарні токени можуть служити численним потребам, наприклад використовуватися як внутрішньоігрова валюта, паливо для децентралізованих програм і бали лояльності.
➠ Хочете розпочати свою криптовалютну подорож? Ласкаво просимо до Binance, щоб купити Ethereum!
Чи можу я брати участь у майнінгу токенів ERC-20?
Ви можете брати участь у майнінгу Ethereum (ETH), але токени не можна майніти – ми називаємо створення нових токенів карбуванням. Після того, як контракт запрацює, розробники розподілять постачання відповідно до планів і дорожніх карт,
Зазвичай це робиться за допомогою початкової пропозиції монет (ICO), початкової пропозиції обміну (IEO) або пропозиції маркерів безпеки (STO). Ви можете зустріти кілька варіантів цих абревіатур, але поняття дуже схожі. Інвестори надсилають ефір на адресу контракту та отримують натомість нові токени. Зібрані кошти будуть використані для фінансування подальшого розвитку проекту. Користувачі очікують, що зможуть використовувати свої токени (відразу чи пізніше) або перепродавати їх із прибутком у міру розвитку проекту.
Випуск токенів не обов’язково автоматизований. Багато краудфандингових кампаній допомагають користувачам здійснювати платежі за допомогою різних цифрових валют (таких як BNB, BTC, ETH і USDT), а потім розподіляти відповідний баланс на адресу, надану користувачем.
Переваги та недоліки токенів ERC-20
Переваги токенів ERC-20
Взаємозамінність
Жетони ERC-20 є взаємозамінними, і всі одиниці можна обміняти один на одного. Що стосується токенів Binance Academy, вони однакові незалежно від того, яку конкретну монету ви тримаєте. Ви можете торгувати з іншими людьми, і токени функціонують так само, як готівка або золото.
Це ідеально, якщо ваш токен сподівається перетворитися на певну валюту. Токени з різними характеристиками втрачають взаємозамінність і не відповідають вашим вимогам. Це може призвести до того, що певні токени будуть коштувати менше або більше, ніж подібні токени, що порушить початкову мету.
гнучкий
Як обговорювалося в попередньому розділі, токени ERC-20 дуже легко настроюються, і рішення можна адаптувати для різних програм. Приклади включають використання як внутрішньоігрову валюту, бали лояльності для програм, цифрові предмети колекціонування або навіть зображення витворів мистецтва та власності.
дуже популярний
ERC-20 набирає популярності в сфері криптовалют, і розроблений на його основі план дуже переконливий. Численні біржі, гаманці та смарт-контракти тепер сумісні з різними нещодавно запущеними токенами. Крім того, підтримка розробників і документація досить повні.
Недоліки токенів ERC-20
Погана масштабованість
Це поширена проблема серед багатьох криптовалютних мереж, і Ethereum не застрахований від неї. У своєму нинішньому вигляді він погано масштабується. Надсилання транзакцій у пікові періоди стягує високі комісії та великі затримки. Якщо токени ERC-20 використовуються та викликають перевантаження мережі, це також вплине на їх доступність.
Це не унікальна проблема Ethereum, а компроміс, на який повинні піти всі безпечні розподілені системи. Спільнота планує вирішити ці проблеми після переходу на Ethereum 2.0 і впровадження таких оновлень, як Ethereum Plasma та Ethereum Casper.
Будь ласка, прочитайте «Масштабованість блокчейну: бічні ланцюги та платіжні канали», щоб дізнатися більше про проблеми масштабованості.
Шахрайство
Хоча в самій технології немає нічого поганого, у певному сенсі легкість випуску токенів може бути недоліком. Прості токени ERC-20 легко створити, тобто кожен може це зробити, але зі змішаними намірами.
Тому інвестувати потрібно обережно. Існує багато пірамідних схем і схем Понці, замаскованих під блокчейн-проекти. Перш ніж інвестувати, ви повинні провести власне дослідження, щоб переконатися, що інвестиційна можливість є законною.
Які відмінності між ERC-20, ERC-1155, ERC-223 і ERC-721?
ERC-20 був першим (і на сьогоднішній день найпопулярнішим) стандартом токенів Ethereum, але він не єдиний. Протягом багатьох років було розроблено багато інших стандартів. Більшість з них є вдосконаленими стандартами ERC-20, інші намагаються досягти зовсім інших цілей.
Кілька незвичайних стандартів застосовуються до незамінних токенів (NFT). У деяких випадках унікальні токени з різними властивостями можуть зробити вас бенефіціаром. Якщо ви хочете токенізувати унікальні твори мистецтва, внутрішньоігрові активи тощо, один із цих типів контрактів може бути більш привабливим.
Наприклад, стандарт ERC-721 використовується в дуже популярному додатку CryptoKitties DApp. Цей контракт надає користувачам API для створення власних незамінних токенів і кодування метаданих (зображень, описів тощо).
Стандарт ERC-1155 можна розглядати як вдосконалення ERC-721 і ERC-20. Він підтримує як взаємозамінні, так і незамінні стандарти токенів в одному контракті.
Інші опції, такі як ERC-223 або ERC-621, призначені для покращення зручності використання. Перший реалізує заходи захисту для запобігання випадковим передачам токенів. Останній забезпечує додаткову функціональність для збільшення або зменшення запасу токенів.
Щоб дізнатися більше про NFT, прочитайте Посібник із CryptoCollectibles і Non-Fungible Tokens (NFT).
Підведіть підсумки
Стандарт ERC-20 протягом багатьох років був домінуючим гравцем у сфері криптоактивів. Причини очевидні: стандарт відносно простий, і будь-хто може розгорнути прості контракти відповідно до різних потреб (корисні токени, стейблкойни тощо). Тим не менш, ERC-20 не має деяких функцій інших стандартів, але ще невідомо, чи можуть інші типи контрактів зайняти його місце.
