Типы смарт-контрактов Ethereum
ERC-20
Токен стандарта ERC-20 — это база, благодаря которой стало возможным появление множества других токенов. До появления ERC-20 все криптовалюты были уникальными, что усложняло взаимодействие между кошельками, проектами, биржами и пр. Его создание позволило стандартизировать выпуск других токенов. Чтобы сделать свой токен, программистам больше не нужно писать сложный код, достаточно описать всего 6 функций:
totalSupply, которая определяет общее количество токенов. При достижении максимума, смарт-контракт перестает их выпускать.
balance0f отвечает за первичное перечисление токенов любому адресу.
transfer — перевод токенов индивидуальным пользователям.
transferFrom — пересылка токенов от одного пользователя к другому.
approve служит для проверки смарт-контракта на предмет возможности перечисления токенов.
allowance отвечает за гарантию наличия достаточного количества токенов у конкретного пользователя для их пересылки на другой адрес.
ERC-223
Токены ERC-223 часто называют улучшенной версией протокола ERC-20. При реализации ERC-223 была изменена функция ERC-20 — approve. В этом стандарте при отправке средств на неверный адрес, смарт-контракт их возвращает отправителю.
ERC-827
Токены этого стандарта являются главным конкурентом ERC-20, при этом они имеют более информативный функционал. ERC-827 позволяют отправлять не только определенное количество криптовалюты, но и данные транзакции. Этот стандарт дает возможность сторонам подтвердить транзакцию третьей стороне, при том, что она не будет иметь доступа к приватному ключу и безопасность блокчейна не будет нарушена. Функционал токена описан в менее чем 100 строках кода.
ERC-948
Токен стандарта ERC-948 был предложен в марте 2018 года Кевином Оукоки. В нем заложена модель для управления подписками в сфере e-commerce. Например, у вас оформлена ежемесячная подписка на Netflix. При использовании токенов ERC-948 ваша подписка будет оплачиваться в установленный период при наличии соответствующих средств. В отличие от ERC-20, который при подобном использовании, ежемесячно будет запрашивать у пользователя подтверждение подписки.
ERC-777
Этот стандарт создан, чтобы решить несколько задач. Во-первых, в нем была реализована функция tokenReceived, которая позволяет не использовать повторную функцию одобрения, благодаря чему время транзакции сокращается в два раза. Во-вторых, его функционал позволяет отмечать подозрительные и несовместимые адреса. Кроме того, ERC-777 решил проблему несовместимости благодаря использованию метода обратной совместимости, что сделало его кросс-стандарт совместимым на платформе Ethereum.
ERC-721
Эти токены были созданы специально для онлайн-игры. Впервые они использованы в игре CryptoKitties, где каждый из токенов имеет свои особенности. Каждый из представленных котов является отдельным токеном ERC-721. Как становится понятным, они были созданы для коллекционирования.
ERC-821 и ERC-875
Являются продолжением стандарта ERC-721.
В ERC-821 реализована функция использования более конкретизированного нейминга, чтобы не вызывать путаницы между разными видами предметов коллекционирования.
ERC-875 предложил возможность отправки нескольких NFT (non-fungible tokens) в одной транзакции, при помощи присвоения каждому из них персонального индекса. Стандарт также предполагает безопасные отправку и обмен токенов, как и в случае с ERC-721.