Разновидности токенов ERC | Bitcoin School
Bitcoin School

Разновидности токенов ERC

28-го июня 2019

Токен – это цифровая единица учёта, представляющая долю в некотором активе. Токены имеют десятки настраиваемых при создании параметров, например, ограниченное предложение, плавная эмиссия или сложная монетарная политика, делимость токена или ее полное отсутствие, модель использования в своей экосистеме или или просто представление физических активов в цифровом мире и многие другие. Можно сказать, что это частный случай смарт-контракта.

В отличие от криптомонеты, не имеет собственного блокчейна, а выпускается на специальной платформе. Первой платформой с возможностью выпуска токенов стал  Ethereum. Простота создания и использования токенов не только поспособствовали популярности криптоиндустрии (бум ICO в 2017), но и являются одним из ключевых и общепризнанных use cases, так как позволяют оперировать активами из реального мира в виртуальном на не требующей доверия основе.


Что означает ERC?

ERC (Ethereum Request for Comments) – это запрос комментариев в сообществе Эфириум. Это официальный протокол внесения предложений по улучшению сети. ERC – это спецификации для конкретной технологии, в данном случае Ethereum. Все ERC формализуются в виде EIP (Ethereum Improvement Proposal/предложения по улучшению сети Ethereum).

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

В нашей статье мы рассмотрим основные стандарты Эфириум-токенов, в полной мере принятые сообществом.

  • ERC20
  • ERC223
  • ERC721
  • ERC827
  • ERC1155
  • ERC777

 Спецификации и статус всех ERC и других EIP можно смотреть здесь.

ERC20

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

  • totalSupply — определяет количество токенов, которые будут созданы для распространения. осле достижения максимума смарт-контракт перестает их выпускать.
  • Transfer — выполняет перевод токенов с первичного адреса индивидуальным пользователям, которые решили приобрести их во время ICO.
  • TransferFrom — пользователь может передавать токены и обмениваться ими. Эта функция работает как посредник, который получает адрес вашего кошелька, получателя, сумму для отправки, а затем выполняет транзакцию.
  • balanceOf — отслеживает баланс токенов на каждом кошельке.
  • Approve — проверяет, остались ли токены у смарт-контракта.
  • allowance — гарантирует, что на неком адресе достаточно токенов для их пересылки на другой адрес.

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


ERC223

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

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

Примеры: LINK, CNEX, SHC и другие

 

ERC621

Данный стандарт добавляет к ERC20 2 функции increaseSupply и decreaseSupple, с помощью которых можно изменять общее количество токенов, тоесть провести дополнительную эмиссию или сжечь токены.

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

 

ERC721

Впервые этот стандарт был использован в игре CryptoKitties. В ней игроки могут покупать, продавать и скрещивать цифровых котят. Котенок в этой игре является уникальным цифровым неделимым предметом коллекционирования. Каждый из них имеет свою особенную ценность, поэтому не получится использовать стандарт ERC-20 для котят. Для таких целей появился стандарт ERC-721, который позволяет создавать невоспроизводимые (уникальные) токены (non-fungible tokens). Это позволяет в пределах одной платформы или экосистемы существовать аналогичным токенам разной стоимости.

Подробнее об особенностях этого стандарта читайте в статье.

Примеры: CryptoPunks, Decentraland, Rare Pepes, WePower и другие.

 

ERC777

Этот стандарт определяет новый способ взаимодействия со смарт-контрактами, оставаясь полностью совместимым с ERC20.

  • Стандарт позволяет использовать одну транзакцию для работы со смарт-контрактами вместо двух, как это было в ERC20, что снижает накладные расходы всего блокчейна и уменьшает нагрузку на сеть. ERC20 работают через функцию «transfer» и требуют исполнения двух транзакций для обмена одного токена на другой через смарт-контракт. Первая транзакция при работе со стандартом ERC20 отправляет запрос на одобрение, вторая – разрешает контракту выполнить передачу токена от вашего имени. Стандарт ERC777 работает по другому принципу. Использующий функцию «send» ERC777-токен обращается к универсальному доверенному контракту, не имеющему владельца – ERC820 – который, по сути, является реестром, сообщающим токену, является ли контракт, к которому он обращается, совместимым. Если контракт не является совместимым или зарегистрированным, транзакция будет отклонена. В этом случае отправитель сможет обратиться к модели ERC20-токенов и запросить одобрение. Контракт или адрес достаточно лишь однажды зарегистрировать в ERC820-контракте – после этого он будет доступен для всех пользователей системы.
  • Ещё одним преимуществом ERC777 перед ERC20 является возможность использования так называемых хуков. Как пояснил один из авторов на DappCon, «хуки – это функции, которые могут быть вызваны во время трансфера». Другими словами, хук определяет параметры транзакции. Среди прочего он может потребовать отправить уведомление отправителю или получателю до или после завершения транзакции. Хуки также могут определять, как получатель будет распоряжаться переданными ему токенами. Например, как пояснил автор Джорди Байлина, в контракте может быть установлен определённый процент, который будет передаваться на благотворительные цели с каждой транзакцией. Работа хуков также зависит от вышеупомянутого ERC820-контракта. Например, если контракт токена написан таким образом, чтобы отклонять приём токенов с определённой функцией, он будет обращаться к ERC820-контракту, чтобы узнать, присутствует ли названная функция в передаваемом ему токене. Если передаваемый токен не включен в ERC820-контракт, транзакция будет отклонена.
  • Ещё одним серьёзным отличием ERC777 от ERC20 является возможность использования операторов. Как объясняется в EIP, «оператор – это адрес, которому разрешено переводить и сжигать токены от имени другого адреса». Оператор может быть установлен держателем токена и являться адресом контракта или обычным адресом. Он может быть отключен в любой момент. Это позволяет реализовать ряд функций, включая автоматические платежи. В качестве примера Байлина назвал возможность регулярной оплаты подписок или передачи токенов с холодного кошелька на горячий. ERC777 также позволяет задавать «операторов по умолчанию». Согласно EIP, «такие операторы устанавливаются для всех держателей токенов». Байлина пояснил, что операторы по умолчанию могут использоваться, например, для автоматического вычета стоимости газа, что упростит процесс отправки транзакции. Хотя оператор по умолчанию применяется ко всем пользователям в момент своего создания, держатель токена в любое время может отозвать авторизацию. Впрочем, не ясно, как пользователи, не подозревающие о наличии этой функции, будут узнавать об операторе, что поднимает вопрос о безопасности и этичности его использования.
  • Каждая транзакция содержит специальное информационное поле, которое может быть использовано оператором или держателем токенов в свободной форме для лучшей коммуникации и передачи данных.

Источник


ERC827

Еще один конкурент ERC20. Токен стандарта ERC827 может передавать не только определённое количество криптовалюты, но и небольшой объем данных вместе с транзакцией, а также, допускает передачу права распоряжаться токенами и позволяет их тратить третьими лицами до тех пор, пока их владелец это одобряет. Это может быть полезно при необходимости часто передавать непостоянное количество токенов, зависящее от решения другой стороны в соответствии с оговоренными критериями (стоит отметить, что при этом 3-я сторона не будет иметь доступа к приватному ключу).

Примеры: GEN, TFD и другие


ERC1155

Позволяет смарт-контрактам работать одновременно с токенами разных типов: взаимозаменяемыми (FT), не взаимозаменяемыми (NFT) и другими комбинациями их свойств.

Токены ERC-20 взаимозаменяемы, то есть идентичны друг другу. Чтобы токенизировать, например, сотни игровых уникальных предметов понадобится выпустить столько же отдельных ERC20 токенов, что очень неудобно и дорого. Здесь нам поможет стандарт ERC-1155, по которому можно создавать токены с различными параметрами делимости и взаимозаменяемости. Этот стандарт объединяет в себе ERC-20 и ERC-721. Таким образом, предметы записаны в одной транзакции с минимальным количеством информации, необходимой для отличия токена одного такого элемента от другого.

Например, чтобы передать уникальные доспехи, меч, внутриигровые коллекционные карточки и игровую валюту из какой-либо игры, вам понадобиться всего одна транзакция ERC-1155, а не несколько переводов ERC20 токенов разного вида. Это позволит использовать меньше газа (заплатить меньшую комиссию) и создаст меньшую нагрузку на сеть Эфириум.

Пример: Multiuniverse items от Enjin