ERC-1155: последний стандарт токенов на Ethereum

Ровно год назад, 17 июня 2018 года, я отправил первую версию стандарта нескольких токенов ERC-1155 в репозиторий Ethereum на Github и открыл проблему для комментариев и отзывов.

С тех пор стандарт получил невероятную поддержку с более чем 50 пересмотрами и 400 комментариями сообщества, которые внесли неоценимый вклад и помогли превратить ERC-1155 в самый мощный из когда-либо созданных стандартов токенов Ethereum.

Сегодня я с гордостью сообщаю, что ERC-1155 получил статус Final и стал официальным стандартом токенов Ethereum.

Теперь, когда сообщество Ethereum опечатало его как «окончательный», в ERC-1155 больше не нужно вносить никаких изменений. Это новый принятый стандарт для чеканки взаимозаменяемых и невзаимозаменяемых активов, и сообщество разработчиков может приступить к созданию приложений, интегрирующих активы ERC-1155, с полной уверенностью в том, что текущий стандарт рассчитан на будущее.

ERC-1155 здесь, чтобы остаться.

EIP 1155: стандарт нескольких токенов ERC-1155

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

eips.ethereum.org/EIPS/eip-1155

Предложения по улучшению Ethereum

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

В Enjin с 2017 года мы создавали то, что мы назвали «Контрактом монолитного токена». Мы поняли, что существующие стандарты токенов ERC-20 и ERC-721 не были достаточно гибкими для тех видов игровых элементов, которые мы предполагали.

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

Создание стандарта означало, что более широкое сообщество Ethereum начнёт поддерживать этот новый вид токена, и это проложит путь для более быстрого внедрения в кошельки, биржи, игры и новые проекты с использованием токенизированных активов блокчейна.

ERC-1155: стандарт нескольких токенов

Один смарт-контракт, много токенов

В то время как токены ERC-20 и ERC-721 требовали развертывания нового смарт-контракта для каждого нового «класса» токенов, основная концепция ERC-1155 заключается в том, что один смарт-контракт может управлять бесконечным количеством токенов.

Думайте об этом как о торговом автомате, в котором хранится широкий выбор газированных напитков, соков и даже закусок. Клиент взаимодействует с автоматом, используя единый безопасный интерфейс (вставляя монету, нажимая кнопку), и автомат распределяет выбранные им лакомства. Точно так же контракт ERC-1155, заключенный для игры, может содержать широкий спектр предметов, от оружия и доспехов до зелий здоровья, магических свитков и многого другого.

Каждый из этих предметов может быть «взаимозаменяемым», имея более одной доступной копии. Взаимозаменяемые жетоны используются для делимых валют (большинство жетонов ERC-20), и они также очень полезны для штабелируемых предметов, которые не нужно дифференцировать, например, связки стрел для лука.

Уникальные токены называются невзаимозаменяемыми токенами (NFT). Эта структура позволяет каждому токену иметь свои уникальные параметры, историю и отражает реальный мир. Домашний дракон в видеоигре может быть NFT и иметь собственное уникальное имя, уровень мощности и богатую историю в игре.

Пакетные переводы

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

Проекты, использующие ERC-1155, также могут создавать атомарные свопы с той же базовой конструкцией, что позволяет пользователям обменивать один вид токена на другой с абсолютной безопасностью от мошенничества и без участия посредников.

Дальнейшие оптимизации

Дальнейшие эксперименты некоторых авторов привели к еще большим оптимизациям и значительным улучшениям в газе!

Разработчик Sandbox Ронан Сэндфорд смог чеканить более 1500 токенов в блоке, сохранив при этом истинное право собственности с их реализацией ERC-1155.

Разработчик Horizon Games Филипп Кастонгуэй смог использовать технику под названием Balance Packing (хранение 16 токенов с более низким разрешением в одном идентификаторе) для достижения 80-90% экономии газа по сравнению с обычными передачами.

Здесь будут драконы: выход за рамки стандартов ERC-20 и ERC-721 для снижения стоимости газа на ~ 80%

TL; DR: Мы разработали и реализовали контракт на использование токенов, который позволяет нам передавать пакеты различных типов токенов на 80-90% меньше газа, чем ERC-20 и ERC-721.

medium.com/horizongames

Филипп также смог достичь скорости передачи более 155 активов в секунду с помощью своих токенов ERC-1155!

Экономика данных

Основной характеристикой стандарта нескольких токенов ERC-1155 является создание нескольких токенов в одном смарт-контракте. Это означает, что «создание» нового типа токена может быть таким же простым, как вызов функции, которая добавляет новый идентификатор в пул доступных токенов.

Для сравнения: создание нового типа токена со стандартами ERC-20 и 721 означает редактирование кода и развертывание совершенно нового контракта по адресу в цепочке блоков Ethereum. Развертывание контракта стоит огромного количества газа (ETH), потому что хранение данных, естественно, стоит дорого в блокчейне, совместно используемом во всем мире. Большинство контрактов ERC-20 основаны на одном и том же коде с отредактированной парой строк, что делает остальной код ненужным. Это означает, что каждый из 25000+ узлов Ethereum становится загроможденным избыточным кодом, который останется там вечно!

Также есть операционные накладные расходы, связанные с необходимостью получать уведомления о каждом новом адресе контракта ERC-20 или ERC-721 каждый раз, когда запускается новый токен. Сто новых токенов означало бы 100 новых контрактов, за которыми нужно следить — для каждого кошелька и каждой части программного обеспечения, которые должны знать о существовании токена.

Таким образом, хотя предыдущие два стандарта подходят для узких случаев использования — либо единой валюты, либо одного класса NFT, — подавляющее большинство создателей извлекут выгоду из способности ERC-1155 создавать новые токены на лету и представлять более одного «тип» без дублирования идентичных договоров.

Строгие правила делают токены надежными

Невероятная особенность стандарта токенов ERC-1155 стала возможной благодаря строгому набору правил, которым должен следовать токен.

Токены ERC-1155 — это первый тип токена, который может выполнять детерминированную функцию смарт-контракта, просто отправляя токен на адрес .

Это огромно.

Просто отправив токен на адрес обмена DEX, обмен может немедленно вернуть другой токен обратно на адрес отправителя. Точно так же игра с блокчейном может выполнять игровую функцию, как только она получает токен ERC-1155 от пользователя. Токены могут быть упакованы, конвертированы, созданы или депонированы без необходимости доступа к ABI или непосредственного взаимодействия со смарт-контрактом.

Этот тип функциональности был первоначально предложен в ERC-223, но стандарт не прижился. ERC-721 также реализовал «safeTransferFrom», но имеет фатальную проблему, заключающуюся в том, что это не требуется строго для всех передач, что означает, что пользователи могут навсегда потерять свои токены, а авторы контрактов не могут рассчитывать на гарантированное выполнение при отправке токена.

Решение сделать это строгим в ERC-1155 означает, что надежные сети смарт-контрактов и токенов теперь могут начать строиться на этой мощной функции. Все, что нужно сделать пользователю, — это отправить свой токен на адрес, чтобы запустить потрясающую цепочку событий.

Метаданные

Одним из основных обновлений стандарта ERC-1155 за последний год стало решение перенести все метаданные о токене во внешний файл JSON. Это было в значительной степени вдохновлено расширением метаданных ERC-721, но мы добавили некоторые улучшения.

Больше никаких устаревших метаданных

Символ: (найденный в стандартах ERC-20 и ERC-721) не был включен, поскольку это не относилось к данным для виртуальных предметов / активов. Эти трехбуквенные символы обычно используются только в тикерах и для торговли валютой, но они не так полезны, когда вы токенизируете более общие элементы.

Название: также было удалено из основного стандарта. Почему? Во многих случаях хранение имени в цепочке блоков будет излишним. Вместо этого теперь можно определить имя каждого токена в стандарте метаданных JSON.

Подмена ID

Используя строку подстановки «{id}», контракт ERC-1155 теперь может указывать на бесконечное количество токенов URI без сохранения каких-либо дополнительных данных в цепочке. Это даже можно использовать для указания на веб-службу, которая размещает динамически сгенерированный токен JSON для каждого токена в базе данных. Строку {id} также можно использовать внутри самого JSON для автоматической ссылки на изображения для каждого токена. Это значительно снижает накладные расходы, необходимые разработчикам для отображения метаданных для больших коллекций токенов.

Локализация

Поскольку информация токена определена в формате JSON, теперь возможна локализация для нескольких языков с использованием {locale}. Кошельки и программное обеспечение, поддерживающее несколько языков, могут отображать альтернативные версии имен токенов, изображений и любых других данных.

Гарантированная трассировка журнала

По мере того как экосистема Ethereum продолжает расти, многие децентрализованные приложения полагаются на традиционные базы данных и службы API проводника для извлечения и классификации данных. Стандарт ERC-1155 гарантирует, что журналы событий, создаваемые смарт-контрактом, предоставят достаточно данных для создания точной записи всех текущих балансов токенов. База данных или проводник могут прослушивать события и иметь возможность обеспечивать индексированный и категоризированный поиск каждого токена ERC-1155 в контракте.

Смарт-контрактам больше не нужно поддерживать индексы каждого идентификатора токена, и идентификаторы никоим образом не должны быть последовательными.

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

Представьте себе возможность перематывать вперед и назад во времени и анализировать шаблоны использования и жизненные циклы совершенно разных токенов ERC-1155, независимо от того, какой смарт-контракт анализируется.

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

Вывод

Стандарт ERC-1155 является кульминацией года упорной работы blockchain сообщества. Если вы планируете внедрить ERC-1155, вы можете просмотреть весь стандарт, а также обоснование каждого решения здесь.

EIP 1155: стандарт нескольких токенов ERC-1155

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

eips.ethereum.org/EIPS/eip-1155

Вы также можете посетить ветку исходной проблемы, чтобы увидеть историю обсуждения:

ERC: стандарт нескольких токенов # 1155 на Github

Этот стандарт описывает интерфейс смарт-контракта, который может представлять любое количество взаимозаменяемых и невзаимозаменяемых типов токенов.

github.com/ethereum/EIPs/issues/1155

Чтобы создать собственный токен-контракт ERC-1155, вы можете получить доступ к официальной эталонной реализации Enjin с открытым исходным кодом на GitHub.

Вы можете использовать этот код в качестве отправной точки для своего собственного смарт-контракта. Вы также можете рассмотреть возможность использования платформы Enjin, наиболее многофункционального набора инструментов разработки блокчейнов для разработчиков и не разработчиков.

Создатели

Следующие авторы принимали участие в реализации стандарта ERC-1155:

  • Витек Радомски
  • Эндрю Кук
  • Эрик Бине
  • Джеймс Териен
  • Филипп Кастонгуай
  • Ронан Сэндфорд

Каждый из этих замечательных людей внес значительный вклад и усовершенствовал спецификацию Multi Token Standard EIP, и я искренне благодарен каждому автору за их помощь и приверженность делу создания более мощного и перспективного стандарта ERC-1155, чем мы когда-либо думали.

Наконец, мы все хотели бы выразить нашу благодарность удивительному сообществу Ethereum и поблагодарить всех, кто участвовал и оставил свои отзывы для доработки нового стандарта мульти-токенов ERC-1155!

Развивайте свою игру с ERC-1155

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

Начать

Scroll Up