Risk Warning: Beware of illegal fundraising in the name of 'virtual currency' and 'blockchain'. — Five departments including the Banking and Insurance Regulatory Commission
Information
Discover
Search
Login
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
View Market
12-hour countdown, reviewing the seven-year changes in the Ethereum protocol layer
PANews
特邀专栏作者
2022-09-14 14:00
This article is about 4910 words, reading the full article takes about 8 minutes
Looking back at history, every step towards the "world computer" is printed in the dense code.

Original title:

Original title:secondary title

What is Ethereum

What is Ethereum? A thousand people have a thousand answers, and what this article wants to discuss is the most consistent answer, that is, what is the protocol of Ethereum? Or in a more technical description-if I want to develop an Ethereum client (PoW chain/ETH1), what rules do I need to follow?

first level title

overview

overview

The previous hard forks of Ethereum can be passedthis pageCheck. Since its launch on July 30, 2015, a total of 14 hard forks have been carried out, including 39 EIPs ("Constantinople" and "Petersburg" are considered the same). The two closest hard forks were 26 days apart, and the furthest two were 490 days apart.

Hard fork is divided into "active upgrade" and "passive upgrade". Active upgrade refers to the development team’s initiative to amend the Ethereum protocol, while passive upgrade is an action that “has to be” taken to deal with potential security risks. Passive upgrades include at least "DAO Fork", "Tangerine Whistle", "Spurious Dragon", "Muir Glacier", "Arrow Glacier", and "Gray Glacier", which either deal with hacker theft (DAO Fork), or deal with DDOS attacks (Tangerine Whistle, Spurious Dragon), or simply disposing of difficulty bombs (Muir Glacier, Arrow Glacier, Gray Glacier). The "active upgrade" is roughly in line with the plan of the white paper (at least in terms of naming), Frontier (Frontier, Frontier Thawing), Homestead, Metropolis (Byzantium, Constantinople/Petersburg, Istanbul), while Berlin and London are after the change of the Ethereum roadmap. transitional upgrade. Additionally, several proactive upgrades also included the option to defer the difficulty bomb.

secondary title

Interpretation of representative hard forks

DAO fork

  • DAO fork

The DAO fork event is the most far-reaching event in the development of Ethereum. Since the DAO's smart contract was hacked, about 3.6 million ether was stolen by hackers, but there was a 28-day freeze. During this period, with the help of Carbonvote, token holders express their wishes, and the Ethereum FoundationDecideThis portion of funds is transferred to a new smart contract, allowing investors to withdraw. This fork produced Ethereum Classic, which also triggered a lot of social debate.

  • Shanghai DOS

During Devcon 2, the Ethereum core developers gathered in Shanghai, but the Ethereum network suffered a lot of network trafficattack, resulting in a Denial of Service (DOS). Since the actual system resources consumed by the EXTCODESIZE operation code are much higher than the transaction fee that the attacker needs to pay, the attacker repeatedly calls this operation code, causing most nodes in the entire network to fail to catch up with the latest block. While coordinating the mining pool and full nodes to enable the less affected Parity client, the developers negotiated to reduce the block gas (from 5 M to 1.5 M). In the end, with the help of two hard forks of Tangerine Whistle and Spurious Dragon, the prices of relevant opcodes were adjusted, and the state was cleaned up to alleviate the impact of the DOS attack. This hard fork also brought follow-up effects, due to the improper implementation of EIP-161 (included in Spurious Dragon) (Go-ethereum and Parity each wrongly implemented it), resulting in a consensus fork.

  • Raiders of Two Castles

according to

according toChainSecurity's report, EIP-1283 will introduce the risk of re-entry attacks for some contracts. TrailOfBits givesmore detailed analysisAnd provides a list of contracts that may be affected. 32 hours before the activation of the hard fork, the Ethereum Foundation issued a document reminding nodes to upgrade or downgrade to postpone the upgrade of Constantinople, and then released a new version to introduce the Petersburg hard fork. A high or disabled Constantinople hard fork.

  • bomb crisis

The reason why there are only 26 days between the two hard forks of Muir Glacier and Istanbul is that the core developers miscalculated the explosion time of the difficulty bomb, which resulted in the proposal to delay the difficulty bomb not being included in Istanbul. When it is discovered that the difficulty bomb is about to have an impact on the network,76th Core Developers MeetingEIP-2384 was quickly accepted and incorporated into the Muir Glacier hard fork.

Hard fork decision process changes

How is the hard fork decided? In fact, Ethereum lacks written documents for a long time and relies more on "social consensus" (please correct me if I am wrong). EIP-233 attempted to formalize the formal process for forking, but was not accepted.

Although this article cannot show the discussion of the hard fork decision process in the Ethereum community, the hard fork decision process in Ethereum has clearly changed. Before the Berlin hard fork, the developers first determined the time of the hard fork, then decided which EIPs to include, and then implemented and tested it. Every hard fork before Berlin is a Meta EIP, for example, the hard fork of Istanbul passedEIP-1679Definition (referred to as HFM-1679).

Martin Holst Swende presentedEIP-centric hard fork process, the core point of view is to separate the acceptance of EIP from the hard fork. The core developers focus on the approval, implementation and testing of a single EIP. When a single EIP is accepted, subsequent hard forks can choose to include the EIP. The Berlin hard fork deprecates, although at the time of writing it has not been found how this process was accepted by the Ethereum core devsHFM-2070, butadoptionThe process proposed by Martin was followed.

The change in the decision-making process came into play quickly, and two weeks before the activation of the Berlin hard fork testnet, developers engaged in a heated debate over the deprecation of EIP-2315 and eventually removed EIP-2315. Due to the adoption of the new process, the last-minute change did not affect the hard fork too much, and it finally happened on schedule. For more details, please refer to the "Removal of EIP-2315: Emergency brake ahead of Ethereum Berlin upgrade

not change change

research reportresearch report

EIP in-depth analysis

What impact did these EIPs have on Ethereum, and who influenced Ethereum's decision-making. This article sorts out all the EIPs included in the Ethereum hard fork (excluding meta proposals), see the link for details.

https://primitiveslane.notion.site/cbd45cf0289c414b86715b8a9e71b28e?v=838baf2ac3a442a6b3fa03e58c5dc0ae

What EIPs are doing

The types of EIP included in the hard fork mainly include billing model changes, introduction of new opcodes, difficulty bombs, economic models, precompilation, security considerations, etc.

  • Billing Model Changes

The billing model change is the largest number of EIPs, with a total of 10, accounting for 25.6%. It balances the mismatch between gas consumption and actual system resources by increasing or decreasing the unit price of the operation code, which can eliminate the hidden danger of the system being attacked by DOS, or facilitate the deployment of specific types of applications. Some DOS hidden dangers are caused by misestimation of system resources. EIP-150 and EIP-160 solve this problem; while another part of DOS hidden dangers are inherent characteristics of the system. With the growth of state data, the actual resources of access state data Consumption also grows accordingly, so the unit price of the corresponding opcode needs to be adjusted periodically, typically EIP-1884 (one of the best written EIPs in my opinion).

Due to Ethereum's state representation model, the billing model must be adjusted periodically, which is a feature, not a glitch.

  • New opcodes introduced

A total of 9 EIPs introduced new opcodes to the Ethereum Virtual Machine (excluding EIP-1884), accounting for 23.08%. The more influential ones include EIP-7 (DELEGATECALL), EIP-1014(CREATE2), EIP-3198(BASEFEE) and so on.

  • difficulty bomb

A total of 6 EIPs are postponing the difficulty bomb, accounting for 15.4%. There are 2 hard forks accompanied by the adjustment of the economic model, that is, the reduction of new block rewards. Three of these forks were implemented solely to delay the difficulty bomb, the hard fork with Glacier in its name. For the history of the difficulty bomb, seeeconomic model

  • economic model

There are 4 EIPs that have an impact on the economic model, 2 have reduced the new block reward, 1 has adjusted the difficulty calculation model (EIP-100), and EIP-1559, which has caused more controversy, has adjusted the fee market.

  • Precompiled

There are 4 EIPs to precompile some cryptographic operations, so they do not need to be executed in the EVM to improve operating efficiency. Including EIP-152, EIP-196, EIP-197, EIP-198.

  • security considerations

other

  • other

Other EIPs also include network protocol improvement (EIP-8), adding transaction execution status interface (EIP-658), adding new transaction types (EIP-2718), etc. In addition, EIP-2 contains all the updates of Homestead, which is more complicated.

Who Contributes to EIP

A total of 43 people and 77 people participated in the writing of these EIPs, among which 11 authors participated in more than 2 (including) EIPs. Vitalik Buterin participated in writing the most, with a total of 17, accounting for 43.6%. Martin Swende and Christian Reitwiessner each participated in 5, Alex Beregszaszi and James Hancock each participated in 3, and the rest participated in no more than 2.

Martin Swende is the security director of the Ethereum Foundation, a Go-ethereum engineer, and the proposer of the hard fork process centered on EIP; Christian Reitwiessner is the inventor of the Solidity language.

Summarize

Summarize

This article introduces the previous hard forks in the history of Ethereum, interprets the representative events behind several hard forks, and describes in detail the change of the hard fork decision-making process of Ethereum to EIP as the center. The article also provides an in-depth analysis of the role played by EIP in previous hard forks and the contributors behind them.

Ethereum is about to usher in a new era, and the past comes to mind. Readers, how do you feel?

Extended reading

https://github.com/ethereum/execution-specs

https://github.com/ethereum/go-ethereum/blob/d10c28030944d1c32febba3f45ae8c175ab34063/params/config.go

https://www.ethereum.cn/the-history-of-ethereum-hard-forks

https://etherscan.io/chart/gaslimit

https://github.com/ethereum/go-ethereum/pull/3341/files#r89548312

https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement

https://ethereum-magicians.org/t/hardfork-meta-eip-2070-berlin-discussion/3561

https://notes.ethereum.org/@holiman/S1ELAYY7S?type=view

sharing agreement

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

ETH
Welcome to Join Odaily Official Community