Bitcoinでは、コンセンサスメカニズムに参加するためには暗号パズルを解くことが必要とされる。このパズルを解いたマイナーはリーダーになりブロックを生成することができる。
PoW難易度(Difficulty)は10分になるようにおよそ2週間ごとに変動するため、コストの影響を回避するために、ソロマイナーは供託してマイニングプールを形成し、貢献度に基づいて報酬を分配することが最適戦略とされている。つまりマイニングプールとは、Bitcoinブロック生成作業を複数のノードで分担する分散コンピューティングといえる。
現在、ソロマイナーに生成されたブロック割合はほぼ無視できるほどに減少した。一方、Bitcoinのマイニングプールでは、BTC.com, ViaBTC, AntPoolが過半数のハッシュレートを占めている。マイニングプール間による競争激化により、サービス妨害攻撃、Block withholding、スパイマイニングなどのいくつかの攻撃も考えられた。
マイニングプールにおける貢献度を可視化するために、まずマイニングプールオペレータがネクストブロックのためのテンプレートをマイナーに配布し、PoWソリューションを提出させる。その部分的ソリューションを「シェア」としてマイナーの貢献度の尺度に用いる。
マイナーの貢献度を計測するために、プール管理者は簡単なパズルを解かせる。このパズルの解をpartial solutionという。マイナーがpartial solutionを提出すると、自分のシェアを入手できる。
計算タスク分配は以下のステップで行われる。
基本的に、一度partial solutionを提出したら終わりでなく、別範囲のnonceに設定された計算が新たに依頼され、同様に計算を繰り返す。
マイナーのシェアに基づいて報酬を分配するが、シェアの計算アルゴリズムにはいくつかの種類が挙げられる。このアルゴリズムの調整により、ゲーム理論的にマイナーがpartial solutionを早期かつ継続的に提出する傾向にあるか決まる。