비트코인의 목적
기존의 전자 결제 system에서는 제 3자 역할을 금융기관에 의존해옴
Game stop 주가 폭등 사건때의 Robinhood의 임의적 거래중지 사건과같이 제 3자에게 중계를 맡기는것은 문제와 비효율성이 존재함
그러므로, 아래의 3가지 이점을 가지는 암호화폐인 Bitcoin이 등장함
- 중앙통제를 받지않음(탈중앙화)
- 한번 기록된 정보를 수정하거나 위조할 수 없는 거래의 비가역성 보장
- 거래내역을 암호학적으로 증명 할 수있음
- 신뢰를 암호학적으로 증명
Transaction
Public key :
Private key :
전자서명 :
원본데이터을 전자서명으로 비밀키를 이용해 암호화
전자서명을 공개키로 복호화했을때, True/False를 확인할 수 있음
Hash Function
SHA-256을 사용하여 hashing
이중지불 (Double Spending)문제
기존의 통화체계에서는, 이중지불문제를 제3가 개입해서 해결했지만
Bitcoin에서는 타임스탬프 서버로 해결한다
Consensus Algorithm
- 타임스탬프 서버는 block들끼리 어떻게 chain을 구성하고있는지에 대한 것이다
- N번째 블록은 N-1번째 블록의 hash를 포함하고, N번째 블록은 N-1번째 블록보다 이후의 블록임을 알 수 있다
- 이와같이 N-1, N, N+1 ...와같이 블록의 길이를 연장하면서 블록들이 존재한다
따라서 block들은 생성된 시간에 따라 chain의 형태를 가지게된다
작업증명(PoW)
bitcoi은 블록을 생성할 때, 악의적인 목적을 가지는 공격자가 마구잡이로 블록을 찍어낼 수 없게 고의적인 비효울적인 작업을 요구한다
작업증명 :어떤 작업을 했다는 것을 증명해야만, 블록을 생성할 자격을 주는것
네트워크
- 새로운 거래가 모든 노드에 브로드캐스트된다.
- 각 노드가 새로운 거래를 블록에 수집한다.
- 각 노드가 그 블록에 맞는 난도의 작업증명을 찾아 나선다.
- 노드가 작업증명을 찾은 시점에, 거기서 모든 노드로 그 블록을 브로드캐스트한다.
- 노드는 모든 거래가 유효하며 아직 지불되지 않았다는 조건에 맞을 경우에만 그 블록을 승인한다.
- 노드는 블록 승인을 표현하기 위해 먼젓번 해시로 승인된 블록의 해시를 사용해 사슬 안에 다음 블록을 생성한다.
block에는 [현재 블록의 해시, 이전 블록의 해시, Nonce, 거래내역] 이 포함된다.
현재블록의 해시, 이전블록의 해시 : 타임스탬프 서버
Nonce : 작업증명
거래내역 : 송금내역
의 요소를 이용하여

[1] 거래내역을 생성하면, 거래내역이 네트워크에 broadcast
[2] 노드에 도달한 거래내역을 수집해 block 생성
[3] PoW를 통해 생성한 올바른 블록을 네트워크에 broadcast
[4] 타임스탬프를 확인하여 broadcast된 블록이 올바른경우, 블록을 승인한다.
Nakamoto Consensus
- 비트코인은 가장 긴 체인을 선택하는 규칙을 추가
- 가장 긴 체인 + 작업 증명
인센티브
PoW를 통해 새로운 블록을 만들어 낸 사용자에게 보상을 지급함으로써(mining) blockchain network유지가능
이때, 4년의 반감기에 따라 bitcoin의 채굴 보상이 달성되면 bitcoin의 blockchain network를 이용하는 사용자는 거래내역을 등록하기위해 거래 수수료를 지불해야하는데, 거래 수수료를 보상으로 지급
디스크 공간 절약
만약 한 block속에 모든 거래내역이 존재하면, block의 크기는 network가 사용됨에 따라 무한이 커지게된다
따라서 block안의 거래내역을 머클트리 구조로 저장하여
노드가 블록의 모든 거래내역을 가지고 있지 않아도, 거래내역의 위변조 확인이 가능하고
또한 잘못된 거래내역이 있을때, 다른 노드들과 비교를 통해 복구가능