How Do Crypto Currencies Differ?
An attempt to categorize cryptocurrencies based on the technology they use
There are over 1000 different types of crypto currencies today. For anyone who is interested in investing in cryptocurrencies or who want to understand where this technology is taking us, it is a daunting task to keep track of all these currencies.
In my own quest to try to find future cryptocurrency coins with a potential, I realized there is a need to categorize the coins. That is find some buckets to put coins which are similar in.
I’ll discuss these 4 themes which I will use to differentiate coins:
- Process used to verify transactions and avoid double spending.
- Anonymity and privacy. Can how you spend your crypto coins be monitored by others?
- Smart contracts and tokens. Does the coin offer other services beyond transferring value? E.g. can it be used to represent assets or perform crowd sourcing?
- Governance. How is the community and development organized? How are disputes settled, direction and strategy chosen?
Transaction Verification Strategy
To avoid that somebody else spends your coins, each transaction involving your money has to be digitally signed with a private key only you know. That part is pretty much the same across all crypto coins.
What differs is the strategy to order transactions in time. Everybody needs to agree on the same ordering, otherwise people could easily create multiple transactions were they spend the same money multiple times.
Bitcoin arose because Satoshi Nakamoto managed to solve this problem. His solution is called Proof-of-Work. It is what happens when Bitcoin miners mine. They collect a bunch of transactions submitted to the network by users, stick them in a bundle we call a block and verify all of the transactions by finding a sort of making number we call a nounce. This is a time consuming process which means you can’t fake it the way you can say fake number of users. You actually need lots of computer hardware to find this number.
This secures the network again hackers making fake transactions, they can’t simply do a programming trick to create to find this number. They actually have to have a lot of computers of ASIC boxes. That means a hacker attack if financially very expensive. That is what gives Bitcoin its security.
However this is also a source of many of its problems. In Bitcoin blocks are created every 10 minutes and they are 1 MB in size. Typically you need to create 6 blocks before your transaction is considered secure.
This means we can’t perform more transactions per 10 minute time frame than can fit inside a block of 1 MB.
Finding the nounce number involved performing a computation on all the content of a transaction referred to as a hashing function. This can be done in many different ways. Depending on your perspective Bitcoin chose a bad hashing algorithm, because it could be implemented in specialized hardware called ASICs. One ASIC box can do the computation of 100 PCs. That means the original intention behind Bitcoin which was that people everywhere would be mining Bitcoin and secure the network didn’t pan out.
Instead today we have large warehouses filled with ASIC boxes verifying transactions, or mining as we call it. So the first alternative crypto currencies modified hash functions used, block sizes and frequency of their creation.
So the first alternative cryptocurrencies to Bitcoin, called altcoins, were Litecoin and Dogecoin.
These are mostly based on the Bitcoin code with small alterations. Litecoin e.g. use the Scrypt hashing function and create blocks more frequently, which creates quicker transactions. Scrypt hashing algorithm is what we call memory hard. Calculating it requires a lot of memory which makes Litecoin mining less suited for ASIC boxes.
These coins don’t offer much compared to newer coins. The main advantage of a coin like Litecoin is that being early, it is well known and integrated with a number of services and have a fairly large community.
Being based on Bitcoin code, means it basically piggy backs on advances to Bitcoin.
Alternatives to Proof-of-Work Mining
Bitcoin, Litecoin, Bitcoin Cash, Dogecoin and most crypto currencies until recently have relied on Proof-of-Work. However this is very energy intensive. Bitcoin by some estimates consume more energy each year than Ireland. We can’t really be certain of this number, but needless to say Bitcoin use an awful lot of energy, doing mostly useless work. This is a pretty bad solution for the environment.
To be fair this is not inherent in any Proof-of-Work solution. The main reason it has gotten so energy intensive is the high price of Bitcoin which has caused a race between miners to mine Bitcoin. Since each bitcoin is so valuable it makes economic sense to spend a lot of electricity and hardware to create Bitcoins.
However no matter how you look at it, it is a problem that proof of work, can’t do a lot of transactions very fast and it risks an arms race between miners which leads to obscene power usage and hardware purchases. There are stories that the price of graphics cards is spiking and gamers are unhappy all because of their usage in cryptocurrency mining.
That is why other crypto currencies have explored alternative solutions.
One of the early alternatives was the Ripple and Stellar payment systems, which offered crypto currencies called XRP and Lumens respectively. Ripple is an entirely different code base from Bitcoin and not a fork like Litecoin or Bitcoin Cash. Stellar however is a fork of Ripple, so they are related.
With consensus there is no mining going on. There are no rewards for authenticating and verifying transactions. In Ripple and Stellar all coins are pre-minded and distributed through various means by the creators of the cryptocurrency systems.
Consensus means that instead of miners racing to verify transactions you have various nodes in the network, who are voting on which transactions are valid and should be included.
The benefits are a significantly faster system. Ripple and Stellar can process many orders of magnitude more transactions than say Bitcoin. They can also do single transactions a couple of seconds.
The downside is that there are no clear incentives for people to setup nodes in the system, as there is no mining reward. Instead what Ripple and Stellar rely on is that parties using the network to process payments have an interest in securing the network by providing nodes.
Proof of Stake
Proof of stake essentially means that you replace mining nodes using CPUs, GPUs or ASICs to search for a nounce, with nodes staking a fraction of their coins to vote on valid transactions. This is similar to how voting works in a share holding company. It is not one person, one vote as in a democracy but rather you get votes corresponding to the number of coins you have staked.
So what exactly does staking mean? Staking means you open your crypto currency wallet and assign a certain amount of your coins for voting. While the coins are participating in voting on transactions, you can’t use those coins for anything else.
Perhaps this doesn’t sound fair, but it is really the only way. Because on the internet anyone can fake any number of personas and user identities. However you can’t fake that got lots of computing hardware, which is why Proof-of-Work works. Likewise you can’t easily fake that you own lots of coins. You have to actually buy those coins. Hence there is a financial cost attempting to taking over and subverting the network.
Like the consensus protocol used by Ripple and Stellar, staking allows much faster transactions. The benefit however is that there is a financial incentive to participate in the validation of transactions. Like mining, staking gives you coins.
This all sounds so great that you might wonder why not everybody use staking and why to this day there are still crypto currencies released, which rely on Proof-of-Work. The problem is that the devil is in the details. Getting Proof-of-Stake right is difficult and there are many ways of doing this, with various benefits and downsides.
A common approach seen with many upcoming crypto coins is using a variation called delegated proof of stake. That means people are voting on representatives just like in a representative democracy. They are then the ones who actually validate transactions. That could be something like 20–100 nodes. Like with real world politics, nodes which behave badly can be voted out of office.
Naturally some method like this needs to be used as it is impractical for everybody who stake to be performing transaction validations. PIVX uses an alternative approach with what is called master nodes. Master nodes basically do the actual mining. However you can’t be a master node unless you stake at least 10 000 units of their crypto currency.
So my simple advice when considering coins. Regard Proof-of-Work as safer and more battle tested, while Proof-of-Stake solutions are considerably faster. However you should read the specifics of the solution as it will vary a lot.
Proof of Space
An even newer method which I think looks promising is Proof-of-Space. Instead of proving that you have carried out an expensive calculation, you prove that you have stored a lot of data. An advantage of this over Proof-of-Stake is that securing the system is based on physical assets outside of the software. That is what makes Proof-of-Work more secure than Proof-of-Stake.
Most coins using this approach seem to be currently under development rather than being finished products. A clever twist to this approach is Filecoin, which rather than requiring users to store random amounts of data to prove their storage space, use that storage space to store data for other users. In that respect they create a Dropbox like system where people can store their data spread out over multiple hard drives on other users computers. Those users have an incentive to hold on to that data because proving that they have it, is what causes them to perform mining or receive fees. Hence the space is not wasted. To protect against data loss or privacy invasion this data is stored redundantly on multiple computers and encrypted.
Anonymity and Privacy
Bitcoin has quite good anonymity by the fact that bitcoin addresses don’t have associated names. When performing a transaction, the change is usually sent back to an new bitcoin address created in the users wallet. Hence it can be quite difficult to track the flow of bitcoins.
However it is not impossible, for this reason why call Bitcoin pseudo anonymous. It has not been designed to offer perfect anonymity. In this day and age with Snowden’s revaluations about the PRISM program, people are increasingly caring about their privacy. Regular users are of course not the only one. People in oppressive regimes, who e.g. want to fund the resistance want anonymity and privacy as well.
Wikileaks is another example. When the establishment ganged up on Wikileaks, the could no longer receive funding from supporters through banks, PayPal, VISA or MasterCard. Whether you approve of Wikileaks or not, it underscores how the authorities have a lot of power today in deciding how you transmit your money.
Another example is weed dispensaries in the US. Many states have legalized weed, however federal authorities have not. Hence these businesses struggle with getting bank connections and have to deal with large amounts of cash. One way of solving this has been ATM machines taking cash and giving crypto currency back placed outside dispensaries.
Naturally buyers of soft drugs don’t want to make it public when and how much they spend on this. A crypto currency which protects their privacy is then desirable.
Whether we like it or not criminals benefit from privacy oriented cryptocurrency as well. Criminals would hence contribute to an increase in demand for privacy oriented crypto coins. E.g. Monero is gaining popularity at the expensive of Bitcoin in the criminal underworld, because law enforcement are getting better tools to analyze bitcoin transactions.
All these examples is an attempt to make the case that there is a diverse set of people with an interest in anonymity and privacy oriented crypto currencies. Thus we can expect a demand for them and their value to grow over time.
A problem when evaluating privacy coins is that the concept and the math they employ can be quite difficult to comprehend for a lay person. Usually there will be a particular privacy concept implemented, such as the zerocoin protocol. The same concept can however be implemented in slightly different ways in different coins. Both ZCoin and PIVX e.g. implement the zerocoin protocol. ZCoin transactions are handled by proof-of-work while PIVX uses proof-of-stake. That makes a big difference with respect to speed of transactions and security. In this context I don’t mean security with respect to maintaining your privacy but rather protecting against double spending and similar abuses.
ZCash e.g. probably offers the best anonymity but suffers from less protection against other abuses of the system such as a hacker minting coins illegally.
Other factors such as governance, which I will cover later, will vary a lot as well. ZCash e.g. is under more centralized control than say PIVX. These are factors which would also matter to anyone focused on privacy and avoiding government surveillance. Any system which has a single point of failure, would of course be more suspect able to government control and manipulation.
Smart Contracts and Tokens
One thing of interest is whether a coin is more than just a way of exchanging value. Several coins try to differentiate themselves by offering a richer set of features than the original Bitcoin.
One of the first alternatives to Bitcoin, Ripple differentiated itself by offering a payment system. Or more general as system which could transport different types of tokens which could represent anything. The most obvious usage of this is to have tokens representing fiat currency to allow the Ripple network to be used for making payments in euros or dollars. Some of the crypto currencies which can deal with arbitrary tokens are:
- Zen Protocol
How this is done varies of course. Ripple and Stellar e.g. ties tokens to trust lines, which users can specify. A token could e.g. represent a certain amount of gold. When using BitShare this really just means a unit of account with at least the value in gold. You can however only redeem this for crypto currency. With Ripple on the other hand you can indicate that you trust a particular gateway. That gateway can then hold a balance of gold for you, which you could physically redeem in exchange for tokens representing gold.
Ethereum was the first cryptocurrency system to take this a big step forward and allow smart contracts. I’ve written about that extensively in earlier stories, so I’ll be succinct here. Smart contracts are basically code stored on the block chain which can be run when triggered by a transaction. Smart contracts allow all sorts of services to be built on top of a smart contract oriented crypto currency system. E.g. one could use it to create other tokens, crowd funding etc. Crypto currencies known for smart contracts today are:
- Zen protocol
How generic these smart contracts are varies of course. Stellar e.g. offers smart contracts but in a much more limited form. So does Bitcoin, but because bitcoin can’t deal with arbitrary tokens, the usefulness of Bitcoin smart contracts is limited.
However one should not just assume that more flexible smart contracts is better. As we’ve seen with Ethereum that can also cause a lot of problems. When dealing with great wealth, you need to be very careful about making a system which does not allow hackers exploit it to steal your money.
Zen protocol is interesting in this case as their smart contracts deal only with tokens and is written with a language which allows formal verification. A user e.g. wondering if a Zen protocol smart contract does what he or she expects, can write a proof, and apply it to the contract to verify whether the contract satisfies the proof.
With Ethereum smart contract code in contrast there is no formal way of verifying the correctness of the code.
It is easy to assume that smart contract oriented crypto currencies will conquer everything because they are most flexible. However these are not necessarily best at everything. Few of them e.g. do much with respect to privacy and anonymity. In that case you are better off with ZCash, ZCoin, Monero, PIVX etc.