AccountAbstruction・ERC6551・Autonomous Worldの連続性
はじめに
はじめまして、Nagumoです。私はERC6551を活用したBlockchain GameやNFT管理コンソールの開発、またAutonomous Worldsへのアプローチを構想している者です。Token2049 Singaporeに参加してAccountAbstruction・ERC6551・Autonomous Worldsの連続性に気づいたのでその内容を自分の整理のためにも残します。それぞれの基礎知識に関しては説明を省略し、参考となる記事を紹介いたします。
・AccountAbstruction(ERC4337)
・ERC6551
・Autonomous Worlds
AAの将来像
EOAからCAへの移行
Three Transitionsの中でvitalikが語っているように、AccountAbstruction(AA)のモチベーションはEOAからContractAccount(CA)への移行にあります。EthereumコミュニティはEOAを排除する方向にあり、今後数年単位でプロトコルの改修を含むCAの実装(The Splurge)が行われる予定です。では、どのようにEOAからCAへの移行が行われるのか?提案されている一つの手法がEIP-7377(Migration Transaction)です。既存のEOAと同じアドレスのCAをデプロイしCAの使用に移行する規格なのですが、vitalikはこの手法に関してセキュリティリスクが高いと警鐘を鳴らしています(Builder Nightのセッション中に発言)。現実的だと考えられる移行手順は「自然と置き換わる」だと思っています。BiconomyのAniket氏もWeb3 Transitions Summitにてそのように言及していました。既存のクリプトユーザーを慣れ親しんだEOAからCAに急に移行するのは難しいし、だれもそのコスト(資産移動やCAをデプロイするガス代)を負担したくはない。想定される移行のストーリーは以下です。まず、今後AA対応CAを用いたdAppsが増え、Next Billion Userは最初からCAを利用することになり、EOAは持たなくなる。次に、CAのユーザー数が増えるとCA関連サービスも増え、EOAサービスは次第に減る。すると既存クリプト民も徐々にEOAからCAに移行する。vitalikは特にセキュリティの観点からAAへの移行を推進していますが、AAはもちろんUXの向上にも寄与します。Next Billion UserのオンボーディングにCAが最適なことは疑う余地がありません。また、モジュール化やintents(後述)等のAAの進化も考慮すると確信はさらに高まります。
モジュール化
AAはモジュール化によりその性能を格段に向上させ、EOAからの移行をコミュニティが望むものへと推し進めています。AAのモジュール化を直感的に理解するにはスマートフォンを連想するのがわかりやすいです。(参考)CAはコントラクトベースなのでその処理内容に関して柔軟にプログラム可能です。また、CA内のコードだけでなく、外部のコントラクトをトランザクションの前中後で呼び出すことにより、その柔軟性を飛躍的に上昇させることができます。この外部コントラクトを「モジュール」と表現しています。スマートフォンでいうところの「アプリケーション」がモジュールにあたります。
モジュール化によってAA Walletは二つの部分に分かれます。一つがベースとなるSmartContractWallet(スマホで言うところの本体)。もう一つが外部の便利コントラクト(スマホで言うところのアプリ)です。
vitalikはAAのモジュール化について以下のように語っています。
「ベースとなるSCWと周辺ツールとしてのモジュールにわかれ、各社が提供する標準化されたモジュールを各ユーザーが選択して利用」これがAAのモジュール化が見たらす未来です。その利便性の向上からEOAからCAへの移行が進むことは間違いないでしょう。
intents
AA関連の最先端事項の一つが「intents」です。ユーザーはトランザクションの「意図」、つまり「期待する結果」を第三者(ソルバー)に伝えることで代わりに意図に沿ったトランザクションを実行してもらうことが可能になります。
丁度Token2049のタイミングでBanana HQのチームが新しいintentsの仕組みを提案していました。(内容読みきれてないので概要説明省略)
また、記事執日(2023/9/20)の前日にもintents関連のEIPとしてERC7512が提案されています。intentsにAAにおけるERC4337のような共通のインターフェースを導入することを目的とした提案です。
intents標準化はまだまだ先の話と考えられますが、CAによるトランザクションの抽象化(UserOperation)の延長線のテーマであり、UX向上に大きく寄与するものですので、intentsの進化もEOAからCAへの移行を進める一要素になると思います。
ERC6551の可能性
CAへの移行の中で一つ課題が生じます。それはdApps埋め込みCAが増えることでAccountが独立・分散してしまい、データが分散してしまうことです。
私はERC6551を利用したNFTがその解決策の一つになると考えています。NFTにより複数のAccountを横串で通すのです。なぜ可能なのか?ERC6551によりNFTはContractAccountを紐づけることが可能になりました。このAccountは「Token Bound Account」略してTBAと称されています。「NFTがwalletをもつ」ような体験を設計可能になります。さらにTBAはEVMであればすべてのチェーンに展開可能です。つまり、Ethereum上のNFTに対してPolygonやOptimism上にTBAを展開可能になるということです。
私はこの特徴を利用して、ERC6551の可能性として、今後はdAppsとの対話にTBAを利用するようになることを想定しています。現在dApps接続時にMetamask等のwalletを選択するのと同様に、今後はNFTを選択するようになります。接続するNFTを選択すると、NFTに紐づくTBAによりdAppsとの対話が始まるのです。これは一つのNFTですべてのEVMチェーンに対応可能になります。複数のContractAccount(TBA)を上位にあるNFTが横串を通す形になります。これは「NFT as an onchain-identity」の世界です。NFTにすべてのonchain activityのデータが集まります。
また、ERC6551に関してはonchain-identityとしての使用用途以外にもユースケースを以下記事にまとめましたのでぜひお読みいただきたいです。
Autonomous Worldsへの展開
「NFT as an onchain-identity」としてのNFTはAutonomous WorldsにおけるAgentとして機能すると考えています。Autonomous WorldにおけるAgentはその特性からオンチェーン上で定義されている必要があります。まずオンチェーン上の人格状態を表すために非代替性のあるNFTが採用され、そのNFTに関する情報を最大化するためにERC6551が採用されることでしょう。STPというプロジェクトはAutonomous World用のネーミングサービスであるAWNSを提供しており、規格としてERC6551を採用しています。
ERC6551起草者のBenny氏もAWにおけるAgentとしてのERC6551を利用したNFTの可能性について言及しています。実際Token2049でBenny氏と話した際も「NFT as an AI Agent」としてのERC6551活用可能性について言及していました。
さいごに
Token2049での一番の学びはグローバルでもERC6551が注目されていることを体感したことでした。ERC6551のワークショップは満員で、セッション内容が聞こえないくらいの熱狂でしたし、vitalikのAAセッションにおいてもAAとERC6551の関連性について質問する人が複数いた上、vitalik自身も6551の可能性について言及していました。自分自身もERC6551には可能性を感じているので関連領域でBuildしていく所存です。
ここまでお読みいただきありがとうございました。ぜひこの記事のことやERC6551に関すること等何でも気軽にXまでご連絡ください。
PS. vitalikの目は綺麗な緑色でした