Все говорят о Абстракции счета (AA) и ее потенциале изменить пользовательский опыт в пространстве блокчейна. Однако основное недопонимание об АА заключается в том, что она выходит за рамки простого абстрагирования газовых сборов или возможности пакетных транзакций. Как? Через программные системы управления ключами.
Эти системы могут обеспечивать аппаратный уровень безопасности для повседневных устройств и интегрировать методы аутентификации Web2 в среды Web3, позволяя нам выйти за рамки традиционных 12-словных ключевых фраз. Сегодня я расскажу о различных системах управления ключами, которыми могут воспользоваться разработчики, и конкретных случаях использования, где они наиболее полезны.
Без абстракции учетной записи (AA) большинство существующих решений полагается на многопартийные вычисления (MPC) для распределения ключей на несколько частей и создания порога для осуществления транзакций. Эти решения часто утверждают, что они самостоятельно кастодиальные. Однако это не совсем точно. Например, Binance хранит одну часть ключа, действуя как кастодиальный агент в случае потери пользователем своих устройств. Эта настройка означает, что, несмотря на заявления, пользователи действительно не контролируют свои ключи, и по-прежнему есть зависимость от централизованной сущности для восстановления ключа.

Кроме того, если какой-либо ключевой шар будет утекать, нет способа отозвать ключ от основного аккаунта. Отзыв невозможен, потому что у внешних управляемых аккаунтов (EOA) нет поддержки поворота ключа, что означает, что утекшие ключи всегда будут частью аккаунта. Это представляет существенный риск безопасности, поскольку компрометированные ключи не могут быть заменены или удалены, что оставляет аккаунт уязвимым на неопределенный срок.
Если вы хотите узнать больше о том, как AA открывает путь для программных счетов и поворота ключа, вы можетепроверьте мою статью.
С AA средства хранятся в смарт-контрактах, а владение учетной записью определяется этими смарт-контрактами. Учетные записи, совместимые с EIP-4337, имеют две части в своих транзакциях.
Итак, когда речь идет о традиционных учетных записях (EOA), аутентификация равна авторизации. С AA авторизация программабельна, поэтому разработчики могут определить схему контроля доступа на основе ролей и обеспечить принцип наименьших привилегий.
В крипто-пространстве существует множество методов аутентификации (т. е. систем управления ключами), которые могут обеспечить схемы контроля доступа на основе ролей, и использование только одного ключа не может решить все проблемы, связанные с управлением ключами. Самые важные аспекты систем управления ключами: где хранится ключ и кто его аутентифицирует.
Использование secp256k1 имеет несколько преимуществ: это не влечет за собой дополнительных затрат на газ, дешево и легко проверяется на цепочке блоков через предварительную компиляцию ecrecover. Он также является самоуправляемым, потому что только пользователь может получить доступ к ключу.
Однако есть некоторые недостатки:

Разработчики создали специальный микропроцессор, называемый Secure Enclave, чтобы управлять этими чувствительными операциями отдельно. Secure Enclave работает подобно аппаратному кошельку: он функционирует независимо, безопасно обрабатывает чувствительные данные, и даже владелец устройства не может получить к ним доступ. К счастью, Secure Enclave поддерживает криптографические операции, такие как создание приватных ключей и подписывание сообщений с их помощью. К сожалению, Secure Enclave не поддерживает кривую, которую поддерживает Ethereum (secp256k1), вместо этого он поддерживает кривую p256. Чтобы включить нативную проверку P256, мы (@getclaveКоманда @getclave предложилаRIP-7212и почти все крупные роллапы теперь поддерживают это.
И лучшая часть Secure Enclaves заключается в том, что мы можем создать закрытый ключ внутри Secure Enclaves только с биометрической аутентификацией, что обеспечивает простой процесс активации с лучшей доступной безопасностью на современных устройствах - на уровне аппаратного обеспечения. Но у него также есть некоторые недостатки:

Давайте рассмотрим, где они хранят ключи и как они достигают кворума для доступа к закрытому ключу. Большинство существующих протоколов используют три ключевых доли: одна доля хранится на устройстве пользователя, одна хранится на их сервере (или в сети MPC), и одна резервируется в качестве резервной копии. Некоторые приложения, такие как Google Drive, используют облачные решения для хранения этих ключевых долей.
Итак, пользователи делегируют управление своим кошельком другим сторонам с кворумом. MPC (Multi-Party Computation) мощен для делегирования ответственности за управление ключами разным сторонам, но у него также есть некоторые недостатки:
Большинство решений MPC требуют централизованной стороны, и, иногда, то, что они называют децентрализованным, на самом деле не является таковым. MPC с AA мощен, потому что возможно вращение ключа, но многие решения MPC включают некоторые функции для gatekeeping. Также во многих случаях предыдущие ключи могут по-прежнему использоваться даже после вращения, поэтому нужно доверять тому, что ключи действительно утилизированы. Некоторые решения MPC могут цензурировать пользователей, поэтому полагаться исключительно на MPC не всегда возможно.
Еще один серьезный недостаток SSS заключается в том, что он восстанавливает закрытый ключ, обычно в браузере. Это огромный риск безопасности, когда открытый ключ доступен на стороне клиента. TSS никогда не восстанавливает ключ и использует MPC для федерации подписи по ключевым фрагментам.

Используя TEE, мы можем создавать слои управления ключами, где разработчики могут использовать различные методы аутентификации, и TEE может их проверить. После проверки TEE подписывает сообщение с закрытым ключом, связанным с пользователем, и проверяет его в цепочке.
Основной приватный ключ, который управляет средствами пользователей, хранится внутри TEE и не может быть извлечен. Это угрожает децентрализации, потому что если сервис решит закрыться или цензурировать пользователей, децентрализованное приложение ничего не сможет сделать.
Облачные TEE выглядят многообещающе в теории, но в прошлом мы видели уязвимости, такие какsgx.failв облачных TEE. Однако преимущество TEE заключается в том, что даже если существует задняя дверь или уязвимость, злоумышленнику понадобится физический доступ к TEE, поэтому потребительское оборудование (Secure Enclave - Passkeys) настолько мощное, потому что ключ хранится внутри Secure Enclave пользователей, и только владелец может получить доступ к ключу, тогда как Cloud TEE хранят ключи в облаке, что делает их уязвимыми к атакам.
Не ваше безопасное убежище, не ваши монеты.
Как я уже упоминал, TEE имеют некоторые преимущества, такие как использование почти всех методов аутентификации без криптографических блокировщиков. Однако у них также есть некоторые недостатки:
Если поставщики услуг выключают сервер, средства пользователей замораживаются, и никто не может получить к ним доступ. Ключи хранятся внутри Cloud TEE, что означает, что они могут цензурировать пользователей. Полное доверие только TEE для управления ключами создает единую точку отказа.

В мире web2 ключи сеанса подобны временным паролям, используемым во время разговора между двумя устройствами (например, вашим компьютером и сервером). Они создаются в начале разговора, используются для обеспечения безопасности обменяемой информации и затем уничтожаются после окончания разговора. Таким образом, даже если хакер каким-то образом узнает этот пароль, он не сможет использовать его для прослушивания будущих разговоров, поскольку каждый раз создается новый, другой пароль (или ключ сеанса).
Как и в мире Web3, мы определяем ключи сеанса как фреймворк, который потенциально может изменить взаимодействие пользователей с dApps. Целью ключей сеанса является позволение пользователям устанавливать предварительные одобрения на определенное время в различных сценариях и совершать транзакции без подписи. Но как это работает?
Пользователи создают ключи с ограниченными правами, которые могут тратить активы только в соответствии с указаниями пользователя в течение ограниченного времени и могут быть отозваны в любой момент. После этого служба бэкэнда позволяет пользователям проводить транзакции, подписывая их от их имени. Такая настройка создает временное окно доверия между dApp и пользователями. Это намного лучше бесконечных разрешений, потому что разрешение, которое пользователи дают, относится только к определенным активам и определенному периоду времени. Даже если dApp взломан, пользователям не нужно беспокоиться о ключе сессии, созданном месяцы назад 🙂.

Методы аутентификации на основе защищенного хранилища (пароли) обеспечивают безопасность на аппаратном уровне; однако их возможность восстановления часто недостаточна для большинства пользователей. К счастью, AA позволяет разработчикам комбинировать различные методы подписи и использовать их в одном аккаунте. Добавив восстановительного подписчика в умный аккаунт, мы можем решить проблему восстановления, с которой сталкиваются пароли.
Есть несколько вариантов восстановления, таких как социальное восстановление, универсальное восстановление (основанное на электронной почте ZK) и восстановление на основе MPC. Однако, по моему мнению, для финтех-приложения, которое предназначено быть полностью самоуправляемым, социальное восстановление решает большинство проблем. В Clave мы создали модуль социального восстановления и работаем над универсальным восстановлением.
Этот подход максимизирует безопасность, что отлично подходит для финансовых приложений. Но у него есть важный недостаток: для каждой транзакции, которую хочет совершить пользователь, приложение требует биометрическую аутентификацию. Представьте, что вы хотите поделиться контентом в приложении социальных медиа, и приложение выдает экран биометрического подписания... Ужасно, верно?

Приложения вне финансовой сферы, такие как социальные приложения Fi и децентрализованные игры, нуждаются в более простом способе проведения транзакций, идеально - без необходимости подписывать каждую транзакцию пользователями. Как? Вот ответ:
Сегодня большинство пользователей даже не проверяют, что они подписывают при игре или взаимодействии с dApp. Это опасно, потому что злонамеренный пользовательский интерфейс может привести к потере всех активов пользователей.
Ключи сеанса являются лучшей альтернативой этому. Пользователи могут проверить, как долго сеанс будет активным и к каким активам сеанс может получить доступ, что снижает необходимость доверия к dApp. После истечения времени сеанса пользователи больше не должны беспокоиться о разрешениях = Больше не нужноrevoke.cashlike applications :)
Уже существует несколько приложений, которые используют эту архитектуру управления ключами.
Нам нужны стандарты (а не вратари), или по крайней мере лучший способ финансирования новых кошельков. В противном случае не будет широкого распространения умных кошельков, и существующие участники останутся принимающими решения, диктующими практику отрасли, даже если она не верна.
Кроме того, функция «гневного выхода» должна быть функцией по умолчанию, так как центральные участники почти во всех ключевых системах управления могут быть отключены. Пользователям должно быть проще менять подписывающих сторон или переключаться между смарт-контрактами, а самостоятельный хостинг должен быть вариантом по умолчанию для пользователей. Существует два стандарта модульных смарт-счетов: ERC-6900 и ERC-7579. Они оба пытаются достичь одной и той же цели — сделать умные аккаунты умнее.

Особая благодарностьДерек ,Конрад, иNoamдля обратной связи и комментариев!





