Прошедший 2017 год можно назвать годом ICO, когда все кому не лень выпускали свои токены на базе блокчейна Ethereum. Сами токены в сети ETH стандартизированы, т.е. имеют определенный набор свойств и правил без которых они не могут существовать. Этот стандарт получил название ERC20. Аббревиатура ERC расшифровывается как Ethereum Request for Comment или запрос на комментарии в сообществе Ethereum. Стандарт ERC20 имеет 6 обязательных и 3 дополнительных параметра для создания смарт-контракта, которых изначально было недостаточно, что бы реализовать все задумки разработчиков смарт-контрактов. Поэтому еще в 2017 группой разработчиков Джорди Балиной, Жаком Даффлоном и Томасом Шабаби был предложен новый более гибкий стандарт для токенов и смарт-контрактов сети Ethereum ERC777, обратно совместимый с ныне действующим ERC20.
Стоит отметить, что предлагаемый вариант стандарта ERC777 это всего лишь один из множества других вариантов хоть и пользующийся достаточно сильной поддержкой в сообществе Ethereum. Поэтому не исключено, что именно он займет место ERC20, как основного.
Новый стандарт ERC777 для токенов и смарт-контрактов может предложить 3 основных различия с ERC20, которые могут значительно изменить возможности разработчиков новых ICO на базе блокчейна Ethereum.
Первое преимущество это более интуитивное взаимодействие с контрактами.
Для этого вводят новую функцию <send>, которая позволяет осуществлять прямые транзакции и обмен эфира через смарт-контракты. В ERC20 токены работают через функцию <transfer>, которая требует исполнения двух транзакций для обмена одного токена на другой. Первая транзакция отправляет запрос на одобрение, а вторая разрешает передачу токена от вашего имени. В стандарте ERC777 с помощью функции <send> идет обращение к универсальному доверенному контракту, не имеющего владельца- ERC820, который является реестром совместимых и зарегистрированных с ERC777 смарт-контрактов. Контракт или адрес перед этим должен быть зарегистрирован в ERC820, что бы он стал доступен для всех пользователей системы. Если же смарт-контракт не совместим с ERC777, то в этом случае передача может быть осуществлена через ERC20.
Использование хуков
Не менее важное новшество это использование хуков, т.е. функции, которую можно вызвать во время трансфера и задает параметры этой транзакции. С помощью хуков можно отправлять уведомления отправителю и получателю до и после завершения транзакции. Более того хуки позволят вмешиваться в процесс транзакции отменяя ее при получении уведомления. С помощью хуков можно заблокировать определенные адреса или виды токенов. Еще одна возможность хуков это программирование их взаимодействия после того как они будут переданы получателю. Например можно задать определенный процент, который пойдет на благотворительность от каждой транзакции. Использование хуков будет так же обращаться к реестру ERC820. Если используемый контракт не будет зарегистрирован в ERC820 то эта транзакция будет отклонена, в таком случае отправителю придется использовать функционал ERC20.
Отлаженные операторы
Еще одно отличие стандартов это использование операторов в ERC777. Оператор - это адрес, которому переводить и сжигать токены от имени другого адреса. Оператор задается создателем токена и является обычным адресом, причем оператор может быть отключен в любой момент. Эта функция позволит в первую очередь реализовать автоматические платежи для оплаты подписок или любых других задач.
С исходным кодом ERC777 можно ознакомиться на GitHub.
В грядущем новом обновлении Constatinople для сети Ethereum заявлено уже множество нововведений, хотя замена стандарта ERC20 так и не объявлена.
Как можно заметить, криптовалюты и Ethereum в их числе не стоят на месте, постоянно улучшая свой функционал для соответствия новым требованиям со стороны криптосообщества.