관리 메뉴

개발이야기

[마스터링 이더리움] Mastering Ethereum - What is Ethereum 본문

블록체인 /마스터링 이더리움

[마스터링 이더리움] Mastering Ethereum - What is Ethereum

안성주지몬 2018. 9. 10. 13:19

What is Ethereum?(이더리움은 무엇인가?)

 

이더리움은 세계의 컴퓨터(the World Computer)  라고 불려집니다. 이더리움을 가지 관점으로 설명할 있습니다.  

 

컴퓨터공학 관점(computer science-focused) : 결정론적, ‘접근 가능 개체 + 가상 머신 가지 기능을 기반으로 무한한 상태 기계

 

실용적 관점(practical analysis) : 오픈 소스, 스마트 컨트랙트를 실행하는 탈중앙화된 기반 시스템

 

비트코인과 비교(Compared to Bitcoin)

 

비트코인 : 비트코인 코어(Bitcoin Core) 오픈 소스에 의해 개발됨(참조 구현), 튜링불완전

 

이더리움 : 자체적인 튜링 완전언어(Solidity), 프로그래밍 가능, 높은 자유도와 효율성

 

블록체인의 구성 요소


- P2P(peer-to-peer) 네트워크 : “gossip” 프로토콜 기반으로 거래 진행, 검증, 참여자들 연결

- 메시지(message)  : 거래의 형태, 상태 변환 표현

- 상태 기계(state machine) : 합의 규칙에 의해 거래를 진행시키는

              - 암호화된 블록의 체인

- 합의 알고리즘(consensus algorithm) : 블록체인을 중앙화해주고, 참여자들을 합의 알고리즘에 협조하게 해준다

- 게임이론을 기반으로 만들어진 시스템 : 개방된 환경에서 경제적으로 상태 기계를 보안

- 오픈 소스 소프트웨어(open-source software)

 

이더리움의 개발 4단계

 

이더리움 개발은 크게 4단계로 구성되어있다: 프론티어(Frontier), 홈스테드(Homestead)

메트로폴리스(Metropolis), 세레니티(Serenity)

 

블록 #0

프론티어 - 이더리움의 초기단계, 2015 7 ~ 2016 3

 

블록 #200,000

아이스에이지 - 난이도 증가에 의한 하드포크

 

블록 #1,150,000

홈스테드 - 이더리움의 번째 단계, 2016 3 런치

 

블록 #1,192,000

DAO - DAO contract 해킹으로 이더리움과 이더리움 클래식으로 나뉘어짐

 

블록 #2,463,000

Tangerine Whistle- 수수료인 가스 계산을 위한 하드포크, 상태 정리

 

블록 #2,675,000

Spurious Dragon

 

블록 #4,370,000

메트로폴리스 비잔티움 - 2017 10월에 런치, 메트로폴리스의 하드포크

 

현재는 메트로폴리스 단계, 비잔티움(2017 10) 콘스탄틴노플(2018 중반) 하드포크 계획

 

콘스탄틴노플 - PoW PoS 합친 하이브리드 합의 알고리즘으로 변경

 

세레니티 - 이더리움의 4번째 단계, 아직 계획 없음

 

이더리움 : 범용 블록체인(Ethereum : A general purpose blockchain)

 

일반적인 블록체인(ex.비트코인 블록체인) : 비트코인의 상태와 소유권 추적

 

이더리움 : 범용 데이터 저장소의 상태 변환 추적, 데이터를 - 튜플로 표현 가능, 범용 컴퓨터와 같이 메모리를 가지고 있으며 코드를 불러올 있고 실행시킬 있다.

 

ex)- 튜플 참조 : “Mastering Ethereum” , “ 제목이라는 키에 의해 참조

 

이더리움의 구성요소

 

- P2P네트워크 : ‘이더리움 메인 네트워크에서 실행(TCP 포트 30303)

- 합의 규칙 : yellowpaper 참조 명시에서 정의

- 트랜잭션 : 네트워크 메시지(송신자, 수신자, , 데이터 페이로드 포함)

- 상태 기계 : 이더리움 가상 머신(EVM) 의해 이더리움 상태 변환 진행, EVM 프로그램은스마트 컨트랙트라고 불리며 고레벨 언어(Solidity) 작성되었으며, EVM에서 바이트 코드 형태로 실행됨

- 자료 구조 : 머클트리의 형태로 직렬화된 거래와 시스템 상태가 노드 데이터베이스에 저장되어 있다

- 합의 알고리즘 : PoW 사용했지만, Casper라고 불리는 PoS 합의 알고리즘 사용할 예정

- 경제적 보안 : 최근에는 Ethash라는 PoW알고리즘을 사용하였지만, PoS 바꿀 예정

- 클라이언트 : Geth Parity 같은 클라이언트 소프트웨어 존재

 

범용 블록체인에서 탈중앙화된 어플리케이션까지 (DApps)

 

이더리움은 프로그래밍 가능한 탈중앙화 어플리케이션 플랫폼 서비스가 있는 것으로 확대되었다.

DApp 스마트 컨트랙트이며 사용자 인터페이스이다. 또한, 탈중앙화되고, P2P 기초로 되어있는 어플리케이션이다.

 

DApp 구성 : 스마트 컨트랙트 + 프론트엔드 사용자 인터페이스, P2P 저장, 메시징 프로토콜과 플랫폼

 

인터넷의 3시대

 

Web 2.0 사용자 콘텐츠와 즉각적인 인터페이스를 지향하는 진화       . DApp P2P 프로토콜

 

기반인 탈중앙화를 포함한다. 이를 Web 번째 버전인 Web 3에서 개발된다. Web 3 중앙에서 어플리케이션을 관리하는 것이 아니라 탈중앙화된 프로토콜 기반으로 만들어진 것이다.

 

web3.js 자바스크립트 기반 프로그램이 이더리움 노드와 통신을 가능하게 해주는 라이브러리

 

이더리움의 개발 문화

 

비트코인 : 보수적인 개발 문화, 모든 변화는 주의 깊게 연구됨

 

이더리움 : 급진적인 개발 문화, 나중에는 개발이 천천히 진행될 것이며 인터페이스는 고정될 것이다.

 

Ethereum Basics


통제와 책임(Control and Responsibility)

 

스마트 컨트랙트와 자금에 접근하는 것을계정또는지갑이라고 부른다

 

책임감을 관리하는 여러가지 :

- 즉흥적인 안전성보다 tried-and-tested 접근을 하여라

- 중요한 계정일수록, 높은 보안으로 관리하라

- 너의 개인 키를 일반적인 형태로 저장하지 마라

- 비밀번호를 강력하게 하며, 공유하지 마라

- 비밀번호를 디지털 형태로 저장하기 보다는 펜이나 종이를 이용하라

- 거래를 하기 전에, 시험으로 조그만 거래를 먼저 해보라

 

이더 화폐 단위

 

이더리움의 화폐 단위는 ether, ETH라고 불리며, Ξ라는 단위를 쓴다. 가장 작은 단위는 wei

1 ether 1 * 10^18 wei이다.


이더리움 지갑 고르기

 

지갑(wallet) : 이더리움 계정을 관리하도록 해주는 소프트웨어 어플리케이션

 

지갑의 가지 형태 : 모바일, 데스크톱, 기반 지갑

 

지갑 종류 :

- MetaMask : 브라우저 확장 지갑, 사용하기 쉽고 편하며 이더리움 노드와 테스트 블록체인에 연결 있다. 기반 지갑

- Jaxx : 멀티 플랫폼, 멀티 화폐 지갑(안드로이드, iOS, Windows, Mac, Linux), 사용하기 쉽고 간단

모바일 & 데스크톱 지갑

- MyEtherWallet(MEW) : 기반 지갑, 모든 브라우저 실행 가능

- Emerald Wallet : 이더리움 클래식 블록체인 설계, 다른 이더리움과도 연동 가능, 오픈 소스 데스크톱 어플리케이션, 풀노드나 라이트노드에서 실행 가능

 

네트워크 종류

 

- Main Ethereum Network : 메인 공용 이더리움 블록체인이며, ETH 가치가 있다.

- Ropsten Test Network : 이더리움 공용 테스트 블록체인 네트워크이다. ETH에는 가치가 없다.

- Kovan Test Network : 이더리움 공용 테스트 블록체인 네트워크이며 PoA(Proof-of-Authority) “Aura” 합의 프로토콜 사용. ETH에는 가치가 없다. “Parity” 의해 제공되는 테스트 네트워크이다.

- Rinkeby Test Network : 이더리움 공용 테스트 블록체인 네트워크이며 “Clique” 합의 프로토콜과 PoA사용. ETH에는 가치가 없다.

- Localhost 8545, Custom RPC







Comments