July 13, 2021

ERC-стандарты: 1155 & 998. Решение на уровне протокола. Часть I. Вопросы

Введение

Про ERC-721 написано много, про ERC-1155 & 998 - чуть меньше, но достаточно. Но всё же сегодня захотелось поговорить именно о двух последних. Резонный вопрос: зачем?

Ответы

Всё просто: 99% статей, которые удалось найти на английском и русском языке, рассказывают о том, что есть такие-то стандарты, что они применимы в таких-то кейсах и…, как правило, за этим - всё. Видимо, технология стала столь идеальной, что у неё и минусов-то нет?

Нет, есть. И их довольно много.

Судите сами: “токены ERC-998 являются "композитными", что означает, что активы внутри токена могут быть составлены или организованы в сложные позиции и торговаться с использованием единой передачи права собственности”. То есть, поскольку токен ERC-998 может владеть собственным уникальным набором цифровых активов, его можно рассматривать как портфель активов или даже как мини-компанию для различных (видов) активов.Всё выглядит логично? Да. Но идём дальше. Всё, что обычно рассматривается как коллекция (от колоды карт и книги с историческими марками и/или бонами, монетами и прочим) - может быть сгруппировано под одним токеном: Composable Token (композитные токены). И это отлично.

Но как быть с тем, что это всё внутри одного блокчейна? Разве коллекция марок зависит от того, что одна из них была создана в Африке, другая - на Дальнем Севере? Нет, ценность как раз в… смешении.

Поэтому NIFTSY решает именно эту проблему: не просто объединить активы, назвав их единым именем (wNFT), но и создать их простой межблокчейновый обмен посредством заморозки wNFT, скажем, в Эфире и развёртыванием его клона, допустим, во Flow. То есть ERC-998 помогает вам создать набор из ERC-20 & ERC-721 токенов под единым лозунгом, а wNFT даёт возможность по-настоящему вывести этот набор на открытый рынок p2p.

Отчасти такое решение есть и в стандарте ERC-1155, но именно внутри составного токена, а не в его участии в рынке p2p. Называю это решением проблемы транспарентности. Но она - не единственная.

“А есть ещё?” - спросит вдумчивый читатель? Да. Вот смотрите: “Основная оговорка заключается в том, что вы должны верить, что композитный контракт ERC-998 не имеет возможности произвольно передавать дочерние токены, которыми технически владеет контакт”.Блокчейн, напомню, - это про работу в НЕдоверенной среде. А здесь?

Поэтому когда возникает вопрос доверия - возникает или формализация через протокол (wNFT от NIFTSY как стандарт) или же оракул, который в данном случае является независимым (а точнее - созависимым) DAO.

Вопросы

Поэтому материал сегодняшний в первую очередь направлен не на решение проблем, а на правильную постановку вопросов.

Выделю, пожалуй, три наиболее насущных:

  • Стандарт ERC-1155 хорош для игр, но он требует или определённого доверия, или же ставит владельца общего токена в созависимость от дочерних. Отсюда вопрос - кому именно должен доверять игрок?
  • Стандарт ERC-20 может вообще быть отправлен “в никуда”, усовершенствования в формате ERC-223 и т.п. (пока) должного развития не получили. Отсюда вопрос - как быть с токенами ERC-721, ERC-998 & ERC-1155 с этой же проблемой? Да ещё если внутри у них - ERC-20?
  • Стандарт ERC-998 хорош собой, но и у него есть явный изъян, цитирую: “контракт ERC-998 требует одобрения от дочернего токена, чтобы он мог использовать функцию transferFrom (owner, to, tokenId). Эта функция позволяет родительскому смарт-контракту передать право собственности от текущего владельца, пользователя, добавляющего дочерний токен в родительский, к родительскому смарт-контракту. Как вариант, можно осуществлять передачу из ERC-721 и ERC-223 напрямую и использовать необязательное поле bytes, чтобы указать, в какой NFT в контракте ERC-998 вы хотите осуществить передачу. В этом случае для перемещения композитного токена требуется только одна транзакция. После её завершения и успешного возврата родитель добавляет дочерний элемент во внутреннее сопоставление. Это позволит обеспечить соблюдение отношений родитель-ребёнок в дальнейшем при передаче”.

В настоящее время все эти (и, как покажем во второй части) проблемы возникают из-за одной в общем-то причины: отсутствия стандартизированных протоколов. И именно этим занимается NIFTSY.

Как именно? Расскажем в следующий раз, а пока: завершим вот на какой схеме:

С этой схемы и начнём в следующий раз, а пока -

До!

P.S. Дополнительные ссылки