Смарт-аккаунты и валидаторы
Смарт-аккаунты Pali — это контрактные EVM-аккаунты, которыми могут управлять модули. Passkey — один из поддерживаемых способов управления смарт-аккаунтом. Вместо подписания каждого действия обычным приватным ключом EOA пользователь может одобрять действия через интерфейс passkey браузера или операционной системы.
В основе WebAuthn passkey лежат подписи P-256. Passkey-валидатор Pali устроен так, чтобы смарт-аккаунт мог проверять эти доказательства P-256. Поэтому биометрическое подтверждение или passkey платформы может авторизовать действие в сети, не раскрывая приватный ключ passkey кошельку Pali или dapp.
Зачем использовать смарт-аккаунт?
- Модульные способы одобрения повседневных действий.
- Управление через ECDSA-валидатор, контролируемый кошельком, если аккаунтом должен владеть обычный ключ кошелька.
- Политики совместного управления через составные валидаторы.
- Пакетное выполнение с одним одобрением пользователя.
- Восстановление через guardians после временной блокировки.
- Детерминированное создание аккаунтов, чтобы Pali мог реконструировать их записи.
Passkey, ECDSA и совместно управляемые аккаунты

Pali поддерживает следующие виды валидаторов:
- Passkey: браузер или операционная система запрашивает подтверждение WebAuthn.
- ECDSA: настроенные EVM-адреса владельцев одобряют действия аккаунта.
- SLH-DSA: локальный постквантовый подписант Pali одобряет действия с помощью зашифрованного состояния подписанта. Ограничения резервного копирования и счётчика подписей описаны в разделе Постквантовый подписант.
- Составной: дочерние валидаторы, например passkey или ECDSA, объединены с заданным порогом.
Валидаторы отвечают на вопрос «кто может одобрять действия этого аккаунта?». Полезно то, что ответ может измениться без смены аккаунта:
- Одно одобрение (1-of-N): требуется одобрение одного настроенного дочернего валидатора.
- Порог одобрений (t-of-N): требуется одобрение как минимум заданного числа дочерних валидаторов.
- Все одобрения (N-of-N): требуется одобрение всех настроенных дочерних валидаторов.
Pali собирает одобрения локально доступных встроенных дочерних валидаторов в заданном политикой порядке до достижения порога. Отказ в одобрении останавливает запрос; после отказа Pali не переключается незаметно на другого подписанта. Политика должна сохранять достаточно встроенных дочерних валидаторов, способных подписывать локально, для достижения своего порога. Совместимые пользовательские валидаторы могут быть необязательными дочерними валидаторами, но Pali не собирает для них внешние или пользовательские подписи и одобрения с других устройств. В этой версии вложенные составные политики не поддерживаются.
Конструктор составных политик требует как минимум двух установленных валидаторов. Пошаговая смена способа одобрения заменяет предыдущий валидатор. Текущий расширенный процесс Пользовательский валидатор позволяет сохранить дополнительные совместимые валидаторы, но требует правильных данных инициализации модуля; это не упрощённая настройка одобрений с нескольких устройств.
Смена валидатора не меняет адрес смарт-аккаунта, балансы или историю. Для доступа к локальному подписанту по-прежнему нужен его ключ или passkey. Смена политики не восстанавливает потерянное состояние подписанта и не координирует использование SLH-DSA между восстановленными устройствами.
Guardians — отдельное отложенное полномочие, а не повседневный способ одобрения. Достаточное число их одобрений может изменить контроль над аккаунтом. Выбирайте и защищайте guardians соответственно: задержка не делает ненадёжного guardian безопасным.
Pali может использовать общий профиль passkey кошелька или создать отдельные учётные данные passkey для аккаунта. Общие passkey удобны пользователям, которым нужен один passkey под контролем кошелька. Отдельные passkey помогают изолировать учётные данные для разных сервисов или политик.
Развёртывание
Пока Pali готовит создание аккаунта, смарт-аккаунт может существовать в виде контрфактического адреса. Pali выводит адрес из детерминированных входных данных фабрики, развёртывает аккаунт через фабрику Pali и сохраняет долговечные метаданные аккаунта локально.
Для детерминированного развёртывания аккаунт начинает работу с начальным валидатором под контролем кошелька. Если пользователь или dapp выбрал passkey или другой валидатор, Pali устанавливает его и удаляет начальный валидатор через выполнение смарт-аккаунта.
Поддержка сетей
Смарт-аккаунтам нужны фабрика Pali и контракты модулей по адресам, которые Pali использует для активной сети. В этой сборке Pali тестовая сеть zkTanenbaum настроена для создания смарт-аккаунтов. Поддержка основной сети zkSYS использует ту же модель после настройки адресов основной фабрики и модулей.
Другие совместимые EVM-сети могут использовать те же контракты. Если активная сеть поддерживает канонический механизм развёртывания CREATE2, Pali может развернуть недостающую инфраструктуру смарт-аккаунтов из кошелька: откройте настройки, перейдите в расширенные настройки и используйте кнопку развёртывания в разделе Настройка смарт-аккаунта. Passkey-валидаторам нужна поддержка проверки P-256 WebAuthn, которую многие современные EVM-среды предоставляют через прекомпилированный контракт P-256/passkey.
Ожидающая завершения настройка
При медленной настройке доступно действие Проверить статус. Выход со страницы или переключение сети не отменяет уже отправленную транзакцию. Вернитесь в исходную сеть и проверьте статус её настройки, прежде чем повторять развёртывание. Истечение времени ожидания или отсутствие ответа не доказывает, что ничего не было развёрнуто.
Восстановление

Если локальное состояние кошелька удалено или Pali установлен на новом устройстве, детерминированные смарт-аккаунты Pali можно реконструировать из метаданных кошелька и конфигурации сети. Аккаунтам с passkey-валидаторами по-прежнему нужен доступ к соответствующим учётным данным passkey для одобрения действий.
Одни учётные данные passkey могут управлять несколькими смарт-аккаунтами. Pali отделяет профиль учётных данных passkey от метаданных каждого развёрнутого смарт-аккаунта.
Восстановление через guardians
Для восстановления смарт-аккаунтов Pali использует guardians под самостоятельным контролем пользователя. Guardian — это EVM-адрес, которым пользователь управляет отдельно от активного валидатора; обычно это резервный EVM-кошелёк, импортированный аккаунт или аппаратный кошелёк. Однако в сети guardian может быть любым аккаунтом, способным доказать подпись, включая контрактный аккаунт. Пока аккаунт работает, пользователь может добавлять и удалять guardians, а также менять период ожидания восстановления на экране политики.
Модуль восстановления проверяет одобрения guardians стандартными способами проверки подписей: обычной ECDSA-подписью для обычных адресов или проверкой контрактной подписи ERC-1271, если адрес guardian сам является контрактом. Поэтому guardian может быть другим смарт-аккаунтом, в том числе со своей политикой подписания на основе составного, пользовательского или будущего постквантового валидатора. Путь восстановления наследует схему подписи, которую применяет аккаунт guardian, поэтому безопасность восстановления не ограничена классическими ECDSA-ключами.
Экраны guardians в Pali могут собирать одобрения от локальных guardians на основе ключей (аккаунтов кошелька, импортированных или аппаратных аккаунтов) и локальных смарт-аккаунтов guardians, для которых Pali может подписывать, включая смарт-аккаунты SLH-DSA. Смарт-аккаунт guardian уже должен быть развёрнут в сети, чтобы отвечать на проверки подписи ERC-1271. Внешний guardian, недоступный как локальный подписывающий аккаунт Pali, по-прежнему требует внешнего процесса восстановления для создания своего одобрения.
Восстановление через guardians не мгновенно. При его запуске создаётся новая цель восстановления, настроенному guardian предлагается подписать намерение восстановления и отправляется запрос с временной блокировкой. После окончания периода ожидания любой может завершить транзакцию восстановления. Затем пользователь сможет управлять аккаунтом с помощью заменяющего валидатора.
Подпись guardian связана с сетью, адресом аккаунта, модулем восстановления, солью восстановления, режимом выполнения и данными вызова восстановления. Pali использует новую соль для каждой попытки восстановления, а модуль допускает только одно активное восстановление на аккаунт.
Техническое примечание: executor восстановления через guardians хранит для каждого аккаунта набор guardians, порог, задержку, срок действия и ожидающее восстановление. Сейчас Pali предлагает простые сценарии guardians для понятного интерфейса, а модуль поддерживает пороговые политики, например 1-of-N или M-of-N.
Аккаунты, созданные через dapp
Dapp могут запросить смарт-аккаунт через wallet_prepareSmartAccount:
{
"label": "Trading desk",
"authenticator": {
"id": "p256-webauthn"
}
}
Dapp также могут запросить ECDSA-валидатор:
{
"label": "Trading desk",
"authenticator": {
"id": "ecdsa",
"config": {
"owners": ["0x..."],
"threshold": 1
}
}
}
Если запрошенный ECDSA-владелец не является локальным аккаунтом Pali, Pali показывает предупреждение и требует явного подтверждения перед продолжением.
Ссылки на стандарты
Смарт-аккаунты Pali основаны на открытых стандартах смарт-аккаунтов:
- ERC-4337 account abstraction для выполнения аккаунтов в стиле UserOperation.
- ERC-7579 modular smart accounts для модулей валидаторов и executors.
- ERC-1271 contract signature validation для подписей контрактных аккаунтов.
- WebAuthn Level 3 для одобрений через passkey.
Восстановление через guardians: по шагам
Восстановление локальных записей кошелька и смена контроля над аккаунтом — разные операции. Восстановление seed не обходит установленный валидатор. Guardians после задержки меняют способ одобрения того же смарт-аккаунта.
- Настройка: откройте настройки восстановления, пока текущий способ одобрения работает. Сначала зарегистрируйте аккаунт, если он ещё не развёрнут. Выберите отдельно контролируемого guardian и срок ожидания, затем подтвердите настройку on-chain. Обеспечьте средства у плательщика gas.
- Запуск: при потере доступа выберите новый способ одобрения, контроль над которым можете доказать. Настроенный guardian подписывает точное намерение восстановления. Отправка требует gas, но ещё не меняет контроль.
- Ожидание и завершение: прежний способ остаётся активным до успешного завершения восстановления. После задержки вернитесь к тому же аккаунту и сети. После задержки любой может отправить завершение именно того восстановления, которое уже одобрили guardians, до истечения его срока. Затем новый способ контролирует тот же аккаунт; адрес, средства и история сохраняются.
После завершения заменённый активный способ больше не авторизует этот аккаунт. Не удаляйте старые ключи или passkey, пока не убедитесь, что они не нужны другим аккаунтам и сетям. Если запрос истёк до завершения, нужна новая попытка.
Новые политики Pali предлагают ожидание 3 или 7 дней. 10 минут доступны только в известных testnet. Это варианты настройки Pali, а не обязательный минимум контракта. Существующие настройки on-chain остаются определяющими. Задержка отличается от последующего окна завершения.
Остановить неожиданное восстановление
Если вы ещё контролируете текущий способ одобрения, выберите Disable guardian recovery (отключить восстановление через guardians) в настройках восстановления. Проверьте аккаунт и сеть, подтвердите и оплатите gas. Подтверждённое удаление отменяет ожидающие восстановления, включая начатые вне этого кошелька, и удаляет этот путь. При необходимости настройте доверенных guardians заново.
Удаление должно подтвердиться до нежелательного завершения; оно не откатывает уже завершённое восстановление. Если результат неопределён, сначала проверьте статус on-chain. Ошибка, timeout или закрытие окна не отменяют отправленную транзакцию. Не отправляйте её повторно вслепую.
Необязательные уведомления по почте
Ссылка в настройках открывает Sysnode Account → Recovery alerts. Используйте подтверждённую почту, подключите развёрнутый смарт-аккаунт в поддерживаемой сети и подпишите регистрацию его текущим способом одобрения. Это необязательно и не связано с самой настройкой guardians: Sysnode не получает приватных ключей и не может перемещать средства или отменять восстановление.
Мониторинг работает и при закрытом Pali, но зависит от сервиса, его RPC и доставки почты. Уведомления могут задержаться или не прийти; недавние наблюдения цепочки могут измениться при реорганизации. Отсутствие письма не доказывает отсутствие восстановления. Проверяйте уведомления в доверенном кошельке для точного аккаунта и сети.