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!

Quantstamp ラボ
2020年6月3日

ETH 2.0 の開発が進んでいると聞いたことがあるかもしれません。利用可能な情報のほとんどは、高度な技術的なものか過度に一般的なものですので、この投稿は混乱を解消するために作成しました。

現在、ETH 2.0のPoS(Proof-of-Stake)システムの心臓部であるBeacon Chainをテストして起動するフェーズ0に入っています。この投稿では、Beacon Chainの役割と、正式な立ち上げに向けて行われている作業について説明します。 

ビーコンチェーンの目的は?

ETH 2.0の目標の1つは、トランザクションの処理と保存の作業をシャード間で分担し、トランザクションの容量を拡大することです。現在のETH 1.0では、すべてのフルノードがすべてのEthereumトランザクションを検証し、Ethereumの全状態を保存する必要があるため、シャードが望ましいとされています。つまり、すべてのフルノードがEthereum上のすべての経済活動を管理していることになります。 

Ethereumが世界中のすべての経済活動をホストすることを目指していることを考えると、世界の経済活動をすべてのフルノードに格納することは課題を提示しています。ETH 1.0で状態が成長し続けると、フルノードを実行するためにアクセスしにくくなるため、Ethereumの分散化が進まなくなることを意味します。また、Ethereumは主流の採用には至っていませんが、すでにトランザクション容量の限界に達しつつあります。

ETH 2.0では、Beacon Chainを介してデータを調整し、最終化することで、シャードはこれらの制限を緩和します。Beacon Chainは真実のソースとしての役割を果たします。 

ビーコンチェーンは、PoSを使用してコンセンサスを得て、シャードデータを確定させます。

ビーコンチェーンでは、シャードデータを検証するためにPoSを使用します。PoWブロックチェーンでは、採掘者はフォークでマイニングしてネットワークを攻撃することを選択すると、電気代やマイニング機器などのサンクコストを賄うために必要なブロック報酬や取引手数料を集めることができなくなるため、良い行動をとるようにインセンティブが与えられます。 

ビーコンチェーンは、採掘者が沈没したコストを支払うことができないようにすることブロックチェーン でセキュリティを確保する代わりに、バリデーターが所有するエーテルを削除したり、「燃やす」ことでセキュリティを強化しますブロックチェーン。ETH 2.0を検証してエーテルを得るためには、検証者はまず、少なくとも32ETHをシステムに提出する必要があります。バリデータがネットワークに虚偽のデータを提出しようとした場合や、オフラインになってから時間が経つと、以前にネットワークに提出したエーテルの一部または全部が削除されます。 

フェーズ0の開発状況は?

Beacon Chain の起動はデリケートな作業です。スムーズなプロセスであることを確認するために、開発者はBeacon Chainの仕様に従ったクライアントの実装をテストしています。

クライアントは分散型システムの心臓部であり、中央の障害点を排除します。ETH 1.0 では、完全なクライアントが中央の障害点を排除します。

ETH 2.0の開発の現在の段階では、様々な独立したチームがこれらのクライアントの開発とテストを行っています。Prysmは、Prysmatic Labsが開発したクライアントで、Quantstamp監査を受けているETH 2.0クライアントです。このクライアントは現在 Onyx テストネットでテストされており、誰でもクライアントをダウンロードして模擬 ETH 2.0 ビーコンチェーンを実行することができます。このテストネットの目的は、PrysmクライアントがBeacon Chainの現在の状態についてのメッセージを共有する際に発生する可能性のある問題を検出することです。

最近のフェーズ0のマイルストーンを含むタイムライン。Onyxテストネット(上には表示されていません)が誕生する前、PrysmはTopaz上でテストされていました。Prysm は現在 Onyx でテストされていますが、これはこのテストブロックチェーン が mainnet での使用を目的とした最新の ETH 2.0 仕様を使用しているためです。

複数の実装でETH 2.0を安全に保つ

ETH 2.0が野生で成功するためには、Beacon Chainの起動時に複数のクライアントがアクティブになっている必要があります。単一のクライアントに依存していると、そのクライアントのバグがネットワークに壊滅的な影響を与え、ネットワークのコンセンサスが取れなくなったり、ブロックの確定ができなくなったりします。 

多数のクライアントが実装されている場合、単一のクライアントのバグがネットワークに壊滅的な影響を与える可能性ははるかに低くなります。単一のクライアントにバグが見つかった場合、そのクライアントはコンセンサスから外れてしまいますが、他のクライアントに全く同じバグが含まれている可能性は低いため、ネットワークは操作を継続し、トランザクションを確定することができます。言い換えれば、他のクライアントはコンセンサスを維持することになります。複数のクライアントはネットワークのセキュリティを強化します。 

テストネットの目的は、ビーコンチェーンがメインネットに到達した後に経験するであろう実世界の状況を再現した環境をシミュレートすることです。複数のクライアントがメッセージ(ブロック、トランザクションなど)を共有したときにバグが顕在化するかどうかを確認するために、ETH 2.0のクライアント実装はマルチクライアントテストネットでお互いに積極的に会話をしています。 

最初のマルチクライアントテストネットであるSchlesiは、4月27日に立ち上げられ、ある時点では、テストネットBeacon Chainを含む4つの同期クライアント実装を運用していました。 

5月17日
、あるクライアントのコンセンサスバグにより、Schlesiマルチクライアントテストネットのフォークが発生しました。バグが発見された後、クライアントの開発者は Schlesi テストネットを終了し、ブロック 0 から Witti と呼ばれる新しいマルチクライアントテストネットワークを開始することを決定しました。テストネットのバグを発見することは、開発プロセスの正常な部分であることに注意すべきである。Ethereumが正式に開始される前のETH 1.0のテストネットでも、このようなバグが多数発見されています。

ウィッティテストネットのバリデーターとステイクドエーテルの数。 ソース


ビーコンチェーンの立ち上げとその先

ETH 2.0は年内にローンチされると予想されていますが、これはハードな期限ではありません。マルチクライアントのテストネットが十分な期間安定性を実証するまでは、Beacon Chainは起動しません。

Ethereumコミュニティがこの安定性に関する一定レベルの社会的コンセンサスを達成した後、ETH 1.0でDeposit Contractが公開される予定です。Deposit Contractの役割は、ETH 2.0の潜在的なバリデーターからステークスを集めて、彼らがビーコンチェーンのデータを検証する資格を得ることです。所定の量のETHが入金されると、Beacon Chainが起動し、ブロックが生成されます。 

Beacon Chainの立ち上げはフェーズ0の終了を意味し、Beacon Chainが立ち上げられた後、ETH 1.0と2.0の両方のチェーンがしばらくの間並行して存在することになります。ETH 1.0は最終的にETH 2.0システムのシャードになります。

Quantstamp はETH 2.0の今後の動向を取材します。Twitterでフォローしたり、ブログで最新情報をお届けします。

ETH 2.0 テストネットのバリデータを実行する方法を紹介します。
バリデータを実行してください!
August 4, 2020

Quantstamp Community Update - July 2020

Here’s what happened at Quantstamp in July:

July 24, 2020

Yearn.Finance Security Review

Quantstamp completed its informal code review of Yearn Finance. Yearn Finance provides yield-maximizing opportunities for liquidity providers, and is intended to be governed in a decentralized manner. We performed this review as a service to the community. Findings are divided by contract below.

July 21, 2020

Risks on the Farm - How to Yield Farm Safely

“Yield Farming” is on the rise. Users are making money simply by providing liquidity, or in some cases, even just for using their favorite DeFi projects. But is it really "free money? Maybe not. Users need to be aware of the Risks on the Farm.

July 16, 2020

Ethereum 2.0 Moves Closer to Launch with Quantstamp Audit of Prysm

Quantstamp recently has completed its audit of Ethereum 2.0 as implemented by Prysmatic Labs.