プライベートキーは、イーサリアム上でトランザクションに署名することを可能にする中核であり、それを管理することは、読みやすい形式の「シードフレーズ」でさえ、悪夢でした。しかし、私たちの目標は、ブロックチェーンを高度なゲームに変えることではありませんでした。
認証されたユーザーの認証は安全な取引にとって重要です。インターネットセキュリティとUXの進化に伴い、パスワード認証から顔認識や指紋などの生体認証に移行しました。WebAuthnはこの進化の中で重要な開発です。この記事では、3つの用語について詳しく説明しています。
WebAuthn: Web authentication standard uses public key-based credentials, often created by external authenticators. It eliminates the need for passwords and enables secure user authentication.
セキュアエンクレーブ:コンピューティングデバイス内のハードウェアベースのセキュアエリアであり、セキュアエンクレーブは機密データを保護するよう設計されています。セキュアエンクレーブのバージョンは、iOS、Android、およびWindowsデバイスに見られます。WebAuthnを実装することでセキュアな認証子として機能できますが、SEに紐づけられた秘密鍵はしばしばデバイス間の課題を提起します。
パスキー:さまざまなデバイスおよびシステムプロバイダーによってカスタマイズされた、オペレーティングシステムレベルでのWebAuthnの実装。たとえば、AppleのPasskeyは、iCloudキーチェーンに保存されたキーを使用して、クロスデバイス同期を行います。ただし、このアプローチは通常、特定のプラットフォームまたはシステムにロックされています。
前述のように、webAuthnの実装は、日常のブロックチェーンユーザー向けの高レベルなフィッシング対策セキュリティとユーザーフレンドリーな体験を実現することを目指しています。ここでは、それらをブロックチェーンに統合するアイデアがあります。
キー・レイヤー:ユーザーは、顔認識や指紋認証などのシームレスな生体認証方式を使用して認証します。その裏側では、セキュアエンクレーブやiCloud、Google Cloudなどのクラウドサービスのようなハードウェアベースのセキュリティプロセッサがキー管理を担当しています。後でクロスデバイスやクロスプラットフォームの問題に取り組みます。
アカウントレイヤー:スマートコントラクトアカウント(SCA)は、任意の署名者(例:SEおよびパスキー)および閾値メカニズムを割り当てる機能を提供します。さらに、そのモジュラーデザインは柔軟性と拡張性を高めています。たとえば、SCAは、取引金額、時間、またはIPアドレスなどの要因に基づいて、サイニング要件を動的に適応させることができます。一方、従来の外部所有アカウント(EOA)は、MPCサービスで拡張することができ、その組み合わせは、SCAよりも相互運用性とコスト効率が向上しますが、SCAが提供するような高度な機能が欠けています、特にキーのローテーションに関して。
署名レイヤー:Ethereumはネイティブでk1曲線をサポートしていますが、WebAuthnの署名検証は、キー生成にr1曲線を使用するため、より高いコストがかかります。したがって、zkSyncなどの一部のLayer 2ソリューションは、ネイティブEIP-7212 r1曲線のプリコンパイルを計画しています。さらに、サードパーティーサービス、Solidity検証者、ゼロ知識(ZK)検証者、および分散型キーマネジメントシステムがあり、よりコスト効率の良い方法でr1曲線の署名を容易にします。
免責事項:
技術の進歩が市場での成功を保証するわけではありません。すべてのデバイスやプラットフォームがPasskeyを採用しているわけではありません。SCAを使用する方がEOAよりもコストがかかる場合もあります。提案された解決策は技術の進歩とともに進化します。
ブロックチェーンの世界では、ブロックチェーン資産の実際の管理はユーザーやウォレットプロバイダーの手にはありません。その代わりに、プライベートキーにあります。このキーはEthereumで取引を実行するプロセス全体において最も重要です。これをより良く理解するために、EOAを例に取ってみましょう。
キー生成:secp256k1楕円曲線から選択されたランダムな数がプライベートキーとして機能します。 このキーは、曲線上の事前定義された点で乗算され、公開キーが生成されます。 Ethereumアドレスは、ハッシュ化された公開キーの最後の20バイトから派生します。 'シードフレーズ'は通常、人間が読めるバックアップとして導入され、プライベートキーと公開キーの決定論的導出を可能にします。
取引の署名: nonce(連番), 金額, ガス価格, 受信者アドレスなどの詳細を含む取引は、秘密鍵を使用して署名されます。このプロセスは、楕円曲線暗号化を使用し、曲線としてsecp256k1を採用したECDSAを介して、値(r, s, v)から構成される署名を生成します。署名と元の取引はその後ネットワーク上にブロードキャストされます。
トランザクションの検証:トランザクションがEthereumノードに届くと、ノードのメモリプールで検証プロセスを経ます。署名者を検証するために、ノードは署名とハッシュ化されたトランザクションを使用して、送信者の公開鍵を導出し、導出されたアドレスを送信者のものと照合してトランザクションの信頼性を確認します。
上記のように、プライベートキーはチェーン上で重要なエンティティです。元々、External Owned Accounts (EOAs) として知られているEthereumアカウントは、単一のプライベートキーにのみ依存しており、これはキーを失うとアカウントへのアクセスを失うという重大なリスクを伴います。
多くの人々は、Account Abstraction(AA)がすべての悪いユーザーエクスペリエンスに関連する問題の解決策であると考えるかもしれませんが、私は正確にはそうではないと言います。 AAは、妥当性ルールをプログラム可能に変更することであり、スマートコントラクトアカウント(SCA)のプログラム可能性を実現します。 AAは強力であり、複数のトランザクションを並行して送信できるようにし(抽象Nonce)、ガスのスポンサーシップとERC20でのガスの支払いを可能にし(抽象ガス)、そしてこの記事のトピックに関連するものとして、固定された署名検証を破る(抽象ECDSA署名)。 EOAの代わりに、SCAは任意の署名者やマルチシグネチャ(マルチシグ)やスコープキー(セッションキー)などの署名メカニズムを割り当てることができます。 ただし、AAの柔軟性やアップグレード性の進歩にもかかわらず、トランザクション署名のためのキーへの基本的な依存は変わりません。
12ワードシードフレーズに変換された場合でも、プライベートキーの管理は依然として困難であり、紛失やフィッシング攻撃のリスクがある。ユーザーは、複雑な分散型ソリューションの層と中央集権型サービスの温かい抱擁の間を行き来する必要があり、どちらも理想的ではありません。
なぜ暗号資産の体験が悪いのか? その大部分は、鍵の管理が悪いからです。 それは常に体験、セキュリティ、および分散化に関するトレードオフを必要とします。 この記事では、鍵の管理のための潜在的な最適な解決策について探っています。
一つのサイズが全てに適合する解決策は決してない。キーを保存する最良の方法は、特定のユーザーのシナリオに合わせて、機関投資家または個人のようなユーザータイプ、資本金額、取引頻度、および相互作用タイプなどの要因に影響を受ける。
先に明確にするために、私はカタログに一般的な「自己、半、および完全な親権」の方法を使用することを避けます。私の考えでは、真のセルフカストディとは、他の当事者に頼らずに独立して取引に署名することを意味し、これは、ソリューションが従来の意味でのカストディアル(分散型ノードのTEEに保存されるなど)でなくても当てはまります。親権の種類に基づいてソリューションを単に「良い」または「悪い」に分類することは、過度に単純化されており、それらのさまざまな適合性を考慮していません。キー管理手法をより微妙に評価するには、次の 3 つの異なるレイヤーで分析することをお勧めします。
鍵を管理する責任を複数の当事者に分割するかどうか。
個人がしばしば鍵を管理する際に課題に直面することを考慮すると、鍵を保護する責任を分散させることが自然なリスク緩和戦略として浮かび上がります。このカテゴリには、複数の鍵を協力して署名する方法、つまりMulti-Signature(Multi-sig)システムで見られるような方法や、秘密分散スキーム(SSS)やMulti-Party Computation(MPC)を通じてプライベートキーを分割する方法などが含まれます。
マルチシグ:複数の完全な秘密鍵が必要です。トランザクション署名を生成するためには、この方法では、異なる署名者に関するオンチェーンの通信が必要で、取引手数料が高くなり、署名者の数がオンチェーンで可視化されるため、プライバシーに影響します。
SSS: 1つの場所で秘密鍵が生成され、ディーラーがこの鍵の断片を異なる当事者に配布します。すべての当事者は取引に署名するために完全な秘密鍵を再構築する必要があります。ただし、この一時的な再構築は脆弱性を引き起こす可能性があります。
MPC-TSS(Threshold Signature Scheme): MPCの実装として、複数の当事者がそれぞれの入力を共同でプライベートに保ちながら演算を行うための暗号アプローチです。各当事者は独立して秘密鍵シェアを作成し、これらの当事者が物理的に会う必要がないまま取引が署名されます。オフチェーンであるため手数料が低くなり、SSSのような単一障害点のリスクもありません。
鍵やシェアを保管し、セキュリティ、アクセシビリティ、コスト、分散化の要因に影響を受けます。
AWS、iCloudなどの中央集権的なクラウドサービス。頻繁な取引には便利ですが、検閲に対して脆弱です。
IPFSやFilecoinのような分散型ストレージ。
ローカルコンピュータ/モバイル:キーはブラウザの安全なストレージ内でローカルに保存されます。
ペーパーウォレット:秘密鍵やQRコードの物理的な印刷物。
Trusted Execution Environment (TEE): TEEは、主要プロセッサ内の安全な領域を提供し、主要なオペレーティングシステムから分離された機密データの実行または保存を行います。
セキュアエンクレーブ:モダンデバイス上のセキュアエンクレーブは、追加のセキュリティレイヤーを提供するために、メインプロセッサから分離されており、アプリケーションプロセッサのカーネルが侵害された場合でも、ユーザーの機密データを安全に保つよう設計されています。
ハードウェアウォレット:LedgerやTrezorのような物理デバイスで、特にプライベートキーを安全に保管するために設計されています。
ハードウェアセキュリティモジュール(HSM):HSMは、安全なキー管理と暗号操作のために設計された専用ハードウェアデバイスです。一般的に企業環境で使用され、高度なセキュリティ機能を提供します。
保存されたキーにアクセスするためにユーザーの身元を確認する方法
認証は、格納されたキーへのアクセスに関係します。これは、アクセスを試みている個人が実際にアクセスする権限を持っていることを確認することです。歴史を振り返ると、次のように分類できます。
Something You Know: パスワード、PINコード、セキュリティ質問の回答、または特定のパターンなど
Something You Have:スマートカード、ハードウェアトークン(時間ベースのワンタイムパスワード)、またはソーシャルアカウントの検証や携帯電話に送信されるSMSコードなどのデジタル要素を含めます。
Someone You Are:ユーザーの固有の身体的特徴を含む、指紋、顔認識(AppleのFace IDやWindows Helloのような)、音声認識、または虹彩/網膜スキャンなど
これらの中で、2FAとMFAは、SMSとプッシュ通知を組み合わせたような複数の要素を組み合わせた方法で、ユーザーアカウントに追加のセキュリティレイヤーを提供します。
MetaMaskは、ユーザーがパスワードを使用して、ユーザーのローカルブラウザのストレージに保存されているキーにアクセスできるようにします。
Trust Wallet を使用すると、ユーザーはパスワードまたは faceID を使用して、ユーザーのローカルブラウザーのストレージに保存されているキーにアクセスでき、ユーザーはクラウドサービスを選択して秘密キーをバックアップすることもできます。
Privyは、ユーザーが電子メールなどの複数のソーシャルログイン方法を使用し、SSSを使用して3つの共有に分割することができます。
デバイス共有:ブラウザーiFrame、モバイル-セキュアエンクレーブ。
Auth share: Stored by privy, link to privy id).
リカバリーシェア:ユーザーパスワードまたはPrivyによって暗号化されたものが、ハードウェアセキュリティモジュール(HSM)に保存されます。
Particleは、2つの共有を持つMPC-TSSを使用して、ユーザーがソーシャルログインを使用できるようにします。
デバイス共有:ブラウザiFrame
サーバーキーシェア:Particleのサーバー
これまでの解決策は、ユーザーにweb3を紹介する上で重要でした。しかし、それらには問題があります: パスワードを忘れたり、フィッシング攻撃の標的にされたりする可能性があります。2段階認証(2FA)はより安全ですが、複数の手順が煩雑になることがあります。さらに、鍵管理を第三者に任せることに不安を感じる人もいます。ユーザーはシステムの可用性とライブネスに依存しており、一部のサービスでは鍵にアクセスできないようにしています。
これにより、私たちは考えるようになりました。 より効果的な解決策があるかどうか — 信頼できる、高セキュリティ、シームレスなユーザーエクスペリエンスに最も近い解決策を提供するもの。 この検索は、最適なweb2メソッドに私たちを導きます。 数語はこのトピックに密接に関連しており、私が記事の冒頭で説明したように、WebAuthnは認証標準そのものであり、Secure EnclaveとPasskeyはこの標準に関連する実装またはコンポーネントです。
WebAuthn
WebAuthnは、ユーザーのWebベースのアプリケーションへの認証インターフェースを標準化します。これにより、パスワードの代わりに外部認証子を使用してインターネットアカウントにログインできます。認証子には、Roaming認証子(Yubikey、Titan key)やPlatform認証子(Appleデバイスの組み込みキーチェーン)などがあります。
FIDO(Fast IDentity Online)アライアンスは、WebAuthnの背後にある技術を初めて開発しました。2019年3月にW3Cによって公式にWeb標準と宣言され、Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safariなどの主要ブラウザと共にWebAuthnを採用し、その普及と利用性を大幅に向上させました。現在、多くの高度なデバイスでサポートされています。
webAuthnの利点:
強化されたセキュリティ:パスワードへの依存を排除し、フィッシング、ブルートフォース、およびリプレイ攻撃への脆弱性を低減します。
改善されたユーザーエクスペリエンス:よりシンプルで迅速なログインプロセスを提供し、しばしばタップまたは生体認証だけで済むことがあります。
プライバシー保護:認証中に共有される秘密情報はありません。個々のウェブサイトは個人を特定できる情報を受け取りません。
スケーラビリティと標準化:WebAuthnはウェブ標準として、異なるブラウザやプラットフォーム間での一貫性と相互運用性を確保します。
デバイスにバインドされたWebAuthn、例えば、セキュアエンクレーブ
最近のケースでは、ハードウェアプロセッサを認証者として使用することができます。例えば、AppleデバイスのSecure Enclave、AndroidのTrustzone、Google PixelのStrongboxなどがあります。
キー生成:公開鍵暗号を使用して、P-256 r1曲線を通常使用して、WebAuthn標準に従ってキーペアが生成されます。公開鍵はサービスに送信され、一方で、秘密鍵は決してセキュアエンクレーブを離れません。ユーザーはプレーンテキストの鍵を扱うことはないため、秘密鍵が危険にさらされることは困難です。
キーストレージ:プライベートキーは、デバイスのセキュアエンクレーブ内に安全に保存されています。これは、メインプロセッサから分離された強化されたサブシステムです。センシティブなデータを保護し、メインシステムが侵害された場合でも、生のキー素材にアクセスできないようにします。セキュアエンクレーブを侵害するためのハードルは非常に高く、Apple PayやFaceIDデータなど、最も重要なデータタイプがそこに保存されています。ここでは、SEがどのように機能するかの詳細な説明があります。
認証:ユーザーは、顔認識または指紋を使用してアクセスし、セキュアエンクレーブはサービスからのチャレンジに署名するためにプライベートキーを使用し、サービスは公開キーを使用して検証します。
デバイスベースのwebAuthnの利点:
ハードウェアレベルのセキュリティ:Secure Enclaveを使用し、独立したハードウェアベースのキーマネージャーを使用して、追加のセキュリティレイヤーを提供します。
フィッシング対策:潜在的に危険なデバイスやウェブサイトに情報を入力しないでください。
便利な体験: 彼らはより使いやすい体験を提供します。ユーザーはもはや異なるサイトの複雑なパスワードを覚える必要はありません。
デバイスベースのwebAuthnの欠点:
デバイスの制約: デバイスが紛失または損傷した場合、秘密鍵をエクスポートまたは復元することはできません。異なるデバイス間での操作は不可能です。
クラウドベースのWebAuthn、パスキー
クロスデバイス機能の課題に対処するために、テックジャイアントはクラウドベースのwebAuthn実装を導入しており、PasskeyはAppleのために広く知られています。
Appleのパスキーを例に取りましょう:
キーの生成:ユーザーのmacOS、iOS、またはiPadOSデバイスは、アカウントを作成する際に公開秘密鍵ペアを生成する認証者として機能します。その後、公開鍵をサーバーに送信し、プライベートキーはデバイスのiCloudキーチェーンに保存されます。iCloudキーチェーンデータはハードウェア固有の鍵ペアで暗号化され、ハードウェアセキュリティモジュール(HSM)に保存されます。このキーはAppleにはアクセスできません。
デバイス間の同期:このプロセスはiCloudにアクセスするのと同じになります。iCloudアカウントに認証し、SMSコードを受け取り、デバイスのパスコードを入力します。
クラウドベースのwebAuthnの利点:
クロスデバイス:パスキーは、定期的に使用されるすべてのデバイスから便利でアクセス可能にするよう設計されています。ただし、現在はAppleデバイスに限定されており、Androidについては、さまざまなバージョンとハードウェアのバリエーションがあるため、より難しい状況です。
フィッシング対策:上記と同じです。
便利な体験:前述のとおり。
クラウドベースのパスキーコンの欠点:
クラウドサービスに頼る: デバイスベースのwebAuthnと比較すると、クラウドベースのパスキーはセキュアエンクレイブのハードウェアからiCloudキーチェーンにセキュリティレベルを移行します。ある人々は、それがあなたのクラウドサービスに預託されていると主張するかもしれません。考慮すべき重要な点には次のものがあります: iCloudで使用されるユーザーのAppleIDアカウントが危険にさらされている場合; iCloudキーチェーンはデータを保護するためにエンドツーエンドの暗号化を採用していますが、操作上のエラーや脆弱性がリスクをもたらす可能性があります。
プラットフォームに制限: たとえば、AndroidデバイスでiCloudベースのパスキーを使用することは非常に困難です。さらに、従来の方法とは異なり、AppleとGoogleはデバイス固有のアサーションを送信しません。これは、現在、キーを生成したデバイスの種類を確認することが不可能であることを意味し、キーの信頼性と関連するメタデータについて疑問が生じています。
これまで、ハードウェアレベルのセキュリティを維持しながら、デバイス間およびプラットフォーム間の互換性に対処することは困難であることがわかります。同様に重要なのは、複数の管理者を追加してセキュリティを強化するためのソーシャルリカバリオプションです。この文脈において、ブロックチェーンは私たちに道を示すことができます。
Web2をWeb3に実装しようとする際の注目すべきギャップ: Web2では所有権の証明のみが必要ですが、Web3では取引の承認も同時に必要です。Passkeyでは、開発者は通常「サインイン」といった一般的なメッセージを制御できず、これにより潜在的なフロントエンドの操作、ユーザーが盲目的にメッセージに署名する可能性があります。これは一見些細な問題ですが、重要な懸念です。
スマートコントラクトアカウント(SCA)は、その性質上、スマートコントラクトそのものとして機能し、任意の署名者を割り当てることができるオンチェーンエンティティとして機能します。この柔軟性により、さまざまなデバイスやプラットフォーム(Android携帯電話、Macbook、iPhoneなど)を署名者として設定できます。さらに、Modular Smart Contract Accountを使用すると、新しい署名者と交換したり、署名のしきい値を3つ中2つからより複雑な構成に変更したりすることができます。
コンテキストに応じてセキュリティ要件を適応させるウォレットを想像してください:ユーザーが馴染みのあるローカルIPアドレス上にいる場合は単一サイン認証を許可し、未知のIPアドレスからの取引やある一定の価値を超える場合は複数の署名者を必要とします。モジュラリティとプログラム可能性により、そのような革新における唯一の限界は私たちの想像力です。多くのSCAサービスプロバイダーがこの領域を積極的に構築しており、Safe、Zerodev、Biconomy、Etherspots、Rhinestoneなどが含まれます。また、Stackup、Plimico、Alchemyなどのインフラストラクチャがこれを可能にしています。
以前の研究を確認してください。SCAに関するより包括的な文脈が提供されています。
EOAは、MPCサービスを通じて社会的な回復とデバイス/プラットフォームの互換性を実現することができます。EOAには固定の署名者がいますが、MPCプロバイダーはキーをシェアに分割してセキュリティと柔軟性を向上させることができます。この方法には、SCAのプログラム可能でアップグレード可能な機能が欠けており、タイムロック回復や簡単なキーの無効化などの機能がありません。しかし、これにもかかわらず、これはチェーンに依存せず、現在のSCAよりもコスト効果が高いため、優れたクロスチェーンの機能を提供しています。Privy、Particle Network、web3Auth、OKXウォレット、バイナンスウォレットなどの注目すべきMPCプロバイダーが含まれています。
コンテキストを理解するために一歩後ろに下がってみましょう:Ethereumでは、秘密鍵はk1曲線から選択されたランダムな数値であり、署名プロセスもこの曲線を利用しています。
ただし、WebAuthnの標準に従って生成されたキーペアは、r1曲線を使用します。したがって、Ethereumでr1署名を検証することは、k1署名よりも約3倍コストがかかります。これを解決するためのいくつかのアプローチがあります。
Doganへのクレジット、詳細な知識については、彼の研究をご確認ください。
プロトコルソリューション:
解決策:Claveチームによって提案されたsecp256r1曲線サポートのための事前コンパイル(EIP7212)
評価:この提案は、「secp256r1」楕円曲線でのメッセージハッシュ、署名のrおよびsのコンポーネント、および公開鍵のx、y座標の指定されたパラメータで署名検証を実行するプリコンパイル済みコントラクトを作成します。それにより、任意のEVMチェーン - 主にEthereumロールアップ - がこのプリコンパイル済みコントラクトを簡単に統合できるようになります。これまでに、プロトコルプリコンパイルはおそらく最もガス効率の良いソリューションとなるかもしれません。
実装: zkSync
サードパーティーサービス
ソリューション:ターンキー
評価:トルコTEEは、ユーザーのパスキーを介してプライベートキーにのみアクセスできることを確認し、ターンキー自体にはアクセスできないことを保証しますが、それでもサービスのリアルタイム性が必要です。
実装: ゴールドフィンチ
Solidity Verifier Solutions:
ソリューション:FCLのSolidity Verifier、FCLのSolidity Verifier With Precomputation、DaimoのP256Verifier
実装:Clave、Obviousウォレット
ゼロ知識(ZK)検証者:
解決策:Risc0 Bonsai、Axiomのhalo2-ecc
評価: このアプローチは、ゼロ知識証明を活用して、Ethereum Virtual Machine(EVM)外での計算を検証し、オンチェーンの計算コストを削減します。
実装:Bonfire Wallet(Risc0)、Know Nothing Labs(Axiom)
これらのソリューションのそれぞれは、イーサリアムのエコシステムにおいてより安価で実現可能なr1署名の検証を実現するための異なる手法を提供しており、ここではDoganによる評価が行われています。
*2023年12月現在、これらのソリューションのほとんどは初期段階にあり、いつでも変更または改善される可能性があります。これらの例は学習目的のみです。正確な情報については常に公式ウェブサイトを参照してください。
基本:
アカウント:SCA
Chain: ZkSync
取引プロセス:
キーの作成:ユーザーは指紋や顔認識などの生体認証を提供し、鍵ペアはセキュアエンクレーブ内で生成されます。これは決して外部に漏洩することはありません。
キーの署名:アプリは必要な取引メッセージを取得し、署名リクエストをセキュアエンクレイブに転送し、ユーザーはバイオ認証を提供して署名を承認し、セキュアエンクレイブはキーでメッセージに署名し、ブロックチェーンノードにブロードキャストされます。
追加機能:スマートコントラクトアカウントは多くの強力な機能を可能にします。まず、ガスのスポンサーシップ。ペイマスターのため、dAppや広告主など他の当事者がユーザーのガス手数料を支払うことができ、取引プロセスをスムーズにし、またユーザーにガスをEtherやネイティブトークンではなくERC20で支払うことができます。そしてセッションキーを使用することで、ユーザーは一定期間内で署名なし取引を行うことができます。
回復メカニズム:
回復プロセスは、zkSync上のClaveのスマートコントラクトによって行われ、ユーザーは48時間のタイムロック中に回復をキャンセルして、不正で悪意のある活動を防ぐことができます。
クラウドバックアップ:ユーザーがクラウドバックアップを選択すると、EOAが作成されます。 EOAの秘密鍵はiCloudまたはGoogle Driveのいずれかに保存され、ユーザーはこのクラウドに保存された秘密鍵を使用して異なるデバイスからアカウントにアクセスできます。ユーザーはいつでもこのバックアップセクションを削除または上書きすることができます。
ソーシャルリカバリ:ユーザーは、MのNガーディアンが回復の確認を行った場合、家族や友人のクラベアドレスをバックアップとして割り当てることができます。キャンセルされない場合、48時間のロックダウン後に回復が実行されます。
基本:
デモ:https://alpha.soulwallet.io/wallet
アカウント:ERC4337 SCA
Chain: Ethereum、Optimism、Arbitrum、そしてまもなくすべてのEVMレイヤー2
取引プロセス:
キーの作成:ユーザーは、指紋や顔認識などの生体認証を提供し、オペレーティングシステムがパスキーを生成し、クラウドサービスを使用してバックアップします。複数のパスキーをデバイス間およびプラットフォーム間で追加できます。
gardians(オプション)を追加:ユーザーは異なるEVM EOAアドレスをgardiansとして割り当て、アカウントの回復のための閾値を設定できます。
アカウント生成:カウンターファクチュアルデプロイメントを使用すると、ユーザーは最初の取引まで料金を支払う必要はありません
回復メカニズム:
パスキー:任意のデバイスを使用してウォレットにログインするための定義されたパスキーを使用してください。
ガーディアンの復旧: 割り当てられたガーディアンは、しきい値に従ってウォレットを回転させることができ、悪意のある行動を防ぐために後でタイムロックが設定されるかもしれません。
基本:
デモ: https://www.okx.com/help/what-is-an-aa-smart-contract-wallet
Chain: 30+ チェーン
Key: MPC-TSS、2/3
アカウント: 4337 SCA
取引プロセス:
キーの作成:ウォレットを作成することで、OKXは単一のプライベートキーを3つの別々の共有に変換します。共有1はOKXサーバーに保存され、共有2はユーザーのデバイスのローカルストレージに保存され、共有3はデバイスによって生成され、暗号化され、Google Cloud、iCloud、Huawei Cloudなどのデバイスの好きなクラウドサービスにバックアップできます。
キー署名:MPC-TSS技術を使用するOKXでは、取引を署名する際に、ユーザーは3つの秘密鍵シェアのうち2つを使用して完全な署名を取得できます。このプロセス中に、秘密鍵シェアは互いに接触しません。
リカバリーメカニズム:
2/3メカニズム: ユーザーがログアウトしたとき、デバイスが利用できないか、デバイスのキーのいずれかが危険にさらされた場合、新しいデバイスを使用してOKXウォレットにログインしてサーバーシェアを取得し、クラウドサービスシェアを取得し、これら2つのシェアを組み合わせてウォレットを回復することができます。OKXウォレットは新しい秘密シェアを生成します。
基本:
デモ: https://w3a.link/passkeysDemo
チェーン:すべてのEVMとSolana
鍵:MPC-TSS、通常2/3
アカウント:EOA、4337 SCA、または一般的なSCAなどのアカウント
取引プロセス:
キーの作成:ウォレットを作成することで、3つのキーシェアが生成されます。Share1はソーシャルログインシェアで、ユーザーは自分のメールアドレスを入力し、分散ネットワークのノードが各ユーザーのキーを保存します。Share2はユーザーのデバイスに保存されるデバイス共有です。Share3はローカルコンピューターで生成され、ユーザーの選好するクラウドサービスでバックアップされます。
鍵署名:Web3Auth MPC-TSSアーキテクチャは、閾値署名を使用しても、ユーザーの鍵が常に利用可能であることを保証し、鍵が再構築されたり、1か所に保存されたりすることはありません。
回復メカニズム:
しきい値回復ユーザーがログアウトしたとき、デバイスが利用できないか、デバイスのキーの1つが危険にさらされた場合、ソーシャルログイン方法を使用してWebAuthnアカウントにログインし、パスキークラウド共有を取得し、これら2つの共有を組み合わせてウォレットを回復できます。
基本情報:
デモ: https://lit-pkp-auth-demo.vercel.app/
Chain: EVMのほとんど、Cosmos、Solana。
アカウント:MPC-TSS、30のうち20がネットワークで、SCAとEOAの両方に採用されることができます。
取引プロセス:
キーの作成: ユーザーがウォレットを作成する場合、最初に認証方法(パスキー、oAuthソーシャルログイン対応)を選択し、その後リレーアにキーペアを作成して認証ロジックをスマートコントラクトに格納するためのリクエストを送信します。各キーペアは、分散キー生成(DKG)と呼ばれるプロセスを通じてLitノードによって共同で生成されます。分散型ネットワークとして動作し、TEE内で実行される30個のLitノードがあり、各ノードがキーの一部を保持していますが、プライベートキーは決して完全に存在しません。
キー署名:リクエストを受け取ると、Litノードは独自に割り当てられた認証方法に対してリクエストを検証または拒否し、MPC-TSS技術を使用して、キーシェアがしきい値(30のうち20)を超えるように収集され、署名を生成してクライアントによって結合され、リクエストを達成します。
回復メカニズム:
2/3メカニズム:スマートコントラクトに格納されている認証方法を使用してアカウントにアクセスし、Litノードがリクエストを検証し、ノードの2/3以上が確認した場合に進行します。
Layer2、Layer3、およびデータ可用性ソリューションへの熱意により、ブロックチェーンのパフォーマンスを向上させることに熱心です。また、リアルなセキュリティを追求し、透明性の性質とゼロ知識証明プライバシーを組み合わせています。すべての努力は1つの目標を目指しています:ブロックチェーンと暗号資産を自分の生活に頻繁に組み込んでいる実際のユーザーに対応できるよう準備すること。
最適なテクノロジーの夢に囚われるのは簡単ですが、我々は問わなければなりません:我々はどんな体験を目指しているのでしょうか?私たちは、暗号資産が恐ろしいテクノロジー用語ではなく直感に関連する世界を想像しています。ユーザーがためらいや手間を感じることなくウサギの穴に飛び込む世界です。
ユーザーRuiを思い浮かべてください:彼女は素晴らしいdAppを発見し、顔認識や指紋を使って簡単にサインアップし、バックアップやガーディアンを設定するオプションも用意しています。彼女がdAppを利用すると、ERC20の手数料が少額になるか、まったくかからないかで、スムーズに取引を実行することができます。その後、ウォレットの設定をカスタマイズし、自動取引のタイムロックを有効にしたり、バックアップ署名者として別のデバイスを追加したり、保護者リストを修正したりします。
私たちのビルダーがそれを実現します。WebAuthnとパスキーを統合することで、プライベートキーの管理を強化し、安全かつユーザーフレンドリーにします。キーの上に、エンティティとしてのSCAは個別のセキュリティと機能性の領域を開きます。そして、ガス手数料に関しては?Paymasterプロバイダーのおかげで、スワップのための「貯蔵庫」を作成したり、広告主がユーザーの手数料をカバーすることさえ可能になり、負担が軽減されます。特にEthereumメインネットおよびそれに相当するLayer2にとって、この進化の中心に位置しているのがERC4337です。これにより、大きなプロトコルの変更なしに、SCAトランザクションをEOAとは異なるメンプールに導入します。一方、一部のLayer2ネットワークはSCAをネイティブに採用し、シームレスにシステムに組み込んでいます。
すべてを簡単にするには、途方もない努力が必要です。SCAのデプロイ、検証、実行のコストを下げるなど、多くの課題が存在します。インターフェースを標準化してアカウントの相互運用性を高める。アカウントの状態をクロスチェーンで同期する。などなど。すべてのビルダーの功績により、私たちは日に日にパズルを解くことに近づいています。そして、私たちSevenXのような暗号ベンチャーは、優れた企業がビジョンを実現するのを支援する準備ができています。
Partager
プライベートキーは、イーサリアム上でトランザクションに署名することを可能にする中核であり、それを管理することは、読みやすい形式の「シードフレーズ」でさえ、悪夢でした。しかし、私たちの目標は、ブロックチェーンを高度なゲームに変えることではありませんでした。
認証されたユーザーの認証は安全な取引にとって重要です。インターネットセキュリティとUXの進化に伴い、パスワード認証から顔認識や指紋などの生体認証に移行しました。WebAuthnはこの進化の中で重要な開発です。この記事では、3つの用語について詳しく説明しています。
WebAuthn: Web authentication standard uses public key-based credentials, often created by external authenticators. It eliminates the need for passwords and enables secure user authentication.
セキュアエンクレーブ:コンピューティングデバイス内のハードウェアベースのセキュアエリアであり、セキュアエンクレーブは機密データを保護するよう設計されています。セキュアエンクレーブのバージョンは、iOS、Android、およびWindowsデバイスに見られます。WebAuthnを実装することでセキュアな認証子として機能できますが、SEに紐づけられた秘密鍵はしばしばデバイス間の課題を提起します。
パスキー:さまざまなデバイスおよびシステムプロバイダーによってカスタマイズされた、オペレーティングシステムレベルでのWebAuthnの実装。たとえば、AppleのPasskeyは、iCloudキーチェーンに保存されたキーを使用して、クロスデバイス同期を行います。ただし、このアプローチは通常、特定のプラットフォームまたはシステムにロックされています。
前述のように、webAuthnの実装は、日常のブロックチェーンユーザー向けの高レベルなフィッシング対策セキュリティとユーザーフレンドリーな体験を実現することを目指しています。ここでは、それらをブロックチェーンに統合するアイデアがあります。
キー・レイヤー:ユーザーは、顔認識や指紋認証などのシームレスな生体認証方式を使用して認証します。その裏側では、セキュアエンクレーブやiCloud、Google Cloudなどのクラウドサービスのようなハードウェアベースのセキュリティプロセッサがキー管理を担当しています。後でクロスデバイスやクロスプラットフォームの問題に取り組みます。
アカウントレイヤー:スマートコントラクトアカウント(SCA)は、任意の署名者(例:SEおよびパスキー)および閾値メカニズムを割り当てる機能を提供します。さらに、そのモジュラーデザインは柔軟性と拡張性を高めています。たとえば、SCAは、取引金額、時間、またはIPアドレスなどの要因に基づいて、サイニング要件を動的に適応させることができます。一方、従来の外部所有アカウント(EOA)は、MPCサービスで拡張することができ、その組み合わせは、SCAよりも相互運用性とコスト効率が向上しますが、SCAが提供するような高度な機能が欠けています、特にキーのローテーションに関して。
署名レイヤー:Ethereumはネイティブでk1曲線をサポートしていますが、WebAuthnの署名検証は、キー生成にr1曲線を使用するため、より高いコストがかかります。したがって、zkSyncなどの一部のLayer 2ソリューションは、ネイティブEIP-7212 r1曲線のプリコンパイルを計画しています。さらに、サードパーティーサービス、Solidity検証者、ゼロ知識(ZK)検証者、および分散型キーマネジメントシステムがあり、よりコスト効率の良い方法でr1曲線の署名を容易にします。
免責事項:
技術の進歩が市場での成功を保証するわけではありません。すべてのデバイスやプラットフォームがPasskeyを採用しているわけではありません。SCAを使用する方がEOAよりもコストがかかる場合もあります。提案された解決策は技術の進歩とともに進化します。
ブロックチェーンの世界では、ブロックチェーン資産の実際の管理はユーザーやウォレットプロバイダーの手にはありません。その代わりに、プライベートキーにあります。このキーはEthereumで取引を実行するプロセス全体において最も重要です。これをより良く理解するために、EOAを例に取ってみましょう。
キー生成:secp256k1楕円曲線から選択されたランダムな数がプライベートキーとして機能します。 このキーは、曲線上の事前定義された点で乗算され、公開キーが生成されます。 Ethereumアドレスは、ハッシュ化された公開キーの最後の20バイトから派生します。 'シードフレーズ'は通常、人間が読めるバックアップとして導入され、プライベートキーと公開キーの決定論的導出を可能にします。
取引の署名: nonce(連番), 金額, ガス価格, 受信者アドレスなどの詳細を含む取引は、秘密鍵を使用して署名されます。このプロセスは、楕円曲線暗号化を使用し、曲線としてsecp256k1を採用したECDSAを介して、値(r, s, v)から構成される署名を生成します。署名と元の取引はその後ネットワーク上にブロードキャストされます。
トランザクションの検証:トランザクションがEthereumノードに届くと、ノードのメモリプールで検証プロセスを経ます。署名者を検証するために、ノードは署名とハッシュ化されたトランザクションを使用して、送信者の公開鍵を導出し、導出されたアドレスを送信者のものと照合してトランザクションの信頼性を確認します。
上記のように、プライベートキーはチェーン上で重要なエンティティです。元々、External Owned Accounts (EOAs) として知られているEthereumアカウントは、単一のプライベートキーにのみ依存しており、これはキーを失うとアカウントへのアクセスを失うという重大なリスクを伴います。
多くの人々は、Account Abstraction(AA)がすべての悪いユーザーエクスペリエンスに関連する問題の解決策であると考えるかもしれませんが、私は正確にはそうではないと言います。 AAは、妥当性ルールをプログラム可能に変更することであり、スマートコントラクトアカウント(SCA)のプログラム可能性を実現します。 AAは強力であり、複数のトランザクションを並行して送信できるようにし(抽象Nonce)、ガスのスポンサーシップとERC20でのガスの支払いを可能にし(抽象ガス)、そしてこの記事のトピックに関連するものとして、固定された署名検証を破る(抽象ECDSA署名)。 EOAの代わりに、SCAは任意の署名者やマルチシグネチャ(マルチシグ)やスコープキー(セッションキー)などの署名メカニズムを割り当てることができます。 ただし、AAの柔軟性やアップグレード性の進歩にもかかわらず、トランザクション署名のためのキーへの基本的な依存は変わりません。
12ワードシードフレーズに変換された場合でも、プライベートキーの管理は依然として困難であり、紛失やフィッシング攻撃のリスクがある。ユーザーは、複雑な分散型ソリューションの層と中央集権型サービスの温かい抱擁の間を行き来する必要があり、どちらも理想的ではありません。
なぜ暗号資産の体験が悪いのか? その大部分は、鍵の管理が悪いからです。 それは常に体験、セキュリティ、および分散化に関するトレードオフを必要とします。 この記事では、鍵の管理のための潜在的な最適な解決策について探っています。
一つのサイズが全てに適合する解決策は決してない。キーを保存する最良の方法は、特定のユーザーのシナリオに合わせて、機関投資家または個人のようなユーザータイプ、資本金額、取引頻度、および相互作用タイプなどの要因に影響を受ける。
先に明確にするために、私はカタログに一般的な「自己、半、および完全な親権」の方法を使用することを避けます。私の考えでは、真のセルフカストディとは、他の当事者に頼らずに独立して取引に署名することを意味し、これは、ソリューションが従来の意味でのカストディアル(分散型ノードのTEEに保存されるなど)でなくても当てはまります。親権の種類に基づいてソリューションを単に「良い」または「悪い」に分類することは、過度に単純化されており、それらのさまざまな適合性を考慮していません。キー管理手法をより微妙に評価するには、次の 3 つの異なるレイヤーで分析することをお勧めします。
鍵を管理する責任を複数の当事者に分割するかどうか。
個人がしばしば鍵を管理する際に課題に直面することを考慮すると、鍵を保護する責任を分散させることが自然なリスク緩和戦略として浮かび上がります。このカテゴリには、複数の鍵を協力して署名する方法、つまりMulti-Signature(Multi-sig)システムで見られるような方法や、秘密分散スキーム(SSS)やMulti-Party Computation(MPC)を通じてプライベートキーを分割する方法などが含まれます。
マルチシグ:複数の完全な秘密鍵が必要です。トランザクション署名を生成するためには、この方法では、異なる署名者に関するオンチェーンの通信が必要で、取引手数料が高くなり、署名者の数がオンチェーンで可視化されるため、プライバシーに影響します。
SSS: 1つの場所で秘密鍵が生成され、ディーラーがこの鍵の断片を異なる当事者に配布します。すべての当事者は取引に署名するために完全な秘密鍵を再構築する必要があります。ただし、この一時的な再構築は脆弱性を引き起こす可能性があります。
MPC-TSS(Threshold Signature Scheme): MPCの実装として、複数の当事者がそれぞれの入力を共同でプライベートに保ちながら演算を行うための暗号アプローチです。各当事者は独立して秘密鍵シェアを作成し、これらの当事者が物理的に会う必要がないまま取引が署名されます。オフチェーンであるため手数料が低くなり、SSSのような単一障害点のリスクもありません。
鍵やシェアを保管し、セキュリティ、アクセシビリティ、コスト、分散化の要因に影響を受けます。
AWS、iCloudなどの中央集権的なクラウドサービス。頻繁な取引には便利ですが、検閲に対して脆弱です。
IPFSやFilecoinのような分散型ストレージ。
ローカルコンピュータ/モバイル:キーはブラウザの安全なストレージ内でローカルに保存されます。
ペーパーウォレット:秘密鍵やQRコードの物理的な印刷物。
Trusted Execution Environment (TEE): TEEは、主要プロセッサ内の安全な領域を提供し、主要なオペレーティングシステムから分離された機密データの実行または保存を行います。
セキュアエンクレーブ:モダンデバイス上のセキュアエンクレーブは、追加のセキュリティレイヤーを提供するために、メインプロセッサから分離されており、アプリケーションプロセッサのカーネルが侵害された場合でも、ユーザーの機密データを安全に保つよう設計されています。
ハードウェアウォレット:LedgerやTrezorのような物理デバイスで、特にプライベートキーを安全に保管するために設計されています。
ハードウェアセキュリティモジュール(HSM):HSMは、安全なキー管理と暗号操作のために設計された専用ハードウェアデバイスです。一般的に企業環境で使用され、高度なセキュリティ機能を提供します。
保存されたキーにアクセスするためにユーザーの身元を確認する方法
認証は、格納されたキーへのアクセスに関係します。これは、アクセスを試みている個人が実際にアクセスする権限を持っていることを確認することです。歴史を振り返ると、次のように分類できます。
Something You Know: パスワード、PINコード、セキュリティ質問の回答、または特定のパターンなど
Something You Have:スマートカード、ハードウェアトークン(時間ベースのワンタイムパスワード)、またはソーシャルアカウントの検証や携帯電話に送信されるSMSコードなどのデジタル要素を含めます。
Someone You Are:ユーザーの固有の身体的特徴を含む、指紋、顔認識(AppleのFace IDやWindows Helloのような)、音声認識、または虹彩/網膜スキャンなど
これらの中で、2FAとMFAは、SMSとプッシュ通知を組み合わせたような複数の要素を組み合わせた方法で、ユーザーアカウントに追加のセキュリティレイヤーを提供します。
MetaMaskは、ユーザーがパスワードを使用して、ユーザーのローカルブラウザのストレージに保存されているキーにアクセスできるようにします。
Trust Wallet を使用すると、ユーザーはパスワードまたは faceID を使用して、ユーザーのローカルブラウザーのストレージに保存されているキーにアクセスでき、ユーザーはクラウドサービスを選択して秘密キーをバックアップすることもできます。
Privyは、ユーザーが電子メールなどの複数のソーシャルログイン方法を使用し、SSSを使用して3つの共有に分割することができます。
デバイス共有:ブラウザーiFrame、モバイル-セキュアエンクレーブ。
Auth share: Stored by privy, link to privy id).
リカバリーシェア:ユーザーパスワードまたはPrivyによって暗号化されたものが、ハードウェアセキュリティモジュール(HSM)に保存されます。
Particleは、2つの共有を持つMPC-TSSを使用して、ユーザーがソーシャルログインを使用できるようにします。
デバイス共有:ブラウザiFrame
サーバーキーシェア:Particleのサーバー
これまでの解決策は、ユーザーにweb3を紹介する上で重要でした。しかし、それらには問題があります: パスワードを忘れたり、フィッシング攻撃の標的にされたりする可能性があります。2段階認証(2FA)はより安全ですが、複数の手順が煩雑になることがあります。さらに、鍵管理を第三者に任せることに不安を感じる人もいます。ユーザーはシステムの可用性とライブネスに依存しており、一部のサービスでは鍵にアクセスできないようにしています。
これにより、私たちは考えるようになりました。 より効果的な解決策があるかどうか — 信頼できる、高セキュリティ、シームレスなユーザーエクスペリエンスに最も近い解決策を提供するもの。 この検索は、最適なweb2メソッドに私たちを導きます。 数語はこのトピックに密接に関連しており、私が記事の冒頭で説明したように、WebAuthnは認証標準そのものであり、Secure EnclaveとPasskeyはこの標準に関連する実装またはコンポーネントです。
WebAuthn
WebAuthnは、ユーザーのWebベースのアプリケーションへの認証インターフェースを標準化します。これにより、パスワードの代わりに外部認証子を使用してインターネットアカウントにログインできます。認証子には、Roaming認証子(Yubikey、Titan key)やPlatform認証子(Appleデバイスの組み込みキーチェーン)などがあります。
FIDO(Fast IDentity Online)アライアンスは、WebAuthnの背後にある技術を初めて開発しました。2019年3月にW3Cによって公式にWeb標準と宣言され、Google Chrome、Mozilla Firefox、Microsoft Edge、Apple Safariなどの主要ブラウザと共にWebAuthnを採用し、その普及と利用性を大幅に向上させました。現在、多くの高度なデバイスでサポートされています。
webAuthnの利点:
強化されたセキュリティ:パスワードへの依存を排除し、フィッシング、ブルートフォース、およびリプレイ攻撃への脆弱性を低減します。
改善されたユーザーエクスペリエンス:よりシンプルで迅速なログインプロセスを提供し、しばしばタップまたは生体認証だけで済むことがあります。
プライバシー保護:認証中に共有される秘密情報はありません。個々のウェブサイトは個人を特定できる情報を受け取りません。
スケーラビリティと標準化:WebAuthnはウェブ標準として、異なるブラウザやプラットフォーム間での一貫性と相互運用性を確保します。
デバイスにバインドされたWebAuthn、例えば、セキュアエンクレーブ
最近のケースでは、ハードウェアプロセッサを認証者として使用することができます。例えば、AppleデバイスのSecure Enclave、AndroidのTrustzone、Google PixelのStrongboxなどがあります。
キー生成:公開鍵暗号を使用して、P-256 r1曲線を通常使用して、WebAuthn標準に従ってキーペアが生成されます。公開鍵はサービスに送信され、一方で、秘密鍵は決してセキュアエンクレーブを離れません。ユーザーはプレーンテキストの鍵を扱うことはないため、秘密鍵が危険にさらされることは困難です。
キーストレージ:プライベートキーは、デバイスのセキュアエンクレーブ内に安全に保存されています。これは、メインプロセッサから分離された強化されたサブシステムです。センシティブなデータを保護し、メインシステムが侵害された場合でも、生のキー素材にアクセスできないようにします。セキュアエンクレーブを侵害するためのハードルは非常に高く、Apple PayやFaceIDデータなど、最も重要なデータタイプがそこに保存されています。ここでは、SEがどのように機能するかの詳細な説明があります。
認証:ユーザーは、顔認識または指紋を使用してアクセスし、セキュアエンクレーブはサービスからのチャレンジに署名するためにプライベートキーを使用し、サービスは公開キーを使用して検証します。
デバイスベースのwebAuthnの利点:
ハードウェアレベルのセキュリティ:Secure Enclaveを使用し、独立したハードウェアベースのキーマネージャーを使用して、追加のセキュリティレイヤーを提供します。
フィッシング対策:潜在的に危険なデバイスやウェブサイトに情報を入力しないでください。
便利な体験: 彼らはより使いやすい体験を提供します。ユーザーはもはや異なるサイトの複雑なパスワードを覚える必要はありません。
デバイスベースのwebAuthnの欠点:
デバイスの制約: デバイスが紛失または損傷した場合、秘密鍵をエクスポートまたは復元することはできません。異なるデバイス間での操作は不可能です。
クラウドベースのWebAuthn、パスキー
クロスデバイス機能の課題に対処するために、テックジャイアントはクラウドベースのwebAuthn実装を導入しており、PasskeyはAppleのために広く知られています。
Appleのパスキーを例に取りましょう:
キーの生成:ユーザーのmacOS、iOS、またはiPadOSデバイスは、アカウントを作成する際に公開秘密鍵ペアを生成する認証者として機能します。その後、公開鍵をサーバーに送信し、プライベートキーはデバイスのiCloudキーチェーンに保存されます。iCloudキーチェーンデータはハードウェア固有の鍵ペアで暗号化され、ハードウェアセキュリティモジュール(HSM)に保存されます。このキーはAppleにはアクセスできません。
デバイス間の同期:このプロセスはiCloudにアクセスするのと同じになります。iCloudアカウントに認証し、SMSコードを受け取り、デバイスのパスコードを入力します。
クラウドベースのwebAuthnの利点:
クロスデバイス:パスキーは、定期的に使用されるすべてのデバイスから便利でアクセス可能にするよう設計されています。ただし、現在はAppleデバイスに限定されており、Androidについては、さまざまなバージョンとハードウェアのバリエーションがあるため、より難しい状況です。
フィッシング対策:上記と同じです。
便利な体験:前述のとおり。
クラウドベースのパスキーコンの欠点:
クラウドサービスに頼る: デバイスベースのwebAuthnと比較すると、クラウドベースのパスキーはセキュアエンクレイブのハードウェアからiCloudキーチェーンにセキュリティレベルを移行します。ある人々は、それがあなたのクラウドサービスに預託されていると主張するかもしれません。考慮すべき重要な点には次のものがあります: iCloudで使用されるユーザーのAppleIDアカウントが危険にさらされている場合; iCloudキーチェーンはデータを保護するためにエンドツーエンドの暗号化を採用していますが、操作上のエラーや脆弱性がリスクをもたらす可能性があります。
プラットフォームに制限: たとえば、AndroidデバイスでiCloudベースのパスキーを使用することは非常に困難です。さらに、従来の方法とは異なり、AppleとGoogleはデバイス固有のアサーションを送信しません。これは、現在、キーを生成したデバイスの種類を確認することが不可能であることを意味し、キーの信頼性と関連するメタデータについて疑問が生じています。
これまで、ハードウェアレベルのセキュリティを維持しながら、デバイス間およびプラットフォーム間の互換性に対処することは困難であることがわかります。同様に重要なのは、複数の管理者を追加してセキュリティを強化するためのソーシャルリカバリオプションです。この文脈において、ブロックチェーンは私たちに道を示すことができます。
Web2をWeb3に実装しようとする際の注目すべきギャップ: Web2では所有権の証明のみが必要ですが、Web3では取引の承認も同時に必要です。Passkeyでは、開発者は通常「サインイン」といった一般的なメッセージを制御できず、これにより潜在的なフロントエンドの操作、ユーザーが盲目的にメッセージに署名する可能性があります。これは一見些細な問題ですが、重要な懸念です。
スマートコントラクトアカウント(SCA)は、その性質上、スマートコントラクトそのものとして機能し、任意の署名者を割り当てることができるオンチェーンエンティティとして機能します。この柔軟性により、さまざまなデバイスやプラットフォーム(Android携帯電話、Macbook、iPhoneなど)を署名者として設定できます。さらに、Modular Smart Contract Accountを使用すると、新しい署名者と交換したり、署名のしきい値を3つ中2つからより複雑な構成に変更したりすることができます。
コンテキストに応じてセキュリティ要件を適応させるウォレットを想像してください:ユーザーが馴染みのあるローカルIPアドレス上にいる場合は単一サイン認証を許可し、未知のIPアドレスからの取引やある一定の価値を超える場合は複数の署名者を必要とします。モジュラリティとプログラム可能性により、そのような革新における唯一の限界は私たちの想像力です。多くのSCAサービスプロバイダーがこの領域を積極的に構築しており、Safe、Zerodev、Biconomy、Etherspots、Rhinestoneなどが含まれます。また、Stackup、Plimico、Alchemyなどのインフラストラクチャがこれを可能にしています。
以前の研究を確認してください。SCAに関するより包括的な文脈が提供されています。
EOAは、MPCサービスを通じて社会的な回復とデバイス/プラットフォームの互換性を実現することができます。EOAには固定の署名者がいますが、MPCプロバイダーはキーをシェアに分割してセキュリティと柔軟性を向上させることができます。この方法には、SCAのプログラム可能でアップグレード可能な機能が欠けており、タイムロック回復や簡単なキーの無効化などの機能がありません。しかし、これにもかかわらず、これはチェーンに依存せず、現在のSCAよりもコスト効果が高いため、優れたクロスチェーンの機能を提供しています。Privy、Particle Network、web3Auth、OKXウォレット、バイナンスウォレットなどの注目すべきMPCプロバイダーが含まれています。
コンテキストを理解するために一歩後ろに下がってみましょう:Ethereumでは、秘密鍵はk1曲線から選択されたランダムな数値であり、署名プロセスもこの曲線を利用しています。
ただし、WebAuthnの標準に従って生成されたキーペアは、r1曲線を使用します。したがって、Ethereumでr1署名を検証することは、k1署名よりも約3倍コストがかかります。これを解決するためのいくつかのアプローチがあります。
Doganへのクレジット、詳細な知識については、彼の研究をご確認ください。
プロトコルソリューション:
解決策:Claveチームによって提案されたsecp256r1曲線サポートのための事前コンパイル(EIP7212)
評価:この提案は、「secp256r1」楕円曲線でのメッセージハッシュ、署名のrおよびsのコンポーネント、および公開鍵のx、y座標の指定されたパラメータで署名検証を実行するプリコンパイル済みコントラクトを作成します。それにより、任意のEVMチェーン - 主にEthereumロールアップ - がこのプリコンパイル済みコントラクトを簡単に統合できるようになります。これまでに、プロトコルプリコンパイルはおそらく最もガス効率の良いソリューションとなるかもしれません。
実装: zkSync
サードパーティーサービス
ソリューション:ターンキー
評価:トルコTEEは、ユーザーのパスキーを介してプライベートキーにのみアクセスできることを確認し、ターンキー自体にはアクセスできないことを保証しますが、それでもサービスのリアルタイム性が必要です。
実装: ゴールドフィンチ
Solidity Verifier Solutions:
ソリューション:FCLのSolidity Verifier、FCLのSolidity Verifier With Precomputation、DaimoのP256Verifier
実装:Clave、Obviousウォレット
ゼロ知識(ZK)検証者:
解決策:Risc0 Bonsai、Axiomのhalo2-ecc
評価: このアプローチは、ゼロ知識証明を活用して、Ethereum Virtual Machine(EVM)外での計算を検証し、オンチェーンの計算コストを削減します。
実装:Bonfire Wallet(Risc0)、Know Nothing Labs(Axiom)
これらのソリューションのそれぞれは、イーサリアムのエコシステムにおいてより安価で実現可能なr1署名の検証を実現するための異なる手法を提供しており、ここではDoganによる評価が行われています。
*2023年12月現在、これらのソリューションのほとんどは初期段階にあり、いつでも変更または改善される可能性があります。これらの例は学習目的のみです。正確な情報については常に公式ウェブサイトを参照してください。
基本:
アカウント:SCA
Chain: ZkSync
取引プロセス:
キーの作成:ユーザーは指紋や顔認識などの生体認証を提供し、鍵ペアはセキュアエンクレーブ内で生成されます。これは決して外部に漏洩することはありません。
キーの署名:アプリは必要な取引メッセージを取得し、署名リクエストをセキュアエンクレイブに転送し、ユーザーはバイオ認証を提供して署名を承認し、セキュアエンクレイブはキーでメッセージに署名し、ブロックチェーンノードにブロードキャストされます。
追加機能:スマートコントラクトアカウントは多くの強力な機能を可能にします。まず、ガスのスポンサーシップ。ペイマスターのため、dAppや広告主など他の当事者がユーザーのガス手数料を支払うことができ、取引プロセスをスムーズにし、またユーザーにガスをEtherやネイティブトークンではなくERC20で支払うことができます。そしてセッションキーを使用することで、ユーザーは一定期間内で署名なし取引を行うことができます。
回復メカニズム:
回復プロセスは、zkSync上のClaveのスマートコントラクトによって行われ、ユーザーは48時間のタイムロック中に回復をキャンセルして、不正で悪意のある活動を防ぐことができます。
クラウドバックアップ:ユーザーがクラウドバックアップを選択すると、EOAが作成されます。 EOAの秘密鍵はiCloudまたはGoogle Driveのいずれかに保存され、ユーザーはこのクラウドに保存された秘密鍵を使用して異なるデバイスからアカウントにアクセスできます。ユーザーはいつでもこのバックアップセクションを削除または上書きすることができます。
ソーシャルリカバリ:ユーザーは、MのNガーディアンが回復の確認を行った場合、家族や友人のクラベアドレスをバックアップとして割り当てることができます。キャンセルされない場合、48時間のロックダウン後に回復が実行されます。
基本:
デモ:https://alpha.soulwallet.io/wallet
アカウント:ERC4337 SCA
Chain: Ethereum、Optimism、Arbitrum、そしてまもなくすべてのEVMレイヤー2
取引プロセス:
キーの作成:ユーザーは、指紋や顔認識などの生体認証を提供し、オペレーティングシステムがパスキーを生成し、クラウドサービスを使用してバックアップします。複数のパスキーをデバイス間およびプラットフォーム間で追加できます。
gardians(オプション)を追加:ユーザーは異なるEVM EOAアドレスをgardiansとして割り当て、アカウントの回復のための閾値を設定できます。
アカウント生成:カウンターファクチュアルデプロイメントを使用すると、ユーザーは最初の取引まで料金を支払う必要はありません
回復メカニズム:
パスキー:任意のデバイスを使用してウォレットにログインするための定義されたパスキーを使用してください。
ガーディアンの復旧: 割り当てられたガーディアンは、しきい値に従ってウォレットを回転させることができ、悪意のある行動を防ぐために後でタイムロックが設定されるかもしれません。
基本:
デモ: https://www.okx.com/help/what-is-an-aa-smart-contract-wallet
Chain: 30+ チェーン
Key: MPC-TSS、2/3
アカウント: 4337 SCA
取引プロセス:
キーの作成:ウォレットを作成することで、OKXは単一のプライベートキーを3つの別々の共有に変換します。共有1はOKXサーバーに保存され、共有2はユーザーのデバイスのローカルストレージに保存され、共有3はデバイスによって生成され、暗号化され、Google Cloud、iCloud、Huawei Cloudなどのデバイスの好きなクラウドサービスにバックアップできます。
キー署名:MPC-TSS技術を使用するOKXでは、取引を署名する際に、ユーザーは3つの秘密鍵シェアのうち2つを使用して完全な署名を取得できます。このプロセス中に、秘密鍵シェアは互いに接触しません。
リカバリーメカニズム:
2/3メカニズム: ユーザーがログアウトしたとき、デバイスが利用できないか、デバイスのキーのいずれかが危険にさらされた場合、新しいデバイスを使用してOKXウォレットにログインしてサーバーシェアを取得し、クラウドサービスシェアを取得し、これら2つのシェアを組み合わせてウォレットを回復することができます。OKXウォレットは新しい秘密シェアを生成します。
基本:
デモ: https://w3a.link/passkeysDemo
チェーン:すべてのEVMとSolana
鍵:MPC-TSS、通常2/3
アカウント:EOA、4337 SCA、または一般的なSCAなどのアカウント
取引プロセス:
キーの作成:ウォレットを作成することで、3つのキーシェアが生成されます。Share1はソーシャルログインシェアで、ユーザーは自分のメールアドレスを入力し、分散ネットワークのノードが各ユーザーのキーを保存します。Share2はユーザーのデバイスに保存されるデバイス共有です。Share3はローカルコンピューターで生成され、ユーザーの選好するクラウドサービスでバックアップされます。
鍵署名:Web3Auth MPC-TSSアーキテクチャは、閾値署名を使用しても、ユーザーの鍵が常に利用可能であることを保証し、鍵が再構築されたり、1か所に保存されたりすることはありません。
回復メカニズム:
しきい値回復ユーザーがログアウトしたとき、デバイスが利用できないか、デバイスのキーの1つが危険にさらされた場合、ソーシャルログイン方法を使用してWebAuthnアカウントにログインし、パスキークラウド共有を取得し、これら2つの共有を組み合わせてウォレットを回復できます。
基本情報:
デモ: https://lit-pkp-auth-demo.vercel.app/
Chain: EVMのほとんど、Cosmos、Solana。
アカウント:MPC-TSS、30のうち20がネットワークで、SCAとEOAの両方に採用されることができます。
取引プロセス:
キーの作成: ユーザーがウォレットを作成する場合、最初に認証方法(パスキー、oAuthソーシャルログイン対応)を選択し、その後リレーアにキーペアを作成して認証ロジックをスマートコントラクトに格納するためのリクエストを送信します。各キーペアは、分散キー生成(DKG)と呼ばれるプロセスを通じてLitノードによって共同で生成されます。分散型ネットワークとして動作し、TEE内で実行される30個のLitノードがあり、各ノードがキーの一部を保持していますが、プライベートキーは決して完全に存在しません。
キー署名:リクエストを受け取ると、Litノードは独自に割り当てられた認証方法に対してリクエストを検証または拒否し、MPC-TSS技術を使用して、キーシェアがしきい値(30のうち20)を超えるように収集され、署名を生成してクライアントによって結合され、リクエストを達成します。
回復メカニズム:
2/3メカニズム:スマートコントラクトに格納されている認証方法を使用してアカウントにアクセスし、Litノードがリクエストを検証し、ノードの2/3以上が確認した場合に進行します。
Layer2、Layer3、およびデータ可用性ソリューションへの熱意により、ブロックチェーンのパフォーマンスを向上させることに熱心です。また、リアルなセキュリティを追求し、透明性の性質とゼロ知識証明プライバシーを組み合わせています。すべての努力は1つの目標を目指しています:ブロックチェーンと暗号資産を自分の生活に頻繁に組み込んでいる実際のユーザーに対応できるよう準備すること。
最適なテクノロジーの夢に囚われるのは簡単ですが、我々は問わなければなりません:我々はどんな体験を目指しているのでしょうか?私たちは、暗号資産が恐ろしいテクノロジー用語ではなく直感に関連する世界を想像しています。ユーザーがためらいや手間を感じることなくウサギの穴に飛び込む世界です。
ユーザーRuiを思い浮かべてください:彼女は素晴らしいdAppを発見し、顔認識や指紋を使って簡単にサインアップし、バックアップやガーディアンを設定するオプションも用意しています。彼女がdAppを利用すると、ERC20の手数料が少額になるか、まったくかからないかで、スムーズに取引を実行することができます。その後、ウォレットの設定をカスタマイズし、自動取引のタイムロックを有効にしたり、バックアップ署名者として別のデバイスを追加したり、保護者リストを修正したりします。
私たちのビルダーがそれを実現します。WebAuthnとパスキーを統合することで、プライベートキーの管理を強化し、安全かつユーザーフレンドリーにします。キーの上に、エンティティとしてのSCAは個別のセキュリティと機能性の領域を開きます。そして、ガス手数料に関しては?Paymasterプロバイダーのおかげで、スワップのための「貯蔵庫」を作成したり、広告主がユーザーの手数料をカバーすることさえ可能になり、負担が軽減されます。特にEthereumメインネットおよびそれに相当するLayer2にとって、この進化の中心に位置しているのがERC4337です。これにより、大きなプロトコルの変更なしに、SCAトランザクションをEOAとは異なるメンプールに導入します。一方、一部のLayer2ネットワークはSCAをネイティブに採用し、シームレスにシステムに組み込んでいます。
すべてを簡単にするには、途方もない努力が必要です。SCAのデプロイ、検証、実行のコストを下げるなど、多くの課題が存在します。インターフェースを標準化してアカウントの相互運用性を高める。アカウントの状態をクロスチェーンで同期する。などなど。すべてのビルダーの功績により、私たちは日に日にパズルを解くことに近づいています。そして、私たちSevenXのような暗号ベンチャーは、優れた企業がビジョンを実現するのを支援する準備ができています。