Are the terms Account and Address in Ethereum used interchangeably? i.e., an Account is an address. An address points to an account
2 Answers
In practice, yes.
Within accounts, you have a distinction between internal and external accounts.
Internal accounts are contract accounts.
External accounts are linked to private keys.
In both cases, addresses are used to refer to the accounts.
The Constantinople hardfork will lay the ground for a "all accounts are contract" base, which would eventually allow fees etc. to potentially be paid with tokens.
-
why is there a need to move towards an all account are contract based? Aug 2, 2018 at 3:43
-
Are they used interchangeably in practice?
Yes.
Should they be?
🤷
Do they actually mean the same thing?
No.
An account generally means the thing that has the ETH balance, the thing that you send a transaction from, the thing you deploy a contract from, etc. The account can be "external", aka comprised of a keypair (private key + public key) or it could be a "internal", aka a contract account, which has no private key associated with it and is controlled via other external accounts or simply holds information.
An address is a very specific string that consists of 0x
+ 40 hexadecimal characters
and is used to identify an account.
In the case of 'normal' (external) accounts, this address is derived by taking the private key, generating the public key from the private key, and then generating the the address from the public key.
In the case of contract accounts, the address can be derived from the deploying /
sender's address + nonce
or, because of EIP 1014: Skinny CREATE2 that was included in the Constantinople hard fork in early 2019, via another combination of data.