ETH 2.0 개발의 현재 단계인 0단계 이해

Quantstamp Labs
June 3, 2020

You may have heard that progress is being made in ETH 2.0 development: however, you may have questions regarding where we are in this development process. Most of the information available is either highly technical or excessively general, so we created this post to clear up any confusion.

We are currently in Phase 0, the phase in which the Beacon Chain, the heart of ETH 2.0’s Proof-of-Stake (PoS) system, is tested and launched. This post will explain the role of the Beacon Chain and the work that is being done to get us to its official launch. 

What is the purpose of the Beacon Chain?

One of the goals of ETH 2.0 is to divide the work of processing and storing transactions amongst shards in order to scale transaction capacity. Shards are desirable because, currently in ETH 1.0, every full node is required to validate all Ethereum transactions and store the entire state of Ethereum. This means that every full node is managing all economic activity on Ethereum. 

Considering that Ethereum aims to host all economic activity worldwide, storing the world’s economic activity on every single full node presents challenges. As the state continues to grow on ETH 1.0, it becomes less accessible to run a full node which means Ethereum would become less decentralized. Also, although Ethereum has not achieved mainstream adoption, it is already reaching transaction capacity limits.

With ETH 2.0, shards will relieve these limitations by coordinating and finalizing data through the Beacon Chain. The Beacon Chain serves as the source of truth. 

The Beacon Chain uses PoS to reach consensus and finalize shard data

The Beacon Chain will use PoS in order to validate shard data. In PoW blockchains, miners are incentivized to be good actors because, if they choose to attack the network by mining on a fork, they will be unable to collect the block rewards and transaction fees necessary to cover sunken costs like electricity and mining equipment. 

The Beacon Chain changes how security and data validation works on the blockchain. Instead of securing the blockchain via the inability for miners to pay off sunken costs, security is enforced by deleting or “burning” ether belonging to validators. In order to be eligible to validate ETH 2.0 and earn ether for doing so, potential validators first need to submit (aka stake) at least 32 ETH to the system. If a validator attempts to submit false data to the network or if they are offline for too long, some or all of the ether that they previously submitted to the network is deleted. 

What is the status of Phase 0 development

Launching the Beacon Chain is a delicate endeavor. In order to make sure that this is a smooth process, developers are testing client implementations that follow these Beacon Chain specifications.

Clients are the heart of decentralized systems because they eliminate central points of failure. In ETH 1.0, full clients eliminate central points of failure by:

The current phase of ETH 2.0 development centers on various independent teams developing and testing these clients. Prysm, the ETH 2.0 client that is being audited by Quantstamp, is a client developed by Prysmatic Labs. This client is currently being tested in the Onyx testnet, where any individual can download the client and run the mock ETH 2.0 Beacon Chain. The purpose of this testnet is to detect problems that may occur when Prysm clients share messages about the current state of the Beacon Chain. 

A timeline containing recent Phase 0 milestones. Before the genesis of the Onyx testnet (not shown above), Prysm was tested on Topaz. Prysm is now tested on Onyx because this test blockchain is using the latest ETH 2.0 specification that is aimed to be used in mainnet.

Keeping ETH 2.0 safe with multiple implementations

In order for ETH 2.0 to thrive in the wild, it needs multiple clients to be active at the time of the Beacon Chain launch. If we rely on a single client, a single bug in that client can have devastating effects on the network, including throwing the network out of consensus or preventing blocks from being finalized. 

With numerous client implementations, a bug in a single client is much less likely to have a devastating effect on the network. If a bug were to be found in a single client, this client would fall out of consensus, but the network would continue to operate and finalize transactions because other clients are unlikely to contain the exact same bug. In other words, the other clients would maintain consensus. Multiple clients enhance network security. 

The goal of a testnet is to simulate an environment that replicates real-world conditions that the Beacon Chain will experience once it hits mainnet. In order to see if any bugs reveal themselves when multiple clients share messages (blocks, transactions, etc), ETH 2.0 client implementations are actively speaking to each other in multi-client testnets. 

Schlesi, the first multi-client testnet, launched on April 27th and, at one point, had 4 synced client implementations operating the testnet Beacon Chain including: 

On May 17th, a consensus bug in one of the clients caused a fork in the Schlesi multi-client testnet. After the bug was discovered, client developers decided to end the Schlesi testnet and start a new multi-client test network from block 0 called Witti. It should be noted that finding bugs in testnets is a normal part of the development process. Many such bugs were found in ETH 1.0 testnets before Ethereum was officially launched. 

The number of validators and staked ether on the Witti Testnet. Source

Launching the Beacon Chain and beyond

ETH 2.0 is expected to launch before the end of the year, but this is not a hard deadline. The Beacon Chain will not be launched until multi-client testnets demonstrate stability for a sufficient period of time.

Once the Ethereum community achieves a certain level of social consensus regarding this stability, the Deposit Contract will be published on ETH 1.0. The role of the Deposit Contract is to collect stakes from potential ETH 2.0 validators so that they are eligible to validate data on the Beacon Chain. Once a predetermined quantity of ETH has been deposited, the Beacon Chain will activate and blocks will be produced. 

The launch of the Beacon Chain will mark the end of Phase 0. After the Beacon Chain is launched, both ETH 1.0 and 2.0 chains will exist in parallel for a time. ETH 1.0 will eventually become a shard in the ETH 2.0 system.

Quantstamp will be covering future developments in ETH 2.0. Follow us on Twitter and visit our blog to stay up to date!

Update [Nov 24, 2020]

The Deposit Contract was successfully deployed on October 14th, 2020. On November 23rd, 2020, the Deposit Contract surpassed the threshold necessary (524,288 ETH) to launch the Beacon Chain. The Beacon Chain genesis will take place on Dec 1st!

퀀트스탬프 랩스
2020년 6월 3일

ETH 2.0 개발에서 진전이 이루어지고 있다는 소식을 들었을 수도 있습니다. 사용 가능한 정보의 대부분은 매우 기술적이거나 지나치게 일반적이므로 혼란을 해소하기 위해이 게시물을 만들었습니다.

현재 ETH 2.0의 지분 증명(PoS) 시스템의 핵심인 비콘 체인이 테스트및 출시되는 단계인 0단계에 있습니다. 이 게시물은 비콘 체인의 역할과 공식 출시에 우리를 얻기 위해 수행되는 작업을 설명합니다. 

비콘 체인의 목적은 무엇입니까?

ETH 2.0의 목표 중 하나는 트랜잭션 용량을 확장하기 위해 트랜잭션을 샤드 간에 처리하고 저장하는 작업을 분할하는 것입니다. 파편은 현재 ETH 1.0에 모든 전체 노드가 모든 이더리움 트랜잭션의 유효성을 검사하고 전체 이더리움 상태를 저장하기 위해 필요하기 때문에 바람직합니다. 즉, 모든 전체 노드가 이더리움에서 모든 경제 활동을 관리하고 있음을 의미합니다. 

이더리움이 전 세계적으로 모든 경제 활동을 주최하는 것을 목표로 하고 있다는 점을 고려할 때, 전 세계의 경제 활동을 모든 노드에 저장하는 것은 어려운 일입니다. ETH 1.0에서 상태가 계속 증가함에 따라 전체 노드를 실행할 수 없게 되어 이더리움이 분산되지 않습니다. 또한, 이더리움은 주류 채택을 달성하지 못했지만 이미 트랜잭션 용량 한계에 도달하고 있습니다.

ETH 2.0을 사용하면 샤드는 비콘 체인을 통해 데이터를 조정하고 마무리하여 이러한 한계를 완화합니다. 비콘 체인은 진리의 근원역할을 합니다. 

비콘 체인은 PoS를 사용하여 합의에 도달하고 샤드 데이터를 마무리합니다.

비콘 체인은 Shard 데이터의 유효성을 검사하기 위해 PoS를 사용합니다. PoW 블록 체인에서 광부는 포크에서 채굴하여 네트워크를 공격하기로 결정하면 전기 및 광산 장비와 같은 침몰 한 비용을 충당하기 위해 필요한 블록 보상 및 거래 수수료를 수집 할 수 없기 때문에 좋은 배우가 될 수 있도록 인센티브를 받습니다. 

Beacon Chain은 블록 체인에서 보안 및 데이터 검증이 작동하는 방식을 변경합니다. 채굴자가 침몰한 비용을 갚을 수 없다는 이유로 블록체인을 확보하는 대신, 유효성 검사기에 속한 에테르를 삭제하거나 "굽기"하여 보안이 적용됩니다. ETH 2.0의 유효성을 검사하고 에테르를 적립하려면 잠재적 인 유효성 검사기먼저 시스템에 최소 32 ETH를 제출해야합니다. 유효성 검사기가 네트워크에 허위 데이터를 제출하려고 시도하거나 너무 오랫동안 오프라인 상태가 된 경우 이전에 네트워크에 제출한 에테르의 일부 또는 전부가 삭제됩니다. 

단계 0 개발의 상태는 무엇입니까?

비콘 체인을 출시하는 것은 섬세한 노력입니다. 이 프로세스가 원활한 프로세스인지 확인하기 위해 개발자는 이러한 Beacon Chain 사양을 따르는 클라이언트 구현을 테스트하고 있습니다.

클라이언트는 중앙 고장 지점을 제거하기 때문에 분산 시스템의 핵심입니다. ETH 1.0에서 전체 클라이언트는 다음과 같은 중앙 실패 지점을 제거합니다.

ETH 2.0 개발의 현재 단계는 이러한 고객을 개발하고 테스트하는 다양한 독립 팀을 중심으로 합니다. Prysm, ETH 2.0 클라이언트에 의해 감사되는, Prysmatic 연구소에의해 개발 된 클라이언트입니다. 이 클라이언트는 현재 Onyx 테스넷에서테스트 중이며, 모든 개인이 클라이언트를 다운로드하여 모의 ETH 2.0 비콘 체인을 실행할 수 있습니다. 이 테스트넷의 목적은 Prysm 클라이언트가 비콘 체인의 현재 상태에 대한 메시지를 공유할 때 발생할 수 있는 문제를 감지하는 것입니다.

최근 단계 0 이정표가 포함된 타임라인입니다. 오닉스 테스트넷의 기원전에 (위에 표시되지 않음), Prysm은 토파즈에서 테스트되었다. 이 테스트 블록 체인은 메인넷에서 사용되는 것을 목표로 최신 ETH 2.0 사양을 사용하기 때문에 Prysm은 이제 Onyx에서 테스트됩니다.

여러 구현으로 ETH 2.0 안전 유지

ETH 2.0이 야생에서 번창하기 위해서는 비콘 체인 출시 당시 여러 클라이언트가 활성화되어야 합니다. 단일 클라이언트에 의존하는 경우 해당 클라이언트의 단일 버그가 네트워크를 컨센서스에서 던지거나 블록이 최종 확정되지 않도록 방지하는 등 네트워크에 치명적인 영향을 미칠 수 있습니다. 

수많은 클라이언트 구현을 사용하면 단일 클라이언트의 버그가 네트워크에 치명적인 영향을 줄 가능성이 훨씬 적습니다. 단일 클라이언트에서 버그를 발견하면 이 클라이언트는 합의에서 벗어나지만 다른 클라이언트가 동일한 버그를 포함할 가능성이 거의 없기 때문에 네트워크는 트랜잭션을 계속 작동하고 마무리합니다. 즉, 다른 클라이언트는 합의를 유지할 것입니다. 여러 클라이언트가 네트워크 보안을 향상시킵니다. 

테스트넷의 목표는 비콘 체인이 메인넷에 도달하면 경험하게 될 실제 조건을 복제하는 환경을 시뮬레이션하는 것입니다. 여러 클라이언트가 메시지(블록, 트랜잭션 등)를 공유할 때 버그가 자신을 드러내는지 확인하기 위해 ETH 2.0 클라이언트 구현은 다중 클라이언트 테스트넷에서 서로 적극적으로 말하고 있습니다. 

4월 27일에 출시된 최초의 멀티 클라이언트 테스트넷인 Schlesi는 한 때 다음과 같은 테스트넷 비콘 체인을 운영하는 4개의 동기화된 클라이언트 구현을 구현했습니다. 

5월 17일, 고객 중 한 명의 컨센서스 버그가 슐레시 멀티 클라이언트 테스트넷에서 포크를 일으켰습니다. 버그가 발견된 후 클라이언트 개발자는 Schlesi testnet을 종료하고 Witti라는 블록 0에서 새로운 다중 클라이언트 테스트 네트워크를시작하기로 결정했습니다. 테스넷에서 버그를 찾는 것은 개발 프로세스의 정상적인 부분이라는 점에 유의해야 합니다. 이더리움이 공식적으로 출시되기 전에 ETH 1.0 테스넷에서 이러한 버그가 많이 발견되었습니다.

위티 테스트넷의 유효성 검사기 및 지분 에테르의 수입니다. 소스 (소스)

비콘 체인 및 그 너머 출시

ETH 2.0은 연말 이전에 출시될 것으로 예상되지만, 이는 어려운 기한이 아닙니다. 비콘 체인은 멀티 클라이언트 테스트넷이 충분한 기간 동안 안정성을 입증할 때까지 출시되지 않습니다.

이더리움 커뮤니티가 이러한 안정성에 대해 어느 정도 사회적 합의를 이루면 보증금 계약은 ETH 1.0에 공표됩니다. 예금 계약의 역할은 잠재적인 ETH 2.0 유효성 검사기로부터 지분을 수집하여 비콘 체인의 데이터를 검증할 수 있도록 하는 것입니다. ETH의 미리 정해진 수량이 증착되면 비콘 체인이 활성화되고 블록이 생성됩니다. 

비콘 체인의 출시는 단계 0의 끝을 표시합니다. 비콘 체인이 출시된 후 ETH 1.0과 2.0 체인은 한동안 병렬로 존재합니다. ETH 1.0은 결국 ETH 2.0 시스템의 파편이 될 것입니다.

Quantstamp ETH 2.0의 향후 발전을 다룰 것입니다. 트위터에서 우리를 팔로우하고 최신 정보를 유지하기 위해 블로그를 방문하십시오!

업데이트 [2020년 11월 24일]

예금 계약은 2020년 10월 14일에 성공적으로 배포되었습니다. 2020년 11월 23일, 예금 계약은 비콘 체인을 출시하는 데 필요한 임계값(524,288 ETH)을 초과했습니다. 비콘 체인 기원은 12월 1일에 개최됩니다!

ETH 2.0 테스트넷의 유효성 검사기를 실행하는 방법 알아보기
유효성 검사기 실행!
November 11, 2020

Quantstamp Community Update - October 2020

‍Audit of Ethereum 2.0 client Teku, blockchain insurance, Open DeFi, virtual events, and more media coverage... here’s what happened at Quantstamp in October.‍

November 5, 2020

Why Bitcoin is Capturing Enterprise Attention

MicroStrategy made headlines this summer as the first publicly-traded company to buy Bitcoin as part of its capital allocation strategy. Since then, other companies have followed suit. Learn how current economic conditions and the unique properties of Bitcoin have driven these decisions.

October 28, 2020

Formally Verifying Hedera Hashgraph's Stablecoin Framework

Quantstamp created and formally verified a specification for Hedera Hashgraph stablecoins. This simplifies the process of creating safe stablecoins and also makes easier for partners to safely integrate them.

October 27, 2020

Quantstamp Completes Audit of 2nd ETH 2.0 Implementation

Quantstamp has now completed its audit of Teku, the Ethereum 2.0 client developed by ConsenSys. Quantstamp also audited Prysm by Prysmatic Labs.