“We’re definitely trying hard to bring the complexity down!” So says Vitalik Buterin in an extensive Ask Me Anything session where the new ethereum blockchain is described in detail.
First of all, the Beacon chain is a completely new network and sort of has nothing to do with the current ethereum blockchain – like bitcoin’s blockchain or other networks don’t – except that there’s a one way Proof of Burn and later on they may be linked.
“Moving to the beacon chain is done by sending ETH to a so-called “deposit contract” on Ethereum 1.0. People would send ETH to the beacon chain to become an Ethereum 2.0 validator and gain financial rewards,” Justin Drake says.
Asked to clarify “How will non-validators eventually transition from Eth 1.0 to Eth 2.0?” – Drake says: “Not finalised. Another contract will likely be used.”
Danny Ryan, another ethereum developer, goes into a bit more detail to clarify how the move to the beacon is envisioned, so stating:
“At first, this will just be a single directional deposit for validators only to begin validation. Once the state execution layer is in the new 1024 shards, users will be able to transfer eth directly to the shards from the PoW chain. In the long term, the plan is to roll the PoW state into one of the shards.
The current most favorable strategy from our perspective is to fork the PoW state root into a contract along with an EVM interpreter.
Users could then execute txs on the existing eth1.0 state by call the contract along with the merkle witnesses of the state they need to access. This option is nice because it allows us to cleanly deprecate eth1.0 support in the long term.”
This is the beacon chain which Buterin has previously described as a hybrid testnet-mainnet. That’s because it will initially sort of have no functionality except for staking.
“Ideally the spec should be close to final in Q1, cross-client testnets in Q2, security audits in Q3, mainnet launch in Q4,” Drake says regarding the beacon timeline.
They were hoping to finalize the spec last quarter. Now they’re hoping it will be close to final this quarter. Meaning we should expect a mainnet launch of the beacon by summer 2020 optimistically, although you can choose yourself whether you’d like to think they will surprise with an earlier launch or whether you’d rather put it down as 2021.
So far in many ways sort of nothing has happened but the launch of a savings account of sorts for those who want to take the risk and make a one way deposit to the beacon to become a Proof of Stake (PoS) staker.
“I think it is okay to have lower validation numbers early. These validators will be rewarded more for assuming the long time horizon and higher risk,” Ryan says. While Drake says:
“We do have a minimum amount at stake to launch phase 0, around 214 * 32 ETH = 524,288 ETH. So we’re effectively capping the interest rate (will be less than 25%) and setting a minimum security level.”
For some months, if not a couple of years, there will be the Proof of Work eth and the Beacon eth which they’re now calling beth.
“Arbitrage is always possible in one direction by buying 1 BETH for 1 ETH. A key design goal of Ethereum 2.0 is full fungibility for ETH tokens between the Ethereum 1.0 chain, the beacon chain, and the shards.
Two-way transfers between the beacon chain and the shards, as well as between shards, should come in phase 2,” Drake says.
Before we get to phase 2, we have to go to phase 1. “In phase 1 (about 2020 by my estimate) we will have shard data. Those shards, even without an EVM, can be used as the data availability layer for TrueBit (and other alternative execution engines). Phase 2 (about 2021) is when we will have scalable L1 execution,” Drake says.
If we understand this correctly, phase 1 is still within the hybrid testnet/mainnet in as far as you won’t be able to make transactions according to the roadmap.
“In the current phase 1 spec that’s sitting around in draft mode the block size is so far fixed to 16 kB, as keeping it fixed makes the code for proofs of custody, data availability proofs, etc much simpler,” Buterin says.
The idea here seems to be that it is easier to launch a new shard or even to shard the shards than to have a variable blocksize.
So finally we’re now at the actual launch of the real mainnet, phase 2. This is when eWASM launches, allowing for transactions, smart contracts, and basically everything.
Until then, as far as end users are concerned and as far as we understand, sort of nothing happens except for the PoS savings account. Although Ryan says the above phases (especially phase 2) “might be divided into sub-forks, and there will be a fork during/after phase 2 to bring in the eth1.0 state/evm into a contract.”
In phase 2, a dapp has to choose what shard it wants to be on. That decision matters because “Cross-shard communication will definitely be slow at base layer, however there are higher-level mechanisms that can be used to implement fast cross-shard communication on top of a base layer that allows any cross-shard communication at all even if slow,” according to Buterin.
That’s an interesting point because it isn’t very clear whether they’ve figured out cross-shard communication. According to the roadmap, cross-shard transactions are in phase 4.
“A dApp would have to get really big to consume all the resources in a given shard to justify spreading itself over multiple shards. For example, Uber does less than 20 rides per second. A similarly popular decentralised equivalent would likely fit on a single shard, especially when fancy L2 infrastructure is involved (e.g. state channels, plasma, SNARKs/STARKs),” says Drake.
20 transactions per second is roughly how much the current ethereum network can handle. A shard is of course sort of the current ethereum blockchain, but cloned 1,000x or so.
The suggestion here appears to be that a dapp is limited to one shard. So capacity then, for a dapp, would be same as current capacity. It’s just that each dapp can have the whole network (shard) for itself.
Later on then a dapp could potentially spread across shards, but within the medium term the tradeoffs appear to be very significant.
Our semi-realistic and pessimistic time-line here would be the beacon perhaps by summer 2020, phase 1 and then the actual launch maybe in 2022-24, cross-shards then probably after the second half of the next decade.
So making it a lot more clear why eth 1x has been suggested. A suggestion that may now attract a lot more attention because actual eth2.0 appears unlikely before at least 2022.
Of course much of the above is in flux, except perhaps for the beacon part, but even there you might see changes.
“Before phase 2 (my estimate is 2021) ETH in the beacon chain will be untransferable,” Drake said. Something which attracted an unfavorable reception, prompting Drake to say: “This seems to be a sticking point for several people, which is great feedback. We can likely add a transfer mechanism internal to the beacon chain with relative ease. That would allow for a market to develop.”
If it is indeed with relative ease then one would have to wonder why it wasn’t part of the plan all along. Drake further says:
“In my mind the Ethereum 2.0 abstract design is a remarkably elegant/slick/simple design. I worry that we botch the spec with poor taste in some of the implementation details, or bugs that we miss.”
Looking at it objectively, however, capacity will effectively be at 20 transactions per second which would probably not be enough for a Cryptokittie.
Moreover, before a dapp can spread across shards, you would lose certain important qualities. Currently, for example, you can copy the kitties dna and launch a new dapp where you make them race. Meaning dapps would probably want to cluster in one shard as otherwise you probably can’t easily built a dapp on top of a dapp.
The blocksize limitation may well be a concern if cross-sharding doesn’t quite reach a usability level comparable to within shard.
For it to do so, you’d think validators would also have to operate in each shard where the dapp has spread. Meaning, a bitcoiner would say, we’ve effectively come full circle.
Supernodes they’re now calling a validator or a node that “runs” all shards. You’d need about 32,000 eth for that, 32 eth for each of the 1,000 nodes.
A bitcoiner would say they are the real stakers and that’s the real node. In which case one would have to ask what’s the point of all this complexity when you can just add resources to the current blockchain.
One answer to that might be that everyone can validate part of the blockchain, but even there if we’re having rent storage and pruning, why can’t everyone validate all of the blockchain?
That’s perhaps the rocket science question and maybe this approach provides a solution to it even if it appears to be in a roundabout way. There are many tradeoffs here, however, and many aspects that should be part of a public debate.