出典:Denchainコミュニティ
アカウントの抽象化によって、暗号通貨がどのように安全で使いやすくなるかを学びましょう。セキュリティ機能を追加し、ブロックチェーン採用の技術的障壁を取り除きます。
はじめに
ブロックチェーン技術は金融革新を約束するが、複雑すぎる。ユーザーは秘密鍵を管理し、ガス料金を理解し、それを支払うためにETHを保持しなければならない。トランザクションの署名は複雑で、1つのミスが資金の永久的な損失につながる可能性がある。
こうした技術的なハードルが、暗号通貨の普及を妨げてきた。現在、イーサには約2億9000万のユニークなアドレスがあります。しかし、less than one-tenth のアドレスがアクティブである。なぜなのでしょうか?解決策はあるのだろうか?
ヴィタリック氏は、アカウント抽象化(AA)を「10年の旅の集大成 ." と呼んでいる。暗号通貨をPayPalのように簡単に、しかしブロックチェーンの非中央集権的な性質で利用できる。アカウントの抽象化により、ユーザーはカスタマイズ可能なスマートコントラクトを通じてブロックチェーンのアカウントを管理することができ、同時にセキュリティと柔軟性を高めることができる。アカウント抽象化の概念はほとんどのブロックチェーンエコシステムに適用できますが、この記事では主にイーサに焦点を当てます。
その重要性を理解するために、まずは現在の限界と変革の必要性を探ってみましょう。
イーサネット アカウントを理解する
イーサネット アカウントには 2 つのタイプがあります。size:="" 17px="" width:="" height:="" align="">外部所有アカウント(EOA)
ほとんどのユーザーは外部所有アカウント(EOA)を通じてメインのブロックチェーンとやり取りします。メタマスク、トラストウォレット、コインベース・ウォレットが良い例です。
EOAは、公開鍵と秘密鍵という一対の暗号鍵で構成されるアカウントです。公開鍵はEOAトランザクションが送信者によって署名されていることを確認するために使用され、秘密鍵はトランザクションに署名するために使用されます。秘密鍵へのアクセスは、口座へのアクセスと口座の管理を意味し、したがって口座に関連する資金と資産の管理を意味する。
ブロックチェーン取引を行うために、ユーザーは以下のことを行う必要があります:
ガソリン代を支払うのに十分なローカルトークンを持っている
秘密鍵を使って取引に署名する
ブロックチェーンの確認を待つ
<
しかし、EOAは機能が限られており、秘密鍵を紛失しやすい。加えて、取引を一括処理したり、セキュリティルールをカスタマイズしたり、ガス料金の支払いを委任したりすることもできない。だからこそ、代替手段があるのだ。
スマート・コントラクト口座(CA)
スマート・コントラクト口座(CA)
スマート・コントラクト口座(CA)は、スマート・コントラクトのウォレットとして知られています。スマート・コントラクト・ウォレットとも呼ばれるスマート・コントラクト口座は、ブロックチェーン上のプログラム可能な口座です。スマートコントラクトとして展開されます。人気のある例としては、SafeやArgentがあります。
スマートコントラクトのアカウントは、トランザクションを受け取る際に機能を実行する。その実行と回復メカニズムは、スマートコントラクトコードのロジックによって制御されます。
しかし、スマートコントラクトウォレットは依然として、トランザクションを開始するためにEOAに依存しています。これは、ユーザーが同じ課題に直面していることを意味するが、技術的により複雑である。その結果、進展はあったものの、いくつかの問題が残っている。
EOAとCAの限界
上記の説明では、EOAとCAの限界について説明した。
複雑な鍵管理: EOAでは、1つの秘密鍵やヘルパーが失われると、資金の全損失を意味します。一度盗まれると、アカウントを回復する方法はなく、ユーザーエラーのリスクも高い。
トランザクションの制限:ほとんどの場合、ユーザーはガソリンの支払いをローカルトークンで行わなければなりません。さらに、EOAはユーザーが複数のトランザクションをバッチ処理することを許可しておらず、dAppとの各インタラクションは個別に承認されたトランザクションを必要とします。
悪いユーザーエクスペリエンス:新規ユーザーにとっての技術的な障壁が、定期的な使用と大量採用を妨げています。簡単な操作でも複数のステップが必要で、プロセスやさまざまな用語の意味を説明する明確な文書もありません。ユーザーはしばしば、分かりにくい専門用語や説明のないトランザクションの詳細に満ちたインターフェースに直面する。復旧オプションが限られているため、ほとんどのエラーは取り返しがつきません。
Cyfrin Updraft の course<は、アカウントの抽象化が解決しようとしている問題を列挙し、よりエレガントなソリューションの必要性を明らかにしています。
アカウントの抽象化とは?
エーテル口座の抽象化は、エーテル改良提案 EIP-4337 で説明されています。で説明されており、スマート コントラクトを主要なアカウント タイプにしています。これにより、複数署名による承認や社会的回復メカニズムなどの機能により、セキュリティと柔軟性が強化される。その結果、高度な機能を備えたユーザーフレンドリーなアカウントを作成できるようになりました。
ERBOOMERBOOMERBOOMERBOOMERBOOMERC-4337 Account Abstraction
ERC-4337は、コアイーサネットプロトコルを変更せずに動作するアカウント抽象化の提案です。その代わりに、ERC-4337は代替メモリプールを中心とした追加インフラ層を作成します。このレイヤーは、スマートコントラクトがUserOperationsを検証、実行、相互作用することを可能にします。これらの特別なトランザクションのようなオブジェクトは、スマートコントラクトがプライマリーアカウントになることを可能にする。一方、バンドラーはその収集、集約、ブロックチェーンへの提出を処理する。
このソリューションの5つのコンポーネントを詳しく探ってみよう。UserOperationは、ユーザーに代わって開始されるトランザクションを表す構造体です。混乱を最小限にするため、「トランザクション」とは呼ばない。これは、送信者、宛先、データロード、ガスコストパラメータ、署名、nonce などのおなじみのフィールドを含むが、以下に示すように、その機能固有の追加フィールドも導入する。署名フィールドの使用は、プロトコルではなく、各アカウントの実装によって決定される。これらの操作は、通常のEtherトランザクションとは別に、" 代替メモリプール"に入ります。
Bundlers は特殊化されたイーサネット ノードです。alt-mempoolと呼ばれる別個のメモリプールを監視し、複数のUserOperationを1つのトランザクションにまとめます。そしてそれをブロックチェーンに提出し、トランザクションの対価を支払う。その見返りとして、彼らはこれらのタスクを処理するための手数料を得る。
EntryPointはシングルケーススマートコントラクトであり、ブロックチェーンへの指示を検証し、転送する。各CAがガス代を支払うのに十分な資金を持っていることをチェックする。検証後、取引を実行し、ユーザー口座から資金を差し引く。その後、ガス料金を賄うためにバンドラーに返金する。
ペイマスターコントラクトは、オリジネーターではなく、トランザクションのガス料金を支払う責任があります。この設計により、ガス料金がない場合でも柔軟な支払いポリシーのやり取りが可能になります。また、ERC-20トークンを使った支払いや、サードパーティがスポンサーとなるトランザクションもサポートしている。その結果、Paymasterは、ユーザーがネットワークを使用するためにローカルブロックチェーントークンを保持する必要性を排除します。
オプションのAggregatorは、すべてのユーザーの署名を1つにまとめます。これにより、一連のUserOperationの検証を1つずつ行うよりも、全体として効率的に行うことができます。Aggregatorを使用することで、トランザクションコストを削減し、処理速度を向上させることができます。=align="">アカウント抽象化はどのように機能するのですか?
ユーザーは UserOperations オブジェクトを作成します。
バンドラーは、複数のUserOperationsを1つのトランザクションにまとめ、EntryPointコントラクトに送信します。
EntryPointは認証を開始し、これはCAで実装される。その後、CAに実装された `execute()` 関数を呼び出してトランザクションを処理する。
UserOperationsが実行され、状態の変更がトリガーされる。
オプションとして、Aggregatorは署名検証を集約し、Paymasterはトランザクションコストを処理する。
アカウントの抽象化について説明した後、なぜそれが重要なのかを見てみましょう。
アカウント抽象化の主な利点
ブロックチェーンのアカウント抽象化は、主に3つの分野で大きな改善をもたらします。
ブロックチェーンのアカウント抽象化は、3つの分野で大きな改善をもたらします。"">より強固なセキュリティ
アカウントの抽象化により、以下のようにセキュリティが向上します:
複数署名のサポート:ユーザーは、トランザクションが実行される前に、複数の署名者による承認を必要とするルールを作成できます。各署名は異なる権限を持ち、口座所有者は支出の上限と条件を管理します。これにより、承認されていない支出を防ぎ、ハッキングから保護します。
ソーシャルリカバリー: アカウント所有者は、アクセスが失われた場合にアカウントの回復を共同で承認できる信頼できる個人(「ガーディアン」と呼ばれる)を選択します。たとえば、5 人の保護者のうち 3 人が復旧を承認する必要があります。タイムロックは、大口の送金を遅らせたり、パスワード忘れや鍵紛失による永久損失のリスクを排除することで、さらなる保護を提供します。
優れたキー管理:ユーザーはハードウェアキーまたは生体認証によってアカウントにアクセスできます。多要素認証のおかげで、1つの方法が危険にさらされてもアカウントは安全なままです。これにより、複雑さを増すことなくセキュリティが強化されます。"">ユーザーエクスペリエンスの向上
Web3のアカウント抽象化は、ユーザーが暗号通貨とやりとりする方法を3つの方法で変えます。
シンプルなスタート:新規ユーザーは基本的な電子メールまたはソーシャルログインで始めることができ、システムは複雑なウォレット作成をバックグラウンドで処理します。これにより、暗号通貨をモバイルアプリのように簡単に利用できる。秘密鍵やニーモニックを理解する必要はない。
柔軟な支払い:ユーザーはガス代を支払うためにETHを保有する必要がなくなり、任意のERC-20トークンを使ってガス代を賄うことができる。アプリは、スポンサー付き取引を通じてユーザーに支払うことができる。企業はチームのコストを管理できる。
スマートトランザクション:ユーザーは、複数の操作を1つの一括トランザクションにまとめることができます。1回の承認で一連の操作をカバーし、システムが最適なガソリン価格を見つけます。これにより、1回のやりとりにかかる時間とコストを節約できる。"">高度な機能
Account Abstractionは、2つの主要なアップグレードで最先端の機能を提供します。
プログラム可能なルール ユーザーは、毎日の支出制限を設定し、将来の支払いをスケジュールし、さまざまな種類のトランザクションのルールを設定することができます。例えば、少額の支払いであれば署名は1回で済みますが、多額の送金には複数の承認が必要です。 自動化されたオペレーション:スマートコントラクト機能は、定期的な支払いを処理するためにユーザー入力を必要とせず、複雑な取引も正確な順序で実行されます。また、ユーザーは特殊なケースのために独自のルールを作成することもできる。
では、これらの理論的な利点が現実の世界でどのように現れているのか見てみましょう。を見てみよう。
Smart Contract Wallet:Argent ソーシャルリカバリー、ガス抽出、その他のスマート機能を備えています。Safeはマルチシグネチャサポート、トランザクションバッチ、高度なコントロールを提供します。
エンタープライズ: Visaはアカウントの抽象化を活用して、イーサでの暗号決済を改善します。
Web3 Gaming: アカウントの抽象化によって暗号の複雑さが取り除かれ、プレイヤーのガス代を管理しながらゲーム内での購入が可能になります。
Decentralised Finance (DeFi):このプラットフォームはアカウントの抽象化を活用し、取引コストを最適化しながら、ワンクリック取引と一括承認を開始します。
では、もっと詳しい情報を得るにはどうすればいいのでしょうか?
アカウント要約の使用を開始する
開発者向けリソース
良い出発点は、公式 EtherNet Web サイトの EIP-4337 のエントリです。このエントリでは、代替メモリ プールを使用したアカウント抽象化の動機、仕様、および基本について説明しています。また、リファレンス実装やセキュリティに関する考慮事項も記載されています。
次に、GitHub にある Cyfrin の包括的な アカウント抽象化ライブラリ を調べてください。クイックスタートガイド、サンプルデプロイメント、FAQ が含まれています。さらに、Cyfrin Updraft の 包括的なコース で、アカウントの抽象化について深く掘り下げてみましょう。
アカウントの抽象化については、包括的なコースをご覧ください。
しかし、プログラマブルなアカウント機能を構築し、展開する方法を知りたいかもしれません。
実装に関する考察
アカウント抽象化の実装に対する2つの主なアプローチ:
Ethereum は、外部バンドルラーとエントリーコントラクトを使用します
ZKsync は、チェーンに直接アカウント抽象化を構築します
。
前述したように、イーサでは、ユーザーは操作をバンドルラーに送信し、バンドルラーはそれをエントリーコントラクトに転送します。エントリーのコントラクトはトランザクションを検証し、実行します。一方、ZKsyncでは、ユーザーはトランザクションを直接チェーンに送信し、システムコントラクトが検証と実行を処理する。
どちらの方法でも、ウォレットは複数の署名を要求したり、ソーシャルログインを使用するなど、取引承認のためのカスタムルールを定義することができます。
結論
アカウントの抽象化は、ユーザーがブロックチェーンとやりとりする方法を変えます。暗号ウォレットに最新の財務管理機能を追加し、ユーザーが紛失したアカウントを回復したり、支出上限を設定したり、任意のトークンで手数料を支払ったりできるようにします。
現在、Visaのような大手企業がアカウント抽象化を利用しています。DeFiアプリは取引をより簡単にします。
ツールはすでに存在しています。標準は機能している。今、開発者は誰にとってもより良い暗号アプリを作ることができる。Web3のビジョンを実現し、アカウント抽象化をプロジェクトに組み込む方法を学びましょう!