9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

「マイニング」と聞くと、

・計算している
・電気を大量に使っている
・コインが出てくる

というイメージはあっても、実際に何をしているのかは意外と知られていません。

この記事では

・マイニングの正体
・内部でどんな処理が走っているのか
・なぜ計算が必要なのか

を技術寄りに整理します。

マイニングの目的

マイニングは「コインを作る作業」ではありません。

正確には、取引の正当性を検証し、ブロックチェーンに記録する作業です。

その報酬としてコインがもらえる、という仕組みです。

ブロックとは何か

ブロックは次の情報の集合です。

・複数のトランザクション
・前のブロックのハッシュ
・タイムスタンプ
・難易度情報
・Nonce(調整値)

これらをまとめたものがブロックです。

マイニングのコア処理

1. 取引を集める

ノードはネットワークから未承認トランザクションを集めます。

2. ブロックを組み立てる

集めた取引をまとめ、ブロックヘッダを作ります。

3. ハッシュを計算する

ブロックヘッダをハッシュ関数にかけます。


hash(block_header)

4. 難易度条件を満たすまで繰り返す

出てきたハッシュ値が

「指定された値より小さい」

という条件を満たすまで Nonce を変えて計算します。


while hash(header) >= target:
nonce += 1

これがいわゆる「掘る」作業です。

5. 成功したらネットワークに通知

条件を満たすハッシュが見つかると、ブロックをネットワークにブロードキャストします。

他のノードが検証し、正しければチェーンに追加されます。

なぜ計算が必要なのか

計算を必要にすることで

・不正な履歴改ざんを困難にする
・誰でも平等に参加できる検証方法にする
・中央管理者を不要にする

という性質が得られます。

計算は「コストの証明」です。

なぜ電気を使うのか

ハッシュ計算は

・CPU
・GPU
・ASIC

で大量に並列実行されます。

難易度は「全体の計算力」に応じて調整されるため、
参加者が増えるほど計算量も増えます。

結果として電力消費が増えます。

マイニングは無駄なのか

単純な計算に見えますが、実際には

・取引の整合性保証
・二重支払い防止
・履歴の改ざん防止

というネットワーク全体の安全性を支えています。

まとめ

・マイニングは「コイン生成」ではなく「取引検証」
・ブロックを組み、ハッシュ条件を満たすまで計算する
・計算はセキュリティコストの証明
・電力消費は仕組みの副作用

マイニングは「計算している」のではなく、「信頼を計算している」と言えます。

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?