時のログ

モノクロ写真時々独り言、文字は心をあらわす、今思った事を素直に書こう!

結局マイニングとはなんなんだ?やっと見えてきたぞ!

あとで読む

スポンサーリンク

おはようございます。サイト管理者のふぇいやんです。ブロックチェーンの内容を掘り進めることでやっとマイニングが見えてきたね。

 

マイニングをする人をマイナーなんてさ。マイナーなんていうと、メジャーの反対語に取られそうだな。まあ、そんな事を考えてやろうとすることは、オタッキーだからメジャーの反対の人に取られてもしょうがないか。

 

f:id:sek-loso0228:20171210101133j:plain

 

マイニングって具体的に何をしているんだって思うよね。ここでもまた専門用語が行く手を阻むんだよ。

 

今回出てくる専門用語はノンス値だ。

ノンスnonceナンスとも)は、暗号通信で用いられる、使い捨てのランダムな値のことである[1]。ノンスはたいてい、認証の過程で使われ、リプレイ攻撃を行えないようにする働きを担っている。具体例として、HTTPDigest認証では、パスワードMD5ダイジェストを計算する過程でノンスが使われている。ノンスはサーバが401 Unauthorizedを返すごとに違っているので、リプレイ攻撃はほとんど不可能となる。

次に、インターネット上で買い物をするような例を考える。ノンスを使わない場合、攻撃者が暗号化された注文データを手に入れれば、それを再度送信することで、暗号を解読せずとも注文を繰り返すことができてしまう。ここで注文データの中に、一度ごとに使い捨てとするノンスを加えることで、複数回の注文を繰り返してもそれぞれデータとして異なるようになる。同じノンスで送られた注文データを不正なものとして無視することで、前述のような攻撃は成立しなくなる。ノンスの中にはタイムスタンプを使うことで時間的な順序を担保するような用法もあるが、この場合は両側での時刻同期が必須となる。クライアント側がノンス(cnonceと呼ばれる)を生成するプロトコルも、Digest認証などいくつか存在する。

ストリーム暗号でも、同じ鍵で暗号化の結果をメッセージごとに異なったものとするためにノンスが使われることがある。この場合、メッセージの番号を使うことも多い。同様の目的で使われる初期化ベクトルも、見方を変えればノンスの一種とも考えられる。「一度きり」であることを担保するための方法として、できるだけ粒度の細かいタイムスタンプから生成する、あるいは充分なエントロピーを持った乱数で生成して、重複する可能性を現実的でないほどに下げるというような手法がとられる。ノンスには擬似乱数性、すなわち予測不可能性が必要だとする議論もある。[2]


proof of work英語版システムにおいては、暗号学的ハッシュ関数の出力を変えて特定の条件を満たさせるためにノンスが使われる。条件を満たすようなハッシュ値を生成するのは、それを検証するよりずっと困難なことであり、通常とは違う側に処理の負荷をかけることができる。このようなシステムの具体例としてビットコインがあり、ブロックチェーンに対するハッシュの頭に続くべきゼロの数を調節することで、難易度を調節している。ハッシュが暗号学的なものである以上、特定の出力が得られるような入力を任意に生成することはできず、ひたすらノンスを生成して総当たりで探すほかに方法はない。ビットコインのマイニングとは、条件に当てはまるノンスを探す作業のことであり、一番乗りできればビットコインが得られる

ノンス - Wikipedia

 

上記にも書かれているが、このようなシステムの具体例としてビットコインがあり、ブロックチェーンに対するハッシュの頭に続くべきゼロの数を調節することで、難易度を調節している。ハッシュが暗号学的なものである以上、特定の出力が得られるような入力を任意に生成することはできず、ひたすらノンスを生成して総当たりで探すほかに方法はない

 

ビットコインのマイニングとは、条件に当てはまるノンスを探す作業のことであり、一番乗りできればビットコインが得られる。

 

つまり、何億、何兆回に及び試行錯誤の総当りの計算を、わずか10分のうちに行うのがマイニングなんです。

 

普通に考えたらさ、膨大なマシンパワーを必要とする事がド素人でもわかりますよね。スパコン並の処理能力とそれを運用する莫大な電力が必要なんて素人が手を出すのは無謀ってことじゃないの?って思うのは当たり前だよね。

 

しかもさ、何か意味のある数値の計算なら分かるが、たまたまハッシュ値の最初の16桁が0になるようなノンス値を探すだけの作業なんですから。まあ普通に考えたらさ馬鹿じゃないのって思ってあたりまえ。

 

まずこの膨大な処理で1番になった人がいるわけで、2番手以降の人はその数値が正しいのかを確認するんです。そして、6名の人がその鍵が正しいと承認した時点ではじめてそれは正しいブロックとして認められ、ブロックチェーンの最後尾に接続されるのです。

 

これだけを見ると、何だか馬鹿な事やってるなとしか思えないですね。

 

ただこのレースが10分毎に毎日365日続いているんですよ。しかもですね、莫大な金をかけてハイスペックマシーンを駆使したからって、必ず勝つことが保証されていないのがこのレースの魅力でもあるようです。

 

だから、世界中の人がこぞって参加しているんですね。更にですよ、よ〜く考えて下さい。計算している間、その前に自分はいなくてもいいんです。10分毎に自分のマシンが勝手に参加して勝手に計算してくれるんです。

 

自分はマシンが壊れないかメンテナンスをしているだけ。それだって毎日じゃないですからね。だから自分の時間を無駄にしなくても、稼ぎ出すチャンスが有るんです。

 

ある意味、夢のようなことですよね。

 

これがマイニングの根底に有ることなんですよ。やっとマイニングの姿が見えてきましたよね。

 

 

じゃあこっから俺としてはどうしていくのか・・・・次に書いてみたいと思います。

 

 

おしまし。