Science | Xiaobai can understand – Ethereum 2.0 test network

Earlier this month, the Prysmatic Labs team released the Ethereum public test network , which is currently the closest to completion, using the Prysm client to develop the first phase of Ethereum 2.0.

This release was welcomed by the Ethereum community, and many people immediately started running the client and reporting the problem to the development team. The number of verification nodes in the test network soon exceeded 800. This shows that the Ethereum community is eager to contribute to the upgrade of Ethereum 2.0, which is highly anticipated.

It is necessary to explain to the vast Ethereum community members what the Ethereum 2.0 test network is, and why its release is a key milestone. Why did it take so long to reach this release ? This article will attempt to illustrate technical details in plain language. First, we will discuss the differences between Ethereum 2.0 and current Ethereum, and secondly explain the function of the test network.

Why is the Ethereum 2.0 upgrade waiting so long?

To answer this question, let us first clarify a simple but important concept:

Ethereum 2.0 is not an upgrade to the existing Ethereum network, but a comprehensive revision and redesign.

Many people don't know or even disagree with this, so it is necessary to clarify.

  1. The new Ethereum 2.0 network will remove the PoW (workload proof) consensus mechanism and switch to the (new Proof of Entitlement (PoS) Consensus Mechanism) Casper consensus mechanism.
  2. On the PoW chain, you can use a very simple method to determine which chain should be selected in the fork and how to drive the chain. The method is to always follow the chain with the largest cumulative workload , in other words, choose the chain that consumes the most computational power. But because Ethereum 2.0 uses PoS, we must introduce a new set of fork selection rules (LMD GHOST) to determine the chain's growth direction.
  3. The current Ethereum network has only one single chain (somewhat like a DAG directed acyclic graph). The Ethereum 2.0 network uses 1024 parallel chains (ie, shards ), which is at the heart of Ethereum's ambitious expansion plans. These different chains (shards) can communicate with each other and be controlled and verified by a single main chain Beacon chain. The Beacon chain is like a branch of a plant, holding 1024 equal branches.
  4. These radical changes have made it impossible for ETH holders to use ETH in the new Ethereum 2.0 network. Instead, the current ETH needs to be burned first, and in return, the same amount of ETH is obtained on the Beacon chain. This exchange mechanism is completed by a smart contract on Ethereum 1.0 and is monitored by the Beacon chain.

Although there are too many differences between Ethereum 1.0 and 2.0, we will only discuss the main part here. This will help illustrate the amount of work required to complete Ethereum 2.0.

Why is the release of the Ethereum 2.0 test network so important?

From the differences between the 1.0 and 2.0 networks discussed above, Ethereum 2.0 also requires a lot of integration and tuning of the functions to function properly. And many of the concepts of Ethereum 2.0 are new and have never been tested by other published blockchains, such as the Casper consensus mechanism.

It took more than two years for the Cosmos and Polkadot protocols to achieve a similar goal to Ethereum 2.0 to achieve a working (developed from 0, fully flexible) design. What's more, these projects don't have to worry about how to move ETH and other ERC-20 tokens from the old chain to the new chain, and there is no need to worry about how to reduce the impact of (protocol changes) on dApp developers. Therefore, the Ethereum community needs to see tangible and concrete steps in the process of new and old network migration to boost confidence in the implementation of the road map.

What functions does the Ethereum 2.0 Sapphire test network implement?

Looking back at the four different points of Ethereum 1.0 and 2.0 mentioned above, the test network implemented #1, #2, and #4, and partially implemented #3. Specifically, the Sapphire Test Network implements the Casper PoS consensus mechanism (using the new fork selection rule); implements the Beacon chain; implements the ETH 2.0 token that transfers the ETH 1.0 token to the test network. The test network did not implement 1024 shards and the communication mechanism between slices (cross-chip communication).

Another notable missing feature in the test network is the smart contract, which is planned to be implemented in the third phase of the roadmap. In order to complete the smart contract function, it is necessary to transplant the Ethereum Virtual Machine (EVM) to Ethereum 2.0 or re-implement a virtual machine ( WASM ) as an alternative to EVM in the Ethereum 2.0 protocol.

How does the Ethereum 2.0 test network work?

Ethereum 2.0 is a PoS network that uses the verification node of the pledge token to produce blocks and maintain network operation. Therefore, the first problem to be solved is how to assign tokens to the verification node to run the network.

In the Ethereum 2.0 network, ETH tokens that are as valuable as our 1.0 network will eventually be used, so ETH tokens need to be transferred to the new Ethereum 2.0 network. To implement and test this transfer function, Prysmatic Labs developed a test network called Ethereum 1.0 for Goerli and a smart contract called a deposit contract . On the Goerli network, anyone can get any desired pseudo ETH and deposit. The contract can store unlimited ETH tokens. When the coin is charged to the deposit contract, the Beacon chain of the test network will generate the equivalent amount of ETH 2.0 tokens. For the sake of simplicity, we refer to the ETH 2.0 token as: Beacon chain ETH (bETH).

Schematic diagram of ETH transfer between Ethereum 1.0 and 2.0

Steps from ETH 1.0 to bETH:

  1. First, verify that the node installs the Prysm software that supports the Ethereum 2.0 network and creates an account. The created account will generate “deposit data” to open the Ethereum 1.0 wallet and the Ethereum 2.0 account.
  2. On the Ethereum 1.0 test site Goerli, the user sent 3.2 ETHs (the actual network would require 32 ETHs) to the deposit contract to participate in the validation of Ethereum 2.0. This is actually burning ETH 1.0 tokens.
  3. When Ethereum 2.0's Beacon chain finds a credit in the deposit contract, the same number of bETH tokens are generated in the account of the verification node. Now, verify that the node is ready to participate in the verification, just wait for a security delay, which is used to enhance the security of the Beacon chain.
  4. Verify that the client starts participating in the consensus mechanism and receives a verification award. If you do not follow the agreement rules, their bETH will be fined.

What exactly does the verification node do?

In Ethereum 2.0, a new block is generated every 6 seconds (the current PoW network is approximately 15 seconds). Each time, a new block is proposed by a node in the verification node pool. A certain number of other verification nodes check the block and verify the correctness. When the next time the block is issued, another verification node proposes to generate a block, and at the same time, another set of different verification nodes is used to verify the correctness.

For each of the 64 blocks (called an epoch ), all the verification nodes will reshuffle and select a new block proposer and block certifier for the new epoch. The verification process of the verification node, under the help of the random number generation algorithm, fundamentally avoids the collusion between the verification nodes and improves the security of the protocol.

Verify that the nodes need to be online all the time to complete the tasks assigned to them. If they work honestly, they will receive a bETH token reward. If they misbehave, collude or go offline, the tokens they pledge will be fined. If the balance of the verification node is reduced below the verification threshold (3.2 bETH in the test network), it will be kicked out of the verification node pool and cannot continue to participate in the verification.

Follow-up development direction?

The Sapphire Test Network is just one step in the long journey to Ethereum 2.0. It implements Phase 0 in the Ethereum 2.0 roadmap. There are 2 stages to achieving the full functionality of Ethereum 2.0.

But even in stage 0, if you want to go to the main network, there is still a huge amount of work. First of all, we are still in the early stages of the test network, there are many problems, bugs and optimization items to be solved; secondly, only one client of Prysm can be used on the test network. Other teams are also developing clients that support the Ethereum 2.0 network, such as Nimbus and Lighthouse. Compatible with different clients is a prerequisite for completing a test network supporting multiple clients ; again, the design of phase 0 requires bETH to transfer funds between different accounts, and the current test network is not satisfied; finally, the design of phase 0 is still In the revision of the details (by the Ethereum Foundation research team). These designs need to be finalized, fully implemented, and audited in a number of Ethereum 2.0 clients before they are expected to be at the end of 2019.

In short, testing the online line is a key step in the Ethereum 2.0 release roadmap. Its significance is that the public in the Ethereum community can participate in the test, and raise the bottleneck of problem discovery to guide the developers of Ethereum 2.0. The release of the test network effectively boosted the community's confidence in the Ethereum 2.0 roadmap. In addition, the Ethereum Foundation announced that it will invest $19 million to support the development of Ethereum 2.0 and the development of other Ethereum expansion plans. This will effectively speed up the development and testing work.

Original link: Author: Mohamed Fouda translation & proofreading: Wuwei & A sword

(This article is from the EthFans of Ethereum fans, and it is strictly forbidden to reprint without the permission of the author.