Токены ERC-20

Токены ERC-20

Что из себя представляют токены ERC-20?

Это токены, которые можно создать и использовать только на платформе Ethereum.

Сообщество Ethereum разработало стандарты для токенов, которые можно создавать на этой платформе, — стандарты ERC-20. Благодаря им, этими токенами можно пользоваться в качестве средства оплаты, обменивать на другие токены или переводить в криптовалютный кошелек.

Среди упомянутых выше стандартов есть три необязательных и 6 обязательных.

Необязательные:

  • Название токена
  • Символ
  • Точность (до 18 знаков после запятой)

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

  • totalSupply (общий запаc)
  • balanceOf (остаток)
  • transfer (перевод)
  • transferFrom (перевод из)
  • approve (подтверждение)
  • allowance (разрешение)

Чтобы лучше разобраться в токенах и стандартах ERC-20, немного освежим память и поговорим о сети Ethereum.

Что такое Ethereum?

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

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

Эти две функции обуславливают возможность Ethereum поддерживать децентрализованные приложения (DApps). Такие приложения создаются на существующем блокчейне Ethereum и заключают в себе все преимущества технологии, лежащей в их основе. За это разработчики таких приложений оплачивают потребление вычислительной мощности сети в Ether — единственной внутренней валюте на этой платформе.

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

Причем тут смарт-контракты?

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

С их помощью проведение транзакций с токенами упрощается, а также происходит фиксация остатка токенов на счету.

Смарт-контракты пишутся на языке программирования “Solidity” на основе логики IFTTT («Если это, тогда то»).

Лучше всего их работу иллюстрирует пример торгового автомата (на рисунке — «vending machine»).

 

erc-20 1

Как только токен создан, его можно тратить, отправлять кому-либо или торговать им.

ERC-20 — это универсальный язык, которым пользуются все токены сети Ethereum. Именно он позволяет приобретать одни токены за другие.

Допустим, мы хотим создать криптовалютное казино. Мы хотим, чтобы наши клиенты пользовались в нем нашими фишками просто для упрощения, как и в традиционном казино. Поэтому игрок обменивает свою традиционную валюту на наш токен и спешит к покерному столу.

Чтобы лучше понять данную аналогию, обратимся к стандартам ERC-20. Для разработчиков они играют важную роль. Начнем с необязательных.

  • Название токена: Blu Chip
  • Символ: BLU
  • Точность: 2 знака после запятой*

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

Обязательные правила

totalSupply — это общее количество созданных токенов ERC-20.

В первую очередь нашему казино нужно определиться, сколько токенов BLU будет в обращении. Допустим, на нашем покерном столе всего 10 BLU у 10 игроков.

erc-20 2

Функция transfer позволяет переводить определенное число токенов из общего запаса на счета пользователей.

Еще до начала игры игроки должны получить от крупье свои BLU. Каждый получает по одной фишке.

erc-20 3

Функция balanceOf позволяет вернуть токены, которые есть у данного пользователя, на его счет.

После первой раздачи в нашем покере пятеро игроков посмотрели на свои карты и решили не участвовать. Оставшиеся пятеро игроков решили сделать ставку ,5 BLU. С помощью функции balanceOf, мы видим, что у пятерых игроков по 1 BLU, а у оставшихся пятерых ,5 BLU.

erc-20 4

 

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

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

erc-20 5

При этом, поддельный токен вы получить не сможете. Функция approve проверяет транзакцию каждого токена из их общего запаса, поэтому появление лишних токенов или пропажа какого-то из них просто исключены.

Еще один способ обезопасить нашу гипотетическую партию в покер заключается в том, чтобы убедиться, что никто не добавил лишних токенов на стол. Здесь опять приходит на помощь функция approve : она разрешает обменивать BLU только проверив, что всего на нашем столе только 10 BLU.

erc-20 6

Интересно, что в нашем казино блефовать и говорить, что на руках у меня больше токенов, чем на самом деле, нельзя. До проведения транзакции функция allowanсe проверяет остаток на счету пользователя, и если токенов недостаточно, отменяет транзакцию.

В нашем криптовалютном казино кредитов не дают. Поэтому нам нужно удостовериться, что у каждого игрока на счету достаточно средств, чтобы сделать ставку. Если у них всего один BLU, им нельзя поставить два.

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

В широком смысле, их создание многое упростило.

До их появления разработчики использовали другую терминологию в коде, называя одни и те же функции по-разному. Например, в одном токене используется totalAmount («общая сумма»), а в другом — totalNumber («общее число»).

Биржам и кошелькам приходилось приспосабливать свои платформы под код каждого токена.

Однако, с появлением нового единого стандарта, новые токены можно размещать на бирже или переводить в кошелек автоматически, причем, сразу же, как только они появляются.

Кроме того, ERC-20 значительно упрощает сам процесс создания токенов. Именно поэтому Ethereum стала самой популярной платформой для ICO в 2017 году.

Каковы недостатки токенов ERC-20?

Стандарт ERC-20 не совершенен. Некоторые проблемы с помощью стандарта токенов ERC-20 решить невозможно.

В некоторых случаях такие токены непреднамеренно уничтожались. Это происходит, когда для оплаты смарт-контрактов используют их, а не Ether. Из-за таких ошибок пользователи лишились в общей сложности $3 млн.

Чтобы исправить этот баг, в сообществе Ethereum сейчас занимаются разработкой нового стандарта токенов ERC-223. Они не совместимы со старым стандартом, поэтому разработчики продолжат пользоваться ERC-20, пока они совместимость с ERC-223 не будет достигнута.

В апреле 2018 года некоторые биржи приостановили размещение и снятие со счетов токенов на базе Ethereum из-за бага batchOverflow. Он считается «классической проблемой переполнения целочисленного значения». С его помощью хакер может присвоить большое количество токенов.

Отмечается, что ныне существующие системы безопасности не способны справиться с этими уязвимостями.

Примеры токенов ERC-20

Любой токен, разработанный на платформе Ethereum, это токен ERC-20. В настоящее время их почти 83 тысячи. Но среди них есть и довольно популярные койны.

EOS (EOS) — занимает пятую строчку в рейтинге криптовалют. Его создатели разрабатывают сеть с возможностью использования межблокчейновой коммуникации.

TRON (TRX) — занимает 9 строчку. Его создатели позиционируют этот токен как «протокол с открытым исходным кодом для нужд цифровой индустрии развлечений».

Видео-обзор ERC-20

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here

шестнадцать − одиннадцать =