PoW에서 PoS로 전환
존재 이유: 왜 도입됐는지 어떤 효과를 거두었는지 동작 원리: 무엇을 어떻게 동작시키는지
- The Beacon Chain introduced proof-of-stake to the Ethereum ecosystem.
- It was merged with the original Ethereum proof-of-work chain in September 2022.
- The Beacon Chain introduced the consensus logic and block gossip protocol which now secures Ethereum.
https://ethereum.org/ko/roadmap/beacon-chain/
The merge 이후 Beacon Chain은 Consensus 네트워크가 되었고,
기존 네트워크도 버리는 건 아니고 original clients from the exe gossiping and executing transactions, and managing Ethereum’s state 하는 데, 통신을 위해 Engine API를 사용한다고 한다.
Engine API
https://hackmd.io/@danielrachi/engine_api
https://github.com/ethereum/execution-apis/tree/main/src/engine
https://hackmd.io/@danielrachi/engine_api
Engine API Implementation
evmVersion https://docs.blockscout.com/for-developers/information-and-settings/evm-version-information
The Merge
The Merge 변천사
- 비트코인 위에 프로그램을 실행시킬 수 있도록 하자 제안했지만 거절 당함
- 그렇게 PoW 기반의 Ethereum으로 따로 만들기 시작
- 추가로 검증 차원에서 별도로 Beacon Chain을 가동
- PoW의 보상 시스템보다, PoS의 처벌 시스템이 보안에 더 유리하다고 생각
- 당시 사용하던 PoW 네트워크는 (Transaction) Execution Layer로 사용하고, Beacon Chain은 Consensus Layer로 사용
- Execution 레이어는 Paris, Consensus 레이어는 Bellatrix 버전에서 “The Merge”를 기점으로 PoS 전환 (두 네트워크는 Engine API 스펙에 맞춰 통신)
- 당시 Eth 1, Eth 2 등의 용어가 있었지만 현재는
Ethereum
으로 통합
원래 존재하던 비콘 체인이 The Merge를 시점으로 PoW 블록 체인과 병합되었다 → 근데 어떻게 병합함? (어떻게 상태를 유지하지?) → hard-fork를 해야 한다면, 새로운 네트워크를 개설하고, 해당 네트워크에 기존 네트워크의 deposit을 옮길 수 있도록 하나? 아직 이루어지지 않은 샤딩은 무엇일까?
이는 hard-fork로서, 기존 PoW 방식의 Consensus rule이 변경 이후 Compatability를 지원하지 않아 발생되었다. https://www.reddit.com/r/ethereum/comments/wrgmq8/is_the_merge_a_soft_fork/?rdt=57745
The Merge was executed on September 15, 2022. This completed Ethereum’s transition to proof-of-stake consensus, officially deprecating proof-of-work and reducing energy consumption by ~99.95%.
기존 PoW 네트워크는 이제 Execution layer로 변경되었다고 하니, 아래의 스펙에서 동작하는 Ethereum execution client specifications https://github.com/ethereum/execution-specs
The merge가 적용된 버전은 Paris
라고 합니다. evm-version-information
해당 링크를 보면 다양한 역대 evm을 확인할 수 있는데, Engine API
버전과 유사하면서도 다른 점이 있습니다. execution-apis
바로 Gray Glacier
이전의 버전들이 없다는 것인데요 (사진 1), 이로서도 분명하게 paris
를 기점으로 hard-fork 되었음을 확인할 수 있을 것 같습니다.
그럼 The Merge
이전의 코드는 어디서 관리되고 있는 걸까요?
hard-fork 라 하면 수정된 각각의 버전들을 총칭하는 말이라는 생각도 든다. hard-forking이라 하면 되려나, 그냥 기존의 하드 포크에 수정을 가할 때, compatibility 가 없으면 hard-fork의 새로운 버전이 되고
Solidity solc opcode
\
https://github.com/ethereum/execution-specs
https://docs.soliditylang.org/en/latest/using-the-compiler.html#setting-the-evm-version-to-target
EVM EVM은 단순히 Opcode의 집합일까?
Ethereum Proof-of-Stake Consensus Specifications
https://github.com/ethereum/consensus-specs phase0 → Bellatrix (The Merge) → Deneb
Seq. | Code Name | Fork Epoch | Specs |
---|---|---|---|
0 | Phase0 | 0 | - Core - The beacon chain - Deposit contract - Beacon chain fork choice - Additions - Honest validator guide - P2P networking - Weak subjectivity |
1 | Altair | 74240 | - Core - Beacon chain changes - Altair fork - Additions - Light client sync protocol (full node, light client, networking) - Honest validator guide changes - P2P networking |
2 | Bellatrix (“The Merge”) | 144896 | - Core - Beacon Chain changes - Bellatrix fork - Fork choice changes - Additions - Honest validator guide changes - P2P networking |
3 | Capella | 194048 | - Core - Beacon chain changes - Capella fork - Additions - Light client sync protocol changes (fork, full node, networking) - Validator additions - P2P networking |
4 | Deneb | 269568 | - Core - Beacon Chain changes - Deneb fork - Polynomial commitments - Fork choice changes - Additions - Light client sync protocol changes (fork, full node, networking) - Honest validator guide changes - P2P networking |
Engine API
Ethereum Execution Client
frontier → Paris (The Merge) → Cancun
Network-upgrades > Mainnet-upgrades
https://github.com/ethereum/execution-specs/blob/master/network-upgrades/README.md Homestead → Paris (The Merge) → Cancun
Name | Date |
---|---|
Homestead | 14 Mar 2016 |
Tangerine Whistle | 18 Oct 2016 |
Spurious Dragon | 22 Nov 2016 |
Byzantium | 16 Oct 2017 |
Constantinople / Petersburg | 28 Feb 2019 |
Istanbul | 08 Dec 2019 |
Berlin | 14 Apr 2021 |
London | 05 Aug 2021 |
Arrow Glacier* | 09 Aug 2021 |
Gray Glacier* | 30 June 2022 |
Paris (The Merge) | 15 Sep 2022 |
Shanghai | 12 Apr 2023 |
Cancun | 13 Mar 2024 |