본문 바로가기

블록체인/블록체인(박승철)

블록체인 - (7) 비트코인 작업 증명과 블록 인센티브

블록체인 - (7) 비트코인 작업 증명과 블록 인센티브

블록 인센티브 : 블록 보상(block reward) + 거래 수수료(transaction fee)

블록 보상(Block reward)
- 블록 채굴에 성공한 채굴자에게 비트코인 네트워크가 제공(=발행)
- 인플레이션(inflation)을 방지하기 위해 시간이 감에 따라 축소되도록 설계
- 50 BTC로부터 시작하여 210,000 블록마다(약 4년) 보상 금액이 1/2로 축소(=반감기)
- 2140년 경이 되면 비트코인 총액 2100만 BTC가 되고 화폐 발행이 종료됨

<그림 1: 블록 보상을 통한 비트코인 발행 추세>

거래 수수료 = (블록 내 전체 입력값 총합) - (블록 내 전체 출력값 총합)

코인 베이스 거래(Coinbase transaction)
- 블록 채굴에 대한 전체 인센티브는 해당 블록에 저장되는 첫번째 거래인 코인베이스 거래에 의해 지불됨
- 출력값으로 블록 보상과 수수료 보상을 합친 금액이 채굴자의 주소로 지불됨

비트코인 블록의 블록 헤더 구조(Block Header)

크기(바이트 단위) 필드(field) 설명
4 버전 프로토콜 버전
32 해시 포인터(hash pointer) 이전 블록(=부모 블록)의 해시값
32 머클 루트 머클 트리로 블록에 저장된 거래들의 루트 해시
4 타임스탬프 이 블록이 생성된 시간을 표시
4 난이드 목표 이 블록에 대한 작업 증명 난이도 목표
4 넌스(nonce) 작업 증명에 사용된 임의의 숫자

비트코인 작업 증명 방법
(1) 채굴자는 자신이 수집한 거래 내역 + 블록 헤더로 이루어진 블록을 생성함
(2) 비트코인 네트워크는 블록의 해시값이 특정값 이하가 되도록 요구함. 즉, 채굴자는 넌스값을 임의로 설정해가며 블록의 해시값이 특정값 이하가 되도록 해시 연산을 수행
(3) 채굴자가 구한 해시값이 '난이도 목표'에 적합하면 해당 블록을 비트코인 네트워크에 포스팅
(4) 비트코인 네트워크 참여자(풀노드)는 해당 전달받은 블록의 유효성을 검사하기 위해 해시값을 계산하고 계산된 해시값이 난이도 목표에 적합하면 자신이 가지고 있는 비트코인 장부에 해당 블록을 추가하고 다른 노드에 포스팅함.

비트코인 작업 증명 방법에 사용된 해시 함수의 특성
(1) 해시 함수의 일방향성
- 주어진 난이도 목표에 해당하는 해시값을 구해야 하는데 해시 함수의 일방향성 특성때문에 역연산이 매우 오래 걸림
(2) 해시 함수의 쇄도효과(Avalanche Effect)
- 해시값과 원래값의 연관성을 추론할 수 없음

해시율(Hash Rate, Hash Power)
- 해시 함수 계산 능력

난이도 목표(Difficulty target)
- 난이도 목표의 예 : 0x0000000000000003A30C0000000000000000000000
- 전반부 60비트가 0으로 설정됨
- 즉, 난이도 목표보다 적은 해시값이 나오도록 해야 하므로 이에 적합한 해시값은 전반부 60비트가 반드시 0이어야 함
- 비트코인 네트워크는 해시 함수로 SHA-256 알고리즘을 사용함. 이때의 난이도는 2^(-60)
- 만약 유일한(unique)한 해시값을 요구했으면 이에 대한 난이도는 2^(-256)임.
- 비트코인 네트워크는 전반부 0 비트수를 조절하여 난이도를 결정함

난이도 조정
- 작업 증명에 걸리는 시간이 평균 10분으로 유지되도록 설정
- 작업 증명에 걸리는 시간은 작업 증명에 투입되는 총 해시율에 의해 결정
- 총 해시율 = 모든 채굴자의 해시율의 총합

난이도 목표 조정
- 2016 블록마다 한번씩 새로운 난이도로 갱신되도록 설계됨
- 새로운 난이도 목표 = (지난 난이도 목표) * (직전 2016 블록 생성시간의 합 / 2016 * 10분)

블록 헤더 변경
- 난이도 목표에 적합한 해시값을 구해내기 위해 채굴자는 넌스(nonce)값을 변경함
- 그러나, 넌스를 2^32 모든 경우를 변경해도 작업 증명에 실패하는 경우가 존재할 수 있음
- 따라서, 코인베이스 데이터의 일부(8 바이트)를 넌스와 같은 용도로 활용할 수 있도록 허용

작업 증명 수단의 진화
- 단순히 해시 연산을 위한 컴퓨터 아키텍쳐가 사용

<그림 2: 비트코인 채굴 도구의 변화>

채굴 풀(Mining Pool)
- 비트코인 네트워크 참여자가 서로 합의하여 채굴에 협력하는 단체를 결성
- 채굴 풀이 채굴에 성공하면 참여자는 자신의 해시파워 기여도 만큼 인센티브를 할당받음
- 비트코인의 문제점

<그림 3: 비트코인 채굴 풀>

Reference
1. 

제7강+비트코인블록인센티브와작업증명.pdf
0.86MB

2. 박승철블록체인과비트코인제7강 비트코인작업증명과인센티브