Блокчейн Ethereum стал самой популярной платформой для выпуска токенов. Однако токен токену рознь: платформа поддерживает несколько стандартов, каждый из которых ориентирован на решение своих задач.
ERC-20 — самый популярный стандарт
Стандарт токенов ERC-20 используют сотни реальных криптовалютных проектов. Его поддерживает значительная часть кошельков для Ethereum-токенов.
ERC-20 включает шесть обязательных и три дополнительных параметра. Обязательные параметры определяют количество и особенности передачи токенов. Необязательные — дополнительно уточняют транзакцию.
Обязательными параметрами стандарта являются функции:
- totalSupply — определяет общее количество токенов. Когда смарт-контракт достигает максимума, он перестает их выпускать.
- balance0f — функция, которая присваивает первичное число токенов любому адресу. Как правило, это адрес организаторов ICO.
- transfer — обеспечивает перевод токенов с первичного адреса индивидуальным пользователям, купившим их во время ICO.
- transferFrom применяется для пересылки токенов от одного пользователя к другому.
- approve проверяет, есть ли токены у смарт-контракта.
- allowance обеспечивает достаточное количество токенов на одном адресе для их пересылки на другой адрес.
Необязательные параметры:
- число знаков после запятой в транзакции;
- название токена;
- его символ.
Разработчики рекомендуют, но не принуждают использовать эти три параметра.
ERC-223 — работа над ошибками
У стандарта ERC-20 есть ряд серьёзных недостатков. К примеру, пользователь может отправить токены на смарт-контракт, считая, что отправляет их на обычный кошелек. На таких смарт-контрактах уже лежит в общей сложности токенов на 3 млн долларов.
А стандарт ERC-223 позволяет корректно переводить токены на смарт-контракты и кошельки. Для этого потребуется всего одна операция, а не две. Значит, на такое действие требуется меньше газа, да и нагрузка на сеть ниже.
Токены стандарта ERC-223 обратно совместимы с токенами ERC-20. Это означает, что они поддерживают все функции токенов ERC-20, но добавляют новые возможности.
Эксперты считают, что стандарт ERC-223 вскоре вытеснит ERC-20. Однако пока большая часть Ethereum-кошельков не умеет работать с новым стандартом, хотя определенные подвижки в этом направлении ведутся.
ERC-721 — неконвертируемые токены
В 2017 году в сети Ethereum была запущена коллекционная игра CryptoKitties. Для неё использовались токены ERC-721. От принятого стандарта ERC-20 токены нового формата отличались тем, что их нельзя было конвертировать.
Проще говоря, токены ERC-721, существующие внутри одной платформы, могут иметь разную цену. Так, в игре были очень редкие и дорогие котики (стоимость отдельных экземпляров исчислялась десятками тысяч долларов), а были котики попроще — за доллар-другой в фиатном эквиваленте. Кроме того, токены нельзя было передавать по частям — только целиком.
Но токены ERC-721 — не только для коллекционных игр. Они дадут возможность токенизировать другие активы: к примеру, личные документы, объекты недвижимости, художественные произведения и другие уникальные или редкие сущности.
В будущем токены ERC-721 позволят организовать не только эффективное хранение документов, но и, к примеру, продажу билетов на транспорт, спортивные соревнования или шоу, а также подтверждать подлинность и целостность продукта на протяжении всего жизненного цикла. Подробнее об этом рассказывает статья «Уникальные токены».
ERC-777 и ERC-820
Токен ERC-777 обратно совместим с ERC-20. Но, в отличие от предшественника, он поддерживает массу различных механизмов обработки транзакций и призван улучшить существующий стандарт.
ERC-820 предполагает, что в сети Ethereum действует центральный реестр смарт-контрактов, позволяющий любому пользователю проверить адрес смарт-контракта и узнать, какие функции он поддерживает. Тот же центральный реестр использует и ERC-777, но он обеспечивает проверку поддерживаемых функций и позволяет задать любой набор функций вместо transfer («передать») и approve («одобрить»), принятых в стандарте ERC-20. К примеру, можно задать функцию send («отправить») для передачи непосредственно Ethereum.
Ещё одна особенность ERC-777 — появление одобренных операторов. Эта возможность позволяет смарт-контрактам переводить токены от имени пользователей. Это повышает гибкость ERC-777. К примеру, можно сделать миксер контрактов, который будет перемешивать их для обеспечения конфиденциальности, или создать функцию экстренного восстановления на случай утраты личных ключей. Также ERC-777 позволяет эмитировать или уничтожать токены, если это необходимо.
Резюме
ERC-20 стали «первой ласточкой» в сфере стандартов токенов, но вскоре появились варианты, которые расширили и улучшили их возможности. Высока вероятность, что в ближайшем будущем новые стартапы предпочтут стандарт ERC-223 или ERC-777 устаревшему варианту. Кроме того, ожидается расширение использования токенов ERC-723 и ERC-820, в частности, для реализации блокчейнов для хранения документов и уникальных активов, создания центрального реестра смарт-контрактов.