ERC-223 — это стандарт криптовалютаных токенов, являющийся расширеннием стандарта ERC-20 в сети Ethereum. Это безопасный стандарт, который не позволяет передачу токенов смарт-контрактам, не поддерживающим получение токенов.
ERC-223 обратно совместимы с токенами ERC-20 и поддерживают все их функции, что позволяет существующим смарт-контрактам корректно работать с ними.
Какие проблемы решают токены ERC-223?
1. Потеря токенов.
Стандарт ERC-20 не имеет возможности обработки входящих транзакций, которые выполнялись через функцию «transfer«, что не однократно приводило к потерям среди пользователей. Если отправить токены ERC-20 на контракт, который не предназначен для работы с конкретным токеном, то он не сможет распознать входящую транзакцию и ваши токены зависнут на балансе контракта навсегда. В случае с токеном ERC-223, ситуация обстоит по другому. Если отправить токены на контракт, который не предназначен для работы с ними, то он отклонит транзакцию и токены вернутся обратно отправителю.
2. Обработка входящих транзакций.
Технически, для обмена токенов на децентрализованных биржах (DEX), токены должны быть внесены в смарт-контракт. Из-за отсутствия функции «transfer«, прежде чем обменять токены, пользователю требуется вызвать функцию «approve» и заплатить комиссию сети, а затем вызвать функцию «trasferFrom» и вновь заплатить комиссию. Стандарт ERC-223 решает эту проблему и внесение токенов в смарт-контракт производится в виде всего одной транзакции.
3. Транзакции похожи на транзакции ETH.
Одна из основных целей разработки ERC-223 было сделать транзакции токенов максимально похожими на транзакции ETH, чтобы упростить взаимодействие с транзакциями токенов для разработчиков контрактов.
4. Безопасность.
Так как для взаимодействия со смарт-контрактом не требуется использование функции «approve«, пользователю не требуется давать разрешения на трату своих средств при обмене токенов. Благодаря этому, злонамеренное децентрализованное приложение (dApps) не может потратить средств больше, чем разрешит пользователь.
История стандарта ERC223
В 2017 году пользователь под никнеймом Dexaran выложил на GitHub открытый исходный код предложения данного стандарта. Решение заключало в себе объединение двух старых функций («transfer» и «transferForm«) и добавления трех новых параметров («address_to«, «unit_value» и «bytes_data«).
Кроме того, была добавлена функция «tokenFallback«, которая предотвращает отправку токена, если не получает ответа от получателя. На данный момент в Ethereum имеется схожая функция — модификатор контрактов «payable«, которая действует только в отношении ETH.
Имплементация данного стандарта идет медленно и большинство криптовалютных проектов продолжают пользоваться стандартом ERC-20, что вызвано популярностью стандарта.
Тем не менее, недавно стандарт ERC223 был введен в сети Callisto Network и благополучно используется.