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. Дополнительные ссылки
- Одно из самых простых объяснений сути ERC-998 стандарта
- Подборка по http://erc998.org
- Технические примеры ERC-998 реализаций (или сразу на гит: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-998.md)
- Общая описательная часть: https://github.com/ethereum/eips/issues/998
- Правила: https://eips.ethereum.org/EIPS/eip-1155
- Все возможные стандарты (в Ethreum): https://eips.ethereum.org/erc