14 октября 2018 г.

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

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

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 и смарт-контрактом, не поддерживающим этот стандарт, система не отклоняет или не принимает транзакцию, и в результате токены замораживаются или теряются. Это происходит в двух ситуациях

  1. Использование функции transfer, позволяющей отправлять токены по определенному адресу
  2. Внесение депозита на смарт-контракт, для которого необходимо использовать комбинацию функций 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, по-прежнему растет. Какой из этого можно сделать вывод? Что стартапам важнее привлечь деньги, чем обеспечить безопасность своих активов.

ИСТОЧНИК

Комментариев нет:

Отправить комментарий