Что такое ERC-20 токен?

Токены стандарта ERC-20 сделаны специально для платформы Ethereum.

Все они следуют стандартному списку функций, чтобы их могли передавать, хранить и обменивать на другие токены в экосистеме Эфириума. Разработчики Эфириума создали эти стандарты с тремя опциональными параметрами и шестью обязательными.

Опциональные:

  • Token Name (имя токена);
  • Symbol (символ);
  • Decimal (количество знаков после запятой).

Обязательные:

  • totalSupply;
  • balanceOf;
  • transfer;
  • transferFrom;
  • approve;
  • allowance.

Запутались? Разберёмся в деле.

Что такое Эфириум вообще?

Эфириум — это децентрализованная компьютерная сеть с двумя базовыми функциями.

К этим функциям принадлежит сам блокчейн для записи транзакций и виртуальная машина для выполнения смарт-контрактов.

Благодаря этому Эфириум может поддерживать выполнение децентрализованных приложений (DApps). DApps построены на базе Эфириума и могут использовать ресурсы системы Эфира. Процесс не бесплатный, разработчики платят за использование ресурсов платформы монетами ETH, нативной валютой экосистемы.

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

А при чём здесь смарт-контракты?

Смарт-контракты используются для создания ERC-20 токенов.

Они также созданы для учёта транзакций токенов и записи балансов на кошельках. Смарт-контракты написаны на языке Solidity, который следует логике «если это, тогда то» (IF THIS THEN THAT, IFTTT).

Представьте себе вендинговую машину.

Что происходит после того, как смарт-контракт создаёт токен?

С этого момента в дело вступает ERC-20.

После создания токена его можно обменять, потратить или дать кому-нибудь ещё. ERC-20 — это универсальный язык экосистемы Эфириума, который как раз таки позволяет обменивать одни токены на другие.

Источник иллюстрации — Storify News

Представьте, что вы создали криптоказино. Как и в обычном казино, здесь игроки должны использовать фишки для простоты расчётов между собой. Итак, заходит игрок, обменивает свои деньги на фишки и направляется к покерному столу.

Аналогия ясна, но как именно это работает?

Рассмотрим подробнее каждый из вышеупомянутых параметров токена в нашем криптоказино.

Разработчики должны безукоризненно следовать правилам.

Начнём с опциональных параметров:

  • Token Name: Blu Chip;
  • Symbol: BLU;
  • Decimal: 2.

Почему именно 2? Мы хотим, чтобы наши токены можно было разделить до такой степени, чтобы минимальная ставка игрока была не ниже 0,01 BLU. Мы могли бы оставить ноль, и тогда минимальная ставка составила бы 1 BLU, так как в таком случае разделить токены нельзя. Для ясности дела не будем углубляться в эти детали.

Начнём с главных параметров. Что такое [totalSupply] ?

[totalSupply] идентифицирует общее количество созданных ERC-20 токенов.

Первая вещь, с которой должно определиться казино — количество фишек. Скажем, на нашем покерном столе лежат 10 BLU на десять игроков.

Что насчёт [transfer] ?

[transfer] позволяет передать определённое количество токенов из их общего числа на кошелёк пользователя.

Перед началом игры каждый игрок должен получить свои BLU от дилера. Всем достаётся по одной фишке.

Для чего предназначена функция [balanceOf] ?

Функция [balanceOf] при вызове возвращает количество токенов на определённом адресе.

В первой раздаче пятеро из игроков взглянули на свои карты и решили пропустить этот раунд. Оставшиеся пять поставили по 0,5 BLU. Используя функцию [balanceOf], мы можем определить точное количество фишек на руках у каждого игрока.

Как я могу получить ERC-20 токены от других пользователей?

Функция [transferFrom] позволяет передавать монеты на другие адреса.

Хорошие новости! Наш игрок выиграл 2,5 BLU в первом раунде. Чтобы он смог получить свои фишки, мы воспользуемся функцией [transferFrom].

Можно ли подделать токен?

Не совсем, параметр [approve] проверяет каждую транзакцию относительно общего количества токенов.

Благодаря [approve] мы можем удостовериться, что ни один из посетителей казино не принёс с собой поддельные BLU.

Могу ли я как-нибудь соврать о количестве токенов на своём кошельке?

Нет.

Перед самой транзакцией функция [allowance] проверяет баланс пользователя. Если на нём недостаточно средств, она отменяет перевод.

В нашем казино не выдают кредиты. Если у одного игрока есть всего одна фишка, он не сможет поставить 2 BLU на кон в следующем раунде.

Какими преимуществами располагает ERC-20?

Он делает всё проще.

Без стандарта ERC-20 разработчики могли бы использовать собственные правила и терминологию в коде монет. К примеру, одни обозначали бы общее количество токенов функцией [totalAmount], другие — функцией [totalNumber].

К тому же биржам тоже пришлось бы учитывать особенности каждого отдельного проекта. Благодаря ERC-20 новые токены можно автоматически добавлять на биржу, перемещать между кошельками и так далее. Этот стандарт также упростил задачу создания новых монет, что сделало Эфириум самой популярной платформой для ICO в 2017 году.

А что насчёт проблем?

Стандарт ERC-20 не идеален.

В некоторых ситуациях токены могут быть уничтожены. Так происходит, когда их используют в качестве платёжного средства за смарт-контракты вместо Эфириума. Чтобы исправить проблему, комьюнити криптовалюты в данный момент работает над новым стандартом под названием ERC-223.

Источник иллюстрации — eCrypto

Сейчас он не совместим с ERC-20, поэтому разработчики пока могут использовать старый стандарт. Как только совместимость будет достигнута, большая часть проектов будет в состоянии мигрировать как раз на ERC-223.

В апреле 2018 года несколько бирж приостановили депозиты токенов на базе Эфириума из-за бага в функции batchOverflow. По словам экспертов, уязвимость была достаточно серьёзной и могла привести к созданию огромного количества токенов «из воздуха».

Есть ли реальные примеры использования ERC-20?

Их достаточно. Каждый токен на базе Эфириума создан по стандарту ERC-20.

По данным сервиса Etherscan, на данный момент создано более 139 тысяч самых разных токенов. Это число продолжает расти с каждым днём.

Среди самых известных проектов по стандарту ERC-20 создавался EOS, пятый по капитализации альткоин в крипторынке. До миграции на собственный блокчейн Tron (10 место) тоже работал по принципу ERC-20.

Кстати, вы тоже можете создать собственный токен ради изучения основных принципов работы Эфириума. Почерпнуть гениальную идею для стартапа получится в нашем чате. Возможно, именно вы станете очередным криптомиллиардером.

ПОДПИСЫВАЙТЕСЬ НА НАШ КАНАЛ В ТЕЛЕГРАМЕ. РАССКАЗЫВАЕМ ПРОСТО О СЛОЖНОМ.