ASIC은 하드웨어의 특화를 뜻하며 합의를 지배하는 권한을 뜻하지 않습니다. 칩은 후보 블록의 80바이트 헤더에 double-SHA-256을 반복 적용하고 지정된 target을 충족하는 결과를 보고합니다. 전체 채굴 장비에는 컨트롤러, 전원, 클럭, 냉각, 펌웨어와 block template 또는 풀 작업의 공급원도 필요합니다. Hashrate는 초당 시도 횟수, J/TH는 테라해시당 에너지를 나타냅니다. 어느 것도 수익이나 Bitcoin 규칙을 바꿀 권리를 보장하지 않습니다.
ASIC은 범용 명령어 논리 대신 특정 작업을 실리콘에 직접 구현합니다. 따라서 채굴은 역사적으로 CPU와 GPU에서 FPGA를 거쳐 SHA-256 ASIC으로 발전했습니다. 고정된 데이터 경로로 1줄당 훨씬 많은 해시를 계산할 수 있기 때문입니다. 그 대가는 유연성의 부족입니다. SHA-256 채굴 ASIC은 작업이 바뀌면 쉽게 재프로그래밍할 수 있는 범용 컴퓨터가 아닙니다. [Bitcoin Developer Guide — Mining] [Bitaxe — open-source ASIC miner hardware]
Bitcoin의 proof of work는 직렬화된 80바이트 헤더로부터 SHA-256(SHA-256(header))을 계산합니다. 헤더에는 version, 이전 블록의 해시, Merkle root, timestamp, nBits와 32비트 nonce가 들어갑니다. 칩은 변하지 않는 부분의 중간 결과를 재사용할 수 있지만, 네트워크는 최종 해시와 target의 관계(hash ≤ target)만 평가하며 채굴기의 내부 최적화 방식은 평가하지 않습니다. [Bitcoin Developer Guide — Mining] [Bitcoin Core v29.0 — CheckProofOfWorkImpl]
32비트 nonce의 값은 2^32개뿐이므로 현대의 hashrate로는 매우 빠르게 모두 탐색합니다. 따라서 채굴 시스템은 다른 변수도 바꿉니다. coinbase의 extranonce를 바꾸면 coinbase 트랜잭션과 Merkle root가 바뀝니다. nTime은 합의 제한 안에서 변경할 수 있으며 BIP320 제안은 version bits를 일반 용도로 예약합니다. Stratum V2는 장치별로 중복되지 않는 탐색 공간을 배정하여 같은 후보를 반복 계산하지 않게 합니다. [BIP 320 — nVersion bits for general purpose use] [Stratum V2 — Mining Protocol specification]
ASIC 자체는 트랜잭션을 선택하거나 규칙을 고안하지 않습니다. 풀 노드 또는 템플릿 제공자는 후보 블록을 구축합니다. BIP22는 getblocktemplate을 표준화하고 BIP23은 풀 채굴 확장을 표준화합니다. 풀 또는 프록시는 장치에 대한 대상 및 변수를 사용하여 작업을 준비합니다. Stratum V2는 Mining Protocol, Job Declaration, Template Distribution을 분리하여 Job 분배와 트랜잭션 선택이 별도의 역할을 할 수 있도록 합니다. [BIP 22 — getblocktemplate fundamentals] [BIP 23 — getblocktemplate pooled mining] [Stratum V2 — Protocol overview] [Bitcoin Core — getblocktemplate RPC]
풀은 보통 Bitcoin 네트워크의 target보다 훨씬 쉽게 충족할 수 있는 share target을 설정합니다. 풀의 target을 충족하는 share는 보상 정산을 위해 수행한 작업의 통계적 증거가 됩니다. 훨씬 드물게 network target까지 충족하는 해시만 유효한 블록의 후보입니다. 따라서 풀 난이도는 share의 빈도를 바꾸며 합의 난이도나 장비의 물리적 hashrate를 바꾸지 않습니다. [Bitcoin Developer Guide — Mining]
Hashrate는 초당 해시 계산 횟수입니다. 소비 전력은 와트로 측정하며 에너지 효율은 보통 J/TH, 즉 W를 TH/s로 나눈 값으로 나타냅니다. J/TH가 낮으면 같은 탐색량에 필요한 전기 에너지가 적습니다. 하지만 수익은 네트워크 난이도, BTC 가격, 수수료, 가동 시간, 전기, 냉각, 자금 조달, 하드웨어 감가상각에도 좌우됩니다. [Braiins OS — Autotuning] [Bitaxe — open-source ASIC miner hardware]
같은 종류의 칩도 전기적 특성이 완전히 같지는 않습니다. 제조 편차가 누설 전류, 타이밍과 필요한 전압 여유를 바꿉니다. 따라서 펌웨어는 주파수와 코어 전압을 조절할 수 있습니다. 언더클럭은 흔히 J/TH를 낮춰 효율을 개선하지만, 오버클럭은 hashrate를 높이는 대신 전력과 발열이 더 큰 비율로 증가할 수 있습니다. 자동 튜닝은 개별 칩이나 hashboard에 적합한 동작점을 찾습니다. [Braiins OS — Autotuning]
채굴 장비에는 ASIC 외의 구성 요소도 필요합니다. 전원 공급 장치, DC-DC 조절, 커넥터, hashboards, 팬이나 액체 냉각 회로, 컨트롤러가 전체 성능을 제한합니다. 높은 온도, 먼지, 고장 난 팬, 불안정한 전압이나 지나친 클럭 주파수는 하드웨어 오류와 정지 위험을 높입니다. 따라서 칩 자체의 효율은 콘센트 입력 전력으로 측정한 전체 장비의 효율과 같지 않습니다. [Braiins OS — Autotuning] [Bitaxe — open-source ASIC miner hardware]
ASIC은 경쟁력 있는 채굴에 필요한 자본과 기술의 진입 장벽을 높이고 구매, 에너지, 수리, 인프라에서 규모의 경제를 만듭니다. 제조사나 hashrate가 집중될 수 있지만, 그것이 곧 합의를 지배할 권한을 뜻하지는 않습니다. 칩 생산, 풀, 물리적 설치 장소와 실제 hashrate 소유자의 집중은 구분해야 합니다. [Bitcoin Developer Guide — Mining]
ASIC은 후보 헤더를 탐색하고 상위 소프트웨어가 제공한 특정 작업을 수행할 수 있습니다. 유효하지 않은 블록을 유효하게 만들거나, 발행 한도를 바꾸거나, 타인의 코인을 사용하거나, full node에 다른 규칙을 강요할 수는 없습니다. 운영자는 펌웨어, 풀 엔드포인트, 풀 측 hashrate, 거부된 shares, 콘센트 소비 전력, 온도와 자신의 block template 정책을 확인해야 합니다. [Bitcoin Developer Guide — Mining] [Bitcoin Core — getblocktemplate RPC] [Bitcoin Core v29.0 — CheckProofOfWorkImpl]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 비트코인 채굴, Hashrate, SHA-256, 블록 헤더, Nonce, Extranonce. 다음 항목에서도 이 글을 참조합니다 Mining Pool, Hashrate, Nonce, Braiins.