비개발자의 블록체인 독학 with <Mastering Bitcoin> #1. 서론

비개발자로서 앞으로의 대세 기술인 블록체인 기술을 학습하고자 'Mastering Bitcoin' 도서를 참고하며 나름대로 정리해보고 있습니다.

서비스 기획시 개발자들과 원활한 커뮤니케이션을 위해 독학하는 것이니 블록체인을 처음 공부하시는 분들도 참고하시면 좋을 듯 합니다.

아마 블록체인 하시는 분들이라면 한 번쯤은 일독 하셨을 것 같네요. 아무튼 전공이 아니라 쉽지 않겠지만... 그래도 끝까지 해보려 합니다!

그럼 블록체인 독학 하시는 분들 모두 모두 화이팅!

비트코인이란?

  • 디지털 통화 생태계의 근간이자 거래의 단위
  • 비트코인 프로토콜을 통해 비트코인 네트워크 상에 있는 참여자에게 가치를 보관/전송이 가능
  • 기존 통화와 동일한 서비스 제공 → 상품 매매, 송금, 대출, 환전 등

비트코인의 특징

  • Virtual money: 거래
  • Open Source: 시스템 운영 소스 코드가 공개 → 누구나 검증/수정 가능
  • Fully-distributed, Peer-to-peer System, Decentralized system
  • Mining: 경쟁 및 보상을 통한 위/변조 및 이중지불 방지
  • Cryptocurrency: 수학적 알고리즘에 의해 유통량 제한, 위/변조 및 이중지불 방지
  • 순수한 P2P 버전의 전자 화폐
  • 제 3의 신뢰 기관의 개입 없이 한 쪽에서 다른 한 쪽으로 화폐 가치를 직접 보낼 수 있는 온라인 지불 수단
  • P2P 네트워크는 거래를 해시로 전환한 후 타임스탬프를 찍고 이 과정을 일련의 해시 기반의 Proof-of-Work 사슬로 연결함으로써 이러한 Proof-of-Work 과정을 반복하지 않고서는 거래 기록을 수정할 수 없도록 함
    • 가장 긴 연결고리 사슬은 발생한 거래의 시퀀스를 증명할 뿐 아니라 가장 많은 CPU 파워를 사용하여 만들어진 사슬임을 증명
    • 정직한 노드들이 가장 긴 연결고리 사슬을 만들어 내며, 연결 고리 사슬을 만드는 경쟁에서 공격자들을 앞서 나가게 될 것이다.

Blockchain

  • Block: 거래의 집합으로, 타임스탬프와 이전 블록의 지문이 표시되어 있음
    블록 헤더를 요약해서 작업 증명(Proof of Work)을 만들고 이를 통해 거래가 유효화 됨
    유효화 된 블록들은 네트워크의 동의를 얻은 후 주 블록체인에 추가
  • Blockchain: 유효화 된 블록의 집합
    각 블록체인은 이전에 생성된 블록체인과 연결되어 최초블록(genesis block)까지 연결됨

채굴하기(Mining)

  • P2P 네트워크를 통해 거래를 검증하는 과정
  • 실물 화폐에서는 정부나 은행과 같은 중앙 관리 기구(제 3의 기관)가 신뢰를 제공하여 거래를 성사시킴
  • 비트코인은 P2P 네트워크에 참여하는 사람들의 자발적 참여(Mining)로 거래를 성사
    → 이에 대한 보상으로 Bitcoin이 발행/지급
  • 특정 조건을 충족시키는 해시(암호값)을 찾아 내는 것
  • **비트코인 통화 공급 역할을 하는 매우 중요한 과정
  • 비트코인의 거래 시스템을 유지하는 핵심 메커니즘에 자발적으로 참여할 동기를 제공

Byzantine Fault Tolerance(BFT)

  • Byzantine Generals’ Problem(by L. Lamport, R. Shostak, M. Pease)에서 제시한 종류의 Failure를 극복하는 System을 Byzantine Fault Tolerance하다
  • 적군의 도시를 공격하려는 비잔티움 제국군의 여러 부대가 지리적으로 떨어진 상태에서 각 부대의 지휘관들이 중간에 잡힐지도 모르는 전령을 통해 교신하면서 공격 계획을 함께 세우는 상황을 가정
  • 이 부대의 지휘관 중 일부에는 배신자가 섞여 있을 수 있고, 배신자는 규칙을 충실히 따르는 충직한 지휘관들과 달리 규칙에 얽매이지 않고 마음대로 행동할 수 있음
  • 이 때 배신자의 존재에도 불구하고 충직한 지휘관들이 동일한 공격 계획을 세우기 위해서는 충직한 지휘관들의 수가 얼마나 있어야 하며, 이 지휘관들이 어떤 규칙을 따라 교신해야 하는지에 대한 문제가 바로 비잔티움 장군의 문제
  • 그렇다면 Bitcoin은 BFT system 인가?

지갑 만들기

  • 지갑은 계정을 생성할 때, 한 쌍의 암호키, 즉, 공개키와 비밀키를 생성
    ex) 15ChaTuCDpaPXkmigDWZMKzvCCxiMCmjFB
  • 비밀키는 지갑 속에 저장되며 공개키는 곧 돈이 송금될 주소
  • Full Client
    • 모든 비트코인의 거래 장부를 보유
    • 3rd party 도움없이 비트코인 네트워크에 연결가능
  • Web Client
    • Web browser를 통해 3rd party server가 보관하는 지갑에 접근함을 통해 거래가 가능
      ex) 거래소
  • Lightweight Client
    • 지갑을 로컬에 저장한다.
    • 거래 및 거래 검증 등 비트코인 네트워크에 접근하기 위해서는 3rd party server에 접속
      ex) Mobile Wallet
H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now