Wednesday, August 31, 2016

Some thoughts on blockchain technology

We want things to be incorruptible - an incorruptible government, an incorruptible and unbiased legal system, incorruptible private companies that behave strictly according to the rules they committed to.
But people are naturally corruptible, and naturally tempted to take advantage of a position of power..
and sometimes people are just bad at keeping track of the rules they should be following, not out of bad intentions, but just out of boredom and laziness or busyness.

A natural solution that comes to mind, sounding perhaps a bit like something from a science fiction story, is to have a computer program run a company, a bank, or the world?..or just start small and have a computer program enforce a legal contract between two people so that they would not have to worry about trusting the other.

As a side note, Uber was supposed to start using self-driving cars this week in Pittsburgh, so we are definitely living in the science fiction era.

As any one who has programmed has experienced, once a computer program is executed it will stick to the rules it was given, even when they have absurd consequences.

This was how roughly 150 million dollars were stolen in the DAO smart contract.
http://www.coindesk.com/understanding-dao-hack-journalists/

DAO stands for Distributed Autonomous Organization and this was the first large scale attempt to have a computer program run a company.

..but wait - you want to have a computer program be in charge to avoid corruption,
but can't the person in control of the computer just change or stop the program?

The solution to this is to use the whole internet as one big computer..
in a way that you can execute the next step of the program only if the majority of the internet, which we assume is not all colluding together in bad intent, agree that - yes, this is indeed the next line of the program.

The bitcoin protocol gave an ingenious way to have a vast number of computer work together without a minority among them being able to mislead the others regarding what the current state of the program is.

No comments: