One bitcoin transaction consumes the average amount of energy used by a US household for 53 days. All crypto is estimated to use the same amount of energy as Argentina. Clearly, this is not an energy efficient industry, up there with the very worst of polluters. And, given the non-crypto alternatives, that use small fractions of this much electricity to create transactions — there is a strong argument, as we look at climate change summits — to either clean up crypto, or stop using it.
Luckily, there are some alternatives.
First a bit of a background on why crypto uses so much electricity.
The main reason that crypto uses energy is because it needs to synch up the data stored on several nodes, without a trusted intermediary. To do this, blockchains use a consensus algorithm, or a a set of agreements that allows people, or computers to agree on the current state of data entries, and changes (it can be more complicated, but let’s go with this for now) — without having a trusted third party tell us about it.
We are familiar with many common such algorithms in our common world. One common example is when we vote by a show of hands to elect a leader. In theory, the majority winner is accepted by all, and if one person tries to disrupt the election, or disputes the validity, the other people do not accept this.
With computers, to enable blockchain technologies, the problem is similar. We want a group of computers/servers to come to agreement on current state and a change in state. For example, the state may start out as:
Then, there can be a change in some way, so that:
John sends 2 to Shelly.
Now, as much as this example seems small, there’s a lot in it. Typically, a trusted third party, like a bank, would record this and manage the changes and updates. However, in blockchain technologies, there is no trusted third party and:
Any node (computer) can record information
- Any node can enter/exit at any time
- Any malicious node cannot stop the network (so long as 50% or more by some measures are honest)
We could imagine the challenges that come up with the John/Shelly transaction, among these are:
- Which node or nodes can I send this transaction record to?
- How can the node know that it is a legitimate request and not made by an imposter?
- How can the nodes share all of the legitimate transaction records and current state?
- How can there be economic incentives for nodes to bother being on the network in the first place?
- What stops a node from sending false/illegitimate transactions?
The consensus algorithm is designed to solve this.
So, let’s explain how one of these consensus algorithms. works, since this can be a little hard to envision.
And, to get started, we begin with a building block called a cryptographic hash function.
Now the cryptographic hash function is set of math and logic instructions that can take a block of data and output a fixed (such as 256) unique number. Hash functions are sometimes called checksums, because when sending a block of data, it’s common to send the data and the hash/checksum to make sure that not one bit is out of place.
Hash functions are also designed to be random, meaning that over a set of data, all numbers are equally common and despite what output has already occurred, the next output of any potential number is equally likely.
The cryptographic part of a hash function means that it is one-way, or while it is very fast to take a chunk of data and hash it for a 256 bit number, it is very hard to go the other way – which is taking a 256 bit number and finding a chunk of data which hashes to it.
In fact, ideally, the only way to do this is to randomly try numbers until you find one. And, since there are 2^256 possibilities, the entire computing capacity of world could not do this in the lifetime of many, many universes. (Yes, 2^256 is a massive number)
Ok…let’s do a proof of work algorithm now. Let’s do an example.
Email spam is a problem. One solution that has been proposed is to have senders pay something small (like a penny), which would bankrupt mass spenders. This is problematic requiring payment systems, money, etc. — so another proposal is to use a proof of work protocol, requiring senders to prove they have done work, before a message would be accepted.
Here’s how it could work:
Sender send request to receive mail to the recipient.
Recipient sends the sender a random 128 bit number and request sender to find another 128 bit number (called a nonce), that when concatenated to the end, will result in hash with 10 leading zeros.
Sender start trying random numbers to concatenate to the end of the nonce and hashes the united value until finding a number with 10 leading zeroes. On average, the sender would have to try 2^10 numbers to find such number.
Sender send the response to the recipient, who verifies it is correct, and then receives the email from the sender.
And, thus we have a proof of work algorithm. You would calibrate the number of leading zeroes requested so the work burden is minimal for sending one-off emails, but would quickly overload mass spammers. In addition, you would calibrate the number of leading zeroes as computer capacity increase, and every leading zero makes the work required twice as much. (In fast, there are ways to be even more precise, but let’s ignore for now)
Let’s use a proof of work algorithm for consensus:
Bitcoin uses a proof of work algorithm very similar to the anti-spam example above.
In bitcoin, nodes (or miners) receive transactions from wallets, which are computer software that can use digital signatures to properly sign that a transaction is taking place.
In our example, this would be:
John -> 2 -> Shelly (signed by John). (We can go into digital signatures at another time).
John’s wallet would generate this and broadcast it to many miners.
Each miner collects many transactions and puts them into a block. Then, the miner hashes the block, concatenates with a hash of the previous block, and then looks for an additional number to concatenate that when the whole thing is hashed, results is an agreed upon number of leading zeroes (slightly more precise, but this is close).
When a miner finds a winning number, the miner quickly broadcasts the result to the other miners. They all quickly check, verify the correctness and start building a new block and repeating the process. As compute power increases, such that blocks are being solved in less than 10 minutes, they agree to increase the difficulty (such as adding another 0).
In this way, they all agree that winning the block creates an authoritative record that they all act on.
And, how do they make money doing this – two ways: 1) they can charge fees to the wallet holder, and 2) one of the transactions they are allowed to put in is 6.5 BTC -> miner – thus mining bitcoin!
As you can see, this is crazy expensive in terms of both compute and electricity, and the computing power of blockchain is relentless hashing looking to solve the consensus problem.
There are several alternatives that have emerged, focusing on being more energy friendly, including proof of storage. One of the most popular such networks that many people have noted is Chia, the new proof of storage network, which has caused a hard drive shortage and for prices to spike, as reported in many locations, including here.
This may actually be a very good thing, since there is hope that Chia could replace other networks like Bitcoin and Ethereum, which are very environmentally wasteful because they use a proof of work protocol, requiring huge amounts of electricity. As an alternative, a network with similar properties, but much lower electricity consumption, would be huge environmental benefit – Chia has even earned the label the ‘eco-crypto.’ Not such a bad label.
So, how does it work? Well, it’s very similar to a proof of work protocol that we examined earlier, with a search for a random number which, when appended to the hash of the data, has a certain difficulty level, or (sort of) leading numbers of zeroes.
With proof of storage, the algorithm is very similar, however, the problem, such as the cryptographic has algorithm, is much slower and also has many fewer possibilities (which expand over time). Hence, there is a huge benefit to pre-compute the values of the outcome, and then hope that one of your pre-computed values solves the problem. The more pre-computes you can store, the more likely you are to have one. This is analogous to the more lottery tickets you have, the more likely. You are to win the lottery.
When you set up a Chia farm, there are two major steps once you have your storage in place.
- Plotting: This is where you pre-compute and store the values on your storage. Your storage is not useful until it has been plotted, and plotting can take a long time! There are many potential methods to increase this, but still, it takes a while.
- Mining: This is where your miners are actively trying to solve the consensus algorithm and be rewarded with Chia, using your plotted storage. This is less electricity intense than Bitcoin or Ethereum because the lookup is a simple table to see whether you have a pre-compute, not the sophisticated hashing required for the other networks.
Unfortunately, Chia is very wasteful of one thing – storage. Just like how Bitcoin wasted compute capacity (such as GPUs and ASICs) (and the resulting electricity), Chia is very wasteful of storage capacity – storing enormous quantities of data, just in the hope that the lookup will be successful. This waste has caused hard drive costs to spike at the moment, and also made them unavailable for many other uses, especially SSD
drives, which are most suitable for this application.
Yet, this is probably a good tradeoff, as hard drives are less energy intensive, and if a resource is going to be wasteful, it would nice for it to at least consume less electricity.
It will be interesting to see if Chia starts to replace Ethereum, or maybe even Bitcoin, but for now, it’s a novel network that many miners are finding interesting.
A final potential is Solana which uses a proof of history algorithm. By claiming a time at its earliest and becoming consistent, Solana avoids the need to immediately synch up all the nodes, resulting in a more energy friendly and faster and cheaper network. If you’ve ever used Solana, you’ll notice how fast and inexpensive it is. Well, it’s also energy friendly.
Hopefully, over time, we’ll see a greater shift to more energy friendly blockchains as the industry stops being so dirty, as there are many cleaner alternatives emerging.