This is a read note of Mastering Ethereum Ch02: Ethereum Basics.

1 Ether Currency and Wallet

Ethereum’s currency unit is called ether, identified also as “ETH” or with the symbols Ξ (from the Greek letter “Xi” that looks like a stylized capital E) or, less often, : for example, 1 ether, or 1 ETH, or Ξ1, or ♦1. Ethereum is the system, ether is the currency. The smallest unit is named wei: One ether is 1 quintillion wei (10 ** 18 or 1,000,000,000,000,000,000).

Ether’s various denominations have both a colloquial (common) name that pays homage to many of the great minds of computing and cryptography and a scientific name using the International System of Units (SI). Following are vuales and their common names and SI names.

  • 1 wei, wei, Wei, 10 ** (-18) ether
  • 10 ** 3 wei: Babbage, Kilowei or femtoether, 10 ** (-15) ether
  • 10 ** 6 wei: Lovelace, Megawei or picoether, 10 ** (-12) ether
  • 10 ** 9 wei: Shannon, Gigawei or nanoether, 10 ** (-9) ether
  • 10 ** 12 wei: Szabo, Microether or micro, 10 ** (-6) ether
  • 10 ** 15 wei: Finney, Milliether or milli, 10 ** (-3) ether
  • 10 ** 18 wei, Ether, Ether, 1 ether
  • 10 ** 21 wei, Grand, Kiloether, 10 ** 3 ether
  • 10 ** 24 wei, , Megaether, 10 ** 6 ether

An Ethereum wallet is your gateway to the Ethereum system. It holds your keys and can create and broadcast transactions on your behalf. Four popular wallets are MetaMask (browser or browser extension), Jaxx (mobile or desktop), MyEtherWallet or MEW (web based and mobile apps), Emerald Wallet (desktop). All are written in JavaScript.

2 Externally Owned Accounts (EOAs) and Contracts

Externally owned accounts are those that have a private key; having the private key means control over access to funds or contracts.

That other type of account is a contract account. A contract account has smart contract code, which a simple EOA can’t have. Furthermore, a contract account does not have a private key. Instead, it is owned (and controlled) by the logic of its smart contract code: the software program recorded on the Ethereum blockchain at the contract account’s creation and executed by the EVM.

Contracts have addresses, just like EOAs. Contracts can also send and receive ether, just like EOAs. However, when a transaction destination is a contract address, it causes that contract to run in the EVM, using the transaction, and the transaction’s data, as its input. In addition to ether, transactions can contain data indicating which specific function in the contract to run and what parameters to pass to that function. In this way, transactions can call functions within contracts.

Note that because a contract account does not have a private key, it cannot initiate a transaction. Only EOAs can initiate transactions, but contracts can react to transactions by calling other contracts, building complex execution paths.

Ethereum has many different high-level languages, all of which can be used to write a contract and produce EVM bytecode. One high-level language is by far the dominant choice for smart contract programming: Solidity.