Перейти к основному содержимому

Модель безопасности

Pali — некастодиальный кошелек. Он не раскрывает приватные ключи dapps. Dapps отправляют запросы внедренному провайдеру, Pali валидирует и маршрутизирует эти запросы, а пользователи подтверждают чувствительные действия в UI расширения.

Основные принципы

  • Подключения, ограниченные origin: подключения сохраняются отдельно для каждого хоста dapp.
  • Один активный аккаунт на dapp: подключенный сайт имеет один активный аккаунт за раз, хотя может быть подключено много сайтов.
  • Сериализованные подтверждения: блокирующие запросы, открывающие popups, координируются, чтобы пользователи не оказывались под несколькими конкурирующими подтверждениями.
  • Проверки семейства сетей: EVM-методы и UTXO-методы разделены. Вызовы не того семейства должны обрабатываться как восстанавливаемые ошибки dapp.
  • Явное подписание: транзакции, PSBTs, typed data, подписание сообщений, создание passkey, passkey executions, запросы на отслеживание активов и изменения цепи требуют корректного состояния кошелька и подтверждения пользователя.
  • Изоляция провайдера: Pali внедряет провайдеры в страницу верхнего уровня. Он не внедряет их в iframes.

Что получают dapps

Dapps получают публичные идентификаторы аккаунтов, состояние провайдера, подписи, хэши транзакций и явные результаты RPC. Они никогда не получают seed phrases, приватные ключи, приватный материал passkey или секреты authenticator.

Безопасность passkey

Pali smart accounts используют WebAuthn credentials. Pali хранит публичные метаданные и идентификаторы credentials; приватный ключевой материал остается внутри authenticator. Pali отклоняет cross-origin WebAuthn assertions и проверяет, что хэши действий passkey соответствуют подготовленному набору транзакций.

Безопасность smart-account module policy

Institutional smart-account module policy разделена на:

  • On-chain policy: mode, sponsor signer и sponsor URL.
  • Wallet metadata: отображаемый policy text и другой локальный wallet context.

Поле policyText показывается пользователям как контекст. Оно не является on-chain примитивом принудительного исполнения.