ERC777: что нужно знать о новом стандарте токенов

652
Просмотры
erc777

Многие в сообществе уже хорошо знакомы с исходным стандартом токена, запущенным на блокчейне Ethereum, — ERC20. Но мало кто знает детали нового, более мощного стандарта — ERC777. Разберемся в этом понятии.

ERC является сокращением Ethereum Request for Comments и описывает набор стандартов, созданных для реализации в блокчейне Ethereum.

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

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

Стандарт ERC777 полностью обратно совместим со стандартом ERC20. Это означает, что любое приложение, поддерживающее ERC20, также будет поддерживать новый стандарт. В 777 остались все сильные стороны предыдущего стандарта, но компенсированы несколько проблем.

Упрощение перевода

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

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

Это не самый эффективный способ передачи криптовалюты или взаимодействия с блокчейном.

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

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

Отправление данных транзакции

ERC777 может отправлять данные о транзакции так же, как в настоящее время это делает Ether.

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

Снижает вероятность случайной потери

Это одно из самых значимых преимуществ ERC777. Стандарт помогает предотвратить случайную потерю криптовалюты. От этого уже страдали неоднократно, теряя токены на миллионы долларов. Это связано с тем, что адрес, совместимый с ERC777 (и ERC 820), способен отклонять определенные типы входящих транзакций. Например, не принимать те, которые проводятся с определенного адреса.  А адреса можно внести в черный список. Такая возможность позволяет новым токенам соответствовать законам и правилам «Знай своего клиента» (KYC) и «Отмывание денег» (AML), выполнения которых требуют регуляторы.

ERC777 с обратной совместимостью

Данный стандарт совместим со всеми приложениями, которые поддерживают ERC20. Он работает как обновление и должен восприниматься именно так. Такие известные приложения, как EtherDelta, IDEX, 0x, не пострадают от нового стандарта и не потеряют разработанные возможности. Остается прежняя функциональность и дополнительные возможности.

С ERC777 транзакции разных криптовалют могут проводиться на одной платформе.

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

Авторами проекта являются:

  • Jordi Baylina @jbaylina,
  • Jacques Dafflon @jacquesd,
  • Thomas Shababi

Технические детали по стандарту:

Использует ту же философию, что и Ether, при этом токены отправляются с помощью send (dest, value, data).

Как контракты, так и обычный адрес могут контролировать и отклонять токен, который отправляется, регистрируя функцию tokensToSend.

И контракт, и обычные адреса могут контролировать и отклонять тот токен, который они получают, регистрируя функцию tokensReceived.

Функция tokensReceived также позволяет избежать двойного вызова, необходимого в стандарте ERC20.

Держатель токенов может «разрешать» и «отзывать» операторов, которые имеют возможность отправлять токены от его имени.

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

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