블록체인 입문

2020. 2. 21. 13:51programming/blockchain

 

 

기존 시스템

- 중앙기관이 존재하여 거래 중재
- 중앙기관 털리면 다 털림
- 중앙기관이 수수료 받아먹음

블록체인

- 중앙기관 불필요
- 참여자 모두가 기록함
- 모든 사람의 기록을 변경(해킹)하기는 불가능


비트코인 (1세대 암호화폐)


채굴

블록 생성, 코인 생성
채굴과정은 퍼즐 조각 찾기
nonce가 퍼즐조각생성기(해시함수)를 거쳐서 나온 값이 목표값보다 작으면 성공

블록 생성 시, 보상으로 비트코인 줌.

주는 양은 반감기(4년)마다 절반씩 줄어듦. 두 번의 반감기가 있었고 현재는 12.5코인 (처음엔 50 -> 25 -> 12.5)
두 번째 보상은 이체 수수료.
현금 거래와는 달리 한 덩어리로 이루어져 있어서

이체 시 목표 금액을 상대에게 보내고 (상대는 기존 덩어리 + 새로 받은 덩어리) 남은 양만큼은 자신에게 보내야 함
자신에게 보내지 않으면 해당 금액은 이체 수수료로 쓰임. 이체 수수료가 높을수록, 더 빨리 블록에 포함됨

단점
실시간성 낮음 : 블록 생성 주기 10분. 거래 완료 내역 바로 확인 불가. 이체 수수료에 따라 블록에 포함되는 시간 다름
확장성 문제 : 초당 6개. 신용카드의 경우 초당 2,000개
에너지 소모 큼
스마트 계약 기능 미비 : 암호화폐 거래 목적으로 고안됨. 여러 산업에서 활용하기에 제약이 존재


이더리움 (2세대 암호화폐)

거래 뿐만 아니라 계약 등 다양한 정보 저장 가능
이더리움을 통해 ICO(암호화폐 만들기 모금)를 할 수 있었고 다양한 암호화폐가 등장
조건문 포함하여 나중에도 실행 가능

계정 기반 : 비트코인처럼 덩어리 기반 아님

 

  이더리움 비트코인
블록 생성 속도 15 초 10 분
초당 트랜잭션 수 (TPS) 15 TPS 7 TPS
참여 노드 수 (2019-08-15 기준) 7590 9394
최초 블록 생성 2015-07-30 2009-01-03
최대 발행량 제한없음(아직 정해지지 않음) 21,000,000
블록 보상 2 ETH 12.5 BTC
적용 가능 분야 암호화폐를 포함한 모든 산업 분야 가능 암호화폐만 가능


스마트 계약
디지털방식으로 특정한 계약을 수립, 검증, 실행하기 위한 컴퓨터 프로토콜
제 3자 없이 신뢰할 수 있는 거래 가능. 추적할 수 있고 되돌릴 수 없음.
우수한 보안성, 저렴한 비용, 자동실행, 명확한 결과, 즉각 이행
이더리움에서는 Solidity라는 프로그램 언어를 사용하여 계약서 작성 -> 코드로 변경 -> 블록에 입력


DAO해킹으로 750억원 정도 해킹당하고 이더리움 가격 폭락
DApp (Decentralized Application, 탈중앙화된 애플리케이션)


EOS (3세대 암호화폐)


'이더리움 킬러'라는 별명
DApp 구동에 특화된 플랫폼
C/C++로 구현

 

  EOS 이더리움
블록 생성 속도 0.5 초 15 초
초당 트랜잭션 수 (TPS)

4,000 TPS

(목표는 싱글 쓰레드 1만

/ 멀티 쓰레드 100만)

15 TPS


DPoS라는 간접 민주제

21명의 참여자 선출 (슈퍼 노드)

슈퍼 노드가 블록 생성


DApp 사용자가 거래 수수료 지불 X

DApp이 일정량의 EOS 보유해야 함

보유한 EOS 양에 따라 네트워크 자원 할당됨

 

온체인 거버넌스 : 정책이 체인 내부에 있음을 의미


public blockchain  VS  private blockchain

 

  public private
개방성

개방형. 누구나 참여 가능.

자유롭게 탈퇴 가능

폐쇄형. 누구나 참여 불가.

권한자의 승인을 받아야 참여 가능

암호화폐 발행 여부 암호화폐 발행 선택적인 암호화폐 발행
암호화폐 필요성 네트워크에 운영에 대한 보상 내부적 사용으로 굳이 필요 없음

비트코인, 이더리움, 비트코인 캐시,

EOS, 스팀, 모네로 등

하이퍼레저 패브릭, R3,

Nexledger(삼성 SDS),

PosLedger(포스코 ICT)

 

 

하이브리드 블록체인

 - 더블체인 : 퍼블릭 블록체인 + 프라이빗 블록체인

 - 인터체인

   : 서로 다른 다수의 블록체인 네트워크를 연결하기 위한 체인

   : 퍼블릭 블록체인과 프라이빗 블록체인들이 서로 연결됨


하이퍼레저 (IBM의 private 블록체인)

Enterprise용 블록체인
10개의 프로젝트 (프레임워크 5개, Tools 5개)

대표 프레임워크로 FABRIC
- 리눅스 재단 주도하여 설립한 프로젝트
- 허가형 블록체인
- Plug & Play 방식
- 채널 도입
- Membership Service Provider (MSP) : 멤버 관리
- 부인 방지 (부인할 수 없음. 기록 있음)
- 보상 제공할 필요 없음
- 합의 알고리즘은 모듈러 방식 (개발자가 고름) (SOLO, Kafka, PBFT)
- 체인코드(Chaincode)
   : 기존의 스마트 컨트랙트와 유사
   : Go 언어, Node.js를 이용해 개발 가능 (solidity 아님)
   : 그대로도 사용 가능하지만 DApp과 함께 개발되어 사용됨
 - 채널
   : 하나의 시스템에서 여러 개의 블록체인 운영가능
   : 채널 별로 독립적인 블록체인 유지
   : 채널에 가입함으로써 블록체인 선택
   : 참여자는 다수의 채널에 가입 가능
 - 병렬 실행 (초당 만 개 이상의 거래 처리가 목표)
 - 즉각적으로 거래의 처리 완료됨