Ethereumは現在最も一般的に使用されているブロックチェーンの1つであり、多くの暗号通貨、トークン、Web 3.0プロジェクトはEthereumの本質に基づいて構築されています。
Ethereumはここ数年新しいアップデートやプロトコルの導入を行うことでエコシステムをよりユーザーフレンドリーで効率的かつ迅速的にしようと努めています。
ここでは今年初めに導入された新しいアカウントの抽象化によるユーザーエクスペリエンスの大幅な変更について説明していきます。新たなプロトコルによってトランザクション処理が大幅に短縮されることから、新規ユーザーにとってもユーザーフレンドリーなインターフェイスになっています。
では、Ethereumにおける“アカウントの抽象化”とは一体何なのでしょうか?なぜそれがユーザーに大きな変革をもたらすのかについて説明していきます。
主要ポイント
- アカウントの抽象化によってスマートコントラクトの展開、ノードの検証、スマートコントラクトウォレットから開始されるバッチトランザクションまでの暗号通貨におけるトランザクションの全ての仕組みが変わります。
- アカウントの抽象化によってユーザーからの介入が少なくなることから、ユーザーエクスペリエンスの向上に繋がります。
- スマートコントラクトウォレットには秘密コードや秘密キーが必要ないためにウォレットのセキュリティが強化されます。
- アカウントの抽象化によってトランザクションがバッチで検証されることでガス代の削減、人的エラーの削減、処理の高速化などに繋がります。
アカウントの抽象化を行う理由
暗号通貨を送信する最も一般的な方法は暗号通貨ウォレットからの送信であり、それを行うには送りたいウォレットアドレスを入力して金額を選択するだけです。しかし暗号通貨ウォレットを使用する際にはそのプロセスで必要とされる署名やガス代の支払いの承認などのいくつかの検証を行う必要があります。その後にトランザクションが完了してブロックチェーンに反映されるまで待つ必要があります。
新規の暗号通貨ウォレットユーザーにとって、特にブロックチェーンのピーク時などは各ステップの間に少しの待ち時間が発生したり複雑だと感じてしまう可能性があります。これらの事から、よりスムーズなプロセスとシームレスなインターフェイスの必要性からEthereumのアカウントの抽象化の立ち上げが始まりました。
アカウントの抽象化とはトランザクションをバンドル化してスマートコントラクトにプロセスを任せる新たなトランザクションプロトコルを指します。つまり、基礎となるコードの作業が増える代わりにユーザーの手順を減らすことができます。
抽象化を行う前の暗号通貨トランザクション
アカウントの抽象化の重要性をより深く理解するためにも、まずは暗号通貨トランザクションについて詳しく見ていきましょう。現在では従来の方法であった外部所有のアカウントのEOAを使用して行われます。
Ethereumブロックチェーンが設立された当初は外部所有のアカウントこそが公開鍵と秘密鍵を使って様々な注文を処理するために使用されたブロックチェーンと対話する唯一の1の方法でしたが、現在のETHブロックチェーン上で行われるほとんどのトランザクションは支払いの発行、ミント、NFTの作成、Ethereumブロックチェーンに関連するその他のデジタル資産や創作物を行うためにEOAが用いられています。
MetaMask, Wasabi, Coinbaseなどの一般的に使用されている暗号通貨ウォレットやその他の一般的に使用されている暗号通貨ウォレットは非保管型であり、資金の送信、承認、受信には暗号化された秘密鍵と公開鍵を使用して暗号通貨の転送を行います。暗号通貨の送金は暗号化されることから、特定のウォレットアドレスに送信された後はウォレットアドレスに関連付けられた秘密鍵を使用してトランザクションが復号化されることで資金を受け取ることができます。
ただし、このプロセスにはスマートコントラクトを展開するための署名検証や送信者からの資金の解放を承認するための別の署名などが含まれるために長くて面倒なプロセスとなります。
その後にトランザクションは検証されて実際に反映されるまではブロックチェーン上で保留されます。これを行う際は各ステップ間に遅延が生じる可能性があるブロックチェーンのピーク時間は避けてください。さらにトランザクションを分離するにはガス代を負担する必要があるため、Ethereumブロックチェーン上で送金を行う場合はガス代を支払うための追加のETHが必要になります。
これらのプロセスは時間の無駄であることから、多くの人がWeb 3.0と暗号通貨トランザクションの全体的な発展に伴う新たな方法を必要としていました。
抽象化された暗号通貨トランザクション
ERC-4337プロトコルとも呼ばれるアカウントの抽象化(擬似トランザクションとも呼ばれまる)は、手動での実行の代わりにブロックチェーンプログラミング言語とコード関数を使用してEthereumブロックチェーン上でトランザクションを実行する現代の画期的な方法です。
これを行うことでブロックチェーン上のコードとそのいくつかの要素 (ノード、ノンス構造、スマートコントラクトなど) によって処理される機能が増えてユーザーが実際に行う作業は大幅に減ります。ブロックチェーンインフラストラクチャは主にトランザクションを処理することから、それらを体系的にバンドルとしてグループ化することで暗号化の秘密鍵と公開鍵の必要性を排除します。
アカウントの抽象化を用いた送金は次のような流れで行われます:
ステップ1 – 金額と送金先のウォレットアドレスを選択してUserOperation関数のデプロイを行います。
ステップ2 – “Bundler”検証ノードによってこれらのトランザクションをまとめて受け取ってから、1つのトランザクション行としてスマートコントラクトインフラストラクチャに送信します。
ステップ3 – 1つにまとめられたトランザクションがスマートコントラクトのエントリポイントに到着すると“handleOps”関数が始まってそのバッチのトランザクションの受信が宣言されます。
ステップ4 – “validateUserOp”関数が始まると、前のステップで指定された情報に対する複数のトランザクションの検証や処理が行われます。
ステップ5 – トランザクションが認証されると受信者のウォレットに解放されます。
上記のような一連の流れによってバックエンドでのトランザクションがより合理化されることで、暗号通貨トランザクションの復号化で必要とされる秘密鍵と公開鍵が排除されます。
これによってトランザクションエクスペリエンスはどのように変わりますか?
Ambire, Argent, and Braavosなどの契約アカウントを組み込んだ仮想通貨ウォレットはEthereumブロックチェーン上で仮想通貨をより簡単かつ迅速に取引できる方法を提供しています。
これらのウォレットはEthereumメインネット上のレイヤー2ネットワークにて以下の機能を用いてアカウントの抽象化を実行します。
ウォレットとの相互作用
アカウントの抽象化により、ユーザーとウォレットのインターフェイス (またはブロックチェーン) 間のやり取りが減ることでデプロイメントコード自体の作業が効率化されます。特に初心者ユーザーにとっては秘密鍵が必要なくなることでトランザクションがより合理化されて検証や署名の手順が少なくなることで、より簡単に暗号通貨ウォレットを使用することができます。
さらに、Ethereumアカウントを使用した暗号通貨ウォレットには秘密鍵のように機能するシードフレーズが含まれていることから、秘密鍵を持っている人は誰でもウォレットにアクセスできるために安全に保存する必要があります。12フレーズの秘密鍵を紛失してしまうと暗号通貨ウォレットや自分の資金にアクセスできなくなってしまいます。
ガス代
スマートコントラクトを使用してトランザクションを実行する場合にはガス代を支払う必要があります。これは主にノードに報酬を与えて複数のトランザクションを検証するよう促す手数料のような役割を果たしています。
Ethereumネットワーク上にスマートコントラクトを導入する場合には、開始するトランザクションとは別に請求されるETHで表示されたガス代を支払わなければなりません。
これらの取引手数料はネットワークの混雑度によって変わってきますが、スマートコントラクトウォレットを使用したガス代を回避する別のオプションもあります。
- アカウントの抽象化 (手数料の抽象化) によって、ユーザーがスマートコントラクトウォレットのユーザーの代わりにガス代を支払うスポンサーを持つことができます。スポンサーはUSDC、Tether、DAIなどのETHとは異なるその他のトークンを使用した支払いを行うことができます。
- 他にもガス代を支払うdAppデベロッパーやプロジェクトによるスポンサー付きトランザクションの取得も可能であり、彼らは暗号通貨で支払うこともあればウォレットのETHを補充することを意味する「ガスタンク」の充填などを行うこともできます。
上記の方法を使ったガス代の支払いやスポンサーがその他の暗号通貨や他のEthereum上の操作での料金の負担を介さずにトランザクションをスムーズに処理できるようになります。
ノンス(Nonce)の抽象化
ノンス(Nonce)はNumber Only Used Onceの略であり、ウォレットから行われる全取引に付随する識別番号を指しています。例えば、最初に実行されるトランザクションにはnonce #1という番号が付けられ、2つ目のトランザクションにはnonce #2の番号が付けられます。
では、なぜこれが問題なのでしょう?実際にノンス自体には何の問題もありませんが、ブロックチェーンはfirst in, first out(先入先出法) (FIFO) に基づいてトランザクションを処理することから、より大きいノンス番号を持つトランザクションが優先的に実行されるのです。
つまり、トランザクション1が処理中の際にトランザクション2が誤ってブロックチェーンにデプロイされた場合のトランザクション1は拒否されてしまい停止または未承認の状態になってしまいます。
ただしスマートアカウントはトランザクションのバッチ処理においてノンスの抽象化を使用することから、各バンドルの全てのトランザクションの詳細を承認してから次のトランザクションの実行を行う単一のノンスがあることから最後にまとめて検証されます。
トランザクション署名
トランザクション署名とは選択した金額に応じて資金を解放するためのスマートコントラクトとウォレットの間のやり取りの確認作業であり、 一部のウォレットでは公開鍵を使用してトランザクションの暗号化を検証する際には受信者に送信するための別の署名が必要な場合もあります。
このプロセスは外部所有のアカウントで実行されますが、通常各ステップ間は数秒ほどかかります。しかし、ブロックチェーンのピーク時にはそれが数分まで伸びる可能性があります。
ただし、スマートアカウントでは署名を要求せずにユーザーに代わってトランザクションを始めることができます。ここでは秘密鍵の必要性はプロセスの一部に含まれていないために、ハッキングが起きた際には秘密鍵の公開リスクが軽減されます。
外部所有のアカウントとスマートコントラクトアカウント
これまではアカウントの抽象化とその重要性を説明してきましたが、従来の方法である外部所有アカウントと比較した際のブロックチェーンの主要な側面をどのように促進するかに関する補足説明を以下で行っていきます。
安全性とセキュリティ
アカウントの抽象化によって秘密鍵の暗号化が必要なくなることから、悪意のある攻撃やハッキングなどが起きた際のリスクの軽減に繋がります。
アカウントの抽象化によってアカウントの回復に不可欠なシードフレーズが不要になることから、一度シードフレーズを失ってしまうと暗号通貨ウォレットにアクセスできなくなります。
ワークフロー
アカウントの抽象化によってトランザクションを承認するための必要なユーザーの操作が最小限になることから、スマート コントラクトウォレットのほぼ全ての機能が自動的に処理されることでより洗練されたワークフローが生まれます。
デフォルトのアカウントではユーザーの秘密鍵を暗号化することから、資金の解放にはトランザクション署名のためにウォレット所有者の認証が必要になります。この一連の流れはブロックチェーンとユーザー間で行き来して行われることから、ネットワークの混雑時には遅延が発生する可能性があります。
トランザクションの制限
アカウントの抽象化によってトランザクションをユーザーが設定した特定の制限に設定することで、スマートコントラクトアカウントのセキュリティが促進されます。スマートコントラクトのトランザクションが設定された制限を超えると操作が拒否されることから、悪用や詐欺に対するセキュリティが強化されます。
信頼できるガーディアン
スマートアカウントの所有者は、秘密鍵が漏洩した際のスマートアカウントの部分的な制御やアカウントの回復を支援する「ガーディアン」を設定することができます。
ガーディアンを設定したアカウントはスマートコントラクトウォレットがハッキングや盗難の被害に遭った際には即時の凍結やアカウントからの取引の承認を行うことができます。
信頼できるサービス
スマートEthereumアカウントを使用することでdAppやWeb 3プロジェクトを信頼できるページとして認識するため、同じdAppやプロジェクトにアクセスするたびに何度も確認を求められることはありません。
さらにサービスプロバイダーを統合することで、暗号通貨で支払うサブスクリプションや毎月の請求書などの定期的な支払いを契約アカウントから差し引くことができます。
アカウントの抽象化によるEthereumウォレットの回復
万が一シードフレーズを失くしてしまった場合には、従来の非保管ウォレットでは暗号通貨ウォレットとその資産にアクセスできなくなって秘密コードを回復できなくなることから、これは暗号通貨ウォレットユーザーにとっては非常に大きな懸念事項の1つになっています。
ただしアカウントの抽象化には12のシードフレーズは必要ないことから、秘密キーが侵害された場合は、新しい秘密鍵を作成する必要があります。さらにキーローテーションルーティンを設定することで定期的なキーコードの変更によるEthereumアカウントのセキュリティ強化が可能になります。
アカウントの抽象化のメリット
アカウントの抽象化は比較的新たに導入されたイノベーションにもかかわらず、これには以下に挙げるメリットの他にも暗号通貨トランザクションの仕組みを再構築するような未来の大きな可能性を有しています。
- 人為的エラーの低減: トランザクションを行う際の人間の介入を最小限に抑えることで合理化が促進されます。さらにユーザーはシードフレーズを保存して維持する必要がなくなることから、ウォレットのセキュリティコードの漏洩リスクが低減します。
- セキュリティの強化:秘密鍵はアカウントの抽象化ウォレットの一部ではないために盗難などのリスクが最小限に抑えられます。 また、スマートコントラクトウォレットはより高度なセキュリティプロトコルを享受できるブロックチェーンのレイヤー2ネットワーク上で動作します。
- ガス代の削減:アカウントの抽象化を実装によってトランザクションを承認するために必要な検証ノードが少なくなるだけでなく、それに付属する取引手数料をサードパーティが負担できるようになります。
- 暗号通貨トランザクションの高速化:スマートコントラクトを使用することで、従来は必要だった検証や署名が格段に減るためにプロセスが高速化してネットワーク混雑時の遅延などが最小限に抑えられます。
- マルチシグのアクティベーション:アカウントの抽象化によって複数のユーザーが同じウォレットを共有できるようになりますが、トランザクションはほぼ全てのユーザーによって確認される必要があります。
アカウントの抽象化のデメリット
アカウントの抽象化は暗号通貨愛好家やウォレット所有者に上記のようなメリットをもたらしますが、もちろんこれにもいくつかのデメリットは存在しています。
- 比較的新しい: アカウントの抽象化は非常に新しい概念ですが、多くの暗号通貨ウォレット所有者が既存のウォレットを新しい抽象化がサポートされたウォレットに置き換えるには長い時間がかかることが予想されます。
- 悪意のある攻撃:スマートアカウントにおけるアカウントの抽象化は比較的安全であると言えますが、トランザクションのプロセス中に資金が侵害される可能性は依然として高く、この方法ではバックエンドでの処理に時間がかかるためにハッキングに晒される可能性があります。
- より複雑になる:アカウントの抽象化にはユーザーにとってより簡単なインターフェースとなる場合がありますが、コードインフラストラクチャなどが複雑になるためにエコシステムが誤動作や攻撃を受けやすくなります。
まとめ
Ethereumによって導入された新しい概念であるアカウントの抽象化は新規ユーザーなどが暗号通貨トランザクションを開始するための簡素化されたプロセスの組み込みとなり得ますが、いまだに多くは体系的なプログラミングに依存したスマートコントラクトやグループの展開を行う事から、ユーザーの介入なしのトランザクションの検証およびコードやブロックチェーンインフラストラクチャはより複雑になる場合があります。
この方法はユーザーによる検証署名やシードフレーズが必要ないためにユーザーエクスペリエンスの向上に繋がります。 また、アカウントの抽象化によって資金を危険にさらすことなく他のユーザーとウォレットを共有したい暗号通貨ユーザーにとっては朗報になります。
アカウントの抽象化は今年初めに導入されたばかりであり、その革新的なアプローチとメカニズムによって暗号通貨愛好家やコミュニティの注目を集めています。しかし、大半のユーザーがこれらのウォレットに完全に移行するには長い時間がかかることでしょう。
よくある質問
暗号通貨におけるアカウントの抽象化とは何ですか?
秘密鍵と公開鍵を使用してトランザクションの検証および署名を必要とする従来の方法とは対照的に、アカウントの抽象化によってスマートコントラクトをウォレットとして使用することでユーザーに代わる自動的なトランザクションの実行を促進するプロセスです。
アカウント抽象化のメリットは何ですか?
アカウントの抽象化によってウォレット管理のカスタマイズが可能になることから、従来は必要であった秘密鍵や公開鍵が不要になりセキュリティがより強化されて初心者ユーザーにはより簡単かつ合意的な取引を行うことができます。
アカウントの抽象化は何に役立ちますか?
アカウントの抽象化にはより高いセキュリティや高速なトランザクション処理などのメリットが含まれます。スマートコントラクトウォレットを使用することでより低いガス代で暗号通貨を送受信したりAvalanche、Tron などのEthereum以外の様々なブロックチェーンやネットワーク間でのやり取りが可能になります。
アカウントの抽象化のリスクは何ですか?
これはまだ比較的新しい概念であることから、大衆に浸透するまでは長い時間がかかることでしょう。また基盤となるコーディングインフラストラクチャが複雑になるため、トランザクションの進行中に何らかの誤動作やDoS攻撃が発生しやすい可能性があります。