Have you ever read a news article or post about blockchain or cryptocurrency and found yourself googling a bunch of the terminology you’re reading just so you can get through the post? Or even worse, have you stopped reading because there’s too much jargon (*gasp!*)? Well worry not, this post will be continuously updated with terminology used frequently in this space so you will never feel lost!
If there are any terms you want added, feel free to post a comment and let me know. 🙂
Node – A node is any computer or device representing a user on the blockchain. In order to connect to the blockchain, a user must run the blockchain’s code on their computer to start up their node. Think of it like running an app on your phone, you have to start the app and connect to get started! There are also different types of nodes, of which two are important to know: full and lightweight nodes.
Full Node – Each user on the blockchain is represented by a node on the network, and each computer that connects to the blockchain is considered a node. A full node is defined as a node that keeps a full copy of the entire ledger and helps ensure the enforcement of the protocol rules of the network. These rules consist of things like how many network tokens (cryptocurrency) are created with each block, the signature on the transaction must correspond to the node that owns the coin(s) being sent, the same coin(s) cannot be spent twice (double spend), etc. These full nodes lend computing power to the network, and are not suitable for mobile devices or less capable hardware, but are the most secure and private way to interact with the blockchain.
Lightweight Node – Each user on the blockchain is represented by a node on the network, and each computer that connects to the blockchain is considered a node. A lightweight node differs from a full node in that it does not keep a full copy of the ledger nor check for the enforcement of all of the rules. Consider a lightweight node in most cases as a wallet that is designed to submit transactions and only pull the information from the ledger that it needs to complete transactions. These nodes are intended for mobile devices or less capable hardware. Lightweight nodes, however, are susceptible to more attacks than full nodes are.
Block – A block is a timestamped batch of transactions, and a block can only be created through the process of consensus. A new block is formed at a designated average interval of time depending on the network protocol. Each block has a maximum size constraint, usually in the 1-2MB range. Each new block has a reference to the previous one, forming a connected chain of blocks.
Block Size – Each block of transactions has a maximum amount of storage that depends on the rules of the network, most are within the 1-2MB range. The number of transactions that fit into one block depends heavily on how much data the transaction holds, for example, the average block on the Bitcoin network holds around 1750 transactions of a relatively small data size.
Hash – A hash is the result of an algorithm called a hashing function that encodes variable size data into a fixed size data, for example, my name Forrest Colyer can be put into a hashing function as data and the output is “205c56db6609e02ee4d7e3e2779b83ff5d5231344b1d5305b1c413b8b039a2a0”, a fixed size 32-byte piece of data. This output is unreadable to human eye and better yet, it is untraceable back to the original data, meaning that hashing is a one-way function. The output cannot be reversed to show the input. Hashing, for this reason, is used to protect passwords, codes, and the like. One crucial detail here is that if I change one tiny piece of the input, the entire output changes. For example, if I add an extra “r” to my name, the entire hash value output would change but it would still be exactly the same data size (32 bytes). Cool huh? Blockchain relies on hashing heavily, so keep this concept in mind! One example of a hashing algorithm is SHA-256, which is the algorithm that I hashed my name with above. It is a commonly used algorithm for blockchain.
Block Header – The header of a block is like the nametag for the block, it holds a hash value (see “hash” above) that serves as the address or reference number for the block itself, the hash value of the previous block in the chain, a timestamp representing its creation, an arbitrary number called a nonce for proof-of-work, the latest cryptographic puzzle difficulty level, and finally the version of the blockchain software it is running on.
Address – An address is the public key hash value that represents each node on the network, this is the address to which transactions are sent
Asymmetric Encryption – asymmetric encryption is a method of secure data exchange that utilizes a pair of keys, a public and private key. This allows for better security because the encryption and decryption processes are handled by different keys. The public key is the encryption key and the private key is the decryption key.
Public Key – the public key is one of the cryptographic keys used in asymmetric encryption; a user’s public key is widely shared and used to encrypt and send messages to the user. Remember: public key is public and shared, it’s like your username
Private Key – the private key is one of the cryptographic keys used in asymmetric encryption; a user’s private key must be kept safe, secure and never shared! The private key and public key for a user are mathematically linked, therefore any message encrypted with a user’s public key can ONLY be decrypted and read by the private key it is linked to. Remember: private keys are private and protected, it’s like your password.
Scalability – scalability refers to the volume of users and transactions a blockchain network can handle efficiently; this is becoming more and more of a hot topic as popularity of blockchain grows and more people use the networks
Satoshi – A satoshi is the smallest denomination a Bitcoin can be broken into at , named after the creator of Bitcoin, Satoshi Nakamoto.
State – the term “state” refers to the state of a variable or the system at large, for example a transaction can be in a verified or unverified state
Zero-Knowledge Proofs – a zero-knowledge proof is a technique for sharing the state of information or proof that a proposition about that information is true without having to share the information itself. By that hand, a zero-knowledge proof must meet three basic requirements to work: it must give a complete, undoubted proof that a proposition about information is true, it must not be able to be spoofed, letting a fraudster convince someone that a false proposition is true, and finally, it must not reveal any of the sensitive information. Think of it like this: if I wanted to prove that I’ve paid for a good or service, I can use a zero-knowledge proof to show proof that I have paid without showing the details of the transaction.
Consensus – consensus is the process by which the nodes on the blockchain network agree on the blocks of valid transactions that are created; this means that consensus operates as the ruleset that the network abides by and helps facilitate agreement on the creation of new blocks and the “state” of the network
Proof-of-Stake – Proof-of-Stake is an alternative to proof-of-work in which the nodes on the network that hold more value (hold the most network tokens) have more weight to their vote on the latest block of valid transactions. This operates under the assumption that those with the highest stake in the network have the most to lose by cheating the network, as they hold immense wealth in the network tokens and if the network fails it devalues their tokens, thus those with the most stake will vote for only valid blocks of transactions. There are several implementations of proof-of-stake but this is the simplest version; note that this approach does raise questions of tragedy of the commons (over-powering the rich).
Proof-of-Work – Proof-of-Work is defined as a piece of data that is time consuming and/or costly to obtain but easy to verify against a set of pre-defined conditions. Using this concept for consensus, blockchain protocols like Bitcoin and Ethereum leverage the computing power of miners (nodes on the network who choose to do this) to iteratively compete to solve a cryptographic puzzle whilst simultaneously verifying transactions and organizing them into blocks. The winner of the cryptographic puzzle for each “round” broadcasts their answer to the network for quick peer verification, after verification of a correct answer, the miner gets the right to mine their block of transactions and are rewarded for their work, then the process repeats. In this case, the “work” is the answer to the puzzle that the miner has solved; it satisfies both conditions of being costly and time consuming (time and processing power/electricity) but it is also easy for peers on the network to plug in the answer and see that it meets the rules of the network. The miners are rewarded for this work, and thus incentivized to do the verification on the network that would otherwise be done by an intermediary. Because these miners are paid in network tokens (bitcoin, ether, etc.) they are dis-incentivized from cheating the network because failure of the network would devalue the currency they are being paid with. It’s a mini-economy designed to run without a central authority.
Proof-of-Authority – Proof-of-Authority is a lite alternative to other methods of consensus, and is mostly used in private blockchain networks where all of the nodes are vetted before being allowed to join the network and thus already have a built in level of trust for one another. Proof-of-Authority essentially gives vetted nodes authority to issue transactions with impunity, and blocks are created on a set interval of time. These nodes are all vetted ahead of time, thus the parties using those nodes are ultimately held accountable for any transactions they issue to the network with their authority to issue transactions, thus they are likely to operate properly under this scrutiny. Other implementations of proof-of-authority integrate voting, where authority nodes vote on what blocks are mined (think best 3 out of 5 wins).
Nonce – A nonce is a one time use arbitrary number (“n” = number + “once” = one time use) that serves as one of the variables that miners work with to solve the cryptographic proof-of-work puzzle. Think of a nonce as the variable in an algebra problem, to get your answer, you plug in numbers to that variable. For example, if you want to use the equation 2x + 10 to find an answer that is less than 50, you would plug in a few numbers to x to test it out. A nonce works the same way! Miners plug numbers into the nonce and try to get the right answer to solve the proof-of-work puzzle.
DAG – a DAG is short for a directed acyclic graph, this mathematical phenomenon is what allows lightweight clients to effectively interact with the blockchain network. The DAG is a dataset that allows even a small 16MB cache of blockchain data pertaining to the last several blocks is enough to allow a lightweight client to understand the ledger in full without having to store the entire ledger.
Sidechain – A sidechain is essentially a separate blockchain that runs in parallel to the “main chain”, in an attempt to scale blockchain to extremely large levels – the sidechain feeds its “state” to the blockchain, allowing many transactions to be offloaded from the main chain to several side chains. Think of this like load balancing.
Transaction Malleability – transaction malleability refers to the ability for malicious actors to change the digital signature of a transaction between the time a transaction is created and when it is written to a block in an attempt to steal funds or double spend. Segwit is one mitigation of this issue.
Segwit – Segwit is short for segregated witness, which refers to the separation of the transaction digital signature from the transaction body in an attempt to reduce the overall data size of transactions as they go into blocks. Segregated witness is one of the scalability improvements for blockchain, allowing more transactions to fit in each block. Segregated witness also helps prevent transaction malleability issues as the digital signature no longer factors into the transaction hash value.