Ролевая модель¶
В блокчейн-платформе реализован механизм ограничения действий участников на основании ролевой модели, которая позволяет участникам платформы защититься от угроз следующих типов:
атаки недобросовестных майнеров на блокчейн-сеть;
несанкционированный выпуск токенов;
несанкционированный доступ к конфиденциальной информации;
иные противоправные действия злоумышленников.
Порядок выдачи и отзыва разрешений приведен в разделе Управление ролями участников.
Список ролей¶
В таблице ниже представлен список возможных ролей платформы:
Название роли |
Полномочия |
---|---|
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
Последовательность действий при обновлении списка разрешений приведена на схеме ниже.
При изменении списка разрешений платформа выполняет следующие проверки:
Отправитель не находится в blacklist.
У отправителя есть роль permissioner.
DueTimestamp (время действия роли) > Timestamp (текущее время).
Такая роль не активна (в случае добавления), либо активна (в случае удаления).