Hacker News new | past | comments | ask | show | jobs | submit login

Yes, consensus is the hard part. That was a massive research effort, with a lot of game theory and recently-invented cryptography.

Once you have that, you can get consensus on literally any data just by putting a hash of that data in each beacon chain block. In this case, a hash of the EVM state, while the EVM runs as before.

There's still some discussion on the design, but that's more about deciding the best of multiple options, rather than figuring out how to do it at all. As I mentioned in another comment, someone built a running proof-of-concept in about a day.




Consensus is not the hard part. By "game theory", you mean "agree with everyone else, or we'll take your Eth away".

The hard part is figuring out how to execute arbitrary code and synchronize it across all shards, without removing the benefits of having shards in the first place.


Shard execution isn't necessary for migrating to proof-of-stake. The PoS migration just links a single EVM to the beacon chain; that's enough to remove PoW, i.e. the main concern in this discussion about GPUs.

Around the same time is the migration to data sharding, which multiplies data storage by 23X initially. That's without code execution on the shards.

Zkrollups in production now do the execution off-chain. On chain, you store compressed state data and a compact proof that everything executed correctly. That's good for a couple thousand tx/sec today, and 23X that after data sharding. Given that, Vitalik has argued that shard execution may not even be necessary; it wouldn't add nearly so much transaction capacity as we'd have already.

Here are the papers on how Ethereum consensus actually works:

https://arxiv.org/abs/1710.09437

https://arxiv.org/abs/2003.03052

And here's more detail on rollups:

https://vitalik.ca/general/2021/01/05/rollup.html




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: