2023. 6. 15. 10:06ㆍBlockchain/Ethereum
※ 원글 작성 : 22년 9월 19일
Ethereum merge
Ethereum merge가 22년 9월 15일에 완료되었다. 기존에 출시한 메인넷과 ethereum 2.0(재단에서는 2.0이나 eth2 등의 용어 사용을 지양했지만 기존과 구분하고자 2.0을 사용하려 한다.)의 PoS 컨센서스를 위한 beacon chain의 통합이 바로 merge의 주요 내용이다.
메인넷(eth1)이 계속 운용중일 때 20년 12월 1일에 PoS 전환을 위한 beacon chain(eth2)이 출시 되었다. Beacon chain의 테스트를 병렬로 꾸준히 진행하여 보안성 확보를 진행하고, merge 됨과 동시에 eth1에서 사용하던 PoW를 완전히 PoS로 대체시켰다. 그리하여 eth1은 더이상 consensus algorithm을 수행하지 않고 eth2가 합의와 관련된 모든 작업을 수행하게 되었다.
Why?
그렇다면 ethereum은 왜 메인넷과 beacon chain을 결합하려 하는가부터 확인하면 좋을것이다.
Energy consumption
가장 큰 이유는 환경문제라고 생각한다. 비트코인이 쏘아올린 PoW의 mining은 해당 consensus algorithm을 채택한 많은 블록체인 플랫폼을 만들어 내었고, ethereum도 그와 마찬가지로 PoW를 사용해왔다. 탈중앙화 및 가상화폐 환경을 지금까지 끌어올린 초석이지만, 많은 computing power를 소모하여 큰 환경문제로 언급되었다. Ethereum이 친환경적인 PoS로 변경한 것에는 환경보호의 목적도 있을것이고, 그간 받지 못했던 ESG 경영을 준수하는 기업의 투자도 이끌어 낼 수 있을것이다.
Beacon chain을 merge하고, 메인넷의 PoW를 제거함으로써 환경 문제에 대해 해답을 내놓을 수 있다.
Ethereum은 merge를 통해 약 99.95%의 energy consumption을 감소시킬 것이라 예상하며, energy consumption 감소에 관해 설명해 주어 관심이 있으면 확인하면 좋을 것 같다.(Ethereum energy consumption)
Ethereum upgrade
Ethereum의 성능/확장성 증가를 위해 merge를 한 것도 하나의 이유가 될 것이다. 이전 글(Sharding)에서 확인한 샤딩을 ethereum에 구현하기 위해서는 beacon chain의 역할이 매우 크다. Beacon chain은 consensus, validator관련 기능 뿐만 아니라 기존 노드를 샤드에 배정할 때 무작위로 배정하여 담합, 공격을 방지하는 random sampling을 수행하기 때문에 추후 샤딩 적용을 위해 merge를 했을 것이다.
그보다도, 이더리움 재단은 현재 roll up이 보여주고 있는 확장성에 대한 많은 업적을 확인하여, 샤딩보다 roll up을 우선순위로 잡았다. 샤딩은 이더리움 내에 roll up이 완료된 후 적용할것으로 보이며, roll up contract에서 압축된 호출데이터(compressed calldata)를 저장하여 부담을 분산하는 방향으로 샤딩의 로드맵을 검토하고 있다고 한다. 이또한 beacon chain을 통한 merge 이후 적용이 가능하기 때문이다.
Merge upgrade
Merge는 아래와 같이 수행되었다.
Beacon chain에서 Bellatrix upgrade, 메인넷에서 Paris upgrade를 통해 실행되었으며, Bellatrix는 beacon chain의 epoch 144896
때 트리거 되었으며, Paris는 Terminal Total Difficulty가 5875000000000000000000
도달했을 시 트리거되었다. 또한 merge test를 위한 Kiln 테스트넷도 9월 6일에 종료되었는데, 찾아보니 Ropsten과 Rinkeby testnet도 종료된다는 소식을 들었다. 개인적으로 ethereum 테스트 시 Ropsten을 자주 사용했었는데, 22년 4분기에 종료된다니 뭔가 아쉬운 마음이 들었다.Epoch
은 블록체인 검증인들이 검증 작업을 진행하는 체크포인트의 블록 간격을 뜻한다. 다수의 블록을 하나의 단위로 묶어, ASIC을 사용할 수 없도록 Epoch
간격마다 ethereum에서 알고리즘을 변경한다. (참고)Terminal Total Difficulty
는 해당 블록까지의 총 난이도를 뜻한다. 현재 블록 기준에서의 누적된 난이도 값이다.
Staker
PoS로 변경되면서 miner가 블록을 생성하는 것이 아닌 staker(=validator, 아래에서 validator를 staker로 표기하여 혼동이 오지 않도록 )가 블록을 생성한다. Staker가 되기 위한 작업을 확인해본다.
최소 32ETH를 가지고 있는 사람이 staker가 될 수 있고, Merge 후에는 기존 Beacon chain의 staker는 합의 layer(CL)외에 기존 메인넷인 실행 layer(EL) 노드도 함께 실행해야한다. 또한 staker는 자신이 생성한 state 변경 transaction을 포함하는 블록이 유효한지 확인해야하며 이를 위해 beacon node는 EC 클라이언트와 페어링 되어야 한다.(참고로, 여러 staker가 단일 beacon node 및 EL 클라이언트 콤보에 페어링 될 수 있다.) 이로써 staker에 대한 책임을 부여하지만 블록 proposer인 staker에게 거래 수수료를 부여한다.
현재 Staker 보상은 beacon chain에 누적되지만, staking된 금액이나 보상이 인출되지는 않는다. 추후 상하이 업그레이드에서 unbonding 작업이 가능하도록 패치될 예정이라고 한다. Fee는 기존과 동일
하게 EL에서 지불, 소각, 분산되며 staker는 모든 eth account address를 fee 보상에 대한 receiver로 명시 가능하다. CL 클라이언트를 업데이트 한 후 fee recipient
설정을 통해 staker가 원하는 address로 전송 가능하다.
Cosmos 같은 DPoS가 아니기 때문에 staking을 원한다면 자신이 직접 노드를 운영해야하는 수고는 들어갈 것이다.
그 외에 merge 후 일어나는 변화에 대한 정리를 확인할 수 있다.
Conclusion
PoW만 알고 PoS를 처음 접했을 때에는 (특히 DPoS) 이게 뭐지? 지분 많은 validator가 짜고 치면 끝 아닌가? 하는 생각이 들었다. 하지만 경제적 포인트가 접목되니 탈중앙도 가지며 PoW보다 더 유연한 구조를 가지고 있음을 발견하였다. 더 효율적이고, computing power 감소로 인한 많은 장점이 따라오면서 PoS에 대한 생각을 바꾸게 되었다.
Ethereum이 PoS로의 전환 예고는 오래되었었고 드디어 실행되었다는 소식을 듣고 참 반가웠다. 앞으로 남은 확장성 과제에 몰두하여 더 완벽한 플랫폼이 되었으면 한다.
참고
https://ethereum.org/en/upgrades/merge/
https://blog.ethereum.org/ko/2022/08/24/mainnet-merge-announcement
'Blockchain > Ethereum' 카테고리의 다른 글
ENS(Ethereum Name Service) (0) | 2023.06.15 |
---|---|
Ethereum Gas (0) | 2023.06.15 |
Ethereum Bootnode 기능 확인 (0) | 2023.06.14 |
Ethereum [5] (Go-Ethereum) (0) | 2023.06.13 |
Ethereum [4] (EVM) (0) | 2023.06.13 |