ハッシュレートとは?1秒あたりのハッシュ計算の回数を表す指標

ハッシュレートとは、1秒間に何回ハッシュ計算を行えるかを表す数値です。
「ハッシュ」とは、入力されたデータを一定の計算手順で変換し、決まった長さの値へ置き換える処理、またはその結果の値を指します。変換の計算式がハッシュ関数、結果の値がハッシュ値です(ITトレンド「ハッシュ(hash)の意味とは?」)。
ハッシュレートは、このハッシュ計算を1秒間にどれだけ行えるかを示します。Bitcoin.orgの用語集は、ハッシュレートを「ビットコインネットワークの計算力の測定単位」と説明しています。同ページには、ネットワークがハッシュレート10 TH/sに達したということは、1秒あたり10兆回の計算が可能であるということだ、とも書かれています(Bitcoin.org「用語」)。
ハッシュレートとブロックチェーンの信頼性(論文の記述)

J-Stageに掲載された論文の概要には、次のように書かれています。ハッシュレートは、プルーフ・オブ・ワークに基づくブロックチェーンシステムの信頼性を評価する指標の一つです。ハッシュレートが高いほどシステムは堅牢になり、性能も高くなると一般に受け入れられていると書かれています(J-Stage「機械学習を用いたハッシュレートの予測」)。
ハッシュレートの単位の意味(TH/s・PH/s・EH/s)
Bitcoin.orgの英語版の用語集は、ネットワーク全体のハッシュレートは、テラハッシュ(TH/s)、ペタハッシュ(PH/s)、エクサハッシュ(EH/s)といった単位で表されることが多いとしています。単位の「/s」は「1秒あたり」を表します。
| 単位 | 読み方 | 1秒あたりの計算回数 |
|---|---|---|
| TH/s | テラハッシュ | 1兆回 |
| PH/s | ペタハッシュ | 1,000兆回 |
| EH/s | エクサハッシュ | 100京回 |
上の表は、Bitcoin.orgの英語版の用語集が、これらの単位を兆・千兆(quadrillion)・百京(quintillion)の回数の計算を意味すると説明していることをもとにしています。1段ごとに1,000倍になります。日本語版の用語集にも、10 TH/sは1秒あたり10兆回の計算にあたるという例があります(Bitcoin.org「用語」)。
ブロックチェーンの仕組みとハッシュ値のつながり

ビットコインのブロックチェーンは、時系列のトランザクションの公共記録です。ブロックは、待機中の多くのトランザクションを含み、それらを承認する記録で、約10分ごとにマイニングによって新しいブロックが加わります(Bitcoin.org「用語」)。
ブロックごとにハッシュ値を計算し、前のブロックの値を次のブロックへ引き継ぐ形でつなげます。過去の記録を一つでも書き換えると、以降のハッシュ値がすべて食い違い、不正がすぐに露見します(ITトレンド「ハッシュ(hash)の意味とは?」)。
マイニングとハッシュ計算
Bitcoin.orgの用語集は、ビットコインのマイニングを、ビットコインネットワークでトランザクションを承認し、安全性を高めるための数学的計算を、コンピューターハードウェアで行う処理と説明しています(Bitcoin.org「用語」)。
Bitcoin.org開発者ガイド「Block Chain」は、ビットコインのプルーフ・オブ・ワークについて、ブロックを作るときに、ブロックヘッダーのハッシュを、ある値を超えないものにすることで、一定の作業をしたことを示す仕組みだと説明しています(英語)。
Bitcoin.org開発者ガイド「Mining」によると、ソロマイニングでは、マイニングソフトウェアが80バイトのブロックヘッダーを、ターゲット値(難易度の設定)とともにマイニング用のハードウェア(ASIC)へ送ります。ハードウェアは、ブロックヘッダーのナンスのとり得るすべての値を順に試し、それぞれに対応するハッシュを計算します。ターゲット値を下回るハッシュが見つかると、成功したナンスを含むブロックヘッダーがマイニングソフトウェアへ返されます(英語)。
ビットコインの論文「Bitcoin: A Peer-to-Peer Electronic Cash System」の4章は、プルーフ・オブ・ワークを、ブロック内のナンスを増やしながら、ブロックのハッシュが必要な数のゼロビットを持つ値になるまで探す形で実装すると述べています(英語)。
採掘難易度(difficulty)とハッシュレートの関係
Bitcoin.org開発者ガイド「Block Chain」は、新しいブロックがブロックチェーンに追加されるのは、そのハッシュが、コンセンサスのプロトコルが期待する難易度の値と同じかそれ以上に難しい条件を満たしている場合だけだと説明しています。同ガイドは、ビットコインではターゲットを低くするほど、条件を満たすハッシュを見つけるまでに平均して必要な試行回数が増えると仮定しているとも説明しています(英語)。
難易度は2,016ブロックごとに調整される
同ガイドによると、ネットワークは2,016ブロックごとに、直近の2,016ブロックのうち最初と最後が生成されるまでに経過した秒数を、各ブロックヘッダーのタイムスタンプから計算します。理想値は1,209,600秒(2週間)です。
2週間より短い時間で生成された場合、期待される難易度の値は比例して引き上げられます。これは、ハッシュを同じ速さで確認した場合に、次の2,016ブロックの生成がちょうど2週間になるようにするためです。2週間より長くかかった場合は、同じ理由で比例して引き下げられます。同ガイドは、Bitcoin Coreの実装には1つずれる誤りがあり、難易度は2,016ブロックごとに更新されるものの、使われるタイムスタンプは2,015ブロック分だけなので、わずかなずれが生じるとも書いています。
論文とBitcoin Coreのコードの記述
ビットコインの論文「Bitcoin: A Peer-to-Peer Electronic Cash System」の4章は、ハードウェアの速度の向上や、ノードを動かすことへの関心の変動を補うために、プルーフ・オブ・ワークの難易度は、1時間あたりの平均ブロック数を目標にした移動平均で決まると述べています。ブロックが速く生成されすぎると、難易度が上がるとも書かれています(英語)。
ビットコインの実装であるBitcoin Coreのソースコードでは、メインネットのブロック生成間隔の目標(nPowTargetSpacing)は10分(600秒)、難易度を調整する目標期間(nPowTargetTimespan)は14日と定められています(chainparams.cpp)。調整の間隔(DifficultyAdjustmentInterval)は、この目標期間を生成間隔で割った値で、14日を10分で割ると2,016ブロックです(consensus/params.h)。pow.cppでは、実際にかかった期間を目標期間の4分の1から4倍の範囲に収めたうえで、その期間と目標期間の比をもとに新しいターゲットを計算しています(2026年10月27日確認)。
ハッシュレートの単位|H/sからEH/sまでの読み方
ハッシュレートは「1秒あたりのハッシュ計算の回数」なので、単位はH/s(ハッシュ毎秒)です。CoinPostの解説でも、ハッシュレートは1秒間あたりの処理回数(Hash/s)で表し、値が高いほど計算の処理能力が高いと説明されています(CoinPost「マイニングにおけるDifficulty(採掘難易度)とは」)。
ネットワーク全体の計算回数はとても大きな数になるため、H/sの前に「キロ」「メガ」などの接頭語を付けて表します。接頭語の大きさは国際単位系(SI)で決まっています(千葉県「国際単位系(SI)」)。
| 単位 | 読み方 | 1秒あたりの計算回数 |
|---|---|---|
| kH/s | キロハッシュ毎秒 | 1,000回(10の3乗) |
| MH/s | メガハッシュ毎秒 | 100万回(10の6乗) |
| GH/s | ギガハッシュ毎秒 | 10億回(10の9乗) |
| TH/s | テラハッシュ毎秒 | 1兆回(10の12乗) |
| PH/s | ペタハッシュ毎秒 | 1,000兆回(10の15乗) |
| EH/s | エクサハッシュ毎秒 | 100京回(10の18乗) |
たとえば「1EH/s」は「1,000PH/s」、「1PH/s」は「1,000TH/s」です。接頭語が1つ上がるごとに1,000倍になる、と覚えると読み替えやすくなります。
ハッシュレートと採掘難易度(ディフィカルティ)の関係
マイニングでは、ブロックの見出し部分(ブロックヘッダー)のハッシュ値が、決められた値(ターゲット)を超えないものを見つける必要があります。条件を満たすハッシュ値が見つかったブロックだけが、ブロックチェーンに加えられます(Bitcoin Developer Guide「Block Chain」)。
この条件をどれだけ見つけにくくするかを決めるのが採掘難易度(ディフィカルティ)です。ビットコインでは、難易度が次のように見直されます(Bitcoin Developer Guide「Block Chain」)。
- 2,016ブロックごとに、最初のブロックから最後のブロックまでにかかった時間を、各ブロックに記録された時刻から計算する
- 理想の時間は1,209,600秒(2週間)
- 2週間より早く2,016ブロックができた場合は、難易度を上げる(最大で300%の引き上げ)
- 2週間より時間がかかった場合は、難易度を下げる(最大で75%の引き下げ)
理想の2週間(1,209,600秒)を2,016ブロックで割ると、1ブロックあたり600秒=平均10分です。CoinPostも、ビットコインでは2016ブロック作成ごと(約2週間に1回)に調整が行われると説明しています(CoinPost「マイニングにおけるDifficulty(採掘難易度)とは」)。
ハッシュレートが上がると難易度が上がる理由
CoinPostは、ハッシュレートとDifficultyには相関関係があると説明しています。マイナー(ハッシュレート)が増えて計算の回数が増えると、条件に合う値が見つかりやすくなり、ブロックが10分より早くできてしまいます。そこで、ブロックを作る時間のバランスを保つために、Difficultyを上げて条件を見つけにくくする、という説明です(CoinPost「マイニングにおけるDifficulty(採掘難易度)とは」)。
反対に、2,016ブロックに2週間より長くかかったときは、難易度が下げられます(Bitcoin Developer Guide「Block Chain」)。
ハッシュレートが高いと過去の記録を書き換えにくい理由
各ブロックのヘッダーは条件を満たすハッシュ値でなければならず、さらに前のブロックとつながっています。そのため、すでにあるブロックを書き換えるには、そのブロック以降にネットワーク全体が行った計算をやり直す必要があります(Bitcoin Developer Guide「Block Chain」)。
同じガイドでは、取引の記録を確実に書き換えるには、ネットワークのハッシュ計算力の過半が必要になると説明されています(50%未満でも成功する場合があるとの注記付き)。前の章で紹介した論文の概要でも、ハッシュレートが高いほどシステムは堅牢になると一般に受け入れられている、とされています(J-Stage「機械学習を用いたハッシュレートの予測」)。
ハッシュレートの数字を見るときの注意点
- 単位をそろえて比べる:TH/sとEH/sでは100万倍の違いがあります。比べるときは、まず単位が同じかを確かめます
- プルーフ・オブ・ワークの指標:前の章で紹介した論文の概要のとおり、ハッシュレートはプルーフ・オブ・ワークに基づくブロックチェーンの信頼性を見る指標の一つです(J-Stage「機械学習を用いたハッシュレートの予測」)
- 難易度調整の決まりはビットコインのもの:この記事で紹介した2,016ブロック・2週間という見直しはビットコインの決まりです。CoinPostも、調整の仕組みはプルーフ・オブ・ワークの通貨ごとに変わると説明しています(CoinPost「マイニングにおけるDifficulty(採掘難易度)とは」)
まとめ|ハッシュレートは「計算力」、難易度は「条件の厳しさ」
- ハッシュレートは1秒あたりのハッシュ計算の回数で、単位はH/s(TH/s・EH/sなど)
- ビットコインの採掘難易度は2,016ブロック(約2週間)ごとに見直され、理想は2週間(1ブロックあたり平均10分)
- ハッシュレートが増えてブロックが早くできるようになると難易度が上げられ、2週間より時間がかかると下げられる
- 過去の記録を書き換えるには、そのブロック以降の計算をやり直す必要があり、確実に書き換えるには計算力の過半が要る
なお、ハッシュレートや難易度の数字は、仕組みを知るための指標です。特定の暗号資産の売り買いを判断する材料として紹介するものではありません。

