Стандарт ERC (Ethereum Request for Comments) — Токены

Стандарт ERC Ethereum

Что такое стандарт ERC Ethereum? Ethereum — Это децентрализованная платформа, на которой можно создавать приложения и смарт-контракты на языке программирования Solidity. Для любого нового приложения, использующего блокчейн или смарт-контракты, можно создать свой токен, совместимый с сетью Ethereum. Разработчики внедрили несколько стандартов для таких токенов, со своим набором функций и требований.

Наиболее распространенным стандартом Ethereum-токенов в настоящее время выступает ERC-20, но есть также стандарты ERC-223, ERC-404, ERC-721, ERC-777, ERC-820, ERC-821, ERC-875, ERC-998, ERC-1155. В этой статье мы расскажем о каждом из них.

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

Стандарт ERC-20 Ethereum

Любой токен — Это просто смарт контракт или фрагмент кода в Ethereum. Токен ERC создается путем написания фрагмента кода на языке программирования, таком как Solidity, который следует базовому шаблону или базовому коду. После использования базового шаблона вы можете выбрать уникальные сведения о создаваемом токене, такие как владелец, имя токена, символы и т. д.

Стандарт ERC 20

Стан­дарт то­ке­нов ERC-20 имеет шесть обя­за­тель­ных па­ра­мет­ров для каж­до­го смарт-кон­трак­та и три до­пол­ни­тель­ных. На­при­мер, к до­пол­ни­тель­ным от­но­сит­ся до­пу­сти­мое число зна­ков после за­пя­той. Для срав­не­ния, бит­ко­ин под­дер­жи­ва­ет во­семь зна­ков после за­пя­той, сим­вол (обыч­но это 3−4-знач­ный код) и имя. Шесть обя­за­тель­ных па­ра­мет­ров опре­де­ля­ют ко­ли­че­ство и пе­ре­да­чу то­ке­нов. Пер­вые два ис­поль­зу­ют­ся для за­да­ния ис­ход­но­го рас­пре­де­ле­ния:

  1. Функция totalSupply определяет общее количество токенов. После достижения максимума смарт-контракт перестает их выпускать.
  2. Функция balance0f присваивает первичное число токенов любому адресу (обычно это адрес владельцев ICO).

Для рас­пре­де­ле­ния между поль­зо­ва­те­ля­ми и пе­ре­во­да от од­но­го поль­зо­ва­те­ля к дру­го­му необ­хо­ди­мы два ме­то­да пе­ре­но­са. Они крайне важны для вто­рич­но­го рынка:

  1. Функция transfer переводит токены с первичного адреса индивидуальным пользователям, купившим их во время ICO.
  2. Функция transferFrom используется для пересылки токенов от одного пользователя к другому.

Еще две функ­ции необ­хо­ди­мы для про­вер­ки двух преды­ду­щих:

  1. Функция approve проверяет, остались ли токены у смарт-контракта.
  2. Функция allowance гарантирует, что на неком адресе достаточно токенов для их пересылки на другой адрес.

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

Стандарт ERC-223 Ethereum

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

Стандарт ERC 223

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

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

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

Стандарт ERC-721 Ethereum

ERC-721 – Это стандарт токенов с сети смарт-контрактов Ethereum. Он был разработан в сентябре 2017 года и впервые был использован в игре Blockchain Cuties. Эта игра была первым проектом, который использовал уникальные качества этого стандарта. Её участники разводят котят и торгуют ими, при этом каждому такому питомцу присущи уникальные характеристики. У каждого котёнка свой набор атрибутов, что делает их редкими и желанными.

Стандарт ERC 721

Уникальность этого стандарта, заключается в том, что ERC-721 позволяет создавать неконвертируемые токены (NFT), то есть в пределах одной платформы или экосистемы могут быть токены, имеющие разную стоимость. Если говорить простыми словами, то когда вы покупаете какое-то количество токенов ERC-20, не имеет значения, какие конкретные токены это были. Потому что они взаимозаменяемы и одинаковы.

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

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

На Ethereum теперь доступно множество токенов ERC-721. Самыми популярными и известными являются CryptoKitties, но есть и множество других, которые можно обменять или продать на торговых площадках NFT, таких как OpenSeaEmoon и Rare Bits и другие.

Стандарт ERC-777 и ERC-820 Ethereum

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

ERC-777

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

В ERC-777 используется тот же центральный реестр из стандарта ERC-820, призванный обеспечить проверку поддерживаемых функций, а кроме того, вместо функций transfer («передать») и approve («одобрить»), принятых в стандарте ERC-20, задается совершенно новый набор функций, в частности, функция send («отправить»), используемая для передачи непосредственно эфира.

Кроме того, в ERC-777 появляется понятие «одобренного оператора», то есть люди могут доверять смарт-контрактам переводить токены от их имени. Это делает ERC-777 очень гибким: можно сделать контракт-миксер, который будет перемешивать транзакции для большей конфиденциальности, или функцию экстренного восстановления на случай утраты личных ключей. ERC-777 также предусматривает «чеканку» и уничтожение токенов, что в ряде случаев может быть необходимо.

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

Стандарт ERC-821 и ERC-875 Ethereum

Стандарты ERC-821 и ERC-875 стали продолжением стандарта ERC-721, где каждый по-своему, подошли к улучшению смарт-контрактов для невзаимозаменяемых токенов.

ERC-821

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

ERC-875 предложил возможность отправки нескольких NFT (non-fungible tokens) в одной транзакции, при помощи присвоения каждому из них персонального индекса. Стандарт также предполагает безопасные отправку и обмен токенов, как и в случае с ERC-721.

Стандарт ERC-998 Ethereum

ERC-998 — Это стандарт, который позволяет ввести «объединяющие» крипто-токены. Стандарт позволяет NFT-токенам присоединять другие NFT, например ERC721, и/или конвертируемые ERC20. Передача отдельного токена ERC-998 другому лицу означает, что все ERC721 и/или ERC20 в его составе также перейдут к этому владельцу.

Стандарт ERC-998

Создатели ERC-998 говорят, что стандарт позволит использовать широкий спектр приложений для ERC721. Например, криптокотята могут быть представлены как «объединяющие» NFT, которые включают в себя уникальные аксессуары: миски для питомцев, одежду и т.д. А чашка может содержать еду, представленную конвертируемым токеном ERC20.

Такой стандарт (ERC-998) позволяет беспрепятственно передать крипто-активы, которые включают в себя другие встроенные активы. Это увеличивает потенциал крипто-активов на блокчейне и даппов, например, тех же Blockchain Cuties. А главное, это может способствовать признанию технологии блокчейн в применении к активам реального мира.

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

Стандарт ERC-1155 Ethereum

Cтандарт токена Ethereum ERC-1155 предназначен для решения ряда потенциальных проблем, с которыми будут сталкиваться будущие онлайн-игры на блокчейне. Главное его предназначение сейчас — облегчить торговлю предметами. Новый стандарт токенов запущен создателями Enjin.com, который является «социальной платформой для геймеров».

Стандарт ERC 1155

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

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

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

Можно задать резонный вопрос: ограничивается ли ERC-1155 только играми? Теоретически, такие правила можно использовать в любых случаях, когда сложная и «разнонаправленная» торговля должна проходить регулярно со множеством разных артикулов. Взять тот же традиционный мир инвестиций. ERC-1155 может использоваться для объединения разных активов, таких как акции, облигации, недвижимость, деривативы, драгоценные металлы и прочее.

Заключение

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

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