Skip to main content

Программа разрешений

Управление разрешениями на блокчейне (Скоро!)

SDK для Ephemeral Rollups

SDK для Private Ephemeral Rollups (PER)

Обзор

Приватные Эфемер Роллапы — это Эфемер Роллапы которые обеспечивают детализированный контроль доступа к аккаунтам с ограниченными правами в среде Среды доверенного исполнения (СДИ) с соблюдением требований комплаенса. Каждый аккаунт с разрешениями хранит список участников с конкретными флагами, определяющими, какие действия они могут выполнять. Ключевые концепции
  • Permission Account: PDA, который хранит правила контроля доступа для конкретного аккаунта
  • Members: Адреса, которым предоставлены определённые права через флаги
  • Flags: Битовые маски, определяющие, что может делать участник (управление, просмотр логов, балансов и т.д.)
  • Public Permissions: Если для участников установлено значение None, аккаунт с ограниченным доступом становится временно видимым
Флаги участников Флаги участников определяют детализированные права каждого участника. Флаги можно комбинировать с помощью побитового OR, чтобы предоставить несколько прав одновременно. Описание флагов:
  • AUTHORITY: Позволяет участнику обновлять и делегировать настройки разрешений, добавлять/удалять других участников и изменять их флаги
  • TX_LOGS: Позволяет участнику просматривать логи выполнения транзакций
  • TX_BALANCES: Позволяет участнику видеть изменения баланса аккаунта
  • TX_MESSAGE: Позволяет участнику просматривать данные сообщений транзакций
  • ACCOUNT_SIGNATURES: Позволяет участнику просматривать подписи аккаунтов
use ephemeral_rollups_sdk::access_control::structs::{
    Member,
    AUTHORITY_FLAG,
    TX_LOGS_FLAG,
    TX_BALANCES_FLAG,
    TX_MESSAGE_FLAG,
    ACCOUNT_SIGNATURES_FLAG,
};

// Set flags by combining them with bitwise OR
let flags = AUTHORITY_FLAG | TX_LOGS_FLAG;

// Create a member with combined flags
let mut member = Member {
    flags,
    pubkey: user_pubkey,
};

// Check if member has a specific flag using bitwise AND
let is_authority = (member.flags & AUTHORITY_FLAG) != 0;
let can_see_logs = (member.flags & TX_LOGS_FLAG) != 0;

// Use helper methods to set/remove flags
member.set_flags(TX_BALANCES_FLAG); // Add a flag
member.remove_flags(TX_LOGS_FLAG);  // Remove a flag

Жизненный цикл разрешений

Типичный жизненный цикл аккаунта с разрешениями требует взаимодействия с Permission Program от MagicBlock ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 и Delegation Program DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh:
1
Инициализируйте новый аккаунт с разрешениями с начальными участниками и их флагами.
2
Делегируйте разрешение в Приватном Эфемер Роллапе для обеспечения его применения и управления доступом в реальном времени.

These public validators are supported for development. Make sure to add the specific ER validator in your instruction when delegating:

  • Asia (devnet-as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • EU (devnet-eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • US (devnet-us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (tee.magicblock.app): FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
  • Local ER (localhost): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
3
Добавляйте, удаляйте или изменяйте разрешения участников по необходимости. Обновления можно выполнять в реальном времени на Приватном Эфемер Роллапе
4
Перед выполнением запросов проверьте целостность СДИ RPC и получите токен авторизации. Доступ к состоянию аккаунта или его изменение имеют только участники с соответствующими флагами.
5
Синхронизируйте окончательное состояние обратно на Solana и передайте аккаунт под контроль базового слоя.
6
Закройте аккаунт с разрешениями и верните его лампорты, когда он больше не нужен.

Операции с разрешениями

После того как вы создали программу, вы можете добавить хуки разрешений и делегирования для управления доступом к вашим аккаунтам. Например, см. Быстрый старт .Создайте новый аккаунт с разрешениями с начальными участниками и их флагами через Permission Program от MagicBlock ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1.
Сценарии использования:
  • Инициализация контроля доступа для нового делегированного аккаунта
  • Настройка участников с полномочиями и их разрешений
  • Определение, кто может просматривать детали транзакций
⬆️ Вернуться к началу

Рекомендации по использованию

  • Управление полномочиями (Authority Management): Всегда назначайте AUTHORITY_FLAG хотя бы одному доверенному участнику
  • Минимальные привилегии (Least Privilege): Предоставляйте каждому участнику только необходимые флаги
  • Обновления в реальном времени (Real-time Updates): Разрешения можно обновлять в реальном времени на Private Ephemeral Rollup без отмены делегирования, что позволяет динамически управлять доступом
  • Очистка (Cleanup): Отменяйте делегирование и закрывайте неиспользуемые аккаунты с разрешениями, чтобы освободить SOL
Соображения по безопасности
  • Проверка подписанта (Signer Validation): Только участники с AUTHORITY_FLAG или программа с аккаунтом с разрешениями могут авторизовать изменения
  • Публичные аккаунты (Public Accounts): Установка участников в None делает аккаунт публично видимым
  • Аудит доступа (Access Auditing): Используйте флаги участников для аудита и контроля доступа

Контроль доступа

Детализированный контроль доступа.

Конфиденциальность на блокчейне

Механизмы и концепции обеспечения конфиденциальности

Авторизация

Система авторизации

Система соответствия требованиям

Стандарты и руководства по соблюдению требований