비개발자로서 앞으로의 대세 기술인 블록체인 기술을 학습하고자 '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 인가?
- Reference : https://blog.cdemi.io/byzantine-fault-tolerance/
- BFT in Blockchain : https://www.youtube.com/watch?v=kE51N84hBxU
- PBFT : http://pmg.csail.mit.edu/papers/osdi99.pdf
지갑 만들기
- 지갑은 계정을 생성할 때, 한 쌍의 암호키, 즉, 공개키와 비밀키를 생성
ex) 15ChaTuCDpaPXkmigDWZMKzvCCxiMCmjFB - 비밀키는 지갑 속에 저장되며 공개키는 곧 돈이 송금될 주소
- Full Client
- 모든 비트코인의 거래 장부를 보유
- 3rd party 도움없이 비트코인 네트워크에 연결가능
- Web Client
- Web browser를 통해 3rd party server가 보관하는 지갑에 접근함을 통해 거래가 가능
ex) 거래소
- Web browser를 통해 3rd party server가 보관하는 지갑에 접근함을 통해 거래가 가능
- Lightweight Client
- 지갑을 로컬에 저장한다.
- 거래 및 거래 검증 등 비트코인 네트워크에 접근하기 위해서는 3rd party server에 접속
ex) Mobile Wallet
Congratulations @jakers! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!