Crypto Core Technologies and Systems Guide for Beginners
It takes about one blink at any marketing page for cryptocurrency for a new person in the scene to get bukakked in buzzword soup, gleefully thrown at you with hype and hopes of you buying into their product.
Furthermore, a dive into youtube to begin understanding Crypto will often really only focus on a single system or coin, such as explaining Bitcoin’s blockchain, and even those often get quite long, despite being great videos.
What I find a lot of newer folks really want to know, is why these things are important, and what is actually different between different coins/networks, and why do those differences matter?
With that in mind, let’s take a moment to put on our raincoats and wade into the buzzword and alphabet soup that makes up the Crypto Marketing/Technology space, in a structured, logical manner.
( Note: This is going to focus on being a short/easy to digest run down for each term, not a complete and technical dive. )
1. Ledgers in General
This is the most important starting place, which somehow often gets overlooked. Effectively every single crypto network exists to create a (Decentralized) Ledger.
That is, to say, they are aiming to create a unified, trustworthy list of transactions, across a large network. By having all the transactions that have ever occurred in the network, you may then logically determine the active balance of all accounts in the system, and similar information.
It is important to understand that these networks are not lists of accounts, like at a bank, but instead are lists of transactions; ‘accounts’ can only be derived by looking at the entire list of transactions. (But wait, wouldn’t that get.. really really long and a pain to manage? Yes! But we’ll get to that later.)
2. Blockchains, DAGs, and other types of Distributed Legers
So we want a ‘Decentralized Leger’, or list of transactions, but how are these stored? We can just stick them all in a long list, right? Well, yes, but there are other ways, too…
Blockchains [Bitcoin, Etherum, etc.]
Blockchains are the most straight-forward implementation you might think of. Transaction A is followed by Transaction B, which is followed by Transaction C, etc. The only adjustment made here is that Transactions are lumped together into blocks. Block 1 Has transactions [A,B,C], Block 2 has the next few transactions, and so on.
Again, because we only have a list of Transactions, it is important to us that they maintain an exact order, so each block, and transaction, must remain in perfect sequence, perfectly unaltered. Various techniques covered in chapter 3 below explain how different networks aim to ensure that perfect sequencing, and avoid bad actors in the network.
DAGs (Directed Acyclic Graphs) [IOTA, NANO, etc.]
Instead of recording our transactions in a single, unified line, what if we recorded them in a big old spiderweb? That’s effectively what DAGs are, with direction. Transaction 1 might be followed by 2 and 3. And 2 followed by 4 and 9, while 4 is followed by 8 and 12, etc. The main rule here is it can never create a circle. No transaction may point backwards in the ever growing web.
This obviously sounds a little crazy to keep track of, but introduces a unique method to do so, which we’ll go over in the next chapter.
Other Ledger Systems
The above two methods are by far the most common ways to represent a ledger of transactions, but there are most likely others out there. The main point here though is that 99.9% of ‘Cryptocurrency Networks’ will fall into exactly one of the above two systems.
3. Running and Securing a Network – BFT and Proof of… Whatever?
With a network of possibly un-trustworthy actors, and a Ledger that must remain stable, it becomes quite important that the network can handle a malicious actor attempting to alter the ledger. Thus we come to…
Byzantine Fault Tolerance
This is a really big, fancy way to say “The network doesn’t get completely crippled by one person lying.” Every single Decentralized Cryptocurrency MUST be Byzantine Fault Tolerant. People throwing ‘It’s Byzantine Fault Tolerant!’ around as a buzzword are really just saying ‘water is wet’.
Now, the methods to get there, and exactly how many bad actors the network can handle starts to vary, and thus we have all of the ‘Proof of Whatever’ systems. But it is important to understand The computers performing these ‘Proof of Whatever’ actions -are- the network. Staking in a PoS system doesn’t just secure the network, it is the network.
Remember how we mentioned above that Blockchains are a literal list of transactions, grouped together into blocks? Well, how do you decide who gets to write the blocks, and make everyone agree on them? Turns out, the best way to do it is to actually randomly choose one person(node) to write a block, then have everyone else validate it after. Then, even if you happen to pick a bad actor, the block will immediately be deemed invalid by everyone else checking the result; and attempts at ‘splitting’ the network will fail as the chances of the same bad actors being picked a large number of times in a row rapidly approaches zero in a sufficiently large network.
Thus, bitcoin transactions will often wait for some number of blocks(or ‘confirmations’) past the one yours was published in, just to make sure it’s legitimate.
But how do we pick the random block-writer each time? Well, there are a few ways…
Proof of Work [ Bitcoin, ETH 1.0, etc. ]
Proof of work is effectively a method of providing a very complex calculation to the network, which has a effectively random solution, forcing the nodes on the network to all just randomly guess until they get it right. The one who reaches the right answer first is given the right to write the next block.
In order to pay for these expensive calculations, and encourage the block-writer to add your transaction to the block over any other competing transactions (if there are more than can fit in the block), the block-writer gets to take all the transaction fees for their work.
Proof of Stake [ ETH 2.0, ADA, DOT, etc. ]
In Proof of Stake, nodes must “stake” assets on the network to be allowed to become a validator/block-writer. A block-writer is then picked at random for each block form all these stakers. If the block-writer happens to lie about the block, and is thus found out by the rest of the validators, their stake is ‘slashed’, which is to say, those assets they put up are confiscated by the network.
The chance of each validator being picked is proportional to the value of the assets they are ‘staking’. Effectively, it is collateral to the network when you tell it “I will be a good citizen and not try to cheat.”
This method does away with the expensive calculations in PoW, so transaction fees may be much lower; these transaction fees then go to the validators in the form of Staking Rewards. (Again, Stakers aren’t just “staking”, they’re literally running the network.)
Other “Proof of’s”
There are other ‘Proof of Whatever’ blockchain consensus methods out there, but the vast majority of them are simply modified derivatives on the bases of Proof of Work and Proof of Stake.DAG Consensus/Security [ IOTA, NANO, etc ]
The Directed Acyclic Graphs mentioned before use their own system for validation. Instead, when a node on the network wishes to write a new transaction, it must also connect that transaction to, and validate, two existing transactions (at random) on the edge of the network.
In this way, it is random who validates each transactions, which make targeted attacks statistically impossible in a large enough network. Additionally, no fees are required, as the same node is both submitting a transaction and validating transactions at the same time (effectively they would pay the fees to themselves, if there were any).
( Note: DAGs may also still implement some minor PoW or other method as spam prevention, since there are no network fees )
4. Closing Notes
There are a few other low-level systemic elements that may be of interest between different Crypto networks.
“Layer 2” Networks are effectively secondary systems which do not in any way have to be blockchain or decentralized systems, but ultimately bundle up many transactions together, submitting only the final result of them to the main blockchain ledger for approval. Ex. If you and your friends played poker for an evening, you could simply submit the final ‘won/lost’ numbers at the end of the night, rather than doing it per-round.
“Layer 2” is sort of a smoke-and-mirrors term here as, again, they don’t actually have to be blockchain/distributed systems at all, other than writing the end, finalized transactions back to the original blockchain ledger. “Layer 2” support in terms of blockchains really just means they have support for squeezing multiple transactions down into one rolled up transaction (Though the structures for doing so get far too complex for this post).
Sharding and Relay/Beacon Chains
Sharding is method of increasing a network’s speed by chopping the network up into smaller pieces (shards). For example, one might shard a ledger by keeping all actions touching accounts A,B,C on one ledger, and actions touching accounts D,E,F on another ledger, and so on. Of course, one still needs to be able to transfer things between the shards, thus a single new ledger is created as the ‘King’, or Relay/Beacon chain, that is responsible for coordinating across the shards.
Pruning is a process of reducing the size of a ledger, without altering its current contents. For example, if we took a point in the ledger, wrote down what everyone had in their accounts, and erased everything older. Now the ledger itself is smaller, but everyone still has the same assets. Most existing Blockchain systems do not support pruning, however, there has been some research into the matter to combat growing overall ledger size.