375 тысяч причин для улучшения ERC20

С такими гигантскими средствами на основе токенов ERC20, как EOS, Basic Attention Token (BAT) и Storj, трудно спорить об успехе интерфейсного контракта. Сообщество Ethereum явно заручилось поддержкой этого стандарта., & как сообщества разработчиков, так и финансовые рынки реагируют положительно. Однако, несмотря на весь свой успех, стандарт ERC20 привел к одной весьма незначительной ошибке:

Стандарт токенов ERC20 приводит к денежным потерям для конечных пользователей, позволяя пользователям отправлять токены ERC20 на адреса токенов, не совместимых с ERC20..

Когда пользователь отправляет токен ERC20 в контракт Ethereum, который не распознает токены ERC20, пользователь навсегда теряет доступ к своим средствам. Сколько именно средств сейчас заблокировано из-за этой проблемы? Опять же, немаловажная сумма:

  • 310 067 GNT застряли в контракте Голема (в настоящее время стоит около 217 тысяч долларов).
  • 242 REP застряли в контракте Augur (в настоящее время стоит около 15 тысяч долларов).
  • 814 DGD застряли в контракте Digix DAO (в настоящее время стоит около 125 тысяч долларов).
  • 14 506 1-е место застряли в контракте FirstBlood (в настоящее время стоит около 12 тысяч долларов).

Это колоссальные $ 370 тыс. Токенов ERC20, которые заморожены в этих контрактах.; Поскольку список токенов ERC20 растет, это число, скорее всего, является консервативной недооценкой общего количества этих токенов, замороженных в контрактах. Приведенный выше список ни в коем случае не является исчерпывающим – это лишь некоторые из наиболее популярных токенов ERC20..

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

Большинство этих транзакций непреднамеренно совершаются конечными пользователями, вызывающими передача функция (в отличие от автоматизированной функции transferFrom, представленной ранее). Напомним, что ERC20 использует как Transfer & TransferFrom – как выяснилось, некоторые конечные пользователи используют Transfer для прямой отправки токенов ERC20 контрактам, которые не ожидают, & поэтому не распознаю, входящие токены.

В конце концов, несколько членов сообщества Ethereum решили решить эту проблему, запросив новый стандарт токенов ERC. Номер выпуска этого нового стандарта токенов на GitHub – номер выпуска # 223..

Предложение ERC223

Пользователь GitHub Dexaran предложил новый стандарт ERC (ERC223) еще 5 марта 2017 года, который был направлен на решение этой проблемы сбоя резервного копирования токена. Аннотация к его выпуску GitHub № 223 по предложению нового токена выглядит следующим образом:

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

Предложение токенов Dexaran реализует две основные функции, чтобы немедленно остановить пользователей децентрализованного приложения от случайной отправки токенов на смарт-контракты, которые не готовы к получению указанных токенов:

  1. Консолидация ERC20 Перевод & Трансфер от функции в единый Перевод функция с тремя параметрами: (адрес _to, uint _value, байты данных).
  2. В получение контракт, при получении токенов, должен содержать TokenFallBack функция, которая точно определяет, как обрабатывать какой тип входящего токена.

Перевод & Трансфер от -> Перевод

Ключевой частью стандарта ERC20, которая способствует решению этой распространенной проблемы, является тот факт, что конечные пользователи имеют возможность ошибочно использовать одну из двух функций, используемых для передачи (передача & Перевод из).

ERC223 предлагает заменить обе функции одним Перевод функция.

ERC223 позволяет конечным пользователям dapp отправлять токены в Любые Адрес Ethereum, независимо от того, является ли этот контракт кошельком или контрактом, с той же функцией передачи. Логика здесь в том, что, исключив возможность для пользователей запускать функцию передачи или функция TransferFrom только к одной функции Transfer, конечные пользователи больше не имеют возможности использовать неправильную функцию.

Недавно предложенная функция Transfer принимает три параметра (ранее принималось только два), и, что более важно, она пытается вызвать функцию TokenFallback на адресе получения. Без трех определенных параметров функция передачи не может быть скомпилирована; без адреса получения, содержащего функцию TokenFallback, транзакция функции передачи завершится ошибкой & токены не будут переданы.

функция tokenFallBack ()

В разработке Ethereum существует модификатор контракта подлежащий оплате который используется для подготовки контракта на получение эфира – это означает, что контракт теперь ожидает цифровую валюту. Если контракт не содержат модификатор payable, отправленная транзакция просто отменяется & вернулся. Ничего особенного, это Ethereum 101.

Аналогичный подход к функции ERC223 tokenFallback заключается в том, что модификатор payable предназначен для подготовки контракта к получению эфира, поскольку функция tokenFallback предназначена для подготовки контракта для получения x-токена..

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

Эволюция ERC

Несмотря на черновой вариант ERC223, на горизонте маячит еще один стандарт ERC – ERC 721. ERC721 фокусируется на незаменимый активы, такие как CryptoKitties, Decentraland land, & возможно, даже активы-однодневки в сфере недвижимости. Прогресс ERC 721 можно найти здесь: https://github.com/ethereum/eips/issues/721

Все это для того, чтобы показать, что пока молодое сообщество Ethereum очень серьезно относится к улучшению своей платформы смарт-контрактов, ставя правильные стандарты перед растущей волной новых разработчиков. Медленно, но верно количество ошибок токенов ERC будет уменьшаться – и тогда вопрос будет в том, может ли последняя стандартная шкала?

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me