# Ethereum(이더리움) 개요 Ethereum은 블록체인 기반의 분산 컴퓨팅 플랫폼으로, 스마트 컨트랙트(smart contract)를 실행할 수 있는 세계 컴퓨팅 네트워크다. 네이티브 토큰은 Ether(ETH)이며, 네트워크의 운영 비용, 보상, 거버넌스 등의 다양한 기능을 담당한다. 이더리움의 핵심 아이디어는 분산된 애플리케이션(dApps)을 코드로 자동 실행하는 환경을 제공하는 것으로, 특정 중앙 기관의 개입 없이도 신뢰성 있는 계산과 트랜잭션 처리를 가능하게 한다. 주요 용어 - Ethereum, Ethereum Virtual Machine(EVM), smart contract, Ether(ETH), gas, gas fee, ERC 표준 - 계정 유형: Externally Owned Account(EOA), Contract Account - Layer 1(L1), Layer 2(L2) - 개발 언어: Solidity, Vyper --- ## 역사와 진화 - 창시와 초기 목표: Vitalik Buterin이 제안하고 2015년에 공개된 Ethereum은 스마트 컨트랙트의 실행을 네트워크 상에서 분산적으로 가능하게 하려는 목적에서 출발했다. - The DAO 해킹과 체인 분리: 2016년 The DAO 해킹 사건 이후 사회적 합의에 의해 Ethereum(ETH)과 Ethereum Classic(ETC)으로 분리되는 이슈가 발생했다. - 합의 메커니즘의 진화: 초기에는 작업 증명(Proof of Work, PoW)을 사용하였으나, 2022년 The Merge를 통해 합의 알고리즘을 지분 증명(Proof of Stake, PoS)으로 전환했다. 이로써 에너지 소비를 크게 줄이고 확장성 및 보안 모델의 방향을 바꿨다. - 업그레이드와 비전: 이후에도 Sharding(샤딩) 도입 등 2차적 확장성 향상이 계획되며, L2 솔루션과의 상호작용 강화, EVM의 성능 개선이 지속적으로 추진 중이다. --- ## 기술 구성 ### EVM과 스마트 컨트랙트 - Ethereum Virtual Machine(EVM)은 이더리움 네트워크상에서 스마트 컨트랙트를 실행하는 가상 머신이다. - 스마트 컨트랙트는 Solidity, Vyper 등으로 작성되며, EVM 바이트코드로 배포되어 네트워크 노드에서 실행된다. - 컨트랙트 계정(Contract Account)과 외부 소유 계정(EOA)의 두 유형이 존재한다. EOA는 개인 키로 서명된 트랜잭션을 발행하고, Contract Account는 코드로 정의된 동작을 수행한다. ### 가스와 비용 모델 - 트랜잭션과 계산은 가스(gas) 단위로 측정되며, 가스 수요에 따라 비용이 산출된다. - EIP-1559 도입 이후의 비용 구조는 아래와 같이 표현된다: - $TotalFee = GasUsed \times (BaseFeePerGas + MaxPriorityFeePerGas)$ - BaseFeePerGas는 매 블록마다 조정되며, 목표 가스 사용량(TargetGas)에 대한 편차에 따라 변화한다. 조정은 일반적으로 다음과 같은 형태를 취한다. - $BaseFee_{t+1} = \left\lfloor BaseFee_t \times \min\left(1.125,\max(0.875, 1 + \frac{GasUsed_t - TargetGas}{TargetGas})\right) \right\rfloor$ - Base Fee의 변화는 블록당 최대 ±12.5%까지 허용되는 상승/하강 밴드를 가진다. ### 합의 메커니즘: PoS 도입 - The Merge 이후 네트워크는 PoS로 전환되었다. 참여자는 검증자(Validator)가 되어 블록 생산과 확인에 기여하고, 스테이킹된 ETH를 통해 보상을 얻을 수 있다. - PoS의 기본 아이디어는 에너지 소모 감소와 더욱 예측 가능한 보상 구조를 제공하는 것이다. ### 계정 모델과 런타임 아키텍처 - EOAs는 개인 키에 의해 서명된 트랜잭션으로 네트워크에 명령을 내린다. - Contract Accounts은 코드와 상태를 보유하며, 트랜잭션에 의해 호출되면 코드가 실행된다. - 상태 트리와 계정 상태는 머클 트리 구조를 통해 검증 가능하게 저장된다. --- ## 개발 생태계 ### 스마트 컨트랙트 언어 및 도구 - 주요 개발 언어: Solidity, Vyper - 개발 도구: Remix IDE, Hardhat, Foundry, Truffle 등 - 표준 및 인터페이스: ERC-20(통화 토큰), ERC-721(Javascript-based NFT), ERC-1155(멀티 토큰 표준) ### 배포와 테스트 - 테스트넷: Goerli, Sepolia 등 - 메인넷에 배포하기 전에는 로컬 개발 네트워크 또는 테스트넷에서 광범위한 테스트를 수행한다. --- ## 응용 분야 및 생태계 - DeFi(분산형 금융): 대출, 차용, 자동화된 시장 메커니즘 - NFT: 디지털 자산의 소유권 및 거래 - DAO(탈중앙화 자율 조직): 거버넌스 토큰과 의사결정의 자동화 - 게임 및 메타버스: 분산된 자산 관리와 거래 - Layer 2 솔루션: 확장성 향상을 위한 데이터 처리 및 트랜잭션 처리의 보완 --- ## 보안과 위험 관리 - 스마트 컨트랙트의 취약점 예: 재진입 공격, 오라클 의존성 문제, 잘못된 권한 관리 - 포스트 마이그레이션 환경에서의 거버넌스 리스크 및 업그레이드 절차에 대한 주의 필요 - 감사(audit)와 형상 관리, 테스트 커버리지의 중요성 --- ## 거버넌스와 표준화 - Ethereum Improvement Proposals(EIPs)은 네트워크의 변경 제안과 표준화를 관리하는 메커니즘이다. - 커뮤니티 참여와 제안된 개선사항의 검토를 통해 네트워크의 방향이 결정된다. --- 관련 문서 - [[Ethereum 기본 원리]], [[Solidity 기초]], [[ERC 표준 개요]], [[EVM 아키텍처]], [[Layer 2 솔루션 소개]]