アカウントセキュリティの課題を概念化する一つの方法は、良いウォレットが二つの側面で機能すべきだということです: (i) ウォレット開発者からのハッキングや悪意のある攻撃からユーザーを保護し、そして (ii) ユーザー自身のミスの影響から保護することです。
私のこの件に対する最初の解決策は、10年以上にわたり、ソーシャルリカバリーとマルチシグウォレットで、階層的なアクセス制御を持つものです。ユーザーのアカウントには2層のキーがあります: メインキーと N 個のガーディアン(、例えば N = 5)。メインキーは、低価値かつ非金融的な操作を実行できるものです。ほとんどのガーディアンは、(i) 高価値の操作を実行する必要があります。例えば、アカウント内の全価値を送信することや、(ii) メインキーや任意のガーディアンを変更することです。必要に応じて、メインキーが時間ロックを通じて高価値の操作を実行することを許可することもできます。
理想ウォレット願景:クロスチェーン、安全とプライバシーの全面アップグレード
理想ウォレットのビジョン:クロスチェーン体験からプライバシー保護への全方位アップグレード
イーサリアムのインフラストラクチャスタックにおける重要なレイヤーの1つはウォレットですが、コアL1研究者や開発者はその重要性を過小評価することがよくあります。ウォレットはユーザーがイーサリアムの世界と対話するためのウィンドウであり、ユーザーはウォレット自体が適切な属性を備えている場合に限り、イーサリアムとそのアプリケーションが提供する分散型、検閲耐性、安全性、プライバシーなどの特性の恩恵を真に受けることができます。
最近、イーサリアムウォレットはユーザーエクスペリエンス、安全性、機能の改善において顕著な進展を遂げています。本記事では、理想的なイーサリアムウォレットが持つべき特性についての私の見解を共有することを目的としています。これは完全なリストではなく、私の暗号パンク的傾向を反映しており、安全性とプライバシーに焦点を当てていますが、ユーザーエクスペリエンスに関しては不足しているかもしれません。しかし、ユーザーエクスペリエンスを最適化する上で、フィードバックに基づいて展開や反復を行うことが、願望リストに基づくよりも効果的であると私は考えています。したがって、安全性とプライバシーの属性に焦点を当てることが最も価値があると思います。
! Vitalik新記事:理想的なウォレットのビジョン、クロスチェーンエクスペリエンスからプライバシー保護まで
クロスチェーンL2トランザクションのユーザーエクスペリエンス
現在、より洗練されたクロスL2ユーザー体験向上のロードマップが存在しており、短期的および長期的な部分が含まれています。ここでは主に短期的な部分について議論します:理論的には現在すぐに実施可能なアイデアです。
核心思想は:(i)内蔵クロスL2送信、および(ii)チェーン特定アドレスと支払い要求。あなたのウォレットはERC草案スタイルのアドレスを提供できるはずです。
誰かが(または特定のアプリケーション)からこの形式のアドレスを提供された場合、あなたはそれをウォレットの「受取人」フィールドに貼り付けて、「送信」をクリックできるはずです。ウォレットは、送信されたデータをあらゆる可能な方法で自動的に処理する必要があります:
上記の内容は、"あなたがアドレス(またはENSをコピーして貼り付ける場合、例えばvitalik.eth @ optimism.eth)が誰かからあなたに支払いをする"というユースケースに適用されます。もしdappがデポジットを要求するなら、理想的なプロセスはweb3 APIを拡張し、dappがチェーン特有の支払い要求を発行できるようにすることです。その後、あなたのウォレットは必要に応じてその要求を満たすことができます。ユーザーエクスペリエンスを良くするためには、getAvailableBalanceリクエストの標準化も必要であり、ウォレットはユーザーの資産をどのチェーンにデフォルトで保存するかを真剣に考慮し、安全性と送金の便利さを最大化する必要があります。
特定のチェーンに特化した支払い要求はQRコードに埋め込むことができ、モバイルウォレットはQRコードをスキャンすることができます。対面(またはオンライン)の消費者支払いシーンでは、受取人は「私はチェーン上でX単位のトークンYZを、参照IDまたはコールバックW付きで欲しい」と示すQRコードまたはweb3 API呼び出しを発行します。ウォレットはその要求を自由に満たすことができます。もう一つの選択肢は、クレームリンクプロトコルであり、ユーザーのウォレットは、クレームの権限を含むQRコードまたはURLを生成し、彼らのチェーン上の契約から一定量の資金を取得することです。受取人の仕事は、これらの資金を自分のウォレットに移動する方法を考えることです。
もう一つの関連するテーマはガスの支払いです。もしあなたがまだETHを持っていないL2で資産を受け取り、そのL2で取引を送信する必要がある場合、ウォレットはプロトコル(を使用して、例えばRIP-7755)がある場所でチェーン上のガスを自動的に支払うことができるべきです。もしウォレットが将来的にL2でさらに取引を行うことを望むなら、それはDEXを使用して送信するべきです。例えば、何百万のガスの価値があるETHを送信し、将来の取引がそこで直接ガス(を使って支払うことができるようにするためです。そうすることで、より安価になります)。
! Vitalik新記事:理想的なウォレットのビジョン、クロスチェーンエクスペリエンスからプライバシー保護まで
アカウントの安全性
アカウントセキュリティの課題を概念化する一つの方法は、良いウォレットが二つの側面で機能すべきだということです: (i) ウォレット開発者からのハッキングや悪意のある攻撃からユーザーを保護し、そして (ii) ユーザー自身のミスの影響から保護することです。
私のこの件に対する最初の解決策は、10年以上にわたり、ソーシャルリカバリーとマルチシグウォレットで、階層的なアクセス制御を持つものです。ユーザーのアカウントには2層のキーがあります: メインキーと N 個のガーディアン(、例えば N = 5)。メインキーは、低価値かつ非金融的な操作を実行できるものです。ほとんどのガーディアンは、(i) 高価値の操作を実行する必要があります。例えば、アカウント内の全価値を送信することや、(ii) メインキーや任意のガーディアンを変更することです。必要に応じて、メインキーが時間ロックを通じて高価値の操作を実行することを許可することもできます。
以上は基本設計であり、拡張が可能です。セッションキーやERC-7715などの権限メカニズムは、異なるアプリケーションの利便性とセキュリティのバランスをサポートするのに役立ちます。異なる閾値で複数のタイムロック期間を持つより複雑なガーディアンアーキテクチャは、合法的なアカウントの復元成功の可能性を最大限に高めながら、盗難リスクを最小限に抑えるのに役立ちます。
監護人は誰または何であるべきか?
経験豊富な暗号通貨ユーザーコミュニティの経験豊富な暗号ユーザーにとって、実行可能な選択肢は友人や家族の鍵です。もし皆に新しいアドレスを提供するように頼めば、誰も彼らが誰であるかを知る必要はありません。実際、あなたの保護者はお互いが誰であるかを知る必要すらありません。彼らがあなたに通報しなければ、彼らが共謀する可能性は非常に低いです。しかし、ほとんどの新しいユーザーにとって、この選択肢は利用できません。
第二の選択肢は、機関の信託管理者です: あなたのリクエストに基づいてのみ、取引を署名するサービスを提供する会社: 例えば、確認コード、または高価値ユーザー向けのビデオ通話です。人々は長い間これを作ろうとしてきました。例えば、私は2013年にCryptoCorpを紹介しました。しかし、現時点では、これらの会社はあまり成功していません。
第三の選択肢は、複数の個人デバイス(、例えば電話、デスクトップ、ハードウェアウォレット)です。これは機能しますが、経験のないユーザーには設定と管理が難しいこともあります。また、特に同じ場所にある場合、デバイスが同時に失われたり盗まれたりするリスクもあります。
最近、私たちは万能鍵に基づくものが増えているのを見始めています。鍵はあなたのデバイスにのみバックアップでき、個人デバイスソリューションとなります。また、クラウドにバックアップすることもでき、その安全性は複雑なハイブリッドなパスワードセキュリティ、機関、信頼できるハードウェア仮定に依存します。実際、鍵は一般ユーザーにとって貴重なセキュリティの向上ですが、それだけではユーザーの生涯の貯蓄を保護するには不十分です。
幸運なことに、ZK-SNARKがあることで、私たちは4つ目の選択肢を持っています: ZKでラップされた中央集権的ID。このタイプには、zk-email、Anon Aadhaar、Myna Walletなどが含まれます。基本的に、あなたは(企業や政府)中央集権的IDのさまざまな形式を採用し、それをイーサリアムアドレスに変換することができ、中央集権的IDを持っていることを証明するZK-SNARKを生成することでのみ取引を送信できます。
この補足により、私たちは現在幅広い選択肢を持ち、ZKパッケージの中央集権IDは独自の「初心者に優しい」特性を持っています。
! ヴィタリックの新しい記事:理想的なウォレットのビジョン、クロスチェーンエクスペリエンスからプライバシー保護まで
これを実現するために、簡素化された統合UIを通じて行う必要があります: あなたは「example@gmail.com」をガーディアンとして指定するだけで済み、それに応じたzk-emailイーサリアムアドレスが自動的に生成されるべきです。上級ユーザーは、彼らの電子メール(およびその電子メールに保存されている可能性のあるプライバシーソルト)をオープンソースのサードパーティアプリケーションに入力し、生成されたアドレスが正しいことを確認できるべきです。他のすべてのサポートされているガーディアンタイプについても同様であるべきです。
現在、zk-emailが直面している実際的な課題は、数ヶ月ごとにローテーションされるキーを使用するDKIM署名に依存していることです。このキー自体は他の機関によって署名されていません。これは、現在のzk-emailがプロバイダー自体を超えた信頼の要求を持っていることを意味します。もしzk-emailが信頼できるハードウェア内でTLSNotaryを使用して更新されたキーを検証すれば、この状況を軽減できますが、それは理想的ではありません。メールプロバイダーがそのDKIMキーに直接署名し始めることを期待しています。今日は、私は一人のガーディアンにzk-emailを使用することを提案しますが、大多数のガーディアンには使用を推奨しません:zk-emailに資金を保管することは、資金を使用できない設定を意味します。
! ヴィタリックの新しい記事:クロスチェーン体験からプライバシー保護まで、理想的なウォレットのビジョン
新規ユーザーとアプリ内ウォレット
新しいユーザーは、実際には最初の登録時に多くのガーディアンを入力したくありません。したがって、ウォレットは彼らに非常にシンプルな選択肢を提供するべきです。自然な方法の一つは、彼らのメールアドレスで zk-email を使用し、ユーザーのデバイスにローカルに保存されたキー (、万能キー )、およびプロバイダーが保持するバックアップキーを使用して、2-of-3 の選択を行うことです。ユーザーがより経験豊富になったり、より多くの資産を蓄積したりすると、ある時点で彼らに追加のガーディアンを追加するように促すべきです。
ウォレットをアプリケーションに統合することは避けられません。なぜなら、非暗号ユーザーを引き付けようとするアプリケーションは、ユーザーが同時に2つの新しいアプリケーション(をダウンロードすることを望まないからです。アプリケーション自体に加えて、イーサリアムウォレット)を持つことは、混乱したユーザー体験をもたらします。しかし、多くのアプリケーションウォレットのユーザーは、すべてのウォレットをリンクできるべきです。そうすれば、彼らは「アクセス制御の問題」について心配する必要がなくなります。最も簡単な方法は、階層的なアプローチを採用することであり、そこでは迅速な「リンク」プロセスがあり、ユーザーが自分の主ウォレットをすべてのアプリ内ウォレットの保護者として設定できるようになります。
ユーザーを詐欺やその他の外部脅威から保護する
アカウントの安全性に加えて、今日のウォレットは偽のアドレス、フィッシング、詐欺、その他の外部の脅威を特定するために多くの作業を行い、ユーザーをそのような脅威から保護するよう努めています。同時に、多くの対策はまだかなり原始的です。たとえば、ETHや他のトークンを新しいアドレスに送信するには、送信する金額が100ドルであっても100,000ドルであっても、クリックを要求します。ここには単一の万能薬は存在しません。これは、さまざまなカテゴリの脅威に対する一連の遅い継続的な修正と改善です。しかし、ここでの改善への努力を続けることには多くの価値があります。
プライバシー
今はイーサリアムをもっと真剣に考える時です