Invest-rating.ru
Поиск

Стандарты токенов на блокчейне Ethereum

Обновлено

ERC20 — самый популярный стандарт, но далеко не единственный. В этой статье я расскажу о других стандартах.

Одним из важных этапов подготовки к любому ICO является выбор площадки для выпуска монет. На сегодняшний день существует множество блокчейн-платформ для создания собственных токенов, таких как NEM, WAVES, NXT и EOS. Наибольшей популярностью пользуется блокчейн Ethereum. Сегодня большинство монет запускается на основе этого блокчейна и стандарта ERC20. Не верите? Можете взглянуть на топ-100 монет на сайте Coinmarketcap и убедиться в этом.

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

Часто возникает вопрос, для чего же проекту нужны свои собственные монеты, ведь можно использовать токены Эфириума для проведения транзакций? Ответ на этот вопрос можно найти в реальной жизни, где мы часто используем разные формы токена. Например, жетоны в детских парках развлечений, купоны на обеды в больших организациях, клубные карты лояльности или абонементы на услуги. Для большего понимания можно сопоставить следующие понятия: ваши деньги — это непосредственно монеты Эфириума, организации, использующие жетоны — это децентрализованные приложения «dApp» (от англ. Decentralized Application), а сами жетоны — это те самые токены.

ERC-20: основа основ


Вы могли увидеть фразу «ERC-20» при чтении информации о токенах Эфириума. Она относится к определенному стандарту, который является наиболее распространенным и широко используемым на платформе Ethereum. ERC20 (с англ. Ethereum Request for Comments) означает «запрос на комментарии в Ethereum».

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

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

  1. Общее количество монет.
  2. Количество монет на счету конкретного адреса.
  3. Функция передачи токенов с первичного адреса на адрес индивидуального пользователя, участника ICO.
  4. Функция перевода токенов между пользователями.
  5. Функция для проверки остаточной суммы токенов у смарт-контракта с возможностью вывода средств.
  6. Функция, гарантирующая, что у отправителя достаточно токенов для совершения транзакции в момент отправки.

Смарт-контракты: зарождение новой экономики


Главным же секретом успеха стандарта ERC20 является внедрение смарт-контрактов.

Да, базовые принципы смарт-контрактов уже были реализованы в блокчейне Биткойна, но их возможности были сильно ограничены и не подходили для того, чтобы создавать на их основе токены для отдельных dApp. Именно по этой причине можно считать, что Ethereum является первой платформой, которая полноценно развила идею смарт-контрактов и внедрила ее в работу.

Основная идея работы смарт-контракта заключается в следующем: когда вы проводите транзакцию, отправляя токены на адрес получателя, на вашем адресе их становится меньше, а на адресе получателя их становится больше на то же самое количество. Но что в этом особенного? А то, что технически никто никому ничего не пересылает. На самом деле отправляется инструкция в смарт-контракт о том, что у данного количества монет сменился адрес владельца. Именно в результате данного действия у отправителя токены пропадают, а у получателя появляются. Благодаря этой системе, узлам в сети больше не нужно постоянно сверяться с базой данных. Все, что от них теперь требуется, — это проверить правильность выполнения всех условий контракта, так как стороны (отправитель и получатель) взаимодействуют исключительно с помощью смарт-контрактов.

Горе от ума


Так как стандарт ERC20 был первой версией протокола на базе Ethereum, со временем в нем обнаружился ряд проблем и недочетов. Например, пользователи могли случайно отправить токены на адрес смарт-контракта, при этом обратная транзакция невозможна. Это происходит вследствие того, что стандартная реализация токена ERC20 предполагает два способа передачи токенов:

  1. Функция передачи (transfer), позволяющая отправить токены с одного адреса на другой.
  2. Комбинация функций (approve + transferForm) для внесения депозита токенами в смарт-контракт.

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

По стандарту ERC20 передача токена должна рассматриваться как событие, но передаточная функция (transfer) не дает возможность обработать эту транзакцию, потому что она просто увеличивает баланс получателя без каких-либо проверок.  Может возникнуть проблема, при которой контракт никак не сможет распознать этот перевод, если получатель является смарт-контрактом и токены были отправлены с помощью функции «transfer». Это вызывает неожиданное поведение функции передачи и приводит к непредсказуемому результату, т.е. токены могут быть утеряны и навсегда заморожены.

Как же решили данную проблему создатели Ethereum? Ответ оказался прост как для читателя, так и для разработчика: внедрение функций approve+transferForm, где пользователь уже сам дает разрешение смарт-контракту на вывод своих средств в случае проведения транзакции, при помощи функции transferFrom, без ошибок.

Примечательно, что подобную ошибку сами разработчики не считают за таковую:

  1. “Это не баг, а ошибка пользователя”.
  2. “Это не баг или уязвимость, это особенность стандартного дизайна ERC20”.

Но как бы там ни было, данная проблема все равно имела место быть. Только за прошлый год было потеряно более $3 млн пользователями этого ПО. Например, на смарт-контракт EOS, на текущий момент, пользователи перевели токенов на сумму около $2,1 млн.

Но это далеко не все, токены были потеряны и на следующих контрактах: Tronix — $400 000, Golem и ZRX — более $200 000 на каждом, а на контракте OmiseGo на сегодня заморожено токенов на сумму более $150 000. Если такой дизайн приводит к таким крупным потерям, то он как минимум плох.

ERC-223: работа над ошибками ERC-20


Создатель: Dexaran

Тип: стандартный токен

Для решения уязвимости первой версии протокола Ethereum пользователем под ником Dexaran был разработан стандарт ERC223, который заставлял токены стандарта ERC20 вести себя так же, как и при переводе эфира на смарт-контракты. Теперь в случае ошибки в функции transfer, когда смарт-контракт не поддерживает данную криптовалюту, транзакция отменяется. Для этого были введены две новые функции:

  1. Функция transfer, заменяющая старые transfer и transferFrom
  2. Функция tokenFallBack для принимающего смарт-контракта, которая определяет тип отправленных монет.

Довольно часто предлагаются новые стандарты для токенов. Как правило, они тщательно рассматриваются как криптосообществом, так и разработчиками в сфере блокчейн-технологий. О некоторых из них будет весьма полезно узнать.

ERC-721: криптокотики и другие коллекции


Создатель: Дитер Ширли

Тип: коллекционный токен

Токены, созданные при помощи ERC-20 являются взаимозаменяемыми. Иными словами, каждый токен совпадает с другим. Если рассматривать его как валюту, то это свойство просто необходимо, однако с точки зрения “криптовалютного коллекционирования” такой токен совершенно не подойдет. Благодаря ERC-721 каждый токен становится уникальным.  Первыми этот стандарт использовали разработчики нашумевшей онлайн-игры CryptoKitties. В её основе лежит использование уникальных атрибутов: возраст, окрас, порода. Некоторая смесь атрибутов может стать невероятно редкой, а такой котенок станет очень дорогим. После эту идею подхватили CryptoPuppies, CryptoPets и даже CryptoPunks.

ERC-827: новый ERC-20


Создатель: Августо Лэмбл

Тип: стандартный токен

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

ERC-948: рай для B2C-бизнесменов


Создатель: Кевин Оукоки

Тип: токен для подписки

Модель “подписки” стала крайне популярной и востребованной в цифровом мире, только в прошлом году было привлечено свыше 11 миллионов клиентов. Исследование международной консалтинговой компании McKinsey показало, что седьмая часть всех покупателей оформили подписку на электронную коммерцию за последний год. Но на сегодняшний день модель зачастую является сложной для конечного потребителя. Предложение протокола ERC-948 предназначено для подключения предприятия по модели “подписки” с потребителями.

ERC-884: “белый список” для инвесторов


Создатель: Дэйв Сэг

Тип: стандартный токен

Исходя из недавнего законопроекта, DGCL официально разрешили использовать блокчейн для учета реестра акционеров. ERC-884 был создан для активов, выпущенных любой публичной или приватной компанией Дэлавера, и содержит несколько дополнений сверх возможностей ERC-20. Это включает в себя требование  идентификации/занесения в «белый список» владельцев токенов, как неотъемлемую часть токена.

Заключение


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

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