В случаях, если средств на балансе недостаточно или трата средств запрещена, перевод будет отклонен. Смысл существования первых четырех функций – определение предложения и балансов, а также пересылка токенов – интуитивно понятен и ожидаем. В свою очередь последние две функции имеют решающее значение для понимания возможностей интерфейса ERC-20. Без них все пользовательские возможности ограничивались бы простой пересылкой токенов между учетными записями. Благодаря функции утверждения (approve) контракты (или доверенные учетные записи) могут выступать в качестве хранителей токенов пользователя, не держа их на своем балансе. Это расширяет возможности приложений, поскольку пользователи сохраняют полный контроль над своими средствами до выполнения транзакции уполномоченным лицом.
Формально выделяют три основные категории токенов ERC-20, однако на практике один и тот же токен может одновременно относиться к нескольким категориям.
Токены-акции, которые не следует путать с акциями в традиционном финансовом понимании, удостоверяют право владения базовым активом или пулом активов. Единицы токенов-акций должны быть взаимозаменяемыми, чтобы каждая из них соответствовала идентичной доле пула. Например, предположим, что общее фиксированное предложение токенов TKN составляет 10 000, что соответствует пулу, состоящему из 100 ETH, хранящихся в смарт-контракте. Согласно условиям данного смарт-контракта, за каждую полученную единицу TKN он возвращает пропорциональную сумму ETH, фиксируя коэффициент обмена на уровне 100 TKN/1 ETH. Давайте усложним пример, сделав количество ETH в пуле переменным. Пусть за счет некоего механизма количество ETH в пуле ежегодно увеличивается на 5 %. В этом случае 100 TKN будут соответствовать 1 ETH с постоянным 5-процентным денежным потоком ETH. Эта информация может использоваться рынком для точной оценки стоимости TKN.
В случае реальных токенов-акций пулы активов могут управлять гораздо более сложной механикой, выходящей за рамки ситуации статического пула или фиксированных темпов роста. Возможности использования токенов-акций ограничены только тем, что можно закодировать в смарт-контракте. Немного позже, в главе 6, мы рассмотрим примеры различных контрактов: контракт с переменной процентной ставкой (токены Compound) и контракт, владеющий пулом из нескольких активов со сложной структурой комиссий (Uniswap), а также обсудим протокол Set Protocol, который определяет стандартный интерфейс для создания статических и динамических токенов-акций.
Понятие утилитарных (служебных) токенов по большей части является собирательным, хоть и имеет четкое определение: это взаимозаменяемые токены, необходимые для использования некоторых функций системы смарт-контрактов или обладающие собственным ценностным предложением, которое определяет соответствующая система смарт-контрактов. В большинстве случаев утилитарные токены управляют экономикой системы, создавая дефицит или стимулы там, где это было задумано разработчиками. В некоторых случаях вместо утилитарных токенов можно использовать токены ETH, однако первые позволяют системам накапливать и поддерживать экономическую ценность, не связанную с Ethereum. Например, для системы с алгоритмически изменяющимся предложением требуется отдельный утилитарный токен. Чуть позже в этой главе мы обсудим данную механику более подробно.
Утилитарные токены могут использоваться в качестве залога (например, SNX), гарантии репутации или доли (например, REP, LINK), для поддержания привязки, то есть стабильной стоимости по отношению к базовому активу (например, DAI, Synthetix Synth), а также для оплаты комиссий конкретных приложений (например, ZRX, DAI, LINK). Последнее относится ко всем стейблкойнам вне зависимости от того, обеспечены ли они фиатной валютой, криптовалютой или являются алгоритмическими. В случае USDC, стейблкойна с фиатным обеспечением, утилитарный токен работает как самостоятельная система без какой-либо дополнительной инфраструктуры смарт-контрактов, поддерживающей его ценность. Ценность USDC обеспечена обещанием поддерживающих эту валюту компаний, включая Coinbase, выкупить ее за доллары.
Утилитарные токены можно использовать гораздо бо́льшим числом способов, чем упомянуто здесь. Более того, по мере появления новых экономических и технических механизмов это количество будет только расти.
Токены управления, как и токены-акции, являются эквивалентом процентной доли владения. Токены-акции относятся к активам, а токены управления отражают процент голосов при принятии решений. Для начала давайте посмотрим, какого рода могут быть изменения, за которые владельцы данного типа токенов могли бы проголосовать.