[仮想通貨]ハッシュってなんだ?

ブロックチェーン

こんにちは。
Kotaです。

ハッシュに関して面白い記事を見つけたので、共有します。

A Quick Introduction: Hashing | Hacker Noon

ハッシュとは?

ハッシュ、ハッシュレートなどは、仮想通貨のトレードやマイニングをしている方に取ってはおなじみに言葉かもしれません。

しかし、実際にその構造やアルゴリズムについて詳しく知っている人は少ないのではないでしょうか。

pythonを使って、簡単にハッシュについて説明していきます。

ハッシュとは、2つのデータの塊が正しいかどうかを判断するための方法となります。

仮想通貨におけるハッシュ値は、元に戻せない固有の値をデータ毎に持ちます。暗号は、可逆的な値を持ちます。この部分が、ハッシュ値と暗号の違いとなります。

これらのデータには、ファイルや文字などバイナリー形式で表すことはできるものが例としてあげられます。

ハッシュ値はあらゆるところで使用されています。例えば、Kali Linuxのページへ行くと、それぞれのバーションにハッシュ値が見られます。

Kali Linuxについては、こちらを参考にしてください。

Kali Linux を使ってみる : まだプログラマーですが何か?
Linux のメジャーなディストリビューションといえば RedHat, CentOS, Debian, Ubuntu, ... あたりでしょうか。SuSE は日本ではほとんど使われてない印象・・・ 個人あるいは業務で Linux を使う場合はこれらを使うケースがほとんどでしょう。実際にはこれらをベースにした(

このハッシュ値の名前は、SHA-256と呼ばれており以下のような形をしています。

もし、あなたがここからファイルダウンロードするとなれば、オリジナルのファイルとダウンロードするファイルが一致する必要がありますよね。

そのときにハッシュ値を使うことで、ダウンロード時に書き換えなどされていないオリジナルのファイルを確実に得ることができるのです。

でも、どうやってハッシュ値を生成するの?

では、どうやってこのハッシュ値を生成するのでしょうか。

python3(Python 3.5.4 :: Anaconda custom (x86_64))を使って、ハッシュ値を作ってみましょう。

17,18行目が、実行結果となります。
hashlibはもともとpythonに含まれるライブラリなので、インストールの必要はありません。
コメントにある通りですが、与えられた文字列に対して”SHA-256“というアルゴリズムを当てはめることによって固有のハッシュ値を得ることができます。

これで、安全に完全な状態でデータをハッシュ化することができます。

より詳しい情報に関しては、以下のサイトをご覧ください。
ファイルのハッシュ値化のスクリプトもあります。

ハッシュ値作成前のエンコーディングについて

ハッシュ化のアルゴリズムについて

ファイルのハッシュ値化のスクリプト

まとめ

シンプルにハッシュ値について、まとめて見ました。

非常に簡単にデータをハッシュ値化することが可能なことがわかると思います。

このハッシュを計算することが、マイニングをする上で非常に重要な要素となってくるわけです。

ちなみに、ビットコインは、”SHA-256“と”RIPEND-160“というアルゴリズムを使ってハッシュ値を生み出しています。

ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました