Парольные ключи - это безопасный и удобный способ аутентификации, который также можно использовать для создания и безопасного хранения криптокошельков благодаря использованию криптографии эллиптических кривых.
В этом посте мы рассмотрим, как работают парольные ключи, изучим риски использования парольных ключей для криптовалютных кошельков и рассмотрим, как абстракция учетной записи позволяет использовать парольные ключи в сочетании с смарт-контрактами.
Пасскейи - это простой и безопасный способ для пользователей войти в приложение, не требуя от них хранения чувствительных паролей или запоминания любых данных для входа. Вместо этого пользователи создают и получают доступ к учетным записям, используя знакомые методы, такие как биометрия, такие как Face ID или Touch ID.
Это позволяет пользователям легко входить и взаимодействовать с приложениями в авторизованном режиме, не храня чувствительные учетные данные; обеспечивая безупречный опыт и дополнительную защиту от утечек данных и распространенных векторов атак, таких как фишинг.
На большинстве устройств, таких как iPhone, парольные ключи хранятся внутри специализированного оборудования, называемого Безопасный контур; выделенная изолированная среда, разработанная для защиты конфиденциальных данных, даже если основной процессор скомпрометирован.
Passkeys используютсякриптография с открытым ключомдля генерации пары открытого и закрытого ключей на устройстве пользователя, состоящей из двух ключей:
Какблокчейн кошелькиКлючевое слово частного ключа может использоваться для подписи сообщений и транзакций, которые могут быть отправлены для внесения изменений состояния на блокчейне.
Для подписи транзакции с помощью закрытого ключа парольной фразы, транзакция отправляется в защищенное аппаратное устройство, где она подписывается, и полученная подпись затем выводится. Ни владелец, ни разработчик приложения никогда не имеют доступа к закрытому ключу; они только получают сгенерированные подписи.
Это обеспечивает улучшенную безопасность для пользователя, поскольку приватный ключ обычно не загружается в память приложения, что снижает риск подвергнуться потенциальным атакам. Например, на iPhone пользователь даже не может получить доступ к значению кодовой фразы в своих настройках, так как ключ генерируется и хранится в специализированном аппаратном обеспечении, к которому интерфейс не имеет доступа.
Парольные ключи и криптокошельки используют одну и ту же базовую технологию эллиптической кривой криптографии для генерации пар ключей. Разработчики приложений блокчейна могут использовать парольные ключи для создания безопасных кошельков в приложениях для пользователей с мощным пользовательским интерфейсом.
Однако есть одно важное отличие, которое вводит сложность при использовании паролей для учетных записей блокчейна; пароли используют другую эллиптическую кривую, чем учетные записи блокчейна.
В то время как Apple, Android и WebAuthn все используют кривую secp256r1 (также известную как P-256) для ключей доступа, учетные записи блокчейна используют эллиптическую кривую secp256k1.
Это означает, что транзакции, подписанные приватным ключом ключа доступа, не понимаются (и, следовательно, отклоняются) блокчейнами, такими как Ethereum или Abstract. По умолчанию блокчейны ожидают, что транзакция будет подписана ключевой парой, сгенерированной на кривой secp256k1.
Поскольку обычные (EOA) кошельки генерируются на кривой k1, поэтому требуются смарт-контрактные кошельки, так как они могут включать пользовательскую логику, которая проверяет транзакции, подписанные частными ключами, сгенерированными парольными ключами, перед авторизацией выполнения транзакции.
Биткойн был первым, кто принял кривую secp256k1 для криптографических операций, что установило стандарт для Ethereum и других цепей на основе EVM для использования вариации кривой k1 для учетных записей.
Вариант k1 кривой также лишен определенных особенностей, таких как дополнительные коэффициенты, которые делают secp256r1 немного более сложным, что означает, что secp256k1 более вычислительно эффективен для генерации ключей, создания подписей и верификации.
Хотя прямых уязвимостей не обнаружено, существуют также теории заговора, что Биткоин выбрал использовать кривую k1 вместо более широко принятой кривой r1, чтобы избежать возможности наличия тайного заднего хода, который мог бы быть введен правительственными агентствами, такими как НСА, учитывая их участие в разработке криптографических стандартов, одобренных НИСТ.
Кошельки смарт-контрактов (такие, как те, которые поддерживаются в Нативная абстракция учетной записи Abstract) может содержать произвольную логику для выполнения EVM; включая проверку подписи для сообщений, которые он получает, подписанных закрытым ключом, созданным на кривой r1.
Открытые библиотеки, такие как проверяющий код Daimo с открытым исходным кодом P256были построены для проверки подписей на кривой secp256r1 внутри смарт-контрактов, написанных на Solidity.
На Ethereum это означает, что вы можете использовать смарт-контракты, созданные с помощью стандарт ERC-4337 для абстракции учетной записидля проверки подписи r1 операции пользователя внутри validateUserOp
функция кошелька смарт-контракта.
На абстракции, абстрагирование учетной записипозволяет смарт-контрактным кошелькам отправлять транзакции с установленным полем подписи в виде сообщения, подписанного частным ключом ключа доступа. Если учетная запись, отправившая транзакцию, является смарт-контрактом, который включает логику для проверки подписей r1 (вvalidateTransaction
Если хеш выше цели (сложность сети), транзакция принимается.
Кошельки с умными контрактами используют код (в виде умного контракта) для управления и контроля своей функциональностью, что означает, что они могут иметь любые настраиваемые функции, включая модули восстановления, несколько утвержденных подписантов, лимиты трат, ключи сессии и многое другое.
Кошельки смарт-контрактов предлагают большую гибкость по сравнению с традиционными кошельками EOA (внешнеуправляемые счета) и поскольку они могут включать произвольный код EVM, они имеют возможность проверять подписи (т.е. авторизовать транзакции) от пар ключей, созданных на эллиптической кривой r1.
Поскольку проверка подписей на кривой r1 не является встроенной в блокчейны, такие как Ethereum или Abstract, выполнение этой проверки требует больших вычислительных затрат, что приводит к резкому увеличению стоимости газа для проверки подписей r1 по сравнению с подписями k1 (примерно в 100 раз дороже).
RIP-7212 (Rollup Improvement Proposal) предлагает добавить предварительно скомпилированный смарт-контракт в Ethereum L2s для более экономичной проверки подписи на кривой r1. Хотя это еще не включено в Ethereum, EVM-совместимые решения для масштабирования, такие как Abstract, уже реализовали это и обеспечивают 100-кратное сокращение расхода газа для проверки подписи r1.
Недостатком кошельков с кодом доступа является то, что они привязаны к одному домену. Например, если вы создадите кошелек на some-domain.com, ваш код доступа (а следовательно, ваш кошелек) сможет подключаться только к этому конкретному домену.
Это преднамеренный выбор дизайна для предотвращения фишинговых атак, однако это создает серьезный недостаток для пользователей, ценящих самостоятельное хранение, так как ваш кошелек привязан непосредственно к одному приложению; это означает:
Поэтому кошельки с ключом доступа наиболее подходят для небольших сумм денег или для привлечения начинающих пользователей к их первым криптовалютным опытам, пока они не станут более осведомленными о кошельках с собственным управлением.
Это зависит от того, как вы решите резервировать свой ключ. Существует несколько вариантов для резервного копирования ключа в облако (например, Apple Keychain), чтобы иметь возможность получить к нему доступ на других устройствах, даже если вы потеряете оригинальный.
Закрытый ключ не может быть прочитан на устройстве в любой момент, так как он находится в Secure Enclave. Однако, если у них есть доступ к вашим биометрическим данным, они могут выполнять операции, как если бы у них был контроль над вашим кодом доступа/кошельком.
Нет. Ваши биометрические данные никуда не отправляются; Они остаются на вашем устройстве. Ваши биометрические данные просто используются для «разблокировки» ключа доступа.
Парольные ключи - это безопасный и удобный способ аутентификации, который также можно использовать для создания и безопасного хранения криптокошельков благодаря использованию криптографии эллиптических кривых.
В этом посте мы рассмотрим, как работают парольные ключи, изучим риски использования парольных ключей для криптовалютных кошельков и рассмотрим, как абстракция учетной записи позволяет использовать парольные ключи в сочетании с смарт-контрактами.
Пасскейи - это простой и безопасный способ для пользователей войти в приложение, не требуя от них хранения чувствительных паролей или запоминания любых данных для входа. Вместо этого пользователи создают и получают доступ к учетным записям, используя знакомые методы, такие как биометрия, такие как Face ID или Touch ID.
Это позволяет пользователям легко входить и взаимодействовать с приложениями в авторизованном режиме, не храня чувствительные учетные данные; обеспечивая безупречный опыт и дополнительную защиту от утечек данных и распространенных векторов атак, таких как фишинг.
На большинстве устройств, таких как iPhone, парольные ключи хранятся внутри специализированного оборудования, называемого Безопасный контур; выделенная изолированная среда, разработанная для защиты конфиденциальных данных, даже если основной процессор скомпрометирован.
Passkeys используютсякриптография с открытым ключомдля генерации пары открытого и закрытого ключей на устройстве пользователя, состоящей из двух ключей:
Какблокчейн кошелькиКлючевое слово частного ключа может использоваться для подписи сообщений и транзакций, которые могут быть отправлены для внесения изменений состояния на блокчейне.
Для подписи транзакции с помощью закрытого ключа парольной фразы, транзакция отправляется в защищенное аппаратное устройство, где она подписывается, и полученная подпись затем выводится. Ни владелец, ни разработчик приложения никогда не имеют доступа к закрытому ключу; они только получают сгенерированные подписи.
Это обеспечивает улучшенную безопасность для пользователя, поскольку приватный ключ обычно не загружается в память приложения, что снижает риск подвергнуться потенциальным атакам. Например, на iPhone пользователь даже не может получить доступ к значению кодовой фразы в своих настройках, так как ключ генерируется и хранится в специализированном аппаратном обеспечении, к которому интерфейс не имеет доступа.
Парольные ключи и криптокошельки используют одну и ту же базовую технологию эллиптической кривой криптографии для генерации пар ключей. Разработчики приложений блокчейна могут использовать парольные ключи для создания безопасных кошельков в приложениях для пользователей с мощным пользовательским интерфейсом.
Однако есть одно важное отличие, которое вводит сложность при использовании паролей для учетных записей блокчейна; пароли используют другую эллиптическую кривую, чем учетные записи блокчейна.
В то время как Apple, Android и WebAuthn все используют кривую secp256r1 (также известную как P-256) для ключей доступа, учетные записи блокчейна используют эллиптическую кривую secp256k1.
Это означает, что транзакции, подписанные приватным ключом ключа доступа, не понимаются (и, следовательно, отклоняются) блокчейнами, такими как Ethereum или Abstract. По умолчанию блокчейны ожидают, что транзакция будет подписана ключевой парой, сгенерированной на кривой secp256k1.
Поскольку обычные (EOA) кошельки генерируются на кривой k1, поэтому требуются смарт-контрактные кошельки, так как они могут включать пользовательскую логику, которая проверяет транзакции, подписанные частными ключами, сгенерированными парольными ключами, перед авторизацией выполнения транзакции.
Биткойн был первым, кто принял кривую secp256k1 для криптографических операций, что установило стандарт для Ethereum и других цепей на основе EVM для использования вариации кривой k1 для учетных записей.
Вариант k1 кривой также лишен определенных особенностей, таких как дополнительные коэффициенты, которые делают secp256r1 немного более сложным, что означает, что secp256k1 более вычислительно эффективен для генерации ключей, создания подписей и верификации.
Хотя прямых уязвимостей не обнаружено, существуют также теории заговора, что Биткоин выбрал использовать кривую k1 вместо более широко принятой кривой r1, чтобы избежать возможности наличия тайного заднего хода, который мог бы быть введен правительственными агентствами, такими как НСА, учитывая их участие в разработке криптографических стандартов, одобренных НИСТ.
Кошельки смарт-контрактов (такие, как те, которые поддерживаются в Нативная абстракция учетной записи Abstract) может содержать произвольную логику для выполнения EVM; включая проверку подписи для сообщений, которые он получает, подписанных закрытым ключом, созданным на кривой r1.
Открытые библиотеки, такие как проверяющий код Daimo с открытым исходным кодом P256были построены для проверки подписей на кривой secp256r1 внутри смарт-контрактов, написанных на Solidity.
На Ethereum это означает, что вы можете использовать смарт-контракты, созданные с помощью стандарт ERC-4337 для абстракции учетной записидля проверки подписи r1 операции пользователя внутри validateUserOp
функция кошелька смарт-контракта.
На абстракции, абстрагирование учетной записипозволяет смарт-контрактным кошелькам отправлять транзакции с установленным полем подписи в виде сообщения, подписанного частным ключом ключа доступа. Если учетная запись, отправившая транзакцию, является смарт-контрактом, который включает логику для проверки подписей r1 (вvalidateTransaction
Если хеш выше цели (сложность сети), транзакция принимается.
Кошельки с умными контрактами используют код (в виде умного контракта) для управления и контроля своей функциональностью, что означает, что они могут иметь любые настраиваемые функции, включая модули восстановления, несколько утвержденных подписантов, лимиты трат, ключи сессии и многое другое.
Кошельки смарт-контрактов предлагают большую гибкость по сравнению с традиционными кошельками EOA (внешнеуправляемые счета) и поскольку они могут включать произвольный код EVM, они имеют возможность проверять подписи (т.е. авторизовать транзакции) от пар ключей, созданных на эллиптической кривой r1.
Поскольку проверка подписей на кривой r1 не является встроенной в блокчейны, такие как Ethereum или Abstract, выполнение этой проверки требует больших вычислительных затрат, что приводит к резкому увеличению стоимости газа для проверки подписей r1 по сравнению с подписями k1 (примерно в 100 раз дороже).
RIP-7212 (Rollup Improvement Proposal) предлагает добавить предварительно скомпилированный смарт-контракт в Ethereum L2s для более экономичной проверки подписи на кривой r1. Хотя это еще не включено в Ethereum, EVM-совместимые решения для масштабирования, такие как Abstract, уже реализовали это и обеспечивают 100-кратное сокращение расхода газа для проверки подписи r1.
Недостатком кошельков с кодом доступа является то, что они привязаны к одному домену. Например, если вы создадите кошелек на some-domain.com, ваш код доступа (а следовательно, ваш кошелек) сможет подключаться только к этому конкретному домену.
Это преднамеренный выбор дизайна для предотвращения фишинговых атак, однако это создает серьезный недостаток для пользователей, ценящих самостоятельное хранение, так как ваш кошелек привязан непосредственно к одному приложению; это означает:
Поэтому кошельки с ключом доступа наиболее подходят для небольших сумм денег или для привлечения начинающих пользователей к их первым криптовалютным опытам, пока они не станут более осведомленными о кошельках с собственным управлением.
Это зависит от того, как вы решите резервировать свой ключ. Существует несколько вариантов для резервного копирования ключа в облако (например, Apple Keychain), чтобы иметь возможность получить к нему доступ на других устройствах, даже если вы потеряете оригинальный.
Закрытый ключ не может быть прочитан на устройстве в любой момент, так как он находится в Secure Enclave. Однако, если у них есть доступ к вашим биометрическим данным, они могут выполнять операции, как если бы у них был контроль над вашим кодом доступа/кошельком.
Нет. Ваши биометрические данные никуда не отправляются; Они остаются на вашем устройстве. Ваши биометрические данные просто используются для «разблокировки» ключа доступа.