外部所有アカウント(EOA)とは?
外部所有アカウント(EOA:Externally Owned Account)とは、秘密鍵を持つユーザーが管理するEthereumのアカウントです。
暗号資産ウォレットを作成すると、そのウォレットに紐づくEthereumアドレスが生成されますが、これが一般的にEOAに該当します。
EOAの主な特徴は次の通りです。
-
秘密鍵を持つユーザーが管理する
-
トランザクションを送信できる
-
ETHやトークンを保有できる
-
スマートコントラクトを実行できる
つまり、EOAはユーザーがEthereumネットワークとやり取りするための基本アカウントと言えます。
Ethereumにおける2種類のアカウント
Ethereumには、主に次の2種類のアカウントが存在します。
外部所有アカウント(EOA)
ユーザーが秘密鍵を持ち、直接操作するアカウントです。
主な用途:
-
ETHの送金
-
トークンの送受信
-
dApp(分散型アプリケーション)の利用
-
スマートコントラクトの実行
コントラクトアカウント(CA)
スマートコントラクトのコードによって管理されるアカウントです。
特徴:
-
秘密鍵を持たない
-
自動的にプログラムが実行される
-
条件に応じた処理が可能
ただし、コントラクトアカウント単体ではトランザクションを開始できません。
必ずEOAなどからの指示(トリガー)が必要になります。
EOAの仕組み
EOAは、主に公開鍵暗号方式によって管理されています。
アカウントは以下の2つの鍵によって構成されています。
秘密鍵(Private Key)
-
アカウントの管理権を持つ鍵
-
トランザクションの署名に使用
-
他人に知られてはいけない
秘密鍵を持つ人だけが、そのアカウントの資産を動かすことができます。
公開鍵(Public Key)
-
他者に公開できる鍵
-
Ethereumアドレス生成の元になる
-
資産を受け取る際に使用される
一般的にユーザーが共有するのはEthereumアドレスであり、これは公開鍵から生成されています。
EOAの主な役割
EOAは、Ethereumネットワーク上でさまざまな操作を行うための中心的な存在です。
トランザクションの送信
EOAは次のような操作を行えます。
-
ETHの送金
-
トークンの送付
-
スマートコントラクトの実行
-
dAppとのやり取り
Ethereum上のすべての操作は、EOAからのトランザクションによって開始されます。
ガス代の支払い
Ethereumのトランザクションには**ガス代(Gas Fee)**が必要です。
このガス代はETHで支払われ、
-
トランザクションの処理
-
ネットワークの維持
に対する報酬として、バリデーターなどに支払われます。
EOAとコントラクトアカウントの違い
EOAとコントラクトアカウントは似ているようで、役割が大きく異なります。
| 項目 | EOA | コントラクトアカウント |
|---|---|---|
| 管理方法 | 秘密鍵によるユーザー管理 | スマートコントラクト(コード) |
| 秘密鍵 | 存在する | 存在しない |
| トランザクション送信 | 可能 | 単体では不可 |
| 自動実行 | 不可 | 可能 |
つまり、
EOA=ユーザー操作の入口
CA=プログラム実行の仕組み
という関係になります。
実際の利用例(DEXでのトークンスワップ)
例えば、分散型取引所(DEX)でETHを別のトークンに交換する場合を考えてみます。
-
ユーザーのウォレット(EOA)からトランザクションを送信
-
DEXのスマートコントラクト(CA)が呼び出される
-
コントラクトがスワップ処理を実行
-
トークンがユーザーのEOAに送られる
このように、EOAが指示を出し、スマートコントラクトが処理を行うという仕組みになっています。
EOAのセキュリティと注意点
EOAを利用する際に最も重要なのが秘密鍵の管理です。
秘密鍵を紛失した場合
秘密鍵を失うと、
-
アカウントにアクセスできなくなる
-
保有資産を永久に取り出せない
可能性があります。
秘密鍵が盗まれた場合
秘密鍵が第三者に知られると、
-
アカウントの完全な管理権を奪われる
-
資産をすべて送金される
といったリスクがあります。
そのため、
-
ハードウェアウォレットの利用
-
シードフレーズの安全保管
-
フィッシング対策
などの基本的なセキュリティ対策が重要です。
EOAの存在意義
EOAは、Ethereumネットワークにおいてユーザーとブロックチェーンをつなぐ入口のような存在です。
もしEOAがなければ、
-
スマートコントラクトは起動できない
-
dAppは操作できない
-
ETHの送金もできない
という状態になります。
つまり、EOAはEthereumエコシステムの基盤となるアカウントと言えます。
まとめ
外部所有アカウント(EOA)とは、ユーザーが秘密鍵によって管理するEthereumのアカウントです。
ポイントを整理すると次の通りです。
-
EOAはユーザーが直接管理するアカウント
-
ETHやトークンの送受信が可能
-
トランザクションを開始できる唯一のアカウント
-
スマートコントラクトはEOAからの指示で動作する
また、EOAでは秘密鍵の管理が最も重要なセキュリティ要素となります。
EthereumやDeFi、NFTなどのサービスを利用するうえで、EOAの仕組みを理解しておくことは、暗号資産の基本知識として非常に重要と言えるでしょう。
こちらもご覧ください










