PoW출처에 근거한 답변

Bitcoin의 Proof of Work는 어떻게 작동할까?

채굴자는 왜 전기를 쓰고 다른 참여자는 그 작업을 어떻게 검증할까요? 연산 능력만으로 Bitcoin 규칙을 바꿀 수 없는 이유도 설명합니다.

Proof of Work는 네트워크가 유효한 거래의 순서를 정하는 데 도움을 줍니다. 채굴자는 거래 묶음인 새 블록에 맞는 계산 결과를 찾기 위해 경쟁합니다. 찾는 데는 전기와 시간이 들지만 확인은 쉽습니다. 따라서 과거 기록을 바꾸려면 작업을 다시 수행하고, 그동안 네트워크가 계속 늘린 체인을 따라잡아야 합니다.

01

채굴은 탐색이며 유용한 방정식을 푸는 일이 아니다

한 번 시도할 때마다 에너지가 조금 드는 추첨을 생각해 보세요. 채굴자는 블록 정보를 간략하게 담은 블록 헤더에 SHA-256을 두 번 적용해 숫자 지문인 hash를 계산합니다. 결과를 확실히 예측할 수는 없습니다. 그래서 헤더의 보조 숫자인 Nonce와 다른 데이터를 바꿔 다시 시도합니다. Hash가 목표값 이하이면 성공입니다. 다른 참여자는 같은 계산을 반복해 결과를 검증합니다.

02

난이도가 대략적인 속도를 유지한다

채굴 연산 능력이 늘면 일시적으로 블록이 더 빨리 나올 수 있습니다. 그래서 2,016블록마다 직전 기간에 걸린 시간을 바탕으로 목표값을 조정합니다. 목표는 블록당 평균 약 십 분이지 정확한 시간표가 아닙니다. 개별 블록은 훨씬 빨리 나오거나 오래 걸릴 수 있습니다. 목표값이 낮을수록 허용되는 결과가 적어져 난이도가 높아집니다.

03

작업은 유효한 이력의 순서를 정하고 노드는 유효성을 지킨다

최근 블록의 서로 경쟁하는 버전이 생길 때가 있습니다. Bitcoin 규칙을 독립적으로 검사하는 프로그램인 Full Node는 유효한 가지 중 누적 작업량이 가장 큰 것을 선택합니다. 블록 수만으로는 충분하지 않습니다. 막대한 연산 능력이 뒷받침해도 규칙을 어긴 가지는 거부합니다. 채굴자는 그 힘으로 코인을 더 만들거나 필요한 서명 없이 남의 비트코인을 쓸 수 없습니다.

80바이트블록 헤더의 데이터
SHA-256²헤더 해싱
2,016조정 사이의 블록 수
약 10분목표 평균 간격
01

해시는 알려진 지름길이 없는 추첨권

80바이트 헤더는 이전 블록, 거래의 머클 루트, 시간, 목표값, Nonce에 연결됩니다. 이중 SHA-256은 각 후보를 예측할 수 없는 256비트 숫자로 바꿉니다. 채굴자는 Nonce, coinbase의 extra Nonce 또는 거래 순서를 바꾸고 다시 시도합니다. 실용적인 전략은 엄청난 횟수의 반복입니다.

02

목표값과 난이도는 같은 장벽을 나타낸다

헤더 해시의 수치가 현재 목표값 이하이면 블록은 이 검사를 통과합니다. 목표값이 낮으면 당첨 해시가 줄고 기대 작업량은 늘어납니다. 난이도는 Bitcoin에서 허용하는 가장 쉬운 목표값을 기준으로 이 장벽을 표현하며, Hashrate는 초당 시도 횟수를 추정합니다.

03

난이도 조정은 발행과 기계 수를 분리한다

노드는 2,016블록마다 이전 기간의 타임스탬프로 목표값을 다시 계산하며, 변경 폭에는 정해진 한계가 있습니다. 채굴자가 늘면 블록이 일시적으로 빨라지지만 다음 조정에서 난이도가 올라갑니다. 10분은 장기 목표이지 각 블록의 시간표가 아닙니다.

04

누적 작업량이 경쟁하는 유효한 이력을 가른다

노드는 잠시 두 개의 유효한 체인 끝을 볼 수 있습니다. 단순히 블록이 더 많은 체인이 아니라 누적 작업량이 가장 큰 유효한 체인을 따릅니다. 오래된 이력을 바꾸려면 그 작업을 다시 수행한 뒤 계속 성장하는 네트워크를 추월해야 하므로, 더 깊은 확인을 뒤집는 비용은 점점 커집니다.

05

다수 공격은 강력하지만 전능하지 않다

지속해서 우세한 Hashrate는 최근 블록을 재구성하거나 거래를 검열하거나 공격자 자신의 최근 지급을 이중 지불할 수 있습니다. 다른 사용자의 서명을 위조하거나 임의의 UTXO를 쓰거나 허용된 블록 발행 보조금을 높이거나 검증 노드가 무효 블록을 받아들이게 할 수는 없습니다.

06

에너지는 보안의 대가이자 실제 상충 관계다

Proof of Work는 전력, 하드웨어, 가동 시간을 외부에서도 비용이 드는 신호로 바꿉니다. 이력 변경을 비싸게 만들지만 에너지 소비와 지역에 미치는 영향은 실제 비용입니다. 의미 있는 평가는 총소비량, 에너지원, 전력망 영향, 얻는 보안을 구분합니다. 전체 소비량을 하루 거래 수로 나누면 전체 원장 이력을 계속 보호하는 시스템의 성격을 왜곡합니다.

Proof of Work는 모든 거래가 정직하거나 합법적임을 증명하지 않습니다. 후보 이력에 계산이 투입됐음을 보여 줄 뿐이며, 그 이력이 프로토콜을 따르는지는 완전한 검증을 거쳐야 판단할 수 있습니다.

01채굴은 유용한 과학 문제를 푸는가?

직접적인 산출물은 특정 블록 헤더에 묶인, 쉽게 검증할 수 있는 증거입니다. 작업을 다른 과제에 자유롭게 재사용하면 이 결합이 약해지거나 지름길이 생길 수 있습니다.

02Hashrate가 높아지면 bitcoin이 더 만들어지는가?

난이도 조정 사이에 일시적으로 블록이 더 빨리 도착할 수 있을 뿐입니다. 난이도를 다시 계산하면 장기 발행 속도는 일정으로 돌아갑니다.

03가장 긴 체인이 항상 옳은가?

노드는 먼저 모든 블록의 유효성을 요구한 다음 누적 작업량을 비교합니다. 무효 체인은 주장하는 길이와 관계없이 거부합니다.

04Hashrate의 51%로 모든 코인을 훔칠 수 있는가?

아닙니다. 순서와 최근 결제를 공격할 수는 있지만 통제하지 않는 키의 유효한 서명을 만들 수는 없습니다.

PoWProof of Work프로토콜 HASH채굴네트워크 2016Difficulty Adjustment프로토콜 HDRBlock Header프로토콜 H/sHashrate네트워크 NODEFull Node네트워크