Hi, my name is Alex Keeler. I've been interested in blockchain technology for some time now, and I'm a frequent trader on Poloniex. I thought I'd share some of my recent thoughts, and jumpstart a discussion.
- Cool future predictions of blockchain technology
- How to talk to un-tech-savvy people about what this is
- Blockchain issues yet to be resolved, and some proposed solutions
Blockchain Voting
I wanted to start out with some future predicted usages of blockchain technology, since we all know it's so amazing. This article https://www.forbes.com/sites/realspin/2016/08/30/block-the-vote-could-blockchain-technology-cybersecure-elections/#321c75472ab3 got me thinking. What if we took blockchain voting a step further than that, and created a government where everybody has a vote on all policy. And anyone can propose new policy, as long as 75% say yes. If you don't like having to vote all the time, you can send your vote to a professional representative who aligns with your views. Traditional representation is by locale, but since the internet, the world is getting smaller, and your political views usually can't be tied to the place you live anymore. In this blockchain future, we will choose our representatives personally by sending them our voting power, maybe in exchange for another currency (since voting power will be the currency of this hypothetical proof-of-stake blockchain).
A conversation with my dad
Trying to explain technology to someone who doesn't get it, like my Aunt for example, is sometimes funny, sometimes tiresome. Blockchain technology, as many of you know, is hard to grasp even for the most tech-savvy people. Here's how I explained it.
The blockchain is a ledger of facts that everyone agrees is true, that's why we know how much money each person has, or that when something gets confirmed on the blockchain, we can trust it.
But what if someone wants to lie?
The reason this works, is that when someone lies, they are the only one to do so, and everyone else doesn't agree
I don't understand
Imagine a game, where a team of people try to guess the combination to a lock. Whichever team guesses the most combinations gets to determine the truth. In the blockchain there is usually only one team trying to guess combinations. If one person wanted to prove their own lie as a truth, they would have to guess more correct combinations than everyone else in the world. Something that is virtually impossible for one person. If they wanted to do that, they would have to have more than 50% of all of the computing power that's guessing combinations, and at that point, they are likely to get noticed and called out. The people who spend their time guessing combinations are called "miners" and they get paid currency generated by the blockchain itself when they guess a correct combination.
So where does the blockchain exist?
It exists on everyone's computer that is accessing it and using it. It's a ledger of facts that is distributed across the world. Everyone has a copy
So everyone has to download every transaction that's ever happened?
Yes
That seems like it would take up too much space
It does take up gigabytes of space, but the people who really need to use the whole chain are miners, and servers that allow everyday people to access the blockchain without downloading a copy of it.
Blockchain Issues
The space issue
I mentioned earlier that the blockchain is on everyone's computer. But it is very large, gigabytes in size. The bitcoin blockchain is, at the time of this writing, about 115GB and growing at more than 1MB per hour. So if you wanted to use bitcoin without a third-party server doing the transaction for you, you would have to download 115GB of data. There are other blockchains that are smaller. The Ethereum blockchain is about 12GB on disk; but that's because of parity algorithms. The actual size is upwards of 70GB. If either were to handle Visa's 2000 transactions per second, the blockchain would grow at 1MB every 3 seconds, and 8TB per year.
There is no good solution for this right now, as mining still requires a full copy, even if everyday users can download a pruned version of the chain. As the size gets larger and larger, entire data centers would have to be devoted to holding the blockchain, thus, reducing the distributed nature of the blockchain and its trustworthiness.
The time issue
Right now it takes a bitcoin transaction about 30 minutes to get confirmed at peak times. That's still faster than a wire transfer, but for how long? The reason for this is that there are only so many transactions that can fit in one block on the chain. The miners all working to discover the combination to the next block takes about 10 minutes per block. So you may have to wait in line to be in a confirmed block.
One solution for this is to simply increase the block size, so that more transactions can fit into each block, but that means a larger blockchain, which makes problem #1 even worse.
Another solution is called Segregated Witness or SegWit. You can read about it here https://decentralize.today/segregated-witness-explained-like-im-5-c00a8994ea7c but what it essentially does is reduce the block size by 60% by taking the parts of a transaction that are only needed for validation, validating them, and then discarding them outside of the block. After all, the fact that they are on the blockchain means that they were already confirmed, so we don't need the validation information anymore. Litecoin, another blockchain similar to Bitcoin, has already voted in favor of adopting SegWit, and as of the time of this writing will be adopted tomorrow around mid-day. So buy your Litecoins now, as the price will probably go up.
The power issue
How the blockchain comes to consensus, as I mentioned earlier, is computing solutions to complex math problems by guessing the answer until someone gets it right and gets paid for it. This is called Proof of Work (PoW) because you are proving that you are spending your computing power to compute solutions and get paid for it, and it's impossible to fake that and, thus very hard to lie and get away with it. This takes exorbitant amounts of computing power, which means exorbitant amounts of actual power is being virtually wasted computing arbitrary math problems to advance consensus on the blockchain. It's estimated about $3 million dollars worth of power per year is spent on bitcoin mining.
One proposed solution is called Proof of Stake (PoS). How this algorithm achieves consensus is that you stake your currency to prove that something is true. Here is a good scenario: everyone sits around a table, and puts $1000 on the table. Then, several ledgers are passed around. If you sign the ledger that the most people sign, you get $10, if you don't, you don't get anything. And if you try to sign 2 ledgers, you lose your whole $1000. So there is an advantage for everyone to agree on what actually happened, and no computing power is wasted. There's still the possibility that someone could get more than 50% of the currency, and prove a lie, similar to how it could happen in Proof of Work. The main criticism of this is that, simply, the rich get richer, it causes people to hoard currency, and it makes the blockchain less decentralized. Ethereum is in the process of implementing Proof of Stake, and will be voted on by the end of the year most likely. However, the main problem with this is that the voters for Ethereum are the miners, and PoS basically eliminates all mining, so they have no incentive to vote "Yes", and every incentive to vote "No".
I hope you've enjoyed this read.
This has been Alex Keeler, thanks for reading.