April 29, 2019

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

Эта статья будет посвящена общим стандартам токенов ERC и их отличиям друг от друга.

Одна из главных особенностей Ethereum — возможность создавать токены на блокчейне.

Токен — это единица учёта, не являющаяся полноценной криптовалютой (так как не имеет собственного блокчейна, но имеет гораздо более широкий спектр применения), предназначенная для представления цифрового баланса в некотором активе, иными словами выполняющая функцию «заменителя ценных бумаг» в цифровом мире. Токены представляют собой запись в блокчейне.


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

ERC — это аббревиатура, обозначающая Ethereum Request for Comments. Это предложение, котороесоздается разработчиками сети Эфириум в форме меморандума, описывающего методы, поведение, исследования или инновации, применимые к работе платформы. После одобрения основными разработчиками и сообществом предложение становится стандартом.

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

Рассмотрим самые популярные стандарты, а именно:

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

ERC20

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

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

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


ERC223

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

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


ERC721

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

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

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

Среди прочих проектов, созданных на основе стандарта ERC-721, стоит упомянуть: CryptoPunks, Decentraland, Rare Pepes, WePower и Cryptocup.


ERC827

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


ERC1155

ERC-1155 является своего рода улучшенной версией ERC-721. Данный стандарт токенов был запущен создателями Enjin (социальная платформа для геймеров).

Так как любой токен выпущенный по стандарту ERC-20 идентичен другому токену (например, 1 ETH = 1 ETH), то мы, играя в игру, в которой находятся сотни тысяч различных предметов должны были бы выпустить тысячи различных ERC-20 со своим уникальным адресом, транзакционными сборам и т.п. Это стало бы не только очень затратно, но и нанесло бы ущерб самой игре, так как загруженность сети была бы огромной, ведь каждой ноде пришлось бы обрабатывать такое огромное количество данных.

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

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


ERC777

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

  • Стандарт позволяет использовать одну транзакцию для работы со смарт-контрактами вместо двух, как это было в ERC20, что снижает накладные расходы всего блокчейна на эфире и уменьшает его нагрузку. Это работает, например, при обмене одного токена на другой.
  • Также позволяет пользователю отклонять входящие токены с черного списка адресов (внесение в черный список адресов может быть вызвано различными причинами, такими как взлом или незаконная деятельность).
  • Держатели токенов могут разрешать/запрещать передачу токенов другими операторами от их лица. Такими операторами могут выступать верифицированные контракты, такие как, например, биржи или автоматические системы взимания платы.
  • Каждая транзакция содержит специальное информационное поле, которое может быть использовано оператором или держателем токенов в свободной форме для лучшей коммуникации и передачи данных.