Originally published on May 12th, 2021
Cryptocurrencies are really vast and complicated. On first glance, it can be hard to see why some of them exist at all. People generally know about Bitcoin and sometimes Ethereum but rarely DeFi. The minute you start to dig any deeper, all these other cryptocurrencies come out of the woodwork. What are all these for? Why do they all exist?
Here, the history of cryptos will be told with a focus on that "why" question. Inspired by Perry Merhling's Wonderful History of Money and Banking, I want to go back and use the history of these different cryptocurrencies to highlight what problems each new one solved or attempted to solve.
A lot of crypto "research" falls under "in my opinion doing a deep technical dive on coin $XYZ, I think this looks more secure and thus better." Frankly, this bugs the hell out of me. This post aims to be that "deep technical dive," at least in layman's terms so you can get a sense of why each cryptocurrency is perhaps important.
Obligatory Notice: none of this is financial advice and all of it is my findings on crypto. Some may disagree with its explanations. You're free to email me. I am long many cryptocurrencies and my specific portfolio always changes. I have never sold.
Bitcoin: the Big Kahuna
Bitcoin came about, circa 2010, to solve the need of a trustless, permissionless, and decentralized currency. Nobody is there to stop you from sending money to the wrong address, nobody can take that money away from you.
You see, any sovereign power has control over the currency you hold. The tax authorities can seize your bank accounts, the banks
can stop any dollar transactions done in your name (via KYC laws), and the federal reserve can print money for any reason thus diluting the value of the currency you hold.
In the past, there was this concept of gold being nation-less. If you wanted to conduct business, you traded gold. This was the only acceptable thing. Sure, you might owe your friend a few dollars here and there but at the end of the day you wanted to hold gold. This almost always meant physical gold in a vault that you could touch in your own bare hands. Nations backed their currencies with gold. In the United States, your $20 could be redeemed for an ounce of gold prior to 1933.
Gold being the standard -- literally the phrase "gold standard" -- means that no nation can devalue your currency. Because gold has a realtively finite supply, it can't be inflated. Some have argued that gold's inherent deflationary aspect caused the Great Depression.
It could be argued that using gold is arbitrary. Many civilizations used all sorts of precious metals or commodities for money. There is some truth to this. But gold is also lindy. The fact that it's been around as a means of value for thousands of years across many societies means it has stood the test of time. Gold is also a noble metal and will not degrade like diamonds nor replicated to inflate supply. At the time of it's "discovery," it was found in its inert and pure form so that even pre-Columbian Americans, who otherwise couldn't extract minerals, were able to use it. Gold is found just about everywhere in the world. 
Of course gold has a lot of drawbacks. Good luck storing your 401k in it -- you'll need to own a vault with security guards. This usually involves paying somebody to do that. It also means that sending lots of money with gold is a pain. Nowadays, countries trust that their mutual deposits will be held securely. The British Empire used to keep other sovereign nations' wealth in its own vaults. The US does so today with Fort Knox.
It's into this world that Bitcoin was born. Bitcoin has the decentralized aspect of gold. Nobody can tell you what to do with it making it unlike any other central bank currency, which are half-jokingly derrided as "fiat" in the crypto world. But unlike gold, Bitcoin is incredibly portable so you can transmit it far easier. Like Gold, Bitcoin is valuable because its mutually agreed upon by everybody to be valuable. It has no real inherent purpose beyond as a means of value. 
Bitcoin does this by solving a really difficult math problem called the Byzantine generals problem. The idea is that several generals are trying to attack a fort. To win, they all need to attack at the same time. If anybody defects or the timing is off, then the attack is a failure. People can defect because they're able to attack independently. Timing is difficult because each message sent has a delay. How do you solve this?
Bitcoin solved it. You can read the solution in this very Academic whitepaper. 
How did it solve this? Why is it important?
Suppose we're a bank. We have to keep deposits and withdraws. We do so with an accounting ledger. People come and deposit money and withdraw it. If anybody wants to know how much they have at the moment, we add up all their deposits, add up all their withdrawls, and subtract the latter from the former. Now we can know how much they have.
Now let's abstract this a bit. Instead of depositing and withdrawing dollars, we'll deposit and withdraw some made-up value. Let's call it Bitcoin. To know anbody's current balance on this ledger, we simply add up all the deposits and subtract the withdraws.
But what if this value is just made up? What if I go and change the values to make myself richer? In the past and in most cases today, we have some source we trust to hold the true value. This trusted source is incredibly important; if we don't trust it, then whatever is written in the ledger means nothing.
So first we need to spread out who holds the source of truth. That will mean we don't have to trust any one person. But now we have a new problem: how do we coordinate all these different sources of truth to come to a consensus? How do we prove that they agree with one another and nobody is making things up? That's where the byzantine general problem becomes important. The value has to be not only distributed but agreed upon by everybody and it has to be done so knowing it will take time for the information to be received by some servers. This is what Bitcoin solved.
Bitcoin does throw in some other important technologies too. For instance, the use of "mining blocks" to determine how much total bitcoin there is. But this core idea of consensus amongst many servers who don't know nor trust each other is very powerful.
To flesh this out for future sections: Bitcoin puts all transactions onto a "block" of 1 megabyte (the size is important). This block then gets agreed upon by a bunch of servers in the network through a consensus protocol (think fancy math). Once agreed upon, it becomes part of an immutable record called the blockchain that is currently ~300gb in size. Anybody can look at all transactions. To prevent people from sending money they don't own, they have to use a private key. To receive money, they show their public key. All public keys can be generated from their respective private keys. A pair of keys is called a wallet, though some consider a collection of keys to be a wallet.
Bitcoin's Technological Drawbacks
Bitcoin is not a perfect technology though.
Satoshi Nakamoto disappeared and with it any sort of unified leadership. Bitcoin is developed by a committee that moves awfully slow. This is probably a net benefit -- you don't want your money to change on you constantly -- but it has proven a nuisance at times.
Bitcoin has a 1mb block size. This limits how much information can be included in the ledger when everybody is coming to a consensus. To include your transaction in a block, you need to bid on it. This amounts to paying a transaction fee. If a lot of transactions want to happen, the network is said to be congested and the price to get a transaction through becomes very expensive. As the general price of Bitcoin rises relative to the US Dollar, the transaction becomes more expensive in dollar amounts.
A high price to transact defeats the purpose of Bitcoin in the minds of some. Bitcoin is supposed to replace gold, but are we to go back to when gold was the only thing we traded? Or are we to recreate the digital equivalent of gold vaults where you rarely transact with Bitcoin itself but instead use digital deposit receipts as proxies?
Bitcoin is also not turing complete. To vastly simplify, turing complete languages can do any computation another turing complete language can do. Python and C++ are turing complete so whatever one can do the other can also do (though not necesarily as well). Should Bitcoin just be a trustless way to store value or should it be expanded to allow for other trustless computation?
Forks: a short primer
This needs to be gone over for those not in the open source world.
Linux is the prime example of open source. This means anybody can pull down the entire source code of linux, make some modification for whatever reason they want, and then use it. It's completely transparent. When you do this, you're forking the source code.
Android is a famous fork of Linux. Google took the source code of linux and modified it for mobile phones.
Forks benefit Linux. Google wanted to modify the source code for things they deemed important such as bettter video technology and better battery life. These changes were then put back into the linux kernel.
Cryptocurrencies are, like Linux, open source. It means anybody can change the source code and raise their hand saying "you should check out my changes, they'd improve this."
Unlike Linux, cryptocurrencies are inherently distributed. That means a group of people have to agree upon whether changes should be included. This is why there's an Ethereum council, a Bitcoin council, Ethereum Improvement Plans (EIPs), and so on. 
Forks also mean you can create a new currency from an old one. If you don't like the direction of Bitcoin, then you can take the source code and fork it. Permanently. All transactions up until this fork will hold. This is called "hard forking" and, in the world of financial assets, is unique to cryptocurrencies. This will become important later.
Increasing the block size of Bitcoin
To solve Bitcoin's congested network, we could increase the block size to allow for more transactions in each block.
This was a big controversy in 2016. People argued back and forth on whether increasing the block size was really the solution. That year saw huge network fees transaction fees for sending bitcoin. Were we really getting decentralized freedom if it cost $50 to send money just to pay for groceries?
The difference in opinion on high fees was philosophical. Some didn't consider it much of a problem, that Bitcoin should be like "digital gold" and purposely hard to transact. Don't use it as everyday money, use it as your primary store of value and use it infrequently. Others thought this broke the promise of Bitcoin as an everyday use to replace cash or other fiat currencies.
The first idea was to increase the block size. This is the premise of Bitcoin cash and Bitcoin unlimited, amongst other hard forks. Bitcoin Cash increased the block size to 8mb and Bitcoin Unlimited to 32mb (though they plan to go higher). By allowing more transactions on each block, we make it cheaper to transact.
Increasing the block size means needing a beefier computer to actually process the consensus though. All of this is math at the end of the day and you need a lot more compute to figure out what should be in every block if the block size is larger. If you need a better computer, doesn't that defeat the decentralized nature of the blockchain by making it more expensive to participate?
Another was whether this would really solve the problem at all. For now you could massively increase the block size, but wouldn't you end up in a neverending spiral trying to increase it? At what point would the block size be large enough?
Bitcoin did come up with a solution called Segregated Witness, commonly referred to as "SegWit." It's pretty clever. SegWit works by moving the signatures of the senders and receivers to the back of the block. Within the transaction data, they were then replaced with a pointer to that signature. If that signature is used multiple times in the transaction, the data is not repeated.
There's also scalability solutions like the Lightning network which use closed groups of nodes that know they can trust each other (e.g. owned by the same entity) and can conduct off-chain transactions before packaging their sum total as one transaction to put onto the chain. That keeps fees low amongst the closed set of nodes.
The battle still rages on with block sizes. Bitcoin Cash initially went to 8mb but has since split again on whether to increase the block size. It's not clear when the block size will be large enough.
Sidebar on forks of Bitcoin
Blockchain technology, divorced from Bitcoin, could be a useful technology for a lot of things. Building out a blockchain for whatever the specific purpose used to be a common goal of upstart cryptocurrencies. Ethereum has abstracted away this need. However, I wanted to highlight a few of the examples here.
Namecoin is the idea you can store domains on the blockchain and simply query it when you type in a URL. This would make it censorship resistant as the domain could never be taken from you. The problem is that nobody really seemed to use it. The
.bit top level domain they settled on is difficult to access by most browsers, requiring a lot of extensions and proxies. On top of that, many antivirus software started to block it by default.
Litecoin is the idea that Bitcoin could be improved by a different proof-of-work algorithm (the one that determines new block creation). Bitcoin uses a computation-heavy proof-of-work, which nowadays necesistates the use of ASIC computers -- specific machines which only compute the hashes necesary to mine new blocks. Litecoin uses a memory intensive one which greatly complicates this approach. It lets people with less specific machines mine blocks. It also allows for more blocks to be mined thus lowering transaction fees. It should not be thought of silver to Bitcoin's gold. Bitcoin, unlike gold, can be split almost infinitely small stopping at 10^-15.
Dogecoin is... a whole other beast. The recent frenzy has pushed its value sky-high but its original idea was to have very low transaction fees. This is because it mints blocks at an even faster rate than Litecoin. The name was mostly a joke though the underlying ideas are serious (or at least were ¯_(ツ)_/¯).
Bitcoin's lacking feature: privacy
Bitcoin is an open ledger. Your private keys are safe but your public keys are not. As such, anybody can peer into the blockchain ledger to find what public keys are being used for what transactions.
This means that Bitcoin is not entirely fungible. Some Bitcoins are in fact worth less than other Bitcoins. Bitcoin used in the Silk Road) are worth a lot less. If you try to use this on an exchange like Coinbase, they will shut down your account.
With the right equations, we should be able to avoid this. After all, its just math in the end. Based on this idea, two major competing cryptocurrencies have emerged.
Monero was the first. It aims to be completely private. Nobody can know what your Monero was last used for, thus making all Monero completely fungible. Because of this extreme privacy, its difficult to buy on US based exchanges.
ZCash is the second. It doesn't aim to be completely private but instead allow you to "show your cards" if a regulatory body needs to see it (with your permission of course). This makes it harder to use; transactions are not private by default and wallets like Ledger don't support anonymous sending at all.
A completely private currency will be a game changer and possibly a regulatory nightmare. If you own Monero on a cold wallet not connected to an exchange, nobody can prove it except for you. Tax authorities cannot track it. Purchases to the dark web or elsewhere cannot be monitored. It should be noted that some think Monero's privacy will eventually be broken though, though if the math is "good enough" this may not ever be possible.
Ethereum as World Computer
Ethereum solves the problem of making Bitcoin turing complete. That required a complete rewrite, making it far more than a hard fork.
Ethereum distributes the computation of a program, called a contract, across many computers in a trustless, permissionless fashion. This way you can confirm its computed output on many computers (again, consensus) without worrying if the executed code is malicious or not. You pay a fee of ether, called a "gas fee," to incentivize a pool of Ethereum nodes to execute your contract. So why would you do this?
One reason is to build universal tokens. These usually fall under the ERC20or ERC721standards. They allow anybody to build
their own cryptocurrency across the Ethereum network. This has likely supplanted most earlier Bitcoin forks like Namecoin as it abstracts the bootstrapping of a new blockchain and allows you to get down to coding it out.
But what other compute could you run against many computers? What other use cases are there for trustless, permissionless transactions? Maybe as a database? Or is there more...
Ethereum as Decentralized Finance
Ethereum, being turing complete, lets you write very complex programs. So complex they may replace traditional financial institutions.
Let's start with an example of an exchange. Many exchanges, including Coinbase and Gemini, are centralized. I send cash to them, they purchase Bitcoin on my behalf and store it on my behalf. I then have to ask them to send it to my cold wallet (ledger in my case).
Do we have to have a centralized exchange? Perhaps not. You could write an Ethereum contract that gurantees a certain amount of Ethereum be exchanged for a certain amount of another cryptocurrency. This could be computed based on the ratio of one coin for another coin.
But how would we gurantee liquidity in this exchange? Given Ethereum is a contract, putting money into that contract would be like trusting a computer program to correctly add and subtract, provided the author wrote the program correctly. You're not
trusting a centralized exchange, which have a history of getting hacked, but instead a computer program. It guarantees you the right to withdraw or put in money. You could even include conditions on this that limit when you can withdraw or under what conditions. It's just a computer program after all. You could then write the program to pay more for the longer you keep that liquidity in. The fees that one normally pays to a centralized exchange now get dispersed to everybody providing liquidity.
But lets go further with that idea: what if we wanted to lend moneyon this decentralized, trustless network?
In developed countries, governments guarantee contracts. They also create incentives to make sure people pay when they should. This typically involves putting up collateral. If you own a mortgage, your house is the collateral. You want to pay the mortgage off so you don't lose your home and the bank wants you to pay off the mortgage because the house is not worth the hassle of selling.
If Ethereum relies on trustless transactions, how can we rely on people paying back on time? One way is to "overcollateralize" the asset involved. You put up far more than you're trying to borrow.
This is the idea behind DeFi -- Decentralized Finance.
Why would people put up more than they've borrowed? Many millenials, by virtue of holding any crypto, have it as one of their most valuable assets. This isn't because they've gone hog wild into speculative investing but because the asset has naturally appreciated so much. Borrowing with your most valuable asset is a natural thing to do. Current financial institutions won't let you do this with cryptocurrecnies. DeFi gives you a solution to that problem.
Another reason may be because you're banking on price increases. This is speculative borrowing and I don't recommend it but it does happen. You could put up Ethereum, borrow stablecoin or some other currency (e.g. tetheror USDC), swap that for dogecoin, hope it appreciates, swap it back into stablecoin, pay back your DeFi loan.
This sort of clever programming is why Ethereum has gotten so valuable. You can write any financial transaction, theoretically, as a trustless one.
A proposed use case that often comes up is crop insurance. You could write a contract that allows for farmers to pay in for insurance that then pays out if certain weather conditions are met.
Of course, anybody knowledgeable in insurance knows this isn't quite how insurance works. What's described here is a financial bet on whether the weather will be good or bad. Insurance companies invest your premiums instead, they never keep it in straight cash. But rethinking these financial institutions is part of the fun; many in crypto world really dislike fractional reserve banking.
There are problems with this though. For one, how would you know if the weather was good? Ethereum can play well with its blockchain and with others but interacting with sources outside of this is far more difficult. You need to have an "oracle" that is the "truth" of that weather event. But at that point you're relying on outside sources, somewhat defeating the purpose of decentralized blockchains. Can we solve this problem? More on that later.
Wrapped coins & Atomic Swaps
Ethereum is an incredibly powerful tool and has allowed for decentralized finance which Bitcoin, by design, cannot do. Can we somehow connect the two?
After all, its just keys on a network. Though the blockchain is private, some information is private. Ethereum, through solidity, allows for some functions to be executed only by the owner of that contract. You could put private keys for one cryptocurrency on Ethereum that only an owner of another contract can look at. That is, in a very basic sense, the idea behind wrapped coins.
Wrapped Coins are important because it means that currencies which were not programmable or lacked some function can now be used almost interchangeably.
Even crazier is the proposed idea of atomic swaps. We could swap,
interchangeably, Bitcoin for Ethereum even though they live on completely separate networks. The idea is currently being reserached but could be a game changer with privacy oriented coins like Monero or ZCash. You could own Bitcoin, atomic swap for monero, trade, then atomic swap back out for Bitcoin. It would be very hard to track.
Ethereum gets expensive fast
Ethereum's use on DeFi has resulted in a huge price increase. That means using it is very expensive.
To complete the above transaction, I need ~$300 in Ethereum. That is absurd. For technology to be democratizing, as most in crypto would want it to be, it needs to come down in price. To exchange this on Coinbase would be ~$15 by comparison.
Ethereum is trying to solve this problem but the council that governs it is slow to act and any change requires consensus. Ethereum 2.0 should solve this problem but its adoption has been slow: people need to stake their existing Ethereum and "change" to Ethereum 2.0. That includes miners, who collect the gas fee and are less incentivized to move to Ethereum 2.0. 
Proposals to alleviate this scaling issue fall under layer 2 protocols. All of these work much like SegWit in Bitcoin: roll up a bunch of transactions into one common transaction that gets "pressed" into the network. No DeFi exchange uses them to my knowledge. Perhaps an opportunity?
Validator networks like binance to increase the speed of Ethereum.
Many many blockchains promise to be faster than Bitcoin or Ethereum. They almost all rely on limiting the number of validator nodes when achieving consensus.
Bitcoin and Ethereum rely on many nodes achieving consensus on what transactions should go into a block. That can take a really long time just in network costs let alone in computation costs.
What if we limited the number of nodes on that network? We could achieve consensus much faster because there's fewer nodes that have to "argue with each other" on what should go into a block. That is the idea behind VeChain and other cryptocurrencies that promise super fast transaction speeds. Some go for very few validator nodes, others for a lot of validator nodes.
But doesn't limiting who validates a transaction defeat the purpose of decentralized finance? Indeed, I think it does for most use cases. In particular, it obfuscates what's going on in the network and allows for gate keeping.
Ripple (XRP) is most infamous for its obfuscation. That's because the minting process that creates new coins can only be done by some nodes which Ripple happens to completely own. That is one reason they're in trouble with the SEC right now-- only some people can create XRP which puts it closer to being a security under US law. It also makes it popular with settlement funds that want to have close control over how transactions work. Thus American Express is a user and JP Morgan had proposed a pilot project of sorts with it.
But not all validator node schemes are bad. Binance operates the Binance Security Chain and its BNB coin has jumped in price. Unlike the aforementioned, Binance allows for about half of all validator nodes to be community operated and voted on. This allows for some participation by others. The Binance Security Chain, or BSC for short, has become the dominant blockchain for DeFi like Pancakeswap and SushiSwap.
Using validator nodes is not a bad idea fundamentally and reminds me of freebanking. The United States between 1836 (death of the second US bank) and 1861 (start of the civil war) had a freebanking system. You deposited gold, including US gold, and got deposit receipts back which could be used like real money. Many of these banks went belly up and with it the deposits but some stuck around. It also lead to wild fluctuations in inflation and deflation, especially early on. But the US was quite fine under such a system. 
Many Ethereum competitors have sprung up over time. Most aim to have lower gas fees and to allow for more seamless scaling to avoid slow adoption of network upgrades that we see in Ethereum 2.0.
Cardano & Polkadot are most notable. Both were founded by former OG Ethereum core developers. Both aim to be used explicitly for DApps or decentralized applications. They called themselves Blockchain 3.0 (Ethereum is 2.0, Bitcoin is 1.0). Both aim to be much faster and upgrade more seamlessly than Ethereum.
Polkadot uses parachains connected to a relay chain. This all looks much like SegWit where transactions are packages together and their core results put back into the main blockchain.
Cardano seeks to keep computation separate from validation. Some nodes do the compute part of a cardano program while other nodes keep track of the decentralized ledger.
Admittedly, I'm not sure what the practical differences are between the two. Perhaps its too early to tell which will win.
Neo bears mentioning. Technologically, I'm not sure what practical purposes it has over Ethereum. It's based in China and most users are in East Asia. This is notable as Bitcoin mining is big there.
DeFi tokens to guarantee liquidity in systems.
If you've looked into DeFi, you may see that some, like Uniswap, offer their own tokens. Why is this?
Well there are two reasosns
Some of these separate tokens are used to add friction and guarantee liquidity in the system. Your token is a claim on the liquidity available and you can, with some effort, exchange it out to get back the token you want. Alternatively, you can trade this claim with others on other exchanges. Most of these follow ERC20 or ERC721 standards and can be exchanged anywhere. Of course, you need to trust they are what you think they are.
The other use case is governance. Yearn Finance has a token called YFI which has been very seldom issued and currently goes for $70,000 on CoinMarketCap. These allow you to vote on upgrades in the yearn finance system. Some also pay out the fees used in decentralized exchanges.
Oracle Tokens to guarantee consensus for contracts
Oracle tokens are another category of cryptocurrency. They are used to solve the "oracle problem" I mentioned earlier in DeFi.
Perhaps most notable of these is Chainlink. The idea is that programs can be written to run across a number of nodes that then come to a consensus on what the "true" value should be.
If we go back to the weather example, you could have multiple nodes using multiple APIs and then averaging or computing some combination of them to be the true value of weather. You could include checks if APIs go down. If you include enough API checks, then your contract should be stable with no ability for a specific bad actor to mess with your smart contract. Chainlink tokens is the currency used to execute these "truth" checks.
There are many other examples of oracle tokens and the space is incredibly new but is very exciting.
DAO: New Frontiers?
If one is decentralizing everything in blockchain, can we decentralize decision making?
That is the idea behind DAOs or Decentralize Autonomous Organizations.
DAOs work like a government, enabling a group of people to vote on decisions of that organization. This is incredibly important for legal purposes. Remember that Ripple has gotten in trouble because its very centralized. 
Many cryptocurrencies, including Ethereum itself, are DAOs. Some issue separate tokens for voting vs value. MakerDAO is one such example. $DAI is issued to be stable with 1:1 with the US dollar while $MKR is issued to vote on governance proposals. DeFi exchanges also use governance tokens for decisions, including PancakeSwap to make votes on whether rewards should be changed. This is, of course, all facilitated with smart contracts.
It's notable that wyoming recently legalized them. Ownerless legal entities? What does that mean for the world?
Cryptocurrencies have a profound list of use cases that, at some level, change how you think about the world. Whether its the permissionless store of value that is Bitcoin, the overcollateralized loans of DeFi, or the decentralized governance voting of DAOs, it's crazy to think how these things can work.
This piece should give you a primer on how the ecosystem has evolved and what problems these different tokens solve. It's not about memes but problem solving. But unless you're deep in the space, it can be hard to see how any of these coins provide value.
Comments? Questions? Correction? Feel free to email me.
 Though current deposits require pretty substantial mining efforts these days. Gold literally requires cyanide to be leached out of the ground. There's a lot to be said about the environmental effects of this.
 Bitcoin started the tradition of publishing whitepapers though most are not nearly as rigorous as this. It's also why many, including myself, think Hal Finney was Satoshi Nakamoto).
 Naval Ravikant has commented that cryptocurrencies turn democracies into markets -- people with more money have their vote "count more" than those with less. The same unit economics work out here with how much of a token one owns and contributes to the network.
 Node operators, notably, do not collect Ethereum fees. This is surprising to me as it would decentivize running a node, at least in theory. Other crypto likely makes up for this but I'm not aware of it.
 Murray Rothbard has written extensively about this and the Scottish Free banking era (~1650-1800). The wikipedia article is particularly good.
 The chase for Satoshi Nakamoto is part of this. If he's identified, than he could, in theory, be charged as "creating a new security." By staying anonymous, Bitcoin is "ownerless" and thus not a security under US law.