見出し画像

Account Abstractionの概念と未来の動向を徹底解剖!ユーザーにとってどんなメリットがあるのか?

この記事では次世代のイーサリアムのトランザクション検証として注目されているAccount Abstractionについてリサーチしたことをご紹介していきます。

Account Abstractionとは?

Account Abstractionとは2016年にEIP-86としてEthereumファウンダーのVitalikによって提案された概念です。

簡単に説明すると、Account Abstractionを実装することで現在イーサリアムのアカウントとして機能しているEOA(Externally Owned Account: 外部所有アカウント)を削除し、Contract accountのみを使用することで、より効率的な署名アルゴリズムを実現し、同時にセキュリティの向上も目指すというものです。

https://etherworld.co/2021/10/06/an-overview-of-account-abstraction-in-ethereum-blockchain/より

イーサリアムには、
1. EOA(Externally Owned Account: 外部所有アカウント)
2.Contract account
という2つのアカウントが存在します。

1.EOA(Externally Owned Account: 外部所有アカウント)

EOAは秘密鍵の保有者によって管理されるアカウントで、ブロックチェーンの外に存在するため外部所有アカウントと呼ばれています。

EOAは普段、私たちが利用するウォレットに紐づくアカウントで秘密鍵の署名によってコントロールされています。

EOAはイーサリアムの残高を所有しているため、ETHを他のアカウントに送信するために利用されます。
つまり、私たちユーザーはEOAを通してイーサリアムネットワークに参加し、トランザクションを送信しているのです。

2.Contract account

Contract accountはEOAとは異なり、秘密鍵を所有していません。
代わりに、コードを所有することでスマートコントラクトとして機能することができます。

つまり、イーサリアムではContract accountによって、ETHのトランザクション送信だけでなく、スマートコントラクトを使ったさまざまなやり取りを行うことができるのです。

Account Abstractionが実現する未来

Account Abstractionによって実現される未来を大きく2つに分けてご紹介します。

ECDSA以外の署名が可能に

前項でお伝えした通り、現在のイーサリアムにはEOAとContract accountの2種類のアカウントが存在します。

現在のイーサリアムでは、トランザクションはEOAからしか送信することができず、署名においてはECDSAを必ず使わなければならないという制限があります。

この制限がイーサリアム上でボトルネックとなっており、トランザクションの効率性とシンプルさに欠けるため、改善が必要だとされています。

具体的に説明すると、ECDSAではトランザクションへの署名生成に加えて、その署名が本当に送信者によって行われたものかを検証します。

署名生成と検証の際には、公開鍵と秘密鍵を用います。
つまり、送信者が持つ秘密鍵によってトランザクションへ署名がされ、秘密鍵とペアをなす公開鍵によってそのトランザクションが本当に送信者による署名なのかを検証します。

この秘密鍵と公開鍵はペアをなしているので、送信者は自身の秘密鍵を明かすことなく、送信者が間違いなく自分であることを証明できるのです。

ブロックチェーンのネットワークにおいて、

・送信したトランザクションが第三者による不正データではないこと
・トランザクションの生成後に第三者によって改ざんされていないと証明すること
・送信されたトランザクションが誰によるものなのかを証明できること

が重要な要素となります。

ECDSAによる署名は上記の要素を満たすことができるため、トランザクション検証において大きな役割を果たしていましたが、トランザクションの効率性とシンプルさに欠けるという問題が浮上してきたのです。

そのような問題を解決するためにAccount Abstractionという概念が登場しました。

Account Abstractionを実現してContract accountのみでトランザクションが行えるようになると、イーサリアム上でさまざまな署名検証のアルゴリズム(Schnorr、BLSなど)が使えるようになります。

Account Abstractionが実現されれば、EOAの時のように1つ1つのトランザクションに署名をする必要がありません。

Contract accountはコードを保有しており、コードのやり取りによってトランザクションがより効率的になります。
複数のトランザクションをまとめてパッケージにすることができるので、より早くより便利にトランザクションの検証を行うことができるのです。


セキュリティの向上

Account Abstractionを実現させることで、トランザクションをシンプルで効率的にするだけでなくセキュリティの向上も見込むことができます。

その1つの機能としてSocial Recovery Walletと呼ばれるものがあります。
Social Recovery Walletは主にアカウントの紛失や第三者による資産の盗難への保護機能を有しています。

EOAの仕組みではユーザーが秘密鍵を紛失したり、第三者による秘密鍵の盗難が発生した場合、自分の資産を保護する方法がありませんでした。

しかし、Social Recovery Walletの機能では自分の秘密鍵を忘れたとしても少なくとも3人の信頼できるフレンドによる承認でアカウントをリカバリーすることが可能となります。

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4105763より

また、Account Abstractionを実現させることでMultisig Walletと呼ばれる機能を有すことができます。

Social Recoveryは秘密鍵の紛失や盗難にあったとしても、少なくとも3人の信頼できるフレンドによる承認でアカウントをリカバリーできるというものでした。

Multisig Walletでは今まで1つの秘密鍵を用いてトランザクションを行うという安全性に欠けるプロセスを克服し、複数の秘密鍵を用いてより安全にトランザクションを行うことができます。

これにより、今までの単一秘密鍵での署名と比べてMultisig Walletでは複数の秘密鍵を使用して署名を行うため、セキュリティの面で安全となります。

複数の秘密鍵を異なる場所に保管することができ、複数の秘密鍵を異なる組み合わせで使用することができるため、単一の時よりもセキュリティが向上するというわけです。

下記の図のように2つの秘密鍵が揃ったとしても、残り1つの秘密鍵で署名がされなければトランザクションを送信することができない仕組みになっています。

https://medium.com/unidocore/what-is-multisig-what-is-key-management-in-crypto-6d08b6ffbeaeより

EOAの仕組みでは秘密鍵を紛失、盗難されてしまえば二度とアカウントをリカバリーさせることができませんでした。

しかし、Account Abstractionを実現させることで、ユーザーがより安全にトランザクションを行うことができるようになるため、マスアダプションに向けて重要な役割を果たすと期待されているのです。

参考文献

  • サムネイルはこちらから引用

  • Medium Vitalik Buterinよる【ERC 4337: account abstraction without Ethereum protocol changes】の記事はこちら

  • gbecより【【動画で学ぶブロックチェーン】【Ethereum】Account Abstraction— 中城元臣氏】はこちら

  •  BLOCKZEITより【Social Recovery Wallets – Why They are Becoming Popular?】の記事はこちら

  • Bistmapより【What is a MultiSig wallet?】の記事はこちら



この記事が気に入ったらサポートをしてみませんか?