ERC20

ERC20

Daniil Lashin


Стандарт

Стандарт ERC20 позволяет быстро встроить токен в любой кошелек или вывести его на биржу. Иными словами – предоставляет стандартный интерфейс к токенам.

Сам стандарт четко прописан тут. Так же существует официальный пример кода контракта токена.


Комиссии

Минимальная комиссия за перевод токенов (при минимуме функций в контракте) 0.000019834 ETH (~$0.0049585). С такой комиссией перевод может идти несколько часов. Комиссия взымается за весь перевод (не важно 1 или 1 млн токенов). Оптимальная комиссия - 0.00039668 ETH (~0.09917$, проходит за пару минут).


"Физические" переводы токенов

Для перевода токена другому пользователю нужно вызвать метод transfer() у контракта, при этом заплатив комиссию.

Так же можно дать возможность получателю самому платить за gas: он будет вызывать метод transferFrom() и переводить средства на свой кошелек по установленному лимиту. Подробнее можно почитать в комментариях к методу transferFrom:

Send _value amount of tokens from address _from to address _to. The transferFrom method is used for a withdraw workflow, allowing contracts to send tokens on your behalf, for example to "deposit" to a contract address and/or to charge fees in sub-currencies; the command should fail unless the _from account has deliberately authorized the sender of the message via some mechanism;

Плюсы:

  • Токены находятся в непосредственном владении у пользователей
  • Безопасность обеспечивает сеть Ethereum
  • Требуется минимум кода, все операции выполняются в сети Ethereum

Минусы:

  • Комиссия за каждую транзакцию
  • Время зачисления переводов может достигать нескольких часов (при низкой комиссии)


"Виртуальные" переводы токенов

В этом случае балансы и переводы между пользователями записываются в собственную DB. По запросу мастер-счет выводит токены на Ethereum кошелек пользователя.

Для управления мастер-кошельком можно использовать установленную локально ноду Ethereum. Geth позволяет быстро настроить такую ноду и имеет JSON-RPC/HTTP/WS/IPC интерфейсы.

Плюсы:

  • Существенная экономия времени и средств на комиссиях при внутренних переводах
  • Токены так же будут доступны для обращения вне системы

Минусы:

  • Есть расхождение с принципами blockchain сетей (а именно централизация операций)
  • Необходимость защиты DB
  • Необходимость защиты приватного ключа мастер-аккаунта

Последний пункт можно решить введением холодных/горячих кошельков, как это делает, например, биржа Poloniex (на холодном кошельке ~$1 млрд): https://etherscan.io/address/0xb794f5ea0ba39494ce839613fffba74279579268