Ролевая модель

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

  • атаки недобросовестных майнеров на блокчейн-сеть;

  • несанкционированный выпуск токенов;

  • несанкционированный доступ к конфиденциальной информации;

  • иные противоправные действия злоумышленников.

Порядок выдачи и отзыва разрешений приведен в разделе Управление ролями участников.

Список ролей

В таблице ниже представлен список возможных ролей платформы:

Название роли

Полномочия

permissioner

Формирование транзакций для изменения списка разрешений

blacklister

Формирование транзакций для изменения black list

miner

Создание новых блоков

issuer

Формирование транзакций по выпуску, перевыпуску и сжиганию токенов

dex

Формирование exchange транзакции (deprecated)

contract_developer

Формирование транзакций на создание docker-контракта

connection-manager

Формирование транзакций на регистрацию/удаление ноды в блокчейн сети

banned

Запрещено отправлять какие-либо транзакции в блокчейн.
Группа всех участников с данной ролью образует blacklist

Модель разрешений

Модель разрешений описывает механизм применения различных типов разрешений при валидации операций в блокчейн-сети.

Подсказка

Нода с ролью permissioner может себе присвоить любую роль из существующих в системе.

Действие

Условие разрешения действия

Назначение или удаление роли

Наличие роли permissioner

Добавление или удаление из blacklist

Наличие роли blacklister

Регистрация нового узла сети

Наличие роли connection-manager

Формирование и выпуск блоков

Наличие роли miner

Операции с токенами (issue, reissue, burn)

Наличие роли issuer

Перевод токенов (transfer, masstransfer)

Отсуствие пользователя в blacklist

Лизинг токенов (lease, lease cancel)

Отсуствие пользователя в blacklist

Создание псевдонима (alias)

Отсуствие пользователя в blacklist

Создание docker-контракта

Наличие роли contract_developer

Исполнение docker-контракта

Отсуствие пользователя в blacklist

Обновление списка разрешений

Для изменения списка разрешений используется permission-транзакция.

JSON описание:

  • Transaction Type

  • Version

  • Sender PublicKey

  • Target Address or Alias

  • Timestamp

  • Operation Byte

  • Role Byte

  • Timestamp

  • Due Timestamp Defined Byte (0 - None, 1 - Defined)

  • Due Timestamp Bytes

Последовательность действий при обновлении списка разрешений приведена на схеме ниже.

../_images/acl-1.jpg

При изменении списка разрешений платформа выполняет следующие проверки:

  1. Отправитель не находится в blacklist.

  2. У отправителя есть роль permissioner.

  3. DueTimestamp (время действия роли) > Timestamp (текущее время).

  4. Такая роль не активна (в случае добавления), либо активна (в случае удаления).