Some loose thoughts about tezos' self governance

in blockchain •  8 years ago 

Tezos’ self governance appears to provide a true step forward towards a completely decentralized network. They have built in a lot of initial support from the founding team, with a clear vision to release the ownership to the community. Their choice to use only strictly functional and strongly typed languages makes formal verification much easier. Formal verification is important to their core philosophy (I’ll explain below).

Technically, I see no faults in Tezos, though I haven’t digested their entire white paper. It is much more dense. I believe in the technology which they are using and I can see how it could make a better blockchain network. Overall, I think they are on the right track.

Their strict requirements in programming languages make for a much more secure programming environment. Which is especially important when anyone can contribute code that will potentially change the entire network. This is a scary thing, right? Check out this contest http://www.underhanded-c.org/. This is an entire contest specifically for people to write code that looks innocuous but contains malicious intent. Now imagine someone who is very good at programming submitted a piece of code that looked innocuous but contained something harmful to the network. It might take a very long time for anyone to catch on and see the error in the program. Personally, I believe this is what happened with the DAO hack, and there are others who have the same suspicion. Formal verification mitigates this risk by essentially “proving” that a program does the thing which it is supposed to do. Strongly typed, functional languages make formal verification easier. Tezos uses formal verification both on the network level and on the smart contract level.

I just want to reiterate that all of my opinions are based on trusting what they have said. Here are my assumptions:

  1. Contributions to the program that runs the network are formally verified.
  2. Smart contracts deployed to the network are formally verified.
  3. Before contributing a change to the network, the formal verification must be understood and approved by enough agents in the network to find flaws.

That 3rd one is kind of a complicated one so let me dig in a little deeper; I might write a piece of code that does something like this:

Get two lines of text, convert them to numbers, add them, and return the result.

The correct way to formally verify this program would be to check that the result makes sense for every possible line of text and find all of the error states (what happens if I pass in empty lines of text? Or what if my text says “cow cow cow”?). A naive implementation might only assert that all lines of text containing numbers make sense, and will produce unexpected results in situations that are not verified. These unexpected results can and will result in anything from harmless bugs to network crashing, world exploding malicious side effects (based on Murphy’s Law).
Now this analysis of formal verification assumes (hint, another assumption of mine which is potentially naive) that a verification could be faulty. I’m not entirely sure that this situation could be happen, but it is something to consider.

Phew… I need a breather for a second.

How all of this madness of which I speak affects Tezos:
If formal verifications for upgrades to the network cannot be verified in time by the voters, and it is possible to introduce bugs, then it is all for naught.

However, from everything that I see, Tezos has taken extreme measures to avoid this possibility.

And remember, hard forks are always an option ;)

(And in my opinion a good option, but we don’t have to get into that)

As far as how successful the technology will be, I really have no clue. But here is what I will say:

Bitcoin was a step forward. It provided blockchains. It lacked generic computation and decentralized governance. Now their network is falling apart because nobody can make decisions about what to do.
Ethereum was a step forward. It put generic computation on the blockchain. There are serious concerns about Ethereum being controlled by a centralized organization due to it’s lack of formal verification considering the added complexity of smart contracts.

Tezos brings self governance and formal verification. Is it the right step forward? What is it lacking? Who knows yet…
¯_(ツ)_/¯
Fin
Love,
Soren

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @sorenpeterson! You have received a personal award!

Happy Birthday - 1 Year on Steemit Happy Birthday - 1 Year on Steemit
Click on the badge to view your own Board of Honor on SteemitBoard.

For more information about this award, click here

By upvoting this notification, you can help all Steemit users. Learn how here!

Thanks for the good article

Congratulations @sorenpeterson! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 3 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!