パスキーは、安全でユーザーフレンドリーな認証アプローチであり、楕円曲線暗号を使用しているため、暗号ウォレットを作成して安全に保管するためにも使用できます。
この投稿では、パスキーの動作方法、暗号通貨ウォレットでのパスキー使用のリスク、そしてスマートコントラクトと組み合わせてパスキーを使用するためのアカウント抽象化について説明します。
パスキーは、ユーザーが機密情報を保存する必要も、ログインの詳細を覚える必要もなく、アプリケーションにサインインするための簡単で安全な方法です。代わりに、ユーザーは顔認証(Face ID)や指紋認証(Touch ID)などのようななじみのある方法を使用してアカウントを作成およびアクセスします。
これにより、ユーザーは機密情報を保存せずに、許可された方法でアプリケーションに簡単にログインし、対話することができ、シームレスな体験とフィッシングなどの一般的な攻撃ベクトルに対する追加のセキュリティを提供します。
ほとんどのデバイス(iPhoneなど)では、パスキーは専用ハードウェア内に保存されています。セキュアエンクレーブ;メインプロセッサが侵害されても、機密データを保護するために設計された専用の孤立した環境。
パスキーは利用します公開鍵暗号ユーザーのデバイス上で、2つのキーで構成される公開・秘密鍵ペアを生成するために。
Like ブロックチェーンウォレット, パスキーの秘密鍵は、ブロックチェーン上で状態変更を行うために送信できるメッセージや取引に署名するために使用できます。
パスキーの秘密鍵で取引に署名するには、取引は安全なハードウェアに送信され、そこで署名され、その結果の署名が出力されます。このプロセス全体で、オーナーまたはアプリ開発者は秘密鍵にアクセスすることはありません。彼らは生成された署名のみを受け取ります。
これにより、通常、プライベートキーがアプリケーションのメモリに読み込まれないため、ユーザーのセキュリティが向上し、潜在的な攻撃にさらされるリスクが低減します。 例えば、iPhoneでは、ユーザーは設定内でパスキーの値にすらアクセスできません。キーは専用のハードウェアに生成および保存されるため、インターフェイスからアクセスできません。
パスキーと暗号ウォレットは、楕円曲線暗号の基礎技術を共有して公開鍵と秘密鍵のペアを生成します。ブロックチェーンアプリケーション開発者は、パスキーを利用して、強力なUXを持つユーザー向けの安全なアプリ内ウォレットを作成することができます。
ただし、ブロックチェーンアカウントにパスキーを使用する場合、重要な違いが1つあり、パスキーはブロックチェーンアカウントとは異なる楕円曲線を使用します。
Apple、Android、およびWebAuthnはすべて、パスワードキーにsecp256r1(またはP-256)曲線を使用していますが、ブロックチェーンアカウントはsecp256k1楕円曲線を使用しています。
これは、パスキーの秘密鍵によって署名されたトランザクションが、EthereumやAbstractなどのブロックチェーンによって理解されず(したがって拒否される)、ブロックチェーンのデフォルトの期待は、トランザクションがsecp256k1曲線上で生成されたキーペアによって署名されていることです。
通常の(EOA)ウォレットはk1曲線上で生成されるため、取引署名キーがパスキーによって生成されたプライベートキーによって署名された取引を検証するカスタムロジックを含むスマートコントラクトウォレットが必要です。その後、取引実行を承認します。
Bitcoinは、暗号操作にsecp256k1曲線を最初に採用したことで、Ethereumやその他のEVMベースのチェーンがアカウントにk1バリエーションの曲線を使用する標準を設定しました。
曲線のk1バリエーションには、secp256r1よりもやや複雑な追加係数などの特徴が欠けているため、secp256k1は鍵生成、署名作成、検証においてより計算効率が高いです。
直接の脆弱性は見つかっていませんが、ビットコインはk1曲線をより一般的なr1曲線の代わりに選んだことで、NSAなどの政府機関によって秘密裏に導入されたバックドアの可能性を回避するための陰謀論も存在しています。彼らはNISTで承認された暗号基準の開発に関与しているためです。
スマートコントラクトウォレット(例:サポートされているウォレット)Abstractのネイティブアカウント抽象化) EVMで実行するための任意のロジックを含めることができます。これには、r1曲線上で作成されたプライベートキーによって署名されたメッセージの署名検証も含まれます。
オープンソースライブラリのようにDaimoのオープンソースP256検証ツールSolidityで書かれたスマートコントラクト内のsecp256r1曲線上の署名を検証するために構築されました。
Ethereum上では、これはスマートコントラクトを使用することを意味します。ERC-4337アカウント抽象化標準ユーザー操作内のr1署名を検証するためにvalidateUserOp
スマートコントラクトウォレットの機能。
On Abstract, ネイティブアカウント抽象化スマートコントラクトウォレットが、署名フィールドをパスキーの秘密鍵によって署名されたメッセージとして設定してトランザクションを送信できるようにします。トランザクションを送信したアカウントがr1署名を検証するロジックを含むスマートコントラクトである場合、validateTransaction
function), トランザクションは受け入れられます。
スマートコントラクトウォレットは、機能を管理および制御するためにコード(スマートコントラクトの形式で)を使用するため、リカバリーモジュール、複数の承認済み署名者、支出制限、セッションキーなど、任意のカスタム機能を持つことができます。
スマートコントラクトウォレットは、従来のEOA(Externally Owned Accounts)ウォレットよりも柔軟性があり、任意のEVMコードを含めることができるため、r1楕円曲線で作成されたキーペアから署名を検証(つまり、トランザクションを承認)する権限を持っています。
r1カーブ上の署名の検証は、イーサリアムやアブストラクトのようなブロックチェーンには固有のものではないため、この検証を行うには計算量が膨大であり、k1署名と比較してr1署名の検証には大幅にガスコストが増加します(およそ100倍高い)。
RIP-7212(Rollup Improvement Proposal)は、Ethereum L2に事前コンパイルされたスマートコントラクトの追加を提案し、r1カーブでのガス効率的な署名検証を行います。これはまだEthereumに含まれていませんが、AbstractなどのEVM互換のスケーリングソリューションは、すでにこれを実装しており、r1署名検証において100倍のガス削減を提供しています。
パスキーウォレットのデメリットは、それらが単一のドメインに紐づいているという事実です。たとえば、some-domain.comでウォレットを作成した場合、あなたのパスキー(したがってあなたのウォレット)はその特定のドメインにのみ接続できます。
これはフィッシング攻撃を回避するための意図的な設計の選択肢ですが、セルフカストディを重視するユーザーにとっては重大な欠点です。なぜなら、ウォレットは1つのアプリケーションに直接結び付けられているためです。
これらの理由から、パスキーウォレットは少額のお金や初心者ユーザーを最初の暗号体験に乗せるために最も適しています。それらが自己保管ウォレットについてより知識を深めるまでの間。
これは、パスキーのバックアップ方法によって異なります。パスキーをクラウド(Apple Keychainなど)にバックアップしておくことで、元のパスキーを紛失しても他のデバイスでアクセスできるようにすることができます。
デバイス上ではセキュアエンクロージャにあるため、秘密鍵はいかなる時点でも読み取ることはできません。ただし、バイオメトリックデータにアクセスできる場合は、あたかもパスキー/ウォレットを制御しているかのように操作を行うことができます。
いいえ。お客様の生体認証データはどこにも送信されず、お客様のデバイスに保管されます。生体認証データは、単純にパスキーを「解除」するために使用されます。
パスキーは、安全でユーザーフレンドリーな認証アプローチであり、楕円曲線暗号を使用しているため、暗号ウォレットを作成して安全に保管するためにも使用できます。
この投稿では、パスキーの動作方法、暗号通貨ウォレットでのパスキー使用のリスク、そしてスマートコントラクトと組み合わせてパスキーを使用するためのアカウント抽象化について説明します。
パスキーは、ユーザーが機密情報を保存する必要も、ログインの詳細を覚える必要もなく、アプリケーションにサインインするための簡単で安全な方法です。代わりに、ユーザーは顔認証(Face ID)や指紋認証(Touch ID)などのようななじみのある方法を使用してアカウントを作成およびアクセスします。
これにより、ユーザーは機密情報を保存せずに、許可された方法でアプリケーションに簡単にログインし、対話することができ、シームレスな体験とフィッシングなどの一般的な攻撃ベクトルに対する追加のセキュリティを提供します。
ほとんどのデバイス(iPhoneなど)では、パスキーは専用ハードウェア内に保存されています。セキュアエンクレーブ;メインプロセッサが侵害されても、機密データを保護するために設計された専用の孤立した環境。
パスキーは利用します公開鍵暗号ユーザーのデバイス上で、2つのキーで構成される公開・秘密鍵ペアを生成するために。
Like ブロックチェーンウォレット, パスキーの秘密鍵は、ブロックチェーン上で状態変更を行うために送信できるメッセージや取引に署名するために使用できます。
パスキーの秘密鍵で取引に署名するには、取引は安全なハードウェアに送信され、そこで署名され、その結果の署名が出力されます。このプロセス全体で、オーナーまたはアプリ開発者は秘密鍵にアクセスすることはありません。彼らは生成された署名のみを受け取ります。
これにより、通常、プライベートキーがアプリケーションのメモリに読み込まれないため、ユーザーのセキュリティが向上し、潜在的な攻撃にさらされるリスクが低減します。 例えば、iPhoneでは、ユーザーは設定内でパスキーの値にすらアクセスできません。キーは専用のハードウェアに生成および保存されるため、インターフェイスからアクセスできません。
パスキーと暗号ウォレットは、楕円曲線暗号の基礎技術を共有して公開鍵と秘密鍵のペアを生成します。ブロックチェーンアプリケーション開発者は、パスキーを利用して、強力なUXを持つユーザー向けの安全なアプリ内ウォレットを作成することができます。
ただし、ブロックチェーンアカウントにパスキーを使用する場合、重要な違いが1つあり、パスキーはブロックチェーンアカウントとは異なる楕円曲線を使用します。
Apple、Android、およびWebAuthnはすべて、パスワードキーにsecp256r1(またはP-256)曲線を使用していますが、ブロックチェーンアカウントはsecp256k1楕円曲線を使用しています。
これは、パスキーの秘密鍵によって署名されたトランザクションが、EthereumやAbstractなどのブロックチェーンによって理解されず(したがって拒否される)、ブロックチェーンのデフォルトの期待は、トランザクションがsecp256k1曲線上で生成されたキーペアによって署名されていることです。
通常の(EOA)ウォレットはk1曲線上で生成されるため、取引署名キーがパスキーによって生成されたプライベートキーによって署名された取引を検証するカスタムロジックを含むスマートコントラクトウォレットが必要です。その後、取引実行を承認します。
Bitcoinは、暗号操作にsecp256k1曲線を最初に採用したことで、Ethereumやその他のEVMベースのチェーンがアカウントにk1バリエーションの曲線を使用する標準を設定しました。
曲線のk1バリエーションには、secp256r1よりもやや複雑な追加係数などの特徴が欠けているため、secp256k1は鍵生成、署名作成、検証においてより計算効率が高いです。
直接の脆弱性は見つかっていませんが、ビットコインはk1曲線をより一般的なr1曲線の代わりに選んだことで、NSAなどの政府機関によって秘密裏に導入されたバックドアの可能性を回避するための陰謀論も存在しています。彼らはNISTで承認された暗号基準の開発に関与しているためです。
スマートコントラクトウォレット(例:サポートされているウォレット)Abstractのネイティブアカウント抽象化) EVMで実行するための任意のロジックを含めることができます。これには、r1曲線上で作成されたプライベートキーによって署名されたメッセージの署名検証も含まれます。
オープンソースライブラリのようにDaimoのオープンソースP256検証ツールSolidityで書かれたスマートコントラクト内のsecp256r1曲線上の署名を検証するために構築されました。
Ethereum上では、これはスマートコントラクトを使用することを意味します。ERC-4337アカウント抽象化標準ユーザー操作内のr1署名を検証するためにvalidateUserOp
スマートコントラクトウォレットの機能。
On Abstract, ネイティブアカウント抽象化スマートコントラクトウォレットが、署名フィールドをパスキーの秘密鍵によって署名されたメッセージとして設定してトランザクションを送信できるようにします。トランザクションを送信したアカウントがr1署名を検証するロジックを含むスマートコントラクトである場合、validateTransaction
function), トランザクションは受け入れられます。
スマートコントラクトウォレットは、機能を管理および制御するためにコード(スマートコントラクトの形式で)を使用するため、リカバリーモジュール、複数の承認済み署名者、支出制限、セッションキーなど、任意のカスタム機能を持つことができます。
スマートコントラクトウォレットは、従来のEOA(Externally Owned Accounts)ウォレットよりも柔軟性があり、任意のEVMコードを含めることができるため、r1楕円曲線で作成されたキーペアから署名を検証(つまり、トランザクションを承認)する権限を持っています。
r1カーブ上の署名の検証は、イーサリアムやアブストラクトのようなブロックチェーンには固有のものではないため、この検証を行うには計算量が膨大であり、k1署名と比較してr1署名の検証には大幅にガスコストが増加します(およそ100倍高い)。
RIP-7212(Rollup Improvement Proposal)は、Ethereum L2に事前コンパイルされたスマートコントラクトの追加を提案し、r1カーブでのガス効率的な署名検証を行います。これはまだEthereumに含まれていませんが、AbstractなどのEVM互換のスケーリングソリューションは、すでにこれを実装しており、r1署名検証において100倍のガス削減を提供しています。
パスキーウォレットのデメリットは、それらが単一のドメインに紐づいているという事実です。たとえば、some-domain.comでウォレットを作成した場合、あなたのパスキー(したがってあなたのウォレット)はその特定のドメインにのみ接続できます。
これはフィッシング攻撃を回避するための意図的な設計の選択肢ですが、セルフカストディを重視するユーザーにとっては重大な欠点です。なぜなら、ウォレットは1つのアプリケーションに直接結び付けられているためです。
これらの理由から、パスキーウォレットは少額のお金や初心者ユーザーを最初の暗号体験に乗せるために最も適しています。それらが自己保管ウォレットについてより知識を深めるまでの間。
これは、パスキーのバックアップ方法によって異なります。パスキーをクラウド(Apple Keychainなど)にバックアップしておくことで、元のパスキーを紛失しても他のデバイスでアクセスできるようにすることができます。
デバイス上ではセキュアエンクロージャにあるため、秘密鍵はいかなる時点でも読み取ることはできません。ただし、バイオメトリックデータにアクセスできる場合は、あたかもパスキー/ウォレットを制御しているかのように操作を行うことができます。
いいえ。お客様の生体認証データはどこにも送信されず、お客様のデバイスに保管されます。生体認証データは、単純にパスキーを「解除」するために使用されます。