Proof of Work는 Bitcoin 블록을 만드는 데 비용이 들게 하면서도 검증은 쉽게 하는 방식입니다. 채굴자는 결과를 미리 예측할 수 없는 계산을 반복하며 경쟁합니다. 블록 헤더의 디지털 지문인 해시를 찾되, 그 숫자 값이 target이라는 상한 이하여야 합니다. 조건을 만족한 결과는 다른 사람도 빠르게 확인할 수 있습니다. Bitcoin 규칙을 스스로 검사하는 컴퓨터인 Full Node는 트랜잭션도 별도로 확인합니다. 작업을 증명했다는 것만으로 블록이 유효해지는 것은 아닙니다.
당첨 번호를 영리한 공식으로 미리 계산할 수 없는 추첨을 생각해 보세요. 채굴자는 후보 블록 데이터를 계속 바꾸며 해시를 계산합니다. 거의 모든 결과가 실패합니다. 숫자 값이 현재 target 이하인 해시만 블록의 Proof of Work가 될 수 있습니다. 찾기는 어렵지만 누구나 빠르게 확인할 수 있습니다. Bitcoin은 보통 의미의 유용한 계산을 증명하는 것이 아니라 특정 Block Header를 위해 비용이 드는 탐색이 이루어졌음을 공개적으로 증명합니다. [1] [2]
Block Header에는 블록의 기본 정보가 담기며, Merkle Root는 그 안의 트랜잭션을 하나로 요약한 지문입니다. Nonce는 탐색할 때 바꿀 수 있는 숫자입니다. ASIC은 특정 계산 작업을 위해 설계한 칩으로, 여기서는 SHA-256 해시 함수를 반복해서 사용합니다. 채굴자는 먼저 후보 블록을 만듭니다. 트랜잭션을 고르고, 보상이 든 Coinbase Transaction을 생성하며, Merkle Root를 계산합니다. 이 값들과 이전 블록 참조, 시간, target, nonce가 Block Header를 이룹니다. 전용 ASIC은 많은 변형에 대해 이중 SHA-256을 계산합니다. 단계적으로 답에 가까워지는 문제풀이가 아닙니다. 각 시도는 무작위처럼 보이는 새 결과이며 이전 실패는 다음 성공 여부를 말해 주지 않습니다. [3] [1]
해시는 매우 큰 숫자로 읽을 수 있습니다. 네트워크 target은 규칙이 허용하는 가장 높은 값입니다. Target이 낮을수록 가능한 해시 중 통과하는 비율이 작고 기대 시도 횟수가 많습니다. nBits는 target을 헤더에 압축해 저장합니다. Difficulty는 이 목표가 얼마나 어려운지를 상대적으로 표현할 뿐입니다. 0의 개수, 소비한 줄, 한 채굴자의 연산력 비율이 아닙니다. 블록은 금방 나오거나 오래 걸릴 수 있으며 규칙은 결과를 제한하지 실제 시도 횟수를 정하지 않습니다. [2] [1]
Block Header의 nonce는 네 바이트뿐이라 빠른 ASIC이 전체 범위를 다 써도 성공하지 못할 수 있습니다. 채굴은 한 숫자를 끝없이 늘리는 일이 아닙니다. 소프트웨어는 Coinbase Transaction의 extra nonce, 트랜잭션 선택과 순서, 다른 허용 데이터를 바꿀 수 있습니다. 그러면 Coinbase Transaction, Merkle Root, 전체 헤더가 바뀌어 새로운 후보 공간이 생깁니다. Pool은 많은 장비가 같은 변형을 시험하지 않도록 서로 다른 작업을 나눠 줍니다. [3]
해시가 target 이하라는 것은 핵심 조건 하나를 충족할 뿐 Bitcoin의 모든 규칙은 아닙니다. Full Node는 크기와 구조, 조상 관계, Coinbase Transaction, 허용 보상, 서명, 스크립트, 입력이 실제로 존재하며 아직 사용되지 않은 자금을 참조하는지도 검사합니다. 비싼 계산으로 다른 이에게 초과 bitcoin이나 이중 지출을 받아들이게 할 수 없습니다. 무효 블록은 에너지와 무관하게 무효합니다. 반대로 트랜잭션이 유효해도 Proof of Work가 부족한 후보는 현재 사슬을 연장하지 못합니다. [4] [1]
두 채굴자가 거의 동시에 같은 height에 서로 다른 유효 블록을 발표하면 잠시 두 가지가 생깁니다. 노드는 유효 후보 중 Bitcoin Core가 chainwork로 나타내는 누적 작업량이 더 큰 쪽을 따릅니다. 블록이 서로 다른 targets에서 만들어졌다면 단순 개수와 같지 않습니다. 확정 결제를 다시 쓰려면 대체 유효 기록을 만들고 정상 가지가 계속 더하는 작업량을 따라잡아 넘어야 합니다. 추가 확정은 보통 공격 비용을 높이지만 즉시 수학적 불가역성을 만들지는 않습니다. [5] [1]
Hashrate는 초당 해시 계산 시도 횟수를 나타냅니다. Target이 고정되면 전체 Hashrate 증가로 블록이 빨라지고 연산력 감소로 느려집니다. 그래서 Bitcoin mainnet은 2,016 블록 간격 뒤 target을 다시 계산해 장기 평균을 블록당 약 10분으로 돌립니다. 실제 기간을 목표인 2주와 비교하고 프로토콜 범위 안에서 조정합니다. Retarget은 BTC 가격, 이용자 수, 채굴자의 새 규칙 투표에 직접 반응하지 않습니다. 10분은 목표 평균이지 다음 블록 시간표가 아닙니다. [2]
단독 채굴자는 유효 블록을 오래 기다릴 수 있어 많은 장비가 mining pool을 이용합니다. Pool은 더 쉬운 내부 share target을 두고 제출 shares로 참여자의 기여를 추정합니다. 대다수는 더 엄격한 네트워크 target을 충족하지 못해 Blockchain에 들어가지 않습니다. 결과가 네트워크 target도 만족하면 pool이 완전한 후보 블록을 전파합니다. 수용 여부는 pool이나 Hashrate 크기가 아니라 각 노드의 독립 검증이 결정합니다. [3]
실제 장비는 탐색 중 전력을 쓰고 열을 냅니다. Bitcoin은 블록에 에너지 영수증을 저장하지 않습니다. 당첨 해시로 정확한 시도 수, 전력량, 전원, 위치를 알 수 없습니다. 새 시도에 현실 비용이 있으므로 Proof of Work는 기록을 경제적으로 방어하지만 소비 증가만으로 완벽한 보안이나 더 깨끗한 운영이 되지는 않습니다. 보안은 검증, Hashrate 분포, 위협을 함께 보고, 에너지 영향은 전력원, 시간, 효율, 대체 용도를 따져야 합니다. [1] [2]
Full Node는 각 블록의 이전 해시, nBits, 계산된 target, 헤더 해시를 독립적으로 확인합니다. 데이터로 height, difficulty, chainwork를 비교할 수 있지만 당첨 해시만으로 신원이나 정확한 에너지는 알 수 없습니다. ‘여섯 번 확정 후 안전’이라는 말에는 금액, 상대 능력, 작업량 분포, 기다릴 수 있는 시간의 맥락이 필요합니다. Proof of Work는 홍보 문구나 규칙에 대한 채굴자 투표가 아니라 유효 기록 선택에 쓰이는 명확하고 쉽게 확인되는 입력입니다. [2] [3] [5]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 채굴, Difficulty Adjustment, Timechain / Blockchain, Full Node, Block Subsidy. 다음 항목에서도 이 글을 참조합니다 Bitcoin, Satoshi Nakamoto, Bitcoin Whitepaper, Timechain / Blockchain.