3학년/인터넷 보안(블록체인 이론)

Chapter01 - 블록체인의 이해

김야키 2018. 12. 24. 16:26

Chapter01 - 블록체인의 이해

※해당 자료는 비트코인을 기준으로 만든 내용 입니다.

 

1.     블록체인 암호 기초

l  기존 핀테크 서비스 모델

ü  클라이언트-서버 서비스 모델

1-     서버를 경유한 거래 서비스: 클라이언트가 거래를 서버에 전송

2-     서버가 거래 승인과 거래 장부 유지에 대한 책임: Centralized

3-     중앙 집중 형 서버 그 중에 가장 취약한 서버를 해킹하면 모든 서버 해킹이 가능함

l  블록체인 핀테크 서비스 모델

ü  P2P(Peer-to-Peer) 서비스 모델

1-     참여자 간에 직접 거래 서비스: 참여자가 거래를 브로드캐스팅

2-     다수가 거래 승인과 거래 장부 유지에 참여: Decentralized

3-     모든 사람의 승인이 있어야 거래 장부가 유지됨

A.     질문: AB가 거래한 내역을 모든 사람에게 공유해야 할까?

                                        i.         1: private 블록 체인은 서로 연관 된 인원에게만 투명하게 공유 하면 된다.

                                       ii.         2: public 블록 체인 같은 경우는 모두에게 공유가 된다. - 비트코인

4-     거래 장부: 블록 체인

5-     모든 장부를 똑 같은 장부를 유지하는 것이 핵심

6-     장부를 기록하는 일 = 채굴

A.     질문: AB의 거래를 모든 사람이 기록해야 할까?

                                        i.         : 누구든지 기록에 참여하는 것이 아니라 블록에 거래들을 기록하는 일을 하는 사람이 있음 = 채굴자(mining)

                                       ii.         채굴자들이 하는 일: 장부(블록)를 만드는 일을 함

B.      왜 장부를 만드는 일을 하는가?

                                        i.         : 비트코인의 경우, 블록체인에 연결할 블록을 만드는 일을 하는 채굴자에게 일정 금액의 비트코인을 줌


 

2.     블록 체인

l  정의: 투명성비가역성을 제공하는 분산 데이터베이스

ü  투명성(Transparency): 거래내역은 검증될 수 있음

ü  비가역성(Irreversibility): 기록된 거래내역은 변경될 수 없음

1-     동일한 시간에 만들어진 블록이 여러 개가 있으면 그 정보가 더 많은 블록이 채용된다.

ü  분산 데이터베이스(Distributed DB): 중앙 서버가 불필요한 분산된 DB

 

3.     암호 화폐(블록 체인의 기술이 기반이 된 화폐)

l  일반 암호화폐(Public Block Chain)

ü  일반 화폐를 대체/보완하기 위해 발생되는 암호화폐

ü  비트코인, 라이트코인

l  목적 암호화폐

ü  특정 목적이나 분야에서 사용되는 암호화폐

l  익명 암호화폐

ü  누가 누구에게 거래를 했는지 알 수 없음

ü  일반 암호화폐에 익명성을 강화한 암호화폐

ü  Privacy, Untraceability, Fungibility

l  플랫폼 암호화폐

ü  단순 암호화폐의 기능을 넘어서 블록체인 기술을 플랫폼 형태로 제공


 

4.     블록 체인의 구조(Bit Coin에 사용된 기술)

l  채굴자들의 합의에 의해 장부가 생성된다.

l  만들어진 장부는 10분 단위로 생성된다. (시간은 플랫폼 마다 다름)

ü  단점: 블록이 만들어 져야 거래가 가능 해 진다.(실생활에 사용이 어려움)

ü  , 10분이 지나야 거래가 이루어 진다. 무조건 10분간 채굴이 이루어 져야 한다.

ü  이더리움에 경우 장부가 만들어지는 시간은 15초로 이 단점을 보완 한다.

l  최초 블록: 블록 헤더 + 거래 데이터

ü  이 블록을 해쉬 함수에 넣어서 하나의 코드를 만들어 낸다.

ü  만들어진 코드를 다음 블록의 블록 헤더에 입력한다.

ü  만들어진 코드는 해석이 불가능 하기 때문에 전에 만들어진 거래 장부의 수정이 불가능 하다.

l  블록 헤더: 이전 블록의 거래 데이터를 기반으로 만들어 진다.

ü  version: 소프트웨어/프로토콜 버전

ü  previousblockhash: 이전 블록의 해쉬 코드

ü  merklehash: 거래된 개별거래 트리해쉬의 값들을 해쉬 형태로 만든 값

ü  time: 블록이 만들어진 시간

ü  bits: 해쉬 함수 난이도 조절용 수치

ü  nonce: 해쉬를 만들어 내기 위한 값)

l  다음 블록이 만들어지기 위한 시간은 위에서 말한 10분이 된다.

l  블록체인이라는 체인을 이루는 원소인 블록

ü  블록은 유효한 거래 정보의 묶음

ü  Bit Coin은 하나에 평균 약 1,800개의 거래 정보가 포함될 수 있다.

 


 


 

5.     Bit Coin 채굴

l  개별 거래 정보는 결국 머클 트리의 해쉬값인 merklehash 값으로 집약된다.

l  블록 헤더의 6가지 정보 중에서 5가지 정보는 변하지 않는다.

l  마지막 nonce값은 채굴자가 만들어내야 하는 값이다.

ü  nonce값을 구해서 최종적으로 블록 해쉬 값을 구하고, 이 블록 해쉬 값을 식별자로 가지는 유효한 블록을 만들어내는 것이 바로 작업 증명(Proof of Work), 흔히 말하는 채굴이다.

l  가장 처음 기입되는 거래 정보는 채굴자의 보상 정보가 기입된다.

l  질문: 장부에 있는 모든 데이터를 모아 장부의 원본을 가려내기 위한 확인 기술

ü  : 채굴

ü  채굴을 하기 위해서는 해시 함수를 사용한다.