SMART CONTRACT

프로그램으로 코딩되어 있는 형태의 계약. 이 계약에 참여하는 사람들은 이 코드를 실행함으로써 계약 실행.

 

 

ETHEREUM

SMART CONTRACT 수행 위해 설계된 분산 개발 환경. 블록체인 앱 개발 플랫폼.

코드 수행하는 분산 컴퓨터와 비슷하며 계좌 기반 블록체인. 거래 = (상태를 가지고 있는 모든 PEER들의 상태변화)

ether는 ETHEREUM의 돈. ETHEREUM 생태계의 기본이 되는 것. 블록 생성 시 받는 리워드.

특징 : 복잡하고 기능이 많다. turing complete, proof-of-stake(주식)

 

 

Externallly Owned Accounts(사용자)

사람, 회사 등에 의해 소유, ether 이체 및 contract code 호출 가능, 잔고 존재

 

 

Contract Accounts(프로그램)

계약에 의해 소유, 거래나 함수호출(메시지)에 의해 contract code 호출 당함, 잔고 X, Persistent storage 소유

 

 

ETHEREUM내의 Contract는 ETHEREUM 네트워크 내의 자율적인 일종의 에이전트

- 거래 수행 시 Poked(함수호출)에 반응

- 역할 : 잔고 관리, ETHEREUM내 Contract에 있는 변수를 Permanent storage에 저장

 - 목적 : 데이터 저장 및 운용(사용자나 다른 Contract에 유용한 정보 저장), Contract 관리(금융 계약, 에스크로, 보험 등), 다른 Contract 위한 함수 제공(SW library 제공), 복잡한 인증(M-of-N multisignature access(N명 중 M명이 동의해야 사용 가능)

 

 

EVM(ETHEREUM VIRTUAL MACHINE)

모든 ETHEREUM 노드는 EVM 수행, 합의 시 신뢰성 있는 것에 의지 X해도 충분(합의 지키지 않으면 전체 네트워크에 문제 생길 수 있음)

서로 신뢰없는 사람끼리 코드를 맞춰가면서 일할 수 있음

EVM code는 low-level, 스택 기반 바이트코드 언어, JVM 바이트 코드와 비슷

 

*만약 Contract에 무한 루프가 있다면? Dos 공격의 위험 존재

따라서 EVM에 Contract 수행 시 gas 요구. 각 EVM 명령어마다 어느 정도 gas 필요

모든 거래에는 start gas가 있으며 gas는 ether로 구매

 

 

ETHEREUM은 반복, 중복적인 작업을 하기 때문에 비효율적

->블록체인을 써서 도움(consensus 등)되는 게 아니라면 사용 X

'블록체인' 카테고리의 다른 글

비트코인 구조  (0) 2020.09.13
블록체인 역사  (0) 2020.09.13
비트 코인이란?  (0) 2020.09.05