Difficulties embracing blockchain technologies

The near future

Although blockchains are definitely the future of society, there are some barriers to mass adoption of this technology.

#1 — Handling private keys

All of the cryptography that underlines Blockchains relies on the assumption that each participant has a public/private pair of keys.
The public key is shared with the world and the private key is supposed to only be known to the participant.
Forgetting your private key means losing all access to all your assets on the blockchain.
Revealing it to another person means sharing this access with them and trusting them to not reveal it to another.

This means that your private key is the most important asset you will have in tomorrow’s society.

There are two problems with this:

The easy problem — Private keys are hard to store.

Even very knowledgeable people in security manage to lose access to their private key or have it stolen,
as was exemplified a number of times already. How can you be sure that no one logs your keystrokes, or can peer into the memory of your wallet program? 
Even if you know what you are doing, you also need to trust a bunch of software such as windows, chrome, etc… to not have security flaws that might compromise your wallet.
Or if you have a physical wallet, trust the manufacturer, and be paranoid about having it stolen.

The issue of trust is easily solvable using open-source principles, having the technology independently verified by unrelated people.
And the problem of keystroke logging and such, can be solved by not using a PC, but rather a custom built hardware that is designed solely to store keys.

possible solutions:

  • password encrypted private keys— This solution essentially trades a large meaningless random number for a small meaningful number that is easier to remember, making it easy to store on the brain where no one can see it.
    This has some benefits, but in my opinion has much more disadvantages that greatly overpower the benefits.
    If passwords are small enough to remember, they are easier to crack, and in the future, computers are going to have enough processing power (and intelligence) to crack even the best of ‘human’ passwords.
    A solution to this cracking problem, is to encrypt the key not with the password but with a derived number that is very hard to compute based on the password, that way the attacker can not brute-force his way.
    This works but makes each use of the key expensive, and does not solve the case where the attacker has a supercomputer, which he might justify having if you have large amounts of money.
  • splitting the key to multiple places — The idea is to split the private key into multiple parts, such that you need to have access to a certain number of parts (maybe all) in order to retrieve the whole key. This minimizes the chance that a person could get all of the required pieces.
  • periodic change —We will periodically change our public/private key pair and have everyone know of this. So if an attacker were to steal the key, after a period of time it would become useless.
  • identity backed key— The point here is that even if the attacker steals the key, he would not be able to use it because people will know that it does not belong to him. The idea is to maintain a public mapping between an identity (defined as a hash of the DNA of the person maybe) and his/her public key. And prevent suspicious activity such as large transactions or many transactions within a time window, by making the person provide a proof of his identity and his knowledge of the private key.
    That way even if someone stole the key, he would not be able to do much with it.

The hard problem — It’s possible to take the money by force.

Suppose in the future, that crypto-concurrency becomes as common as regular fiat money is now, people are going to have a very big incentive to make a rich men give them money by threats, violence or even torture.

possible solutions:

  • some sort of police and justice system— Just like in the real world, where society agrees to play fair and punish people who do not play fair. The rich man will be protected by the rest of society and people who threaten him will be punished by taking their money or refusing to transact with them.
    This is of course very hard, how do you reliably detect a threat like this ? how to find the people accountable ?
  • make it unknown that you are rich — Hold your money on multiple accounts, and spend it bit by bit, while laundering it through a network of other accounts, such that no one knows how much money you have, or who you are.
    The problem here is that it’s difficult to spend your money, if you spend too much too fast, people are going to notice.

The soft problem — We need ordinary people to have these guarantees

Everyone needs to keep their keys private, even people who do not know anything about cryptography. it’s enough for an attacker to steal a 1000 little accounts than to steal 1 key of a ‘bill gates’.

An attack like this greatly reduces the public’s trust in this technology.

All of the solutions to the easy problem require a certain degree of hassle for the key holder, he must prove his identity, or change the key once in a while, or buy a hardware wallet, etc...

So to really make people embrace this system we would need to provide a level of security equal or higher than centralized entities (such as banks)

I don’t think this is impossible at all, but I think it’s going to take some time to build the infrastructure required to do so.

#2 —Scalability

Current blockchains are struggling to reach more that a few new blocks per second, comparing this to traditional(centralized) services such as: 
- Visa, MasterCard— handling thousands of transactions per second
- Google, Facebook, twitter, etc… — handling millions of operations each second

There is an inherit tradeoff ,I think, between Decentralization and Scalability, reaching consensus takes time, and spends a lot of resources.
making it difficult for a blockchain protocol to reach those numbers.

Nonetheless, I think there is good news: 
We don’t need much Decentralization to provide high security
having 1 million miners is only marginally better than 10 thousand in terms of security and robustness even though it’s a 100 times more miners. So you don’t need absolutely everyone to be a miner to be very sure that the system works properly.

This is of course an active area of research and there are many good ideas floating around like state channels, sharding, etc…

This is going to be solved in a couple of years but until then we have no chance of mass adoption.

#3 — People are satisfied with current services

It’s easy to get caught in all the hype surrounding crypto-currencies and decentralization, and although it has many benefits over traditional systems,
the truth of the matter is that most people are satisfied with much of the current digital services such as Google Drive, and do not have the incentive to switch to a decentralized counterpart. 
Having a service that is a little bit faster or has more storage capacity is not going to convince a lot of people, current standards are more than enough.
In the case of other services such as banks, corporations and the government,
people are not necessarily satisfied with those services, but they do trust them, and this trust is hard to revoke.

The more appealing side of decentralization is of course the promise of privacy and owning your data.

On the privacy side, it is my opinion that people do not really care what Facebook or Google does with their data, as long as it is not brutally offensive.
Unless one of those companies screws up big, and violates the public’s trust in a major way, there is no real reason people will want to switch to decentralized services.

On the “Owning your data” side, i think there is a real advantage, people can receive rewards for their content and their contributions (for example on social sites such as steemit). 
Although this is not a strictly decentralized ‘thing’, sites such as youtube also allow creators to be compensated for their content (and in real cash too!), 
be it with an annoying side effects of monetization which can be avoided on the decentralized side.

#4 — People mindset needs to be changed

Blockchain technology promises to change radically the very fabric of the economy and society, replacing middlemen with decentralized consensus.
This is a very big change in they way we think about society, people are going to have a hard time grasping the concept and accommodating to a completely new way of doing things.

Keep in mind — the current (centralized) mindset is 10,000 years old.

Current public perception of crypto-currencies is not very good, a lot of them think it has to do with the dark web and cyber criminals, and most of them do not understand how it works or why it’s good for them.

#5 — Battling with the tycoons

Alot of people are currently profitting hugly from being a middleman, and from being the central authority of something, the big ones are: banks, governments, companies etc…

Don’t think they are going to just embrace this revolution and lose their influence.

All revolutions have adversaries who want to keep things they way they are.
Although this is ultimately futile, be prepared for a battle. eventually they are going to realise where the world is heading and reverse their direction, rich people will want to invest to cryptocurrency to be rich in the new world, and powerful people will find a way to gather some assets in the new society.

But until then there is going to be a struggle.

#6 — Lack of real world connection

unless the blockchain will have strong solid connection with the real world, an could make decisions about facts in reality, nothing is going to take off.
How will you make an insurance system without knowing if the person has any right to claim it?
How could you make voting systems without having a strong identity service?

#7 — Nature of the technology

there are some disadvantages due the nature of blockchains, for example, everyone sees everyone’s balance