From the comments, Vitalik Buterin

Analyst

|

1. In retrospect, was it a good decision to have ethereum bytecodes executed on every single mining node? And if not, would he have selected sharding and plasma or a different solution?

2. How confident is he that transitioning to proof-of-stake will be successful? What are the risks of proof-of-stake?

I’ll answer this one here in detail because it’s probably too technical for it to be valuable to put a good answer into a Conversation with Tyler.

> 1. In retrospect, was it a good decision to have ethereum bytecodes executed on every single mining node? And if not, would he have selected sharding and plasma or a different solution?

Ultimately the answer is, yes given the knowledge we had at the time, no given what we know today. If I was doing Ethereum back then with the knowledge that I have today, I would obviously shoot straight for exactly the design that the research team is shooting for today (Casper PoS, sharding), and I would have actively encouraged developers to work on state channels and Plasma from day 1. Layer 1 scaling (sharding) and layer 2 scaling (state channels and Plasma) are complementary; gains from the two are multiplicative with each other, so it’s not a matter of A vs B, it’s A and B.

Ultimately, for a distributed validation system to work, you need to satisfy two properties:

1. There are enough (randomly sampled) nodes on average validating any given piece of data that invalid data will under no circumstances get through.
2. There are mechanisms that can ensure that if bad data *does* get through (eg. because of a 51% attack), then clients can detect this. In a sharded system, there is obviously too much data for clients to verify directly, but there are indirect approaches that can be used that can give equivalent assurances with some additional security assumptions (STARKs, fraud proofs, data availability proofs…)

> 2. How confident is he that transitioning to proof-of-stake will be successful? What are the risks of proof-of-stake?

Close to 100% confident that proof of stake is possible in principle; many chains are using (crappy versions of) it already. There’s obviously the question of how strong properties we can achieve with PoS though, and there are some edges of that that are still being worked out. The main risks that I see are (i) weird game-theoretic attacks on the specific design that we end up going with, and (ii) pool centralization.

IMO Satoshi’s PoW is really nice in part because of its sheer simplicity; the simplicity helps with decentralization because pretty much anyone can understand how it works, whereas traditional non-PoW consensus algos like PBFT are far more complex. Casper FFG was designed in part to replicate something close to PoW-style simplicity while still having the safety and liveness properties of traditional BFT consensus algos; and I’m obviously interested in minimizing complexity of the sharding design as well.

Here is the link, he offers several other “highly technical” answers in the comments.

Comments

Comments for this post are closed