[Blockchain] Mastering Ethereum Ch.1 요약

Melon Coder·2023년 2월 11일
1

Blockchain

목록 보기
1/5
post-thumbnail

Chapter 1. 이더리움이란 무엇인가?

실용적인 관점에서 이더리움은 스마트 컨트랙트라는 프로그램을 실행하는 오픈 소스에 기반을 둔, 전 세계에 걸쳐 탈중앙화된 Computing Infra structure 이다.
블록체인을 사용해 시스템의 상태 변화를 동기화하고 저장하며, ether라고 하는 암호화폐를 이용하여 실행 자원 비용(gas)를 측정하고 제한한다.

비트코인과의 비교

이더리움은 다른 public blockchain과 여러 공통 요소를 공유한다. (ex. p2p 네트워크, 비잔틴 결함 허용 합의 알고리즘(Proof of work), 디지털 서명과 해시, ...)
하지만 이더리움의 주된 목적은 디지털 화폐 지급 네트워크가 아니라 디지털 화폐(ether)는 그저 한 부분으로서 진짜 목적은 이더리움 플랫폼 사용료를 지불하기 위한 유틸리티 화폐(utility currency)이다.

비트코인은 제한된 스크립트 언어를 사용하는 반면, 이더리움은 가상 머신(virtual machine)을 운영하는 블록체인으로 설계되었다.
즉, 이더리움은 튜링 완전(turing complete)언어 이다.

블록체인 구성요소

General한 public blockchain의 구성요소는 다음과 같다.

  • 가십(gossip) 프로토콜을 기반으로 참여자를 연결하는 P2P 네트워크
  • 상태 전이를 나타내는 트랜잭션 형식의 메시지
  • 트랜잭션 요건과 유효성을 판단하는 프로토콜의 집합
  • 프로토콜에 따라 트랜잭션을 처리하는 상태 머신(state machine)
  • 암호학적으로 보안된 chain
  • 프로토콜을 적용하기 위해 강제적으로 모든 노드가 협력함으로써 탈중앙화하는 합의 알고리즘
  • public한 environment에서 경제적인 보안성을 제공할 수 있는 incentive mechanism

여러 블록체인을 식별할 수 있는 평가 기준으로 다음과 같다.

  • 개방성, 공공성, 국제화, 탈중앙화, 중립성, 검열 저항성 등

이더리움 개발의 4단계

네 가지 주요 개발 단계는 프론티어(Frontier), 홈스테드(Homestead), 메트로폴리스(Metropolis), 세레니티(Serenity)

이더리움의 구성요소

  • P2P Network: 이더리움은 TCP 포트 30303으로 접속 가능한 Ethereum Main Network에서 실행된다.
  • 합의 규칙(consensus rules)
  • 트랜잭션
  • 상태 머신(state machine): 이더리움에서 상태 전이는 스택 기반 가상머신인 EVM(Ethereum Virtual Machine)에서 처리된다.
  • 데이터 구조
  • 합의 알고리즘
  • 경제적 보안성
  • 클라이언트

이더리움과 튜링 완전

EVM에서 메모리에 데이터를 읽고 쓰며 저장된 프로그램을 실행할 수 있는 이더리움 기능은 튜링 완전 시스템을 가능하게 하므로 UTM(Universal Turing machine)이라고 볼 수 있다.

'기능'으로서의 튜링 완전

튜링 완전은 개방형 액세스(open access) 시스템에서는 위험하다.
그 이유는 정지 문제(halting problem, 임의로 주어진 튜링 머신이 주어진 입력 테이프에 대해 정지하는지의 여부를 판정하는 알고리즘의 존재 여부를 묻는 문제) 때문이다.

튜링 완전의 함축적 의미

튜링을 간단히 말하면, 플그램을 실행하지 않고선 프로그램의 경로를 예측할 수 없다는 말이다.
이더리움은 가스(gas)를 통해 스마트 컨트랙트가 사용하는 자원을 제한한다.
즉, 가스는 각 프로그램이 사용할 수 있는 리소스를 제한해서 이더리움 튜링 완전 계산을 허용하게 하는 메커니즘이다.

* bike-shedding: 사소한 논쟁으로 개발이 지연되는 일.

1개의 댓글

comment-user-thumbnail
2023년 3월 20일

같은 조가 되어서 영광입니다. 많이 배우고 갑니다!

답글 달기