Что такое токены стандарта ERC777? Почему ERC777 заменит ERC20 в сети Ethereum

Новый стандарт токенов на блокчейне Ethereum ERC777, разрабатываемый Джорди Байлиной, Жаком Даффлоном и Томасом Шабаби и потенциально способный заменить стандарт ERC20, широко используемый в настоящее, готовится к запуску.

Предложение по внедрению ERC777 было опубликовано 20 ноября 2017 и с тех пор оставалось открытым для отзывов и критики. На прошлой неделе Байлина и Даффлон рассказали о новых токенах на конференции DappCon, общедоступным языком описав преимущества и функциональность стандарта.

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

Создатели преподносят стандарт ERC777 как более гибкую альтернативу ERC20 и заявляют, что он позволит осуществлять более быстрые и отлаженные транзакции. ERC777 будет поддерживать обратную совместимость с ERC20, что также может заинтересовать разработчиков. Хотя стандарты токенов в экосистеме Ethereum многочисленны и разнообразны, ERC777 пользуется особой поддержкой в сообществе, отмечает ETHNews.

Стандарт использует открытый код, с которым можно ознакомиться на GitHub.

Более интуитивное взаимодействие с контрактами

В предложении по улучшению Ethereum (EIP) для ERC777 описывается принцип реализации функции «send» (она же используется для отправки эфира), которая позволяет осуществлять прямые транзакции и обмен через смарт-контракты.

Использование этой функции отличает ERC777-токены от ERC20-токенов, которые работают через функцию «transfer» и требуют исполнения двух транзакций для обмена одного токена на другой. Первая транзакция при работе со стандартом ERC20 отправляет запрос на одобрение, вторая – разрешает контракту выполнить передачу токена от вашего имени.

Стандарт ERC777 работает по другому принципу. Использующий функцию «send» ERC777-токен обращается к универсальному доверенному контракту, не имеющему владельца – ERC820 – который, по сути, является реестром, сообщающим токену, является ли контракт, к которому он обращается, совместимым.

Если контракт не является совместимым или зарегистрированным, транзакция будет отклонена. В этом случае отправитель сможет обратиться к модели ERC20-токенов и запросить одобрение. Контракт или адрес достаточно лишь однажды зарегистрировать в ERC820-контракте – после этого он будет доступен для всех пользователей системы.

Использование хуков

Ещё одним преимуществом ERC777 перед ERC20 является возможность использования так называемых хуков. Как пояснил Байлина на DappCon, «хуки – это функции, которые могут быть вызваны во время трансфера». Другими словами, хук определяет параметры транзакции. Среди прочего он может потребовать отправить уведомление отправителю или получателю до или после завершения транзакции.

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

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

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

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

Отлаженные операторы

Ещё одним серьёзным отличием ERC777 от ERC20 является возможность использования операторов. Как объясняется в EIP, «оператор – это адрес, которому разрешено переводить и сжигать токены от имени другого адреса». Оператор может быть установлен держателем токена и являться адресом контракта или обычным адресом. Он может быть отключен в любой момент.

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

ERC777 также позволяет задавать «операторов по умолчанию». Согласно EIP, «такие операторы устанавливаются для всех держателей токенов». Байлина пояснил, что операторы по умолчанию могут использоваться, например, для автоматического вычета стоимости газа, что упростит процесс отправки транзакции.

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