0Pricing
Cryptology Academy · 강의

작업 증명: 채굴과 난이도 조정

PoW 채굴기를 구현하고 논스 탐색과 목표 난이도를 이해합니다.

작업 증명: 채굴과 난이도 조정은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

작업 증명이란 무엇인가

작업 증명(PoW)은 블록 생성자가 블록을 추가하기 위해 계산 비용이 큰 작업을 수행하도록 요구합니다. 이를 통해 스팸을 억제하고 체인을 다시 작성하는 비용을 높입니다. 증명 검증은 저렴하며 해시 하나만 계산하면 됩니다. 작업에는 많은 해시 계산이 필요합니다.

채굴 과제

Bitcoin PoW에서는 SHA256d(block_header) < target을 만족하는 논스를 찾습니다. target은 256비트 숫자입니다. target이 작을수록 해시 출력의 앞부분에 더 많은 0이 필요하므로 유효한 논스를 찾기가 더 어렵고 드뭅니다.

Python PoW 데모

import hashlib def mine(data, difficulty): target = "0"*difficulty nonce = 0 while True: h = hashlib.sha256(f"{data}{nonce}".encode()).hexdigest() if h.startswith(target): return nonce, h nonce += 1 nonce, h = mine("block data", 4) print(nonce, h) # hash starts with "0000"

난이도 target

Bitcoin 블록 헤더에는 현재 target을 인코딩하는 "bits" 필드가 있습니다. Target = coefficient * 256^(exponent-3)입니다. 예: bits=0x1703a30c → target = 0x03a30c * 2^(8*(0x17-3))이며, 앞쪽 0 비트가 약 72개 필요한 256비트 숫자입니다.

난이도 조정

Bitcoin은 2016개 블록마다(약 2주마다) 난이도를 조정합니다. Target 조정: new_target = old_target * (actual_time / 2016 * 10 minutes)입니다. 블록이 평균 10분보다 빠르게 생성되면 target이 감소하여 더 어려워집니다. 느리게 생성되면 target이 증가하여 더 쉬워집니다. 이를 통해 블록 생성 간격을 약 10분으로 유지합니다.

해시율과 보안

네트워크 해시율(H/s)은 전체 채굴 성능을 측정합니다. 해시율이 높을수록 단위 시간 안에 우연히 유효한 논스를 찾을 확률이 낮아집니다. k개의 블록을 다시 작성하려면 공격자가 k*10분에 비례하는 시간 동안 네트워크 해시율의 50%를 초과하는 성능을 유지해야 합니다.

51% 공격

해시율이 50%를 초과하면 공격자는 다음을 수행할 수 있습니다: (1) 비밀 분기 체인을 채굴하기, (2) 거래를 포함하거나 제외하기, (3) 결제가 확인된 후 더 긴 체인을 공개해 이중 지불하기. 다음은 수행할 수 없습니다: 다른 사람의 코인을 훔치기, 아무것도 없는 상태에서 코인을 만들기, 체인 깊은 곳의 거래를 되돌리기.

ASIC 채굴과 중앙화

Bitcoin의 SHA256d 채굴은 ASIC(Application-Specific Integrated Circuits), 즉 단일 해시 함수에 최적화된 칩이 지배합니다. ASIC은 CPU보다 10^6배 효율적입니다. 이로 인해 채굴이 대규모 데이터 센터에 집중되어 중앙화 우려가 커집니다.

메모리 집약형 PoW

Ethereum은 Ethash(현재는 사용 중단됨)를 사용했는데, 이는 대규모 DAG 데이터 세트를 요구하는 메모리 집약형 PoW였습니다. 메모리 집약성은 ASIC에 대한 저항성을 높입니다(메모리 대역폭은 저렴하게 최적화하기 어렵기 때문입니다). Monero는 CPU에 최적화되고 ASIC에 강한 RandomX를 사용합니다. Zcash는 메모리 집약형 Equihash를 사용합니다.

이기적 채굴

이기적 채굴 전략은 발견한 블록을 공개하지 않고 두 번째 블록을 채굴한 다음 두 블록을 동시에 공개하는 방식입니다. 타이밍을 정확히 맞추면 정직한 채굴자들이 고아 블록에 작업을 낭비하게 만들 수 있습니다. 평균적으로 수익을 내려면 51%가 아니라 약 33%의 해시율이 필요합니다.

지분 증명 대안

지분 증명(PoS, Merge 이후 Ethereum에서 사용)은 해시 작업을 스테이킹된 암호화폐로 대체합니다. 검증자는 보유 지분에 비례해 블록을 제안하도록 선택됩니다. PoS는 PoW보다 에너지를 99.95% 적게 사용합니다. 장단점은 신뢰 가정과 공격 경제성이 서로 다르다는 것입니다.

빠른 확인

Bitcoin의 난이도 조정은 무엇을 유지하려고 합니까?

복습

PoW에서는 SHA256d(header) < target을 만족하는 논스를 찾아야 합니다. 난이도는 2016개 블록마다 조정됩니다. 해시율이 51%를 넘으면 이중 지불 공격이 가능해집니다. ASIC이 Bitcoin 채굴을 지배하며, 메모리 집약형 함수는 ASIC에 저항합니다. 다음 주제: Bitcoin Script와 UTXO 서명입니다.

자주 묻는 질문

“작업 증명: 채굴과 난이도 조정” 강의는 무료인가요?

네 — “작업 증명: 채굴과 난이도 조정” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“작업 증명: 채굴과 난이도 조정”에서 뭘 배우나요?

PoW 채굴기를 구현하고 논스 탐색과 목표 난이도를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“작업 증명: 채굴과 난이도 조정” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 해시 체인과 블록 연결
  2. Merkle 트리: 대규모 트랜잭션 무결성
  3. 작업 증명: 채굴과 난이도 조정
  4. Bitcoin Script와 UTXO 서명 검증
← Cryptology Academy(으)로 돌아가기