Ryan put forth some code changes recently “in light of discussions around the alternate phase 1 proposal” so as to remove “the notion of Shard and Crosslink entirely from Phase 0.”
He is referring to a proposal by Vitalik Buterin, ethereum’s co-founder, who called it “a radical alternative” that removes a number of complexities, “leading to ETH2 being usable sooner and with fewer risks.”
The proposal removes the concept of “a persistent shard chain. Instead, every shard block is directly a crosslink. Proposer proposes, crosslink committee approves, done.”
All this makes it easier for a testnet to launch because they’re removing all shard and crosslink mechanics, leaving them for phase 1.
“Let us retire the word ‘crosslink’ as we’re not ‘linking’ to a shard chain and use the word ‘shard block’ directly,” Buterin says.
The proposal basically links the “shards” through “a pathway by which a slot-N+1 block of any shard is aware of all slot-N blocks of all shards. Hence, we now have first-class single-slot cross-shard communication (through Merkle receipts)…
Beacon block N+1 is published, which includes these attestations for all shards. The state transition function of block N+1 processes these attestations, and updates the ‘latest states’ of all shards.”
In plainer language and from what we understand, instead of having different shard “universes” that have to somehow “talk” to each other, you send everything through the Beacon which basically does all the “talking.”
That makes the Beacon itself a bottleneck, but obviously there’s compression of data with “receipts” so it’s far less of a bottleneck than a node is currently.
This last minute change is because for a shard “universe” to talk to another takes quite a bit of time, even if you’re transferring eth between one shard to another.
Presumably they couldn’t quite figure out how to reduce such time requirement, so they’re changing the design somewhat considerably where phase 1 and 2 is concerned.
Where phase 0 is concerned, they’re removing things so it should be easier for that to get out, but it sounds like there’s still things to get through before a testnet with Age Manning of Lighthouse, an eth2.0 client by Sigma prime, stating last month:
“We are debugging and experimenting interoperability between clients. There are a number of stages to this.”
We couldn’t quite get an update today in time for publishing. There’s an eth2.0 call tomorrow where development updates are expected with another aspect of course being the deposit contract which starts the process.
That uses BLS signatures, newish cryptography that is yet to go through a standardization process with a draft under consideration.
Justin Drake, who appears to be in charge of the cryptography aspect, as well as other eth developers, have decided to have some sort of agreement between different projects that use BLS to agree to a standard without having to wait for the committee, with Dfinity devs seemingly hard at work on it. Ben Edgington of PegaSys told Trustnodes:
“I am not a decision maker, but have talked to various people involved. (1) The new BLS spec has been stable for some time and is thought to be unlikely to change further. (2) Very soon (weeks) the blockchains adopting this will agree that it is frozen. Note that formal standardisation will take much longer, but we’re not concerned with that. (3) Tools to sign the deposit data based on the new method will be implemented. (4) The deposit contract will go live. I’d expect this last step by year-end, but that’s speculative. I don’t see a reason it would take longer than that.”
In addition, one of the testnet checklist appears to need a bit more work for at least some of its components, with it very unlikely now that phase 0 goes out in January.
March too might be an optimistic estimate, but it looks like a lot of work is going on with this simplification potentially assisting. Yet much seems to be in flux too with hopefully more clarity to be reached tomorrow.