비트코인 작업증명은 어떻게 보안을 만드는가?

리얼체크 기술팀 작성 · 발행 [YYYY.MM.DD] · 수정 [YYYY.MM.DD] · 검토 [검토자]

요약

작업증명은 새 블록을 만들 때마다 많은 연산을 요구하는 방식입니다. 블록이 쌓일수록 과거 기록을 바꾸는 데 필요한 연산량이 늘어나, 기록을 고치려면 그 이후 모든 블록의 작업을 다시 해야 합니다. 비트코인의 보안은 이 재작업 비용이 얻을 수 있는 이익보다 크다는 데서 나옵니다.

작동 원리

채굴자는 블록 헤더의 SHA-256 해시값이 네트워크가 정한 목표값보다 작아질 때까지 계산을 반복합니다. 정답을 찾는 방법은 대입뿐이고 검증은 한 번의 계산으로 끝납니다. 각 블록은 이전 블록의 해시를 담고 있어 하나를 바꾸면 이후 블록이 모두 무효가 되고, 노드는 누적 작업량이 가장 큰 체인을 유효한 기록으로 따릅니다.

블록 N
이전 해시 a1…
블록 N+1
이전 해시 7c…
블록 N+2
이전 해시 e0…
블록 N+3
최신
누적 작업량
블록 N을 바꾸려면 블록 N부터 최신 블록까지의 작업을 다시 하고, 그동안 늘어나는 정직한 체인의 작업량도 따라잡아야 합니다.
블록 연결과 누적 작업량. 블록 해시값은 예시입니다.

다른 블록체인과의 비교

합의 방식에 따라 누가 기록을 통제할 수 있는지, 공격 비용이 무엇으로 정해지는지가 달라집니다.

구분작업증명(비트코인)지분증명·허가형 체인
블록 생성 자격연산 능력을 투입한 누구나지분 보유자 또는 승인된 검증자
공격 비용외부 자원(장비·전력)내부 자원(지분) 또는 검증자 담합
검증자 통제특정 주체가 참여를 막기 어려움운영 주체가 검증자를 정할 수 있음
최종성확률적, 블록이 쌓일수록 강해짐방식에 따라 확정적 최종성 제공

실제 활용

  • 금융기관 입금 확인 정책
    거래 금액과 위험도에 따라 필요한 확인 블록 수를 정합니다.
  • 공정추첨 시드
    이벤트클럽은 작업증명으로 보호되는 미래 블록해시를 추첨 시드로 씁니다.
  • 기록 무결성 증명
    문서 해시를 블록에 기록하면 그 시점 이후 변경 여부를 증명할 수 있습니다.

한계와 위험

  • 전체 해시파워의 과반을 가진 주체는 최근 블록을 재구성할 수 있습니다.
  • 최종성은 확률적입니다. 확인 블록 수가 적은 거래는 뒤집힐 가능성이 남습니다.
  • 채굴 풀 집중도는 시기에 따라 달라지므로 지속적으로 확인해야 합니다.
  • 작업증명은 기록의 순서와 불변성을 보호할 뿐, 기록된 내용이 사실인지는 보증하지 않습니다.

참고 자료

  1. Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System
  2. Bitcoin Developer Guide: Block Chain, Proof of Work
  3. FIPS 180-4: Secure Hash Standard (SHA-256)