A New Investor's guide to Crypto terminology Part 1
This is a new blog series that is to serve as a guide for providing investors with basic or intermediate level knowledge of the cryptocurrency space. For those who are uncertain of crypto terminology they find in either documents, or forums and are unable to understand their significance, this series will hopefully provide sufficient clarity.
Other sources of information and definition can be found at investopedia.com.
The blog will be structured to explain terminology and provide adequate examples of each word in context. Each terminology is assigned a personal designated category serving as either basic knowledge, or intermediary.
This is the process of taking simple text or information and converting it into one that's complex. The purpose of this is to stop someone from deciphering sensitive information.
In a sense its creating a puzzle that very few devices or people at any given moment in time should be able to solve, let alone it's creator.
The concept is not new to modern civilisations and dates as far back as ancient Egyptians whom used hieroglyphs (a form of text in which pictures were used to form sentence structure) to preserve information for future generations.
A hash function is as an algorithmic formula that converts a large value to a short fixed value.
This has been adapted for numerous purposes in and out of computer science such as compression - in which any size length of text (this is known as the input) will be converted into a fixed size (known as the hash value).
Computerised Cryptography also uses a hash function- in which large sums of text (personal information) is converted into coded text (this can be a string of fixed numbers or letters). The enciphered (coded) text can be stored i.e. on a blockchain, and then when it is needed to be deciphered (via mining) it can be converted back into the original form.
Hash functions were developed to reduce the amount of computer memory required to store large files (compression). However a secondary solution arose from the inception of the hash function. As it is able to produce a unique hash value this opened the doors for computerised cryptography.
Hash functions were also used to help build structured query tables (a table used as a database to help assort information), as their unique hash value really helped to identify key items as a tag for large strings of information.
In relation to blockchain, every transaction made on the network is recorded as an input and goes through a hash function, in which a hash value is produced (block).
As the hash functions is deterministic, this means if you push the exact same input (piece of information) through the algorithm you will get the same output (hash value).
This algorithm is used to create what is widely known as a private key in cryptography. These cryptographic keys are used for encryption and decryption of data. A singular cryptographic key will be created and will be used for this purpose.
In relation to blockchain and the cryptocurrency space, this form of encryption isn't widely used due to security complications, as well as the inability to scale to a large number of users. The more commonly used purpose would be for a private (permissioned) distributed ledgers i.e. instead of an open network like bitcoin in which anyone can participate, it would be a network between two private companies, or divisions within a company that would be sending between themselves tokens.
This algorithm is associated with generating public and private keys in cryptography. One key is used for data encryption whilst the other is used for data decryption. The private key is kept secret by the owner. The public key is accessible and easily distributed to the public. The private key prevents open access to wallets holding the tokens.
This algorithm is commonly used in permission-less blockchain networks, in which a wallet will have a public key from which will be used as the address in which anyone can send a message (containing funds) to or from across the network. However a unique private key is stored in each wallet and can't be seen by the owner, instead they will be given a seeded phrase (presumably the input) in which they must keep safe. Unless someone has the seeded phrase, they will not be able to access the funds and move them. This is also why it is essential to have your tokens off of an exchange as only the exchange has the private key to the wallet holding the funds, and therefore in turn is the actual owner.
A form of distributed Ledger Technology in which transactions that occur on a network are added in chronological order. A block is a single unit on the network, but may contain in itself numerous amounts of transactions, and will have four key characteristics (imagine each face of the block possessing each a single feature):
- Data (relating to the transaction i.e. time/date/ addresses parties involved)
- The previous block's hash value (this allows them to be linked in chronological order)
- Nonce (means "number only use once"... not the other thing), is essentially a random number which is added to a block that has been encrypted (hashed). That block once having been given a random nonce number is hashed again. It's purpose is to authenticate the block as the original, so that when a miner finds it and submits it to the blockchain, it is not being repeatedly added. Miners must find the original nonce number and submit the correct hash value for that block to be added to the blockchain. This method prevents the notion of a double spend in which two or more miners can not just be rewarded for doing the same work over and over again.
- Hash value. This is produced by passing the previous blocks hash value; the data and the nonce through the hash function algorithm. This will give the new block an original signature.
As previously stated, not all distributed ledger technologies are blockchain, so they may use a different method when building their network. However this first concept was introduced via bitcoin in 2009. In brief to explain the process, when an exchange of tokens occurs from one person to another i.e. via token transfer, that transaction is submitted as a new block to the blockchain. The transfer of the token will remain stuck and inaccessible by either the receiving party or the person transferring until it is confirmed as to be part of the blockchain. A miner will look at the block and have to run the hash value of the block and a correct nonce number (there is an infinite amount of numbers this could be) through a computer powerful enough to find the correct number. When that transaction is confirmed, the miner will be given a reward for their effort and the transaction will be added to the blockchain, and the person receiving the bitcoin will have it deposited in their wallet.
This is a digital database system to record details of transactions that occur in different locations and at different times. Distributed ledger technologies are decentralised in which no central party is in control of all the network.
Distributed ledger technologies are not all blockchain, but all blockchain are distributed ledger technologies. Distributed ledger technology was introduced to the world in 2008 by Satoshi Nakamoto in his project Bitcoin.
(infographic from 101 Blockchains- click image to go to the website)
A way to think of how distributed ledger technology in relation to blockchain is to imagine five people ( named A-E) playing a game in which they pass money around the table. Each person is asked to record on a piece of paper the exchange of money between different people, every time it happened. They must include a time, date, location and the people involved. At the end of the night everyone hands out the money that was owed to each person (Sounds simple right?). Well instead of using records of paper, the information is stored on nodes that anyone across the world can host. A decentralised network in which information on the network is sent to each node, and each person hosting the node is rewarded when they confirm a transaction. Once confirmed that block of transactions is added to the chain on the network.
These days it is worth noting that miners will work together and form a mining pool and each pool will contribute to a single node and the rewards are distributed evenly.
Now the issue arises in relation to participants on a network (those who are running nodes). What if they confirm incorrect information? Wouldn't that mean all information on the network is compromised? Are we no longer trusting the networks and having to put our trust in a limited number of validators?
Consensus (general agreement) in blockchain is reached when all validators of a node (hosts) confirm a transaction. Different mechanisms of consensus have been formed since the original conception in 2008 with bitcoin on how to deal problems in maintaining data integrity and scalability. Different distributed ledgers have formulated their own mechanisms of consensus to overcome these issues as well.
There are at least ten different consensus mechanisms (potentially many more to be developed) that I will cover very briefly.
1. Proof of Work:
This is where members of a network (miners) work together to solve the mathematical formula required to decrypt a block and submit it to validators. However this method is susceptible to 51% attacks in which if the majority of the hash rate (miners or pools of miners in existence) is controlled by a single party they can block transactions or double spend (submit the same block to the network twice). Furthermore, there is the issue of energy wastage as only one miner, regardless if working in a pool, can be rewarded from decrypting the block, in turn this means all the other energy expended by miners was wasted when trying to mine that same block.
Examples of tokens using currently as of the time of writing, this protocol: Bitcoin; Ethereum (planning to migrate to proof of stake); Monero; Litecoin; Dogecoin; ZCash. (Worth noting that though they use proof of work, some don't use the same hash function)
2. Proof of Stake:
An alternative to proof of work, developed by Scott Nadal and Sunny King, in which a deterministic algorithm will validate transactions on a network based on the amount of tokens a validator is holding. The Validator holding the required amount of tokens will be selected at random via the algorithm and receive the transaction fee as a reward for correctly validating the block of transactions, the rewards are not immediately distributed until the network confirms that the validations were correct. To dissuade bad actors on the network, if an incorrect transaction is validated, the validators tokens (the required amount they put up for collateral) will be slashed, as well as the rewards they earned. This incentivises good behaviour. However, if a validator does not turn up to validate a transaction then a block will not get validated until new one is chosen. Furthermore, proof of stake inherently incentivises the play to win philosophy or rewards the early investor, in which those who hold the most tokens are likely to get selected and earn the rewards, in turn growing their wealth and increasing the amount of tokens they earn... in turn increasing their chance to get selected...
Cryptocurrencies currently using Proof of Stake: Binance Coin, Polkadot, Solano, Algorand and Cardano
This is a variation of proof of stake in which people who usually wouldn't hold the required amount of tokens, can delegated their tokens in a pool (similar to bitcoin miner's method) and elect delegates to validate the block, this will be usually 20-100 for each cycle (cycle might be 24 hours). A physical transfer of tokens does not occur, any user can utilise a staking service provider to add their tokens to a pool.
This method was first developed in 2014 by Dan Larimer (former chief technology officer of EOS). Cryptocurrencies that are currently using this consensus mechanism are EOS; TRON; TEZOS; ICON; BitShares
Everything from this point forth will be what I personally categorise as intermediary knowledge. This will continue on from the section pertaining to consensus mechanisms and will later delve into the different blockchain layers.
This is a consensus mechanism that was introduced in the late 90s by Miguel Castro and Barbara Liskov. This mechanism allows for a distributed network to still reach consensus even when some of the nodes in the network fail to respond or respond with incorrect information.
The Byzantine problem was explained in 1982 in a Microsoft Research Paper:
There were four main types of Byzantine Failures that needed to be solved:
Failure to return a result
Failure to respond with correct result
Deliberately responding with a misleading result
Responding with a different result to different parts of the system (network).
Practical Byzantine Failure Tolerance works as such:
A user on the network will send a request to a primary (leader) node. This primary node will relay the request to all the secondary (backups) nodes. Both the primary and secondary nodes will perform the request and send a reply back to the user of the network. The request is deemed successful when the user receives below the number (m) of allowed faulty node responses i.e. from different nodes on the network. E.g. If "m" is 5 then for the request to be deemed successful and be carried out less than 5 faulty responses need to be submitted. However if more than the number "m" is submitted then the request is denied. This would mean the network has been compromised.
The primary node is changed every consensus round if there is a (predetermined) amount of time that has passed on the network without a message being relayed to the secondary nodes.
If it is also needed, the majority of the honest acting nodes on the network can vote on the legitimacy of the primary node leader.
It should be noted the premise behind this consensus mechanism however relies upon the primary leader node being honest, if the leader is compromised then regardless of the secondary nodes actions they will have been given incorrect information, therefore there are multiple primary nodes at any given moment.
Cryptocurrencies/ platforms currently using this method of consensus are: Zilliqa (alongside proof of work consensus); Hyperledger Fabric; True Chain.
An alternative consensus mechanism which was developed by Ian Stewart, with the aim to counter the high energy consumption used in the proof of work system. The concept works on the basis of providing validators of nodes with a different incentive to mining, burning tokens for greater chance in accumulating rewards.
Proof of burn requires miners to burn their own tokens by sending them to a burn wallet address. This wallet is unusable and in practically they are not really burned, just removed from the circulating supply. The incentive by doing this is that the more tokens they send to the burn wallet, the higher the probability of being chosen by the network algorithm to mine a block. Correctly validating transactions means they will gain more tokens as a reward. This decentivises bad acting as an incorrect validation would result in burning their own tokens pointlessly.
This is also a counter to proof of work in which more electricity is required to be used to mine just a single block. In this case instead of burning electricity you are required to burn your own tokens for a better chance at mining. A reduction in the circulatory supply also in hand will drive up the value of each token due to scarcity.
Personal opinion? (Side note these are just my own opinions on the concept)
I personally have thought of multiple problems to this very unique concept. The first being this mechanism relies on there being a high enough float of miners at any given moment to sustain the burn rate and maintain scarcity relative to demand. If there are not enough people reducing the supply, then there must be a sustained emphasis on creating demand for the token else the value will suffer.
Furthermore, there is no incentive for a miner to be an active participant. A person may mine in the beginning to receive an a large amount of tokens in the beginning and therefore let other members on the network do the work. This could lead to a drop off in mining activity over time as miners don't feel the need to risk their tokens.
Tokens such as Binance coin burn their tokens periodically but the only token using it officially is Satozhi on Binance Smart Chain.
This is a consensus mechanism that was developed outside the scope of blockchain by Jules and Kaliski in 2007 and has been researched by Microsoft, in which the premise resolves around a protocol that would allow for a node or server to prove to user that a file is intact and stored correctly as well as can be retrieved from the server with a high probability, furthermore with the usage of an extractor that can reconstruct the file given the algorithm to do so by the user who is able to respond to a high degree of challenges. Jules and Kaliski proposed the usage of symmetrical keys (this is a private key that's main usage is in private networks) and spot checking models for detecting adversarial behaviour (bad acting). The spot checking would act like security questions in which the user must answer correctly to access the file or to have samples of the file returned to them. Jules and Kaliski suggested their own spot checking method in which the network would assume the adversary would respond correctly to a fraction of the questions, therefore the network should propose randomly chosen challenges. This is because the normal model of spot checking can only detect a fault when a large sample of questions have been answered incorrect, on the other hand in their model only a few challenges needed to be incorrect for the user to be flagged up on the network.
For other sources pertaining to the consensus checkout the explanation given in this paper.
This is a system known as "harvesting," used to determine eligible users that will perform the mining to add a new block to the network and receive the associated payment. Miners are prioritises on a basis of number of transactions they have in the cryptocurrency they are mining in. The more transactions made to and from the miners wallet the higher that miner's chance at being given the task of mining a block. Transaction fees for the block are rewarded to the miner. The consensus mechanism is regarded as a counter to proof of stake, citing that proof of stake rewards the rich or the early investor with more tokens, essentially creating a pay to play system. However it could be argued that proof of importance is not that much different in which miners who make larger and more frequent transactions will have a greater chance in being chosen to mine a block.
Currently cryptocurrencies using this consensus mechanism are NEM.
This is a consensus mechanism developed to overcome the energy inefficiencies seen in proof of work. The underlying mechanism of proof of capacity works to utilise the free space in a node (which will contain all information pertaining to the network) to mine the available blocks on the network. By storing a list of all possible nonce calculations to breakdown each block on the node's hard drive prior to mining activity started, little to no energy is utilised by the mining device to make those calculations to begin with. The more space available on a node's hard drive then the more possible solutions that can be stored, in turn the greater the chance for a miner to have the correct calculation required to mine a block, and the greater their chance to claim the rewards.
Cryptocurrencies currently using this consensus mechanism are Storj; Chia, Burst.
First showcased in Hyperledger blockchain, (Sawtooth), the consensus was developed by Intel and works on the basis of requiring miners to join the network (a permissioned blockchain network) to gain certified membership, once there they can set up a node but have to wait a period of time (like all other nodes on the network) before they are randomly selected and can then mine a new block into the blockchain network. Based on a lottery system principle, each node is given an equal opportunity to be given the shortest amount of time to wait. The node given the shortest amount of time is then able to mine the block first. The proof of elapsed time algorithm, is also able to enhance transparency by ensuring those randomly chosen are verifiable by external network users.
The proof of elapsed time consensus mechanism is seen as a better alternative to proof of work in which all miners on a network are not having to be constantly active to mine the same block. The energy usage is non existent as they wait their turn to be selected.
Not only this but the consensus design does not cater to a pay to win system which in turn truly does allow for people to have equal opportunity to mine.
Perhaps the most centralised solution of all consensus mechanisms described on the list. First proposed by Ethereum co-founder Gavin Wood (now founder of Polkadot and Kusama) in 2017, this is a consensus mechanism (a derivative of the byzantine fault tolerance consensus mechanism) in which a limited number of validators, based on reputation are able to validate blocks on the network. To become a validator they need to confirm their real life identities by passing authentication. It is therefore the reputation of the validator that is at stake, rather than tokens, as a bad actor on the network will have a bad reputation attached to their real life identities.
There are numerous advantages to the proof of authority algorithm, the first being there is no need for energy intensive computational hardware. This is because there is no need for calculations to be solved to add a block to the the network. The validator just need to approve the transaction.
The second advantage is the ability to resist 51% attacks. The proof of work consensus mechanism is susceptible to someone possessing 51% of the hash power required to calculate and validate transactions on the blockchain. However in proof of authority, obtaining 51% of the nodes in a permissioned blockchain is harder as it would require over half of the validators to work together to act maliciously, moreover computational power is irrelevant in proof of authority blockchains as the validators are not competing for the same block to validate.
However there are noticeable limitations to this consensus mechanism. Earlier I stated that of those listed this mechanism was the least decentralised, and that is true. The approval of those who are able to become a validator is in the interest of the person approving rather than those using the network, therefore someone can have an influence still on the type of validations that are getting approved.
The second limitation is that only established validators would be ok risking revealing of their and would be suitable (those with enough reputation to even have ruined in the first place) to hold the position. These established validators could therefore still be swayed by third parties who want to harm the network.
Currently cryptocurrencies that are utilising the proof of authority consensus mechanism are: Vechain and Polkadot
This consensus mechanism is a hybrid of proof of work and proof of stake in which it incorporates both the advantages to either consensus mechanisms. The consensus mechanism works in which each miner will use hash power to try and calculate the nonce number and hash value just like in proof of work. When the block is mined the network switches to proof of stake and the new block will contain a header (space to incorporate information) and the reward address of the first person to mine the block. Randomly validators will be selected to confirm the new block (the validator will sign this in the header of the block). If a validator holds more tokens then they will hold a greater chance at being chosen to have their signature on the block.
However though this mechanism takes the advantages of both consensus mechanisms (proof of work/stake) it also inherits the disadvantages of now being susceptible to large computational energy wastage to compete for a single block as well as promoting a play to win system for validators.
Scalability in blockchain primarily refers to the speed in which a number of transactions can be confirmed on a network. Blockchain scalability matters for any network that's value is tied to the number of users participating. For example, Bitcoin's original purpose was to become a payment system that everyone on the planet could use, so instead of holding your local currency a person could hold bitcoin and pay for things. This would be beneficial in countries that go through periods of inflation or an economic crisis.
However if a blockchain network can only confirm a limited amount of transactions at any given moment then it is essentially not accessible for everyone to use. In theory we have reached what would be termed a bottleneck, or max capacity. Therefore in turn, the blockchain by design has limited the number of users on it's network. This is not ideal for networks that aim to be utilised for global payment systems. As it stands at the time of writing, the max amount of transactions that can be confirmed per second on the bitcoin network is 5. For comparisons Visa (one of the largest global payment rails) can confirm 1700 transactions per second. Therefore by this simple piece of knowledge, it is unlikely bitcoin will dethrone Visa as a payment method, as retail merchants and banks will not be inclined to use a slower method of payment.
You might be thinking, OK cool why don't they just increase the scalability of the network, problem solved!? Unfortunately unless a network has taken into account scalability, the network can't be easily altered (for some without going offline) to increase scalability, it would mean a change in it's consensus mechanism and the network architecture. You can currently see how difficult it is for Ethereum to move from ETH 1.0 to ETH 2.0 as they change their consensus mechanism from proof of work to proof of stake. It is the equivalent of doing open heart surgery on the entire network.
There has been a problem dating back to the 1980's, which has evolved now into the modern day to be known as the blockchain trilemma. In the 80s computer scientists reasoned that distributed networks (of which blockchain is a derivative of) can only achieve two out of the three ideal characteristics. Decentralisation; Security and Scalability. If we were to apply this to bitcoin, at the present moment only security and decentralisation has been achieved.
Blockchain Scalability Solutions
Since the conception of bitcoin and other proof of work networks, there have been various solutions to help overcome the blockchain trilemma. These solutions for the most part are known as layer 1 or layer 2 solutions. There are at least five different layers to a blockchain network. Infrastructure; network; protocol; services and optional components and application.
Layer 1 solutions work on the protocol layer of the blockchain network. This is the layer in which decides the consensus mechanism. The solution will aim to improve the consensus mechanism or introducing sharding. Layer 2 solutions work on top of the regular blockchain protocol layer to improve scalability and efficiency. For example, Bitcoin Lightening was a solution built on the protocol layer creating multiple payment channels between digital wallets of bitcoin holders.
This concludes part 1 of my crypto terminology guide. If you enjoyed reading part 1 and found it helpful, feel free to comment on my twitter thread other terminologies and concepts you would like broken down and share this post. Part 2 will cover the layers of blockchain network and other protocols.