ERC-4337を採用し、次の10億人に次世代スマートコントラクトウォレットを提供することを目指す「Soul Wallet」について解説

今回は、「Soul Wallet」というERC-4337をベースにしたEthereumのウォレットについて解説していきたいと思います。

少し前から、「ERC-4337を採用したウォレット」という新しい動きが出てきており、Ethereumのエコシステムにおける資産管理とユーザーエクスペリエンスの間のジレンマを解決するのではないかと、Ethereum界隈で注目を集めています。

この動きの中心には、Ethereum Foundationが導入したERC-4337という共通規格がありますが、この新規格を初めて取り入れたのが、TikTokの親会社ByteDanceや中国の巨大オンデマンドサービスMeituanの元プロダクトマネージャーである、Jiajun Zeng氏が率いるスタートアップ「Soul Wallet」です。

ちなみに直近では、Vitalik氏やEFの方とTwitterスペースも開催していました。

出典:twitter.com/soulwallet_eth/status/1690830614411239425

また、後ほど詳しく触れていきますが、Soul Walletは2023年3月16日にSeedラウンドで$3Mドルの資金調達を行なっており、AlchemyやERC-4337のco-author、Banklessの2人などから出資を受けています。

「次の10億人をクリプト業界にオンボードする」という使命を掲げるSoul Walletが、ERC-4337を採用することで、どのように既存のウォレットとは異なる機能を提供しているのか、そしてどのようなポイントが注目されているのか。本記事では、これらの点を深く掘り下げていきたいと思います。

ということで本記事では、Soul Walletの概要や特徴について概観するとともに、それらの理解を深めるためにAccount Abstraction(以下、アカウント抽象化と表記)やERC-4337についての基礎的な内容も、併せて解説していきたいと思います。

でははじめに、この記事の構成について説明します。

STEP
ERC-4337について

まずは、「Soul Wallet」についての理解を深めるために、アカウント抽象化およびERC-4337について概観します。

STEP
Soul Walletとは

続いて、ERC-4337を採用したウォレット「Soul Wallet」について解説し、その特徴や執筆時点におけるステータスなどについての情報をまとめていきます。

STEP
筆者の論考・考察

最後に、Soul Walletやアカウント抽象化/ERC-4337を採用したウォレットの可能性などについて、私見を交えながら考察します。

本記事が、Soul Walletやアカウント抽象化/ERC-4337の概要、およびその発展可能性などについて理解したいと思われている方にとって、少しでもお役に立てれば幸いです。

※本記事は一般的な情報提供を目的としたものであり、法的または投資上のアドバイスとして解釈されることを意図したものではなく、また解釈されるべきではありません。ゆえに、特定のFT/NFTの購入を推奨するものではございませんので、あくまで勉強の一環としてご活用ください。

イーサリアムnaviの活動をサポートしたい方は、「定期購読プラン」をご利用ください。

目次

アカウント抽象化/ERC-4337について

「Soul Wallet」についての理解を深めるために、本章では最初にアカウント抽象化およびERC-4337について概観していきます。

アカウント抽象化とは

出典:www.alchemy.com/learn/account-abstraction

アカウント抽象化について理解するためには、まず「Ethereum上に存在するアカウントは2種類ある」ということを知る必要があります。

アカウントの内の1つは、私たちがMetaMaskなどのウォレットを通して使用/操作しているEOA(Externally Owned Account: ウォレットアドレス)と呼ばれるもので、もう一方が、コントラクトになります。

簡易的な例としては、先述の通り私たちが普段MetaMaskなどを通して取り扱っているウォレットアドレスはEOAであり、BAYCやAzukiのようなNFTコレクション、またはUniswapのようなDeFiプロトコルはコントラクトに分類されます。

EOAとコントラクトには、大きく以下の表のような違いがあります。

名称秘密鍵トランザクションの
起点になるか否か
コードの実装可否
EOA(ウォレットアドレス)あるなる不可能
コントラクトないならない可能

そして、執筆時点におけるEthereumの仕様上、トランザクションの起点は必ずEOAから始まらなければなりません。

イメージ図

先ほどの例で言うと、BAYCやAzukiのようなNFTコレクションが自発的にトランザクション生成(NFTのミント・転送・burnなど)は行えません。また、UniswapのようなDeFiプロトコルも、EOAを管理する誰かによって最初のトランザクション生成が行われる必要があります。

先ほどの表の「秘密鍵」を見ていただければお分かりの通り、コントラクトには秘密鍵が存在しないため、トランザクションの起点となることができないのです。

アカウント秘密鍵トランザクションの
起点になるか否か
コードの実装可否
EOA(ウォレットアドレス)あるなる不可能
コントラクトないならない可能

それに対してアカウント抽象化では、「両者のアカウント(EOA・コントラクト)の差をなくして抽象化することで、コントラクトがトランザクションの起点となることが出来る」ことを実現します。

イメージ図

Ethereum(L1)においては先述の通り、トランザクションの起点は必ずEOAから始まる必要がありますが、例えば現時点でのStarknetは全てがコントラクトアドレスとなっています。つまりEOAは存在せず、アカウント(コントラクト)を起点にトランザクションを発生させることができる仕様です。

それに対してEthereum(L1)の方は、再三述べている通り『トランザクションの起点は必ずEOAから始まる必要がある』ため、プロトコルレベルでの改修を行わない限り、Starknetのようなネイティブレベルでのアカウント抽象化を実現することはできません。

「アカウント抽象化のためにEthereumをプロトコルレベルで改修すべきか」という議論が過去に行われてきた歴史については今回割愛しますが、結論としては改修を行うことなくアカウント抽象化(にできる限り近しいもの)を実現するために、共通規格であるERC-4337が発明されました。

ERC-4337とは

出典:docs.stackup.sh/docs/erc-4337-overview

ERC-4337を超簡潔に言い表すと、「Ethereumのプロトコルレイヤーでの改修を必要とせずに、アカウント抽象化を実現するための共通規格」です。

あくまで仕様ではなく『共通規格』ですので、ERC-20やERC-721のようなものと考えればイメージしやすいのではないでしょうか。

ERC-4337として共通規格化することにより、相互運用性を高めることができます。

NFT(ERC-721)で考えると、例えばOpenSeaに個々のNFTをリスト化しようと思った場合、各NFTの規格がバラバラになっているケースでは、OpenSea側がそれぞれ個別対応しなければならず、これはあらゆる面で大きなデメリットとなります。

出典:opensea.io/collection/cryptopunks

実際、CryptopunksはERC-721規格が誕生する前に作成されているので、OpenSeaのような各自マーケットプレイスが、個別対応を行うことで出品されていたりします。

そして、今回取り扱っているERC-4337に関しても、アカウント抽象化を様々なウォレットやインフラで実現するために共通規格化されたと考えられます。

ただし、繰り返しになりますが、ERC-4337はあくまでプロトコルレイヤーでの改修を行わない「規格化」なので、Starknetのような真のアカウント抽象化とは異なる点には留意が必要です。

アカウント抽象化とERC-4337の違い

出典:autifynetwork.com/unpacking-erc-4337-a-deep-dive-into-account-abstraction/

先述までの通り、本来のアカウント抽象化では、コントラクトを最上位アカウントとしてトランザクションの起点とすることで、EOAとコントラクトの差をなくすことを実現します。

しかしながら、Ethereumにおいて「プロトコルレイヤーでの改修を行わない」ということは、その仕様上トランザクションの起点がEOAから始まらなければならないことを意味します。

つまり、本来のアカウント抽象化は”コントラクトがトランザクションの起点となる“ことで、ソーシャルリカバリーやアカウント保護などを実現しますが、ERC-4337によるアカウント抽象化はBundlerという”EOAがトランザクションの起点となる“ため、ここが大きな違いです。

出典:medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a

本記事では、アカウント抽象化およびERC-4337の技術的な仕組みの解説などは取り上げませんが、より深掘りして理解したいという方は、本節の最後に参考資料を掲載しているので、そちらをご参考ください。

以上が、Soul Walletを理解するにあたり最低限必要となるアカウント抽象化およびERC-4337の概要と、その違いになります。

derio

次章からは、このERC-4337を採用したウォレット「Soul Wallet」について概観していきます。

参考資料:
Account Abstraction(ERC4337)を、具体的な処理を追ってしっかりと理解してみましょう。
Account Abstractionの誤解と真実
AA(Account Abstraction)の先にある、コントラクトウォレット中心の世界
まいにちDapps#13 ERC4337を理解する
AA(Account Abstraction)における署名集約技術の活用
【EIP-4337】UserOperationをBundlerに投げてからTransactionが発行されるまで
ERC 4337: account abstraction without Ethereum protocol changes
ERC-4337: Account Abstraction Using Alt Mempool

Soul Walletとは

出典:techcrunch.com/2023/03/16/soul-wallet-crypto-wallet/

概要

出典:www.soulwallet.io/#

Soul Walletは、ERC-4337を採用した次世代スマートコントラクトウォレットであることを標榜し、Ethereumを簡単かつ安全に使用できるようにすることを掲げるセルフカストディ型のウォレットです。

アカウント抽象化(ERC-4337)によって、特定の人を指定してアカウントを復元できるソーシャルリカバリー機能の実現や、ガス代をETHに限らずステーブルコインなどのトークンで支払うことを可能にするとしています。

ERC-4337を通じて、開発者は事前に定義された契約を実行するコード行をウォレットにプログラムすることができるようになり、シードフレーズへの依存や、その他ウォレットのレガシーな問題のいくつかを取り除くことが期待されています。

ただし、厳密にはシードフレーズへの依存から脱却する訳ではない点には留意が必要です。詳しくは前章の参考資料でも掲載した「Account Abstractionの誤解と真実」の記事にまとめられているので、併せてご参考ください。

特徴(他のウォレットと違うところ)

出典:hackmd.io/@soulwallet/contract

さて、ERC-4337を採用したSoul Walletが、MetaMaskのような他の既存Ethereumウォレットとどのように異なるのかについて、本節では以下3つに焦点を当てて概観していきます。

  1. 高い拡張性
  2. 永続的なユーザー所有権
  3. 安全なウォレット設計

1. 高い拡張性

出典:twitter.com/soulwallet_eth/status/1674429632307957767

Soul Walletの大きな特徴の一つに、「モジュールとプラグインによる高い拡張性」が挙げられます。

この実装背景は、常に変化するクリプト領域での需要に適応するためだと言われています。つまり彼らは、機能性と適応性を強化するためにモジュールとプラグインを組み込むというアプローチを取ったのです。

derio

NFTプロジェクトでも、ロイヤリティ対応のためにコントラクトを新しくデプロイし直すといった現象が散見されますが、そういった事態を防ぎつつコアコントラクトの内容は変更できない仕様は、とても興味深いと思います。

例えば、ソーシャルリカバリー機能などを、コアとなるコントラクトはそのままに、モジュールとして追加できるようになると期待されます。

出典:twitter.com/soulwallet_eth/status/1674429635361406985

なお、モジュールはGnosis Safeのコントラクトの設計にインスパイアされたものであり、これによってユーザーのニーズに応じてスマートコントラクトウォレットの機能を拡張できるそうです。

このような設計により、コアコントラクトの複雑さとリスクを最小限に抑えつつ、柔軟性を最大化できると予期されます。

また、高い拡張性を実現するもう一つの要素に「プラグイン」があります。

出典:twitter.com/soulwallet_eth/status/1674429638544871424

プラグインは、トランザクション実行前にチェックを行うためのフック(hook)として機能するものです。スマートコントラクトウォレット上の関数を呼び出すモジュールとは異なり、プラグインはスマートコントラクトウォレットがプラグインコントラクトを呼び出すことを可能にします。

つまり、Soul Walletにおけるモジュールは、ウォレットの機能を拡張するためのコンポーネントであり、特定のアクセスロジックや操作を実行するためのものです。一方、プラグインは、ウォレットが外部のプラグインコントラクトを呼び出すためのもので、取引の前後に特定のチェックや操作を行うためのフックとして機能します。

例えば、フックを使用することで、1日の取引限度額の検証を取引の実行フェーズではなく、検証フェーズで行うことができるようになったりします。

2. 永続的なユーザー所有権

出典:twitter.com/soulwallet_eth/status/1674429644928610310

Soul Walletは、ユーザーが自身のウォレットに対する所有権を失うことなく、永続的に利用できる設計となっていることを標榜しています。

これは、アップグレード可能性(Upgradability)や移植可能性(Portability)、ソーシャルリカバリーなどの機能を通じて実現されています。

  • アップグレード可能性
    • モジュールとプラグインによる非常に柔軟な設計
    • Ethereumユーザーの将来のニーズと機能性の進化に適応
  • 移植可能性
    • ユーザーがアドレスと資産を保持したまま、ウォレットプロバイダーを変更できることを保証する
    • 最小限のproxyコントラクトを使用し、logicコントラクトではダイアモンドストレージを採用
    • これにより、データストレージが他のウォレットの実装で破損することはなく、ユーザーはSoul Walletから別のウォレットプロバイダーに安全に移行できる
  • ソーシャルリカバリー
    • 鍵の紛失や漏洩からウォレットへのアクセスを保護
    • リカバリープロセスを開始し、必要な量のガーディアン(保護人)の署名を集めると、ウォレットへのアクセスが回復
    • 公開または非公開のガーディアンを選択することも可能

3. 安全なウォレット設計

Soul Walletは、ユーザーが常にウォレットの所有権と制御権を持つことを基本としています。

想定されるケースとして、例えばあなたのウォレットの制御権をハッカーに奪われたとしたら、そのハッカーはソーシャルリカバリー機能を削除するアップグレードを試みるでしょう。

このリスクに対処するために、Soul Walletでは「アップグレードを実行する前に、指定された時間(例: 48時間)経過を待つ必要がある」といった仕組みが取り入れられています。

出典:twitter.com/soulwallet_eth/status/1674429641665445893

その待ち時間の間に、ユーザーはメールなどを通じてリアルタイムのセキュリティ通知を受け取ることができます。

これにより、待ち時間の間にユーザーはソーシャルリカバリープロセスを実行し、アカウントからハッカーを追放するのに十分な時間を持つことができます。

Gnosis Safeのコントラクトをそのまま使わなかった理由

出典:twitter.com/safe/status/1659219138542444545

前節の特徴パート中の「1. 高い拡張性」において、『Soul WalletのモジュールはGnosis Safeのコントラクトの設計にインスパイアされたものである』と述べましたが、Soul Walletは何故そのままGnosis Safeのコントラクトを使用しなかったのでしょうか。

これについて運営チームは「Introducing the Soul Wallet Smart Contract Design」の記事中で、以下のように述べています。

Gnosis Safeのコントラクトは、非常にモジュール化された設計になっており、実戦で実証済みです。私たちは彼らのデザインから多くを学び、拝借しています。しかし、Safeは組織的なマルチシグのユースケースに特化しています。私たちは、ERC4337スマートコントラクトのウォレットを誰にでも使えるようにしたいと考えています。Safeコントラクトの主な問題は、単一署名のユースケースにおいてセキュリティ上の懸念があることです。(中略)このようなセキュリティ上の懸念に対処するため、私たちは、コントラクトのアップグレードを除き、コントラクト全体でデリゲートコールを無効にしました。コントラクトのアップグレードやモジュールの追加・削除のような機密性の高い操作については、タイムロック機構を実装しています。これにより、署名キーがハッカーによって漏洩しても、ユーザーはウォレットのコントロールを取り戻すために対応し、ソーシャルリカバリーを開始するのに十分な時間を確保することができます。

出典:Introducing the Soul Wallet Smart Contract Design

つまり、実践によってその利便性・安全性が証明されているGnosis Safeのコントラクトを使用したいとしつつも、使い方によっては(※ここでは単一署名のユースケースでは)セキュリティリスクがあることを危惧しており、それに特化した仕様に手直しを加えてSoul Walletとしてローンチしたいと語られています。

なお、後ほど詳しく述べますが、執筆時点においてSoul Walletのコントラクトは監査前のフェーズとなっており、手直しを加えた箇所にセキュリティリスクがないとは言えない状況であることには留意が必要です。

投資家

出典:twitter.com/soulwallet_eth/status/1636419160602480643

Soul Walletは、2023年3月16日にSeedラウンドで$3Mドルの資金調達を行なっています。

本ラウンドに参加した投資家には、Struck CryptoやGame7DAO、Alchemyなどが含まれます。また、エンジェル投資家としてERC-4337のco-authorであるKristof Gazso氏やBanklessの2人、Ethereum FoundationのTim Beiko氏などが参加しています。

投資家一覧

執筆時点におけるステータス

出典:www.soulwallet.io/#

Soul Walletは現在テスト中であり、一連の監査を経て2023年のQ3(7~9月)またはQ4(10~12月)にローンチする予定となっています。

Soul Walletの今後の展開に興味があるという方は、「Join waitlist」から登録申請を行うことができます。(ご利用は自己判断・自己責任の上でお願いします。)

最後に次章では、Soul Walletやアカウント抽象化/ERC-4337を採用したウォレットの可能性などについての考察を、「定期購読プラン」登録者向けにまとめています。興味あればご覧ください。


参考資料:
Introducing the Soul Wallet Smart Contract Design
Backed with $3M, Soul Wallet aims to bring self-hosted crypto wallets to the next billion
twitter.com/soulwallet_eth/status/1674429625659961344
www.coincarp.com/fundraising/soul-wallet-seed/
バグ発見に報酬をあたえるDAO「Code4rena」

筆者の論考・考察

出典:twitter.com/Rohan_0g/status/1631719704015572992

この続き: 1,572文字 / 画像3枚

この続きは、 定期購読プランメンバー専用です。
Already a member? ここでログイン

まとめ

今回は、Soul Walletの概要や特徴について概観するとともに、それらの理解を深めるためにアカウント抽象化やERC-4337についての基礎的な内容を解説しました。

本記事が、Soul Walletやアカウント抽象化/ERC-4337の概要、およびその発展可能性などについて理解したいと思われている方にとって、少しでもお役に立ったのであれば幸いです。

また励みになりますので、参考になったという方はぜひTwitterでのシェア・コメントなどしていただけると嬉しいです。

イーサリアムnaviを運営するSTILL合同会社では、web3/crypto関連のリサーチ代行、アドバイザー業務、その他(ご依頼・ご提案・ご相談など)に関するお問い合わせを受け付けております。

まずはお気軽に、こちらからご連絡ください。

みんなにも読んでほしいですか?
  • URLをコピーしました!
目次