47 / 736ASIC

ASIC Miner

비트코인 채굴 전용 장비

ASIC Miner는 새로운 블록을 찾으려고 엄청난 횟수의 계산을 수행합니다. 성능 수치가 무엇을 뜻하는지, 왜 전력을 쓰는지, 전원을 켠다고 수입이 보장되지는 않는 이유를 설명합니다.

ASIC Miner는 비트코인 채굴용으로 설계한 칩을 사용하는 장비입니다. 후보 블록의 주요 정보를 요약한 헤더의 숫자 지문을 반복 계산해 채굴 규칙을 만족하는 결과를 찾습니다. 성능이 높다는 것은 초당 시도 횟수가 많다는 뜻이지 보상이 확실하다는 뜻은 아닙니다. 전원, 냉각, 제어 소프트웨어, 채굴 작업을 공급할 곳도 필요합니다.

Mining: 운영 결과 모델입력한 해시레이트, 소비전력, 풀 수수료로 예상 블록 보조금 몫과 전기요금을 비교합니다.

안나는 컴퓨터 옆의 작은 채굴기를 보고 자기 노트북도 같은 일을 할 수 있는지 궁금해합니다. 일반 컴퓨터도 필요한 계산을 할 수 있습니다. 하지만 ASIC은 그 계산만을 위해 설계되므로 같은 에너지로 보통 훨씬 많은 시도를 합니다. ASIC은 Application-Specific Integrated Circuit, 즉 특정 용도의 집적 회로를 뜻합니다. 일상에서는 이런 칩을 넣은 채굴기 전체도 ASIC이라고 부릅니다. 비트코인 채굴기는 SHA-256으로 적절한 숫자 지문, 즉 해시를 찾습니다. 정답을 미리 알아내는 것이 아니라 입력을 바꾸고 다시 시도합니다. 이런 전문화로 일반 CPU, 그래픽 처리 장치 GPU, 프로그래밍 가능한 FPGA 회로는 경쟁력 있는 채굴에서 점차 밀려났습니다. 그렇다고 SHA-256 채굴 칩을 쉽게 범용 컴퓨터로 바꿀 수 있는 것도 아닙니다. [6] [8]

성능이 100 TH/s이고 소비 전력이 3,000 W인 채굴기를 가정해 봅시다. 특정 제품 사양이 아닌 설명용 숫자입니다. TH/s는 초당 몇 조 번의 해시 계산을 하는지를 나타내므로 이 장비는 매초 100조 번 시도합니다. 이 속도를 Hashrate라고 합니다. 반면 전력량계는 에너지를 기록합니다. 일정하게 3 kW를 사용하면 24시간에 72 kWh를 소비합니다. 여기에 kWh당 가격을 곱해야 전기 요금이 나옵니다. 비교에 쓰는 또 다른 단위는 J/TH로, 1조 번의 시도에 드는 에너지를 줄(J)로 표시합니다. 예에서는 3,000 / 100 = 30 J/TH입니다. 낮을수록 같은 작업에 에너지가 덜 듭니다. 다만 측정 방법과 설정이 같아야 합니다. 칩만의 효율 수치를 콘센트에서 측정한 장비 전체 소비량과 그대로 비교할 수는 없습니다. [7] [8]

채굴기가 소비한 에너지는 거의 모두 결국 열이 됩니다. 그래서 안나는 설치 장소를 고를 때 열 배출과, 설계에 따라 팬 소음까지 고려해야 합니다. 작은 가정용 채굴기와 산업용 장비의 요구 조건은 크게 다를 수 있습니다. ASIC이라는 이름만으로 크기나 소비 전력을 알 수는 없습니다. 안에는 칩 외에도 전원 장치, 전압 조절기, 제어 장치, 채굴 칩을 올린 기판인 hashboards가 있습니다. 팬이나 수랭 장치가 열을 빼냅니다. 먼지, 팬 고장, 부적절한 전원, 무리한 설정은 계산 오류와 정지를 일으킬 수 있습니다. 따라서 제조사 광고의 가장 큰 숫자보다 전체 운전 상태를 살펴보는 편이 유용합니다. [7] [8]

Mining Pool에 연결하면 안나의 채굴기는 채굴자들을 조정하는 서비스에서 작업을 받습니다. 풀은 별도 소프트웨어와 운영자가 있는 서비스이지 칩의 일부가 아닙니다. 단독 채굴이라면 안나가 필요한 기반을 마련해야 합니다. 장비 제어 소프트웨어인 firmware가 칩에 작업을 전달하고 결과를 보냅니다. 먼저 누군가 거래를 모아 Block Template이라는 블록 후보를 구성해야 합니다. Full Node나 다른 템플릿 공급자가 이를 제공합니다. Full Node는 비트코인 규칙에 따라 블록과 거래를 독립적으로 검증하는 프로그램입니다. BIP22는 getblocktemplate 인터페이스를, BIP23은 풀용 확장을 설명합니다. Stratum V2는 작업을 나누는 Mining Protocol, 자체 작업을 제안하는 Job Declaration, 템플릿을 공급하는 Template Distribution을 구분합니다. 채굴자가 거래를 고를 수 있는지는 구성과 해당 기능의 지원 여부에 달려 있습니다. 칩 자체가 거래를 고르지는 않습니다. [1] [2] [4] [5] [9]

안나는 풀 화면에서 승인된 shares를 봅니다. 그렇다고 장비가 비트코인 블록을 찾은 것은 아닙니다. Share는 풀이 정한 더 쉬운 조건을 만족하는 결과로, 수행한 작업을 통계적으로 보여 줍니다. 풀은 자체 지급 규칙에 따라 이 작업을 계산에 반영합니다. Share는 또 다른 코인도, 자동으로 블록의 일부가 되는 것도 아닙니다. 훨씬 드문 결과만 비트코인 네트워크의 더 어려운 조건까지 만족합니다. 그 결과로 블록을 제출할 수 있지만 나머지 모든 검증도 통과해야 합니다. Share 난이도를 바꾸면 풀로 결과를 보내는 빈도가 변합니다. 그것만으로 실제 장비 성능이 높아지거나 네트워크 채굴 난이도가 바뀌지는 않습니다. [4] [6]

찾아낸 결과는 네트워크에 대한 제안이지 다른 참여자에게 내리는 명령이 아닙니다. Full Node는 비트코인 규칙을 스스로 검사하며, 매우 강력한 채굴자가 보낸 블록도 무효라면 거부합니다. ASIC으로 허용 한도 이상의 보상을 만들거나, 권한 없이 남의 코인을 쓰거나, 노드에 다른 규칙을 강요할 수는 없습니다. 운영자는 여전히 중요한 선택을 합니다. 사용할 firmware와 풀, 그리고 지원되는 환경에서는 블록에 포함할 거래도 고릅니다. 장비 표시 성능을 풀의 장기간 추정치와 비교하고, 거부된 shares, 온도, 실제 소비 전력을 살펴볼 수 있습니다. 풀 추정치의 짧은 변동만으로 고장이라고 단정할 수는 없습니다. [5] [10]

똑같은 채굴기 두 대도 경제적 결과는 다를 수 있습니다. 하나는 냉각이 잘되고 전기가 저렴하지만 다른 하나는 자주 멈추고 비싼 전기를 쓸 수 있습니다. 구매 비용, 감가상각, 풀 수수료, 비트코인 가격, 네트워크 난이도, 채굴한 블록의 거래 수수료도 영향을 줍니다. 기술적 효율이 투자금 회수를 약속하지는 않습니다. 전문화는 칩 제조와 대규모 채굴 시설 운영에 필요한 조건도 높였습니다. 집중도를 이야기할 때는 칩 제조사, 장비 소유자, 실제 설치 장소, 풀을 구분해야 합니다. 어느 풀의 비중이 크다고 연결된 모든 장비가 같은 회사 소유라는 뜻은 아닙니다. [6] [8]

주파수는 칩의 작업 속도를 정하고 전압은 계산의 안정성을 돕습니다. 제조 과정에서 작은 전기적 차이가 생기므로 같은 종류의 칩도 서로 다른 설정이 필요할 수 있습니다. Firmware가 칩이나 기판별로 적절한 설정을 찾는 과정을 Autotuning이라고 합니다. 주파수를 낮추고 전압을 알맞게 조정하면 전체 Hashrate는 줄어도 J/TH가 개선될 수 있습니다. 반대로 오버클록은 성능을 높이면서 그보다 더 큰 비율로 전력과 열을 증가시킬 수 있습니다. 결과는 장비, 냉각, 설정에 달려 있습니다. 달성 가능한 최고 성능이 장기 운전에 가장 합리적인 설정은 아닐 수 있습니다. [7]

계산의 출발점은 블록의 기본 정보를 담은 80바이트 블록 헤더입니다. 여기에는 버전, 이전 블록 해시, 거래를 요약하는 Merkle Root, 시간 값, 인코딩된 난이도 목표 nBits, 32비트 Nonce 필드가 있습니다. SHA-256(SHA-256(header))는 SHA-256을 두 번 적용한다는 뜻이며 header는 이 헤더를 가리킵니다. 결과 해시는 숫자로 해석합니다. 필요한 작업 증명을 만족하려면 목표보다 크지 않아야 합니다. 즉 hash ≤ target입니다. 칩은 바뀌지 않는 입력 부분의 중간 결과를 재사용해 계산을 빠르게 할 수 있습니다. 하지만 노드는 결과와 올바른 목표를 검사하지 제조사의 회로 배치를 검사하지는 않습니다. 블록의 나머지 유효성 규칙도 여전히 만족해야 합니다. [6] [10]

Nonce에는 2^32개의 값이 있습니다. 빠른 채굴기는 금방 모두 시도하므로 다른 데이터도 바꿔야 합니다. Extranonce는 블록 보상을 담는 특별한 첫 거래인 Coinbase Transaction의 보조 값입니다. 이를 바꾸면 거래와 Merkle Root가 바뀌어 다음 계산의 입력도 달라집니다. 허용 범위 안에서 시간 필드 nTime을 바꾸거나 적절한 버전 비트를 사용할 수도 있습니다. BIP320 제안은 일부 비트를 일반 용도로 예약하는 방법을 설명하지만 네트워크 규칙을 무시할 권한을 주지는 않습니다. Stratum V2는 장비들이 같은 후보를 중복 계산하느라 낭비하지 않도록 작업을 나누도록 요구합니다. 이 기술의 목적은 칩에 새로운 시도를 공급하는 것이지 블록당 보상을 늘리는 것이 아닙니다. 새로운 제안인 BIP323은 BIP320을 대체하고 이 용도로 버전 비트 24개를 예약하려고 합니다. 현재 Stratum V2 명세는 이미 BIP323을 참조합니다. 하지만 BIP323의 상태는 여전히 Draft, 즉 초안입니다. 제안을 공개하는 것만으로 비트코인 규칙이 바뀌지는 않습니다. [3] [4] [11]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 채굴, Hashrate, SHA-256, Block Header, Nonce, Extranonce. 다음 항목에서도 이 글을 참조합니다 Mining Pool, Hashrate, Nonce, Braiins.

DOC · 001BIP 22 — getblocktemplate fundamentals명세 DOC · 002BIP 23 — getblocktemplate pooled mining명세 DOC · 003BIP 320 — nVersion bits for general purpose use명세 DOC · 004Stratum V2 — Mining Protocol specification명세 DOC · 005Stratum V2 — Protocol overview명세 DOC · 006Bitcoin Developer Guide — Mining문서 DOC · 007Braiins OS — Autotuning문서 DOC · 008Bitaxe — open-source ASIC miner hardware1차 출처 DOC · 009Bitcoin Core — getblocktemplate RPC문서 DOC · 010Bitcoin Core v29.0 — CheckProofOfWorkImpl1차 출처 DOC · 011BIP 323 — 24 nVersion bits for general purpose use문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다