Реализация Session Keys для упрощения подтверждений в мобильном криптоприложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация Session Keys для упрощения подтверждений в мобильном криптоприложении
Сложный
~3-5 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация Session Keys для упрощения подтверждений в мобильном криптоприложении

Каждую транзакцию подписывать основным ключом и биометрией — правильно с точки зрения безопасности, но невыносимо в играх, DeFi-сессиях, стриминге платежей. Session Keys решают это: временный ключ с ограниченными правами и TTL подписывает транзакции без подтверждения, пока не истечёт срок или лимит.

Архитектура: ERC-4337 + EIP-7715

Session Keys реализуются на уровне смарт-аккаунта (Account Abstraction). Мобильное приложение работает с userop вместо прямых транзакций. Стек:

  • permissionless.js или @zerodev/sdk для создания смарт-аккаунта
  • @zerodev/session-key для управления сессиями
  • Bundler (Pimlico, Stackup) для отправки UserOperation

Сессионный ключ — это ephemeral keypair (secp256k1), сгенерированный на устройстве. Приватная часть хранится в Keychain/KeyStore. Публичный ключ + политика разрешений (permissions) регистрируются в смарт-контракте через enableSessionKey UserOperation, подписанный основным ключом (один раз, с биометрией).

Политика разрешений

Сессионный ключ не всесилен — это его главное преимущество. Политика фиксирует:

const sessionKeyData = await kernelClient.createSessionKey({
  sessionKey: sessionKeyWalletClient,
  validAfter: Math.floor(Date.now() / 1000),
  validUntil: Math.floor(Date.now() / 1000) + 3600, // 1 час
  permissions: [
    {
      target: GAME_CONTRACT_ADDRESS,
      functionName: "playRound",
      valueLimit: parseEther("0.01"), // макс 0.01 ETH за транзакцию
    }
  ]
})

Контракт отклоняет любую UserOperation, выходящую за рамки политики. Даже если приватный ключ сессии скомпрометирован — злоумышленник не может вывести все средства.

Хранение и жизненный цикл на мобильном

Сессионный приватный ключ живёт в Keychain с kSecAttrAccessibleWhenUnlockedThisDeviceOnly — биометрия для него не нужна, потому что он и так ограничен политикой. TTL сессии отображается пользователю: «Сессия активна 45 мин из 60». Ручной отзыв — через revokeSessionKey UserOperation, подписанный основным ключом.

При закрытии приложения сессионный ключ в памяти обнуляется, но в Keychain остаётся до истечения TTL или явного отзыва.

Что нужно учесть

Bundler fees: UserOperation через Bundler стоит газ. Для сессий с частыми транзакциями используем Paymaster — смарт-контракт, оплачивающий газ за пользователя. Интеграция с Pimlico Verifying Paymaster или Biconomy — стандартная задача.

Нельзя создать сессионный ключ без подключённого интернета — нужно отправить enableSessionKey в сеть. Кэшируем sessionKeyData локально и позволяем переиспользовать до истечения TTL без повторного запроса к сети.

Сроки — 3–5 дней: ERC-4337 смарт-аккаунт (если нет), сессионный keypair, политика разрешений, интеграция с Bundler/Paymaster, UI управления сессией. Если смарт-аккаунт уже есть — 2–3 дня.