Введение
Стандарты токенов - это набор согласованных правил, которые определяют дизайн, разработку, поведение и работу криптовалютных токенов на определенном протоколе блокчейна. Для того, чтобы стандарты токенов были полезны, они должны быть массово приняты. Без принятия эти правила не могут быть возведены в статус "стандарта", поскольку стандарты - это правила, которым обычно следует широкий круг людей.
В этой публикации мы рассмотрим, почему стандарты важны для повышения уровня принятия и использования криптовалютных токенов. Мы также рассмотрим, как разрабатываются стандарты Ethereum и кратко обсудим стандарты Solana.
Зачем нужны стандарты токенов?
Давайте начнем с понимания того, что мы подразумеваем под словом "токен". Токен в мире криптовалют - это криптовалюта, которая создается, управляется и распределяется с помощью технологии блокчейн - чаще всего смарт-контрактов. Токен может иметь рыночную стоимость, а также обладать некоторой полезностью, которая делает желательным владение токеном помимо финансовой выгоды.
Стандарт - это набор правил, который "стандартизирует" что-либо. В контексте токенов стандартизация означает наличие набора правил, которые определяют, какие данные должен содержать токен, на какое поведение и действия способен токен и какие операции может выполнять владелец или сообщество владельцев по отношению к этому токену. Стандарты токенов предлагают рекомендации по созданию, выпуску, развертыванию, передаче, сжиганию и другим атрибутам токенов на блокчейне, лежащем в их основе. Как и следовало ожидать, эти стандарты токенов, скорее всего, возникнут на блокчейнах, поддерживающих разработку смарт-контрактов, поскольку такой блокчейн сможет поддерживать создание произвольного количества токенов на его основе.
Теперь мы понимаем, что такое стандарты токенов, но чтобы действительно понять их роль в экосистеме, нам нужно понять их преимущества. Другими словами, зачем нам нужны стандарты токенов, и какую проблему они решают?
На самом общем уровне стандарт позволяет реализовать несколько вариантов. Например, в Ethereum существуют стандарты для клиентского программного обеспечения, которое запускают узлы Ethereum для обеспечения связи с сетью Ethereum. Эти стандарты позволяют любому человеку написать собственную версию клиента Ethereum на любом языке программирования по своему выбору при условии соблюдения стандартов и спецификаций для узлов и клиентов Ethereum. Таким образом, в сети Ethereum может быть любое количество узлов и клиентов, некоторые из которых запускают программное обеспечение Ethereum, написанное на языках Golang, Rust, Java, C#, C++ или Python. Это увеличивает "разнообразие клиентов", что делает сеть сильнее за счет снижения зависимости от реализации одного кода. Но все эти реализации, независимо от языка программного обеспечения, дизайна или деталей реализации, имеют одну общую черту - все они следуют единой спецификации для клиентов.
Таким образом, стандарты помогают увеличить разнообразие реализаций. Это означает, что могут быть разные подходы к безопасности, скорости, масштабируемости и т.д., и это разнообразие обогащает общий опыт. Это также означает, что разработчики и дизайнеры могут проектировать, ориентируясь на стабильную основу в отношении минимального набора моделей поведения, требуемых от системы. Это стимулирует инновации на основе стандарта, что открывает больше вариантов использования, стимулирует большее внедрение и так далее.
Именно поэтому стандарты токенов очень важны. Стандартизация функциональности различных токенов помогает разработчикам создавать приложения на основе этих стандартов, зная, что базовые интерфейсы будут одинаковыми до тех пор, пока применяется стандарт.
Еще одно огромное преимущество стандартов токенов заключается в том, что смарт-контракты, которые их реализуют, становятся "композитными". Это означает, что мы можем разрабатывать контракты для взаимодействия друг с другом, поскольку стандартизация позволяет нам знать, какие функции, методы, типы данных и модели поведения будут представлены в соответствующем смарт-контракте. Затем мы можем написать код для взаимодействия с этими контрактами, что означает, что экосистема смарт-контрактов может взаимодействовать, соединяться, смешиваться и сочетаться различными способами, так что целое будет намного больше, чем сумма частей. Простой пример: когда в сети блокчейн на базе Ethereum выпускается новый криптотокен, соответствующий стандарту ERC-20 для взаимозаменяемых токенов, то его смарт-контракт будет совместим с децентрализованными биржами, предназначенными для работы с токенами ERC-20.
Процесс стандартизации Ethereum
Мы можем получить высокоуровневое представление о важности стандартов токенов, взяв в качестве примера Ethereum. Ethereum следует процессу, основанному на предложениях по усовершенствованию Ethereum (EIPs), которые описывают стандарты, применимые к платформе Ethereum (основной протокол блокчейна), API для клиентов и узлов, а также смарт-контракты, которые запускают виртуальную машину Ethereum.
Существует три типа EIP:
Трек стандартов: Как правило, они охватывают изменения в основном протоколе. Они имеют четыре подкатегории:
Core: Связаны с основными правилами протокола Ethereum.
Networking: Внесение улучшений в спецификации сетевых протоколов.
Interface: API и связанные с ним изменения для взаимодействия с протоколом через RPC, а также интерфейсы, такие как ABI смарт-контрактов.
ERC: Ethereum Requests for Comment; это стандарты для приложений, включая стандарты смарт-контрактов и токенов.
Мета/процессы EIP: они охватывают процессы, которые окружают Ethereum, но не касаются непосредственно самого протокола. Они могут включать предложения, которые влияют на процесс принятия решений по изменению протокола и т. д.
Информационные EIP: они охватывают вопросы дизайна Ethereum или рекомендации, которые могут быть полезны сообществу, но не изменяют и не затрагивают особенности протокола Ethereum. Это также самые необязательные EIP, поскольку пользователи могут их игнорировать.
Стандарты и руководства Ethereum обычно имеют жизненный цикл для процесса EIP-предложений. Эти этапы жизненного цикла включают "идею", "черновик", "обзор", "последний сигнал" (окончательный обзор), "окончательный" (окончательный стандарт), "стагнирующий" (неокончательный EIP, который неактивен более шести месяцев), "отозванный" и "живой" (EIP, которые действуют, но по своей природе регулярно обновляются и никогда не достигают окончательного завершения).
Общие стандарты токенов Ethereum
Список всех EIP вы можете найти здесь. Однако давайте рассмотрим некоторые популярные стандарты токенов Ethereum.
Стандарты токенов, как мы уже отмечали в предыдущем разделе, являются частью трека стандартов и относятся к правилам, которые применяются к приложениям, включая смарт-контракты.
Самым известным из них, вероятно, является ERC-20, который появился в рамках EIP-20. Этот стандарт применяется к взаимозаменяемым токенам - токенам, которые по типу и значению точно такие же, как и другой токен, что означает, что ни один токен не является уникальным. Чаще всего они используются в качестве криптовалютных токенов, которыми можно торговать на биржах. Стандарт ERC-20 предписывает стандарт токенов, который реализует API для токенов в рамках смарт-контрактов. Если вы нажмете на ссылки, связанные с ERC-20, то увидите список сигнатур функций и событий, которые смарт-контракты с токенами ERC-20 должны реализовать для соответствия стандарту. Это делает их совместимыми и позволяет нам писать приложения, которые могут взаимодействовать с этими токенами, тем самым делая экосистему более композитной. Разработчики также могут писать библиотеки на любом языке, которые могут взаимодействовать с этими смарт-контрактами на токенах ERC-20, поскольку у нас есть список всех функций и данных, раскрываемых спецификацией ERC-20.
Токен-контракты LINK компании Chainlink также соответствуют спецификации ERC-677, которая расширяет функциональность токенов ERC-20, добавляя в них функцию tranerAndCall, метод, который можно вызвать, чтобы инициировать передачу токена контракту-получателю, а также вызвать определенную функцию в контракте-получателе, и все это в рамках одной транзакции. Это позволяет обойти ограничение стандарта ERC-20, согласно которому передача токена является многоэтапным процессом, что усложняет процесс и увеличивает газовые сборы для передающей стороны.
Другим популярным стандартом токенов является стандарт токенов ERC-721, охватываемый EIP-721. В отличие от токенов ERC-20, токены ERC-721 позволяют добавлять определенные уникальные свойства к каждому токену, что делает их "невзаимозаменяемым". Эта особенность может быть использована для токенизации всего - от произведений искусства до личности человека. Поскольку список методов, требуемых в соответствии с этим стандартом, известен публично, такие торговые площадки NFT, как Opensea, смогли создать площадки для листинга, торговли и продажи NFT, поскольку код площадки может взаимодействовать со смарт-контрактом NFT для чтения и записи данных, относящихся к NFT.
Существуют усовершенствования ERC-721, предложенные в EIP-2309, которые стандартизируют структуру событий, возникающих при создании или передаче невзаимозаменяемых токенов.
Другим популярным стандартом токенов является ERC-1155, который повторяет EIP-1155. Он определяет стандарты для смарт-контракта, который может выпускать токены как ERC-20, так и ERC-721. Это известно как стандарт мульти-токенов. Этот ERC также пытается исправить ошибки в ERC-20 и ERC-721 и улучшить их функционирование.
Существуют и другие стандарты, находящиеся на разных стадиях жизненного цикла предложения и вы можете изучить их здесь.
Стандарты токенов Solana
Хотя стандарты токенов - это просто один из видов правил стандартизации, в разных контекстах они имеют разные названия. В экосистеме Solana стандарты токенов содержатся в библиотеке Solana Program Library (SPL), которая представляет собой библиотеку программ для блокчейн, работающих в среде выполнения блокчейна Solana. Токены, соответствующие стандартам SPL, совместимы с блокчейном Solana и кошельками Solana и повышают совместимость экосистемы Solana. На токены Solana распространяется действие программы Solana Token Program, которая является частью общей программы SPL. Эта программа создает стандартизированный интерфейс для создания, выпуска, передачи и сжигания токенов, совместимых с Solana, и сравнима с ERC-20 и ERC-721 в экосистеме Ethereum.
Родной токен Solana - токен SOL, сопоставимый с ETH в Ethereum. Это также токен SPL. SPL-токены могут сильно различаться по своей функциональности - некоторые могут быть NFT, другие могут быть взаимозаменяемыми, но с небольшим оборотом, а третьи могут сочетать в себе функциональность различных других типов.
Опять же, соответствие стандарту SPL означает, что с токенами на Solana можно взаимодействовать с помощью SPL-совместимых кошельков и смарт-контрактов, что обеспечивает совместимость и инновации в экосистеме. Они также позволяют проводить аналитику и использовать метаинформацию для исследований, как это можно увидеть на сайте Solscan. Функциональность этого сайта обеспечивается стандартами SPL, которые предписывают, какой функциональностью должны обладать токены, соответствующие стандартам SPL, чтобы можно было создавать фронтенды, подобные этому, для взаимодействия со всеми токенами, соответствующими стандартам SPL.
Заключение
Для эффективной работы смарт-контрактов в сетях блокчейн необходимы стандарты токенов, которые определяют реализацию смарт-контрактов и предоставляют программные интерфейсы, на основе которых можно создавать децентрализованные приложения.
Телеграм канал про web3 разработку, смарт-контракты и оракулы.