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

 

암호화 해시 함수

암호화를 위한 해시 함수는 3가지 속성을 만족해야 한다.

  1. H(x)->y일 때 y로 x 찾기 어려울 것

  2. H(x) = y, H(x') = y일 때 x가 주어지면 x' 찾기 어려울 것

  3. H(x) == H(y)가 되도록 계산하기 어려울 것

또한 Avalache Effect(입력값에서 조금 바꿨을 때 출력값은 랜덤에 가깝게 바뀌는 것)가 일어나야 함

 

 

블록체인 기본 구조

block ID = BLOCKCHAIN HEADER = PREV BLOCK, NONCE, MERKLE ROOT

PREV BLOCK : 이전 블록 주소

NONCE : 답

MERKLE ROOT : 거래 정보를 담고 있는 트리 형식의 저장 구조

 

MERKLE ROOT 구성도

 

블록체인 기본 구조

 

퀴즈 맞추기 위해 경쟁. 답 맞추면 NONCE에 답 넣고 블럭 생성 가능 -> 인센티브 획득 & 독점 가능

 

 

H(PREV BLOCK HASH || NONCE || MERKLE ROOT) < target

target 값이 작을수록 답 찾기가 어려우며, 이는 일을 했다는 증명시 사용된다.

 

 

HASH PUZZLE

3가지 조건을 만족해야 한다.

1. 계산이 어려워야 한다.

2. 파라미터로 난이도 조정이 가능해야 한다.

3. 정답 유무를 쉽게 체크할 수 있어야 한다.

 

 

BLOCK DIFFICULTY

초반에 참여한 사람은 쉽게, 후에 참여하는 사람은 어렵게 난이도 조정

- 점점 어려워져 나중에 아무도 채굴할 수 없게 된다면? 거래시 수수료 지불 -> 채굴하는 사람에게 수수료 전달

 

마이닝

반복문을 이용해 답 찾는 방식. HD 성능이 좋을 수록 더 빨리 찾을 수 있음

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

ETHEREUM, SMART CONTRACT  (0) 2020.09.29
블록체인 역사  (0) 2020.09.13
비트 코인이란?  (0) 2020.09.05

 

비트코인의 탄생

자유주의자 : "Privacy는 지키고 싶고, 암호화는 중요한 도구. Privacy = Power, 개방된 사회에는 익명의 거래 시스템이 있어야 한다(누가 뭘 샀는지 몰라야 한다)"

비트코인 이전에 DigiCash가 있었으나 중앙화되어 실패.

비트코인을 만든 Satoshi가 백서 작성 -> Proof-of-work(투표 시 퀴즈 맞추는 것), one-CPU-one-VOTE

 

비트코인의 사례

  • 비트코인 교환 사이트가 보안 취약으로 손해입고 파산

  • 마약 거래에 비트코인 사용(악용)

  • 비트 코인 버블 발생(가치 폭등)

  • 여러 다양한 가상화폐 발생, 비트코인 관련 회사 多 생성

  • 비트코인 관련 여러 커뮤니티, 컨퍼런스 등이 존재

 

 

ETHEREUM(이더리움)

비트코인은 돈과 관련이 있으며 현재 통화를 대체하는 것이 목적

이더리움은 블록 체인으로 애플리케이션 개발하기 위한 목적. 개발 플랫폼.

 

 

은행의 블록체인

은행들이 비공개적으로 블록체인 기술 사용 -> 정해진 사람만 사용가능하므로 신뢰 O

 

 

ICOs

투자자들에게 주식 같은 것을 제공하는 것

가상화폐를 만들 때 투자했던 투자자들에게 ICOs를 주고 가상화폐의 가치가 상승하면 투자자들이 ICOs를 통해 돈을 벌 수 있는 것

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

ETHEREUM, SMART CONTRACT  (0) 2020.09.29
비트코인 구조  (0) 2020.09.13
비트 코인이란?  (0) 2020.09.05

비트 코인 배경

비트 코인은 개인의 프라이버시를 보호하고 정부가 통제하여 화폐를 찍어내는, 정부의 간섭을 벗어나기 위해 생겼다.

즉, 누군가가 독점할 수 없는 디지털 화폐가 바로 비트코인이다.

 

 

비트 코인 가치

비트 코인은 컴퓨팅 자원을 이용해 가치가 생성되며, 이 행위를 채굴이라고 한다.

 

 

비트 코인 특징

비트 코인의 특징은 익명성, 탈중앙화, 비신뢰성(서로 거래 상대를 알수없음), 불변성(거래 기록 유지), 협의성, 글로벌성 등이 있다.

 

 

기존 은행과 동일한 점

계좌 -> ID, 잔고

계좌이체, 출금 -> 개인 간 거래

거래 내역 조회 -> 거래 관리(블록체인)

신뢰 -> 비트코인 순환 시 인센티브 주는 방식

 

 

보안

비트 코인은 public key, private key가 존재한다.

public key는 ID이며, 중복이 불가능하고 private key로부터 생성된다.

private key는 PWD로 보면 되며, 인출 시 필요하며 2의 160만큼의 길이를 가지므로 해킹이 거의 불가능하다.

 

 

거래

비트 코인 거래 성사 조건은 거래자의 계정이 유효하고 잔금이 거래에 사용할 만큼 있어야 하며, 동시에 거래 진행하지 않았을 때 성립한다. 또한 동시 거래를 방지하기 위해 UTXO MODEL을 이용한다.

 

 

UTXO MODEL

거래 시 돈이 들어 있는 저금통을 깨야 돈을 사용할 수 있으며 돈을 사용하고 난 후 남은 돈은 다시 새 저금통에 넣는 방식이다.

 

 

거래 장부 저장 (P2P)

체인 형식으로 연결되어 이동하면서 거래 장부를 확인할 수 있다.

A에서 D를 찾기 위해 여러 사용자를 거친다.

(당연하게도 A에 B, C, D를 저장하지 않았기 때문이며, 분산 저장이므로 한 사람에게 모든 정보를 저장하지 않는다.)

 

 

CONSENSUS

DOUBLE SPEND ATTACK(같은 돈으로 여러 번 거래하는 것) 방지 위해 주변에서 블록체인 이용해 거래 장부 확인 후 투표로 거래 여부를 결정 하는 것(이때 주변에서는 절반 이상, 유효한 비트코인이 맞다는 긍정투표를 해야 거래 가능)

투표 시 일어날 수 있는 SYBIL ATTACK(여러 계정 만들어 긍정 투표하는 것) 방지 위해, 투표 하려면 자원을 소비하게 한다. 투표를 하기 위해서는 단순한 퀴즈를 맞춰야 하며 답을 맞출때까지 답을 무작위로 대입해서 맞춰야한다. 퀴즈를 맞추기 위해 답을 대입하는 과정에서 자원을 소비하게 된다.

 

 

51% ATTACK

전체 비트코인 중 51%를 독점하는 것이다. 독점하게 된다면 앞서 언급한 ATTACK들을 막기 힘들것이다. 그러나 현실적으로 전체 비트코인 51%를 장악하는 것은 불가능하며 설령 독점했다고 하더라도 비트코인의 신뢰가 깨져 비트코인의 가치가 사라진다.

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

ETHEREUM, SMART CONTRACT  (0) 2020.09.29
비트코인 구조  (0) 2020.09.13
블록체인 역사  (0) 2020.09.13