Представляем цифровой продукт “Simple Assets” (Alpha) для блокчейнов EOSIO

EOS CryptoLions_UA
6 min readMar 7, 2019

--

ОРИГИНАЛ: https://medium.com/@cryptolions/introducing-simple-assets-b4e17caafaa4

Simple Assets — это смарт-контракт для создания и эксплуатации цифровых активов (так называемых не взаимозаменяемых токенов) на блокчейнах EOSIO. В настоящее время мы находимся на стадии Alpha, которые развернуты и доступны в Jungle Testnet.

Simple Assets Demo

Основы: Что же такое цифровой актив (он же НЕ взаимозаменяемый токен)?

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

С другой стороны есть и другие активы, например такие как билеты в театр или документы о владении недвижимостью и они то, как раз и являются НЕ взаимозаменяемыми. Все они уникальны.

В виртуальном мире видеоигр, некоторые активы, так сказать “внутриигровые ресурсы” — дерево, золото, vespene gas — являются взаимозаменяемыми, но некоторые редкие высокоуровневые предметы, допустим, легендарный меч или транспортное средство, могут быть не взаимозаменяемыми.

В криптосфере уже существуют не взаимозаменяемые цифровые активы. Пожалуй, самыми известными из них являются CryptoKitties. Стандарты для не взаимозаменяемых токенов Ethereum Based ERC-721 token standard и блокчейн WAX.io, который был создан основателями OP Skins.

Simple Assets — это стандарт цифровых активов / NFT (non-fungible token standard), предназначенный для разработчиков в экосистеме EOSIO.

The Simple Assets Standard

web: http://simpleassets.io
Git: https://github.com/CryptoLions/SimpleAssets

Contract Actions

//basic author actions
create (author, category, owner, idata, mdata, requireClaim)
update (author, owner, assetID, mdata)
//owner actions
transfer (from, to , assetID, memo)
burn (owner, assetID, memo)
offer (owner, newowner, assetID)
canceloffer (owner, assetID)
claim (claimer, assetID)
//optional author registration for asset display recommendations
regauthor (name author, data, stemplate)
authorupdate (author, data, stemplate)
//for lending assets
delegate (owner, to, assetID)
undelegate (owner, from, assetID)

Структуры данных

Активы

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

assets {  
uint64_t id, // asset id used for transfer and search
name owner, // asset owner (mutable - by owner!!!)
name author, // asset author (game contract, immutable)
name category, // asset category, chosen by author immutable
string idata, // immutable assets data
string mdata // mutable assets data, added on creation or asset update by author
}
// Please include in idata or mdata info about asset name img desc which will be used by Markets

Предложения

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

offers {  
uint64_t assetID, // asset id offered for claim
name owner, // asset owner
name offeredTo, // who can claim this asset
uint64_t cdate // offer create date
}

Authors

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

У кошельков, торговых площадок и других Asset Explorers есть возможность последовать рекомендациям автора или нет.

authors {  
name author, // assets author, who will be able to
// create and update assets
string data, // author’s data (json) will be used by
// markets for better display
string stemplate // data (json) schema for markets.
// key: state values, where key is key from
// recommendations for non-text fields:
// url, img, webgl, mp3, video, hide
}

Delegates

Эта простая таблица отслеживает одолженные и заемные активы. Одалживание актива через действие delegate фактически изменит поле владельца актива, но оно также создаст запись в таблице delegates, и некоторые функции, такие как передача или сжигание актива, будут заблокированы, пока актив не будет возвращен владельцу, который его одолжил.

delegates{  
uint64_t assetID, // asset id offered for claim
name owner, // asset owner
name delegatedto, // who can claim this asset
uint64_t cdate // offer create date
}

Вот обсуждение этих действий и структур.

Ключевые решения, по котором мы хотели бы получить ваши отзывы:

  • Базовая архитектура. У нас есть как изменяемые, так и не изменяемые данные в активе. Похоже, что некоторые другие активы имеют только неизменные данные и хранят изменяемую часть внутри своей игры или приложения.
  • Мы НЕ индексируем поле категории таблицы активов. Индекс добавил бы по 128 байтов к каждой строке таблицы. Таким образом, активы меньше, но их поиск — это дополнительная работа. (Мы решили пойти по этому пути. Чрезвычайно удобный способ реализации Simple Assets состоял бы в том, чтобы поместить категорию в строковое поле json, idata.)
  • Владельцы (то есть владельцы аккаунтов EOS), а НЕ автор актива имеют 100% контроль над трансферами, одалживанием / заимствованием и сжиганием. Альтернативой было бы подключить определенную функциональность через автора, что позволило бы им занести в черный/белый список получателей своих активов. Одним из следствий этого решения является то, что игры не могут создавать эксклюзивные торговые площадки для своих активов. Если используются Simple Assets, владение активом выражается полностью вне игры или другого приложения актива. Этот подход правильный?
  • Точно так же мы убрали функциональность, которая позволила бы автору приостанавливать или останавливать трансферы своих активов.
  • На данный момент, отмена делегирования актива (то есть владельца, возвращающего актив, который был одолжен) происходит мгновенно. Мы рассматриваем возможность добавить задержку, чтобы уменьшить потенциальный троллинг, который может происходить в форме, когда владелец забирает свои активы в критический момент в игре. Какую задержку нужно ввести?

Должны ли мы добавлять memo владельца?

  • И последнее, И НАИБОЛЕЕ ВАЖНОЕ, мы предварительно решили отказаться от мемо-поля владельца в активе, которое владелец может заполнять (хотя это интересная идея). Конечно, любая игра или приложение актива может создавать логику, с помощью которой владельцы могут добавлять заметки в поле mdata, но мы думали и о создании поля, которое позволило бы напрямую взаимодействовать с владельцем актива, независимо от автора. Одним из вариантов использования может быть разрешение владельцу написать memo, которое будет отображаться в market places, где продается актив, однако market places также может создать эту функцию за пределами протокола Simple Assets. Мы решили сохранить оперативную память и не включать это поле, но это все еще пока обсуждаемо. Возможно, memo поле владельца может разрешить некоторую функциональность динамических скинов, когда игра может запросить memo владельца и соответственно отобразить ресурс.

Мы хотели бы знать, что вы об этом думаете. Заходите на наш телеграмм: https://t.me/CryptoLions_io

Simple Marketplace для Simple Assets

Мы развернули Simple Marketplace, который интегрируется с Simple Assets. Без функций аукциона это очень просто.

Любой может построить рынок на Simple Assets.

Одна идея, которую мы должны запросить, чтобы авторы активов указывали свой желаемый % от каждой продажи, когда они делают regauthor / authorupdate, и тогда у marketplaces будет возможность отправлять этот процент в качестве вознаграждения автору. Но, как обсуждалось ранее, мы решили предоставить владельцам 100% контроль над передачей прав собственности, поэтому соблюдение этой рекомендации будет необязательным.

Создайте свой собственный актив!

1. Создайте аккаунт в jungle testnet и подключите Scatter:

2. Используя CLEOS, отправьте действие создания в альфа-версию контракта, под названием simpl1assets.

create (author, category, owner, idata, mdata, requireClaim)

Пример:

asset='{"author": "youreosaccount",
"category": "weapon",
"owner": "recipientaccount",
"idata": "{\"power\": 10, \"speed\": 2.2, \"name\": \"Magic Sword\" }",
"mdata": "{\"color\": \"bluegold\", \"level\": 3, \"stamina\": 5, \"img\": \"https://bit.ly/2MYh8EA\" }",
"requireClaim" : 0
}'
./cleos.sh push action simpl1assets create "$asset" -p youreosaccount

3. Зайдите на alpha.simplemarket.io и подключите Scatter, чтобы увидеть свои активы, а также продавать или покупать активы, созданные другими людьми.

Kolobok! Простая игра с использованием Simple Assets.

Мы развернули в Jungle Testnet простую игру, которая демонстрирует все основные функциональные возможности Simple Assets.

http://jungle.kolobok.cryptolions.io

Управление Simple Assets

В Mainnet CryptoLions планирует курировать Simple Assets посредством запуска первоначального тестирования, и создания DAC, который будет контролировать смарт-контракт и принимать решения о дальнейшей разработке. Другие блокчейны также могут использовать Simple Assets в соответствии со своими собственными стандартами управления. Абсолютно бесплатно и с открытым исходным кодом.

Если Simple Assets создаст пользовательскую базу, одной из вероятных дополнительных функций будет создание и развертывание inter-blockchain communication для активов.

Сравнение Simple Assets и dGoods v0.1

Мы довольно глубоко заинтересовались Simple Assets, когда узнали, что Mythical Games разрабатывает dGoods. Мы считаем, что они станут основными игроками на игровом рынке EOS, мы высоко ценим их работу и их мнение. На прошлой неделе они анонсировали раннюю версию их стандарта: Digital Goods Token Spec v0.1 и просили отзывы от сообщества.

Важное сходство между dGoods и Simple Assets — это общий философский подход и цель. Оба стремятся быть полностью свободными и открытыми стандартами для цифровых активов на EOS.

Основные различия обсуждаются здесь:

Closing

Пожалуйста, дайте нам знать, что вы об этом думаете, присоединившись к нашему каналу Telegram.

https://simpleassets.io/

🦁🦁🦁

CryptoLions — блок продюсер EOS, базирующийся в Украине. Мы стремимся сделать EOS более ценным, создавая проекты, улучшающие экосистему, устанавливая стандарты прозрачности и подотчетности и популяризируя EOS во всем мире.

website: http://cryptolions.io/
github: https://github.com/CryptoLions
telegram: https://t.me/CryptoLions_io
steemit: https://steemit.com/@cryptolions
twitter: https://twitter.com/EOS_CryptoLions
medium: https://medium.com/@cryptolions/
youtube: https://www.youtube.com/channel/UCB7F-KO0mmZ1yVBCq0_1gtA

Russian/Ukrainian:
steemit: https://steemit.com/@cryptolions-ua
youtube: https://www.youtube.com/channel/UCnVu47FZ09XX9EvrqqgS6uQ
twitter: https://twitter.com/EOSnews_ru

--

--