[RU] Протокол Gems (настраиваемые токены)

26.10.2020 19:20:33

Разработчикам приложений и игр необходим протокол для работы с собственными токенами, выпускаемые на проверяемом слое поверх VIZ.

Предлагаю рассмотреть протокол Gems как базовый механизм для токенов, как делимых (fungible), так и неделимых (not-fungible).

Gems — адаптивные токены на блокчейне VIZ

В прошлой публикации я затронул вопрос NFT на VIZ, после чего в публичном чате и в приватных были вопросы: «а как же обычные токены?». На самом деле базовые возможности не сильно отличаются для обоих видов токенов.

Базовые свойства Gems

  • Fungible — делимый ли токен (boolean);
  • Owner — аккаунт, провайдер токена (account);
  • Transferable — возможность передавать токен (boolean);
  • Trustline — необходимость оказать доверие провайдеру токена, чтобы владеть им (boolean);
  • Agreement — ссылка на соглашение по использованию токена (string);
  • Tradable — возможность открывать сделку для обмена токена на VIZ (boolean);
  • Limit transfer — возможность лимитировать передачу токена для отдельного аккаунта (boolean);
  • Limit trade — возможность лимитировать обмен токена (boolean);
  • Removable — возможность провайдеру токенов изымать их у текущего владельца, аналог удаления (boolean).

Fungible Gems — Свойства делимых токенов

  • Name — название токена (string);
  • Description — описание токена, назначение (string);
  • Icon — ссылка на иконку токена (string);
  • Precision — точность (количество знаков после запятой, минимум: 0, максимум: 8);
  • Max supply — максимальный объем, 0 — без ограничений (integer);
  • Issuable — возможность провайдеру выпускать актив (boolean);
  • Collateral — требование по обеспечению актива через залог VIZ комитету (boolean);
  • Collateral issuable — возможность выпускать актив любому участнику под залог VIZ комитету (boolean);
  • Collateral ratio — соотношение токена по обеспечению в процентах (integer).

Not-Fungible Gems — Свойства неделимых токенов NFT

  • Category — категория токена (string);
  • Name — название токена (string);
  • Icon — ссылка на иконку токена, опциональное (string);
  • Image — ссылка на изображение токена, опциональное (string);
  • Data location — ссылка на JSON параметры токена, опционально если провайдер хочет контролировать параметры актива централизованно (string);
  • Data — JSON параметры токена, необходим при отсутствии data location (array);
  • Durability — количество секунд действия токена, по умолчанию 0 — не разрушается (integer);
  • Limit — максимальное количество токенов данного типа, по умолчанию 0 (integer);
  • Count — количество выпущенных токенов данного типа, используется для нумерации каждого токена (integer);
  • Collateral — требование по обеспечению актива через залог VIZ комитету (boolean);
  • Collateral issuable — возможность выпускать актив любому участнику под залог VIZ комитету (boolean);
  • Collateral amount — количество VIZ необходимых для выпуска актива, число без точности (integer).

Операции для работы с токенами VIZ Gems

Протокол Gems (для минимизации будет использоваться название G) можно построить на custom операции, используя методы:

  • Create — создание актива с указанием необходимых параметров в ассоциативном массиве;
  • Issue — выпуск нового актива (с указанием названия актива, количества и получателя);
  • Trustline — акт доверия провайдеру с названием актива;
  • Transfer — передача актива другому аккаунту с указанием провайдера актива, наименования, количества (дополнительно категорию в случае передачи NFT Gems);
  • Trade — заявка на обмен конкретному аккаунту с указанием провайдера, наименование  актива, количество, цена в VIZ (отложенная операция, обработка необратимых блоков);
  • Cancel trade — отмена сделки (отложенная операция, обработка необратимых блоков, приоритет у transfer операций для учета совершенных сделок в том же блоке);
  • Transfer ownership — передача владения актива другому аккаунту, смена провайдера (заявка);
  • Accept ownership — получение под управление актив от другого аккаунта (подтверждение);
  • Remove — изъятие актива у аккаунта по названию актива, количеству и цели; 

Для того, чтобы была возможна торговля активами Оракулу необходимо обеспечить отложенную обработку методов trade и cancel trade после учета операций transfer. Это позволит исключить конфликтную ситуацию, когда актив приобретается в том же блоке, где содержится отмена сделки.

Оракулу для создания базы учета VIZ Gems необходимо будет обрабатывать операции custom (для внутренних методов) и transfer (для учета обмена актива на VIZ и выпуску актива с переводом залога VIZ комитету).

Залоговые актива — опциональны. Комитет в данном случае выступает в роли доверенного лица на случай прекращения хождения актива.

Буду рад комментариям и обсуждению по предложенному протоколу VIZ Gems. Запуск и обслуживание данного протокола даст возможность инфраструктурного роста для всей экосистемы проектов запускаемых на VIZ.


5
10 наград
20.062973 Ƶ
Отобразить форму комментирования
Комментарии

10.03.2021 09:33:12

Запишу пару идей для NFT:

  • свойство creator — создатель (провайдер) NFT токена. Owner идет именно как свойство владения;
  • свойство id для нумерации каждого экземпляра NFT токенов (одного типа)
  • свойство claiming public key — для создания оффлайн представления кода для того, чтобы забрать NFT (аналогично инвайтам);
  • операция claim — с подписью соответствующим приватным ключом строки (состоящей из строки creator-owner-category-name-id);
  • свойство can be replicated — можно ли задавать возможность репликации (производной копии);
  • свойство replicable — флаг который может выставить owner NFT;
  • свойство replica price — стоимость реплики (в VIZ);
  • свойство replica properties — свойства реплики (свободные параметры, обрабатываются провайдерами, например максимальная ширина и высота производной работы);
  • операция set replicalbe — с параметрами replicable=true/false, price=10.000 VIZ, properties={} (отложенная операция, доступна текущему owner);

Оракул смотрит за переводами transfer с мемо (G:replicate:creator-owner-category-name-id) проверяет необходимую сумму.

10.03.2021 09:33:54

...и выпускает непередаваемую реплику инициатору перевода.

24.05.2023 06:58:24

Идея из чата https://t.me/viz_dev/6648 - сделать аналог NFT, но чтобы сервис/выпускающий мог указать время, на которое выдается NFT, или мог вручную отозвать его. Дали медальку Госу, забрали через год :D

24.05.2023 07:06:39

Идея из чата: https://t.me/viz_dev/6648

Сделать NFT которые можно отзывать или ставить время экспирации (ачивка/статус на время).

24.05.2023 07:48:06

Идея из чата https://t.me/viz_dev/6648

Добавить NFT с экспирацией и возможностью ручного отзыва создателем.