This quick glossary contains many of the terms used in relation to Ethereum. These terms are used throughout the book, so bookmark this for a quick reference.
- address
-
Most generally this is the place where you receive transactions on the blockchain. More specifically it is the right most 160-bits of a Keccak hash of a ECDSA public key.
- Account
-
An object containing an address, balance and nonce, and optional storage and code. An account can be a contract account or an EOA.
- BIP
-
Bitcoin Improvement Proposals. A set of proposals that members of the bitcoin community have submitted to improve bitcoin. For example, BIP-21 is a proposal to improve the bitcoin uniform resource identifier (URI) scheme.
- Block
-
A block is added to the Ethereum network by miners and contains the block hash, number, transactions and more.
- blockchain
-
A list of validated blocks, each linking to its predecessor all the way to the genesis block.
- compiling
-
Converting code written in a high-level programming language (e.g. Solidity) into a lower level language (e.g. EVM bytecode).
- contract account
-
An account containing code that executes whenever it receives a transaction from another account (EOA or contract).
- consensus
-
When several nodes, usually most nodes on the network, all have the same blocks in their locally-validated best block chain. Not to be confused with consensus rules.
- consensus rules
-
The block validation rules that full nodes follow to stay in consensus with other nodes. Not to be confused with consensus.
- contract creation transaction
-
A special transaction, with the "zero address" as the recipient, that is used to register a contract and record it on the Ethereum blockchain (see "zero address").
- ECDSA
-
Elliptic Curve Digital Signature Algorithm or ECDSA is a cryptographic algorithm used by Ethereum to ensure that funds can only be spent by their rightful owners.
- EIP
-
Ethereum Improvement Proposals. They are standards for the Ethereum platform. An EIP is a design document providing information to the Ethereum community, describing a new feature or its processes or environment. Fore more information, see https://github.com/ethereum/EIPs See also ERC.
- EOA
-
Externally Owned Account. The are accounts created by or for human users of the Ethereum network.
- ERC
-
Ethereum Request for Comments. Some EIP are labelled as ERC …
- Ethash
-
A Proof-of-Work algorithm for Ethereum 1.0. For more information, see https://github.com/ethereum/wiki/wiki/Ethash
- Ether
-
Ether is the Ethereum cryptocurrency (ETH) to be used for paying for gas when executing Smart Contracts. Its currency symbol is Ξ, Greek uppercase letter, Xi. See also gas.
- event
-
An event allows the use of EVM logging facilities,which in turn can be used to “call” JavaScript callbacks in the user interface of a dapp, which listen for these events. For more information, see http://solidity.readthedocs.io/en/develop/contracts.html#events
- EVM
-
Ethereum Virtual Machine. The EVM is a simple stack-based architecture. In Ethereum, the execution model specifies how the system state is altered given a series of bytecode instructions and a small tuple of environmental data. This is specified through a formal model of a virtual state machine, known as the Ethereum Virtual Machine (EVM).
- gas
-
A virtual currency used in Ethereum to constrain computation of smart contracts. The Ethereum Virtual Machine uses an accounting mechanism to measure the consumption of gas and constrain (limit) the consumption of computing resources. See Turing-Complete. Gas is an unit of computation that is incurred per instruction of Smart Contract executed. The gas is pegged at Ether crypto-currency. The gas is analogous to talk time on a cellular network. Thus, the price of running a transaction in fiat currency is
gas * (ETH/gas) * (fiat currency/ETH)
. - genesis block
-
The first block in the blockchain, used to initialize a particular network and its cryptocurrency.
- hash
-
A fixed length fingerprint of a piece of data produced by a cryptographic hash function.
- HD wallet
-
Wallets using the Hierarchical Deterministic (HD Protocol) key creation and transfer protocol (BIP32).
- HD wallet seed
-
HD wallet seed or root seed is a potentially-short value used as a seed to generate the master private key and master chain code for an HD wallet.
- IDE (Integrated Development Environment)
-
An integrated user interface that combines a code editor, compiler, runtime, and a debugger.
- internal transaction (also "message")
-
A transaction sent from a contract account to another contract account or an EOA.
- message
-
An internal transaction that is never serialized and only sent within the EVM.
- miner
-
A network node that finds valid proof of work for new blocks, by repeated hashing.
- network
-
A peer-to-peer network that propagates transactions and blocks to every Ethereum node (network participant).
- node
-
A software client that is participating in the peer-to-peer network.
- Proof-of-Stake
-
Proof-of-Stake (PoS) is a method by which a cryptocurrency blockchain protocol aims to achieve distributed consensus. Proof-of-Stake asks users to prove ownership of a certain amount of cryptocurrency (their "stake" in the network) in order to be able to participate to the validation of transactions.
- Proof-of-Work
-
A piece of data (the proof) that requires significant computation to find. In Ethereum, miners must find a numeric solution to the Ethash algorithm that meets a network-wide difficulty target.
- receipt
-
Data returned by an Ethereum client to represent the result of a particular transaction, including a hash of the transaction, its block number, the amount of gas used and, in case of deployment of a Smart Contract, the address of the Contract.
- reward
-
An amount, in Ether (ETH), included in each new block as a reward by the network to the miner who found the Proof-of-Work solution.
- Satoshi Nakamoto
-
Satoshi Nakamoto is the name used by the person or people who designed Bitcoin and created its original reference implementation, Bitcoin Core. As a part of the implementation, they also devised the first blockchain database. In the process they were the first to solve the double spending problem for digital currency. Their real identity remains unknown.
- secret key (aka private key)
-
The secret number that allows Ethereum users to prove ownership of an account or contracts, by producing a digital signature (see public key, address, ECDSA).
- SHA
-
The Secure Hash Algorithm or SHA is a family of cryptographic hash functions published by the National Institute of Standards and Technology (NIST).
- Serpent
-
A procedural (imperative) programming language with syntax similar to Python. Can also be used to write functional (declarative) code, though it is not entirely free of side-effects. Used sparsely. First created by Vitalik Buterin.
- Solidity
-
A procedural (imperative) programming language with syntax that is similar to Javascript, C++ or Java. The most popular and most frequently used language for Ethereum smart contracts. First created by Gavin Wood (co-author of this book)
- transaction
-
Data commit to the Ethereum Blockchain signed by an originating account, and targeting a specific address. The transaction contains metadata such as the gas limit for the transaction.
- Vyper
-
A high-level programming language, similar to Serpent and with Python-like syntax. Intended to get closer to a pure-functional language. First created by Vitalik Buterin.
- wallet
-
Software that holds all your secret keys. Used as the interface to access and control your Ethereum accounts and interact with Smart Contracts.
- zero address
-
A special Ethereum address, with all 20-bytes as zeros, that is specified as a destination address in the "contract creation transaction".