He spoke about the recently completed audit and formal verification of the eth2 deposit contract bytecode by Runtime Verification, and how it is a pivotal milestone on the journey to the eth2 phase 0 mainnet.
Of the total effort dedicated to optimizing the blockchain, much has been allocated to the beacon chain at the core of Ethereum 2.0 — a requisite component for the overall sharded system. He pointed out that in order to be able to run the beacon chain along with a handful of shards on a consumer machine, “it is paramount that the beacon chain is relatively low in resource consumption, even when there is high validator participation.”
Ryan also spoke about the Rust implementation of Ethereum 2.0, Lighthouse, whose testnet with around 16,000 validators had been brought down a couple of weeks ago following an “attestation gossip relay loop [which] caused the nodes to essentially DoS themselves.” While patching the related bug, Sigma Prime was reportedly able to create a testnet capable of handling over 100,000 validators.
He also said that Lighthouse made 70% gains in the hashing of the state which, along with BLS signature verification, “is proving to be the main computational bottleneck in eth2 clients.”
As per the development update, Prysmatic Labs’ testnet, Prysm, has reportedly passed slot 180,000 with over 35,000 active validators on the platform. Sync speeds have also improved, from around 0.3 to over 20 blocks per second.
The Ethereum 2.0 developer also explained how the core eth2 ‘spec’ which describes correct behavior of a system, frequently specifies, “expected behavior” in an inefficient manner. He said that this was due to the spec code being optimized primarily for readability of intention, rather than performance. However, since different algorithms can implement the same specification, Ethereum 2.0 allows for a wide variety of different implementations of its components, including fork choice.
On noticing a major bottleneck in Lighthouse’s fork choice algorithm, Sigma Prime discovered ‘proto_array’ among the various fork choice algorithms implemented by Protolambda a year ago. Once integrated, proto_array was able to run “in orders of magnitude less time and perform significantly less database reads.”
Besides updates to development, Ryan also laid down the work being done towards Ethereum 2.0 Phase 2 research, one that involves the addition of state and execution into eth2’s sharded universe. The Quilt and eWASM teams have reportedly been researching and better defining their open design space alongside ongoing Phase 0 and 1 development. In addition, the TXRX team has decided to dedicate a portion of their efforts toward Phase 2 research, focusing on better understanding, “cross-shard transaction complexity,” and prototyping integration paths for eth1 to eth2.