Активируйте JavaScript для полноценного использования elitetrader.ru Проверьте настройки браузера.
Насколько хороши токены стандарта ERC-20 » Элитный трейдер
Элитный трейдер
Искать автора

Насколько хороши токены стандарта ERC-20

15 октября 2018 insider.pro
ERC-20 — это первый и самый распространенный стандарт токенов, работающих на блокчейне Ethereum, который был представлен еще в 2015 году.

Стандартный код ERC-20 предоставляет 6 функций:
totalSupply определяет общее количество токенов;
balance0f показывает баланс учетной записи, заданный параметром address_owner, где _owner — адрес;
transfer реализует передачу токенов с первичного адреса на адрес конкретного пользователя;
transferFrom используется для передачи токенов от одного пользователя к другому;
approve проверяет, остались ли на смарт-контракте токены, и обеспечивает списание средств со счета в размере, не превышающем величину, определяемую параметром функции.
allowance проверяет, что в кошельке отправителя достаточно токенов, чтобы передать их получателю.

Также ERC-20 предусматривает два типа событий:
transfer — передача токенов между счетами;
approval — это событие активируется при успешном выполнении функции approve.

Из этих функций и событий видно, как токены ERC-20 передаются между адресами, и как их владельцы получают необходимую информацию. Кроме того, они обеспечивают работоспособность новых токенов на платформе Ethereum.

После появления этого стандарта рынок ICO начал очень быстро расти, поскольку в ERC-20 содержится список правил, которым должны соответствовать будущие токены. Это упростило жизнь разработчикам, которым ранее приходилось каждый раз создавать для токенов стандарты совместимости с блокчейном, кошельком, обменником и DApps.

Что же случилось дальше?

Стандарт ERC-20 был первым, и со временем выяснилось, что он несовершенен: еще в 2017 году появились сообщения о потерянных в ходе транзакций средствах, а в феврале 2018-го разработчик с псевдонимом Dexaran описал ошибку, влияющую на токены ERC-20, и предупредил о ней пользователей Github.

По его словам, основная проблема была связана со смарт-контрактами. Дело в том, что сделка считается завершенной, когда происходит успешная передача средств. Если возникает ошибка, перевод должен быть отклонен, а в случае с токенами ERC-20 и смарт-контрактом, не поддерживающим этот стандарт, система не отклоняет или не принимает транзакцию, и в результате токены замораживаются или теряются.

Это происходит в двух ситуациях

Использование функции transfer, позволяющей отправлять токены по определенному адресу
Внесение депозита на смарт-контракт, для которого необходимо использовать комбинацию функций approve и transferFrom.

Используя функцию approve, пользователь дает смарт-контракту разрешение на снятие средств, что и выполняется с помощью функции transferFrom.

В случаях, когда пользователь вносит депозит на смарт-контракт с использованием функции transfer, транзакция будет считаться успешной, и сеть воспримет ее нормально, а вот сам смарт-контракт ее не признает — и из-за этой ошибки экосистема Ethereum уже потеряла миллионы долларов.

Эффект домино

Пользователям платформы Ethereum и раньше приходилось сталкиваться с проблемами безопасности, вспомнить хотя бы печально известный взлом проекта DAO в 2016 году. Чтобы устранить его последствия и вернуть средства в сеть, был проведен хардфорк, причем новый блокчейн продолжил работать под именем Ethereum, а участники сети, не согласные с таким решением, сохранили старый блокчейн под названием Ethereum Classic.

В апреле 2018 года некоторые криптообменные биржи (например, OKEx) приостановили размещение и вывод токенов ERC-20 из-за ошибки batchOverflow. Представители OKEx писали об этом:
«Эксплуатирующие ошибку злоумышленники могут создать огромное количество токенов и разместить их на обычных адресах, чтобы в дальнейшем манипулировать рынком».

После OKEx биржа Poloniex приняла аналогичное решение, относящееся ко всем токенам стандарта ERC-20, а в HitBTC инициировали внутренний аудит, в ходе которого часть внесенных средств блокировалась.

Что будет дальше?

Токены ERC-20 эффективны и удобны, но в их коде есть ошибки, которые могут привести к потере средств. Протокол ERC-20 не всегда подходит для целей создателей конкретного токена, и, конечно, никто не гарантирует, что созданный токен будет полезным, ценным или функциональным.

Кроме того, один из недостатков стандарта ERC-20 — очень простое создание токенов, что облегчает проведение ICO и приводит к обилию похожих токенов, а значит, значительно усложняет жизнь инвесторам.

Но, несмотря на все опасения и предупреждения, число ICO, использующих ERC-20, по-прежнему растет. Какой из этого можно сделать вывод? Что стартапам важнее привлечь деньги, чем обеспечить безопасность своих активов.