I created an Ethereum node (geth) and this automatically created an Ethereum account. Is this account an Ethereum wallet? I then created 2 other accounts using personal.newAccount() command. Are these accounts or wallets?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
Terminology is not strict enough, but in
account is used for so called externally owned accounts, i.e. Ethereum addresses derived from public keys (address is basically last 20 bytes from keccak256 hash of 64-byte uncompressed public key). Such address may be a transaction origin, i.e. Ethereum transactions may be published from such addresses, signed by a private key that corresponds to a public key the address was derived from.
In contrast, word
wallet is often used for smart contract that is able to execute arbitrary Ethereum transactions when told to do so by wallet's owner. Here owner is another Ethereum address that is eligible to issue orders to the wallet. Usually, wallet allows its owner to transfer ownership to another address, which allows owner of the wallet to change private key without changing wallet's address and without transferring any assets.
Both, accounts and wallets may receive, store, and send Ether and tokens. Both may control smart contracts.
Account is controlled by private key, and there is no way to change private key (e.g. when suspected to be compromised) without changing address and transferring all the assets from old address to the new one. New accounts may be created for free. Account may be used to deploy smart contracts.
Wallet is controlled by another Ethereum address, that could be account, another wallet, or arbitrary smart contract. It is possible to change controlling address without changing wallet's address. Wallets creation requires some fee to be paid. While it is possible to design wallet smart contract that is able to deploy new smart contracts, common implementation usually does not have such feature.
There are two types of Ethereum accounts:
The 1st type is used only for transferring Ether to and from.
The 2nd type is used also in order to implement desired functionality.
What you refer to as wallet is most likely the 1st type, which means that in your question, the terms wallet and account are equivalent.
In both types, the address of an account is a hexadecimal string of 40 characters.
However, in opposed to externally-owned accounts, a smart-contract account doesn’t have a known private key when created, because the address of an externally-owned account is generated from its private key, while the address of a smart-contract is generated by hashing the address of the account used for deploying it.
In order to allow transferring Ether to a smart-contract account, the author of this smart-contract must implement
function() external payable (aka the fallback function).
In order to allow transferring Ether from a smart-contract account, the author of this smart-contract must implement a function which does it (in opposed to an externally-owned account, where you "only" need the private key).
To put it simple:
In order to interact with ethereum network (blockchain) you need an account. This is an externally-owned account as @goodvibration explained. That account consists of public and private key-pair. Your ethereum address is basically part of your public key and you use your private key to sign transactions in order for them to be executed on chain.
The wallet is more of a way you store your key-pair(s). You can keep your key-pair on some server (commonly referred as hot wallet), on your PC (just what you did when you created account via geth) that is cold wallet, then you can keep it on piece of paper, carved in the wood...you also have something called HD wallet...and it goes on. Some wallets just keep your key-pairs while some other provide features like signing transaction, exchange...etc.
So in your case geth acts as, sort of, a wallet.
Hope I hit the point of your dilemma :)