티스토리 뷰
🥝 Wiki
📜 Prehistory and Philosophy
- 1960년대 UNIX 운영체제의 등장은 모듈성(modularity)을 고려한 개발 방식과 개방된 협업 문화(open collaborative environment)를 조성하는데 기여하였다. 이는 오늘날 이더리움의 디자인과 코어 개발 과정에도 중요한 역할을 하고 있다.
- 이더리움과 대다수의 암호화폐 관련 프로젝트의 개방적이고 독립적이며 협력적인 개발 문화는 FOSS(Free and Open Source Software)에 뿌리를 두고 있다.
- 비대칭 암호화(Asymmetric Cryptography)의 등장으로 암호화 애플리케이션의 새로운 패러다임이 탄생했다. 기존의 암호학은 정부에 의해 주로 군사적인 목적으로 사용되었기 때문에 정부에서는 민간에서 암호학이 활용되는 것은 제어하려 했다.
- 이에 반감을 가진 개발자들은 CryptoPunks 운동을 벌여 암호학에 기반한 개방 & 분산 시스템을 개발하여 민간에 보급하였다.
📡 Ethereum Protocol Design
What is Ethereum?
- White Paper : 비트코인과 앞서 설명한 배경으로부터 영감을 얻어 만들어진 '다음 세대의 스마트 컨트랙트와 탈주앙화 애플리케이션을 플랫폼'
- Yellow Paper : '안전한 탈중앙화된 일반화된 거래 장부'
- EIP(Ethereum Improvement Proposal)는 단일 주체가 아닌 커뮤니티의 협력을 통한 이더리움의 발전안을 구상하는 것으로, 이더리움 개발의 주요 원동력이다.
- 지난 업데이트 목록은 다음을 참고.
- https://ethereum.org/ko/history/
Design Principles
- Simplicity, Universality, Modularity, Non-discrimination, Agility
- Sandwich/Encapsulated complexity
- Freedom, Neutrality
- Generalization, No features
- Non-risk aversion
🎡 Implementation and Development
이더리움 구현은 실행 레이어(EL)와 합의 레이어(CL)로 나뉘며 이들을 클라이언트(client)라고 부른다. 노드(node)는 EL과 CL 클라이언트를 실행하여 네트워크에 적극적으로 참여하는 컴퓨터를 이른다.
Excution Layer (EL)
- EVM(Ethereum Virtual Machine) : 이더리움의 컴퓨팅 플랫폼. 모든 실행은 서로 다른 클라이언트에서도 동일한 환경에서 실행된다.
- State & Txs : 이더리움은 글로벌 상태를 가지고 있으며 트랜잭션을 실행하여 상태를 변경하는 상태 머신이다.
- P2P network : 실행 레이어 간의 통신을 위한 네트워크로, 트랜잭션 전파를 가능하게 한다.
- JSON-RPC API : 실행 레이어의 RPC 메서드를 호출하기 위한 API로 DApp 또는 사용자와 연결된다.
- Engine API : 실행 레이어가 합의 레이어와 통신하기 위해 구현하는 API로, 블록체인의 상태를 동기화하기 위해 사용한다.
Concensus Layer (CL)
- Fork Choice : 어떤 블록이 헤더이고 어떻게 합의가 이루어졌는지 결정하여 실행 레이어에게 알려주는 역할을 한다.
- LMD-GHOST(Latest Message Driven-Greedy Heaviest Observed SubTree) : Fork Choice를 관리한다.
- P2P network: 합의 레이어 간의 통신을 위한 네트워크.
- Blobs : 덴쿤 업그레이드(EIP-48440)에 포함된 새로운 데이터 구조.
- RANDAO : 비콘 체인의 핵심 알고리즘으로, 탈중앙화된 방법으로 난수를 생성한다.
- Beacon API : 검증자 측에서 주로 사용하는 합의 레이어의 API.
🔧 Coordination
이더리움 개발은 Idea - Research - Specs - Implementation - Testing - Adoption/Rejection 과정을 거친다. 이 과정은 전통적인 개발 과정과 달리 모든 것이 공개되어 있어 누구나 기여할 수 있고, 서로다른 부분을 담당하는 여러 조직에 의해서 관리된다.
이더리움의 복잡성은 갈수록 증가하고 있기 때문에 이더리움 전체에 대한 전문가는 찾아보기 어렵다. 대신 이더리움의 모듈화 특성을 통해 각 분야의 전문가들이 자신이 자신 있거나 선호하는 과제에 집중하며 협업할 수 있다.
🔬Research & Roadmap
- the Merge : PoS 전환 완료 / Single Slot Finality (SSF)는 미달성.
- The Surge : 확장성에 초점. 덴쿤 업그레이드를 통해 일부 달성.
- The Scourge : 경제성에 초점. Mev 추적 및 유동성 스테이킹/풀링.
- The Verge : 검증성에 초점. 버클 트리(Verkle tree) 데이터 구조로의 전환.
- The Purge : 이더리움 구현체 경량화. 오래된 데이터 제거.
- The Splurge : 다른 모든 문제들을 해결. 궁극적으로는 트릴레마 문제를 해결.
Blockchain Trilemma
- 트릴레마 : 세 가지 선택지 중 세 가지 모두를 만족시킬 수 없는 상황.
- 블록체인에서의 트릴레마 : 블록체인의 구현이 확장성, 탈중앙성, 보안성 세 가지 모두를 만족시킬 수 없는 상황.
- 확장성 : 높은 트랜잭션 처리량과 미래의 증가량에 대비할 수 있는 능력. 확장성을 선택하면 불가피하게 합의 및 검증 과정을 간소화해야 하므로 탈중앙성을 포기해야 한다. 또한 탈중앙성의 저하로 인한 보안성의 약화를 야기할 수 있다.
- 탈중앙성 : 분산된 노드들에 의해 네트워크가 자율적으로 운영되는 정도. 탈중앙성을 선택하면 보안성이 증가하나, 느린 블록 생성 시간이 증가하여 확장성이 떨어진다.
- 보안성 : 데이터 변조, 사기 및 공격으로부터 네트워크를 보호하는 능력. 일반적으로 네트워크 참여자가 많을 수록 보안성이 높아진다.
📖 마무리
ETHDenver에서 스터디 그룹 운영진 중 한 분이 스터디 그룹과 EPF 관련해 진행한 발표 영상으로 마무리.
'교육 과정 > EPF' 카테고리의 다른 글
[EPF] Study Group 2주차 Execution Layer (2) | 2024.03.06 |
---|