Passkeys - це безпечний та зручний підхід до аутентифікації, який також може бути використаний для створення та безпечного зберігання криптогаманців завдяки використанню еліптичної криптографії.
У цьому пості ми розглянемо, як працюють парольні ключі, дослідимо ризики використання парольних ключів для криптовалютних гаманців і дослідимо, як абстракція облікового запису дозволяє використовувати парольні ключі в поєднанні з розумними контрактами.
Це дозволяє користувачам легко увійти та взаємодіяти з додатками у авторизованому режимі, не зберігаючи чутливі облікові дані; забезпечуючи безшовний досвід та додаткову безпеку проти порушень даних та типових векторів атак, таких як фішинг.
На більшості пристроїв, таких як iPhone, паролі зберігаються у спеціалізованому апаратному забезпеченні, яке називається Безпечне сховище; Спеціальне ізольоване середовище, призначене для захисту конфіденційних даних, навіть якщо основний процесор скомпрометовано.
Для підписання транзакції за допомогою приватного ключа парольного ключа транзакція надсилається на безпечний апаратний засіб, де вона підписується, а отриманий підпис потім виводиться. Протягом цього процесу власник або розробник додатків ніколи не мають доступу до приватного ключа; вони отримують лише згенеровані підписи.
Це забезпечує покращену безпеку для користувача, оскільки приватний ключ зазвичай не завантажується в пам'ять додатка, що зменшує ризик вразливості перед потенційними атаками. Наприклад, на iPhone користувач навіть не може отримати доступ до значення ключа доступу у своїх налаштуваннях, оскільки ключ генерується та зберігається в спеціалізованому обладнанні, що не доступне інтерфейсу.
Однак, є одна важлива відмінність, яка ускладнює використання парольних ключів для облікових записів блокчейну; парольні ключі використовують іншу еліптичну криву, ніж облікові записи блокчейну.
У той час як Apple, Android і WebAuthn використовують криву secp256r1 (також відомий як P-256) для ключів доступу, блокчейн-акаунти використовують еліптичну криву secp256k1.
Це означає, що транзакції, підписані приватним ключем прохідного ключа, не розуміються (і, отже, відхиляються) блокчейнами, такими як Ethereum або Abstract. Типовою очікуваною умовою блокчейнів є те, що транзакція підписана ключовою парою, створеною на кривій secp256k1.
Оскільки звичайні (EOA) гаманці генеруються на кривій k1, тому необхідні смарт-контрактні гаманці, оскільки вони можуть містити власну логіку, яка перевіряє транзакції, підписані приватними ключами, згенерованими засобами доступу перед авторизацією виконання транзакції.
Варіація кривої k1 також не має певних функцій, таких як додаткові коефіцієнти, що робить secp256r1 трохи складнішим, що означає, що secp256k1 є більш обчислювально ефективним для генерації ключа, створення підпису та верифікації.
Хоча прямі вразливості не були виявлені, існують також теорії змови, згідно з якими Bitcoin вибрав використання кривої k1 замість більш добре прийнятої кривої r1, щоб уникнути будь-якої можливості таємного введення тилового входу, яке можливо було б секретно внесено урядовими агентствами, такими як Національне агентство з безпеки США, враховуючи їх участь у розробці криптографічних стандартів, рекомендованих NIST.
Відкриті бібліотеки, такі як Перевірник відкритого коду P256 від DaimoБули побудовані для перевірки підписів на кривій secp256r1 всередині розумних контрактів, написаних на Solidity.
На Ethereum це означає, що ви можете використовувати смарт-контракти, побудовані з Стандарт абстракції облікового запису ERC-4337для перевірки підпису r1 Операції користувача всерединіпідтвердити Операцію Користувачафункція гаманця розумного контракту.

На Абстракті, абстрагування місцевого облікового записудозволяє смарт-контрактним гаманцям надсилати транзакції зі значенням поля підпису, встановленим як повідомлення, підписане приватним ключем паспортного ключа. Якщо обліковий запис, який відправив транзакцію, є смарт-контрактом, який містить логіку для перевірки підписів r1 (у випадку,підтвердитиТранзакціюфункція), транзакція приймається.

Гаманці з розумним контрактом пропонують більшу гнучкість, ніж традиційні гаманці EOA (Externally Owned Accounts), і, оскільки вони можуть містити довільний код EVM, мають можливість перевіряти підписи (тобто авторизувати транзакції) від ключових пар, створених на еліптичній кривій r1.
RIP-7212 (Пропозиція про поліпшення Rollup) пропонує додавання попередньо скомпільованого розумного контракту до Ethereum L2 для більш ефективної перевірки підпису на кривій r1. Хоча це ще не включено в Ethereum, масштабовані рішення, сумісні з EVM, такі як Abstract, вже реалізували це і надають зниження витрат на газ у 100 разів для перевірки підпису r1.
Це свідомий вибір дизайну для уникнення фішингових атак, однак це становить серйозний недолік для користувачів, які цінують власну самостійність, оскільки ваш гаманець прив'язаний безпосередньо до одного додатка; означає:





