поделиться
Токены ERC-20 - это криптовалюты, работающие на блокчейне Ethereum. Они подпитываются смарт-контрактами сети Ethereum, используют ее для проведения транзакций и взаимодействуют с ее адресами и кошельками. В то же время, токены ERC 20 имеют свои собственные тикеры, курсы поставок, цену и другие параметры. Например, хотя EOS - это токен Ethereum, его рыночная стоимость составляет 11,5 млрд. долларов, что больше, чем можно сказать о большинстве криптовалют, полученных путем майнинга.

Благодаря доступности архитектуры ERC20, довольно просто изготовить и выпустить свой собственный токен и распространить его (например, во время ICO). В рамках ICO и других типов предложений проводятся предпродажи с целью привлечения финансирования от инвесторов. Процесс создания токенов называется TGE, сокращение от Token Generation Event. Проекты выпускают определенное количество токенов ERC 20 и продают их всем участникам предпродажи за биткоины или ETH.
Следует отметить, что хотя токены ERC-20 являются полноценными криптовалютами, которые могут появиться на популярных криптобиржах, это не обязательно означает, что так и будет. Токен erc20 может взять криптовалютный мир штурмом или навсегда остаться на балансе своего создателя.
Практическое использование ERC20
Сначала токены использовались при первоначальном сборе средств на развитие компании. Это были цифровые активы с фиксированными обязательствами. Токены приобретались непосредственно у разработчиков и не могли быть проданы или куплены где-либо еще.
ICO Ethereum состоялось в 2014 году и собрало более 16 миллионов долларов. Ethereum привлек внимание представителей многих отраслей, поскольку в будущем его можно будет использовать для оптимизации и оцифровки неэффективных бизнес-процессов.
Токен ERC-20 может считаться криптовалютой, если им можно торговать на криптобиржах. ERC20-токены также могут превратиться в целые экосистемы с собственными блокчейнами. Примерами ERC20-токенов, создавших свой собственный блокчейн, являются Tron и EOS. Tron создал свой собственный блокчейн благодаря своему видению: игры на блокчейне становятся все более популярными с каждым днем. EOS - это конкурент Ethereum, используемый в основном для децентрализованных бирж и азартных игр.
Токен Ethereum может использоваться как актив и форма денег; он также может представлять собой ценности любого рода и предоставлять право на участие в программе или служить средством подтверждения права собственности. Любой актив реального мира, физический или иной, может быть токенизирован и торговаться на криптобиржах.

Самые популярные токены ERC-20
Блокчейн Ethereum - это де-факто дом криптовалют, на котором хранится большинство крупнейших современных альткоинов. Самыми известными токенами являются токены стандарта ERC20, и большинство DApps в криптовалютной экосистеме построены на сети Ethereum. Известно, что некоторые стабильные монеты стандарта ERC20 доминируют на криптовалютном рынке.
USDC
Помимо USDT от Tether, одной из самых крупных стабильных монеток ERC20 в сети Ethereum является USDC.

USDC, запущенный компанией Coinbase в сотрудничестве с Circle, обычно рассматривается как более надежная альтернатива USDT теми, кто критически относится к Tether.
Стандарт BEP20 компании Binance размещен на смарт-цепочке Binance Smart Chain, которая, в свою очередь, берет начало в сети Ethereum. Поэтому два собственных токена Binance - BNB и BUSD - технически также можно считать токенами Ethereum.
Единый стандарт, простота создания и совместимость с платформами привели к широкому распространению токенов ERC20. Ниже приведены некоторые примеры популярных токенов, использующих протокол ERC20.
USDT Tether

Стаблкоин USDT, привязанный к доллару США, был выпущен компанией Tether Limited в 2015 году. Основанный на стандарте ERC 20, он с тех пор стал основным стабильным монетом для большинства криптотрейдеров и бирж по всему миру. Стоимость USDT Tether подкреплена долларами США на счетах компании.
У других фиатных валют есть свои собственные стейблкоины. Например, Binance GBP обеспечен британским фунтом, а STASIS - евро.
Старая система была основана на протоколе Omni, базирующемся на блокчейне Bitcoin. Из-за высоких комиссий и длительного времени подтверждения компания решила перейти на блокчейн Ethereum.
Обернутый Биткойн и Обернутый Эфир

ETH, или эфир, - это базовая валюта Ethereum. WETH - это "обернутый ETH" или "Эфир в оболочке". Он был введен, поскольку ETH появился до принятия стандарта ERC20 и поэтому не соответствовал ему.
Децентрализованные платформы на базе Ethereum обмениваются токенами между пользователями на основе смарт-контрактов. Для того чтобы обмен состоялся, токены должны принадлежать к одному и тому же стандарту.
WETH используется для обмена токенов ETH на соответствующий протокол ERC20.
Многие пользователи сети, включая крупные корпорации с капиталом, заинтересованы в развитии базовой валюты.
Среди них:
- система Wrapped Ether, которая владеет более чем 2 миллионами ETH стоимостью $ 380 млн;
- одной из ведущих криптовалютных бирж, Binance, $ 370 млн;
- Биржа Bitfinex, менее 2 миллионов ETH.

У Биткойна также есть обернутая ERC20-версия под названием WBTC. Оригинальный BTC - это родной токен блокчейна Биткойна, который не подходит для Ethereum. Как и WETH, WBTC призван исправить эту ситуацию: он всегда привязан к цене Биткойна и полностью совместим с сетью Ethereum. Обернутые токены чаще всего используются для передачи токенов между различными сетями, которые не являются взаимно совместимыми.
LCS
LocalCoinSwap - это децентрализованная платформа, которая предоставляет пользователям возможность напрямую покупать и продавать криптовалюту, используя любой из доступных способов оплаты.

LCS позволяет Вам найти покупателя или продавца валюты и совершить сделку без привлечения веб-сайтов и кошельков. Платформа использует традиционную систему депозитов, в которой хранятся криптовалютные средства, которые можно обменять. Когда платеж подтвержден покупателем и продавцом, система отправляет монеты покупателю. Платформа дает право на получение дивидендов в соотношении 1 к 1 в конце квартала.
Etherscan: Дом токенов ERC 20
Контракты на токены ERC20 можно просмотреть на Etherscan.io - родном трекере сети Ethereum.

Наряду с их тикерами и краткими описаниями, Вы можете следить за общим объемом предложения, рыночной стоимостью (в цепи и в обороте), количеством держателей, а также ценой и изменением цены.

Чтобы просмотреть все контракты на токены ERC20 в сети Ethereum, Вам нужно нажать кнопку Tokens в правом верхнем углу, а затем выбрать токены ERC20. Здесь будут перечислены все новые токены с более или менее конкурентоспособной рыночной стоимостью.
На момент написания этой статьи в сети Ethereum развернуто не менее 625 000 контрактов с токенами ERC20. Здесь Вы также можете ознакомиться с другими стандартами токенов Ethereum - ERC721 для нефункционирующих токенов (NFT) и ERC155 для мультитокенов.
Техническая сторона токена ERC 20
По сути, токены ERC-20 - это смарт-контракты на блокчейне Ethereum. ERC-20 - это единый стандарт, включающий набор основных правил, которым должен следовать контракт. Этот стандарт обеспечивает совместимость всех токенов в сети.
ERC расшифровывается как "Ethereum Request for Comments", а 20 - это номер его идентификатора.
ERC-20 был задуман еще в 2015 году и получил широкое распространение в 2017 году. До этого все смарт-контракты были довольно разнородными, что вызывало проблемы с совместимостью между ними, а кошелькам приходилось разбираться с кучей кода, чтобы распознать каждый конкретный токен.
Токены ERC20 и EVM
EVM (Ethereum Virtual Machine) - это виртуальная вычислительная среда, распределенный компьютер, отвечающий за выполнение алгоритмов в сети Ethereum (смарт-контрактов).
EVM считается Тьюринг-полным, что означает, что теоретически он способен справиться с любой вычислительной задачей, которая может быть выполнена на компьютере (при наличии достаточных ресурсов).
В качестве оплаты за выполнение смарт-контрактов EVM использует "газ", измеряемый в "gwei", наименьшей возможной доле ETH; газ включен в стоимость транзакции. Конкретное количество газа, которое должен заплатить пользователь, зависит от сложности выполняемых вычислений и текущей загруженности блокчейна Ethereum.
Для создания токенов ERC-20 используются смарт-контракты, которые следуют определенной структуре данных на EVM. Эта структура данных контролирует именование, распределение, объем поставок и мониторинг токена.
ERC20 = Код?
Многие задаются вопросом, можно ли считать ERC 20 кодом. Ответ не совсем точен: токен ERC20 служит скорее набором рекомендаций, призванных очертить основные правила работы в сети Ethereum.
Стандарт служит ряду целей, включая отслеживание всех транзакций, текущего баланса токенов пользователя, тикера токена и общего объема предложения; стандарт токенов ERC 20 также обеспечивает совместимость различных DApps (децентрализованных приложений) в сети.
Внутри контракта ERC 20 Token
Стандарт ERC20 описывает шесть обязательных и три необязательных функции, которые должны соблюдаться для правильной работы смарт-контракта.
У каждого токена должно быть название и символ токена (также известный как тикер). Кроме того, он должен указывать свои десятичные числа, т.е. сколько раз его можно разделить на 10. Ниже Вы найдете набор обязательных функций, которые, возможно, кому-то покажутся немного сложными для понимания:
function () public view returns (uint256);
function balanceOf(address tokenOwner) public view returns (uint);
function allowance(address tokenOwner, address spender)
public view returns (uint);
function transfer(address to, uint tokens) public returns (bool);
function approve(address spender, uint tokens) public returns (bool);
function transferFrom(address from, address to, uint tokens) public returns (bool);
Вот что представляют собой эти функции:
- TotalSupply: Общее количество токенов, которые когда-либо будут выпущены;
- BalanceOf: Баланс счета владельца токена;
- Передача: Автоматически выполняет перевод указанного количества токенов на указанный адрес для транзакций с использованием токена;
- TransferFrom: Автоматически выполняет передачу указанного количества токенов с указанного адреса с помощью токена;
- Утвердить: Позволяет тратящему снять заданное количество токенов с указанного счета, вплоть до определенной суммы;
- Разрешение: Возвращает владельцу заданное количество жетонов от тратящего;
- Передача: Событие, возникающее при успешной передаче (событие);
- Утверждение: Журнал одобренного события (события).
При надлежащей авторизации функции ERC20 позволяют внешнему субъекту, например, приложению криптокошелька, видеть его баланс и передавать токены между пользователями.
Существует два типа событий, распознаваемых смарт-контрактом:
event Approval(address indexed tokenOwner, address indexed spender,
uint tokens);
event Transfer(address indexed from, address indexed to,
uint tokens);
События могут быть:
- вызванный
- излучаемый
И то, и другое происходит после того, как аккаунт Ethereum предоставил кому-то права на снятие с него токенов, и после того, как токены действительно были переданы. Согласно стандарту, "функция transfer" должна испускать событие Transfer при успешной передаче токенов.
function allowance(address owner, address spender) external view returns (uint256);2
Стандарт ERC-20 позволяет адресу дать разрешение другому адресу на получение от него токенов. Этот геттер возвращает оставшееся количество токенов, которые разрешено потратить от имени владельца. Эта функция является геттером и не изменяет состояние контракта, а по умолчанию должна возвращать 0.
Создание токена ERC 20
Шаг 1
- Выберите название, например, Best Coin
- Выберите символ, пусть это будет BEC
- Примите решение об общем объеме поставок
- Решите, будут ли жетоны делимыми, и если да, то сколько знаков после запятой будет максимальным.
Шаг 2
Развертывание токена
Введите следующие данные в смарт-контракт, доступный по ссылке. Загрузите оба файла .sol. Перейдите в редактор ремиксов. Загрузите оба файла.

Файлы загружаются с помощью кнопки Load(Open). Выберите оба файла.
Откройте файл NewToken.sol, поместите необходимые значения в
totalSupply - общее количество токенов
name - полное имя маркера
decimal - количество знаков после десятичной точки. Дело в том, что в контрактах все хранится только в целых числах. Поэтому Вам следует указать количество знаков, если Вы хотите иметь возможность зачислить нецелое число токенов.
- Символ - символ для обмена
- Купить рекламу
- Отключите от сети.
Должно получиться примерно так:
Сохраните его. Осталось загрузить контракт в сеть. Например, установите его в тестовую сеть Ropsten. Для развертывания потребуется любой клиент. Давайте воспользуемся MetaMask - он не знает, как компилировать смарт-контракты на Solidity, поэтому сначала скомпилируем мы.
В правой части редактора ремиксов откройте вкладку "Компиляция". По умолчанию контракт компилируется автоматически. Выбрав контракт в списке Select и нажав Details, Вы можете просмотреть байткод и другую информацию.
Для развертывания нажмите Run, выберите Injected Web3 и выберите учетную запись, которую мы будем развертывать (она должна загрузиться автоматически, если у Вас в браузере установлен MetaMask). Введите необходимую информацию в поля (газ, значение) и нажмите кнопку Создать.

MetaMask подхватывает действие со страницы.
Нажмите кнопку Отправить. Ваш контракт скреплен печатью. Отправка подтверждается в MetaMask иконкой с документом (она ведет на страницу сделки) и надписью "Контракт опубликован".

Запечатанный смарт-контракт - это токен.
Шаг 3
Операции с токенами
Для транзакций с токенами на базе Ethereum требуется два кошелька - тот, в котором они уже есть (по умолчанию, у создателя контракта стандарта ERC20), и тот, в который их нужно перевести.
Выполните операции с нашим токеном (например, передайте его). Мы можем либо на странице смарт-контракта etherscan (ссылка в MetaMask), либо на странице ремикса.

Голубой цвет здесь - операции чтения, розовый - операции записи.
Чтобы перевести токены ERC-20, введите адрес получателя и количество. После этого (и внесения данных в блокчейн, разумеется) Вы можете проверить свой баланс или баланс получателя токенов с помощью операции balanceOf.
Готово!
Проблемы со стандартом токенов ERC 20
Существует два уровня выпуска токенов ERC 20. Есть два уровня: со стороны пользователя и со стороны разработчика.
Для пользователей токенов
Для обычных пользователей наиболее распространенными неудобствами являются:
- Низкая пропускная способность - сеть Ethereum забивалась, когда dapp’ы пользовались большим спросом, например, CryptoKitties (которая с тех пор перешла на собственный блокчейн Flow). Когда это происходит, сеть замедляется, и транзакции становятся более дорогими.
- Медленные транзакции - Время блока составляет около 14 секунд, поэтому на обработку транзакций может уходить до минуты. Этого может быть достаточно для одних целей или слишком медленно для других.
- ETH для газовых платежей - При совершении транзакций с использованием токенов ERC-20 требуется вторая криптовалюта для оплаты комиссии за транзакцию. Это может добавить как времени, так и затрат, поскольку может привести к накоплению "пыльного" баланса на разных платформах.
Для разработчиков токенов
У токенов ERC20 есть две критические проблемы, которые, как известно, приводят к денежным потерям. К ним относятся:
- Отсутствие возможности обработки транзакций.
Существует два способа совершения транзакции в токенах ERC20:
- передаточная функция.
- одобрить + механизм transferFrom.
Баланс токена - это просто переменная внутри контракта на токен.
Транзакция токена - это изменение внутренних переменных смарт-контракта (текущий баланс отправителя будет уменьшен, а получателя - увеличен).
Функция перевода не уведомит получателя о том, что транзакция была проведена. Получатель не сможет распознать поступившую транзакцию! Это может привести к необработанным транзакциям и денежным потерям.
В результате, если получателем является смарт-контракт, пользователи должны передать свои токены erc20, используя алгоритм approve +transferFrom. Если получателем является внешний адрес аккаунта, пользователи должны передать свои токены с помощью функции transfer.
Если пользователь ошибется и выберет неправильную функцию, то токен застрянет внутри смарт-контракта, и транзакция не будет распознана. Таким образом, застрявшие токены erc20 будет невозможно извлечь.
Из-за этой проблемы было потеряно не менее 400 000 долларов.
- Механизм approve + transferFrom потенциально небезопасен
Известно, что механизм approve + transferFrom допускает двойные траты.
Это не актуально, если только не будет возможности создавать пользовательские токен-биржи, как, например, target="_blank"> target="_blank"> Bancor token changer.
Решением этой проблемы является стандарт токенов ERC223.
Стандарт токенов ERC #223 был разработан специально для решения проблем стандарта токенов ERC 20.
Каждый разработчик токенов должен обратить на это внимание. Разработка токена, который приведет к денежным потерям Ваших пользователей, - не лучшее решение. Пожалуйста, относитесь ответственно к своим разработкам.
Как это работает на практике
У Алисы есть 10 токенов ERC20. Она хочет отправить 3 токена Бобу.
Для обычных пользователей может показаться, что у Алисы есть несколько токенов "на балансе ее счета", но баланс токена - это всего лишь переменная внутри контракта на токены.
Алиса инициирует транзакцию. Каждая транзакция с токенами, по сути, является вызовом контракта с токенами.
Алиса просит токен-контракт уменьшить ее баланс на 3 и одновременно увеличить баланс Боба на 3.
После того, как транзакция будет добыта, внутренние переменные этого контракта с токеном ERC 20 будут изменены. Никто не сообщит получателю (в данном случае Бобу), что транзакция состоялась.
Это подходит для аккаунтов, принадлежащих внешним пользователям (т.е. людям). Алиса может сказать Бобу, что она отправила ему жетоны. Боб может посмотреть на свой баланс и понять, что это действительно произошло.
Это критическая проблема для контрактов, которая приводит к потере токенов. Контракты, не предназначенные для работы с токенами, должны отклонять входящие транзакции с токенами. В противном случае каждый контракт становится потенциальной ловушкой для токенов из-за неспособности отклонить неправильную передачу токенов.
ERC здесь, в технических терминах, называется "публичным постоянным символом". Ethereum Request for Comments - это название документа, описывающего правила создания токенов на блокчейне.
Юридические последствия ERC20
С юридической точки зрения ситуация с токенами ERC 20 еще более туманна, чем с криптовалютами.

Нормативная база в этой области в большинстве стран мира либо отсутствует вовсе, либо склоняется к "запрету". Это объясняется рядом факторов, в том числе:
- Большое количество мошенничества, связанного с токенами ERC 20. Поскольку сущность токена получила наибольшее распространение в связи с ICO, многие из которых были явным или скрытым мошенничеством, это наложило негативный отпечаток на концепцию.
- Криптовалюта - относительно молодая область. Технология Blockchain внесла серьезные инновации в мир финансовых технологий. Во-первых, это сложность регулирования данной сферы в связи с использованием технологий децентрализации и фальшивой анонимности. Во-вторых, это новая сфера в мировой экономике.
Токен ERC 20 = безопасность?
- Сейчас ведется много споров вокруг признания токенов ERC 20 ценными бумагами. Особенно это касается тех, кто стремится создавать и распространять свои собственные токены в рамках ICO и т.д. Дело в том, что токены ERC 20 ("акции, которые принесут владельцам доход") будут подпадать под действие законов о ценных бумагах в США и большинстве других стран. Вам даже не придется проходить сложный тест Хоуи. Тест Landreth Timber и другие подобные тесты сделают свое дело - доля прибыли в предприятии в любом случае будет считаться ценной бумагой.
- Тот факт, что токен является ценной бумагой, не означает, что Вы не можете его продать. Люди постоянно покупают и продают ценные бумаги (вспомните стартапы Кремниевой долины). Но чтобы сделать это, Вы должны соответствовать одному из исключений из правил частного размещения ценных бумаг, установленных законодательством о ценных бумагах. Как правило, это означает, что Вы не предлагаете их широкой публике, не рекламируете их и т.д. - иными словами, противоположное тому, что делают большинство продавцов токенов.
- Или же Вы можете пойти по пути Reg A+ и предложить токен публике, но с ограничением в 50 млн. долларов, получив сначала одобрение SEC, и с некоторой постоянной отчетностью (не такой плохой, как отчетность, требуемая для полноценной компании, отчитывающейся по Закону о биржах). Есть и другие варианты, которые можно комбинировать в той же общей зоне действия законов о ценных бумагах.