이 무자비한 경쟁 환경에서 독립적으로 작업하는 장인 광부(솔로 광업이라고도 함)는 전혀 기회가 없다. 전력 및 하드웨어 비용을 상쇄할 블록을 찾을 가능성은 너무 작아서 복권을 사는 것처럼 도박이라고 할 수 있다. 심지어 가장 빠른 소비자 ASIC도 수만 개의 칩이 있는 상업용 광산이나 수력 발전소 근처의 거대한 서버 룸에 비교할 수 없다. 이제 광부들은 협력하여 광산 풀을 형성하고 수천 명의 참가자들의 컴퓨팅 파워를 풀링하고 보상을 공유한다. 풀에 참여함으로써 광부들은 전체 보상의 일부를 받지만 일반적으로 매일 받아 불확실성을 줄인다.
구체적인 예를 살펴보자. 광부가 총 6,000 GH/S 또는 6TH/S의 컴퓨팅 파워를 가진 장치를 구입했다고 가정해보자. 2014년 8월 기준으로 약 $10,000의 가치가 있다. 이 장치는 3 킬로와트(KW)에서 작동하며 하루에 72개의 전력을 소비하고 평균 $7 또는 $8의 비용이 든다. 비트코인의 현재 난이도로, 이 광부는 평균적으로 155일 또는 5개월에 한 번 블록을 솔로로 채굴할 수 있다. 이 광부가 이 시간 내에 블록을 채굴한다면 보상은 25 비트코인이며, 각 비트코인이 약 $600이면 $15,000의 이익을 얻을 수 있다. 이는 장비 및 전력 비용을 전체 기간 동안 상쇄하고 약 $3,000의 순이익을 남길 것이다. 그러나 5개월 동안 블록을 채굴하는지 여부는 대부분 광부의 운에 달려 있다. 그는 5개월 동안 두 개의 블록을 얻고 매우 큰 이익을 얻을 수도 있고, 한 번도 블록을 찾지 못하고 10개월 동안 재정적 손실을 입을 수도 있다. 더 나쁜 것은 비트코인의 작업 증명(POW) 알고리즘의 난이도가 그 시간에 상당히 상승할 수 있으며, 현재의 산술 성장 속도로 보면 광부는 다음 세대의 더 효율적인 광부에 의해 장비가 교체되기 전에 최대 6개월 동안 결과를 달성할 수 있다. 이 광부가 5개월에 한 번 발생할 수 있는 잠재적인 대박을 기다리는 대신 풀에 가입하면 매주 약 $500-700을 벌 수 있다. 풀로부터의 정기적인 수입은 하드웨어 및 전력 비용을 시간이 지남에 따라 분할하고 큰 위험을 감수하지 않고도 도와준다. 7~9개월 후에는 하드웨어가 여전히 구식일 것이고 위험은 여전히 높을 것이지만 그 동안의 수입은 적어도 정기적이고 신뢰할 수 있을 것이다.
광산 풀은 전용 광산 프로토콜을 통해 수백 명의 광부들을 조정한다. 개별 광부들은 풀 계정을 생성한 후 풀 서버에 연결하기 위해 광산 장치를 설정한다. 그들의 광산 장치는 광부들이 광부 서버에 연결된 채 채굴하는 동안, 다른 광부들과 각자의 작업을 동기화한다. 이렇게 하면 풀의 광부들은 채굴 작업을 공유하고 나중에 보상을 공유한다.
성공적인 블록에 대한 보상은 개별 광부가 아닌 풀의 비트코인 주소로 지급된다. 보상이 특정 임계값에 도달하면 풀 서버가 일정 기간마다 광부의 비트코인 주소로 보상을 지급한다. 일반적으로 풀 서버는 풀링 서비스를 제공하기 위해 일정 비율의 수수료를 부과한다.
광산 풀에 참여하는 광부들은 후보 블록을 찾는 작업 부하를 분할하고 기여에 따라 "공유"를 얻는다. 풀은 "공유"를 얻기 위한 난이도 목표를 설정하며, 일반적으로 비트코인 네트워크보다 1000배 이상 어려운 난이도를 가진다. 풀에서 누군가 블록을 채굴에 성공하면 풀이 보상을 받고 "공유"를 기여한 광부들에게 비례하여 나눠준다.
광산 풀은 어떤 광부든 크고 작거나 전문가든 아마추어든 참여할 수 있다. 광산 풀의 일부 참가자들은 작은 광산 장치만 가지고 있을 수 있고, 다른 사람들은 고급 광산 하드웨어로 가득 찬 차고를 가지고 있을 수 있다. 어떤 사람들은 광산을 위해 몇십 킬로와트의 전력만 사용할 수 있지만, 다른 사람들은 수백만 와트의 전력을 소비하기 위해 데이터 센터를 사용할 수 있다. 광산 풀은 각 사람의 기여를 공정하게 분배하면서 부정행위 가능성을 피하기 위해 어떻게 각 사람의 기여를 측정할 수 있을까? 답은 비트코인의 작업 증명 알고리즘을 사용하여 각 광부의 기여를 측정하면서 낮은 난이도를 설정하는 것이다. 결과적으로 풀의 가장 작은 광부들도 종종 보상의 일부를 받아 풀에 기여할 충분한 인센티브를 얻을 수 있다. "공유"를 얻기 위한 낮은 난이도를 설정함으로써 풀은 각 광부가 한 일량을 측정할 수 있다. 광부가 풀의 난이도보다 작은 블록 해시를 찾을 때마다, 그것은 결과를 찾기 위해 필요한 해시 계산을 완료했음을 증명한다. 더 중요한 것은 이 "공유" 기여를 통해 통계적으로 측정 가능한 방법으로 비트코인 네트워크의 목표 해시를 찾을 수 있다. 작은 해시 값의 작은 간격을 시도하는 수천 명의 광부는 결국 비트코인 네트워크의 목표 해시 요건을 충족하는 결과를 찾을 수 있다.
주사위 게임 비유로 돌아가보자. 만약 주사위 플레이어들의 목표가 4보다 작은 결과로 주사위를 던지는 것이라면(전체 네트워크 난이도), 광산 풀은 풀에서 8보다 작은 결과를 몇 번 던지는지 세어 더 쉬운 목표를 설정할 수 있다. 풀의 참가자들이 8보다 작은 결과를 던질 때(풀 공유 목표), 그들은 "공유"를 얻지만 게임을 이기지는 못한다. 그러나 풀의 참가자들은 더 자주 쉬운 풀 공유 목표에 도달하여 정기적으로 자신의 "공유"를 얻게 될 것이다. 하드한 게임 목표를 달성하지 못했지만 풀의 참가자들은 자주 자신의 "공유"를 얻게 되어 공정한 방법으로 플레이어들이 던진 포인트 수를 측정하고 가끔 4보다 작은 결과를 얻을 것이다.
마찬가지로, 풀은 풀 난이도를 설정하여 단일 광부가 자주 풀 난이도와 일치하는 블록 해시를 찾을 수 있도록 한다. 때때로 시도가 비트코인 네트워크의 목표와 일치하는 블록 헤더 해시를 생성하여 유효한 블록을 얻고, 그럼으로써 풀 전체가 승리한다.