이더리움은 어떻게 동작하는가 - 개략

정주안
TOMAK
Published in
5 min readJul 30, 2018

블록체인은 다음과 같은 세가지 특징을 가지고 있다.

  1. Cryptohraphically secure
    복잡한 수학적 알고리즘으로 보호되어 안전하다.
  2. Transitional singleton machine
    블록체인 네트워크에 참여하는 노드들이 동일하게 공유하는 단일 시스템이 존재한다.
  3. With shared state
    위 단일 시스템은 모두에게 공유되고 오픈되어 확인할 수 있다.

이 단일 시스템을 블록체인 네트워크라고 부른다.

이더리움은 블록체인 구현체중 하나로, 블록체인 네트워크위에서 스마트 컨트랙트라고 부르는 프로그램을 작동시킨다. 스마트 컨트랙트는 그냥 일반적인 프로그램과 거의 흡사하다. 단지 다른 것은 모두가 공유하고 있는 블록체인 네트워크 위에서 구동되기 때문에 누구나 신뢰할 수 있다는 점이다. 이 점을 이용해 저비용으로 계약 프로그램을 실행할 수 있다.

이더리움은 state machine을 이용한다. State machine이란 하나의 state를 가지는 machine이 존재하고, 외부의 어떤 입력 신호를 받아 자신의 state를 바꾸는 시스템을 의미한다. 이더리움에서 입력 신호는 트랜잭션으로 표현한다. 트랜잭션은 명령이 적힌 종이라고 생각하면 쉽다.

이 글을 읽기 앞서 블록체인의 기초에 대해 알아야 한다. 다음과 같은 내용을 알고 있어야 한다.

  • 블록체인의 구조
  • 포크 상태

본격적으로 이더리움의 프로토콜에 대해 알아보자. 다음의 8챕터로 구성되어있으며, 3개의 글로 나눠 쓰여졌다.

[1] 서론

[2] 1–4 챕터

  1. Accounts
    이더리움에서 어카운트(account)는 두가지로 구분된다. 하나는 일반 사용자 계정을 의미하는 EOA(Externally Owned Account), 나머지 하나는 스마트 컨트랙트 코드를 담고있는 CA(Contract Account)이다. CA는 이더리움 네트워크위에 둥둥 떠다니는 하나의 객체라고 생각하면 된다. 즉 어떤 사람이 로그인해서 조작하는 계정이 아니라 지속적으로 존재하고, 실행되고 있는 프로그램이라고 생각하면 된다.
    이 챕터에서는 어카운트가 어떻게 구성되어 있는 지, 두 계정의 차이가 정확히 어떤 것인지 자세히 알아본다.
  2. State
    이더리움 네트워크위에는 아주 많은 스마트 컨트랙트와 어카운트들이 저장되어 있다. 이 많은 자료들을 신속하고 효율적으로 저장하고, 조회하려면 그에 걸맞는 좋은 자료 구조가 필수적일 것이다. 이더리움은 State라고 정의하는 Key-Value mapping 구조에 여러가지 효율적인 Tree 구조를 섞어 시스템을 구성했다.
    이 챕터에서는 State라고 부르는 이더리움의 자료 구조에 대해 자세히 알아본다. 다음과 같은 내용이 포함되어있다.
    - State의 정의
    - 이더리움에 쓰이는 Merkle tree 3가지
    - 이더리움을 구성하는 노드의 종류
    - 새로운 데이터가 정당한 지 검증하는 Merkle proof
  3. Gas and fees
    자동차는 연료가 없으면 작동하지 않는다. 마찬가지로 이더리움 네트워크에도 연료가 필요한데, 이를 Gas라고 부른다. (오지는 네이밍 센스) 이더리움 네트워크위에서 작동하는 모든 스마트 컨트랙트는 그 연산량에 따라 Gas를 지불해야한다. 이더리움이라고 하는 안전한 시스템을 이용하기 위한 사용료라고 생각하면 된다.
    이 챕터에서는 Gas에 대해 자세히 알아본다.
  4. Transactions
    앞에서 말한 대로, 이더리움이라는 State machine의 입력 값은 Transaction이다. 이 트랜잭션은 이더리움 네트워크에 보내는 명령서라고 생각하면 편하다.
    이 챕터에서는 트랜잭션이 어떻게 만들어지는 지, 어떻게 구성되어 있는 지 자세히 알아본다.

[3] 5–8 챕터

5. Blocks
이더리움 네트워크는 블록체인 네트워크의 일종이다. 그렇기 때문에 일련의 블록들을 포함한다. 여타 다른 블록체인 네트워크보다 효율적인 이더리움만의 블록체인 기술을 알아보자. 이 챕터는 다음을 포함한다.
- Ommer
- Block 구성

6. Transaction execution
앞에서 본 이더리움의 작동방식을 정리해보면, 이더리움 네트워크라는 State machine이 있고, 우리는 트랜잭션이라는 명령서를 이용해 이 장치를 구동한다고 배웠다. 그렇다면 State machine이 트랜잭션을 정확히 어떻게 해석하고 작동할까? 이더리움이라고 하는 거대한 함수의 논리를 살펴본다고 생각하면 된다. 이 챕터에서는 이 내용에 대해 자세히 다뤄본다.

7. Execution model
6장에서 다룬 것이 이더리움의 논리를 이론적으로 배운 것이라면 7장에서는 실질적인 기계 구조에 대해 다룬다. EVM이라고 부르는 가상 머신이 어떻게 작동하는 지 알아볼 것이다.

8. Proof of Work(Mining)
이더리움은 비트코인으로부터 시작된 전통적인 합의 알고리즘인 POW라는 알고리즘을 이용해 블록체인의 안전성을 구축한다. 이 챕터에서는 PoW의 알고리즘을 알아보고, 이더리움의 PoW는 어떤 특징이 있는 지, 어떤 의미를 가지는 지 알아본다.
- 이더리움의 PoW — Ethash
- 채굴(Mining)의 다양한 의미

--

--