本文へ移動
中級者用語を調べる

アカウントモデルとは

執筆
CRYPTO PORT 編集部
公開日
更新日
読了目安
5 分

結論

アカウントモデルは、アドレスごとに残高の数値を保持し、送金のたびにその数値を増減させる方式です。イーサリアムが採用しており、スマートコントラクトが状態を持ち続けられるのはこの設計によります。UTXO方式との最大の違いは、「残高」がデータとして実在することです。

要点

  • アドレスごとに残高とナンスを保持する方式
  • 送金は残高の減算と加算として処理される
  • コントラクトアカウントはコードと保存領域も持つ
  • 同じ内容の取引はナンスで区別・再実行を防ぐ

定義

チェーンの状態をアドレス単位の残高として保持し、取引によってその値を更新する方式。イーサリアムをはじめ多くのスマートコントラクト対応チェーンが採用する。

イーサリアムには2種類のアカウントがあります。秘密鍵で操作する外部所有アカウント(EOA)と、コードを持つコントラクトアカウントです。どちらも残高とナンスを持ち、コントラクトアカウントはさらにバイトコードと永続的なストレージを保持します。チェーンの状態とは、これら全アカウントの集合です。

送金は「Aの残高から引き、Bの残高に足す」という状態の更新として表現されます。UTXO方式のようにお釣りを作る必要がなく、残高を直接読めるため、貸付や自動売買のように「現在いくらあるか」を参照するコントラクトが書きやすくなります。

同じ相手に同じ金額を2回送ると取引データはほぼ同一になるため、区別する仕組みが要ります。そこでアカウントごとのナンスが使われ、送信のたびに1ずつ増えます。これにより、同じ署名済み取引を第三者が再送信しても2度目は無効になります。

注意点

  • · 残高が直接読めるぶん、コントラクトの不具合で状態が壊れると影響範囲が広い
  • · UTXO方式と手数料の考え方が異なり、実行に使った計算量(ガス)で費用が決まる
  • · 同じアドレスが複数チェーンで使えても、残高はチェーンごとに別物であり移動はしない

関連通貨

次に読む

仮想通貨診断

いくつかの質問に答えるだけ。結果はその場で表示されます。

診断をはじめる