ビットコイン - BTC

ビットコインのハッシュ関数SHA-256とは?改ざんできない理由を解説

本記事にはアフィリエイト広告(PR)を含む場合があります。

ブロックチェーンが改ざんに強いのは、データを暗号で隠しているからではありません。核心にあるのは、どんなデータでも一方向にしか変換できない関数で「指紋」を取り、その指紋を鎖のようにつないでいる構造です。ビットコインでその指紋を作っているのが、SHA-256と呼ばれるハッシュ関数です。

この記事では、SHA-256がどんな性質を持つ関数なのか、なぜ逆算できないのか、そしてその性質がどうやって「過去の取引を書き換えられない」という結果を生むのかを、順を追って説明します。読み終えるころには、ニュースで「ブロックチェーンは改ざんできない」と聞いたときに、それが何を根拠にした言葉なのかを自分で判断できるようになるはずです。

解説にあたっては、ビットコインの原論文と公開されている仕様に記述されている範囲の内容を突き合わせて整理しました。数式は使いません。順に見ていきましょう。

国内で暗号資産を買うなら、まず口座が要ります

日本円の入出金に対応した国内の登録業者なら、送金や積立まで一つの口座で完結します。口座開設と維持の費用はかからず、取扱銘柄や手数料体系は公式サイトで確認できます。

GMOコインの口座開設ページを見る →PR・GMOコイン(GMOコイン株式会社)。手数料や取扱銘柄は変更されることがあるため、最新の内容は公式サイトでご確認ください。暗号資産は価格変動が大きく、投資判断はご自身の責任でお願いします。

SHA-256とは「データを64文字の指紋に変える関数」

SHA-256は、どんなデータを入れても常に256ビット、16進数で表すと64文字の固定長の値を出力する計算手順です。この出力をハッシュ値と呼びます。ハッシュ関数とは、データを要約して短い値に変換する関数のことで、SHA-256はその中でも米国の標準化機関が定めた方式のひとつとして、広い分野で使われています。

ここで押さえておきたいのは、これが「暗号化」ではないという点です。暗号化は鍵を使って元に戻すことを前提にした変換ですが、ハッシュ化には元へ戻す手順がそもそも存在しません。ハッシュ値は復号するためのものではなく、照合するためのものです。

入力の長さが変わっても出力の長さは変わらない

1文字のデータでも、数百メガバイトのファイルでも、SHA-256の出力は必ず64文字です。ここから、巨大なデータの同一性を短い値の比較だけで確認できる、という使い道が生まれます。ソフトウェアの配布ページに載っている検証用の値は、この性質を利用したものです。

入力を少し変えると出力はまったく別物になる

文末に句点をひとつ足しただけでも、出力される64文字は元の値と共通点のない並びに変わります。わずかな変更が結果全体に波及するこの性質は雪崩効果と呼ばれ、「似たデータなら似たハッシュになる」という直感が通用しないことを意味します。だからこそ、ハッシュ値を見比べるだけで、データが1ビットも書き換わっていないかを判定できます。

「一方向」であることの意味——なぜ逆算できないのか

ハッシュ値から元のデータを計算で求める手順は知られていません。イメージとしては、複数の絵の具を混ぜて作った色に近いものがあります。混ぜ上がった色をどれだけ眺めても、どの絵の具を何グラムずつ使ったのかを色そのものから逆算することはできません。

では総当たりならどうでしょうか。256ビットの出力パターンは、10進数にすると77桁ほどの数になります。これは観測できる宇宙に存在する原子の総数と同じ桁の規模とされ、地球上の計算資源を集めても現実的な時間では走査しきれません。つまり一方向性とは「数学的に不可能」ではなく「現実的な時間では終わらない」という意味です。暗号の安全性は、この計算コストの落差の上に成り立っています。

ハッシュが鎖をつくる——改ざん耐性の本体

ここからが本題です。ビットコインの各ブロックには、ひとつ前のブロックのハッシュ値が必ず含まれています。ブロックが前を指し示し、それが延々と続く。これがブロックチェーンという名前の由来です。

さらに各ブロックの中では、収められた取引を二つずつハッシュ化してまとめる作業を繰り返し、最終的にひとつの値に集約しています。この集約値はマークルルートと呼ばれ、取引を一件でも書き換えれば必ず変化します。

連鎖がどう壊れるのかを整理すると、次のようになります。

書き換えた場所 直後に起きること
過去のブロック内の取引1件 そのブロックのマークルルートが変わる
マークルルート そのブロック自体のハッシュ値が変わる
ブロックのハッシュ値 次のブロックが記録している値と食い違う
次のブロック そのブロックのハッシュも変わり、以降すべてに波及する

1か所を直すと、そこから先の全ブロックを作り直さなければ辻褄が合いません。これが「改ざんできない」と言われる構造の正体です。暗号でデータを隠しているのではなく、直した痕跡が必ず表に出る作りになっている、と言い換えられます。

プルーフ・オブ・ワークが書き換えコストを跳ね上げる

とはいえ、辻褄が合わなくなるなら全部作り直せばよいのでは、と思うかもしれません。そこを塞いでいるのがプルーフ・オブ・ワーク、日本語では仕事の証明と訳される仕組みです。

ビットコインでは、ブロックのハッシュ値が「先頭に0が決められた個数以上並ぶ」という条件を満たすまで、ナンスと呼ばれる数値を変えながら計算をやり直します。SHA-256は逆算できないため、条件を満たす値を探す方法は総当たりしかありません。マイニングと呼ばれる作業の実体はこれです。

したがって過去のブロックを書き換えるには、そこから現在までの全ブロック分の総当たりをやり直し、しかもその間も伸び続けている正直なチェーンに追いつく必要があります。取引の承認数が増えるほど安全とされるのは、追い越すべき計算量がその分だけ積み上がるからです。この領域をもう少し掘りたい方はテクニカル解説のカテゴリもあわせてご覧ください。

SHA-256は破られないのか——限界の見方

ハッシュ関数の安全性は、主に三つの性質で評価されます。

  • 原像計算困難性:ハッシュ値から元のデータを求められないこと
  • 第二原像計算困難性:あるデータと同じハッシュになる別のデータを見つけられないこと
  • 衝突困難性:同じハッシュ値になる二つのデータの組を見つけられないこと

出力の種類は有限ですから、理論上は同じハッシュ値になるデータの組み合わせ(衝突)が必ず存在します。問題はそれを実際に見つけられるかどうかで、旧世代のSHA-1は衝突を作れることが示され、主要な用途から退きました。SHA-256については、2026年時点で実用的な突破手法が公表されたという事実は確認されていません。

量子コンピュータについても、探索を高速化するアルゴリズムでは総当たりの手間が平方根の規模に減るにとどまり、128ビット相当の強度は残るとされています。一般に、先に影響が出るのはハッシュ関数ではなく署名方式の側だと指摘されています。

そして実際に資産が失われる原因は、ハッシュ関数の突破ではありません。現実のリスクは、ほぼすべて鍵の管理と詐欺に集中しています秘密鍵を自分で管理するつもりならハードウェアウォレットの選び方を先に読み、機種ごとの実勢価格はハードウェアウォレットの検索結果で確認しておくと判断しやすくなります。詐欺の手口の傾向は詐欺の見分け方にまとめています。

仕組みを理解したうえで少額から実際に触ってみたい場合は、コインチェックのような国内の取引所で口座を用意する方法があります。開設の流れは始め方ガイドに沿って進めてください。手数料や取扱銘柄は変更されることがあるため、申し込み前に公式情報を確認しておくと安心です。

よくある質問(FAQ)

SHA-256とマイニングはどういう関係ですか?

マイニングは、ブロックの中身を少しずつ変えながらSHA-256を繰り返し計算し、決められた条件を満たすハッシュ値を最初に見つけた人が報酬を得る競争です。計算に近道がないため、投入した計算量がそのまま参加の重みになります。

ハッシュ値から元のデータを復元できますか?

できません。ハッシュ化は元に戻す手順を持たない変換だからです。ただし元のデータの候補が少ない場合、たとえば短い数字だけの暗証番号などは、候補を片端からハッシュ化して照合すれば当てられてしまいます。パスワードで長さが重視されるのはこのためです。

同じハッシュ値になるデータは存在しますか?

理論上は存在します。無限に近い種類のデータを64文字に押し込む以上、避けられません。ただし現在の計算能力で意図的に見つけ出すのは現実的でないため、実務上は同一性の証明として扱われています。

ビットコイン以外のブロックチェーンもSHA-256を使っていますか?

採用している方式はさまざまです。チェーンによって別のハッシュ方式が使われ、新しいブロックを決める仕組み自体も異なります。「ブロックチェーンだから同じ強度」とはならない点に注意してください。

免責事項:本記事は一般的な情報提供を目的としており、投資助言ではありません。最新の情報は公式情報をご確認ください。

この記事について

執筆・編集:Bitcoin Analyze 編集部

金融庁・国税庁および各事業者の公式資料にあたり、基準日と定義を固定したうえで記事を作成しています。価格予測や利益保証は扱いません。事業者の条件は変更されるため、最終的な判断は公式情報をご確認ください。

主な参照先

Bitcoin Analyze 編集部

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Amazonのアソシエイトとして、Bitcoin Analyzeは適格販売により収入を得ています。