web3を構成する要素 EOA / AA

paji.ethさんのツイートでweb3を構成する要素15選というのがあった。
その中でわかんなかった言葉。

EOA / AA

先ずはEOAについて
EOAとは『Externally Owned Account』の頭文字。
直訳すると外部に所有されたアカウント。
うーん、よくわかんねぇ。
ということで調べた結果EOAとは

イーサチェーン上でERC-20などのトークンを所有するアカウントの事。

なんだ、イーサアドレスやウォレットの事じゃねぇかぁ。
と思ったんだが違うらしい。
イーサアドレスやウォレットはEOA(アカウント)に紐づいたモノであり、アカウントが無ければ存在しない。

先にEOAがあって、イーサアドレスやウォレットがあるってワケ!

イーサチェーン上では、取引(やり取り)する際に署名(ECDSA署名)と検証作業をクリアしないとブロックに含められない規格になっている。
そしてこの署名と検証作業はEOAでなければ行えない。
つまりはEOAがなければ、情報をブロックチェーンに刻めないよってワケ!
(EOAでなければトランザクションの起点になれないんDAぜぇ)

そしてこのEOAを管理するのって結構複雑。

EOAって秘密鍵・シードフレーズ"のみ"によって制御/管理がされている。
もしも秘密鍵・シードフレーズを紛失した場合、そこにあるトークンは絶対に取り出すことが出来ない。
もしも秘密鍵・シードフレーズを盗難された場合、トークンの動かしが自由に出来ちゃう。
(EOAは管理体制を厳重にしなきゃいけないんDAぜぇ)

アカウントに関してはEOAともう一つ『CA』というのがある。
CAとは『Contract Account』の頭文字。
EOAと比べて秘密鍵・シードフレーズを持たずにコードを書いていけるアカウント。
ですが、トランザクションの起点にはなれない。
秘密鍵・シードフレーズがなくて管理は楽だけれどもトランザクションの起点になれなければ意味がねぇ。

そこで登場するのが『AA』ってワケ!
AAとは『Account Abstraction(アカウントの抽象化)』の事。
CAとの違いはコントラクト自体をトランザクションの起点にすることが出来る。
更に秘密鍵・シードフレーズの紛失に備えて、秘密鍵・シードフレーズとは別のキーを予め設定してバックアップ体制を作ることが出来る。
大きなトランザクションの際には複数のキーが必要になる設定も出来ちゃう。
これによってセキュリティレベルを上げることが出来るってワケ!
これがAAの便利な3点の内の一つ目。

そして二つ目が、ガス代の柔軟性。
イーサリアムチェーン上でトランザクションを通す際にガス代が必要になる。
このガス代は『ETH』での支払いのみ。
ETHが無ければなんも出来ねぇってワケ!
これがAAでは、コントラクト内で別のトークンをETHにスワップしてETH建てでの支払いが可能になる。

そして三つ目が、トランザクションのバッチ処理。
バッチ処理とは多数のトランザクションを1度にまとめて行う処理の事。
これはガス代の節約になる。

たとえば、ETHを別のトークンにスワップする際をイメージする。
このトランザクションでは、先ず承認作業で一度目のトランザクションが必要となり、次にスワップのトランザクションが必要になる。
つまりはガス代が2回必要となり、時間も2回分必要となる。
これをAAでバッチ処理するとガス代も時間も1度で済むのでコスト&タイム削減になるってワケ!

ということで本日は EOA / AA の勉強だったぜぇ。
最後に一言。
NFTはおもしれぇ!
NFTはおもしれぇんDAぜぇ。

いいなと思ったら応援しよう!