はじめに

「全てのデータが不正に改ざん・悪用されないと信じて取引(トランザクション)をすることができる」
ブロックチェーンでは、この主張をネットワークを用いることで実現できます。
それはなぜ、どのようにして実現されるのでしょうか?
- なぜブロックチェーンを信頼して暗号通貨の取引ができるのか?
- なぜブロックチェーンのデータは改ざんできないのか?
- 改ざんしようとすると何が起こるか?
この記事では、ビットコインのブロックチェーンにおいてなぜデータが改ざんできないのか?という点をまとめました。
ブロックチェーンにおける信頼

ブロックチェーンでは、相手が不正をしないことを前提に、直接ネットワーク上の人々と取引をすることが可能になります。
これは、ブロックチェーンのデータは不正に用いられたり改ざんすることがほぼ不可能である、という性質から来ています。
そしてこの性質は、ネットワークに分散されたコンピューターによって実現されます。
代表的なブロックチェーンを用いている暗号通貨であるビットコインにおいては、これが実現できる要因は大きくまとめて、
- データをブロックに記録する作業
- 記録されたデータの不正なものではないとネットワークで合意するアルゴリズム
- どの記録されたデータが最終的に正しいか確定するルール
- データを記録する人のインセンティブ構造
この4点を押さえると理解が進みます。
1点目に、データを記録する作業を「マイニング」と呼びます。
ビットコインにおいては、マイニングを完了するためには、非常に計算量の多い問題を解く必要があり、この作業を「マイナー」と呼ばれる人が担います。
2点目の「記録されたデータの正しさをネットワークで合意するアルゴリズム」のことを、「コンセンサス・アルゴリズム」と呼びます。
ビットコインにおいては、「プルーフ・オブ・ワーク(Proof of Work、以下 PoW)」というコンセンサス・アルゴリズムが採用されています。
このアルゴリズムは、最も早く難しい問題を解くことのできたマイナーがブロックにデータを記録できる権利を得ることができます。
そして記録することができたマイナーには、報酬が支払われます。
3点目に関して、ビットコインでは「長いブロックチェーンが正しい」というルールがあります。
このルールとPoWによって、データを不正に改ざんすることのコストが非常に高くなります。
4点目に関して、データを記録する人を「マイナー」と呼びます。このマイナーが不正をすることのインセンティブ構造が、マイナーを不正に向かわせない大きな要因になります。
この4つの要因をそれぞれ詳しく見ていきます。
マイニングのプロセス
まず、データをブロックに記録する段階から見ていきます。
マイニングとは、「ブロックにデータを記録する作業」のことを言います。
そもそもブロックチェーンにおいて、ブロックとはどのような構造をしているのでしょうか。
ブロックとは、取引データ等が格納されている記録の塊のようなものです。
ブロックの中には4つの情報が入っています。(図も参照)
- 1つ前のブロックのハッシュ値
- 取引データ
- ナンス
- その他のデータ

ブロックに1つ前のブロックの情報が入っていて鎖状のデータを形成することから、「ブロックチェーン」と呼ばれています。
「1つ前のブロックハッシュ値」、「取引データ」、「ナンス」の3つをブロックヘッダーと呼びます。
ブロックヘッダーはハッシュ化と呼ばれる作業を経て「ハッシュ値」という値になります。
ハッシュ値は「000004adwn23jssa…..」のような値をしています。
データを記録する人(マイナー)は、マイニングをするために、ナンスをハッシュアルゴリズムという問題を解いて求めます。
この問題を解くためには、非常に膨大な計算をする必要があり、相当のマシンパワーを消費する必要があります。
また、総当たり的なアルゴリズムを用いてのみこの問題を解くことができます。
ビットコインでは、この問題を解くことに10分程度の時間がかかるように調整されています。
- ブロックには前のブロックのハッシュ値が入っている
- マイナーはナンスを求めるために、ハッシュアルゴリズムという計算をする
- ハッシュアルゴリズムを求めるためには、非常に大きい計算量が必要になる
プルーフ・オブ・ワーク(PoW)

ネットワーク上のマイナーは、それぞれの取引に対してマイニングを行います。
結果として、どのマイナーのマイニングによるデータを正しいデータとしてブロックに格納するかを判断する必要が生じてきます。
どのデータを正しいデータしてブロックに格納するかをネットワークで合意するアルゴリズムのことを、「コンセンサス・アルゴリズム」いいます。
ビットコインでは、「プルーフ・オブ・ワーク(PoW)」というコンセンサス・アルゴリズムを採用しています。
このアルゴリズムは「最も早くナンスを求めることのできたマイナーのデータをブロックに格納する」というものです。
先ほど述べた通り、このナンスを解くためには総当たり的なアルゴリズムを解くしかなく、さらに正しいナンスはマイナーによって異なります。
結果的にマイニングに成功したマイナーは、報酬として送金手数料を得ることができます。
送金手数料は、ビットコインを送金するユーザーが設定します。
この報酬を目当てにマイナーはマイニングを行います。
- 最も早くナンスを求めることのできたマイナーのデータをブロックに格納する
- このアルゴリズムのことを、「プルーフ・オブ・ワーク」という
- マイニングができたマイナーは報酬を得ることができる
どの記録データが最終的に正しいか確定するルール
- プルーフ・オブ・ワークにおいて同時にナンスが見つかる
- 不正な取引をブロックに格納しようと考えるマイナーが現れる
以上の2つのケースが起きた場合、ブロックチェーンは分岐します。
2番目のケースを考えると、正しいデータの入ったブロックチェーンと、偽のデータの入ったブロックチェーンが、不正な取引データと前の取引データと整合性が取れなくなった時点から分岐します。(ブロックチェーンには、前のブロックの情報が入っていることに注意してください)
つまり、正しいブロックチェーンと、偽のブロックチェーンに関してマイニング競争が始まり、チェーンの長さの競い合いが始まります。
ビットコインのブロックチェーンでは、このような競争が起きた場合「長いブロックチェーンが正しい」とするルールを設定しています。
さらに、実際に取引が確定するためには、いくつかの数のブロック(例えば6ブロックとします)が作られるまで確定しないというルールを設定しているウォレット(実際にコインを取引する人たちのコインが入っている口座のようなもの)もあります。
したがって、不正な取引を確定させるためには、正しいブロックチェーンより早く6ブロックチェーンを作らないと、その不正な取引の入った偽のブロックチェーンは正しいブロックチェーンとネットワークに認識されません。
正しいブロックチェーンは、大多数の正しいマイナーによって相当の計算量でマイニングが続けられ一方、偽のブロックチェーンは、不正なマイナーによる計算量のみでしかマイニングが続けられません。
したがって、相当の計算能力を確保していない限り、不正を行うマイナーはこの競争に勝つことはできません。
理論的には、ネットワーク全体の51%の計算量を確保しないと、不正なマイナーはブロックチェーンの伸ばし合い競争に勝つことはできないとされています。
結果的に、不正な取引データをブロックに格納することは、非常にコストのかかるものになります。
- ブロックチェーンは分岐する
- 分岐したブロックチェーンは、長い方が正しいとされる
- 不正を行うためには、ブロックチェーンの伸ばし合い競争に勝たなくてはいけない
- 競争に勝つためには非常に多大な計算量が必要となり、コストがかかる
マイナーのインセンティブ

仮に不正が起きた場合、不正を行ったマイナーはどのような状況に置かれるでしょうか?
不正が起きたブロックチェーンは、その信頼性とネットワークに対する魅力度が著しく低下します。
したがって、そのブロックチェーンを持つ仮想通貨の価値は、現実通貨に交換される等の方法で需給のバランスが大きく崩れることから、大きく下がることが予想されます。
結果的に、不正を起こしたマイナーの持つ仮想通貨の価値は暴落します。
マイナーは不正を行った瞬間に、不正で得た仮想通貨の価値を失うのです。
この構造が、マイナーを不正を行わせず、ネットワーク全体の信頼性を維持する方向に向かわせるインセンティブとなっています。
- 不正が起きた瞬間に、仮想通貨の価値は暴落する
- マイナーは不正に得た仮想通貨の価値を失う
- マイナーは不正を行っても何も得られず、ネットワークの信頼性を維持する方向にインセンティブを持つ
まとめ
ここまで、なぜブロックチェーンのデータは不正に改ざんできないのかについてまとめてきました。
ここまでの議論を大きく2点に要約すると、
- PoWにより、ブロックチェーンに不正をすることに非常にコストがかかる
- マイナーは結果的に仮想通貨の価値が下がってしまう不正を行うインセンティブがない
とまとめられるでしょう。
この2点により、中央に管理する主体がいなくても、ネットワークを信頼する取引が可能になります。
ビットコイン以外のコインのブロックチェーンではどうなのか、問題点は何なのか、コインチェックのような事件は何で起きたのか等については、他の記事でカバーしていきたいと思います。