[Ethereum] 이더리움의 구성 요소

김동욱·2022년 2월 12일
0

Ethereum

목록 보기
1/2

이더리움의 구성요소에 대해 살펴보자.

✔ 이더리움

" 탈중앙화 앱(dApp)을 실행할 수 있는 플랫폼. "

1세대 블록체인이라 불리는 비트코인은 단순히 화폐 전송 기능만을 가지고 있지만,
이더리움의 경우 화폐 전송 + 스마트 계약 이라는 기능이 더해진 2세대 블록체인이다.


✔ 이더리움 구성요소

이더리움소스코드👈를 살펴보면 패키지에 따라 다음과 같이 분류될 수 있다.

데이터 계층

관련 패키지 : (account, core, les, light, trie)
  • 이더리움에서 다루는 각종 데이터 구조를 정의하고, 관련 데이터를 관리.
  • 주요 데이터 구조로 어카운트, 트랜잭션, 메세지, 리시트와 이러한 데이터의 집합인 블록, 블록체인이 있다.
  • 이들 데이터 모델은 하부에 ethdb 패키지를 통해 구글이 만든 빠르고 가벼운 키/값 데이터베이스인 LevelDB에 바이너리 형태로 저장된다.

합의 계층

관련 패키지 : (consensus, miner)
  • 어카운트에 의해 생성된 트랜잭션과, 블록의 유효성을 검증하는 합의엔진, 마이닝과 마이닝의 난도, Gas, Ether 등의 처리를 담당한다.

실행 계층

관련 패키지 : (eth, contracts, console, ethclient, node)
  • 이더리움 블록체인에서 구동 가능한 스마트 컨트랙트와 스마트 컨트랙트를 이더리움 노드에서 수행시켜 줄 EVM(Ethereum Virtual Machine)의 처리를 담당.

공통 계층

관련 패키지 : (P2P, ethdb, rpc, crypto, rlp, params, common, event, metrics)
  • 공통적으로 사용하는 기능들을 제공.
  • 노드 간의 연결과 동기화를 위한 P2P 네트워크 프로토콜을 비롯하여 암호 해시, 전자 서명, 각종 인코딩, 공통 저장소 등 모든 계층에서 공통적으로 이용할 기능들을 담당한다.

응용 계층

관련 패키지 : (mobile, ethstats, internal, swarm, whisper, cmd/bootnode, cmd/geth, cmd/puppeth, cmd/rlpdump)
  • 이더리움은 프로그래밍 가능한 플랫폼으로서 다양한 응용 서비스와 앱을 개발할 수 있음.
  • DApp과 더불어 블록체인에서 구동 가능한 스마트 컨트랙트, 그리고 분산 파일 시스템 스웜(swarm), 분산 메시징 시스템 위스퍼(whisper)를 제공한다.
profile
웹 개발 관련 공부한 내용 기록하는 블로그입니다.

0개의 댓글