[BlockChain] 이더리움이란??
이더리움이란?

우선 이더리움은 '비탈릭 부테린'에 의해 2013년 최초로 제안되면서 시작됨.
암호화폐를 지향하는 비트코인과 달리 블록체인 기반의 범용 서비스 개발을 위한 컴퓨팅 플랫폼을 지향함.
이더리움 플랫폼의 작동과정을 한 번 살펴보면 이더리움 플랫폼은 비트코인처럼 블록체인 기술 기반하에 이더(Ether)같은 다양한 암호화폐를 생성하고 운용할 수 있도록 해준다.

이더리움의 Db를 알아보기 전에 이더리움 플랫폼의 작동 과정에 대하여 보자면 각각의 DB가 있는 노드들이 서로 연결되어 네트워크를 꾸리고 그 네트워크에 사용자들이 지갑을 만들어 네트워크에 연결된다.
1번과 같이 이더리움 지갑 생성이나 월렛을 설치하면 자동으로 이더리움 네트워크에 연결이 된다.
서로 연결된 상황에서 2,3,4,5과 같이 상태 변이를 일으키는 트랜잭션이 일어나기도 하고 이 트랜잭션들이 모여서 블록을 형성 하고 6번과 같이 신규 블록을 추가하고 브로드캐스팅을 하며 채굴자가 블록에 대한 해싱값을 계산하여 블록의 유효성 검증을 체크한다.
7번과 같이 개발자는 오픈소스 방식으로 개발, 운영되는 이더리움 커뮤니티에 참여할 수 있다.
그리고 댑서비스 & 스마트 컨트랙트와 같이 컨트랙 기반 응용 서비스 개발도 가능함.
이렇게 플랫폼의 작동과정을 보시면 각 노드들이 서로 연결되어 있고 각 노드들 안에 ethDB가 존재함.
이더리움 플랫폼 참조 모델


일단 이더리움의 노드에는 5계층이라는 것이 존재함.
응용 계층, 합의 계층, 실행 계층, 데이터 계층, 공통 계층이 있돠..!!
응용 계층 : 이더리움은 비트코인 같은 다른 암호화폐 플랫폼과 달리 프로그래밍 가능한 플랫폼으로서 다양한 응용 서비스와 앱을 개발할 수 있다. 특히, 기존의 중앙집중 방식의 웹과 달리 분산된 웹 개발이 가능한데, 이러한 탈중앙화된 앱을 Dapp이라 한다. Dapp과 더불어 블록체인에서 구동 가능한 스마트 컨트랙ㅌ, 그리고 분산 파일 시스템 스웜(Swam), 분산 메시징 시스템 휘스퍼(whisper)를 제공한다. 이러한 기능들을 통틀어 응용 계층이라 한다.
합의 계층 : 어카운트에 의해 생성된 트랜잭션과 트랜잭션과 관련된 데이터들이 모여 있는 블록의 유효성을 검증하는 합의 엔진과 이 과정을 수행하는 마이닝과 마이닝의 난이도, 그리고 마이너들에 지급할 인센티브인 가스(Gas), 이더 등의 처리를 담당한다.
실행 계층 : 이더리움 블록체인에서 구동 가능한 스마트 컨트랙트를 이더리움 노드에서 수행시켜 줄 EVM(ethereum Virtual Machine)의 처리를 담당한다.
데이터 계층 : 이더리움에서 다루는 각종 데이터 구조를 정의하고 관련 데이터를 관리한다. 주요 데이터 구조로는 어카운트와 트랜잭션, 메세지와 receipt, 이들 데이터의 집합인 블록과 이들 블록이 연결된 블록체인 등이 있다. 이들 데이터 모델은 하부에 ethdb 패키지를 통해 구글이 만든 빠르고 가벼운 키값(key, value) 데이터 베이스인 레벨DB(levelDB)에 바이너리 형태로 저장이 된다.
공통 계층 : 이더리움에서 공통적으로 사용하는 기능들을 제공한다. 노드 간의 연결과 동기화를 위한 p2p 네트워크 프로토콜을 비롯하여 암호 해시, 전자 서명, 각종 인코딩, 공통 저장소 등 모든 계층에서 이용할 기능들을 담당한다.

내용과 관련하여 [코어 이더리움 프로그래밍] 이라는 책을 읽으며 정리해봤다.
일단 이렇게 이더리움 플랫폼의 구조 및 노드의 구조를 먼저 파악해봤다...
멀고도 험한 블록체인의 길...