Отфільтровано по " ERC-20 "

Стандарт ERC: історія, імплементація

Стандарт ERC: історія, імплементація
котик

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

«Прогрес - закон природи» Вольтер

Якщо ХХ сторіччя можна було охарактеризувати як «ні дня без прогресу», то у ХХI сторіччі це спостереження перетворилося в «ні хвилини без прогресу». Не встиг інтернет вийти з колиски, як уже на повну силу стала розвиватися децентралізована світова мережа або Web 3.0, поява якої багато в чому стала можливою завдяки розвитку криптовалютного ринку. Встигати за всіма нововведеннями давно стало не під силу людській увазі, саме тому важливою здатністю зараз є вміння виділяти ключові події, які в підсумку будуть суттєво впливати на майбутнє. Однією з таких подій стало створення стандарту ERC для токенів в мережі криптовалюти Ethereum.

Перші криптовалюти і виникнення попиту на універсальність

Роком відліку існування криптовалют прийнято вважати 2008, коли знаменитий Сатоши Накамото вперше представив рішення відомого в комп'ютерній науці завдання візантійських генералів - бездовірливу платіжну систему і платіжну одиницю в ній у вигляді біткоіна. Біткоін став першою в світі валютою, не забезпечену регулятором або фізичним активом. Його цінність визначається тим, наскільки його цінують потенційні і реальні користувачі.

Основними винаходами, які зробили криптовалюту настільки значущою для світу економіки і програмування, були закладені в ній блокчейн-технології. Вони дозволили створити репліковану розподілену базу даних, що в перспективі робило середовище криптовалют надійним, децентралізованим і прозорим. Другою важливою технологією були смарт-контракти, які могли стати запорукою безпеки угод і виконання зобов'язань сторонами, але ще не були повністю реалізовані в системі біткоіна, тому що не мали повноти по Тьюрингу і не були фактично реалізовані в клієнтському програмному забезпеченні.

Створення платформи Ethereum і поява універсальності

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

Саме смарт контракти, вперше повністю реалізовані в Ethereum, відкрили абсолютно нові можливості по створенню децентралізованих проектів і стартапів на основі технології блокчейн. Одним з подібних стартапів був, наприклад, The DAO - платформа для пошуку проектів для інвестування. ICO цього проекту стало одним з найуспішніших в історії. Однак через помилки в вихідному коді $ 60 млн були вкрадені з мережі. Проте кількість нових криптовалют і проектів продовжувала зростати з експоненційною швидкістю, а коди ставали все більш захищеними від можливих атак.

Роль стандарту ERC-20

Незабаром, після запуску платформи Ethereum, стало зрозуміло, що для спрощення взаємодії криптовалютних проектів вони всі повинні використовувати один вид смарт-контракту. Першим таким смарт-контрактом став ERC-20. ERC (Ethereum Request for Comments) - це офіційний протокол внесення пропозицій щодо поліпшення мережі Ethereum, а 20 - ідентифікаційний порядковий номер пропозиції. Всі бажаючі розробники можуть вносити свої зміни в стандарти і, в разі схвалення, протокол може бути прийнятий в середовище.

Стандарт ERC став визначати набір правил, які повинні бути дотримані для того, щоб токен був прийнятий і мав можливість взаємодіяти з іншими токенами в мережі. Самі токени є блокчейн-активами, які можуть мати цінність, а також можуть бути відправлені й отримані як будь-яка інша криптовалюта. Код стандарту знаходиться у відкритому доступі на Github, і будь-яка людина, що має досвід програмування, може створювати токени ERC-20. Саме поява стандарту ERC-20 призвела до вибуху кількості стартапів на платформі Ethereum в 2016-2017 роках.

Принцип роботи стандарту ERC-20

Згідно сертифікації, стандарт ERC-20 реалізує наступні функції:

  • Ім'я (name) - функція, яка повинна містити назву токена
  • Символ (symbol) - повертає строкове значення короткого символу токена
  • Розрядність (decimals) визначає число, на яке слід розділити значення суми токена, для відображення. Простіше кажучи це майбутня подільність криптовалюти
  • Загальний обсяг (total supply) визначає значення загального числа токенів
  • Баланс (balanceOf) показує баланс на рахунку гаманця, заданого параметром address_owner (де _owner - відповідний гаманець)
  • Передача в (transfer) реалізує передачу коштів в мережі деякої суми на певну адресу. Передача від (transferFrom) - передача токенів з однієї зазначеної адреси на іншу
  • Схвалення (approve) дозволяє виведення коштів з рахунку аж до максимально допустимої суми, переданої функції в якості параметру
  • Дозволена кількість (allowance) показує, скільки користувачу з адресою X дозволено вивести коштів з гаманця користувача з адресою Y

Також стандарт передбачає два види подій:

  • Передача (transfer) - подія переказу токенів між рахунками
  • Схвалення (approval) - подія, яка ініціюється під час успішного виконання функції approve, що описана вище
ефір

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

Приклади проектів на основі ERC-20

Зараз 95% всіх ICO на платформі Ethereum використовують саме цей стандарт. Легко зрозуміти, що серед проектів можна знайти безліч бульбашок, шахрайських стартапів або просто незліченну кількість схожих, як близнюки, проектів, про які ніхто ніколи не дізнається. Але в цьому морі вже почали з'являтися великі риби, які заслуговують на увагу.

Нижче наведемо приклади деяких таких проектів:

iEx.ec - платформа хмарних обчислень, яка ставить собі за мету об'єднання комп'ютерів в одну гігантську мережу обчислювальних потужностей, і планує знизити пороги входу для бажаючих отримати доступ до високошвидкісних обчислень. Буде найбільш корисною для нового покоління бізнесу.

RCN - мережа для p2p-кредитування, яка використовує блокчейн і смарт-контракти для прозорого проведення операцій за участю гаранта. Гарантом виступає юридична особа з доступом до локальної юрисдикції і зафіксованої в блокчейн-реєстрі кредитної історії позичальника, яка оцінює умови угоди і бере на себе частину ризику.

Wings - платформа для створення децентралізованих автономних організацій (DAO), яка дозволяє окремим громадянам і організаціям висувати нову пропозицію на розгляд учасників спільноти, а також надає інструменти правового регулювання для компаній і фізичних осіб.

Серед інших відомих проектів на основі стандарту ERC-20 можна виділити Augur, Aion, BAT, Bancor, Civic, Decentraland, DigixDAO, FirstBlood, Gnosis, Golem, Iconomi, Matchpool, Po.et, Ripio, SingularDTV, Status, Storj, TAAS, TenX, Veritaseum, Viberate, WeTrust.

Проблеми при використанні стандарту ERC-20

Оскільки токени ERC-20 є смарт-контрактами, вони не можуть бути змінені після того, як їх запустили організатори ICO. Крім того, в них можуть виявитися баги і вразливості, які можуть привести до втрати коштів (як у випадку з The DAO). Інша їхня проблема полягає в тому, що токени можуть бути помилково відправлені на смарт-контракт іншого ICO. В цьому випадку, якщо смарт-контракт не передбачає таку можливість, токени будуть втрачені. Станом на кінець 2017 року таким чином було втрачено понад $ 3 млн.

Пам'ятаєте, як розвивався інтернет? Спочатку сайти створювали люди, віддані справі і ідеї вільно поширюваної інформації, а потім туди прийшли абсолютно всі і, відповідно, наповнили інтернет незліченною кількістю не завжди потрібних даних. Чи став від цього інтернет жахливим місцем, як передрікали песимістично налаштовані експерти? За наявності певних фільтрів - ні, це все ще чудове місце і місцями навіть краще, ніж ми могли сподіватися. Приблизно те ж відбувається зараз з Ethereum, і завдяки відкритим кодам створювати криптопроекти на ньому може будь-який користувач. Це вже призвело до великої кількості схожих один на одного токенів і суттєво ускладнило процес їх вибору інвесторами.

Ще одна досить серйозна проблема стосується масштабованості всієї платформи. На даний момент в мережі функціонує прийнятна кількість користувачів, але якщо вона різко зросте або раптом стане такою, як у системи Visa, вона ризикує стати дуже повільною. Як повідомив творець Ethereum, команда платформи працює над цією проблемою.

Висновок

Введення стандарту ERC на платформі Ethereum стало справжньою подією в криптовалютному світі, бо дозволило звичайним людям створювати децентралізовані проекти, які, в майбутньому, потенційно можуть радикально змінити світ. ERC-20 викликав безпрецедентний бум ICO у 2016 - 2017 роках, став викликом традиційній економіці і змусив людей задуматися про походження власних цінностей, а інвесторів і представників влади нервово соватися на своїх стільцях.

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

Фото: flickr.com
Обробка: Vinci

Що таке токен ERC-20

Що таке токен ERC-20
токен ERC-20

Що таке токени ERC-20

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

ERC (Ethereum Request for Comments) - це один зі стандартів ERC -офіційний протокол для внесення пропозицій щодо поліпшення мережі Ethereum; 20 - унікальний ідентифікаційний номер пропозиції. Технічні специфікації для токенів, що випускаються на блокчейні Ethereum, були опубліковані у 2015 році. Токени, що відповідають цим специфікаціям, відомі як токени стандарту ERC-20 і фактично є смарт-контрактами на блокчейні Ethereum. Незважаючи на те, що маркери ERC-20 функціонують в межах фреймворка, встановленого командою Ethereum, цей фреймворк досить широкий, забезпечуючи розробникам велику гнучкість при їх створенні.

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

Чим була викликана необхідність створення стандарту ERC-20

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

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

скріншот

На перший погляд, така транзакція може виглядати порожньою, оскільки в полі "Value" нуль, проте кількість відправлених токенів (в даному випадку - OmiseGo) можна побачити в окремому полі.

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

Для чого потрібні маркери ERC-20

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

Серед найбільш відомих токенів ERC-20 можна називати: 0x, Aragon, Augur, Aeternity, Aion, Binance Coin, BAT, Bancor, Civic, Decentraland, Dentacoin, DigixDAO, Dragon, District0x, EOS, FirstBlood, Gnosis, Golem, Iconomi, Kin , KuCoin, Kyber, Melonport, Matchpool, Numeraire, OmiseGo, Po.et, Raiden, RChain, Ripio, SingularDTV, Status, Storj, TAAS, TenX, TTron, VeChain, Veritaseum, Viberate, WeTrust, Wings і iExec RLC.

Стандарт ERC-20 передбачає шість обов'язкових і три опційних (але рекомендованих) параметри для будь-якого смарт-контракту.

Обов'язкові параметри включають в себе функцію totalSupply, яка відповідає за загальну емісію токенів, забезпечуючи неможливість створення нових токенів після досягнення максимального числа. Функція balance0f визначає початкову кількість токенів, приписаних до певної адреси. Зазвичай, це адреса, що належить організаторам ICO.

Також стандарт описує два методи переміщення токенів, необхідних для їх розподілу серед користувачів і можливості здійснення транзакцій. Так, функція transfer забезпечує передачу токенів користувачу, який інвестував в проект під час ICO; функція transferFrom необхідна для здійснення транзакцій між користувачами.

Крім того, необхідні ще дві функції для верифікації двох попередніх методів переміщення токенів. Функція approve служить для перевірки того, що смарт-контракт, виходячи із загальної емісії, може здійснювати дистрибуцію токенів, в той час як функція allowance необхідна для перевірки того, чи є на адресі достатній баланс токенів для відправки на іншу адресу.

Серед опціональних параметрів - визначення максимальної кількості дрібних цифр після коми (для порівняння, біткоін має вісім таких цифр - 1.00000000 BTC), назви токена і його символу.

Набір цих параметрів дозволяє біржам і провайдерам гаманців створювати єдину кодову базу, що взаємодіє з будь-яким смарт-контрактом ERC-20.

Чи є ризики під час використання токенів ERC-20

Оскільки токени ERC-20 фактично є смарт-контрактами, вони, незважаючи на всю свою ефективність, мають певні ризики. Наприклад, смарт-контракт не може бути змінений після того, як його ініціювали організатори ICO, також в ньому можуть виявитися баги і вразливості, які можуть привести до втрати коштів.

Історія Ethereum знає чимало подібних інцидентів - одним з найбільш відомих прикладів став злам The DAO у 2016 році. Для усунення його наслідків і повернення коштів, в мережі було проведено хардфорк, в результаті якого новий ланцюг продовжив існування під назвою Ethereum, а противники такого рішення зберегли старий ланцюг, оголосивши про створення Ethereum Classic.

Які інші проблеми можуть виникнути з токенами ERC-20

Слід зазначити, що протокол ERC-20 не завжди виявляється достатнім для цілей, які ставляться під час створення токенів, і сам по собі не гарантує, що токен буде корисним, цінним або функціональним.

Крім того, одним з недоліків стандарту ERC-20 можна вважати те, що він робить можливість створення токенів досить тривіальною справою на технічному рівні. Це дозволяє багатьом проектам досить просто запустити ICO, що підтверджується і сукупною кількістю токенів - станом на 1 травня 2018 їх існувало вже близько 80 тисяч. Це веде до великої кількості схожих один на одного токенів, істотно ускладнюючи процес їх вибору інвесторами.

Інша проблема в тому, що токени можуть бути помилково відправлені на смарт-контракт іншого ICO. В цьому випадку, якщо смарт-контракт не передбачає таку можливість, токени будуть втрачені. Станом на кінець 2017 року, таким чином було втрачено понад $3 млн! Вирішити цю проблему покликано пропозицію ERC-223, що описує ситуацію, під час якої, не сумісна зі стандартом ERC-20 транзакція, відхиляється. Також можна очікувати, що певних змін в майбутньому зазнає і сам протокол ERC-20.

Фото: flickr.com
Обробка: Vinci