見出し画像

【完全保存版】イーサリアムのアドレスとアカウントの違いを理解しよう!

0 はじめに

本日は、こちらのPDFを元に、アカウントやアドレスの違いを説明をします。

https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf

1 アカウントとは

では、こちらの「アカウント」を見てみましょう。

1 構成

このように、「アドレス」「アカウントステート(状態)」が紐づいています。

この2つをまとめたものが「アカウント」です。

「アドレス」はその名の通り、「アカウントステート」の場所を示す住所の役割です。

2 アカウントステートについて

では、「アカウントステート」を見てみましょう。

下のように「ノンス」「バランス(残高)」「ストレージハッシュ」「コードハッシュ」4つから構成されています。

「ノンス」トランザクションの重複を避けるために使われる数字です。

「バランス(残高)」はその名の通り、そのアカウントが持つ残高です。

3 EOAとコントラクトアカウントについて

ここで、「EOA」「コントラクトアカウント」について見ていきましょう。

「EOA」メタマスクなどで作られるアカウントです。

一方、「コントラクトアカウント」コードから作られるアカウントです。

「EOA」の操作には秘密鍵が必要です。

一方、「コントラクトアカウント」コードを持ち、値を格納する「ストレージ」を持ちます。

4 アカウントステートのそれぞれの構成要素について

先ほどのアカウントに戻りましょう。

EOA「ノンス」「バランス(残高)」のみを持ちます。

一方、「コントラクトアカウント」「ストレージハッシュ」「コードハッシュ」も持ちます。

「ハッシュ」の概念がご不明の場合は、「ストレージ」や「コード」を短くまとめたものというイメージで良いと思います。

2 ワールドステートについて

1 概要

次に、これらの「アドレス」「アカウントステート」がどこにあるのかも見てみましょう。

イーサリアムの場合は、「ワールドステート」に格納されています。

ここに、全てのアカウントの状態が記録されています。

2 トランザクションとの関係性について

そして、この「ワールドステート」「トランザクション」という処理によって常に変更し続けています。

例えば、「AからBに3ETHを送付する」というトランザクションが実行さレたとします。

その場合、「ワールドステート」内のAとBのアカウントが変化します。

3 ブロックとの関係性について

そして、実際には、トランザクションは下のように、「ブロック」にまとめられます。

4 ステートチェーンについて

このように、「ブロック」というチェーンによって、「ワールドステート(状態)」変化していきます。

そのため、イーサリアムは「ステート(状態)チェーン」と見ることもできます。

5 ブロックチェーンについて

「ブロック」の視点に立つと、「ブロック」がチェーン状になっています。

そのため、「ブロックチェーン」となります。


今回は以上です。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊