Zelcore

EOAが時代遅れである理由:スマートアカウントが実際に果たす役割

12分で読めます
EOAが時代遅れである理由:スマートアカウントが実際に果たす役割

2026年4月時点で、BundleBearによると、Ethereumと主要なL2全体で、ERC-4337のUserOperationは10.7億件を超え、少なくとも一度取引を行ったスマートアカウントは5,670万件に達しています。もはやニッチな存在ではありません。Ethereumが2015年に導入した、単一キーでsecp256k1のみを使うExternally Owned Account(EOA)は、大規模に迂回されつつあります。オンチェーンの数値も、プロトコル層では以前から知られていた事実に追いつき始めています。アカウント自体がプログラム可能になったのです。

これは、スマートアカウントを扱う全5回のシリーズの第1回です。ここでは範囲を絞り、基礎となる点を説明します。EOAとは何か、スマートアカウントとは何か、そして「スマートアカウントかEOAか」という選択が、もはやUXの好みではなく、セルフカストディをどのような仕組みで実現するかという構造上の選択である理由を解説します。

プロトコル上、EOAとは何か

EthereumのYellow Paperでは、アカウントをExternally Owned AccountとContract Accountの2種類に定義しています。状態レベルでの唯一の違いは、codeHashフィールドです。EOAの場合、codeHashは空文字列のハッシュです。コントラクトアカウントの場合は、実行可能なEVMバイトコードを指します。プロトコル層での違いはこれだけです。

したがって、EOAは実質的な意味での「ウォレット」ではありません。keccak256(public key)の末尾20バイトから導出されるアドレスであり、鍵ペアにはsecp256k1曲線が固定されています。MetaMask、Ledger、Zelcoreは鍵を保持するユーザーインターフェースであり、アカウントそのものではありません。この仕組みの詳細をまだご存じない場合は、公開鍵と秘密鍵、そしてアドレスの導出方法についての入門記事をご覧ください。

2023年にERC-4337が導入されるまで、Ethereum上のすべてのトランザクションはEOAから送信する必要があり、プロトコルが適用する検証ルールは1つだけでした。トランザクションハッシュに対する有効なsecp256k1署名です。残高を保有し、トランザクションごとにECDSA署名を1つ行い、同じアカウントからETHでガス代を支払う。それがEOAでできることのすべてです。それ以外の機能はありません。

ユーザーに影響する構造上の限界

これらは単なるUX上の小さな不便ではありません。2026年現在も続くセルフカストディの損失の大半を招く、構造上の要因です。

これが、Ethereumのすべてのユーザーが10年間使わざるを得なかった枠組みです。

スマートアカウントとは何か

プロトコル上の文字どおりの意味では、スマートアカウントはコントラクトアカウントです。codeHashがバイトコードを指すアドレスです。そのバイトコードによって、どのような条件でアカウントが操作を受け入れるかが定義されます。

EOAの検証ルールは、固定されたsecp256k1のチェック1つです。一方、スマートアカウントの検証ルールは、コントラクトで定める内容にできます。たとえば、2-of-3のマルチシグ、secp256r1曲線で検証するパスキー署名、ハードウェアで認証された鍵、タイムロック、1日の上限額、許可リストに登録した呼び出し先、またはこれらの組み合わせを設定できます。スマートコントラクトアカウントは、固定されたプロトコル層のsecp256k1チェックではなく、EIP-1271標準に基づいて署名を検証します。これにより、そもそも別の署名方式を使えるようになります。

ルールはコードで定義されるため、更新、組み合わせ、取り消しが可能です。スマートアカウントは2018年からEthereum上に存在しており、代表例はSafeです。不足していたのは、スマートアカウントを標準にする方法と、EOAで先にガス代を支払わなくてもトランザクションを送れる方法でした。ERC-4337とEIP-7702によって、この課題が解決されました。

これまでの経緯:アカウント抽象化の歩み

EOAとコントラクトを統合する構想は、Ethereumそのものと同じくらい古くからあります。Vitalikが2016年に草案を作成したEIP-86が、最初の詳細な提案でした。そこから現在の実用化済み標準に至るまで、5回の試みがありました。

要点は、アカウント抽象化がもはや実験ではないということです。すでに展開されている階層型の標準であり、新たにスマートアカウントを構築する場合の明確な経路としてERC-4337が、既存のEOAが利用を選択できる経路としてEIP-7702が用意されています。

スマートアカウントで可能になる5つの機能

EOAが「1つの鍵、1つの署名、1つのトランザクション」だとすれば、スマートアカウントはその機能をすべて含む上位の仕組みです。

セルフカストディを支える基盤となった理由

普及の勢いは、もはや議論の段階ではありません。EIP-7702はPectra後の最初の1週間で11,000件を超える認可を集め、その直後にはウォレット数が25,000を超えました。OKXとMetaMaskが先行しています。BundleBearの累計(UserOps 1.07B件、スマートアカウント5,670万件)が、状況の全体像を物語っています。

実際に変わるのは脅威モデルです。EOAの場合、ユーザーには「シードフレーズを永久に守り、悪意あるトランザクションに決して署名せず、フィッシングにも遭わず、誤ったデバイスを使い回さない」ことが求められます。これは、人間が実際に守りきれないと明らかになっている役目です。スマートアカウントの場合、ユーザーが担うのは「復旧に必要な承認者数と支出ポリシーを一度設定する」ことです。これはコードで強制できます。

スマートアカウントはハードウェアウォレットに取って代わるものではありません。ハードウェアウォレットでできることを広げ、実際には、スマートアカウントでハードウェアウォレットが担う役割を最も効果の高い用途に絞ります。つまり、価値が高く発生頻度の低いマスター操作への署名を担い、日常的な操作はセッションキーで処理します。

このシリーズの続き

ここでは全体の枠組みを示しました。シリーズの残りでは、実際の運用について掘り下げます。

第2部に引き継ぐ要点は、次の一文です。EOAはアドレスを持つ鍵であり、スマートアカウントは、その鍵に何を許可するかを決めるコントラクトです。


関連記事

setApprovalForAllの負債:NFT承認の監査と取り消し

setApprovalForAllの負債:NFT承認の監査と取り消し

マーケットプレイスに出品するたびに、コレクション全体を無制限に移転できる権限がひそかに付与されます。攻撃者に悪用される前に、NFT承認を監査して取り消す方法を紹介します。

14分で読めます
ウォレットに16進数が表示されるブラインド署名のイメージ

ブラインド署名:ウォレットに16進数が表示されるとき

ハードウェアウォレットのセキュアエレメントは、署名する内容を読める場合にのみ役立ちます。ブラインド署名の仕組み、ERC-7730が解決する問題、安全を保つためのルールについて解説します。

14分で読めます
ハードウェアウォレットをZelcoreにペアリングする画面

ハードウェアウォレットをZelcoreにペアリングする

LedgerまたはTrezorをデスクトップ版Zelcoreにペアリングする手順を解説します。ハードウェア署名で実際に保護されるもの、対応チェーン、安全に資産を移行する方法を確認できます。

14分で読めます

ニュースレターに登録

月に一度、Zelcoreの最新情報をお届けします。スパムは送りません。

ニュースレターに登録