16.2. Blockchain Tutorial Glossary¶
- Bitcoin
The original, and currently most popular, cryptocurrency. It is based on a distributed ledger using a permissionless system, and its consensus algorithm is built on proof of work.
- blockchain
A linked list of blocks (typically blocks of transactions) where the links include a hash value for the block being pointed to. By this means, the contents of the block (and by extension, any prior blocks in the blockchain) cannot be modified without invalidating the hash value, thereby signaling to all parties in the community that the blockchain has been corrupted. Blockchains are typically the basis of a public ledger.
- Byzantine agreement
A consensus algorithm. This algorithm has existed since long before blockchain and cryptocurrency, it is so-named because it is meant to solve a story problem called the “Byzantine Generals problem”. In a network, it is intended to reach consensus among “honest” nodes that follow the protocol, even when some of the participating nodes are “dishonest” or malicious. To succeed, it requires that 2/3 of the nodes be “honest”.
- Casper
The proof of stake algorithm used by Ethereum.
- consensus
- consensus algorithm
In a distributed ledger, the process by which a new block (typically containing transactions is added to a blockchain. A consensus algorith typically defines these major parts: How the next block is to be proposed, how the transactions on that block are validated, and how the block propogates through the network to be accepted by the community.
- cryptocurrency
An electronic currency that relies on various cryptographic services to keep it secure. Typically, a blockchain is used as the basis for a public ledger that stores transactions on the currency being maintained. Most typically, a the blockchain is implemented within a distributed ledger using a permissionless ledger system so that there is no central authority that controls the cryptocurrency. As such, a consensus algorithm is required to permit the community to update the ledger with new transactions.
- distributed ledger
- distributed public ledger
A public ledger that does not have a central controller who is in charge of adding blocks to the blockchain. Instead, a consensus algorithm is used to determine who has the ability to propose the next block, and how it gets propogated it to the community.
- Ether
The name of the actual cryptocurrency coins in the Ethereum ecosystem.
- Ethereum
A cryptocurrency ecosystem. Most notable for its use of smart contracts and its transition away from using proof of work to proof of stake to drive its consensus algorithm.
- fork
Within a blockchain system, it is a condition where different members of the community hold differing versions of the blockchain. Most often these are soft forks that will be resolved by the consensus algorithm. A hard fork is a permanent change to the blockchain that modifies previously verified blocks.
- full node
Within a blockchain network there are typically many participants, referred to as nodes. A full node stores a complete copy of the blockchain, and might also store auxilliary data structures to make search on the transaction records embodied by the blockchain easier to search. Full nodes sometimes will act as a resource for other members of the community.
- hard fork
In a blockchain, a state where the contents of the blockchain have been irrevocably altered in some way that cannot be resolved by the normal consensus algorithm. Thus, different members of the community have different versions of the blockchain that cannot be resolved by the consensus algorithm. This is in contrast to a soft fork. Hard forks are sometimes made to a blockchain system when it is adopting a new consensus protocol or other implementation change, or recovering from a hack or other catastrophic corruption of the blockchain’s contents.
- ledger
Within the context of a blockchain system, a ledger is a record of transactions on some resource, such as a cryptocurrency. Such ledger systems are generally public, and might also be distributed.
- Merkle proof
An efficient means of proving that a transaction is legitimate, accomplished with just \(O(log n)\) nodes where \(n\) is the number of nodes in a block. This is done by moving up the path from the transaction to the root of its containing Merkle tree.
- Merkle tree
Similar to a blockchain, except it is a tree structure. Specifically, a Merkle tree contains a collection of transactions organized into a binary tree, where the pointers each have an associated hash value. Given the correct hash value for the root of the tree, no transaction in the tree can be modified without invalidating the hash values along its path to the root.
- miner
- mining
In a cryptocurrency that uses a consensus algorithm based on proof of work, a miner is an entity that attempts to gain the right to add transactions to the cryptocurrency’s blockchain. This is typically done by consuming computing resources (thereby “proving” that they did “work”) to guess a successful nonce value.
- NFT
- Non-fungable token.
Something that is unique and cannot be duplicated. A common form of this is a digital record of ownership, typically of a digital object such as an image or data. While the digital object can still be copied, the fact of ownership embodied in the record of ownership is intended to be unique. NFT is in contrast to a fungable token, which is an interchangable, non-unique object. In a cryptocurrency context, a fungable token is most often a coin in the cryptocurrency itself.
- nonce
A value added to a block of data that will cause the hash code for the resulting data (that is, the original data augmented by the nonce) to have a particular property (typically that the resulting hash code be less than some value). This is typically used in a consensus algorithm based on proof of work to control whether a given participant is permitted to propose a block to be added to the blockchain. The miner will guess at nonce values until they hit on one that causes the hash value to meet the property, thus expending effort (the “proof” of work).
- permissioned ledger system
- permissioned system
A public ledger where only certain entities are permitted to update the ledger. Generally, this is a simpler system to implement than a permissionless ledger system, which is typical for a distributed public ledger.
- permissionless ledger system
- permissionless system
A public ledger where anyone is potentially permitted to update the ledger (though they might need to perform specific actions to do so, see proof of work and proof of stake). Distributed public ledgers are typically permissionless in this sense.
- proof of burn
An uncommonly used basis for a consensus algorithm.
- proof of capacity
An uncommonly used basis for a consensus algorithm.
- proof of stake
Within a consensus algorithm for a distributed ledger, Proof of Stake is a way that a person or group can claim the right to propose the next block of transactions to be added to a blockchain. It’s name comes from the fact that making this claim involves putting up a stake (typically in the form of some cryptocurrency or other resource that is being managed by this distributed ledger). Proof of Stake is used, for example, by the Ethereum cryptocurrency. It is in contrast to using proof of work as the mechanism for claiming the right to propose the next block.
- proof of work
Within a consensus algorithm for a distributed ledger, proof of work is a way that a person or group can claim the right to propose the next block of transactions to be added to a blockchain. This is done by expending resources (work, typically in the form of compute cycles) to solve a problem (most typically, guessing numbers for a nonce until one with the right property is stumbled upon). Proof of Work is used, for example, by the Bitcoin cryptocurrency. It is in contrast to using Proof of Stake as the mechanism for claiming the right to propose the next block.
- public ledger
A ledger (collection of transactions and resulting account balances) that is public, meaning that anyone within a certain community can see the series of transactions. To protect the public ledger from malicious changes, it is often built on a blockchain. A simple public ledger will have some authority that has permission to add new blocks to the blockchain (adding transactions to the ledger). A distributed ledger is public, but has no such central authority. Instead, blocks of transactions are added to the ledger by means of a consensus algorithm.
- public-key cryptography
A authentication scheme for identifying that a given entity sent a message, or is able to receive a message meant for them. It is based on a pair of matching keys. Given a message, one of the keys can encrypt the message so that the other can decrypt it. Typically, an entity will publish their “public” key, and keep secret their “private” key.
- simple payment verification
A process of verifying that a given transaction claimed to be in a block on a blockchain is really legitimate. A part of this process is to make sure that the transaction is properly tied into a Merkle tree by means of an efficient Merkle proof.
- smart contract
A type of non-static transaction on a public ledger. Essentially a program written in a special-purpose programming language for the purpose. Examples of smart contracts include transfer of ownership for things aside from simple transfer of cryptocurrency (particularly popular is transfer of ownership of NFTs), or a longer-term series of transactions such as paying rent on a regular basis.
- soft fork
In a blockchain, a state where different members of the community have different versions of the blockchain. Ideally, this is a transient state caused by the fact that a network is not instantaneous, and that will get resolved by the consensus algorithm. This is in contrast to a hard fork, where the contents of the blockchain have been irrevocably altered in some way that cannot be resolved by the normal consensus algorithm.
- thin node
Within a blockchain network there are typically many participants, referred to as nodes. A thin node stores very little information beyond that immediately of interest to the owner of the node, such as the current account balance and transactions involving that owner. A typical example of a thin node is a wallet for a cryptocurrency. A thin node is in contrast to a full node, which contains a complete copy of the blockchain.
- transaction
An agreement to transfer something. Simple static transactions are simply of the form that account A transfers something of value to account B. Smart contracts are a form of transaction implemented in a programming language, and so can be more complicated. In a blockchain based system, to allow more efficient processing, transactions typically conform to the UTXO model.
- Unspent Transaction Output
- UTXO
A model for defining transactions in a public ledger. A simple static transaction might be “Alice pays Bob 10 coin”. If transactions look like this, then computing the current balance for an account requires finding all such transactions throughout the blockchain. Under UTXO, if Alice has 25 coin, the transaction will look like “Alice pays Bob 10 coin. Alice pays Alice 15 coin.”, thereby accounting for all coin currently in the account. In this way, an account balance is known by seeing only the most recent transaction.
- wallet
Within the context of a cryptocurrency, this is a digital system that maintains information about someone’s account. It is a classic example of a thin node that maintains only the minimal information necessary related to the associated cryptocurrency (that is, the account balance and information about associated transactions). If the cryptocurrency is built on a a distributed ledger with no central authority to manage it, then losing the password or key to the ledger makes any resources owned by the account permanently inaccessible.