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