Токены ERC-20, ERC-223, ERC-721 — чем отличаются эти стандарты?

Читая описание любого ICO, вы скорее всего наткнетесь на аббревиатуру “ERC-20”. Причём организаторы ICO зачастую упоминают “стандарт ERC-20” в качестве преимущества криптовалютного токена. Иногда можно увидеть и последовательность символов “ERC-223”. Значит ли это, что токен стандарта ERC-223 более чем в 10 раз лучше токена стандарта ERC-20? И что значит ERC? Давайте разбираться!

Криптовалютные токены

С точки зрения пользователя токены мало отличаются от криптовалют и воспринимаются как дополнительная валюта со специальными свойствами. Существует много различных токенов, некоторые из них торгуются на биржах, их можно покупать и переводить друг другу. Очень похоже на криптовалюты, но с точки зрения сети Эфириума криптовалютный токен — это данные программы, точнее, смарт-контракта.

Ethereum сам является децентрализованной распределенной программой, представляющей из себя криптовалюту и децентрализованную виртуальную машину. На этой виртуальной машине работают программы, управляющие токенами.

Например, чтобы Алиса перевела эфир Бобу, Алиса создаёт сообщение “Я Алиса, перевожу Бобу 1 эфир, который получила от Чарли”, подписывает его своим приватным ключом и отправляет в сеть. Участники сети проверяют подпись Алисы, проверяют, что полученный от Чарли эфир не был потрачен, и с помощью майнинга записывают транзакцию в блокчейн, подтверждая её.

Чтобы Алисе перевести Бобу, например, токен Golem, Алиса создаёт сообщение “Я Алиса, передаю сообщение смарт-контракту Golem. Golem, переведи с моего счёта один токен на счёт Боба”, подписывает его своим приватным ключом и отправляет в сеть. Это сообщение не является транзакцией, Алиса никому ничего пока не переводит, она “написала письмо” смарт-контракту. И после проверки подписи Алисы просыпается смарт-контракт Golem.

Golem — полноценная программа, хоть и работает на виртуальной машине. У неё своя база данных, где записано, сколько и кому принадлежит токенов, у неё свой алгоритм работы, который написали программисты Golema. В её алгоритме вполне может быть условие не передавать токены Бобу по пятницам или (что чаще используется) не переводить токены со счёта Алисы до наступления 2020-го (заморозка активов). Эти токены, по сути, не существуют в сети Ethereum. Для виртуальной машины, на которой работает смарт-контракт, количество токенов на счетах Алисы и Боба — всего лишь значения переменных одной из тысяч программ.

Смарт-контракт — аналог чёрной коробки с прорезью, в которую можно засовывать бумажки с приказами (и деньги), а в ответ из той же прорези выходят бумажки с ответами (или деньги). Причём какие приказы эта коробка будет понимать и как она будет на них отвечать, зависит только от ее внутреннего устройства.

Все операции в смарт-контрактах проводятся с помощью команд. Чтобы Алисе узнать, сколько у неё токенов, ей нужно послать сообщение смарт-контракту и получить от него ответ.

Почувствовав возможности, которые дают смарт-контракты, тысячи разработчиков стали разрабатывать свои программы для виртуальной машины эфириума, в том числе и новые “программы управления токенами”. Но из-за гибкости языка каждый писал “программы управления токенами” по-своему. У кого-то функция для получения баланса была “ballance(адрес_счёта)”, у кого-то “money(адрес_счёта)”, кто-то вообще возможность узнать баланс не реализовал. Смарт-контракты — полноценные программы, и код можно писать как угодно. Чем больше становилось токенов, тем яснее было осознание, что для токенов нужен стандарт. Таким стандартом стал ERC-20.

Читать далее ...